Geannoteerde uitwerking tentamen Processoren 30 Januari 2015

Vergelijkbare documenten
Wouter Geraedts Processen & Processoren

von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014

scc = b) CD AB

Antwoorden zijn afgedrukt!!!!!!!

Beter, Sneller, Mooier. Processoren 12 januari 2015

Sequentiële Logica. Processoren 24 november 2014

Faculteit Elektrotechniek - Capaciteitsgroep ICS Tentamen Schakeltechniek. Vakcodes 5A010/5A050, 26 november 2003, 14:00u-17:00u

Studentnummer:... Opleiding:...

Wouter Geraedts Processen & Processoren

VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat BERINGEN. De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis

Practicum 1: Construeer je eigen microprocessor

Digitale technieken Deeltoets II

Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets)

scc =!F3.!F2 b) CD AB

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Faculteit Elektrotechniek - Capaciteitsgroep ICS Tentamen Schakeltechniek. Vakcodes 5A010/5A050, 19 januari 2004, 9:00u-12:00u

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 19 januari 2005, 14:00u-17:00u

Praktisch bestaan er enkele eenvoudige methoden om een decimaal getal om te zetten naar een binair getal. We bespreken hier de twee technieken.

Wouter Geraedts Processen & Processoren

De CPU in detail Hoe worden instruc4es uitgevoerd? Processoren 28 februari 2012

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 19 januari 2005, 14:00u-17:00u

Antwoorden vragen en opgaven Basismodule

assembleertaal F. Vonk versie

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 17 november 2004, 9:00u-12:00u

Getalformaten, timers en tellers

b) Geef het schema van een minimale realisatie met uitsluitend NANDs en inverters voor uitgang D.

Inleiding Digitale Techniek

vrijdag 20 januari 2006 Blad 1 tijd: uur achternaam: voorletters: identiteitsnummer: opleiding:

Talstelsels en getalnotaties (oplmodel)

Hoofdstuk 20. Talstelsels

Getallenrepresenta*e. Processen en Processoren 7 februari 2012

Wouter Geraedts Processen & Processoren

Hoe werkt een rekenmachine?

Uitwerkingen Rekenen met cijfers en letters

Jan Genoe KHLim. Reken schakelingen. Jan Genoe KHLim

Project Digitale Systemen

Samenvatting Computer Architectuur

computerarchitectuur antwoorden

Registers & Adressering. F. Rubben, ing

Inleiding Digitale Techniek

Hexadecimale en binaire getallen

Rekenen aan wortels Werkblad =

2 Elementaire bewerkingen

Hoofdstuk 7. Computerarchitectuur

THEORIE TALSTELSELS. 1 x 10 0 = 1 (een getal tot de macht 0 = 1) 8 x 10 1 = 80 2 x 10 2 = x 10 3 = Opgeteld: 9281d(ecimaal)

Tentamen Computersystemen

EE1410: Digitale Systemen BSc. EE, 1e jaar, , 8e hoorcollege

1.3 Rekenen met pijlen

Inleiding Digitale Techniek

Basisvaardigheden algebra. Willem van Ravenstein Den Haag

Wat is een busverbinding?

EE1410: Digitale Systemen BSc. EE, 1e jaar, , vragencollege 2

1 Rekenen in eindige precisie

Uitwerking tentamen Analyse van Algoritmen, 29 januari

4,7. Praktische-opdracht door een scholier 1959 woorden 1 juni keer beoordeeld

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files

Willem van Ravenstein

Rekenen met cijfers en letters

BTW Code Conversie Legal Eagle Standaard versie 2.18.x naar Sdu uitgevers

Talstelsels, getalnotaties en Ascii code

Binair Binair = tweewaardig Beperkt aantal mogelijke waarden (discreet aantal in amplitude) Wij zijn gewoon aan decimaal (tiendelig)

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 3: Tijd, licht en warmte

Het minimale aantal sleutels op niveau h is derhalve

2 Elementaire bewerkingen

Computerarchitectuur en netwerken. Memory management Assembler programmering

11011 Processor MMI Intro. Binaire representatie. Computer: Logische opbouw (Von Neumann) 3-input 1-hot detector.

VOORBLAD SCHRIFTELIJKE TOETSEN

talstelsels F. Vonk versie

