# Whirlwind (computer)

Whirlwind fu un computer sviluppato presso il Massachusetts Institute of Technology. Fu il primo computer ad operare in tempo reale, utilizzava un monitor per mostrare i risultati delle operazioni e fu il primo computer elettronico che non rimpiazzava semplicemente le componenti meccaniche con quelle elettroniche ma che se ne avvantaggiava per sviluppare una nuova architettura. Venne sviluppato sotto la direzione del Semi Automatic Ground Environment della United States Air Force.

## Contesto storico

Durante la Seconda guerra mondiale la U.S. Navy contattò il MIT per esplorare la possibilità di realizzare un simulatore di volo per addestrare i piloti di bombardieri. Il progetto prevedeva un sistema collegato a una console che aggiornasse in tempo reale i parametri della console seguendo un modello fisico dell'aerodinamica del velivolo. Esistevano già dei sistemi simili ma questo modello prevedeva un sistema di simulazione della fisica molto avanzato in grado di simulare ogni tipologia di aeromobile.
Uno studio di fattibilità svolto presso il MIT Servomechanisms Laboratory concluse che il sistema era realizzabile dal punto di vista tecnologico. La marina chiamò il sistema "Project Whirlwind", e venne posto Jay Forrester come responsabile del progetto. Forrester sviluppò un grande computer analogico ma scoprì che il computer non era abbastanza accurato e flessibile. Il progetto richiedeva un sistema molto più grande e forse nemmeno realizzabile.
Nel 1945 Perry Crawford un membro del team MIT vide una dimostrazione dell'ENIAC e suggerì di sviluppare un computer elettronico per il progetto Whirlwind. Questa macchina sarebbe stata molto accurata e programmabile, quindi si sarebbe potuto complicare il modello fisico fino a piacere, almeno entro il limiti della potenza di calcolo fornita dal sistema.
In quel periodo i computer funzionavano in modalità batch, ricevevano una serie di dati in ingresso e li elaboravano fino a che non ottenevano il risultato che veniva stampato. Il sistema Whirlwind invece doveva adattarsi alle manovre del pilota e quindi doveva agire in tempo reale, questo limitò seriamente la complessità del simulatore.
Nel 1947 Forrester e il suo collaboratore Robert Everett completarono il progetto del computer. La costruzione del sistema iniziò l'anno successivo e coinvolse 175 persone, tra queste 70 ingegneri e tecnici. Il progetto richiese tre anni di lavoro e divenne operativo il 20 aprile 1951. Il budget del progetto era di un milione di dollari per anno ma dopo tre anni la marina perse interesse per il progetto. Il progetto venne assorbito dalla USAF dentro il Project Claude.

### Il nucleo della macchina

