Upload
devon
View
107
Download
1
Embed Size (px)
DESCRIPTION
سازمان و طراحي کامپيوتر پايه. سازمان و طراحي کامپيوتر پايه. • کدهاي دستورالعمل • ثباتهاي کامپيوتر • دستورات کامپيوتر • زمانبندي و کنترل • چرخه دستورالعمل • دستورات مراجعه به حافظه. مقدمه. - PowerPoint PPT Presentation
Citation preview
سازمان و طراحي کامپيوتر پايه
کدهاي دستورالعمل •
ثبات هاي کامپيوتر•
دستورات کامپيوتر•
زمان بندي و کنترل•
چرخه دستورالعمل•
دستورات مراجعه به حافظه•
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