Calcolatore

Calcolatore  Che fa i calcoli, che sa fare bene i calcoli

- Ciber. Macchina che esegue, per azione di componenti meccanici, elettromeccanici, elettromagnetici o elettronici, calcoli matematici e, nei prototipi più complessi, risolve problemi scientifici o tecnici. (Sotto la denominazione di calcolatori, calcolatrici, strumenti calcolatori, macchine calcolatrici si raggruppano: 1. gli strumenti per il calcolo digitale; 2. le macchine calcolatrici; 3. i calcolatori elettromeccanici o elettronici; 4. gli elaboratori elettronici. Le quattro categorie non sono sempre ben separabili, tuttavia questa classificazione è sufficientemente valida. La differenza fra calcolatrice e calcolatore, consistente in passato nell'assenza, nella prima, di componenti elettronici nell'organo di calcolo, va oggi limitata al fatto che la calcolatrice è una macchina atta a eseguire i calcoli in base a un programma esterno, impostato dall'operatore, mentre il calcolatore è atto a imparare un programma ed eseguirlo, con possibilità di decisioni logiche.) Ź Calcolatore analogico, macchina atta a trovare le funzioni che risolvano determinati problemi matematici mediante un modello particolare.  Ź Calcolatore digitale o numerico, calcolatore atto a eseguire calcoli numerici, basati sulle quattro operazioni dell'aritmetica.  Ź Calcolatore ibrido, calcolatore costituito dalla connessione di un calcolatore analogico e di un calcolatore numerico. Ź Calcolatore per scopi generali, calcolatore numerico atto a un numero piuttosto esteso di programmi, utilizzabile sia per scopi amministrativi sia per scopi scientifici. Ź Calcolatore per scopi specifici, calcolatore numerico adatto a programmi di carattere particolare i quali, in taluni casi, possono essere rigidamente incorporati nel calcolatore stesso. (Appartengono a tale categoria i calcolatori per il comando della rotta dei missili, per la regolazione del traffico stradale, ecc.) Ź Calcolatrice convenzionale, calcolatrice priva di componenti elettronici. Ź Regolo calcolatore

- Econ. az. Impiegato in grado di eseguire determinati calcoli a scopi commerciali, industriali, ecc. Ź Disegnatore industriale capace di calcolare e progettare semplici pezzi meccanici. Ź Ingegnere o tecnico capace di progettare e calcolare strutture in acciaio o cemento armato. Ź Tecnico specializzato nell'uso dei calcolatori elettronici.

 

u Cibernetica

§1 Macchina aritmetica di Blaise Pascal

§2 Macchina analitica

Sin dalla più lontana antichità gli uomini hanno cercato di ridurre la laboriosità dell'esecuzione dei calcoli. I pallottolieri erano noti in Cina nell' VIII sec. a.C.; alla scuola pitagorica si deve la tavola di moltiplicazione detta pitagorica; l'uso degli abachi era diffuso nella Roma precristiana e strumenti analoghi erano usati dai Cinesi; tabelle di calcolo erano d'uso comune nel medioevo. La prima macchina degna di questo nome, ossia capace di eseguire addizioni e sottrazioni con ripresa automatica dei totali, non è la “macchina aritmetica” di Pascal (1642) bensì quella di Wilhelm Schickard. Costruita nel 1624 (quattro anni dopo l'invenzione del regolo calcolatore da parte dell'inglese E. Gunter), essa si componeva di undici ruote dentate complete, e sei ruote munite di un solo dente: queste ultime servivano al trasferimento dei riporti; il suo meccanismo era reversibile. E' poco probabile che Pascal abbia conosciuto questa macchina (la sua era più complicata, e meno razionale, tanto che non poteva funzionare che in posizione orizzontale). Il principio seguito da Pascal e utilizzato ancor oggi consiste nel rappresentare ogni cifra decimale con una ruota dentata munita di dieci denti, rappresentanti a esempio le unità da 0 a 9, solidale con un tamburo munito di un dispositivo di riporto sulla ruota e il tamburo successivi, che rappresenta le decine, quando viene superata la posizione 9. La registrazione dei numeri si realizza mediante il movimento di una leva; la lettura del risultato avviene attraverso una finestra che permette di vedere i numeri direttamente sul tamburo.

Trent'anni dopo Pascal, Leibniz realizzò la prima macchina moltiplicatrice, fondata sul principio di addizionare successivamente il moltiplicando tante volte quante sono le cifre del moltiplicatore, con avanzamento del primo verso la sinistra, nella successione delle ruote dentate, a ogni cambiamento di cifra del secondo. Per quanto geniali fossero queste prime macchine (fra le quali è da citare quella del veneziano G. Poleni, del 1709), esse ebbero nella loro epoca successo solo come curiosità. Occorre giungere alla seconda metà del XIX sec. e l'inizio del XX per trovare un perfezionamento e un'utilizzazione industriale delle macchine calcolatrici. La macchina di Roth (1841), l'aritmometro di Thomas (1849), le macchine di Dactyle, Monroe, Burroughs apportarono miglioramenti al funzionamento dell'organo di impostazione e al totalizzatore. Il sistema a leve dell'organo di impostazione risale al 1885 (comptometer di Felt). I dispositivi di moltiplicazione furono perfezionati da Thomas nel 1820, Ordhner nel 1875 e Monroe nel 1911. Un sistema per la divisione venne messo a punto da Bollée nel 1889; la sua macchina, particolarmente ingegnosa, utilizzava una tavola pitagorica realizzata in modo che la macchina potesse leggere il dividendo e il divisore come un cieco che consulti una tabella scritta in caratteri Braille. Il principio di questa macchina non ebbe però sfruttamento pratico.

Addizionatrici e moltiplicatrici beneficiarono ben presto del comando elettrico dei loro organi, il che produsse una riduzione dei tempi di calcolo; ma, essendo sempre limitate all'esecuzione di una sola operazione per volta, risultarono di difficile impiego per il calcolo scientifico.

Per la realizzazione di più operazioni contemporanee erano già stati fatti alcuni tentativi; la macchina concepita dall'inglese Babbage, realizzata tra il 1842 e il 1867, doveva consentire di effettuare le quattro operazioni fondamentali su mille numeri di cinquanta cifre, contenuti in una memoria, in base alle indicazioni di un programma di calcolo registrato su un nastro di carta perforata, analogo al cartone per telai jacquard. Con l'apparizione della prima macchina a schede perforate, la registrazione manuale dei numeri fu sostituita dalla lettura automatica di elementi perforati; il pannello di connessioni, d'altra parte, conferiva una certa flessibilità alla programmazione dei calcoli. Modificazioni apportate a questa macchina di calcolo commerciale, e l'aggiunta di un dispositivo di stampa, permisero la creazione, nel 1929, di un laboratorio specializzato di calcolo scientifico presso l'università Columbia, USA. I perfezionamenti successivi apportati a questa famiglia di macchine sfociarono nella costruzione, tra il 1936 e il 1942, da parte del professore H. H. Aiken dell'università Harvard dell'Automatic Sequence Controlled Calculator, o Mark I. Questa gigantesca macchina (18 m di lunghezza e 2,50 di altezza) conteneva solo settantadue numeri di ventitrè cifre ed eseguiva solo dieci operazioni al secondo. Le possibilità pratiche dei dispositivi elettromagnetici si fermavano qui; l'elettronica portò un radicale progresso nella relativa lentezza della macchina. Già esistevano il diodo (1905), il triodo (1906), e il multivibratore bistabile di E. Jordan (1919), tutti di estrema importanza a condizione di sostituire l'aritmetica binaria a quella decimale. Nel 1946 uno studio teorico degli americani A. W. Burks, H. H. Golstine e J. von Neumann precisò il nuovo concetto di programma interno. Il calcolatore IBM 603”, nel 1946, il calcolatore “604” nel 1948, che utilizzavano ancora i tubi elettronici come organi di calcolo e di memoria, e il calcolatore Bull Gamma” nel 1952, che utilizzava linee di ritardo come organi di memoria, diodi a cristallo e resistori come organi di calcolo, costituiscono le prime applicazioni pratiche dell'elettronica e dei nuovi concetti al calcolo commerciale. Nel 1955 apparvero i calcolatori che utilizzano i transistor come organi di calcolo, e tamburi magnetici come memorie. Successivamente la fabbricazione dei calcolatori ed elaboratori si orientò verso l'utilizzazione generalizzata dei transistor e quindi verso i circuiti integrati (ICI) che raggruppano in spazi estremamente ridotti un numero considerevole di circuiti a transistor. Nel campo delle macchine a calcolo scientifico, la prima realizzazione fu quella dell'ENIAC (Electronic Numerical Integrator and Computer) costruito con 18.000 tubi elettronici, dalla Moore School of Engineering, dal 1943 al 1947. Alla costruzione dell'ENIAC seguirono quelle del Selective Sequence Electronic Calculator, costruito dall'IBM nel 1948; dell'EDSAC costruito dall'universitŕ di Cambridge nel 1949; del Manchester Electronic Computer (con memorie a tamburo magnetico), costruito da Ferranti nel 1949; dell'UNIVAC, costruito dalla Remington Rand (memorie a mercurio) nel 1951; degli elaboratori “701” (con memorie a tubi catodici) e “704” (con memorie a tamburi magnetici), costruiti nel 1953 e 1955 dall'IBM; delle macchine matematiche “402” e “405”, costruite da Elliot nel 1953 e 1954; dell'Elea costruita nel 1955-1957 dall'Olivetti in collaborazione con l'università di Pisa, ecc. e quindi l'IBM System/360 con una memoria da 8.192 a 2.097.152 byte (in questa macchina 1 byte = 8 bit, oltre a 1 bit di controllo). Gli anni Settanta videro l’espansione dei grandi centri di calcolo costituiti principalmente da mainframe quali l'IBM System/370 ed i calcolatori VAX della Digital. Le altre case costruttrici di grandi elaboratori praticamente scomparvero, mentre sorse la CRAY, che costruì i supercalcolatori degli anni Ottanta e dei primi anni Novanta. A metà degli anni Settanta apparvero sul mercato dei piccoli calcolatori della Apple e di altre marche che divennero noti come home computer, seguiti da veri e propri calcolatori, se pure di limitate capacità elaborative e di memoria, conosciuti con la denominazione di personal computer o meglio PC. La crescita delle capacità dei PC ha seguito una legge esponenziale per cui oggi sono disponibili, a costi molto ridotti, PC con memorie ad accesso diretto (RAM) di qualche centinaio di Megabyte, dischi per la memorizzazione permanente di massa (hard disk) di decine di Gigabyte, e unitŕ di elaborazione (CPU) operanti a centinaia di MHz.

Tutte queste macchine seguono lo stesso principio della macchina di Babbage, secondo uno schema funzionale che fu proposto da John von Neumann.

v Calcolatrice convenzionale

Le  calcolatrici convenzionali sono in via di estinzione ormai soppiantate da calcolatrici elettroniche, tuttavia vale la pena ricordarne il funzionamento dato l’importante ruolo svolto negli uffici per oltre un secolo. Operano su numeri sui quali sono generalmente in grado di eseguire le quattro operazioni aritmetiche (somma, sottrazione, moltiplicazione, divisione); il loro organo di calcolo non contiene componenti elettronici con funzione di calcolo. Le calcolatrici più comuni (addizionatrici) sono in sostanza macchine atte a eseguire somme, nelle quali le altre tre operazioni sono derivate da questa. Gli elementi caratteristici sono un meccanismo di impostazione, un meccanismo d'attuazione, un totalizzatore, un contagiri e un apparato stampante, non sempre presente. Il meccanismo di impostazione comprende generalmente una tastiera a dieci tasti numerati dallo 0 al 9 su cui agisce l'operatore; il meccanismo di attuazione è un sistema di organi cinematici, il quale collega le leve o i denti, solidali con i tasti, con il totalizzatore, che è un sistema di ruote dentate parallele e indipendenti, ciascuna fornita di dieci denti e di un dente laterale atto al riporto della decina. Le varie ruote del totalizzatore rappresentano infatti rispettivamente le unità, decine, centinaia, ecc., sicchè una macchina avente un totalizzatore a nove ruote potrà eseguire operazioni con nove cifre significative. Il dente di riporto determina, al passaggio dalla nona alla decima cifra, lo scatto di una cifra nella ruota successiva. Il contagiri infine è un insieme di ruote a dieci denti, ciascuna atta a “registrare” il numero di giri effettuati dalla corrispondente ruota del totalizzatore, oppure a sommare i valori corrispondenti a vari totalizzatori; ciascuna ruota è provvista di disco numerato.

Le sottrazioni sono eseguite in base al fatto che A B è uguale ad A + (10n B) 10n, dove 10n è la potenza di 10 immediatamente superiore a B; occorre quindi sommare ad A il complemento del sottraendo a 10n, indi sottrarre 10n. In queste macchine addizionatrici le moltiplicazioni sono effettuate come somme ripetute e le divisioni come sottrazioni ripetute.

v Calcolatori analogici

Sono  ormai sostituiti completamente dai calcolatori digitali. Tuttavia hanno svolto in passato un ruolo importante nell’automazione del calcolo. I calcolatori analogici sono strumenti per il calcolo aventi componenti meccanici, elettromeccanici ed elettronici, che sfruttano analogie tra fenomeni di natura diversa. Essi si basano quindi su modelli, nei quali una data grandezza fisica, variabile con continuità, rappresenta in quella analogia la grandezza incognita, mentre una o più altre grandezze, anch'esse generalmente variabili con continuità, rappresentano i dati noti del problema da risolvere. I calcolatori analogici meccanici sfruttano dispositivi a base di leve, pignoni, ruote dentate. Ad es., per moltiplicare fra di loro due variabili si puň usare un cinematismo basato su triangoli simili. L'organo, a forma di T, è girevole attorno all'asse O, ma il perno P2 deve scorrere nella scanalatura A e l'organo B mantenersi verticale e appoggiato alla guida orizzontale C. Per la similitudine dei triangoli z = xy/K, ossia la distanza z è in una relazione nota con il prodotto xy. Dispositivi di derivazione meccanica sono basati su fenomeni di attrito viscoso, in condizioni nelle quali la resistenza sia proporzionale alla velocità; ad es. il moto rotatorio di un cilindro in un fluido viscoso trascinerebbe in rotazione un cilindro esterno, se tale coppia non fosse controbilanciata da una coppia dovuta a due molle, di momento proporzionale alla velocità istantanea. Il valore di detto momento è quindi in ogni istante, considerando trascurabili le forze di inerzia, proporzionale alla derivata dell'angolo di rotazione rispetto al tempo.

I calcolatori elettromeccanici sfruttano dispositivi costituiti da motori elettrici, servomeccanismi, potenziometri, generatori collegati da circuiti opportuni. Ad es., fanno parte di questo gruppo i generatori di funzioni trigonometriche, ossia circuiti elettrici, costituiti da potenziometri e resistori fissi, ai morsetti d'uscita dei quali la tensione ha rispetto al tempo l'andamento delle funzioni trigonometriche rispetto all'argomento. I calcolatori analogici elettronici sono in sostanza circuiti elettrici con componenti elettronici (diodi, triodi, transistor, ecc.) variamente collegabili fra loro. Per un dato circuito l'intensità di corrente o la tensione ai morsetti di uscita del circuito è la funzione del tempo che è la soluzione di un corrispondente sistema di equazioni differenziali o integrali che ne rispecchia matematicamente il funzionamento. Tali calcolatori servono a risolvere i problemi inversi: dato un sistema di equazioni differenziali o integrodifferenziali, essi consentono di realizzare quel circuito complesso tale che la tensione o l'intensità di corrente ai morsetti d'uscita sia la funzione, soluzione di tale sistema. Alimentando quindi il circuito e rilevando, mediante strumenti di misura (oscillografi, registratori, ecc.), la tensione o l'intensità di corrente d'uscita, si ottengono le soluzioni sperimentali delle corrispondenti equazioni. La precisione realizzabile è dell'ordine del 90-99% a seconda dei casi: ciò è spesso sufficiente per uno studio quantitativo e quasi sempre lo è per avere un'indicazione qualitativa dell'andamento delle soluzioni. I gruppi più importanti di un calcolatore analogico sono costituiti da unità capaci di realizzare la somma o la differenza di due variabili (tensioni o correnti), il prodotto di una variabile per un numero, l'inversione di segno, la derivata o l'integrale di una funzione, e così via. A tale scopo è di largo impiego l'amplificatore operazionale (in cui il collegamento di retroazione avviene mediante un'opportuna impedenza) atto a realizzare il tipo voluto di tensione d'uscita con sufficiente fedeltà in una più larga gamma di frequenza.

Si costruiscono anche calcolatori analogici aventi carattere meno universale, idonei cioè allo studio di particolari problemi. A questa limitazione d'impiego fa generalmente riscontro una maggiore precisione. Si hanno cos+ strumenti che realizzano un modello elettrico di qualche particolare fenomeno; questi calcolatori sono chiamati propriamente simulatori. Uno degli esempi più interessanti fa parte delle apparecchiature per il comando delle centrali di tiro. Un altro esempio è il modello elettrico della coclea, parte dell'orecchio interno.

v Calcolatori digitali o numerici

Il  termine calcolatore digitale o numerico identifica una macchina realizzata in tecnologia elettronica che opera delle trasformazioni, propriamente dette computazioni, su insiemi finiti di dati normalmente codificati in binario. Lo schema funzionale di un elaboratore fu concepito da Charles Babbage nell’intento di automatizzare il calcolo numerico di integrali mediante una macchina di tipo meccanico, la Analytical Engine. Toccň a John Von Neumann tracciare lo schema che ha caratterizzato tutti i calcolatori digitali fino ai PC. Lo schema di Von Neumann è costituito da tre blocchi distinti e interconnessi: l’unità di elaborazione centrale (Central Processing Unit o CPU), l’unità di memoria, e l’unitŕ di ingresso/uscita (Input/Output)

La CPU è una macchina a stati finiti la cui composizione operativa è alquanto articolata, ma in linea di principio può essere intesa come il meccanismo che esegue le “istruzioni” contenute nella memoria o introdotte dall’unità di input/output, l’insieme delle istruzioni può essere inteso in senso lato come programma. Le operazioni scandite dalle istruzioni normalmente devono trasformare dell’informazione che è rappresentata tramite dati anch’essi contenuti nella memoria e forniti alla CPU quando richiesto.

L’unità di memoria può essere intesa come un contenitore di informazioni, programmi e dati, rappresentati mediante opportune codifiche ed organizzati in modo da accedervi in maniera efficiente, rapida e senza ambiguità. Tipicamente gli identificatori delle informazioni sono di solito detti indirizzi.

L’unità di ingresso/uscita (I/O) ha la funzione di introdurre comandi e informazioni provenienti dall’esterno (ingresso) e rendere disponibili all’esterno i risultati delle computazioni (uscita).

La convergenza dell’informatica e delle telecomunicazioni congiuntamente alla generale rappresentazione di ogni informazione in forma discreta ha reso unico il ruolo dei calcolatori numerici, il cui compito principale è diventato quello di elaborare ogni tipo di informazione. Il compito di effettuare calcoli su dati numerici, ossia elaborare tali dati, viene normalmente demandato a delle unità aritmetiche integrate nella CPU o che si accompagnano e sono a questa elettricamente connesse da sistemi a più linee in parallelo detti bus.

Tutte le componenti che la realizzazione fisica di un elaboratore, tramite la tecnologica elettronica, comporta vanno sotto il nome di hardware, che può quindi essere inteso come l’insieme delle componenti fisiche che costituiscono un elaboratore elettronico. Questa realizzazione ha comportato delle scelte architetturali e topologiche che rendessero veloci ed affidabili i menzionati flussi di dati e, per un altro verso, ha condizionato le scelte riguardanti la rappresentazione interna dell’informazione, dati e comandi, finalizzata a conseguire semplicità di implementazione. Dal punto di vista costruttivo un calcolatore digitale commercialmente disponibile è realizzato su un circuito stampato che contiene tutte le linee dei bus a cui sono collegati i circuiti elettronici integrati che implementano la CPU, la memoria centrale e l’I/O. Tale circuito stampato è detto scheda madre (mother board). Su di essa esistono prese particolari (dette expansion slots) che permettono il collegamento via i bus di device unit aggiuntivi. Questi sono realizzati da circuiti integrati montati su piccoli circuiti stampati detti schede di espansione (expansion board). Un caso tipico è rappresentato dalla scheda di espansione (detta anche scheda video o scheda grafica) che contiene il device unit (detto anche processore grafico) che controlla il monitor nei PC.

Per quanto riguarda la rappresentazione dell’informazione, la semplicità dell’elettronica nel trattare segnali a due livelli ha indotto l’impiego di un alfabeto binario e, nel lessico comune sviluppatosi con gli elaboratori elettronici una singola cifra in notazione binaria è stata riferita come bit (Binary digIT); mentre per facilità di gestione è stato conveniente trattare gruppi di otto bit, chiamati byte. Al riguardo, la rappresentazione dei caratteri alfanumerici conseguita tramite i byte si è realizzata principalmente secondo due codifiche standard, il codice ASCII inizialmente introdotto per le comunicazioni digitali e il codice EBCDIC, evoluto dal codice EBCD delle telescriventi. Per rappresentare i numeri, limitazioni nelle dimensioni della memoria hanno comportato l’adozione di rappresentazioni convenzionali diverse per gli interi ed i numeri reali. La scelta fu di rappresentare gli interi in binario puro con un bit di segno, mentre i numeri reali furono rappresentati con una notazione mantissa ed esponente che ha dato luogo ad aritmetiche approssimate note come floating.

Organo di calcolo. I calcoli sui numeri rappresentati secondo le due modalità sono dunque eseguiti da unità aritmetiche apposite dette anche coprocessori matematici. Limitandoci ai princìpi più generali, è noto che nel sistema decimale un numero intero qualunque, ad es. 123, è il simbolo codificato della somma:

123 = 1 · 10˛ + 2 · 10ą + 3 · 10ş.

Lo stesso numero può essere espresso come somma di potenze di 2:

123=1·26+1·25 +1·24+1·2ł+ 0·2˛+1·2ą+ 1·2ş

con la notazione binaria sarà quindi

     123     =    1111011

(decimale)    (binaria).

Ciascuna cifra del numero binario sarà espressa soltanto o dallo 0 o da 1; perchè un elemento di circuito possa esprimere detta cifra, è sufficiente che abbia due stati distinti, individuati da due tensioni o due correnti differenti. Per sommare due numeri binari, basterà sommare le corrispondenti cifre. Ad es. la somma

47 + 29 = 76

si scrive in binario

101111+11101=1001100.

La somma anche in binario può essere eseguita in colonna; ma poichè

1·2n+1·2n = 0·2n+1·2n+1,

si può anche dire che 1 + 1 = 0 con riporto di una colonna a sinistra. Si immaginino ora tanti circuiti elettrici in parallelo, quante sono le cifre dei numeri da sommare, di caratteristiche tali da poter eseguire le operazioni 1 + 0 = 1; 0 + 0 = 0; 1 + 1 = 0 (con riporto alla successiva potenza di 2). Il circuito, detto sommatore, sarà in grado di eseguire una somma in binario. Allo stesso modo, i dispositivi atti all'esecuzione dei prodotti in binario si basano sui metodi usati nella calcolatrice convenzionale per il prodotto in decimale, tenuto conto delle proprietà della moltiplicazione binaria, riassunte nella seguente tabella:

1×1=1 0×1=0

1×0=0 0×0=0

Si debba ad es. effettuare la moltiplicazione15×13=195

Il risultato è la somma dei prodotti parziali. Il dispositivo moltiplicatore “simultaneo” o in parallelo sarà quindi costituito da un primo insieme di circuiti logici, atti all'esecuzione dei singoli prodotti parziali di numero pari al prodotto delle cifre del moltiplicando per le cifre del moltiplicatore, e di una seconda serie atta alla somma dei prodotti parziali.

Organi di memoria. Si possono distinguere due tipologie di memoria di un calcolatore elettronico che soddisfano esigenze tecniche diverse e spesso contrapposte: memoria centrale e memoria di massa.

La memoria centrale è direttamente asservita alla CPU alla quale è collegata tramite bus. La dimensione del quantum di informazione indirizzato è di 1 byte e ad ogni byte è univocamente associato un solo numero naturale che ne rappresenta l’indirizzo. Questa metodologia di indirizzamento serve ad ottenere accessi rapidi e non legati nei tempi di riposta al valore dell’indirizzo. Quando una memoria è dotata di quest’ultima caratteristica viene anche detta memoria ad accesso casuale (Random Access Memory o RAM). Di solito le tecniche di realizzazione della memoria centrale vanno a scapito delle esigenze di persistenza (cioè di permanenza dei dati/istruzioni nella memoria anche in assenza di alimentazione dei dispositivi elettronici che costituiscono la memoria centrale) e di contenimento del costo per byte.

La memoria di massa costituisce il sistema nel quale risiedono permanentemente i dati sia per un eventuale utilizzo sia prodotti dalle elaborazioni. La dimensione del quantum di informazione indirizzato è di 512 (o 1024) byte e ad ogni oggetto è univocamente associato un solo numero naturale che ne rappresenta l’indirizzo. Tipiche memorie di massa sono i dischi rigidi (hard disk), realizzati con tecnologia magnetica hanno attualmente capacità delle decine di Gigabyte (miliardi di byte), costi contenuti a scapito della rapidità di accesso e della indipendenza del tempo di accesso dall’indirizzo.

Organi di ingresso e di uscita (input/output). Sia l'organo di ingresso dei dati nel calcolatore, sia l'organo d'uscita sono normalmente caratterizzati da una velocità operativa assai più bassa di quella degli altri organi della macchina. Tra i dispositivi di input più diffusi per l’operatore vi sono la tastiera e il mouse. La tastiera assomiglia a quella di una macchina per scrivere e permette di trasformare la pressione di un tasto nel codice corrispondente al relativo carattere alfanumerico.

Il mouse è un piccolo contenitore con pulsanti e si aziona muovendolo; esso è in grado di trasformare i movimenti in spostamenti della posizione di un mirino o cursore (visualizzato sul monitor dall’elaboratore elettronico) grazie ad un sensore di posizione (di solito una coppia di piccoli rulli e una pallina di gomma) ed al device unit interno.

Sono importanti organi di input/output le schede di interconnesione con altri calcolatori attraverso le quali i dati possono fluire ad elevate velocità (Mbit/sec).

Dispositivi di output tipici sono il monitor cioè un dispositivo (in genere esterno) in grado di visualizzare testo e/o immagini su un schermo (tubo catodico, schermi a cristalli liquidi o elettroluminescenti) e le stampanti.

Organi di comando e programma. L'organo di comando ha il compito di coordinare il funzionamento dell'intera macchina, ossia di trasmettere “istruzioni” secondo un determinato programma. Per il suo funzionamento è fondamentale l'organo di memoria nel quale vengono immagazzinati i dati sia prima sia dopo il calcolo; l'organo di comando, collegato a tutti gli altri organi, determina il movimento dei dati secondo lo schema: ingresso-memoria-calcolo-memoria- uscita.

In tutti i calcolatori attuali, il programma, detto di calcolo o interno, consiste nella successione di istruzioni necessarie per l'esecuzione del calcolo ed è contenuto in un certo settore della memoria, dove è registrato in un gruppo di celle. Per l'esecuzione del programma esistono altri due organi: il registro statico, collegabile con le celle che contengono il programma, e il contatore di istruzioni, organo che contiene i successivi indirizzi delle celle interessate dall'esecuzione del programma. L'organo di comando determina lo svolgimento delle seguenti operazioni: a) connessione del contatore di istruzioni con la cella relativa alla prima istruzione; b) connessione di detta cella con il registro statico e trasferimento a questo dell'istruzione contenuta nella cella; c) connessione del registro statico con l'organo di calcolo ed esecuzione della relativa istruzione; d) definizione della successiva istruzione. Nei contatori detti “a programma sequenziale” tale definizione è contenuta nella cella di numero d'ordine immediatamente seguente; nei contatori a programmi non sequenziali, l'indirizzo della cella successiva è contenuto nell'istruzione precedente, la cui esecuzione determina quindi anche il successivo trasferimento dell'istruzione al registro statico, e così via.

