Gli elaboratori

Applicazione degli elaboratori

Gli elaboratori elettronici, fin dal loro apparire, sono stati utilizzati soprattutto in due campi:
In campo scientifico, dove è sfruttata la loro possibilità di svolgere elaborazioni numeriche a grande velocità;
In campo amministrativo (e di gestione), dove invece è sfruttata la possibilità di memorizzare grandi quantità d’informazioni e di recuperarle velocemente.
Adesso si può dire che le applicazioni degli elaboratori coprono quasi tutti i campi dell’attività umana:
1. Trattamento testi (Word processing).
2. Posta elettronica (Electronic-mail): consente di scambiare informazioni tra più utenti.
3. Progettazione assistita dal calcolatore (CAD, Computer Aided Design) permette la realizzazione di disegni tecnici o di progetti bi-tridimensionali.
4. Produzione assistita dal calcolatore (CAM, Computer Aided Manufacturing): riguarda il controllo di processi di produzione e si ricollega al CAD.
5. Elaborazione elettronica dell’immagine (IP, image Processing): consente di riprendere immagini mediante una telecamera, di scomporle in punti e di riprodurle su uno schermo, eliminando eventuali perturbazioni.
6. Istruzione acquisita dal calcolatore (CAI, Computer Aided instruction): consente la presentazione di nozioni e la verifica del grado di apprendimento raggiunto dallo studente.
7. Intelligenza artificiale (Al, Artificial intelligence): compie lo studio della mente umana e del suo funzionamento attraverso simulazione.
8. Intrattenimento: audio digitale, dvd, giochi.

Parte fisica di un elaboratore

Un elaboratore è una macchina in grado di accettare informazioni provenienti dall’esterno (dati d’ingresso o Input) predisposte secondo una forma richiesta, di compiere su di esse operazioni aritmetiche, logiche e di trasferimento e quindi di fornire dei risultati in una forma accettabile per l’utente.
Un elaboratore deve quindi essere costituito da unità che siano in grado di svolgere queste funzioni. Da un punto di vista logico ogni calcolatore (indipendentemente dal modello) è costituto da:
• UNITA’ DI INGRESSO: ricevono i dati comunicati dall’esterno e li convertono in impulsi, che la macchina è in grado di leggere (INPUT).
• ELABORAZIONE DELLE INFORMAZIONI; la fase più complessa, infatti, sono necessari diversi dispositivi:
o Un dispositivo deve compiere le operazioni elementari: in termini tecnici si paria di UNITA’ ARITMETICO-LOGlCA proprio perché le operazioni elementari possono essere di tipo aritmetico, logico o di confronto.
o Un dispositivo per il controllo del flusso delle attività, cioè un’UNITA’ DI CONTROLLO. Spesso l’unità aritmetico-logica e l‘unità di controllo sono considerate insieme con il nome di UNITA’ CENTRALE Di ELABORAZIONE (Central Processing Unit, CPU) motore dell’elaboratore.
o Dispositivi per il collegamento tra le varie parti, detti CANALI o BUS.
o Un dispositivo dove conservare temporaneamente i dati durante l’elaborazione, che prende il nome di MEMORIA CENTRALE.
o Un dispositivo per la conservazione permanente delle informazioni; in termini tecnici si parla di MEMORIA Dl MASSA.
• UNITA’ Dl USCITA: emettono all’esterno le informazioni, dopo che sono state elaborate (OUTPUT).



Figura 1 - Struttura di un elaboratore

Le memorie

Abbiamo visto che le istruzioni e i dati necessari allo svolgimento di un’elaborazione sono memorizzati nella MEMORIA CENTRALE, chiamata in questo modo giacché fa parte fisicamente della macchina, in contrapposizione alle memorie ausiliarie o di massa, che si possono trovare su unità separate. Le sue caratteristiche principali sono:
• È una memoria di lettura e scrittura (R\W= Read\Write), in cui i dati possono essere scritti e letti. È quindi in contrapposizione alle memorie a sola lettura (ROM, Read Only Memory).
• È una memoria ad accesso casuale (RAM, Random Access Memory), il cui tempo di accesso a un’informazione non dipende dalla posizione in cui essa si trova. La memoria centrale ha un tempo di accesso alle informazioni molto superiore rispetto alle memorie di massa.

Le memorie possono essere sia dinamiche sia statiche:
• Quelle statiche usano flip-flop, ossia circuiti digitali che possono assumere due stati e sono realizzati con semiconduttori a ossido di metallo; essi permangono nello stato di set (memorizzano 1) e di reset (memorizzano O), finché la tensione di alimentazione non è rimossa.
Il bit immagazzinato nel flip-flop è disponibile per essere utilizzato nella circuiteria dell‘elaboratore.
• Le memorie dinamiche sono realizzate introducendo un condensatore che memorizza un 1 quando è carico, uno O in caso contrario.
Sia le memorie statiche che quelle dinamiche sono volatili; nel senso che togliendo l’alimentazione, l’informazione in essa immagazzinata scompare. Le memorie che mantengono le informazioni sono quelle non volatili, le ROM e le memorie di massa.
Ogni locazione della memoria o cella è realizzata con un numero fisso di elementi in modo da formare un byte o parola.
Un byte è formato da 8 bit, ogni byte rappresenta un carattere numerico, alfanumerico o alfabetico.
A ogni byte corrisponde un indirizzo di memoria, che indica in quale posizione della memoria (locazione) si trova l’informazione desiderata, che costituisce il contenuto della locazione.
Una maggiore capacità di memoria centrale è sinonimo di maggiore potenzialità del computer poiché può essere utilizzato per elaborazione che richiedono programmi di notevoli dimensioni.
Nella misurazione della capacità di memoria si utilizzano multipli dell’unità di misura fondamentale:
8 bit = 1 Byte
1.024 bytes = 1 Kilobyte (Kb)
1.048.576 byte = 1 Megabyte (Mb)
Circa 1 miliardo di bytes= 1 Gigabyte (Gb)

