Architettura di un Computer Architettura dei computer In

  • Slides: 33
Download presentation
Architettura di un Computer

Architettura di un Computer

Architettura dei computer • In un computer possiamo distinguere quattro unità funzionali: – il

Architettura dei computer • In un computer possiamo distinguere quattro unità funzionali: – il processore – la memoria principale – la memoria secondaria – i dispositivi di input/output • Il processore e la memoria principale costituiscono l’unità centrale

Componenti principali di un computer Unità centrale Processore Memoria principale (centrale) Bus Controller Stampante

Componenti principali di un computer Unità centrale Processore Memoria principale (centrale) Bus Controller Stampante Terminale Periferiche di input/output Memorie di massa (secondarie)

Organizzazione fisica attuale Periferiche per l’input Unità di controllo ed elaborazione e memoria Tastiera

Organizzazione fisica attuale Periferiche per l’input Unità di controllo ed elaborazione e memoria Tastiera e mouse Scanner CPU + HD, CD, Floppy Periferiche per l’output

Hard Disk Lettore CD Floppy Disk RAM CPU

Hard Disk Lettore CD Floppy Disk RAM CPU

La scheda madre

La scheda madre

Le idee ed i pionieri • Babbage • Turing • von Neuman Il computer

Le idee ed i pionieri • Babbage • Turing • von Neuman Il computer è un calcolatore digitale programmabile dotato di memoria dati e programmi risiedono in memoria

