70
Department of Computer and IT Department of Computer and IT Engineering Engineering University of Kurdistan University of Kurdistan Computer Architecture MANO Basic Computer By: Dr. Alireza Abdollahpouri By: Dr. Alireza Abdollahpouri

Department of Computer and IT Engineering University of Kurdistan Computer Architecture

Embed Size (px)

DESCRIPTION

Department of Computer and IT Engineering University of Kurdistan Computer Architecture MANO Basic Computer By: Dr. Alireza Abdollahpouri. معماري SPC : Stored program control. - PowerPoint PPT Presentation

Citation preview

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 Architecture

MANO Basic Computer

By: Dr. Alireza AbdollahpouriBy: Dr. Alireza Abdollahpouri

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

2

SPC : Stored program controlمعماري

در اين نوع ساختار که اغلب کامپيوتر ها از آن پيروي ميکنند عمليات يک کامپيوتر قرار RAMتوسط برنامه اي که توسط برنامه نويس نوشته شده و در حافظه

داده ميشود کنترل ميگردد .

اين برنامه مجموعه اي از دستورالعمل هاست که نوع عمليات، عملوندهاي •مربوطه و توالي اجراي عمليات را مشخص مي کند .

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

خوانده و در داخل يک رجيستر قرار مي دهد.

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

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

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

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

هر کدام وظيفه خاص خودشان را دارند .

ADD Ax,s

Control Regs

کنترل واحد

Regs ALU

RAM

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

3

اصلي ترين قسمت يک کد دستورالعمل بخشOperation code يا Op-code.است

Op-code نوع دستورالعمل نظير ADD ، SUB و غيره را مشخص ميکند تعداد بيتهاي

Op-code به تعداد کل دستورالعملهاي موجود در cpu. بستگي دارد بلكه بايد محلي كه آن عمل ( opcodeدستورالعمل نه تنها بايد نوع عمل )

