CPU/chipset/memory vraagje

Pagina: 1
Acties:
  • 170 views sinds 30-01-2008
  • Reageer

  • EXX
  • Registratie: Juni 2001
  • Laatst online: 09-08 12:52

EXX

EXtended eXchange

Topicstarter
Hetvolgende:

Vroegâh, in de tijd van de 8 bittertjes was het geheugen direct verbonden met de CPU. Als de CPU data uit het geheugen wilde schrijven/lezen, werd eerst het juiste adres op de adresbus gezet en dan via de databus gelezen/geschreven. Was het geheugen niet snel genoeg, moest de CPU gewoon wachten. Memory Management Units werden alleen gebruikt als men meer geheugen nodig had dan wat de CPU zelf kon adresseren (dus om het adresbereik van de CPU te vergroten). Zover ik weet zijn ook de eerste generaties PCs (8088/86 en 80286) zo opgebouwd, gewoon het geheugen direct via de databus aan de CPU.

Toen kwam de chipset. Die werd tussen het geheugen en de CPU gezet. De CPU praat niet meer zelf maar via de chipset met het geheugen. Nu vraag ik me een paar zaakjes af:

* Waarom eigenlijk? Het adresbereik van de huidige CPU's is toch groot genoeg?

* Hoe zit het nou met al die geheugenbandbreedtes en types? RDRAM, DDR SD-RAM, DDR II, enz, enz. Wat betreft de CPU is het duidelijk. Een P4 met 100 MHz QDR FSB (64 bits breed) heeft een throughput van 100*4*64/8 = 3200 MBytes/s en een P2 met 133 MHz FSB 1066 Mbytes/s.Dat is me duidelijk. Dit is dus de bandbreedte tussen chipset en CPU. Dan heb je nog de bandbreedte tussen chipset en geheugen. Dat is ook een kwestie van rekenen: 100 MHz DDR SD-RAM heeft een bandbreedte van 100*2*64/8 = 1600 MBytes/s. Zover ik het begrepen heb benut je de CPU optimaal indien deze bandbreedte groter/gelijk is aan de bandbreedte van de CPU FSB (klinkt ook errug logisch). Maar als dat het geval is, kun je de CPU niet beter direct met het geheugen laten praten, dat scheelt een tussenstap. Heeft dit te maken met het feit dat de CPU architectuur niet "past" op de geheugen-architectuur?

For it is the doom of men that they forget...           Huidige en vroegere hardware specs         The Z80 is still alive!


  • dion_b
  • Registratie: September 2000
  • Laatst online: 01:07

dion_b

Moderator Harde Waren

say Baah

EXX schreef op 03 June 2003 @ 11:39:
Hetvolgende:

Vroegâh, in de tijd van de 8 bittertjes was het geheugen direct verbonden met de CPU. Als de CPU data uit het geheugen wilde schrijven/lezen, werd eerst het juiste adres op de adresbus gezet en dan via de databus gelezen/geschreven. Was het geheugen niet snel genoeg, moest de CPU gewoon wachten. Memory Management Units werden alleen gebruikt als men meer geheugen nodig had dan wat de CPU zelf kon adresseren (dus om het adresbereik van de CPU te vergroten). Zover ik weet zijn ook de eerste generaties PCs (8088/86 en 80286) zo opgebouwd, gewoon het geheugen direct via de databus aan de CPU.

Toen kwam de chipset. Die werd tussen het geheugen en de CPU gezet. De CPU praat niet meer zelf maar via de chipset met het geheugen. Nu vraag ik me een paar zaakjes af:

* Waarom eigenlijk? Het adresbereik van de huidige CPU's is toch groot genoeg?
Ik denk dat je een paar dingen door elkaar haalt. Ook bij oudere CPUs was er een chipset, alleen bestond die vaak niet uit een handjevol multipurpose chips, maar tientallen of zelfs honderden kleine ICs. Samen vervulden die dezelfde functie als de chipset nu.

Een CPU moet met wel meer dan alllen het geheugen communiceren, dus er moet altijd een verkeersleidingssyteem aan te pas komen.