Le istruzioni di cui è dotato un calcolatore possono dividersi in quattro tipi: 1. istruzioni aritmetiche, che fanno eseguire le quattro operazioni aritmetiche con relativi riporti, e le altre operazioni matematiche connesse; 2. istruzioni di alterazione del programma, che determinano date “scelte” del calcolatore fra due tipi diversi di prosecuzione del calcolo, come ad es. la scelta della maggiore in valore assoluto delle due soluzioni di un'equazione di secondo grado; 3. istruzioni per organi periferici, come ad es. stampa di risultati, lettura da hard disk; 4. istruzioni ausiliarie, che sono tutte quelle non comprese nelle precedenti categorie, legate a particolari esigenze del calcolatore. Da quanto precede risulta come compito essenziale dell'operatore sia la definizione del programma senza tralasciare alcuna operazione.

D'altra parte è chiaro che, per poco che il calcolo sia complesso, la minuta programmazione di tutte le operazioni, con tutte le trasformazioni di funzioni, ad es., trascendenti o trigonometriche, in somme di prodotti, sarebbe estremamente lunga e faticosa. Si ricorre allora ai “compilatori”, che sono dei programmi che contengono, in forma di “sottoprogrammi”, le operazioni e le funzioni più comuni, già espresse nel linguaggio del calcolatore, sicchè nel programma effettivo ciascuna di queste funzioni corrisponde a un'unica istruzione.

