# Homework 5 - CPU Emulator ## Läxa Designa en specification för en egen ISA (eller använd en existerande) * Hur encodas maskinkoden? * Hur många register? * Vad har eran ISA för word size? Om ni väljer något existerande, välj då något simpelt typ inte x86: * [Nand2Tetris (Hack Computer)](https://en.wikipedia.org/wiki/Hack_computer) * [Chip-8](https://en.wikipedia.org/wiki/CHIP-8) * MIPS (inte nya versioner) * Någon tidig ARM processor Skriv en emulator för eran ISA: * Ni får använda vilket språk ni vill * Det är tillåtet att arbeta i grupper av 2-3 personer ## Resurser * [Nand2Tetris (Hack Computer)](https://en.wikipedia.org/wiki/Hack_computer) * [Chip-8](https://en.wikipedia.org/wiki/CHIP-8) * [Instruction encoding/decoding för MIPS men relevant oavsett vilken ISA man använder](https://courses.stephenmarz.com/my-courses/cosc130/lectures/encoding-and-decoding-instructions/) * Video serie om caches för er som vara intersserade * [Introduction to caches](https://www.youtube.com/watch?v=Bz49xnKBH_0) * [Fully Associative Caches and Replacement Algorithms](https://www.youtube.com/watch?v=A0vR-ks3hsQ) * [Direct Mapped Caches](https://www.youtube.com/watch?v=zocwH0g-qQM) * [Set-Associative Caches](https://www.youtube.com/watch?v=gr5M9CULUZw) * [Cache Write Policies](https://www.youtube.com/watch?v=Y7q2ECeFWE8)