Dat staat helemaal los van hoeveel RAM een CPU moet addresseren. In de minicomputerdagen, toen men al blij was met 64KB RAM te kunnen addresseren hadden compuers zelfs een hele PCB voor de memory controller.
* Hoe zit het nou met al die geheugenbandbreedtes en types? RDRAM, DDR SD-RAM, DDR II, enz, enz. Wat betreft de CPU is het duidelijk. Een P4 met 100 MHz QDR FSB (64 bits breed) heeft een throughput van 100*4*64/8 = 3200 MBytes/s en een P2 met 133 MHz FSB 1066 Mbytes/s.Dat is me duidelijk. Dit is dus de bandbreedte tussen chipset en CPU. Dan heb je nog de bandbreedte tussen chipset en geheugen. Dat is ook een kwestie van rekenen: 100 MHz DDR SD-RAM heeft een bandbreedte van 100*2*64/8 = 1600 MBytes/s. Zover ik het begrepen heb benut je de CPU optimaal indien deze bandbreedte groter/gelijk is aan de bandbreedte van de CPU FSB (klinkt ook errug logisch).
Klopt als een deur en staat ook in de RAM FAQ :z
Maar als dat het geval is, kun je de CPU niet beter direct met het geheugen laten praten, dat scheelt een tussenstap. Heeft dit te maken met het feit dat de CPU architectuur niet "past" op de geheugen-architectuur?
Dat laatste is net (her)ingevoerd bij Opteron CPUs (en zal ook dit jaar nog met de Athlon64 de desktop bereiken)- in de CPU geintegreerde memory controllers. Dit gaat idd de latency verlagen door een paar stappen uit het geheel te halen. Waarom dit niet eerder gebeurd is heeft twee redenen:

- modulariteit. Door de mem controller op de CPU te integreren leg je je vast op een enkele type geheugen op die CPU. Dat kan het moeilijker maken om je platform aan de wensen van de markt en de laatste ontwikkelingen aan te passen- vandaar dat je dit tot kort alleen op dure serverCPUs zag.
- complexiteit. Een mem controller maakt een CPU nog groter en complexer, dus duurder.

Oslik blyat! Oslik!


Verwijderd

EXX schreef op 03 June 2003 @ 11:39:
Toen kwam de chipset. Die werd tussen het geheugen en de CPU gezet. De CPU praat niet meer zelf maar via de chipset met het geheugen. Nu vraag ik me een paar zaakjes af:

* Waarom eigenlijk? Het adresbereik van de huidige CPU's is toch groot genoeg?
Een paar redenen kan ik zo wel verzinnen.

1) DRAM refresh. Eigenlijk al vanaf genoemde 8-bitters is er D(ynamic) RAM toegepast als geheugen. Het is goedkoper als S(tatic) RAM, en er passen meer geheugenlocaties op een chip, maar hebben een probleem. De cellen zijn gebouwd met condensatoren, en die lopen langzaam leeg. Periodiek hebben de DRAM geheugens een oppepper nodig om de condensatoren weer op te laden. In mijn 8-bitter uit 1977 is dat de hoofdfunctie van de memory controller.

2) DMA (of direct memory access). De processor is niet de enige die geheugen aan kan spreken. I/O chips kunnen dat van oudsher ook. Moderne memory controllers leiden dit gelijktijdig gebruik in goede banen. Mijn oude Z80 machine had een simpeler oplossing. Daar trok een I/O chip een request line van de Z80 laag, koppelde zo de processor van het geheugen, en pleegde zelf geheugentoegang. Nogal een inefficient toegangsbeheer.

3) Complexiteit van geheugenmodule opbouw. Wederom, in de oude Z80 werden simpele geheigenchips gebruikt, met daarvoor een demultiplexer chip (gekoppeld aan de hoogste adreslijnen) om een chipselect signaal te genereren. Moderne geheugemodules vereisen een veel ingewikkelder timing/aansturing, en die wil je niet langer in de processor chip hebben.

