Bosh sahifa Wiki Bus

Bus

Buskompyuter komponentlari orasida ma’lumot, manzil va boshqaruv signallarini uzatadigan umumiy aloqa tizimi. Bus fizik signal yo‘llari, protocol va controllerlardan tashkil topadi.

Protsessor, xotira, storage, network adapter va boshqa qurilmalar bus orqali bog‘lanadi.

Tarixiy tizimlarda ko‘p qurilma bitta parallel busni bo‘lishgan. Zamonaviy kompyuterlarda esa ko‘pincha point-to-point serial linklar ishlatiladi, lekin umumiy atama sifatida “bus” saqlanib qolgan.

Data bus

Data bus haqiqiy ma’lumot bitlarini tashiydi.

Masalan:

  • CPUdan RAMga yozilayotgan qiymat;
  • disk controllerdan xotiraga kelayotgan blok;
  • qurilma registeridan o‘qilgan holat.

Data bus width bir uzatishda nechta bit tashilishini ko‘rsatadi.

Address bus

Address bus qaysi memory location yoki qurilma registeri tanlanganini bildiradi.

Address width nazariy address space hajmiga ta’sir qiladi.

Masalan, 32-bit address:

2^32 = 4 GiB

manzil kombinatsiyasini ifodalaydi.

Real platformada barcha addresslar RAM uchun ishlatilmaydi; device va rezerv hududlar ham mavjud.

Control bus

Control signallar operatsiya turini boshqaradi.

Misollar:

Data va addressning ma’nosi control signal bilan aniqlanadi.

Parallel bus

Parallel bus bir nechta bitni alohida signal chiziqlarida bir vaqtda uzatadi.

Misollar:

  • eski PCI;
  • parallel ATA;
  • memory bus;
  • front-side bus tarixan.

Frequency oshganda signal chiziqlari orasidagi timing farqi va interference muammo bo‘ladi.

Serial bus

Serial bus bitlarni kamroq signal jufti orqali yuqori tezlikda ketma-ket uzatadi.

Misollar:

  • PCI Express;
  • USB;
  • SATA;
  • Thunderbolt;
  • I2C ayrim ma’noda serial bus;
  • SPI.

Yuqori tezlikli serial linklar differential signaling va encodingdan foydalanadi.

Shared bus

Bir nechta qurilma bir xil busni bo‘lishadi.

Bir vaqtda qaysi master uzatishi arbitration orqali belgilanadi.

Ko‘p qurilma band bo‘lsa contention va bandwidth sharing yuz beradi.

PCIe kabi tizimda har endpoint yoki switch port o‘rtasida alohida link mavjud.

Bu shared electrical bus emas, ammo software nuqtai nazaridan PCI bus topologiyasi sifatida ko‘rinishi mumkin.

Point-to-point link yuqori frequency va parallel trafikni yaxshi qo‘llaydi.

Bus master

Bus master transferni boshlash huquqiga ega komponent.

CPU, DMA controller yoki PCIe device memoryga murojaat qilishi mumkin.

Bus slave yoki target so‘rovga javob beradi.

Zamonaviy interconnect atamalarida requester va completer ishlatilishi mumkin.

Arbitration

Bir nechta master busni so‘rasa, arbiter navbatni belgilaydi.

Siyosatlar:

  • fixed priority;
  • round-robin;
  • time slice;
  • quality of service;
  • deadline.

Yuqori priority qurilma past priority qurilmani uzoq kutdirishi mumkin.

Clocked bus

Synchronous bus umumiy clock bo‘yicha ishlaydi.

Signal ma’lum clock edge’da o‘qiladi.

Frequency va timing margin barcha qurilma uchun mos bo‘lishi kerak.

Asynchronous bus

Umumiy clockga tayanmaydi.

Request va acknowledge handshake orqali transfer yakunlanadi.

Turli tezlikdagi qurilmalar uchun qulay, ammo har transferda qo‘shimcha protocol overhead bo‘lishi mumkin.

Bandwidth

Nazariy bandwidth:

transfer rate × har transferdagi data hajmi

Masalan, 64-bit bus va 1 milliard transfer/soniya:

8 bayt × 1 GT/s = 8 GB/s

Encoding, protocol overhead, idle cycle va direction sabab amaliy bandwidth pastroq.

Latency

Bandwidth ko‘p data hajmini, latency esa bitta so‘rovning qancha vaqtda tugashini bildiradi.

Yuqori bandwidth bus ham arbitration, bridge va queue sabab yuqori latencyga ega bo‘lishi mumkin.

Front-side bus

Eski kompyuterlarda CPU northbridge orqali memory va boshqa qurilmalarga front-side bus bilan ulangan.

Zamonaviy tizimlarda memory controller CPU ichiga ko‘chgan va point-to-point interconnectlar ishlatiladi.

Memory bus

CPU memory controller bilan DRAM modullari orasidagi aloqa.

Xususiyatlari:

  • channel;
  • width;
  • data rate;
  • command/address;
  • rank;
  • timing;
  • ECC.

Dual-channel ikki mustaqil channel orqali aggregate bandwidthni oshiradi.

PCI Express

PCIe lane full-duplex differential pairlardan iborat.

Link width:

  • x1;
  • x4;
  • x8;
  • x16.

Har avlod transfer rate va encoding samaradorligini oshiradi.

PCIe switch bir nechta endpointni bog‘laydi.

USB

USB host-controlled serial bus.

Host qurilmalarni enumeratsiya qiladi va transferlarni schedule qiladi.

Transfer turlari:

USB hub ko‘p qurilmani bitta host controllerga ulaydi.

SATA

SATA storage qurilma va host controller orasidagi point-to-point serial interfeys.

Eski parallel ATA shared cable modelini almashtirgan.

SATA protocol storage commandlarni tashiydi.

I2C

I2C ikki signal chizig‘idan foydalanadi:

Bir busda bir nechta controller va target bo‘lishi mumkin.

Address orqali device tanlanadi.

Sensor va embedded qurilmalarda keng qo‘llanadi.

SPI

SPI odatda:

  • clock;
  • controller output;
  • controller input;
  • chip select

signallaridan foydalanadi.

Full-duplex va tez, ammo har target uchun alohida chip select talab qilishi mumkin.

DMA

Direct Memory Access qurilmaga CPU har baytni ko‘chirmasdan RAM bilan data almashish imkonini beradi.

Device bus master bo‘lib, memoryga o‘qish/yozish so‘rovi yuboradi.

IOMMU DMA manzillarni nazorat qiladi.

Bus error

Noto‘g‘ri address, alignment yoki device response yo‘qligi bus errorga olib kelishi mumkin.

Unix tizimda ayrim holatda process SIGBUS signal oladi.

Hardware error logda transaction failure ko‘rinishi mumkin.

Diagnostika

Bus muammosida:

tekshiriladi.

PCIe x16 karta x1 rejimda ishlasa, slot, lane sharing yoki signal muammosi bo‘lishi mumkin.

Bog‘liq tushunchalar

Data bus, Address bus, Control bus, PCI Express, USB, SATA, I2C, SPI, DMA, Bandwidth, Latency