# ILLIAC IV

L'ILLIAC IV és un ordinador, considerat el primer de còmput paral·lel massiu. El sistema es va dissenyar inicialment amb 256 unitats de coma flotant (FPU) i quatre Unitats Centrals de Processament (CPUs) capaces de processar mil milions d'operacions per segon (1 GFLOP). Degut a problemes de pressupost, només van ser desenvolupats un únic "quadrant" amb 64 FPU i una sola CPU. Ja que totes les FPU havien de processar la mateixa instrucció en un moment donat - ADD, SUB etc. - En terminologia moderna, el disseny es consideraria de Single Instruction, Multiple Data, o SIMD.
A Daniel Slotnick se li va acudir el concepte de construir un ordinador utilitzant un "array" de processadors mentre treballava com a programador de la màquina IAS durant el 1952. El disseny formal no va iniciar-se fins al 1960, quan Slotnick estava treballant a Westinghouse Electric i va aconseguir finançament per a desenvolupar-lo sota un contracte de les Forces Aèries dels Estats Units d'Amèrica. Quan es va acabar el finançament, l'any 1964, Slotnick se'n va anar a la Universitat d'Illinois i es va unir a l'equip Illinois Automatic Computer (ILLIAC). Amb finançament de l'ARPA, van iniciar el disseny d'un concepte més nou amb 256 processadors de 64 bits en comptes d'una sola màquina amb 1024 processadors de 1 bit.
Tot i que la màquina estava sent construïda a Burroughs Corporation, la universitat va començar a construir una instal·lació per a allotjar-la. Tensió política sobre el finançament per part del Departament de Defensa dels Estats Units va fer que tant l'ARPA com la universitat temessin per la seguretat de la màquina. Quan el primer quadrant de 64 processadors es va completar l'any 1972, va ser enviat al Ames Research Center de la NASA a California. Al cap de tres anys de profundes modificacions per a arreglar diverses fallades, l'ILLIAC IV es va connectar a l'ARPANET per a ús distribuït al novembre del 1975, convertint-se en el primer supercomputador disponible a la xarxa, superant al Cray-1 per gairebé 12 mesos.
Funcionant a la meitat de la seva velocitat de disseny, l'ILLIAC IV d'un únic quadrant tenia un rendiment pic de 50 MFLOPS, convertint-lo en l'ordinador més ràpid del món en el seu temps. També acreditat com el primer gran computador que feia servir memòria d'estat sòlid, a més de ser el computador més complex dels seus temps, amb més d'un milió de portes. Generalment considerat com un fracàs degut a grans sobrecostos pressupostaris, el disseny va ser instrumental en el desenvolupament de noves tècniques i sistemes per a sistemes de programació paral·lela. Als anys 80, múltiples màquines basades en conceptes de l'ILLIAC IV es van entregar amb èxit.

## Història
### Orígens

El juny del 1952, Daniel Slotnick va començar a treballar amb la màquina IAS a l'Institute for Advanced Study (IAS) a la Universitat de Princeton. La màquina IAS tenia una unitat matemàtica paral·lela a nivell de bit que operava amb paraules de 40 bits. Equipada originalment amb memòria de Williams Tube, més endavant es fa afegir un tambor magnètic d'Engineering Research Associates. Aquest tambor constava de 80 pistes, perquè es poguessin llegir dues paraules cada cop, i cada pista guarda 1024 bits.
Mentre comtemplava el mecanisme del tambor, Slotnick va començar a preguntar-se si aquesta era la forma correcta de construir un computador. Si els bits d'una paraula eren escrits en sèrie a una única pista, en comptes de fer-ho a través de les 40 pistes, les dades es podrien transferir al computador directament des del tambor bit a bit. El tambor encara tindria múltiples pistes i caps, però en comptes de agafar una paraula i transferir-la a una única ALU, en aquest concepte les dades de cada pista es llegirien bit a bit i s'enviarien a ALUs paral·leles, Per tant, seria un computador paral·lel a nivell de paraula i serial a nivell de bits.
Slotnick va proposar la idea al IAS, però John von Neumann la va denegar, ja que requeria "massa tubs". Slotnick va deixar l'IAS el febrer del 1954 per a acabar el seu doctorat i el tema va ser oblidat.