4) Integratie. Moderne chipsets bevatten in 1 enkele chip functies die in het 8-bitter tijdperk (en zelfs in de eerste PC's) door tientallen separate I/O chips werden afgehandeld. Zaken als DMA controller, PIO (parallel), SIO (serieel), CTC (timer functies), en PIC (interrupt controller). Moderne chipsets bevatten zelfs functie die in mijn eerste PC/XT zelfs door complete I/O insteekkaarten werden afgewikkeld (floppy controller, harddisk controller, etc). De folppy 'controller' van mi'n oude Z80 micro was zelfs een complete computer op zichzelf, met z'n eigen Z80 !

5) Signaalsterkte van data en adreslijnen. Heel vroeger (een ZX-80/ZX-81/ZX-Spectrum) waren de systeempjes klein genoeg en een Z80 robuust genoeg om de processor de adres en databussen rechstreeks te laten aansturen. Tegenwoordig (door hogere snelheden, verlaagde voltages, meer componenten, gebruik insteekkaarten, etc), bezitten processoren dat vermogen niet meer. De memory controller afdeling van de chipset versterkt de signalen van de processor.

6) Asynchrone aansturing. Door buffering in de memory controller in te bouwen kan de processor in een ander (meestal hoger) tempo data overdragen dan de dataoverdracht tussen controller en geheugenmodules. Mits optimaal werken verlaagd dit de tijd dat processor op geheugentoegang moet wachten, en dit verbetert de prestaties.

[ Voor 3% gewijzigd door Verwijderd op 03-06-2003 16:12 ]


  • EXX
  • Registratie: Juni 2001
  • Laatst online: 09-08 12:52

EXX

EXtended eXchange

Topicstarter
Verwijderd schreef op 03 June 2003 @ 16:08:
[...]

Een paar redenen kan ik zo wel verzinnen.

