department of computer and it engineering university of kurdistan computer architecture

Post on 30-Dec-2015

32 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

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 Presentation

TRANSCRIPT

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

top related