کنترل ریزبرنامه نویسی شده

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