8: Processor & Geheugen Flashcards

1
Q

Hoe is het geheugen van een computer gescheiden met de CPU?

A

Zowel fysisch als functioneel.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Waarom is het geheugen en de CPU sterk met elkaar verbonden?

A

Veel van de instructies in de instructieset vereisen immers geheugentoegang.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Stel een eenvoudig blokschema van de processor met het geheugen voor.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Waaruit is het schema van de CPU met het geheugen opgebouwd?

A

Uit drie belangrijke onderdelen:

  • de arithmetic/logic unit of ALU,
  • de control unit of CU en
  • het geheugen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Welke onderdelen zitten er in een CPU? (schema)

A

De ALU en de CU zijn een onderdeel van de CPU.

Er is in de processor een input/output of I/O interface voorzien.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Waarvoor is de ALU verantwoordelijk?

A

De rekenkundige en logische eenheid is het onderdeel van de processor dat gegevens tijdelijk opslaat en er bewerkingen op uitvoert.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Waarvoor is de CU verantwoordelijk?

A

De controle-eenheid interpreteert en controleert de uitvoering van de instructies.

De controle-eenheid bepaalt welke specifieke instructie moet uitgevoerd worden door het uitlezen van de inhoud van de program counter, die een onderdeel is van de controle-eenheid.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hoe gebeurt de control van de uitvoering van instructies?

A

Die controle gebeurt door het uitvoeren van een reeks handelingen die bij de fetch & execute cyclus horen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wat is een register?

A

Een register is een enkelvoudige opslagplaats in de CPU die kan gebruikt worden voor een specifieke taak.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Waarvoor wordt een register gebruikt?

A

Een register wordt gebruikt om een binaire waarde tijdelijk op te slaan, te bewerken of er berekeningen mee uit te voeren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wat bepaalt de specifieke functie van een register in een processor?

A

De grootte van het register, de manier waarop het aangesloten is en de bewerkingen waarvoor het gebruikt kan worden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wat is het verschil tussen een register in de CPU en een register in het geheugen?

A

Elk register in de CPU is verantwoordelijk voor een specifieke rol.

Dit is in tegenstelling tot het geheugen, waar elke cel identiek is.

Registers verschillen ook van het geheugen op het vlak van adressering. Registers hebben geen adres, maar worden direct door de control unit bestuurd bij de uitvoering van instructies.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Hoe breed kan een register zijn?

A

Registers kunnen een breedte hebben van één bit tot verschillende bytes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Op welke verschillende manieren kunnen registers gebruikt worden in een computer?

A

Afhankelijk van het soort register, kan het gegevens bijhouden die verwerkt worden, een instructie die uitgevoerd wordt bevatten, een geheugen- of I/O-adres bevatten of speciale binaire codes bijhouden.

Deze codes bevatten informatie over de status van de computer, zoals voorwaarden die gebruikt worden bij sprongopdrachten.

Bepaalde registers kunnen voor verschillende taken gebruikt worden, terwijl andere slechts voor één specifieke taak ontworpen werden.

Er bestaan speciale registers voor het bijhouden van floating-point getallen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Waartussen kan een computer geen onderscheid maken?

A

Tussen een getal dat gebruikt wordt als numerieke waarde in een programma en een getal dat een instructie voorstelt.

De betekenis wordt door de context bepaald.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wat kan de inhoud van een register bevatten?

A

Zowel gegevens als instructies.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Wat is een accumulator?

A

Bij de processor worden berekeningen uitgevoerd in de accumulator.

Meestal zijn er in een CPU verschillende accumulators, die men ook general-purpose registers (voor de gebruiker zichtbare registers) noemt.

In bepaalde computers worden die general-purpose registers of accumulators beschouwd als een deel van de ALU, bij andere fabrikanten beschouwt men ze als een afzonderlijke registereenheid.

Bij de meeste computers worden die registers eveneens gebruikt om gegevens door te geven tussen verschillende geheugenadressen onderling, en tussen het geheugen en de I/O apparaten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Over welke belangrijke registers beschikt de controle-eenheid?

