Digitale en analoge technieken Peter Slaets February 14, 2006 Peter Slaets () Digitale en analoge technieken February 14, 2006 1 / 33
Computerarchitectuur 1 Processors 2 Primair geheugen 3 Secundair geheugen 4 Input/Output Peter Slaets () Digitale en analoge technieken February 14, 2006 2 / 33
Inleiding Basis: CPU + bus CPU: besturingseenheid, ALU, registers (programma teller, instructieregister,... ) Peter Slaets () Digitale en analoge technieken February 14, 2006 3 / 33
Inleiding Basis: CPU + bus CPU: besturingseenheid, ALU, registers (programma teller, instructieregister,... ) Peter Slaets () Digitale en analoge technieken February 14, 2006 3 / 33
Organisatie Basis: Von Neumann-CPU datapad = registers, ALU, bussen datapadcyclus via register-geheugeninstructies of register-register instructies Peter Slaets () Digitale en analoge technieken February 14, 2006 4 / 33
Organisatie Basis: Von Neumann-CPU datapad = registers, ALU, bussen datapadcyclus via register-geheugeninstructies of register-register instructies Peter Slaets () Digitale en analoge technieken February 14, 2006 4 / 33
Organisatie Basis: Von Neumann-CPU datapad = registers, ALU, bussen datapadcyclus via register-geheugeninstructies of register-register instructies Peter Slaets () Digitale en analoge technieken February 14, 2006 4 / 33
Uitvoeren van een instructie 1 haal volgende instructie uit instructiegeheugen (register) 2 verander programmateller 3 bepaal type opgehaalde instructie 4 bepaal positie nodige woorden in register + haal woord binnen (extern) 5 voer instructie uit 6 herhaal voor volgende instructie Peter Slaets () Digitale en analoge technieken February 14, 2006 5 / 33
Uitvoeren van een instructie 1 haal volgende instructie uit instructiegeheugen (register) 2 verander programmateller 3 bepaal type opgehaalde instructie 4 bepaal positie nodige woorden in register + haal woord binnen (extern) 5 voer instructie uit 6 herhaal voor volgende instructie Peter Slaets () Digitale en analoge technieken February 14, 2006 5 / 33
Uitvoeren van een instructie 1 haal volgende instructie uit instructiegeheugen (register) 2 verander programmateller 3 bepaal type opgehaalde instructie 4 bepaal positie nodige woorden in register + haal woord binnen (extern) 5 voer instructie uit 6 herhaal voor volgende instructie Peter Slaets () Digitale en analoge technieken February 14, 2006 5 / 33
Uitvoeren van een instructie 1 haal volgende instructie uit instructiegeheugen (register) 2 verander programmateller 3 bepaal type opgehaalde instructie 4 bepaal positie nodige woorden in register + haal woord binnen (extern) 5 voer instructie uit 6 herhaal voor volgende instructie Peter Slaets () Digitale en analoge technieken February 14, 2006 5 / 33
Uitvoeren van een instructie 1 haal volgende instructie uit instructiegeheugen (register) 2 verander programmateller 3 bepaal type opgehaalde instructie 4 bepaal positie nodige woorden in register + haal woord binnen (extern) 5 voer instructie uit 6 herhaal voor volgende instructie Peter Slaets () Digitale en analoge technieken February 14, 2006 5 / 33
Uitvoeren van een instructie 1 haal volgende instructie uit instructiegeheugen (register) 2 verander programmateller 3 bepaal type opgehaalde instructie 4 bepaal positie nodige woorden in register + haal woord binnen (extern) 5 voer instructie uit 6 herhaal voor volgende instructie Peter Slaets () Digitale en analoge technieken February 14, 2006 5 / 33
Uitvoeren van een instructie: interpeter vs. vertaler (compiler) interpreter vertaalt code (Jave) lijn per lijn naar een andere taal (assembler) en voert deze code lijn per lijn uit hardware (duur, maar snel) door software vervangen!!! foute instructies corrigeren nieuwe instructies toevoegen efficienter testen en documenteren Voorbeeld: vertaal assembler naar digitaal niveau = microcode in ROM compiler vertaalt heel de code ineens en heeft geen vertaalstap meer nodig tijdens het uitvoeren Peter Slaets () Digitale en analoge technieken February 14, 2006 6 / 33
Uitvoeren van een instructie: interpeter vs. vertaler (compiler) interpreter vertaalt code (Jave) lijn per lijn naar een andere taal (assembler) en voert deze code lijn per lijn uit hardware (duur, maar snel) door software vervangen!!! foute instructies corrigeren nieuwe instructies toevoegen efficienter testen en documenteren Voorbeeld: vertaal assembler naar digitaal niveau = microcode in ROM compiler vertaalt heel de code ineens en heeft geen vertaalstap meer nodig tijdens het uitvoeren Peter Slaets () Digitale en analoge technieken February 14, 2006 6 / 33
Uitvoeren van een instructie: interpeter vs. vertaler (compiler) interpreter vertaalt code (Jave) lijn per lijn naar een andere taal (assembler) en voert deze code lijn per lijn uit hardware (duur, maar snel) door software vervangen!!! foute instructies corrigeren nieuwe instructies toevoegen efficienter testen en documenteren Voorbeeld: vertaal assembler naar digitaal niveau = microcode in ROM compiler vertaalt heel de code ineens en heeft geen vertaalstap meer nodig tijdens het uitvoeren Peter Slaets () Digitale en analoge technieken February 14, 2006 6 / 33
Uitvoeren van een instructie: interpeter vs. vertaler (compiler) interpreter vertaalt code (Jave) lijn per lijn naar een andere taal (assembler) en voert deze code lijn per lijn uit hardware (duur, maar snel) door software vervangen!!! foute instructies corrigeren nieuwe instructies toevoegen efficienter testen en documenteren Voorbeeld: vertaal assembler naar digitaal niveau = microcode in ROM compiler vertaalt heel de code ineens en heeft geen vertaalstap meer nodig tijdens het uitvoeren Peter Slaets () Digitale en analoge technieken February 14, 2006 6 / 33
Uitvoeren van een instructie: interpeter vs. vertaler (compiler) interpreter vertaalt code (Jave) lijn per lijn naar een andere taal (assembler) en voert deze code lijn per lijn uit hardware (duur, maar snel) door software vervangen!!! foute instructies corrigeren nieuwe instructies toevoegen efficienter testen en documenteren Voorbeeld: vertaal assembler naar digitaal niveau = microcode in ROM compiler vertaalt heel de code ineens en heeft geen vertaalstap meer nodig tijdens het uitvoeren Peter Slaets () Digitale en analoge technieken February 14, 2006 6 / 33
Uitvoeren van een instructie: interpeter vs. vertaler (compiler) interpreter vertaalt code (Jave) lijn per lijn naar een andere taal (assembler) en voert deze code lijn per lijn uit hardware (duur, maar snel) door software vervangen!!! foute instructies corrigeren nieuwe instructies toevoegen efficienter testen en documenteren Voorbeeld: vertaal assembler naar digitaal niveau = microcode in ROM compiler vertaalt heel de code ineens en heeft geen vertaalstap meer nodig tijdens het uitvoeren Peter Slaets () Digitale en analoge technieken February 14, 2006 6 / 33
Uitvoeren van een instructie: interpeter vs. vertaler (compiler) interpreter vertaalt code (Jave) lijn per lijn naar een andere taal (assembler) en voert deze code lijn per lijn uit hardware (duur, maar snel) door software vervangen!!! foute instructies corrigeren nieuwe instructies toevoegen efficienter testen en documenteren Voorbeeld: vertaal assembler naar digitaal niveau = microcode in ROM compiler vertaalt heel de code ineens en heeft geen vertaalstap meer nodig tijdens het uitvoeren Peter Slaets () Digitale en analoge technieken February 14, 2006 6 / 33
RISC vs. CISC RISC=Reduced Instruction Set Computer eenvoudige, supersnelle CPU met decodering in hardware. Kent weinig bevelen! Een bevel per klokcyclus! CISC=Complex Instruction Set Computer Kent heel veel bevelen, waardoor de decodering in software (microcode) moet gebeuren, dus trager! Besluit: Een RISC CPU moet wel meerdere bevelen uitvoeren om het equivalent van 1 CISC bevel te realiseren. Toch beter dan CISC. Peter Slaets () Digitale en analoge technieken February 14, 2006 7 / 33
RISC vs. CISC RISC=Reduced Instruction Set Computer eenvoudige, supersnelle CPU met decodering in hardware. Kent weinig bevelen! Een bevel per klokcyclus! CISC=Complex Instruction Set Computer Kent heel veel bevelen, waardoor de decodering in software (microcode) moet gebeuren, dus trager! Besluit: Een RISC CPU moet wel meerdere bevelen uitvoeren om het equivalent van 1 CISC bevel te realiseren. Toch beter dan CISC. Peter Slaets () Digitale en analoge technieken February 14, 2006 7 / 33
RISC vs. CISC RISC=Reduced Instruction Set Computer eenvoudige, supersnelle CPU met decodering in hardware. Kent weinig bevelen! Een bevel per klokcyclus! CISC=Complex Instruction Set Computer Kent heel veel bevelen, waardoor de decodering in software (microcode) moet gebeuren, dus trager! Besluit: Een RISC CPU moet wel meerdere bevelen uitvoeren om het equivalent van 1 CISC bevel te realiseren. Toch beter dan CISC. Peter Slaets () Digitale en analoge technieken February 14, 2006 7 / 33
Vuistregels RISC standaard voor general purpose CPU s Zoveel mogelijk instructies rechtstreeks in hardware uitvoeren Zoveel mogelijk instucties per seconden starten (MIPS) door parallellisme LOAD en STORE hebben toegang tot geheugen want kan lang duren andere instructies tegelijkertijd uitvoeren Voldoende register voorzien want geheugen is traag!!! Peter Slaets () Digitale en analoge technieken February 14, 2006 8 / 33
Vuistregels RISC standaard voor general purpose CPU s Zoveel mogelijk instructies rechtstreeks in hardware uitvoeren Zoveel mogelijk instucties per seconden starten (MIPS) door parallellisme LOAD en STORE hebben toegang tot geheugen want kan lang duren andere instructies tegelijkertijd uitvoeren Voldoende register voorzien want geheugen is traag!!! Peter Slaets () Digitale en analoge technieken February 14, 2006 8 / 33
Vuistregels RISC standaard voor general purpose CPU s Zoveel mogelijk instructies rechtstreeks in hardware uitvoeren Zoveel mogelijk instucties per seconden starten (MIPS) door parallellisme LOAD en STORE hebben toegang tot geheugen want kan lang duren andere instructies tegelijkertijd uitvoeren Voldoende register voorzien want geheugen is traag!!! Peter Slaets () Digitale en analoge technieken February 14, 2006 8 / 33
Vuistregels RISC standaard voor general purpose CPU s Zoveel mogelijk instructies rechtstreeks in hardware uitvoeren Zoveel mogelijk instucties per seconden starten (MIPS) door parallellisme LOAD en STORE hebben toegang tot geheugen want kan lang duren andere instructies tegelijkertijd uitvoeren Voldoende register voorzien want geheugen is traag!!! Peter Slaets () Digitale en analoge technieken February 14, 2006 8 / 33
Vuistregels RISC standaard voor general purpose CPU s Zoveel mogelijk instructies rechtstreeks in hardware uitvoeren Zoveel mogelijk instucties per seconden starten (MIPS) door parallellisme LOAD en STORE hebben toegang tot geheugen want kan lang duren andere instructies tegelijkertijd uitvoeren Voldoende register voorzien want geheugen is traag!!! Peter Slaets () Digitale en analoge technieken February 14, 2006 8 / 33
Parallellisme Doel? chips sneller maken Hoe? Kloksnelheid verhogen = begrensd Parallelisme: op instructiesetniveau en processorniveau Peter Slaets () Digitale en analoge technieken February 14, 2006 9 / 33
Parallellisme Doel? chips sneller maken Hoe? Kloksnelheid verhogen = begrensd Parallelisme: op instructiesetniveau en processorniveau Peter Slaets () Digitale en analoge technieken February 14, 2006 9 / 33
Parallellisme Doel? chips sneller maken Hoe? Kloksnelheid verhogen = begrensd Parallelisme: op instructiesetniveau en processorniveau Peter Slaets () Digitale en analoge technieken February 14, 2006 9 / 33
Parallellisme Doel? chips sneller maken Hoe? Kloksnelheid verhogen = begrensd Parallelisme: op instructiesetniveau en processorniveau Peter Slaets () Digitale en analoge technieken February 14, 2006 9 / 33
Parallellisme op instructieniveau: pipelining Probleem? instructies uit geheugen halen kost tijd! Oplossing: op voorhand eruit halen via prefetch-buffer Gevolg: uitvoeren opgeslitst in 2 delen = ophalen en invoering Pipelining = uitvoeren opsplitsen in 5 stadia Trade-off van wachttijd (nt) vs.processorbandbreedte (MIPS) Peter Slaets () Digitale en analoge technieken February 14, 2006 10 / 33
Parallellisme op instructieniveau: pipelining Probleem? instructies uit geheugen halen kost tijd! Oplossing: op voorhand eruit halen via prefetch-buffer Gevolg: uitvoeren opgeslitst in 2 delen = ophalen en invoering Pipelining = uitvoeren opsplitsen in 5 stadia Trade-off van wachttijd (nt) vs.processorbandbreedte (MIPS) Peter Slaets () Digitale en analoge technieken February 14, 2006 10 / 33
Parallellisme op instructieniveau: pipelining Probleem? instructies uit geheugen halen kost tijd! Oplossing: op voorhand eruit halen via prefetch-buffer Gevolg: uitvoeren opgeslitst in 2 delen = ophalen en invoering Pipelining = uitvoeren opsplitsen in 5 stadia Trade-off van wachttijd (nt) vs.processorbandbreedte (MIPS) Peter Slaets () Digitale en analoge technieken February 14, 2006 10 / 33
Parallellisme op instructieniveau: pipelining Probleem? instructies uit geheugen halen kost tijd! Oplossing: op voorhand eruit halen via prefetch-buffer Gevolg: uitvoeren opgeslitst in 2 delen = ophalen en invoering Pipelining = uitvoeren opsplitsen in 5 stadia Trade-off van wachttijd (nt) vs.processorbandbreedte (MIPS) Peter Slaets () Digitale en analoge technieken February 14, 2006 10 / 33
Parallellisme op instructieniveau: pipelining Probleem? instructies uit geheugen halen kost tijd! Oplossing: op voorhand eruit halen via prefetch-buffer Gevolg: uitvoeren opgeslitst in 2 delen = ophalen en invoering Pipelining = uitvoeren opsplitsen in 5 stadia Trade-off van wachttijd (nt) vs.processorbandbreedte (MIPS) Peter Slaets () Digitale en analoge technieken February 14, 2006 10 / 33
Parallellisme op instructieniveau: superscalair Twee pipelines Mogen niet in conflict geraken over (registers, afhankelijkheid,... ) Detectie conficten via compiler of hardware Intel 80486 1 pipeline, Pentium 2 pipelines (u en v) Peter Slaets () Digitale en analoge technieken February 14, 2006 11 / 33
Parallellisme op instructieniveau: superscalair Twee pipelines Mogen niet in conflict geraken over (registers, afhankelijkheid,... ) Detectie conficten via compiler of hardware Intel 80486 1 pipeline, Pentium 2 pipelines (u en v) Peter Slaets () Digitale en analoge technieken February 14, 2006 11 / 33
Parallellisme op instructieniveau: superscalair Twee pipelines Mogen niet in conflict geraken over (registers, afhankelijkheid,... ) Detectie conficten via compiler of hardware Intel 80486 1 pipeline, Pentium 2 pipelines (u en v) Peter Slaets () Digitale en analoge technieken February 14, 2006 11 / 33
Parallellisme op instructieniveau: superscalair Twee pipelines Mogen niet in conflict geraken over (registers, afhankelijkheid,... ) Detectie conficten via compiler of hardware Intel 80486 1 pipeline, Pentium 2 pipelines (u en v) Peter Slaets () Digitale en analoge technieken February 14, 2006 11 / 33
Parallellisme op instructieniveau: superscalair Een pipelines maar meerdere functionale eenheden (pentium II) doorgeeffrequentie veel hoger dan uitvoerfrequentie Peter Slaets () Digitale en analoge technieken February 14, 2006 12 / 33
Parallellisme op instructieniveau: superscalair Een pipelines maar meerdere functionale eenheden (pentium II) doorgeeffrequentie veel hoger dan uitvoerfrequentie Peter Slaets () Digitale en analoge technieken February 14, 2006 12 / 33
Parallellisme op processorniveau: array en vector Parallellisme op instructieniveau geeft factor 5-10 winst Parallellisme op processorniveau geeft factor 50-100 winst Arraycomputers (SIMD =Single Instruction-stream Multiple Data-stream, pentium 4) en vectorprocessor (pipelining van ALU) Peter Slaets () Digitale en analoge technieken February 14, 2006 13 / 33
Parallellisme op processorniveau: array en vector Parallellisme op instructieniveau geeft factor 5-10 winst Parallellisme op processorniveau geeft factor 50-100 winst Arraycomputers (SIMD =Single Instruction-stream Multiple Data-stream, pentium 4) en vectorprocessor (pipelining van ALU) Peter Slaets () Digitale en analoge technieken February 14, 2006 13 / 33
Parallellisme op processorniveau: array en vector Parallellisme op instructieniveau geeft factor 5-10 winst Parallellisme op processorniveau geeft factor 50-100 winst Arraycomputers (SIMD =Single Instruction-stream Multiple Data-stream, pentium 4) en vectorprocessor (pipelining van ALU) Peter Slaets () Digitale en analoge technieken February 14, 2006 13 / 33
Parallellisme op processorniveau: multiprocessor meerdere CPU s en een gemeenschappelijk geheugen meerdere CPU s met lokaal geheugen en een gemeenschappelijk geheugen = tightly coupled Peter Slaets () Digitale en analoge technieken February 14, 2006 14 / 33
Parallellisme op processorniveau: multiprocessor meerdere CPU s en een gemeenschappelijk geheugen meerdere CPU s met lokaal geheugen en een gemeenschappelijk geheugen = tightly coupled Peter Slaets () Digitale en analoge technieken February 14, 2006 14 / 33
Parallellisme op processorniveau: multicomputer multiprocessor moeilijk voor 256 door verbinding met gemeenschappelijk geheugen multicomputer geen gemeenschappelijk geheugen = loosely coupled Peter Slaets () Digitale en analoge technieken February 14, 2006 15 / 33
Parallellisme op processorniveau: multicomputer multiprocessor moeilijk voor 256 door verbinding met gemeenschappelijk geheugen multicomputer geen gemeenschappelijk geheugen = loosely coupled Peter Slaets () Digitale en analoge technieken February 14, 2006 15 / 33
Computerarchitectuur 1 Processors 2 Primair geheugen 3 Secundair geheugen 4 Input/Output Peter Slaets () Digitale en analoge technieken February 14, 2006 16 / 33
bits-geheugenadres elementaire eenheid van geheugen is bit 0/1 eenvoudige detectie 6V vs. 1V geheugen bestaat uit cellen (locaties) en wordt verwezen via het adres 3 methode om 96 bits te organiseren: adres + bits/cel 1 byte = 8 bits Peter Slaets () Digitale en analoge technieken February 14, 2006 17 / 33
bits-geheugenadres elementaire eenheid van geheugen is bit 0/1 eenvoudige detectie 6V vs. 1V geheugen bestaat uit cellen (locaties) en wordt verwezen via het adres 3 methode om 96 bits te organiseren: adres + bits/cel 1 byte = 8 bits Peter Slaets () Digitale en analoge technieken February 14, 2006 17 / 33
bits-geheugenadres elementaire eenheid van geheugen is bit 0/1 eenvoudige detectie 6V vs. 1V geheugen bestaat uit cellen (locaties) en wordt verwezen via het adres 3 methode om 96 bits te organiseren: adres + bits/cel 1 byte = 8 bits Peter Slaets () Digitale en analoge technieken February 14, 2006 17 / 33
bits-geheugenadres elementaire eenheid van geheugen is bit 0/1 eenvoudige detectie 6V vs. 1V geheugen bestaat uit cellen (locaties) en wordt verwezen via het adres 3 methode om 96 bits te organiseren: adres + bits/cel 1 byte = 8 bits Peter Slaets () Digitale en analoge technieken February 14, 2006 17 / 33
bits-geheugenadres elementaire eenheid van geheugen is bit 0/1 eenvoudige detectie 6V vs. 1V geheugen bestaat uit cellen (locaties) en wordt verwezen via het adres 3 methode om 96 bits te organiseren: adres + bits/cel 1 byte = 8 bits Peter Slaets () Digitale en analoge technieken February 14, 2006 17 / 33
Volgorde van de bytes big endian= nummering begint aan de meest significante kant per byte little endian= nummering begint aan de minst significante kant per byte Peter Slaets () Digitale en analoge technieken February 14, 2006 18 / 33
Volgorde van de bytes big endian= nummering begint aan de meest significante kant per byte little endian= nummering begint aan de minst significante kant per byte Peter Slaets () Digitale en analoge technieken February 14, 2006 18 / 33
Foutcorrigerende codes controlebits toevoegen: databits+controlebits Bijvoorbeeld: pariteitsbit Peter Slaets () Digitale en analoge technieken February 14, 2006 19 / 33
Foutcorrigerende codes controlebits toevoegen: databits+controlebits Bijvoorbeeld: pariteitsbit Peter Slaets () Digitale en analoge technieken February 14, 2006 19 / 33
Cachegeheugen CPU altijd sneller dan geheugens: meerdere CPU-cycli voor aanvragen geheugenwoord Hoe oplossen? READ-aanvraag starten wanneer ze worden aangetroffen (hardware wachten op data) Compiler geen code laten genereren die woord leest voordat het binnen is (software wacht op data) Alle geheugen op CPU-chip zetten ( via bus is traag), maar te duur + groot Een klein, snel geheugen (CACHE) en een groot langzaam geheugen Hoe werkt cache geheugen? meest gebruikte geheugenwoorden in cache bewaren CPU kijkt eerste in cache lokaliteitsbeginsel = woorde en enkele buren naar cache halen Peter Slaets () Digitale en analoge technieken February 14, 2006 20 / 33
Cachegeheugen CPU altijd sneller dan geheugens: meerdere CPU-cycli voor aanvragen geheugenwoord Hoe oplossen? READ-aanvraag starten wanneer ze worden aangetroffen (hardware wachten op data) Compiler geen code laten genereren die woord leest voordat het binnen is (software wacht op data) Alle geheugen op CPU-chip zetten ( via bus is traag), maar te duur + groot Een klein, snel geheugen (CACHE) en een groot langzaam geheugen Hoe werkt cache geheugen? meest gebruikte geheugenwoorden in cache bewaren CPU kijkt eerste in cache lokaliteitsbeginsel = woorde en enkele buren naar cache halen Peter Slaets () Digitale en analoge technieken February 14, 2006 20 / 33
Cachegeheugen CPU altijd sneller dan geheugens: meerdere CPU-cycli voor aanvragen geheugenwoord Hoe oplossen? READ-aanvraag starten wanneer ze worden aangetroffen (hardware wachten op data) Compiler geen code laten genereren die woord leest voordat het binnen is (software wacht op data) Alle geheugen op CPU-chip zetten ( via bus is traag), maar te duur + groot Een klein, snel geheugen (CACHE) en een groot langzaam geheugen Hoe werkt cache geheugen? meest gebruikte geheugenwoorden in cache bewaren CPU kijkt eerste in cache lokaliteitsbeginsel = woorde en enkele buren naar cache halen Peter Slaets () Digitale en analoge technieken February 14, 2006 20 / 33
Cachegeheugen CPU altijd sneller dan geheugens: meerdere CPU-cycli voor aanvragen geheugenwoord Hoe oplossen? READ-aanvraag starten wanneer ze worden aangetroffen (hardware wachten op data) Compiler geen code laten genereren die woord leest voordat het binnen is (software wacht op data) Alle geheugen op CPU-chip zetten ( via bus is traag), maar te duur + groot Een klein, snel geheugen (CACHE) en een groot langzaam geheugen Hoe werkt cache geheugen? meest gebruikte geheugenwoorden in cache bewaren CPU kijkt eerste in cache lokaliteitsbeginsel = woorde en enkele buren naar cache halen Peter Slaets () Digitale en analoge technieken February 14, 2006 20 / 33
Cachegeheugen CPU altijd sneller dan geheugens: meerdere CPU-cycli voor aanvragen geheugenwoord Hoe oplossen? READ-aanvraag starten wanneer ze worden aangetroffen (hardware wachten op data) Compiler geen code laten genereren die woord leest voordat het binnen is (software wacht op data) Alle geheugen op CPU-chip zetten ( via bus is traag), maar te duur + groot Een klein, snel geheugen (CACHE) en een groot langzaam geheugen Hoe werkt cache geheugen? meest gebruikte geheugenwoorden in cache bewaren CPU kijkt eerste in cache lokaliteitsbeginsel = woorde en enkele buren naar cache halen Peter Slaets () Digitale en analoge technieken February 14, 2006 20 / 33
Cachegeheugen CPU altijd sneller dan geheugens: meerdere CPU-cycli voor aanvragen geheugenwoord Hoe oplossen? READ-aanvraag starten wanneer ze worden aangetroffen (hardware wachten op data) Compiler geen code laten genereren die woord leest voordat het binnen is (software wacht op data) Alle geheugen op CPU-chip zetten ( via bus is traag), maar te duur + groot Een klein, snel geheugen (CACHE) en een groot langzaam geheugen Hoe werkt cache geheugen? meest gebruikte geheugenwoorden in cache bewaren CPU kijkt eerste in cache lokaliteitsbeginsel = woorde en enkele buren naar cache halen Peter Slaets () Digitale en analoge technieken February 14, 2006 20 / 33
Cachegeheugen CPU altijd sneller dan geheugens: meerdere CPU-cycli voor aanvragen geheugenwoord Hoe oplossen? READ-aanvraag starten wanneer ze worden aangetroffen (hardware wachten op data) Compiler geen code laten genereren die woord leest voordat het binnen is (software wacht op data) Alle geheugen op CPU-chip zetten ( via bus is traag), maar te duur + groot Een klein, snel geheugen (CACHE) en een groot langzaam geheugen Hoe werkt cache geheugen? meest gebruikte geheugenwoorden in cache bewaren CPU kijkt eerste in cache lokaliteitsbeginsel = woorde en enkele buren naar cache halen Peter Slaets () Digitale en analoge technieken February 14, 2006 20 / 33
Cachegeheugen CPU altijd sneller dan geheugens: meerdere CPU-cycli voor aanvragen geheugenwoord Hoe oplossen? READ-aanvraag starten wanneer ze worden aangetroffen (hardware wachten op data) Compiler geen code laten genereren die woord leest voordat het binnen is (software wacht op data) Alle geheugen op CPU-chip zetten ( via bus is traag), maar te duur + groot Een klein, snel geheugen (CACHE) en een groot langzaam geheugen Hoe werkt cache geheugen? meest gebruikte geheugenwoorden in cache bewaren CPU kijkt eerste in cache lokaliteitsbeginsel = woorde en enkele buren naar cache halen Peter Slaets () Digitale en analoge technieken February 14, 2006 20 / 33
Cachegeheugen CPU altijd sneller dan geheugens: meerdere CPU-cycli voor aanvragen geheugenwoord Hoe oplossen? READ-aanvraag starten wanneer ze worden aangetroffen (hardware wachten op data) Compiler geen code laten genereren die woord leest voordat het binnen is (software wacht op data) Alle geheugen op CPU-chip zetten ( via bus is traag), maar te duur + groot Een klein, snel geheugen (CACHE) en een groot langzaam geheugen Hoe werkt cache geheugen? meest gebruikte geheugenwoorden in cache bewaren CPU kijkt eerste in cache lokaliteitsbeginsel = woorde en enkele buren naar cache halen Peter Slaets () Digitale en analoge technieken February 14, 2006 20 / 33
Cachegeheugen CPU altijd sneller dan geheugens: meerdere CPU-cycli voor aanvragen geheugenwoord Hoe oplossen? READ-aanvraag starten wanneer ze worden aangetroffen (hardware wachten op data) Compiler geen code laten genereren die woord leest voordat het binnen is (software wacht op data) Alle geheugen op CPU-chip zetten ( via bus is traag), maar te duur + groot Een klein, snel geheugen (CACHE) en een groot langzaam geheugen Hoe werkt cache geheugen? meest gebruikte geheugenwoorden in cache bewaren CPU kijkt eerste in cache lokaliteitsbeginsel = woorde en enkele buren naar cache halen Peter Slaets () Digitale en analoge technieken February 14, 2006 20 / 33
Cachegeheugens geheugenblokken bepaalt door cacheregels grootte van de de cache/cacheregel: 16 KB via 1024x16 bytes of 2048X8bytes instructies en data in zelfde cache? het aantal cache: primair (op CPU)+secundair(buiten chip)+... Peter Slaets () Digitale en analoge technieken February 14, 2006 21 / 33
Cachegeheugens geheugenblokken bepaalt door cacheregels grootte van de de cache/cacheregel: 16 KB via 1024x16 bytes of 2048X8bytes instructies en data in zelfde cache? het aantal cache: primair (op CPU)+secundair(buiten chip)+... Peter Slaets () Digitale en analoge technieken February 14, 2006 21 / 33
Cachegeheugens geheugenblokken bepaalt door cacheregels grootte van de de cache/cacheregel: 16 KB via 1024x16 bytes of 2048X8bytes instructies en data in zelfde cache? het aantal cache: primair (op CPU)+secundair(buiten chip)+... Peter Slaets () Digitale en analoge technieken February 14, 2006 21 / 33
Cachegeheugens geheugenblokken bepaalt door cacheregels grootte van de de cache/cacheregel: 16 KB via 1024x16 bytes of 2048X8bytes instructies en data in zelfde cache? het aantal cache: primair (op CPU)+secundair(buiten chip)+... Peter Slaets () Digitale en analoge technieken February 14, 2006 21 / 33
Geheugenpackages en types tot 90 aparte geheugenchips van 1Kbits tot 1MBits Nu een groep chips 8-16 stuks (32-64MB): SIMM (Single Inline Memory Module) 32 bits/klolkcylcus en DIMM (Dual Inline Memoryr Module) 64 bits/klokcylcus Peter Slaets () Digitale en analoge technieken February 14, 2006 22 / 33
Geheugenpackages en types tot 90 aparte geheugenchips van 1Kbits tot 1MBits Nu een groep chips 8-16 stuks (32-64MB): SIMM (Single Inline Memory Module) 32 bits/klolkcylcus en DIMM (Dual Inline Memoryr Module) 64 bits/klokcylcus Peter Slaets () Digitale en analoge technieken February 14, 2006 22 / 33
Computerarchitectuur 1 Processors 2 Primair geheugen 3 Secundair geheugen 4 Input/Output Peter Slaets () Digitale en analoge technieken February 14, 2006 23 / 33
Geheugenhierarchie toegangstijd vergroot naar beneden: 1-3 nsec - 5-15nsec - 20-40 nsec - 10 msec - 1-3 sec opslagcapaciteit neemt toe: 128bytes - Mbytes - 500-1000 Mbytes - 10-100 Gbytes prijs per bit daalt naar beneden Peter Slaets () Digitale en analoge technieken February 14, 2006 24 / 33
Geheugenhierarchie toegangstijd vergroot naar beneden: 1-3 nsec - 5-15nsec - 20-40 nsec - 10 msec - 1-3 sec opslagcapaciteit neemt toe: 128bytes - Mbytes - 500-1000 Mbytes - 10-100 Gbytes prijs per bit daalt naar beneden Peter Slaets () Digitale en analoge technieken February 14, 2006 24 / 33
Geheugenhierarchie toegangstijd vergroot naar beneden: 1-3 nsec - 5-15nsec - 20-40 nsec - 10 msec - 1-3 sec opslagcapaciteit neemt toe: 128bytes - Mbytes - 500-1000 Mbytes - 10-100 Gbytes prijs per bit daalt naar beneden Peter Slaets () Digitale en analoge technieken February 14, 2006 24 / 33
Magneetschijf harde schijf opslagcapaciteit neemt toe: 128bytes - Mbytes - 500-1000 Mbytes - 10-100 Gbytes prijs per bit daalt naar beneden Peter Slaets () Digitale en analoge technieken February 14, 2006 25 / 33
Magneetschijf harde schijf opslagcapaciteit neemt toe: 128bytes - Mbytes - 500-1000 Mbytes - 10-100 Gbytes prijs per bit daalt naar beneden Peter Slaets () Digitale en analoge technieken February 14, 2006 25 / 33
Magneetschijf harde schijf opslagcapaciteit neemt toe: 128bytes - Mbytes - 500-1000 Mbytes - 10-100 Gbytes prijs per bit daalt naar beneden Peter Slaets () Digitale en analoge technieken February 14, 2006 25 / 33
IDE/EIDE/ATA-schijven Wat? vroeger werd de beweging van de arm, het lezen gedaan door een externe controller, nu op het moederbord aanwezig IDE/EIDE/ATA goedkoop, standaard voor PC Peter Slaets () Digitale en analoge technieken February 14, 2006 26 / 33
IDE/EIDE/ATA-schijven Wat? vroeger werd de beweging van de arm, het lezen gedaan door een externe controller, nu op het moederbord aanwezig IDE/EIDE/ATA goedkoop, standaard voor PC Peter Slaets () Digitale en analoge technieken February 14, 2006 26 / 33
SCSI-schijven Wat? verschilt niet van ATA qua organisatie van het geheugen, wel qua interface SCSI duurder, sneller en standaard voor UNIX-workstations, Macintoch en duurdere intel PC s (servers) meer dan interface, ook bus + controller + 7 apparaten Peter Slaets () Digitale en analoge technieken February 14, 2006 27 / 33
SCSI-schijven Wat? verschilt niet van ATA qua organisatie van het geheugen, wel qua interface SCSI duurder, sneller en standaard voor UNIX-workstations, Macintoch en duurdere intel PC s (servers) meer dan interface, ook bus + controller + 7 apparaten Peter Slaets () Digitale en analoge technieken February 14, 2006 27 / 33
SCSI-schijven Wat? verschilt niet van ATA qua organisatie van het geheugen, wel qua interface SCSI duurder, sneller en standaard voor UNIX-workstations, Macintoch en duurdere intel PC s (servers) meer dan interface, ook bus + controller + 7 apparaten Peter Slaets () Digitale en analoge technieken February 14, 2006 27 / 33
CD-roms/recordable/Rewritable/DVD De gekende geheugens!!! 650Mb - 4,7 tot 17 Gb Peter Slaets () Digitale en analoge technieken February 14, 2006 28 / 33
CD-roms/recordable/Rewritable/DVD De gekende geheugens!!! 650Mb - 4,7 tot 17 Gb Peter Slaets () Digitale en analoge technieken February 14, 2006 28 / 33
Computerarchitectuur 1 Processors 2 Primair geheugen 3 Secundair geheugen 4 Input/Output Peter Slaets () Digitale en analoge technieken February 14, 2006 29 / 33
Buses moederbord: CPU+DIMM+hulpchips+bus met randconnectoren van I/O-kaarten oudere PC s hebben een tweede bus (ISA-bus) Peter Slaets () Digitale en analoge technieken February 14, 2006 30 / 33
Buses moederbord: CPU+DIMM+hulpchips+bus met randconnectoren van I/O-kaarten oudere PC s hebben een tweede bus (ISA-bus) Peter Slaets () Digitale en analoge technieken February 14, 2006 30 / 33
Buses de logische structuur van een eenvoudige PC Controller + I/O apparaat Speciaal: DMA (Direct Memory Access) data lezen rechtstreeks van het apparaat naar het geheugen zonder de CPU te belasten Speciaal: busarbiter bepaalt wie mag sturen op de bus Speciaal: cycle stealing = I/O-apparaat krijgt bus toegang onmiddelijk dus steelt van de rest Peter Slaets () Digitale en analoge technieken February 14, 2006 31 / 33
Buses de logische structuur van een eenvoudige PC Controller + I/O apparaat Speciaal: DMA (Direct Memory Access) data lezen rechtstreeks van het apparaat naar het geheugen zonder de CPU te belasten Speciaal: busarbiter bepaalt wie mag sturen op de bus Speciaal: cycle stealing = I/O-apparaat krijgt bus toegang onmiddelijk dus steelt van de rest Peter Slaets () Digitale en analoge technieken February 14, 2006 31 / 33
Buses de logische structuur van een eenvoudige PC Controller + I/O apparaat Speciaal: DMA (Direct Memory Access) data lezen rechtstreeks van het apparaat naar het geheugen zonder de CPU te belasten Speciaal: busarbiter bepaalt wie mag sturen op de bus Speciaal: cycle stealing = I/O-apparaat krijgt bus toegang onmiddelijk dus steelt van de rest Peter Slaets () Digitale en analoge technieken February 14, 2006 31 / 33
Buses de logische structuur van een eenvoudige PC Controller + I/O apparaat Speciaal: DMA (Direct Memory Access) data lezen rechtstreeks van het apparaat naar het geheugen zonder de CPU te belasten Speciaal: busarbiter bepaalt wie mag sturen op de bus Speciaal: cycle stealing = I/O-apparaat krijgt bus toegang onmiddelijk dus steelt van de rest Peter Slaets () Digitale en analoge technieken February 14, 2006 31 / 33
Buses de logische structuur van een eenvoudige PC Controller + I/O apparaat Speciaal: DMA (Direct Memory Access) data lezen rechtstreeks van het apparaat naar het geheugen zonder de CPU te belasten Speciaal: busarbiter bepaalt wie mag sturen op de bus Speciaal: cycle stealing = I/O-apparaat krijgt bus toegang onmiddelijk dus steelt van de rest Peter Slaets () Digitale en analoge technieken February 14, 2006 31 / 33
Buses PCI-bus gebruikt in veel configuraties, ISA-bus kunnen bijgevoegd worden Peter Slaets () Digitale en analoge technieken February 14, 2006 32 / 33
Overige I/O Terminals: toetsenord+crt-monitors+platte beeldscherm+muizen+printers Telecommmunicatieapparatuur: modems+digitale+digitale camera+... Peter Slaets () Digitale en analoge technieken February 14, 2006 33 / 33
Overige I/O Terminals: toetsenord+crt-monitors+platte beeldscherm+muizen+printers Telecommmunicatieapparatuur: modems+digitale+digitale camera+... Peter Slaets () Digitale en analoge technieken February 14, 2006 33 / 33