Hardware (1) SGDB Informatica Opbouw van een computer Een computer bestaat uit veel verschillende componenten. Bijvoorbeeld: •Processor •Intern geheugen •Harde schijf •Netwerkkaart •Toetsenbord •Monitor •Geluidskaart SGDB Informatica •… Samenwerking • Componenten communiceren met elkaar via de Bus • De Bus is een onderdeel van het moederbord • Elk component is verbonden met moederbord (en dus met de Bus) – Vast gesoldeerd op moederbord – Verbonden via kabel – In moederbord “geprikt” via “slot” SGDB Informatica Moederbord (oudere PC) ISA-slots PCI-slots Processor slot AGP-slot Accelerated Graphics Port IDE ports Chipset SGDB Informatica DIMM sockets Moederbord (nieuwere PC) PCI-e-slots PCI-slots Processor slot Chipset SATA ports SGDB Informatica DIMM sockets De bus (1) • Zender zet informatie + bestemming op bus • Ontvanger leest informatie van de bus • Overige componenten negeren informatie TOETSENBORD CPU WERKGEHEUGEN HARDDISK PRINTER • Initiatief bij zender: schrijfactie • Initiatief bij ontvanger: leesactie (vaak gevolgd door schrijfactie) SGDB Informatica De bus (2) De bus bestaat eigenlijk uit 3 kanalen: • Databus – Verstuurt gegevens – Bijvoorbeeld: de te printen letters • Adresbus – Bevat adres ontvanger – Bijvoorbeeld: adres van de printer • Controlbus – Verstuurt commando’s – Bijvoorbeeld: Print de tekens van de databus databus adresbus controlbus SGDB Informatica Bus (3) • Verkeer op de bus wordt geregeld door busarbiter • Een transactie moet (via controlbus) worden aangevraagd • Bus wordt gedreven door een klok • Elke tik vindt één buscyclus plaats: – Zender zet data op bus – Ontvanger leest van bus – Bus wordt leeggemaakt SGDB Informatica Bus (4) • Capaciteit van de (data)bus wordt bepaald door: – Kloksnelheid (aantal transacties per seconde – Busbreedte (hoeveel data kan er tegelijk op de bus staan?) SGDB Informatica Von Neumann architectuur • Belangrijkste componenten – Processor – Geheugen Intern Geheugen Instructies Processor Data SGDB Informatica De processor • Het “brein” van de computer • Voert alle berekeningen uit • Andere namen: – CPU (Central Processing Unit) – CVE (Centrale Verwerkings Eenheid) SGDB Informatica Geheugen • Het geheugen bestaat uit geheugenplaatsen van 1 byte met elk een eigen adres • De memorycontroller is de “archivaris” en “kijkt” naar de bus 128110 128111 128112 128113 128114 128115 128116 128117 128118 128119 128120 128121 memorycontroller SGDB Informatica Instructies (machinetaal) • Alleen hele eenvoudige operaties – – – – Optellen Vergelijken Herhalen … • Miljoenen operaties per seconde, dus toch ingewikkelde dingen mogelijk • Vergelijkbaar met alfabet: maar 26 letters, toch zeer veel woorden mogelijk Intern Geheugen Instructies Processor Data Processor onderdelen ALU databus adresbus REGISTERS CONTROL UNIT controlebus • ALU – Voert de bewerkingen en berekeningen uit • Registers – Tijdelijke opslag voor berekeningen (een soort kladblok) • Control unit – Leest de stroom instructies van de controlbus – Zorgt dat de instructies worden uitgevoerd door de ALU SGDB Informatica Instructiecyclus 1. De Control Unit haalt instructie op waar de programcounter naar verwijst en zet deze in het instructieregister. Ophalen instructie De programcounter wordt verhoogd 2. De Control Unit analyseert de instructie. De benodigde gegevens worden in de registers gezet 3. De ALU voert de bewerking uit Uitvoeren instructie Resultaten worden in het register opgeslagen SGDB Informatica Analyseren instructie Machinetaal Iedere instructie bestaat uit een rij bits. In een machinetaal zou de instructie voor het optellen van de inhoud van twee registers er als volgt kunnen uitzien: 01101101000010010000001100000100 operatiecode: operandcode: operandcode: operandcode: 01101101 00001001 00000011 00000100 optellen van de inhoud van twee registers register 9 register 3 register 4 Deze opdracht kan betekenen: Tel de inhoud van de registers 3 en 4 bij elkaar op en zet het resultaat in register 9. SGDB Informatica Assembleertaal • Machinetaal is lastig voor mensen – Slecht leesbaar – Snel fouten • Oplossing: assembleertaal 01101101 00001001 00000011 00000100 wordt ADD R9, R3, R4 • Vertaling: assembler – Vertaalt assembly code naar machinetaal – Is het enige programma dat in machinetaal geschreven hoeft te worden – Processorafhankelijk SGDB Informatica Assembleertaal (2) • Voorbeeld: 1. Rekenkundige of logische instructies ADD, CMP 2. Spronginstructies JNG 3. Instructies voor datatransport LOAD SGDB Informatica LOAD R0, 1234 LOOP: ADD R0, #1 CMP R0, #12 JNG LOOP LOAD 1234, R0