Bosh sahifa Wiki Arithmetic Logic Unit

Arithmetic Logic Unit

Arithmetic Logic Unit — protsessor datapath’ida butun son arifmetikasi va bitli mantiq amallarini bajaradigan kombinatsion yoki quvurlangan apparat bloki. ALU qo‘shish, ayirish, AND, OR, XOR, taqqoslash va siljitishning bir qismini bajarib, natija hamda holat bayroqlarini control unitga uzatadi.

Kirish va chiqish

Ikki operand registr fayli, immediate kengaytirgich yoki forwarding yo‘lidan multipleksor orqali ALU kirishiga keladi. Control signal bajariladigan funksiyani tanlaydi. Chiqish natija registriga, xotira manzili yo‘liga yoki branch shartiga yuborilishi mumkin.

Qo‘shgich ayirishni ikkinchi operandni invert qilib va carry-in’ga bir berib bajarishi mumkin. Shu fizik resurs manzil hisoblash va taqqoslashda ham ishlatiladi. Nol bayrog‘i natija bitlarining OR-reduction’idan, manfiy bayroq eng yuqori bitdan olinadi. Carry va signed overflow esa turli mantiqiy shartdir.

Qo‘shgich dizayni

Ripple-carry adder sodda, lekin carry har bit bo‘ylab ketma-ket tarqaladi. Carry-lookahead va prefix adder qo‘shimcha mantiq evaziga tarqalish chuqurligini kamaytiradi. Tanlov operand kengligi, chastota, maydon va energiya maqsadiga bog‘liq.

Siljitgich bir necha bosqichli barrel shifter bo‘lib, bitta operatsiyada ixtiyoriy miqdorga shift qilishi mumkin. Kichik yadro maydonni tejash uchun bir siklda bir bit siljitadigan iterativ yo‘l tanlashi ehtimol.

Quvur va portlar

Superskalyar protsessorda bir nechta integer ALU mavjud bo‘ladi. Hamma port bir xil funksiyani qo‘llamasligi mumkin: oddiy qo‘shish bir nechta portda, murakkab bit sanash yoki ko‘paytirish faqat bittasida bajariladi. Scheduler tayyor mikrooperatsiyani mos portga issue qiladi.

ALU latency bir sikl bo‘lsa ham, undan qaram keyingi amal forwarding tarmog‘i orqali natijani oladi. Keng bypass tarmog‘i katta maydon va signal kechikishi keltiradi. Chastota uchun ayrim murakkab amal ikki stage’ga ajratilishi mumkin.

ALU chegarasi

Ko‘paytirgich, bo‘luvchi va Floating-Point Unit ko‘pincha alohida blok, garchi umumiy ma’noda arifmetik bajarish tizimiga kirsa ham. Load/store unit xotira murojaatini boshqaradi, ammo samarali manzil uchun ALUga o‘xshash Address Generation Unit ishlatadi.

ALU dasturiy obyekt emas va ISA nechta ALU bo‘lishini belgilamaydi. Bir xil buyruqlar to‘plamini bitta iterativ ALUli mikrokontroller ham, ko‘p portli yuqori unumli yadro ham amalga oshirishi mumkin.

Taqqoslash va tanlash

Equality comparator ikki operand XOR natijasining nol ekanini tekshirishi mumkin. Kattalik taqqoslash ayirishning ishora, carry va overflow natijalaridan signed yoki unsigned qoida bilan hosil qilinadi. Shartli select ikkita qiymatdan birini branchsiz tanlab, control hazardni data dependencyga aylantiradi.

ALU status bayroqlari pipeline register’da tegishli buyruq bilan birga yurishi kerak. Noto‘g‘ri yo‘l yoki istisnoli buyruq hosil qilgan bayroq commit qilinmaydi. Out-of-order yadro bayroq holatini ham fizik registrdek rename qilishi mumkin; aks holda mustaqil arifmetik buyruqlar bitta yashirin status registri ustida soxta bog‘lanadi.

ALU uchun stuck-at va transition fault testlari ishlab chiqarish sinovida qo‘llanadi. Built-in self-test ma’lum operand naqshlarini berib natijani signature’da jamlaydi; bu barcha mumkin bo‘lgan qiymatni sinamaydi, lekin keng tarqalgan fizik nuqsonlarni aniqlaydi.

ALU kirishidagi operand isolation ishlatilmayotgan blokda signal almashishini kamaytiradi. Bu dinamik quvvatni tejaydi, ammo gate nazorati haqiqiy amal paytida to‘g‘ri ochilishi va timing yo‘lini buzmasligi kerak.

Bog‘liq tushunchalar

datapath, integer unit, adder, barrel shifter, condition code, execution unit