بخشی از مقاله
واحد محاسباتي، منطقي و شيفت (ALU)
در كامپيوتر، به جاي اجراي ريز عمليات بر روي هر ثبات، معمولاً يك سري ثبات به يك واحد مشترك محاسباتي، منطقي و شيفت ALU متصل ميگردند. براي اجراي يك ريز عمليات، محتواي ثبات
بخصوصي در ورودي ALU مشترك قرار ميگيرد. واحد ALU عمليات مربوط را انجام ميدهد، و نتيجه به ثبات موردنظر منتقل يشود. چون ALU يك مدار تركيبي است، بنابراين، انتقال اطلاعات از ثبات منبع، به ALU و وارد كردن نتيجه به ثبات مقصد، در يك پريود پالس ساعت انجام ميشود.
مدار محاسباتي
ريز عمليات رياضي جدول (4-3) را مي توان در يك مدار محاسباتي انجام داد. مبناي اوليه اين مدار محاسباتي جمع كننده است كه با كنترل اطلاعات ورودي به اين جمع كننده، ميتوان عمليات مختلف رياضي را انجام داد.
مدار شكل 2 يك مدار محاسباتي چهار بيتي را نشان ميدهد. اين مدار داراي 4 جمع كننده كامل FA و چهار مالتيپلكسر براي انتخاب عمليات مختلف ميباشد. مدار مذكور داراي چهار بيت ورودي A است كه مستقيماً به ورودي هاي X جمع كننده ها وارد ميشود و چهار بيت عدد B ، و مكمل آنها نيز به ورودي هاي 0 و 1 مالتيپلكسرها متصل شده است. در ورودي ديگر مالتيپلكسرها مقادير 0 و 1 قرار داده شده است و خروجي هاي مالتيپلكسرها نيز به ورودي Y جمع كننده ها اتصال دارد. چهار مالتيپلكسر مذكور توسط دو بيت انتخاب S1S0 كنترل ميشوند. بيت نقلي Cin ، به ورودي كوچكترين بيت جمع كننده متصل گرديده و بقيه بيت هاي نقلي خروجي جمع كننده ها، به ورودي بيت هاي نقلي جمع كننده بعدي، وصل شده است.
شكل 1 : يك مدار محاسباتي 4 بيتي
خروجي جمع كننده طبق رابطه: 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 ميشود يعني اطلاعات ورودي عيناً به خروجي انتقال داده ميشود.
به اين ترتيب با كنترل مقادير S1S0 در مدار مذكور، ميتوان هر يك از عمليات، جمع، جمع با بيت نقلي، تفريق، يك اضافه كردن، يك كم كردن …، را انجام داد.
ريز عمليات منطقي
ريز عمليات منطقي، بر روي هر بيت ثبات ها به طور مجزا، انجام مي شود، به عنوان مثال ريز عمليات “يا منحصر XOR” بر روي محتواي دو ثبات R2 , R1 كه با عبارت زير بيان ميشود:
و باعث مي شود، به شرطي كه P=1 باشد ريز عمليات منطقي بين هر يك از بيتهاي ثباتهاي مذكور انجام و نتيجه در R1 قرار گيرد.
براي روشن شدن مطلب فرض مي كنيم هر يك از ثبات هاي مذكور كه 4 بيتي است داراي مقاديري به ترتيبر برابر R1 = 1010 و R2=1100 باشد. اجراي دستور يا منحصر فوق باعث ميشود كه عمليات زير:
محتوي R1 1010
محتوي R2 1100
محتوي R1 بعد از اجراي دستور 0110
انجام گيرد.
ليست ريز عمليات منطقي
ليست 16 عمليات مختلف منطقي كه بين دو متغير باينري وجود دارد در جدول (4-5) نشان داده شده است. در جدول مذكور هريك از ستونهاي F0 تا F15، نمايش جدول درستي توابع بولين براي متغيرهاي X و Y ميباشد.
16 تابع بولين F0 تا F15¬ در ستون اول جدول (4-6) به صورت تابعي از متغيرهاي x و y بيان شدهاست. در ستون دوم جدول با قرار دادن محتواي ثباتهاي A و B بجاي متغيرهاي x و y، شانزده تابع مذكور به صورت 16 عمليات منطقي نشان داده شدهاست. همانطوري كه ملاحظه ميشود، تابع منطقي بيان شده در ستون اول جداول، رابطه بين تابع منطقي و دو متغير باينري
ميباشد. ولي ريز عمليات منطقي ستون دوم، نشان دهنده رابطه منطقي بين محتواي دو ثبات A وB است، كه در اين صورت هر بيت ثباتهاي مذكور به عنوان يك متغير باينري در نظر گرفته ميشود. و ريز عمليات منطقي بين تمام بيتهاي ثباتها بطور مجزا انجام ميگردد.
پيادهسازي سختافزاري
براي پيادهسازي ريز عمليات منطقي، لازم است براي هر بيت دو ثبات، مدارهاي منطقي لازم پيشبيني شود. گرچه 16 ريز عمليات منطقي در جدول (4-6) تعريف شدهاست ولي اكثر كامپيوترها فقط عمليات XOR, OR, AND (يا منحصر) و مكمل آنها را انجام ميدهند، چون بقيه عمليات را ميتوان از تركيب آنها بدستآورد.