# LARC

L'UNIVAC LARC (Livermore Advanced Research Computer) fu il primo tentativo del Remington Rand di costruire un supercomputer. Fu progettato per il multiprocessore con 2 CPU (chiamati Computer) e un processore dedicato all'input/Output (chiamato processor).
Solo due LARC sono stati costruiti:
* Il primo fu costruito per Livermore nel giugno 1960.
* Il secondo fu costruito per il Navy's David Taylor Model Basin.
Il LARC è un computer con un'architettura con parole di 48 bit. Il sistema utilizzava una notazione bi-quinaria a codifica decimale con 4 bit per cifra con parole di 11 cifre (negative e positive). Il set di istruzione era di 48 bit, ogni cifra della macchina è dotata di un bit di parità per la verifica degli errori. In sostanza ogni parola occupava 60 bit (48 per i dati e 12 per la parità). La configurazione base prevede 26 registri generici che potevano essere espansi fino a 99. Il sistema accedeva ai registri in un microsecondo.
La configurazione base era dotata di un solo computer che poteva essere espanso con un secondo computer.
Il processor era una CPU indipendente (con un diverso set di istruzioni rispetto ai computer) che provvedeva a gestire 12 o 24 unità a tamburo magnetico, tra quattro e quaranta unità a nastro UNISERVO II, due registratori elettronici, una stampante ad alta velocità e un lettore di carte ad alta velocità.
Il nucleo di memoria del LARC era formato da 2.500 parole per banco e alloggiava quattro banchi per ogni armadio di memoria. La configurazione base era composta da 8 banchi (due armadi), 20.000 parole. La memoria poteva essere espansa fino a un massimo di 39 banchi (10 armadi con un banco libero) 97.500 parole al massimo. Il sistema implementava un bit di parità per ogni cifra con parole formate in totale da 60 bit. La memoria aveva un tempo di accesso di 8 microsecondi e un tempo di ciclo di 4 microsecondi. Ogni banco operava in modo indipendente degli altri e impiegava 4 microsecondi ad accedere a un dato se non era occupato. Utilizzando un accesso sequenziale ai banchi di memoria si poteva ottenere un tempo di acceso di 4 microsecondi (per esempio ponendo i dati in un banco e le istruzioni in un altro banco).
Il data transfer bus collegava i due computer e il processor alla memoria tramite una connessione con multiplexer per massimizzare il trasferimento. Ogni quattro microsecondi il bus era diviso in otto slot da 500 nanosecondi:
* Processor - istruzioni e dati
* Computer 1 - istruzioni
* Computer 2 - dati
* I/O DMA Synchronizer - dati
* Non usato
* Computer 2 - istruzioni
* Computer 1 - dati
* I/O DMA Synchronizer - dati
Il nucleo della memoria utilizzava un sistema di gestione a priorità per impedire un accesso simultaneo allo stesso banco di memoria da parte dei due computer o da parete di un computer e del processor per impedire conflitti o deadlock. I banchi di memoria sono non disponibili per 4 microsecondi dopo un accesso a una cella di memoria del banco. Se un'altra sezione del banco deve essere letta o scritta questa rimane bloccata fino a quando l'operazione non può essere svolta. Per prevenire deadlock e timeout dell'I/O il sistema era dotato di priorità come indicato:
* I/O DMA Synchronizer - alta priorità
* Processor media priorità
* Computers - bassa priorità
Quando un accesso ad alta priorità è in esecuzione il nucleo di memoria è bloccato per 4 microsecondi, nel secondo ciclo le operazioni a bassa priorità sono comunque non eseguite se esistono operazioni a priorità elevate. I cicli a bassa densità sono eseguiti solo se non vi sono cicli ad alta priorità.
Il LARC venne sviluppato con una tecnologia basata su transistor già obsoleta quando la prima macchina venne presentata. Comunque il LARC era un computer molto veloce per i tempi. Eseguiva addizioni in 4 microsecondi, moltiplicazioni in 8 microsecondi e divisioni in 28 microsecondi. Fu il più veloce supercomputer del pianeta tra il 1960 e il 1961 fino a quando IBM presentò l'IBM 7030 Stretch.