department of computer and it engineering university of kurdistan computer architecture

71
Department of Computer and IT Department of Computer and IT Engineering Engineering University of Kurdistan University of Kurdistan Computer Architecture Instruction Set Architecture (ISA) By: Dr. Alireza Abdollahpouri By: Dr. Alireza Abdollahpouri

Upload: cyrus-massey

Post on 30-Dec-2015

32 views

Category:

Documents


3 download

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

Page 1: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

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

Page 2: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

2

Instruction Set Architecture (ISA)

مشتمل بر تمام آن چيزي است كه برنامهنويسان )برنامه نویسان به زبان سطح پایین و طراحان

کامپایلر( براي خلق برنامهاي با عملكردي درست نيازمند دانستن آنها هستند. همچنین مجموعه

اطالعاتی است که یک طراح پردازنده برای پیاده سازی به آن نیاز دارد. در واقع نقطه اشتراک

طراحان نرم افزار و سخت افزار میباشد.

Page 3: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

يكي از كليدي ترين واسطهاي بين سختافزار و نرم افزار سطح پايين، معماري مجموعهي

یک سطح تجريد ISA است. (ISA)دستورالعمل است كه اين امكان را فراهم آورده تا

پيادهسازيهاي متعدد با قيمت و كارآيي متفاوت از يك سختافزار خاص وجود داشته باشد و

همهي آنها بتوانند نرم افزار واحدي را اجرا كنند.

Intel Pentium AMD

Instruction Set Architecture (ISA)

3

Page 4: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

مجموعه دستورالعملها ) تعداد و نوع آنها(•قالب دستورالعملها•مجموعه رجیسترها•محل ذخیره سازی عملوندها•روشهای آدرسدهی )نحوه دسترسی به عملوندها( •نحوه برخورد با استثناها و وقفه ها•و تصمیمات کلی دیگر )نحوه فراخوانی زیربرنامه ها - •

ترتیب بایتها در حافظه و ...(

ISA شامل موارد زیر است:

Instruction Set Architecture (ISA)

4

Page 5: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

5

برای استفاده کننده نهائی•هیچ!

برای برنامه نویس سطح باال• خیلی کم. تا حدی که بتواند کامپایلر مناسب را انتخاب

نموده و عملکرد برنامه را بهینه کند.

OSبرای برنامه نویس سطح پائین/ طراح •این افراد باید اطالعات کافی در مورد رجیسترها،

ساختار حافظه، انواع داده های موجود و عملکرد دستورات داشته باشند.

برای طراحان کامپیوتر•این افراد نیز باید اطالعات فوق را داشته باشند تا

بتوانند اجزا سخت افزای مورد نیاز را انتخاب کنند.

چقدر است؟ چقدر است؟ ISAISAاهمیت اهمیت

Page 6: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

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

Page 7: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

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

Page 8: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

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)

Page 9: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

9

قالب دستورالعمل ها

قالب دستورالعملها وابسته به نوع است.CPUطراحی

بخش های مختلف یک دستورالعملOP-CODE).... آدرس آپراندها ) حافظه ، ثباتشیوه آدرسدهی

direct load:مثال R3 36

00 0101 011 00100100 R3 M[36]

Mode op-code register memory address

Page 10: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

10

در مورد مزایا و معایب هر کدام بحث کنیددر مورد مزایا و معایب هر کدام بحث کنید

طول دستور ثابت است

طول دستور متغیراست

قالب دستورالعمل ها – طول دستورالعمل

Page 11: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

11

کامپیوتر دستورات مجموعه

از مختلف درکامپیوترهای استفاده مورد دستورات برای استفاده مورد های نشانه عملکرد، تعداد، لحاظ

این با هستند متفاوت بسیار باینری کد و اسمبلی، زیر گروههای از دستوراتی دارای آنها تمامی وجود

میباشند:داده انتقال دستورات -

و منطقی محاسباتی، - دستوراتجابجائی

برنامه کنترل - دستورات

Page 12: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

12

دستورات معمول انتقال اطالعات

نام فرم سمبولیک

Load LD

Store ST

Move MOV

Exchange XCH

Input IN

Output OUT

Push PUSH

Pop POP

حافظه بین داده انتقالرجیسترها و