Digitale Systeem Engineering 1. Week 4 Toepassing: Pulse Width Modulation Jesse op den Brouw DIGSE1/

Sequentiële gepijplijnde machine

Proeftentamen Digitale technieken

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam

Combinatorische schakelingen

2 Algemene opbouw van een computersysteem

slides12.pdf December 14,

Breuken met letters WISNET-HBO. update juli 2013

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2)

De Arduino-microcontroller in de motorvoertuigentechniek (2)

Geldwisselprobleem van Frobenius

Android apps met App Inventor 2 antwoorden

Goed aan wiskunde doen

Inleiding microcontrollers. Week 2 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/

Microcontrollers Week 2 Opbouw ATmega32 controller, instructies Jesse op den Brouw INLMIC/

Digitale Systeem Engineering 2

MACHINES. ... en kralenkettingen. Onderzoeksprogramma Vierkant voor Wiskunde. Wiskundeclubs. Tristan Cranendonk & Joost Langeveld

Indirecte adressering

Combinatoriek groep 2

Practica bij het vak. Inleiding tot de Elektrotechniek: Practicum 2 Analoge versus digitale signalen en hun overdracht

REKENEN OP EEN ABACUS

Tentamen Computersystemen

Datastructuren Uitwerking jan

WISNET-HBO. update aug. 2011

Assembly en Assemblers. Processoren 5 januari 2015

DDS chips. DDS = Direct Digital (frequency) Synthesis. Output = sinusvormig signaal. Maximum frequentie = ½ klokfrequentie

Studentnummer:... Opleiding:... a) Met welke term wordt het interface tussen software en hardware van een processor aangeduid?

Labo IDP. In dit labo gaan we IDP gebruiken voor het analyseren van logische circuits. XOR Q AND. Figuur 1: Een logisch circuit.

Uitleg. Welkom bij de Beverwedstrijd Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden.

Afspraken hoofdrekenen eerste tot zesde leerjaar

Memoriseren: Een getal is deelbaar door 10 als het laatste cijfer een 0 is. Of: Een getal is deelbaar door 10 als het eindigt op 0.

Transcriptie:

Geannoteerde uitwerking tentamen Processoren 30 Januari 2015 Aangezien het voor het volgende tentamen handig kan zijn om van het januaritentamen een uitwerking te kunnen bekijken, heb ik deze geannoteerde versie van mijn standaard uitwerking gemaakt. Ik zal in het komende verhaal mijn annotaties (beoordeling van de opgaven en extra commentaar) in cursief aangeven. Opgave 1 a) 6f hex + 59 hex 6f hex = 01101111 bin dus 6f hex = 10010001 bin en 59 hex = 01011001 bin + 11101010 Vlaggen: C = 0, N = 1, Z = 0, O = 0 Bij het tentamen converteerden sommige studenten eerst van hexadecimaal naar decimaal en vervolgens van decimaal naar binair. Omdat 2 4 = 16 is dat niet de makkelijkste manier. Wat je ook kan doen is per groep van 4 bits direct van binair naar hexadecimaal converteren en vice versa. Voor conversie van octaal naar binair (en vv.) geldt hetzelfde maar neem dan groepjes van 3 bits. b) 42 dec xor 69 dec 42 dec = 00101010 bin en 69 dec = 01000101 bin 01101111 Vlaggen: C = 0, N = 0, Z = 0, O = 0 c) 104 dec 27 dec 104 dec = 01101000 bin en 27 dec = 00011011 bin dus 27 dec = 11100101 bin De aftrekking verloopt via het optellen van het complement + 1: 01101000 00011010 1 + 10000011