### SOLOMON

Després de completar el seu doctorat i algun treball post-doctorat, Slotnick va acabar a IBM. En aquell temps, almenys per la computació científica, tubs i tambors van ser substituïts per transistors i memòria magnètica. La idea de processadors paral·lels treballant sobre diferents fluxos de dades d'un tambor havia perdut el seu actractiu obvi. Tot i així, la investigació va mostrar que les màquines paral·leles encara podien oferir un gran rendiment en algunes aplicacions. Slotnick i un col·lega seu, John Cocke, van escriure un paper sobre el tema l'any 1958.
Després d'un curt període a IBM, i després un altre a Aeronca Aircraft, Slotnick va acabar a la divisió aèria de Westinghouse, que treballava en radars i sistemes similars. Sota un contracte de les forces aèries dels Estats Units, Slotnick va poder formar un equip per a dissenyar un sistema amb 1024 ALUs en sèrie a nivell de bit, coneguts com a "Elements de processament" o PE. Aquest disseny es va anomenar SOLOMON, del Rei Salomó, que era molt savi i tenia 1000 esposes.
Els PE rebien instruccions d'un únic processador mestre, la unitat de control, o CU. La CU del SOLOMON llegia instruccions d'una memòria, les decodificava i les enviava als PE perquè les processessin. Cada PE tenia la seva pròpia memòria per a emmagatzemar operands i resultats, el mòdul de memòria de PE, o PEM. La CU podia accedir la memòria en la seva totalitat utilitzant un bus de memòria dedicat, mentre que les PE només podien accedir al seu propi mòdul de memòria. Per a transferir resultats com a entrades d'altres PE, cada PE estava connectada amb els seus 8 veïns més propers gràcies a una xarxa d'interconnexió dedicada.
Es van construir múltiples sistemes de proves, incloent un sistema de 3 per 3 PE i un model 10 per 10 amb PE simplificades. Durant aquest període, es va considerar dissenys de PE més complexos, convertint-se en un sistema paral·lel de 24 bits que s'organitzaria amb un patró 256 per 32. Es va construir un únic PE amb aquest disseny l'any 1963. Mentre el treball de disseny continuava, el principal patrocinador del Departament de Defensa dels Estats Units va morir en un accident, fent que perdessin el finançament.
Amb la intenció de continuar el desenvolupament, Slotnick va parlar amb Livermore, que en aquells temps liderava la compra de supercomputadors. Estaven molt interessats en el disseny, però van convèncer a Slotnick perquè millorés el disseny actual, substituint les unitats de punt fixe a unitats de Coma flotant vertaderes, cosa que va fer que sorgís el disseny SOLOMON.2.
Livermore no va finançar el desenvolupament, en canvi va oferir un contracte en el que llogarien la màquina un cop completada. La gestió de Westinghouse ho va considerar massa arriscat, i va dissoldre l'equip. Slotnick va deixar Westinghouse per a trobar capital de risc per a continuar el projecte, però no ho va aconseguir. Livermore va seleccionar el CDC STAR-100 per aquest rol, ja que CDC estava disposada a pagar els costos de desenvolupament.

### ILLIAC IV

