Kompyuter qanday ishlaydi
10-bob

Kirish-chiqish qurilmalari va GPU

Bosilgan tugma qanday aniqlanadi, tasvir xotiradan ekranga qanday yetib boradi va nega sun'iy intellekt uchun aynan videokarta kerak.

Kompyuter tashqi dunyo bilan kirish-chiqish (I/O) qurilmalari orqali muloqot qiladi. Kirish qurilmalari: klaviatura, sichqoncha, sensorli ekran, mikrofon, kamera, skaner. Chiqish qurilmalari: monitor, karnay, printer. Ikkala yo'nalishda ham ishlaydigan qurilmalar: tarmoq kartasi, disklar, USB fleshka.

10.1. Klaviatura va sichqoncha

Klaviatura ichida tugmalar qatorlar va ustunlardan iborat matritsa shaklida ulangan. Klaviatura mikrokontrolleri sekundiga yuzlab marta har bir qatorga navbatma-navbat signal berib, qaysi ustunda tok paydo bo'lishini tekshiradi — shu tarzda bosilgan tugma aniqlanadi. So'ng tugmaning skan-kodi USB orqali kompyuterga yuboriladi. Optik sichqonchada esa kichik kamera sekundiga minglab marta stol yuzasini suratga oladi va rasmlar orasidagi siljishdan harakat yo'nalishi va tezligini hisoblaydi.

USB 2.0 · host har 1 ms so'raydi (polling) ustunlar mikrokontrollerga qaytadi (kirish pinlari) Klaviatura MCU 8 bit · 1000 skan/s qator chiqishlari: R0 R1 R2 R3 skanerlash… USB TX Kompyuter · USB host (xHCI) paket keldi IRQ → OS drayveri _ HID hisobot · 8 bayt bo'sh: 00 00 00 00 00 00 00 00
Istalgan tugmani bosing (tanlang) — mikrokontroller qatorlarni birma-bir skanerlab uni topadi va skan-kodini USB orqali yuboradi.
SkanerlashTopildiSkan-kodUSB HIDXulosa
Tugma "A" bosilgan. Sahna o'zi boshlanadi.
Klaviatura matritsasi. Qator signali bosilgan tugma orqali ustunga o'tadi: qator + ustun = tugma, so'ng uning skan-kodi USB orqali yuboriladi.

10.2. Monitor

Monitor ekrani piksellar matritsasidan iborat. Har bir piksel uchta kichik subpikseldan tashkil topgan: qizil, yashil va ko'k. Ularning yorqinligini o'zgartirish orqali ko'z millionlab rang ko'radi. LCD ekranlarda orqa yorug'lik manbai va har bir subpiksel oldida yorug'likni o'tkazadigan yoki to'sadigan suyuq kristall bor. OLED ekranlarda esa har bir subpikselning o'zi yorug'lik chiqaradi, shuning uchun qora rang haqiqiy qora bo'ladi.

GPU · videokarta VRAM · kadr buferi (16×9 soddalashtirilgan) piksel [—,—] = 00 00 00 1920×1080 × 3 bayt (R G B) = 6.2 MB / kadr GPU yozdi: kadr #0 displey kontrolleri VRAM → TMDS kodlash HDMI 2.0 · 18 Gbit/s TMDS · 3 kanal + takt 60 Hz → har 16.7 ms yangi kadr piksel takti 148.5 MHz · qator 15 µs ko'rsatilmoqda: kadr #0 har piksel = R G B subpiksel (3 bayt)
GPU chizadiKontroller o'qiydiSkanlashXulosa
GPU birinchi kadrni VRAM ga chizmoqda…
22-rasm. Tasvirning xotiradan ekranga yo'li

Ekranga chiqariladigan tasvir videokarta xotirasidagi kadr buferida saqlanadi. 60 Hz monitor sekundiga 60 marta shu buferni o'qib, har bir pikselni yangilaydi. O'yinchilar uchun 144-240 Hz monitorlar harakatni silliqroq ko'rsatadi.

10.3. GPU — grafik protsessor

GPU (videokarta) dastlab 3D grafikani chizish uchun yaratilgan. 3D sahna millionlab uchburchaklardan iborat va ekrandagi har bir pikselning rangini hisoblash kerak — bu bir xil turdagi, lekin bir-biriga bog'liq bo'lmagan juda ko'p hisob. CPU bunday ish uchun qulay emas: unda bir nechta, lekin juda "aqlli" yadrolar bor. GPU'da esa minglab oddiy yadrolar bor, ular bir vaqtning o'zida bitta amalni turli ma'lumotlar ustida bajaradi.

Vazifa: 48 ta pikselning rangini hisoblash — bir xil amal, turli ma'lumot CPU · 8 yadro · 4.8 GHz takt: 0 bajarildi: 0 / 48 har yadro murakkab: kesh, tarmoqlanish bashorati, tartibsiz bajarish — ketma-ket kodda kuchli GPU · 2048 yadro · 1.8 GHz takt: 0 bajarildi: 0 / 48 har yadro sodda: faqat qo'shish-ko'paytirish, lekin minglab — bir xil amalni parallel bajaradi (SIMD)
VazifaTaqsimlashBajarishXulosa
48 ta piksel — 48 ta mustaqil hisob. Ikkalasiga bir vaqtda beramiz.
23-rasm. CPU va GPU arxitekturasining farqi

O'xshatish: CPU — bu bir nechta professor, ular har qanday murakkab masalani yecha oladi. GPU — bu minglab boshlang'ich sinf o'quvchisi, ularning har biri faqat oddiy qo'shish-ko'paytirishni biladi, lekin birgalikda million misolni bir zumda yechib tashlaydi. Sun'iy intellekt modellarini (masalan, neyron tarmoqlarni) o'qitish aynan shunday — milliardlab oddiy matritsaviy ko'paytirishlar. Shuning uchun bugun GPU'lar AI inqilobining asosiy dvigateliga aylandi. PyTorch'da model.to('cuda') yozganingizda, hisoblar NVIDIA GPU yadrolariga o'tkaziladi.

10.4. Qurilmalar bilan aloqa: drayverlar va DMA

Har bir qurilma o'zining "tilida" gapiradi. Operatsion tizim ular bilan drayver — qurilma ishlab chiqaruvchisi yozgan maxsus dastur orqali muloqot qiladi. Katta hajmdagi ma'lumotni (masalan, diskdan faylni) ko'chirishda protsessorni band qilmaslik uchun DMA (to'g'ridan-to'g'ri xotiraga murojaat) texnologiyasi ishlatiladi: protsessor faqat "shu ma'lumotni diskdan RAM'ning mana bu joyiga ko'chir" deb buyruq beradi va o'z ishini davom ettiradi. Ko'chirish tugagach, qurilma uzilish orqali xabar beradi.

tizim shinasi (manzil + ma'lumot) buyruq (3 registr) IRQ 11 (uzilish) CPU bo'sh IRQ keldi bajarilgan buyruqlar: 0 kutmoqda DMA kontroller SRC— DST— LEN— holat: bo'sh RAMbufer 0x8000… NVMe SSDfayl bloklari · LBA
BuyruqKo'chirishCPU ishlaydiIRQXulosa
Ilova 32 KB faylni o'qimoqchi. OS drayveri DMA ga topshiriq beradi.
DMA — to'g'ridan-to'g'ri xotiraga murojaat. Buyruq → qurilma o'zi ko'chiradi → uzilish bilan xabar beradi.
Tekshirish: yuqoridagi test va 15-savol