Transcript Document
Department of Computer and IT Engineering
University of Kurdistan
Computer Architecture
Microprogrammed
Control
By: Dr. Alireza Abdollahpouri
وظایف واحد کنترل
• تنظیم مسیرهای الزم جهت اجرای دستورالعملها
• متغیرهای کنترلی
–
–
–
–
–
تنظیم گذرگاه مشترک
پایه های رجیسترها
انتخاب مولتی پلکسرها
تعیین نوع عمل ALU
...
• در هرلحظه گروههایی از بیتهای کنترلی در وضعیت SETیا
RESETقرار دارند
• ایجاد یک سری مراحل متوالی جهت اجرای ریزعمل ها
2
بالک دیاگرام واحدکنترل
INSTRUCTION
CONTROL UNIT
CONTROL WORD
3
روشهای طراحی واحد کنترل
• کنترل سیم بندی شده
()HardWired
– خروجی واحد کنترل ،متغیرهای کنترلی سخت افزاری است که مسیرهای داده را در
داخل CPUتعیین می کنند.
– با تغییر دستورالعمل ها این مدارات باید از نو طراحي شوند.
• کنترل ریزبرنامه نویسی شده ()MICROPROGRAM
– کلمات کنترلی در یک حافظه ذخیره میشوند(.معوال از نوع ROMیا )EPROM
– برای اجرای یک دستورالعمل ،به ترتیب سیگنالهای کنترلی که از قبل در حافظه ذخیره
شده اند تولید میشوند.
– با تغییردستورالعملها فقط محتویات این حافظه تغییر خواهد کرد.
– كامپیوتري كه از واحد كنترل ریزبرنامه نویسي استفاده میكند ،دو حافظه مجزا خواهد
داشت :حافظه اصلي و حافظه كنترلي.
– حافظه اصلي براي ذخیره برنامه ها و داده ها در اختیار كاربر است.
4
کنترل ریزبرنامه نویسی شده
كلمه كنترلي
رجیسترداده
کنترل
CDR
حافظه
کنترل
ROM
رجیسترآدرس
کنترل
CAR
اطالعات آدرس بعدي
5
ورودي خارجي
مولد آدرس
بعدی
)Control Address Register (CAR
• رجیسترآدرس کنترل حاوی آدرس ریز اعمالی است که جهت اجرای دستورالعمل
نیاز است.
رجیسترآدرس کنترل
CAR
حافظه کنترل
ROM
• هنگام روشن شدن كامپیوتر ،آدرس اولیه در CARبار میشود كه به زیربرنامه
Fetchاشاره میكند(.یا پرش به زیربرنامه )Fetch
6
حافظه کنترل
•
•
•
•
•
ریزعملیاتهاي( )Micro-operationالزم جهت اجرای یک دستورالعمل را ذخیره
می کند.
از نوع ROMاست.
ROMیک مدار ترکیبی بوده و نیاز به کالک ندارد و همچنین سیگنال خواندن الزم
نیست.
تا زمانی که آدرس ثابت باقی بماند خروجی ROMتغییر نمی کند.
خروجی این حافظه ،کلمه کنترل ( ) Control Wordاست.
7
)Control Data Register (CDR
• رجیسترداده کنترل حاوی سیگنالهای کنترلی مربوط به
ریزعملی است که از حافظه کنترل انتخاب شده است.
• ایجاد خروجی های الزم برای ریزعمل فعلی.
• تعیین ریزعمل بعدی
CONTROL WORDرجیسترداده
ادامه دستورالعمل قبلی
واکشی دستورالعمل بعدی
اجرای زیربرنامه
انشعاب به بخش دیگری از حافظه کنترل
–
–
–
–
• میتوان CDRرا حذف كرد و كلمه
كنترلي و اطالعات آدرس بعدي را مستقیما
از خروجي ROMگرفت.
8
کنترل
CDR
اطالعات آدرس بعدي
حافظه کنترل
ROM
روال اجرای دستورالعمل
•
•
•
•
9
واکشی ( ) FETCH
دیکد () DECODE
محاسبه آدرس غیر مستقیم ()Indirect address
اجرا ( ) EXECUTE
ریز عملهای تکراری
• واکشی ()Fetch
• دیکد ()Decode
• محاسبه آدرس غیر مستقیم()Indirect
• روال هایی برای تولید سیگنالهای مربوط به واکشی ،دیکد و آدرس
وجود دارد.
• این روالها برای تمام دستورالعملها مشترک خواهند بود.
10
ریزعملهای اختصاصی
•
•
•
•
•
اجرا EXECUTE
برای ایجاد سیگنال های کنترلی الزم بطور متوالی نیاز به ریز دستورالعمل های
اختصاصی داریم
برای هر دستورالعمل ،روالی تعریف میشود که مولد سیگنالهای کنترلی الزم
است
تعداد این روال ها برابر با تعداد دستورات است.
بعد از تکمیل هر روال ،کنترل به روال واکشی ()Fetchمنتقل میشود.
11
ریز عملهای شرطی
• آدرس غیر مستقیم
• با توجه به بیت های خاصی در دستورالعمل ممکن است این روال
اجرا شود .
• در صورت اجرای این روال سیگنالهای کنترلی الزم جهت تولید
آدرس غیرمستقیم تولید میشود.
12
I OP-code
Instruction Code
MAPPING
LOGIC
بیتهاي وضعیت
BRANCH
LOGIC
MUX
SUBROUTINE
REGISTER
(SBR)
CONTROL
ADDRESS
REGISTER
(CAR)
INCREAMENT
CONTROL MEMORY
ROM
MICRO OPERATIONS
آدرس انشعاب
13
.تصمیمات پرش از روي بیتهاي وضعیت و آدرس انشعاب گرفته میشود
نگاشت ()Mapping
ADDRESS
OPCODE
0110
•تبديل بيتهاي op-codeبه يك آدرس در حافظه
كنترل كه روال مربوطه در آن قرار دارد نگاشت
يا mappingناميده ميشود.
MAPPING
LOGIC
0 XXXX 00
CONTROL
MEMORY
128كلمه
7بیت
ADDRESS
14
CAR
0 1100 00
نگاشت ()Mapping
• هر دستورالعمل می تواند 4سلول حافظه را استفاده کند
• دستورالعملهای طوالنی میتوانند از قسمت های باالیی حافظه
استفاده کنند
0 0000 00
0000
CONTROL
MEMORY
128 WORD
MAPPING
0 1111 00
10000000
1 1111 11
15
OPCODE
1111
حافظه کنترل
• هر دستورالعمل 4خانه حافظه
• تعداد دستورالعملها = 16
• اندازه حافظه کنترل = 64
• درصورتی که از 128سلول
حافظه استفاده شود 64سلول
انتهایی خالی خواهد بود
16
MAIN
EXTRA
64
64
4
4
ADD :--------------------------BRANCH:------------
4
STORE:-----------------
4
EXCHANGE:------------
4
ADD M
MAP
SUB:---------…..
17
MUX
11
AR
PC
Address
RAM
2048*16
11
16
MUX
SBR
CAR
DR
حافظه كنترلي
ROM 128*20
ALU
AC
18
16
• 4رجيستر در واحد پردازنده ( DRو 16 ACبيتي و ARو 11 PCبيتي) و
2رجيستر در واحد كنترل( CARو SBRهفت بيتي) وجود دارند.
• در اين كامپيوتر براي انتقال بين رجيسترها بجاي BUSاز MUXاستفاده
ميشود.
• DRميتواند از حافظه PC ،و يا ACاطالعات بگيرد.
• داده ورودي به حافظه از DRمي آيد و داده خروجي تنها در DRريخته
ميشود.
19
فرمت دستورالعمل ها در حافظه اصلي ()RAM
11 BIT
ADDRESS
211=2048سلول حافظه
20
4 BIT
OP-CODE
16دستورالعمل
I
نحوه آدرس دهی
چند دستورالعمل اولیه
AC←AC + M[EA]
0000
ADD
If )AC<0( then )PC←EA(
0001
BRANCH
M[EA] ←AC
0010
STORE
AC←M[EA],M[EA] ←AC
0011
EXCHANGE
21
فرمت ریزدستورالعملها در حافظه كنترلي ()ROM
2
2
3
3
3
7
AD
BR
CD
F3
F2
F1
ADDRESS
BRANCH
FIELD 2 FIELD 3
FIELD 1
CONDITION
F1,F2و F3می توانند همزمان اجرا شوند
مثال 000100101به معناي انجام دو عملیات
همزمان به صورت روبرو است:
22
]DR←M[AR
F2=100
PC←PC+1
F3=101
F1 ریز عملیاتهای
000
NOTHING
NOP
001
AC←AC+DR
ADD
010
AC←0
CLRAC
011
AC←AC+1
INCAC
100
AC←DR
DRTAC
101
AR←DR)0-10)
DRTAR
110
AR←PC
PCTAR
111
M[AR] ←DR
WRITE
23
F2 ریز عملياتهای
000
NOTHING
NOP
001
AC←AC-DR
SUB
010
AC←AC or DR
OR
011
AC←AC and DR
AND
100
DR←M[AR]
READ
101
AR←AC
ACTAR
110
DR←DR+1
INCDR
111
DR(0-10( ←PC
PCTDR
24
F3 ریز عملياتهای
000
NOTHING
NOP
001
AC xor DR
XOR
010
AC←AC’
COM
011
AC← shl AC
SHL
100
AC← shr AC
SHR
101
PC←PC+1
INCPC
110
PC←AR
ARTPC
111
Reserved
--------
25
CONDITION
CD
شرط
سمبل
نوع انشعاب
00
1
U
Unconditional
Branch
01
DR(15)
I
Indirect
Addressing
10
AC(15)
S
Sign bit
11
AC=0
Z
Zero bit
26
BRANCH
T : CAR←AD
F: CAR←CAR+1
T:CAR←AD,SBR←CAR+1
F: CAR←CAR+1
00
JMP
01
CALL
10
RET
CAR←SBR
11
MAP
CAR(2-5( ←DR)11-14( ,CAR)0,1,6( ←0
27
)FETCH( واکشی دستورالعمل
AR←PC
DR←M[AR],PC←PC+1
AR←DR)0-10),CAR(2-5( ←DR)11-14), CAR(0,1,6( ←0
. قرار میگیرند66و65و64 داراي سه ریزعملیات است كه در آدرسهاي
ORG 64
FETCH : PCTAR
READ,INCPC
DRTAR
U
U
U
JMP NEXT
JMP NEXT
MAP
28
واکش ی دستورالعمل ()FETCH
ترجمه برنامه میکروپروگرام به کد باینری
AD
BR
CD
F3
F2
F1
آدرس باینری
10000001
00
00
000
000
110
1000000
10000010
00
00
101
100
000
1000001
00000000
11
00
000
000
101
1000010
29
ADD
ORG 0
ADD:
NOP
READ
ADD
I CALL
U JMP
U JMP
INDIRECT
NEXT
FETCH
30
BRANCH
ORG 4
BRANCH :
OVER:
NOP
S
NOP
U
NOP
I
ARTPC U
JMP OVER
JMP FETCH
CALL INDIRECT
JMP FETCH
31
STORE
ORG 8
STORE :
NOP
ACTDR
WRITE
I
U
U
CALL
JMP
JMP
INDIRECT
NEXT
FETCH
32
EXCHANGE
ORG 12
EXCHANGE :
NOP
I CALL INDIRECT
READ
U JMP NEXT
ACTDR,DRTAC U JMP NEXT
WRITE
U JMP
FETCH
33
FETCH & INDIRECT
ORG 64
FETCH :
PCTAR
READ,INCPC
DRTAR
INDIRECT : READ
DRTAR
U
U
U
U
U
JMP
JMP
MAP
JMP
RET
NEXT
NEXT
NEXT
34
ADD:
BRANCH :
OVER:
STORE :
EXCHANGE :
NOP
READ
ADD
I
U
U
CALL INDIRECT
JMP
NEXT
JMP
FETCH
NOP
NOP
NOP
ARTPC
S
U
I
U
JMP
JMP
CALL
JMP
NOP
ACTDR
WRITE
I
U
U
CALL
JMP
JMP
NOP
READ
ACTDR,DRTAC
WRITE
I
U
U
U
ADD X
OVER
FETCH
INDIRECT
FETCH
INDIRECT
NEXT
FETCH
CALL
JMP
NEXT
JMP
INDIRECT
NEXT
MAP
FETCH
FETCH :
PCTAR
READ,INCPC
DRTAR
U
U
U
JMP
JMP
MAP
NEXT
NEXT
INDIRECT :
READ
DRTAR
U
U
JMP
RET
NEXT
. نوشته میشودFetch در خانه هایي كه استفاده نمیشوند دستور پرش به روتین:نكته
35
MAP
SELECT
CAR
1
I
S
Z
SBR
MUX
INC
MUX
CONTROL MEMORY
MICRO-OP
CD
BR
AD
36
طراحي واحد كنترل
• براي هركدام از فيلدهاي F1و F2و F3يك ديكودر قرار ميدهيم تا
ريزعملياتها را از يكديگر تشخيص دهيم.
• هر يك از خروجيهاي ديكودرها به قسمت مشخص ي از پردازنده وارد ميشود.
به عنوان مثال براي F1=101يا DRTARو F1=110يا
PCTARبايد خط لود ARفعال شود.
• تمام خروجيهاي سه ديكودر كه به نوعي به ACمربوط ميشوند بايد به مدار
ALUمنقل گردد.
37
F1
F2
DEC3*8
F3
DEC3*8
DEC3*8
AND
ADD
DRTAC
ALU
PC
DRTAR
DR
MUX
PCTAR
LD
LD
AC
AR
38
مدار كلي
39
نحوه تعيين آدرس بعدي در حافظه كنترلي
• هدف طراحي مداري است كه خطوط انتخاب MUXاصلي و همچنين خط لود
SBRرا توليد ميكند.
• ميتوان بجاي رجيستر SBRاز Stackبراي ذخيره آدرس برگشت در رفتن به روتينها
استفاده نمود.
40
نحوه تعيين آدرس بعدي در حافظه كنترلي
I0
I1
)بسته به JMP ( T
0
0
)بسته به CALL ( T
1
0
RET
0
1
L = I’1I0T
MAP
1
1
S1=I1
S0 = I1I0 + I’1T
41
حافظه كنترلي دو سطحی (استفاده از نانو حافظه)
اگر در یک سیستم نیاز باشد که تعداد بسیار زیادی سیگنال کنترلی تولید شود و نیز تعداد سیگنالهای کنترلی مجزا
محدود و تعداد کمی باشند ،به جای قرار دادن تمامی این سیگنالها در حافظه میکرو ،فقط سیگنالهای مستقل را در یک
حافظه تحت عنوان حافظه نانو قرار داده و در حافظه میکرو آدرس این سیگنالها(کلمات) کنترلی را مشخص میکنیم.
در این حالت ،ما دیگر تعداد زیاد و تکراری کلمات کنترلی را در حافظه میکرو نداریم و به جای آن آدرسهای
تکراری که حافظه کمتری اشغال میکنند را داریم.
.
مثال 1
42
مثال 2
حافظه كنترلي دو سطحی (استفاده از نانو حافظه)
مثال :فرض کنید که در یک سیستم تعداد 300کلمه کنترلی را داریم .از این 300تا تعداد
60کلمه مستقل هستند( 240تا تکراری هستند) .اگر طول کلمات کنترلی 150بیت
باشد(تعداد سیگنالهای کنترلی 150باشد) خواهیم داشت:
-1در حالت معمول و بدون استفاده از حافظه نانو ،حجم حافظه میکرو برابر 150*300
است.
-2در صورت استفاده از حافظه نانو ،حجم این حافظه برابر 150*60است .زیرا در این
حافظه فقط قرار است که کلمات کنترلی مستقل و غیر تکراری قرار گیرند.
در حالت دوم ،حافظه میکرو فقط باید آدرس 300تا کلمه کنترلی مورد نیاز را از حافظه
نانو مشخص نماید .برای مشخص کردن (آدرس دهی) 60کلمه کنترلی ،به 6بیت
احتیاج داریم .چون سیستم به 300سیگنال کنترلی نیاز دارد ،پس در این حالت حجم
.6*300
حافظه میکرو برابر است با:
میزان صرفه جویی:
43
)150*300(-)60*150 + 6*300( = 34200bits
حافظه كنترلي دو سطحی (استفاده از نانو حافظه)
یک پردازنده دارای ۱۷۵سیگنال کنترلی و ۲۵۰ریزدستور است .اگر ۲۰۰ریزدستور متفاوت
در این پردازنده وجود داشته باشد ،حجم کل حافظه واحد کنترل در صورت استفاده از
حافظه نانو چقدر است؟
الف۲۸۰۰۰ -بیت
۳۲۰۰۰بیت
ب-
۲۴۰۰۰بیت
ج-
۳۷۰۰۰بیت
د-
44