Memoria RAM
Dal punto di vista fisico, la memoria RAM è costituita da un gran numero di unità di base, dette celle di memoria. Ogni cella è un dispositivo o un circuito elettronico che può assumere due stati stabiliti ed è quindi in grado di memorizzare una cifra binaria.
Si distingue anche tra memorie statiche e memorie dinamiche: nel primo tipo, le informazioni permangono fino a quando è presente la tensione di alimentazione (memorie a nuclei); nel secondo invece le informazioni “decadono” dopo un certo tempo, per cui sono necessari dei circuiti ausiliari di ripristino dati (come per le memorie MOS).
In fine sono stati introdotti i termini di memoria volatile e non volatile: nella prima i dati vanno persi non appena viene a mancare l’alimentazione di corrente, la seconda è in grado di mantenere le informazioni anche a macchina spenta.
Esistono diversi tipi di RAM nel computer, ossia:
• memoria convenzionale
• memoria superiore
• area della memoria estesa
• memoria espansa

Memoria ROM
La memoria ROM presenta una struttura più semplice della memoria RAM, perché in essa i dati sono memorizzati definitivamente e non sono più modificati. Le informazioni possono essere solamente lette. E un’area di memorizzazione permanente contiene le istruzioni basilari per l’avviamento e il funzionamento dell’elaboratore.

Memoria di massa
Ciò che differenzia una memoria centrale da una periferica (oltre naturalmente le loro diverse ubicazioni) è l’uso.
Le memorie di massa possono essere riscritte e rilette più volte, senza che si deteriorino.
Classici esempi dl memoria dl massa sono i dischi e i nastri che utilizzano superfici plastiche ricoperte di materiale ferromagnetico.
I dischi possono essere rigidi (hard-disk) oppure flessibili (floppy disk).
Il floppy disk è costituito da un supporto di plastica ricoperto da materiale magnetico.
Attraverso la sua magnetizzazione è possibile scrivere dati e programmi, mentre la lettura del suo stato (magnetico) permette di recuperare quanto scritto in precedenza.
Queste operazioni sono svolte da una testina, simile funzionalmente a quelle di un registratore, pilotata da programmi appropriati, integrati nel sistema operativo.
I floppy hanno queste dimensioni: 3,5 pollici di diametro (capacita 720 Kb - 1,44 Mb).
L’hard-disk è collocato all’interno dell‘unità di sistema e non può essere estratto per essere trasportato. I dischi fissi hanno un’elevata capacita di memorizzazione, infatti, permettono di registrare centinaia di megabyte.
Sono chiamati Winchester (più dischi impilati) e in virtù della loro alta velocità di rotazione realizzano tempi di accesso ai dati più velocemente del minifloppy.
Sia il disco rigido sia il flessibile non possono essere utilizzati prima di essere formattati.
Formattare significa adeguare i supporti magnetici al tipo di sistema operativo utilizzato dall'hardware disponibile.
Inoltre le informazioni si possono registrare sui nastri magnetici, costituiti da un sottile stato di ossidi di ferro depositati su una superficie sottile di materiale plastico.
È un dispositivo sequenziale, a differenza del minidisco e del disco rigido non permette di recarsi direttamente a un certo punto del nastro, occorre far scorrere sotto la testina tutto il nastro necessario per arrivare al punto voluto.
Altre unità di memorizzazione dell’ultima generazione sono:
• Unità ZIP - supporto magnetico simile a un floppy, ma con capacità nettamente superiore che va da 100 Mb a 250 Mb.
• Lettore CD-R - dispositivo a lettura ottica che utilizza il laser per leggere il supporto CD (Compact Disc) in precedenza scritto da un masterizzatore. Questo tipo di supporto può essere scritto una sola volta.
• Masterizzatori CD RW – sono utilizzati per scrivere e riscrivere i CD del tipo riscrivibile.


Vari tipi di memoria:

RAM
Random Access Memory (memoria ad accesso casuale) Memoria primaria di un computer in cui si possono scrivere o leggere informazioni in qualsiasi momento.

RAM-EDO
Extended Data Out Random Access Memory (RAM con uscita estesa di dati) Tecnologia che permette alla memoria DRAM di abbreviare il percorso di trasferimento dati tra la memoria e la CPU.

BEDO RAM
Burst EDO Random Access Memory (RAM EDO a pioggia) Tipo di memoria EDO RAM con una velocità maggiore, che può accedere senza latenza a indirizzi contigui di memoria.

DRAM
Dinamic Random Access Memory (RAM dinamica) Il sistema più comune di memoria nei PC. Può mantenere un dato per un breve tempo per cui richiede un continuo refresh. È in più a buon mercato della memoria statica e ha un accesso più lento.
SDRAM
Synchronous Dinamic Random Access Memory (RAM sincrona) Tecnologia DRAM che utilizza un orologio per sincronizzare l’entrata e l’uscita di dati nella memoria di un chip. Quest’orologio è sincronizzato con quello della CPU.

DRAM FPM
Fast Page Mode Dinamic Random Access Memory (DRAM a cambio rapido di pagina) Tecnologia di memoria che migliora il rendimento della memoria DRAM, accedendo agli indirizzi mediante cambi di pagina.

