Bosh sahifa Wiki Address bus

Address bus

Address bus — protsessor yoki boshqa bus master murojaat qilmoqchi bo‘lgan xotira yoki qurilma joylashuvini ko‘rsatuvchi signal yo‘llari to‘plamidir. Klassik kompyuter modelida u manzilni tashiydi, data bus qiymatni ko‘chiradi, control bus esa o‘qish yoki yozish kabi amalni belgilaydi. Amaliy interconnectlarda bu ma’lumot bitta paket ichida kodlanishi mumkin.

Manzil kengligi

n ta mustaqil ikkilik address line nazariy jihatdan 2^n xil manzilni ifodalaydi. Byte-addressable tizimda 32-bit manzil maydoni odatda 4 GiB alohida bayt manzilini beradi. Bu address bus kengligi, protsessor registr kengligi va amalda o‘rnatiladigan xotira hajmi har doim bir xil degani emas.

64-bit arxitektura ko‘pincha barcha 64 bit virtual yoki physical manzilni ishlatmaydi. Implementatsiya ma’lum sonli bitni qo‘llab, qolganlari uchun canonical address qoidasini belgilashi mumkin. Operatsion tizim page table orqali virtual manzilni fizik manzilga tarjima qiladi.

Memory map

Tizim address space’ni RAM, firmware, device register va boshqa regionlarga ajratadi. Memory-mapped I/O’da qurilma registri oddiy xotira manziliga o‘xshab ko‘rinadi. Address decoder yuqori bitlar asosida qaysi chip yoki periferik qurilma transactionga javob berishini tanlaydi.

Regionlar ustma-ust tushmasligi va alignment talablariga mos bo‘lishi kerak. Embedded linker script kod, data, stack va qurilma manzillarini platforma xaritasiga joylashtiradi. Noto‘g‘ri manzil qurilmaning kutilmagan registrini o‘zgartirishi yoki bus fault keltirishi mumkin.

Multiplexing va protokol

Pin sonini kamaytirish uchun ayrim buslarda address va data bir xil fizik chiziqlarni turli vaqt oralig‘ida bo‘lishadi. Address latch signalning birinchi bosqichidagi manzilni saqlaydi, keyingi bosqichda shu chiziqlar data uchun ishlatiladi. Bu tejamkor, lekin transaction vaqtini va boshqaruv murakkabligini oshiradi.

Zamonaviy serial interconnect manzilni header maydonida yuboradi. Router yoki switch ushbu manzil asosida transactionni targetga yo‘naltiradi. Shunday bo‘lsa ham address decode, permission va ordering tushunchalari saqlanadi.

Himoya va tarjima

MMU virtual manzilni tarjima qilib, page-level ruxsatlarni tekshiradi. IOMMU DMA qiluvchi qurilmalarning qaysi fizik xotiraga murojaat qilishini cheklaydi. Bu noto‘g‘ri yoki zararli qurilma butun RAMni o‘qishining oldini olish uchun muhim.

Address Space Layout Randomization kod va obyektlarning virtual manzilini tasodifiylashtiradi. U manzil sizishi yoki memory corruption xatosini yo‘q qilmaydi, lekin hujumchining target manzilni oldindan bilishini qiyinlashtiradi.

Diagnostika

Bus analyzer transaction manzili, control signali va javobni yozib oladi. Address line stuck-at xatosi ayrim manzillar bir-birini aks ettirishiga olib kelishi mumkin. Memory test turli naqsh va manzillar bilan line hamda decoder muammosini ajratadi. Firmware darajasida map fayli va device tree haqiqiy hardware address xaritasi bilan tekshiriladi.

Address aliasing

Decoder barcha address bitlarini tekshirmasa, bir xil fizik register bir nechta manzilda aks etishi mumkin. Bunday aliasing ba’zan pin va logicni tejash uchun ataylab qo‘llanadi, ammo software hujjatlashtirilmagan nusxa manzilga tayanmasligi kerak. Cacheable va uncacheable region bir fizik xotiraga turli alias bersa coherence muammosi yuz berishi mumkin. Memory mapda reserved diapazonlar kelajak qurilma uchun bo‘sh qoldiriladi; ularga murojaat bus error yoki undefined natija berishi mumkin. Secure boot va privilege qatlami protected region decode’ini ham nazorat qiladi.

Bog‘liq tushunchalar

Data bus, Control bus, Address space, MMU, Memory-mapped I/O, IOMMU