روي آن انجام ميگردد )حافظه يا رجيستر( را مشخص كند. آن مشخص مي شود آدرس لذا در کد دستورالعمل يک محل حافظه با

که اين آدرس جزئي از کد دستورالعمل را تشکيل مي دهد . نيز از يک کد باينري استفاده مي CPUبراي مشخص کردن رجيسترهاي

بيتي براي آنها K تعداد رجيستر داشته باشد از يک کد CPUشود اگر استفاده مي شود .

k2

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

4

کامپیوتر پایه مانوکامپیوتر پایه مانو

بیتی16 کلمه 4096واحد حافظه با • ,AR, PC, DR, AC, IR, TR, OUTR, INPRرجيسترهای •

SCI, S, E, R, IEN, FGI, FGOفلیپ فالپ های • زمانبندی16 به 4 اعمال و 8 به 3رمزگشای • بیتی16گذرگاه مشترک •دروازه های منطقی کنترلی • وصل ACجمع کننده و مدارهای منطقی که به ورودی •

شده اند

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

5

کد دستورهاکد دستورها

دستورهای کامپیوتر بصورت یک کد دودوئی هستند که ترتیب •خاصی از ریز عمل ها را مشخص می کنند.

کد دستور + آدرس • بیتی باشد.n باشد، کد دستور باید 2nاگر تعداد دستورات – (Macro Operation )درشت عملکد دستور گاهی –

نامیده می شود. آدرس یک رجيسترو یا مکانی از حافظه را مشخص می –

کند.مکان حافظه آدرس عملوند می باشد.•

دستورها و داده ها در حافظه قرار دارند.•

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

6

کامپیوتر پایه )معماری کامپیوتر پایه )معماری تک انباره ای(تک انباره ای(

یک رجيسترپردازنده •–AC – accumulator

شکل دستور • بیتی می باشد.4کد دستور –(212=4096 بیت مربوط به آدرس می باشد )12–

چرخه اجرای دستور • بیتی از حافظه16خواندن یک دستور – بیت آدرس جهت واکشی عملوند از حافظه 12استفاده از– بیتی4اجرای کد دستور –

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

7

کامپیوتر پایه – فرمت کامپیوتر پایه – فرمت دستوراتدستورات

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

عملوند ها )داده(

4096X16حافظه

AC - رجيسترپردازنده

کد آدرس

عملوند دودوئی

15 0

4 12

قالب دستور

(operandممكن است بعضي از دستورالعملها به عملوند ). كه در اين حالت قسمت آدرس Clear AC احتياج نداشته باشند. مانند

ميتواند براي مقاصد ديگري استفاده شود.

Example: ADD 15 ; AC AC + M[15]

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

8

اضافه نمودن مدهای اضافه نمودن مدهای آدرسدهیآدرسدهی

بیتی قرار گرفته در دستور12آدرس •(direct)مستقیم –

آدرس مکانی از حافظه که داده در آنجا قرار گرفته است.•

(indirect)غیر مستقیم –آدرس مکانی از حافظه که در آنجا آدرس داده مورد نظر •

)عملوند( قرار گرفته است.

(EA)به آدرس مکان عملوند آدرس موثر •گفته می شود.

یکی از بیت های دستور به عنوان بیت •غیرمستقیم در نظر گرفته شده است.

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

9

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

آدرس موثرآدرس موثر

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

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

10

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

IR15 0

TR15 0

DR15 0

AC15 0

OUTR7 0

INPR7 0

PC11 0

AR11 0

Memory4096 X 16

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

11

لیست رجيستر های لیست رجيستر های کامپیوتر پایهکامپیوتر پایه

نمادتعداد بیت

نام وظیفه

DR 16رجيسترداد

هعملوندخوانده شده

از حافظه

AR 12رجيسترآدر

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

حافظه

AC 16 انباره رجيستر پردازشگر

IR 16رجيستردس

تورکد دستور خوانده

شده

PC 12شمارنده

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

دستور

TR 16رجيسترموق

تنگهداری داده های

موقتی

INPR 8رجيسترورو

دیکاراکترهای ورودی

OUTR 8رجيسترخر

وجیکاراکترهای

خروجی

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

12

ورودی های کنترلی ورودی های کنترلی رجيسترها رجيسترها

•LD (load)بار کردن – •INR (increment) افزایش يك واحدي – •CLR (clear)پاک کردن –

12

CLKCLRINRLD

12

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

13

شمارنده برنامهشمارنده برنامه

آدرس مکانی از حافظه که دستور بعدی در آن •قرار گرفته است را نگه می دارد.

در زمانی که چرخه اجرای دستور فعلی کامل • می شود.(fetch)شد، دستور بعدی واکشی

افزایش می PCدقیقا پس از واکشی دستور، •یابد.

PC ، (branch)در زمان اجرای دستور انشعاب •مقدار جدیدی می گیرد.

12

0

CLK

CLRINRLD

PCPC

11

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

14

((busbus))گذرگاه مشترک گذرگاه مشترک

رجيسترها را به یکدیگر و به حافظه وصل می کند.•

مشخص می شود که خروجی کدام بخش S2 S1 S0با توجه به •باید روی گذرگاه قرار گیرد.

بیت داده دارد ، به بیت های با ارزش 16زمانی که رجيسترکمتر از –گذرگاه مقدار صفر داده می شود.

آن یک باشد، داده ها را از گذرگاه می LDرجيستري که پایه •خواند.

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

حافظه فعال باشد، داده های حافظه Readدر زمانی که پایه •روی گذرگاه قرار می گیرد.

باشد. S2 S1 S0=111مشروط به اینکه –

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

15

نحوه اتصال اجزاء نحوه اتصال اجزاء کامپیوتر پایه کامپیوتر پایه

ALU

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

16

سیستم گذرگاه مشترک سیستم گذرگاه مشترک از نگاه دیگراز نگاه دیگر

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

17

ARARرجيسترآدرس - رجيسترآدرس -

همیشه برای مشخص کردن آدرسی از حافظه بکار می •رود.

این رجيستراختصاصی نیاز به وجود گذرگاه •جداگانه ای برای گذرگاه آدرس را از بین برده

است.محتوای هر یک از رجيسترهایی که خروجی آنها به •

گذرگاه متصل است را می توان در حافظه نوشت.هر یک از رجيسترهایی که ورودی آن به گذرگاه متصل •

از Readاست، می تواند به عنوان مقصد دستور حافظه باشد.

آن فعال باشد.LDدر صورتی که خط –

12

0

CLK

CLRINRLD

ARAR

II

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

18

يا يا رجيسترانبارهرجيسترانبارهACACاكوموالتور - اكوموالتور -

ورودی این رجيستر، خروجی مدار جمع کننده و منطقی می •باشد.

مدار جمع کننده و منطقی•ورودی–

( AC) بیتی انباره16خروجی •( DR) بیتی رجيسترداده16خروجی •( INPR) بیتی رجيسترورودی8خروجی •

خروجی–( AC) بیتی انباره16ورودی • )سرریز یا همان بیت توسعه انباره(Eفلیپ فالپ •

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

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

19

زمانبدی زمانبدی

محتویات هر رجيستري که خروجی آن به گذرگاه متصل •است، می تواند روی گذرگاه گذاشته شود و هر

رجيستري که ورودی های آن به گذرگاه متصل است )همه clock)نیز می تواند در همان چرخه ساعت (ACغير از cycle) .از گذرگاه بار شود