Quan SOLOMON es va acabar, Slotnick va unir-se a l'equip de disseny Illinois Automatic Computer (ILLIAC) a la Universitat d'Illinois. Illinois portava temps dissenyant i construint grans computadors per al Departament de Defensa dels Estats Units i l'ARPA des del 1949. El 1964, la universitat va signar un contracte amb l'ARPA per a finançar el projecte, més endavant conegut com a ILLIAC IV, ja que era el quart computador dissenyat i construït per la universitat. El desenvolupament va començar el 1965, i el primer disseny es va completar el 1966.
En contrast amb el concepte serial a nivell de bit del SOLOMON, les PE de l'ILLIAC IV es van millorar per a ser processadors de 64 bits paral·lels a nivell de bit, utilitzant 12000 portes i 2048 paraules de memòria Thin Film. Els PE tenien 5 registres de 64 bits, cada un amb un propòsit especial. Un d'aquests, RGR, es feia servir per a comunicar dades als PE veïns, movent-se un "hop" per cicle de rellotge. Un altre registre, RGD, indicava si el PE estava actiu en un moment determinat o no. Els PE inactius no podien accedir a memòria, però podien passar resultats a altres PE utilitzant el RGR. Els PE van ser dissenyats per a treballar com una única FPU de 64 bits, dues FPUs de mitja precisió de 32 bits o bé vuit processadors de coma fixa de 8 bits.
En comptes de tenir 1024 PE i una única CU, el nou disseny tenia un total de 256 PE organitzades en 4 quadrants de 64 PE, cada un amb la seva pròpia CU. Les CU també eren dissenys de 64 bits, amb 64 registres de 64 bits i 4 acumuladors de 64 bits. El sistema podia funcionar com 4 màquines de 64 PE separades, dues màquines de 128 PE, o bé una única màquina de 256 PE. Això permetia al sistema treballar en diferents problemes quan les dades eren massa petites per a utilitzat el sistema sencer de 256 PE.
Basant-se en un rellotge de 25 Mhz, amb tots els 256 PE executant-se en un únic programa, la màquina estava dissenyada per a processar mil milions d'operacions de coma flotat per segon, o en la terminologia modera, 1 GFLOPS. Això feia que fos molt més ràpida que qualsevol altra màquina del món, la màquina contemporània CDC 7600, tenia un cicle de rellotge de 27,5 ns, o 36 MIPS, to i que de forma general oferia un rendiment més proper a 10 MIPS.
Per a soportar la màquina, es va construir una extensió de l'edifici de Digital Computer Laboratory. El treball a la universitat se centrava en formes d'omplir els PE de dades de forma eficient, així fent la primera prova d'estrès en el desenvolupament de computadors. Perquè això fos possible, es van crear diversos llenguatges de computació; IVTRAN i TRANQUIL eren versions paral·leles de FORTRAN, i Glypnir era una conversió similar de ALGOL. Generalment, aquests llenguatges afegien suport per a carregar "arrays" de dades a través dels PE perquè s'executessin en paral·lel, i algun fins i tot suportaven la conversió de bucles en operacions d'array.

### Construcció, problemes

A principis del 1966, una Petició de propostes va ser enviada per part de la universitat buscant empreses interessades en construir el disseny. Disset respostes es van rebre el juny, set van respondre, i d'aquestes, tres van ser seleccionades. Diverses respostes, incloent Control Data, van intentar convèncer-los de dissenyar un processador vectorial, però com que aquests ja s'estaven dissenyant, l'equip no estava interessat en construir-ne un altre. L'agost de 1966, contractes de vuit mesos van ser oferits a RCA, Burroughs i Univac per a subhastar la construcció de la màquina.
Finalment, Burroughs Corporation va guanyar el contracte, en conjunció amb Texas Instruments (TI). Ambdós oferien avenços tècnics que convertien la seva oferta en la més atractiva. Burroughs oferia construir una nova i molt més ràpida versió de la memòria Thin Film, mentre que TI oferia construir circuits integrats (IC) amb 20 portes lògiques cadascun, amb connectors de 64 bits. Coneguda posteriorment com a integració d'escala mitjana, durant el seu temps, això era considerat tecnologia punta, ja que la majoria de IC d'aquell temps tenien entre 4 i 7 portes en un paquet de 16 pins. Fer servir aquests IC feia el sistema molt més petit. Durant aquell temps, s'estimava que s'entregarien als inicis del 1970.
Burroughs també aportava discs durs especialitzats, que tenien un cap estacionari separat per a cada pista i podia oferir velocitats de fins a 500 Megabits per segon i emmagatzemaven uns 80 MB per cada disc de 36 polzades. També van aportar un "mainframe" Burroughs B6500 perquè funcionés com a controlador de front-end. Connectat a aquest hi havia un mitjà de gravació òptica, un sistema d'escriptura única que emmagatzemava fins a 1 Terabit. La construcció del nou disseny va començar al laboratori de Burroughs a Great Valley.
Després d'un any d'esforços, TI va anunciar que no van poder construir els IC de 64 bits. El cablejat intern més complex causava Diafonia en la circuiteria, i van demanar un any més per a completar-les. En comptes d'això, l'equip va decidir redissenyar la màquina basada en IC de 16 pins més comuns. Això va fer que el sistema funcionés de forma més lenta, fent servir un rellotge de 16 Mhz en comptes de 25 Mhz, el canvi de 64 pins a 16 pins va costar-li al projecte uns dos anys, i milions de dòlars. TI va arreglar el disseny de 64 pins al cap d'un any. TI va oferir-los al mercat abans que l'ILLIAC es completés.
A causa d'aquest canvi, les plaques van créixer aproximadament una polzada, fins a 6 per 10 polzades. Això va sepultar els esforços de Burroughs per a produir memòria Thin Film per a la màquina, ja que ara no hi havia espai per a posar-la. Intents d'augmentar la mida de les cabines perquè hi hagués espai per a la memòria va causar seriosos problemes de propagació de senyal. Slotnick va comparar els potencials substituts i va escollir memòria de semiconductors de Fairchild Semiconductor, decisió tan oposada per part de Burroughs que va causar una revisió sencera per part d'ARPA.
El 1969, aquests problemes, combinats amb els sobrecostos dels retards, van portar a la decisió de construir un únic quadrant de 64 PE, limitant la velocitat de la màquina a uns 200 MFLOPS. Tots aquests canvis van costar al projecte tres anys i sis milions de dòlars. El 1969, el projecte gastava 1 milió de dòlars cada mes, i va haver de ser separat de l'equip original ILLIAC, que es van oposar fortament al projecte.

