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 stroomuitvalkop 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.