1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Digitale logica niveau: “systeem-architectuur” cpu-chips en bussen
1/1/ eindhoven university of technology / faculty of Computer Science 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)
1/1/ eindhoven university of technology / faculty of Computer Science 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 2 M 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 ….
1/1/ eindhoven university of technology / faculty of Computer Science Processor chip symbool Typische Micro- Processo r Adres Data Bus controle Interrupts Co- processor Bus arbitrage Status Reset +5v Symbool voor “klok” Voedingsspanning (Vcc) is hier 5 volt Symbool voor referentie- spanning (0 volt = “GND”)
1/1/ eindhoven university of technology / faculty of Computer Science 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
1/1/ eindhoven university of technology / faculty of Computer Science “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 !
1/1/ eindhoven university of technology / faculty of Computer Science Een 64 kilobyte, 2 bytes per woord RAM CPU RAM (32 kilobyte) Adres Data 0..7 Schrijf Lees RAM (32 kilobyte) Adres Data 0..7 Schrijf Lees Adres bits Data bits 0..7 Data bits Lees Schrijf “oneven” Schrijf “even” Even adressen Oneven adressen Samen: adres bit 0 32 kilowoorden !
1/1/ eindhoven university of technology / faculty of Computer Science CPU chip Bussen binnen én buiten de CPU Registers ALU Bus- controller Geheugen “On-chip” bussen CPU bus PrinterSchijf Geheugen bus I/O bus RAM control
1/1/ eindhoven university of technology / faculty of Computer Science 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 ! MeesterSlaafVoorbeeld CPUGeheugenInstructies ophalen CPUI/OStatus lezen CPUCo-processorCommando schrijven I/OGeheugenDirect Memory Access (DMA) Co-proces.CPUOperanden ophalen
1/1/ eindhoven university of technology / faculty of Computer Science 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 !
1/1/ eindhoven university of technology / faculty of Computer Science 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” Data Adres WAIT READ Klok Timing diagram
1/1/ eindhoven university of technology / faculty of Computer Science Asynchrone bussen: handen schudden “Handshake” signalen regelen timing zelf Voordeel: alles duurt zolang het moet duren Nadeel: klok-synchronisatie binnen CPU nodig Data Adres READY READ “Vier fasen handshake”
1/1/ eindhoven university of technology / faculty of Computer Science 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, I 2 C (binnen consumentenelektronica)
1/1/ eindhoven university of technology / faculty of Computer Science “Chip-set” Vele van deze in Pentium-klasse PC ISA-bus IDE- bus USB- bus SCSI- bus “Cache” bus lokale bus Geheugen bus PCI-bus Niet bij stof !
1/1/ eindhoven university of technology / faculty of Computer Science Standaarden: veranderlijk als het weer 8086 besturing 20bit adres besturing 20bit adres besturing 4bit adres besturing 8bit adres besturing 20bit adres besturing 4bit adres Bill Gates (1978): “640 kilobyte is genoeg !” 4 jaar later: “PC-AT” met 16 megabyte Weer 3 jaar later: “Windows past niet !” doe maar 4 gigabyte...