1
معماری کامپیوتر – درس 8 روشهای طراحی CPU
2
شمای کلی
مجموعه ثبات
ALU
واحد کنترل
3
وظائف
ALU : مجری دستورات
CU : ایجاد سیگنالهای کنترلی لازم
REGISTERS : ذخیره داده های میانی
4
روش های طراحی
سازمان تک انباره ای
سازمان چند ثباتی
سازمان پشته ای
5
سازمان تک انباره ای
یک آکومولاتور
مشابه با کامپیوتر پایه
4096*16 RAM
AR
PC
DR
AC
INPR
IR
TR
OUTR
BUS
ALU
ADDRESS
همواره یکی از اپرندها اکومولاتور است
6
سازمان ثبات عمومی
GENERAL REGISTER
تمامی ثباتها می توانند به عنوان اپراند دستورالعملهای ALU بکار برده شوند
مثال : رجیسترهای داده در پردازنده پنتیوم
R1
R2
R3
R4
R5
R6
R7
R8
MUX
MUX
DEC
ALU
8
قالب دستورالعملها
انتخاب عمل در ALU
انتخاب رجیسترهای مبدا
مولتی پلکسر 1
مولتی پلکسر 2
انتخاب رجیستر مقصد
دیکدر
OP-CODE
S1
S2
D
5
3
3
3
9
ارتباط با حافظه
R1
R2
R3
R4
R5
R6
R7
R8
MUX
MUX
DEC
ALU
INPUT
10
سازمان پشته
ساختار LIFO
PUSH
POP
دسترسی فقط به عنصر بالای پشته امکانپذیر است
فقط یک اشاره گر نیاز داریم
SP = STACK POINTER
11
PUSH
SP ← SP+1
M[SP] ← DR
IF ( SP=0) THEN (FULL←1)
EMPTY ← 0
12
POP
DR ← M[SP]
SP ← SP-1
IF ( SP=0) THEN ( EMPTY ←1)
FULL ← 0
13
کاربرد
عبارات محاسباتی
A*B+C/D
PULISH NOTATION
AB*CD/+
14
AB*CD/+
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)
15
AB*CD/+
A
B
PUSH A
PUSH B
16
AB*CD/+
A*B
C
D
MUL
PUSH C
PUSH D
PUSH A
PUSH B
17
AB*CD/+
A*B
C/D
DIV
MUL
PUSH C
PUSH D
PUSH A
PUSH B
18
AB*CD/+
A*B+ C/D
ADD
DIV
MUL
PUSH C
PUSH D
PUSH A
PUSH B
19
کدام مجموعه از عملیات ذیل می تواند یک پشته را پیاده سازی نماید ؟
20
انواع ساختار پشته
پشته ثباتی
سرعت دسترسی بالا
قیمت زیاد
تعداد کم
پشته حافظه ای
کند
ارزان
حجم زیاد
21
تاثیر نوع CPU بر قالب دستورات
تک انباره
معمولا یک اپرند آکومولاتور است
دستورات تک آدرسی
چندثباتی
اپرندها ثبات هستند
دستورات سه آدرسی ( یا دو آدرسی)
پشته ای
فقط اپرند مربوط به پوش یا پاپ
دستورات یک آدرسی و صفر آدرسی
22
تاثیر قالب دستورالعمل ها بر روی سرعت اجرا
مقایسه یک عملیات یکسان در سه حالت مختلف
محاسبه A*B+C/D
دستورات سه آدرسی
دستورات دو آدرسی
دستورات یک آدرسی
دستورات صفرآدرسی
23
دستورات سه آدرسی
MUL R1,A,B
DIV R2,C,D
ADD R3,R1,R2
24
دستورات دو آدرسی
MOV R1,A
MUL R1,B
MOV R2,C
DIV R2,D
ADD R1,R2
25
دستورات یک آدرسی
LDA A
MUL B
STA TEMP
LDA C
DIV D
ADD TEMP
26
دستورات صفرآدرسی
PUSH A
PUSH B
MUL
PUSH C
PUSH D
DIV
ADD
27
قالب دستورالعمل ها
قالب دستورالعملها وابسته به نوع طراحی CPU است
بخش های مختلف یک دستورالعمل
OP-CODE
آدرس ( حافظه ، ثبات ….)
شیوه آدرسدهی
28
طول دستورالعمل
ثابت
متغیر
تنوع دستورالعملها
کامپیوترهای CISC (پر دستور )
کامپیوترهای RISC (کم دستور )
29
CISC
Complex Instruction Set computer
سری 80×86 و پنتیوم
تعداد دستورالعملهای زیاد (100 تا 500)
دستورالعملهایی که ندرتا استفاده می شوند
روشهای ادرسدهی متنوع (5 تا 20 روش)
قالب دستورات با طول متغیر
دستوراتی با عملوند حافظه ای
30
CISC
برنامه نویسی آسان است
دستورالعملهایی که کارهای زیادی انجام میدهند
دیکد کردن دستورات به طول می انجامد
دسترسی به عملوند های حافظه ای زمانبر است
کار کامپایلر ساده است
31
RISC
Reduced Instruction set Computer
دستورات کم
روش های آدرس دهی کم
رجیسترهای زیاد
اپرندها همواره رجیستر هستند
تنها مراجعات به حافظه در دستورات load و store
دستورات با طول ثابت
اجرای هر دستور در یک سیکل زمانی
واحد کنترل سخت افزاری
32
RISC
برنامه های طولانی
سرعت اجرای بالا
دیکد سریع
استفاده از پردازش pipeline
استفاده از پنجره های همپوشان
33
فراخوانی سابروتین
ارسال پارامترهای ورودی
در یافت پارامترهای خروجی
عدم دسترسی به حافظه پشته
استفاده از ثباتها
34
پنجره های همپوشان
ثباتهای محلی (local)
ثباتهای عمومی (global)
ثباتهای مشترک با
پنجره قبلی ( دریافت آرگومان ها)
پنجره بعدی ( ارسال آرگومان ها)
35
فراخوانی سابروتین به صورت تودر تو
حداکثر چهار مرحله
هر سابروتین ثباتهای همپوشان ( پنجره ) مخصوص به خود را دارد
اشاره گری که همواره به پنجره فعال اشاره دارد
با فراخوانی هر سابروتین این اشاره گر یک واحد افزایش می یابد
با بازگشت از سابروتین این اشاره گر یک واحد کاهش می یابد
36
پنجره های همپوشان
ابتدا پارامترهای ارسالی را در بخش مشترک( با بعدی) قرار می دهیم
اشاره گر را یک واحد افزایش می هیم
پس از اجرای سابروتین
پارامترهای بازگشتی را در بخش مشترک (با قبلی) قرار می دهیم
اشاره گر را کاهش می دهیم
37
local
share
local
share
local
share
local
share
general
38
local
share
local
share
local
share
local
share
share
win1
win2
win3
win4
Size=L+2S+G
general
Total=W(L+S)+G
39
مثال
پردازنده RISCI
رجیسترهای 32 بیتی
قالب دستورات 32 بیتی
تعداد دستورات = 31
روشهای آدرسدهی
بلافصل
ثباتی
نسبی
40
RISCI
138 ثبات
ده ثبات عمومی
هشت پنجره 32 ثباتی
Local A
shareA,B
Local B
Share B,C
Local C
Share C,D
Local D
shareD,A
Share D,A
general
10
10
6
6
41
ویژگی های CISC
روشهای متعدد آدرسدهی حافظه
در هر دستورالعمل تعدادی از بیتها معین کننده نوع آدرسدهی هستند
تنوع روشها ، زمان اجرا را افزایش می دهد
OP-CODE
ADD-MODE
ADDRESS
42
روش های آدرسدهی
ضمنی : عملوند در خود دستور مستتر است
CMA
CLE
بلافصل: خود عملوند ( و نه آدرس آن) در دستور قرار داده میشود
MOV AX,100
ADD CX,25H
43
روش های آدرسدهی (ادامه)
روش ثباتی : عملوند یکی از ثباتهای CPU است
MOV AX,BX
SUB CX,AX
روش خود افزایشی یا خود کاهشی
Auto Increment / Auto Decrement
Loop در پردازنده پنتیوم
44
روش های آدرسدهی (ادامه)
ادرسدهی مستقیم (Direct) : آدرس عملوند در داخل دستورالعمل قرار دارد
Add M
Lda temp
آدرسدهی غیرمستقیم (Indirect) : در داخل دستورالعمل مکان آدرس عملوند را قرار می دهیم
Mov ax,[m]
Mov ax,[bx]
45
روش های آدرسدهی (ادامه)
آدرسدهی نسبی :
شمارنده برنامه به آدرس اضافه میشود
EA = ADDRESS + PC
آدرسدهی شاخصدار(INDEX)
محتوای یک رجیستر به آدرس دستور اضافه میشود
آدرسدهی با ثبات پایه (BASE)
محتوای یک رجیستر به آدرس دستور اضافه میشود
46
47
مقادیر اولیه ثباتهای PC،R1 ،R2 و موجودی حافظه در ذیل داده شده است . مشخص کنید اجرای دستورات برنامه زیر مقادیر فوق را چه تغییری می دهد. توجه شود که ثباتها 16 بیتی ، دستورات 2 بایتی و هر خانه حافظه یک بایتی است . جهت انتقال از راست به چپ و ++ علامت آدرسدهی پس افزاینده (post increment ) می باشد . کلیه اعداد در مبنای 16 هستند مقادیر اولیه : pc=308 r1=100 r2=ffe0 mem[100]=20
Add [r1],r2.low
Mov [r2]++,r1
48
Add [r1],r2.low
Mem[100]= E0+20=00
Mov [r2]++,r1
Mem[ffe0]=100
R2=ffe1
Pc=308+4=30c