computerhardware_processorarchitectuur_opgeloste_vragen

advertisement
1.
Asynchrone buscontrole
Niet verwarren met ‘niet-gesynchroniseerd’. Asynchrone buscontrole werkt op basis van ‘hand-shaking’. Volledige ‘had-shake’ hangt niet af
van de timing. Elke gebeurtenis wordt veroorzaakt door een eerdere gebeurtenis, niet door de klok.
Werking:
a. microprocessor heeft iets nodig uit geheugen (adres op adresbus + melden aan geheugen dat er iets opstaat)
b. Geheugen gaat kijken en voert aanvraag uit (zet data op databus)
c. Geheugen zegt microprocessor dat er een antwoord is op de databus
d. Microprocessor neemt gegevens aan en ‘bedankt’ geheugen
e. Geheugen weet nu dat data niet meer moet vastgehouden worden
Nadeel: veel te veel signalen voor wat bereikt moet worden  ingewikkelder
Voordeel: elke chip werkt op zijn eigen snelheid.
2. Synchrone buscontrole
De data wordt getransfereerd op het ritme van een meegeleverd kloksignaal. Klok heeft bepaalde frequentie (bijv 40 MHz  buscyclus
(bijvoorbeeld 25ns). Kloksignaal gaat trapsgewijs met stijgende en dalende flanken, omdat een elektrisch signaal niet in een tijdsinterval 0
kan veranderen van waarde.
Geheugen en microprocessor wisselen hun taken af. Ze hebben elk een vaste tijd (op basis van vertrouwen). De componenten rekenen erop
dat de andere componenten hun taken binnen de hun bedeelde tijd afwerken.
voordeel: eenvoudig, gemakkelijk te bouwen. (CPU zet signalen aan en geheugen reageert gewoon)
nadeel: (tempo) kloksnelheid van de bus is aangepast aan de traagste component. (Als geheugen te traag werkt en de CPU de data niet deze
cyclus moet verwachten, dan zet het geheugen de WAIT-lijn aan. Deze actie voegt wachttoestanden (extra buscycli) in tot het geheugen klaar
is. Geheugen zet WAIT uit als hij de data in deze cycli zal beschikbaar hebben. Zo weet de CPU dat hij in deze cyclus de data kan
verwachten.)
chipset: best alle chips van zelfde fabrikant nemen (garandeert een vlottere werking)
3. Wat is een CPU?
De CPU is de Central Processing Unit. Het zorgt zoals de naam zegt voor de centrale verwerking van data.
INPUT
OUTPUT
CPU
PROGRAMMAGEHEUGEN
=
microprocessor
DATAGEHEUGEN
4. Werking van een interrupt
Men voorziet de I/O-interfacechips van een signaal dat rechtstreeks naar de microprocessor gaat. Wordt dit signaal door de interface
feactiveerd, dan zal de microprocessor verplicht worden om het lopende programma even te onderbreken en voorrang te geven aan een reeks
van andere instructies die de aanvragende interface zullen bedienen.
Interrupts houden wijzigingen in in het besturingsverloop die niet veroorzaakt worden door het lopende programma, maar door iets anders.
Het I/O-device neemt het initiatief. Ze onderbreken de microprocessor in zijn gewone bezigheden.
a) De microprocessor werkt zijn huidige instructie af en houdt bij waar hij mee bezig was.
b) ISR (Interrupt Service Routine) begint
c) I/O afhandeling
d) Originele staat wordt hersteld
e) RFI (Return From Interrupt) is een speciale instructie die de ISR afsluit. CPU wordt terug in de modus en de toestand gebracht voordat de
interrupt optrad. De computer gaat verder waar hij gebleven was.
Op de Microprocessor zijn 2 aanvraaglijnen:
- NMI (Non Maskable Interrupt): kan niet genegeerd worden. Bv bij stroomuitvalkop op HD omhoog
- IRQ (Interrupt Request): De gewone interrupt request. Indien er meerdere IRQ’s tegelijk aan de microprocessor komen, dan wordt de
interrupt met hoogste prioriteit eerst afgewerkt.
5. Adresdecodering
2D0
6. Parallellisme
Parallelisme kan voorkomen op 2 niveaus.
- Op instructieniveau:
- pipelining: Hier is het aantal stadia belangrijk
- superscalaire architecturen: meerdere pipelines
- processorniveau
- arraycomputers: groot aantal identieke processors die dezelfde serie instructies uitvoeren op verschillende gegevens
- multiprocessors: systeem met meerdere CPU’s die gemeenschappelijk geheugen gebruiken
- multicomputers: aantal verbonden computers met elk een prive-geheugen, geen gemeeschappelijk geheugen (+- = netwerk)
7. Controle-eenheid (besturingseenheid)
Deze coördineert de microprocessorwerking: ophalen van instructies, wegschrijven data, decoderen instructies die in het instructieregister
worden geladen.(= continueVon Neumann-cyclus). Het werkt op basis van een klok (afgeleid van een kristal met een frequentie van bv 3,5
Ghz).
8.
Statusregister
Om toe te laten beslissingen te nemen op basis van berekende resultaten, is de ALU gekoppeld aan een statusregister (ook toestandsregister of
vlaggenregister). Het is als een verzameling van vlaggen (komt iets voor: ja of nee). De 4 meest voorkomende vlaggen zijn:
a. Z-vlag (Zero): vlaggetje wordt gezet als resultaat van een berekening in de ALU 0 is
b. N-vlag (Negative): wordt gezet als de meest beduidende bit van het resultaat uit de ALU 1 is
c. C-vlag (Carry): overdracht van een bit bij som of verschil
d. V-vlag (overflow): als grens van getallen wordt overschreden
9. Verbeteringen MIC2 tov MIC1
Zowel Mic1, Mic2, Mic3 en Mic4 bevinden zich op het niveau van de micro-instructies. Dit zijn signalen die het datapad aansturen (binnen 1
cyclus). 1 cyclus bestaat uit het poorten van waarden uit registers en ze op de A- en B-bus plaatsen, het voortplanten van signalen over de
ALU (Arithmetic & Logical Unit) en de schuifeenheid (SHIFTER) naar de C-bus, en tenslotte het schrijven van de resultaten in 1 of meer
registers.
MIC2 is sneller (prefetching in IFU)
Gebruikt een kleinere Control Store
kosten van de Instruction Fetch Unit zijn iets groter dan de winst die we maken door oppervlak van Control Store te verkleinen, dus weinig
winst
snelle machine (met iets hogere prijs) , wederom door die dure IFU
10. Verbeteringen MIC3 tov MIC2
Datapadcyclus bestaat uit 3 delen:
1. Plaatsen registers op A- en B-bus
2. ALU en Shifter
3. Opslaan resultaten via bus C
Tot hiertoe: de ene cyclus moest wachten op de volgende (sequentieel)
Nu: terwijl 2 bezig is kan 1 al nieuwe waarden laden (pipelining). 4 stadia: IFU, Registers (A en B), ALU en shifter, Registers (C)
Hoe? Voor iedere bus is er een extra latch (=register) waarnaar er iedere cyclus geschreven wordt
gevolg: klok kan sneller omdat de maximale vertraging kleiner is
alle onderdelen van het datapad worden tegelijkertijd door andere instructie in de pipeline gebruikt
11. Verbeteringen MIC4 tov MIC3
Pipelining gebeurt bij MIC4 in 7 stadia:
- IFU (Instruction Fetch Unit)
- decoderen
- microsteps in queue gezet (weet direct wat volgende opdracht is)
- operanden ophalen
- execute
- write-back
- eventuele memory-bewerking (R/W/Fetch)
12.
Cache (+ localiteitsprincipe)
Cachegeheugen is een klein stukje heel snel geheugen tussen microprocessor en traag hoofdgeheugen.
Het basisprincipe heet het “Lokaliteitsbeginsel”. “Geheugenfuncties die in een kort tijdsinterval optreden gebruiken slecht een klein deel van
de totale geheugenruimte”. We kunnen spreken van tijdelijke lokaliteit en ruimtelijke totaliteit
Tijdelijke: dezelfde instructies of data worden gebruikt.
Ruimtelijke: nieuwe adressen liggen dikwijls in de buurt van vorige adressen. Dit houdt in dat we niet enkel een bepaald adres in het cache
stoppen, maar ook de blok errond. Indien een adres opgevraagd wordt uit het hoofdgeheugen stoppen we de inhoud en de inhoud van de blok
er rond ook in de cache
Er zijn 3 soorten caches: associatieve, set-associatieve en direct-mapped.
a. Associatieve: cache geheugen is opgebouwd als een tabel met 1 entry per tabel-slot.
Deze manier is wel niet goed voor grote caches.
Wat als cache vol zit? Iets anders uit cache moet plaats maken. Hier bestaan 3 manieren van aanpakken voor:
- LRU (Least Recently Used): Wat langst geleden gebruikt werd wordt vervangen
nadeel: je moet van elk slot bijhouden wanneer het laatst gebruikt werd + moet aangepast worden bij elk gebruik
- FIFO (First In, First Out): Oudste element wordt vervangen (<> LRU)
voordeel: je moet enkel bijhouden wanneer het element in de tabel kwam
- Random element vervangen
Wanneer een bepaald bloknummer moet gezocht worden in cache (bij elk slot een comparator zetten).
voordeel: zeer snel
nadeel: parallelle comparatoren nodig om te zoeken of bepaald blok zich reeds in de cache bevindt of niet. Neemt zeer veel
plaats in op cachechip
b.
Direct-mapped: Er bestaat een relatie tussen bloknummer en slotnummer. Index wordt berekend.
Deze manier is wel geen goede manier voor kleine caches
nadeel: meerdere blokken op zelfde slotnummer afgebeeld. Hoe onderscheiden we deze? Dmv TAGS. Een Tag zijn een unieke
16-bits waarde die aangeeft uit welke geheugenregel de gegevens stammen. Wanneer de tag van gezochte overeenkomt met
inhoud slot waar we op dat moment naar kijken  OK (Cache Hit). Wanneeer dit niet zo is  Cache Miss. Waarde in cache
wordt overschreven door nieuwe waarde.
c.
Set-associatieve: combinatie van a. en b.
13. Adresseringsmodi
Adresseermodes zijn enkele methodes waarmee de microprocessor het “effectief adres” bepaalt. Indien een programma gebruik wil maken
van operanden moet het weten waar het die operanden kan vinden. Het programma ontvangt een adresveld, en wat het daarmee moet doen
hangt af van de adresseringsmodus.
Het zijn technieken die toelaten om de specificatie van adresdelen te verkorten en het adres dynamisch vast te stellen.
a. Onmiddelijke adressering:
ipv het adres in het adresgedeelte te zetten, zetten we al onmiddellijk de operand zelf erin.
voordell: geen extra geheugenbewerking (om operand op te halen)
nadeel: alleen constanten kunnen worden geladen
b. Directe adressering:
Men specifieert het volledige adres van de operand in het geheugen.
voordeel: gemakkelijk voor adressen die vast zijn (vb I/O adressen) + globale variabelen
nadeel: niet voor lokale variabelen
c. Registeradressering:
Idem als directe adressering maar ipv een geheugenlocatie wordt nu een register gespecifieerd
Deze methode wordt het meest toegepast
d. Indirecte adressering:
Het adres wordt niet opgenomen in de instructie, maar staat in een register (=pointer).
voordeel: geen groot geheugenadres meer in de instructie
e. Geïndexeerde adressering:
Het adresseren van het geheugen gebeurt hier via een register (= pointer) en een constante offset(=index), kijk op plaats
(pointer + offset)
f. Relatieve adressering:
relatief tov Program Counter (dwz in het programmageheugen)
Plaats waar we nu zijn + “een sprong” (bijv. spring x plaatsen vooruit of achteruit = BRANCH
voordeel: laat toe om programma-relocatie te realiseren wat met absolute sprongadressen (JUMPS) niet kan.
g. Stack adressering:
postfixnotatie
infixnotatie
14. Dynamische linking + voorbeeld (expliciet en impliciet)
Dynamisch linken houdt in dat we enkel de procedures (in .dll) linken die daarwerkelijk aangeroepen worden. Vroeger werd alles gelinkt, ook
procedures die uitzonderlijk gebruikt werden
voorbeeld:
in een programma wordt procedure A aangeroepen (niet in programma, zit in dll)
deze dll wordt geladen: - impliciet: in het begin van programma
- expliciet: tijdens programma
15. Java Virtual Machine
JVM = Java Virtual Machine. Men kan programmas schrijven voor JVM. Deze zorgt voor het vertalen van JAVA-instructies naar
processorspecifieke instructies. JMV kan op elk systeem werken (Apple v IBM). Deze gaan deze instructies anders vertalen
16.
Geef de opbouw van een I/O Interfacechip + wat is Isolated I/O?
Een interfacechip is de vertaler die zorgt voor de communicatie tussen I/O toestel en de microprocessor: kan aan systeembussen en externe
bussen (+tekening). De interfacechip bevat 3 soorten registers:
a. Dataregisters: verzenden data van microprocessor naar randapparatuur
b. Controleregisters: microprocessor zegt hoe interface met randapp moet werken
c. Statusregisters: randapp meldt iets aan de microprocessor
Voor adressering van I/O bestaan 2 basisprincipes:
Memory Mapped I/O: (bv Motorola)
Microprocessor maakt geen onderscheid tussen I/O en geheugenchips.
adresonderscheiding enkel via externe decodeerlogica
adresruimte = “memory map”
bewerkingen op gegevens mogelijk
Isolated I/O: (bv Intel)
2 adresruimten nodig: geheugenadresruimte en I/O adresruimte
enkel uithalen + inschrijven + speciale I/O instructies nodig (LOAD/STORE)
De synchronisatie tussen microprocessor en I/O-interfacechip kan op 2 manieren verlopen:
1. Actieve synchronisatie (polling = om de zoveel tijd iets zelf gaan doen)
Het initiatief ligt hier bij de microprocessor. De output stuurt telkens iets, de input kijkt telkens of er iets binnen gekomen is
Nadeel: bij input: als tijdsinterval te groot is, kunnen er gegevens verloren gaan
onvoldoende buffercapaciteit
Voordeel: eenvoudig
bij output is er geen probleem
2. Interrupts: (I/O-device neemt het initiatief)
Ze onderbreken de microprocessor in zijn gewone bezigheden
Microprocessor moet er zich niet veel van aantrekken.
Werking van interrupts
17. Wat is DMA + interfacechip
Datatransfer tussen geheugen en I/O kan op 2 manieren:
- via geprogrammeerde overdracht: gecontroleerd door een programma dat loopt in de microprocessor
- via Direct Memory Access: - veel vlugger want de microprocessor komt er niet in tussen
- bij overdracht wordt gebruik gemaakt van bussen (normaal is microprocessor buscontroller, dus hebben we een
nieuwe nodig (DMA-controller, kortweg DMAC)
18. Wat is RAW-afhankelijkheid
Read After Write. Het is een regel bij pipelining die specifieert dat een volgende instructie pas kan gelezen worden als de huidige instructie
weggeschreven is.
19. Sprongvoorspelling (-predictie)
Pipelining werkt perfect zolang programma sequentieel werkt. Problemen treden op bij sprongen in het programma. Vroeger stopte de
pipeline als er een sprong inzat, nu proberen we de sprong te voorspellen (maken we de sprong of niet?)
Dynamisch

Statisch
*
in de loop van het programma zelf
vooraf door compiler
pipeline beslist op basis van statistiek
*) waarschijnlijk wel (achterwaarts) of niet (voorwaarts)
(historiebit)
hiervoor zijn 2 verschillende opcodes nodig
*) we voeren een simulatie uit (profileringstest)
te ingewikkeld voor PC’s, maar niet voor mainframes
20. Geef de verschillende soorten ROM
Naam:
Categorie,
wissen?,
ROM:
Read-Only,
Onmogelijk,
PROM:
Read-Only,
Onmogelijk,
EPROM: Vooral lezen, UV-licht,
EEPROM: Vooral lezen, elektrisch,
Flash:
Lezen/Schrijven elektrisch,
per byte te veranderen,
Nee,
Nee,
Nee,
Ja,
Nee,
vluchtig,
Nee,
Nee,
Nee,
Nee,
Nee,
voorbeeld van gebruik
Grote huishoudelijke apparatuur
Kleine apparatuur
Prototypes van apparaten
Prototypes van apparaten
film voor digitale camera, memorystick
21. Geef de verschillende soorten RAM (hoe regelmatig wordt DRAM ververst  2ms)
RAM = Random Access Memory, Read And Modify
SRAM: statische RAM, maakt gebruik van flipflops
DRAM: dynamische RAM, maakt geen gebruik van flipflops. Gegevens moeten opgefrist worden om verlies door lekking te voorkomen
22.
Wat is het verschil tussen microcontroller en microprocessor
Microprocessor:
Dit is een hele CPU (Central Processing Unit) op 1 chip (bv Pentium II,III, Powerpc). Het is een onderdeel van een computer net zoals
a. Input  keyboard, muis, scanner
b. Output  scherm, printer
c. Input en Output  HD, diskette, modem
d. Interface  EIDE
e. Geheugen
Microcontroller:
Dit is een volledige “computer” op 1 chip (Single Chip Computer). Het wordt gebruikt om 1 bepaald programma uit te voeren
Voorbeelden: - audio en video-apparatuur
- autonijverheid: ABS, injectiesystemen
elektronische huishoudapp: wasmachine, microgolf
- elektronische betaalsystemen
23.
Wat is de relatie tussen Cache en schrijfbewerkingen
Er kunnen zich 2 situaties voordoen:
a. Het adres zit reeds in het cachegeheugen (door voorgaande bewerking):
2 manieren van aanpakken:
i. Write through: onmiddellijk aanpassen in cache en geheugen
voordeel: cache en geheugen werken steeds met dezelfde gegevens
nadeel: veel extra dataverkeer
ii. Copy Back: Aanpassen van het hoofdgeheugen gebeurt pas als blok uit de cache verdwijnt (en gewijzigd is)
voordeel: minder dataverkeer
nadeel: geen permanente gelijkheid tussen hoofdgeheugen en cache
b. Het adres zit nog niet in het cachegeheugen:
24. Datapad, timing, micro-instructies (adhv Mic-1)
Het datapad is het deel van de microprocessor dat de Alu bevat met de bijbehorende input en output (ALU, shifter, bussen en registers).
Timing: 1 datacyclus zal deelcycli nodig hebben. De cyclus start op de dalende flank van het kloksignaal. De deelcycli zijn:
- een deelcyclus voor het aandrijven van het datapad (initialisatie)
- een deelcyclus voor het beschrijven van de A en B bussen (gevraagde waarden worden hierop gezet)
- een deelcyclus voor de verwerking van de gegevens in de ALU en de shifter
- een deelcyclus voor voortplanting vanuit de shifter over de C-bus naar de registers
De juiste bewerkingen staan beschreven in de micro-instructies, dit zijn een set controle-signalen nodig om het datapad te besturen gedurende
1 cyclus.
De Mic-1 benadert het geheugen op 2 manieren:
- lezen en schrijven van data (9 bytes) gebeurt met MAR (Memory Address Register) en MDR (Memory Data Register)  aangegeven door
rd en wr in de micro-instructies
- lezen van instucties (1 byte) gebeurt met PC (Program Counter) en MBR (Memory Buffer Register)  aangegeven door fetch in de microinstructies
Deze 2 benaderingen kunnen tegelijkertijd gebeuren
25. Bespreek de Harvard-architectuur
Dit is een basisarchitectuur voor prgrammageheugen en datageheugen. Ze zitten gescheiden van elkaar. (bv bij microcontrollers, DSP-chips
(processoren scpeviaal voor digitale signaalverwerking)(= embedded systemen)
 Von Neumann-architectuur: datageheugen en programmageheugen zit in een een gemeenschappelijk geheugen.
26. Bespreek de Von-Neumann cyclus
INSTRUCTION FETCH
EXECUTE
DECODE
DATA FETCH
De Von Neumann-cyclus wordt door de controle-eenheid in een oneindige lus gerealiseert.
27. Verschil tussen PCI-bus en USB-bus (op welk niveau zitten die verschillen?)
De ISA (Industry Standard Architecture) bus: aangepaste vorm van de IBM PC-bus (omwille van ‘backward compatibility’ nog terug te
vinden op alle Intel computers). De ISA bus is een verouderde bus met een maximale bandbreedte van 16,7 MB/s (volstond niet meer voor
nieuwe software)
De PCI (Peripheral Component Interconnect) bus: is sneller dan de USB. Hij heeft een bandbreedte van 528MB/S en loopt op een hogere
kloksnelheid dan de ISA-bus. De PCI bus gebruikt synchrone buscontrole.
De USB (Universial Serial Bus): Dit is een I/O-bus voor langzame randapparatuur, daar zou PCI te duur voor zijn. Het voordeel van USB is
dat je indien je randapparatuur wilt aansluiten je je computerkast niet moet openmaken. Een ander belangrijke eigenschap van USB is dat 1
kabel gebruikt wordt voor zowel datatransfer van en naar de randapparatuur als dat het de randapparatuur van stroom voorziet.
28.
Bespreek assembleerproces
2 lezingen of gangen (passes). Waarom? Er zijn voorwaartse referenties (verwijzingen naar onbekende symbolen later in het programma)
a. 1e gang: aanmaken symbooltabel via opcodetabel en pseudo-instructietabel
Na deze eerste pass zijn alle symbolen gekend, er is geen sprake meer van voorwaartse referenties.
b. 2e gang = vertaling (Elk statement wordt gelezen, geassembleerd en als uitvoer gegeven)
genereren van objectprogramma en eventueel maken van een .lst file (fouten in code worden hierin gezet)
genereren van de gegevens voor de linker
De vertaling wordt opgezocht in de symbooltabel en de opcodetabel.
c. Linken en laden= samenvoegen van verschillende objectmodules tot 1 uitvoerbaar binair programma( .exe).
relocatieprobleem
externe referenties: de assembler weet niet welk adres hij in de instr. CALL B moet zetten
Oplossing: linker voegt alle afzonderlijke adresruimtes van de objectmodules samen in 1 lineaire adresruimte. Opstellen tabel
 lengte module + zijn startadres
29. Bespreek de bussen op processorniveau.
Waarom bussen? Microprocessorsystemen transporteren zeer veel gegevens tussen verschillende bouwstenen van het systeem, en het is
onlogisch en onmogelijk om tussen elke 2 bouwstenen een directe, individuele verbinding te maken. Bussen zijn dus de verbindingen tussen
de verschillende bouwstenen waarover de bouwstenen met elkaar communiceren en benodigde gegevens doorspelen.
Bussen komen op verschillende niveaus voor: - interne bussen: inwendig in de microprocessor
- externe bussen: tussen toestellen onderling
- systeembussen: tussen I/O, microprocessor en geheugen (bijv PCI, ISA)
Systeembussen zijn de Databus (bidirectioneel), Adresbus (unidirectioneel) en de controlelijnen (zorgen voor asynchrone en synchrone
timing). Deze laatste controlelijnen duiden aan welke onderdelen deelnemen aan een datatransfer.
30. Bespreek pipelining
Bij het ontwerpen van een micro-architectuur moeten we kosten afwegen tegenover snelheid (sneller, groter chipoppervlak = duurder). Hoe
kunnen we nu de verwerkingssnelheid verhogen:
- reduceren van het aantal klokcycli nodig voor het uitvoeren van een instructie
- organisatie zo eenvoudig mogleijk houden (kortere klokcycli)
- meer instructies “tegelijkertijd” (parallel) laten verlopen = pipelining
Pipelining is parallellisme op instructieniveau. Het aantal stadia is doorslaggevend voor de snelheidswinst die men kan boeken.
31. Bespreek relocatie – dynamische binding + waarom
32. CISC  RISC
CISC = Complex Instruction Set Computer: Deze computers zijn het gevolg van de tendens om steeds ingewikkelder instructies op te nemen
in de hardware, waardoor complexe bewerkingen met minder instructies en sneller konden werken. Het probleem is dat men te veel
instructies heeft willen opnemen in de hardware, waardoor men grotere chips zou moeten maken. Men is van deze manier van werken
teruggekeerd.
RISC = Reduced Instruction Set Computer: Hier is de aanpak om alleen de instructies te implementeren die echt nodig zijn of veel
voorkomen en deze optimaliseren we, omdat 90% van de programmas toch met simpele instructies werkt.
Moderne ontwerp-principes om snelle te kunnen werken:
- veel voorkomende instructies worden uitgevoerd door hardware (rechtstreeks zonder microprocessor)
- maximaliseer de frequentie waarmee instructies worden opgestart (pipelining)
- eenvoudig decodeerbare instructies
- toegang tot geheugen enkel via LOAD/STORE
Ook dit heeft allemaal een limiet, een mogelijkheid om verder te gaan wordt geboden door parallellisme.
33. Verklaar:
a. Program Counter
Deze bevat het adres in het programmageheugen van de volgende uit te voeren instructie . De microprocessor plaatst adres uit
de Program counter op de adresbus. Geheugen plaatst inhoud van het gevraagde adres op de databus. Microprocessor leest de
inhoud van de databus en steekt die data in het instructieregister.
b. Horizontale microprogrammering
Maximaal ongecodeerd: codeerder wordt weggelaten.
ieder nodig signaal moet als afzonderlijk signaal worden behandeld
is snel zoveel mogelijk signalen
op de chip: veel baantjes. Hoe meer baantjes, hoe moeilijker ontwikkelingsproces (=DUUR)
c. Verticale microprogrammering
Maximaal gecodeerd: zo klein mogelijke opdrachten in zo weinig mogelijk lijnen
Trager laar ruimtebesparend dan Horizontale Microprogrammering
Indien men nog meer wil besparen op plaats  nanoprogrammering
d. Nanoprogrammering
Is interessant als in een programma bepaalde opdrachten regelmatig terugkeren
e. Macros
Reeks commandos die vaak samen voorkomen groeperen als 1 opdracht (analoog WORD).
Het is een methode die een naam toekent aan een reeks instructies.
Wanneer een reeks instructies veelvuldig voorkomt, dan kunnen we
- steeds opnieuw schrijven: tijdrovend
- een subroutine maken: trager door de sprongen en het terugkeren
- macros gebruiken: telkens als de macro-naam vermeld is zal assembler deze vervangen door stukjes tekst.
Voordeel: sneller dan steeds opnieuw typen.
Nadeel: niet compacter
f. Mnemonics
Mnemonis zijn de afkortingen die gebruikt worden bij het programmeren op assembler-niveau. (bv JMP, ADD, MOVE).
Assembler wordt vertaald door de machine waarop je een programma schrijft. Het voordeel van het schrijven van programmas
in Assembler is dat ze zeer snel zijn.
Er bestaat ook nog zoiets als “cross-assembler”. Dit is nodig als een programma wordt geschreven voor een ander type toestel.
g. Wat is ‘Big-Endian’ en ‘Little-Endian’
Geheugen is een 1dimensionele matrix van elementair adresseerbare eenheden (BAU: Basi Adressable Units) meestal 1byte.
Gegevens die meer dan 1 byte in beslag nemen kan men op 1 manier opslaan:
- Big Endian: het meest beduidende bit wordt eerst opgeslaan (IBM)
- Little Endian: het minst beduidende bit wordt eerst opgeslaan (Intel)
h. Wat is Infixnotatie/Postfixnotatie:
Heeft te maken met stack-adressering.
i. Busarbiter
De busarbiter beheert de bus. Als een apparaat de bus wil gebruiken, dan moet hij een aanvraag (REQ)=request) sturen naar de
busarbiter. Het apparaat houdt dan zijn grant (GNT)-lijn in de gaten. Als deze door de arbiter wordt aangezet, dan mag het
apparaat de bus de volgende cyclus gebruiken. Bij lange transacties kan de busarbiter de GNT-lijn van het apparaat (dat de bus
op dat ogenblik gebruikt) uitzetten, zodat het apparaat weet dat het de bus op het einde van de cyclus moet afgeven.
j. Tri-state
Busaansluitingen hebben 3 toestanden (hoog “1” , laag “0” , hoogimpedant “Z”)
De aangesloten componenten die niet bij het betrokken zijn bij het dataverkeer(= stroom) bevinden zich in een hoogimpêdante
toestand (hoge weerstand). Zo belasten ze de bus niet.
k. opcode
Opcode is een unieke combinatie van enen en nullen die aanduidt welke operatie de microprocessor moet uitvoeren. Het duidt
aan hoe het eropvolgende adresdeel geïnterpreteerd moet worden.
Opcode en het adresdeel zijn de 2 onderdelen van een instructie.
l. controle-eenheid
De controle-eenheid voert een micro-programma uit. Het realiseert de Von Neumann cyclus via een oneindige lus. Het
interpreteert de ISA-instructies. De controle-eenheid coördineert zo het ophalen van instructies, wegschrijven van data,
decodeert de instructies die in het instructieregister worden geladen.
Download