Caricare documenti e articoli online 
INFtub.com è un sito progettato per cercare i documenti in vari tipi di file e il caricamento di articoli online.


 
Non ricordi la password?  ››  Iscriviti gratis
 

Architettura di un microprocessore - Esame dei singoli blocchi (registri) del microprocessore

informatica



Architettura di un microprocessore


Microprocessore: E' un circuito integrato costruito in tecnologia VSLI, adatto a svolgere funzioni diverse, modificando solo in modo minimo la parte circuitale (hardware) ad esso connessa, ma variando di volta in volta, in base all'applicazione richiesta il programma di gestione (software).


In ogni i microprocessore sono presenti i diversi blocchi funzionali:


Registro istruzioni;

Decodificatore delle istruzioni;

Unita logica aritmetica (ALU);



Registro accumulatore;

Registri di uso generale;

Registro contatore di programma; 242j93c

Registro dei flag;

Registro di Stack (Stack pointer SP);

Unità di controllo e temporizzazione;

Buffer bus dati;

Buffer bus indirizzi.


I microprocessori


L'insieme di linee che collegano i blocchi costituiscono i bus interni del microprocessore.

Per poter funzionare il microprocessore deve ricevere dall'esterno una serie ordinata di istruzioni.

Le istruzioni vengono memorizzate in chip esterni al microprocessore, sotto forma di codici binari, quelli presenti in memoria vengono acquisiti attraverso una serie di linee denominate bus dati.

La CPU pone sulle linee del bus indirizzi un valore binario che costituisce l'indirizzo di una certa locazione di memoria, poi preleva il contenuto di tale locazione se è attiva la linea di lettura o scrive in essa se invece ad essere attiva è la linea di scrittura.


Esame dei singoli blocchi (registri) del microprocessore


Circuito di temporizzazione: circuito che temporizza tutte le operazioni della CPU con il clock di sistema. Può essere interno o esterno al microprocessore.


Registro istruzioni: Contiene l'istruzione (codice) che la CPU deve eseguire in un determinato istante. E' collegato al bus dati, da cui preleva i codici operativi delle istruzioni da eseguire, attraverso il bus interno del microprocessore e il buffer dati.


Decodificatore delle istruzioni e Unità di Controllo: Il decodificatore riceve il codice operativo contenuto nel registro istruzioni e lo traduce in codice comprensibile all'unità di controllo. L'unità di controllo contiene il microcodice (codice, contenuto in una memoria del microprocessore di tipo ROM, che permette di eseguire all'interno della CPU un'azione elementare) che deve gestire ogni fase delle singole operazioni svolte dalla CPU.

L'unità di controllo genera i segnali necessari a coordinare il trasferimento dei dati tra i vari blocchi all'interno della CPU. Per svolgere le sue funzioni è collegata attraverso apposite linee con tutti i blocchi presenti all'interno della CPU.

Dall'unità partono e arrivano segnali diretti verso l'esterno, che costituiscono il Bus di Controllo esterno.

Le più significative linee del bus indirizzi sono:

linea di lettura (Read): viene posta attiva dal circuito di controllo quando la CPU deve leggere  dati dalla memoria o da una periferica;

linea di scrittura (Write): è attiva quando la CPU deve scrivere dati ad una memoria o ad una periferica;

linea per operazioni su memoria (MEM): è attiva quanod la CPU deve accedere ad una memoria per operazioni di scrittura o lettura

linea per operazioni su periferica (I/O): è attiva quando la CPU deve accedere ad una periferica per una operazione di scrittura o lettura.



L'unità logica aritmetica (ALU): Rete logica in grado di eseguire operazioni aritmetiche e logiche. Invia e riceve dati agli altri blocchi tramite il bus interno. Quando l'ALU lavora con due operandi, i dati sono posti nell'accumulatore e in un altro registro temporaneo, o in alcuni microprocessori in due registri temporanei. Il risultato di ogni operazione viene trasferito nell'accumulatore.



Registri di uso generale: sono presenti in ogni CPU. Hanno capacità di memoria diverse a seconda del tipo di microprocessore. Sono utilizzati per depositarvi temporaneamente i dati senza dover ricorrere alla memoria esterna.


Registro di stato o dei Flag: assumono importanza i singoli bit in esso contenuti e non l'intero registro. Lo stato del registro (zero o uno) è determinato dall'ALU alla quale è collegato assieme al bus dati interno. La sua capacità varia a seconda del tipo di microprocessore. Un tipico flag presente è quello di riporto (carry) e il flag zero che indica che il risultato dell'operazione precedente è zero.

Il Flag Z si valorizza quando nell'accumulatore c'è zero (quando il risultato è zero).

Il Flag C va a 1 quando si ha 1 di riporto.

Il Flag N negativo.


Contatore di programma (program counter): contiene l'indirizzo della locazione di memoria a cui deve accedere il microprocessore. Viene incrementato di uno quando viene acquisito dalla CPU il contenuto delle locazioni di memoria contenente il codice delle istruzioni.

Con particolari istruzioni, questo registro, viene caricato con l'indirizzo della locazione di memoria destinataria del salto o della chiamata.


Il Registro Stack Pointer: contiene l'indirizzo che inizializza un'area di memoria detta Stack. E' riservata alla CPU per memorizzare gli indirizzi di ritorno quando avvengono delle chiamate ai sottoprogrammi. Il programmatore può utilizzare lo stack per memorizzarvi il contenuto dei vari registri. Nello Stack, l'ultimo dato ad essere inserito è il primo ad essere estratto (modo LIFO). Durante la scrittura lo stack viene decrementato, mentre durante la fase di estrazione viene incrementato.


