I microprocessori Il microprocessore è un circuito integrato costituito da silicio. Il microprocessore svolge fondamentalmente due funzioni: sovraintende tutte le operazione del sistema ed esegue i calcoli aritmetici e logici. Quindi la CPU si suddivide In due unità fondamentali: Unità di controllo ( CU, Control Unit) e l’unità aritmetico logica ( ALU, Arithmetic Logic Unit). Il ciclo macchina Il funzionamento della CPU inizia col prelevamento delle istruzioni da eseguire; l'istruzione in seguito viene codificata e in seguito la CPU emette i segnali necessari all’esecuzione dell’istruzione. • • • • Fetch dell’istruzione; Decode dell’istruzione; Fetch degli operandi; Execute. Fetch dell’istruzione Il termine Fetch significa prelevamento e identifica la fase in cui la CPU deve reperire le istruzioni da eseguire. Il prelevamento avviene in questo modo: la Control Unit legge la cella di memoria in cui l’indirizzo è memorizzato in un apposito registro chiamato Program Counter (PC). Inoltre incrementa il contenuto del registro Program Counter in modo che esso punti all’istruzione successiva. Decode dell’istruzione In questa fase il codice macchina dell’istruzione viene codificato in operazioni da eseguire da parte della CPU. Fetch degli operandi In questa fase il processore riconosce se necessario o meno prelevare dalla memoria o da un registro interno un altro dato per completare l’esecuzione dell’istruzione. Execute dell’istruzione Nella fase di execute la Control Unit invia segnali che rappresentano opportuni comandi per l’esecuzione. I registri I registri indicano una particolare cella di memoria contenuta all’interno della CPU. La dimensione dei registri si esprime in bit e dipende dall’architettura specifica della CPU. In generale la funzione dei registri e quella di memorizzare temporaneamente i dati. I registri possono essere accessibili e non,possono essere speciali o generali. I registri generali vengono utilizzati principalmente per memorizzare temporaneamente dei dati in corso di elaborazione e variano a seconda dell’ISA del sistema, i registri generali sono tutti accessibili dal programmatore. I registri speciali Anche se il numero di registri speciali varia a seconda dell' Isa del sistema, tuttavia alcuni registri sono sempre presenti: IP(Instruction Pointer) Contiene l'indirizzo dell'istruzione che deve essere eseguita immediatamente dopo quella corrente. SP(Stack Pointer) Contiene l'indirizzo di una specifica zona di memoria organizzata secondo la filosofia LIFO. IR(Instruction Register) Contiene il codice operativo dell'istruzione che è stata prelevata durante la fase di fetch. AR(Address Register) , Sono registri che consentono la segmentazione della memoria e sono divisi in: -CS(Code Segment) -DS(Data Segment) -ES(Extra Segment) -SS(Stack Segment) Registro dei flag Consiste in un gruppo di bit che consentono di ottenere tutta una serie di informazioni sullo stato dei risultati dell'ultima operazione aritmetico-logica eseguita. L'UC e il Temporizzatore L'unità di controllo (UC o CU, Control Unit), unitamente al temporizzatore, definisce la cadenza con cui si susseguono in modo sincrono la varie operazioni del sistema. La sezione della cpu legata all' UC e al temporizzatore genera i comandi eseguibili e il segnale di clock. Il Processore 8086 Il processore Intel 8086, chiamato anche iAPx86/10, introdotto sul mercato nel giugno 1978, è stato il primo microprocessore della seconda generazione a 16 bit. È contenuto in un chip di silicio a 40 pin i cui piedini sono disposti ordinatamente su due linee contenenti ognuna 20 piedini, a ciascuno dei quali fa capo un segnale specifico. L'8086 è costituito da due sottoinsiemi che operano in modo indipendente e asincrono: EU (Execution Unit) BIU (BUS Interface Unit) La EU costituisce la parte della CPU che elabora, ed è costituita da: Registri General Purpose; Registri speciali; Unità di controllo; Unita aritmetico-logica; La BIU gestisce l'indirizzamento, il prelievo dei dati e delle istruzioni dalla memoria e gestisce il colloquio con i dispositivi esterni. È costituita da: Logica di controllo dei BUS; Registri di segmento; Registro contatore di programma; Registri puntatore; Coda delle istruzioni, registro FIFO a 6 byte, in cui vengono memorizzate le istruzioni da eseguire. Attraverso l' architettura pipeline la BIU esegue le seguenti operazioni: Preleva le istruzioni dalla memoria e le mette in coda nel registro Instruction Queue mediante la tecnica chiamata prefetching; Preleva l'istruzione dalla coda, la pone nel registro IR e la esegue; In caso di interruzione, la coda delle istruzioni viene svuotata e riempita da altre istruzioni presenti nella destinazione indicata. L'ALU L'unità aritmetico-logica è il componente che esegue le elaborazioni richieste dalla CPU. La CPU, mediante appositi segnali di controllo, Indica all'ALU il tipo di operazione da eseguire. Tutti i segnali collegati in ingresso all'ALU sono Bafferizzati. LIFO Last In First Out indica una struttura di memoria chiamata a pila in cui l'ultimi elemento inserito rappresenta il primo a essere estratto Un segnale bufferizzato è segnale che viene mantenuto costante fino alla variazione successiva del clock. Clock Il clock è un circuito di temporizzazione che permette di generare un segnale a onda quadra caratterizzata da una particolare frequenza. A ogni ciclo i circuiti interni del processore eseguono un operazione. La frequenza viene misurata in hertz (Hz).