Cesta ze swapového pekla
Rozhodl jsem se rozšířit operační paměť svého počítače. K práci potřebuji mít souběžně spuštěných několik paměťově nenažraných aplikací a 3 GB RAM se ukázaly jako závažná brzda systému. Nadále provozuji sestavu s Core 2 Duo, kterou jsem neupgradoval v roce 2012, ani později (od stavu popsaném v tehdejším blogpostu pouze přibylo SSD a nový magnetický disk). Zatímco všechny ostatní komponenty se v průběhu let měnily, základní deska Gigabyte GA-965P-DS3 pamatuje původní sestavu koupenou přesně před osmi lety (a vzhledem k současnému kurzu koruny k dolaru doufám, že ještě pár let vydrží). Je zjevné, že čipset uvedený na trh léta Páně 2006 bude pro výběr pamětí hlavním omezujícím faktorem. Vysvětlivka pro mladší čtenáře: tehdy ještě bylo běžné, že paměťový řadič, integrované grafické jádro a řadič PCI Express nebyly součástí procesoru.
Průzkum terénu
Na základě sledování využití paměti a místa na odkládacím oddílu jsem usoudil, že cílová kapacita 6 GB bude tak akorát a potřebuji tedy dokoupit dvojici 2GB modulů. Produktová stránka Gigabyte není příliš sdílná, dozvídám se tam pouze, že deska podporuje až 8 GB paměti při obsazení čtyř slotů DIMM. Pro jistotu jsem se jal hledat i dokumentaci k severnímu můstku. Ta uvádí, že podporovány jsou moduly o maximální kapacitě 2 GB, jsou-li složené z 1Gb čipů. Musí tedy být oboustranné s celkem šestnácti čipy, to by měla být většina.
Jde se na nákup
Při nákupu komponent přes inzertní servery jsem se zatím nespálil a tak jsem vyrazil hledat na Aukro. Tam mne záhy zarazila jedna věc: hned několik prodejců, kteří nabízeli dvougigabajtové moduly DDR2, uváděli, že jsou určeny pouze pro sestavy s procesory AMD.
Vybavil jsem si, co mi kdysi pověděl Pavel Boček. Že občas se do prodeje dostanou paměťové moduly vymontované ze zrušených superpočítačů, které jsou překvapivě bez ECC a dají se použít v normálních deskách, mají však atypickou konfiguraci (zpravidla méně čipů s větší kapacitou) a fungují jen s některými paměťovými řadiči.
Napadlo mě, že se možná prodejci kryjí kvůli starším čipsetům, které podporují maximálně 4 GB paměti. Řady 915P/G a 925X už asi v běžném provozu nepotkáte, ale ještě v roce 2007 se prodávaly desky se severními můstky Intel 945P/G, u nichž výrobci vykoumali podporu Core 2 Duo. Strop čtyř gigabajtů měl také novější P31. Ale nabízené moduly měly šestnáct čipů, tedy po 1 Gb. Tak jsem zariskoval… a nevyšlo to. (Máte-li o ně zájem, přenechám je za přátelskou cenu.)
Na půl plynu
Ať jsem moduly do slotů poskládal jakkoliv, deska při POSTu tvrdošíjně hlásila čtyři gigabajty paměti namísto šesti. CPU-Z korektně našlo všechny čtyři moduly, Windows detekovaly 6 GB, ale pouze 4 GB použitelné. Po nabootování pouze s jedním modulem vyšlo najevo, že deska rozpoznává a používá pouze polovinu kapacity nových modulů. Ale proč?
SPD hlásí, že výrobcem modulů je Kingston, ačkoliv na samolepce uveden není a balení čipů je potištěno označením původního výrobce, Samsungu. Zřejmě je to verze pro OEM, nebo padělek. Nicméně jsem díky tomu mohl opsat produktový kód do Google. Tady začíná ta poučná část.
256M×4, 128M×8, 128M×64… co je to za čísla?
Čipy na modulech jsou K4T1G044QQ, což je podle dokumentace verze s uspořádáním 256M×4, další v nabídce jsou 128M×8 a 64M×16. V tomto bodě už není těžké se dovtípit, že vynásobením dojdete vždy k číslu 1024 Mb, což je kapacita jednoho čipu, a že tedy první číslo udává kapacitu logického bloku a druhé počet těchto bloků v čipu. Je také zjevné, že čipset Intel podporuje čipy pouze se 128Mb bloky a z větších použije jen část kapacity. Bohužel se o tom v dokumentaci nepíše a zjistíte to jen skrze trpkou životní zkušenost.
Možná nosím dříví do lesa a vysvětluji vám něco, co už dávno víte. Ale spíše si myslím, že to pro vás bude nová informace. Označení je totiž extrémně matoucí. Z písmene M není na první pohled jasné, jsou-li myšleny megabity, nebo megabajty, a tak se spousta lidí domnívá, že 128M×8 označuje modul s osmi čipy po 128 megabajtech. Další, jako třeba tento bořič mýtů, čtou druhé číslo jako šířku sběrnice (a někde se to opravdu používá). 128M×8 by tak označovalo čip, kterých je třeba na modul osadit osm, aby to dalo dohromady 64 bitů. Obojí dává s některými běžnými čísly smysl, ale z pohledu toho, jak čipy značí výrobci DRAM, je to špatně.
Údaj o uspořádání čipu se na štítku příliš často neobjevuje, má jej ale například tento modul od Super Talentu (128M×8)
Objevují-li se za znaménkem vysoká čísla (32 a vyšší), pak údaj reprezentuje uspořádání celého modulu. 128M×64 je tedy modul s celkovou kapacitou 1 GB, kde vnitřní uspořádání čipů je po 128Mb blocích. Toto označení vám neřekne, kolik čipů na modulu je – může jich být 16 v konfiguraci 128M×4, nebo osm 128M×8, existují i čipy 128M×16. Šestnáctka pak teoreticky může označovat i uspořádání celého modulu, byl by to však velmi atypický kus.
Bohužel existují i výrobci, kteří moduly značí vlastním systémem. Konkrétně tyto moduly od Adata jsou označené jako 2G×16 a myslí se tím kapacita modulu v gigabajtech a počet osazených čipů.
S kapacitou čipů souvisejí také pojmy „low density“ a „high density“. Ty ovšem nejsou nijak pevně definovány, takže high density může jednou značit moduly s menším počtem objemnějších čipů a podruhé větší logické bloky (jako DDR2 v konfiguraci 256M×4).
1R×8, 2R×8, 2R×4, aneb jednořadé a víceřadé moduly
Tento neméně matoucí údaj vám řekne o uspořádání celého modulu a počtu čipů, víte-li, jak jej číst. Nejčastěji se setkáte s moduly 1R×8, které mají typicky osm čipů na jedné straně, a 2R×8, které jsou oboustranné a nesou celkem šestnáct čipů. Jenže pokud byste čekali, že modul 2R×16 bude mít čipů dvaatřicet, mýlili byste se. Je to přesně naopak – druhé číslo udává šířku sběrnice jednotlivých čipů, takže konkrétně modul 2R×16 by měl na každé straně čtyři čipy (taková konfigurace je poměrně běžná u modulů SO-DIMM).
Moduly DDR3 R×8 a 2R×16 v provedení SO-DIMM od Elpidy
Osm čipů po 16 bitech vychází na 128 bitů, dvojnásobek šířky kanálu paměťového řadiče. Právě proto je modul označen jako 2R, tedy dual rank (dvouřadý). Z pohledu řadiče je takový modul ekvivalentní dvěma singlerankovým modulům ve dvou slotech, v jednom okamžiku řadič (na jednom kanálu) komunikuje pouze s jednou řadou čipů. Modul 2R je typicky oboustranný, zatímco 1R mívá čipy jen z jedné strany (to ale není pevně dáno). Pokud byste měli dva jednostranné (1R×8) moduly a dokoupili k nim oboustranný (2R×8) s dvojnásobnou kapacitou, měli byste mít bezproblémovou konfiguraci pro dual channel.
Na počet ranků se ale vyplatí hledět i z jiného důvodu. Řadiče typicky nejsou omezené počtem modulů, ale právě počtem řad. Většinou máte k dispozici dva sloty a čtyři řady na každý kanál, takže plné osazení oboustrannými moduly nebude činit problém. Existovaly ale například základní desky s čipsetem Intel 865PE, které měly šest slotů DIMM, severní můstek ale dokázal adresovat maximálně 4 GB paměti v osmi řadách, takže tři sloty na jednom kanálu jste mohli obsadit pouze za předpokladu, že dva ze tří modulů byly jednořadé. Podobným omezením trpěly desky s čipsetem P31, který byl oproti vyšším modelům omezen na dvě řady na kanál, z čehož pramení již vzpomínané omezení na 4 GB paměti celkem. Pokud deska nabízela čtyři sloty DIMM, mohli jste je plně osadit jen jednostrannými moduly.
Závěrem
Univerzální rada pro výběr paměťových modulů zní důsledně kontrolovat jejich označení a číst specifikace základní desky, čipsetu nebo procesoru. Bohužel se tam nedočtete úplně vše a jak vidno, ani (obecně nejméně problémový) oboustranný modul 2R×8 není zárukou úspěchu. Naštěstí jsou čipsety Intel pro procesory Core 2 zřejmě poslední vyloženě problémové, u Core i5/i7 generace Nehalem už není problém osadit 4 GB DDR3 do každého slotu (a na Core i7 řady 900 lze provozovat dohromady až 48 GB, ačkoliv specifikace udávají jen 24 GB). To by na pár let dopředu mělo stačit.