### Trasllat a Ames

El 1970, la màquina finalment s'estava construint a un ritme raonable i s'estava preparant per a la seva entrega en aproximadament un any. El 6 de gener de 1970, en el "The Daily Illini", un diari estudiantil, es va afirmar que l'ordinador seria utilitzat per dissenyar armes nuclears. Això va provocar aldarulls als campus universitaris en contra la violència, coincidint, a més a més, amb la Matança del 4 de Maig.
Slotnick es va oposar a l'ús de la màquina en investigacions classificades i va enunciar que sempre que formés part de la universitat, tots els processos que s'hi donessin a terme es farien públics. Tot i això, va començar a tenir sospites que la màquina pogués ser atacada pels grups d'estudiants més radicals. Unes sospites que neixen després que els estudiants locals s'unissin a la vaga estudiantil nacional del 9 de maig de 1970 declarant el "dia de Illiaction" i després que bombardegessin l'edifici de matemàtiques de la Universitat de Wisconsin-Madison el 24 d'agost.
Amb l'ajuda del Hans Mark, el director del Centre d'Investigació Ames, es va decidir el 1971 d'entregar la màquina a Ames en comptes de a la Universitat. Ubicat a una base de la Marina dels EUA i protegida per la Marina dels EUA, la seguretat ja no seria una preocupació. La màquina es va entregar finalment a Ames l'Abril de 1972 y es va instal·lar a la "Central Computer Facility" a l'edifici N-233. En aquest punt, el cost de la màquina ja era de $31 milions, quasi quatre vegades l'estimació inicial de $8 milions per a la màquina completa de 256-PE.
La NASA també va decidir de reemplaçar la màquina B6500 pel front-end per la PDP-10, que era comunament utilitzada a Ames i faria molt més fàcil la seva posterior connexió a ARPAnet. Això va comportar la creació de nou software, especialment compiladors, al PDP-10. Això va causar un retard per la posada en funcionament en línia de la màquina.

### Posada en marxa

