CODICE 104740 ANNO ACCADEMICO 2025/2026 CFU 6 cfu anno 1 INGEGNERIA INFORMATICA 11880 (L-8 R) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE ING-INF/05 LINGUA Italiano (Inglese a richiesta) SEDE GENOVA PERIODO 2° Semestre PRESENTAZIONE Il corso fornisce lo studente gli strumenti tecnici e metodologici per comprendere e descrivere caratteristiche, funzioni e interazioni delle principali componenti di un moderno calcolatore elettronico. I principali argomenti sono : iIntroduzione all’architettura dei Calcolatori e loro evoluzione; Architettura del processore e Instruction Set Architecture; Arithmetic Logic Unit; Gerarchia della memoria. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI L'insegnamento fornisce allo studente gli strumenti tecnici e metodologici per comprendere e descrivere caratteristiche, funzioni e interazioni delle principali componenti di un moderno calcolatore elettronico, la sua architettura, le funzioni delle unità hardware che lo compongono e le interazioni fra di esse. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO The course provides the student with the technical and methodological tools to understand and describe the characteristics, functions and interactions of the main components of a modern electronic computer: control unit, arithmetic logic unit, cache memory architecture, pipeline architecture, superscalar architecture. Al termine del corso uno studente che lo abbia seguito con profitto sarà’ in grado di valutare l'utilizzo di sistemi informatici nel contesto di specifici problemi applicativi. PREREQUISITI Conoscenza dei fondamenti della programmazione. Reti logiche. MODALITA' DIDATTICHE Lezioni tenute in presenza. PROGRAMMA/CONTENUTO Introduzione all’architettura dei calcolatori e ai principi di virtualizzazione e astrazione. Evoluzione dell’architettura dei calcolatori elettronici e loro prestazioni. Progettazione in funzione delle prestazioni. Instruction Set Architecture: il caso del processore RISC-V. Caratteristiche delle istruzioni: formato, rappresentazione, tipi. Tipi di operandi e modi di indirizzamento. Progettazione del repertorio di istruzioni. Supporto alle procedure. Interazioni con il Compilatore e ottimizzazioni del codice. Arithmetic Logic Unit. Architettura interna. Somma e moltiplicazione di numeri interi. Rappresentazioni dei numeri reali (IEEE 754). Somma e moltiplicazione di numeri in virgola mobile. Il processore centrale. Architettura del processore. Organizzazione dei registri. Ciclo di esecuzione delle istruzioni. Pipelining delle istruzioni. Conflitti sui dati e sui controlli. Data forwarding e hazard detection. La memoria primaria. Gerarchia di memoria. Memoria cache: principi di funzionamento, elementi di progettazione (dimensione, funzioni di traduzione, algoritmi di sostituzione, politica di scrittura, dimensionamento, cache multiple). TESTI/BIBLIOGRAFIA Struttura e progetto dei calcolatori (edizione RISC-V) di D. Patterson, J. Hennessy, Zanichelli. Materiale fornito durante il corso e reso disponibile mediante Aulaweb: https://2024.aulaweb.unige.it/course/view.php?id=3001 DOCENTI E COMMISSIONI PIERPAOLO BAGLIETTO Ricevimento: Personal appointment. Please send an email to ask and define it. LEZIONI INIZIO LEZIONI https://corsi.unige.it/8719/p/studenti-orario Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME una prova orale su tutti gli argomenti del corso un esercizio scritto da svolgere e discutere contestualmente alla prova orale. Chi ha conseguito un voto positivo ma non registrato può sostenere nuovamente l’esame. In questo caso, al momento di sostenere nuovamente l’esame il voto precedentemente acquisito viene annullato. La modalità dell’esame è in presenza. Il docente tramite posta elettronica proporrà un appuntamento per sostenere l’esame a ciascun studente iscritto ad un appello a partire dalla data inserita a calendario per tale appello e nel rispetto dell’ordine di iscrizione. MODALITA' DI ACCERTAMENTO Domande orali ed esercizi scritti sugli argomenti del corso. ALTRE INFORMAZIONI Per poter seguire con profitto le lezioni lo studente deve possedere nozioni generali sulla programmazione, impartite nell’ambito della prima parte del corso di “Fondamenti di informatica”, e sulle reti logiche, impartite nell’ambito del corso di “Reti Logiche”.