1) DRAM refresh. Eigenlijk al vanaf genoemde 8-bitters is er D(ynamic) RAM toegepast als geheugen. Het is goedkoper als S(tatic) RAM, en er passen meer geheugenlocaties op een chip, maar hebben een probleem. De cellen zijn gebouwd met condensatoren, en die lopen langzaam leeg. Periodiek hebben de DRAM geheugens een oppepper nodig om de condensatoren weer op te laden. In mijn 8-bitter uit 1977 is dat de hoofdfunctie van de memory controller.
Ok, dat snap ik. Refresh kon vroeger trouwens door sommige CPU's zelf uitgevoerd worden.
2) DMA (of direct memory access). De processor is niet de enige die geheugen aan kan spreken. I/O chips kunnen dat van oudsher ook. Moderne memory controllers leiden dit gelijktijdig gebruik in goede banen. Mijn oude Z80 machine had een simpeler oplossing. Daar trok een I/O chip een request line van de Z80 laag, koppelde zo de processor van het geheugen, en pleegde zelf geheugentoegang. Nogal een inefficient toegangsbeheer.
Da een goeie, daar had ik nog helemaal niet aan gedacht. Bij de Z80 werd gewoon de BUSREQ actief gemaakt en de CPU gooide zichzelf van de bus zolang de DMA duurde. Dan is een chipset die verkeersagent speelt tussen CPU en DMA een stuk efficienter
3) Complexiteit van geheugenmodule opbouw. Wederom, in de oude Z80 werden simpele geheigenchips gebruikt, met daarvoor een demultiplexer chip (gekoppeld aan de hoogste adreslijnen) om een chipselect signaal te genereren. Moderne geheugemodules vereisen een veel ingewikkelder timing/aansturing, en die wil je niet langer in de processor chip hebben.
Ook duidelijk.
4) Integratie. Moderne chipsets bevatten in 1 enkele chip functies die in het 8-bitter tijdperk (en zelfs in de eerste PC's) door tientallen separate I/O chips werden afgehandeld. Zaken als DMA controller, PIO (parallel), SIO (serieel), CTC (timer functies), en PIC (interrupt controller). Moderne chipsets bevatten zelfs functie die in mijn eerste PC/XT zelfs door complete I/O insteekkaarten werden afgewikkeld (floppy controller, harddisk controller, etc). De folppy 'controller' van mi'n oude Z80 micro was zelfs een complete computer op zichzelf, met z'n eigen Z80 !
Integratie is natuurlijk mooi, het scheelt een hoop hardware. Maar het integreren van een hoop I/O functies in 1 chip staat op zich buiten de CPU/memory communicatie, muv DAM natuurlijk. En DMA is natuurlijk iets dat veel meer gebruikt wordt (en veel sneller geworden is) dan in the old days.
5) Signaalsterkte van data en adreslijnen. Heel vroeger (een ZX-80/ZX-81/ZX-Spectrum) waren de systeempjes klein genoeg en een Z80 robuust genoeg om de processor de adres en databussen rechstreeks te laten aansturen. Tegenwoordig (door hogere snelheden, verlaagde voltages, meer componenten, gebruik insteekkaarten, etc), bezitten processoren dat vermogen niet meer. De memory controller afdeling van de chipset versterkt de signalen van de processor.
Dat van die signaal sterkte had je vroeger ook al, daarvoor gebruikte je van die 74HCT... bus driver IC's. Dan was in een catastrofegeval (bv een kortsluiting op de bus) je CPU ook beschermd. Door deze buffers/bus drivers in de chipset te proppen ben je dus weer een paar componenten kwijt.
6) Asynchrone aansturing. Door buffering in de memory controller in te bouwen kan de processor in een ander (meestal hoger) tempo data overdragen dan de dataoverdracht tussen controller en geheugenmodules. Mits optimaal werken verlaagd dit de tijd dat processor op geheugentoegang moet wachten, en dit verbetert de prestaties.
Dit vind het een erg interessant punt. De CPU praat met de chipset via de FSB, gebruik makend van een bepaald protocol. De chipset praat dan weer met het geheugen. Maar dat kan dus een compleet ander protocol zijn, afhankelijk van het soort geheugen (RDRAM, DDR SDRAM, single of dual etc.). De chipset zorgt er dus voor dat beide dingen op elkaar "passen". Zodoende heb je dus ook een chipset voor elke soort RAM. Zou je dus kunnen zeggen dat bv. de i850 en de i845 chipset aan de CPU kant identiek zijn, maar aan de geheugenkant aangepast aan RDRAM resp. SD-RAM aansturing?

For it is the doom of men that they forget...           Huidige en vroegere hardware specs         The Z80 is still alive!


  • Abbadon
  • Registratie: Februari 2000
  • Laatst online: 16-08 23:05
EXX schreef op 04 juni 2003 @ 09:55:
Zou je dus kunnen zeggen dat bv. de i850 en de i845 chipset aan de CPU kant identiek zijn, maar aan de geheugenkant aangepast aan RDRAM resp. SD-RAM aansturing?
Ja, althans wat betreft het cpu kant gedeelte, daar zijn ze identiek omdat ze daar het AGTL+ protocol gebruiken. Ook niet vreemd natuurlijk want elke P4 moet met elke P4 chipset kunnen werken :)

Just pick a dead end and chill out 'till you die.


  • EXX
  • Registratie: Juni 2001
  • Laatst online: 09-08 12:52

EXX

EXtended eXchange

Topicstarter
Ok, das duidelijk. P4 <-> Chipset is dus AGTL+, chipset <-> memory is dus afhankelijk van het type geheugen. Wat voor een verschil kan daar nog inzitten bij de verschillende types geheugen (afgezien van de bandbreedte natuurlijk); is bv. het RDRAM protocol trager dan DDR-SDRAM of omgekeerd.

Kijk, bij de PII/P!!! was het simpel: die draaide op 66,100 of 133 MHz FSB en het geheugen op de bijbehorende snelheid 1van 66,100 of 133 MHz. Bovendien had je maar 1 type: SDRAM (even afgezien van de i820 met RDRAM; toen loeiduur en IIRC liep de P!!! geen meter sneller met RDRAM). Maar met de P4 is dat anders. Daar heb je RDRAM, SDRAM, DDR SDRAM en wat nog allemaal.