بین داده انتقالرجیسترها

حافظه بین داده انتقال دو های داده تعویصرجیسترها و

رجیستر یک یا و رجیسترحافظه و

بین داده انتقال و خروجی/ورودی

رجیسترها

بین داده انتقالرجیسترها و پشته

Page 13: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

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

Page 14: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

14

دستورات منطقی و عملیات روی بیت

نام دستور نماد دستور

صفر کردن Clear CLR

مکمل کردن Complement COM

- AND AND

- OR OR

- XOR XOR

صفر کردن بیت نقلی Clear carry CLRC

مکمل کردن بیت نقلی Complement carry COMC

فعال کردن وقفه Enable Interrupt EI

غیرفعال کردن وقفه Disable Interrupt DI

Page 15: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

دستورات شیفتنام دستور فرم نمادین

شیفت به راست 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

Page 16: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

16

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

نام دستور فرم نمادین

انشعاب Branch BR

پرش Jump JMP

رد کردن SKIP SKP

صدا زدن Call CALL

بازگشت Return RET

مقایسه Compare) By subtraction( CMP

تست Test) By ANDing( TST

Page 17: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

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).

Page 18: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

18

Operand Location

Page 19: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

19

سازمان رجيستر عمومی

General Registers

می توانند به عنوان اپراند تمامی رجیسترها بکار برده شوند.ALUدستورالعملهای

مثال: رجیسترهای پردازندهMIPS

Page 20: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

R1

R2

R3

R4

R5

R6

R7

MUXA MUXBDEC

ALU

Loads

OPR

S1

S2

D

Output

A B

clock

20

R0

Page 21: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

21

در شکل قبل:متصل شده MUXخروجی هر رجیستر به دو •

است. اینکار باعث میشود تا هر یک از آنان را انتخاب ALUبتوان آزادانه بعنوان مبدا عملیات

نمود. را به هر یک از ALUبرای اینکه بتوان خروجی •

رجیستر ها منتقل نمود این خروجی به ورودی تمام رجیسترها متصل شده و عالوه

بر آن با استفاده از یک دیکودر مقصد عملیات را مشخص میکنیم.

ممکن است که قادر به انجام عملیات ALUیک •مختلفی باشد. برای انتخاب یک عمل مورد

استفاده میشود. OPRنیاز از خطوط کنترلی

مجموعه رجیسترهای عمومی ALUو عملیات

Page 22: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

22

برای مثال فرض کنید که میخواهیم عملیات زیر را انجام دهیم:

R1 R2 + R3برای انجام این عمل واحد کنترل باید سیگنالهای الزم

,MUXAرا برای انتخاب ورودیهای متناسب دیکودر MUXB , وALU :انتخاب نماید

یعنی MUXA تعیین مقدار مناسب برای ورودی •S1 طوری که محتوی رجیستر R2 در روی باس A

قرار گیرد.یعنی MUXB تعیین مقدار مناسب برای ورودی •

S2 طوری که محتوی رجیستر R3 در روی باس B قرار گیرد.

را ALUکه OPRتعیین مقدار الزم برای ورودی • نماید. A+Bوادار به انجام عمل جمع

به Dدر نهایت انتخاب مقدار مناسب برای دیکور •منتقل R1را به رجیستر ALUنحویکه خروجی

نماید.

ALUمثالی از عملیات

Page 23: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

23

سازمان پشته Stackيا

ساختارLIFOPUSHPOP دسترسی فقط به عنصر باالی پشته امکانپذیر

است فقط یک اشاره گر نیاز داریمSP = STACK

POINTER

Page 24: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

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)

Page 25: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

25

A

B

PUSH A

PUSH B

AB*CD+/

Page 26: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

26

A*B

C

D

MUL

PUSH C

PUSH D

PUSH A

PUSH B

AB*CD+/

Page 27: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

27

A*B

C/D

DIV

MUL

PUSH C

PUSH D

PUSH A

PUSH B

AB*CD+/

Page 28: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

28

A*B+ C/D

ADDDIV

MUL

PUSH C

PUSH D

PUSH A

PUSH B

AB*CD+/

Page 29: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

بر تعداد دستورالعملها 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

Page 30: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

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

Page 31: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

