Transcript

سازمان و طراحي

کامپيوتر پايه

1

سازمان و طراحي کامپيوتر پايه

کدهاي دستورالعمل •

ثبات هاي کامپيوتر•

دستورات کامپيوتر•

زمان بندي و کنترل•

چرخه دستورالعمل•

دستورات مراجعه به حافظه•

2

مقدمه)ثبات ها، گذرگاه ها، ريزعمل ها، هر پردازنده طراحي خاص خود•

دستورالعمل هاي ماشين و ... ( را دارد.کامپيوترهاي مدرن ساختار پيچيده اي دارند.•آنها شامل موارد زير هستند:•

ثبات هاي فراوان–چندين واحدهاي محاسباتي هم براي اعداد صحيح هم براي –

اعداد مميزدار استفاده از چندين واحد خط لوله تا به اين ترتيب سرعت –

اجرا افزايش يابد.و موارد ديگر–

در ادامه براي فهم اينکه کامپيوتر چگونه کار مي کند از يک مدل •ساده شده استفاده شده است.

اين مدل را آقاي مانو معرفي کرده و نام آنرا کامپيوتر پايه •گذاشته است. 3

کامپيوتر پايه

( اصلي دارد، پردازنده و componentکامپيوتر پايه دو جز )•حافظه.

کلمه دارد.4096حافظه •–4096 = 212

خط آدرس نياز داريم.12يعني به

بيت طول دارد.16هر کلمه –CPU RAM

0

4095

015

4

دستورالعمل ها برنامه •

يک دنباله از دستورالعمل ها–

(ماشیندستورالعمل )•يک گروه از بيت ها که به کامپيوتر اعالم مي کنند که يک –

عمل خاص را انجام دهند. )يک دنباله از ريزعمل ها(

دستورالعمل هاي يک کامپيوتر به همراه همه •داده هاي الزم در حافظه ذخيره شده اند.

•CPU.دستور بعدي را از حافظه مي خواند ذخيره می شود. IRاين دستور در يک ثبات به نام •دستورالعمل به دنباله اي از ريزعمل ها تبديل •

مي شود تا با انجام ريزعمل ها دستورالعمل مورد نظر اجرا شود.

5

قالب دستورالعمل ها يک دستورالعمل اغلب از دو بخش تشکيل شده است.•

عملي را که دستورالعمل بايد انجام دهد مشخص (: opcode)کد عمليات –مي کند.

ثبات يا جايي از حافظه را که دستورالعمل بايد عمل کند (: address)آدرس –مشخص مي کند.

بيت براي آدرس دهي 12همانطور که گفته شد در کامپيوتر پايه •حافظه داريم.

addressing دستورالعمل روش آدرس دهي)15در کامپيوتر پايه بيت •mode .را مشخص مي کند )

( direct addressing )صفر: آدرس دهي مستقيم–.(indirect addressing)يک: آدرس دهي غير مستقيم –

3 بيتي هستند، 16چون کلمه هاي حافظه و بنابراين دستورالعمل ها •بيت باقي مانده براي کد دستورالعمل مورد استفاده قرار مي گيرد.

Opcode Address

Instruction Format

15 14 12 0I

11

Addressing mode 6

Addressingشيوه آدرس دهي Mode))

ناحيه آدرس يک دستورالعمل مي تواند به يکي از دو شکل زير •تفسير شود:

آدرس دهي مستقيم: آدرس داده مورد نظر در حافظه )عملوند(–آدرس دهي غير مستقيم: آدرس آدرس داده مورد نظر در حافظه )عملوند(–

)Effective Address )EAآدرس دهي موثر •و در 1350آدرس عملوند، مثال در شکل باال سمت راست آدرس موثر –

است.457شکل باال سمت چپ آدرس موثر

0 ADD 45722

Operand457

1 ADD 30035

1350300

Operand1350

+AC

+AC

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

7

ثبات هاي پردازنده يک پردازنده تعداد زيادي ثبات براي نگهداري دستورالعمل ها، •

