Trinsec schreef op 11 June 2003 @ 11:28:
Is dit topic weer open? What have I unleashed!
[...]
Ah, en toevallig heb ik genoeg modules om er 64MB van te maken. Maareh, hoe weet je dat het maar 64MB kan cachen? (Plus, wat is het precieze verschil tussen gecachede en niet-gecachede geheugen? Behalve de speed natuurlijk)
Hoe ik dat weet... het zit in de specs van de chipset (daar kan dus bijvoobeeld geen BIOS upgrade wat aan doen). Die specs staan nergens echt goed weergegeven, maar dit is een van de beste sites:
Chris Hare's chipset specs
Bij sommige chipsets is het duidelijk- de i430FX, VX en TX hebben bijvoorbeeld een beperking van 64MB ongeacht manier van cachen en hoeveelheid L2 cache.
Bij andere chipsets zit het wat lastiger- de i430HX kan bijvoorbeeld met 1 of 2 TAGrams uitgerust worden. Met een tag kan hij ook maar 64MB cachen, maar met 2 kan hij tot 512MB. Dat kan dus van mobo tot mobo verschillen (slechte mobo's hebben er maar 1 zonder uitbreidingsmogelijkheden, betere goedkope mobo's hebben er 1 met een socket voor een tweede, en de high-end gevallen hebben er gewoon gelijk twee)
Een
TAGram is overigens een kleine SRAM chip die bijhoudt welk deel van het geheugen gecached wordt. Het aantal bits in de tag geeft aan hoeveel gecached kan worden. 8b=64MB. Andere getallen die je vaak tegenkomt zijn 9b (128MB), 10b (256MB) en 11b (512MB) enzovoorts.
Om het nog ingewikkelder te maken heb je twee manieren van cachen,
Write Through (WT) en
Write Back (WB). Het verschil is een beetje te vergelijken met het verschil tussen FP en EDO DRAM, namelijk dat bij WB een schrijfsessie kan beginnen terwijl een leessessie nog bezig is. Dat is iets sneller (al scheelt het in praktijk erg weinig), maar er is wel een extra bit voor nodig om bij te houden wat de toestand van de cache is. Die extra bit heet een
dirty bit.
WB wordt trouwens in servers niet gebruikt, omdat in er in zeer uitzonderlijke gevallen datacorruptie kan ontstaan als de dirty bit in de war komt en het dus niet meer duidelijk is of de data in de cache oud of nieuw is.
Nu hebben Intel chipsets die dirty bit intern in de chipset zitten. Dat betekent dat de hoeveelheid geheugen die Intel chipsets kunnen cachen niet afhangt van de modus, maar dat is bij sommige andere fabrikanten niet het geval. Bij die chipsets wordt een van de bits van de tag geleend als dirty bit. Gevolg daarvan is dat die chipsets in WB modus de helft van het geheugen kunnen cachen vergeleken emt WT.
Volg je het nog?
Om weer ingewikkelder te maken hangt meestal (echter wederom niet bij Intel) de hoeveelheid geheugen die gecached kan worden ook af van de hoeveelheid L2 cache.
Voeg daar tenslotte aan toe dat bij VIA chipsets je de grootte van de L2 cache af moet trekken van de totale cacheable area...
Grof genomen krijg je dan zo'n tabel:
VIA VP, VP2, VP2/97, VPX, VPX/97, VP3 L2 Cacheable Range |
|---|
| L2 Size | | 8-bit Tag 1 modified | 8-bit Tag All modified | 9-bit Tag 1 modified | 10-bit Tag All modified |
|---|
| 512KB | WT | 127.5M | 127.5M | 255.5M | 511.5M |
|---|
| WB | 63.5M | 127.5M | 127.5M | 511.5M |
| 1MB | WT | 255M | 255M | 511M | 1023M |
|---|
| WB | 127M | 255M | 255M | 1023M |
| 2MB | WT | 510M | 510M | 1022M | 2046M |
|---|
| WB | 254M | 510M | 510M | 2046M |
Bron: wederom Chris Hare's chipset specs
Maar als je dacht dat het niet moeilijker kon... dan heb je nog niet de ALi Aladdin V gezien. Die heeft een geweldig interne tag die in vroege revisies defect was, waardoor een externe tag nodig was. Daar kon zowel een 8b als een 10b gebruikt worden. Vervolgens hebben ze in een latere revisie de interne tag werkend gekregen, maar werden soms toch externe TAGs bijgeleverd... uiteindelijk betekent het dat een Aladdin V in het slechtste geval (interne tag defect, 8b extern, 256KB cache) maar 64MB kan cachen, maar in het beste geval (interne tag werkend, met externe 10b tag en 1MB aan cache) een idiote
4GB. Go figure
als je het volledige verhaal wil lezen, zie die link
Belangrijk: dit hele verhaal over cacheable limieten is ALLEEN van toepassing op systemen met L2 cache op het moederbord. Moderne CPUs met L2 cache in de CPU hebben hier geen last van. 
Over een andere mobo, het zou een AT bord moeten zijn. Die wat je aanraadde was ATX. Niet dat ik geen ATX wil, maar ik heb geen spare ATX box.

