بررسی مدارهای ALU
واحد محاسباتی، منطقی و شیفت (ALU)
در کامپیوتر، به جای اجرای ریز عملیات بر روی هر ثبات، معمولاً یک سری ثبات به یک واحد مشترک محاسباتی، منطقی و شیفت ALU متصل میگردند. برای اجرای یک ریز عملیات، محتوای ثبات بخصوصی در ورودی ALU مشترک قرار میگیرد. واحد ALU عملیات مربوط را انجام میدهد، و نتیجه به ثبات موردنظر منتقل یشود. چون ALU یک مدار ترکیبی است، بنابراین، انتقال اطلاعات از ثبات منبع، به ALU و وارد کردن نتیجه به ثبات مقصد، در یک پریود پالس ساعت انجام میشود.
مدار محاسباتی
ریز عملیات ریاضی جدول (4-3) را می توان در یک مدار محاسباتی انجام داد. مبنای اولیه این مدار محاسباتی جمع کننده است که با کنترل اطلاعات ورودی به این جمع کننده، میتوان عملیات مختلف ریاضی را انجام داد.
مدار شکل 2 یک مدار محاسباتی چهار بیتی را نشان میدهد. این مدار دارای 4 جمع کننده کامل FA و چهار مالتیپلکسر برای انتخاب عملیات مختلف میباشد. مدار مذکور دارای چهار بیت ورودی A است که مستقیماً به ورودی های X جمع کننده ها وارد میشود و چهار بیت عدد B ، و مکمل آنها نیز به ورودی های 0 و 1 مالتیپلکسرها متصل شده است. در ورودی دیگر مالتیپلکسرها مقادیر 0 و 1 قرار داده شده است و خروجی های مالتیپلکسرها نیز به ورودی Y جمع کننده ها اتصال دارد. چهار مالتیپلکسر مذکور توسط دو بیت انتخاب S1S0 کنترل میشوند. بیت نقلی Cin ، به ورودی کوچکترین بیت جمع کننده متصل گردیده و بقیه بیت های نقلی خروجی جمع کننده ها، به ورودی بیت های نقلی جمع
کننده بعدی، وصل شده است.
|
خروجی جمع کننده طبق رابطه: D=A+Y+Cin
عمل جمع را انجام می دهد، که A یک عدد 4 بیتی در ورودی Y , X چهار بیت، ورودی دیگر جمع کننده، و Cin بیت نقلی ورودی میباشد. با کنترل نمودن مقدار Y توسط دو بیت انتخاب S1 , S0 ، میتوان هشت عمل ریاضی جدول 1 را با این مدار انجام داد.
جدول 1 : جدول محاسبات ریاضی
|
به ازاء S1S0=1 باشد، اطلاعات، از ورودی 3 مالتیپلکسرها، که برابر 1 است، وارد مالتیپلکسرها میشود و در نتیجه ورودی Y جمع کننده ها برابر یک است. و چون 1111 مکمل 2 عدد 0001 است، بنابراین عدد A با مکمل 2 عدد یک جمع شده یعنی از عدد A یکی کسر می گردد پس D=A-1 است (در حالتیکه Cin=0). اگر Cin=1 باشد D=A-1+Cin=A میشود یعنی اطلاعات ورودی عیناً به خروجی انتقال داده میشود.
در این شکل ورودیهای بین i که Bi , AI میباشند، وارد واحد ریاضی و منطقی میشوند، که با انتخاب S1S0، عملیات بخصوص بر روی آنها انجام میشود، و مالتیپلکسر 1×4، خروجی نتیجه محاسبات Ei و یا منطقی Hi را انتخاب میکند. دو ورودی دیگر مالتیپلکسر، ورودیهای Ai-1 را برای عملیات شیفت راست، و Ai+1 را برای عملیات شیفت چپ. انتخاب میکنند. اطلاعات ورودی مالتیپلکسر خروجی، توسط متغیرهای S3S2 انتخاب میشوند. بیت نقلی خروجی Ci+1 دستگاه محاسبه، میبایستی به بیت ورودی نقلی CI طبقه بعدی متصل شود. بیت نقلی ورودی اولین طبقه Cin به عنوان یک متغیر محاسباتی در عمل تفریق و یا سایر محاسبات میتواند بکار گیرد.
مدار شکل مذکور، یک طبقه از دستگاه محاسبه منطقی و شیفت است که با انتخاب پنج متغیر S1S0، S3S2، Cin میتوان هشت نوع عملیات ریاضی، چهار عملیات منطقی، و دو نوع عملیات شیفت را انجام داد. اصولاً عملیات شیفت در واحد مجزا انجام میشود، ولی گاهی اوقات واحد شیفت قسمتی از ALU میباشد.
همانطوری که ملاحظهمیشود، شکل (4-13) یک طبقه از مدار محاسبه منطقی و شیفت ALU است، که برای n بیت، میبایستی n بار تکرار گردد.
جدول (4-8) فهرست 14 نوع عملیات را در ALU نشان میدهد، که هشت عملیات اول، عملیات محاسباتی (جدول 4-4) است که با S3S2 = 00 انتخاب میگردند. چهار سطر بعدی عملیات منطقی میباشند که با S3S2 = 01 انتخاب میشوند. که در این عملیات، بیت نقلی ورودی Cin اثری ندارد، و با علامت بیتفاوت x نشان داده شدهاست. و دو سطر آخر عملیات شیفت است که با S3S2 = 01 انتخاب میگردند، که در این حالت سه متغیر دیگر S1S0Cin اثری ندارند.