BUS Indirizzi: è costituito da un numero di linee medianti le quali seleziona le locazioni di memoria o dei dispositivi I/O ai quali invia o riceve informazioni. E' monodirezionale e le sue linee sono tutte uscenti dal microprocessore.


BUS Dati: sulle linee di questo bus viaggiano i codici delle istruzioni e i dati che devono essere trasferiti dalla CPU alla locazione di memoria selezionata. E' bidirezionale poiché i dati possono essere mossi sia dalla memoria o da dispositivi periferici della CPU (operazione di lettura) o viceversa (operazione di scrittura). Normalmente il numero di linee che lo compongono corrispondono al numero di bit che possono contenere i registri della CPU.


Segnale di Reset: è un segnale esterno che va applicato all'apposito pin del circuito integrato. In stato attivo blocca il funzionamento della CPU e inizializza il contenuto del registro accumulatore e di tutti gli altri registri.







Altro:


Il Bus di controllo è utilizzato dalla CPU per segnalare alla memoria e ai dispositivi d'ingresso e d'uscita la direzione del flusso dei dati (lettura o scrittura) e il tipo di dispositivo che dovrà scambiare i dati con essa (memoria o dispositivo di I/O).


L'esecuzione di una istruzione è caratterizzata da due fasi:

Fetch: lettura del codice operativo

il program counter viene caricato con l'indirizzo della locazione di memoria in cui è contenuto il codice operativo della istruzione che la CPU deve eseguire

Viene selezionata la locazione di memoria contenente il codice operativo trasferendo il contenuto del program counter sul buffer indirizzi

Il codice operativo è portato nel buffer dati e poi nel registro istruzioni

Il program counter viene automaticamente incrementato e finisce così la fase di fetch

Esecuzione

viene decodificato il codice operativo caricato nel registro istruzioni

L'unità di controllo verifica quali operazioni devono essere svolte e attiva i segnali di controllo interni ed esterni

La logica di controllo attiva i segnali per una nuova fase di fetch (ist. Successiva).


Architetture CISC e RISC


L'architettura di tipo CISC: ha un gran numero di istruzioni di tipo anche complesso, per facilitare il compito dei programmatori e per disporre di programmi più compatti che utilizzassero minore memoria.


L'architettura di tipo RISC: ha un piccolo numero di istruzioni di tipo semplice, quasi tutte le istruzioni di lunghezza fissa sono eseguite in un singolo ciclo di clock permettendo di adottare efficacemente la tecnica del pipelining.


Sistemi di memoria cache


La cache è una memoria con piccoli tempi di accesso, e dimensioni contenute, inserita tra la memoria centrale di tipo DRAM (o SDRAM) e il microprocessore. Questa rende pià rapido l'accesso ai dati che la CPU richiede più di frequente.

La cache opera nel seguente modo: quando la CPU deve effettuare un accesso alla memoria per leggere un dato, controlla innanzitutto se esso è già presente nella cache, in questo caso, il dato viene caricato direttamente dalla cache, altrimenti il dato deve essere copiato dalla DRAM (o SDRAM) nella cache e poi trasferito nel processore (questo rallenta le operazioni). E' molto elevata la possibilità che un dato si trovi nella cache visto che i processori accedono spesso ad un gruppo di locazioni contigue.


Nuovi microprocessori


Il microprocessore carica le istruzione da eseguire dalla memoria eseguendo una fase di fetch e una fase di decodifica del codice caricato ed infine una fase di esecuzione dell'istruzione decodificata. Durante la fase di decodifica il BUS è posto in una fase di inattività chiamata idle.

Il ciclo poi ricomincia con la istruzione seguente e così via.

Con i nuovi microprocessore (dall'8088/86 in avanti) si iniziò a sfruttare lo stato di idle per eseguire il pre-fetch della istruzione seguente.

Questo è stato reso possibile perché sono presenti due unità distinte: L'EU (Excecutio Unit) che decodifica ed esegue le istruzioni decodificate e l'altra che si interfaccia ai BUS, cioè la BIU (Bus Interface Unit) che ha, il compito di prelevare i codici delle istruzioni dalla memoria. In tal modo l'indirizzo dell'istruzione seguente può essere posto sul BUS indipendentemente dall'attività di decodifica dell'istruzione attuale.

L'architettura che permette di sovrapporre più istruzioni utilizzando un'unica risorsa di esecuzione è detta di tipo pipeline (catena per l'elaborazione dati). La tecnica del pipelining è quindi la tecnica che permette il caricamento e l'esecuzione di una nuova istruzione prima che sia stata portata a termine quella precedente.

Ogni volta che l'EU preleva un codice dalla coda per decodificarlo, la BIU carica dalla memoria un nuovo codice.

Quando in un processore sono presenti più unità che operano in parallelo si dice che è utilizzata una tecnologia superscalare. Con questa tecnica il processore può operare quindi in parallelo su più istruzioni.




Privacy




Articolo informazione


Hits: 3413
Apprezzato: scheda appunto

Commentare questo articolo:

Non sei registrato
Devi essere registrato per commentare

ISCRIVITI



Copiare il codice

nella pagina web del tuo sito.


Copyright InfTub.com 2024