Vlaggen: C = 0, N = 1, Z = 0, O = 1 Bedenk wel dat de bovenstaande optelling weergeeft hoe de practicumprocessor (en ook elke willekeurige processor in het veld) het op deze manier uitrekent. Er zijn een paar studenten geweest die bedachten dat je dus ook 01101000 en 00011011 bij elkaar kon optellen. Daar komt inderdaad precies dezelfde bitvector (en vlaggen) uit. Ik heb dit niet fout gerekend, hoewel dat niet precies overeenkomt met wat gevraagd werd. d) 65 dec or 52 dec 65 dec = 01000001 bin en 52 dec = 00110100 bin dus 52 dec = 11001100 bin 01000001 11001100 OR 11001101 Vlaggen: C = 0, N = 1, Z = 0, O = 0 e) 21 dec naar links geroteerd om 4 bits 21 dec = 00010101 bin dus 21 dec = 11101011 bin 11101011 over 4 bits naar links geroteerd is 10111110 Vlaggen: C = 0, N = 1, Z = 0, O = 0 Sommige studenten gaven hier 10110000 als antwoord. Dit zou je krijgen als je 11101011 over 4 bitten naar links zou schuiven ipv. te roteren. f) De vlaggen van elk onderdeel heb ik hierboven al aangegeven. Beoordeling: voor elk onderdeel kon je 1 punt krijgen. Als er meer dan 2 fouten met de vlaggen gemaakt waren kreeg je geen punt voor onderdeel f; anders wel. Als er uitwerkingen waren die met verkeerd geconverteerde waarden wel goed door rekenden en de hierbij horende vlaggen opleverden, heb ik dit voor onderdeel f natuurlijk goed bevonden. De meeste fouten die in deze opgave zijn gemaakt waren rekenfouten bij de conversie naar 2 complement. Vier studenten gebruikten een verkeerde methode om de 2 complement representatie van een negatief getal te maken door nl. de representatie van het (omgekeerde) positieve getal te nemen en daarvan alléén het tekenbit om te draaien.

Dit is niet de juiste manier (en kostte helaas nogal wat punten voor deze opgave). Wat je moet doen is alle bits inverteren en vervolgens er 1 bij optellen. Zie ook alle voorbeelden hierboven. Opgave 2 a) Voor het 2bb formaat is het nodig om 3 simultane leesoperaties op de registerbank te kunnen doen (Je moet immers twee adres registers lezen en daarnaast een source register lezen, dat naar het geheugen moet worden weggeschreven). Dit betekent dat er naast de src A en src B registeradresbusjes nog een derde registeradresbusje van decoder naar registerbank moet komen. Ik noem dit derde registeradresbusje src C en de bijbehorende uitgang van de registerbank C. Deze kunnen we dan direct aan de dataout bus verbinden, aangezien we die dan ook bij het 2ba formaat kunnen inzetten. In een plaatje: Note: In dit plaatje ga ik ervan uit dat de constante van de LOADHI instructie door de ALU naar de registerbank wordt vervoerd. In het geval dat dit direct gebeurt, komt er een extra multiplexer op de input van de registerbank erbij. Voor alle formaat 2 instructies wordt de ALU gebruikt om het adres dat aan de B-kant uit de registerbank komt op te tellen bij hetzij een constante uit de

instructie (formaat 2aa, 2ba) (na sign extensie) hetzij een waarde die aan de A-kant uit de registerbank komt (formaat 2ab, 2bb). Het resultaat van deze optelling wordt vervolgens via een multiplexer naar de adres bus gestuurd. Voor formaat 2aa en 2ab wordt tegelijkertijd het nre signaal op 0 gezet om het geheugen te instrueren om te lezen; voor formaat 2ba en 2bb wordt het nwe signaal op 0 gezet om te kunnen schrijven naar het geheugen. Met het src C busje geeft de decoder aan de registerbank door welk register over de dataout bus naar het geheugen moet worden weggeschreven (formaat 2ba en 2bb). Met het dst busje geeft de decoder voor de Read instructies (formaat 2aa en 2ab) aan in welk register de data die via de datain bus binnenkomt moet worden opgeslagen. Natuurlijk moet ook de instructiedecoder worden aangepast om de nieuwe formaten te kunnen herkennen en om bovenstaande busjes en multiplexer selectie signalen correct aan te sturen (Bedenk b.v. dat je nu niet meer tijdens de execute blindelings bits 27 t/m 24 van het instructieregister op het dst adresbusje mag zetten wat in de oude processor nog wel kon aangezien deze bits nu voor formaat 2ba en 2bb het source register aanduiden). Beoordeling: ik heb elk redelijk verhaal over het gebruik van de bussen met 3 punten beoordeeld. Studenten, die als enige antwoord hadden dat de decoder aangepast moet worden, kregen 1 punt hiervoor. Voor de constatering dat er een extra output op de registerbank en dus ook een extra registeradresbusje van decoder naar registerbank gemaakt moet worden, kon een additionele 3 punten gescoord worden. Dit laatste is ook de grootste verandering in de processor. Maximaal kon dus 6 punten voor dit onderdeel behaald worden. b) Omdat op deze practicumprocessor het niet meer mogelijk is dat de bits 17 t/m 8 en bits 7 t/m 4 tegelijkertijd niet 0 zijn bij de decodering van de formaat 2, 4 en 5 instructies (Òf de bits 17 t/m 8 zijn 0 òf de bits 7 t/m 4 zijn 0), kun je nu de codering voor register A onderbrengen in de bits van het constanteveld b.v. in bits 11 t/m 8. De processor kan immers aan bit 18 zien hoe hij de bits 17 t/m 8 moet decoderen (hetzij als constante hetzij als registeradressering voor de A-kant van de ALU). Bits 7 t/m 4 zijn nu vrij om meer formaten of meer varianten van een instructie te maken. Dit idee om een veld als hetzij constante hetzij registeraddressering te gebruiken wordt ook onder meer op de ARM en de Sparc gebruikt. Beoordeling: 3 punten. Sommige studenten breidden juist de constante uit met 4 bits. Dit heb ik 2 punten gegeven, aangezien je zo met grotere constanten kan werken. Anderen bedachten dat aangezien bits 7 t/m 4 nu altijd 0 zijn (én anders niet 0) als bit 18 = 1, je deze 4 bits kunt gebruiken om te zien dat een constante gecodeerd staat oftewel bit 18 is vrij om te hergebruiken voor nieuwe instructies.