Quan la màquina va arribar, no es va poder posar en funcionament immediatament. Tot tipus de problemes, des del trencament de PCBs, passant per resistències defectuoses, fins al enpacatament dels CI i de TI que són altament sensibles a la humitat. Aquests problemes es van superar lentament i, l'estiu de 1973, els primers programes van poder-se executar al sistema, encara que els resultats fossin molt qüestionats. Començant el Juny de 1975, es va fer un gran esforç durant 4 mesos reemplaçant fins a 110.000 resistors, re-cablejant parts per solucionar problemes de propagació de retard de senyals, millorant el filtratge de les fonts d'alimentació i una reducció addicional a la velocitat del rellotge a 13 MHz. Al final d'aquest procés, el sistema finalment estava funcionant correctament.
Des de llavors, el sistema funcionava des del dilluns al matí fins al divendres a la tarda, donant 60 hores de servei (però requerint-ne 44 pel programatge). Tot i això, es va anar ampliant l'ús de la màquina a mesura que els programadors de la NASA van començar a entendre com treure rendiment de la complexa màquina. Al principi, el rendiment era pèssim, amb la majoria dels programes funcionant a aproximadament 15 MFLOPS, aproximadament una tercera part del rendiment del CDC 7600. Amb el temps, això va millorar, sobretot després que els programadors de AMES creessin la seva pròpia versió de FORTRAN, CFC i aprenguessin com fer E/S paral·leles en les PEM limitades. En problemes podien ser paral·lelitzats la màquina era la més ràpida del món, superant la CDC 7600 entre dues i sis vegades, i generalment és coneguda com la màquina més ràpida del món fins al 1981.
El 7 de setembre de 1981, quasi després de 10 d'operació, la ILLIAC IV es va apagar. La màquina va ser donada de baixa oficialment el 1982 i la divisió en computació avançada de la NASA en va deixar de fer ús. Actualment en el Museu d'història dels Computadors, a Mountain View, a menys de 2 km d'on operava hi ha exposat una unitat de control i el xassís d'un element de processament.

### Seqüeles

L'ILLIAC va arribar tard, era molt car, i mai va materialitzar el seu objectiu de produir 1 GFLOP. Va ser considerat un fracàs fins i tot per la gent que hi va treballar; un d'ells va declarar que "qualsevol observador imparcial ha de considerar l'ILLIAC IV com un fracàs en el sentit tècnic." En termes de gestió de projectes també va ser considerat un fracàs, sobrepassant les seves estimacions de costs per quatre i requerint anys d'esforços per a fer-lo funcionar. Com Slotnik mateix va descriure-ho:
"Estic amargament decebut, i molt satisfet... meravellat i consternat. Meravellat de que els objectius es van aconseguir al final. Consternat per que fos tan car, tardés tant a acabar-se, no fes suficient i perquè no suficientment gent l'estan fent servir."
No obstant, anàlisis posteriors denoten que el projecte va tenir varis efectes de llarga durada en el mercat dels computadors en general, de forma intencional i no intencional.
Un dels efectes indirectes va ser la ràpida actualització de la memòria després del projecte ILLIAC. Slotnik va rebre moltes crítiques quan va decidir utilitzar Fairchild Semiconductor per a produir els IC de la memòria, ja que en aquell moment la línia de producció era una sala buida i el disseny només existia en paper. No obstant, després de tres mesos d'esforç intens, Fairchild tenia un disseny en funcionament produït en massa. Com Slotnik va dir posteriorment, "Fairchild va fer un treball magnífic traient-nos les castanyes del foc. Les seves memòries eren superbes i la seva fiabilitat fins al dia d'avui és increïblement bona." Es considera que ILLIAC va fer l'estocada final a la memòria de nucli magnètic i els sistemes relacionats com ara el thin-film.
Un altre efecte indirecte va ser causat per la complexitat de les PCB, o mòduls. A la velocitat de disseny original de 25 MHz, la Impedància del cablejat de terra va suposar un gran problema, cosa que forçava que les PCB fossin tan petites com fos possible. A mesura que la complexitat creixia, les PCB havien d'afegir més i més capes per a evitar augmentar de mida. Finalment, van arribar a fer 15 capes de profunditat, cosa que superava la capacitat dels dissenyadors. El disseny es va acabar finalment amb eines de disseny automàtiques proveïdes per una empresa subcontractada, i el disseny complet va requerir dos anys de temps de computador a un mainframe de Burroughs. Això va ser un gran pas en Computer Aided Design, i als mitjans dels anys 70, aquestes eines es van fer comunes.
ILLIAC també va portar a una gran recerca sobre el processament paral·lel que va tenir amplis efectes. Durant els 80, amb el preu dels microprocessadors caient d'acord amb la Llei de Moore, algunes companyies van crear màquines MIMD (Multiple Instruction, Multiple Data), que eren encara més paral·leles, amb compiladors que podien fer millor ús del paral·lelisme. Va ser el millor enteniment sobre paral·lelisme de l'ILLIAC que va causar la millora de compiladors i programes que podien beneficiar-se d'aquests dissenys. Com va dir un programador de l'ILLIAC, "Si algú fabrica un computador ràpid format per molts microprocessadors, l'ILLIAC IV haurà fet la seva part en el gran esquema de les coses."
La majoria de supercomputadors d'aquella era utilitzaven un altre punt de vista per a aconseguir més rendiment, fent servir un únic processador vectorial.Similars a l'ILLIAC en certa forma, aquests dissenys carregaven molts elements de dades en un únic processador en comptes d'un gran nombre de processadors especialitzats. Un exemple clàssic d'aquest disseny es el Cray-1, que tenia rendiment similar a l'ILLIAC. Hi va haver molta controvèrsia en respecte al disseny de l'ILLIAC com a resultat, i durant un temps el mercat de supercomputadors observava els dissenys massivament paral·lels amb menyspreu, fins i tot quan tenien èxit. Com Seymour Cray va dir, bromejant, "Si haguessis d'arar un camp, com ho faries, amb dos bous forts o amb 1024 pollastres?"

