Un sistema di elaborazione è un sistema integrato di hardware e software che viene progettato per processare le informazioni e i dati e per produrre alla fine delle elaborazioni un risultato utile.
Un sistema di elaborazione (in seguito anche detto Computer) effettua sempre le funzionalità di
- input
- elaborazione
- output
- memorizzazione
- trasmissione
dei dati.
Ma cosa sono i dati?
Sono la rappresentazione in forma digitale e binaria delle informazioni e delle istruzioni.
Le istruzioni che il sistema di elaborazione riceve sono i programmi (software).
L'hardware è invece la parte fisica, tangibile, costituita dall'unità centrale (microprocessore o CPU, memorie, scheda madre e dischi), tastiera, mouse, stampanti, scanner, router/modem ecc.
Tradizionalmente esistono diversi tipi di computer, diversificati in base alla loro grandezza fisica size, in inglese, e alla loro potenza di calcolo power, in inglese.
La potenza di calcolo si riferisce alla velocità del computer (spesso espressa in velocità del microprocessore o frequenza di clock in GHz (Giga Hertz, miliardi di cicli al secondo) e complessità dei calcoli che puo' essere eseguita in un secondo.
Esistono i
- Supercomputer -> viene tradizionalmente chiamato Supercomputer il computer o la categoria di computer più potente, più avanzato e costoso esistente al momento. Oggigiorno essi sono in grado di processare migliaia di miliardi di istruzioni per secondo
- Mainframe -> sono i computer comunemente usati per le banche dati, per le transazione finanziarie ed altre grandi organizzazioni. Non richiedono la stessa potenza di calcolo dei supercomputer ma sono comunque più potenti dei personal computer. Gestiscono centinaia di utenti contemporaneamente, ed hanno una memoria di massa secondaria di centinaia o migliaia di Terabytes (ricordo che un Terabyte sono 1024 Gigabyte).
- Microcomputer o Personal Computer -> sono i computer comunemente usati dalle persone "comuni", il primo è stato sviluppato nel 1975 (Altair). Solitamente hanno da uno a quattro microprocessori
I computer si suddividono anche in base alla piattaforma, che principalmente può essere Microsoft Windows, oppure Apple Macintosh, oppure una delle tante distribuzioni di Linux. Lo stesso hardware può funzionare con piattaforme diverse, solitamente non contemporaneamente.
Quando si sviluppano prodotti multimediali, come ad esempio siti web, presentazioni, CD-ROM, è importante conoscere e provare l'applicazione multimediale in tutte le principali piattaforme, in modo da renderla compatibile per ciascuna di esse.
Concetti di Base
L'hardware di un computer è composto di elementi appartenenti a due categorie: l'unità centrale o di sistema e le periferiche.
L'unità centrale è composta da componenti elettronici utili per processare ed elaborare i dati, e per memorizzare i risultati quali: il microprocessore, la memoria principale o primaria e la scheda madre (system board). Le periferiche servono per l'ingresso dei dati (input), la memoria ausiliaria, per la visualizzazione delle informazioni e per le comunicazioni di rete. Le periferiche comunicano con l'unità centrale attraverso appropriate interfacce.
Vediamo in dettaglio le due categorie.
Unità centrale
Senza dubbio il componente più importante per ogni computer è il microprocessore o CPU (central processing unit, unità centrale di processo). La CPU è un circuito integrato composto oggi da milioni di componenti e che viene utilizzato per eseguire le istruzioni e per manipolare i dati.
Per fare un esempio il microprocessore della Intel Pentium IV era costituito da 55 milioni di transistor e le dimensioni fisiche dell'involucro erano molto sottili e di larghezza due pollici (circa 5cm.)
Le moderne CPU sono una evoluzione del modello dell'architettura di Von Neumann.
In questa figura si illustra tale architettura:
Fonte: http://upload.wikimedia.org/wikipedia/commons/8/84/Von_Neumann_architecture.svg
E' possibile dividere logicamente il funzionamento del microprocessore in una Unità di Controllo (CU: Control Unit) e una Unità Aritmetico-Logica (ALU: Arithmetic Logic Unit).
La CU si occupa di dirigere il flusso dei dati e di mandare dei comandi alla ALU; la ALU si occupa di svolgere i calcoli aritmetici e quelli logici. Solitamente all'interno del microprocessore ci sono appositi registri che servono per depositi temporanei dei risultati delle istruzioni, per i valori degli operandi. In tutti i microprocessori moderni c'è una memoria interna molto veloce chiamata cache.
Inoltre i microprocessori sono sincronizzati da un segnale di clock prodotto da un oscillatore al quarzo e l'elaborazione dei dati e delle istruzioni avvengono in uno o più cicli macchina.
Per ciscuna istruzione avvengono quattro (o cinque - vedi dopo) fasi:
- fetch: la CU preleva i dati e le istruzione dalla memoria RAM
- decode: le istruzioni memorizzate nei registri interni vengono decodificate e inviati i comandi alla ALU
- execute: la ALU esegue i calcoli e il risultato viene memorizzato nei registi interni (come l'accumulatore)
- store: il risultato dei calcoli viene inviato nella RAM.
Le prestazioni della CPU sono influenzate dalla velocità del clock, dalla grandezza della parola (word size), dalla grandezza del bus (bus size), e da speciali tecniche quali il pipelining, la tecnica RISC, il multi-processing, e la multi-core technology.
In particolare con la pipelining si indica una tecnica per incrementare il throughput, ovvero la quantità di istruzioni eseguite in una data quantità di tempo, parallelizzando i flussi di elaborazione di più istruzioni, come in figura:
Fonte: http://upload.wikimedia.org/wikipedia/commons/2/21/Fivestagespipeline.png
essendo indicato in figura che un'istruzione da parte di un processore si compone di cinque passaggi fondamentali:
- IF (Instruction Fetch): Lettura dell'istruzione da memoria
- ID (Instruction Decode): Decodifica istruzione e lettura operandi da registri
- EX (Execution): Esecuzione dell'istruzione
- MEM (Memory): Attivazione della memoria (solo per certe istruzioni)
- WB (Write Back): Scrittura del risultato nel registro opportuno
Il termine RISC è acronimo dell'inglese Reduced Instruction Set Computer, indica una filosofia di progettazione di architetture per microprocessori formate da un set di istruzioni contenente istruzioni in grado di eseguire operazioni semplici che possono essere eseguite in tempi simili e rapidi.
Questa filosofia di progettazione è opposta a quella alla base delle architetture CISC (complex instruction set computer) che invece prediligono processori dotati di istruzioni anche molto complesse con tempi di esecuzione molto diversi a seconda delle istruzioni.
Per multiprocessore si intende un sistema di elaborazione (computer, workstation, server) equipaggiato con 2 o più processori operanti in parallelo in cui le elaborazioni di un processore vengono replicate e controllate da un processore gemello, per garantire l'integrità e l'esattezza dei dati.
Per multi core si usa per descrivere una CPU composta da tre o più core, ovvero da più nuclei di processori fisici montati sullo stesso package, è una evoluzione della tecnica dual core. La soluzione che è sembrata più ovvia ai progettisti di microprocessori è stata quella di puntare tutto sul parallelismo in modo da poter aumentare il numero di operazioni eseguibili in un unico ciclo di clock. Questo approccio comporta anche alcuni svantaggi, in quanto i programmi devono essere ottimizzati per un utilizzo multi-thread ovvero parallelizzati anch'essi (ciascun programma eseguito in più parti) per poter sfruttare appieno le caratteristiche di questi processori, in caso contrario essi impegneranno solo uno dei due core, lasciando l'altro pressoché inutilizzato.
All'interno dell'unità centrale si trova la memoria principale divisa in due gruppi:
- quella volatile, chiamata RAM (Random access memory) il cui contenuto si perde quando si toglie l'elettricità
- quella non volatile, chiamata ROM (Read only memory) il cui contenuto è permanente e non si perde quando si toglie l'elettricità
- In quasi i tutti i computer si trova anche la cache di secondo livello (mentre la cache di primo livello è integrata all'interno del microprocessore). Si tratta di una memoria molto veloce che contiene le istruzioni e i dati usati di frequente e che serve per migliorare le prestazioni. Ha una capienza inferiore a quella della RAM, ma è più veloce.
All'interno dell'unità centrale si trovano infine la scheda madre (motherboard) e le interfacce.
La scheda madre raccoglie in sé tutta la circuiteria elettronica di interfaccia fra i vari componenti principali e fra questi i bus di espansione e le interfacce verso l'esterno. In particolare ci sono i circuiti di conversione da analogico a digitale, gli slot di espansione della memoria, le schede video, l'alimentatore e le porte di Inpunt/Output (I/O).
Le interfacce sono dei sistemi hardware che permettono alle periferiche di funzionare e di comunicare con l'unità centrale. Normalmente le periferiche possono comunicare in modo seriale (con un flusso singolo di bit), o in parallelo (con il trasferimento in simultanea di più bit). Le interfacce standard che oggi sono più usate sono la USB (Universal Serial Bus), la FireWire, la Ethernet.
La USB è uno dei principali standard di comunicazione seriale che consente di collegare diverse periferiche ad un computer. È stato progettato per consentire a più periferiche di essere connesse usando una sola interfaccia standardizzata ed un solo tipo di connettore, e per migliorare la funzionalità plug-and-play consentendo di collegare o scollegare i dispositivi senza dover riavviare il computer.
Tipo ATipo B Maschio
Fonte: http://upload.wikimedia.org/wikipedia/commons/e/e6/USB_TypeA_Plug.JPG
e
http://upload.wikimedia.org/wikipedia/commons/0/0e/USB_Male_Plug_Type_B.jpg
Invece lo FireWire (nome con il quale è noto lo standard IEEE 1394), di proprietà della Apple Computer, ma conosciuto anche con il nome commerciale i.Link datogli dalla Sony, è un'interfaccia standard per un bus seriale. L'interfaccia FireWire è tecnicamente superiore all'interfaccia USB, ma questa è molto più diffusa per via dei brevetti. L'Apple e altre ditte richiedono il pagamento di brevetti per ogni implementazione della FireWire (normalmente 0,25 dollari per l'utente finale).
Fonte: http://upload.wikimedia.org/wikipedia/commons/a/a6/Firewire6-pin.jpg
Infine l'Ethernet (RJ45) è una suite di protocolli di rete, molto diffusi, a partire dalle prime implementazioni del 1973 alla Xerox per permettere la comunicazione tra reti locali.
Poi nel 1976 Metcalfe e Boggs pubblicarono un articolo intitolato Ethernet: Distributed Packet-Switching For Local Computer Networks.
Fonte: http://upload.wikimedia.org/wikipedia/commons/d/d5/Pkuczynski_RJ-45_patchcord.jpg
Periferiche
Si indicano con il termine "Periferiche" i componenti elettronici hardware che permettono l'ingresso (input), l'uscita (output) e la memorizzazione (storage) dei dati e delle applicazioni software nell'unità centrale per la loro elaborazione. Si chiamano "periferiche" perché si trovano vicine ma al di fuori dell'unità centrale.
Dispositivi di memorizzazione secondaria
La memoria secondaria è il luogo dove le informazioni e i dati che le rappresentano, nonché i programmi vengono mantenuti anche quando il computer è spento. La loro caratteristica è di essere non volatile, al contrario di quello che accade per la RAM. Una volta si usavano i nastri magnetici e le schede perforate. Oggigiorno si usano gli hard disk di centinaia di Gigabyte di capacità, oppure i dischi ottici e soprattutto le memorie flash. Un'altra caratteristica è la loro espandibilità: aggiungendo altri dischi, oppure sostituendoli è possibile incrementarne la loro "capacità". Vengono utilizzati per attività di salvataggio dei dati, backup di sicurezza (quando si considera la copia di un intero disco o di una partizione effettuata con regolarità oppure incrementale), distribuzione dei dati (quando i dati devono essere conservati e leggibili in piattaforme differenti), trasporto (se i dati devono essere portati tra sistemi anche molto lontani attraverso supporti removibili o via rete) ed archiviazione in banche dati (le cui caratteristiche devono assicurare fra l'altro la conservazione e la leggibilità degli stessi anche dopo molti anni, si pensi ad una anagrafe!).
Si devono scegliere considerando alcuni criteri come la capacità di memorizzazione (ossia la quantità di byte che può contenere), la velocità di accesso (ossia il tempo per arrivare al luogo dove i dati sono localizzati) e la velocità di trasferimento (che esprime quanti byte al secondo possono essere trasferiti consecutivamente dalla memoria secondaria alla RAM).
Per fare un esempio in un tipico hard-disk il tempo di accesso è inferiore agli 8ms, la velocità di trasferimento è superiore alle centinaia di MB/s e la capacità è dell'ordine delle centinaia di GB oppure qualche TB (TeraBytes).
I dispositivi di memorizzazione secondaria si dividono oggi in tre categorie:
- magnetici
- ottici
- a stato solido.
Quelli magnetici si basano su letture/scritture che vengono effettuate sfruttando le leggi fisiche dell'elettromagnetismo. Si parla di "Drive", ossia di testine che scrivono/leggono i bit che vengono memorizzate su dischi magnetici. Il disco rigido (hard-disk) è costituito fondamentalmente da uno o più piatti in rapida rotazione, realizzati in alluminio o vetro, rivestiti di materiale ferromagnetico e da due testine per ogni disco (una per lato), le quali, durante il funzionamento "volano" alla distanza di poche decine di nanometri dalla superficie del disco leggendo e scrivendo i dati. Il primo fu inventato dalla IBM nel 1956. E' compito del sistema operativo stabilire come il disco deve essere utilizzato. In genere vengono stabilite delle tracce circolari dove i dati consecuitivi vengono scritti e dei settori (come delle fette di torta). Solitamente il numero di giri è di 5400 o di 7200 giri per minuto (rpm-revolution per minute). Gli hard-disk sono economici ma la durata dell'informazione memorizzata è limitata e non molto affidabile.
Quelli ottici utilizzano la tecnologia dei raggi laser per leggere e scrivere dati su un substrato sottile e riflettente a forma di disco.
Il primo impiego è del 1982 con i primi CD fatti da Philips e Sony. Poi dai CD musicali si passò ai CD-ROM ed infine negli anni novanta ai DVD.
Un laser è un fascio di luce coerente, monocromatica e concentrata. Il principio di funzionamento si basa sulla lettura attraverso un fotorivelatore della quantità di luce che viene riflessa o deviata. Ci sono i land che riflettono la luce, e i pit che la deviano. La codifica dei dati binari puo' essere fatta sfruttando questa variazione della luce riflessa.
Un vantaggio della memorizzazione ottica è l'alta capacità. Un pit (indentazione bruciata della superficie del disco) è 30 volte più stretto del capello umano. I dati vengono scritti a spirale, partendo dal centro del disco. La memorizzazione ottica è più stabile di quella magnetica ed incorpora un metodo automatico di correzione degli errori.
La codifica dei dati nei sistemi di memorizzazione ottici è organizzata in tracce (le spirali di cui sopra), in frame (sono il formato fisico dei dati, che include i dati e i sistemi si controllo e correzione degli errori, nonché quelli di sincronizzazione ed infine le sessioni (un segmento di dati dovuto alla singola registrazione). Un CD puo' essere impostato come multisessione.
Esistono vari formati:
- CD-DA: sono i CD audio, sconsigliati per dati e programmi.
- CD-ROM: utili per dati e programmi.
- CD-R: possono essere registrati dall'utente e sono rivestiti di una tintura fotosensibile e scrivibile una sola volta
- CD-RW: usano speciali materiali organici in modo da poter essere scritti più volte (contiene uno strato registrabile formato da una lega di argento, indio, antimonio e tellurio. Un laser infrarosso viene usato per scaldare selettivamente delle aree del substrato cristallino portandolo in uno stato amorfo, oppure per riportarlo al suo stato cristallino originario, a temperatura più bassa.)
I DVD (Digital Versatile Disk) sono apparti per la prima volta nel 1997. Il maggior vantaggio rispetto ai CD è la loro maggiore capacità. Un DVD puo' contenere fino a 17GB contro i 650MB di un CD. In un DVD viene usato una luce laser più precisa, una memorizzazione multi-strato, nuovi algoritmi di compressione (mpeg2) e dei codici di correzione degli errori migliorati. I pit hanno una lunghezza dimezzata di 0,4micrometri confrontata ai 0,83micrometri dei CD.
Con la televisione ad alta definizione i DVD non sono più sufficienti e lo standard più importante sembra essere il Blue-ray Disc.
La memorizzazione con la tecnologia a stato solido è vantaggiosa perché non contiene parti in movimento. Si tratta di memorie non volatili che possono essere sia lette che scritte. Il loro uso sta crescendo perché il loro prezzo è diminuito e la loro capacità è aumentata. Esempi sono le memory card, le pendrive USB e i drive a stato solido. E' una tipologia di dispositivo di memoria di massa che utilizza memoria a stato solido (in particolare memoria flash) per l'archiviazione dei dati.
In sintesi le memorie flash sono costituite da una griglia di celle, ciascuna delle quali è costituita da due transistor: uno è di controllo, l'altro è http://it.wikipedia.org/wiki/Floating_Gate_MOSFET floating gate, ossia la sua struttura è come un condensatore, ed è capace di contenere carica elettrica per periodi molto lunghi, il che ne ha permesso l'utilizzo come cella memoria in numerose applicazioni elettroniche.
Teoricamente, non essendoci parti in movimento, le memorie a stato solido dovrebbero essere più durature.