Ook dit idee heb ik 2 punten gegeven. De laatste variant die ik tegenkwam in de antwoorden gebruikte de waarde van bit 18 om nieuwe velden in bits 17 t/m 8 te coderen als bit 18 = 0 en in bits 7 t/m 4 als bit 18 = 1. Omdat dit leidt tot een minder uniforme decodering heb ik dit 1 punt gegeven. Opgave 3 De volgende 2 formaten liggen al vast: Er zijn dus nog 2 31 bitpatronen over voor de overige formaten en ze beginnen allemaal met een 1 (in het hoogste bit). Het derde formaat zal zijn opcode bits ook zo hoog mogelijk in de instructie hebben aangezien het gegeven was dat het formaat aan de hoogste bits te herkennen is. Het derde formaat is dus van de vorm: Hiervan zijn er m. Er zijn dus nog 32 m combinaties mogelijk van de vorm: Drie registeroperanden benodigen 15 bits. Bij 1 patroon zijn er dus nog 11 bits vrij. In totaal zijn er dus maximaal (32 m).2 11 instructies met 3 registeroperanden mogelijk. De factor 2 11 geeft natuurlijk vreselijk veel mogelijkheden. In de praktijk zul je daarom

zien dat m = 31 wordt gekozen en zijn er dus precies 2 11 instructies met 3 registeroperanden die allemaal te herkennen zijn aan een uniek 6 bits patroon in bovenste 6 bits. Beoordeling: 5 punten maximaal. Sommige studenten redeneerden: Formaat 1 en 2 vergen 2 30 bitpatronen elk. Formaat 3 vergt 2 26 bitpatronen per instructie. Dus zijn er 2 32 2.2 30 m.2 26 2 15 over voor het vierde formaat (Merk op dat dit een exacte deling is). Dit is natuurlijk precies hetzelfde antwoord. Voor de realisatie dat het topbit van de overblijvende formaten altijd 1 moet zijn, was 1 punt. Voor de term m.2 26 of dat het derde formaat 26 bits per instructie pakt waardoor er dus 5 vrije bits zijn om de verschillende instructies aan te geven (en dus 32 - m over voor het vierde formaat modulo de overige 11 vrije bits): 2 punten. Voor de factor 2 11 vanwege de resterende 11 bits of de noemer 2 15 omdat 15 bits vastliggen vanwege de 3 registeroperanden: ook 2 punten.

