1/ 2IC20: eindhoven university of technology Computersystemen Week 4: Digitale logica niveau: “systeem-architectuur” cpu-chips en bussen / faculty of Computer Science 1/ eindhoven university of technology De “systeem-architectuur” Hier kijken we naar de computer als geheel: De processor Geheugen(s) Invoer / uitvoer (I/O) controllers De “bus”-sen Complete computer op één chip mogelijk / “Microcomputer” is standaard onderdeel “System on a chip” gespecialiseerd (vaak > 1 CPU) faculty of Computer Science 1/ eindhoven university of technology De belangrijkste processor “pinnen” Fysieke elektrische contacten (8 .. > 500 stuks) Gegroepeerd naar functie Vormen een of meer “bussen” voor communicatie Standaard “bus” bevat drie groepen pinnen / Adres: M pinnen adresseren 2M geheugenlocaties “standaard” aantallen: 16, 20, 24, 32, 36, 42, 64 Data: N pinnen parallel in/uit - hoe meer hoe beter “standaard” aantallen: 8, 16, 32, 64, 128 Besturing: lezen / schrijven, beveiliging, timing …. faculty of Computer Science 1/ eindhoven university of technology Processor chip symbool Adres Data Bus controle Interrupts Symbool voor “klok” / faculty of Computer Science Bus arbitrage Typische MicroProcesso r Coprocessor Status Reset +5v Voedingsspanning (Vcc) is hier 5 volt Symbool voor referentiespanning (0 volt = “GND”) 1/ eindhoven university of technology Geheugenchips koppelen aan CPU Statische RAM’s en (EP/flash) ROM’s: simpel Adres, data en controle pinnen “passen” direct Timing van programmeren ROM’s: “oplosbaar” Dynamische RAM’s: niet zo simpel / Adres gesplitst (RAS/CAS): multiplexer nodig Op tijd verversen van ladingen nodig Controle pinnen “passen” (totaal) niet Timing zeer kritisch voor hoogste snelheid Gebruik “dynamisch RAM controller” standaard faculty of Computer Science 1/ eindhoven university of technology “Partiële toegang” tot geheugen “Fysieke” bus-breedte: aantal data pinnen “Logische” breedte: aantal te lezen/schrijven bits Adresseren per cel:1 of meer cellen lezen/schrijven Bus soms breder dan CPU woord voor snelheid: per woord lezen/schrijven Minder dan volle breedte: “partiële toegang” Lezen: CPU selecteert juiste bits uit bus-woord Schrijven: lezen-bits veranderen-terugschrijven ? / Beter: separaat schrijf-signaal per cel/woord ! faculty of Computer Science 1/ eindhoven university of technology Een 64 kilobyte, 2 bytes per woord RAM 32 kilowoorden ! Adres bits 1..15 Data bits 0..7 Data bits 8..15 Even adressen Adres 0..14 Data 0..7 RAM Schrijf (32 kilobyte) Lees CPU Schrijf “even” Schrijf “oneven” Lees / faculty of Computer Science Adres 0..14 Data 0..7 Schrijf Lees Samen: adres bit 0 Oneven adressen RAM (32 kilobyte) 1/ eindhoven university of technology Bussen binnen én buiten de CPU Registers Geheugen bus “On-chip” bussen RAM control Buscontroller CPU bus Geheugen I/O bus ALU CPU chip / faculty of Computer Science Schijf Printer 1/ eindhoven university of technology Meesters en slaven: wie is de baas ? Busgebruikers hebben verschillende “rollen” Meester activeert bus toegang Slaaf is passief en wacht op gebruik Combinatie mogelijk, maar niet tegelijk ! / Meester Slaaf Voorbeeld CPU CPU CPU I/O Co-proces. Geheugen I/O Co-processor Geheugen CPU Instructies ophalen Status lezen Commando schrijven Direct Memory Access (DMA) Operanden ophalen faculty of Computer Science 1/ eindhoven university of technology Fysieke problemen bij bussen Poorten op een chip zijn elektrisch “zwak” Hebben problemen om andere kant chip te bereiken ! Bussen buiten chip: lange lijnen (> 10 cm.) Zenders (drivers) en ontvangers (receivers) nodig combinatie zend-ontvanger: “transceiver” Zend-zijde meestal “tri-state” of “open collector” beide laten toe meer zenders op bus aan te sluiten Buslijnen niet even lang: signalen krijgen “skew” / Snelheid signalen op print: 10 cm. per nanoseconde ! faculty of Computer Science 1/ eindhoven university of technology Synchrone bussen: met “klok” Timing van bus geregeld met flanken van klok Voordeel: alles loopt precies “in de pas” Nadeel: alles duurt veelvoud van klokperiode de “buscyclus” Klok Adres Data READ WAIT / faculty of Computer Science Timing diagram 1/ eindhoven university of technology Asynchrone bussen: handen schudden “Handshake” signalen regelen timing zelf Voordeel: alles duurt zolang het moet duren Nadeel: klok-synchronisatie binnen CPU nodig 1 2 3 Adres Data READ READY / faculty of Computer Science “Vier fasen handshake” 4 1/ eindhoven university of technology Bus standaarden: er zijn er genoeg... “Systeembussen”: CPU naar I/O en geheugen PC wereld een bende: ISA, EISA, Microchannel, PCI Daarbuiten ook: VME, Nubus, Camac, Multibus ieder van deze in verschillende varianten I/O bussen: koppeling devices aan computer SCSI, IDE, HPIB (laboratorium instrumentatie) Eén bit brede I/O bussen in opmars / Weinig draad en geen last van skew (dus toch snel) USB, Firewire, I2C (binnen consumentenelektronica) faculty of Computer Science 1/ eindhoven university of technology Vele van deze in Pentium-klasse PC Geheugen bus “Cache” bus lokale bus IDEbus PCI-bus USBbus Niet bij stof ! / “Chip-set” ISA-bus SCSIbus faculty of Computer Science 1/ eindhoven university of technology Standaarden: veranderlijk als het weer 20bit adres 20bit adres besturing 20bit adres 8086 80286 besturing 4bit adres besturing 80386 4bit adres besturing 8bit adres besturing Bill Gates (1978): “640 kilobyte is genoeg !” / 4 jaar later: “PC-AT” met 16 megabyte faculty of Computer Science besturing Weer 3 jaar later: “Windows past niet !” doe maar 4 gigabyte...