Control bus — kompyuter qismlari orasida amal turi, vaqt va holatni muvofiqlashtiradigan boshqaruv signallari majmuasidir. Klassik tizim modelida address bus qaysi joyga murojaat qilinishini, data bus qiymatni, control bus esa o‘qish, yozish, interrupt yoki tasdiqlash kabi jarayonni bildiradi. Signallar tarkibi platforma va bus protokoliga bog‘liq.
Asosiy signallar
Read va write signallari transaction yo‘nalishini belgilaydi. Chip select yoki enable ma’lum qurilmani faollashtiradi. Clock sinxron bus qatnashuvchilariga vaqt chegarasini beradi. Reset komponentlarni ma’lum boshlang‘ich holatga qaytaradi. Byte enable keng data word ichida qaysi baytlar amal qilayotganini ko‘rsatishi mumkin.
Ready, wait yoki acknowledge sekinroq qurilmaning transactionni qabul qilganini bildiradi. Master so‘rov yuborib, target tasdiqlaguncha kutadi. Timeout javobsiz bus butun tizimni cheksiz ushlab qolmasligi uchun qo‘llanadi. Error response manzil mavjud emasligi yoki ruxsat buzilganini ko‘rsatadi.
Interrupt va arbitraj
Interrupt request qurilmaning protsessor e’tiborini so‘rashiga imkon beradi. Interrupt controller bir nechta manbani ustuvorlik bilan boshqarib, CPUga vector yoki identifikator beradi. Mask va acknowledge signallari hodisani vaqtincha cheklash hamda qabul qilinganini bildirish uchun ishlatiladi.
Shared busda bir nechta master bo‘lsa, bus request va grant arbitrajni tashkil etadi. Arbiter bir vaqtda faqat bitta masterga transaction boshlash huquqini beradi. Fixed priority latency talabini qondirishi mumkin, round-robin esa fairnessni yaxshilaydi.
Sinxron va asinxron boshqaruv
Sinxron bus barcha fazalarni clock cycle bilan belgilaydi. Setup va hold talablari bajarilmasa noto‘g‘ri qiymat ushlanishi mumkin. Yuqori chastotada clock skew va signal propagation timing budgetni cheklaydi.
Asinxron bus request/acknowledge handshake orqali ishlaydi. Qatnashuvchilar umumiy clockga bog‘lanmagan bo‘lishi mumkin, ammo handshake protokoli va metastability himoyasi talab qilinadi. Clock domain crossingda synchronizer yoki asynchronous FIFO ishlatiladi.
Zamonaviy protokollar
PCI Express kabi packet-based interconnectda alohida fizik read yoki write simi bo‘lmasligi mumkin. Boshqaruv ma’nosi transaction layer packet headerida kodlanadi. Credit-based flow control qabul qiluvchi buffer sig‘imiga qarab yuborishni cheklaydi.
SoC ichidagi AXI singari protokollar address, data va response uchun alohida kanallar yaratadi. Valid/ready handshake har kanalga mustaqil backpressure beradi. “Control bus” atamasi bunday tizimda ko‘proq mantiqiy boshqaruv axborotini anglatadi.
Diagnostika
Logic analyzer control va address signallarini vaqt bo‘yicha ko‘rsatadi. Noto‘g‘ri chip select, yetishmagan acknowledge yoki timing buzilishi transaction muvaffaqiyatsizligining sababini ochadi. Protokol checker signal ketma-ketligini spetsifikatsiya qoidalariga solishtiradi. Debugda elektr darajasi, protokol holati va software konfiguratsiyasi birga tekshiriladi.
Protokol holat mashinasi
Control signallari tasodifiy emas, aniq state machine bo‘yicha ketadi. Request faollashgach address barqaror bo‘lishi, target ready bergach data qabul qilinishi va keyin signal belgilangan tartibda tushirilishi mumkin. Bir cycle’lik pulse sekin clock domain’da ko‘rinmay qolmasligi uchun level handshake yoki pulse synchronizer ishlatiladi. Resetdan chiqish ketma-ketligi ham muhim: clock barqarorlashmasdan yoki power-good kelmasdan qurilmani ishga tushirish noma’lum holat yaratadi. Formal assertionlar “grant bo‘lmasdan data haydalmasin” kabi protokol qoidalarini tekshiradi.
Bus lock yoki exclusive transaction atomik yangilanishni ta’minlashi mumkin, biroq u boshqa masterlar kutishini oshirgani uchun imkon qadar qisqa davom etadi.
Bog‘liq tushunchalar
Data bus, Address bus, Bus arbitration, Interrupt, Handshake, Clock domain crossing