RDRAM
Rambus DRAM (DRAM per tecnologia Rambus) Memoria DRAM ad alta velocità sviluppata per poter funzionare con generazioni future di processori con velocità di 1 GB/s.

SRAM
Statick Random Access Memory (RAM statica) Memoria RAM molto rapida che non richiede il processo di refresh. Si tratta di una memoria molto costosa e per questo motivo poco utilizzata.

ROM
Read Only Memory (memoria di sola lettura) Memoria che permette un numero indeterminato di letture, ma che non può essere modificata (non consentendo la scrittura di dati).

PROM
Programmable Read Only Memory (ROM programmable) Memoria che consente un’unica programmazione. Una volta conclusa questa, la memoria PROM equivale a una memoria ROM.

EPROM
Erasable Programmable Read Only Memory (ROM programmabile e cancellabile) Memoria ROM che l’utente può riprogrammare elettronicamente con un programmatore PROM. La cancellazione si compie esponendola a raggi ultravioletti.

EEPROM
Electrically Erasable PROM (ROM programmabile e cancellabile elettricamente) Evoluzione delle memorie EPROM, di cui è possibile modificare il contenuto mediante segnali elettrici senza necessità di programmatori o strumenti per cancellare.

MEMORIA DI MASSA
Le memorie di massa sono i dischi rigidi, i CD ROM, i DVD dischi RAID (teraByte TB). Il disco rigido arriva fino alla decina di GB di memoria mentre il nastro supera 8 GB, e inoltre il nastro serve a conservare i dati in maniera più sicura anche fuori (cassa forte).

La memoria
La memoria è un componente elettronico del PC che può ricevere, archiviare e fornire informazioni. È formata da una grande quantità di celle che agiscono come minuscoli condensatori in grado di trattenere le cariche elettriche ricevute e che indicano in questo modo i singoli bit delle informazioni.
In generale, quando si parla di memoria, si fa riferimento alla memoria RAM (Random Access Memory, memoria ad accesso casuale), che costituisce la zona di lavoro del microprocessore. Tutti i programmi e i dati gestiti dal processore sono archiviati temporaneamente in questa memoria, in grado di trovare e archiviare qualsiasi dato in modo rapido e con un processo casuale.
Esistono molte modalità di memoria RAM, cosi come esistono molti altri tipi di memorie dotate di caratteristiche particolari, che consentono loro di svolgere determinate funzioni all’interno del PC. Adesso la maggior parte delle componenti e delle periferiche contiene qualche tipo di memoria. Quest’affermazione potrebbe essere estesa a ogni apparecchio o elettrodomestico che contenga una qualsiasi parte elettronica necessaria al suo funzionamento, come televisori, le lavatrici e anche le automobili.
Quando si fa riferimento alla memoria come dispositivo di archiviazione si crea generalmente molta confusione. Infatti, si parla di memoria anche quando si fa riferimento alla capacità di un disco, fisso o mobile. Ciò è dovuto al fatto che sia la memoria fisica, sia i dispositivi di memorizzazione come il disco fisso, il CD-ROM ecc., utilizzano le stesse unità di misura e svolgono entrambi funzioni di archiviazione di dati.
Per evitare confusione si potrebbe paragonare il computer a un piccolo ufficio in cui uno schedario e una libreria raccolgono grandi quantità d’informazioni per tutto il tempo necessario, facendo sì che l’utente possa consultarle quando lo desidera.
Questa stessa funzione è svolta, nel caso del computer, dal disco fisso. D’altra parte tutte le carte che potrebbero trovarsi sulla scrivania equivarrebbero alle informazioni memorizzate dalla memoria RAM, che contiene tutto il necessario per lavorare, anche se con un volume di dati più limitato rispetto al disco fisso (l’archivio e la libreria di riferimento), e con una velocità di consultazione molto più elevata.
L’unità minima d’informazione gestita da un computer e il bit (b), che può avere soltanto due valori, 0 o l.
Combinando vari bit si possono creare numeri in formato binario; l’unione di 8 bit è detta byte (B). Nel sistema decimale un byte si converte in una cifra con un valore compreso tra 0 e 255.
Si deve sempre tenere presente la differenza tra bit e byte, perché in alcune periferiche s’indica la capacità di memorizzazione mediante Kb (Kilobit) o Mb (Megabit) e in altre con KB (Kilobyte) o MB (Megabyte). È ovvio che la capacità del dispositivo varia in modo rilevante quando si utilizza l’una o l’altra unità di misura (1 MB o 1 048 576 byte equivalgono a 8 Mb oppure 8 000 000 bit). I prefissi kilo, mega o giga, quando si utilizzano unitamente a bit, indicano rispettivamente fattori di 1000, 1 000 000 e 1 000 000 000.
Quando invece si parla di byte, il loro significato cambia, e devono essere letti come fattori equivalenti a l024, 1 048 576 e 1 073 741 824.

Tipi di memoria
All’interno dell’unità centrale di un PC esistono vari tipi di memoria, che consentono il funzionamento normale del sistema. Esse si possono dividere in tre diverse categorie: la memoria ROM, la DRAM e la SRAM; ciascun tipo si suddivide a sua volta in sottoclassi.

ROM
La caratteristica fondamentale della memoria ROM (Read Only Memory, memoria di sola lettura), è la sua capacità di archiviare in modo permanente le informazioni, senza la necessità di una qualsiasi alimentazione elettrica. Tutti i PC contengono una piccola quantità di memoria ROM che contiene il software di avvio e le routine di base di entrata e uscita (BIOS).