For it is the doom of men that they forget...           Huidige en vroegere hardware specs         The Z80 is still alive!


  • YoupY
  • Registratie: Oktober 2002
  • Laatst online: 08-06-2024
Het wordt geloof ik weer opnieuw toegepast in de Opteron. Die heeft een on-board geheugencontroller, waardoor 't geheugen weer direct aan de proc vast zit. Is erg leuk voor de FSB >:)

[ Voor 4% gewijzigd door YoupY op 05-06-2003 22:57 ]


  • dion_b
  • Registratie: September 2000
  • Laatst online: 01:07

dion_b

Moderator Harde Waren

say Baah

EXX schreef op 05 juni 2003 @ 09:28:
Ok, das duidelijk. P4 <-> Chipset is dus AGTL+, chipset <-> memory is dus afhankelijk van het type geheugen. Wat voor een verschil kan daar nog inzitten bij de verschillende types geheugen (afgezien van de bandbreedte natuurlijk); is bv. het RDRAM protocol trager dan DDR-SDRAM of omgekeerd.
Wat heet trager :?

Het zijn totaal verschillende protocollen. RDRAM is gebaseerd op een zeer snelle seriele verbinding (400-600MHz maar 16b per kanaal), terwijl SDRAM veel trager is (66-200MHz) maar wel een veel bredere parallelle datapad heeft (64b per kanaal). Qua bandbreedte kunnen twee RDRAM kanalen een enkele SDRAM kanaal verslaan (4800MB/s voor 2x PC1200 tov 3200MB/s voor PC3200), maar SDRAM heeft lagere latencies.
Kijk, bij de PII/P!!! was het simpel: die draaide op 66,100 of 133 MHz FSB en het geheugen op de bijbehorende snelheid 1van 66,100 of 133 MHz. Bovendien had je maar 1 type: SDRAM (even afgezien van de i820 met RDRAM; toen loeiduur en IIRC liep de P!!! geen meter sneller met RDRAM). Maar met de P4 is dat anders. Daar heb je RDRAM, SDRAM, DDR SDRAM en wat nog allemaal.
Jij stelt de P2/P3 te simpel :o

