È detta unità centrale di elaborazione perché coordina in maniera centralizzata tutte le altre unità di elaborazione presenti nel computer ovvero i chip di elaborazione delle varie periferiche interne (scheda audio, scheda video, scheda di rete, ecc).
Attualmente la CPU è tipicamente implementata come microprocessore monolitico, viene montata sulla scheda madre, ed è collegata alle altre periferiche interne attraverso il chipset e le sue relative interfacce di collegamento.
Esistono diversi tipi di microprocessori, cioè:
- microprocessore monolitico; è costituito da un unico circuito integrato.Questo importante traguardo è stato raggiunto nei primi anni settanta del secolo scorso grazie ai notevoli e sorprendenti passi avanti compiuti dalla microelettronica: soltanto due decenni prima non era neanche immaginato un processore interamente contenuto in un unico componente elettronico in grado di occupare lo spazio di pochi centimetri cubi. Attualmente la tendenza è di inserire, nel medesimo circuito integrato, molteplici CPU tutte identiche (tale circuito integrato è chiamato "processore multicore", con il termine Core si intende il "nucleo elaborativo" di un microprocessore. Questo infatti è costituito in realtà da 2 componenti principali: il core e il package che lo contiene).
- microprocessore general purpose; è un microprocessore progettato per essere utilizzato nelle elaborazioni dati più varie. È quindi utilizzato come CPU nei computer general purpose, ma anche in altri compiti. Ad esempio, le periferiche che necessitano di grande potenza di calcolo, possono essere dotate di un proprio processore al fine di non gravare sul processore centrale. E spesso per tali periferiche vengono utilizzati microprocessori general purpose. Un esempio di periferiche in cui vengono utilizzati microprocessori general purpose sono le stampanti.
- microprocessore special purpose; Un microprocessore special purpose è un microprocessore progettato per essere utilizzato in particolari elaborazioni dati. Un esempio di microprocessore special purpose è il microcontrollore. Molti microprocessori special purpose sono dotati di limitate possibilità di programmazione o non sono completamente programmabili. L'RCA 1802 era un microprocessore specializzato non perché fosse limitato nella programmazione, bensì perché era progettato per applicazioni spaziali e quindi aveva delle particolari caratteristiche. Il sistema venne definito a progetto statico dato che poteva variare la frequenza di funzionamento in modo arbitrario fino a raggiungere gli 0 Hz in modo da andare in stop totale.
STRUTTURA
La CPU nacque a seguito dell'unione di due processori che precedentemente erano sempre stati separti:
- l' ALU (Arithmetic Logic Unit), è una tipologia di processore digitale che svolge operazioni di tipo aritmetico e logico. Presente sia nell'architettura di von Neumann che nella meno diffusa architettura Harvard l'ALU è tipicamente implementata come parte di un microprocessore monolitico. Le moderne CPU sono dotate di ALU molto sofisticate e un singolo microprocessore può contenere anche più ALU.
- la CU (Control Unit), ha il compito di coordinare tutte le azioni necessarie per l'esecuzione di una istruzione o di insiemi di istruzioni. Inoltre è il componente che dà la possibilità al microprocessore di eseguire istruzioni diverse. Le azioni che coordinano i vari settori della CPU vengono dette micro-operazioni o micro-istruzioni. Un insieme di micro-istruzioni viene detto micro-programma.
- i registri. Sono speciali locazioni di memoria interne alla CPU a cui è possibile accedere molto più rapidamente che alla memoria. I registri sempre presenti sono:
- il registro IP (Instruction Pointer) o PC (Program Counter), che contiene l'indirizzo in memoria della prossima istruzione da eseguire;
- il registro dei flag (una variabile booleana che può assumere solo due stati e che segnala se un dato evento si è verificato oppure no): questo registro contiene un insieme di bit, detti appunto flag, che segnalano stati particolari della CPU e alcune informazioni sul risultato dell'ultima operazione eseguita, ad esempio il flag "Overflow" indica se il risultato dell'operazione precedente era troppo grande per il campo risultato: 0 assenza di overflow, 1 overflow.
- I Bus, che sono canali di comunicazioni che collegano e permettono il "dialogo" tra i vari componenti della CPU. Essi a loro volta si dividono in:
- Bus Dati; è utilizzato per lo scambio di informazioni tra i vari dispositivi. È bidirezionale in quanto l' invio dei dati non è di sola appartenenza alla CPU.
- Bus Indirizzi; è il bus unidirezionale attraverso il quale la CPU decide in quale indirizzo andare a scrivere o a leggere informazioni: sia le celle di memoria che le periferiche di Input/Output sono infatti divise in zone, ognuna delle quali ha un dato indirizzo. Dopo aver comunicato l'indirizzo tramite questo bus, la scrittura o lettura avviene poi tramite il bus dati.
- Bus Di Controllo; è un insieme di collegamenti il cui scopo è coordinare le attività del sistema. tramite esso, la CPU può decidere quale componente deve scrivere sul bus dati, quale indirizzo leggere sul bus indirizzi, quali celle di memoria devono scrivere e quali invece leggere, etc. La memoria e tutti gli altri componenti comunicano con la CPU attraverso un unico bus condiviso; questo significa che senza un controllo da parte della CPU si verrebbero a creare delle collisioni.
Inoltre bisogna dire che una CPU è un circuito digitale sincrono: vale a dire che il suo stato cambia ogni volta che riceve un impulso da un segnale di sincronismo detto clock, che ne determina di conseguenza la velocità operativa, detta velocità di clock: quindi il tempo di esecuzione di una istruzione si misura in cicli di clock, cioè in quanti impulsi di clock sono necessari perché la CPU la completi.
SET D'ISTRUZIONI
Le istruzioni di una CPU (instruction set) sono semplicemente dei numeri, detti opcode o codici operativi: in base al loro valore l'unità di controllo intraprende delle azioni predefinite, come per esempio leggere la successiva locazione di memoria per caricare un dato, oppure attivare la ALU per eseguire un calcolo ecc. Per una persona, stendere programmi scrivendo direttamente gli opcode è estremamente noioso e incline all'errore; per questo motivo si utilizza l'assembly, che associa un simbolo mnemonico ad ogni istruzione della CPU e introduce una sintassi che permette di esprimere i vari metodi di indirizzamento in modo più intuitivo.
Una caratteristica importante dell'insieme delle istruzioni di una CPU è la sua ortogonalità: cioè il fatto che ogni istruzione che usi i registri possa usarli tutti indifferentemente (tranne quelli "speciali" come l'IP) e che nessun registro sia in qualche modo "privilegiato" cioè su di esso non si possono compiere operazioni particolari rispetto agli altri. È stato dimostrato anche che, a parità di condizioni, un set di istruzioni ortogonali è più efficiente rispetto a uno non ortogonale.
CICLO DEL PROCESSORE
- Acquisizione dell'istruzione (Instruction Fetch): il processore preleva l'istruzione dalla memoria, presente nell'indirizzo (tipicamente logico) specificato da un registro "speciale" ("speciale" opposto di "generico"), il PC.
- Decodifica (Operand Assembly): una volta che la word è stata prelevata, viene determinata quale operazione debba essere eseguita e come ottenere gli operandi, in base ad una funzione il cui dominio è costituito dai codici operativi (tipicamente i bit alti delle word) ed il codominio, consistente nei brani di microprogramma da eseguire.
- Esecuzione (Execute): viene eseguita la computazione desiderata. Nell'ultimo passo dell'esecuzione viene incrementato il PC: tipicamente di uno se l'istruzione non era un salto condizionale, altrimenti l'incremento dipende dall'istruzione e dall'esito di questa.
Il problema di questo approccio sono le istruzioni di salto condizionato: la CPU non può sapere a priori se dovrà eseguire o no il salto prima di aver eseguito quelle precedenti, così deve decidere se impostare la pipeline tenendo conto del salto o no: e in caso di previsione errata la pipeline va svuotata completamente e le istruzioni in corso di decodifica rilette da capo, perdendo un numero di cicli di clock direttamente proporzionale al numero di stadi della pipeline. Per evitare questo i processori moderni hanno unità interne (“Branch prediction unit”) il cui scopo è tentare di prevedere se, data una istruzione di salto condizionato e quelle eseguite in precedenza, il salto dovrà essere eseguito o no.
Inoltre i processori possono implementare al loro interno più unità di esecuzione per eseguire più operazioni contemporaneamente. Questo approccio incrementa le prestazioni delle CPU ma ne complica notevolmente l'esecuzione, dato che per poter eseguire in modo efficiente più operazioni in parallelo la CPU deve poter organizzare le istruzioni in modo diverso da come sono organizzate dal programmatore.8086 In Breve
L'8086 è il capostipite della famiglia dei microprocessori Intel con sigla x86 che successivamente si evolveranno con l'80286, 80386, 80486 ed il Pentium (P5), mantenendone la compatibilità. L'8086 è un microprocessore a 16 bit che può operar e anche su parole ad 8 bit, è contenuto in un package di 40 piedini, ad ognuno dei quali fa capo un determinato segnale. Le sue caratteristiche sono:
- bus Dati a 16 bit;
- bus Indirizzi a 20 bit;
- 14 registri a 16 bit di cui 4 utilizzabili come coppie ad 8 bit.;
- può essere programmato con linguaggi ad alto livello, può effettuare aritmetica binaria;
- alimentato a +5 Volt;
- package di 40 piedini;
- set di 70 istruzioni di base.
Esso è formato dalla BIU( Unità di interfaccia con il Bus) e dalla EU( Unità di esecuzione).
La BIU, il quale scopo è creare l'interfaccia tra il processore e il mondo esterno, si serve di:
- 4 registri di segmento (CS, DS, SS, ES);
- un Program counter;
- una coda di istruzione che permette il prefetching;
- un sommatore di indirizzi;
- un controllore del bus esterno;
- un puntatore di istruzione (IP).
L'EU è responsabile della decodifica e dell'esecuzione di tutte le istruzioni ed è formata da:
- 8 registri operativi (AX, BX, CX, DX, SI, DI, SP, BP);
- 2 registri temporanei non accessibili al programmatore;
- un registro di stato;
- una A.L.U.;
- una unità di controllo.
FAMIGLIE DI CPU
Le CPU variano a seconda dell'architettura usata.
- architettura di von Neumann e architettura Harvard:
nell'architettura di von Neumann i dati e le istruzioni risiedono nella stessa memoria (è dunque possibile avere codice automodificante). Questa architettura è la più comune, perché è molto semplice e flessibile.
nell' architettura Harvard i dati e le istruzioni risiedono in due memorie separate. Questa architettura può garantire prestazioni migliori poiché le due memorie possono lavorare in parallelo riducendo le alee strutturali, ma è ovviamente molto più complessa da gestire.
Entrambe le architetture sono architetture basate sui registri generali.
- Architettura CISC e architettura RISC:
CISC è l'acronimo di Complex Instruction Set Computer. Tipicamente un processore di questo tipo implementa un numero relativamente scarso (una decina) di registri di uso generale, ed ha una unità di controllo microprogrammata: la logica del programma è memorizzata in una memoria veloce situata nella parte di controllo.Il set di istruzioni associato a CPU di tipo CISC è molto esteso e composto in genere di alcune centinaia di codici operativi diversi che svolgono funzioni anche molto complesse, fra cui sono caratteristici i trasferimenti memoria-memoria, assenti nei RISC; le istruzioni hanno lunghezza variabile e possono presentarsi in formati diversi, e sono necessari due o più cicli di clock per completare un'istruzione; il ridotto numero di registri interni obbliga questi processori a scrivere in memoria ogni volta che si verifica una chiamata di funzione, un context switch(cambiamento del processo correntemente in esecuzione) o che viene salvato un registro nello stack.
RISC è l'acronimo di Reduced Instruction Set Computer. Il tipico set di istruzioni RISC è molto piccolo, circa sessanta o settanta istruzioni molto elementari (logiche, aritmetiche e istruzioni di trasferimento memoria-registro e registro-registro): hanno tutte lo stesso formato e la stessa lunghezza, e molte vengono eseguite in un solo ciclo di clock. La diretta conseguenza di tale scelta progettuale è che i processori RISC posseggono una unità di controllo semplice e a bassa latenza, riservando invece molto spazio per i registri interni: una CPU RISC ha di solito da un minimo di un centinaio ad alcune migliaia di registri interni generici, organizzati in un file di registri. Il fatto di avere un formato unico di istruzione permette di strutturare l'unità di controllo come una pipeline, cioè una catena di montaggio a più stadi.
Hyper-Threading
Hyper-Threading è il nome commerciale dato da Intel alla sua prima implementazione della tecnologia Simultaneous Multi-Threading utilizzata per migliorare le prestazioni dei propri processori. Essa venne utilizzata attivamente dalla società negli anni a cavallo tra il 2003 e il 2006. l'idea alla base era quella di migliorare le prestazioni dei processori sfruttando alcune tecniche di calcolo parallelo grazie alla duplicazione di alcune unità interne dei chip.La tecnologia Hyper-Threading è stata presentata da Intel in un momento in cui i processori dual core non potevano ancora venire prodotti a prezzi ragionevoli in ragione sia dell'avanzamento tecnologico, sia del processo produttivo che nel 2003 era ancora quello a 130 nm, che non permetteva "fisicamente" la presenza di 2 core all'interno di un unico package.
l'idea alla base della tecnologia Hyper-Threading era quella di duplicare alcune unità di elaborazione all'interno dei microprocessori al fine di poter eseguire simultaneamente alcune operazioni, grazie a tecniche di multithreading. Si trattava, in un certo senso, di un tentativo di creare un processore di transizione tra i tradizionali single core e i successivi dual core, non inserendo 2 interi core all'interno di un unico package, ma duplicando solo alcune aree "sensibili" del singolo core.
Grazie all'Hyper-Threading un singolo core era comunque in grado di gestire più thread in contemporanea, quando le istruzioni di un thread rimanevano bloccate nella pipeline il processore procedeva ad elaborare un secondo thread al fine di mantenere le unità di elaborazione sempre attive.
VARI TIPI DI CPU
INTEL CORE I7
Modello Core i7-2600 3.4 GHz
Tipo / Fattore
di forma Intel Core i7 2600
Tecnologia
Multi-Core Quad-Core
Calcolo a
64 bit Sì
processori 1
Frequenza
di clock 3.4 GHz
Velocità Max 3.8 GHz
Socket
processore LGA1155 Socket
compatibile
Processo
di produzione 32 nm
Thermal
Design Power 95 W
Specifica
termica 72.6 °C
Scheda Intel HD Graphics
grafica with Dynamic Frequency
Integrata
Frequenza
base 850 MHz
Slot 1 x processore -
compatibili LGA1155 Socket
Prezzo 311,45 €
INTEL CORE I3
Modello Core i3-560 3.33 GHz
Tipo / Fattore
di forma Intel Core i3 560
Tecnologia
Multi-Core Dual-Core
Calcolo a 64 bit Sì
Quantità processori 1
Frequenza di clock 3.33 GHz
Socket processore
compatibile LGA1156 Socket
Processo di
produzione 32 nm
Thermal Design
Power 73 W
Slot compatibili 1 x processore -
LGA1156 Socket
Prezzo 141,25 €
INTEL CORE I5
modello Core i5-2400
3.1 GHz
Tipo / Fattore Intel Core
di forma i5 2400
Tecnologia
Multi-Core Quad-Core
Calcolo a
64 bit Sì
Quantità
processori 1
Frequenza
di clock 3.1 GHz
Socket processore
compatibile LGA1155 Socket
Processo
di produzione 32 nm
Thermal Design
Power 95 W
Scheda grafica
integrata Intel HD Graphics
Frequenza base 850 MHz
Slot compatibili 1 x processore -
LGA1155 Socket
Prezzo 208,86 €
AMD PHENOM II X4 955
modello Phenom II X4 955 3.2
GHz Black Edition
Tipo / Fattore
di forma AMD Phenom II X4 955
Tecnologia
Multi-Core Quad-Core
Calcolo a 64 bit Sì
Quantità
processori 1
Frequenza di clock 3.2 GHz
Socket processore
compatibile Socket AM3
Processo di
produzione 45 nm
Thermal Design
Power 125 W
Specifica
termica 62 °C
Prezzo € 128,90
AMD A-Series APU
Modello AMD A-Series APU
Tipo/Fattore
di forma AMD A8
Processo
di produzione 32 nm
Calcolo a
64 bit Sì
Quantità di
processori 1
Frequenza
di Clock 3.6 GHz
Socket
processore
compatibile FM2
Tecnologia
Multi-Core 4
Scheda grafica AMD Radeon
integrata HD 7560D
Thermal Design
Power 100 W
Prezzo € 82.60
dovresti fare una lista di cpu attualmente in commercio e relative caratteristiche tecniche
RispondiEliminasi prof ora volevo fare a livello generale... finito le archittetture CISC e RISC entro nei particolari delle varie CPU..
Elimina