صفحه 1:
فصل ۵
مظفر بگ محمدی
بهار ٩۴
دانشكاه ايلام
صفحه 2:
0 روش ما
* فقط از فلیپ فلاپها استفاده می کنیم.
* تمام آنها با یک لبه کار می کنند. (مثلا لبه ی پایین رونده)
* کلاک همه یکسان است.
؟ نیازی به رسم کلاک نیست.
* تمام اعمال مورد نظر در یک کلاک خاتمه می یابند.
t 1
صفحه 3:
0 روش ما (ادامه...)
SU * وارد هیچ گیتی نمی ew ure,
ان اج
شود.
unite OO clock
؟ طراحی صحیح:
۳ ان
Sear ptute |)»
|
unite
صفحه 4:
0 مسير داده = 20 برابر ١
* فرض: یعنی هر دستورالعمل در یک کلاک انجام می شود.
۴ دستورالعملها:
add, sub, ocd, or oh, hu, sw, & bey ©
# هر دستورالعمل را جدا طراحی می کنیم.
* بعد همه را به هم وصل می کنیم.
صفحه 5:
واکشی دستورالعملها
* دستورالعمل را واکشی کنید. سپس
PO ,| افزایش دهید.
* برای همه دستورات یکسان است.
© فى & 5s
4 فرض كنيد:
2 © 4*0 هر سیکلبه روزرسانی
cad 5
ve Sires
Instruction ——e ۴ فعلا مس و انشعاب نداریم.
"aren * بعد از انجام این دستور. دستور
بعدی را واکشی می کنیم.
صفحه 6:
دستور العملهای ,ا9)
cod $4, $0, $9 # $d <= $C &$O ©
7 ALU operation
register 1 Read
Read data 1
Instruction register 2
Registers
ite
register 5-55
White data 2
data’
Treguite
© Ey. OIPG RPorweat
Operde rs ۳ rd مد مد
9 و oe 6s
صفحه 7:
loud) store دستور العملهای
© بنذ $4, coved $C) # $0 <= O[GEC (owed) + $C]
© By. DWP 1-Poreoet:
Opoode ot 3 عدم
6 6 2 9
3q AtU operation
register 1 ea Meminite
feel ata?
register 2
Peasters ویب
register ‘Steal
ata 2 عق
ata
Regwvitel
16
صفحه 8:
0 دستورالعملهای انشعاب
>> + وه = ۵0 (80عع80) #۸ له ,89 ,90 بسا ۰
* در حقيقت:
© + نم د 0رسه
addr << © # ۰ OIPG vPP vet Prow weukPC + سوه < امرحم
F (($d - $2) == 0)
اس < ۳0
5
0و = PO
صفحه 9:
دستورالعملهای انشعاب
PC +4 from instruction datapath
Branch target
[ALU operation
Read ee
register 1 Rawal
Read
register 2
Registers
Instruction
To branch
aah contol loge
register
صفحه 10:
| Memwrite
MemtoReg
Registers,
Read!
data 2
Read
register 1
Read
Fegisler 2
wte
وم
wite
date
۰0۹
16
Read
address
Instruction|
Instruction
memory
Po
صفحه 11:
0 نمای کلی واحد کنترل
* دستورالعملهاى تك سيكلى
مسير داده: منطق تركيبى, حافظه ى دستورالعملهاء رجیسترها. حافظه ى داده. 80
* سه حافظه ى آخر در انتهاى جرخه نوشته مى شود.
* نياز به كنترل دارد: از منطق تركيبى استفاده مى كنيم.
* ورودیها:
* دستور العملها (خروجى واحد حافظه ى دستورالعملها
* صفر (براى دستور وجا
© خروجيها:
* خطوط كنترلى مولتى يلكسرها
* بو«
۴ سس
صفحه 12:
نمای کلی واحد کنترل
؟ کنترل سریع
® هر واحدی به چه داده ای نیاز دارد؟
؟ هر چه تعداد ورودیها کمتر باشد. مدار سریعتر است.
* مثال:
* كنترل كننده ى عمومى نيازى ندارد بداند كه ba! @L Oop plas مى
sg
صفحه 13:
کنترل 6۱0
PLO aes فرض
از جدول زیر استفاده می کند:
3
t
ot (set bev tom)
doo cre
000
ood
080
ado
0
vers
صفحه 14:
نت ل 6
000000
10000080
100000
22220
000080
كد دستورالسل
مود
00000000
00000000
00000000
00000000
00000000
00
000
OOOIDD
PLO -o 59,5 برای ساده
دنقورالعمل
FEVERS eee
2) ]۱۱۸۱+۱۸۶۱ ۴
(مسی لس( ع را *
0
Cbs Obie
صفحه 15:
CLO كنترل 0
do add, sub, ond, ...
00 سو ربا
od beq
© GLO = F(®LOvp, Puurtioa)
۰ جرا و © bits © bits
می توان مدار مربوطه را با ۵ گیت و تعدادی معکوس کننده ساخت. *
صفحه 16:
کنتر لهای عمومی
مصعصظ nt rd shoot سس لسن وج و
عع سوسم لله 3 ع بل و( و
wo 9 9 8
له له موزل ۰
صفحه 17:
0 کنتر لهای عمومی
* از [06:600]سصاحه: به عنوان رجیستر خواندنی۲۳۷۱
استفاده کنید.
* از [6000:09]سصعه: به عنوان رجیستر خواندنی ۲۷
استفاده کنید.
iotrurtive[SO :d0] 5! © در دستور لا و [00: ]متس
در بقیه ی دستورات به عنوان رجیستر نوشتن استفاده کنید.
* از یک مولتی پلکسر استفاده کنید.
* از [©©:00]مصصحهصم به عنوان [0:©]م< استفاده کنید.
صفحه 18:
کنتر لهای عمومی
* خروجیها
PLO-vrd © لساجدهاوقبلیرا بسبینید
- R-Porwt, bey us. اولك
ربا
- رو
سا-
> hy det ic bis COO, wt IG:
- dl but beg ood sw
لایناد
LO sre
DewRead
Dew Drite
DewiRey
ReyDst
ReyDrite
فين
صفحه 19:
کنتر لهای عمومی
۴ خروجیهای عمومی
* ۳ را باموارد زیر جابجا کنید
@racwk beq *
@CGrr = ®rawk * Vero ©
© چه ورودیهایی برای تعیین سیگنالهای کنترلی فوق الذکر ضروری
است؟
* فقط [09:0
صفحه 20:
0 سیکنالهای کنترلی مورد نیاز
al
صفحه 21:
کنتر لهای عمومی
PLOGr 2 علسم) سس
wm 0000000 0 oO
oO qa 200 22 سا
ow 22200 = 0
beg 000۹00 x oO
222 thers x x
© Re(Dst = ~Op[O]
۰ ۵0۵۷ ۶ 0۵7
* [16م0- * [9]م0- - مسب
صفحه 22:
0 کنتر لهای عمومی
* اكر كل 10809 0000208 را يياده كنيم: به ساختار سازمان يافته
ترى نياز داريم.
* تا بتوان كيتها را بين سيكنالهاى كنترلى به اشتراك كذاشت.
* راه حل رايج: PLO
؟ کد دستورالعملهای ۲12116۳68 طورى طراحى شده اند كه وروديهاى
PLO مينترمها و خروجيها حداقل شوند.
صفحه 23:
ب مد کردن دستور سل
صفحه 24:
0 سيكة لها كنترلى مورد a دمل
صفحه 25:
طراحی تک سیکلی جه مشکلی دارد؟
١ 2 ال ت۰۳ ۳۳
(God size) (C@1) (fuck toe) ۳
بحرانی ترین مسیر احتمالاً مال دستور ۱۸۸ است:
© deve, reyprend, chu, dew, reypurite
* دستورات دیگر سریعتر هستند:
* مثلاً دستورات نيازى به 0ك ندارند.
* اكر كل 16969 را بياده كنيم تفاوت بين دستورات خيلى معنادارتر است.
* تقسيم اعداد اعشارى
* عدم وجود دستور در حافظه ى نهان (فصلهاى بعدى)
صفحه 26:
0 پیاده سازی تک سیکلی
راه حلها:
* کلاک متفییر؟
* کنترل و طراحی خیلی مشکل است.
؟ یک کلاک کوچک و ثابت
* تعداد کلاکهای مورد نیاز هر دستور (یعنی 161 متفاوت خواهد بود.
صفحه 27:
پیاده سازی چند سیکلی
(م , (الناظ) جاسسيس صمل مصمس جر ,بصم )دب 2 جاع Ob ©
* از منطق تركيبى در سيكلهاى متفاوت مجددا استفاده مى كنيم:
* يك حافظه
۴ یک (9) و عدم استفاده از بقیه ی جمع کننده ها
©اماد
* كنترل خيلى ييجيده تر خواهد بود
* به رجيسترهاى جديدى براى ذخيره ى نتايج نياز داريم (مثل 0108 .
* در سيكلهاى بعدى مجددا استفاده مى شود.
* منطقی که سیگنالها را محاسبه می کند نیز مجددا استفادة مى شود.
صفحه 28:
یک مسیر داده چند سیکلی سطح بالا
توجه:
٠.
۰
رچیستر دستورالعمل» رجیستر داده حافظه
© یک حافظه که دارای باس آدرس است.
۴ یک (6,() که خروجی آن در رجیستر 0)()/) ذخیره می شود.
Instruction
register
Data
26 Address.
Register #
Registers
Register #
Instruction]
Memory" or datal
7
data
Data register
Register #
صفحه 29:
0 توضیح باس
* سیمها را به اشتراک می گذاریم تا تعداد سیگنالها کاهش یابند.
؟ یک مولتی پلکسر توزیع شده داریم.
* چندین منبع روی یک باس هستند.
* بايد مطمتن باشیم که در هر لحظه از زمان فقط یکی از آنها فعال هستند!
صفحه 30:
متعاتياك تقر :دو اسه بت مان
صفحه 31:
صفحه 32:
کامهای طیاحی چند سیکلی
Grp Orsoripion Gupte Brtioas
1 Peck AR=OEO[CC]
PO=POHE
10 019 W=RE(AR[CS:2)
O=RE(AR[CO9))
OLOmmPC+EE (1R[MAG:O)) << @
ex ع0 OLOna = ® + GEMAR[AG:O)) # hwlaw
OLOns = ® op 0 # vr
bey # عم
F (gerv==() PO = @LOnw # beg
PO=POPC-CO]-GE(IR[CS:0])<<e #
ie
ew — | Dewey DEO[OLOna] = © # sw
DOR = OEO[OLOru] Hw
#حص 9 - :۳۵۹6 ااا | هه
صفحه 33:
کنترل طیاحی چند سیکلی
* تابعى از [۳]6:0() و حالت فعلی
* به عنوان یک ماشین حالت متناهی (۳686) یا
© یک میکرو-برنامه یا میکرو-کد (بعدا)
Drxt
Ounrect ext Grete
جه:8 أ بات __ اج
كنجوا”
صفحه 34:
ماشین حالت متناهی
* برای هر حالت تعریف کنید:
؟ سیگنالهای کنترلی مورد نیاز مسیر داده در این سیکل
؟ سیگنالهای کنترلی برای تعیین حالت بعدی
© تمام دستورات از 16۳" شروع می شوند.
* تمام دستورات بعد از خاتمه. یک IP جدید را شروع می کنند:
؟ البته قبل از آن. PO را به صورت مناسب به روز رسانی می کنند.
صفحه 35:
شع تلم ۷
ل
ALUOp = 00
PCWrite
RegWrite
emtoReg
مثال چند سیکلی: اجب
صفحه 36:
صفحه 37:
PEO تسخصیهرحلها
© تخصيص حالت باعث تبديل حالتهاى منطقى به معادل دودويى آنها مى
شود.
۴اقمیت موضوع؟
أ اگر تخصیص حالت را درست انجام دهیم. مدار کنترلی حاصله کوچکتر خواهد
بود.
#ا بيدا كزون حواب هه ات
* در ماشين طراحى شده ٠١ حالت داريم.
* مى توان هر يك از اعداد ٠ تا ١8 را به هر كدام از حالتها تخصيص داد.
صفحه 38:
IRWrite
ALUSreB = OF
ALUOp = 00
PCWrite
Original: 2 inverters, 2 and3s, 1 or2
New: No gates--just bit 3!
صفحه 39:
Tord
Wee
ALUSreBt = 01
0 3
3 ع دستور رط
MEM
MemWrite
IorD = 1
RegDst =
۳
ey
صفحه 40:
صفحه 41:
وا دستوز بيد
0
ravi
Start ay
MemWrite
10:0 21
صفحه 42:
صفحه 43:
IRegDst = 1
RegWrite
lemtoReg =
ير
۶۳
00
ها
د ALUSreB
‘ALUOp = 00)
PCWrite
MemWrite
10:0 = 1
صفحه 44:
صفحه 45:
صفحه 46:
RCSource = 19
IF icons
ALUSroAm0
TorD = 0
TRWrite
ALUSreB = 01
‘ALUOp = 00)
Pcwrite
MemWrite
10:0 21
MEM
صفحه 47:
صفحه 48:
خلاصه
* پیاده سازی پردازنده
© سیر داده
؟ کنترل
؟ پیاده سازی چند سیکلی ۱
9 بعدى : WIT DPD YIM