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.
vuoi
o PayPal
tutte le volte che vuoi
Bus di sistema
Collega tra loro le varie funzionalità (CPU, memoria centrale ed interfacce). Il bus è sempre sotto la supervisione della CPU:
- Seleziona l'interconnessione da attivare
- Indica l'operazione da svolgere
Le unità funzionali si attivano solo dopo essere state selezionate dalla CPU. La durata dell'interconnessione dipende da:
- Velocità di trasmissione del bus
- Velocità dei dispositivi ad esso connessi
Il bus di sistema è suddiviso in base al tipo di informazione trasportata funzionalmente in 3 parti:
- Bus dati: per trasferire dati ed istruzioni
- Bus indirizzi: per trasportare gli indirizzi della cella di memoria o delle interfacce coinvolte nell'interconnessione
- Bus di controllo: transitano i segnali di controllo che consentono di attivare le unità coinvolte in un trasferimento dati (sorgente e destinazione) e di definire la direzione dello scambio (scrittura o lettura)
Le operazioni possibili
Sono due: lettura e scrittura di una parola, posta ad un indirizzo specificato.
I principali produttori sono Intel ed AMD.
REGISTRI DELLA CPU:
Sono delle piccole celle di memoria utilizzate dal microprocessore, per svolgere le proprie mansioni.
I registri accumulatori (la quantità di questi è dipesa dal modello di CPU) rappresentano la memoria a breve termine e sono composti di un numero fisso di Bit (dipeso dal modello della CPU).
Questi registri vengono utilizzati per salvare gli operandi ed il risultato di un istruzione.
Esistono poi registri speciali che svolgono operazioni specifiche:
- PC: program counter -> registro contatore delle istruzioni. Non conta le istruzioni ma contiene l'indirizzo della prossima cella da eseguire.
- IR: instruction register -> registro delle istruzioni, contiene una copia dell'istruzione da eseguire.
- PSW: processor status word -> contiene informazioni circa gli eventi che possono verificarsi a seguito dell'esecuzione di
una singola operazione. Un' istruzione può richiedere più cicli di Clock per essere completata. L' intervallo di tempo T tra due impulsi di Clock (detto periodo) nel segnale di Clock è prestabilito e costante. Il periodo di T deve essere impostato in modo tale da consentire a tutti i circuiti di completare correttamente le proprie operazioni. La frequenza di Clock è l'inverso del periodo (1/T) e rappresenta il numero di impulsi/cicli al secondo. La velocità di elaborazione di un microprocessore è strettamente collegata alla frequenza di Clock. La frequenza è misurata in Hz mentre il periodo in nanosecondi.
LINGUAGGIO MACCHINA
La CPU riconosce ed esegue un particolare set di istruzioni macchina, che appartengono al linguaggio macchina. I programmi che vengono caricati ed eseguiti dalla CPU sono scritti usando lo specifico linguaggio macchina di quel processore. Ogni modello di processore è in grado di comprendere ed eseguire
solo il proprio linguaggio macchina ISA. Tipologia delle istruzioni Le istruzioni seguite dalla CPU sono di 3 tipi:- Istruzioni aritmetica logiche (elaborazione dati):
- Istruzioni algebriche: somma, sottrazione, moltiplicazione, ...
- Istruzioni logiche: operatori logici come and, or, not
- Istruzioni di confronto: >, <, =, <>, ...
- Istruzioni di controllo del flusso di esecuzione:
Le istruzioni che controllano il flusso alterano la normale esecuzione delle istruzioni e la basano su decisioni.
Appartengono a questa categoria le istruzioni di salto:
- Salto incondizionato (Jump): salta ad una determinata istruzione
- Salto condizionato (branch): salta ad una determinata istruzione solo se si verifica una specifica condizione.
Mediante questa tipologia di istruzioni è possibile implementare i costrutti selettivi (if, select, ...) ed iterativi (for, while, ...) a condizioni finale ed iniziale.
- Istruzioni di trasferimento dell'informazioni:
Scambio
di dati ed istruzioni tra CPU e memoria
Trasferimento dati ed istruzioni dalla CPU alle periferiche e viceversa.
FORMATO DELLE ISTRUZIONI MACCHINA
Le istruzioni del linguaggio macchina sono caratterizzate da:
- Codice operativo -> che identifica il tipo di istruzione
- Operandi -> rappresentano i dati su cui l'istruzione deve operare, oppure gli indirizzi delle celle dove prelevare le informazioni o memorizzare i risultati
La descrizione che definisce in un'istruzione la dimensione in bit del codice operativo, il numero degli operandi e la loro tipologia viene detto formato di istruzione.
CODICE OPERATIVO
Il codice operativo identifica il tipo di istruzione. A seconda del codice operativo cambia il numero degli operandi e la loro dimensione.
OPERANDI
Il codice operativo di ogni istruzione macchina definisce se si tratta di un operando sorgente o di destinazione. Può essere:
- Valore costante: operando immediato (numero)
- Indirizzo di memoria: operando di memoria
- FETCH (prelievo): prende l'istruzione da eseguire (il cui indirizzo RAM è contenuto nel registro PC) dalla memoria e la inserisce nel registro istruzioni IR. In seguito incremento il program Counter (PC) in modo che punti all'indirizzo della parola contenente l'istruzione successiva da eseguire
- DECODE (decodifica): determina il tipo di istruzione da eseguire. Se l'istruzione utilizza il contenuto di una parola in memoria, determina dove si trova e, se necessario, la carica nel registro della CPU
- EXECUTE: esegue l'operazione
- Ritorno allo step 1
istruzione corrente IR:
- Invio sul bus indirizzi del valore nel PC
- Attivazione del comando leggi sul bus di controllo
- Copia del contenuto del registro MDR (bus dati) che contiene l'istruzione da eseguire all'interno del registro IR
- Successivo incremento del contenuto del PC
DECODE: decodifica
La CU esamina l'istruzione nel registro IR per determinare quale operazione svolgere e quali siano i suoi operandi.
ESECUZIONE:
Le unità coinvolte vengono opportunamente comandate dall'unità di controllo ed avviene l'esecuzione. Il ciclo ricomincia dal prelievo dell'istruzione successiva.
MEMORIA CACHE
La memoria cache è una memoria rapida che permette di abbassare i tempi di attesa della CPU causati dalla bassa velocità di accesso della memoria centrale. La memoria centrale ha una velocità molto più bassa rispetto a quella di esecuzione del processore; la CPU deve rallentare ed attendere il trasferimento.
dell' istruzione successiva (la CPU si adegua alla velocità della memoria centrale). Le memorie utilizzate per la cache (static RAM) hanno invece un tempo che tende ad avvicinarsi a quello dei registri interni del processore. Trattano solo i dati e le istruzioni che devono essere elaborati dalla CPU nell'immediato. La memoria cache ha quindi l'obbiettivo di disaccoppiare i dispositivi caratterizzati da velocità operative più lente da quelli con velocità maggiori, in modo da non subire rallentamenti. L'idea è quella di pre-caricare in cache un'istruzione in modo tale che la CPU possa sempre partire dalla successiva pre-caricata senza subire ritardi. Un esempio di cache è la memoria tampone (buffer) delle stampanti. In essa viene immagazzinato il file di stampa prima di essere stampato, così da disaccoppiare il computer che crede di aver già completato la procedura di stampa. I computer recenti hanno più.livelli di memoria cache:
Memoria cache di primo livello (L1) -> direttamente integrata nel processore. Essa è suddivisa in due parti, cache istruzioni e cache dati. La cache dati contiene i dati recentemente utilizzati dal processore. Le cache di primo livello sono rapidissime tanto da avvicinarsi al tempo dei registri interni del processore.
Memoria cache di secondo livello (L2) -> è posta all'interno del case contente la CPU. Nei processori multicore, ognuno ha la sua L1 ed L2. La cache di secondo livello è meno rapida e meno costosa, ma più veloce della RAM.
Memoria cache di terzo livello (L3) -> Nei multicore è condivisa tra tutti i core.
Tutti questi livelli di cache permettono di ridurre il tempo di attesa (o di latenza) dal momento in cui viene inviato il comando.