Computer Abstraction and Technology ----------------------------------- - Da cosa dipendono le prestazioni di un computer. - Quali sono le "8 grandi idee" alle fondamenta del progetto dei moderni computer? Si fornisca un esempio per ciascuna di queste idee. - Definire il "tempo di esecuzione" e "tempo di esecuzione della CPU". In cosa differiscono? - Si parli della equazione delle prestazioni della CPU. Come vengono influenzati i vari termini dell'equazione dall'algoritmo implementato, dal linguaggio di programmazione, dall'architettura del set di istruzioni? - Cosa si intende per "power wall" e come ha influenzato l'industria dei calcolatori? - Si parli della legge di Amdahl. Instructions Language of the computer ------------------------------------- - In che modo il LEGv8 supporta le chiamate a procedura? - Quali operazioni vengono fatte nelle chiamate a procedure. - Come in LEGv8 possiamo implementare una operazione di "lock" - Si parli del processo di traduzione di un programma C in un eseguibile (Compiler, Assembler, Linker, Loader) - Cosa sono e come vengono gestiste le Dinamic Link Libraries. Arithmetic for Computers ------------------------------------- - Si descriva il Floating Point Standard IEEE Std 754 a singola precisione/ a doppia precisione. - Si parli del subword parallelism ovvero SIMD Il Processore ------------------------------------- - Si parli dell'organizzazione a singolo ciclo - Si parli dell'unità di controllo - Si parli dell'organizzazione a pipeline - Si descrivano gli Hazard - Come possono essere risolti gli Hazard dei dai - Come possono essere risolti gli Hazard di controllo - Cosa sono le eccezioni e come vengono gestite - Si parli dei processori multiple-issue statici - Si parli dei processori multiple-issue dinamici - Si parli del loop-unrolling e della rinominazione dei registri