Execution Unit — protsessor ichida dekodlangan mikrooperatsiyaning aniq hisoblash yoki ma’lumot harakatini bajaradigan apparat bloki. Integer ALU, floating-point pipeline, vector unit, branch unit va load-store unit execution unit turlaridir. Scheduler tayyor mikrooperatsiyani funksiyasi va port mavjudligiga qarab mos birlikka yuboradi.
Funksiya va port
Execution port mikrooperatsiya kiradigan yo‘l, unit esa amalni bajaradigan fizik mantiqdir. Bitta port bir nechta unitga yo‘nalishi, bitta unit bir nechta portdan buyruq qabul qilishi mumkin. Shuning uchun “port band” va “unit band” bir xil sabab bo‘lmasligi mumkin.
Oddiy integer qo‘shish bir nechta ALUda ishlashi, bo‘lish esa faqat bitta maxsus unitda bajarilishi mumkin. Kodda ko‘p mustaqil bo‘lish bo‘lsa, boshqa portlar bo‘sh turganiga qaramay shu unit throughputi cheklov bo‘ladi. Port mapping mikroarxitektura hujjati yoki o‘lchov orqali aniqlanadi.
Latency va throughput
Latency operand qabul qilingandan natija tayyor bo‘lguncha vaqt. Reciprocal throughput yangi shunday amalni qanchalik tez qabul qilish mumkinligini bildiradi. Quvurlangan unit besh sikl latency bilan har siklda bitta amal qabul qilishi mumkin; iterativ unit esa oldingi amal tugamaguncha yangisini olmaydi.
Natija forwarding tarmog‘i orqali qaram mikrooperatsiyaga uzatiladi va fizik registrga yoziladi. Unit xato aniqlasa, exception metadata reorder bufferga boradi. Spekulyativ amal natijasi commitgacha me’moriy holatga aylantirilmaydi.
Taqsimlangan bajarish
Out-of-order yadroda issue queue operand tayyorligini kuzatadi. Operatsiya faqat mos unit va kirish porti bo‘sh bo‘lsa issue qilinadi. Bir nechta nomzod orasida arbitraj yoshi, oqim ustuvorligi va port moslashuvchanligini hisobga oladi.
Load mikrooperatsiyasi Address Generation Unit’da manzil hisoblab, load-store unit orqali keshga tegadi. Branch unit shart va nishonni hisoblaydi. Murakkab ISA buyrug‘i bir nechta mikrooperatsiyaga bo‘linib, turli unitlarda bajarilishi mumkin.
Quvvat va tekshiruv
Katta vector yoki floating-point unit ishlatilmaganda clock gating bilan o‘chiriladi. Power gating yanada ko‘p sarfni kamaytiradi, lekin uyg‘onish kechikishi mavjud. Scheduler unit tayyor bo‘lmaguncha unga ish yubormaydi.
Har unit ISAning barcha chegaraviy operandlari uchun to‘g‘ri natija berishi kerak. Etalon model bilan random test, formal arithmetic proof va ishlab chiqarishdan keyingi self-test qo‘llanadi. Bir unitdagi xato faqat shu opcode emas, u bilan resurs bo‘lishadigan boshqa operatsiyalarga ham ta’sir qilishi mumkin.
Execution unit soni ISA xususiyati emas. Bir xil mashina kodini kichik yadro bitta umumiy unitda sekin, yuqori unumli yadro ko‘p parallel unitda tez bajarishi mumkin.
Natijani bekor qilish
Execution unit ish boshlagach branch xatosi sabab mikrooperatsiya bekor qilinishi mumkin. Qisqa unit natijani yozish bosqichida kill tegini tekshiradi. Uzoq bo‘lish yoki xotira amali ichki resursni darhol bo‘shata olmasa, hisob yakunlanadi, lekin natija tashlanadi. Keyingi to‘g‘ri yo‘l shu unitni kutishi mumkin.
Fault containment uchun unit chiqishi parity yoki residue code bilan tekshiriladi. Xato aniqlansa retry, machine check yoki yadro o‘chirilishi siyosati qo‘llanadi. Takroriy xato fizik nuqson, bir martalik bit almashishi esa vaqtinchalik hodisa bo‘lishi mumkin. Diagnostika qaysi unit va operandda xato yuz berganini imkon qadar qayd etadi.
Bog‘liq tushunchalar
execution port, issue queue, ALU, floating-point unit, load-store unit, instruction execute