Kompyuter qanday ishlaydi
6-bob

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.

CPU · 4 yadro · kristall (die) 4.0 GHz · 1 takt = 0.25 ns Yadro 1 ALU CU Registrlar 16×64 bit L1 · 32 KB~1 ns · 4 takt hit miss L2 · 1 MB~4 ns · 16 takt hit miss Yadro 2 ALU CU Registrlar 16×64 bit L1 · 32 KB~1 ns · 4 takt hit miss L2 · 1 MB~4 ns · 16 takt hit miss Yadro 3 ALU CU Registrlar 16×64 bit L1 · 32 KB~1 ns · 4 takt hit miss L2 · 1 MB~4 ns · 16 takt hit miss Yadro 4 ALU CU Registrlar 16×64 bit L1 · 32 KB~1 ns · 4 takt hit miss L2 · 1 MB~4 ns · 16 takt hit miss L3 kesh · barcha yadrolar uchun umumiy · 32 MB ~40 ns · 160 takt hitmiss PCIe 5.0 kontrollerix16 → GPU · x4 → NVMe SSD Xotira kontrolleri (IMC)DDR5 · 2 kanal · 64 bit · ~80 ns DDR5 DIMM · 16 GB4800 MT/s · CPU tashqarisida DRAM2 GB · 0DRAM2 GB · 1DRAM2 GB · 2DRAM2 GB · 3DRAM2 GB · 4DRAM2 GB · 5DRAM2 GB · 6DRAM2 GB · 7 Kechikish hisoblagichi 0 ns0 takt L1 1 · L2 4 · L3 40 · DRAM 80 ns (1 ns = 4 takt) So'rovlar statistikasi so'rovlar: 0 hit: 0 miss: 0 topildi: — Shinalar manzil (qayerga?) ma'lumot (nima?) boshqaruv (o'qi/yoz)
Yadro 1 ma'lumot so'raydi: L1 → L2 → L3 → DRAM va orqaga; keyin yana shu manzil — kesh hit.
So'rovL1L2L3DRAMNusxaHitXulosa
"Boshla" tugmasini bosing yoki pastga suring: sahna o'zi boshlanadi.
13-rasm. Zamonaviy ko'p yadroli protsessorning ichki tuzilishi

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!

Kvars kristali 100 MHz BCLK · ona platada PLL · ×40 4.0 GHz 1 takt = 0.25 ns D-flip-flop (registr biti) D1 ▲ CLK Q0 chetni kutmoqda Hisobchi takt: 0 vaqt: 0.00 ns 10 T = 0.25 ns ↑ ko'tarilish chetlari: flip-floplar aynan shu paytda yangi qiymatni eslab qoladi
KristalPLLKo'tarilish chetiXulosa
Pastga suring: takt generatori ishga tushadi.
Takt generatori. Metronom kabi doimiy chastotada impuls beradi; sxema har impulsda bir qadam oldinga siljiydi.

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.

Amaliy xulosa: Node.js bitta oqimda ishlaydi, shuning uchun ko'p yadroli serverda uning bitta nusxasi faqat bitta yadrodan to'liq foydalanadi. Barcha yadrolarni ishlatish uchun PM2 cluster rejimi yoki worker_threads ishlatiladi.

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.

4-jadval. Buyruqlarning asosiy turlari
Buyruq turiMisol (assembler)Ma'nosi
Ma'lumot ko'chirishMOV R1, [1000]1000-manzildagi qiymatni R1 ga yukla
ArifmetikaADD R1, R2R1 = R1 + R2
MantiqAND R1, 0x0FR1 ning pastki 4 bitini qoldir
TaqqoslashCMP R1, 10R1 ni 10 bilan solishtir
Shartli sakrashJE manzilteng bo'lsa, manzilga o't
FunksiyaCALL / RETfunksiyaga kir / qayt
Tekshirish: yuqoridagi test va 10-savol