Opgave 4 # Registergebruik: # pointer op het array: R1 # voorlopig tussenresultaat: R2 # elementen teller: R3 # laatst opgepikte element: R4.START 0 # In principio erat verbum MOVE array,r1 # Initialiseer R1 MOVE 0,R2 # Initialiseer tussenresultaat READ [nrelts],r3 # Lees aantal elementen LOOP: CMPf 0,R3 # Klaar als R3 0, JUMP.GE DONE # dus als 0 R3 READ [R1],R4 # Lees nieuw element ADD 4,R1,R1 # Naar volgende array element ADD -1,R3,R3 # Een element meer gezien MOVEf R4,R0 # Als element niet negatief, JUMP.NN LOOP # kunnen we verder met het volgende MOVEf R2,R0 # Hadden we al een eerste tussenresultaat? MOVE.Z R4,R2 # Zo niet, dan is dit het eerste CMPf R4,R2 # Is het element > tussenresultaat? MOVE.G R4,R2 # Zo ja, maak beter tussenresultaat DONE: JUMP LOOP # Verder met het volgende element WRITE R2,[result] # Klaar! HALT result:.data 0 nrelts:.data... # Aantal array elementen array:.data... # Locatie eerste element.data... # Locatie tweede element... Beoordeling: Maximaal kon 8 punten voor deze opgave gescoord worden. Voor correct pointer access: 2 punten Voor correct aantal loopdoorgangen: 2 punten Checken dat een opgepakt element 0 is: 2 punten

Correcte vergelijking (en checken eerste tussenresultaat): 2 punten Vergeten check op eerste tussenresultaat: -1 punt Schaars of geen commentaar: -1 punt Rare instructies: -1 punt Als er geen practicumassembly stond: geen enkel punt (en er waren een paar gevallen). Als er aan geen van de hierboven positief tellende punten werd voldaan, maar toch iets van practicumassembly stond: 1 punt De meest gemaakte fout bij deze opgave was dat studenten op zoek gingen naar het kleinste negatieve element van het array. Oftewel lees de opgave precies! Zoals je aan de bovenstaande puntentelling ziet zou je daarmee nog niet eens veel punten verloren hebben. Verder vergaten veel studenten te controleren of het juist opgepakte element wel negatief was. Bij de foute interpretatie van de opgave (op zoek gaan naar het het kleinste negatieve element) kun je die check achterwege laten, mits je achteraf controleert of je wel een goed resultaat < 0 gevonden hebt. Opgave 5 Een aantal studenten had kennelijk nooit begrepen dat het hart van de timer in onze practicumprocessor ook een eindige automaat is, die zorgt voor een aantal dingen nl. het resetten van de rest van de processor (bij een reset), het stoppen van de processor (na een gelukte HALT instructie) en het netjes afwisselen van fetch en execute fase voor de normale instructieuitvoering. Om deze reden zal ik deze vraag extra uitgebreid bespreken. Onze veranderde timer zal een aantal (extra) dingen moeten regelen nl. Het resetten van de rest van de processor Elk access naar het geheugen zal in twee cycli moeten. We moeten het adres dat we uitrekenen voor de formaat 2 instructies tijdelijk bewaren om dat in de twee hierop volgende cycli te gebruiken. Als we geen formaat 2 instructie uitvoeren kunnen we na de decodeer en ALU operaties meteen de volgende instructie gaan fetchen. Bij het uitvoeren van de HALT instructie zal de processor stilgezet moeten worden. Verder was gegeven dat het geheugen als big endian benaderen. Dit betekent dat we eerst bits 31 t/m 16 van een woord lezen dan wel schrijven en pas in de cyclus erna bits 15 t/m 0. Als we nu het instructieregister in 2 delen splitsen die we achtereenvolgens inlezen, betekent dit dat we alvast de condities kunnen evalueren (die staan immers in het hogere deel van de instructie) terwijl het lagere deel van de instructie opgehaald