v Calcolatori ibridi

Con questi calcolatori, che comprendono sia unità analogiche sia unità numeriche, si è cercato di ottenere le qualità positive di entrambi. In genere il calcolo vero e proprio rimane affidato all'unità analogica; l'unità numerica esegue il controllo logico delle operazioni, registra in memoria le funzioni e le soluzioni, esegue calcoli aritmetici di alta precisione.

v Applicazioni

Il campo di applicazione dei calcolatori coinvolge ogni aspetto della vita sociale, del mondo scientifico e del mondo industriale. Nella ricerca scientifica vengono utilizzati, ad es., per determinare le soluzioni per diversi valori di uno o più parametri di equazioni relative a fenomeni fisici; si sono così affrontati problemi altrimenti irresolubili (ad es., nel campo delle reazioni nucleari) per il tempo necessario alla loro soluzione con i metodi usuali. Inoltre tutti i progetti di impianti atomico-nucleari sono stati sviluppati con l’ausilio di calcolatori. Nella ricerca tecnologica e negli uffici-studi della grande industria il calcolatore viene utilizzato nel calcolo del profilo di eliche di navi, di profili di aerei, di disegni di turboreattori, di progetti di motori per missili, degli organi e delle connessioni delle centrali telefoniche, ecc. Calcolatori vengono usati nella programmazione automatica della produzione delle grandi industrie, nonché in tutto il campo della contabilità industriale (ad es. uffici manodopera, controllo di magazzino, bilanci), delle banche e delle amministrazioni statali. Di largo uso è inoltre in tutti gli uffici di statistica per qualunque applicazione.

