Control Unit — protsessorning buyruqlarni talqin qilib, datapath va boshqa bloklar qachon hamda qanday ishlashini boshqaradigan qismi. U opcode, joriy bosqich, holat bayroqlari va istisno signallaridan kelib chiqib registr yozuvi, ALU amali, xotira murojaati va program counter yangilanishi uchun nazorat signallarini hosil qiladi.
Buyruq hayot sikli
Fetch paytida control unit program counter manzilini instruction cache’ga uzatadi va keyingi manzilni tayyorlaydi. Decode bosqichida instruction formatdan opcode va operandlar ajratiladi. Execute uchun tegishli unit, ALU funksiyasi va manba multipleksorlari tanlanadi. Natija yozilishi yoki istisno yuzaga chiqarilishi ham boshqaruv holati bilan muvofiqlashtiriladi.
Oddiy ko‘p siklli protsessorda control unit finite-state machine sifatida ishlashi mumkin. Har holat bitta mikrobosqichni bildiradi; xotira javobi yoki opcode keyingi holatni tanlaydi. Pipelined yadroda bir vaqtda turli buyruqlarning nazorat bitlari bosqichlar orasidagi registrlarda ular bilan birga yuradi.
Hardwired va microprogrammed
Hardwired Control Boolean mantiq va holat mashinasi bilan signallarni bevosita yaratadi. U tez bo‘lishi mumkin, ammo murakkab ISA va o‘zgarishlarda dizayn qiyinlashadi. Microprogrammed Control opcode’ni control store’dagi mikroko‘rsatmalar ketma-ketligiga bog‘laydi; murakkab buyruqni bosqichlarga ajratish va ayrim xatolarni microcode yangilanishi bilan tuzatish osonroq.
Amaliy protsessor gibrid bo‘lishi mumkin: ko‘p oddiy buyruq tez hardwired yo‘lda, kam uchraydigan murakkab amal microcode orqali boshqariladi. Bu tasnif ISAga emas, mikroarxitekturaga tegishli.
Hazard va istisno
Control unit data hazardni aniqlab stall yoki forwarding tanlaydi. Branch bashorati xato chiqsa yoshroq buyruqlarni flush qiladi. Out-of-order yadroda bu vazifalar markaziy bitta blokdan ko‘ra rename, scheduler, reorder buffer va branch unit orasida taqsimlangan bo‘ladi.
Reset, interrupt va istisno odatiy oqimni buzadi. Control unit me’moriy holatning aniq nuqtasini saqlab, handler manziliga o‘tadi. Imtiyoz tekshiruvi yon ta’sirdan oldin bajariladi. Noto‘g‘ri yo‘ldagi store yoki registr yozuvi bekor qilinganda tashqi natija qoldirmasligi kerak.
Tekshiruv
Nazorat mantiqidagi bitta xato to‘g‘ri datapath bilan ham noto‘g‘ri buyruq natijasini beradi. Verifikatsiya ISA etalon modeli, formal invariantlar va tasodifiy ketma-ketliklarni qo‘llaydi. “Bir vaqtda ikki manba bitta shinani boshqarmaydi” yoki “commit qilinmagan store ko‘rinmaydi” kabi xossalar tekshiriladi.
Control unitni operatsion tizim scheduler’i bilan aralashtirmaslik kerak. Birinchisi nanosekund miqyosida apparat buyruqlarini boshqaradi; scheduler esa qaysi dasturiy oqim protsessorda ishlashini tanlaydigan yadro komponentidir.
Vaqt va signal sifati
Control signal takt chegarasidan oldin barqarorlashishi va hold talabini buzmasligi kerak. Katta fan-out’li enable liniyasi bufer daraxti orqali tarqatiladi. Kech kelgan registr yozish signali hisob natijasi to‘g‘ri bo‘lsa ham noto‘g‘ri vaqtda holatni o‘zgartirishi mumkin. Static timing analysis barcha nazorat yo‘llarini datapath bilan birga tekshiradi.
Asinxron interrupt clock domain chegarasidan kelishi mumkin. Synchronizer metastability xavfini kamaytiradi, control unit esa hodisani yo‘qotmasdan xavfsiz instruction boundary’da qabul qiladi. Resetdan chiqish ham barcha stage va valid bitlar kelishilgan boshlang‘ich holatga kelgach amalga oshiriladi.
Control unit quvvat boshqaruvi bilan ham muvofiqlashadi. Execution block o‘chirilgan bo‘lsa, buyruq unga yuborilishidan oldin uyg‘otiladi; reset yoki clock enable ketma-ketligi buzilsa noto‘g‘ri signal apparat holatini zararlashi mumkin.
Bog‘liq tushunchalar
datapath, instruction decoder, hardwired control, microprogrammed control, finite-state machine, control signal