ROM evoluta
Ormai le normali memorie di tipo ROM non si usano più. Al loro posto si utilizzano memorie EEPROM (Electrically Erasable Programmable ROM, memoria ROM cancellabile e programmabile elettricamente), molto più pratiche per i fabbricanti di schede madre perché, mediante uno speciale processo, si possono modificare o registrare nuovamente le informazioni che contengono e, in questo modo, aggiornare facilmente i programmi e le routine di avvio senza manipolare il chip di memoria o la scheda madre, come accadeva con la tradizionale memoria ROM.

DRAM
La DRAM (Dinamic RAM, RAM dinamica) è il tipo di memoria che si utilizza maggiormente, nei giorni nostri, nella maggior parte dei PC. Il suo principale vantaggio è l’alta densità di archiviazione, che consente di avere una grande quantità di bit in chip di memoria di dimensioni ridotte. Questo comporta come conseguenza un prezzo molto basso, il che facilita l’emissione di grandi quantità di memoria principale a un computer.
Nelle memorie DRAM le cellette che memorizzano le informazioni lavorano come minuscoli accumulatori, che trattengono la carica dei bit circolanti nei bus. La carica che si memorizza in ogni celletta si consuma rapidamente, ed è perciò necessario che si rigeneri mediante refresh o si ricarichi il suo contenuto costantemente per evitare la perdita dei dati memorizzati. Questo rappresenta il principale inconveniente della memoria DRAM. Il suo funzionamento dinamico obbliga il processore a fare continue pause per accedere a tutte le posizioni di memoria, allo scopo di rigenerare il contenuto delle celle.
Ogni ciclo di refresh utilizza vari cicli del processore, e per questo motivo nei processori più vecchi il refresh della memoria poteva arrivare a consumare il 10% del tempo totale del processore ma, nel presente, con i processori Pentium II questo valore si è drasticamente ridotto fino a circa l’1%.

Velocità e frequenza
La velocità dei processori o dei bus dei dati si può vedere riflessa nella frequenza di funzionamento. Le memorie esprimono la propria velocità in nanosecondi (ns), grandezza che rappresenta la miliardesima parte di un secondo.
Per valutare l’istantaneità di un ns si può prendere, come punto di riferimento, la velocità della luce nel vuoto, secondo la stima finora accettata, 300 000 chilometri al secondo circa. In un nanosecondo un raggio di luce percorre soltanto 29,98 cm. Per confrontare la velocità della memoria (tempo che impiega ciascun ciclo), con la frequenza d’orologio (numero di cicli che possono essere eseguiti al secondo), si deve fare un piccolo calcolo che consiste nel dividere 1 secondo per la frequenza.
La frequenza del microprocessore non determina la velocità che deve sostenere la memoria. Per esempio, un microprocessore Pentium a 200 MHz non ha bisogno di utilizzare una memoria tanto rapida.
In questo caso, il fatto che la memoria DRAM si colleghi con il bus di sistema a 66 MHZ fissa la velocità minima della memoria in 15 ns per evitare, in questo modo, tempi di attesa.

Tempo per ciclo = latenza =tempo di accesso

Calcolare la velocità ottimale della memoria per una determinata frequenza di comunicazione non è cosi facile.
I transistor di un chip di memoria sono strutturati a matrice. Il processo seguito affinché la memoria trasferisca un dato si divide in due fasi. Nella prima è localizzata la posizione della memoria e sono fornite le coordinate all’interno della griglia in cui si dispongono le celle, per poi trasferire le informazioni.
Il tempo utilizzato durante la preparazione iniziale, necessaria per localizzare l’indirizzo di memoria, è noto come tempo di latenza. Conseguentemente il tempo reale di accesso alla memoria è il risultato della somma della latenza e del tempo per ciclo. Per esempio, il fatto che un modulo di memoria indichi un tempo di accesso di 60 ns, significa che ha una latenza di circa 25 ns e un tempo per ciclo di 35 ns.
L’aumento di frequenza dei bus dei dati e dei processori ha favorito la continua comparsa di memorie RAM che utilizzano tecniche differenti per raggiungere accessi di memoria molto più rapidi.
Il riquadro “Tutte le memorie”, che si trova alla fine di questa sezione, presenta un elenco completo delle diverse classi di memoria esistenti sul mercato. Sono state inoltre indicate le loro principali caratteristiche. In qualsiasi caso, la velocità di accesso alla memoria è adesso la caratteristica su cui concentrano maggiormente le loro energie i costruttori che puntano a un continuo aumento del rendimento dei PC.

La memoria cache
La memoria SRAM è molto più rapida di tutti gli altri tipi di memoria DRAM. Diversamente da tutte le memorie di tipo dinamico, questa memoria di tipo statico non ha bisogno del continuo refresh del proprio contenuto per evitare la perdita dei dati. Questa, insieme con altre particolarità tecniche, fa si che la memoria cache sia molto rapida, riuscendo a raggiungere tempi di accesso inferiori a due nanosecondi.
Al posto dei minuscoli accumulatori delle memorie DRAM, nelle memorie SRAM ogni bit è memorizzato in un gruppo di sei transistor. Di conseguenza, il miglioramento nel tempo di accesso si produce grazie al fatto che si evitano i ritardi provocati dai processi di caricamento e scaricamento elettrico di ciascun accumulatore.
L’integrazione di transistor migliora il rendimento delle memorie statiche, ma provoca la perdita dell’alta densità di archiviazione delle memorie DRAM. Il risultato è un aumento considerevole delle dimensioni fisiche dei moduli di memoria SRAM e anche del loro costo di produzione, il che ne rende impossibile l’uso come memoria principale. Uno dei miglioramenti più importanti introdotti nei personal computer è lo sfruttamento delle caratteristiche della SRAM mediante l’uso della memoria cache, nota anche come memoria intermedia.

