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
Mar 15, 2016
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
2
SPC : Stored program controlمعماري
در اين نوع ساختار که اغلب کامپيوتر ها از آن پيروي ميکنند عمليات يک کامپيوتر قرار RAMتوسط برنامه اي که توسط برنامه نويس نوشته شده و در حافظه
داده ميشود کنترل ميگردد .
اين برنامه مجموعه اي از دستورالعمل هاست که نوع عمليات، عملوندهاي •مربوطه و توالي اجراي عمليات را مشخص مي کند .
يک دستورالعمل يک کد باينري است که توالي انجام ميکرواپريشن ها را •کامپيوتر يک دستورالعمل را از حافظه مشخص مي نمايد .
خوانده و در داخل يک رجيستر قرار مي دهد.
واحد کنترل کد باينري دستورالعمل را Decode کرده و دنباله اي از
ميکرواپريشن هاي الزم براي اجراي آن دستورالعمل را بوجود مي آورد .
کد يک دستورالعمل گروهي از بيت هاست که به کامپيوتر دستور مي دهد تا
عمل خاصي را انجام دهد . اين کد معموال به بخشهايي تقسيم مي شود که
هر کدام وظيفه خاص خودشان را دارند .
ADD Ax,s
Control Regs
کنترل واحد
Regs ALU
RAM
3
اصلي ترين قسمت يک کد دستورالعمل بخشOperation code يا Op-code. است
Op-code نوع دستورالعمل نظير ADD ، SUB و غيره را مشخص ميکند تعداد بيتهاي
Op-code به تعداد کل دستورالعملهاي موجود در cpu. بستگي دارد بلكه بايد محلي كه آن عمل ( opcodeدستورالعمل نه تنها بايد نوع عمل )
روي آن انجام ميگردد )حافظه يا رجيستر( را مشخص كند. آن مشخص مي شوRد آدرس لذا در کد دستورالعمل يک محل حافظه با
که اين آدرس جزئي از کد دستوRرالعمل را تشکيل مي دهد . نيز از يک کد باينري استفاده مي CPUبراي مشخص کردن رجيسترهاي
بيتي براي آنها K تعداد رجيستر داشته باشد از يک کد CPUشوRد اگر استفاده مي شوRد .
k2
مهمترين كار در معماري يك كامپيوتر تعيين نوع دستورالعملها ونوع و تعداد رجيسترهاست.
4
کامپیوتر پایه مانوکامپیوتر پایه مانو
بیتی16 کلمه 4096واحد حافظه با • ,AR, PC, DR, AC, IR, TR, OUTR, INPRرجيسترهای •
SCI, S, E, R, IEN, FGI, FGOفلیپ فالپ های • زمانبندی16 به 4 اعمال و 8 به 3رمزگشای • بیتی16گذرگاه مشترک •دروازه های منطقی کنترلی • وصل ACجمع کننده و مدارهای منطقی که به ورودی •
شده اند.
5
کد دستورهاکد دستورها
دستورهای کامپیوتر بصورت یک کد دودوئی هستند که •ترتیب خاصی از ریز عمل ها را مشخص می کنند.
کد دستور + آدرس • بیتی باشد.n باشد، کد دستور باید 2nاگر تعداد دستورات –نامیده (Macro Operation )درشت عملکد دستور گاهی –
می شود. آدرس یک رجيسترو یا مکانی از حافظه را مشخص می کند.–
مکان حافظه آدرس عملوند می باشد.•دستورها و داده ها در حافظه قرار دارند.•
6
تشکیالت یک برنامه تشکیالت یک برنامه ذخیره شدهذخیره شده
یک رجيسترپردازنده •–AC – accumulator
شکل دستور • بیتی می باشد.4کد دستور –(212=4096 بیت مربوط به آدرس می باشد )12–
چرخه اجرای دستور • بیتی از حافظه16خواندن یک دستور – بیت آدرس جهت واکشی عملوند از حافظه 12استفاده از– بیتی4اجرای کد دستور –
7
سازمان یک برنامه ذخیره سازمان یک برنامه ذخیره شدهشده
دستورات برنامه
عملوند ها )داده(
4096X16حافظه
AC - رجيسترپردازنده
کد آدرس
عملوند دودوئی15 0
15 12 11 0
قالب دستور
(operandممكن است بعضي از دستورالعملها به عملوند ). كه در اين حالت قسمت آدرس Clear AC احتياج نداشته باشند. مانند
ميتواند براي مقاصد ديگري استفاده شود.
8
انواع آدرسانواع آدرس بیتی قرار گرفته دستور12آدرس •
(immediate)بالفصل –مقدار واقعی داده •
(direct)مستقیم –آدرس مکانی از حافظه که داده در آنجا قرار گرفته است.•
(indirect)غیر مستقیم –آدرس مکانی از حافظه که ، در آنجا آدرس داده مورد نظر •
)عملوند( قرار گرفته است. گفته می (EA)به آدرس مکان عملوند آدرس موثر •
شود.یکی از بیت های دستور به عنوان بیت غیرمستقیم در •
نظر گرفته شده است.
9
آدرس دهی مستقیم و غیر آدرس دهی مستقیم و غیر مستقیممستقیم
آدرس موثرآدرس موثر
آدرس دهی غیر آدرس دهی غیر آدرس دهی مستقیمآدرس دهی مستقیممستقیممستقیم
10
رجيستر ها و حافظه رجيستر ها و حافظه کامپیوتر مبناکامپیوتر مبنا
IR15 0
TR15 0
DR15 0
AC15 0
OUTR7 0
INPR7 0
PC11 0
AR11 0
Memory4096 X 16
11
لیست رجيستر های لیست رجيستر های کامپیوتر مبناکامپیوتر مبنا
نماد تعداد بیت نام وظیفه
DR 16 رجيسترداده عملوندخوانده شده از حافظه
AR 12 رجيسترآدرس نگهداری آدرس حافظهAC 16 انباره رجيستر پردازشگرIR 16 رجيستردستو
ر کد دستور خوانده شده
PC 12 شمارنده برنامه نگهداری آدرس دستور
TR 16 رجيسترموقت نگهداری داده های موقتی
INPR 8 رجيسترورودی کاراکترهای ورودی
OUTR 8 رجيسترخروجی کاراکترهای خروجی
12
شمارنده برنامهشمارنده برنامهآدرس مکانی از حافظه که دستور بعدی در آن قرار •
گرفته است را نگه می دارد.در زمانی که چرخه اجرای دستور فعلی کامل شد، •
می شود.(fetch)دستور بعدی واکشی افزایش می یابد.PCدقیقا پس از واکشی دستور، • مقدار PC ، (branch)در زمان اجرای دستور انشعاب •
جدیدی می گیرد.
12
0
CLKCLRINRLD
PCPC
II
13
ورودی های کنترلی ورودی های کنترلی رجيسترها رجيسترها
•LD (load)بار کردن – •INR (increment) افزایش يك واحدي – •CLR (clear)پاک کردن –
14
((busbus))گذرگاه مشترک گذرگاه مشترک رجيسترها را به یکدیگر و به حافظه وصل می کند.•مشخص می شود که خروجی کدام بخش S2 S1 S0با توجه به •
باید روی گذرگاه قرار گیرد. بیت داده دارد ، به بیت های با ارزش 16زمانی که رجيسترکمتر از –
گذرگuاه مقدار صفر داده می شود. آن یک باشد، داده ها را از گذرگاه می LDرجيستري که پایه •
خواند. حافظه فعال باشد، داده ها در حافظه Writeدر زمانی که پایه •
نوشته می شود. حافظه فعال باشد، داده های حافظه Readدر زمانی که پایه •
روی گذرگاه قرار می گیرد باشد. S2 S1 S0=111مشروط به اینکه –
15
گذرگاه مشترکگذرگاه مشترک
ALU
16
سیستم گذرگاه مشترکسیستم گذرگاه مشترک
17
ARARرجيسترآدرس - رجيسترآدرس -
همیشه برای مشخص کردن آدرسی از حافظه بکار می •رود.
این رجيستراختصاصی ، نیاز به وجود گذرگاه •جداگانه ای برای گذرگاه آدرس را از بین برده
است.محتوای هر یک از رجيسترهایی که خروجی آنها به گذرگاه •
متصل است را می توان در حافظه نوشت.هر یک از رجيسترهایی که ورودی آن به گذرگاه متصل •
از حافظه Readاست، می تواند به عنوان مقصد دستور باشد.
آن فعال باشد.LDدر صورتی که خط –12
0
CLKCLRINRLD
ARAR
II
18
يا اكوموالتور يا اكوموالتور رجيسترانبارهرجيسترانباره - -ACAC
ورودی این رجيستر، خروجی مدار جمع کننده و منطقی می •باشد.
مدار جمع کننده و منطقی•ورودی–
( AC) بیتیu انباره16خروجی •( DR) بیتیu رجيسترداده16خروجی •( INPR) بیتیu رجيسترورودی8خروجی •
خروجی–( AC) بیتی انباره16ورودی • )سرریز یا همان بیت توسعه انباره(Eفلیپ فالپ •
رجيسترهای داده و انباره برای انجام اعمال منطقی و •محاسباتی بکار می روند.
19
زمانبدی زمانبدی
محتویات هر رجيستري که خروجی آن به گذرگاه متصل •است، می تواند روی گذرگاه گذاشته شود و هر
رجيستري که ورودی های آن به گذرگاه متصل است )همه clock)نیز می تواند در همان چرخه ساعت (ACغير از cycle) .از گذرگاه بار شود
و انتقال به باس ميتواند همزمان Adder Logicعمليات در •صورت گيرد. مثال دو ریز عمل زیر می توانند در یک زمان
اجرا شوند:• DRAC and AC DR
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
21
فرمت دستوراتفرمت دستورات
بیت برای کد دستور بکار می رود.3فقط • کد دستور 8بنا به فرض فوق، بنظر می رسد که فقط •
مختلف می توانیم داشته باشیم.اما این غلط است...• است يعني در دستورات 111زمانی که کد عمل •
مراجعه به رجيستر و دستورات ورودي/خروجي كه بیت باقيمانده جهت توسعه 12احتياج به آدرس ندارند،
فضای تعریف کد دستورالعمل ها بکار می رود. دستورالعمل براي كامپيوتر پايه 25در عمل تعداد •
تعريف شده است.
22
دستورات کامپیوتر پایهدستورات کامپیوتر پایهه
جعرا
مت
راتو
سد
ظهاف
حبه
ه جع
را م
ت را
توس
دتر
سجي
ربه
دستورات ورودي/خروجي
23
دستورات کامپیوتر پایهدستورات کامپیوتر پایه
پياده سازي Complement و ADDتفريق را ميتوان با •نمود.
ضرب و تقسيم را ميتوان با جمع و تفريق و شيفت •پياده سازي كرد.
بسازيم و با NAND ميتوانيم Complement و ANDبا •NAND هم ميتوان تمام توابع منطقي را پياده سازي
كنيم.
24
کامل بودن مجموعه کامل بودن مجموعه دستوراتدستورات
محاسباتی، منطقی، و شیفت•انتقال داده به/از رجيسترها و حافظه •کنترل جريان برنامه و بررسی وضعیت•(I/Oورودی و خروجی )•
اگر يك كامپيوتر در هركدام از گروههاي زير تعدادي دستورالعمل داشته باشد ميگوييم مجموعه
دستورالعملهاي آن كامل است:
مي توان مجموعه دستورالعملها را پيچيده تر هم كرد ولي طراحي مشكلتر خواهد شد.
25
واحد کنترلواحد کنترل
دو ساختار كلي براي طراحي واحد
كنترل:
Hard wired
Micro Program
واحد كنترل Hardwired ،با عناصر منطقي مانند گيتها فليپ فالپها، ديكودر و ... به صورت سخت افزاري پياده
سازي ميشود. در كنترل به صورت Micro program اطالعات كنترلي در
ذخيره ميگردد.حافظه كنترليحافظه اي موسوم به با تغيير طراحي، در روش كنترل hardwired بايد
بايد MPتغييراتي در مدار كنترلي اعمال كنيم اما در روش برنامه داخل حافظه كنترلي را تغيير داد.
26
واحد کنترلواحد کنترل
27
واحد کنترلواحد کنترل
IRخواندن دستور از حافظه و انتقال آن به •Iقرار دادن سمت چپ ترین بیت در فلیپ فالپ • بیتی دستورالعمل با استفاده از یک 3رمزگشایی کد •
D7تا D0 در خطوط 8 به 3رمزگشای
بیتی شمارنده ترتیبی با استفاده از یک 4رمزگشایی کد •)سیگنالهای T15 تا T0 در خطوط 16 به 4رمزگشای
زمانی( بیت سمت راستی 12و T15 تا T0 و D7 تا I، D0مقادیر •
IR و سایر ورودی ها به دروازه های کنترلی و منطقی ارسال میگردند.
28
((SCSC))ترتیب شمار ترتیب شمار
(CLR) و پاک کردن (INR)دارای ورودی های افزایش • می باشد.
مثال •–SC بصورت افزایشی شمارش می کند تا T0 ، T1 و . . . ،T4
را تولید نماید. فعال باشد ، ترتیب شماره پاک شده و D3 ، اگر T4در زمان –
مقدار صفر می گیرد.بصورت زیر نوشته می شود : –
– D3T4 : SC0
29
دیاگرام زمانیدیاگرام زمانی
30
چرخه دستورالعمل چرخه دستورالعمل
- واکشی دستور از حافظه1- رمزگشایی دستور2- خواندن آدرس موثر از حافظه3
در صورتی که از شیوه آدرس دهی غیر مستقیم –استفاده شده باشد
- اجرای دستورالعمل4
.هر دستورالعمل بايد از يك چرخه براي اجرا عبور كندهر سيكل از تعدادي فاز تشكيل شده است.
باز ميگرديم تا 1 دوباره به مرحله 4بعد از اجراي مرحله دستورالعمل بعدي را واكشي نماييم. اين كار تا دستور
HALT.ادامه مي يابد
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
32
واکشی و رمزگشاییواکشی و رمزگشایی
33
تعیین نوع دستورالعملتعیین نوع دستورالعمل
34
دستورات انتقال دستورات انتقال رجيسترها رجيسترها
35
دستورات مراجعه به دستورات مراجعه به حافظه حافظه
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مراحل
دستورات مراجعه به دستورات مراجعه به حافظه حافظه
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(اجرای
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و ذخیره
دستورات مراجعه به دستورات مراجعه به حافظه حافظه
زيربرنامه
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مقدار صرفنظر بعدی دستور اجرای از تا میشود داده افزایش واحد یک
40
دستورات ارجاع به دستورات ارجاع به حافظهحافظه
41
ورودي – خروجيورودي – خروجياگر كامپيوتري نتواند با دنياي خارج ارتباط برقرار كند، •
تقريبا هيچ كار مفيدي نميتواند انجام دهد.براي ورودي و خروجي کامپيوتر بايد از يک ترمينال •
به کامپيوتر يک يشود که قسمت ورودياستفاده مو بخش خروجي يک پرينتر خواهد بود . صفحه کليد
هر دو قسمت ورودي و خروجي بصورت سريال با •کامپيوتر در تماسند .
42
FGIFGI
FGOFGO
INPRINPR
ACAC
OUTROUTR
کليد کليد صفحه صفحه
پرينترپرينتر
serial
serial
Parallel
سازمان ورودی خروجیسازمان ورودی خروجی
رجيسترها و فليپ فالپهاي داخل پردازنده
43
و و ييايجاد همزماني ) سنکرون کردن( بين ورودايجاد همزماني ) سنکرون کردن( بين ورودکامپيوترکامپيوتر
است . FGI=0وقتي که کامپيوتر شروع به کار ميکند فليپ فالپ •هنگامي که کليدي در صفحه کليد فشار داده ميشود يک کد هشت بيتي براي •
را FGI فرستاده ميشود . اينکار INPRآن توليد و بصورت سريال به رجيستر يک ميکند تا هم مانع ارسال داده جديد شود و هم کامپيوتر را از وجود يک
. مطلع سازدINPRداده جديد در AC از وجود کليد آگاه ميشود و با انتقال آن به FGI کuامپيوتر با چک کردن •
اين فلگ را صفر ميکند . را پيدا ميکند .INPRبا صفر شدن اين فلگ داده جديد اجازه ورود به •
FGIFGI
INPRINPR
ACAC
کليد کليد صفحuه صفحuه
و يبراي ايجاد همزماني بين ورود FGIکامپيوتر از فليپ فالپ
استفاده ميشود.
INPR : FGI=0است يخال INPR : FGI=1است پر
44
FGOFGO
ACAC
OUTROUTRپرينترپرينتر
براي ايجاد همزماني ) سنکرون و کامپيوتر يکردن( بين ورود استفاده FGOاز فليپ فالپ
ميشود.
و کامپيوتر و کامپيوترييايجاد همزماني بين خروجايجاد همزماني بين خروج
را چک ميکندFGOکامپيوتر قبل از ارسال داده به خروجي • صفر FGO فرستاده شده و OUTR به ACباشد اطالعات FGO=1 اگر •
ميشود . دريافت کرده و پس از چاپ داده OUTR دستگاه خروجي داده را از •
FGO يشودمساوي يک قرار داده م. داده جديدي را به خروجي نخواهد فرستاد.FGO کامپيوتر تا يک شدن •
OUTR : FGO=1يخال است
OUTR : FGO=0است پر
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 . مشخص ميگردد
46
دو راه براي اطالع از ورودي و خروجي :1 -Polling: يا سرکشي
کامپيوتر بطور متناوب وضعيت ورودي و خروجي را چک ميکند تا از –آماده بودن خروجي يا ورودي براي انتقال اطالعات آگاه شود .
اين روش ساده است ولي بعلت متفاوت بودن نرخ آماده شدن – و سرعت پردازش کامپيوتر باعث اتالف وقت خواهد I/Oاطالعات در
شد .2 -Interrupt Driven I/O:
در اين روش وسيله ورودي و خروجي با ارسال يک سيگنال وقفه – برا انتقال اطالعات مطلع ميسازد .I/Oکامپيوتررا از آماده بودن
نبوده و کامپيوتر I/O در اين روش ديگر نيازي به چک کردن متناوب – ميتواند به اجراي برنامه ديگري I/Oدر فاصله بين آماده شدن
بپردازد .
InterruptInterruptوقفه وقفه
47
IEN FF - فليپ فالپ Interrupt Enable : به امر وقفه اختصاص داده شده FF در کامپيوتر پايه يک
است .اجازه ارسال I/O اگر کامپيوتر بخواهد به دستگاه •
ميکند اما با صفر کردن Set را FF را بدهد اين وقفه ميتوان جلو ارسال وقفه را سد کرد .FFاين
IOF و ION از دستورات FF براي تغيير وضعيت اين •استفاده ميشود .
•FF ديگري به نام R را مشخص مينمايد.وقوع وقفه
يهيهپاپا يوتريوترکامپکامپ دردر وقفهوقفه
48
فعال سازی وقفهفعال سازی وقفه
توسط کامپیوتر زمان را تلف FGO وFGIکنترل مداوم •می کند.
هر زمان که نیازی به کنترل ورودی و IENبا استفاده از •خروجی باشد، به وی اطالع داده می شود.
يك FGO یا FGIدر خالل اجرای دستور، در صورتی که • یک می شود.Rباشد، مقدار
وقفه در زمانی رخ می دهد که کامپیوتر خواسته باشد •دستور بعدی را واکشی نماید.
باشد، اجرای دستور انجام می گیرد. R=0اگر – باشد، اجرای وقفه انجام می گیرد. R=1اگر –
49
نمودار گردشی وقفهنمودار گردشی وقفه
براي اين كار استفاده نمود.Stackآدرس برگشت در خانه شماره صفر ذخيره ميشود. كه ميتوان از يك رجيستر و يا
وقفه ديگري قبول نميشود
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با توجه به شكل مذكور شرط مقدار دهی •
51
تاثير وقفه در روند اجراي دستورات کامپيوتر تاثير وقفه در روند اجراي دستورات کامپيوتر پايه :پايه :
:وقتي که يک وقفه اتفاق مي افتد کامپيوتر•و يکندم تمام دستورجاري خود را ياجرا 1.( را در محل مشخصuي ذخيره PCآدرس دستور بعدي )محتوي 2.
ميکند )آدرس صفر حافظه( و با قطع روند عادي اجراي برنامه به اجراي دستورات مربوط به 3.
پردuازش وقفه که در آدرس از پيش تعيين شده اي )آدرس يک ( قرار دارد ميپردuازد .
از خاتمه اجراي دستورات مربوط به وقفه کامپيوتر پس1.بايد برنامه قطع شده را مجددا از همان محل ادامه دهد براي اين کار در انتهاي روتين وقفه يک دستور پرش با
آدرس دهي غير مستقيم به آدرس صفر قرار داده ميشود همچنين تا برنامه اصلي از محل قطع شده ادامه يابد .
IEN.دوباره يك ميشو د
52
0 BUN 1120
برنامه اصلي
1 BUN 0
0
1
255
Pc=256
قبل از وقفه
روتين وقفه
محل شروع روتين وقفه اتفاق وقفه
0 BUN 1120
برنامه اصلي
1 BUN 0
0
Pc=1
255256
بعد از وقفه
روتين وقفه
محل ذخيره آدرس برگشت
11201120
256
وقفهوقفه يکليکلسس يياجرااجرا
حافظه حافظه
53
تشخيص وقوع وقفه :تشخيص وقوع وقفه :
عمل واکشي و در هر سيکل اجراي دستور پس از آنکه • انجام شد سخت افزار کامپيوتر وقوع ديکود دستورالعمل
يک وقفه را بررسي ميکند . باشد يعني کامپيوتر اجازه وقفه را IEN=1در صورتي که •
فعال شده FGO و FGIداده باشد و يکي از پرچمهاي باشد وقوع وقفه تشخيص داده ميشود .
ثبت ميشود R به نام FF کردن يک Set وقوع وقفه با •.تاعمليات مربوط به پردازش وقفه آغاز شود
54
سيکل وقفه :سيکل وقفه :
باشد يک وقفه اتفاق R=1در صورتي که فليپ فالپ بجاي روند T0افتاده است لذا کامپيوتر در سيکل
عادي اجراي سيکل دستور عمليات مربوط به اجراي سيکل وقفه راانجام ميدهد اين عمليات عبارتست از :
دستور بعدي در محل صفر حافظه و انجام ذخيره آدرس–پرش به محل يک حافظه .
ميشود تا دوباره سيکل اجراي دستور شروع R=0 همچنين –شود .
ميشود تا در هنگام پردازش وقفه IEN=0به همين ترتيب –جاري جلوي وقفه هاي ديگر گرفته شود .
55
سيکل وقفه :سيکل وقفه :
Fetch Decode Execute
R=1R=0
Interrupt
Fetch Decode Execute
Fetch Decode Execute
Fetch Decode Execute...
...
...
56
نمودار گردشی اعمال نمودار گردشی اعمال پايهپايه کامپیوترکامپیوتر
57
نیاز های سخت افزاری برای طراحی نیاز های سخت افزاری برای طراحی کامپیوتر پایه کامپیوتر پایه
بیتی16 کلمه 4096یک واحد حافظه متشکل از •نه رجيستر به نامهای:•
–AR,PC,DR,AC,IR,TR,OUTR,INPR,SCفلیپ فالپ های وضعیت: •
–I,S,E,R,IEN,FGI,FGOرمز گشا •
برای کد دستورها8 به 3یک رمز گشای – برای زمانبندی 16 به 4یک رمزگشای –
دروازه های منطقی کنترلی •جمع کننده و مدار منطقی •
به رجيسترانباره متصل می شود. –
58
ورودی های دروازه های ورودی های دروازه های منطقی مدارکنترلمنطقی مدارکنترل
دو رمز گشا• بیت خروجی ترتیب 16 بیت دستور العمل و 8–
شمارI,S,E,R,IEN,FGI,FGOهفت فلیپ فالپ • رجيستردستور العمل11 تا 0بیت های • رجيسترانباره15 تا 0بیت های •
برای کنترل صفر بودن رجيسترو کنترل بیت –عالمت
رجيسترداده 15 تا 0بیت های •برای کنترل صفر بودن رجيستر–
59
خروجی های دروازه های خروجی های دروازه های منطقی کنترلمنطقی کنترل
رجيستر9uورودی های کنترلی •خطوط کنترلی خواندن و نوشتن حافظه •یک ، صفر یا متمم کردن مقدار فلیپ فالپ ها •جهت انتخاب یک رجيستربرای دسترسی به S2S1S0خطوط •
گذرگاه ACکنترل جمع کننده و مدار منطقی انباره متصل به •
هدف: طراحي سيگنالهايي براي كنترل:هدف: طراحي سيگنالهايي براي كنترل:
60
دروازه های کنترلی دروازه های کنترلی ARARرجيستررجيستر
LD,INR,CLRورودی های کنترلی رجيستر: • را تغییر می دهند:ARتمام دستوراتی مقدار •
61
دروازه های کنترلی دروازه های کنترلی رجيسترآدرسرجيسترآدرس
62
دروازه های کنترلی فلیپ دروازه های کنترلی فلیپ IENIENفالپ فالپ
63
حافظه حافظهReadRead خط خط کنترلکنترل
در سمت M[AR]تمام ميكرواپريشن هايي كه در آنها • ... (M[AR] راست انتقال قرار دارد. ) به فرم :
Read= R’T1+D’7IT3 + (D0 + D1 + D2 + D6)T4
64
رمزگذار جهت مدار انتخابگر رمزگذار جهت مدار انتخابگر گذرگاهگذرگاه
ARبرای رجيستر •
65
مدار مرتبط با مدار مرتبط با رجيسترانباره رجيسترانباره
66
دستوارت تاثیر گذار روی مقدار دستوارت تاثیر گذار روی مقدار رجيسترانباره رجيسترانباره
67
دروازه های کنترلی دروازه های کنترلی رجيسترانبارهرجيسترانباره
68
دروازه های کنترلی واحد جمع دروازه های کنترلی واحد جمع کننده و منطقکننده و منطق