Microprogrammed Control — mashina buyrug‘ini bajarish uchun kerakli past darajadagi nazorat signallarini control store’da saqlangan mikroko‘rsatmalar ketma-ketligidan hosil qiladigan boshqaruv usuli. Har microinstruction datapath’dagi amallarni va keyingi mikro-manzilni belgilaydi. Tashqi ISA buyrug‘i ichki bir yoki ko‘p micro-operationga ajratiladi.
Control store
Control store ROM, yoziladigan maxsus xotira yoki patch bilan kengaytiriladigan tuzilma bo‘lishi mumkin. Opcode dispatch mantiqi tegishli microprogram kirish manzilini tanlaydi. Microsequencer joriy microinstruction’dan keyingi manzilni ketma-ket, shartli tarmoq yoki subroutine qaytishi orqali hisoblaydi.
Horizontal microcode keng control word’da ko‘p signalni bevosita kodlaydi. Bir taktning o‘zida registr uzatish, ALU va boshqa mustaqil ishlarni yoqishi mumkin, ammo store hajmi katta. Vertical microcode maydonlarni siqib, qo‘shimcha dekodlash talab qiladi; hajm kamayadi, parallel boshqaruv va tezlik cheklanishi mumkin.
Murakkab buyruqlar
Xotira operandli arifmetika, satr amali yoki maxsus holat almashuvi bir nechta mikrobosqichga ajratiladi. Microprogram manzil hisoblash, load, ALU, store va istisno tekshiruvini tartiblaydi. Dastur bularni bitta ISA buyrug‘i sifatida ko‘radi; interrupt va xato semantikasi arxitektura ko‘rsatgan chegarada qolishi kerak.
Oddiy buyruqlar microcode orqali o‘tsa front-end xarajati oshishi mumkin. Gibrid yadro ularni to‘g‘ridan-to‘g‘ri mikrooperatsiyaga dekodlab, faqat murakkab opcode uchun sequencer’ni ishga tushiradi.
Yangilanish
Yoziladigan patch qatlami ishlab chiqarilgandan keyin ayrim xato yoki xavfsizlik muammosini tuzatishi mumkin. Yangilanish odatda firmware yoki operatsion tizim tomonidan erta yuklanadi va protsessor reviziyasiga mosligi tekshiriladi. Microcode update ISAning va’da qilingan semantikasini o‘zboshimchalik bilan o‘zgartirmasligi, imzo va rollback siyosati bilan himoyalanishi kerak.
Microcode barcha apparat xatosini tuzata olmaydi. Kerakli signal yo‘li yoki saqlash elementi fizik jihatdan mavjud bo‘lmasa, patch faqat muqobil sekin ketma-ketlik bilan chetlab o‘tishi yoki funksiyani o‘chirishi mumkin.
Tekshiruv va xavfsizlik
Microinstruction kombinatsiyasi ikki shina drayverini bir vaqtda yoqmasligi, noto‘g‘ri registrni yozmasligi va ruxsatsiz holatga o‘tmasligi kerak. Microassembler statik tekshiruv qiladi, apparat verifikatsiyasi esa ketma-ketliklarni ISA etalon natijasi bilan solishtiradi.
Microprogram ichki implementatsiya bo‘lib, odatiy dasturchi unga to‘g‘ridan-to‘g‘ri murojaat qilmaydi. “Microcode” atamasi ba’zan umumiy firmware ma’nosida ishlatiladi, ammo protsessor kontekstida u nazorat mikrodasturini anglatadi.
Mikroprotseduralar
Bir nechta ISA buyruq bir xil manzil hisoblash yoki istisno tekshiruv mikrorutinasidan foydalanishi mumkin. Micro-call va return control store hajmini kamaytiradi, ammo mikrostack chuqurligi va interrupt holati aniq boshqariladi. Rekursiya odatda ruxsat etilmaydi; ketma-ketlik cheklangan va statik tahlil qilinadi.
Microcode ishlashi ham performance counter’da ko‘rinishi mumkin. Murakkab buyruq bitta retired instruction bo‘lsa-da, o‘nlab internal micro-operation va ko‘p sikl talab qiladi. Shu sabab instruction count ikki kod variantining haqiqiy ishini har doim adolatli solishtirmaydi. Front-end sequencer bandligi boshqa oddiy buyruqlarni dekodlashga vaqtincha to‘sqinlik qilishi ehtimol.
Microcode versiyasi diagnostika registrida ko‘rsatilishi mumkin. Xavfsizlik hodisasini tahlil qilishda protsessor modeli bilan birga shu revision qayd etiladi, chunki bir xil chip turli patch darajasida boshqa performance yoki himoya xulqiga ega bo‘lishi mumkin.
Microprogram kirish nuqtalari oddiy dastur manzillari emas va alohida ichki adreslash makonida joylashadi.
Bog‘liq tushunchalar
microcode, control store, microinstruction, microsequencer, control word, hardwired control