Di estremo interesse sono le applicazioni del calcolatore ai calcoli simultanei, o “in tempo reale”, ossia relativi a un evento in corso, i quali vanno eseguiti a una velocità tale che il risultato possa influenzare l'evento stesso: è il caso della guida dei missili, delle orbite dei satelliti artificiali, della regolazione del traffico cittadino. Quest'ultima applicazione consiste nella propagazione di un'“onda verde” lungo una o alcune vie principali di una città, ossia nella successione dell'emissione della luce verde da parte dei semafori con un ritardo fra ciascun semaforo e il precedente, corrispondente a una velocità di 40-50 km/h, dipendente dal traffico; i tempi di accensione delle luci rosse, per il traffico di direzione trasversale, saranno dipendenti dal numero di autovetture che si presentano ai vari incroci.

Altre applicazioni in tempo reale sono state fatte nel campo dell'automazione dell'industria meccanica, dove il calcolatore, mediante un programma derivato dal disegno del pezzo da eseguire, determina direttamente la successione automatica delle operazioni eseguite dalle varie macchine utensili.

I calcolatori possono essere utilizzati nell'insegnamento scolastico e nei corsi preparatori aziendali, per sostituire gli insegnanti nella correzione di prove scritte; sono inoltre utilizzabili per dare i risultati di test psicologici e psicometrici. Un'altra applicazione interessante è quella relativa ai dispositivi di reperimenti di informazioni, per grandi organizzazioni industriali e scientifiche, che sono in sostanza immensi archivi automatizzati. Tra le applicazioni del calcolatore si ricordano anche la composizione automatica dei caratteri da stampa, dove si sono realizzate velocità elevatissime e l'emissione di informazioni complete su itinerari ferroviari, con fermate, coincidenze, ecc.

