Kompyuter qanday ishlaydi
8-bob

Xotira

Tez xotira kichik va qimmat, katta xotira sekin — shuning uchun kompyuter xotirani pog'onama-pog'ona quradi.

Ideal xotira cheksiz katta, cheksiz tez va arzon bo'lishi kerak edi. Afsuski, fizika bunga yo'l qo'ymaydi: tez xotira qimmat va kichik, katta xotira esa sekin. Shuning uchun kompyuterlarda bir nechta xotira turi pog'onama-pog'ona ishlatiladi — bu xotira ierarxiyasi deyiladi. Maqsad — ko'p ishlatiladigan ma'lumotni tez xotirada, kam ishlatiladiganini esa sekin, lekin katta xotirada saqlash.

CPU kristali Registr fayli16 × 64 bit · 128 B < 1 ns hit miss L1 kesh · SRAM32 KB ~1 ns hit miss L2 kesh · SRAM1 MB ~4 ns hit miss L3 kesh · SRAM32 MB ~40 ns hit miss Xotira kontrolleri (IMC)DDR5 · 64 bit · 2 kanal Kechikish 0 ns topildi:— DDR5 DIMM · 16 GB ~80 ns DRAM 4 GBDRAM 4 GBDRAM 4 GBDRAM 4 GB Ierarxiya qoidasi yuqori pog'ona: tezroq · kichikroq · bayti qimmatroq pastki pog'ona: sekinroq · kattaroq · arzonroq har pog'ona pastdagining nusxasini saqlaydi (kesh) so'rov yo'li: — NVMe SSD · M.21 TB · ~100 µs = 100 000 ns Kontroller · FTLLBA → NAND blok / sahifa NAND256 GBNAND256 GBNAND256 GBNAND256 GB PCIe 4.0 x4 · 8 GB/s HDD · SATA4 TB · ~10 ms = 10 000 000 ns 7200 ayl/min · SATA 6 Gb/s PCIe 4.0 x4SATA (chipset orqali)
So'rovKesh L1→L3DRAMSSDQaytishHDD bo'lsaXulosa
Pastga suring: dastur bitta o'zgaruvchini so'raydi va uni ierarxiya bo'ylab izlaymiz.
16-rasm. Xotira ierarxiyasi: yuqoriga qarab tezlik oshadi, hajm kamayadi

Tezlik farqini his qilish uchun bitta o'xshatish: agar registrga murojaat 1 soniya davom etsa, L1 kesh ~3 soniya, RAM ~4 daqiqa, SSD ~3 kun, HDD esa ~1 yil davom etgan bo'lardi. Shuning uchun dasturlar tezligi ko'pincha protsessor chastotasiga emas, xotiradan qanchalik samarali foydalanishiga bog'liq.

agar registrga murojaat 1 soniya bo'lsa (logarifmik shkala) inson miqyosida Registr< 1 ns L1 kesh~1 ns RAM~80 ns SSD~0.1 ms HDD~10 ms shkala logarifmik: aks holda HDD ustuni registrnikidan 30 million marta uzun bo'lardi
Agar registrga murojaat 1 soniya bo'lsa (logarifmik shkala)
Pastga suring: ustunlar birma-bir o'sadi.
Xotira kechikishi inson miqyosida. Har bir ustun bir xil registr soniyasiga nisbatan; shkala logarifmik, aks holda HDD ustuni 30 million marta uzun bo'lardi.

Ierarxiya ishlashining sababi — lokallik prinsipi. Vaqt bo'yicha lokallik: hozir ishlatilgan ma'lumot yaqin orada yana ishlatiladi (masalan, sikl hisoblagichi). Fazoviy lokallik: bir manzil ishlatilsa, qo'shni manzillar ham ishlatilishi ehtimoli yuqori (massiv elementlari). Shu sababli kesh ma'lumotni 64 baytlik bloklar — kesh satrlari bilan yuklaydi.

8.1. RAM — operativ xotira

RAM (Random Access Memory) — "ixtiyoriy murojaatli xotira". Nomi shundan: istalgan manzilga bir xil vaqtda murojaat qilish mumkin, ketma-ket o'qish shart emas. RAM'da ishlab turgan dasturlar, ularning o'zgaruvchilari, ochiq brauzer sahifalari saqlanadi. Uning asosiy kamchiligi — energiyaga bog'liqlik: tok o'chishi bilan barcha ma'lumot yo'qoladi.

RAM'ning ikki turi bor. DRAM (dinamik) — har bir bit bitta tranzistor va bitta mitti kondensatorda saqlanadi: kondensator zaryadlangan bo'lsa — 1, zaryadsiz bo'lsa — 0. Kondensator asta-sekin zaryadini yo'qotgani uchun har 64 millisekundda barcha yacheykalar qayta "yangilanishi" kerak. DRAM zich va arzon, shuning uchun asosiy xotira sifatida ishlatiladi. SRAM (statik) — har bir bit 6 ta tranzistordan iborat flip-flopda saqlanadi. U ancha tez va yangilanish talab qilmaydi, lekin katta joy egallaydi va qimmat — shuning uchun kesh xotira uchun ishlatiladi.

