INFORMATICA INDICE CAP. 3.1 HARDWARE: CPU E RAM. Gianfranco Bentivoglio CAP. 3.1 - HARDWARE: CPU E MEMORIA



Documenti analoghi
C. P. U. MEMORIA CENTRALE

Architettura hardware

Esame di INFORMATICA

Informatica - A.A. 2010/11

Architettura dei computer

Laboratorio di Informatica

DIMENSIONI E PRESTAZIONI

Organizzazione della memoria

Dispensa di Informatica I.1

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Struttura del calcolatore

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Lezione 3: Architettura del calcolatore

Architettura di un calcolatore

Architettura dei calcolatori I parte Introduzione, CPU

Architettura del calcolatore

Informatica di base. Hardware: CPU SCHEDA MADRE. Informatica Hardware di un PC Prof. Corrado Lai

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

ARCHITETTURA DEL CALCOLATORE

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

La memoria centrale (RAM)

Memoria Secondaria o di Massa

Vari tipi di computer

1.4a: Hardware (Processore)

Introduzione all'architettura dei Calcolatori

COME È FATTO IL COMPUTER

Organizzazione della memoria principale Il bus

Corso di Informatica

ARCHITETTURA DELL ELABORATORE

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

CPU. Maurizio Palesi

Materiali per il modulo 1 ECDL. Autore: M. Lanino

INFORMATICA CORSO DI INFORMATICA DI BASE ANNO ACCADEMICO 2015/2016 DOCENTE: SARRANTONIO ARTURO

Laboratorio di Informatica

Concetti fondamentali della Tecnologia Dell informazione Parte prima

Calcolo numerico e programmazione Architettura dei calcolatori

Centro Iniziative Sociali Municipio III

Corso: Informatica+ Andrea Cremonini. Lezione del 20/10/2014

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

La memoria - generalità

Componenti di base di un computer

Parte II.2 Elaboratore

CONCETTI BASE dell'informatica Cose che non si possono non sapere!

Tecnologia dell Informazione

Architettura dei calcolatori II parte Memorie

Architettura hardware

Più processori uguale più velocità?

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Gerarchia delle memorie

Introduzione all uso del Personal Computer

Appunti sulla Macchina di Turing. Macchina di Turing

Calcolatori Elettronici A a.a. 2008/2009

Scuola Secondaria di Primo Grado Anna Frank Nome Cognome classe anno sc. 2008/09 INFORMATICA

All interno del computer si possono individuare 5 componenti principali: SCHEDA MADRE. MICROPROCESSORE che contiene la CPU MEMORIA RAM MEMORIA ROM

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

RETI E SISTEMI INFORMATIVI

Modulo 1 Le memorie. Si possono raggruppare i sistemi di elaborazione nelle seguenti categorie in base alle possibilità di utilizzazione:

Architettura di un computer

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Unità Periferiche. Rete Di Controllo

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

1.4b: Hardware. (Memoria Centrale)

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

I componenti di un Sistema di elaborazione. CPU (central process unit)

CALCOLATORI ELETTRONICI A cura di Luca Orrù

Conoscere i diversi tipi di memoria centrale presenti nel computer, quali: RAM (randomaccess memory), ROM (read-only memory)

I L C O M P U T E R COM E FATTO DENTRO (Unità 2)

Strutture di Memoria 1

Fondamenti di informatica: un po di storia

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

PLC Programmable Logic Controller

Corsi Speciali Abilitanti Indirizzo 2: Fisico-Matematico Modulo Didattico: Elementi di Informatica Classi: 48/A TEST D INGRESSO

Corso di Sistemi di Elaborazione delle informazioni

La macchina programmata Instruction Set Architecture (1)

Corso di Sistemi di Elaborazione delle informazioni

COME E COMPOSTO IL PC -

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

23/02/2014. Dalla scorsa lezione. La Macchina di Von Neumann. Uomo come esecutore di algoritmi

Lezione n.19 Processori RISC e CISC

Lezione 5 Architettura degli elaboratori. Mauro Piccolo piccolo@di.unito.it

Il microprocessore 8086

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Ferrante Patrizia Ghezzi Nuccia Pagano Salvatore Previtali Ferruccio Russo Francesco. Computer

LABORATORIO DI SISTEMI

La Memoria d Uso. La Memoria d Uso

Il processore - CPU (CENTRAL PROCESSING UNIT)

Informatica per la Storia dell Arte. Anno Accademico 2014/2015

ECDL MODULO 1 Concetti di base della tecnologia dell informazione. Prof. Michele Barcellona

DMA Accesso Diretto alla Memoria

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Struttura del Calcolatore Corso di Abilità Informatiche Laurea in Fisica. prof. Corrado Santoro

L HARDWARE parte 1 ICTECFOP@GMAIL.COM

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

L Unità Centrale di Elaborazione

Transcript:

Gianfranco Bentivoglio INFORMATICA INDICE L ELABORATORE 6 IL CALCOLATORE IDEALE : UNO SCHEMA FUNZIONALE 6 PIÙ LIVELLI DI MEMORIA 8 IL COMPUTER REALE 10 IL PERSONAL COMPUTER 12 IL BUS DI SISTEMA 14 ASPETTI CARATTERISTICI DEL BUS DI SISTEMA 16 ASPETTI CARATTERISTICI DEL BUS DI SISTEMA (SEGUE) 18 L UNITÀ DI ELABORAZIONE: LA CPU 20 LA TECNOLOGIA 20 CARATTERISTICHE DELLA CPU 22 L ARCHITETTURA INTERNA DELLA CPU 24 ASPETTI CHE DETERMINANO LE PRESTAZIONI 26 IL CLOCK DI SISTEMA 30 ARCHITETTURA CISC VS. RISC 32 LA FAMIGLIA INTEL 80X86 34 L INDICE ICOMP 36 LA MEMORIA CENTRALE 38 CARATTERISTICHE DELLA MEMORIA CENTRALE 40 LE TECNOLOGIE COSTRUTTIVE DELLA RAM 42 READ ONLY MEMORY 44 SUPERARE I LIMITI DEL BUS: IL BUS LOCALE 46 LA CACHE: OVVERO ACCELERARE L ACCESSO ALLA MEMORIA 48 UN APPROFONDIMENTO SUL FUNZIONAMENTO DI CPU E MEMORIA 50 OPERAZIONE DI LETTURA DEL DATO: READ 50 OPERAZIONE DI SCRITTURA DEL DATO: WRITE 52 UN ESEMPIO DI FUNZIONAMENTO DELLA CPU 54 IL PC ALL INTERNO 56 CAP. 3.1 HARDWARE: CPU E RAM D ISPENSE AD USO DEGLI STUDENTI DEL CORSO DI GESTIONE INFORMATICA DEI DATI AZIENDALI Nome file CAP. 3.1-HW CPU E RAM REV. 2.DOC Agg. al: Totale Pagine 15/01/05 54 PAG. 3.4