آدرس ها و داده ها و ... دارد. Program Counterپردازنده يک ثبات به نام شمارنده برنامه •

)PC(.دارد که آدرس دستوري را که بايد اجرا شود، نگه مي دارد بيتي است.PC 12 کلمه دارد پس 4096چون حافظه در کامپيوتر پايه –

در آدرس دهي مستقيم يا غير مستقيم پردازنده براي آنکه آدرس • Addressعملوند را نگه دارد از يک ثبات به نام ثبات آدرس

register )AR( .استفاده مي کند بيتي است.AR 12 کلمه دارد پس 4096چون حافظه در کامپيوتر پايه –

پس آنکه عملوند در حافظه پيدا شد، در آدرس دهي مستقيم يا • Dataغير مستقيم، عملوند به يک ثبات به نام ثبات داده

Register (DR).منتقل مي شود Accumulatorکامپيوتر پايه يک ثبات همه منظوره به نام انباره •

(AC).نيز دارد 8

ثبات هاي پردازنده )ادامه( اهميت ثبات همه منظوره آن است که مي توان در •

دستورات به آن ارجاع داد. را به يک مکان خاص از حافظه منتقل کرد يا ACمثال مي توان –

منتقل کرد. ACمکان خاص از حافظه را به در کامپيوتر پايه از يک ثبات براي نگهداري داده هاي مياني •

يا موقتي استفاده شده است به اين ثبات، ثبات موقتي Temporary Register )TR( .مي گويند

کامپيوتر پايه يک مدل بسيار ساده ورودي/خروجي دارد.• بيتي را به پردازنده 8دستگاه هاي ورودي کاراکترهاي –

می فرستند. بيتي را به دستگاه هاي خروجي 8پردازنده کاراکترهاي –

مي فرستد. بيتي را که از 8 داده)Input Register )INPRثبات ورودي •

دستگاه ورودي رسيده است نگه مي دارد. بيتي را که 8 داده )Output Register )OUTRثبات خروجي•

به دستگاه خروجي فرستاده مي شود نگه مي دارد.9

ثبات هاي کامپيوتر پايه

List of BC RegistersDR 16 Data Register مقدار عملوند را نگه مي دارد AR 12 Address Register آدرس عملوند را نگه مي داردAC 16 Accumulator ثبات همه منظوره IR 16 Instruction Register کد عمليات را نگه مي داردPC 12 Program Counter آدرس دستورالعمل را TR 16 Temporary Register داده هاي موقتي را نگه مي داردINPR 8 Input Register کاراکتر ورودي را نگه مي دارد OUTR 8 Output Register کاراکتر خروجي را نگه مي دارد

کامپيوتر پايه درها ثبات

11 0PC

15 0IR

15 0TR

7 0OUTR

15 0DR

15 0AC

11 0AR

INPR0 7

Memory

4096 x 16

CPU

10

سيستم گذرگاه عمومي

ثبات ها در کامپيوتر پايه با استفاده از گذرگاه به هم •متصل شده اند

استفاده از گذرگاه نسبت به اتصال مستقيم ثبات ها به •هم در سيم بندي صرفه جويي مي کند.

11

سيستم گذرگاه عمومي S2

S1S0

Bus

Memory unit4096 x 16

LD INR CLR

AddressReadWrite

AR

LD INR CLR

PC

LD INR CLR

DR

LD INR CLR

ACALUE

INPR

IRLD

LD INR CLR

TR

OUTRLD

Clock

16-bit common bus

7

1

2

3

4

5

6

12

سيستم گذرگاه عمومي

AR

PC

DR

L I C

L I C

L I C

AC

L I C

ALUE

IR

L

TR

L I C

OUTR LD

INPRMemory

4096 x 16

Address

Read

Write

بيتي16گذرگاه عمومي

7 1 2 3 4 5 6

S0 S1 S2

13

سيستم گذرگاه عمومي کنترل مي کنند که کدام ثبات به عنوان ثبات s2 و s0، s1سه خط کنترل •

ورودي انتخاب شود.

آن فعال باشد، داده را با پالس بعدی از گذرگاه دریافت loadهر ثبات که •می کند

حافظه به هنگام فعال شدن نوشتن محتوای گذرگاه را دریافت می کند•به هنگام فعال شدن ورودی خواندن حافظه، خروجی آن روی گذرگاه •

قرار می گیرد ( روي گذرگاه اطالعات قرار PC و AR بيتي )12وقتي ثبات هاي •

بيت با ارزشتر گذرگاه مقدار صفر مي گيرد. 4مي دهند، بیت کم 8 از گذرگاه داده دریافت می کند، OUTR بيتی 8وقتی ثبات •

ارزش تر گذرگاه در آن قرار می گیرند

0 0 0 x0 0 1 AR0 1 0 PC0 1 1 DR1 0 0 AC1 0 1 IR1 1 0 TR1 1 1 Memory

S2 S1 S0 Register

14

دستوالعمل هاي کامپيوتر پايه

دستوالعمل هاي کامپيوتر پايه قالب •

15 14 12 11 0I Opcode Address