v Applicazioni sperimentali e avvenire del calcolatore

Il  calcolatore è quindi un mezzo tecnico atto ad accelerare e in taluni casi rendere possibile determinati calcoli quali l'esecuzione di operazioni aritmetiche o algebriche, stabilire se un dato numerico appartiene o meno a una data classe, ecc. Nelle applicazioni chiamate sperimentali il calcolatore si spinge più avanti in questa direzione, in parte ricollegandosi agli studi paralleli sul sistema nervoso umano, in parte collaborando a questi studi, proponendo soluzioni e modelli di funzionamento di organi cerebrali. All'origine di questi studi stanno alcune conoscenze, come quella che l'elemento dell'organo sensoriale, il neurone, si comporta come un organo binario elementare, avendo due soli possibili stati: di eccitazione o di non eccitazione; mentre il raggruppamento di molti neuroni si comporta come un rivelatore, atto a dare un segnale d'uscita se eccitato da una data configurazione di segnali d'entrata. Altro elemento assai importante in queste ricerche è l'apprendimento, ossia un certo grado di adattabilità dell'organo ricevente alla configurazione dei segnali di entrata, realizzata mediante sistemi a retroazione sicché detto organo “impara” a dare una risposta dipendente dal segnale d'entrata; l'apprendimento è anch'esso derivato da studi sul sistema nervoso umano, che, ad es. nel campo della vista e dell'udito, presenta una fitta rete di elementi nervosi centrifughi, diretti dal centro alla periferia, atti al controllo delle sensazioni e quindi alla modifica di certe configurazioni in vari punti della rete centripeta, che porta le scariche nervose dalla periferia all'organo centrale. Altro elemento di affinità è la codificazione; l'organo sensoriale periferico trasforma lo stimolo esterno in scariche nervose secondo un determinato codice (per cui, ad es., l'intensità dello stimolo diventa la frequenza delle scariche) così come l'organo di entrata del calcolatore trasforma i dati numerici in un dato codice.

Il passo concettualmente più importante nell'impostazione di questi calcolatori sperimentali, nel cercare di riprodurre alcune facoltà del cervello umano, sta probabilmente nel passaggio dalla concezione deterministica alla concezione indeterministica, ossia probabilistica, più conforme alla complessità degli organi sensoriali e al numero di neuroni. Da tali concetti hanno avuto origine, ad es., queste ricerche e realizzazioni: calcolatore deterministico che sostituisce il giocatore di scacchi (esso risulta però generalmente sconfitto dai giocatori migliori); studi sul traduttore automatico, che hanno intanto portato a interessanti analisi linguistiche strutturali; dispositivi atti al riconoscimento di configurazioni quali caratteri di stampa, numeri, ecc.; dispositivi atti al riconoscimento della voce umana, per ora limitati alle vocali e ai numeri.

I dispositivi degli ultimi due tipi sono di notevole interesse concettuale, essendo basati sulla concezione indeterministica e sul principio dell'apprendimento. Il punto d'arrivo di questi dispositivi dovrebbe essere la macchina per scrivere, interamente automatizzata, che traduca in caratteri stampati un brano scritto a mano o letto davanti a un microfono. E' difficile prevedere il tempo necessario per raggiungere questo risultato; ma è significativo il fatto che i progressi di tali macchine siano strettamente connessi ai progressi della neurofisiologia.

Le direttrici lungo le quali si spingono oggi i costruttori di calcolatori sono fondamentalmente l'accelerazione della velocità globale di funzionamento e l'estensione della capacità di memoria “principale” (cioè direttamente collegabile all'organo di calcolo) per poter ospitare un gran numero di programmi da elaborare simultaneamente.

L'accelerazione della velocità di funzionamento, oltre che sulla contrazione del “tempo di ciclo” (cioè dell'intervallo di tempo in cui si esegue una funzione elementare: trasferimento, somma), che è sceso al nanosecondo (un millesimo di microsecondo), viene ottenuta in molti casi sovrapponendo almeno in parte le quattro fasi in cui si articola il funzionamento dell'organo di comando: mentre l'organo di calcolo esegue l'istruzione I il contatore di istruzioni si collega alla cella di memoria I+1, ne trasferisce l'istruzione ivi contenuta nel registro statico, e infine incrementa il suo contenuto di un'unità preparandosi, al ciclo successivo, a reperire l'istruzione I+2. I tempi di preparazione di un'istruzione non costituiscono più tempo di attesa per l'organo di calcolo, che non è coinvolto nella preparazione, e viene sfruttato con piena continuità. Altri tempi di attesa per l'organo di calcolo sono eliminati dando alle unità di ingresso e uscita una gestione completamente autonoma, e avviando un programma di calcolo solo quando tutti i dati che esso richiede sono presenti nella memoria (l'avviamento è comandato automaticamente dal sistema operativo); analogamente i risultati vengono conservati, finchè il programma non è terminato, nella memoria, dalla quale, senza impegnare l'organo di calcolo, verranno in seguito inviati all'unità di uscita prescelta.

