Peer review Noel Svartsjö (noesva-3)
- Din kod klarar CI, skriver ut rätt tecken, och byter mellan processer som den ska. Dessutom används/ändras ändast $kx register i .ktext.
- Väldigt effektiv och enkel att förstå strukturerad kod. Strukturen på koden, tillsammans med kommentarer som ofta beskriver stycken av kod, gör det väldigt enkelt att läsa och hoppa mellan olika delar i koden utan problem.
- Det ända jag hittat som kan förbättras är hur du (under
.ktext
) användernop
lite väl ofta då det inte behövs. Detta gör en onödig stall i pipeline vilket saktar ner programmet ganska mycket.
Egentligen behöver du endast göra en stall (nop
) efter du hämtat data från minnet, och sedan ska använda den datan i nästa instruktion, eller i dina "branch delay slots" d.v.s efter du gör ett hopp i instruktionsminnet.
I din kod under .ktext använder du nop
efter la
, sw
, andi
och li
, men dessa borde inte skapa en hazard i pipelinen då MIPSen använder sig av forwarding (en process i hårdvaran) för att undvika pipeline hazards. Om du är interesserad, så står det om detta i kapitel 4.7 i boken (4th edition).