Il sistema aveva una velocità di 20 000 istruzioni per secondo; queste erano insufficienti per svolgere la maggior parte dei compiti. La lentezza del sistema venne attribuita alla lentezza dei tubi Williams che erano usati come memoria principale. Forrester iniziò quindi a cercare dei sostituti: vagliò la possibilità di utilizzare nastri magnetici disposti a spirale, in seguito pensò a lampade al neon disposte come array 3D e infine utilizzò delle memorie a nuclei magnetici. Queste permisero di raddoppiare la velocità del sistema (40'000 istruzioni al secondo) e la nuova versione della macchina venne completata nel 1953. Con le precedenti memorie a tubo, il tempo di somma di due numeri era di 49 microsecondi e la loro moltiplicazione richiedeva 61 microsecondi. Con le memorie magnetiche il Whirlwind divenne il più rapido computer dell'epoca: il tempo di somma divenne di 8 microsecondi, le moltiplicazioni erano eseguite in 25.5 microsecondi e le divisioni in 57 microsecondi. Il tempo di accesso alla memoria era di 16 microsecondi con i tubi Williams mentre con le memorie magnetiche bastavano 8 microsecondi.

### Whirlwind 2

Dopo che il computer Whirlwind venne sviluppato e reso operativo, il MIT iniziò lo sviluppo del Whirlwind II. Il nuovo progetto prevedeva una macchina molto più grande e potente ma le limitate risorse del MIT resero impossibile la sua realizzazione e quindi si decise di concentrare le risorse sullo sviluppo dei programmi per il Whirlwind I. Quando la Air Force decise di costruire il sistema di difesa SAGE air defense, IBM l'appaltatore primario del sistema grazie ai computer AN/FSQ-7, questi avevano un'architettura basata sul sistema Whirlwind II. Spesso i sistemi AN/FSQ-7 sono definiti Whirlwind II, ma questa designazione è errata dato che il progetto è diverso.

### Il Cape Cod System e il SAGE

Il Cape Cod System venne sviluppato per dimostrare la fattibilità di un sistema di difesa aereo. Il progetto copriva il sud del New England. I segnali provenienti da tre radar AN/FPS-3 erano inviati tramite linea telefonica al computer a Cambridge al fine di permetterne l'analisi.
I primi test del sistema vennero svolti con dati simulati nel settembre del 1953, ma in seguito vennero utilizzati anche dati veri provenienti da B-47 Stratojet modificati per assomigliare a bombardieri russi e i dati erano inviati in modalità criptata dalle basi dell'Air Force statunitense.
Il Cape Cod System dimostrò la fattibilità di quello che divenne il SAGE. Uno sforzo industriale notevole venne avviato dall'ordine dei sistemi AN/FSQ-7. Inizialmente sembrava che questi sarebbero stati realizzati da RCA ma infine venne scelto IBM come principale appaltatore. La produzione venne avviata nel 1957 e questa richiese la realizzazione anche delle infrastrutture necessarie alle comunicazione, degli edifici e dei sistemi di alimentazione che dovevano essere indipendenti da quelli esistenti.

### Fine del Whirlwind

Whirlwind I continuò a funzionare con il supporto SAGE fino al 30 giugno 1959. Il componente del progetto Bill Wolf affittò la macchina per un dollaro fino al 1973. Ken Olsen e Robert Everett salvarono la macchina dalla discarica e la usarono come base per il Digital Computer Museum, quello che in seguito divenne il The Computer Museum. Attualmente una parte del sistema è esposta al Computer History Museum di Mountain View in California.
Il Whirlwind utilizzava circa 5000 valvole termoioniche, ma fu avviato un progetto per realizzarne una versione a transistor sotto la direzione di Ken Olsen. Questo progetto prese il nome di TX-0 e in seguito venne progettato di realizzarne una versione più grande nota come TX-1. Tuttavia il progetto era eccessivamente ambizioso: venne pertanto sviluppata una macchina più piccola nota come TX-2. Anche questa macchina mostrò dei problemi e Olsen abbandonò il progetto per fondare la Digital Equipment Corporation (DEC). Il DEC PDP-1 era essenzialmente un insieme del progetto TX-0 e un TX-2 in un sistema più compatto.

## Descrizione tecnica
### Progetto e costruzione

Allora la maggior parte dei computer trasferiva i dati tra le varie unità un bit per volta, in modalità seriale, questo rendeva economico realizzare le unità funzionali ma rallentava il sistema. Il progetto Whirlwind invece prevedeva che le unità matematiche lavorassero in parallelo su gruppi di 16 bit, questo rendeva il sistema molto veloce e costoso. Attualmente tutti i microprocessori trasferiscono i dati in modo parallelo, in gruppi di 32 o 64 bit normalmente.
La dimensione della parola venne scelta dopo diversi studi. La macchina lavorava passando un singolo indirizzo nella maggior parte delle istruzioni, questo al fine di ridurre gli accessi alla memoria. Le operazioni che richiedevano due indirizzi selezionavano la seconda istruzioni come l'ultima caricata prima della corrente. Il computer utilizzava la notazione polacca inversa per le operazioni. Il sistema non aveva un stack ma solo un accumulatore. I progettisti definirono come memoria minima 2000 parole e quindi servivano almeno 11 bit per la sua gestione. Le istruzioni potevano essere indicate con 5 bit e quindi vennero scelte parole di 16 bit. L'utilizzo di poche istruzioni portò John von Neumann a concludere che il sistema sarebbe stato inutile.
Il progetto prevedeva una controll store funzionante alla stessa frequenza di clock del sistema. Ogni ciclo di clock veniva selezionata una linea dalla matrice di diodi al fine di individuare l'operazione da eseguire. La linea comandava le unità funzionali dei sistema ed assomigliava al moderno microcodice del processore. L'idea fornì l'ispirazione a Maurice Wilkes per realizzare il microcodice.