170 likes | 284 Views
5 JJ2 0: 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)
E N D
5JJ20: Computerarchitectuur2M200: Inleiding Computersystemen Sessie 4(1):Digitale logica niveauklokken 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
A B F A B F A B F 0 volt: “laag” 0v 0v 0v 0 0 0 1 1 1 0v 5v 0v 0 1 0 1 0 1 5v 0v 0v 1 0 0 0 1 1 5 volt: “hoog” 5v 5v 5v 1 1 1 0 0 0 “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 ! 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
Uitgang:0, 1, “open” 0 MUX D Q sel 1 Ingang clr Systeem-klok “Output enable”(OE) besturing “Laad register”besturing Systeem-reset Drie-toestands versterkerEngels: “Tri-state” buffer Een “register” in hardware • Setje flip-flops met identieke stuursignalen
8-bit register D0..7 Q0..7 Laad“A” Lees“A” load OE “A” clr D0..7 Q0..7 Laad“B” Lees“B” load OE “B” clr Bus“in” Bus“uit” Klok Reset Uitgangen aan elkaar: tri-state buffers ! Laden van register:- Waarde op bus “in”- “Laad” aktief maken- Wachten op klok ! Lezen van register:- “Lees” aktief maken- Waarde op “uit” bus 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…
Adresbit 0 Lees“0” Laad“0” Adres00b Lees“1” Laad“1” Adres01b Lees“2” Laad“2” Adres10b Adresbit 1 Lees“3” Laad“3” Adres11b Schrijven Lezen 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 2 bitsdecoder
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 !