IL CALCOLATORE IDEALE UNO SCHEMA FUNZIONALE CPU L ELABORATORE Abbiamo già visto nel capitolo introduttivo come l elaboratore sia: "la macchina elettronica su cui si codificano e si elaborano le informazioni". In questo capitolo, pur analizzando in dettaglio l architettura di un particolare tipo di elaboratore, il "personal computer", tratteremo degli aspetti tecnologici e funzionali comuni alla maggior parte dei computer. IL CALCOLATORE IDEALE : UNO SCHEMA FUNZIONALE INGRESSO UNITÀ CENTRALE DI ELABORAZIONE BUS MEMORIA USCITA Lo schema funzionale di un calcolatore si basa ancora oggi su un modello teorizzato da Von Neumann nel lontano 45, definito anche a programma memorizzato. Nello schema a fianco possiamo individuare i 4 blocchi funzionali del modello: MEMORIA indica il componente che ha il compito di memorizzare i dati oggetto dell elaborazione e, aspetto caratterizzante del modello, i programmi che controllano l elaborazione stessa. UNITÀ CENTRALE DI ELABORAZIONE chiamata anche processore o CPU (Central Processing Unit), identifica il componente che, eseguendo le istruzioni contenute nei programmi, effettua una opportuna trasformazione dei dati in ingresso fino ad produrre i risultati attesi. Oltre all elaborazione delle istruzioni, la CPU ha anche il compito di controllare il funzionamento di tutti gli altri componenti del computer in modo che si comportino secondo quanto previsto dalle istruzioni stesse (funzione di controllo ). INGRESSO/ USCITA ( INPUT/OUTPUT ): individua i dispositivi attraverso cui vengono immessi nell elaboratore dati e programmi ( dispositivi input ) e mediante i quali il computer può comunicare all esterno i risultati di una elaborazione ( dispositivi output ). In altre parole questi dispositivi, assumendo le forme più idonee per favorire l interazione uomomacchina, consentono ad un utente di interagire con l elaboratore. BUS: è così chiamato quel componente che connette tutti gli altri e- lementi, consentendo loro di scambiarsi i dati e le istruzioni e permettendo alla CPU la funzione di controllo sui componenti. DATI ISTRUZIONI PAG. 3.6