DRAM yacheykasi (1 bit) — 1 tranzistor + 1 kondensator so'z liniyasi (qatorni tanlash) bit liniyasi tranzistor (kalit) kondensator ~30 fF 100% zaryad bit = 1 o'qish chegarasi: 50% sense amp yangilash kontrolleri · har 64 ms 064 ms SRAM yacheykasi (1 bit) — 6 tranzistor so'z liniyasi BL BL̄ Vdd GND T1T2 T3T4 T5 T6 Q = 1 Q̄ = 0 ikki inverter bir-birini ushlab turadi, yangilash shart emas tez, lekin 6 tranzistor = 6 barobar ko'p joy → kesh uchun
YozishOqishYangilashSRAM ushlaydiO'qishXulosa
Pastga suring: yacheykalarga 1 yoziladi va nima bo'lishini kuzatamiz.
17-rasm. DRAM va SRAM yacheykalari

Zamonaviy kompyuterlarda DDR4 yoki DDR5 xotira modullari ishlatiladi. DDR — "Double Data Rate", ya'ni har takt signalining ko'tarilish va tushish chetlarida ma'lumot uzatiladi. DDR5-6000 moduli sekundiga ~48 GB ma'lumot uzata oladi. Ko'pchilik kompyuterlarda xotira ikki kanalli rejimda ishlaydi — ikkita bir xil modul o'rnatilsa, o'tkazuvchanlik ikki barobar oshadi.

8.2. ROM va flesh xotira

ROM (faqat o'qish uchun xotira) — tok o'chganda ham ma'lumotni saqlaydi. Ona platadagi BIOS/UEFI dasturi shunday chipda saqlanadi. Zamonaviy "ROM"lar aslida qayta yoziladigan flesh xotira — shuning uchun BIOS'ni yangilash mumkin. Flesh xotirada har bir yacheyka maxsus "suzuvchi darvoza"li tranzistor bo'lib, unga elektronlar izolyator orqali "tiqilib" kiradi va u yerda yillar davomida saqlanadi.

8.3. Doimiy saqlash: HDD va SSD

HDD (qattiq disk) — magnit qatlam bilan qoplangan, daqiqasiga 5400-7200 marta aylanadigan plastinalardan iborat. Ular ustida havoda "suzib" turuvchi o'qish-yozish kallagi joylashgan — u plastinadan atigi bir necha nanometr balandlikda harakatlanadi. Ma'lumot plastinaning kichik sohalarini magnitlash yo'nalishi sifatida yoziladi. HDD arzon va katta hajmli, lekin mexanik bo'lgani uchun sekin va zarbaga sezgir.

SSD (qattiq holatdagi disk) — NAND flesh xotira chiplari va ularni boshqaradigan kontrollerdan iborat. Unda harakatlanuvchi qism yo'q, shuning uchun u tez, jim va mustahkam. NVMe interfeysli zamonaviy SSD sekundiga 5-12 GB o'qiy oladi — bu HDD'dan 30-80 barobar tez. Flesh yacheykalar cheklangan marta (bir necha ming marta) qayta yozilishi mumkin, shuning uchun kontroller yozuvlarni butun disk bo'ylab tekis taqsimlaydi (wear leveling).

HDD · 3.5″ · 7200 ayl/min · SATA o'qish-yozish kallagi 0.0 ms 1. kallak yo'li ~8 ms 2. sektorni kutish ~4 ms 3. o'qish ~0.1 ms LBA 1048576 → silindr 12 · sektor 7 SATA 6 Gb/s → NVMe SSD · M.2 2280 · PCIe 4.0 x4 0 µs Kontroller · FTL LBA → NAND chip / blok / sahifa kutmoqda DRAM kesh · 1 GB xarita jadvali (mapping) LBA 1048576 → ? NANDTLC · 128 GB · 0NANDTLC · 128 GB · 1NANDTLC · 128 GB · 2NANDTLC · 128 GB · 3NANDTLC · 128 GB · 4NANDTLC · 128 GB · 5NANDTLC · 128 GB · 6NANDTLC · 128 GB · 7 harakatlanuvchi qism yo'q · 8 kanal parallel ← PCIe x4 · 8 GB/s
So'rovSSD: FTL → NANDHDD: kallakHDD: aylanishO'qishXulosa
Pastga suring: bir xil 4 KB blok ikkala diskdan so'raladi.
18-rasm. HDD va SSD tuzilishi
5-jadval. Saqlash qurilmalari taqqoslanishi
XususiyatHDDSATA SSDNVMe SSD
O'qish tezligi~150 MB/s~550 MB/s3000-12000 MB/s
Kechikish~10 ms~0.1 ms~0.02 ms
Narx (1 TB)arzono'rtachao'rtacha
Zarbaga chidamlilikpastyuqoriyuqori
Shovqinboryo'qyo'q
Tekshirish: yuqoridagi test va 11-savol, 12-savol, 13-savol