Cache di primo livello
La memoria cache di primo livello (Li) è situata, fisicamente, all’interno del microprocessore, in modo da fare da ponte con la memoria principale. Tutti i dati trasferiti tra la memoria RAM e il processore passano attraverso la cache, dove si fermano per pochi cicli d’orologio, Il processore, in molte delle operazioni che compie, ha bisogno di accedere in numerose occasioni ai dati elaborati pochi cicli prima. Grazie alla cache, il processore può accedere nuovamente velocità di accesso alle informazioni contenute. Superare i 64 MB di memoria in computer equipaggiati con chipset HX, VX o TX è raccomandabile soltanto in determinati casi.

Memoria fisica
La memoria principale è formata da moduli che s’inseriscono negli slot di espansione contenuti nella scheda madre. Un modulo non è altro che una piccola piastra di circuito stampato che raggruppa vari chip di memoria per facilitarne l’installazione. I primi PC potevano ampliarla collegando i chip individuali di memoria o DIP (Dual Inline Package, capsula duale in linea) nelle basi libere della scheda madre.
Questo metodo provocava spesso il deterioramento dei DIP durante la sistemazione, perché si piegavano i piedini. I primi moduli di memoria erano SIMM a 30 contatti, che si usavano con processori anteriori agli 80486 di Intel. I microprocessori Pentium II hanno reso diffusi e comuni moduli SIMM a 72 contatti.
Questi moduli di memoria consentono di archiviare 32 bit per ciclo e quindi devono essere installati a coppie per lavorare con processori con un bus esterno di 64 bit, come accade con tutti i Pentium. I Pentium II contengono slot per moduli di memoria a 168 pin e 64 bit che, generalmente, sono due moduli SIMM a 32 bit integrati in uno. I moduli di memoria, insieme ai loro diversi tipi di basi e contatti, contengono diversi tipi di memoria. Le SIMM a 72 contatti contengono generalmente chip di memoria DRAM (70 a ll0 ns) e EDO RAM (40 a 60 ns). Le alte frequenze di lavoro dei Pentium Il richiedono memorie di maggiore velocità. In questo modo i moduli DIMM contengono generalmente chip di memoria SDRAM (9 a I1 ns), che migliorano notevolmente le loro prestazioni, e che li collocano a meta strada tra le memorie di tipo SRAM e le DRAM.

PENTIUM II a 66 MHz I PENTIUM III a 133 MHz Frequenza interna (clock) 300 MHz I 800 MHz Cache Ll 3 nanosec / 300 MHz I 1 nanosec/ 800 MHz Cache L2 6 nanosec / 150 MHz I 2 nanosec / 400 MHz Frequenza bus sistema 66 MHz I 133 MHz Velocità della memoria I5 nanosec / 66 MHz I 7 nanosec/ 133 MHz.

L'unità centrale di elaborazione

La CPU o “processore centrale” è l’autentico cervello di un elaboratore. Con questo termine s’indica, infatti, l’insieme di dispositivi che svolgono manipolazione di dati e operazioni di controllo che sono fondamentali per il funzionamento dell’elaboratore stesso.
L’unità centrale è composta da due parti principali, l’unità di controllo e l’unità aritmetico-logica (Arithmetic Logic Unit ALU), cui si aggiungono vari registri.



Figure 2 - Schema logico di un elaboratore e unità centrale

L’unità di controllo
L’unità di controllo ha il compito di supervisionare il funzionamento della macchina nel suo complesso e di attivarne le varie unità.
I suoi compiti sono:
• Prelevare una per volta le istruzioni di cui è composto il programma dalla memoria centrale.
• Interpretarle (cioè decodificarle) e inviare i segnali di controllo per avviare l’operazione specifica richiesta.
• Controllare il flusso delle informazioni tra le varie parti di un elaboratore.

Fisicamente l‘unità di controllo è costituita da una serie di circuiti logici, chiamati logica di controllo. Il funzionamento dell’unità di controllo è regolato da un orologio (clock), facente parte dell’hardware del sistema, che scandisce il tempo all'interno della macchina e usato per sincronizzare le varie operazioni. L’unità di controllo assegna le risorse del sistema alle varie parti dell’unità centrale in modo opportuno in base al tempo necessario per portare un dato dalla memoria nell’unità centrale (tempo di ciclo). Il tempo di ciclo determina poi anche la velocità di elaborazione, che è sempre un multiplo del tempo di ciclo.

L’unità aritmetico-logica (ALU)
Questa parte della CPU ha il compito di eseguire le operazioni aritmetica e logiche sui dati. I suoi compiti fondamentali sono:
• Eseguire tutte le operazioni aritmetiche: di somma, sottrazione, moltiplicazione e divisione.
• Eseguire le operazioni logiche, come ad es. il confronto di due valori per decidere se sono uguali o quale dei due è il maggiore.