wordt. Voor de READ instructie zullen we bovendien een 16 bits register in de databus interface nodig hebben om het hogere deel van het gelezen datawoord tijdelijk te bewaren zodat we dit samen met het binnenkomende lagere deel weg kunnen schrijven naar het doelregister. Dit betekent dat we de volgende inputs voor de timer nodig hebben: nreset (om te kunnen resetten) Format2 (Dit is een nieuwe output van de decoder naar de timer die aangeeft dat er een formaat 2 instructie gedecodeerd is). TestSucceeds (Dit signaal hadden we al in de decoder beschikbaar als output van de vlaggentester). Halted Ik kies ervoor om de eindige automaat in de nieuwe timer asynchroon met het nreset signaal te resetten (onafhankelijk van de klok). Deze keuze van mij is een gebruikelijke conventie in chipontwerpen. Om testredenen willen de testengineers altijd een reset kunnen uitvoeren onafhankelijk van het kloksignaal. In de praktijk gebruiken we meestal nog een extra eindig automaatje om te zorgen dat de reset van een ontwerp asynchroon geactiveerd kan worden en synchroon (dus met een stijgende flank van de klok) gedeactiveerd kan worden. Ook dit wordt gedaan om redenen van testbaarheid van het circuit. Wat de beoordeling betreft heb ik natuurlijk alle antwoorden met een synchrone reset goed bevonden. Verder zal de automaat de volgende outputs moeten genereren: Fetch Execute Memory (geeft aan dat we het geheugenaccess voor een formaat 2 instructie aan het doen zijn) Part2 (geeft aan daw we het tweede gedeelte van een geheugenaccess voor een fetch dan wel een formaat 2 instructie aan het doen zijn) nreset Out (Met dit signaal wordt de rest van de processor gereset; bedenk dat dit signaal active low is). Ik ontwerp de automaat op zo n manier dat de outputs alleen afhangen van de toestand waarin de automaat zich bevindt (In de literatuur staat dit bekend als een Moore-automaat). Ik label de pijlen met 3 bits (met Halted in de hoogste positie, dan TestSucceeds en als onderste Format2 en met de gebruikelijke conventie dat x don t care aanduidt).

(async reset) Reset xxx xxx Mem Low Fetch High (test fails) x0x xxx 0x0 (geen halt en geen format 2) Fetch Low Decode ALU x1x (test succeeds) xxx 1xx (halt instruction) Mem High 0x1 (geen halt en wel format2) Halted xxx Voor de verschillende toestanden genereren we de volgende output, waarbij ik de outputs in volgorde nreset Out, Part2, Memory, Execute en Fetch zal aangeven Toestand Output Reset 0xxxx Fetch High 10001 Fetch Low 11001 Decode ALU 10010 Halted 10000 Mem High 10100 Mem Low 11100 Als laatste moet ik nog aangeven wat de processor tijdens elk van de toestanden aan het doen is: Reset: de processor wordt gereset. Fetch High: Fetch het hogere deel van de instructie; bewaar het adres + 2 (via de snelle incrementer) in een register en verhoog de PC met 4. Sla het gelezen 16 bits woord direct in het hogere deel van het instructieregister op. Fetch Low: Fetch het lagere deel van de instructie waarbij je het adres neemt uit het register dat volgt op de snelle incrementer. Sla dit deel direct in het lagere deel van het instructieregister op.

Decode (en) ALU: Doe alle acties als in de execute fase van de practicum processor behalve voor formaat 2; in dat laatste geval, doe de adresberekening. Halted: doe niks Mem High: Doe de schrijf- of leesactie voor het hogere datadeel met het adres dat de vorige cyclus uit de ALU is gekomen Mem Low: Doe de de schrijf- of leesactie voor het lagere datadeel gebruikmakend van het inmiddels (intern) verhoogde woordadres. Beoordeling: Voor een redelijke automaat (met 5 toestanden die het equivalent van Fetch High, Fetch Low, Decode ALU, Mem High en Mem Low bevatten, die ook cyclisch doorlopen werden): 4 punten. Een automaat die ook correct de Halt toestand implementeerde kreeg 2 punten erbij. Net zo scoorde een automaat die een Format2 input (of iets met die naam ofwel met die functionaliteit) had: 2 punten erbij. Als studenten wel formaat 2 detectie aangaven zonder hiervoor een extra signaal te maken: extra punt (ipv. 2). Automaten die de Decode ALU misten (In onze practicumprocessor de toestand die een Execute signaal afgeeft), of geen Mem High hadden (oftewel vergeten waren dat expliciet gegeven stond dat een adresberekening op de ALU teveel tijd kost, zodat je pas in de volgende cyclus naar het geheugen kunt), kregen een -1 punt (De punten voor Halt of formaat 2 detectie telden nog steeds mee). Voor het idee dat je de condities al kan evalueren tijdens de Fetch low toestand kon een additionele +2 punten gescoord worden (al heeft geen enkele student dat gezien). NB: met deze laatste +2 kon dus punten boven de 10 gescoord worden. Dat is niet gebeurd, maar het beste cijfer voor het schriftelijk tentamen is 9+ geweest dat met de bonus tot 10+ is verhoogd.