طراحی پردازش
- طراحی
اجزا
آنها چگونه در کنار هم قرار می
گیرند
- تجزیه بالا به پایین بخشهای مختلط
- ترکیب
پایین به بالای بخشهای ساده
مسئله: طراحی واحد محاسبه و منطق
عملیات
add, addu, sub, subu, addi, addiu-
جمع کننده تفریق کننده مکمل 2 با آشکار سازی سرریز
and, or, andi, ori-
اعمال بیتی
مجموع اعمال = 10
طراحی: روش تقسیم و غلبه
شکستن مسئله به بخشهای ساده تر
- کار با اجزا
- قرار دادن قطعات با
یکدیگر
- بازبینی راهکارها در
نهایت
مثال: جدا کردن دستورات فوری از بقیه دستورات
- پردازش فوریها قبل
از ALU
- اکنون ورودیهای ALU یک شکل هستند.
- 6 عمل غیر فوری باقی
مانده است
- نیازمند 3 بیت برای
تعیین مد ALU
است
محیط ALU (ALU Interface)
ما یک ALU 32 بیتی طراحی خواهیم
کرد با محیط زیر:
طراحی: کاهش مسئله به یک مسئله ساده تر
برای این مسئله، ما ALU 32 بیتی را به بخش
ساده تر یک بیتی کاهش می دهیم.
- مسائل ترکیبی بزرگ
را به یک مسئله ترکیبی کوچکتر تغییر می دهیم
بخشها را برای حل مسئله بزرگ در کنار هم قرار می
دهیم.
طراحی با بلاک دیاگرام سطح پایین تر
بلاک ALU یک بیتی
- تقسیم به بلاکهای
جدا و مستقل
. منطق
. محاسبه
- تکمیل هر بلاک در این مرحله برای تخلیص بیشتر
. تکمیل بلاکهای منطقی
. تکمیل انتخاب عمل
. تجزیه بلاکهای
محاسباتی به بخشهای ساده تر
تمام جمع کننده Full Adder
تمام جمع کننده، یک بلاک ساخته بنیادی در ALU است.
یک تمام جمع کننده، جمع یک بیت را انجام می دهد.
ai+ bi + ci =
2ci+1 + si
جدول درستی تمام جمع کننده
- Si ،“1” است اگر یک، تک عدد از ورودیها یک باشد.
Ci+1 - ،“1” است
اگر 2عدد (یا بیشتراز) ورودیها 1 باشند.
طراحی تمام جمع کننده
- یک پیاده سازی ممکن از یک تمام جمع کننده که 9 gate بکار برده است
ALU یک بیتی