I registri dell’unità centrale
Per svolgere tutte le funzioni cui è preposto, oltre ai due elementi principali già visti, l’unità centrale ha bisogno di alcuni registri (memoria temporanea utilizzata per contenere piccole quantità d’informazioni).
I registri fondamentali dell’unità centrale sono:
• Il registro delle istruzioni (instruction Register - IR).
• Il registro contatore del programma (Program Counter- PC).
• Il registro di transito (Buffer Register - BR).
• L’accumulatore (Accumulator - AC).
Solitamente, i primi due appartengono all’unità di controllo, mentre gli ultimi due appartengono all’ALU.
Vediamo come funzionano questi registri:
• BR è utilizzato per memorizzare un’informazione in attesa di passare dalla memoria centrale alla CPU o viceversa. Serve per compensare la differenza di velocità operative tra memoria e CPU.
• Nel registro PC è memorizzato l’indirizzo della locazione di memoria contenente la successiva istruzione da eseguire. Prima dell’avvio di un programma il PC viene “caricato” con l’indirizzo della prima istruzione da eseguire, mentre durante l’esecuzione è automaticamente incrementato, in genere il contenuto del PC è continuamente aumentato, poiché le istruzioni si trovano in locazioni di memoria consecutive. Alla presenza di particolari istruzioni (dette di salto) il PC può però essere modificato diversamente, in modo da “puntare” a una locazione diversa da quella fisicamente successiva.
• L’AC, infine, è utilizzato come area di lavoro per tutti i calcoli eseguiti dall’ALU. Ad esempio, durante un’operazione di somma, uno degli operandi è posto in AC, mentre l’altro è prelevato dalla memoria e aggiunto al contenuto di AC, che al termine dell’operazione conterrà anche il risultato. In alcune unità centrali le funzioni dell’accumulatore sono svolte da alcuni registri, detti di utilizzo generale (General Purpose Register, GRP).

Cache
In informatica, la cache (nascondiglio/o, deposito segreto, in inglese) e un insieme di dati che è raccolto in una locazione temporanea, dove possa essere recuperato velocemente su richiesta Le parole chiavi sono "temporanea" e “velocemente": in pratica, questo significa che non c'e nessuna certezza che i dati si trovino nella cache, ma che convenga comunque fare un tentativo per verificarne l’eventuale esistenza.

-Tipologie di cache Ci sono vari tipi di cache, che si distinguono tra loro per il luogo dove sono utilizzate:
• La CPU cache consiste nell'avere una CPU che possa caricare al suo interno più di una locazione di memoria (generalmente dati utilizzati nell’esecuzione del programma, ma anche le istruzioni che presumibilmente saranno successive a quella attualmente in esecuzione). In questo caso si sfrutta il vantaggio di potere caricare circa nello stesso tempo più dati consecutivi all’interno della RAM.
• La page cache consiste nell‘avere una parte della RAM usata dal sistema operativo in cui si copiano dall‘hard disk i dati correntemente in uso. In questo caso, l’accesso alla RAM è più veloce dell'accesso al disco. Poiché la memoria disponibile è generalmente limitata, il sistema operativo cerca di mantenere il più possibile in memoria una pagina, mantenendo una tabella delle pagine che non sono usate correntemente, ma lo sono state in passato quando occorre caricare una pagina nuova, sarà sovrascritta la più vecchia non ancora in uso.
• La disk cache consiste nell'avere un hard disk che ha al suo interno una parte di RAM, dove possono essere caricati i settori del disco logicamente contigui a quello richiesto. Quando si accede in lettura al disco, nel caso i dati richiesti siano presenti nella cache, si evita lo spostamento della testina di lettura del disco stesso, velocizzando il reperimento dell'informazione e contribuendo al ridurre l`usura del disco stesso.
• La web cache e una parte di hard disk dedicata da un server proxy http, oppure dal browser di un utente, a salvare le pagine man mano caricate durante la navigazione, che potranno pertanto essere riproposte senza doverle chiedere di nuovo al sistema remoto. In questo caso, il collo di bottiglia che si vuole eliminare è quello della larghezza di banda. Non sempre è pero lecita l’operazione di mettere una pagina in cache: si pensi ad esempio a quando si fa un'operazione bancaria on line! Generalmente è la stessa pagina web che è inviata insieme alle istruzioni sul suo possibile utilizzo in una cache; in certi casi si può forzare il proprio browser a ricaricare la pagina, tenendo schiacciato il tasto "ctrl" oppure "shift" mentre si clicca sull'icona di ricarica.
• La Google cache, o più propriamente cache dei motori di ricerca, consiste in copie della pagina web salvate presso i server di un motore di ricerca. Queste vengono utilizzale per due motivi: eseguire ricerche locali all'interno delle pagine e offrire la possibilità di vedere una copia, per quanto non aggiornata, di una pagina non disponibile, per problemi momentanei o perché è stata rimossa dal server originale.
• La cache DNS è un server DNS che non possiede informazioni autoritative, ma è in grado di chiederle ai server autoritativi e memorizzare le risposte. I server DNS utilizzati dagli utenti d’internet sono normalmente dei server cache. Il DNS usa un meccanismo di scadenza, per cui ogni record recuperato da un server autoritativo e valido per un certo tempo, dopo il quale deve essere scartato.

-Funzionamento di una cache Una cache è associata a una memoria "principale", in cui risiedono i dati. La cache è tipicamente di capienza inferiore rispetto alla memoria principale, ma il suo utilizzo e più conveniente in termini di tempo di accesso e/o carico sul sistema. Quando è necessario l’accesso a un dato, questo è prima cercato nella cache. Se è presente e valido, è utilizzata la copia presente nella cache. Viceversa, è recuperato dalla memoria principale, e memorizzato nella cache, nel caso serva ancora in seguito.
La memoria principale può essere qualcosa di semplice come un disco rigido, ma anche un complesso database distribuito, come il DNS o il web. In questi casi, la memoria principale può essere modificata senza passare dalla cache, l`utilizzo di una cache comporta problemi di coerenza tra i dati "originali" e quelli presenti nella cache. È quindi possibile che per validare i dati contenuti nella cache sia necessario interrogare la memoria principale Questo e quello che fanno i server proxy: chiedono al server HTTP se la pagina che possiedono è stata modificata dopo la sua memorizzazione, e se non lo è evitano di trasferirla e la suggeriscono direttamente al client.
Una cache riduce anche il carico di richieste che deve essere smaltito dalla memoria principale, e dal collegamento tra questa e l‘utilizzatore dei dati. Anche questo può contribuire a migliorare le prestazioni del sistema. Si pensi per esempio a un server proxy utilizzato da molti utenti: quando uno di essi richiede una pagina che era già stata richiesta da un altro, il proxy potrà rispondere senza dovere collegare al sito originale, ed eviterà cosi di caricare sia il sito originale sia la rete.
Una cache utilizza un algoritmo per decidere quali dati mantenere e quali scartare, che tiene conto delle pagine utilizzate più di recente, della contiguità delle pagine...
Una cache può indicizzare i dati memorizzati sulla base del loro indirizzo (un blocco di memoria o di dati su disco fisso) o del loro “nome” (cache associativa, ad esempio una pagina web o un nome DNS).

