Läsa och skriva enkla assemblerprogram för en typisk tre-adress register maskin.
Identifiera de grundläggande typer av konflikter som uppkommer till följd av pipelining av en processors dataväg.
Peka ut och beskriva enkla metoder för att hantera dessa konflikter, identifiera begränsningar i dessa metoder, samt uppskatta prestandainverkan.
På korrekt sätt använda sig av instruktioner som utför aritmetiska operationer, såväl för flyttal som heltal.
Redogöra för funktionen hos och uppskatta prestandapåverkan av en minneshierarki, som kan omfatta cacheminnen, huvudminne och virtuellt minne, och som använder olika parameterar (total storlek, blockstorlek, associativitet, etc) för de olika minnesnivåerna.
Beräkna prestanda (i enkla lastfall) hos ett I/O-system, speciellt i system som består av processorer, bussar och skivminnen.
Identifiera prestandamässiga flaskhalsar i ett sådant system.
Förklara hur ett datorsystems prestanda kan definieras och mätas.
Uppskatta parameterändringars inverkan på systemets prestanda enligt ovan.
Översiktligt beskriva de komponenter och principer som används vid konstruktion av fler-kärniga processorer.
Genomföra en enklare samoptimering av mjukvara (på assemblernivå) med hårdvaruparametrar för att uppnå bästa möjliga prestanda/ kostnadsförhållande för en viss funktion, samt redovisa detta i en kortare skriftlig rapport.
Kursinnehåll
Genom föreläsningar, gruppövningar och laborationer förmedlas en grundläggande insikt om hur ett litet datorsystem (med processor, minnen samt in- och utmatning) är uppbyggt och fungerar. Stor vikt läggs vid prestandaaspekter och vid samverkan med mjukvara.
Förutsättningar
Grundläggande behörighet för grundnivå
Litteratur
Pattersson&Hennessy: "Computer Organization and Design: The Hardware/Software Interface". Kompletterande material via kurshemsidan i PingPong