SAMSUNG_042024 Advertisement SAMSUNG_042024 Advertisement SAMSUNG_042024 Advertisement

Za tajomstvami operačnej pamäte / 2. časť

Archív NXT
0

V predchádzajúcej časti nášho seriálu o komponentoch počítača sme vysvetlili základný princíp fungovania pamätí RAM, pozreli sme sa na rôzne form faktory ich výroby a poukázali sme na vplyv kapacity RAM na komplexný výkon počítača. V tejto časti pokračujeme detailnejším opisom pamätí RAM.

Vnútri pamäťových čipov

Každý pamäťový čip modulu obsahuje obrovské množstvo samostatných pamäťových buniek, schopných pojať vždy najmenšiu jednotku informácie, teda jeden bit. Ak máme napríklad jeden 4 GB modul DDR3 SDRAM, ktorý pozostáva napríklad z ôsmich pamäťových čipov, znamená to, že každý z nich má kapacitu 512 MB, a teda 4 miliardy 294 miliónov 967-tisíc 296 bitov. Keďže na každý bit je potrebná jedna pamäťová bunka, ide aj o počet pamäťových buniek. Týchto niekoľko miliárd pamäťových buniek je v čipe zoradených do riadkov a stĺpcov, čo môžete vidieť aj na schematickom obrázku. Každá bunka tak môže byť adresovaná číslom stĺpca a riadka. Bunka pozostáva z tranzistora a kondenzátora. Práve druhý menovaný dokáže na krátky čas udržať elektrický náboj, čo sa využíva ako reprezentácia bitu, respektíve čísla dvojkovej sústavy. Ak je kondenzátor nabitý, pamäťová bunka reprezentuje hodnotu 1, ak je, naopak, vybitý, bunka reprezentuje hodnotu 0. Pokiaľ ste sa niekedy o elektronické súčiastky zaujímali, pravdepodobne sa vám pri slove kondenzátor vybaví súčiastka v podobe valčeka stojaceho na nožičkách. V hojnom počte ich možno vidieť napríklad na základných doskách či inom hardvéri. Samozrejme, ak je ich na miniatúrnom čipe niekoľko miliárd, asi je vám jasné, že ich podoba bude značne iná a hlavne ich schopnosť udržať elektrický náboj pri danom rozmere nebude mať dlhé trvanie. Predstavu o ich skutočnej podobe môžete získať pri pohľade na fotografiu vytvorenú pomocou rastrového elektrónového mikroskopu. Takýto malý kondenzátor udrží náboj veľmi krátky čas, po ktorom sa samovoľne vybije a dáta sa stratia. Z tohto dôvodu musí operačná pamäť obnovovať jeho nabitie tisíckrát za sekundu. Z hľadiska ľudskej časovej škály sa to zdá veľmi veľa, ale z aspektu časovej škály počítača, ktorý vykonáva s pamäťou stovky miliónov operácií za sekundu, už hodnota nevyzerá extrémne.

Bunka.png
Schematický nákres pamäťovej bunky DDR SDRAM