و انتقال به باس ميتواند همزمان Adder Logicعمليات در •صورت گيرد. مثال دو ریز عمل زیر می توانند در یک زمان

اجرا شوند:• DRAC and AC DR

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

20

ساختار کلی دستورات ساختار کلی دستورات پایهپایه

کد عمل از (دستورات مراجعه به حافظه •(110 تا 000

)کد عمل دستورات مراجعه به رجيسترها •(I=0 و 111

و 111)کد عمل دستورات ورودی خروجی •I=1)

15 14 12 11 0

I Opcode Address

15 12

11 0

0 1 1 1 Register operation

15 12

11 0

1 1 1 1 I/O operation

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

21

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

بیت برای کد دستور بکار می رود.3فقط • کد دستور 8بنا به فرض فوق، بنظر می رسد که فقط •

مختلف می توانیم داشته باشیم.اما این غلط است...• است يعني در دستورات 111زمانی که کد عمل •

مراجعه به رجيستر و دستورات ورودي/خروجي كه بیت باقيمانده جهت توسعه 12احتياج به آدرس ندارند،

فضای تعریف کد دستورالعمل ها بکار می رود. دستورالعمل براي كامپيوتر پايه 25در عمل تعداد •

تعريف شده است.

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

22

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

جعرا

م

ترا

وست

دهظ

فحا

ه ب

ه جع

رام

ترا

وست

درست

جي ر

هب

دستورات ورودي/خروجي

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

23

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

پياده سازي Complement و ADDتفريق را ميتوان با •نمود.

ضرب و تقسيم را ميتوان با جمع و تفريق و شيفت •پياده سازي كرد.

بسازيم و با NAND ميتوانيم Complement و ANDبا •NAND هم ميتوان تمام توابع منطقي را پياده سازي

كنيم.

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

24

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

محاسباتی، منطقی، و شیفت•انتقال داده به/از رجيسترها و حافظه •کنترل جريان برنامه و بررسی وضعیت•(I/Oورودی و خروجی )•

اگر يك كامپيوتر در هركدام از گروههاي زير تعدادي دستورالعمل داشته باشد ميگوييم مجموعه

دستورالعملهاي آن كامل است:

مي توان مجموعه دستورالعملها را پيچيده تر هم كرد ولي طراحي مشكلتر خواهد شد.

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

25

واحد کنترلواحد کنترل

دو ساختار كلي براي طراحي واحد

كنترل:

Hard wired

Micro Program

واحد كنترل Hardwired ،با عناصر منطقي مانند گيتها فليپ فالپها، ديكودر و ... به صورت سخت افزاري پياده

سازي ميشود.