## Descripció
### Arquitectura

Com es pot contemplar a la imatge, els components principals de l'ILLIAC IV eren els sistemes d'Entrada/Sortida, el de fitxers de disc, el controlador per computadors B 6700 i el sistema de matrius.
La potència de càlcul residia en el sistema de matrius. Estava formada per una unitat de control (UC) encarregada de gestionar 64 Unitats de Processament (UP) idèntiques. Cada UP era principalment una combinació d'un Element de Processament (EP) i la memòria corresponent (MEP). El PE no tenia cap control exceptuant pel mode, algunes condicions de dependència de dades i el adreçament dins de la seva pròpia memòria. El control del mode permetia a un EP acceptar o ignorar una seqüència provinent de la UC depenent del bit de configuració d'aquest. L'EP era essencialment una unitat aritmètica de quatre registres capaç d'executar un repertori complet d'instruccions de 64 i 32 bits d'operació. Directament associat a cada EP hi havia una MEP de 2048 paraules de 64 bits de capacitat, 4096 paraules de 32 bits o una combinació de ambdues mides.
El sistema de E/S controlava l'encaminament de les dades sobre els altres elements del sistema i una interfície de 1024 bits que podia ser utilitzada per diferents propòsits, depenent de l'aplicació.
El sistema de fitxers de disc proveïa un una memòria intermèdia amb una capacitat de fins a 312 MB i una taxa de transferència de fins a 125 MB per segon.
El controlador per computadors B 6700 era un computador que permetia tenir control sobre l'execució, el mapping dels recursos, el control dels perifèrics, el control de la iniciació de E/S, recuperació del sistema a causa de fallades i control de compilació.

### Disposició física

Cada quadrant de la màquina feia 3 metres d'alçada, 2,4 metres de profunditat i 15 de llargada. Al costat de cada quadrant hi havia el sistema d'Entrada/Sortida, connectat al dis i al costat d'un computador B 6700 que es connectava a la màquina amb la mateixa interfície que el sistema de discs.

### Detalls dels processadors

Cada CU tenia de trenta a quaranta mil portes. La CU tenia setze registres de 64 bits i un "scratchpad" de 64 slots de 64 bits, LDB. Hi havien quatre acumuladors, de AC0 a AC3, un program counter (ILR) i múltiples registres de control. El sistema tenia un pipeline d'instruccions curt i implementava look-ahead d'instruccions.
Els PE tenien unes dotze mil portes. Incloia quatra registres de 64 bits, utilitzant un acumulador A, un buffer d'operands B i un "scratchpad" secundari S. El quart, R, es feia per a fer broadcast o per a rebre dades dels altres PE. Els PE utilitzaven un adder amb "carry-lookahead", un detector d'uns d'inici per a operacions booleanes, i un barrel shifter. Les addicions de 64 bits tardaven uns 200 ns i les multiplicacions uns 400 ns. Els PE es connectaven a un banc de memòria privat, el PEM, que emmagatzemava 2048 paraules de 64 bits. El temps d'accés era de l'ordre de 250 ns. Els PE utilitzaven una arquitectura Load/store.
El repertori d'instruccions (ISA) contenia dos repertoris separats, un pel CU o una de les seves unitats internes i un altre pels PE. Les instruccions pels PE no es descodificaven, en canvi, s'enviaven directament al registre FINST perquè els PE les processessin. Les instruccions ADVAST es descodificaven i entraven al pipeline de processament de les CU.

