Markaziy protsessor (CPU)
4x4 sm plastinka ichida milliardlab tranzistor: ALU hisoblaydi, CU boshqaradi, registrlar va kesh ma'lumotni qo'l ostida tutadi.
Protsessor — kompyuterning "miyasi". U xotiradan buyruqlarni birma-bir olib, ularni bajaradi. Tashqi ko'rinishidan u taxminan 4x4 sm o'lchamdagi plastinka bo'lib, pastki qismida yuzlab yoki minglab kontakt (pin) bor. Uning ichida esa kremniy kristali — die — joylashgan, unda milliardlab tranzistor bor.
6.1. Protsessorning asosiy qismlari
ALU (arifmetik-mantiqiy qurilma) — butun sonlar ustida qo'shish, ayirish, bitli amallar va taqqoslashni bajaradi. O'nli kasrli sonlar (float) uchun alohida blok — FPU bor. Zamonaviy protsessorlarda bitta buyruq bilan bir nechta sonni birdaniga qayta ishlaydigan SIMD/vektor bloklari ham mavjud (AVX, NEON).
CU (boshqaruv qurilmasi) — dirijyor vazifasini bajaradi. U buyruqni dekodlab, qaysi registrdan ma'lumot olish, ALU qaysi amalni bajarishi va natijani qayerga yozish kerakligini aniqlaydi, so'ng tegishli sxemalarga boshqaruv signallarini yuboradi.
Registrlar — protsessor ichidagi o'ta tez va kichik xotira yacheykalari. x86-64 protsessorida 16 ta umumiy maqsadli 64 bitli registr bor (RAX, RBX, RCX...). Maxsus registrlar ham bor: PC (Program Counter) — keyingi bajariladigan buyruqning xotiradagi manzili; IR (Instruction Register) — joriy buyruq; SP (Stack Pointer) — stek cho'qqisi; Flags — oxirgi amal natijasi haqidagi belgilar (nol chiqdimi, manfiymi, to'lib ketdimi).
Kesh xotira — RAM'dan olingan ma'lumotlarning nusxasini protsessor yonida saqlaydigan tezkor xotira. L1 kesh har bir yadroda (32-64 KB, ~1 ns), L2 ham yadroga tegishli (256 KB - 2 MB), L3 esa barcha yadrolar uchun umumiy (8-64 MB). Protsessor ma'lumot kerak bo'lganda avval L1'ga, keyin L2'ga, L3'ga va oxirida RAM'ga murojaat qiladi. Kerakli ma'lumot keshda topilsa — bu kesh hit, topilmasa — kesh miss. Yaxshi dasturlar 95% dan ortiq hit darajasiga erishadi.
6.2. Takt chastotasi
Protsessordagi barcha jarayonlar takt generatori (clock) tomonidan sinxronlashtiriladi. U kvars kristali asosida doimiy chastotada impulslar hosil qiladi — xuddi orkestrdagi metronom kabi. Har bir impulsda flip-floplar yangi qiymatlarni eslab qoladi va sxema bir qadam oldinga siljiydi. 4 GHz chastota — sekundiga 4 milliard takt, ya'ni bitta takt 0.25 nanosekund davom etadi. Bu vaqt ichida yorug'lik atigi 7.5 sm masofani bosib o'tadi!
Nega chastotani cheksiz oshirib bo'lmaydi? Har bir ulanish-uzilishda tranzistor ozgina energiya sarflaydi va issiqlik ajraladi. Chastota oshgani sari issiqlik keskin ortadi. 2005-yildan beri protsessorlar chastotasi 3-5 GHz atrofida to'xtab qoldi — bu "quvvat devori" deyiladi. Shundan so'ng ishlab chiqaruvchilar chastota o'rniga yadrolar sonini oshirishga o'tdi.
6.3. Yadrolar va oqimlar
Yadro (core) — to'liq mustaqil protsessor: o'zining ALU, CU, registrlari va L1/L2 keshi bor. 8 yadroli protsessor bir vaqtning o'zida 8 ta vazifani haqiqatan parallel bajara oladi. Hyper-Threading / SMT texnologiyasi esa bitta yadroga ikkita oqimni (thread) navbatma-navbat bajarish imkonini beradi: bitta oqim xotirani kutayotganda, ikkinchisi yadroning bo'sh bloklaridan foydalanadi. Shuning uchun "8 yadro / 16 oqim" degan yozuvlarni ko'rasiz.
6.4. Buyruqlar to'plami (ISA)
Har bir protsessor oilasi o'zi "tushunadigan" buyruqlar ro'yxatiga ega — bu ISA (Instruction Set Architecture) deyiladi. ISA — dasturiy ta'minot va apparat o'rtasidagi shartnoma. Eng keng tarqalgan ikkita ISA: x86-64 (Intel va AMD, stol kompyuterlari va serverlar) va ARM (smartfonlar, Apple M-seriya, ko'plab serverlar). x86 — CISC (murakkab buyruqlar to'plami) falsafasiga, ARM esa RISC (qisqartirilgan buyruqlar to'plami) falsafasiga asoslangan. RISC'da buyruqlar oddiy va bir xil uzunlikda, bu esa ularni tezroq va kam energiya bilan bajarish imkonini beradi. Shu sababli bir ISA uchun kompilyatsiya qilingan dastur boshqasida to'g'ridan-to'g'ri ishlamaydi.
| Buyruq turi | Misol (assembler) | Ma'nosi |
|---|---|---|
| Ma'lumot ko'chirish | MOV R1, [1000] | 1000-manzildagi qiymatni R1 ga yukla |
| Arifmetika | ADD R1, R2 | R1 = R1 + R2 |
| Mantiq | AND R1, 0x0F | R1 ning pastki 4 bitini qoldir |
| Taqqoslash | CMP R1, 10 | R1 ni 10 bilan solishtir |
| Shartli sakrash | JE manzil | teng bo'lsa, manzilga o't |
| Funksiya | CALL / RET | funksiyaga kir / qayt |