La memoria principale • Fornisce la capacità di “memorizzare” le informazioni (i dati e

La memoria principale • Fornisce la capacità di “memorizzare” le informazioni (i dati e i programmi) • Può essere vista come una lunga sequenza di componenti elementari, ognuna delle quali può contenere un’unità di informazione (un bit)

 • Le componenti elementari della memoria sono aggregate tra di loro e formano

• Le componenti elementari della memoria sono aggregate tra di loro e formano strutture complesse dette celle che possono contenere otto bit (un byte) • La memoria può essere vista come una sequenza di celle

La memoria principale 0 1 2 3 4 • Ciascuna cella è caratterizzata da

La memoria principale 0 1 2 3 4 • Ciascuna cella è caratterizzata da un indirizzo • Gli indirizzi corrispondono all’ordinamento delle celle nella sequenza • Gli indirizzi sono numeri interi (partono da 0) • Gli indirizzi sono determinati dall’ordinamento consecutivo N

 • Un altro nome con cui viene indicata la memoria principale è memoria

• Un altro nome con cui viene indicata la memoria principale è memoria RAM (Random Access Memory) • Questa definizione indica che il tempo di accesso ad una cella è lo stesso indipendentemente dalla posizione della cella • Le operazioni che un Processore può effettuare sulla memoria sono le operazioni di lettura e scrittura di informazioni nelle celle

 • L’ indirizzo di una cella è un numero intero e quindi lo

• L’ indirizzo di una cella è un numero intero e quindi lo si può codificare in binario • Il numero di celle di memoria determina il numero di bit necessari a rappresentare l’indirizzo • Viceversa il numero di bit destinati all’indirizzo determina il numero di celle indirizzabili • questo numero viene chiamato Spazio di indirizzamento

Dimensioni della Memoria • Le dimensioni della memoria principale variano a seconda del tipo

Dimensioni della Memoria • Le dimensioni della memoria principale variano a seconda del tipo di computer • Nei computer attuali le dimensioni tipiche della memoria principale vanno da 32 MB a 1 GB (1 MB = 220 byte ~ 1. 000 byte, 1 GB = 230 byte ~ 1. 000 byte)

Spazio di indirizzamento • Nei computer attuali lo spazio di indirizzamento è di almeno

Spazio di indirizzamento • Nei computer attuali lo spazio di indirizzamento è di almeno 32 bit, con cui si possono indirizzare 232 byte = 4 GB

Parola di memoria • Una parola di memoria è, a seconda del tipo di

Parola di memoria • Una parola di memoria è, a seconda del tipo di computer, un aggregato di (due) quattro o otto byte, sul quale si può operare (leggere e scrivere) come su un blocco unico • Per eseguire le operazioni di lettura e scrittura sulla memoria, si deve specificare l’indirizzo della parola su cui si vuole operare • Gli indirizzi delle parole devono essere multipli del numero di celle (byte) che le compongono

Indirizzamento • La cella è l’unità minima di memoria indirizzabile, non sono indirizzabili i

Indirizzamento • La cella è l’unità minima di memoria indirizzabile, non sono indirizzabili i singoli bit • La parola è l’unità massima di memoria che è possibile leggere e scrivere in un colpo solo (mediante un’unica istruzione)

 • La memoria è caratterizzata dal tempo di accesso (tempo necessario per leggere

• La memoria è caratterizzata dal tempo di accesso (tempo necessario per leggere o scrivere un’informazione in una parola) • Le memorie principali dei computer attuali sono molto veloci e i loro tempi di accesso sono di pochi nanosecondi (= 10 -9 sec, un miliardesimo di secondo) • Le memorie principali sono relativamente costose

 • La memoria principale perde ogni suo contenuto quando si interrompe l’alimentazione elettrica.

• La memoria principale perde ogni suo contenuto quando si interrompe l’alimentazione elettrica. Questa caratteristica viene chiamata volatilità • È quindi necessario per conservare le informazioni (programmi e dati) avere altri tipi di memoria che conservano il contenuto anche senza alimentazione elettrica

Il Processore • Il processore è la componente dell’unità centrale che elabora le informazioni

Il Processore • Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale • L’elaborazione avviene eseguedo sequenze di istruzioni (istruzioni macchina) • Il linguaggio in cui si scrivono queste istruzioni viene chiamato linguaggio macchina • Il ruolo del processore è quindi quello di eseguire programmi in linguaggio macchina

Componenti di un processore Bus Interno REGISTRI Program Counter (PC) Registro di Stato (PS)

Componenti di un processore Bus Interno REGISTRI Program Counter (PC) Registro di Stato (PS) Unità di Controllo Registro Istruzioni (RI) Registri Generali (16 o 64) Unità Aritmetico. Logica Registro Indirizzi Memoria (RIM) Registro Dati Memoria (RDM) Registro di Controllo (RC)

L’unità di controllo • L’Unità di Controllo (UC) si occupa di coordinare le diverse

L’unità di controllo • L’Unità di Controllo (UC) si occupa di coordinare le diverse attività che vengono svolte all’interno del processore • Il processore svolge la sua attività in modo ciclico: ad ogni ciclo corrisponde l’esecuzione di una istruzione macchina • Ad ogni ciclo vengono svolte diverse attività controllate e coordinate dalla UC si legge dalla memoria principale la prossima istruzione da eseguire si decodifica l’istruzione letta si esegue l’istruzione

 • La frequenza con cui vengono eseguiti i cicli di esecuzione è scandita

• La frequenza con cui vengono eseguiti i cicli di esecuzione è scandita da una componente detta clock • Ad ogni impulso di clock la UC esegue una (o poche) istruzioni macchina • La velocità di elaborazione di un processore dipende dalla frequenza del suo clock • I processori attuali hanno valori di frequenza di clock che variano tra i 1000 MHz e 3000 MHz (tra 1000 milioni e 3 miliardi di impulsi al secondo)

Il Processore: i registri • Il processore contiene al suo interno un certo numero

Il Processore: i registri • Il processore contiene al suo interno un certo numero di registri (unità di memoria estremamente veloci) • Le dimensioni di un registro sono tipicamente quelle di una parola di memoria (ad esempio 4 o 8 byte)

Esistono due tipi di registri: – i registri speciali utilizzati dalla UC per scopi

Esistono due tipi di registri: – i registri speciali utilizzati dalla UC per scopi particolari: • controllo dell’esecuzione del programma • scambio di dati con la memoria centrale – i registri generali (registri aritmetici)

I registri speciali • PC: program counter, contiene l’indirizzo della prossima istruzione da eseguire

I registri speciali • PC: program counter, contiene l’indirizzo della prossima istruzione da eseguire • RI: registro istruzioni, contiene l’istruzione in esecuzione • PS: process state, informazione sullo stato dell’esecuzione e possibili errori • RIM: registro indirizzi di memoria, contiene l’indirizzo di memoria della cella (parola) in esame

 • RDM: registro dati memoria, contiene il dato da trasferire in o dalla

• RDM: registro dati memoria, contiene il dato da trasferire in o dalla cella di memoria in esame • RC: registro di controllo, contiene il codice dell’istruzione da eseguire

100 Codice op. Argomento 1 Argomento 2 Formato istruzione (esempio) Gli argomenti possono essere

100 Codice op. Argomento 1 Argomento 2 Formato istruzione (esempio) Gli argomenti possono essere indirizzi

La memoria principale (RAM) 0 1 2 cod. op. mem. Ind 1/Reg 1 Ind

La memoria principale (RAM) 0 1 2 cod. op. mem. Ind 1/Reg 1 Ind 2/Reg 2. . . istr. lettura (load)/scrittura (store) in memoria-registri cod. op. reg. Reg 1 Reg 2 istr. per operazione tra due registri . . . + -2 00003752 k numero rappr. con segno, esponente e mantissa

Il ciclo di esecuzione inizio PS: = start PC: = ind. 1 a istr.

Il ciclo di esecuzione inizio PS: = start PC: = ind. 1 a istr. no PS = stop? si fine RI: = istr ind. in PC PC: =PC+1 RC: = cod. istr. in RI esegui istruzione

Esecuzione istruzione RC load store add jump. . . stop RIM: = ind. oper.

Esecuzione istruzione RC load store add jump. . . stop RIM: = ind. oper. in RI RDM: = cont. ind. in RIM. . . ROP 1: = ROP 1+ROP 2 PC: = ind. oper. In RI PS: = stop

1000 Load 3568 R 1 1001 Add R 1 R 2 1002 Store R

1000 Load 3568 R 1 1001 Add R 1 R 2 1002 Store R 1 3568 1003 Jump 3568 1000 44

Esempio di esecuzione • • • PC = 1000 RC = Load RIM =

Esempio di esecuzione • • • PC = 1000 RC = Load RIM = 1000 RDM = (Load, 3568, R 1) RI = (Load, 3568, R 1) PC = 1001 RC = Load RIM = 3568 RDM = 44 R 1 = 44 Lettura dell’istruzione all’indirizzo 1000

L’Unità Aritmetico-Logica • L'Unità Aritmetico-Logica (ALU) è costituita da un insieme di circuiti in

L’Unità Aritmetico-Logica • L'Unità Aritmetico-Logica (ALU) è costituita da un insieme di circuiti in grado di svolgere le operazioni di tipo aritmetico e logico • La ALU legge i dati contenuti all'interno dei registri generali, esegue le operazioni e memorizza il risultato in uno dei registri generali • Ad esempio, vi sono circuiti in grado di eseguire la somma di due numeri binari contenuti in due registri e di depositare il risultato in un registro, circuiti in grado di eseguire il confronto tra due numeri • In alcuni elaboratori oltre alla ALU si può avere un processore specializzato per effettuare operazioni matematiche particolari, il coprocessore matematico