Programmeren(1)

advertisement
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
Download