L'attuazione di quanto sopra è strettamente vincolata al funzionamento del calcolatore in “multiprogrammazione”: in ogni istante della memoria principale risiede un “blocco” di più programmi, uno solo dei quali è però in fase di elaborazione; l'elaborazione non viene effettuata tutta di seguito, dal principio alla fine, ma a scaglioni, che si concludono o dopo un intervallo di tempo prefissato o quando si renda necessario un avvicendamento dei dati di ingresso o uscita tra la memoria principale e le memorie di “massa” (tamburi, dischi, nastri, ecc.), ove i dati vengono conservati per non impegnare inutilmente vaste zone della memoria principale, costosa e di capacità relativamente limitata. Il programma resta così congelato nella memoria principale in attesa che vengano portati avanti, successivamente, analoghi scaglioni degli altri programmi del blocco; quando ritorna il suo turno e l'eventuale avvicendamento di dati si è effettuato, se ne elabora un nuovo scaglione. Quando il programma è completamente terminato, esso viene cancellato dalla memoria principale e il suo posto è occupato dal primo programma che si trova nella coda d'attesa (nelle memorie di massa).

Al concetto di multiprogrammazione si affianca quello di “multielaborazione”; il calcolatore, che in questo caso viene più propriamente definito come sistema di elaborazione, è dotato di due o più unità di calcolo e di comando, e di un insieme di memorie di massa e di unità periferiche collegabili (non contemporaneamente) alle varie porzioni in cui è suddivisa la memoria principale; questa, in genere, ha una parte comune alle diverse unità di calcolo, e tante parti aggiuntive, vincolate ciascuna a una ben definita unità di calcolo. Le elaborazioni vengono effettuate, in parallelo, sulle unità elaboratrici; ognuna delle quali, in genere, funziona col criterio della multiprogrammazione sopra descritto.