در كنترل به صورت Micro program اطالعات كنترلي در ذخيره ميگردد.حافظه كنترليحافظه اي موسوم به

با تغيير طراحي، در روش كنترل hardwired بايد بايد MPتغييراتي در مدار كنترلي اعمال كنيم اما در روش

برنامه داخل حافظه كنترلي را تغيير داد.

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

26

واحد کنترلواحد کنترل

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

27

واحد کنترلواحد کنترل

IRخواندن دستور از حافظه و انتقال آن به •Iقرار دادن سمت چپ ترین بیت در فلیپ فالپ • بیتی دستورالعمل با استفاده از یک 3رمزگشایی کد •

D7تا D0 در خطوط 8 به 3رمزگشای

بیتی شمارنده ترتیبی با استفاده از 4رمزگشایی کد •)سیگنالهای T15 تا T0 در خطوط 16 به 4یک رمزگشای

زمانی(

بیت سمت راستی 12و T15 تا T0 و D7 تا I، D0مقادیر •IR و سایر ورودی ها به دروازه های کنترلی و منطقی

ارسال میگردند.

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

28

((SCSC))ترتیب شمار ترتیب شمار

(CLR) و پاک کردن (INR)دارای ورودی های افزایش • می باشد.

مثال •–SC بصورت افزایشی شمارش می کند تا T0 ، T1 و . . . ،T4

را تولید نماید.

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

این ریز عملیات بصورت زیر نوشته می شود :

– D3T4 : SC0

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

29

دیاگرام زمانیدیاگرام زمانی

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

30

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

- واکشی دستور از حافظه1- رمزگشایی دستور2- خواندن آدرس موثر از حافظه3

در صورتی که از شیوه آدرس دهی غیر مستقیم –استفاده شده باشد

- اجرای دستورالعمل4

.هر دستورالعمل بايد از يك چرخه براي اجرا عبور كندهر سيكل از تعدادي فاز تشكيل شده است.

باز ميگرديم تا 1 دوباره به مرحله 4بعد از اجراي مرحله دستورالعمل بعدي را واكشي نماييم. اين كار تا دستور

HALT.ادامه مي يابد

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

31

واکشی و رمزگشاییواکشی و رمزگشایی

T0 به صفر، سیگنال زمانی SCمقداردهی شدن •

را تولید می کند.

افزایش می یابد.SCپس از هر ضربان زمانی، •ریز عمل های واکشی و رمزگشایی•

• T0 : ARPC

• T1 : IR M[AR] , PC PC+1

• T2 : D0,…,D7 Decode IR(12-14), AR IR(0-11) , I IR(15)

Fetch

Decode

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

32

واکشی و رمزگشاییواکشی و رمزگشایی

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

33

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

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

34

دستورات انتقال دستورات انتقال رجيسترها رجيسترها

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

35

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

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

36

دستور AND to ACاجرای

D0 T4 : DR M[ AR ]

D0 T5 : AC AC DR , SC 0

دستور ADD To ACاجرای

برای شناسایی آن بکار میرود .D1( بیت 001 این دستور )Opcodeبا توجه به

D1 T4 : DR M[ AR ]

D1 T5 : AC AC+ DR , E Cout , SC 0

برای شناسایی آن D0( بیت 000 این دستور )opcodeبا توجه به خوانده DR اپراند از حافظه به داخل T4بکار خواهد رفت. در زمان

انجام AC و DR عمل مورد نظر بر روی محتوی T5میشود و در اجرای دستور تمام T5 منتقل میگردد. در زمان ACشده و نتیجه به

صفر میشود تا مراحل اجرای دستور بعدی آغاز SCشده است لذا (. T0گردد)فاز

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

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

37

دستور Store AC (STA(اجرای

وجود ندارد لذا می بایست برای خواندن داده ای از حافظه و AC و Busچون هیچ مسیر مستقیمی بین منتقل نمود AC به AC و DR منتقل و سپس از مسیر موجود بین DR ابتدا آن را به ACانتقال آن به

به این خاطر بوده که در اینصورت بعلت تاخیری که بر اثر وجود BUS به ACعلت وصل نکردن جمع کننده در سر راه این انتقال بوجود می آمد زمان اجرای این دستور از یک کالک بیشتر میشود ولی با حذف

این مسیر تمامی دستورات را میتوان در یک کالک انجام داد .D2 T4 : DR M[ AR ]

D2 T5 : AC DR , SC 0

این دستور را میتوان با یک میکرواپریشن انجام داد متصل است وBUS به AC زیرا خروجی

موجود می باشد AR آدرس اپراند هم در D3 T4 : M [AR] Ac , SC 0

دستورات مراجعه به دستورات مراجعه به حافظه حافظه دستور Load To AC (LDA(اجرای

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

38

دستور Branch And Save Return Address (BSA(اجرای هنگام صدا زدن یک تابع باید. یا صدا زدن تابع استفاده می شودSubroutineاز این دستور برای پیاده سازی

که آدرس دستور بعدی در روال عادی اجرای برنامه را مشخص میکند در محلی ذخیره گرددPC آدرس موجود در تا پس از خاتمه تابع بتواند دوباره به همان محل رجوع کند .

موجود است ( ذخیره گردیدهAR مشخص شده ) ودر BSA در آدرسی که توسط PC برای پیاده سازی اینکار مقدار محلی است که اجرای تابع از آن شروع خواهد شد.AR+1 پر میشود . AR+1 با PC و سپس مقدار

0 BSA 135

بعدی دستور

21

1 BUN 135

20

PC=21

و حافظه در ARو PCمقادیرT4زمان

0 BSA 135

بعدی دستور

21

1 BUN 135

20

21

135

PC=136

و از PCحافظه بعدBSAاجرای

D5 T4 : M[AR] PC , AR AR+1

D5 T5 : PC AR, SC 0

آدرس واقعی کامپیوترهای دررجیسترهای از یکی در برگشت

CPU یا میشود .Stackو ذخیره

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

زيربرنامه

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

39

دستور Increment & Skip if Zero (ISZ(اجرای

D6 T4 : DR M[ AR ]

D6 T5 : DR DR+1

D6 T6 : M[AR] DR , if( DR=0) then (PC PC+1 ) , SC 0

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

بیتی نیز 3 را میشود با یک شمارنده SC پالس ساعت نیاز دارد لذا 7توجه شود که اجرای طوالنی ترین دستور بیتی برای اجرای تمرینات کتاب است . 4ساخت. استفاده از شمارنده های

دستورات مراجعه به دستورات مراجعه به حافظه حافظه دستور شرطی BUNاجرای غیر پرش

D4 T4 : PC AR , SC 0

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

به آدرس محل مورد نظر میتوان روند PCمشخص میکند از اینرو با تغییر مقدار طبیعی اجرای دستور را قطع و کامپیوتر را وادار به اجرای دستور از محل

دیگری نمود

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

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

یک واحد افزایش داده میشود تا از PCوقتی که شمارنده صفر میشود مقدار اجرای دستور بعدی صرفنظر گردد .

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

40

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

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

41

ورودي- خروجيورودي- خروجي

اگر كامپيوتري نتواند با دنياي خارج ارتباط برقرار كند، •تقريبا هيچ كار مفيدي نميتواند انجام دهد.

براي ورودي و خروجي کامپيوتر بايد از يک ترمينال • به کامپيوتر يک يشود که قسمت ورودياستفاده م

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

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

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

42

FGIFGI

FGOFGO

INPRINPR

ACAC

OUTROUTR

کليد کليد صفحه صفحه

پرينترپرينتر

serial

serial

Parallel

سازمان ورودی خروجیسازمان ورودی خروجی

رجيسترها و فليپ فالپهاي داخل پردازنده

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

43

ييايجاد همزماني )سنکرون کردن( بين ورودايجاد همزماني )سنکرون کردن( بين ورودو کامپيوترو کامپيوتر

است . FGI=0وقتي که کامپيوتر شروع به کار ميکند فليپ فالپ •هنگامي که کليدي در صفحه کليد فشار داده ميشود يک کد هشت بيتي براي •

را FGI فرستاده ميشود . اينکار INPRآن توليد و بصورت سريال به رجيستر يک ميکند تا هم مانع ارسال داده جديد شود و هم کامپيوتر را از وجود يک

. مطلع سازدINPRداده جديد در AC از وجود کليد آگاه ميشود و با انتقال آن به FGI کامپيوتر با چک کردن •

اين فلگ را صفر ميکند . را پيدا ميکند .INPRبا صفر شدن اين فلگ داده جديد اجازه ورود به •

FGIFGI

INPRINPR

ACAC

کليد کليد صفحه صفحه

و يبراي ايجاد همزماني بين ورود FGIکامپيوتر از فليپ فالپ

استفاده ميشود.

INPR : FGI=0است يخال INPR : FGI=1است پر

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

44

FGOFGO

ACAC

OUTROUTRپرينترپرينتر

براي ايجاد همزماني ) سنکرون و کامپيوتر يکردن( بين ورود استفاده FGOاز فليپ فالپ

ميشود.

و و ييايجاد همزماني بين خروجايجاد همزماني بين خروجکامپيوترکامپيوتر

را چک ميکندFGOکامپيوتر قبل از ارسال داده به خروجي • صفر FGO فرستاده شده و OUTR به ACباشد اطالعات FGO=1 اگر •

ميشود . دريافت کرده و پس از چاپ داده OUTR دستگاه خروجي داده را از •

FGO يشودمساوي يک قرار داده م. داده جديدي را به خروجي نخواهد فرستاد.FGO کامپيوتر تا يک شدن •

OUTR : FGO=1يخال است

OUTR : FGO=0است پر

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

45

دستور

INPOUTSKISKOIONIOF

شرط کنترل

PB 11: PB 10:

PB 9: PB 8: PB 7: PB 6:

اپريشن ميکرو

AC ( 0-7) INPR , FGI 0OUT A(0-7) , FGO 0If (FGI=1) Then (PC PC+1)If (FGO=1) Then (PC PC+1)IEN 1IEN 0

صفر ميشود تا دستور بعدي اجرا گردد.SC تمام شده و مقدار T3اجراي دستورات در کالک

I/OI/Oاجراي دستورات اجراي دستورات

اجرا ميشوند . T3 در I/Oدستورات • است. لذا شرط کنترلي I=1( و بيت 111 براي اين دستورات )Op-code مقدار •

مشخص ميگردد . PBI=D7IT3BIبصورت

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

46

دو راه براي اطالع از ورودي و خروجي :1 -Polling:يا سرکشي

کامپيوتر بطور متناوب وضعيت ورودي و خروجي را چک ميکند تا از –آماده بودن خروجي يا ورودي براي انتقال اطالعات آگاه شود .

اين روش ساده است ولي بعلت متفاوت بودن نرخ آماده شدن – و سرعت پردازش کامپيوتر باعث اتالف وقت خواهد I/Oاطالعات در

شد .

2 -Interrupt Driven I/O: در اين روش وسيله ورودي و خروجي با ارسال يک سيگنال وقفه –

برا انتقال اطالعات مطلع مي سازد .I/Oکامپيوتررا از آماده بودن نبوده و کامپيوتر I/O در اين روش ديگر نيازي به چک کردن متناوب –

ميتواند به اجراي برنامه ديگري I/Oدر فاصله بين آماده شدن بپردازد .

InterruptInterruptوقفه وقفه

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

47

IEN FF - فليپ فالپ Interrupt Enable : به امر وقفه اختصاص داده شده FFدر کامپيوتر پايه يک

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

ميکند اما با صفر کردن Set را FF را بدهد اين وقفه ميتوان جلو ارسال وقفه را سد کرد.FFاين

IOF و ION از دستورات FF براي تغيير وضعيت اين •استفاده ميشود.

•FF ديگري به نام R را مشخص مينمايد.وقوع وقفه

يهيهپاپا يوتريوترکامپکامپ دردر وقفهوقفه

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

48

فعال سازی وقفهفعال سازی وقفه

توسط کامپیوتر زمان را تلف FGO وFGIکنترل مداوم •می کند.

هر زمان که نیازی به کنترل ورودی و IENبا استفاده از •خروجی باشد، به وی اطالع داده می شود.

يك FGO یا FGIدر خالل اجرای دستور، در صورتی که • یک می شود.Rباشد، مقدار

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

باشد، اجرای دستور انجام می گیرد. R=0اگر – باشد، اجرای وقفه انجام می گیرد. R=1اگر –

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

49

نمودار گردشی وقفهنمودار گردشی وقفه

براي اين كار استفاده نمود.Stackآدرس برگشت در خانه شماره صفر ذخيره ميشود. كه ميتوان از يك رجيستر و يا

وقفه ديگري قبول نميشود

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

50

T0 : AR PC

T1 : IR M[AR] , PC PC+1

T2 : D7…D0 Decode IR(12-14) , AR IR(0-11)

RRR

سيکل وقفهسيکل وقفه

ميکرو اپريشن سيکل وقفه•

باعث ميشود تا ميکرو اپريشن Rاضافه کردن فليپ فالپ سيکل واکشي و ديکود بصورت زير تصحيح گردد:

به یک: Rبا توجه به شكل مذكور شرط مقدار دهی •

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

51

تاثير وقفه در روند اجراي تاثير وقفه در روند اجراي دستورات کامپيوتر پايهدستورات کامپيوتر پايه

وقتي که يک وقفه اتفاق مي افتد کامپيوتر:•و يکندم تمام دستورجاري خود را ياجرا 1.( را در محل مشخصي ذخيره PCآدرس دستور بعدي )محتوي 2.

ميکند )آدرس صفر حافظه( و با قطع روند عادي اجراي برنامه به اجراي دستورات مربوط 3.

به پردازش وقفه که در آدرس از پيش تعيين شده اي )آدرس يک ( قرار دارد ميپردازد .

از خاتمه اجراي دستورات مربوط به وقفه پس1.کامپيوتر بايد برنامه قطع شده را مجددا از همان محل

ادامه دهد براي اين کار در انتهاي روتين وقفه يک دستور پرش با آدرس دهي غير مستقيم به آدرس صفر

قرار داده ميشود تا برنامه اصلي از محل قطع شده دوباره يك ميشو د.IENهمچنين ادامه يابد .

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

52

0 BUN 1120

برنامه اصلي

1 BUN 0

0

1

255

Pc=256

قبل از وقفه

روتين وقفه

محل شروع روتين وقفه

اتفاق وقفه

0 BUN 1120

برنامه اصلي

1 BUN 0

0

Pc=1

255

256

بعد از وقفه

روتين وقفه

محل ذخيره آدرس برگشت

11201120

256

وقفهوقفه يکليکلسس يياجرااجرا

حافظه حافظه

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

53

تشخيص وقوع وقفهتشخيص وقوع وقفه

عمل واکشي و در هر سيکل اجراي دستور پس از آنکه • انجام شد سخت افزار کامپيوتر وقوع ديکود دستورالعمل

يک وقفه را بررسي ميکند . باشد يعني کامپيوتر اجازه وقفه را IEN=1در صورتي که •

فعال شده FGO و FGIداده باشد و يکي از پرچمهاي باشد وقوع وقفه تشخيص داده ميشود.

ثبت ميشود R به نام FF کردن يک Set وقوع وقفه با •.تاعمليات مربوط به پردازش وقفه آغاز شود

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

54

سيکل وقفهسيکل وقفه

باشد يک وقفه اتفاق R=1در صورتي که فليپ فالپ بجاي روند T0افتاده است لذا کامپيوتر در سيکل

عادي اجراي سيکل دستور عمليات مربوط به اجراي سيکل وقفه راانجام ميدهد اين عمليات عبارتست از :

دستور بعدي در محل صفر حافظه و انجام ذخيره آدرس–پرش به محل يک حافظه.

ميشود تا دوباره سيکل اجراي دستور شروع R=0 همچنين –شود .

ميشود تا در هنگام پردازش وقفه IEN=0به همين ترتيب –جاري جلوي وقفه هاي ديگر گرفته شود .

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

55

سيکل وقفهسيکل وقفه

Fetch Decode Execute

R=1

R=0

Interrupt

Fetch Decode Execute

Fetch Decode Execute

Fetch Decode Execute...

...

...

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

56

نمودار گردشی اعمال نمودار گردشی اعمال پايهپايه کامپیوترکامپیوتر

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

57

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

بیتی16 کلمه 4096یک واحد حافظه متشکل از •نه رجيستر به نامهای:•

–AR,PC,DR,AC,IR,TR,OUTR,INPR,SC

فلیپ فالپ های وضعیت: •–I,S,E,R,IEN,FGI,FGO

رمز گشا • برای کد دستورها8 به 3یک رمز گشای – برای زمانبندی 16 به 4یک رمزگشای –

دروازه های منطقی کنترلی )برای ساختن واحد کنترل به •(Hardwiredصورت

جمع کننده و مدار منطقی •به رجيسترانباره متصل می شود. –

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

58

ورودی های دروازه های ورودی های دروازه های منطقی مدارکنترلمنطقی مدارکنترل

دو رمز گشا• بیت خروجی ترتیب 16 بیت دستور العمل و 8–

شمار

I,S,E,R,IEN,FGI,FGOهفت فلیپ فالپ • رجيستر دستور العمل11 تا 0بیت های • رجيسترانباره15 تا 0بیت های •

برای کنترل صفر بودن رجيستر و کنترل بیت –عالمت

رجيسترداده 15 تا 0بیت های •برای کنترل صفر بودن رجيستر–

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

59

خروجی های دروازه های خروجی های دروازه های منطقی کنترلمنطقی کنترل

رجيستر9ورودی های کنترلی •خطوط کنترلی خواندن و نوشتن حافظه •یک ، صفر یا متمم کردن مقدار فلیپ فالپ ها •

جهت انتخاب یک رجيستربرای دسترسی به S2S1S0خطوط •گذرگاه

ACکنترل جمع کننده و مدار منطقی انباره متصل به •

هدف: طراحي سيگنالهايي براي كنترل:هدف: طراحي سيگنالهايي براي كنترل:

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

60

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

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

61

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

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

62

دروازه های کنترلی دروازه های کنترلی ARARرجيستررجيستر

LD,INR,CLRورودی های کنترلی رجيستر: •

را تغییر می ARتمام عبارتهایی که مقدار •دهند پیدا میکنیم

)ریزعملیاتهایی که به فرم َAR … )باشند

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

63

دروازه های کنترلی دروازه های کنترلی رجيسترآدرسرجيسترآدرس

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

64

دروازه های کنترلی فلیپ دروازه های کنترلی فلیپ IENIENفالپ فالپ

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

65

حافظه حافظهReadRead خط خط کنترلکنترل

در سمت M[AR]تمام ميكرواپريشن هايي كه در آنها • ... (M[AR] راست انتقال قرار دارد. ) به فرم :

Read= R’T1+D’7IT3 + (D0 + D1 + D2 + D6)T4

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

66

رمزگذار جهت مدار رمزگذار جهت مدار انتخابگر گذرگاهانتخابگر گذرگاه

ARبرای رجيستر •

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

67

مدار مرتبط با مدار مرتبط با رجيسترانباره رجيسترانباره

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

68

دستوارت تاثیر گذار روی مقدار دستوارت تاثیر گذار روی مقدار رجيسترانباره رجيسترانباره

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

69

دروازه های کنترلی دروازه های کنترلی رجيسترانبارهرجيسترانباره

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

70

دروازه های کنترلی واحد دروازه های کنترلی واحد جمع کننده و منطقجمع کننده و منطق