Johnvan7 appunti di architettura dei calcolatori
Sommario
Sommario
Capitolo 1: Il calcolatore: astrazione e tecnologia___________________________________________________ 1
Le prestazioni di un programma______________________________________________________________________________ 1
- Algoritmi ______________________________________________________________________________________________ 1
- Linguaggi di programmazione, compilatori e architetture ________________________________________ 1
- Processore e sistemi di memoria ____________________________________________________________________ 1
- Sistema di I/O _________________________________________________________________________________________ 1
Otto grandi idee innovative sull’architettura dei calcolatori _______________________________________________ 1
Legge di Moore ______________________________________________________________________________________________ 1
Astrazione ___________________________________________________________________________________________________ 1
Situazioni comuni ___________________________________________________________________________________________ 1
Parallelismo _________________________________________________________________________________________________ 1
Pipeline ______________________________________________________________________________________________________ 1
Predizione ___________________________________________________________________________________________________ 1
Gerarchia ____________________________________________________________________________________________________ 1
Affidabilità ___________________________________________________________________________________________________ 1
Dietro il programma ___________________________________________________________________________________________ 1
Software di sistema _________________________________________________________________________________________ 1
Sistema operativo ___________________________________________________________________________________________ 1
Compilatore _________________________________________________________________________________________________ 2
Binary digit __________________________________________________________________________________________________ 2
Assembler ___________________________________________________________________________________________________ 2
Linguaggio di programmazione ad alto livello ____________________________________________________________ 2
Componenti di un calcolatore _________________________________________________________________________________ 2
I cinque componenti classici di un calcolatore ___________________________________________________________ 2
Display LCD _________________________________________________________________________________________________ 2
Touchscreen _________________________________________________________________________________________________ 2
Processore ___________________________________________________________________________________________________ 2
Memoria _____________________________________________________________________________________________________ 3
Memoria cache ______________________________________________________________________________________________ 3
Architettura dell’insieme di istruzioni ____________________________________________________________________ 3
Sommario
Memoria di massa __________________________________________________________________________________________ 3
Disco magnetico (HDD) ____________________________________________________________________________________ 3
Memoria flash _______________________________________________________________________________________________ 3
Comunicazione con altri calcolatori _______________________________________________________________________ 3
Tecnologie per la produzione di processori e memorie ___________________________________________________ 3
Transistor ___________________________________________________________________________________________________ 3
Circuito integrato ___________________________________________________________________________________________ 3
Come vengono fabbricati i circuiti integrati ______________________________________________________________ 3
Costo per die ________________________________________________________________________________________________ 4
Die per wafer ________________________________________________________________________________________________ 4
Rendimento (resa) __________________________________________________________________________________________ 4
Le prestazioni __________________________________________________________________________________________________ 4
Tempo di risposta ___________________________________________________________________________________________ 4
Throughput __________________________________________________________________________________________________ 4
Misurare le prestazioni _____________________________________________________________________________________ 4
Tempo assoluto _____________________________________________________________________________________________ 4
Tempo di CPU _______________________________________________________________________________________________ 4
Tempo di CPU utente _______________________________________________________________________________________ 4
Tempo di CPU di sistema ___________________________________________________________________________________ 4
Ciclo di clock ________________________________________________________________________________________________ 5
Periodo di clock _____________________________________________________________________________________________ 5
Frequenza di clock __________________________________________________________________________________________ 5
Tempo di CPU relativo a un programma __________________________________________________________________ 5
CPI (Cicli di clock Per Istruzione) __________________________________________________________________________ 5
Cicli di clock della CPU _____________________________________________________________________________________ 5
Formula generale tempo di CPU ___________________________________________________________________________ 5
Prestazioni di un programma ______________________________________________________________________________ 5
La barriera dell’energia _______________________________________________________________________________________ 6
CMOS ________________________________________________________________________________________________________ 6
Passaggio a sistemi multiprocessore _________________________________________________________________________ 6
Benchmark SPEC per la CPU __________________________________________________________________________________ 6
Carico di lavoro (workload) ________________________________________________________________________________ 6
Sommario
Benchmark __________________________________________________________________________________________________ 6
SPEC (System Performance Evaluation Cooperative) ____________________________________________________ 6
SPECratio ____________________________________________________________________________________________________ 6
Benchmark SPEC sull’assorbimento di potenza __________________________________________________________ 7
Conclusioni _____________________________________________________________________________________________________ 7
Legge di Amdahl ____________________________________________________________________________________________ 7
Efficienza energetica _______________________________________________________________________________________ 7
MIPS (Million Instruction Per Second) ____________________________________________________________________ 7
Domande frequenti Capitolo 1 ________________________________________________________________________ 8
Power wall _______________________________________________________________________________________________ 8
Benchmark ________________________________________________________________________________________________ 8
Capitolo 2: Le istruzioni: il linguaggio del calcolatore ______________________________________________ 9
Insieme delle istruzioni ____________________________________________________________________________________ 9
Operazioni svolte dall’hardware del calcolatore _____________________________________________________________ 9
Operazione di somma ______________________________________________________________________________________ 9
Commenti ___________________________________________________________________________________________________ 9
Principio di progettazione numero 1 ______________________________________________________________________ 9
Esempio calcolo aritmetico ________________________________________________________________________________ 9
Operandi di registro ___________________________________________________________________________________________ 9
Principio di progettazione numero 2 ______________________________________________________________________ 9
Operandi allocati in memoria ____________________________________________________________________________ 10
Istruzioni di trasferimento dati __________________________________________________________________________ 10
Indirizzo ___________________________________________________________________________________________________ 10
Caricare dalla memoria in un registro ___________________________________________________________________ 10
Vincolo di allineamento __________________________________________________________________________________ 10
Big endian _________________________________________________________________________________________________ 10
Little endian _______________________________________________________________________________________________ 10
Salvare da un registro alla memoria _____________________________________________________________________ 10
Register spilling (versamento nei registri) _____________________________________________________________ 11
Operandi immediati e costanti ___________________________________________________________________________ 11
Costante zero ______________________________________________________________________________________________ 11
Numeri con e senza segno __________________________________________________________________________________ 11
Sommario
Overflow ___________________________________________________________________________________________________ 11
Rappresentazione modulo e segno ______________________________________________________________________ 11
Rappresentazione complemento a due _________________________________________________________________ 11
Most Neg e Most Positive _________________________________________________________________________________ 11
Estensione del segno _____________________________________________________________________________________ 11
Caricamento di byte ______________________________________________________________________________________ 11
Complemento a 1 _________________________________________________________________________________________ 12
Notazione polarizzata ____________________________________________________________________________________ 12
Rappresentazione delle istruzioni __________________________________________________________________________ 12
Istruzioni formato tipo-R (registro) _____________________________________________________________________ 12
Principio di progettazione numero 3 ____________________________________________________________________ 12
Esadecimale _______________________________________________________________________________________________ 12
Istruzioni formato tipo-I (immediato) __________________________________________________________________ 13
Le operazioni logiche ________________________________________________________________________________________ 13
Shift (scorrimento) _______________________________________________________________________________________ 13
AND ________________________________________________________________________________________________________ 13
OR __________________________________________________________________________________________________________ 13
NOT -> NOR _______________________________________________________________________________________________ 13
XOR ________________________________________________________________________________________________________ 14
Istruzioni per prendere decisioni __________________________________________________________________________ 14
Branch if equal (salto condizionato) ____________________________________________________________________ 14
Branch if not equal (salto condizionato) ________________________________________________________________ 14
Jump (salto incondizionato) _____________________________________________________________________________ 14
Ciclo while _________________________________________________________________________________________________ 14
Blocco base ________________________________________________________________________________________________ 14
Set on less than ___________________________________________________________________________________________ 14
Set on less than immediate _______________________________________________________________________________ 14
Set less than unsigned / immediate _____________________________________________________________________ 15
Costrutto case/switch ____________________________________________________________________________________ 15
Tabella degli indirizzi di salto ____________________________________________________________________________ 15
Il supporto hardware alle procedure _______________________________________________________________________ 15
Procedura (funzione) _____________________________________________________________________________________ 15
Sommario
Jump and link _____________________________________________________________________________________________ 15
Programma chiamante ___________________________________________________________________________________ 15
Procedura chiamata ______________________________________________________________________________________ 15
Program Counter (PC) ____________________________________________________________________________________ 16
Stack _______________________________________________________________________________________________________ 16
Stack pointer ______________________________________________________________________________________________ 16
Push ________________________________________________________________________________________________________ 16
Pop _________________________________________________________________________________________________________ 16
Procedure foglia___________________________________________________________________________________________ 16
Procedura non foglia _____________________________________________________________________________________ 16
Variabili automatiche e statiche in C ____________________________________________________________________ 16
Global pointer ($gp) ______________________________________________________________________________________ 16
Allocazione dello spazio nello stack per i nuovi dati ___________________________________________________ 16
Record di attivazione _____________________________________________________________________________________ 16
Frame pointer _____________________________________________________________________________________________ 16
Allocazione dello spazio nello heap per i nuovi dati ___________________________________________________ 17
Stack _______________________________________________________________________________________________________ 17
Segmento di testo _________________________________________________________________________________________ 17
Segmento dati statici _____________________________________________________________________________________ 17
Heap (Dynamic Data) _____________________________________________________________________________________ 17
Caratteri ______________________________________________________________________________________________________ 17
Load byte __________________________________________________________________________________________________ 17
Store byte __________________________________________________________________________________________________ 17
Load halfword _____________________________________________________________________________________________ 17
Load byte/halfword unsigned ___________________________________________________________________________ 17
Store halfword ____________________________________________________________________________________________ 18
Copia di una stringa ______________________________________________________________________________________ 18
Indirizzi di tipo immediato su 32 bit _______________________________________________________________________ 18
Load upper immediate ___________________________________________________________________________________ 18
Registro $at ________________________________________________________________________________________________ 18
Indirizzamento nei salti _____________________________________________________________________________________ 18
Indirizzamento relativo al Program Counter ___________________________________________________________ 19
Sommario
Salto a indirizzi lontani (branching far away) __________________________________________________________ 19
Riassunto modalità di indirizzamento __________________________________________________________________ 19
Tradurre e avviare un programma _________________________________________________________________________ 19
Compilatore _______________________________________________________________________________________________ 19
Assemblatore ______________________________________________________________________________________________ 20
File oggetto ________________________________________________________________________________________________ 20
Linker ______________________________________________________________________________________________________ 20
Loader _____________________________________________________________________________________________________ 20
Librerie a caricamento statico (tradizionale) ___________________________________________________________ 20
Librerie a caricamento dinamico (DLL, Dynamically Linked Libraries) _______________________________ 20
Lazy linkage _______________________________________________________________________________________________ 21
Eseguire programmi Java
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.
-
Architettura dei calcolatori e sistemi operativi - Appunti
-
Appunti di Architettura - Parte Sistemi Operativi con spiegazioni semplicissime
-
Appunti completi Architettura dei Calcolatori, prof. Umberto Villano
-
Appunti Sistemi Operativi