Example: c = a+ b (first step)

abc

31

Load R0, a

Load R1, b

ADD R2,R0,R1

Store c, R2

Page 32: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

abc

Example: c = a+ b (second step)

32

Load R0, a

Load R1, b

ADD R2,R0,R1

Store c, R2

Page 33: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

abc

Example: c = a+ b (third step)

33

Load R0, a

Load R1, b

ADD R2,R0,R1

Store c, R2

Page 34: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

abc

Example: c = a+ b (fourth step)

34

Load R0, a

Load R1, b

ADD R2,R0,R1

Store c, R2

Page 35: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

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

Page 36: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

36

روشهاي آدرس دهی

و حافظه در شده ذخیره داده روی بر را عملی کامپیوتر یک دستورات

یک عملوند کردن مشخص روش میدهند. انجام CPU رجیسترهای یا

نامیده addressing mode یا و دهی آدرس حاالت دستورالعمل

میشود.

اصوال حاالت مختلف آدرس دهی عملوند دستور، تسهیالت زیر را در

سیستم فراهم می آورد:

قابلیت ایجاد شمارنده برای برنامه حلقه، و شاخص بندی در داده ها

و هم چنین ایجاد اشاره گر حافظه و جابجایی برای کاربر فراهم

می شود.

.امکان تقلیل تعداد بیت های قسمت آدرس دستور، فراهم می شود

Page 37: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

دهی آدرس های حالت انواع

دهی آدرس ( ضمنیImplied)دهی آدرس ( بالدرنگImmediate)دهی آدرس ( ثباتRegister) بکمک مستقیم غیر دهی آدرس ( ثباتRegister Indirect)خودکار ) کاهشی یا و افزایش دهی آدرسAutoincrement

