Calcolatore ternario
Un calcolatore ternario è un tipo di calcolatore che basa il suo funzionamento su componenti circuitali che funzionano su una base di numerazione a tre cifre o ternaria.
Criteri di scelta della base di numerazione e base naturale (base e)
modificaLa numerazione binaria, o diadica, ha per base 2, cioè il più piccolo intero che può servire come base di numerazione. Già nel XVIII secolo, Gottfried Wilhelm Leibniz (Lipsia, 1646 - Hannover, 1716) faceva vedere che le proprietà d'ogni sistema di numerazione divengono, in questa base, semplicissime. Scrisse a tal proposito l'opera fondamentale del 1679 “de progressione dyadica” e gettò le basi per i procedimenti di calcolo elementari (addizione e moltiplicazione). Successivamente, nel 1705, Leibniz pubblica nelle Memorie dell'Accademia Reale delle Scienze di Parigi un saggio che illustrava le ragioni per concepire una macchina calcolatrice binaria. Altri dopo Leibniz si occuparono del problema, come ci riferisce il grande matematico Giuseppe Peano[1], tra i quali annoveriamo Ampère (1837) ed Lucas (1891). Come è noto il sistema binario ha avuto una grande diffusione in seguito allo sviluppo del calcolatore digitale.
Il fisico-matematico John von Neumann (Budapest, 1903 - Washington, 1957) diede grande impulso alla costruzione del calcolatore digitale già a partire dal 1945, con il progettare un calcolatore digitale, chiamato EDVAC. Si suppose che la maggior efficienza del sistema binario rispetto al sistema decimale potesse essere dimostrata teoricamente assumendo, in un modello semplice, che la complessità circuitale di un calcolatore fosse proporzionale al prodotto b x W, dove b è la base numerica scelta e W è la lunghezza in cifre del massimo numero che si deve elaborare. Seguendo le indicazioni contenute in[2], ad esempio, scegliendo un decimale ad 8 cifre si ottiene b x W = 80; ma per rappresentare lo stesso numero in binario abbiamo bisogno di 27 cifre e quindi si avrebbe b x W = 54. D'altro canto, però, in questo modello, nulla impedisce di calcolare la complessità circuitale (e quindi il suo costo), fissando l'ordine di grandezza del numero massimo che si vuole manipolare con il calcolatore.
Ricordando la definizione di W, l'ordine di grandezza del numero massimo vale . Riportando in grafico come varia il prodotto b x W in funzione di b (b#1), mantenendo costante , si osserva un minimo per b compreso tra 2 e 3 (più precisamente, b=e; il numero di Nepero approssimato alla terza cifra decimale con 2,718…). Questo risultato, ottenuto nel modello semplificato, suggerisce di adottare il sistema binario in quanto scelta più economica del decimale; ma, nel confronto tra il sistema ternario e binario, il ternario sarebbe ancora più economico. Nella figura 1 viene illustrato tale calcolo, per differenti ordini di grandezza del numero massimo .
È stato osservato che il modello sopra indicato nella pratica costruttiva è troppo semplificato[2]. Si può ancora applicare lo schema per l'unità di calcolo (CPU), mentre altre parti del calcolatore, come memorie di massa (dischi e supporti magnetici) e unità di input-output, non si prestano a tale semplificazione. Ciò significa che nella pratica la codifica dei valori numerici è meno compatta di quella usata nel modello semplificato. Un altro effetto importante da considerare per lo sviluppo di un calcolatore è rappresentato dalla diminuzione dei costi dovuto alla miniaturizzazione e affidabilità del hardware che si sono avuti a partire dagli anni novanta, grazie alla evoluzione della tecnologia dei semiconduttori. Occorre infine considerare che, dal punto di vista degli algoritmi di calcolo, il sistema binario non sarebbe neppure il più efficiente. Per fare qualche esempio, i numeri negativi devono essere rappresentati con un bit dedicato al segno, ma questo comporta un'asimmetria nel range dei numeri utilizzabili o produce due diversi valori per lo zero, problemi che richiedono alcuni accorgimenti per essere superati. Nel sistema binario, inoltre, la sottrazione deve essere trasformata in un'addizione con il complemento del sottraendo, obbligando ad uno o due passi in più rispetto all'addizione, a meno di non ricorrere ad un organo aggiuntivo dedicato a questa operazione. Problemi simili sono comunque comuni anche ad altre notazioni, compresa la decimale”[2].
Sistema ternario e calcolatori
modificaIl modello semplificato sopra descritto suggerisce di adottare una base naturale di numerazione (uguale ad e, circa 2.718...: la base dei logaritmi naturali) e il numero intero più vicino è il 3. Ciò richiede l'uso di circuiti a tre stati, cioè ad una notazione ternaria. Si possono impiegare le cifre 0, 1, 2. Tuttavia un modo più interessante di rappresentare i numeri con numerazione ternaria è quello del “ternario bilanciato”, scegliendo le cifre –1, 0 e 1, dette TRIT. I coefficienti delle successive potenze di 3 possono essere dunque sia positivi, sia negativi. Nelle tabelle sotto riportate sono indicate le operazioni più importanti che permettono di operare con il ternario bilanciato. Nelle tabelle sotto riportate si dà l'esempio di alcune operazioni più comuni con i TRIT. Ove si è posto, per definizione, e posto b= bilanciato.
Ad esempio, nel ternario bilanciato il decimale 223 è scritto nel modo seguente:
;
Il ternario bilanciato permette, dunque, di rappresentare i numeri negativi senza ricorrere al segno “meno” anteposto e per trasformare un numero nel suo opposto basta sostituire tutti gli 1 con –1 e viceversa, lasciando inalterati gli 0. Quindi sottrazione e addizione con lo stesso procedimento. La logica a tre valori permette, inoltre, di attribuire uno stato fisico a proposizioni che non possono essere definite né vere né false. Fu Thomas Fowler (Great Torrington, 1777 - Devon, England – 31 marzo 1843) a proporre nel 1830 il ternario bilanciato. Egli, praticamente autodidatta, scrisse il manualetto Tables for Facilitating Arithmetical Calculations in cui proponeva una notazione ternaria e le relative procedure di calcolo[3][2]. Fowler progettò «una calcolatrice meccanica che permettesse di eseguire la moltiplicazione di due numeri ternari. Il prototipo in legno, con la capacità di ben 55 cifre ternarie, fu dimostrato alla Royal Society di fronte ad importanti uomini di scienza dell'epoca, tra cui Charles Babbage, l'astronomo George Airy e il matematico Augustus De Morgan, che ne redasse l'unica descrizione oggi conosciuta. La macchina sfruttava un meccanismo a leve - non a ruote come le altre calcolatrici dell'epoca - ed era lunga quasi due metri; funzionava correttamente, ma il suo punto debole rimaneva la necessità di ricorrere alle tavole di conversione per trasformare i numeri decimali in ternari. Di questa limitazione Fowler era ben conscio e spese i suoi ultimi anni cercando una soluzione.
La calcolatrice di Fowler fu completamente dimenticata, ma nel 2000, sulla base della descrizione di De Morgan e sull'unica rappresentazione grafica - una vetrata della chiesa di Torrington - ne è stata ricostruita una plausibile replica funzionante al North Devon College»[2]. Anche lo stesso von Neumann nel suo “First draft”, suggeriva: «si dovrebbero prendere in considerazione sistemi numerici diversi da quello binario, a cominciare forse da quello ternario»[4]. Pionieri dell'idea di calcolatori ternari furono Donald Knuth e Howard Aiken, il padre della serie di calcolatori di Harvard[2][5][6]. Il primo calcolatore ternario moderno, battezzato SETUN, fu costruito nel 1956 a Mosca, da ricercatori del gruppo di Nikolai P. Brusentsov[2][7][8]. La disponibilità di tecnologia dei russi li condusse ad impiegare circuiti logici magnetici, implementandovi una rappresentazione a tre valori e ottenendo una maggiore velocità ed un minor consumo di energia rispetto ad una macchina binaria. SETUN operava su numeri composti di 18 cifre ternarie. “In realtà il sistema ternario non fu sfruttato completamente perché per ogni TRIT si utilizzavano due nuclei magnetici a due stati, sprecando una combinazione; SETUN era quindi ternario per quanto riguarda le operazioni logico-algebriche, ma restava binario per gli aspetti fisico-circuitali. Il calcolatore sovietico fu prodotto in piccola serie in due successive versioni. SETUN rimase il primo ed ultimo calcolatore ternario”[2][9][10][2].
In effetti la strada verso la costruzione di dispositivi operanti su logiche multi valori MVL (Multi-valued-logic), è stata alquanto complessa. Tuttavia, negli ultimi decenni si è notato uno sviluppo di circuiti MVL, non necessariamente ternari, ma anche a quattro, otto o sedici stati[11][12]. “Tali ricerche hanno, in certi casi, portato alla realizzazione di prototipi di laboratorio e di prodotti commerciali”[2]. Tre sono i settori dell'informatica che sembrano più interessati all'uso pratico delle MVL: i sistemi di trasmissione di informazioni digitali, le memorie e i circuiti logico-aritmetici. Forse è ragionevole supporre che, “per motivi essenzialmente legati alla miniaturizzazione, ai consumi e alla dissipazione termica, si adotteranno logiche multivalore a quattro, otto o sedici stati”[2], con lo scopo di integrare il calcolo con sistema di numerazione binario, che inevitabilmente sopravviverà molto a lungo, in alcune parti del calcolatore.
Note
modifica- ^ G. Peano, La numerazione binaria applicata alla stenografia, in Opere scelte, vol. III, pp. 352-359. Alla p. 23 di tale lavoro riscontriamo la seguente interessante osservazione storica: «Leibniz riscontrò in un libro cinese, detto "libro delle variazioni", delle figure, in cui riconobbe i numeri scritti nel sistema binario. Queste figure, o kwa, spettano a Fu hi, fondatore della scrittura e civiltà cinese».
- ^ a b c d e f g h i j k Silvio Henin, Perché i calcolatori sono binari, in «Mondo Digitale», n. 2 (giugno 2007) e bibliografia ivi riportata.
- ^ M. Glusker et al., The Ternary Calculating Machine of Thomas Fowler, «IEEE Annals of the History of Computing», 27 (2005) n. 3, pp. 4-22. Vedi anche: http://www.mortati.com/glusker/ fowler/index.htm; citazione tratta da Silvio Henin.
- ^ W. Aspray, John von Neumann and the Origins of Modern Computing, The MIT Press 1990. Citazione tratta da Silvio Henin, Perché i calcolatori sono binari, in «Mondo Digitale», n. 2 (giugno 2007), p. 54f
- ^ D. Knuth, The art of computer programming, vol. II: Seminumerical algorithms, Addison-Wesley 1969.
- ^ Makin' Numbers. Howard Aiken and the Computer, a cura di I. B. Cohen - W. G. Welsh, The MIT Press 1999, pp. 131-132.
- ^ G. Trogemann - A. Y. Nitussov - W. Ernst, Computing in Russia, Vieweg Pub. 2001, pp. 90-91.
- ^ N. P. Brousentsov et al., Development of ternary computers at Moscow State University in http://www.computer-museum.ru/english/setun.htm
- ^ Silvio Henin, Perché i calcolatori sono binari, in «Mondo Digitale», n. 2 (giugno 2007), p. 55 nt. 5.
- ^ G. Frieder et al., A balanced-ternary compute, International Symposium on Multiple-valued Logic 1973, pp. 68-88: «[...] proposta di costruire un computer ternario bilanciato apparve in “High-speed Computing Devices”, una rassegna delle tecnologie informatiche dell'epoca, pubblicato dalla marina degli Stati Uniti nel 1950. Negli stessi anni H.R.J. Grosch, ingegnere della Engineering Research Associates, propose l'architettura ternaria per il progetto dello Whirlwind del MIT, che poi fu realizzato in binario e che divenne il “cervello” del sistema SAGE per la vigilanza radar del Nord America. Nel 1973 G. Frieder realizzò un software di emulazione per il progetto di TERNAC, un computer ternario che non vide mai la luce».
- ^ M. Perkowski, Multiple Value Logic, http://web.cecs.pdx.edu/~mperkows/ISMVL/=index.html.
- ^ P. Lablans, Multi-Valued Logic, http://www.multivaluelogic.com.