A
  • de program counter die het adres van de huidige (of volgende instructie bevat;
  • het instructieregister dat de huidige instructie bevat;
  • het memory address register of geheugenadresregister (MAR) dat het adres van een geheugenlocatie bevat;
  • het memory data register of geheugeninhoudregister (MDR), ook memory buffer register genoemd (MBR), bevat de gegevens die moeten opgeslagen worden in - of uitgelezen worden uit - het geheugenadres dat op dat ogenblik in MAR staat.

Hoewel het MAR en MDR deel uitmaken van de CPU, zijn deze registers functioneel meer verwant met het geheugen zelf.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Wat zijn flags?

A

Vlaggen zijn regiters van één bit in de controle-eenheid.

Ze laten toe dat de computer speciale condities kan bijhouden zoals bijvoorbeeld rekenkundige carry en overflow.

Soms worden een aantal flags samengevoegd tot wat men een statusregister noemt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Waarvoor zorgt de I/O-interface in een CPU?

A

Een I/O-interface verzorgt de in- en uitvoer van gegevens tussen de CPU en de verschillende randapparaten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Waaruit bestaat een I/O-interface?

A

Voor de eenvoud zien we de I/O-interface als een paar I/O-registers.

Eén daarvan bevat het adres van het apparaat, terwijl het andere de gegevens bevat. Ze werken net zoals het MAR en het MDR.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Welke primaire soorten handelingen ondersteunen de meeste registers?

A
  1. Registers kunnen geladen worden met informatie uit andere locaties, meer in het bijzonder geheugenadressen en registers. Daarbij wordt de vorige inhoud van het register gewist.
  2. Gegevens uit een andere locatie kunnen opgeteld worden bij, of afgetrokken worden van de inhoud van de waarde in het register. Dan blijft de som of het verschil in het register staan.
  3. Gegevens kunnen naar links of rechts verschoven of geroteerd worden, over één of meer bits. Deze mogelijkheid is belangrijk bij het implementeren van de vermenigvuldiging en de deling.

Daarnaast zijn er vaak voorzieningen om de waarde 0 in het register te plaatsen (of een clear opdracht te geven) en de inhoud van een register te inverteren (wat overeenkomt met de 1-complement bewerking).

In het algemeen zijn er ook voorzieningen om de inhoud van het register met 1 te verhogen. Dit wordt een increment genoemd. Die opdracht kan gebruikt worden om de program counter te verhougen, te tellen in lussen bij het aanpassen van de index bij gebruik van array’s.

Soms is ook het verminderen met 1 voorzien. Dit is een decrement.

Als we de inverteeropdracht combineren met de incrementopdracht ontstaat het 2-complement van de waarde in het register. De meeste computers beschikken daarvoor over een specifieke instructie, maar hebben ook nog andere instructies voor het resetten, inverteren, verhogen en verlagen van de inhoud van general-purpose registers.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Hoe stelt de control unit toestandsvlaggen in?

A

Op 1 (set) of 0 (reset) ten gevolge van situaties die ontstaan tijdens de uitvoering van instructies.

Die vinden we in het statusregister terug.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Wat is het voordeel van registers in de processor?

A

Ze zijn veel sneller dan het werkgeheugen.

Toegang tot het werkgeheugen duurt één of twee klokcycli. Gegevens in een register benaderen, vraagt geen wachttijd.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Welke registers heeft een Intel 8086 processor?

A
  • General Purpose Registers
  • Index Registers
  • Pointer registers
  • Segment Registers
  • Special Purpose Registers of Control Registers

Deze registers hebben een grootte van 16 bits.

Interne registers, zoals het instructieregister, memory address register en memory buffer register zijn niet vermeld.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

General Purpose Registers?

A
  • AX register of accumulator, waar de meeste bewerkingen (rekenkundige en logische) uitgevoerd worden. Hoewel de meeste bewerkingen ook in andere registers kunnen gebeuren, zijn ze meestal efficiënter uit te voeren in de accumulator.
  • BX register of base, wordt gebruikt bij indirecte adressering.
  • CX register of count, is bedoeld om als teller gebruikt te worden bij iteraties in lussen of bij het tellen van het aantal tekens in een string.
  • DX register of data, bevat de overflow van bepaalde rekenkundige bewerkingen of het I/O-adres als er gegevens over de I/O-bus gestuurd worden.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Index Registers

A
  • SI register of source index, kan gebruikt worden als pointer om indirect naar het geheugen te gaan, en bij het verwerken van strings.
  • DI register of destination index, zie SI register.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Pointer registers?

A
  • BP register of base pointer, voor het bereiken van parameters en lokale variabelen in een procedure.
  • SP register of stack pointer, verwijst naar de program stack. Kan normaal niet gebruikt worden voor rekenkundige bewerkingen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Segment Registers

A
  • CS register of code segment, verwijst naar het geheugenblok van 64K waarin de programmacode terug te vinden is die op dat ogenblik uitgevoerd wordt. De waarde kan tijdens het uitvoeren van een programma wijzigen, zodat programma’s niet beperkt zijn tot 64K.
  • DS register of data segment, verwijst naar het geheugenblok van 64K waarin globale variabelen terug te vinden zijn. Ook hier kan de waarde bij het uitvoeren van een programma aangepast worden.
  • ES register of extra segment
  • SS register of stack segment, verwijst naar de plaats waarde processor belangrijke informatie over de toestand van de machine bewaart. Daar staan ook de terugkeeradressen van subroutines, de parameters vna procedures en functies en lokale variabelen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Special Purpose Registers of Control Registers

A
  • IP register of instructiepointer, bevat het adres van de instructie die uitgevoerd wordt.
  • F register of flags register, bevat een aantal binaire waarden die informatie geven over de toestand van de processor. Daaronder vinden we zero (ZF), carry (CF), overflow (OF) en sign flags (SF).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Wat vertegenwoordigt deze afbeelding?

A

Op de figuur zie je een vereenvoudigde voorstelling van de relatie tussen de registers MAR en MDR en het geheugen.

Elke cel van het geheugen onthoudt één bit. Die cellen zijn georganiseerd in groepen van één of meer bytes. Elke groep is samengesteld uit de datacellen die bij één geheugenadres horen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Welke registers vormen een interface tussen de CPU en het geheugen?

A
  • MAR
  • MDR
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Geef het synoniem van MDR.

A

Het MDR wordt door bepaalde fabrikanten ook Memory Register of MBR genoemd.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

MAR-register?

A

Het MAR bevat het adres van waaruit gelezen moet worden.

Het MAR is verbonden met een decoder die één adreslijn in het geheugen activeert. Er bestaat voor elke groep cellen zo’n adreslijn. Als er met n-bits geadresseerd wordt, zullen we na de adresdecoder 2n adreslijnen moeten hebben.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

MDR-register?

A

Het MDR is effectief verbonden met elke cel in het geheugen.

Elke bit van het MDR is verbonden met de overeenkomstige bit van elk geheugenadres. Door de adresseringswijze zijn we zeker dat er enkel één groep cellen op een gegeven ogenblik actief is.

Er kan dus maar één geheugenlocatie op een bepaald tijdstip geadresseerd worden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Wat vertegenwoordigt deze afbeelding?

A

Een gedetailleerde voorstelling van een geheugencel.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Hoe worden gegevens doorgegeven tussen het MDR en het geheugen?

A

Er bestaan drie lijnen die de geheugencel besturen. Een adreslijn, een lees/schrijf-lijn en een activatielijn.

De adreslijn van een bepaalde cel staat op aan als de computer die gegevens adresseert (MAR).

Met de lees/schrijf-lijn wordt aangegeven of de gegevens van de cel naar het MDR (lezen) of van het MDR naar de cel (schrijven) moeten gebracht worden. Deze lijn werkt door één van de twee schakelaars (lezen of schrijven) op 1 te zetten, in samenwerking met de adreslijn en de activatielijn.

De leesschakelaar staat aan als de adreslijn en de activatielijn beiden aan staan, en de lees/schrijf lijn op lezen staat. De schakelaar verbindt dan de uitgang van de cel met het MDR. De schrijfschakelaar staat aan als de adreslijn en de activatielijn aan staan, en de lees/schrijf lijn op schrijf staat. De schakelaar verbindt dan de MDR-lijn met de ingang van de cel. Daardoor komt de databit van de MDR in de cel terecht.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Hoe verloopt de interactie tussen processor en geheugenregisters?

A

Om gegevens te lezen of te bewaren in een bepaalde geheugenlocatie zal de processor een adres uit één of ander register kopiëren naar het MAR. Merk op dat het alleen adressen zijn die naar het MAR mogen gestuurd worden. Er is nooit een reden om het omgekeerde te doen. De CPU controleert immers de geheugentransfer en weet welk adres er gebruikt moet worden.

Op het ogenblik dat het MAR geladen wordt, stuurt de CPU een bericht naar het geheugen om te melden of het om een lees- of schrijfopdracht gaat. Dit gebeurt door het instellen van de lees/schrijf-lijn.

Op het geschikte ogenblik (een tijdje na het doorgeven van het adres aan het MAR) zet de CPU de schakelaar aan die het MDR zal verbinden met de geheugencellen. Daardoor ontstaat een overdracht van gegevens uit het geheugen naar het MDR. Het MDR is een tweerichtingsregister. als er een schrijfopdracht gegeven wordt, zullen er gegevens uit een register naar het MDR gebracht worden. Van daaruit zullen ze worden weggechreven in het geheugen. De gegevens die oorspronkelijk op die plaats in het geheugen aanwezig waren, zullen verloren gaan. De nieuwe gegevens uit het MDR komen dna op die plaats terecht. Omgekeerd, als het een opdracht is om gegevens uit het geheugen te lezen, worden de gegevens van het geheugen naar het MDR gebracht, en van daaruit naar één van de registers in de CPU. In dit geval blijt de inhoud van het geheugen intact, maar de inhoud van het MDR wordt vervangen door de gegevens uit het geheugen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Welke twee facotren bepalen de capaciteit van het geheugen?

A

Het aantal bits in het MAR bepaalt hoeveel verschillende locaties er kunnen gedecodeerd worden.

Een andere factor is het aantal bits in het adresveld van de instructieset. Dit bepaalt hoeveel adressen direct kunnen bereikt worden met de instructie.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

Hoe berekent men het aantal mogelijke geheugenadressen voor MAR met k bits?

A

M = 2k

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Wat bepaald de grootte van het woord dat in één opdracht wordt opgeslagen of gelezen?

A

De grootte van het MDR.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

In welke veelvouden worden gegevens en instructies teruggevonden in de meeste moderne computers?

A

In veelvouden van 8-bits of bytes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Wat bepaalt de de gegevens en instructies in veelvouden van 8-bits?

A

Dit bepaalt dat de kleinste instructie 8 bits breed is.

De meeste instructies passen niet in 8 bits. In dat geval beschik je maar over een opcode van 3 bits (8 verschillende instructies) en 5 bits voor adressering (32 adressen). Dat is ruim onvoldoende.

Daarom bestaan er langere instructies van 16, 24, 32 of zelfs meer bits die in opeenvolgende geheugenadressen bewaard worden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Wat is een voorwaarde om snel te werken in het geheugen?

A

Om snel te werken is het nodig om een hele instructie op te halen met één fetch.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

Waarom laten de meeste geheugenontwerpen toe om verschillende opeenvolgende bytes te lezen of weg te schrijven in één enkele opdracht?

A

Gegevens die gebruikt worden voor rekenkundige bewerkingen hebben een precisie van verschillende bytes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

Hoeveel verschillende geheugenadressen adresseert een 80x86-processor ten hoogste?

A

2n

Daarbij is n het aantal bits dat de adresbus breed is. Meestal zal die computer fysisch niet over die hoeveelheid geheugen beschikken. De 80x86-processoren hebben een adresbus die 20, 24, 32 of 36 adreslijnen bevat.

Met de 20, 24, 32 of 36 adreslijnen kunnen we respectievelijk 1MB, 16MB, 4GB of 64GB geheugen benaderen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

Leg deze afbeelding uit.

A

Om gegevens op een bepaald adres (bijvoorbeeld 250) te bewaren, plaatst de CPU die gegevens op de databus (1), en komt het adres 250 op de adresbus (2). Daarop wordt de schrijflijn geactiveerd (3), en worden de gegevens opgeslagen in de byte met adres 250 (4).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
48
Q

Leg deze afbeelding uit.

A

Bij het lezen uit het geheugen wordt het adres 250 op de adreslijnen (1) geplaatst. De juiste geheugencel wordt geselecteerd (2). Daarna wordt de leeslijn geactiveerd (3), en kan de informatie van de datalijnen gelezen worden (4).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
49
Q

Hoe leest de processor een word of een doubleword? (meer dan 8 bits)

A

De oplossing die de 80x86-familie gebruikt om een word op te slaan: de laagste orde byte op het opgegeven adres, en de hoogste orde byte op de volgende plaats. Daardoor zal een word twee opeenvolgende bytes in beslag nemen.

Een double word zal op die manier vier opeenvolgende bytes in beslag nemen. Het adres van een double word is het adres van zijn laagste orde byte. De hoogste orde byte vinden we op het adres van de laagste orde byte + 3.

Bytes, words en double words kunnen op elke geldige plaats in het geheugen bewaard worden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
50
Q

Wat impliceert het feit dat een geheugen per byte adresseerbaar is?

A

De kleinste hoeveelheid geheugen die kan geadresseerd worden is 1 byte.

Als de processor 4 bits nodig heeft, zal er toch een byte moeten gebruikt worden. Dan worden de extra 4 bits van de acht niet gebruikt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
51
Q

Waaruit bestaat de fetch & execute instructiecyclus voornamelijk?

A

Uit het kopiëren van gegevens van één register naar een ander register.

Wees ervan bewust dat hierbij niets gewijzigd wordt aan het register waaruit de gegevens gelezen worden, maar wel in het register waar de gegevens naartoe gekopieerd worden.

52
Q

Wat is de eerste stap in de instructiecyclus?

A

Het fetchen van de instructie uit het geheugen.

Omdat het adres van de uit te voeren instructie in de program counter te vinden is, zal de eerste stap de inhoud van die program counter naar het MAR-register kopiëren. Zo kan de computer de instructie op dat adres terugvinden.

53
Q

Welke stappen zal de computer ondernemen om de STORE instructie uit te voeren?

A

PC -> MAR

MDR -> IR

IR[adres] -> MAR

A -> MDR

PC + 1 -> PC

54
Q

Welke stappen zal de computer ondernemen om de ADD instructie uit te voeren?

A

PC -> MAR

MDR -> IR

IR[adres] -> MAR

A + MDR -> A

PC + 1 -> PC

55
Q

Welke stappen zal de computer ondernemen om de LOAD instructie uit te voeren?

A

De eerste stap bij de uitvoering van elke instructie zal er zo uit zien:

  1. PC -> MAR

De volgende stap is dan dat die instructie overgebracht wordt van het MDR naar het instructieregister:

  1. MDR -> IR

De instructie zal in het instructieregister blijven tijdens de rest van de instructiecyclus. Het is de specifieke instructie die nu in het instructieregister zit, die de stappen van de rest van de cyclus zal bepalen. Deze stap maakt dan ook een einde aan de fetch fase van de instructiecyclus.

De CPU gaat op zoek naar het adres dat met de LOAD instructie meekwam, en leest daarop de gegevens die op dat adres te vinden zijn:

  1. IR[adres] -> MAR

De voorstelling IR[adres] wijst erop dat alleen het adresgedeelte van de inhoud van het IR doorgegeven wordt. Deze stap dient als voorbereiding op de effectieve leesopdracht die de gegevens uit het geheugen in de accumulator (A) brengt:

  1. MDR -> A

Daarna zal de CPU de program counter met 1 verhogen, waarna de cyclus compleet is en de processor de volgende instructie kan uitvoeren. Deze stap kan in principe uitgevoerd worden op elk ogenblik nadat de instructie in het instructieregister gebracht werd.

  1. PC + 1 -> PC
56
Q

Hoe kan de verwerking van instructies sneller gebeuren?

A

Gedurende de fetch-excecute cyclus bepaalde stappen simultaan uit te voeren. Daardoor word het aantal klokcycli voor het uitvoeren van instructie ingekort.

De computer kan de instructies ook overlappend uitvoeren. Dan kunnen er stappen van verschillende instructies op eenzelfde ogenblik verwerkt worden. In zo’n geval spreken we van pipelining.

57
Q

Waarin bestaat pipelining in zijn eenvoudigste vorm?

A

Terwijl de eerste instructie in de execute fase is, de tweede te fetchen.

Het duurt nog steeds even lang om één instructie uit te voeren, maar we stellen wel een veel hoger aantal instructies per tijdseenheid vast.

58
Q

Met wat kan pipelining vergeleken worden?

A

Deze methode is vergelijkbaar met een lopende band waarop auto’s geassemblreed worden.

Daar staan op een gegeven ogenblik ook verschillende wagens in verschillende stadia van hun afwerking.

59
Q

Welke instructie kan er roet in het eten gooien van pipelining?

A

De spronginstructie.

Alle instructies die op dat ogenblik in de pijplijn aanwezig zijn, moeten dan verwijderd worden.

60
Q

Over welke technieken beschikken moderne processoren om de problemen bij een spronginstructie bij de pipelining op te vangen?

A

Dit kan bijvoorbeld gebeuren door twee of meer pijplijnen te gebruiken. Dan kunnen instructies van de twee mogelijke resultaten van bijvoorbeeld een IF-THEN-ELSE gefteched worden. Afhankelijk van het resultaat van de test wordt dan één van beide pijplijnen verder gebruikt.

Het probleem dat er moet gewacht worden op het resultaat van voorgaande instructies kan opgelost worden door er voor te zorgen dat die instructies niet juist na elkaar worden uitgevoerd. Moderne computersystemen beschikken over logica die de instructies kan herordenen zodat die pijplijn optimaal blijft werken en vertragingen tot een mininum herleid worden. Het herordenen van instructies laat ook toe om met parallele pipelines en verschillende CPU’s te werken. Dan kunnen er verschillende instructies op hetzelfde ogenblik verwerkt worden. Die techniek noemen we superscalaire verwerking.

61
Q

Wat zijn enkele nadelen van pipelining en herordening?

A

Pipelining en herordening van instructies maken de elektronische schakelingen in de processor er niet eenvoudiger op.

Er moeten ook voldoende beveiligingen ingebouwd worden om alle eventuele fouten die ontstaan door abnormale opeenvolgingen van instructies uit te sluiten.

62
Q

Welke meting wordt soms gebruikt om de kracht van de machine weer te geven?

A

Het gemiddelde aantal instructies dat per seconde uitgevoerd wordt, gemeten in miljoen instructies per seconde (MIPS).

63
Q

Waarom vertelt MIPS niet het hele verhaal van de kracht van de processor?

A

Hoeel het getal enige waarde heeft, ligt de beperking in de kracht van de individuele instructies die processorafhankelijk kan zijn.

Een ADD instructie die twee 8-bit getallen optelt, is minder krachtig dan de instructie die twee 32-bit getallen optelt in dezelfde tijd.

64
Q

Wat is een accuratere manier dan MIPS om de kracht van een processor te meten?

A

Benchmarkprogramma’s

Die bepalen van verschillende computers het aantal MIPS aan de hand van een meting van de tijd die nodig is om een bepaald probleem op te lossen.

65
Q

Wat is het cachegeheugen?

A

Het cachegeheugen zit tussen de processor en het hoofdgeheugen.

Het is een kleine hoeveelheid zeer snel geheugen.

66
Q

Wat is het verschil tussen cachegeheugen en het gewoon geheugen?

A

In tegenstelling tot gewoon geheugen hebben de bytes in het cachegeheugen geen vaste adressen.

Het cachegeheugen kan andere adressen toewijzen aan plaatsen in het geheugen.

67
Q

Wat is het voordeel van cachegeheugen?

A

Het cachegeheugen kan andere adressen toewijzen aan plaatsen in het geheugen. Daardoor kunnen recent gebruikte waarden in het cachegeheugen gehouden worden.

Adressen die d eprocessor nooit of geruime tijd niet gebruikt heeft, blijven in het hoofdgeheugen.

Omdat de meeste benaderingen gebeuren naar recent gebruikte adressen (of in de buurt van recent gebruikte adressen) vinden we de gegevens meestal in het cachegeheugen terug.

68
Q

Waarom is het cachegeheugen op zich niet de perfecte oplossing?

A

Hoewel een programma het grootste deel van de tijd code uitvoert die op een bepaalde plaats in het geheugen staat, kan er toch regelmatig een procedure opgeroepen worden die code nodig heeft die niet in de cache aanwezig is.

In zo’n geval moet de CPU naar het hoofdgeheugen en moet er gewacht worden (wait-states).

69
Q

Wat is een cache-hit?

A

Een cache-hit treedt op als de processor de gegevens in het cachegeheugen kan terugvinden.

Dan kan de processor de gegevens zonder te moeten wachten gebruiken.

70
Q

Wat is een cache-miss?

A

Bij een cache-miss wil de processor naar gegevens die niet in het cachegeheugen te vinden zijn.

Dan moet de processor lezen uit het hoofdgeheugen, met wat prestatieverlies als gevolg daarvan.

Om voordeel te halen uit de aanwezigheid in de cache, kopieert de processor die gegevens in de cache als er gegevens uit het hoofdgeheugen opgehaald worden.

Omdat het niet onwaarschijnlijk is dat die gegevens in de toekomst terug zullen gebruikt worden, zal het systeem tijd winnen als ze de volgende keer in de cache te vinden zijn.

71
Q

Wat zijn twee aspecten van geheugentoegang?

A

De instructies die de processor moet uitvoeren, staan meestal sequentieel in het geheugen (nabijheid in de ruimte), en de instructies worden vaak in lussen uitgevoerd (nabijheid in de tijd).

72
Q

Op welk aspect van geheugentoegang speelt het cachegeheugen in?

A

Op het tijdelijk aspect, maar niet op het ruimtelijke aspect.

Het opnemen van geheugenlocaties in het cachegeheugen zal de snelheid niet verhogen als er steeds opeenvolgende adressen gebruikt worden.

73
Q

Hoe tracht het cachegeheugen in te spelen op het ruimtelijk aspect van geheugentoegang?

A

Cachesystemen zullen ineens een reeks bytes kopiëren als er zich een cache-miss voordoet.

De meeste geheugenchips hebben speciale burst-modes die toelaten om zeer snel toegang te krijgen tot een reeks opeenvolgende adressen in het geheugen.

74
Q

Waar zit level 1 en 2 cachegeheugen in een processor?

A

Bij oude processoren was de level 1 cache in de processor aanwezig, terwijl de level 2 cache op het moederbord zat (en kon uitgebreid worden).

Bij moderne processoren zitten zowel level 1 als level 2 cache in de behuizing van de processor.

75
Q

Wanneer zou een cache voor vertraging zorgen?

A

Als je een programma zou schrijven dat het geheugen op totaal willekeurige plaatsen zou benaderen.

Als er bij elke cache-miss een aantal bytes worden gelezen waarvan er telkens maar één nodig is, verlies je tijd.

76
Q

Waarmee is de verhouding tussen hits en misses bij een cache evenredig?

A

Bij de grootte van het cachegeheugen.

77
Q

Wat is een normaal hit/miss ratio bij een cache?

A

Meestal 80 à 90% hits.

78
Q

Wat is de systeemklok?

A

De systeemklok staat in voor de synchronisatie binnen het computersysteem.

Het is een elektrisch signaal op de controlebus dat periodiek afwisselt tussen 0 en 1.

De tijd die verloopt tussen het overgaan van 1 naar 0 en de volgende overgang van 1 naar 0 noemen we de klokperiode of de klokcyclus.

79
Q

Wat is de klokfrequentie?

A

De klokfrequentie is het aantal klokcycli die per seconde uitgevoerd worden.

Een computer werkt bijvoorbeeld op 400 miljoen hertz of MHz.

Merk op dat de klokperiode het omgekeerde is van de klokfrequentie.

Een klok van 100 MHz heeft een periode van 10 ns (nanoseconde, miljardste van een seconde).

80
Q
A
81
Q

Wat is de implicatie van de systeemklok?

A

Omdat alle bewerkingen gesynchroniseerd zijn op de klok kan de processor niet sneller werken dan die klok.

82
Q

Hoe trachten sommige processor de systeemklok te omzeilen?

A

Er zijn wel processoren die de externe klok vermenigvuldigen en hebben op die manier een interne klokfrequentie die een veelvoud is van de externe klok die van op het moederbord geleverd wordt.

83
Q

Waarmee staat de klokfrequentie niet gelijk?

A

Het is niet omdat de processor op een bepaalde klokfrequentie werkt, dat er dan evenveel instructies uitgevoerd worden.

Afhankelijk van het type processor vragen bepaalde instructies een aantal klokcycli.

84
Q

Wat is de toegangstijd tot het geheugen?

A

De toegangstijd tot het geheugen is het aantal klokcycli dat het systeem nodig heeft om een adres in het geheugen te benaderen.

Hoe groter de toegangstijd, hoe trager het systeem.

Bij het lezen uit het geheugen is de toegangstijd de tijd die verloopt tussen het ogenblik waarop de processor het adres op de adresbus plaatst en de data van de databus neemt.

Bij een processor waar een toegangstijd van 1 cyclus geldt, ziet een leesopdracht eruit zoals in onderstaande figuur te zien is.

Schrijven naar een geheugenadres verloopt analoog.

85
Q

Wat is de meest voorkomende activiteit van de processor?

A

Geheugentoegang

86
Q

Hoeveel keer kan het lezen van of het schrijven in een geheugenadres gebeuren per klokcylus?

A

Deze handeling moet gesynchroniseerd worden met de systeemklok, daarom kan dit hoogstens één keer per klokcyclus gebeuren.

Bij bepaalde processoren duurt het zelfs langer.

87
Q

Welke twee kenmerken van geheugen zijn belangrijk?

A

De capaciteit (aantal bytes)

De snelheid (toegangstijd)

88
Q

Wat kan er mislopen tussen het geheugen en de CPU?

A

De CPU wacht niet op het geheugen.

Als het geheugen niet snel genoeg werkt, zal de processor rommel lezen en zal er geen correcte informatie weggeschreven worden.

Deze situatie zal het systeem doen vastlopen.

89
Q

Wat is noodzakelijk om zeker te zijn dat de CPU betrouwbaar werkt?

A

Alle gebeurtenissen moeten gesynchroniseerd worden op een kloksignaal.

De klok zal bepalen wanneer elke stap in een instructiecyclus gezet zal worden.

De klokpulsen liggen ver genoeg uit elkaar om er zeker van te zijn dat elke stap afgewerkt wordt vooraleer de volgende gestart wordt.

90
Q

Wat zijn wait-states?

A

Als de klokpulsen elkaar te snel opvolgen om er zeker van te zijn dat een bepaalde stap afgewerkt is, moet men wait-states invoegen.

Dan wordt de tijd van een extra klokpuls gewacht op de afwerking van de vorige stap.

91
Q

Waarvoor worden wait-states gebruikt?

A

Om snelle processors met traag geheugen te laten samenwerken.

Wat ten koste gaat van de performantie van die processors.

92
Q

Welke stappen in een instructie kunnen simultaan uitgevoerd worden?

A

De stappen die geen geheugentoegang nodig hebben.

Daardoor wordt het aantal klokpulsen voor die instructie beperkt, en gaat de computer op zijn beurt sneller werken.

Dat is de reden waarop de program counter na de eerste stap op elk ogenblik kan verhoogd worden met 1.

93
Q

In hoeveel klokpulsen kan de ADD-instructie uitgevoerd worden?

A
94
Q

Hoe werkt de ingebouwde klok van een computer?

A

De ingebouwde klok tikt als de spanning van de computer aan staat.

De frequentie van de klok wordt bepaald door een kwartskristal.

95
Q

Wat is een timinglijn?

A

De lijn voor het activeren van het geheugen.

De lijn is zo uitgevoerd at ze niet op aan komt vooraleer het juiste adres met de gegevens uit de MAR gedecodeerd werd. Als dit niet het geval was, zouden verschillende adressen een deel van hun bits naar het MDR sturen, en zouden de gegevens in de MDR niet betrouwbaar zijn. Dergelijke fouten zijn ontoelaatbaar. Het is dus belangrijk dat de timing exact gebeurt.

96
Q

De klok van een originele IBM PC had een frquentie van 4,77 MHz. Dat betekent dat de machine 4,77 miljoen stappen per seconde kon uitvoeren.

Als een typische instructie op een IBM PC ongeveer uit 10 stappen bestond, kon het toestel ongeveer 500 000 instructies per seconde uitvoeren.

A
97
Q

Welke bussen heeft een processor?

A
  • systeembus
  • databus
  • adresbus
  • controlebus
98
Q

Wat doet de systeembus?

A

De systeembus verbindt de verschillende onderdelen van een op de von Neumann-architectuur gebaseerde machine.

De 80x86-familie heeft drie belangrijke bussen: adresbus, databus en controlebus.

99
Q

Databus?

A

De 80x86-processor gebruikt de databus om gegevens te verschuiven tussen de verschillende onderdelen van de computer.

De breedte van de bus is afhankelijk van de processorgeneratie.

Deze bus bepaalt de grootte van de processor.

Op de 80x86-reeks heeft deze bus een breedte van 16, 32 of 64 lijnen.

De breedte van de databus heeft een veel sterkere invloed op de performantie van het systeem dan elke andere bus.

100
Q

Heeft de breedte van de databus invloed op de grootte van de bruikbare datatypes?

A

Nee, het betekent alleen dat de processor zoveel bits per geheugencyclus kan ophalen.

De 16 bits bus kan in eenzelfde tijd maar de helft van de gegevens van een 32 bits bus verplaatsen. Daardoor zijn de processoren met een bredere bus sneller.

Hoewel de processoren met een 16, 32 of 64 bits databus gegevens kunnen verwerken met een breedte die gelijk is aan die van de databus, kunnen ze ook met kleinere eenheden overweg.

Al wat mogelijk is met een smalle databus kan ook met een bredere databus.

101
Q

Wat is de adresbus?

A

De adresbus zorgt ervoor dat de gegevens die op de databus geplaatst worden bij de juiste bestemmeling (geheugenadres of I/O-apparaat) terecht komen.

102
Q

Hoe werkt de adresbus?

A

Om een onderscheid te maken tussen geheugenadressen en I/0-apparaten krijgen ze allemaal een uniek adres toegewezen.

Als de software een bepaald adres of apparaat wil benaderen, plaatst ze het adres ervan op de adresbus.

Schakelingen die verbonden zijn met het geheugen en de I/0-apparaten herkennen dan hun adres en geven opdracht aan het geheugen of het apparaat om de gegevens van de databus te nemen of er gegevens op te plaatsen.

103
Q

Hoeveel adressen kan de processor voorzien met één adreslijn?

A

Twee, 0 en 1.

Met n adreslijnen kan de processor 2n unieke adressen voorzien.

de 8086 heeft een 20 bits adresbus waarmee ten hoogste 1048576 verschillende adressen kunnen samengestel worden.

104
Q

Wat is de controlebus?

A

De controlebus bestaat uit een aantal signalen die de communicatie van de processor met de rest van het systeem controleren.

105
Q

Hoe werkt de controlebus?

A

De CPU zendt gegevens naar het geheugen en ontvangt gegevens van het geheugen door die bus.

In de controlebus zitten tenminste twee lijnen, read en write, die aangeven in welke richting de gegevens stromen. Andere signalen zijn systeemklokken, interruptlijnen, statuslijnen,…

Het aantal lijnen dat aanwezig is, hangt af van het type processor.

106
Q

Hoe werken de read/write-lijnen van de controlebus?

A

De read/write-lijnen controleren de richting van de gegevensstroom over de databus.

Als ze beiden op 1 staan, geeft dit aan dat de processor en het geheugen niet communiceren.

Als de read-lijn op 0 staat, leest de processor gegevens uit het geheugen.

Als de write-lijn op 0 staat, schrijft de processor gegevens in het geheugen.

107
Q

Wat is een bus?

A

Een bus is de fysische verbinding die het mogelijk maakt om gegevens van één plaats in een computer naar een andere plaats over te brengen.

108
Q

Hoe werkt een bus?

A

Een bus kan gedefinieerd worden als een groep elektrische geleiders die geschikt zijn om computersignalen te transporteren van een plaats naar een andere.

De elektrische geleiders kunnen draden of baantjes op een printplaat zijn.

Elke geleider in de bus noemen we een lijn.

Zo’n lijnen krijgen in een bus elk een naam, om ze te kunnen identificeren.

Elke lijn transporteert één elektrisch signaal.

Een lijn stelt dan 1 bit van een geheugenadres voor, een verbinding waarover een reeks opeenvolgende gegevensbits verstuurd worden of een controlesignaal om een apparaat op het juiste ogenblik aan of af te zetten.

109
Q

Hoe lang is een bus?

A

Een bus kan in lengte variëren van enkele milimeter tot enkele tientallen centimeter of zelfs honderden meters als computers in netwerk geplaatst worden.

110
Q

In welke groepen kunnen we de verschillende lijnen van een bus onderverdelen?

A
  • data
  • adressen
  • controle
  • voeding
111
Q

Datalijnen?

A

Datalijnen transporteren de gegevens.

112
Q

Adreslijnen?

A

Adreslijnen bepalen wie de ontvanger van de gegevens is.

113
Q

Controlelijnen?

A

Controlelijnen laten toe om te synchroniseren en zorgen voor de vlotte werking van de bus.

114
Q

Uit hoeveel datalijnen zal een bus die twee 16-bit regiters in een processor verbindt bestaan?

A

Uit 16 datalijnen en één of enkele controlelijnen om de bus op het juiste ogenblik aan te zetten.

115
Q

Op welke manieren kunnen bussen verbindingen tot stand brengen?

A
  • point-to-point
  • multipoint = multidrop
116
Q

Point-to-point bus?

A

Deze bus brengt één bepaald punt naar een ander bepaald punt.

Adressering is niet nodig bij deze methode omdat de bestemming steeds bekend is.

De kabel die we gebruiken voor het verbinden van een seriële of parallelle printer met de computer is daar een voorbeeld van.

117
Q

Multipoint of multidrop bus?

A

Een bus kan ook verbonden worden met verschillende punten.

Soms verwijst men ernaar met de term broadcast bus, omdat alle signalen naar alle apparaten op dezelfde bus verstuurd worden.

Bij deze methode zullen we moeten zorgen voor signalen die de adresinformatie bevatten om zo de gewenste bestemming te bereiken.

Adressering is niet nodig indien de informatie die op de multipoint bus komt voor alle apparaten bestemd zijn.

Een voorbeeld van een broadcast bus is ethernet.

118
Q

Systeembus?

A

Als een bus gebruikt wordt om computersignalen te transporteren tussen de CPU en het geheugen en/o een aantal I/O-kaarten die in uitbreidingsslots geplaatst worden, wordt dit een systeembus genoemd.

De systeembus is een voorbeeld van een broadcast bus.

119
Q

Bus interface units?

A

De bus interface units maken het mogelijk om de verschillende bussen met elkaar te laten communiceren.

120
Q

Hoe wordt een bus in een schematische voorstelling weergegeven?

A

Als één dikke lijn. Meestal staat er een getal bij dat aangeeft hoeveel lijnen er in die bus opgenomen zijn.

121
Q

Waaruit bestaat de systeembus op het moederbord?

A

De systeembus op het moederbord bestaat meestal uit verschillende onderdelen.

De CPU bus die het geheugen met de processor verbindt en de PCI en ISA bussen.

Deze laatste twee worden gebruikt om de verschillende I/0-kaarten met de CPU te verbinden.

122
Q

Van wat zijn de eigenschappen van de bussen afhankelijk?

A

Van de omgeving.

Ze kunnen gekenmerket worden door de bandbreedte (bits/sec), de breedte van het datapad in bits, de afstand tussen de twee eindpunten, de gebruikte besturingssignalen, het soort bus (multipoint/point-to-point), de adresseringscapaciteit, de lijnen hebben al dan niet één specifieke taak,…

123
Q

Welke elektrische en mechanische kenmerken heeft een bus?

A

Het aantal pinnen in de connector, de spanningen die gebruikt worden, de afmetingen van kaarten en connectoren,…

124
Q

Waarom moeten we de kenmerken van bussen kennen?

A

De noodzaak om de kenmerken van bussen te kennen, komt voort uit het feit dat we de bus met andere apparaten van het computersysteem willen verbinden.

125
Q

Dedicated bussen?

A

De eigenschappen van bussen die intern in de CPU aanwezig zijn, hoeven we niet te kennen omdat ze geen verbinding met de buitenwereld maken. In zo’n geval spreekt men van dedicated bussen.

126
Q

Wat is er noodzakelijk om een bus te gebruiken?

A

Om een bus te gebruiken, moeten de schakelingen die ermee verbonden worden akkoord gaan met een busprotocol.

127
Q

Busprotocol?

A

Zo’n protocol is een afspraak die eenduidig bepaalt welkte taak en welke signaalvorm aan elke lijn is toebedeeld.

  • Een specifieke controlelijn in een bus kan de taak hebben om aan te geven of de bus voor een lees- of schrijfopdracht naar het geheugen gebruikt wordt.*
  • De CPU en het geheugen moeten dan akkoord gaan dat bijvoorbeeld een 0 betekent dat er gelezen wordt, en een 1 betekent dat er geschreven wordt. De lijn krijgt dan bijvoorbeeld een naam zoals MREAD/MWRITE.*