Top Banner
1 Department of Computer and IT Department of Computer and IT Engineering Engineering University of Kurdistan University of Kurdistan Computer Architecture Designing a Basic Computer By: Dr. Alireza Abdollahpouri By: Dr. Alireza Abdollahpouri
68

Department of Computer and IT Engineering University of Kurdistan Computer Architecture

Mar 15, 2016

Download

Documents

tamekah-bridges

Department of Computer and IT Engineering University of Kurdistan Computer Architecture Designing a Basic Computer By: Dr. Alireza Abdollahpouri. معماري SPC : Stored program control. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Department of Computer and IT Engineering University of Kurdistan Computer Architecture

1

 

Department of Computer and IT EngineeringDepartment of Computer and IT EngineeringUniversity of KurdistanUniversity of Kurdistan

Computer Architecture

Designing a Basic ComputerBy: 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دستورالعمل نه تنها بايد نوع عمل )

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

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

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

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

15 12 11 0

قالب دستور

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

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

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

8

انواع آدرسانواع آدرس بیتی قرار گرفته دستور12آدرس •

(immediate)بالفصل –مقدار واقعی داده •

(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

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

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

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

جدیدی می گیرد.

12

0

CLKCLRINRLD

PCPC

II

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

13

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

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

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

14

((busbus))گذرگاه مشترک گذرگاه مشترک رجيسترها را به یکدیگر و به حافظه وصل می کند.•مشخص می شود که خروجی کدام بخش S2 S1 S0با توجه به •

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

گذرگuاه مقدار صفر داده می شود. آن یک باشد، داده ها را از گذرگاه می 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

CLKCLRINRLD

ARAR

II

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

18

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

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

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

( AC) بیتیu انباره16خروجی •( DR) بیتیu رجيسترداده16خروجی •( INPR) بیتیu رجيسترورودی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

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

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

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

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

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اجرایبه توجه دستور )Opcodeبا میرود .D1بیت( 001این بکار آن شناسایی برای

D1 T4 : DR M[ AR ]

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

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

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

( فاز گردد آغاز بعدی دستور اجرای (. T0مراحل

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

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

37

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

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

نکردن وصل وجود 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آدرس ذخیره محلی در میکند مشخص را برنامه اجرای عادی روال در بعدی دستور آدرس کهکند . رجوع محل همان به دوباره بتواند تابع خاتمه از پس تا

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

0 BSA 135بعدی دستور

21

1 BUN 135

20

PC=21

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

0 BSA 135بعدی دستور

21

1 BUN 135

20

21

135

PC=136

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

D5 T4 : M[AR] PC , AR AR+1D5 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+1D6 T6 : M[AR] DR , if) DR=0( then )PC PC+1 ( , SC 0

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

دستور ترین طوالنی اجرای که شود لذا 7توجه دارد نیاز ساعت شمارنده SCپالس یک با میشود نیز 3را بیتیهای. شمارنده از استفاده است . 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 کuامپيوتر با چک کردن •

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

FGIFGI

INPRINPR

ACAC

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

و يبراي ايجاد همزماني بين ورود 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.( را در محل مشخصuي ذخيره PCآدرس دستور بعدي )محتوي 2.

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

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

از خاتمه اجراي دستورات مربوط به وقفه کامپيوتر پس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

255256

بعد از وقفه

روتين وقفه

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

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=1R=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یک رمزگشای –

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

به رجيسترانباره متصل می شود. –

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

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

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

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

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

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

60

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

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

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

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

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

63

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

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

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

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

64

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

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

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

65

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

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

66

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

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

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