-Problematiche L‘avere una memoria cache può complicare notevolmente la progettazione di un dispositivo elettronico dato che bisogna mantenere la coerenza tra le memorie cache e quella principale.
Ciò si vede specialmente nelle macchine multiprocessore, dove lo sviluppo dei processori e delle schede madri deve tenere conto dei potenziali problemi di coerenza delle cache e deve provvedere adeguati meccanismi che evitino corruzioni dei dati per problemi di mancata sincronizzazione tra cache e memoria principale.

I bus

Il bus è il mezzo attraverso il quale “viaggiano” le informazioni all’interno di un elaboratore.
Dal punto di vista fisico, il bus è un cavo piatto, flessibile, con delle piastre per i collegamenti elettrici alle estremità, che contiene fili conduttori per la trasmissione di segnali elettrici. Ogni singolo o gruppo di fili trasporta delle informazioni particolari: ad esempio, l’indirizzo di una periferica, segnali di controllo o dati.
Un bus può collegare parti interne di un elaboratore (memoria e unità centrale) o l’esterno e l’elaboratore (le periferiche e la memoria o le periferiche e l’unità centrale). In questo secondo caso il collegamento non è diretto, è necessaria, infatti, un’interfaccia che serve per compensare le differenze tra periferica e l’elaboratore.
All’interno di un bus, vi sono alcune linee impiegate per inviare indirizzi (address lines) e altre impiegate per trasmettere i dati (data lines). Infine vi sono le linee di controllo che sono utilizzate per trasportare informazioni di controllo.

Tecniche di trasferimento dati
Il software di ogni elaboratore ha programmi che si occupano degli scambi dei dati e che sono fatti intervenire dal sistema operativo al momento opportuno. I trasferimenti possono essere realizzati usando diverse tecniche secondo le esigenze dei programmi interessati all’1/O (bus che collega le periferiche alla CPU) e delle strutture delle periferiche I/O coinvolte:
I trasferimenti controllati da programma dei dati sono il modo più semplice per l’inizializzazione e il controllo del processo di trasferimento. È il programma stesso che ha bisogno dei dati che controlla direttamente e “programma” la periferica. L’hardware interviene soltanto a livello di semplice esecutore fisico.
Vediamo in breve cosa succede:
• Il programma verifica se la periferica interessata è già impegnata in altri trasferimenti.
• Se la periferica non è disponibile subito, il programma continua a verificarne la disponibilità.
• Quando la periferica è pronta, viene compiuta la vera e propria operazione di acquisizione dati.
• Se l’1/O deve essere ripetuto, il processo riprende dalla fase di controllo della disponibilità.
Questo metodo ha il vantaggio di consentire circuiti d’interfaccia piuttosto semplici, poiché la maggior parte delle operazioni è svolta dalla CPU (dal programma in esecuzione). D’altro canto, però, l'unità centrale resta occupata nella verifica della disponibilità della periferica non potendosi cosi dedicare ad elaborazioni più utili.
Una tecnica più efficiente è quella del trasferimento a interruzione di programma (IRQ); in questo caso è l’interfaccia della periferica a inviare un segnale di disponibilità, mentre la CPU prosegue l’esecuzione del programma fino all’arrivo del segnale dall’interfaccia. Vediamo le varie fasi:
• La CPU rileva un segnale d’interruzione proveniente da un’interfaccia: dopo aver terminato l’esecuzione dell’istruzione in corso, interrompe l’esecuzione del programma.
• Le informazioni contenute nei registri della CPU sono memorizzate in zone riservate della memoria, in modo che i registri stessi possano essere utilizzati per il trasferimento, senza che il loro contenuto sia distrutto.
• La CPU esegue il programma gestore delle periferiche device (handler) che si occupa del trasferimento dei dati: la prima istruzione di questo programma è prelevata da una locazione nota della memoria principale.
• Conclusa l’esecuzione del gestore delle periferiche, il contenuto dei registri è ripristinato, in modo da tornare alla situazione precedente all’interruzione.
• La CPU riprende l’esecuzione del programma.