PIÙ LIVELLI DI MEMORIA CPU VELOCITÀ MEMORIA VELOCITÀ ECONOMICITÀ NON VOLATILITÀ CAPACITÀ TRASPORTABILITÀ PIÙ LIVELLI DI MEMORIA Se ci si focalizza sugli aspetti essenziali del modello appena visto (trascurando cioè il BUS ed i DISPOSITIVI DI INPUT/OUTPUT), si può dire che il computer teorico (teorico forse oggi, ma magari realizzabile tra non molti anni), è composto da due elementi principali: una CPU che, con una elevata velocità, è in grado di accedere ai dati contenuti nella memoria e di elaborarli sulla base delle istruzioni contenute nei programmi (anch'essi residenti in memoria); una MEMORIA in cui sono memorizzati i dati ed i programmi. In particolare la memoria dovrebbe avere questi cinque requisiti: 1. velocità (nel memorizzare o reperire i dati); 2. capacità dovrebbe poter memorizzare grosse quantità di dati); 3. economicità (dovrebbe costare poco); 4. non volatilità (dovrebbe mantenere in memoria i dati, anche in assenza di alimentazione): 5. trasportabilità (nel senso di permettere il trasferimento dei dati memorizzati tra diversi computer). Tuttavia l attuale tecnologia, mentre ha reso disponibile una CPU con siffatte caratteristiche, non è riuscita a fornire una MEMORIA dotata dei requisiti richiesti (che magari sarà realizzata tra non molti anni). Questo fatto ha costretto i progettisti a realizzare computer, utilizzando una architettura basata su più livelli di memoria: una memoria centrale (RAM), realizzata con una tecnologia elettronica che garantisce una elevata velocità, ma costosa e non in grado di mantenere i dati memorizzati quando il computer viene spento ( volatile ); più tipologie di memorie secondarie o di massa, realizzate con tecnologia magnetica o ottica, poco costose, capaci di mantenere i dati nel tempo anche in assenza di alimentazione, con una capacità centinaia di volte maggiore della RAM; inoltre alcuni tipi di memorie di massa sono anche trasportabili, anche se poi questa caratteristica è a scapito della velocità. PAG. 3.8

IL COMPUTER REALE CPU UNITÀ CENTRALE DI ELABORAZIONE MEMORIA CENTRALE (RAM) DATI ISTRUZIONI MEMORIA DI MASSA HARD DISK FLOPPY IL COMPUTER REALE La memoria centrale (RAM), seppure molto veloce, è volatile (ovvero mantiene i dati solo fintantoché è alimentata) e quindi, anche disponendo di una grossa quantità di memoria, ne perderemmo il contenuto nel momento in cui il nostro elaboratore venisse spento. Inoltre tale memoria è anche molto costosa: quindi non si può pensare di utilizzarla per conservare nel tempo grosse quantità di dati e programmi (alcuni dei quali magari poco utilizzati). Le memorie di massa sono enormemente più lente rispetto alla memoria centrale: tale lentezza è dovuta essenzialmente al fatto che mentre la memoria centrale è di tipo elettronico (con tempi di accesso dell ordine dei nanosecondi), le memorie di massa utilizzano dei componenti elettromeccanici (in cui i tempi sono dell ordine dei millisecondi, ovvero un milione di volte più lenti) 1. Se vogliamo garantire una elaborazione efficiente tra la CPU (che utilizzando le più avanzate tecnologie elettroniche, ha una velocità di elaborazione dell ordine nanosecondi) e la memoria, dobbiamo realizzare uno schema di funzionamento in cui: il processore accede solo alla memoria centrale (RAM), l unica ad a- vere una velocità paragonabile alla CPU; il processore non accede mai direttamente ai dati memorizzati sulle le memorie di massa ma, prima di essere elaborati, tali dati devono essere trasferiti dalla memoria di massa alla memoria centrale; viceversa, poiché la memoria centrale è volatile, i dati presenti nella RAM, per la loro conservazione nel tempo, devono essere trasferiti sulle memorie di massa. In altre parole l idea è quella di mantenere dati e programmi nella memoria di massa, fintantoché non devono essere utilizzati. Dopo aver acceso computer, i dati ed i programmi da elaborare saranno caricati nella memoria centrale, l'unica tipologia di memoria a cui il processore può accedere. Al termine dell elaborazione, i dati saranno salvati sulla memoria di massa per la loro conservazione a computer spento. 1 Far convivere sullo stesso sistema due tipi di memoria, con velocità così diverse, creando degli schemi di sincronizzazione ed efficaci meccanismi di trasferimento dei dati, è uno dei più grossi problemi che i progettisti di sistemi hanno dovuto risolvere. PAG. 3.10

IL PERSONAL COMPUTER OUTPUT IL PERSONAL COMPUTER Nelle pagine seguenti affronteremo lo studio di un particolare tipo di elaboratore, il personal computer che, grazie al fatto di avere un costo relativamente basso, è diventato di fatto il tipo di elaboratore più diffuso e quindi anche il più usato. Peraltro la scelta di focalizzare il nostro studio su un particolare tipo di computer, non è in nessun modo penalizzante per quello che riguarda la finalità didattica: anzi, la scelta di indirizzare lo studio verso una macchina ormai alla portata di tutti, basata su una architettura tutto sommato semplice (e quindi facile da utilizzare per fini didattici), non può che aiutare il lettore nella comprensione di quanto verrà illustrato. CPU MEMORIA INPUT Nei prossimi paragrafi analizzeremo i singoli componenti che costituiscono la cosiddetta UNITÀ CENTRALE di un generico personal computer: il bus di sistema, la CPU, la memoria centrale, le memoria di massa, e i DISPOSITIVI DI INPUT/OUTPUT (chiamati anche dispositivi periferici ) che ne permettono l utilizzo: il monitor, la tastiera, il mouse, la stampante, lo scanner, il plotter, il digitizer, il lettore di bar code ed il lettore di badge, le schede PCMCIA, il modem. PAG. 3.12

ARCHITETTURA A BUS PROCESSORE CPU TASTIERA RAM BUS DI SISTEMA VIDEO MEMORIA HARD DISK PRINTER INPUT/OUTPUT IL BUS DI SISTEMA Uno dei problemi che i progettisti hanno dovuto affrontare nella realizzazione del personal computer, è stato quello di trovare un sistema per interconnettere le varie parti del computer, in modo che potessero comunicare tra di loro. Una prima soluzione ipotizzata è stata quella di realizzare dei singoli collegamenti elettrici per connettere tra loro le diverse componenti. Questa scelta, se da una parte avrebbe semplificato il progetto iniziale, dall altra avrebbe fortemente limitato ogni successiva possibilità di crescita. Infatti la struttura iniziale sarebbe risultata cristallizzata e mal si sarebbe prestata a modifiche come, ad esempio, l inserimento di una nuova scheda hardware. I progettisti, per fare in modo che ogni componente, anche se installato in un secondo tempo potesse parlare con ogni altro, hanno messo a punto una soluzione chiamata: ARCHITETTURA A BUS In questo modello tutte le componenti del computer non sono collegate tra loro come nel primo caso, ma si interfacciano verso il bus di sistema, in base a regole di collegamento ben definite. In questo modo è possibile aggiungere, anche in un momento successivo, una nuova scheda: purché dotata di una opportuna interfaccia fisica che si adatti al bus; e purché rispetti le regole di colloquio utilizzate da tutti di altri sottosistemi connessi al bus. Una volta che la scheda è stata inserita nei connettori del bus stesso, può comunicare con gli altri componenti del personal computer, inclusa la memoria ed il processore. La scelta progettuale di utilizzare sul personal computer una architettura a bus, è stata proposta dall IBM sul suo primo personal computer. L'importanza del costruttore ed il fatto che l IBM abbia rese pubbliche le specifiche tecniche del bus utilizzato, ha fatto sì che in brevissimo tempo questo bus diventasse uno standard di mercato. In un secondo momento,basandosi su questo standard, altre società hanno avuto la possibilità di produrre una miriade di dispositivi aggiuntivi, che si potevano connettere con molta facilità. Tutto questo ha permesso di ampliare il mercato stesso, creando quella situazione di concorrenza che tanto ha contribuito al successivo abbassamento dei prezzi e alla diffusione del personal computer che oggi conosciamo. Nello schema a fianco, vediamo lo schema semplificato di un personal computer, in cui tutti i principali componenti sono collegati al bus, e attraverso questo si scambiano i segnali. PAG. 3.14

IL BUS DI SISTEMA B U S DATI (1 N) INDIRIZZI (1 N) CONTROLLO ASPETTI CARATTERISTICI DEL BUS DI SISTEMA Il bus di sistema, che collega tra loro il processore, la memoria e le unità di ingresso/uscita presenti nel personal computer, è sempre sotto il controllo del processore che detta le regole in base alle quali, tutti gli altri dispositivi connessi, possono utilizzare il bus stesso. Si dice che il processore esercita il ruolo di master e le altre unità funzionali (che entrano in funzione solo se sono selezionate dal processore) il ruolo di slave. Fisicamente il bus è costituito da un insieme di connessioni elettriche (o linee) lungo le quali vengono trasferiti i dati o i segnali di controllo. A seconda del tipo di segnale trasportato, le linee del bus vengono suddivise in tre categorie: linee per il trasporto dei dati: sono bidirezionali, nel senso che i dati che passano attraverso queste linee possono andare dal master allo slave e viceversa; inoltre, la presenza di più linee (ciascuna dedicata al trasporto di 1 bit) consente il trasferimento dei dati in parallelo ; linee per il trasporto degli indirizzi: come vedremo meglio parlando della memoria centrale, questo gruppo di linee (unidirezionali) permettono alla CPU di selezionare una specifica locazione di memoria per una operazione di lettura/scrittura; linee per il trasporto de segnali di controllo: permettono di trasferire i segnali di controllo dal master all unità slave e viceversa. Nel valutare le gli aspetti caratteristici di un bus, gli elementi da evidenziare sono: 1. LA VELOCITÀ CON CUI RIESCE A TRASMETTERE I DATI Durante ogni operazione di trasferimento dati, è necessario che il bus sia dedicato a quel collegamento, per tutto il tempo necessario a completare il trasferimento. Tanto minore è questo tempo, tanto maggiore sarà la velocità del bus. E facilmente comprensibile come la velocità con cui riesce a trasmettere i dati sia uno degli aspetti più significativi del bus. Tal parametro assume oggi una maggiore importanza in quanto gli attuali sistemi, basati su interfacce grafiche, scambiano enormi quantità di bit. 2. IL NUMERO DI LINEE UTILIZZATE PER I DATI Sulle linee per i dati transitano in parallelo le informazioni tra il processore e l unità collegata in quel momento; questo significa che il numero di linee utilizzate ci dà una misura della capacità di trasferimento di dati da parte del bus. Paragonando i dati ad un liquido che fluisce attraverso una condotta (il bus), il numero di linee equivarrebbe al diametro della condotta. Maggiore è il numero di linee e maggiore sarà la quantità di dati (a parità di velocità del bus) che potranno fluire verso il processore per essere elaborati. PAG. 3.16

ELEMENTI DI VALUTAZIONE DEL BUS LA VELOCITÀ CON CUI RIESCE A TRASMETTERE I DATI IL NUMERO DI LINEE UTILIZZATE PER I DATI IL NUMERO DI LINEE UTILIZZATE PER GLI INDIRIZZI IL FATTO DI ESSERE STANDARD ASPETTI CARATTERISTICI DEL BUS DI SISTEMA (SEGUE) 3. IL NUMERO DI LINEE UTILIZZATE PER GLI INDIRIZZI Un discorso analogo vale per le linee degli indirizzi: in questo caso però, ad un maggiore numero di linee corrisponderà una maggiore capacità di indirizzamento e quindi, in definitiva, la possibilità di poter indirizzare una maggiore quantità di memoria. IL FATTO DI ESSERE STANDARD : I PRO ED I CONTRO L architettura a bus, rappresentando uno standard de facto riconosciuto dal mercato, ha avuto il grosso merito di permettere l'installazione di una scheda aggiuntiva sul nostro computer, in modo semplice anche in tempi successivi all acquisto. Per contro, nel momento in cui l'evoluzione tecnologica ha portato alla necessità di utilizzare nuovi bus in grado di supportare componenti con velocità sempre maggiori, il fatto di avere uno standard accettato e diffuso, ha rischiato di diventare un grosso vincolo per l evoluzione tecnologica stessa (lo vedremo meglio parlando del bus aggiuntivo ). UN PO DI STORIA Di seguito sono indicati i principali bus che negli anni sono stati utilizzati sui personal computer: Tra questi, i bus che hanno rappresentato un effettivo standard di mercato sono stati il bus ISA ed il bus PCI. S100: utilizzato da uno dei primi personal, l Altair; PC XT - 81: è il bus che l IBM progettò per il suo primo Personal Computer PC-AT - 85 (chiamato anche ISA - Industry Standard Architecture): è stato un evoluzione del precedente ed è praticamente il bus che ancora oggi troviamo sui nostri personal computer. MCA - 87 (Micro Channel Architecture) Nell ottica di IBM, questo sarebbe dovuto essere il successore del bus ISA. Benché presentasse notevoli miglioramenti, la non compatibilità con il bus ISA, e soprattutto la richiesta di pagamento di royalties da parte di IBM, ne limitarono moltissimo la diffusione. EISA - 88 (Extended ISA) Proprio per contrastare i progetti egemonici di IBM, alcuni produttori svilupparono un architettura alternativa a MCA, che aveva il grosso vantaggio di essere compatibile con il precedente standard ISA. PCI - 91 Mentre si discuteva su quale dei due, MCA o EISA, avrebbe sostituito il bus ISA, INTEL realizzo il PCI, un bus aggiuntivo su cui collegare i dispositivi che avevano maggiori necessità di scambiarsi dat. PAG. 3.18

UNITÀ DI ELABORAZIONE (CPU: CENTRAL PROCESSING UNIT) La CPU è il dispositivo hardware in grado di leggere, decodificare, eseguire le istruzioni prelevate dalla memoria e che governa il funzionamento delle varie parti costituenti il computer Fisicamente la CPU è un particolare CIRCUITO INTEGRATO ad altissima integrazione (VLSI), chiamato anche MICROPROCESSORE L UNITÀ DI ELABORAZIONE: LA CPU La CPU Central Processing Unit (unità centrale di elaborazione) o processore, è il componente che più di tutti gli altri caratterizza meglio il personal computer, sia sotto l aspetto delle prestazioni che della capacità elaborativa. Più precisamente possiamo definire la CPU come La cpu è il dispositivo hardware in grado di: leggere, decodificare, eseguire le istruzioni prelevate dalla memoria (programma) governare il funzionamento delle varie parti costituenti il computer Ogni CPU è strutturata per eseguire un programma sulla base dei seguenti principi: le istruzioni vengono eseguite in modo sequenziale; particolari istruzioni di salto permettono di modificare la sequenzialità dell esecuzione; le istruzioni ed i dati che la CPU elabora vengono prelevati dalla RAM (memoria centrale), l unico livello di memoria a cui può accedere. Inoltre è compito della CPU sincronizzare il funzionamento del bus e di tutti gli altri dispositivi in modo da garantire una corretta esecuzione delle istruzioni. LA TECNOLOGIA Se in passato la CPU era composta da più circuiti integrati, ognuno capace di svolgere una ben determinata funzione, oggi è realizzata con le più sofisticate tecnologie elettroniche ed è costituita da un unico circuito integrato, chiamato anche microprocessore In termini tecnologici, il microprocessore, sia per il progetto dell architettura interna, sia per i livelli di integrazione raggiunti, rappresenta quanto di più avanzato l uomo ha prodotto nel settore della microelettronica. Nelle pagine seguenti descriveremo in dettaglio la struttura della CPU, focalizzando l attenzione sulle caratteristiche più importanti al fine di valutarne le prestazioni. PAG. 3.20

CARATTERISTICHE DELLA CPU CARATTERISTICHE DELLA CPU Nella valutazione di una CPU, ci sono due aspetti fondamentali da tener presente. ARCHITETTURA SET DI ISTRUZIONI ( FAMIGLIA 8080 INTEL) PARALLELISMO COOPROCESSORE MATEMATICO PENTIUM Il primo è legato all architettura interna, che caratterizza in maniera precisa ogni CPU e in particolare: definisce il set di istruzioni che è in grado di decodificare ed eseguire, rappresenta il primo parametro da prendere in esame per valutarne la potenza di calcolo. Poiché all'architettura interna è collegato il set di istruzioni, è importante avere un criterio per capire se due CPU, aventi architetture diverse, siano in grado di eseguire lo stesso set di istruzioni. Questo criterio è la compatibilità: date due diverse CPU, la seconda viene definita compatibile con la prima, se la seconda è in grado di eseguire anche il set di istruzioni della prima. 400 MHZ VELOCITÀ FREQUENZA DI FUNZIONAMENTO CPU SCALARI E SUPERSCALARI Il secondo importante elemento di valutazione della potenza elaborativa di una CPU è rappresentato dalla velocità con cui vengono eseguite le istruzioni. L esecuzione delle istruzioni è scandita dagli impulsi di un particolare orologio interno (clock di sistema): maggiore è il numero degli impulsi per secondo, maggiore è il numero di istruzioni eseguite e quindi, in definitiva, la velocità con cui la CPU esegue le istruzioni. Ovviamente un confronto sulla velocità può essere fatto solo tra CPU aventi la stessa architettura. In questo senso (a parità di architettura) una CPU funzionante a 1,6 GHz effettuerà le elaborazioni ad una velocità doppia rispetto ad una CPU operante a 800 MHz. Nelle moderne CPU, la frequenza degli impulsi generati dal clock di sistema è elevatissima, e supera il miliardo di cicli al secondo. Il parametro che misura la velocità (come sarà illustrato più avanti) è la frequenza di funzionamento che si misura in Hertz (Hz) o meglio in: MHz (1 megahertz=1 milione di cicli al secondo) GHz (1 gigahertz= 1 miliardo di cicli al secondo). PAG. 3.22

CPU: COME È FATTA CONTROL UNIT CONTROL BUS ALU REGISTRI ADDRESS BUS BUS DI SISTEMA DATA BUS CONTROL UNIT: DECODIFICA LE ISTRUZIONI E GOVERNA LA CPU ALU (UNITÀ ARITMETICA E LOGICA): ESEGUE LE OPERAZIONI ARITMETICHE E LOGICHE REGISTRI: LOCAZIONI DI MEMORIA, SITUATE ALL' INTERNO DELLA CPU, SPECIALIZZATE PER PARTICOLARI FUNZIONI L ARCHITETTURA INTERNA DELLA CPU Quella che ora esaminiamo è l architettura interna di una CPU ideale, in cui sono stati evidenziati i componenti circuitali più significativi, soprattutto dal punto di vista della funzionalità: CONTROL UNIT: è il componente che, governando e coordinando le attività degli altri componenti della CPU stessa, ha il compito di decodificare le istruzioni e garantirne l esecuzione; ALU (Unità Aritmetica e Logica): è il componente della CPU specializzato nell esecuzione di operazioni aritmetiche e logiche. REGISTRI: i registri sono delle speciali locazioni di memoria situate all interno della CPU. Tipicamente i registri hanno una dimensione di pochi byte e vengono usati per mantenere i dati su cui sta operando la CPU e per trasferire i dati attraverso il bus. Alcuni registri particolarmente importanti sono: INSTRUCTION REGISTER (IC): in questo registro viene caricata l istruzione prelevata dalla memoria: qui i circuiti della CONTROL UNIT provvedono a decodificarla, governando poi i singoli componenti affinché venga eseguita correttamente. PROGRAM COUNTER (PC): questo registro contiene l indirizzo della successiva istruzione che deve essere prelevata dalla memoria per essere eseguita. All inizio dell esecuzione di un programma, nel PC viene caricato l indirizzo della prima istruzione; ad ogni ciclo il valore del PC viene modificato in modo da contenere l indirizzo della istruzione successiva. ACCUMULATORE: è un registro di lavoro attraverso cui transitano i dati provenienti dalla memoria. Tutte le operazioni aritmetiche e logiche vengono eseguite con l ausilio di questo registro. LE FASI DEL PROCESSO DI ELABORAZIONE L'esecuzione di una istruzione avviene attraverso i seguenti tre passi: I. RICERCA (FETCHING): in questa prima fase la CPU preleva dalla memoria, all indirizzo specificato dal PROGRAM COUNTER (PC), l'istruzione che deve eseguire e la carica sull INSTRUCTION REGISTER (IR). II. DECODIFICA (DECODING): i circuiti della control unit (instruction decoder) decodificano l'istruzione che trovano sull INSTRUCTION REGISTER (IR) e predispongono la sequenza delle singole operazioni necessarie all'esecuzione III. ESECUZIONE (EXECUTING): l'istruzione viene eseguita; se necessario si utilizza l ALU per l'esecuzione di un eventuale calcolo e si accede nuovamente alla memoria per leggere/scrivere dati mediante il registro AC- CUMULATORE. Nell esecuzione di un programma questi 3 passi vengono ripetuti fino al termine della sua esecuzione. PAG. 3.24

LE PRESTAZIONI DELLA CPU IL SET DI ISTRUZIONI CHE È IN GRADO DI ESEGUIRE POTENZA ELABORATIVA DELL ALU NELLA ESECUZIONE DI OPERAZIONI MATEMATICHE (CON NUMERI REALI) CONTROL UNIT CONTROL BUS ALU REGISTRI ADDRESS BUS BUS DI SISTEMA DATA BUS IL NUMERO DI BIT CHE LA CPU "TRATTA" (OVVERO È IN GRADO DI ELABORARE) IN OGNI ISTANTE, INDIVIDUA IVIDUA IL GRADO DI PARALLELISMO DELLA CPU ASPETTI CHE DETERMINANO LE PRESTAZIONI In base all architettura interna (anche se semplificata) di una CPU, esaminiamo ora gli aspetti che ne determinano le maggiori o minori prestazioni. Il primo aspetto da prendere in considerazione, è relativo al set di istruzioni che la CPU è in grado di eseguire. In genere si può dire che maggiore è il numero di istruzioni, maggiore è la potenza elaborativa; ovviamente non conta la numerosità delle istruzioni in quanto tale, ma è importante valutare come eventuali istruzioni aggiuntive possono migliorare le prestazioni della CPU (ad es. nell esecuzione di calcoli complessi). Per contro bisogna dire che, di norma, istruzioni più complesse significano tempi di esecuzione più lunghi: e questo, come vedremo più avanti, ha fatto nascere due filosofie progettuali: una (CISC) che privilegia CPU dotate di istruzioni complesse anche se meno veloci, l'altra (RISC) che privilegia CPU dotate di istruzioni veloci, anche se meno potenti. Il secondo aspetto è il grado di parallelismo della CPU, ovvero la quantità di informazione (=il numero di bit) che è in grado di e- laborare nell'unità di tempo. Più precisamente si parla di: parallelismo interno, per indicare il n. di bit (8-16-32-64) che i registri interni e l ALU sono in grado di elaborare ad ogni ciclo di clock; parallelismo esterno, per indicare il numero delle linee con cui la CPU si collega al bus ( data bus ), che coincide con il n. di bit che la CPU è in grado di trasferire nell'unità di tempo attraverso il bus di sistema. È abbastanza evidente che, tanto maggiore è il grado di parallelismo, tanto più numerosi sono i bit manipolati nell'unità di tempo e, in definitiva, tanto più potente è la CPU. La situazione ottimale sarebbe poi quella di un sistema in cui il numero di bit che la CPU trasferisce attraverso il bus, sia anche quello PAG. 3.26

che poi riesce ad elaborare internamente. Ed in effetti questa è stata la situazione di partenza per molti sistemi; ad esempio il primo processore praticamente utilizzato, l Intel 8080, aveva sia i registri interni che il data bus a 8 bit. L evoluzione rapidissima della tecnologia mise rapidamente a disposizione un nuovo processore, l 8086, con caratteristiche migliorate, ed in particolare, con una capacità di trattamento dei dati doppia (parallelismo interno a 16 bit). Per sfruttare appieno le caratteristiche della nuova CPU i tecnici avrebbero dovuto riprogettare tutta la circuiteria della scheda madre (in particolare il bus di sistema), per farla funzionare a 16 bit (come il nuovo processore). Questo avrebbe significato dei costi di progetto enormi. Per evitare ai costruttori di personal computer di dover riprogettare tutto il sistema, Intel, oltre all 8086 presentò un secondo processore, l 8088, in cui internamente la capacità di trattamento dei dati era effettivamente raddoppiata (parallelismo interno a 16 bit), mentre verso il bus dati manteneva lo stesso numero di linee (parallelismo esterno a 8 bit). Questa situazione, che in seguito si è ripetuta con altre CPU, rappresenta uno dei tanti esempi di compromessi, tra prestazioni ed economicità di progetto, a cui l'informatica ci ha da tempo abituati. che differenziava due CPU, (identiche per tutti gli altri aspetti, come 486 DX e 486 SX), sulle ultime (ad es. Pentium) la FPU è diventata un elemento integrato all interno della CPU stessa. E infine importante sottolineare come questo 3 aspetto è molto rilevante laddove si utilizzino applicazioni che richiedono le esecuzioni di complesse operazioni matematiche come: elaborazione di immagini, CAD, videogame in 3D. Il terzo aspetto è strettamente connesso con la capacità di calcolo dell ALU, ovvero il componente che si occupa dell'esecuzione delle operazioni matematiche e logiche. Nelle CPU di prima generazione il numero di operazioni che l ALU era in grado di eseguire era abbastanza limitato (addirittura, sulle prime CPU, si limitava alla sola addizione); le altre funzioni matematiche (in particolare i calcoli con i numeri reali, detti anche in virgola mobile ), quando servivano, venivano realizzate mediante appositi programmi. Per potenziare questa limitata capacità di calcolo, in passato si usava affiancare all ALU una particolare circuiteria chiamata: floating point unit (FPU) o coprocessore matematico in grado di eseguire numerose e complesse operazioni matematiche, direttamente via hardware e in parallelo rispetto alla CPU stessa. Mentre in passato il coprocessore matematico era un optional che bisognava acquistare a parte (Intel 386) oppure era l'elemento PAG. 3.28

CICLO (ad es. 1 nanosec) IL CLOCK DI SISTEMA 1 SECONDO FREQUENZA = 1 GHZ (IL N. DI CICLI IN UN SEC) IL CICLO È IL MINIMO INTERVALLO DI TEMPO SCANDITO DALLO SPECIALE OROLOGIO INTERNO (CLOCK DI SISTEMA) LA FREQUENZA DI FUNZIONAMENTO (SI MISURA IN HZ) INDICA QUANTI CICLI CI SONO IN UN SECONDO A PARITÀ DI ARCHITETTURA LA VELOCITÀ DI UNA CPU DIPENDE DALLA FREQUENZA DI CLOCK DI SISTEMA CON CPU AVENTI ARCHITETTURE DIVERSE BISOGNA TENERE CONTO DI QUANTI CICLI SONO NECESSARI PER L'ESECUZIONE DELL'ISTRUZIONE IL CLOCK DI SISTEMA Uno speciale orologio interno, chiamato clock di sistema, genera impulsi a intervalli di tempo costante (chiamati anche cicli ), che permettono la sincronizzazione di tutte le attività della CPU e quindi del sistema. In prima approssimazione possiamo dire che, in ogni ciclo, la CPU esegue una istruzione. Di conseguenza la velocità di elaborazione di un processore è strettamente collegata con la durata del ciclo: tanto più il ciclo è breve, tante più istruzioni potranno essere eseguite in un secondo e, in definitiva, tanto più veloce sarà la CPU. Ma, per dare un indicazione della velocità della CPU, i costruttori non forniscono la durata del ciclo (che sulle moderne CPU è dell ordine dei nanosecondi) quanto piuttosto il numero cicli eseguiti in un secondo, ovvero la cosiddetta frequenza di funzionamento. La frequenza di funzionamento, che si misura in Hz (hertz), indica quanti cicli vengono scanditi in un secondo. conoscendo la durata del ciclo si può facilmente passare alla frequenza e viceversa, mediante la formula seguente: 1 Sec = Frequenza in Hertz Durata del Ciclo Ad esempio, per un CPU che lavora con un ciclo pari a 1 nanosecondo, avrà una frequenza pari a: 1 / 0,000000001= 1.000.000.000 Hz= 1 GHz. Fin qui si è supposto che la CPU esegua un'istruzione in un ciclo e che pertanto, tanto più breve è il ciclo, tanto più la CPU è veloce. In realtà questo non è sempre vero e, in funzione dell architettura della CPU, possiamo avere una delle tre situazioni seguenti: CPU non scalari: in queste CPU l esecuzione di un istruzione richiede normalmente più di un ciclo (è stata la situazione normale fino al 386 ); inoltre, in funzione della diversa architettura utilizzata, per eseguire la stessa istruzione, una CPU potrebbe impiegare 3 cicli, mentre un altra ne potrebbe impiegare 2. CPU scalari: eseguono un istruzione ogni ciclo di clock (Intel 486 ) CPU superscalari: eseguono più di un istruzione per ogni ciclo di clock (il Pentium esegue mediamente 2 istruzioni). Questo significa che la frequenza del clock è un reale indicatore della velocità di esecuzione delle istruzioni, solo quando si confrontano CPU aventi la stessa architettura (ad esempio, un Pentium III a 800 MHz è sicuramente più veloce di un Pentium III a 500 MHz). Ma il confronto tra CPU a- venti architetture diverse non può essere fatto esclusivamente sulla base della frequenza del clock, in quanto il numero di cicli necessari per eseguire un istruzione potrebbe essere anche molto diverso (ad es., un Pentium (CPU superscalare) a 400 MHz, è più veloce di un Celeron a 500 MHz). PAG. 3.30

CISC INFORMATICA CISC VS. RISC CISC (COMPLEX INSTRUCTION ION SET COMPUTER) LA FILOSOFIA PROGETTUALE IL MICROPROCESSORE DEVE DISPORRE DI UN SET DI ISTRUZIONI IL PIÙ AMPIO POSSIBILE, IN MODO DA POTER IMPLEMENTARE UNA FUNZIONE COMPLESSA IN UN COLPO SOLO RICHIEDE: CIRCUITERIA COMPLESSA PIÙ CICLI PER L'ESECUZIONE DI UNA ISTRUZIONE RISC RISC (REDUCED INSTRUCTION SET COMPUTER) LA FILOSOFIA PROGETTUALE IL MICROPROCESSORE È PROGETTATO IN MODO CHE LE ISTRUZIONI NORMALMENTE PIÙ USATE VENGANO ESEGUITE IN UN SOLO CICLO, IMPLEMENTANDO UNA FUNZIONE COMPLESSA CON UNA SEQUENZA DI ISTRUZIONI ELEMENTARI RICHIEDE: SIANO DISPONIBILI MEMORIE DI ELEVATA CAPACITÀ CHE LA CPU POSSA PRELEVARE LE ISTRUZIONI DALLA MEMORIA CON ELEVATA VELOCITÀ (BUS, CACHE) UTILIZZO DI COMPILATORI ALTAMENTE OTTIMIZZANTI ARCHITETTURA CISC VS. RISC Come abbiamo già visto, un processore è caratterizzato dal set di istruzioni che è in grado di eseguire. Alcuni progettisti, nello sviluppo di CPU via via più potenti, hanno scelto di realizzare CPU con un set di istruzioni sempre più ampio, in modo che anche funzioni complesse (come ad esempio le funzioni grafiche), trovassero soluzione con l esecuzione di un unica istruzione. Questa filosofia progettuale, è nota come: ARCHITETTURA CISC (Complex Instruction Set Computer) Il principale problema di questa architettura risiede nella complessità dell architettura e nel maggior tempo richiesto per la decodifica e l'esecuzione delle singole istruzioni (fino ad arrivare al punto che alcune i- struzioni, per essere completate, potrebbero richiedere più cicli di clock). In contrapposizione all architettura CISC, altri progettisti hanno progettato CPU basate su un opposta filosofia progettuale nota come: ARCHITETTURA RISC (Reduced Instruction Set Computer) Questa architettura si basa sull idea di ridurre il numero di istruzioni gestite dal processore, limitandole a quelle usate più di frequente. Questo set ridotto di istruzioni è progettato in modo da essere eseguito nel più breve tempo possibile, di norma in un solo ciclo di clock (o meno). Tutte le altre funzioni sono poi realizzate con una sequenza di istruzioni elementari. Qui invece il problema è nella necessità di dover realizzare compilatori altamente ottimizzati, completamente indipendenti dalle caratteristiche del processore e nella necessità di avere un ampia memoria centrale. In tempi diversi una filosofia ha prevalso sull'altra e viceversa. Aldilà degli aspetti di marketing che oggi spingono i produttori a pubblicizzare la filosofia RISC, quasi fosse un sinonimo di velocità, su un piano tecnico, possono essere fatte queste considerazioni: la filosofia CISC presuppone la capacità di realizzare, su un unico chip, una circuiteria più complessa, con la necessità di superare una serie di problemi tecnologici, non ultimo quello della dissipazione del calore; la semplificazione progettuale della CPU che si ottiene con la filosofia RISC, comporta però un numero maggiore di istruzioni: questo impone memorie di elevata capacità e dotate di ridotti tempi di accesso. Quella che abbiamo delineato è la situazione teorica. In realtà non esistono CPU solamente CISC o solamente RISC: i processori attuali utilizzano il meglio delle due filosofie per raggiungere prestazioni che fino a qualche anno fa erano tipiche dei sistemi mainframe. PAG. 3.32

CPU INTEL TIPO MHZ dati adr NOTE 8086 4 8 16 20 8088 4 8 16/8 20 286 8 20 16 24 SET ISTRUZIONI ESTESO 386 DX 20 40 32 32 275.000 TRANSISTOR ISTRUZIONI A 32 BIT 386 SX 16 20 32/1 6 24 VERSIONE RIDOTTA DEL DX 16 BIT VERSO L ESTERNO 486 DX 25 50 32 32 1 MILIONE DI TRANSISTOR, 8 KB DI CACHE INTEGRATA, UNITÀ FLOATING POINT ARCHITETTURA SCALARE 486 SX 25 50 32 32 VERSIONE RIDOTTA DEL DX SENZA UNITÀ FLOATING POINT 486 DX2 25/50 33/66 32 32 CLOCK INTERNO RADDOPPIATO 486 DX4 25/75 25/100 32 32 CLOCK INTERNO X3 O X4 BASSO CONSUMO (3,3 VOLT) 16 KB DI CACHE INTEGRATA PENTIUM >1000 64 32 >3 MILIONI DI TRANSISTOR, BUS DATI A 64 BIT, CACHE SEPARATE PER DATI E ISTRUZIONI, BRANCH PREDICTION, SUPERSCALARE LA FAMIGLIA INTEL 80X86 Da sempre i costruttori, per garantire il funzionamento dei vecchi programmi sui nuovi computer, hanno cercato di mantenere la compatibilità di ogni nuova CPU con le precedenti. In questo senso sono state realizzate le cosiddette famiglie, per indicare un insieme di CPU che, pur avendo architetture interne diverse, mantengono lo stesso set di istruzioni o comunque garantiscono una compatibilità con le precedenti (nel senso che le CPU più recenti, inglobano il set di istruzioni utilizzato nelle CPU precedenti) 2. Tutto questo invece, non è affatto garantito nel caso di CPU realizzate da costruttori diversi, che hanno spesso una architettura interna e un set di istruzioni completamente differenti. Ad esempio in casa INTEL (il maggiore costruttore mondiale di CPU), si parla della famiglia Intel 80x86 per indicare un insieme di CPU hanno mantenuto una compatibilità verso il basso, nel senso che l ultima nata, è in grado di eseguire programmi scritti per le precedenti. Tralasciando la prima nata, l 8080, questa tabella evidenzia le CPU Intel della famiglia 80x86. 8086 e 8088: l 8088 è stata una pietra miliare, in quanto su questa CPU l IBM ha realizzato il suo primo PC XT. L 8088 è praticamente un 8086 con il bus dati a 8 linee invece che a 16. Questo aveva permesso di realizzare una circuiteria meno costosa, pur disponendo di una discreta potenza (e comunque nell 8088 le prestazioni erano inferiori di circa un 30%). 286: è stata usata sempre da IBM per la seconda generazione di personal computer, il PC AT. Rispetto all 8088 l architettura è diversa: maggior numero di istruzioni, bus dati a 16 bit, e bus indirizzi portato a 24 bit. 386 DX e 386 SX: Il 386, con i suoi 275.000 transistor ed i bus dati e indirizzi a 32 bit segna un grosso passo avanti a livello architetturale; la versione SX era una versione ridotta in quanto utilizzava il bus dei dati a 16 bit invece che a 32 come nel DX: questo peraltro ne aveva permesso l utilizzo, con poche modifiche, sulle vecchie schede progettate per il 286. 486 DX e 486 SX: questa è la prima CPU scalare; integra sul chip 1 milione di transistor e utilizza soluzioni architetturali nuove, come una piccola cache di 8 KB ed il coprocessore integrati all interno della CPU stessa. Un 486 DX, alla stessa velocità di clock, è il doppio più veloce di un 386 completo. La versione SX in questo caso differisce da DX per il fatto di non avere il coprocessore matematico (o meglio ce l ha ma è disattivato). Pentium: è la CPU utilizzata nei personal computer attuali. Integra sul chip 3 milioni di transistor ed è la prima CPU superscalare di questa famiglia. Utilizza 2 cache separate, una per i dati e una per le istruzioni, il bus dati a 64 byte e una sofisticata architettura. Con il Pentium l Intel ha cambiato il modo di dare dei nomi alle proprie CPU, per avere il modo di proteggerlo come marchio. 2 Il fatto di dover garantire una continuità con il passato, realizzando processori compatibili con il set di istruzioni delle precedenti CPU, può entro certi limiti condizionare le prestazioni delle moderne CPU. PAG. 3.34

L'INDICE INTEL ICOMP Pentium III 933 PENIUM III 866 3100 2860 PENTIUM III 700 2420 PENTIUM III 550 1780 PENTIUM 120 PENTIUM 100 PENTIOM 90 PENTIUM 75 486 DX4-100 486 DX4-75 486 DX 2-66 486 DX 50 486 DX 2-50 486 DX 33 486 SX 33 486 DX 25 486 SX 25 386 DX 33 386 DX 25 386 SL 25 386 SX 25 386 SX 20 1000 815 735 610 440 340 297 249 231 166 136 122 100 68 49 41 39 32 0 500 1000 1500 2000 2500 3000 3500 L INDICE ICOMP L indice ICOMP rappresenta uno dei tanti tentativi di realizzare degli indicatori in grado di rappresentare in una forma sintetica, ma realistica, la capacità elaborativa di un processore. Come tutti gli indici che nel corso degli anni sono stati definiti3, ICOMP si basa sulla misurazione del tempo di esecuzione di una serie di programmi appositamente creati, con l obiettivo di simulare l uso del computer da parte di un utente medio. La bontà di un indice dipende proprio dalla tipologia di programmi usati per la misurazione, in relazione al tipo di utilizzo del computer: se il programma campione esegue molti calcoli complessi, il test misurerà la capacità elaborativa della CPU; se il programma esegue molte operazioni grafiche, il test misurerà la capacità dl sottosistema grafico e così via. Normalmente i programmi utilizzati rappresentano un mix bilanciato che cerca di simulare l operatività di un normale utente (con tutti i possibili distinguo su cosa sia normale ). Introdotto nel 92 da Intel, l indice icomp nasce con l obiettivo di fornire all utente finale un indice che permettesse di confrontare le prestazioni di differenti processori della famiglia Intel. Di recente Intel ha rilasciato la versione 3.0, in modo da riflettere l uso effettivo delle attuali applicazioni che si basano sempre più su software a 32 bit, sui concetti della multimedialità e su Internet. Il problema della misurazione delle prestazioni di un processore è sempre stato molto dibattuto. Un singolo programma di test (in gergo si chiama benchmark ) potrebbe evidenziare solo alcuni aspetti (ad e- sempio la capacità di effettuare calcoli in virgola mobile) e sottacerne altri. Proprio per questi motivi l indice icomp utilizza un certo numero di benchmark, che analizzano tutti i diversi aspetti del processore, in modo da fornire un valore quanto più significativo delle prestazioni complessive di una CPU. Più specificatamente, l indice misura le prestazioni del processore in queste diverse aree applicative: programmi di produttività personale (Word, Excel,..) multimedialità elaborazione grafica in 3D Internet 3 un altro esempio è il MIPS. che misura il numero di istruzioni eseguite mediamente in un secondo PAG. 3.36

LA MEMORIA CENTRALE LA MEMORIA CENTRALE RAM (RANDOM ACCESS MEMORY) È UTILIZZATA PER MEMORIZZARE DATI E PROGRAMMI CHE IL PROCESSORE DEVE ELABORARE RAPPRESENTA UN PASSAGGIO OBBLIGATO, IN QUANTO È L UNICO TIPO DI MEMORIA A CUI ACCEDE LA CPU (IN ALTRE PAROLE, PER ESSERE ELABORATI, I DATI DEVONO ESSERE PRIMA CARICATI IN MEMORIA CENTRALE) INDIRIZZO 1 2 3 4 5 6 7... CONTENUTO LA MEMORIA PUÒ ESSERE PENSATA COME UNA TABELLA, LE CUI RIGHE SONO LE CELLE O LOCAZIONI DI MEMORIA TUTTE LE CELLE O LOCAZIONI HANNO LA STESSA CAPACITÀ (8 BIT) OGNI LOCAZIONE È CARATTERIZZATA DA UN INDIRIZZO UNIVOCO, E DAL DATO CONTENUTO L'ACCESSO AL DATO CONTENUTO IN UNA CERTA CELLA DI MEMORIA AVVIENE TRAMITE L'INDIRIZZO, IN MANIERA INDI- PENDENTE DALLA SUA POSIZIONE ( ACCESSO DIRETTO ) SI MISURA IN BYTE O MEGLIO, NEI SUOI MULTIPLI LA MEMORIA CENTRALE La memoria centrale (definita anche principale ) è utilizzata per memorizzare sia i dati, sia i programmi. La memoria centrale rappresenta anche un "passaggio obbligato", in quanto è l'unico tipo di memoria a cui il processore può accedere; in altre parole questo significa che, per poter essere elaborati, tutti i dati e tutti i programmi debbono prima essere caricati in memoria centrale. In questo senso la RAM rappresenta uno degli elementi più importanti tra quelli che contribuiscono a definire la potenza elaborativa di un computer: infatti essendo il luogo dove vengono immagazzinati dati e programmi per l elaborazione, tanto maggiore è la disponibilità di RAM in un computer tanto più numerosi saranno i dati che potranno essere elaborati direttamente e tanto più complessi i programmi. A livello strutturale la memoria centrale può essere vista come una tabella, le cui righe sono le celle o locazioni di memoria, ognuna delle quali è caratterizzata: da un indirizzo che la identifica in maniera univoca dal dato che ogni locazione è in grado di contenere Tutte le locazioni di memoria hanno la stessa capacità (di norma un byte) e l accesso ai dati contenuti nella locazione avviene in modo diretto, tramite l indirizzo. Gli indirizzi sono espressi mediante numeri interi. La prima cella ha indirizzo 1, la seconda cella ha indirizzo 2 e così via fino all ultima, il cui indirizzo dipende dalla dimensione della memoria installata sull elaboratore. Quindi l indirizzo coincide semplicemente con l ordinamento delle locazioni all interno della memoria stessa. Sarà poi compito della circuiteria di controllo della RAM tradurre l indirizzo passato dal processore nel corrispondente accesso alla locazione fisica. Il fatto di permettere un accesso diretto 4 ai dati tramite l indirizzo è una delle caratteristiche più importanti della memoria centrale; questo significa anche che il tempo di accesso ad un dato è indipendente dalla sua posizione all interno della memoria. 4 Si definisce ad accesso diretto, una memoria che permette di accedere direttamente ad un blocco di dati, senza dover leggere i dati che, sul supporto fisico, li precedono. E in contrapposizione alla memoria ad accesso sequenziale, in cui per poter leggere il blocco di dati, bisogna aver letto tutti i dati che precedono. Per fare un paragone con oggetti più usuali, si potrebbe dire che il CD musicale è un tipo di supporto ad accesso diretto, mentre la cassetta è un tipo di supporto ad accesso sequenziale. PAG. 3.38

RAM: LE CARATTERISTICHE CIRCUITI INTEGRATI VELOCITÀ FISICAMENTE LA MEMORIA CENTRALE È COSTITUITA DALL INSIEME DI PIÙ CIRCUITI INTEGRATI ED È ANCHE CHIAMATA: L'ACCESSO ALLE INFORMAZIONI CONTENUTE NELLA RAM È MOLTO RAPIDO (NANOSECONDI), ED QUINDI PARAGONABILE AI TEMPI DEL PROCESSORE VOLATILITÀ COSTO ELEVATO MANTIENE I DATI SOLO FINTANTOCHÉ È ALIMENTATA PER CUI È DISPONIBILE IN DIMENSIONI RIDOTTE E CONTIENE SOLO INFORMAZIONI A BREVE TERMINE": DA QUI DISCENDE LA NECESSITÀ DI UTILIZZARE LA "MEMORIA DI MASSA" PER INFORMAZIONI "A LUNGO "TERMINE" CARATTERISTICHE DELLA MEMORIA CENTRALE Dal punto di vista fisico la memoria centrale o RAM (Random Access Memory) è attualmente realizzata mediante circuiti integrati, ovvero componenti elettronici ad altissima integrazione al cui interno sono riprodotti gli schemi circuitali in grado assumere due diversi stati di funzionamento a cui vengono poi associati i due valori (o e1) che il bit può assumere. Un aspetto rilevante della memoria centrale è la sua elevata velocità che, come ordine di grandezza, può essere paragonabile alla velocità del processore. Per velocità di una memoria si intende il tempo necessario affinché il processore, noto l indirizzo, possa accedere al dato contenuto nella corrispondente locazione: Nella RAM attualmente installata sui personal computer questo tempo è dell ordine dei 70 nanosecondi (1 nanosecondo = 10-9 secondi). Una seconda caratteristica della RAM (che dipende dall'attuale tecnologia costruttiva) è che deve essere mantenuta alimentata elettricamente, affinché le informazioni vengano conservate all interno della memoria stessa. In altre parole si dice che la memoria RAM è volatile, ovvero perde tutti i dati contenuti quando si toglie l alimentazione all elaboratore (o quando, per qualche motivo esterno, viene a mancare l energia elettrica!). Le memorie RAM sono anche costose e questo impedisce l utilizzo, sul personal computer, di memorie RAM di grandi dimensioni. La RAM viene quindi utilizzata per la memorizzazione dei dati a breve termine, quelli cioè necessari al processore per l elaborazione in corso. Per tutti questi motivi, i dati non in uso da parte del processore andranno memorizzati su altri tipi di memoria (le cosiddette memorie di massa ), che hanno un costo per byte memorizzato molto più basso e che mantengono i dati anche quando non sono alimentate. La dimensione della memoria centrale si misura in byte o meglio utilizzando i suoi multipli: 1 KB 1 Kilobyte corrisponde a 1024 byte 1 MB 1 Megabyte corrisponde a 1024 KB (~ 1 milione di byte) 1 GB 1 Gigabyte corrisponde a 1024 MB (~ 1 miliardo di byte) 1 TB 1 Terabyte corrisponde a 1024 GB (~ mille miliardi di byte) Le dimensioni tipiche della memoria di un personal computer, vanno dai 256 ai 512 MB, ma questi valori crescono di anno in anno. PAG. 3.40