### Disposició lògica

Cada quadrant tenia 64 PE i una CU. La CU tenia accés al bus de E/S sencer i podia direccionar tota la memòria de la màquina. Els PE només podien accedir a la seva memòria pròpia, el PEM. Ambdós PE i la CU podien utilitzar operacions LOAD i STORE per a accedir al sistema de discs.
Els armaris eren tan grans que les senyals tardaven 240ns per anar de punta a punta. A causa d'això, la CU no podia fer-se servir per a coordinar accions, en canvi, el sistema sencer es sincronitzava amb un rellotge que garantia que totes les operacions dels PE tardaven el mateix independentment del tipus d'operació. D'aquesta manera, la CU podia saber que les operacions es completaven sense haver d'esperar els resultats o codis d'estat.
Per a millorar el rendiment de les operacions que requerien un dels resultats d'un PE com a entrada d'un altre PE, els PE estaven interconnectats amb els seus veïns a més dels PE a distàncies múltiples de 8. Per exemple, el PE1 es connectava directament amb els PE0 i PE2, a més de PE9 i PE45. Les connexions "eight-away" permetien un transport més ràpid quan les dades havien de viatjar entre PE més distants. Cada shift de les dades movia 64 paraules en un únic cicle de rellotge de 125 ns.
El sistema utilitzava un format d'adreça única, on les instruccions contenien l'adreça d'un dels operands i l'altre operand era a l'acumulador del PE (registre A). L'adreça era enviada als PE sobre un bus separat de broadcast. Depenent de la instrucció, el valor al bus es pot referir a una adreça de memòria al PEM del PE, un valor dels registres del PE o una constant numèrica.

### Salts (Branches)

En els dissenys de computadors tradicionals, les instruccions es carreguen a la CPU d'una en una a mesura que es llegeixen de memòria. Normalment, quan la CPU acaba de processar una instrucció, el Comptador de programa (PC) s'incrementa en una paraula i es llegeix la següent instrucció. Aquest procés s'interromp quan hi ha salts, que causen que el PC salti a una de dues destinacions en funció d'una avaluació, com per exemple si una posició de memòria conté un valor diferent de zero. En el disseny de l'ILLIAC, Cada PE feia la comprovació amb valors diferents, fent que hi hagués diferents resultats a cada PE. Ja que aquests valors eren privats a cada PE, les instruccions següents s'han de carregar en base d'uns valors que només el PE sabia.
Per a evitar la pèrdua de temps que suposaria recarregar les instruccions als PE, l'ILLIAC carregava els PEM amb les instruccions a les dues bandes del salt. Els tests lògics no canvien el PC, en canvi, definien "bits de mode" que informaven al PE si havia d'executar la següent instrucció aritmètica o no. Per a utilitzar aquest sistema, el programa s'havia d'escriure de forma que un dels dos fluxos d'instrucció passés el test i acabés amb una instrucció que invertís els bits. El codi de la segona banda del salt s'executaria tot seguit, acabant amb una instrucció que ficava tots els bits a 1.
Si el test seleccionava la "primera branca", el PE continuaria de forma normal. Quan arribés al final d'aquell codi, la instrucció d'operador de mode invertiria els bits, i a partir de llavors el PE ignoraria les següents instruccions. Això continuaria fins que s'acabés el codi de la "segona branca", on la instrucció de reset de mode tornaria a activar el PE. Si el test d'un PE resultés amb l'execució de la "segona branca", s'ignoraria el codi de la primera branca, s'invertirien els bits de mode i la segona branca s'executaria fins al final.
Ja que els PE podien operar en mode de 64, 32 i 8 bits, els "flags" de mode tenien múltiples bits per a activar i desactivar les paraules de forma individual. Per exemple, si el PE funcionava en mode de 32 bits, un "costat" del PE podria tenir un test amb resultat "true" i l'altre costat "false".

## Terminologia

* UC: Unitat de control.
* CPU: unitat central de processament.
* ISA: repertori d'instruccions.
* PC: Comptador del programa.
* UAL: Unitat Aritmètica Lògica.

## Referències