(Autodecrement یا دهی آدرس ( مستقیمdirect) غیر دهی آدرس ( مستقیمIndirect)دهی آدرس ( نسبیrelative)دهی آدرس ( شاخصindex)پايه ثبات با دهی آدرس

37

Page 38: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

38

دهی آدرسضمنی

Implied Addressing Mode

دستورالعمل داخل در ضمنی بصورت اپراندها روش این در میشوند. مشخص

دستور مثل CMA میکند متمم را آکوموالتور محتوی که.کامپیوترهای در استفاده مورد آدرسی صفر دستورات stack

machine زیرا میکنند استفاده ضمنی دهی آدرس از نیز میشوند. گرفته نظر در پشته باالی در ضمنی بطور عملوندها

Page 39: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

39

دهی آدرسبالدرنگ

Immediate Addressing Mode

خود داخل در عملوند مقدار روش این در.میشود داده دستورالعمل

بکار رجیسترها دهی مقدار برای دهی آدرس مد این.میرود

پردازنده در زیر دستور مثل x86

MOV CX, 1024

OperandInstruction

Page 40: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

40

دهی آدرسرجیستري

Register Addressing

پردازنده رجیسترهای داخل در عملوندها روش این در 2k تعداد میتوان بیت K از استفاده با. دارند قرار

.نمود مشخص را رحیسترپردازنده در زیر دستور مثل x86 ADD AL, BL

R Instruction

Operand

CPU registers

Page 41: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

41

رجيستري دهی آدرس مستقیم غیر

Register Indirect Addressing

مشخص را رجیستری دستورالعمل روش این در را حافظه در عملوند آدرس آن محتوی که میکند

.نمود خواهد مشخصپردازنده در زیر دستور مثل x86

MOV BX,[SI]

R

Instruction

0100

CPU registers

Operand

Memory

0100

Page 42: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

42

یا و افزایش دهی آدرسخودکار کاهشی

Autoincrement or Autodecrement addressing

غیر رجيستري دهی آدرس مشابه روش این بعد رجیستر مقدار که تفاوت این با است مستقیم

موثر آدرس محاسبه برای استفاده از قبل یا.میابد کاهش یا و افزایش

R=R+1R=R-1

R

Instruction

0100

CPU registers

Operand

Memory

0100

Page 43: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

43

دهی آدرسمستقیم

Direct Addressing Mode

دستورالعمل داخل در عملوند آدرس روش این در.میشود ذکر

پردازنده در زیر دستور مثل x86

MOV AX,[3000]

Address

Instruction

Operand

Memory

Page 44: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

44

Address

Instruction Operand

Memory

دهی آدرس مستقیم غیر

Indirect Addressing Mode

را حاقطه از محلی دستورالعمل در موجود آدرس روش این در این حالت در دارد. قرار درآنجا عملوند آدرس که میکند مشخص

است: نیاز مورد حافطه به رجوع دوبار عملوند به دسترسی برای مقدار خواندن برای دیگر بار و آن آدرس کردن پیدا برای یکبار آن.

10010111 00010001

00010001

Page 45: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

45

دهی آدرسنسبی

Relative Addressing Mode

مشخص آدرس جمع از موثر آدرس روش این در حاصل PC محتوی و دستورالعمل داخل در شده

میشود:Effective Address= address part of instruction + content of PC

Address

Instruction

PC

+

Operand

Memory

Page 46: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

46

دهی آدرسدار شاخص

Index Addressing Modeو دستورالعمل داخل در شده مشخص آدرس جمع از موثر آدرس روش این در

حاصل میشود نامیده ایندکس رجیستر که مخصوص رجیستر یک محتوی:میشود

Effective Add.= address part of instruction + content of index registerکه. میشود استفاده آرایه یک های داده به دسترسی برای روش این از معموال

داده فاصله و میشود مشخص دستورالعمل در حافظه در ها داده شروع محل.میگردد تعیین ایندکس رجیستر توسط شروع محل تا نظر مورد

Address

Instruction

Index Register

+

Operand

Memory

Page 47: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

47

PC = 200

XR = 100

R1 = 400

AC

صورت در آکوموالتور مقدار آدرس در موجود دستور اجرای

مختلف حالتهای برای 200چیست؟ دهی آدرس

200

399

400

500

600

702

800

201

202

AC بارکردن

دستور بعدی

= آدرس

آدرس حافظهحالت

مثال

Page 48: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

48

مثال

محتوای اکوموالتور

آدرس مؤثر حاالت آدرس دهی

800 500 مستقیم

500 201 بالفصل

300 800 غیرمستقیم

325 702 نسبی

900 600 شاخص دار

400 - ثبات

700 400 غیرمستقیم از طریق ثبات

700 400 افزایش خودکار

450 399 کاهش خودکار

Page 49: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

49

RISC vs. CISC

دو دیدگاه متفاوت در معماری کامپیوتردو دیدگاه متفاوت در معماری کامپیوتر

Page 50: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

50

دستورات مجموعه با کامپیوترهایCISC پیچیده

شده انتخاب دستورات مجموعه از متاثر کامپیوتر یک معماری .است آن برای

کم دستورات تعداد تا بود این بر سعی اولیه های کامپیوتر در .باشد ممکن آن افزاری سخت سازی پیاده تا باشد ساده و

تعداد آن شدن ارزان و افزار سخت زمینه در پیشرفت با افزوده آنها پیچیدگی بر و یافته افزایش کامپیوترها دستورات

در را کاربران های نیاز بیشتر چه هر تا بود این هدف گردید. باال سطح زبانهای بین فاصله کاهش وبا گنجانده افزار سخت

ساده را باال سطح دستورات ترجمه کامپیوتر کار دستورات و بسیار تعداد و دستور 200 تا گاها کامپیوترها نوع این کنند. تر

Complex را ها کامپیوتر این داشتند. دهی آدرس مد زیادیinstruction set computer (CISC) مینامند.

Page 51: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

51

CISC کامپیوترهای های ویژگی

عدد 200 مثال ( دارند دستورالعمل زیادی تعداد(معموال که دارند ویژه کارهای انجام برای دستوراتی

میگیرند قرار استفاده مورد بندرتدارند دهی آدرس مد زیادی تعداداست متفاوت ها دستورالعمل طولاپراندهای روی بر را عملیاتی که دارند دستوراتی

.میدهند انجام حافظه در موجودهست نیاز کالک چندین به دستورات اجرای برای.

Page 52: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

52

کاهش دستورات مجموعه با کامپیوترهای RISCیافته

معماری RISC سازمان زمینه در مهم ابداعی .میرود بشمار کامپیوتر

تر ساده با تا است شده سعی معماری این در قدرت بر ها دستورالعمل مجموعه کردن

.شود افزوده پردازنده

Page 53: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

53

The Semantic Gap

بین اختالف باال سطح زیانهای پیشرفت با ماشین زبان و باال سطح های برنامه

معماریهای از یک یافت. هر گسترش این کاهش برای مختلقی روش فوق

ترجمه تا کردند معرفی اختالف موثرتری بطرز باال سطح زبانهای

.شود انجامماشین زبان

باال سطح زبان

Th

e Sem

antic

Gap

پیچیده ماشین زبان دستورات CISC : نگرش•.گردد نزدیکتر باال سطح زبان به و تر

تر ساده ماشین زبان دستورات RISC : نگرش•.گردد نزدیکتر برنامه نیازهای به و

Page 54: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

54

RISC های ویژگی

دارند کمی و ساده دستوراتاجرا بسرعت را دستورات بتوان که است این هدف

اجرا سیکل یک در RISC دستورات اغلب کرد. )رمزگشایی و ازواکشی بعد( میشوند

عمل میشوند اجرا مشابهی زمان در دستورات چون pipelineبود خواهد باالیی بازده دارای.

کنترل واحد شدن ساده باعث دستورات بودن کم شدن کم به منجر که میشود ارتباطی ومسیرهای

پردازنده ساخت برای نیاز مورد ترانزیستورهای تعداد..میدهد افزایش نیز را پردازنده سرعت اینکار میشود

ساخته می بندی سیم بروش کنترل واحد ضمن در.شود

Page 55: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

55

RISC های ویژگی

به محدود حافظه به دسترسی• است Storeو load دستورات

یک در معموال حافظه به رجوع عمل آنجائیکه از– کامپایلر در نمیباشد تمهیداتی امکانپذیر سیکل

استفاده موثرتری بطور pipelineتا میشود استفادهشود.

عمل رجیسترها محتوی روی بر دستورات باقی–میکنند.

Page 56: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

56

RISC های ویژگی

آنها دهی آدرس مدهای تعداد•است کم

دهی آدرس مدهای از فقط معموال–میشود: استفاده زیر

•register addressing

•direct addressing

•register indirect addressing

•displacement addressing

Page 57: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

57

RISC های ویژگی

فرمت و طول دستورات• دارند یکسانی

خواندن تا میشود باعث - اینکار ساده و سریع آنها رمزگشائی و دستورات

طول شدن معلوم تا نیست الزم باشد. زیراکرد. صبر آن رمزگشایی برای دستور

سهولت باعث فرمت - یکسانی همه ادرس و کد زیرا میگردد رمزگشایی

دارند. قرار یکسانی محل در دستورات

Page 58: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

58

RISC های ویژگی

دارند. زیادی رجیسترهای تعداد• شدن کوچگ باعث دستورات شدن کم–

برای فضا شدن آزاد و کنترل واحد رجیستر بیشتری تعداد گنجاندنمیشود.

و میانی نتایج محلی، متغیرهای– رجیسترها داخل در توابع پارامترهای

حافظه به رجوع تعداد و شده ذخیرهمی کند. پیدا کاهش

Page 59: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

59

RISC های ویژگی سایر

ازتکنیک استفاده pipelining باهمپوشانی که و شده اجرا و رمزگشائی واکشی، های سیکل منجر سیکل یک در دستور هر اجرای به نهایتا

.میشودداخل در رجیستر زیادی تعداد CPU دارد وجودهمپوشانی تکنیک از استفاده register windows

و تابغ زدن صدا سرعت افزایش باعث که.میشود آن از بازگشت

ترجمه در کارائی افزایش برای کامپایلر از حمایت باال سطح های برنامه

Page 60: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

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 برنامه نتیجه احتیاج که بود خواهد دستور خط

.دارد بیشتری حاقظه به

Page 61: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

61

RISC, CISC مقایسه

کارائی محاسبه فرمول

CISC میکند سعی قسمت این تا

کند پیدا کاهش

RISC میکند سعی قسمت این تا

کند پیدا کاهش

CPU Execution

Time

Instruction Count

CPI Clock Cycle Time= X X

Page 62: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

62

RISC پیشگامان

ایده RISC جمله از. گردید معرفی 80 دهه در نمود اشاره زیر موارد به میتوان آن پیشگامان

IBM 801Stanford MIPSBerkeley RISC 1 and 2

Page 63: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

63

RISC کاربردهای

مشهور های پردازنده از تعدادی•از: عبارتند RISC بر مبتنی

–ARM/StrongARMاستفاده همراه تلفنهای در که میشود

–MIPS Rxx00مورد بازی های دستگاه برخی در که است استفاده

–Hitachi SH های سیستم در استفاده مورد embedded

–POWER/PowerPCدر استفاده مورد MACکامپیوترهای

–Intel Pentium II and III معماری از اگرچه CISC را RISC های ویژگی از بسیاری ولی میکنند پیروی

دارا هستند.

Page 64: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

64

overlapped register windows

بخش آن از بازگشت و فرعی برنامه زدن صدا میدهد. اختصاص بخود را برنامه اجرای از مهمی

در زیادی تاثیر میتواند آن به بخشیدن سرعت لذاباشد. داشته پردازنده کارائی افزایش

دستوراتی فرعی برنامه یک زدن صدا هنگام ذخیره را رجیسترها مقادیر که میشوند استفاده

دهند. انتقال را پارامترها و کنند،بازگشتی مقدار فرعی برنامه از بازگشت برای

مقادیر و شده منتقل زننده صدا برنامه به تابع.میشوند بازیابی رجیسترها شده ذخیره

Page 65: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

65

overlapped register windows

معمارهای از دربرخی RISC توابع بین انتقال سهولت برای به نیاز تا میشود استفاده رجیسترها ای پنجره همپوشانی از

نمایند. حذف را رجیسترها مقادیر بازیافت و ذخیرهرجیسترها از ای پنجره میشود زده صدا تابعی که زمان هر

اختصاص آن به پردازنده در رجیسترموجود بانک میان ازمی یابد.

برگشت با میشود. انجام پوینتری افزایش طریق از اینکار میشود. داده کاهش آن قبلی مقدار به پوینتر تابع از

توابع همجوار )فراخوانی شونده برای استفاده مورد پنجره اشتراک به امکان تا دارند همپوشانی و فراخوانی کننده(

باشد. داشته وجود تابع دو بین ها داده گذاشتن

Page 66: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

مثال

دارای که است شده معرفی کتاب »مانو« سیستمی در است: زیر مشخصات با رجیستری بانک

است رجیستر 74 دارای بانک این.های رجیستر R0 تاR9 قابل عمومی رجیسترهای بعنوان

هستند. توابع تمامی استفادهگروه )پنجره( 4 به رجیسترها بقیهA,B,C,D شده تقسیم

اند.رجیستر دسته دو و اختصاصی رجیستر 10 دارای پنجره هر

.است مجاور های پنجره با با مشترک تائی 6از و محلی متغیرهای ذخیره برای اختصاصی رجیسترهای از

.میشود استفاده پارامترها انتقال برای مشترک رجیسترهاینماید استفاده رجیستر 32 از میتواند تابع هر ترتیب این به

Page 67: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

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

Page 68: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

68

overlapped register windows

هر برای استفاده قابل رجیسترهای محاسبه نحوه است. زیر صورت به تابع

=G عمومی رجیسترهای تعداد =L پنجره هر اختصاصی رجیسترهای تعداد =C پنجره دو بین مشترک رجیسترهای تعداد =W ها پنجره تعداد

=L+2C+G پنجره اندازه( =L+C)W+G بانک در رجیسترها کل تعداد

رجیستری

Page 69: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

69

RISC:Berekely پردازنده از مثالیRISC I

های معماری اولین از یکی RISC در که است شد. مطرح برکلی دانشگاه

بیتی است: 32 پردازنده اینهای داده از میتواند و بوده بیتی 32 آدرس دارای

.نماید استفاده بیتی 32و16و8نسبی و بالدرنگ رجیستری، دارد: دهی آدرس مد سهرجیستر 10 شامل تائی 138 رجیستری بانک یک

دارد. رجیستری 32 پنجره 8 و عمومی31 دارد. دستورالعمل

Page 70: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

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

Page 71: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

71QuestionsQuestionsQuestionsQuestions