سازمان ثبات های عمومی
Download
Report
Transcript سازمان ثبات های عمومی
مهدی ایل بیگی
دانشگاه پیام نور دماوند
• :ALUمجری دستورات
• :CUایجاد سیگنال های کنترلی الزم
• :REGISTERSذخیره داده های میانی
مجموعه ثبات
واحد کنترل
ALU
2
• سازمان تک انباره ای
• سازمان ثبات های عمومی (چند ثباتی)
• سازمان پشته ای
3
• همواره یکی از اپرندها آکوموالتور است.
• نتایج عملیات به آکوموالتور انتقال داده می شود.
BUS
4096*16 RAM
ADDRESS
AR
PC
DR
AC
ALU
INPR
IR
TR
OUTR
4
• در این رش از چنند ثبنات عمومنویGENERAL REGISTERS
استفاده می شود.
• تمننامی ثبننات هننا مننی توانننند بننه عنننوان اپراننند دسننتورا م هننای ALUبکننار
برده شوند( .هم ب نوان مبداء ش هم ب نوان مقصد)
• مثال :رجیسترهای داده در پردازنده پنتیوم.
5
ورودی
حافظه
R1
R2
R3
R4
R5
R6
R7
DEC
SelA
MUX1
MUX2
A
SelB
B
SelD
Operation
ALU
6
بخش های مختلف یک دستورا م :
•
• انتخاب عم در 5( ALUبیت)
• انتخاب رجیسترهای مبداء
– مو تی پلکسر 3(1بیتی)
– مو تی پلکسر 3( 2بیتی)
• انتخاب رجیستر مقصد
– دیکدر ( 3بیتی)
7
3
3
3
5
D
S2
S1
OP-CODE
• پشته یک ساختار ) Last In First Out (LIFOاست.
• دش عم اصلی رشی پشته قاب انجام است PUSH :ش POP
• دسترس ن ی طق ن بننه عنصننر بنناالی پشننته امکانر ن یر اسننت ش ب نرای دسترس ن ی بننه ای ن عنصننر
SP = STACK
طقن یننک اشنناره زننر نینناز دارآننم کننه نننام آن
POINTERمی باشد.
• در ابتندا مقندار SP = 0منی باشند ش اش نین عنصنر در خاننه شنماره 1درج منی زنردد .ش
آخرآ عنصر در آدرس 0ذخیره خواهد شد.
• پن ازنر SP = 0شنود ش عملینات قبلنی درج باشند پشنته پنر خواهند شند ش ازنر SP
= 0شود ش عملیات قبلی ح ف باشد پشته خالی خواهد شد.
8
• رآز عم های الزم برای انجام عملیات ،Pushبشرطی که پشته پر نباشد:
SP ← SP+1
M[SP] ← DR
اگر مدردار SPمر ب ب ابر بررا 111باشرد بررا IF (SP=0) THEN (FULL←1) //
اعم ر ر ر ررال در در شر ر ر ر ر ه SPب ابر ر ر ر ر 000
EMPTY ← 0
خواهد شد و این یعنی ش ه پ است.
• رآز عم های الزم برای انجام عملیات Popبشرطی که پشته خالی نباشد:
]DR ← M[SP
SP ← SP-1
IF (SP=0) THEN (EMPTY←1) //
بررا 001باشرد بررا
SPب ابر ر ر 000
FULL ← 0
اگر مدردار SPمر ب ب ابر
اعم ر ررال حر ر ر ا شر ر ر ه
خواه ررد ش ررد و ای ررن یعن رری شر ر ه خ ررا ش ررده
است.
9
• یکننی از کاردردهننای پشننته ،ارزآنناتی عبننارات م اسننباتی مننی باشنند .ا بتننه ای ن عب نارات باینند
به شک هستانی ) (Postfixنمایش داده شود.
• مثالA*B+C/D => Polish Notation = AB*CD/+ :
• عملیات الزم برای م اسبه عبارت طوق با استفاده از پشته:
B
A
مح ویات
شه
D
C
A*B
C/D
A*B
10
A*B+ C/D
PUSH A
PUSH B
)MUL // (POP,POP, PUSH A*B
PUSH C
PUSH D
)DIV // (POP,POP,PUSH C/D
)ADD // (POP,POP, PUSH RESULT
PUSH A
POP A
SP ←SP-1
MEM[SP] ←A
A ←MEM[SP]
SP ←SP+1
1
SP ←SP+1
MEM[SP] ←A
A ←MEM[SP]
SP ←SP-1
2
MEM[SP] ←A
SP ←SP-1
SP ←SP+1
A ←MEM[SP]
3
سه
ه
1,3
2,3
1,2
11
• پشته ثباتی :استفاده از ت دادی ثبات برای پیاده سازی پشته:
– شآژگی ها:
• سرعت دسترس ی باال
• قیمت زآاد
• ت داد کم خانه های پشته
• پشته حاطظه ای :استفاده از قسمتی از حاطظه به عنوان پشته:
– شآژگی ها:
• سرعت دسترس ی پایین
• ارزان
• حجم زآاد
12
• CPUتک انباره:
– م موال یک اپرند آکوموالتور است.
– دستورات ارجاع به حاطظه ،تک آدرس ی خواهند بود.
• CPUچندثباتی:
– اپرندها ثبات هستند.
– دستورات سه آدرس ی ( یا دش آدرس ی).
• CPUش ه ای:
– اپرند تنها مردوط به دستورات Pushش Popمی باشد.
– دستورات یک آدرس ی ش صفر آدرس ی.
13
• برای بررس ی ای موضوع به مقایسه یک عملیات یکسنان در چهنار حا نت مختلنف بنرای
آدرس دهی می پردازآم:
• مثال :م اسبه A*B+C/Dبا استفاده از:
– دستورات سه آدرس ی
– دستورات دش آدرس ی
– دستورات یک آدرس ی
– دستورات صفرآدرس ی
14
• م اسبه A*B+C/Dبا استفاده از دستورات سه آدرس ی:
MUL R1, A, B
DIV R2, C, D
ADD R3, R1, R2
• م اسبه A*B+C/Dبا استفاده از دستورات دش آدرس ی:
R1, A
R1, B
R2, C
R2, D
R1, R2
15
MOV
MUL
MOV
DIV
ADD
LDA
MUL
STA
LDA
DIV
ADD
PUSH
PUSH
MUL
PUSH
PUSH
DIV
ADD
: با استفاده از دستورات تک آدرس یA*B+C/D م اسبه
•
: با استفاده از دستورات صفر آدرس یA*B+C/D م اسبه
•
A
B
TEMP
C
D
TEMP
A
B
C
D
16
• قا ب دستورا م ها شابسته به نوع طراحی CPUاست.
• بخش های مختلف یک دستورا م :
– OP-CODE
– آدرس ( حاطظه ،ثبات )....
– شیوه آدرسدهی
• طول دستورا م :
– می تواند ثابت باشد.
– می تواند متغیر باشد.
• تنوع دستورا م ها:
– کامریوترهای ( CISCدارای ت داد زآادی دستورا م )
– کامریوترهای ( RISCدارای ت داد کمی دستورا م )
17
ک ننامریوتر ه ننای مانن نند س ننری 80×86اینت ن ش س ننری ه ننای ب نناالتر مث ن پنتی ننوم ،از دس ننته
CISCبشمار می رشند.
در ای کامریوترها ت داد دستورا م ها زآاد ( 100تا )500است.
دارای دستورا م هایی هستند که ندرتا استفاده می شوند.
دارای رش های آدرسدهی متنوع ( 5تا 20رش ) می باشند.
در ای کامریوترها قا ب دستورات با طول متغیر می باشد.
در ای کامریوترها دستوراتی با عملوند حاطظه ای شجود دارند.
در ای کامریوترها برنامه نویس ی آسان است.
دارای دستورا م هایی هستند که کارهای زآادی انجام می دهند.
در ای کامریوترها دیکد کردن دستورات به طول می انجامد.
در ای کامریوترها دسترس ی به عملوند های حاطظه ای زمانبر است.
در ای کامریوترها کار کامرایلر ساده است.
•
•
•
•
•
•
•
•
•
•
•
18
19
•
•
•
•
•
•
•
•
•
•
•
•
•
در ای کامریوترها ت داد دستورات کم است.
دارای رش های آدرس دهی کمی هستند.
دارای رجیسترهای زآادی می باشند.
در ای کامریوترها اپرندها همواره در رجیسترها هستند.
مراج ات به حاطظه تنها در دستورات loadش storeمی باشد.
در ای کامریوترها دستورات با طول ثابت می باشند.
اجرای هر دستور در یک سیک زمانی صورت می پ یرد.
شاحد کنترل سخت اطزاری طراحی می زردد.
برنامه های ای کامریوتر طوالنی خواهند شد.
سرعت اجرای برنامه ها باال خواهد بود.
دیکد دستورات سریع می باشد.
استفاده از پرداز pipelineبصورت کارا.
استفاده از پنجره های همروشان برای طراخوانی سریع زآردرنامه ها.
•
در RISCبرای طراخوانی زآردرنامنه هنا از پشنته هنای حاطظنه ای بنرای ارسنال پارامترهنا شرشدی ش
درآاطن ننت پارامترهن ننای خرشمن ننی اسن ننتفاده نمن ننی شن ننود ،ش بجن ننای آن از پنجن ننره هن ننای ثبن نناتی همروشن ننان
استفاده می زردد.
•
پنجره های ثباتی همروشان دارای:
– ثبات های م لی ( )localبرای نگهداری متغیرهای م لی می باشند.
– ثب ننات ه ننای عم ننومی ( )globalبن نرای نگه ننداری پارامتره ننای مش ننتر ب ننین هم ننه رشآ ننه ه ننا م ننی
باشند.
– ثبات های مشتر با
• پنجره قبلی برای درآاطت پارامترهای شرشدی می باشند.
• پنجره ب دی برای ارسال پارامترهای خرشمی می باشند.
20
•
•
•
•
•
21
هر زآردرنامه ثبات های همروشان (پنجره) مخصوص به خود را دارد.
اشاره زری شجود دارد که به پنجره ط ال اشاره دارد.
با طراخوانی هر زآردرنامه ای اشاره زر یک شاحد اطزایش می یابد.
با باززشت از زآردرنامه ای اشاره زر یک شاحد کاهش می یابد.
با طراخوانی زآردرنامه:
.1پارامترهای ارسالی را در بخش مشتر (با رشآه ب دی) قرار می دهیم.
.2اشاره زر را یک شاحد اطزایش می هیم.
.3پ ن از اج نرای زآردرنام ننه پارامتره ننای باززش ننتی را در بخ ننش مش ننتر (ب ننا رشآ ننه قبل ننی)
قرار می دهیم.
.4اشاره زر را کاهش می دهیم.
common
win1
local
:تعداد ثبات های قابل دسترس ی توسط ه دریچه
Windows Size = L + 2C + G
common
win2
local
: تعداد کل ثبات های مورد نیا در پ دا شگ
common
Total = W(L + C) + G
local
win3
common
General
Registers
win4
local
common
22
• مشخصات ای :CPU
– رجیسترهای 32بیتی
– قا ب دستورات 32بیتی
– ت داد دستورات = 31
– رش های آدرسدهی:
• بالطص
• ثباتی
• نسبی
23
• یکی از شآژگی های CISCرش های مت دد آدرسدهی حاطظه می باشد.
• در هر دستورا م ت دادی از بیت ها م ین کننده نوع آدرس دهی هستند.
• تنوع رش های آدرس دهی ،زمان اجرا را اطزایش می دهد.
ADDRESS
24
ADD-MODE
OP-CODE
-1آدرس دهی ضمنی :عملوند در خود دستور مستتر است .مثال:
– CMA
– CLE
-2آدرس دهی بالطص :خود عملوند (ش نه آدرس آن) در دستور قرار داده می شود .مثال:
– MOV AX, 100
– ADD CX, 25H
-3آدرس دهی ثباتی :عملوند یکی از ثبات های CPUاست .مثال:
– MOV AX,BX
– SUB CX,AX
25
-4رش خود اطزایش ی یا خود کاهش ی :در ای رش آدرس عملوند در ثبات شجنود دارد ش پن
حاطظه مقدار آدرس بصورت خودکار اطزایش یا کاهش می یابد .مثال:
– Loopدر پردازنده پنتیوم
از اسنتفاده از
-5آدرس دهی مستقیم ( :)Directآدرس عملوند در داخ دستورا م قرار دارد .مثال:
Add
– M
– LDA temp
-6آدرس دهننی ریرمسننتقیم ( :)Indirectدر داخن دسننتورا م مکننان (آدرس) ،آدرس عملوننند را قنرار مننی
دهیم .مثال:
– ]Mov ax,[m
– ]Mov ax,[bx
26
-7آدرس دهی نسبی :شمارنده برنامه به آدرس درشن دستور اضاطه می شود:
Effective Address = ADDRESS + PC
-8آدرس دهی شاخصدار (:)Indexed
م توای ثبات شاخص ) (Index Registerبه آدرس دستور اضاطه می شود.
-9آدرس دهی با ثبات پایه (:)BASE
م توای رجیستر Baseبه آدرس دستور اضاطه می شود.
27
MODE
SYMBOL
RTL
DIRECT
LD ADR
AC←M[ADR]
INDIRECT
LD @ADR
AC ←M[M(ADR)]
RELATIVE
LD $ADR
AC ←M[PC+ADR]
IMMEDIATE
LD #NBR
AC ←NBR
INDEX
LD ADR(X)
AC ←M[ADR+XR]
REGISTER
LD R1
AC ←R1
REGISTER
INDIRECT
LD (R1)
AC ←M[R1]
INCREMENT
LD (R1)+
AC ←M[R1] ,R1++
DECREMENT
LD -(R1)
AC ←M[R1] ,R1- 28
• مقننادیر اش یننه ثبننات هننای R2 ،R1 ،PCش موجننودی حاطظننه در ذی ن داده شننده
است .مشخص کنید اجنرای دسنتورات برنامنه زآنر مقنادیر طنوق را چنه تغیینری منی دهند.
توجه شود که ثبات ها 16بیتی ،دستورات 2بایتی ش هر خانه حاطظه یک بایتی اسنت.
++عالمننت آدرسنندهی پن اطزاینننده ( )post incrementمننی باشنند ش کلیننه اعننداد
در مبنن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ننای 16هسن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ن ننتند.
مقادیر اش یه :
PC = 308 h
R1 = 100 h
R2 = FFE0 h
MEM[100 h] = 20 h
Add [R1],R2.low
Mov [R2]++,R1
29
بننا اجنرای دسننتور اشل 8بیننت پننایینی ثبننات R2بننا م توآننات خانننه ای از حاطظننه کننه R1بننه آن اشنناره
می کند جمع می شود ش در همان خانه از حاطظه ذخیره منی زنردد .بند ی اینکنه خاننه هنای حاطظنه 8
بیتننی هسننتند ش طق ن 8بیننت پننایینی حاصن جمننع ( ،)100hی نننی ) (00hدر حاططننه ذخیننره خواهنند
شد:
•
Mem[100]= E0+20=00
Add [r1],r2.low
بننا اجنرای دسننتور دشم ابتنندا مقنندار ثبننات R1در خانننه ای از حاطظننه کننه ثبننات R2بننه آن اشنناره مننی
نماینند ذخیننره مننی زننردد ش سن بننه د ین شجننود عملگننر ( )++مقنندار ثبننات R2نیننی یننک شاحنند اطنزایش
می یابد.
•
Mem[ffe0]= 00 h
R2=ffe1
Mov [r2]++,r1
مقنندار شننمارنده برنامننه PCنیننی بننا اج نرای هننر کنندام از دسننتورها دش شاحنند اط نزایش مننی یابنند زآ نرا هننر
دستور دشدایتی است ش در دش خانه از حاطظه ذخیره می زردد:
•
30
Pc=308+4=30c h