Digitando, digitando... (clicca per tornare alla pagina precedente...)

Articolo pubblicato su www.digiTANTO.it - per ulteriori informazioni clicca qui


Digitando, digitando... n. 62/2023 del 24.05.2023

Apertura

Transputer, chi era costui?

Chi già c’era a cavallo tra gli anni 80 e 90 li avrà, come minimo, sentiti nominare.
Sono stati un’interessante meteora tecnologica di quel (bel) periodo.

di Andrea de Prisco

Parliamo di processori. Uno in particolare al quale, per motivi che non sto a rispolverare, sono amighevolmente legato. INMOS, noto produttore inglese di semiconduttori, tra cui RAM statiche ed EEPROM, introdusse nel 1984 il primo componente dell'unica famiglia di processori - anche se è addirittura riduttivo definirli tali - prodotta su scala industriale e finalizzata alla realizzazione di sistemi ad architettura parallela.

E scusate se è poco!

Quando fu deciso il nome da dare alla nuova creatura venne coniata la parola Transputer, nata dalla crasi di altri due termini già diffusi: transistor e computer. Rappresentava il “mattoncino” con cui costruire strutture complesse anche molto grandi, come avveniva per i comuni semiconduttori tipicamente a tre vie (base, emettitore, collettore) rispetto ai circuiti elettronici, anche complessi e articolati, realizzabili. L'analogismo era piuttosto diretto: come con i transistor si potevano ipotizzare (e realizzare...) schemi complicatissimi formati da decine, migliaia, milioni di semiconduttori, con i Transputer era possibile costruire sistemi di calcolo a parallelismo massiccio della potenza desiderata, senza limiti né teorici né tecnici. Era esso stesso la "materia prima" di qualcosa di ben più potente del Transputer stesso: la rete di Transputer.

La sua filosofia, se così vogliamo chiamarla, nasceva in un periodo in cui alcuni produttori temevano di aver esaurito gli spazi di manovra per continuare a migliorare le prestazioni dei processori, pertanto una delle possibilità intraviste e da esplorare fu quella di lanciarsi realmente (e finalmente!) nel mondo delle architetture parallele. Tradotto: se diventava troppo complicato o impossibile fare più velocemente UNA cosa, era meglio provare a farne simultaneamente TANTE, con un’architettura multiprocessor scalabile a piacere.

E anche piuttosto facilmente, aggiungerei.

Naturalmente progettare solo un nuovo chip o una famiglia di chip, per quanto evoluti nell’hardware, non era sufficiente. Assieme ai Transputer la INMOS sviluppò anche l’Occam, uno specifico linguaggio di programmazione parallela, dalla potenza imprevedibile. Semplificando al massimo, in Occam ogni programma è descritto come un insieme di processi in grado, volendo, di operare in parallelo e comunicare tra loro ad ambiente locale tramite canali, secondo il modello CSP: Communicating Sequential Processes.

Per comprendere meglio il parallelismo esplosivo - eufemismo non troppo scientifico utilizzato per indicare quella capacità di Occam di generare processi a tempo di esecuzione ed in numero noto solo in quel momento - un processo parallelo può essere anche singola linea di codice, come l’assegnamento di una variabile o la chiamata di una procedura, da eseguire parallelamente alle altre. Ovvero non necessariamente nella sequenza in cui compaiono scritti nel codice, fermo restando che l’intero blocco parallelo, come è ovvio, termina complessivamente solo quando sono terminati i processi di cui è formato.

Infine, la scrittura del codice non era vincolata all’architettura fisica (il numero di Transputer coinvolti) tant’è che poteva “girare” in parallelismo simulato, ovvero in multitasking nativo, anche su un singolo chip per fare tutti i test in fase di sviluppo. Per passare al parallelismo reale, sull’architettura multiprocessor, bastava aggiornare con l’editor testuale un semplice file esterno di config specificando nodi e collegamenti tra gli stessi, ricompilando il tutto senza minimamente rimettere le mani sul codice. Applauso!

Ogni chip disponeva di quattro link seriali ad alta velocità per collegarsi, bidirezionalmente, ad altrettanti Transputer, così come per “afferrare al volo” in fase di avvio il codice da eseguire. Non bisognava nemmeno occuparsi di caricare manualmente in ogni chip i processi che sarebbero stati eseguiti lì, in quanto era il primo Transputer - che riceveva l’intero codice - a distribuirli automaticamente all’intera rete.

Standing ovation!!!

 

 


 

Il sistema di sviluppo proposto da INMOS poteva ospitare fino a dieci TRAM (Transputer Module) singoli o cinque doppi.

 


 

Il Transputer Module "doppio", per il sistema di sviluppo, con il T800 e "ben" 2 MB di RAM.

 


 

I due prototipi della scheda di rete per Amiga (bus Zorro) basata su Transputer e sviluppata ai tempi di MCmicrocomputer.

 



 

:-)

 


Articolo pubblicato su www.digiTANTO.it e su Facebook. Per ulteriori informazioni clicca qui