Maar ik zal het onthouden.
Daar heb je de P5A-B voor
Maar er zijn op
www.2dehands.nl en
www.marktplaats.nl genoeg vergelijkbare te vinden (ik heb naast die P5A ook een minder elegante maar goed functionele baby-AT Shuttle MVP3 plank, zoiets zou voor jou ook zonder meer voldoen)
Trouwens, dit is de eerste keer dat ik meer info krijg over de belangrijkheid van het aantal chips op de modules enzo, hier wil ik graag meer over weten (enige goede site-suggesties?)
Zie die site hierboven en de
BalusC server voor het eerste, cruciale stukje info, namelijk welke chipdichtheden je chipset ondersteunt (dit kan zijn 16Mb, 64Mb, 128Mb, 256Mb of zeer recent ook 512Mb).
Ga vervolgens rekenen (en vergeet niet 1B=8b). Als je een module met bijvoorbeeld 128MB hebt, en 16 chips, dan heb je 8MB per chip, wat dus 8x8=64Mb is. Kan je chipset daarmee overweg? Prima. Zo niet? Pech.
Meer dan 16 chips per reepje is niet mogelijk (althans, niet zonder meer), dus kun je ook gelijk het maximum per reepje berekenen wat je chipset ondersteunt:
16Mb: 16x16Mb=32MB
64Mb: 16x64Mb=128MB
128Mb: 16x128Mb=256MB
256Mb: 16x256Mb=512MB
512Mb: 16x512Mb=1GB
Bij
registered geheugen kun je wel 32 chips per reep hebben, dus verdubbelen deze cijfers. Maar registered geheugen is duur en je mobo moet het ondersteunen (ga iha uit van niet)
Tenslotte is er nog een laatste addertje onder het gras, namelijk de zogenaamde 'x4' chips. Dit slaat op de interne organisatie van een chip. Normale chips hebben 8 of 16 datalijnen ('x8' of 'x16'), maar sommige el-cheapo gevallen hebben er maar 4. Intel chipsets kunnen niet met die 'x4' chips overweg en herkennen maar de helft van het geheugen op zo'n module (typisch geval: je koopt voor je i440BX-based mobo een 256MB reep met 16 chips (zou normaal prima moeten kunnen omdat de BX 128Mb chips ondersteunt), maar er wordt maar 128MB herkend omwille van die incompatibiliteit). Vaak wordt dit geheugen als 'Via only' verkocht, wat nonsens is. ALi, ATi, AMD, nVidia en SiS chipsets kunnen er prima mee overweg- het is gewoon 'non-Intel' geheugen
Dit staat overigens gewoon (iets anders bewoord) in de
RAM FAQ
Als je tenslotte adhv een SIMM of DIMM zelf wil uitlezen wat voor chips erop zitten, kun je het best bij
Plasma-online beginnen en daar 'ID hardware by type' en dan 'RAM chip' kiezen. Mbv plaatjes en schemata kun je dan gaan puzzelen met de getalcodes op die chips. Het lijkt lastig, maar als je een beetje bedreven erin wordt is het geweldig- je kunt zo in grabbeltonnen de kaf (4MB FP SIMMs, of 32MB PC-66 DIMMs

) van het koren (16MB of 32MB SIMMs, al dan niet parity, of grote DIMMs (32MB+)) onderscheiden

Mijn 168-pins geheugenstokjes hebben allemaal 16 chips totaal (doublesided).
Dus 64Mb