Von Neumann Architecture
CPU e memoria
Von Neumann: CPU (Central Processing Unit)
Memoria: Programmi + dati
Bus: Struttura di interconnessione su cui vengono trasferiti dati I/O
Word (parola): Unità di trasferimento dati (es. 32 bit, 64 bit)
Linguaggio macchina: Linguaggio nativo della CPU (microprocessore), è specificato da un set di istruzioni eseguibili dalla CPU
Una CPU esegue istruzioni caricando dalla memoria ed eseguendole sequenzialmente.
N.B.: Una CPU può essere costituita da più "core" che sono a loro volta dei microprocessori sequenziali.
Cicli di clock
I cicli di clock sono una misura indiretta del tempo di esecuzione. Ad esempio:
- L'addizione intera richiede generalmente 1 ciclo di clock.
- La divisione intera richiede spesso 8-10 cicli di clock.
Caratteristiche della CPU
- Bus: Struttura di interconnessione su cui vengono trasferiti dati in un sistema di calcolo.
- Word (parola): Unità di trasferimento dati (es. 32 bit, 64 bit).
- Linguaggio macchina: Linguaggio nativo della CPU (microprocessore), è specificato da un set di istruzioni eseguibili dalla CPU.
- Una CPU esegue istruzioni caricate dalla memoria ed eseguendole sequenzialmente.
In realtà è possibile eseguire simultaneamente alcune istruzioni, ma l’effetto dal punto di vista di un osservatore esterno è come se le istruzioni fossero eseguite in sequenza.
N.B.: Una CPU può essere costituita da più "core" che sono a loro volta dei microprocessori sequenziali.
Gli eventi in una CPU sono regolati da un clock, che temporizza gli eventi stessi.
Unità minima: ciclo di clock che descrive il tempo minimo fra due eventi.
Frequenza di clock
La velocità di una CPU è determinata dalla frequenza di clock. Ad esempio:
- Anno 1980: Microprocessore Z80, frequenza clock di 1,5 MHz = 1,5 milioni di cicli al secondo.
- Anno 2004: Intel Core 2, 3,5 GHz = 3,5 miliardi di cicli al secondo.
Memoria
Memoria: RAM
Memoria volatile (tecnologia: DRAM) richiede corrente continua per "rinfrescare" periodicamente le celle. Regola generale: più una memoria è grande più è lenta ed economica.
Dimensioni: numero di byte (o suoi multipli di 10) memorizzabili. Velocità di lettura/scrittura.
Hard Disk
- Memorie non volatili; presenza delle schede madre.
- 1980: 20 MB
- 2015: 2 TB
Conversione unità di memoria:
- 1 byte
- 1 KB = 1024 byte = 210 byte ➔ Migliaia
- 1 MB = 220 byte ➔ Milioni
- 1 GB = 230 byte ➔ Miliardi
- 1 TB = 240 byte ➔ Miliardi di miliardi
Memoria RAM
- 1980: ZX Spectrum 48 KB, C64 64 KB
- 2015: 8 GB
Kibibyte
- 1 KiB = 210 byte
- 1 MiB = 220 byte
Istruzioni base di una CPU
- Movimento dati: istruzioni che spostano fra la CPU e la memoria/i dispositivi I/O.
- Aritmetico/logiche: operazioni sui dati (somma, sottrazioni, divisioni, ...).
- Salti da una parte all'altra di un programma.
Controllo
Determina l'istruzione corrente da eseguire. La posizione corrente nel programma viene tenuta dalla CPU in una locazione detta Program Counter (PC) oppure Instruction Register (IR).
All'avvio di un programma, il PC punta alla prima istruzione da eseguire. Ogni volta che viene eseguita un'istruzione, il PC viene automaticamente posto all'indirizzo dell'istruzione successiva in memoria, tranne nel caso di istruzioni di salto.
CPU (core singolo)
- Decodifica istruzioni
- Unità aritmetico/logica
Registri sono memorie locali a bordo della CPU che possono contenere una word ciascuno. Molto veloci!
Programmazione di un sistema di calcolo
Linguaggio macchina: Formato generico. Le istruzioni sono codificate come sequenza di byte. Esempio: 55 48 89 E5
| 55 | 48 | 89 | E5 |
|---|---|---|---|
| 1 Byte | 1 Byte | 2 Byte | |
| OPERANDI | OPCODE | ||
Codice identificativo dell'istruzione (è sempre il 1° byte).
Linguaggio assembly
Il linguaggio di "inviluppo" del linguaggio macchina che fornisce una rappresentazione mnemonica delle istruzioni macchina in forma comprensibile a un programmatore.
Esempio di assembly:
- 55 - push %rbp
- 48 89 E5 - mov %rsp, %rbp
Disassemblatore: Uno strumento per tradurre codice macchina in codice assembly.
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.
-
Sistemi Elettronici
-
Sistemi Operativi
-
Sistemi distribuiti - teoria completa
-
Teoria dei sistemi di trasporto 1