Fino a poco tempo fa i programmatori potevano fare affidamento sul lavoro dei progettisti di architetture e di compilatori e su quello dei produttori di chip per rendere più veloci e più efficienti a livello energetico i propri programmi senza il bisogno di apportare alcuna modifica.
[...]
Questa epoca è finita: affinché un programma possa essere eseguito più velocemente deve diventare un programma parallelo. La tecnologia moderna richiede che i professionisti di ogni settore dell’informatica conoscano sia il software sia l’hardware, la cui interazione ai vari livelli offre la chiave per capire i princìpi fondamentali dell’elaborazione. Per questo motivo gli autori di Struttura e progetto dei calcolatori hanno posto l’enfasi sulla relazione tra hardware e software, e il recente passaggio dalle architetture uniprocessore ai multiprocessori multicore ha confermato quanto la prospettiva del parallelismo sia giusta. La novità di questa edizione è la scelta di trattare l’architettura RISC-V. Sviluppato inizialmente a Berkeley e progettato per funzionare con cloud computing, dispositivi mobili e altri sistemi embedded, questo insieme di istruzioni è più semplice ed elegante dell’insieme di istruzioni MIPS e presenta anche il vantaggio di non essere un’architettura proprietaria. Esistono quindi simulatori, compilatori e debugger RISC-V open source facilmente reperibili, e persino implementazioni RISC-V open source scritte nei linguaggi di descrizione dell’hardware. Gli obiettivi principali del corso sono: dimostrare con esempi concreti quanto sia importante comprendere il funzionamento dell’hardware, per ottenere buone prestazioni ed elevata efficienza energetica; evidenziare i temi principali di ogni argomento inserendo a margine del testo le icone associate alle «otto grandi idee» nella progettazione delle architetture; proporre nuovi esempi che riflettano il ricambio generazionale avvenuto nel passaggio dall’era dei PC all’era postPC (tablet, cloud, ARM, x86); distribuire il materiale relativo all’I/O in tutto il libro anziché racchiuderlo in un unico capitolo; aggiornare il contenuto tecnico per rispecchiare i cambiamenti avvenuti nell’industria, facendo riferimento, per esempio, ad architetture come il Cortex A-53 ARM e il Core i7 Intel.