Da una parte, questa tecnica richiede circuiti d’interfaccia più complessi e non è efficiente per grandi quantità di dati, dall’altra migliora l’utilizzo del tempo di CPU rispetto ai trasferimenti programmati ed è possibile stabilire dei livelli di priorità tra le interruzioni.
Un’ultima tecnica, utilizzata per il trasferimento di grandi quantità di dati, è quella del trasferimento di dati con accesso diretto alla memoria (DMA).
Il trasferimento DMA è utilizzato per la sua velocità fra periferiche (come dischi e CD-ROM, DVD-ROM) e la memoria principale e viceversa.
Questo tipo di trasferimento richiede l’intervento del software (e quindi della CPU) solo nella fase iniziale, dopodiché il controllo del trasferimento è fatto dall’interfaccia della periferica, lasciando libera la CPU che sarà avvisata soltanto a trasferimento ultimato.
Il trasferimento in DMA può avvenire o su bus dedicato o utilizzando un bus condiviso durante gli intervalli di tempo in cui questo non è usato per altri trasferimenti.
Identifichiamo le fasi principali:
• Un programma apposito specifica la periferica da utilizzare, l’operazione da compiere, il numero dei caratteri da trasferire e l’indirizzo della locazione di memoria interessata al trasferimento.
• Tutte le informazioni precedenti automaticamente sono memorizzate in registri dedicati all’interfaccia.
• Appena la periferica diventa disponibile l’interfaccia inizia il trasferimento (un carattere per volta).
• Automaticamente nei registri dell’interfaccia è aggiornato il numero dei caratteri che restano ancora da trasferire e il nuovo indirizzo.
• Se il trasferimento non è ancora completato, si ritorna a riprendere le operazioni dal terzo punto.
• Se invece tutti i caratteri sono stati trasferiti, l’interfaccia spedisce un segnale d’interruzione alla CPU per avvisarla del completamento.

Classificazione degli elaboratori

Fino ad ora e stato utilizzato il termine generico di elaboratore, ma esistono macchine molto diverse tra loro per le prestazioni che offrono. Le caratteristiche principali in base alle quali si differenziano le macchine sono:
• Velocità.
• Quantità di dati che possono essere memorizzate.
• Numero di utenti che possono essere serviti contemporaneamente.
In conformità a queste caratteristiche è possibile suddividere i calcolatori in tre categorie principali, sebbene la suddivisione non sia netta giacché esiste una sovrapposizione tra tali categorie. La classificazione degli elaboratori comunemente adottata è la seguente: main frame, mini computer, personal computer, notebook e handheld PC.

Mainframe



Il main frame è un calcolatore di grandi dimensioni, dotalo di una notevole capacità dl memoria, di una elevata velocità di elaborazione ed ha un costo molto elevato.
Questo tipo di elaboratore è in grado di servire un’utenza numerosa e collocata geograficamente in un’area molto estesa, di archiviare un’enorme quantità di dati e di risolvere problematiche che richiedono l’esecuzione di notevoli quantità di calcoli.
Queste macchine sono impiegate principalmente nella gestione di grandi enti e industrie e nella Pubblica amministrazione, oppure per le soluzioni di problemi scientifici complessi tipici delle università o di grandi centri di ricerca. Ad esempio sono utilizzate dai tribunali per l’archiviazione delle sentenze emesse, dalle anagrafi civili e tributarie, delle industrie per la gestione d’interi cicli di produzione, dal ministero della Pubblica istruzione per la gestione contabile, giuridica e amministrativa.
Il main frame che serve il ministero della Pubblica istruzione si trova a Monteporzio Catone.



Figure 3 - MINISTERO

Mini computer

I mini computer sono macchine di costo inferiore rispetto ai main frame, in grado di servire contemporaneamente alcuni utenti. La loro caratteristica è di essere strutture “espandibili”, dove per “espandibilità” s’intende la possibilità di inserire unità aggiuntive per potenziarne le capacità. Di conseguenza il costo e le prestazioni dipendono essenzialmente dalla sua configurazione, cioè dalle risorse di cui è dotato il mini computer.
Anche il campo d’impiego è molto vario: è utilizzato in questi settori di cui necessita, non solo tali da richiedere l’utilizzo di un main frame ma allo stesso tempo non possono essere soddisfatte da personal computer.
I mini computer nella nostra realtà sono dislocati presso alcuni Provveditorati definiti come poli dipartimentali.



Figura 4 – Provveditorato

Personal computer

Le prestazioni dei personal computer, che sono macchine normalmente dedicate a un solo utente, sono inferiori a quelle dei main frame e dei mini per la minor velocità e la quantità relativamente limitata di dati che possono essere memorizzati ed elaborati.
II personal computer è utilizzato sia come strumento di supporto e d’integrazione delle attività lavorative di organizzazioni dotate di grandi sistemi come il main frame (preparazione di testi, elaborazione finale di dati manipolati dai grandi sistemi, ecc...), sia in tutte le utenze minori.
Le reti di calcolatori consentono vantaggi quali lo scambio di dati e la possibilità di condividere risorse hardware particolarmente complicate e costose.



Figura 5 - Personal Computer In seguito dedicheremo particolare attenzione ai personal computer.

Notebook



I Notebook sono unità molto compatte dal peso compreso tra i 2 e i 3 Kg. e quindi offre la possibilità di essere facilmente trasportato. In genere hanno tutto ciò che ha un normale personal Computer, ma con prestazioni leggermente inferiori.

Handled pc



Computer dell’ultima generazione che sono di dimensioni minime (possono essere tenuti in una mano e per questo sono detti PALMARI) e possono svolgere operazioni molto semplici quali gestire posta elettronica, navigare su internet e fare delle modifiche con programmi di elaborazione testo.
Il sistema operativo e i programmi applicativi per queste macchine sono una derivazione dei S.O. utilizzati per i Personal Computer.