Na schematickom nákrese pamäťovej bunky môžeme vidieť, ako je celý obvod zapojený. Do bunky vedú dva vodiče - adresný (na úrovni riadka) a dátový (na úrovni stĺpca). K adresnému vodiču v hornej časti a k dátovému vodiču vpravo je pripojený tranzistor MOS, od ktorého vedie obvod až ku kondenzátoru pripojenému k uzemneniu. Pri zápise logickej hodnoty 1 sa na adresný a dátový vodič privedie napätie, vďaka ktorému sa obvod zopne a cez tranzistor začne prúdiť elektrický prúd. To vyústi do nabitia kondenzátora. Naopak, čítanie prebieha privedením napätia iba na adresný vodič. Ak je kondenzátor nabitý, obvod sa cez tranzistor zopne a náboj sa z kondenzátora vybíja na dátový vodič. Prečíta sa tak hodnota 1. Ak je kondenzátor vybitý, obvod sa nezopne a na dátový vodič neprejde žiadny náboj. To logika pamäte vyhodnotí ako čítanie hodnoty 0. Zrejme ste si všimli, že tým, že sa hodnota 1 z bunky prečíta, dôjde vlastne k jej zmazaniu (respektíve nastaveniu na hodnotu 0), pretože sa kondenzátor vybije. Je to skutočne tak. Táto vlastnosť sa nazýva deštrukčnosť pri čítaní a čítanie buniek je tak rovnocenné mazaniu. V rámci operačných pamätí je tento problém vyriešený takto: V momente, keď sa pri čítaní bunky obvod zopne (bunka v tom okamihu reprezentuje hodnotu 1) a napätie z kondenzátora je odnášané dátovým vodičom, operačný zosilňovač toto napätie zosilní a okrem toho, že ho zašle do výstupného registra, vráti ho aj nazad na dátový vodič. To spôsobí, že sa cieľová bunka znova zopne a kondenzátor sa opätovne nabije. Bunka tak naďalej reprezentuje hodnotu 1 ako pred procesom čítania. Ak je kondenzátor bunky od začiatku vybitý, bunka sa nezopne, na dátový vodič, a teda ani do zosilňovača neprejde žiadny náboj a register prijíma hodnotu 0. Stav bunky sa pri tom nezmenil, a teda ho netreba nijako obnovovať. Spôsob obnovovania prečítaných buniek s hodnotou 1 sa využíva aj na riešenie problému so samovoľným vybíjaním kondenzátorov dynamických RAM (DRAM, a teda aj SDRAM a DDR SDVšetky riadky operačnej pamäte sa jednoducho periodicky čítajú tisíckrát za sekundu, čím sa náboj vracia do buniek a obnovuje tak ich stav.

SEM.png
Reálny pohľad do čipu pomocou rastrového elektrónového mikroskopu - mierka je 200 nanometrov, teda 0,0002 mm

Obrovské množstvo buniek v rámci čipu treba rýchlo adresovať, na čo sa využíva ich usporiadanie do riadkov a stĺpcov. Pri takomto veľkom počte by bolo veľmi neefektívne budovať pre každý riadok a stĺpec vlastný vývod, a preto sa adresovanie, pri ktorom je každá bunka lokalizovaná pomocou svojej pozície na riadku a stĺpci, vykonáva pomocou zdieľaných zberníc. Na schematickom nákrese čipu (pre názornosť obsahuje iba 64 pamäťových buniek) si môžete všimnúť, ako čip používa jednu zbernicu pre všetky riadky a druhú zbernicu pre všetky stĺpce. Keď radič operačnej pamäte v procesore vysiela požiadavku smerom do operačnej pamäte, používa na to skupinu prepojovacích vodičov základnej dosky, nazývaných pamäťová zbernica. Pri opise základnej operačnej schémy sme uviedli, že sa delí na dátovú a adresno-príkazovú časť. Signál teda putuje druhou menovanou časťou, pričom v adresnom úseku sa nesie informácia o umiestnení dát v pamäťovom čipe (adresa) a príkazovom úseku informácia o tom, čo sa má vykonať (čítanie, zápis, obnova buniek). Radič najprv zopne riadok pamäťového čipu pomocou signálu RAS (Row Address Strobe), t. j. impulzu na výber riadka, a následne pozíciu lokalizuje vyslaním signálu CAS (Column Address Strobe), čo je impulz na vybratie stĺpca. Tým dôjde k prečítaniu bunky, v ktorej sa signál prekrižuje, a odoslaniu dát z bunky do zbernice. Pokiaľ ide o zápis, z radiča ešte putuje signál WE (Write Enable - povolenie zápisu), ktorý sa aktivuje spoločne s CAS, pričom sa v danej bunke dáta zapíšu.

Rozlozenie.png
Schematický nákres jednoduchého pamäťového čipu so 64 bunkami


Operačný výkon

Výkon modulu operačnej pamäte určuje množstvo parametrov. Možno ste sa aj vy niekedy pozastavili nad cenníkom, kde ste videli napríklad modul CORSAIR DDR3 4096MB s frekvenciou 1333 MHz a časovaním 9-9-9-24. O frekvencii má zrejme každý predstavu v súvislosti s procesormi a celkom správne usudzuje, že čím je frekvencia vyššia, tým je vo všeobecnosti pamäť rýchlejšia (k podrobnostiam sa ešte dostaneme). Čo však znamená údaj o časovaní? Vzhľadom na to, že sme vám už ukázali, ako pamäťový čip funguje, pochopenie týchto parametrov nebude problém. Ide o štyri údaje oddelené pomlčkou. Prvý z nich je CAS latency (CL). Ide o oneskorenie operácie CAS, teda výberu stĺpca pri procese čítania. V našom príklade je to číslo 9, čo znamená, že od momentu, keď radič vyšle signál na označenie stĺpca, až do momentu, keď sa prečítané dáta odošlú do zbernice, uplynie 9 pracovných cyklov. Čím nižší je počet cyklov na vykonanie tejto úlohy, tým je pamäť rýchlejšia. Druhý údaj je oneskorenie medzi RAS a CAS, teda RAS to CAS Delay (tRCD). Ide o počet cyklov, ktoré uplynú od vyznačenia riadka až po vyznačenie stĺpca. Tretí údaj je RAS Precharge (tRP), čo sa dá preložiť ako prenabitie RAS. Vyjadruje počet cyklov, ktoré uplynú medzi označením, respektíve výberom jedného riadka buniek (čo sa vykoná privedením napätia na adresný vodič), skončením tejto operácie a vybratím druhého riadka pri nasledujúcej činnosti. Posledný údaj, ktorý je v našom prípade 24, je Active to Precharge Delay (tRAS), ktorý udáva počet cyklov pamäte, ktoré uplynú, než môže prísť do modulu ďalší príkaz.

Vybratie.png
Nákres priebehu aktivácie a zápisu do bunky

Čím nižšie je časovanie, tým je pamäť výkonnejšia (môže vykonať viac úloh za menej cyklov, a teda za kratší čas). Treba si však uvedomiť, že tento údaj je úzko spojený s frekvenciou a generáciou modulu DDR. Z tohto dôvodu nie je počet cyklov medzi DDR1, DDR2 a DDR3 ekvivalentný. Aby sme pochopili prečo, musíme vysvetliť, aké rozdiely jednotlivé generácie pamätí DDR SDRAM vlastne majú. Prvá generácia pamätí DDR postupom vývoja priniesla moduly, ktorých čipy pracovali s frekvenciami 100, 133, 166 a 200 MHz. Tieto frekvencie sa zároveň rovnajú rôznym frekvenciám pamäťovej zbernice, ktorá prepája pamäťový modul a radič pamäte v CPU alebo čipovej súprave. Keďže pamäte DDR používajú dvojité pumpovanie, dokážu vykonať dvojnásobný počet cyklov, v dôsledku čoho tak dosahujú dvojnásobnú frekvenciu svojej práce. V cenníkoch sme sa teda stretávali s modelmi DDR-200, DDR-266, DDR-333 a DDR-400. Bežná 400 MHz pamäť DDR1 síce v skutočnosti pracovala s frekvenciou 200 MHz (podľa zbernice), ale jej výsledná frekvencia práce bola vďaka dvojitému pumpovaniu dvojnásobná, čo vo výsledku dáva teoreticky dátový tok 3200 MB/s (číslo sa občas používa aj na označenie modulu v tvare PC-3200). Klasické modely dosahovali časovanie 3-4-4-8 (15, 20, 20, 40 nanosekúnd) a rýchle verzie 2-2-2-5 (10, 10, 10, 25 ns). S nástupom druhej generácie v podobe DDR2 sa však situácia zmenila. Okrem vyššej kapacity a nižšej energetickej náročnosti dosiahnutej zmenšením výrobného procesu sa totiž rýchlosť opäť zdvojnásobila. Tajomstvom zrýchlenia bolo zdvojnásobenie Prefetch buffera. Prefetch buffer ťaží z čítacej vlastnosti pamäte DRAM, pri ktorej je čas na úvodné precízne vybranie riadka podstatne dlhší (RAS približne 50 ns) ako vybratie stĺpca v momente, keď už je riadok aktivovaný (CAS približne 10 ns). Keďže zvyčajne sa číta viac buniek z jedného riadka, môže sa proces zefektívniť použitím zásobníka. Po výbere riadka sa teda aktivuje stĺpec a prečíta sa jeho hodnota. No namiesto toho, aby sa hodnota odoslala do zásobníka na výstup z pamäte a prerušilo sa spojenie s riadkom, hodnota sa uloží iba do Prefetch buffera a prečíta sa ďalší stĺpec na rovnakom riadku. Odpadá tak čas na opätovnú aktiváciu riadka. Kým DDR1 používa 2-bitový prefetch, v prípade DDR2 môže Prefetch buffer preniesť až 4 bity. Pri rovnakom procese sa teda udejú až štyri výbery namiesto dvoch. Pamäť tak vo výsledku znovu znásobuje svoju frekvenciu. Vezmime si napríklad typickú pamäť DDR2 s frekvenciou 800 MHz (DDR2-800). (Zbernica pracuje na frekvencii 200 MHz. Vďaka dvojitému pumpovaniu efektívna frekvencia pamäte stúpa na 400 MHz a vďaka zdvojnásobeniu Prefetch buffera na 800 MHz. Dátový tok je tak 6400 MB/s (moduly DDR2-800 tak používajú aj označenie PC2-6400). Vo výsledku to znamená, že v pamäti stúpa aj počet vnútorných cyklov. Bežná pamäť DDR2má časovanie 5-5-5-16, čo vyzerá výrazne horšie ako časovanie DDR1 (3-4-4-8). V skutočnosti však daný počet cyklov trvá pamäti DDR2 kratšie. Kým DDR2 vykoná svojich 5 cyklov za 12,5 nanosekundy, DDR1 vykoná svoje tri za 15 nanosekúnd. Rýchlejšie DDR2 dosahujú časovanie 4-4-4-12 (10 a 30 ns). V súčasnosti používaná tretia generácia DDR (DDR3) obsahuje 8-bitový Prefetch buffer. Pracovná frekvencia sa tak opäť zdvojnásobila. Pamäť DDR3-1600 pracuje s 200 MHz zbernicou, zdvojnásobuje svoju frekvenciu dvojitým pumpovaním (400 MHz) a štvornásobne ju zvyšuje použitím štvornásobného Prefetch buffera (1600 MHz). Klasické časovanie pamätí DDR3 je 9-9-9-27 (11,25 a 33,75 ns), pri rýchlych modeloch 8-8-8-24 (10 a 30 ns). Z uvedeného vidieť, že pamäť DDR3 môže pri rovnakom časovaní ako DDR2 pracovať na vyššej frekvencii. Na spojitosť frekvencie a časovania treba myslieť aj pri pretaktovaní. Bežne sa stáva, že na vyšších frekvenciách, ako je štandard, funguje pamäť stabilne až vtedy, keď zvýšime hodnotu časovania. No ak sa nenájde správny balans, pamäť môže vo výsledku na vyššej frekvencii fungovať z dôvodu zhoršeného časovania pomalšie ako na nižšej.

Sloty a režimy zapojenia

Ak má základná doska viac ako dva sloty na operačnú pamäť, zrejme ste si všimli, že sú často farebne rozlíšené. Je to preto, že zbernica a radiče pamätí umožňujú zapojenie pamäťových modulov do tzv. duálneho režimu (dual channel). Princíp tohto režimu je teoretické zdvojnásobenie dátovej priepustnosti zbernice. Ako sme už spomenuli, ku každému slotu pamäte vedie 64 fyzických vodičov, ktoré slúžia na všetok dátový tok do pamäte a z pamäte. Radič aktivuje príslušné spojenie (vodič D0 až D63) podľa toho, z akej časti pamäte dáta práve číta. Ak napríklad používame jeden 8 GB modul DDR3 s frekvenciou 1600 MHz, pri použití 64 spojení je teoretická prenosová rýchlosť medzi pamäťou a procesorom 12,5 GB/s. Zmyslom duálneho režimu je zdvojnásobiť počet spojení a tým túto rýchlosť zvýšiť. Namiesto jedného 8 GB modulu teda zapojíme dva 4 GB moduly, pričom zapojením do duálneho režimu radič presvedčíme, že ide o jeden spoločný modul pamäte. Rozdiel, samozrejme, je v tom, že tento „fiktívny" modul je spojený s radičom 128 vodičmi (D0 až D127), čo teoreticky zdvojnásobí prenosovú rýchlosť na 25 GB/s (praktický dosah na výkon je však veľmi malý a zvyčajne sa pohybuje pod 5 %). Existujú dva režimy tohto zapojenia - ganged a V prvom menovanom sa zbernica skutočne správa ako jedna, v druhom je zachovaný aj samostatný 64-bitový prístup v spojenom páre. V súčasnosti sa na väčšine systémov používa druhý režim z dôvodu lepšieho výkonu na viacjadrových procesoroch, ktoré môže jedna spoločná zbernica pri viacvláknových operáciách, naopak, spomaľovať.

Sloty.jpg
Porovnanie slotov DDR3 SDRAM notebooku (šikmé zasunutie, kolmé uchytenie) a stolového PC (kolmé zasunutie aj uchytenie)

Na prevádzkovanie duálneho režimu je nevyhnutné zapojiť úplne totožné operačné pamäte (kapacita, frekvencia, časovanie). Z tohto dôvodu sa obyčajne používajú totožné moduly od rovnakého výrobcu (buď samostatne, alebo rovno v „párovanom" balení). Pri správnom zapojení pamätí základná doska zvyčajne aktivuje duálny režim automaticky. V drvivej väčšine prípadov treba umiestniť pamäte do slotov, ktoré sú farebne zhodné. V niektorých ojedinelých prípadoch sa však toto farebné pravidlo nedodržiava, a preto je lepšie vždy siahnuť po manuáli k základnej doske, v ktorom je schéma zapojenia opísaná. Duálny režim sa neaktivuje pri použití nespárovaných slotov, pri rozličných pamätiach alebo v prípade, že je táto voľba v BIOS-e deaktivovaná. Niektoré typy procesorov, ako napríklad Intel Core série i7-900, obsahujú trojkanálový radič a používajú tak na rovnaký účel trojicu modulov.

Záver

V tejto časti seriálu sme opísali súčasti a princípy fungovania operačnej pamäte. Ak sa vám doposiaľ zdalo, že ide o pomerne nezaujímavý malý obdĺžnik s jednoduchou činnosťou, zrejme ste svoj názor už prehodnotili. Hoci v poslednom období si pod rýchlym ukladaním a čítaním dát ľudia predstavia disky SSD, v článku sme vám ukázali, že na to, aby bolo možné dostatočne rýchlo zásobovať procesor, je potrebné dátové úložisko z celkom iného sveta rýchlostí. Operačná pamäť v podobe DDR SDRAM tu s nami je od prelomu tisícročí, pričom v súčasnosti je rozšírená jej tretia generácia. Aj keď existuje niekoľko konceptov na úplné nahradenie technológie DRAM, pravdepodobne s nami ešte niekoľko rokov bezpečne pobudne. Isté je, že v najbližšom období sa môžeme pripraviť na nástup DDR4.

Pridať komentár

Mohlo by vás zaujímať

Mohlo by vás zaujímať