کنترل ریزبرنامه نویسی شده
Download
Report
Transcript کنترل ریزبرنامه نویسی شده
مهدی ایل بیگی
دانشگاه پیام نور دماوند
• تنظیم مسیرهای الزم جهت اجرای دستورالعمل ها
• تایین متغیرهای کنترلی
• تنظیم گذرگاه مشترک
• مقداردهی به پایه های رجیسترها
• انتخاب مولتی پلکسرها
• تعیین نوع عمل ALU
• ...
– در هرلحظههه گههراه هههابی از بیههت هههای کنترلههی در ا ههعیت SETیهها RESETقهرار
دارند.
• ایجاد یک سری مراحل متوالی جهت اجرای ریزعمل ها
2
• ک ه ه ه ه ههار ااح ه ه ه ه ههد کنت ه ه ه ه ههر در ااقه ه ه ه ه ه دریا ه ه ه ه ههت
دسه ههتورالعمل هه هها ا تهه ههدیل ن هه هها به ههه یه ههک
سری سیگنا های کنترلی است.
• مجموعههه سههیگنا ههها (بیههت ههها)ی کنترلههی را
Control Wordمههی نامنههد کههه ا ی ههه
ن کنتههر ههات ا هزار اسههت ب ونههه ای ک هه
دستورالعمل را بطور کامل اجرا نماید.
INSTRUCTION
CONTROL UNIT
CONTROL WORD
3
• کنتر سیم بندی شده (:)WIRED
– خراجههی ااحههد کنتههر ی متغیرهههای کنترلههی ههات ا هزاری اسههت کههه مسههیرهای داده ا
نوع عملیات را در داخل CPUتعیین می کنند.
– با تغییر دستورالعمل ها این مدارات بدان است اده خواهند بود.
• کنتر ریزبرنامه نوبس ی شده (:)MICROPROGRAMED
– کلمات کنترلی در یک حا ظه ذخیره شوند.
– برای اجرای یک دستورالعمل به ترتیب سیگنا های کنترلهی کهه از قههل در حا ظهه
ذخیره شده اندی خوانده می شوند.
– با تغییردستورالعمل ها قط محتویات این حا ظه تغییر خواهد کرد.
4
• ثهههات درک کنتههر ی درک ریزدسههتورالعمل را در حا ظههه کنتههر نگهههداری مههی نمایههد .هههر
ریز دستورالعمل حاای یک یا چند ریزعمل می باشد.
• محتویات هر خانه از حا ظه کنتر سیگنا های کنترلی مربوط به یک ریزعمهل اسهتی
که با خوانده شدن هر خانه مقادیر ن به ثهات داده منتقل می گردد.
ثهات داده
کنتر
CDR
5
حا ظه
کنتر
ROM
ثهات درک
کنتر
CAR
مولد درک
بعدی
• ریزاعما الزم جهت اجرای یک دستورالعمل را ذخیره می کند.
• از نوع ROMاست.
• ROMمانند یک مدار ترکیبی بوده ا نیاز به کالک ندارد.
• تا زمانی که درک ثابت باقی بماند خراجی ROMتغییر نمی کند.
• خراجی این حا ظهی کلمه کنتر ( )Control Wordاست.
6
• ثهههات داده کنتههر ی حههاای سههیگنا هههای کنترلههی مربههوط بههه ریزعم ههی اسههت کههه از حا ظههه
کنتر انتخاب شده است.
• ایجههاد خراجههی هههای الزم ب هرای ریزعمههل ع ههی بههر اسههاک محتویههات ایههن ثهههات ش ه ل م هی
گیرد.
• چهار حالت برای تعیین ریزعمل بعدی اجود دارد:
– ادامه دستورالعمل قه ی
– ااکش ی دستورالعمل بعدی
– اجرای زیربرنامه
– انشعاب به بخش دیگری از حا ظه کنتر
7
مراحل اجرای یک دستورالعمل:
•
.1ااکش ی ()FETCH
.2دیکد ()DECODE
.3تولید درک موثر
.4اجرا ()EXECUTE
• مراحل مشترک برای هر دستور:
– ااکش ی
– دیکد
– تولید درک موثر
راا هابی برای تولید سیگنا های مربوط به ااکش یی دیکد ا تولید درک موثر اجود دارد.
•
8
• ریز عمل های اجرا ( )EXECUTEبرای هر دستور اختصاص ی خواهد بود.
• ب ه هرای ایجه ههاد سه ههیگنا هه ههای کنترله ههی الزمی بطه ههور مته ههوالی نیه ههاز به ههه ریزدسه ههتورالعمل هه ههای
اختصاص ی داریم.
• برای هر دستورالعملی راالی تعریف می شود که مولد سیگنا های کنترلی الزم است.
• تعداد این راا ها برابر با تعداد دستورات است.
• بعد از تکمیل هر راا ی کنتر به راا ااکش ی منتقل می شود.
9
INSTRUCTION
MAPPING
LOGIC
STATUS
Bits
BRANCH
LOGIC
MUX
SUBROUTINE
REGISTER
(SBR)
CONTROL
ADDRESS
REGISTER
(CAR)
INCREAMENT
CONTROL MEMORY
ROM
Select
Status
Bit
BRANCH ADDRESS
MICRO OPERATIONS
10
به ه ه ه ه ه ه ه ه ه ههه تهه ه ه ه ه ه ه ه ه ه ههدیل که ه ه ه ه ه ه ه ه ه ههد
دس ه ه ه ههتورالعمل ب ه ه ه ههه درک
یک خانه از حا ظه کنتر
عمل ن اشت می گویند.
OPCODE
ADDRESS
0110
MAPPING
LOGIC
CONTROL
MEMORY
0 XXXX 00
ADDRESS
11
0 1100 00
CAR
• هر دستورالعمل می تواند 4سلو حا ظه را است اده کند.
• پههد درک ابتههدای هههر دسههتورالعمل ههریبی از 4بایههد باشههد .ب هرای ایههن منظههور دا بیههت
ص ر به ابتدای کد دستور ا ا ه می نماییم.
• دستورالعمل های طوالنی از قسمت های باالبی حا ظه نیز است اده می کنند.
0 0000 00
0000
CONTROL
MEMORY
128 WORD
MAPPING
0 1111 00
10000000
قسمت های
باالبی حا ظه
1 1111 11
12
OPCODE
1111
هه ه ههر دسه ه ههتورالعمل 4خانه ه ههه حا ظه ه ههه را به ه ههه خه ه ههود
اختصاص می دهد.
•
– تعداد دستورالعمل ها = 16
MAIN
64
– پد اندازه حا ظه کنتر = 64
درصه ه ههورتی که ه ههه از 128سه ه ههلو حا ظه ه ههه اسه ه ههت اده
شههودی 64سههلو انایههابی خههالی خواهههد بههود .کههه مههی
توانههد توسههط دسههتورالعمل هههای طههوالنی اسههت اده
گردد.
•
13
EXTRA
64
4
4
ADD :--------------------------BRANCH:------------
4
STORE:-----------------
4
EXCHANGE:------------
4
ADD M
MAP
SUB:---------…..
14
MUX
11
RAM
2048*16
AR
PC
11
16
MUX
SBR
CAR
DR
ROM 128*20
ALU
AC
16
15
:رمت ک ی دستورالعمل ها بصورت زیر است
I
4 BIT
11 BIT
OP-CODE
ADDRESS
نحوه درک دهی
دستورالعمل16
•
سلو حا ظه211=2048
:• چند دستورالعمل ساده
AC←AC + M[EA]
0000
ADD
If (AC<0) then (PC←EA)
0001
BRANCH
A[EA] ←AC
0010
STORE
AC←M[EA], M[EA] ←AC
0011
EXCHANGE
16
AD
ADDRESS
7Bit
BR
CD
CONDITION BRANCH
2Bit
2Bit
F3
F2
F1
FIELD 3
3Bit
FIELD 2
3Bit
FIELD 1
3Bit
• یلهدهای F1, F2, F3هم هی سهه بیتهی هسهوند ا ههر کهدام مهی تواننهد 7ریزعمهل را
مشاص نمایند.
•
یلد Conditionدابیتی است ا 4شرط را برای پرش مشاص می نماید.
• یلد Branchبه همراه یلد Addressمشاص کننهده درک ریزدسهتور بعهدی
می باشد.
17
ریزعمل
کد دادابی
سمهل
000
NOTHING
NOP
001
AC←AC+DR
ADD
010
AC←0
CLRAC
011
AC←AC+1
INCAC
100
AC←DR
ARTAC
101
AR←DR(0-10)
ACTAR
110
AR←PC
PCTAR
111
M[AR] ←DR
WRITE
18
کد دادابی
ریزعمل
سمهل
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
19
کد دادابی
ریزعمل
سمهل
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
-------------
--------
20
CD
شرط
سمبل
نوع انشعاب
00
1
U
Unconditional Branch
01
DR(15)
I
Indirect Addressing
10
AC(15)
S
Sign bit
11
AC=0
Z
Zero bit
21
BR
00
01
سمبل
JMP
عملکرد
True : CAR←AD
False: CAR←CAR+1
True: CAR←AD, SBR←CAR+1
CALL
False: CAR←CAR+1
10
RET
CAR← SBR
11
MAP
CAR(2-5) ←DR(11-14) ,CAR(0,1,6) ←0
22
• ریزعمل های مورد نیاز برای ااکش ی دستورالعمل:
AR←PC
DR←M[AR],PC←PC+1
AR←DR(0-10),CAR(2-5) ←DR(11-14), CAR(0,1,6) ←0
• دسههتورات سههمهلیک ااکشه ی دسههتورالعمل کههه از خانههه 64بههه بعههد حا ظههه کنتههر ذخیههره
می شوند.
JMP NEXT
JMP NEXT
MAP
23
U
U
U
ORG 64
FETCH : PCTAR
READ,INCPC
DRTAR
: • ریز عمل های دستور جم
ORG 0
ADD:
NOP
READ
ADD
I CALL
U JMP
U JMP
INDIRECT
NEXT
FETCH
:• ریزعمل های دستور انشعاب
ORG 4
BRANCH :
OVER:
NOP
NOP
NOP
ARTPC
S
U
I
U
JMP OVER
JMP FETCH
CALL INDIRECT
JMP FETCH
24
:Store • ریز عمل های دستور
ORG 8
STORE :
NOP
ACTDR
WRITE
I
U
U
CALL
JMP
JMP
INDIRECT
NEXT
FETCH
:Exchange • ریزعمل های دستور
ORG 12
EXCHANGE :
NOP
I CALL INDIRECT
READ
U JMP NEXT
ACTDR,DRTAC
U NEXT
WRITE
U JMP FETCH
25
• ریه ههز عمه ههل هه ههای دسه ههتور ااکش ه ه ی ا تولیه ههد درک مه ههوثر ب ه هرای درک دهه ههی یه ههر مسه ههتقیم
) (Indirectب هرای تمههامی دسههتور العمههل ههها مشههترک مههی باشههدی بههه همههین دلیههل ایههن
دستورات از خانه 64به بعد (بعد از همه دستورات) قرار می گیرند:
NEXT
NEXT
NEXT
26
JMP
JMP
MAP
JMP
RET
U
U
U
U
U
ORG 64
FETCH :
PCTAR
READ,INCPC
DRTAR
INDIRECT : READ
DRTAR
MAP
L
SELECT
I0
I1
T
1
I
S
Z
S1
S0
3
2
1 0
SBR
MUX
CAR
INC
MUX
CONTROL MEMORY
MICRO-OP
CD
BR
AD
7
27
• این مدار دارای سه ارادی I0, I1, Tا سه خراجی S0, S1, Lمی باشد.
• رابطههه بههین ارادی ا خراجههی ههها بههر اسههاک اینکههه بایههد کههدامیک از ارادی هههای MUX
انتخاب شوند ا چه زمان سیگنا Lعا گردد بصورت زیر خواهد بود:
S1 = I1
S0 = I0I1 + I’1T
L = I’1I0T
• در ااقه بهها اسههت اده از خراجههی هههای ایههن مههداری مقههداری کههه بایههد در CARقهرار گیههردی
بر اساک نوع دستورالعمل مشاص می شود.
28
F1
F2
F3
DEC 3*8
DEC 3*8
DEC 3*8
AND
ADD
DRTAC
ALU
PC
DRTAR
DR
MUX
PCTAR
LD
OR
LD
AR
AC
29