Om te beginnen was de eerste P2 chipset, de i440FX, EDO only. Pas met de introductie van de i440LX werd SDRAM gebruikt voor de P2. Verder heeft iedere chipsetfabrikant asynchrone chipsets ontworpen. Intel staat dan wel bekend voor de altijd synchrone LX/EX/ZX/BX/GX reeks, maar pakweg de i810 maakt het wel erg bont- de FSB kan 66, 100 of 133MHz zijn, maar de RAM draait altijd op 100MHz :o
Via is altijd de meester van de asynch geheugen geweest, en vanaf de ApolloPro+ kon FSB+33MHz gekozen worden voor P2/Celly met 66MHz FSB.
ALi kwam met een echte rariteit- de Aladdin 7 (OK, een So7 chipset, maar dan wel eentje uit 1999) had een interleaved SDRAM controller. Dat betekend dat het twee DIMMs tussen elkaar door addresseerde wat theoretisch een forse performanceboost geeft. Tot dan was het gezien in Serverworks chipsets en de FP/EDO Powermacs, maar dit was een low-end integrated VGA chipset die de bandbreedtebehoefte van de VGA core zo probeerde op te vangen.
Er was trouwens ook een tweede P3 RDRAM chipset, de i840 dual channel RDRAM chipset. Ongelofelijk duur (net als de RDRAM destijds), maar het was wel nipt de snelste P3 chipset overall (al kon het door een BX die naar 133MHz geOCd was wel overtroffen worden)
Tenslotte zijn er nog een aantal P3 DDR chipsets gemaakt (de Via ApolloPro266 en de SiS 635 (en mogelijk nog een Ali geval, maar die is in het wild niet gesignaleerd).

DDR en RDRAM gaven bij P3 geen winst omdat hun grotere bandbreedte eenvoudigweg niet benut kon worden door de vrij smalle FSB die eigenlijk nog terug ging op het PPro ontwerp uit 1995.

Maar eigenlijk is het verhaal van de P2/P3 hetzelfde als bij de P4- de northbridge heeft een bepaalde behoefte aan bandbreedte; idealiter wil je minstens die bandbreedte leveren tegen minmale latencies. Interleaven en synchroon draaien verlaagt latencies (daarom ook dat de dual channel i840 sneller was dan de i820, ondanks dat de i820 al ruim meer bandbreedte kon leveren dan de P3 kon verwerken). Asynch draaien en seriele technologien verhogen dan weer de latencies. Het is aan de chipsetfabrikanten (en ten dele de gebruiker) om die factoren af te wegen om de beste CPU en mem combo te geven :z

Oslik blyat! Oslik!


Verwijderd

De Cyrix MediaXP (correctie: MediaGX of Gx86) processor was nog zo'n CPU met geintregeerde zooi (geheugencontroller, geluidsprocessor, videoprocessor + CPU inéén). De slechte performance tov AMD/Intel, de slechte upgradebaarheid (wat als je een andere video/geluidskaart wilde? of een snellere CPU?) en het feit dat deze CPU meestal werden vastgesoldeerd op het mobo was een doodlopende straat voor veel van deze systemen.
Compaq heeft er toen iig een hoop van verkocht in zwarte desktop uitvoering met ingebouwde CD-speler, Floppydrive en Boxen....!

(ik heb nog zo'n oorspronkelijk gesoldeerde Cyrix Gx86 liggen, de GX-133BP GBKD8702A. Hij heeft 3.6Volt nodig en is geproduceerd door Cyrix in 1996 in Canada - hij zat in een zwarte Compaq Presario 2110 Series 3296 - de vorige eigenaar had hem als een dolle koe met koelvoet en al van het moederbord losgerukt - de performance was imo als een 486DLC te vergelijken).

M'n socket7 VIA kan iig ook memory interleaving aan, dus dat is niet voorbehouden aan Aladdin7 op het socket7 platform (de Via is trouwens sneller en kan meer geheugen cachen heb ik ondervonden: ik heb beiden gehad...)

[ Voor 36% gewijzigd door Verwijderd op 06-06-2003 16:45 ]


  • dion_b
  • Registratie: September 2000
  • Laatst online: 01:07

dion_b

Moderator Harde Waren

say Baah

Verwijderd schreef op 06 juni 2003 @ 05:25:
De Cyrix MediaXP processor was nog zo'n CPU met geintregeerde zooi (geheugencontroller, geluidsprocessor, videoprocessor + CPU inéén). De slechte performance tov AMD/Intel, de slechte upgradebaarheid (wat als je een andere video/geluidskaart wilde? of een snellere CPU?) en het feit dat deze CPU meestal werden vastgesoldeerd op het mobo was een doodlopende straat voor veel van deze systemen.
Compaq heeft er toen iig een hoop van verkocht in zwarte desktop uitvoering met ingebouwde CD-speler, Floppydrive en Boxen....!
MediaGX heetten die dingen :z

Ze waren overigens niet altijd vastgesoldeerd op het mobo (maarja, je kon alleen upgraden met een andere MediaGX en de keuze daarin was niet bepaald overdonderend :+ ) - er waren zelfs een paar mobo's met MediaGX CPU die niet gebruik maakten van de onboard VGA en sound 8)7

* dion_b heeft een Cyrix 586GX moederbord die in die laatste categorie valt :+
M'n socket7 VIA kan iig ook memory interleaving aan, dus dat is niet voorbehouden aan Aladdin7 op het socket7 platform.
Dat is een andere soort interleaving, namelijk tussen de banks op de individuele modules. Bij de Aladdin7 ging het om interleaving tussen de verschillende modules.

Oslik blyat! Oslik!

Pagina: 1