L'esecuzione dei programmi in multiprogrammazione, che ha la finalità di non bloccare programmi di breve durata in coda a programmi lunghi, impone esigenze di memoria principale non indifferenti, per potervi ospitare contemporaneamente tutti i programmi del blocco in corso di elaborazione; poichè il costo della memoria principale è tutt'altro che trascurabile, i costruttori si sono indirizzati, in molti casi, verso la sua simulazione mediante le memorie di massa. E' questo il concetto di “memoria virtuale”, per il quale ogni programma del blocco in esecuzione appare come se disponesse, nella memoria principale, di tutta l'estensione che gli occorre, mentre in realtà non ne occupa che alcune “pagine” (cioè zone di capacità fissa e relativamente limitata) nelle quali, in maniera automatica su interventi del software, si avvicendano gli spezzoni di programma e i relativi dati da elaborare, di volta in volta chiamati in causa; il resto del programma e dei dati risiede su una memoria di massa ad accesso rapido, pronta a fornire nuove pagine o a ricuperare quelle non più impiegate non appena sia necessario.

Questi principi hanno trovato applicazione nei sistemi operativi dei PC, eventualmente quando le risorse sono condivise in reti. Le connessioni sono comprese tra alcune decine di kilobit al secondo e decine di Megabit al secondo. L'evoluzione dei terminali ha portato a considerare solo più terminali “intelligenti”, ossia multimediali. Le potenze di elaborazione sono distribuite, mentre i dati sono raccolti in enormi basi di dati (data base) ad accesso rapido via rete.

