Dispensa di Architetture dei Calcolatori — Parte I
Dispensa di Architetture dei Calcolatori — Parte I — Calcolatori elettronici
Corso di Laurea in Ingegneria Informatica e dell’Automazione
Università Politecnica delle Marche — A.A. 2023/2024
Docente: Prof. Alessandro Galdelli, PhD
Testo di riferimento: W. Stallings, Computer Organization and Architecture (9th ed.)
Indice
- Capitolo 1 — Introduzione all’Architettura dei Calcolatori ................................................................. 6
- 1.1 Architettura vs. Organizzazione ........................................................................................................... 6
- 1.2 Struttura e Funzione ................................................................................................................................. 6
- 1.3 Componenti Principali .............................................................................................................................. 6
- 1.4 Il Bus di Sistema .......................................................................................................................................... 7
- 1.5 Evoluzione Storica dei Calcolatori ....................................................................................................... 7
- 1.5.1 Prima generazione: valvole termoioniche (fino al 1955) ................................................. 7
- 1.5.2 L’architettura di Von Neumann ................................................................................................... 7
- 1.5.3 Seconda generazione: transistor (1955–1965) .................................................................... 7
- 1.5.4 Terza generazione: circuiti integrati (1965–1980) ............................................................ 7
- 1.5.5 Quarta generazione: VLSI e microprocessori (1980–oggi) .............................................. 8
- 1.6 La Legge di Moore e i Suoi Limiti ......................................................................................................... 8
- Capitolo 2 — Memoria Cache ............................................................................................................................ 9
- 2.1 Caratteristiche Generali della Memoria ............................................................................................ 9
- 2.1.1 Metodi di Accesso .............................................................................................................................. 9
- 2.1.2 Prestazioni della Memoria ............................................................................................................. 9
- 2.2 La Gerarchia di Memoria ......................................................................................................................... 9
- 2.3 La Memoria Cache: Principi di Funzionamento ............................................................................ 9
- 2.4 Tecniche di Mapping ............................................................................................................................... 10
- 2.4.1 Direct Mapping (Mapping Diretto) ........................................................................................... 10
- 2.4.2 Fully Associative Mapping (Mapping Completamente Associativo) ......................... 10
- 2.4.3 Set-Associative Mapping ............................................................................................................... 10
- 2.5 Politiche di Sostituzione ........................................................................................................................ 10
- 2.6 Politiche di Scrittura ................................................................................................................................ 11
- 2.7 Cache Multi-livello .................................................................................................................................... 11
- Capitolo 3 — Memoria Interna ....................................................................................................................... 12
- 3.1 Tipi di Memoria a Semiconduttore ................................................................................................... 12
- 3.2 DRAM (Dynamic RAM) ........................................................................................................................... 12
- 3.3 SRAM (Static RAM) .................................................................................................................................. 12
- 3.4 DRAM Avanzate ......................................................................................................................................... 12
- 3.5 Organizzazione della Memoria e Decoder ..................................................................................... 13
- 3.6 Correzione degli Errori .......................................................................................................................... 13
- Capitolo 4 — Memoria Esterna ....................................................................................................................... 14
- 4.1 Dischi Magnetici ........................................................................................................................................ 14
- 4.1.1 Tempo di Accesso al Disco ........................................................................................................... 14
- 4.2 RAID ................................................................................................................................................................ 14
- 4.3 SSD (Solid State Drive) ........................................................................................................................... 14
- 4.4 Memoria Ottica .......................................................................................................................................... 15
- Capitolo 5 — Input/Output .............................................................................................................................. 16
- 5.1 Il Problema dell’I/O ................................................................................................................................. 16
- 5.2 Il Modulo di I/O ......................................................................................................................................... 16
- 5.3 Tecniche di I/O .......................................................................................................................................... 16
- 5.3.1 I/O Programmato ............................................................................................................................. 16
- 5.3.2 I/O Guidato da Interrupt ............................................................................................................... 16
- 5.3.3 DMA (Direct Memory Access) ..................................................................................................... 16
- Capitolo 6 — Supporto del Sistema Operativo ......................................................................................... 18
- 6.1 Obiettivi e Funzioni del Sistema Operativo ................................................................................... 18
- 6.2 Evoluzione dei Sistemi Operativi ....................................................................................................... 18
- 6.3 Gestione dei Processi .............................................................................................................................. 18
- 6.4 Gestione della Memoria ......................................................................................................................... 18
- 6.4.1 Partizionamento della Memoria ................................................................................................ 18
- 6.4.2 Paginazione ......................................................................................................................................... 18
- 6.4.3 Memoria Virtuale ............................................................................................................................. 19
- 6.4.4 Segmentazione .................................................................................................................................. 19
- Capitolo 7 — Set di Istruzioni .......................................................................................................................... 20
- 7.1 Cos’è un Set di Istruzioni ....................................................................................................................... 20
- 7.2 Elementi di un’Istruzione ...................................................................................................................... 20
- 7.3 Formato delle Istruzioni e Numero di Indirizzi ........................................................................... 20
- 7.4 Tipi di Istruzioni ........................................................................................................................................ 20
- 7.5 Tipi di Operandi ........................................................................................................................................ 20
- 7.6 Rappresentazione in Virgola Mobile (IEEE 754) ........................................................................ 20
- Capitolo 8 — Modi di Indirizzamento .......................................................................................................... 22
- 8.1 Concetto di Indirizzo Effettivo ............................................................................................................ 22
- 8.2 Indirizzamento Immediato ................................................................................................................... 22
- 8.3 Indirizzamento Diretto ........................................................................................................................... 22
- 8.4 Indirizzamento Indiretto ....................................................................................................................... 22
- 8.5 Indirizzamento a Registro .................................................................................................................... 22
- 8.6 Indirizzamento Indiretto a Registro ................................................................................................. 22
- 8.7 Indirizzamento con Displacement .................................................................................................... 22
- 8.8 Indirizzamento a Stack ........................................................................................................................... 23
- Capitolo 9 — Struttura e Funzione del Processore ................................................................................ 24
- 9.1 Struttura Interna della CPU .................................................................................................................. 24
- 9.2 Registri del Processore ........................................................................................................................... 24
- 9.3 Il Ciclo Fetch-Execute .............................................................................................................................. 24
- 9.4 La Pipeline ................................................................................................................................................... 24
- 9.4.1 Hazard nella Pipeline ...................................................................................................................... 24
- 9.5 Gestione degli Interrupt ......................................................................................................................... 25
- Capitolo 10 — Architetture RISC ................................................................................................................... 26
- 10.1 CISC vs. RISC: Le Origini ...................................................................................................................... 26
- 10.2 Principi dell’Architettura RISC ......................................................................................................... 26
- 10.3 L’Uso dei Registri ................................................................................................................................... 26
- 10.4 Pipeline Ottimizzata .............................................................................................................................. 26
- 10.5 RISC vs. CISC: Confronto ..................................................................................................................... 26
- Capitolo 11 — Processori Superscalari ....................................................................................................... 28
- 11.1 Cos’è un Processore Superscalare .................................................................................................. 28
- 11.2 Superscalare vs. Superpipelined ..................................................................................................... 28
- 11.3 Limitazioni: Le Dipendenze ............................................................................................................... 28
- 11.4 Politiche di Issue (Emissione) .......................................................................................................... 28
- 11.5 Register Renaming ................................................................................................................................ 29
- 11.6 Branch Prediction .................................................................................................................................. 29
- 11.7 Esecuzione Speculativa ....................................................................................................................... 29
- Capitolo 12 — Unità di Controllo ................................................................................................................... 30
- 12.1 Micro-operazioni .................................................................................................................................... 30
- 12.2 Il Ciclo di Fetch in Dettaglio ............................................................................................................... 30
- 12.3 Ciclo Indiretto e Ciclo di Execute ..................................................................................................... 30
- 12.4 Unità di Controllo Hardwired ........................................................................................................... 30
- Capitolo 13 — Controllo Microprogrammato .......................................................................................... 31
- 13.1 Concetto di Microprogrammazione ............................................................................................... 31
- 13.2 Struttura della Micro-istruzione ...................................................................................................... 31
- 13.3 Microprogrammazione Orizzontale vs. Verticale .................................................................... 31
- 13.4 Vantaggi e Svantaggi ............................................................................................................................. 31
- Capitolo 14 — Elaborazione Parallela ......................................................................................................... 32
- 14.1 Tassonomia di Flynn ............................................................................................................................. 32
- 14.2 SIMD ............................................................................................................................................................. 32
- 14.3 SMP (Symmetric Multiprocessor) ................................................................................................... 32
- 14.4 Coerenza delle Cache ............................................................................................................................ 32
- 14.5 NUMA (Non-Uniform Memory Access) ........................................................................................ 32
- 14.6 Cluster ......................................................................................................................................................... 33
- Capitolo 15 — Computer Multicore .............................................................................................................. 34
- 15.1 Motivazioni ............................................................................................................................................... 34
- 15.2 La Legge di Amdahl ............................................................................................................................... 34
- 15.3 Organizzazione Multicore .................................................................................................................. 34
- 15.4 Threading e Granularità ...................................................................................................................... 34
- 15.5 SMT (Simultaneous Multithreading) ............................................................................................. 34
Capitolo 1 — Introduzione all’Architettura dei Calcolatori
1.1 Architettura vs. Organizzazione
Nel campo dell’informatica, i termini architettura e organizzazione si riferiscono a due livelli distinti di progettazione di un calcolatore. L’architettura comprende gli attributi visibili al programmatore: il set di istruzioni (ISA), il numero di bit utilizzati per la rappresentazione dei dati, i meccanismi di I/O e le tecniche di indirizzamento. In altre parole, l’architettura definisce «cosa» il calcolatore è in grado di fare.
L’organizzazione, invece, riguarda «come» queste funzionalità vengono implementate: i segnali di controllo, le interfacce tra i componenti, la tecnologia di memoria utilizzata, la struttura interna del processore. Ad esempio, la domanda «esiste un’istruzione di moltiplicazione?» riguarda l’architettura; la domanda «la moltiplicazione è eseguita da un’unità hardware dedicata oppure tramite addizioni ripetute?» riguarda l’organizzazione.
Questa distinzione è fondamentale: tutte le macchine della famiglia Intel x86, ad esempio, condividono la stessa architettura di base (garantendo la compatibilità del codice), ma differiscono nell’organizzazione tra le diverse generazioni.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.