department of computer and it engineering university of kurdistan computer architecture
DESCRIPTION
Department of Computer and IT Engineering University of Kurdistan Computer Architecture Instruction Set Architecture (ISA) By: Dr. Alireza Abdollahpouri. Instruction Set Architecture (ISA). - PowerPoint PPT PresentationTRANSCRIPT
Department of Computer and IT EngineeringDepartment of Computer and IT EngineeringUniversity of KurdistanUniversity of Kurdistan
Computer ArchitectureInstruction Set Architecture (ISA)
By: Dr. Alireza AbdollahpouriBy: Dr. Alireza Abdollahpouri
2
Instruction Set Architecture (ISA)
مشتمل بر تمام آن چيزي است كه برنامهنويسان )برنامه نویسان به زبان سطح پایین و طراحان
کامپایلر( براي خلق برنامهاي با عملكردي درست نيازمند دانستن آنها هستند. همچنین مجموعه
اطالعاتی است که یک طراح پردازنده برای پیاده سازی به آن نیاز دارد. در واقع نقطه اشتراک
طراحان نرم افزار و سخت افزار میباشد.
يكي از كليدي ترين واسطهاي بين سختافزار و نرم افزار سطح پايين، معماري مجموعهي
یک سطح تجريد ISA است. (ISA)دستورالعمل است كه اين امكان را فراهم آورده تا
پيادهسازيهاي متعدد با قيمت و كارآيي متفاوت از يك سختافزار خاص وجود داشته باشد و
همهي آنها بتوانند نرم افزار واحدي را اجرا كنند.
Intel Pentium AMD
Instruction Set Architecture (ISA)
3
مجموعه دستورالعملها ) تعداد و نوع آنها(•قالب دستورالعملها•مجموعه رجیسترها•محل ذخیره سازی عملوندها•روشهای آدرسدهی )نحوه دسترسی به عملوندها( •نحوه برخورد با استثناها و وقفه ها•و تصمیمات کلی دیگر )نحوه فراخوانی زیربرنامه ها - •
ترتیب بایتها در حافظه و ...(
ISA شامل موارد زیر است:
Instruction Set Architecture (ISA)
4
5
برای استفاده کننده نهائی•هیچ!
برای برنامه نویس سطح باال• خیلی کم. تا حدی که بتواند کامپایلر مناسب را انتخاب
نموده و عملکرد برنامه را بهینه کند.
OSبرای برنامه نویس سطح پائین/ طراح •این افراد باید اطالعات کافی در مورد رجیسترها،
ساختار حافظه، انواع داده های موجود و عملکرد دستورات داشته باشند.
برای طراحان کامپیوتر•این افراد نیز باید اطالعات فوق را داشته باشند تا
بتوانند اجزا سخت افزای مورد نیاز را انتخاب کنند.
چقدر است؟ چقدر است؟ ISAISAاهمیت اهمیت
How to speak to Computers?
High Level Language Program
Assembly Language Program
Machine Language Program
Control Signal Specification
Compiler
Assembler
Machine Interpretation
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
lw $15, 0($2)lw $16, 4($2)sw $16, 0($2)sw $15, 4($2)
0000 1001 1100 0110 1010 1111 0101 10001010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111
زبان سطح باال
زبان اسمبلی
زبان ماشین
6
7
ISA- Where are the instructions?
Harvard architecture
CPU
InstructionStorage
DataStorage
CPU
Inst. &
data Storage
Von-Neumann architecture
CPU
L1Inst.
Cache
L1Data
Cache
L2Cache
Memory
8
Key ISA decisionsoperations
– how many?– which ones
operands
– how many?– location– types– how to specify?
instruction format
– size– how many formats?
c = a + bdestination operand
Source operands
operation
(Add R1,R2,R6)
9
قالب دستورالعمل ها
قالب دستورالعملها وابسته به نوع است.CPUطراحی
بخش های مختلف یک دستورالعملOP-CODE).... آدرس آپراندها ) حافظه ، ثباتشیوه آدرسدهی
direct load:مثال R3 36
00 0101 011 00100100 R3 M[36]
Mode op-code register memory address
10
در مورد مزایا و معایب هر کدام بحث کنیددر مورد مزایا و معایب هر کدام بحث کنید
طول دستور ثابت است
طول دستور متغیراست
قالب دستورالعمل ها – طول دستورالعمل
11
کامپیوتر دستورات مجموعه
از مختلف درکامپیوترهای استفاده مورد دستورات برای استفاده مورد های نشانه عملکرد، تعداد، لحاظ
این با هستند متفاوت بسیار باینری کد و اسمبلی، زیر گروههای از دستوراتی دارای آنها تمامی وجود
میباشند:داده انتقال دستورات -
و منطقی محاسباتی، - دستوراتجابجائی
برنامه کنترل - دستورات
12
دستورات معمول انتقال اطالعات
نام فرم سمبولیک
Load LD
Store ST
Move MOV
Exchange XCH
Input IN
Output OUT
Push PUSH
Pop POP
حافظه بین داده انتقالرجیسترها و
بین داده انتقالرجیسترها
حافظه بین داده انتقال دو های داده تعویصرجیسترها و
رجیستر یک یا و رجیسترحافظه و
بین داده انتقال و خروجی/ورودی
رجیسترها
بین داده انتقالرجیسترها و پشته
13
دستورات معمول محاسباتی
نام دستور نماد دستور
افزایش دهنده یک Increment INC
کاهش دهنده یک Decrement DEC
جمع Add ADD
تفریق Subtract SUB
ضرب Multiply MUL
تقسیم Divide DIV
جمع با بیت نقلی Add with carry ADDC
تفریق با بیت قرضی Subtract with borrow
SUBB
2مکمل Negate )2’s complement(
NEG
14
دستورات منطقی و عملیات روی بیت
نام دستور نماد دستور
صفر کردن Clear CLR
مکمل کردن Complement COM
- AND AND
- OR OR
- XOR XOR
صفر کردن بیت نقلی Clear carry CLRC
مکمل کردن بیت نقلی Complement carry COMC
فعال کردن وقفه Enable Interrupt EI
غیرفعال کردن وقفه Disable Interrupt DI
دستورات شیفتنام دستور فرم نمادین
شیفت به راست Logical Shift Right SHR
شیفت به چپ Logical Shift Left SHL
شیفت ریاضی به راست Arithmetic Shift Right SHRA
شیفت ریاضی به چپ Arithmetic Shift Left SHLA
چرخش به راست Rotate Right ROR
چرخش به چپ Rotate Left ROL
چرخش به راست از طریق بیت نقلی
Rotate Right through carry RORC
چرخش به چپ از طریق بیت نقلی
Rotate Left through carry ROLC
15
16
دستورات متداول کنترل برنامه
نام دستور فرم نمادین
انشعاب Branch BR
پرش Jump JMP
رد کردن SKIP SKP
صدا زدن Call CALL
بازگشت Return RET
مقایسه Compare) By subtraction( CMP
تست Test) By ANDing( TST
Operand Location (محل عملوندها(
• Accumulator (انباره)• Stack (پشته)• Registers (ثباتها)• Memory (حافظه)
We can classify most machines into 4 types: 1- accumulator, 2- stack, 3- register-memory (most operands can be registers or memory) , 4- load-store (arithmetic operations must have register operands).
18
Operand Location
19
سازمان رجيستر عمومی
General Registers
می توانند به عنوان اپراند تمامی رجیسترها بکار برده شوند.ALUدستورالعملهای
مثال: رجیسترهای پردازندهMIPS
R1
R2
R3
R4
R5
R6
R7
MUXA MUXBDEC
ALU
Loads
OPR
S1
S2
D
Output
A B
clock
20
R0
21
در شکل قبل:متصل شده MUXخروجی هر رجیستر به دو •
است. اینکار باعث میشود تا هر یک از آنان را انتخاب ALUبتوان آزادانه بعنوان مبدا عملیات
نمود. را به هر یک از ALUبرای اینکه بتوان خروجی •
رجیستر ها منتقل نمود این خروجی به ورودی تمام رجیسترها متصل شده و عالوه
بر آن با استفاده از یک دیکودر مقصد عملیات را مشخص میکنیم.
ممکن است که قادر به انجام عملیات ALUیک •مختلفی باشد. برای انتخاب یک عمل مورد
استفاده میشود. OPRنیاز از خطوط کنترلی
مجموعه رجیسترهای عمومی ALUو عملیات
22
برای مثال فرض کنید که میخواهیم عملیات زیر را انجام دهیم:
R1 R2 + R3برای انجام این عمل واحد کنترل باید سیگنالهای الزم
,MUXAرا برای انتخاب ورودیهای متناسب دیکودر MUXB , وALU :انتخاب نماید
یعنی MUXA تعیین مقدار مناسب برای ورودی •S1 طوری که محتوی رجیستر R2 در روی باس A
قرار گیرد.یعنی MUXB تعیین مقدار مناسب برای ورودی •
S2 طوری که محتوی رجیستر R3 در روی باس B قرار گیرد.
را ALUکه OPRتعیین مقدار الزم برای ورودی • نماید. A+Bوادار به انجام عمل جمع
به Dدر نهایت انتخاب مقدار مناسب برای دیکور •منتقل R1را به رجیستر ALUنحویکه خروجی
نماید.
ALUمثالی از عملیات
23
سازمان پشته Stackيا
ساختارLIFOPUSHPOP دسترسی فقط به عنصر باالی پشته امکانپذیر
است فقط یک اشاره گر نیاز داریمSP = STACK
POINTER
24
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)
25
A
B
PUSH A
PUSH B
AB*CD+/
26
A*B
C
D
MUL
PUSH C
PUSH D
PUSH A
PUSH B
AB*CD+/
27
A*B
C/D
DIV
MUL
PUSH C
PUSH D
PUSH A
PUSH B
AB*CD+/
28
A*B+ C/D
ADDDIV
MUL
PUSH C
PUSH D
PUSH A
PUSH B
AB*CD+/
بر تعداد دستورالعملها ISAتاثیر(Instruction Count)
Code sequence for A = B+C for five classes of instruction sets:
Memory to Memorymov A Badd A C
Stackpush Bpush C
addpop A
Accumulatorload Badd C
store A
Register(Register-memory)
load R1,Badd R1,Cstore A,R1
Register(Load-store)Load R1, BLoad R2,C
Add R1,R1,R2Store A,R1
از این نوع استMIPS پردازنده از این نوع استMIPS پردازنده
29
Instruction cycle
The CPU uses repeating machine cycles to execute instructions in the program, one by one, from beginning to end. A simplified cycle can consist of three phases: fetch, decode and execute
30
Example: c = a+ b (first step)
abc
31
Load R0, a
Load R1, b
ADD R2,R0,R1
Store c, R2
abc
Example: c = a+ b (second step)
32
Load R0, a
Load R1, b
ADD R2,R0,R1
Store c, R2
abc
Example: c = a+ b (third step)
33
Load R0, a
Load R1, b
ADD R2,R0,R1
Store c, R2
abc
Example: c = a+ b (fourth step)
34
Load R0, a
Load R1, b
ADD R2,R0,R1
Store c, R2
Addressing Objects: Endianess and Alignment
Big Endian: address of most significant byte = word address (xx00 = Big End of word)
IBM 360/370, Motorola 68k, MIPS, Sparc, HP PALittle Endian: address of least significant byte = word address (xx00 = Little
End of word)Intel 80x86, DEC Vax, DEC Alpha (Windows NT)
msb lsb3 2 1 0
little endian byte 0
0 1 2 3big endian byte 0
Alignment: require that objects fall on address that is multiple of their size.
0 1 2 3
Aligned
NotAligned
35
36
روشهاي آدرس دهی
و حافظه در شده ذخیره داده روی بر را عملی کامپیوتر یک دستورات
یک عملوند کردن مشخص روش میدهند. انجام CPU رجیسترهای یا
نامیده addressing mode یا و دهی آدرس حاالت دستورالعمل
میشود.
اصوال حاالت مختلف آدرس دهی عملوند دستور، تسهیالت زیر را در
سیستم فراهم می آورد:
قابلیت ایجاد شمارنده برای برنامه حلقه، و شاخص بندی در داده ها
و هم چنین ایجاد اشاره گر حافظه و جابجایی برای کاربر فراهم
می شود.
.امکان تقلیل تعداد بیت های قسمت آدرس دستور، فراهم می شود
دهی آدرس های حالت انواع
دهی آدرس ( ضمنیImplied)دهی آدرس ( بالدرنگImmediate)دهی آدرس ( ثباتRegister) بکمک مستقیم غیر دهی آدرس ( ثباتRegister Indirect)خودکار ) کاهشی یا و افزایش دهی آدرسAutoincrement
(Autodecrement یا دهی آدرس ( مستقیمdirect) غیر دهی آدرس ( مستقیمIndirect)دهی آدرس ( نسبیrelative)دهی آدرس ( شاخصindex)پايه ثبات با دهی آدرس
37
38
دهی آدرسضمنی
Implied Addressing Mode
دستورالعمل داخل در ضمنی بصورت اپراندها روش این در میشوند. مشخص
دستور مثل CMA میکند متمم را آکوموالتور محتوی که.کامپیوترهای در استفاده مورد آدرسی صفر دستورات stack
machine زیرا میکنند استفاده ضمنی دهی آدرس از نیز میشوند. گرفته نظر در پشته باالی در ضمنی بطور عملوندها
39
دهی آدرسبالدرنگ
Immediate Addressing Mode
خود داخل در عملوند مقدار روش این در.میشود داده دستورالعمل
بکار رجیسترها دهی مقدار برای دهی آدرس مد این.میرود
پردازنده در زیر دستور مثل x86
MOV CX, 1024
OperandInstruction
40
دهی آدرسرجیستري
Register Addressing
پردازنده رجیسترهای داخل در عملوندها روش این در 2k تعداد میتوان بیت K از استفاده با. دارند قرار
.نمود مشخص را رحیسترپردازنده در زیر دستور مثل x86 ADD AL, BL
R Instruction
Operand
CPU registers
41
رجيستري دهی آدرس مستقیم غیر
Register Indirect Addressing
مشخص را رجیستری دستورالعمل روش این در را حافظه در عملوند آدرس آن محتوی که میکند
.نمود خواهد مشخصپردازنده در زیر دستور مثل x86
MOV BX,[SI]
R
Instruction
0100
CPU registers
Operand
Memory
0100
42
یا و افزایش دهی آدرسخودکار کاهشی
Autoincrement or Autodecrement addressing
غیر رجيستري دهی آدرس مشابه روش این بعد رجیستر مقدار که تفاوت این با است مستقیم
موثر آدرس محاسبه برای استفاده از قبل یا.میابد کاهش یا و افزایش
R=R+1R=R-1
R
Instruction
0100
CPU registers
Operand
Memory
0100
43
دهی آدرسمستقیم
Direct Addressing Mode
دستورالعمل داخل در عملوند آدرس روش این در.میشود ذکر
پردازنده در زیر دستور مثل x86
MOV AX,[3000]
Address
Instruction
Operand
Memory
44
Address
Instruction Operand
Memory
دهی آدرس مستقیم غیر
Indirect Addressing Mode
را حاقطه از محلی دستورالعمل در موجود آدرس روش این در این حالت در دارد. قرار درآنجا عملوند آدرس که میکند مشخص
است: نیاز مورد حافطه به رجوع دوبار عملوند به دسترسی برای مقدار خواندن برای دیگر بار و آن آدرس کردن پیدا برای یکبار آن.
10010111 00010001
00010001
45
دهی آدرسنسبی
Relative Addressing Mode
مشخص آدرس جمع از موثر آدرس روش این در حاصل PC محتوی و دستورالعمل داخل در شده
میشود:Effective Address= address part of instruction + content of PC
Address
Instruction
PC
+
Operand
Memory
46
دهی آدرسدار شاخص
Index Addressing Modeو دستورالعمل داخل در شده مشخص آدرس جمع از موثر آدرس روش این در
حاصل میشود نامیده ایندکس رجیستر که مخصوص رجیستر یک محتوی:میشود
Effective Add.= address part of instruction + content of index registerکه. میشود استفاده آرایه یک های داده به دسترسی برای روش این از معموال
داده فاصله و میشود مشخص دستورالعمل در حافظه در ها داده شروع محل.میگردد تعیین ایندکس رجیستر توسط شروع محل تا نظر مورد
Address
Instruction
Index Register
+
Operand
Memory
47
PC = 200
XR = 100
R1 = 400
AC
صورت در آکوموالتور مقدار آدرس در موجود دستور اجرای
مختلف حالتهای برای 200چیست؟ دهی آدرس
200
399
400
500
600
702
800
201
202
AC بارکردن
دستور بعدی
= آدرس
آدرس حافظهحالت
مثال
48
مثال
محتوای اکوموالتور
آدرس مؤثر حاالت آدرس دهی
800 500 مستقیم
500 201 بالفصل
300 800 غیرمستقیم
325 702 نسبی
900 600 شاخص دار
400 - ثبات
700 400 غیرمستقیم از طریق ثبات
700 400 افزایش خودکار
450 399 کاهش خودکار
49
RISC vs. CISC
دو دیدگاه متفاوت در معماری کامپیوتردو دیدگاه متفاوت در معماری کامپیوتر
50
دستورات مجموعه با کامپیوترهایCISC پیچیده
شده انتخاب دستورات مجموعه از متاثر کامپیوتر یک معماری .است آن برای
کم دستورات تعداد تا بود این بر سعی اولیه های کامپیوتر در .باشد ممکن آن افزاری سخت سازی پیاده تا باشد ساده و
تعداد آن شدن ارزان و افزار سخت زمینه در پیشرفت با افزوده آنها پیچیدگی بر و یافته افزایش کامپیوترها دستورات
در را کاربران های نیاز بیشتر چه هر تا بود این هدف گردید. باال سطح زبانهای بین فاصله کاهش وبا گنجانده افزار سخت
ساده را باال سطح دستورات ترجمه کامپیوتر کار دستورات و بسیار تعداد و دستور 200 تا گاها کامپیوترها نوع این کنند. تر
Complex را ها کامپیوتر این داشتند. دهی آدرس مد زیادیinstruction set computer (CISC) مینامند.
51
CISC کامپیوترهای های ویژگی
عدد 200 مثال ( دارند دستورالعمل زیادی تعداد(معموال که دارند ویژه کارهای انجام برای دستوراتی
میگیرند قرار استفاده مورد بندرتدارند دهی آدرس مد زیادی تعداداست متفاوت ها دستورالعمل طولاپراندهای روی بر را عملیاتی که دارند دستوراتی
.میدهند انجام حافظه در موجودهست نیاز کالک چندین به دستورات اجرای برای.
52
کاهش دستورات مجموعه با کامپیوترهای RISCیافته
معماری RISC سازمان زمینه در مهم ابداعی .میرود بشمار کامپیوتر
تر ساده با تا است شده سعی معماری این در قدرت بر ها دستورالعمل مجموعه کردن
.شود افزوده پردازنده
53
The Semantic Gap
بین اختالف باال سطح زیانهای پیشرفت با ماشین زبان و باال سطح های برنامه
معماریهای از یک یافت. هر گسترش این کاهش برای مختلقی روش فوق
ترجمه تا کردند معرفی اختالف موثرتری بطرز باال سطح زبانهای
.شود انجامماشین زبان
باال سطح زبان
Th
e Sem
antic
Gap
پیچیده ماشین زبان دستورات CISC : نگرش•.گردد نزدیکتر باال سطح زبان به و تر
تر ساده ماشین زبان دستورات RISC : نگرش•.گردد نزدیکتر برنامه نیازهای به و
54
RISC های ویژگی
دارند کمی و ساده دستوراتاجرا بسرعت را دستورات بتوان که است این هدف
اجرا سیکل یک در RISC دستورات اغلب کرد. )رمزگشایی و ازواکشی بعد( میشوند
عمل میشوند اجرا مشابهی زمان در دستورات چون pipelineبود خواهد باالیی بازده دارای.
کنترل واحد شدن ساده باعث دستورات بودن کم شدن کم به منجر که میشود ارتباطی ومسیرهای
پردازنده ساخت برای نیاز مورد ترانزیستورهای تعداد..میدهد افزایش نیز را پردازنده سرعت اینکار میشود
ساخته می بندی سیم بروش کنترل واحد ضمن در.شود
55
RISC های ویژگی
به محدود حافظه به دسترسی• است Storeو load دستورات
یک در معموال حافظه به رجوع عمل آنجائیکه از– کامپایلر در نمیباشد تمهیداتی امکانپذیر سیکل
استفاده موثرتری بطور pipelineتا میشود استفادهشود.
عمل رجیسترها محتوی روی بر دستورات باقی–میکنند.
56
RISC های ویژگی
آنها دهی آدرس مدهای تعداد•است کم
دهی آدرس مدهای از فقط معموال–میشود: استفاده زیر
•register addressing
•direct addressing
•register indirect addressing
•displacement addressing
57
RISC های ویژگی
فرمت و طول دستورات• دارند یکسانی
خواندن تا میشود باعث - اینکار ساده و سریع آنها رمزگشائی و دستورات
طول شدن معلوم تا نیست الزم باشد. زیراکرد. صبر آن رمزگشایی برای دستور
سهولت باعث فرمت - یکسانی همه ادرس و کد زیرا میگردد رمزگشایی
دارند. قرار یکسانی محل در دستورات
58
RISC های ویژگی
دارند. زیادی رجیسترهای تعداد• شدن کوچگ باعث دستورات شدن کم–
برای فضا شدن آزاد و کنترل واحد رجیستر بیشتری تعداد گنجاندنمیشود.
و میانی نتایج محلی، متغیرهای– رجیسترها داخل در توابع پارامترهای
حافظه به رجوع تعداد و شده ذخیرهمی کند. پیدا کاهش
59
RISC های ویژگی سایر
ازتکنیک استفاده pipelining باهمپوشانی که و شده اجرا و رمزگشائی واکشی، های سیکل منجر سیکل یک در دستور هر اجرای به نهایتا
.میشودداخل در رجیستر زیادی تعداد CPU دارد وجودهمپوشانی تکنیک از استفاده register windows
و تابغ زدن صدا سرعت افزایش باعث که.میشود آن از بازگشت
ترجمه در کارائی افزایش برای کامپایلر از حمایت باال سطح های برنامه
60
RISC, CISC مقایسه
دستور ترجمه مثال برای a = a * b دو برای :بود خواهد زیر بصورت فوق معماری
CISC MULT a, b
RISC LOAD R1, aLOAD R2, bMUL R1,R2STORE a, R1
* a = a دستور ترجمه مثال برای•b بصورت فوق معماری دو برای
:بود خواهد زیر این بر سعی CISC معماری در•
دستورزبان کمی تعداد با که است انجام نظر مورد عمل ماشین
بر سعیRISC در حالیکه در. شود دستوراتی از که است این
در دستور هر که شود استفاده در. باشند اجرا قابل پالس یک
چندین دارای RISC برنامه نتیجه احتیاج که بود خواهد دستور خط
.دارد بیشتری حاقظه به
61
RISC, CISC مقایسه
کارائی محاسبه فرمول
CISC میکند سعی قسمت این تا
کند پیدا کاهش
RISC میکند سعی قسمت این تا
کند پیدا کاهش
CPU Execution
Time
Instruction Count
CPI Clock Cycle Time= X X
62
RISC پیشگامان
ایده RISC جمله از. گردید معرفی 80 دهه در نمود اشاره زیر موارد به میتوان آن پیشگامان
IBM 801Stanford MIPSBerkeley RISC 1 and 2
63
RISC کاربردهای
مشهور های پردازنده از تعدادی•از: عبارتند RISC بر مبتنی
–ARM/StrongARMاستفاده همراه تلفنهای در که میشود
–MIPS Rxx00مورد بازی های دستگاه برخی در که است استفاده
–Hitachi SH های سیستم در استفاده مورد embedded
–POWER/PowerPCدر استفاده مورد MACکامپیوترهای
–Intel Pentium II and III معماری از اگرچه CISC را RISC های ویژگی از بسیاری ولی میکنند پیروی
دارا هستند.
64
overlapped register windows
بخش آن از بازگشت و فرعی برنامه زدن صدا میدهد. اختصاص بخود را برنامه اجرای از مهمی
در زیادی تاثیر میتواند آن به بخشیدن سرعت لذاباشد. داشته پردازنده کارائی افزایش
دستوراتی فرعی برنامه یک زدن صدا هنگام ذخیره را رجیسترها مقادیر که میشوند استفاده
دهند. انتقال را پارامترها و کنند،بازگشتی مقدار فرعی برنامه از بازگشت برای
مقادیر و شده منتقل زننده صدا برنامه به تابع.میشوند بازیابی رجیسترها شده ذخیره
65
overlapped register windows
معمارهای از دربرخی RISC توابع بین انتقال سهولت برای به نیاز تا میشود استفاده رجیسترها ای پنجره همپوشانی از
نمایند. حذف را رجیسترها مقادیر بازیافت و ذخیرهرجیسترها از ای پنجره میشود زده صدا تابعی که زمان هر
اختصاص آن به پردازنده در رجیسترموجود بانک میان ازمی یابد.
برگشت با میشود. انجام پوینتری افزایش طریق از اینکار میشود. داده کاهش آن قبلی مقدار به پوینتر تابع از
توابع همجوار )فراخوانی شونده برای استفاده مورد پنجره اشتراک به امکان تا دارند همپوشانی و فراخوانی کننده(
باشد. داشته وجود تابع دو بین ها داده گذاشتن
مثال
دارای که است شده معرفی کتاب »مانو« سیستمی در است: زیر مشخصات با رجیستری بانک
است رجیستر 74 دارای بانک این.های رجیستر R0 تاR9 قابل عمومی رجیسترهای بعنوان
هستند. توابع تمامی استفادهگروه )پنجره( 4 به رجیسترها بقیهA,B,C,D شده تقسیم
اند.رجیستر دسته دو و اختصاصی رجیستر 10 دارای پنجره هر
.است مجاور های پنجره با با مشترک تائی 6از و محلی متغیرهای ذخیره برای اختصاصی رجیسترهای از
.میشود استفاده پارامترها انتقال برای مشترک رجیسترهاینماید استفاده رجیستر 32 از میتواند تابع هر ترتیب این به
67
R15مثال
R10R73
R64R63
R58
Common to D and A
Local to D
Proc. DR57
R48R47
R42R41
R32R31
R26R25
R16R15
R10
Proc.A
Proc.B
Proc. C
Local to A
Local to B
Local to C
Common to D and C
Common to B and C
Common to B and A
Common to D and A
R9
R10
Global Registers
68
overlapped register windows
هر برای استفاده قابل رجیسترهای محاسبه نحوه است. زیر صورت به تابع
=G عمومی رجیسترهای تعداد =L پنجره هر اختصاصی رجیسترهای تعداد =C پنجره دو بین مشترک رجیسترهای تعداد =W ها پنجره تعداد
=L+2C+G پنجره اندازه( =L+C)W+G بانک در رجیسترها کل تعداد
رجیستری
69
RISC:Berekely پردازنده از مثالیRISC I
های معماری اولین از یکی RISC در که است شد. مطرح برکلی دانشگاه
بیتی است: 32 پردازنده اینهای داده از میتواند و بوده بیتی 32 آدرس دارای
.نماید استفاده بیتی 32و16و8نسبی و بالدرنگ رجیستری، دارد: دهی آدرس مد سهرجیستر 10 شامل تائی 138 رجیستری بانک یک
دارد. رجیستری 32 پنجره 8 و عمومی31 دارد. دستورالعمل
70
Brekely RISC Iدستورات فرمت
Opcode Rd 0 Rs S2 Not Used
31 24 23 19 18 14 13 12 5 4 0
Opcode Rd 1 Rs S2
31 24 23 19 18 14 13 12 0
Opcode COND Y
31 24 23 19 18 0
PC relative Mode
Register Immediate mode: S2=operand
Register mode: S2=register
71QuestionsQuestionsQuestionsQuestions