v Minicalcolatore

E' un PC di potenza maggiore dedicato o alla funzione di server nella architettura client/server oppure a svolgere le funzioni di workstation dedicata per applicazioni specialistiche quali elaborazioni di immagini in movimento per produzioni televisive e di film.

v Personal Computer

Introdotti  agli inizi degli anni Ottanta sono diventati il modello antesignano di calcolatore. Ormai dispongono di una elevata memoria attiva, di una CPU molto veloce e di sistemi di memorizzazione di massa di elevata capacità in grado di gestire tutte le applicazioni telematiche che lo sviluppo delle telecomunicazioni propone. L’evoluzione dei sistemi operativi e l’adozione di sistemi di input/output orientati all’utente li ha trasformati in sistemi multimediali, in grado di svolgere un numero di funzioni che solo l’inventiva umana pare limitare.

Collegati in LAN i PC sono gestibili da una architettura detta client/server in cui il compito di server, ossia di macchina che controlla e offre servizi ai client, è svolto da PC di potenza maggiore che si possono paragonare ai minicalcolatori di un tempo.

v Calcolatore grafico interattivo

Calcolatore , un tempo di tipo speciale, corredato di un monitor (tubo a raggi catodici, a cristalli liquidi, oppure a elettroluminescenza) sullo schermo del quale possono apparire disegni, grafici, schemi, completati anche da indicazioni alfanumeriche. Ormai queste capacità sono disponibili su ogni stazione di lavoro basata su PC, per cui la grafica interattiva è diventata una modalità di lavoro in cui ogni elemento del disegno viene memorizzato mediante le sue coordinate (se si tratta di un punto), o le coordinate degli estremi (per un segmento), od opportuni parametri (curve regolari); il controllo del monitor permette di tracciare sullo schermo l'elemento grafico corrispondente. Con l'aiuto di una speciale penna a fotocellula è possibile disegnare sullo schermo ciò che si desidera, e farne registrare i parametri numerici in memoria; con opportuni comandi l'operatore può inoltre ottenere ingrandimenti, riduzioni, rotazioni e scomposizioni della figura tracciata sullo schermo, a seconda delle sue esigenze di elaborazione.

v Calcolatrice tascabile

E' una calcolatrice di dimensioni ridottissime, realizzata con circuiti logici altamente integrati, e dotata di un indicatore per lo più ottico dei numeri trattati e di una tastiera per l'impostazione degli operandi e per il comando delle funzioni esecutive. Un tempo era in grado di eseguire solo le quattro operazioni aritmetiche, ma esiste una vasta gamma di modelli con i quali si possono valutare, con semplice comando da tastiera, funzioni trigonometriche, logaritmiche, ecc., nonchè impostare costanti di frequente impiego (p, e). In alcuni modelli è anche possibile effettuare programmazioni e introdurre dall'esterno dei supporti speciali contenenti programmi di calcolo. I tipi più recenti sono alimentati da una pila solare.

v Rete di calcolatori

Le  reti hanno assunto una importanza fondamentale per l’utilizzo dei calcolatori. Da reti composte di pochi calcolatori e note come LAN (Local Area Network) si è giunti ad Internet, la rete delle reti, che interconnette a livello globale milioni di calcolatori. La recente evoluzione delle reti ha riguardato gran parte delle tecnologie di realizzazione e di gestione. A seguito del grande aumento verificatosi nel numero delle LAN e dei nodi, soprattutto PC, collegati, i due protocolli di LAN più diffusi, Ethernet e Token- Ring, sono stati ridisegnati e adeguati alle nuove esigenze. La velocità nella Token-Ring è stata quadruplicata, mentre in Ethernet è stata decuplicata raggiungendo i 100 Mbit al secondo. Le velocità elevate hanno reso fattibile l’impiego dei calcolatori per ricevere/inviare immagini in movimento complete di sonoro.