دستورالعمل هاي مراجعه به حافظه )OP-code = 000 ~ 110(

ثباتهاي مراجعه به دستورالعمل)OP-code = 111, I = 0(

دستورالعمل هاي ورودي خروجي)OP-code =111, I = 1(

15 12 11 0Register operation0 1 1 1

15 12 11 0I/O operation1 1 1 1

15

دستوالعمل هاي Hex Code کامپيوتر پايه

توضيح I = 0 I = 1 سمبلAND 0xxx 8xxx AND memory word to ACADD 1xxx 9xxx Add memory word to ACLDA 2xxx Axxx Load AC from memorySTA 3xxx Bxxx Store content of AC into memoryBUN 4xxx Cxxx Branch unconditionallyBSA 5xxx Dxxx Branch and save return addressISZ 6xxx Exxx Increment and skip if zero

CLA 7800 Clear ACCLE 7400 Clear ECMA 7200 Complement ACCME 7100 Complement ECIR 7080 Circulate right AC and ECIL 7040 Circulate left AC and EINC 7020 Increment ACSPA 7010 Skip next instr. if AC is positiveSNA 7008 Skip next instr. if AC is negativeSZA 7004 Skip next instr. if AC is zeroSZE 7002 Skip next instr. if E is zeroHLT 7001 Halt computer

INP F800 Input character to ACOUT F400 Output character from ACSKI F200 Skip on input flagSKO F100 Skip on output flagION F080 Interrupt onIOF F040 Interrupt off

16

كامل بودن مجموعه دستورالعملها

نوع دستورالعملها•

هر كامپيوتر بايد مجموعه اي از دستورالعمل ها را داشته باشد كه كاربر بتواند •براي محاسبه هر تابعي كه محاسبه پذير بودن آن محرز است، برنامه اي به

زبان ماشين بنويسد.

دستورالعمل هاي عملياتي• -حسابي، منطقي و جابجايي - ADD, CMA, INC, CIR, CIL, AND, CLA

تبادل اطالعات • تبادل اطالعات بين حافظه وثبات هاي كامپيوتر - - LDA, STA

دستورالعمل هاي كنترلي•دستورالعمل هاي كنترل برنامه و وارسي شرايط-

- BUN, BSA, ISZ دستورالعمل هاي ورودي خروجي•

ورودي خروجي - - INP, OUT

17

واحد كنترل واحد كنترل همه ی پروسسورها دستورالعمل هاي ماشين را به •

كند. اين سيگنال هاي كنترلي براي كنترل ‌سيگنال هاي كنترلي تبديل مي‌روند.‌ريزعمل ها به كار مي

:باشد‌واحد كنترل به دو طريق قابل ساخت مي•افزاري‌كنترل سخت•

واحد كنترل از مدارهاي تركيبي و ترتيبي ساخته شده است –كه كار آن ها توليد سيگنال هاي كنترلي است.

نويسي شده‌كنترل ريزبرنامه•يك حافظه ی كنترلي درپروسسور وجود دارد كه شامل –

ريزعمل هايي است كه سيگنال هاي كنترلي الزم را توليد كند.‌مي

در این فصل براي كامپيوتر پايه واحد کنترل سخت افزاری استفاده •می شود.

18

بندي و زمانكنترل

واحد كنترل در كامپيوتر پايه

Instruction register (IR)15 14 13 12 11 - 0

3 x 8ديكدر

7 6 5 4 3 2 1 0

ID 0

15 14 . . . . 2 1 04 x 16

ديكدر

4-bitsequencecounter

(SC)

Increment (INR)Clear (CLR)Clock

ورودي هاي ديگر

خروجي هايكنترل

D

T

T

7

15

0

گيت هاي مداركنترل

19

سيگنال هاي بندي زمان شود. توليد مي4*16 بيتي و ديكدر 4به وسيله ی دنباله شمار -

-SCتواند افزايش يافته يا پاك شود. مي, . . .T0, T1, T2, T3, T4, T0, T1 به عنوان مثال:

فعال باشد. D3شود اگر خروجي ديكدر پاك ميT4 ، SC-فرض: در زمان

D3T4: SC 0

20

Clock

T0 T1 T2 T3 T4 T0

T0

T1

T2

T3

T4

D3

CLR SC

چرخه دستورالعمل

در یک کامپیوترپایه، یک دستورالعمل ماشین در •چرخه های زیر اجرا می شود:

- یک دستورالعمل را از حافظه واکشی کن1–- دستورالعمل را کدگشایی کن2–

اگر آدرس دهی غیر مستقیم است آدرس موثر را از حافظه •بخوان

- دستورالعمل را اجرا کن3-

پس از این که دستورالعمل اجرا شد، چرخه برای • شروع می شود1دستورالعمل بعدی دوباره از

21

واكشي Fetch and Decode •وكدگشايي T0: AR PC (S0S1S2=010, T0=1)

T1: IR M [AR], PC PC + 1 (S0S1S2=111, T1=1)T2: D0, . . . , D7 Decode IR(12-14), AR IR(0-11), I IR(15)

S2

S1

S0

Bus

7Memoryunit

AddressRead

AR

LD

PC

INR

IR

LD Clock

1

2

5

Common bus

T1

T0

22

تعيين نوع دستورالعمل

= 0 (direct)

D'7IT3: AR M[AR]D'7I'T3: NothingD7I'T3: Execute a register-reference instr.D7IT3: Execute an input-output instr.

StartSC

AR PCT0

IR M[AR], PC PC + 1T1

AR IR(0-11), I IR(15)Decode Opcode in IR(12-14),

T2

D7= 0 (Memory-reference)(Register or I/O) = 1

II

Executeregister-reference

instructionSC 0

Executeinput-output

instructionSC 0

M[AR]AR Nothing

= 0 (register)(I/O) = 1 (indirect) = 1

T3 T3 T3 T3

Executememory-reference

instructionSC 0

T4

23

دستورالعمل های ثباتی

دستورالعمل های ثباتی با •– D7 = 1, I = 0– is specified in b0 ~ b11 of IR– Execution starts with timing signal T3

می شوند مشخص

• r = D7 IT3 => Register Reference Instruction• Bi = IR)i( , i=0,1,2,...,11

24

25

r: SC 0CLA rB11: AC 0

CLE rB10: E 0

CMA rB9: AC AC’

CME rB8: E E’

CIR rB7: AC shr AC, AC)15( E, E AC)0(

CIL rB6: AC shl AC, AC)0( E, E AC)15(

INC rB5: AC AC + 1

SPA rB4: if )AC)15( = 0( then )PC PC+1(

SNA rB3: if )AC)15( = 1( then )PC PC+1(

SZA rB2: if )AC = 0( then )PC PC+1(

SZE rB1: if )E = 0( then )PC PC+1(

HLT rB0: S 0 )S is a start-stop flip-flop(r = D7 IT3 => Register Reference InstructionBi = IR)i( , i=0,1,2,...,11

چرخه دستورالعمل- دستورالعمل های ارجاع ثبات

26

چرخه دستورالعمل- دستورالعمل های ارجاع حافظه

قرار T2 در سیگنال زمانی AR، آدرس موثر دستورالعمل در I=0اگر • قرار می گیرد T3در سیگنال زمانی I=1می گیرد و اگر

شروع می شود T4 اجرای دستورالعمل های ارجاع حافظه از زمان •

SymbolOperationDecoder Symbolic Description

AND D0 AC AC M[AR]

ADD D1 AC AC + M[AR], E Cout

LDA D2 AC M[AR]

STA D3 M[AR] AC

BUN D4 PC AR

BSA D5 M[AR] PC, PC AR + 1

ISZ D6 M[AR] M[AR] + 1,

if M[AR] + 1 = 0 then PC PC+1

27

AND: AND to ACD0T4: DR M[AR]

D0T5: AC AC DR, SC 0

ADD: ADD to ACD1T4: DR M[AR]

D1T5: AC AC + DR, E Cout, SC 0LDA: Load to AC

D2T4: DR M[AR]D2T5: AC DR, SC 0

STA: Store ACD3T4: M[AR] AC, SC 0

BUN: Branch UnconditionallyD4T4: PC AR, SC 0

ISZ: Increment and Skip-if-ZeroD6T4: DR M[AR]D6T5: DR DR + 1D6T4: M[AR] DR,

if )DR = 0( then )PC PC + 1(, SC 0

چرخه دستورالعمل- دستورالعمل های ارجاع حافظه

28

چرخه دستورالعمل- دستورالعمل های ارجاع حافظه )ادامه(

• BSA: Branch and Save Return Address

D5T4: M[AR] PC, AR AR + 1

D5T5: PC AR, SC 0 Memory, PC after execution

21

0 BSA 135

Next instruction

Subroutine

20

PC = 21

AR = 135

136

1 BUN 135

Memory, PC, AR at time T4

0 BSA 135

Next instruction

Subroutine

20

21

135

PC = 136

1 BUN 135

Memory Memory

29

دستورالعمل های ارجاع حافظه

DR M[AR] DR M[AR] DR M[AR] M[AR] ACSC 0

AND ADD LDA STA

AC AC DRSC 0

AC AC + DRE CoutSC 0

AC DRSC 0

D T0 4 D T1 4 D T2 4 D T3 4

D T0 5 D T1 5 D T2 5

PC ARSC 0

M[AR] PCAR AR + 1

DR M[AR]

BUN BSA ISZ

D T4 4 D T5 4 D T6 4

DR DR + 1

D T5 5 D T6 5

PC ARSC 0

M[AR] DRIf (DR = 0)then (PC PC + 1)

SC 0

D T6 6


Recommended