5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen Sessie 4(1): Digitale logica niveau klokken en geheugens
Geen herhaling schakeltechniek ! Bekend verondersteld Logische poorten (met symbolen en gedrag) Boole algebra (waarheidstabellen en equivalentie) Standaard combinatorische circuits: (de-)multiplexers, decoders, PLA, adder Latches en (edge-triggered en master/slave) flip-flops Aanmerkingen op boek Latches hebben “enable” signalen, geen “klokken” Pulsgenerator volgens figuur 3-25: SMERIG
“Positieve” en “Negatieve” logica Boole werkt met “waar” / “niet waar” voor het gemak vertaald in “1” (EEN) en “o” (NUL) Hardware werkt met voltages “hoog” en “laag” koppeling Boole aan voltages: afspraak ! A B F 0v 5v A B F 1 A B F 1 0 volt: “laag” 5 volt: “hoog” positief: “hoog” = 1 negatief: “laag” = 1
Nog meer hardware terminologie Classificaties van geïntegreerde circuits (IC’s) 1 .. 10 logische poorten: Small Scale Integration SSI 10 .. 100 poorten: Medium Scale Integration MSI 100 .. 100K poorten: Large Scale Integration LSI > 100K poorten: Very Large Scale Integration VLSI “Chips” verstoken energie: “voeding” nodig Referentiespanning (0 volt): “aarde” / “ground” GND Voedingsspanning (1,2 .. 5 volt): “de voeding” Vcc Verkeerd om aansluiten, te hoge spanning: ROOK !
Hardware is niet ideaal Weerstanden en capaciteiten aanwezig Allemaal geschakeld als laagdoorlaat filter: vertraging Geeft vertraging ingang-uitgang van poorten: de “poortvertraging” SSI: 1..10 nanoseconde, VLSI: tot < 0,1 nanoseconde Productieproces niet ideaal: niet alles werkt ! Alle componenten en verbindingen testbaar maken 107 transistoren = 2,5 x 106 NAND poorten = 7.500.002 pinnen nodig = veel te veel pinnen poorten-per-pin verhouding > 10000: test-nachtmerrie
Niets gaat vanzelf: “klokken” Volgorde van operaties op chip van groot belang Onderdelen moeten gesynchroniseerd worden Met flip-flops asynchrone operaties in toom houden Al die flip-flops met een “systeemklok” besturen: DE “klok” Vaste tijd tussen aktieve klokflanken: de (klok-) cyclustijd Omgekeerde: klok-frequentie (VLSI: tot 1 GIGAHerz) Aanmerking op boek: vertragen klokken = SMERIG
Een “register” in hardware Setje flip-flops met identieke stuursignalen 1 MUX sel “Laad register” besturing Ingang “Output enable” (OE) besturing Uitgang: 0, 1, “open” Systeem- reset D Q clr Systeem- klok Drie-toestands versterker Engels: “Tri-state” buffer
Uitgangen aan elkaar: tri-state buffers ! D0..7 Q0..7 OE clr load “A” Laad “A” Lees “A” 8-bit register Klok Reset Bus “in” Bus “uit” Laden van register: - Waarde op bus “in” - “Laad” aktief maken - Wachten op klok ! Lezen van register: - “Lees” aktief maken - Waarde op “uit” bus D0..7 Q0..7 OE clr load “B” Laad “B” Lees “B” Tri-state buffers op één bus NOOIT tegelijk aktief maken !
Extra grapjes met registers Laden van meerdere bussen Meer ingangen op ingangs-multiplexer Verbinden met meerdere uitgangs-bussen Voor iedere bus een eigen set tri-state buffers “Lokale” operaties mogelijk Q uitgangen van flip-flops via combinatorische logica terugkoppelen naar ingangs-multiplexer Increment (+1), decrement (-1), schuiven…
Geheugen bouwen met (veel) registers Ieder woord in geheugen wordt een register Geeft erg veel “laad” en “lees” signalen ! Gebuik “decoder”, bestuurd met adres-bits Adres bit 0 Adres bit 1 Adres 00b Adres 01b Adres 10b Adres 11b Laad “0” Laad “1” Laad “2” Laad “3” Schrijven Lees “0” Lees “1” Lees “2” Lees “3” Lezen 2 bits decoder
Besturingssignalen van geheugens Meestal meer geheugen-chips in systeem “Chip Select” (CS) signaal aktief voor lezen / schrijven “Aan- en uitzetten” van uitgang soms tijdkritisch Apart “Output Enable” (OE) signaal vrij standaard Lees / schrijf besturing apart of gecombineerd Apart: “Read” (RD) en “Write” (WR) signalen Gecombineerd: één signaal kiest lezen OF schrijven Signalen vaak negatieve logica: bijv. CS of /CS
Organisatie van geheugenchips Adresdecodering: veel adressen, weinig pinnen ! Nog meer adressen met minder pinnen nodig 16 megabit chip heeft 24 adrespinnen nodig ! Bits op chip in 2-D matrix: adresseer X (rij) en Y (kolom) NA elkaar “Row Access Strobe” / “Column Access Strobe” Nu nog maar 12 adrespinnen + RAS + CAS Bits per woord varieert: standaard 1, 4, 8, 16 bits Besparing: in- en uitgangen vaak op zelfde pinnen
Typen geheugen Lees / schrijf geheugens met willekeurige toegang: “Random Access Memory” (RAM) “Statisch RAM”: echte flip-flops ! Waarde behouden zolang voedingspanning OK “Dynamisch RAM”: lading op condensator Condensator lekt: lading weg = waarde weg ! Goedkoop: 1 condensator + 1 transistor per bit... Statisch RAM: 6 transistoren per bit Maar “traag”: cyclustijd lezen / schrijven 100 nanosec. Statisch RAM: tot < 10 nanosec.
Allerlei variaties op dynamisch RAM Grote geheugens: altijd RAS / CAS adressering RAS adresseert en leest intern een hele rij bits Daarna terugschrijven: “verversing” van ladingen ! Complete rij bits geplaatst in “on-chip” flip-flops: snel adresseerbaar met CAS Variaties gebaseerd op deze adressering “FPM”, “EDO”, “SDRAM” + vele anderen DEZE HOREN NIET BIJ STOF
Niet-vluchtige geheugens Probleem van RAM: voedingsspanning weg = geheugen inhoud weg Een RAM is “vluchtig” (engels: “volatile”) Soms erg onhandig Eerste programma waarmee computer opstart… Gebruikers instellingen van apparaten… Verschillende typen niet-vluchtige geheugens Grootste verschil: beschrijfbaarheid (ja/nee, hoe vaak) Schrijven niet normaal, noemen we “programmeren”
Alleen leesbaar: “Read Only Memory” Met masker tijdens fabricage van chip: ROM Daarna niet meer te veranderen ! Goedkoopste geheugen voor zeer grote aantallen Eén keer te programmeren: PROM Vroeger een matrix van op te blazen zekeringen Zekeringen niet meer te herstellen… “Erasable/Programmable ROM”: EPROM Lading op niet-lekkende condensatoren aanbrengen Leeg laten lekken: UV licht op chip laten schijnen
“Vooral leesbaar” = soms te schrijven Elektrisch wisbare EPROM: EEPROM Per byte te wissen en programmeren (milliseconden) Traag en duur (veel chip-oppervlak per bit nodig) Per “blok” wisbare EPROM: Flash-ROM “Blok” grootte van 64 byte tot volledig geheugen Redelijk snel (bij het lezen) en vrij goedkoop Probleem alle EPROM-gebaseerde geheugens: aantal programmeer / wis cycli beperkt Hoge spanningen beschadigen oppervlakken in cel !