RAM: DIVERSI TIPI DI TECNOLOGIA RAM DINAMICHE (DRAM) NECESSITÀ DEL REFRESH TEMPI DI RISPOSTA: 70 NANOSEC ECONOMICHE RAM STATICHE (SRAM) NESSUN REFRESH TEMPI DI RISPOSTA : 15 20 NANOSEC MAGGIOR INGOMBRO (CIRCA 4 VOLTE) COSTOSE SIMM / DIMM CHE COS È? UNA PICCOLA SCHEDA PROGETTATA PER CONTENERE I SINGOLI CHIP DI MEMORIA RAM. PERCHÉ SI USANO? RICHIEDONO MENO SPAZIO E SONO PIÙ FACILI DA MONTARE QUANTI TIPI NE ESISTONO? DIVERSE CAPACITÀ DIVERSE PIEDINATURE DIVERSO TIMING LE TECNOLOGIE COSTRUTTIVE DELLA RAM Sotto l aspetto più puramente tecnologico, la RAM può essere realizzata utilizzando due schemi circuitali, ognuno dei quali presenta pro e contro: RAM dinamiche (DRAM): in genere è realizzata mediante uno schema circuitale che prevede l utilizzo due transistor e 1 condensatore per ciascun bit di dati; l informazione è legata alla carica del condensatore e per questo motivo una RAM dinamica perde l informazione memorizzata in un tempo brevissimo. Com è possibile allora utilizzare praticamente questo tipo di RAM? La soluzione adottata dai progettisti consiste in un circuiteria completamente autonoma, che continuamente legge la memoria e la riscrive, effettuando quello che viene chiamato rinfresco dei dati ( refresh ). L operazione di refresh (necessaria per il mantenimento del dato nella memoria), benché eseguita da una circuiteria specializzata, introduce un minimo fattore di rallentamento: se in passato era un fatto trascurabile, oggi, stante la cresciuta velocità delle CPU, è invece un e- lemento di criticità. RAM statiche (SRAM): sono composte da 4 transistor connessi in modo da non richiede il condensatore. Con questo diverso schema circuitale la RAM conserva i propri dati senza bisogno del refresh dei dati (ma deve essere sempre alimentata, anche se il consumo è molto più basso). Le SRAM, a parità di dati memorizzati richiedono molto più silicio e quindi sono molto più costose e ingombranti delle DRAM, rispetto alle quali hanno però il grosso vantaggio di essere molto più veloci (circa 15-20 nanosecondi contro i 70 delle DRAM). La memoria RAM, costituita da singoli chip già montati su piccole schede, appositamente progettate, chiamate: SIMM (Single In line Memory Module) oppure DIMM (Double In line Memory Module). Queste schede, dotate di contatti a slitta, si inseriscono perpendicolarmente negli appositi slot previsti sulla scheda madre. Le SIMM/DIMM richiedono meno spazio rispetto al tradizionale montaggio dei chip direttamente sulla scheda e sono più facili da mantenere (montaggio/smontaggio). In fase di acquisto bisogna comunque fare attenzione ai diversi tipi di SIMM/DIMM attualmente in commercio, che si differenziano, oltre che per la capacità, anche per i diversi tipi di piedinatura e per i differenti tempi di accesso. PAG. 3.42