* ↑ Hord, 1982, p. 1.
* 1 2 3 4 Hord, 1982, p. 14.
* ↑ Hord, 1982, p. 5.
* 1 2 Hord, 1982, p. 8.
* ↑ Hockney i Jesshope, 1988, p. 25.
* 1 2 3 4 Slotnick, 1982, p. 20.
* ↑ MacKenzie, 1998, p. 295.
* ↑ Slotnick, 1982, p. 21.
* ↑ Slotnick, 1982, p. 21-22.
* ↑ MacKenzie, 1998, p. 105.
* 1 2 Bouknight et al., 1972, p. 371.
* 1 2 Slotnick, 1982, p. 23.
* ↑ Slotnick, 1982, p. 24.
* ↑ MacKenzie, 1998, p. 118.
* ↑ MacKenzie, 1998, p. 119.
* ↑ Slotnick, 1982, p. 25.
* 1 2 3 4 5 6 7 8 Slotnick, 1982, p. 26.
* ↑ Barnes et al., 1968, p. 746.
* ↑ Hord, 1982, p. 9.
* ↑ Hord, 1982, p. 15.
* 1 2 Chen, 1967, p. 3.
* ↑ Hord, 1982, p. 10.
* ↑ Barnes et al., 1968, p. 747.
* 1 2 Hord, 1982, p. 11.
* 1 2 3 Falk, 1976, p. 67.
* ↑ Burroughs, 1974, p. 3.
* 1 2 3 4 5 6 7 Slotnick, 1982, p. 27.
* ↑ Falk, 1976, p. 65.
* ↑ Hord, 1982, p. 7.
* ↑ Falk, 1976, p. 69.
* ↑ Falk, 1976, p. 68.
* ↑ Hord, 1990, p. 9.
* ↑ Hord, 1990, p. 10.
* ↑ Hord, 1990, p. 12.
* ↑ Hord, 1990, p. 13.
* ↑ Falk, 1976, p. 66.
* 1 2 3 Burroughs, 1974, p. 5.
* 1 2 3 Burroughs, 1974, p. 4.
* 1 2 Chen, 1967, p. 9.
* ↑ Technical, 1968, p. 2.10.
* ↑ Technical, 1968, p. 2.7.
* ↑ Technical, 1968, p. 2.11.
* ↑ Technical, 1968, p. 2.12.
* ↑ Burroughs, 1974, p. 7.
* 1 2 3 4 Burroughs, 1974, p. 6.

## Vegeu també

* Llei d'Amdahl, que suggereix que hi ha límits en la millora de rendiment dels computadors paral·lels.
* Computació paral·lela

## Bibliografia

* Hord, R. Michael. The Illiac IV: The First Supercomputer (en anglès). Springer-Verlag, 1982. ISBN 978-3-540-11765-0.
* MacKenzie, Donald. Knowing Machines: Essays on Technical Change. MIT Press, 1998.
* Slotnick, Daniel «The Conception and Development of Parallel Processors - A Personal Memoir». Annals of the History of Computing, 4, gener 1982, pàg. 20–30. DOI: 10.1109/mahc.1982.10003.
* Barnes, George; Brown, Richard; Kato, Maso; Kuck, David; Slotnick, Daniel; Stokes, Richard «The ILLIAC IV Computer». IEEE Transactions on Computers, C.17, agost 1968, pàg. 746–757. DOI: 10.1109/tc.1968.229158.
* Hockney, R.W; Jesshope, C.R. Parallel Computers 2: Architecture, Programming and Algorithms. CRC Press, 1988, p. 25.
* Bouknight, W.J.; Denenberg, Stewart; McIntyre, David; Randall, J.M.; Sameh, Amed; Slotnick, Daniel «The Illiac IV System». IEEE, 60, abril 1972, pàg. 369–388. DOI: 10.1109/proc.1972.8647.
* ILLIAC IV. Burroughs Corporation, 1974.
* Falk, Howard «Reaching for a gigaflop». IEEE Spectrum, 13, octubre 1976, pàg. 65–70. DOI: 10.1109/mspec.1976.6367550.
* Hord, R. Micheal. Parallel Supercomputing in SIMD Architectures. CRC Press, 1990.
* Chen, Tie Chi. A Description of the ILLIAC IV. IBM, 1967.
* ILLIAC IV Technical Summary, 1968.