Հիշողության Հիերարխիա
Ոչ մի հիշողություն միաժամանակ բավականաչափ արագ և էժան չէ, որ լրացնի ամեն դեր չիպի կամ համակարգի մեջ, ուստի իրական դիզայնները օգտագործում են հիերարխիա. փոքր, արագ, թանկ հիշողությունները տեղադրվում են հաշվարկային տրամաբանությանը մոտ, իսկ մեծ, դանդաղ, էժան հիշողությունները՝ ավելի հեռու։ Տվյալները շարժվում են վերև՝ դեպի պրոցեսոր, երբ պահանջվում են, և ներքև, երբ դուրս են մղվում։
Հիշողության հիերարխիան. տարողությունը մեծանում է, իսկ արժեքը մեկ բիտի համար նվազում է, երբ տվյալները հեռանում են պրոցեսորից, մինչդեռ access-ի latency-ն մեծանում է։ Registers-ը և SRAM-ը կորցնում են իրենց պարունակությունը առանց սնուցման; DRAM-ը պահանջում է շարունակական refresh, որպեսզի մնա volatile-բայց-ողջ; Flash-ը և ստորև ներկայացված առաջացող NVM տեխնոլոգիաները պահում են տվյալները առանց սնուցման ընդհանրապես։
Երկու առանցք ամենակարևորն են, երբ ընտրում ես հիշողություն որևէ խնդրի համար՝
Volatile vs. non-volatile
Volatile հիշողությունը (SRAM, DRAM) կորցնում է իր պարունակությունը հենց սնուցումը հեռացվի, բայց առաջարկում է ամենաարագ access-ը։ Non-volatile հիշողությունը (ROM ընտանիքը, Flash-ը և ստորև ներկայացված առաջացող MRAM/ReRAM/PCM/FeRAM դասը) պահպանում է տվյալները առանց սնուցման ընդհանրապես, որոշակի արագության, endurance-ի կամ խտության գնով։
Charge-based vs. resistance-based
Ավելի հին տեխնոլոգիաները (DRAM, Flash, EEPROM) պահում են բիտը որպես էլեկտրական լիցքի քանակություն։ Ավելի ու ավելի շատ առաջացող non-volatile հիշողություններ փոխարենը պահում են բիտը որպես ֆիզիկական resistance կամ մագնիսական վիճակ — փոփոխություն, որը ընկած է դրանց արագության և endurance-ի առավելությունների հիմքում։
Volatile Հիշողություն. SRAM & DRAM
Volatile հիշողությունը փոխանակում է տվյալների պահպանումը արագության և, SRAM-ի դեպքում, access-ի պարզության հետ։ Ե՛վ SRAM-ը, և՛ DRAM-ը պետք է մնան սնուցված՝ տվյալները պահելու համար, բայց հասնում են դրան բոլորովին տարբեր բջիջի դիզայններով։
SRAM-ի cross-coupled inverter զույգը (Inv 1 / Inv 2) latch է անում Q-ն և Q′-ն և refresh պետք չէ, բայց արժե 6 տրանզիստոր մեկ բիտի համար։ DRAM-ը պահում է բիտը որպես լիցք մեկ կոնդենսատորի վրա՝ մեկ access transistor-ի հետևում — շատ ավելի խիտ, բայց լիցքը հոսում է և պետք է պարբերաբար կարդացվի ու վերագրվի (refresh)։
SRAM (Static RAM)
Դասական SRAM բջիջն օգտագործում է վեց տրանզիստոր. չորսը կազմում են երկու cross-coupled CMOS inverter (bistable latch, որը պահում է որևէ logic վիճակ անորոշ ժամանակ, քանի դեռ սնուցված է), իսկ երկուսը՝ «access transistor», բացվում են word line-ով և միացնում ներքին node-երը Q/Q′-ը complementary bit line-երին՝ BL/BL′-ին, read և write գործողությունների համար։
Քանի որ latch-ն ակտիվորեն քշում է full-rail լարումը bit line-երի վրա՝ փոխանակ հենվելու DRAM-ի փոքրիկ charge-sharing ազդանշանի վրա, և քանի որ չկա refresh կամ multiplexed row/column addressing, որին սպասել, SRAM-ը չիպի ամենաարագ հիշողությունն է — ահա թե ինչու այն օգտագործվում է CPU/GPU cache-երի, register file-երի և FPGA config հիշողության համար։ 8T և 10T տարբերակները ավելացնում են dedicated read կամ write port-եր (dual-port SRAM՝ միաժամանակյա read+write-ի համար) կամ բաժանում են read path-ը storage node-երից՝ ցածր լարման ժամանակ ավելի լավ կայունության համար։ Փոխզիջումը մակերեսն ու գինն է. 6 տրանզիստոր մեկ բիտի համար շատ ավելի քիչ խիտ է, քան DRAM-ի մեկ տրանզիստոր գումարած մեկ կոնդենսատորը, և subthreshold leakage-ը բջիջի տրանզիստորների միջով անընդհատ քաշում է standby power՝ կտրուկ աճելով ջերմաստիճանի հետ։
DRAM (Dynamic RAM)
DRAM բջիջը ընդամենը մեկ access transistor է և մեկ storage capacitor (1T1C) — կոնդենսատորի լիցքի վիճակը կոդավորում է բիտը։ Այդ լիցքը հոսում է junction և subthreshold leakage-ով, ուստի ամեն row-ը պետք է կարդացվի ու վերագրվի («refresh» լինի) JEDEC-ի սահմանած 64 ms կամ ավելի կարճ ինտերվալով, ինչը սպառում է power և պարբերաբար արգելափակում սովորական access-ը։
Access-ը multiplexed է. Row Address Strobe-ը (RAS) «ակտիվացնում» է row-ը՝ միացնելով դրա կոնդենսատորները bit line-երին; քանի որ bit line-ի capacitance-ը մոտավորապես 10× բջիջի capacitance-ն է, ստացված ազդանշանը փոքր է, ուստի sense amplifier-ները հայտնաբերում և ուժեղացնում են այն մինչև full logic մակարդակ (ինչը նաև refresh է անում այդ row-ը)։ Column Address Strobe-ը (CAS) այնուհետև ընտրում է կոնկրետ column-ներ բացված row-ից, և precharge քայլը վերականգնում է bit line-երը մինչև հաջորդ access-ը։ Այս լրացուցիչ latency-ն, գումարած destructive/refresh-պահանջող read-ը, այն է, ինչու DRAM-ը ավելի դանդաղ է, քան SRAM-ը — բայց իր 1T1C բջիջը զգալիորեն ավելի խիտ ու էժան է մեկ բիտի համար, ինչը դարձնում է այն default ընտրություն համակարգի հիմնական հիշողության համար (DDR5, LPDDR5X) և HBM-ի ներսում stacked DRAM die-երի համար։
| Սերունդ | Nominal լարում | Նշումներ |
|---|---|---|
| DDR3 | 1.5V (1.35V ցածր լարման տարբերակ) | 400–1067 MHz clock տիրույթ |
| DDR4 | 1.2V | Մինչև 64GB/DIMM; on-die ECC-ին մոտ հատկանիշների ավելի լայն կիրառում |
| DDR5 | 1.1V, on-die voltage regulation | 4800–6400+ MT/s ստանդարտ, 8 bank group (DDR4-ի 4-ի փոխարեն), բոլոր chip-երը ներառում են on-die ECC |
| LPDDR5X | Low-power, mobile/automotive | Մինչև մոտավորապես 8.5–10.7 Gbps/pin՝ կախված իրականացումից; օգտագործվում է on-device AI workload-ների համար |
Non-Volatile Հիշողություն. ROM, EEPROM & Flash
Այս ընտանիքը պահում է բիտը որպես թակարդված էլեկտրական լիցք էլեկտրապես մեկուսացված gate-ի վրա, ինչը փոխում է տրանզիստորի threshold լարումը և պահպանվում է առանց սնուցման։
ROM Ընտանիքը
| Տիպ | Ծրագրավորվում է | Ջնջվում է | Նշումներ |
|---|---|---|---|
| Mask ROM | Գործարանում, photomask-ով | Երբեք — ֆիքսված ողջ կյանքի ընթացքում | Ամենաէժանը մեկ բիտի համար հսկայական ծավալներում; գործնականում հնացած է, քանի որ Flash-ը էժան է |
| PROM | Մեկ անգամ, «պայթեցնելով» fuse/antifuse-երը | Երբեք (one-time programmable) | Bipolar fuse-link PROM-երը թվագրվում են 1970-ականների սկզբից |
| EPROM | Floating-gate լիցքի ներարկում | UV լույս, quartz պատուհանով | Ներկայացվել է 1971-ին (Intel); միայն bulk-erase, ընտրովի ջնջում չկա |
| EEPROM | Էլեկտրական իմպուլսներ | Էլեկտրական իմպուլսներ, byte-addressable | Դեռ օգտագործվում է այսօր փոքր persistent տվյալների համար — config, calibration, սերիական համարներ |
Ինչպես է Flash-ը Պահում Բիտը
Floating gate-ի վրա թակարդված լիցքը բարձրացնում է տրանզիստորի threshold լարումը (V
NOR vs. NAND
NOR Flash
Բջիջները միացված են զուգահեռ, յուրաքանչյուրն ունի իր ուղղակի bit-line կապը — հնարավորություն տալով random, byte-level addressing։ Սա աջակցում է execute-in-place (XIP), թույլ տալով CPU-ին կատարել կոդը ուղղակիորեն NOR-ից՝ առանց նախ RAM-ի մեջ պատճենելու, ինչի պատճառով NOR-ը ստանդարտ է embedded firmware-ի և bootcode-ի համար։ Փոխզիջում. ցածր խտություն և ավելի բարձր գին մեկ բիտի համար, ավելի դանդաղ write/erase։
NAND Flash
Բջիջները միացված են series string-երով՝ կիսելով bit line-երը — շատ ավելի փոքր layout մեկ բջիջի համար, ուստի խտությունը շատ ավելի բարձր է, իսկ գինը մեկ բիտի համար՝ շատ ավելի ցածր։ Access-ը կատարվում է page-ով (program) և block-ով (erase), ոչ թե random byte addressing-ով, ինչի պատճառով NAND-ը գերիշխում է bulk պահեստավորման մեջ. SSD-եր, USB drive-եր, eMMC/UFS և memory card-եր։
3D NAND
Հարթ NAND-ի scaling-ը կանգ առավ, քանի որ pitch-ի փոքրացումը մեծացնում է cell-to-cell interference-ը և թողնում է յուրաքանչյուր բջիջին լիցք պահել ընդամենը մի քանի էլեկտրոնով։ 3D NAND-ը փոխարենը stack է անում բջիջները ուղղահայաց՝ շատ word-line layer-երում ընդհանուր channel-ի շուրջ, օգտագործելով charge-trap պահեստավորում, որը շատ ավելի լավ է հանդուրժում խիտ stacking-ի մոտիկությունն ու process-ի փոփոխականությունը, քան floating gate-ը։
| Բջիջի տիպ | Բիտ/բջիջ | Խտություն / գին | Endurance & արագություն |
|---|---|---|---|
| SLC | 1 | Ամենացածր խտություն, ամենաբարձր գին/բիտ | Ամենաբարձր endurance & արագություն |
| MLC | 2 | — | — |
| TLC | 3 | — | — |
| QLC | 4 | — | — |
| PLC | 5 | Ամենաբարձր խտություն, ամենացածր գին/բիտ | Ամենացածր endurance & արագություն |
Ավելի շատ բիտ մեկ բջիջում նշանակում է ավելի շատ տարբերակելի voltage level-ներ նույն պատուհանում, ուստի խտությունն աճում է, իսկ գինը մեկ բիտի համար՝ նվազում — բայց level-ների միջև margin-ը փոքրանում է, կրճատելով program/erase-cycle endurance-ը և արագությունը՝ մեծացնելով սխալների մակարդակը։ Controller-ները փոխհատուցում են վերջավոր program/erase-cycle կյանքի տևողությունը wear leveling-ով՝ write-երը հավասարաչափ բաշխելով block-երի միջև, որպեսզի ոչ մի block առաջինը չմաշվի։
Առաջացող Non-Volatile Հիշողություն
Այնտեղ, որտեղ Flash-ը և EEPROM-ը պահում են բիտը որպես թակարդված լիցք, ավելի նոր non-volatile տեխնոլոգիաները պահում են այն որպես ֆիզիկական resistance կամ մագնիսական վիճակ — փոփոխություն, որը սովորաբար բերում է շատ ավելի բարձր write endurance և արագություն՝ Flash-ի համեմատ խտության կամ հասունության որոշակի ներկայիս գնով։
Magnetic tunnel junction-ը պահում է բիտը որպես free layer-ի հարաբերական մագնիսականացում՝ ֆիքսված reference layer-ի հանդեպ, բաժանված բարակ MgO tunnel barrier-ով։ Spin-transfer torque-ը (STT) գրում է հոսանքն ուղղակիորեն stack-ի միջով անցկացնելով՝ առանձին մագնիսական write գծի փոխարեն։
R
ReRAM / RRAM
Metal-insulator-metal stack, սովորաբար transition-metal-oxide dielectric-ով (օր. HfO₂)։ Threshold-ից բարձր լարումը տեղաշարժում է oxygen vacancy-ները՝ ձևավորելով լոկալ հաղորդիչ filament, որը կամրջում է electrode-ները (ցածր resistance); հակառակ լարումը ընդհատում է այն (բարձր resistance)։ Պարզ երկու-terminal կառուցվածքը CMOS-back-end-ի հետ համատեղելի է և crossbar-array-ի համար հարմար, իսկ դրա tunable, analog conductance-ը այն գրավիչ է դարձնում neuromorphic / in-memory computing-ի համար, որտեղ հիշողության array-ն ինքն է կատարում multiply-accumulate գործողությունները։
PCM (Phase-Change Memory)
Chalcogenide alloy (օր. germanium-antimony-tellurium) փոխարկվում է amorphous (բարձր resistance) և crystalline (ցածր resistance) վիճակների միջև ջերմային իմպուլսներով; resistance-ի տարբերությունը կոդավորում է բիտը։ Intel/Micron-ի 3D XPoint-ը (Optane) օգտագործեց նմանատիպ cross-point, transistor-free stackable architecture և վաճառվում էր որպես byte-addressable persistent հիշողություն՝ DRAM-ի և NAND-ի միջև — Intel-ը դադարեցրեց Optane բիզնեսը 2022-ին, բայց cross-point array-ի հայեցակարգը մնում է architecturally ազդեցիկ։
FeRAM
Օգտագործում է ferroelectric կոնդենսատոր (օր. lead zirconate titanate, PZT) DRAM-ի նման 1T1C-style բջիջում; բիտը նյութի էլեկտրական polarization-ի ուղղությունն է, որը պահպանվում է առանց սնուցման։ Այդ polarization-ի փոխարկումը շատ ավելի քիչ էներգիա է պահանջում, քան Flash-ի charge-pumping-ը, տալով շատ արագ, ցածր-power write-եր — բայց FeRAM-ը դեռ չի scale-վել բարձր խտությունների, ուստի մնում է niche դերերում, ինչպիսիք են smart card-երը և industrial/automotive controller-ները։
| Տեխնոլոգիա | Պահեստավորման մեխանիզմ | Առանձնահատուկ հատկություն | Ներկայիս դեր |
|---|---|---|---|
| MRAM / STT-MRAM | Մագնիսական վիճակ (MTJ) | Արագ + շատ բարձր endurance | Embedded automotive/industrial MCU-ներ, փոխարինելով Flash/EEPROM-ին առաջադեմ node-երում |
| ReRAM | Հաղորդիչ filament (resistance) | Պարզ, խիտ, analog-tunable | Առաջացող embedded NVM & neuromorphic/in-memory computing հետազոտություն |
| PCM / 3D XPoint | Amorphous/crystalline փուլ (resistance) | Byte-addressable, DRAM-NAND բացը լրացնող | Հիմնականում դադարեցված առևտրային տեսանկյունից (Optane, 2022); architecture-ը շարունակվում է cross-point հետազոտության մեջ |
| FeRAM | Ferroelectric polarization | Շատ արագ, շատ ցածր write energy | Smart card-եր, metering, industrial control |
HBM & Հիշողության Պատը
GPU-ների և AI accelerator-ների հաշվարկային throughput-ը աճել է շատ ավելի արագ, քան DRAM-ի bandwidth-ն ու latency-ն — բաց, որը կոչվում է հիշողության պատ (memory wall)։ Մեծ մոդելների training-ի և inference-ի համար performance-ը հաճախ սահմանափակված է ոչ թե նրանով, թե որքան գործողություն կարող է անել հաշվարկային die-ը, այլ նրանով, թե որքան արագ կարող են weight-երը, activation-ները և KV-cache-ը շարժվել հիշողությունից, և այդ տվյալների տեղափոխումը կարող է ավելի շատ էներգիա ծախսել, քան հենց հաշվարկը։ High Bandwidth Memory-ն (HBM) արդյունաբերության հիմնական պատասխանն է։
HBM-ը stack է անում մի քանի DRAM die ուղղահայաց, միացված through-silicon via-երով (TSV), base logic die-ի վրա, որը կառավարում է I/O-ն։ Stack-ը տեղադրվում է հաշվարկային die-ի կողքին silicon interposer-ի վրա՝ 2.5D packaging-ի համար — կարճ, լայն, խիտ կապեր, փոխանակ board-level նեղ bus-ի։
1024-bit լայն HBM interface-ը հասնում է շատ բարձր aggregate bandwidth-ի նույնիսկ չափավոր per-pin data rate-ի դեպքում, ինչը նաև ինչու է այն ծախսում ավելի քիչ power մեկ տեղափոխված բիտի համար, քան GDDR-ի նման նեղ, բարձր-clock bus-ը։
HBM vs. GDDR. GDDR-ը (GDDR6/GDDR7) օգտագործում է ավելի նեղ per-chip bus, որը clock-ված է շատ ավելի արագ, և ավելի էժան ու պարզ է ինտեգրել — default-ը mainstream սպառողական GPU-ների համար։ HBM-ը փոխանակում է ավելի բարձր գինը և 2.5D packaging-ի բարդությունը (interposer, TSV) շատ ավելի մեծ bandwidth-ի հետ մեկ watt-ի հաշվով, ինչի պատճառով այն վերապահված է high-end AI/HPC accelerator-ների համար։ Քանի որ մեծ մոդելների training-ը և inference-ը հաճախ սահմանափակված են bandwidth-ով և latency-ով, ոչ թե հաշվարկով, HBM-ի մատակարարումն ինքնին դարձել է AI accelerator-ների արտադրության սահմանափակող գործոն 2025–2026-ին։
Նշում թվերի մասինՃշգրիտ HBM4-սերնդի թվերը (per-pin data rate, capacity մեկ stack-ի համար) տարբերվում են 2025–2026 աղբյուրների միջև և ներառում են ինչպես roadmap-ային կանխատեսումներ, այնպես էլ շուկա մուտք գործած specification-ներ — սերունդից-սերունդ bandwidth/capacity թվերը դիտարկեք որպես ուղղորդիչ, ոչ թե ֆիքսված, մինչև որևէ մասը հասնի volume production-ի։
Տեխնոլոգիաների Համեմատություն
| Տեխնոլոգիա | Volatile? | Հարաբերական արագություն | Հարաբերական խտություն | Endurance | Ներկայիս դեր |
|---|---|---|---|---|---|
| SRAM | Այո | Ամենաարագը | Ամենացածրը | Անսահմանափակ (մաշվածության մեխանիզմ չկա) | CPU/GPU cache, register-ներ, FPGA config |
| DRAM | Այո | Արագ | Բարձր | Անսահմանափակ | Համակարգի հիմնական հիշողություն |
| NOR Flash | Ոչ | Արագ read, դանդաղ write | Ցածր–Միջին | Տասնյակ հազարավոր P/E cycle (SLC-class) | Embedded firmware / XIP կոդ |
| NAND / 3D NAND | Ոչ | Միջին | Շատ բարձր | Մի քանի հազար (QLC) մինչև տասնյակ հազարավոր (SLC) P/E cycle | SSD, USB, eMMC/UFS bulk պահեստավորում |
| MRAM / STT-MRAM | Ոչ | Շատ արագ | Միջին | Շատ բարձր (10⁸⁽⁾+ cycle) | Embedded automotive/industrial MCU-ներ |
| ReRAM | Ոչ | Արագ | Միջին–Բարձր (crossbar-capable) | Բարձր, բարելավվող | Առաջացող embedded NVM, neuromorphic computing |
| PCM / 3D XPoint | Ոչ | Արագ (DRAM–NAND բաց) | Միջին | Բարձր | Հիմնականում դադարեցված առևտրային տեսանկյունից |
| FeRAM | Ոչ | Շատ արագ write | Ցածր | Շատ բարձր | Smart card-եր, metering, industrial control |
| HBM | Այո (stacked DRAM) | Շատ բարձր bandwidth | Բարձր, package-ի հաշվով | Անսահմանափակ | AI accelerator-ներ / GPU-ներ |
Ենթաթեմաներ
Հիմնական Տերմիններ
| Տերմին | Նշանակություն |
|---|---|
| 6T / 1T1C | Վեց-տրանզիստորանոց SRAM բջիջ vs. մեկ-տրանզիստոր-մեկ-կոնդենսատոր DRAM բջիջ |
| Refresh | DRAM row-երի պարբերաբար read-and-rewrite՝ հոսած կոնդենսատորի լիցքը փոխարինելու համար |
| RAS / CAS | Row / Column Address Strobe — DRAM-ի multiplexed addressing ազդանշանները |
| Floating gate | Flash/EPROM/EEPROM-ում էլեկտրապես մեկուսացված gate, որը պահում է լիցք՝ V |
| Fowler–Nordheim tunneling | Էլեկտրոնների quantum tunneling բարակ oxide-ով ուժեղ դաշտի ներքո — օգտագործվում է Flash-ը program/erase անելու համար |
| XIP | Execute-In-Place — կոդի ուղղակի կատարում NOR Flash-ից՝ առանց RAM-ի մեջ պատճենելու |
| P/E cycle | Flash բջիջի մեկ program/erase cycle; այս սահմանափակ քանակն է որոշում սարքի կյանքի տևողությունը |
| Wear leveling | Controller-ի տեխնիկա, որը write-երը հավասարաչափ բաշխում է Flash block-երի միջև՝ կյանքի տևողությունը երկարացնելու համար |
| MTJ | Magnetic Tunnel Junction — MRAM-ի resistive պահեստավորման տարրը |
| TSV | Through-Silicon Via — ուղղահայաց interconnect, որն օգտագործվում է HBM-ում DRAM die-երը stack անելու համար |
| Հիշողության պատ | Հաշվարկային throughput-ի և հիշողության bandwidth/latency-ի միջև աճող բացը |
Աղբյուրներ
- Static random-access memory — Wikipedia
- Dynamic random-access memory — Wikipedia
- Memory refresh — Wikipedia
- DDR5 SDRAM — Wikipedia
- LPDDR5X — Samsung Semiconductor
- Reusable Semiconductor ROM Introduced (EPROM, 1971) — Computer History Museum
- EEPROM — Wikipedia
- Charge trap flash — Wikipedia
- Flash 101: NAND Flash vs NOR Flash — embedded.com
- 3D NAND's Vertical Scaling Race — Semiconductor Engineering
- SK hynix Begins Mass Production of 321-Layer QLC NAND Flash — SK hynix Newsroom
- Multi-level cell (SLC/MLC/TLC/QLC) — Wikipedia
- Magnetic Tunnel Junction overview — ScienceDirect Topics
- 22nm STT-MRAM — TSMC Research
- ReRAM switching mechanism — Discover Nano (Springer)
- 3D XPoint — Wikipedia
- Ferroelectric RAM — Wikipedia
- High Bandwidth Memory — Wikipedia
- What Is HBM? Deep Dive Into Architecture, Packaging & Applications — Wevolver
- The Memory Wall — TrendForce
- AI and Memory Wall — arXiv