Кіріспе

Алғашқы массалық параллельді компьютер

ILLIAC IV – алғашқы массалық параллельді компьютер. Жүйе бастапқыда 256 64 биттік қозғалатын нүктелі процессор (FPU) және секундына 1 миллиард операцияны өңдеуге қабілетті төрт орталық процессордан (CPU) тұруы жоспарланған. Бюджеттік шектеулерге байланысты, тек 64 FPU және бір CPU бар бір «квадрант» ғана салынды. FPU-лардың барлығы бірдей команданы – ADD, SUB сияқты – өңдегендіктен, қазіргі терминологияда бұл жобалау бір команда, көп дерек немесе SIMD болып есептеледі. Процессорлар массивін пайдаланып компьютер құру идеясы Дэниел Слотникке 1952 жылы IAS машинасымен бағдарламашы ретінде жұмыс істеген кезде келді. 1960 жылға дейін ресми жобалау басталмады, ол кезде Слотник Westinghouse Electric компаниясында жұмыс істеп, АҚШ Әуе күштерінің келісімшарты бойынша дамуды қаржыландыруды ұйымдастырды. 1964 жылы қаржыландыру тоқтағаннан кейін Слотник Иллинойс университетіне көшіп, Illinois Automatic Computer (ILLIAC) тобына қосылды. Advanced Research Projects Agency (ARPA) қаржылық қолдауымен олар бастапқы 1024 1 биттік процессорлы тұжырымдаманың орнына 256 64 биттік процессорлы жаңа тұжырымдаманың жобасын бастады. Burroughs машинасы құрастырып жатқанда, университет оны орналастыру үшін жаңа ғимарат салуды бастады. АҚШ Қорғаныс министрлігінен түскен қаржыландыруға байланысты саяси шиеленіс ARPA мен университеттің машинаның қауіпсіздігі үшін алаңдатуына әкелді. 1972 жылы машинаның алғашқы 64 процессорлы квадранты аяқталып, Калифорниядағы NASA Ames Research Center-ге жіберілді. Әр түрлі ақауларды жою үшін үш жыл бойы мұқият түзетулерден кейін, ILLIAC IV 1975 жылдың қарашасында ARPANET желісіне қосылды, бұл Cray 1-ден шамамен 12 айға бұрын желілік суперкомпьютер болып, тарихта алғаш рет осы құрылғыға ие болды. Жобаланған жылдамдығының жартысына жұмыс істей отырып, бір квадрантты ILLIAC IV 50 MFLOP ең жоғары өнімділікті қамтамасыз етті, бұл оны сол кездегі әлемдегі ең жылдам компьютер етті. Ол сондай-ақ қатты күйдегі жадты пайдаланған алғашқы ірі компьютер және 1 миллионнан астам қақпасы бар сол кезге дейін құрылған ең күрделі компьютер деп есептеледі. Бюджеттің үлкен асып кетуіне байланысты жалпы алғанда сәтсіздікке ұшыраған жоба, параллельді жүйелерді бағдарламалаудың жаңа әдістері мен жүйелерін әзірлеуде маңызды рөл атқарды. 1980 жылдары ILLIAC IV тұжырымдамасына негізделген бірнеше машиналар сәтті жеткізілді.

Шығу тегі

1952 жылдың маусым айында Дэниел Слотник Принстон университетінің Жоғары оқу орнында (IAS) ИАС машинасымен жұмыс істей бастады. IAS машинасы 40 биттік сөздермен жұмыс істейтін, биттік-параллельді математикалық бөлімге ие болды. Алғашқыда Уильямс түтігімен жабдықталған, кейіннен Engineering Research Associates компаниясының магниттік барабаны қосылды. Бұл барабанда 80 жол болды, сондықтан бір уақытта екі сөзді оқуға болады, әр жол 1024 бит сақтайтын. Барабанның механизмін ойлап, Слотник компьютерді құрудың дұрыс жолы осы ба екен деп ойлана бастады. Егер сөздің биттері 40 жолға параллель емес, бір жолға тізбектей жазылса, деректерді барабаннан тікелей биттік-тізбекті компьютерге біт-бітімен енгізуге болады. Барабанда әлі де бірнеше жолдар мен оқу бастары болар еді, бірақ сөзді жинап, оны бір ALU-ға жіберудің орнына, осы тұжырымдамада әр жолдағы деректер біртіндеп оқылып, параллель ALU-ларға жіберілер еді. Бұл сөздік-параллельді, биттік-тізбекті компьютер болар еді. Слотник бұл идеяны IAS-та көтерді, бірақ Джон фон Нейман оны "өте көп түтікшелер қажет етеді" деп есептеді. Слотник 1954 жылдың ақпанында IAS-тан кетіп, докторантураға оқуға оралды, және бұл мәселе ұмытылды.

СОЛОМОН

Докторлық диссертациясын қорғағаннан кейін және постдокторантурадан кейін Слотник IBM компаниясына жұмысқа орналасты. Осы кезде, ғылыми есептеулер үшін кемінде, түтікшелер мен барабандар транзисторлармен және магниттік өзек жадымен алмастырылды. Барабаннан әртүрлі дерек ағындарын өңдейтін параллель процессорлар туралы идея енді бұрынғыдай тартымды болмады. Дегенмен, тағы бір зерделеу паралель машиналар кейбір қолдануларда әлі де маңызды өнімділік бере алатынын көрсетті; Слотник пен оның әріптесі Джон Кокк (RISC ойлап тапқандығымен әйгілі) 1958 жылы осы тұжырымдама бойынша мақала жазды. IBM-де қысқа уақыт жұмыс істегеннен кейін, содан кейін Aeronca Aircraft компаниясында жұмыс істегеннен кейін, Слотник Вестингхаус компаниясының Air Arm бөлімшесінде жұмыс істеді, ол радар және осыған ұқсас жүйелермен айналысты. АҚШ Әуе күштерінің RADC келісімшарты бойынша Слотник 1024 биттік тізбекті АЛУ-ы бар, «өңдеу элементтері» немесе PE-лер деп аталатын жүйе құру үшін команда құрастыра алды. Бұл жобаға Сүлеймен ханның аты берілді, өйткені ол өте дана болған және 1000 әйелі болған. PE-лерге бір ғана бас процессор (CPU), «басқару блогы» (CU) арқылы нұсқаулар берілетін болды. SOLOMON-ның CU жадтан нұсқауларды оқып, оларды декодтайды, содан кейін өңдеу үшін PE-лерге жібереді. Әр PE операндар мен нәтижелерді сақтау үшін жеке жадыға ие болды, ол PE жад модулі немесе PEM деп аталды. CU арнайы жад шинасы арқылы бүкіл жадқа қол жеткізе алды, ал PE-лер тек өз PEM-деріне ғана қол жеткізе алды. Бір PE-нің нәтижелерін екінші PE-ге енгізу үшін әр PE жеке желі арқылы ең жақын сегіз көршісімен байланыстырылды. Бірнеше сынақ жүйелері құрастырылды, оның ішінде 3x3 (9 PE) жүйесі және қарапайым PE-лермен 10x10 моделі. Осы кезеңде күрделі PE жобалары қарастырылды, нәтижесінде 24 биттік параллель жүйе пайда болды, ол 256x32 ретпен ұйымдастырылатын болды. Бұл жобаны пайдаланып, 1963 жылы бір ғана PE құрастырылды. Жобалау жұмыстары жалғасқанда, АҚШ Қорғаныс министрлігінің негізгі демеушісі апатта қаза тапты және одан әрі қаржыландыру болмады. Дамуды жалғастыру үшін Слотник Ливерморға жүгінді, ол сол кезде суперкомпьютерлерді сатып алуда көш бастап тұрған. Олар жобаға қызығушылық танытты, бірақ оны қазіргі дизайнның тұрақты нүктелі математикалық блогын нақты қозғалмалы нүктеліге дейін жаңартуға көндірді, нәтижесінде SOLOMON.2 дизайны пайда болды. Ливермор жобаны қаржыландыруға келіспеді, керісінше, машина аяқталғаннан кейін оны жалға алуға келісімшарт ұсынды. Вестингхаус басшылығы бұл тым тәуекелді деп есептеп, команданы таратып жіберді. Слотник Westinghouse компаниясынан кетіп, жобаны жалғастыру үшін венчурлік капитал табуға тырысты, бірақ сәтті болмады. Ливермор кейіннен CDC STAR 100-ді осы рөлге таңдады, өйткені CDC даму шығындарын өз мойнына алуға дайын болды.

ILLIAC IV (Қоғамдық қызмет)

SOLOMON аяқталғаннан кейін, Slotnick Иллинойс Университетінің Урбана-Шампейндегі Иллинойс автоматты есептеу машинасы (ILLIAC) командасына қосылды. Иллинойс штаты 1949 жылдан бері АҚШ Қорғаныс министрлігі және Advanced Research Projects Agency (ARPA) үшін үлкен есептеу машиналарын жобалап, құрастырып келді. 1964 жылы университет ARPA-мен келісімшартқа қол қойды, нәтижесінде ILLIAC IV пайда болды, себебі ол университетте жасалған төртінші есептеу машинасы еді. 1965 жылы әзірлеу жұмыстары басталды, ал 1966 жылы алғашқы жоба аяқталды. SOLOMON-ның биттік тізбектелген принципінен өзгеше, ILLIAC IV-те PE-лер толық 64 биттік (биттік параллель) процессорларға жаңартылды, олар 12 000 логикалық элемент пен 2048 сөздік жұқа пленкалық жадты пайдаланды. PE-лердің әрқайсысының арнайы мақсаты бар бес 64 биттік тіркегіші болды. Олардың бірі, RGR, көршілес PE-лерге деректерді бір сағат циклында бір "секіріспен" жіберу үшін қолданылды. Тағы бір тіркегіш, RGD, PE-нің қазіргі уақытта белсенді екенін немесе жоқ екенін көрсетті. "Белсенді емес" PE-лер жадқа кіре алмады, бірақ олар RGR арқылы көршілес PE-лерге нәтижелерді жіберді. PE-лер 64 биттік FPU, екі 32 биттік жартылай дәлдікті FPU немесе сегіз 8 биттік тұрақты нүктелі процессор ретінде жұмыс істеуге арналған. 1,024 PE және бір басқару блогының (CU) орнына, жаңа жобада барлығы 256 PE болды, олар әрқайсысы өз басқару блогымен төрт 64 PE "квадрантқа" орналастырылды. CU-лар да 64 биттік дизайнмен жасалған, алпыс төрт 64 биттік тіркегіш және тағы төрт 64 биттік аккумуляторлары бар. Жүйе төрт жеке 64 PE машинасы, екі 128 PE машинасы немесе бір 256 PE машинасы ретінде жұмыс істей алады. Бұл жүйеге деректердің көлемі 256 PE массивін толық пайдалануды қажет етпеген кезде әртүрлі мәселелерді шешуге мүмкіндік берді. 25 МГц сағаттық жиілікте, барлық 256 PE бір бағдарламаны орындағанда, машина секундына 1 миллиард қалқыма нүктелі операцияны, яғни қазіргі терминологиямен 1 GFLOPS өнімділікті қамтамасыз етуге арналған. Бұл оны әлемдегі кез келген машинадан едәуір жылдам етті; сол кездегі CDC 7600 машинасының сағаттық циклы 27,5 наносекунд немесе 36 MIPS-ке тең болды, бірақ түрлі себептерге байланысты оның өнімділігі көбінесе 10 MIPS-ке жақын болды. Машинаны қолдау үшін Цифрлық есептеу зертханасы ғимаратының кеңейтілуі салынды. Университеттегі сынақ жұмыстары негізінен PE-лерді деректермен тиімді толтыру тәсілдерін зерттеуге бағытталды, осылайша есептеу машиналарын дамытуда алғашқы "стресс-тест" жүргізілді. Бұл процесті мүмкіндігінше жеңілдету үшін бірнеше жаңа есептеу тілдері құрылды: IVTRAN және TRANQUIL – FORTRAN-ның параллельдік нұсқалары, ал Glypnir – ALGOL-дың ұқсас түрлендірілген нұсқасы. Жалпы, бұл тілдер деректердің массивтерін PE-лерге параллель орындау үшін жүктеуді қамтамасыз етті, ал кейбіреулері тіпті циклдарды массивтік операцияларға айналдыруды қолдады.

Құрылыс, проблемалар

1966 жылдың басында университет жобаны жасауға қызығушылық танытқан өнеркәсіптік серіктестерді іздеу үшін ұсыныс сұранысын жіберді. Шілде айында 17 жауап келіп түсті, олардың 7-сі жауап берді, ал осылардың үшеуі таңдалды. Бірнеше жауаптардың ішінде Control Data компаниясы оларды векторлық процессор дизайнына қызықтыруға тырысты, бірақ олар қазірдің өзінде жобаланып жатқандықтан, команда басқасын жасауға қызығушылық танытпады. 1966 жылдың тамызында RCA, Burroughs және Univac компанияларына машинаны салуға арналған сегіз айлық келісімшарт ұсынылды. Burroughs ақырында келісімшартты Texas Instruments (TI) компаниясымен бірлесіп жеңіп алды. Екі компания да өздерінің ұсыныстарын ең қызықты ететін жаңа техникалық жетістіктер ұсынды. Burroughs жаңа және әлдеқайда жылдам нұсқадағы жұқа пленкалы жадты жасауды ұсынды, бұл өнімділікті жақсартатын болады. TI 64 шұңқырлы, эмитерге қосылған логикалық (ECL) интегралды схемаларды (IC) әрқайсысы 20 логикалық қақпалармен жасауды ұсынды. Ол кезде көптеген IC-терде 16 шұңқырлы пакеттер қолданылып, 4 және 7 қақпасы болды. TI-дің интегралдық схемаларын пайдалану жүйелерді әлдеқайда кішірейтеді. Burroughs сонымен қатар арнайы дискілік жетектерді ұсынды, олар әр жол үшін жеке стационарлық басымен жабдықталған және 500 Мбит/с жылдамдықты ұсына алатын, ал 36 дюймдік дискіге шамамен 80 МБ сақталатын. Олар сондай-ақ Burroughs B6500 орталық компьютерін алдын-ала басқарушы ретінде, екінші жақтағы сақтаудан деректерді жүктеу және басқа үй шаруаларын орындау үшін ұсынды. B6500-ге үшінші тараптың лазерлік оптикалық жазу құралы қосылды, бұл бір рет жазу жүйесі, ол айналатын барабанмен тасымалданатын полиэстер табақшасының жолағына қапталған жұқа металл пленкасында 1 Тбит-қа дейін сақталған. Жаңа жобаны жасау жұмыстары Burroughs-тың "Ұлы аңғар" зертханасында басталды. Ол кезде машина 1970 жылдың басында жеткізілетін болады деп есептелген. IC-де бір жыл жұмыс істегеннен кейін TI 64 шұңқырлы дизайнды құрастыра алмағанын мәлімдеді. Ішкі сымдардың күрделілігі тізбекте қиылысуға себеп болды, сондықтан олар проблеманы шешу үшін тағы бір жыл сұрады. Оның орнына ILLIAC командасы 16 шұңқырлы IC-ге негізделген машинаны қайта құруды таңдады. Бұл жүйені бастапқы 25 МГц орнына 16 МГц сағатымен жұмыс істеуге мәжбүр етті. 64 шұңқырдан 16 шұңқырға ауысу жобаға екі жылдай уақыт пен миллиондаған доллар жұмсады. TI 64 шұңқырлы дизайнды бір жылдан кейін ғана іске қосып, ILLIAC аяқталмас бұрын оларды нарыққа ұсына бастады. Бұл машина үшін жұқа пленкалы жад жасауға Burroughs-тың күш-жігерін тоқтатты, өйткені енді дизайн шкафтарына жадты орналастыруға жеткілікті орын болмады. Жадқа орын беру үшін шкафтардың көлемін ұлғайту әрекеті сигналдың таралуымен байланысты үлкен қиындықтар туғызды. Slotnick әлеуетті алмастыруларды зерттеп, Fairchild Semiconductor компаниясынан жартылай өткізгіш жадыны таңдады, бұл шешімге Burroughs қарсы болды, содан кейін ARPA толық тексеру жүргізді. 1969 жылы бұл проблемалар, кідіртулерден туындаған шығындармен бірігіп, 64 PE квадрантын ғана жасау туралы шешім қабылдады, осылайша машинаның жылдамдығы шамамен 200 MFLOPS-қа дейін шектелді. Бұл өзгерістердің барлығы жобаға үш жыл және 6 миллион доллар жұмсалды. 1969 жылы жобаға айына 1 миллион доллар жұмсалды және жобаға қарсылық білдіруде айтарлықтай дауыспен айтылып келе жатқан ILLIAC командасынан бөлініп шығуға тура келді.

Эймске ауысу

1970 жылға қарай машина, ақыры, лайықты қарқынмен құрастырылып, шамамен бір жылдан кейін жеткізілуге дайын болды. 1970 жылдың 6 қаңтарында студенттік газет «The Daily Illini» компьютердің ядролық қару жасауға пайдаланылатынын мәлімдеді. Мамыр айында Кент штатында оқ жарылысы болды, университеттерде соғысқа қарсы зорлық-зомбылық күшейді. Слотник машинаны құпия зерттеулерге қолдануға қарсы болды және машинада жүргізілген барлық өңдеулер университет аумағында болғанша, жария етілетінін хабарлады. Ол сондай-ақ машинаның радикалды студенттік топтардың шабуылына ұшырауы мүмкін деген алаңдаушылықты күшейтті. Бұл позиция, жергілікті студенттер 1970 жылдың 9 мамырында «Иллиакция күні» деп жариялап, жалпыұлттық студенттік ереуілге қосылғаннан кейін, және әсіресе 24 тамызда Висконсин университетіндегі (Мэдисон) математика ғимаратының бомбаға ұшырауынан кейін, дұрыс болып көрінді. 1971 жылдың қаңтарында Силикон алқабындағы NASA Ames Research Center-дің директоры Ханс Марктың көмегімен машинаны университетке емес, Ames-ке жеткізу туралы шешім қабылданды. Белсенді АҚШ Әскери-теңіз базасында орналасқан және АҚШ Теңіз жаяу әскерлерімен қорғалғандықтан, қауіпсіздік енді алаңдау тудырмады. Машина, ақыры 1972 жылдың сәуірінде Ames-ке жеткізіліп, N 233 ғимаратындағы Орталық компьютерлік кешенге орнатылды. Осы кезде ол бірнеше жылға кешіктіріліп, бюджеттен әлдеқайда асып, жалпы құны 31 миллион долларды құрады, бұл толық 256 PE машинасының бастапқы 8 миллион долларлық бағасынан шамамен төрт есе жоғары болды. NASA сонымен қатар B6500 алдыңғы машинасын PDP 10-мен ауыстыруды шешті, олар Ames-те кеңінен қолданылып, ARPAnet-ке қосылуды жеңілдетер еді. Бұл үшін PDP 10-да жаңа бағдарламалық жасақтама, әсіресе компиляторларды жасау қажет болды. Бұл машинаны іске қосуды одан әрі кешіктірді. Illiac IV басқару құқығы ACTS Computing Corporation компаниясына берілді, бас кеңсесі Southfield, MI қаласында орналасқан, жақында Lear Siegler Corporation конгломераты сатып алған Timesharing және Remote Job Entry (RJE) компаниясы. Қорғаныс министрлігі ACTS компаниясымен 10% үстемемен келісімшарт жасасты. Бұл ерекше жағдайдың себебі, ешбір мемлекеттік қызметкердің еңбек ақысы Конгресс мүшесінен жоғары болмауы керек еді, ал Illiac IV қызметкерлерінің көптегені осы шектен асып түсті. Калифорния университетіндегі (Беркли) және Беркли компьютер корпорациясының (BCC) тәжірибесі бар доктор Мел Пиртл Illiac IV директоры болып тағайындалды.

Оны іске асыру

Машина алғаш келген кезде оны іске қосу мүмкін болмады. Ол басылған платалардың (ПХБ) жарылуынан бастап, нашар резисторларға дейін, TI интегралды схемаларының ылғалға өте сезімтал болуына дейін түрлі проблемалардан зардап шекті. Бұл мәселелер біртіндеп шешілді, ал 1973 жылдың жазында жүйеде алғашқы бағдарламалар іске қосылды, бірақ нәтижелер өте күмәнді болды. 1975 жылдың маусымынан бастап төрт айлық қарқынды жұмыс жүргізілді, оның аясында 110 000 резистор ауыстырылды, таралу уақытының кешігуін жою үшін бөліктер қайта сымдалды, қуат көздеріндегі сүзгілер жақсартылды және сағат жылдамдығы 13 МГц-қа дейін төмендетілді. Осы процестің соңында жүйе толыққанды жұмыс істеді. Содан бері жүйе дүйсенбі күні таңертеңнен жұма күні түске дейін жұмыс істеді, пайдаланушыларға 60 сағаттық жұмыс уақытын қамтамасыз етті, бірақ 44 сағаттық жоспарланған үзіліс уақытын қажет етті. Дегенмен, ол NASA бағдарламашылары күрделі жүйеден тиімділік алудың жолдарын үйренген сайын жиі қолданыла бастады. Алғашқыда тиімділік өте төмен болды, көптеген бағдарламалар шамамен 15 MFLOPS жылдамдықпен жұмыс істеді, бұл CDC 7600 үшін орташа көрсеткіштен үш есеге жуық. Уақыт өте келе бұл көрсеткіш жақсарды, әсіресе Эймс бағдарламашылары FORTRAN және CFD-нің өз нұсқаларын жазғаннан кейін, сондай-ақ шектеулі PEM-ге параллель I/O қалай жүзеге асыруды үйренгеннен кейін. Параллель өңдеуге болатын мәселелерде машина әлемдегі ең жылдам машина болып саналды, CDC 7600-ден екі-алты есе артық өнімділік көрсетті және ол 1981 жылға дейін әлемдегі ең жылдам машина деп мойындалды. 1981 жылдың 7 қыркүйегінде, шамамен 10 жыл бойы жұмыс істегеннен кейін ILLIAC IV өшірілді. 1982 жылы машина ресми түрде қолданудан шығарылды, сонымен қатар NASA-ның озық есептеу бөлімінің де қызметі тоқтатылды. Машинадан бір басқару блогы мен бір өңдеу элементінің корпусы қазір Маунтин-Вьюдегі Компьютер тарихы мұражайында, оның жұмыс істеген орнынан бір шақырымдай қашықтықта орналасқан.

Салдары

ILLIAC өте кешті, өте қымбатқа түсті және 1 GFLOP өнімділікке жетпеді. Онымен жұмыс істегендердің өзі сәтсіздік деп есептеді; біреуі қарапайым түрде: «Кез келген бейтарап бақылаушы Illiac IV-ті техникалық жағынан сәтсіздік деп қарауы керек» деді. Жобаны басқару тұрғысынан қарағанда, бұл жоба сәтсіздікке ұшырады, шығындары бастапқы есептеулерден төрт есе артығып, оны жұмыс істеуге келтіру үшін жылдар бойы жөндеу жұмыстарын жүргізу қажет болды. Дегенмен, кейінгі талдаулар жобаның компьютерлік нарыққа әртүрлі, тікелей де, тікелей емес де, ұзақ мерзімді әсер еткенін көрсетті. Тікелей емес әсерлердің бірі – ILLIAC жобасынан кейін жартылай өткізгіш жадтың жылдам жаңаруы. Slotnick жад микросхемаларын өндіру үшін Fairchild Semiconductor компаниясын таңдағанда көп сынға ұшырады, себебі сол кезде өндіріс желісі бос бөлме болған және жоба тек қағаз бетінде ғана болған. Бірақ үш ай тынымсыз еңбектен кейін Fairchild жұмыс істейтін жобаны жаппай өндіруге қол жеткізді. Слотник кейінірек: «Fairchild біздің қиын жағдайдан шығуға керемет көмектесті. Fairchild жадтары өте жақсы болды және олардың сенімділігі бүгінгі күнге дейін жоғары» деді. ILLIAC магниттік ядролық жад және жіңішке пленка сияқты оған байланысты жүйелерге соққы берді деп есептеледі. Баспалы схема тақталарының (PCB) немесе модульдердің күрделілігі де тікелей емес әсер болды. Бастапқы 25 МГц жобалық жылдамдықта жер сызықтарындағы кедергі үлкен мәселе тудырып, PCB-нің мүмкіндігінше кіші болуын талап етті. Олардың күрделілігі артқан сайын, PCB-нің көлемі үлкеймеуі үшін оларға көбірек қабаттар қосуға тура келді. Ақырында, олар 15 қабатқа дейін жетті, бұл суретшілердің қабілетінен асып түсті. Жобаны аяқтау үшін субподрядшы ұсынған жаңа автоматтандырылған жобалау құралдары қолданылды, ал толық жобалауға екі жыл компьютер уақыты кетті. Бұл компьютерлік жобалаудағы маңызды қадам болды және 1970 жылдардың ортасына қарай мұндай құралдар кеңінен қолданыла бастады. ILLIAC сонымен қатар параллель өңдеу мәселесіне қатысты кең ауқымды зерттеулерге жол ашты. 1980 жылдары Мур заңына сәйкес микропроцессорлардың бағасы төмендегенде, бірнеше компаниялар MIMD (Көп нұсқау, Көп дерек) құрылғыларын жасады, олар параллелизмді жақсырақ пайдалана алатын компиляторлармен бірге, тіпті көбірек параллельді машиналар құрды. Thinking Machines CM 5 – MIMD тұжырымдамасының жарқын мысалы. ILLIAC-та параллелизмді жақсы түсіну осы жобаның артықшылықтарын пайдалана алатын жақсартылған компиляторлар мен бағдарламаларға әкелді. ILLIAC бағдарламашысының айтуынша, «егер біреу көптеген микропроцессорлардан жылдам компьютер жасаса, Illiac IV осы істе үлкен үлес қосады». Сол дәуірдегі көптеген суперкомпьютерлер жоғары өнімділікке басқа тәсіл қолданды, бір ғана өте жылдам векторлық процессорды пайдаланды. ILLIAC-ке ұқсас, бұл процессорлар көптеген дерек элементтерін көптеген арнайы процессорлардың орнына бір ғана бейімделген процессорға жүктеді. Бұл жобаның классикалық мысалы – ILLIAC-ке ұқсас өнімділігі бар Cray 1. Соның салдарынан ILLIAC жобасына қарсы белгілі бір «қарсылық» туды, және біраз уақыт бойы суперкомпьютер нарығы жаппай параллельді жобаларға күдікпен қарады, тіпті олар сәтті болған жағдайда да. Сеймур Крей әйгілі түрде: «Егер сіз егістікті жыртып жатсаңыз, қайсысын таңдайсыз? Екі күшті өгізді ме, әлде 1024 тауықты ма?» деді.

Физикалық орналасуы

Машинаның әрбір квадранты 3 метр биіктікте, 2 метр тереңдікте және 15 метр ұзындықта болды. Квадранттың қасында оның кіріс/шығыс (I/O) жүйесі орналасқан, оның дискілік жүйесі 2,5 ГиБ сақтайтын және секундына 1 миллиард бит жылдамдықпен деректерді оқи және жаза алатын, сондай-ақ дискілік жүйе сияқты машинаға 1024 биттік кең интерфейс арқылы қосылған B6700 компьютері болды. Машина бірнеше шағын модульді ұстайтын тасымалдаушы шассилер сериясынан тұрды. Олардың көп бөлігі – бір ПЭ, оның ПЭМ және адресті аудару мен кіріс-шығаруды басқаратын жад логикалық блогының модульдерін қамтитын өңдеу блоқтары (ПУ) болды. ПУ-лар бірдей болғандықтан, оларды қажет болған жағдайда ауыстыруға немесе қайта орналастыруға болады.

Процессордың мәліметтері

Әр КУ-да 30 мыңнан 40 мыңға дейін қақпалар болды. КУ-да он алты 64 биттік регистр және жеке 64 ұялы 64 биттік "жұмыс жадысы" LDB болды. Төрт аккумулятор (AC0-ден AC3-ге дейін), бағдарлама санауыш ILR және түрлі басқару регистрлері болды. Жүйеде қысқа нұсқау құбыры және нұсқауларды алдын ала қарау мүмкіндігі болды. ПЭ-де 12 мыңға жуық қақпа болды. Ол төрт 64 биттік регистрден тұрды: аккумулятор А, операнд буфері В және қосымша жұмыс жады S. Төртіншісі, R, басқа ПЭ-лерден дерек тарату немесе қабылдау үшін қолданылды. ПЭ-лер көтеру-көзді қосымшаны, логикалық операциялар үшін жетекші бірді анықтағышты және цилиндрлік ауыстырғышты пайдаланды. 64 биттік қосу шамамен 200 нс, ал көбейту шамамен 400 нс уақыт алды. ПЭ-лер жеке жад банкіне, PEM-ге қосылды, онда 2048 64 биттік сөз сақталды. Дерекке қол жеткізу уақыты шамамен 250 нс-қа тең болды. ПЭ-лер жүктеу/сақтау архитектурасын қолданды. Нұсқаулар жиынтығы (ISA) екі бөлек нұсқаулар жиынтығын қамтыды: біреуі КУ (немесе оның ішіндегі бірлік, ADVAST) үшін, екіншісі ПЭ үшін. ПЭ-ге арналған нұсқаулар декодталмады, керісінше тікелей FINST тіркелгісіне жіберілді, ол оларды өңдеу үшін ПЭ-ге жіберетін болды. ADVAST нұсқаулары декодталып, КУ-дың өңдеу құбырына енгізілді.

Логикалық орналасуы

Әр квадрантта 64 ПЭ және бір КУ болды. КУ барлық I/O шинасына қол жеткізе алды және машинаның барлық жадына сілтеме жасай алды. ПЭ тек өзінің жергілікті жадысына, PEM-ге, 2048 64 биттік сөзбен ғана қатынаса алады. ПЭ және КУ дискілік жүйеге қол жеткізу үшін жүктеу және сақтау операцияларын пайдалана алады. Шкафтар соншалықты үлкен болды, сигналдар бір шетінен екінші шетіне дейін 240 нс уақыт қажет етті. Осы себепті КУ әрекеттерді үйлестіру үшін қолданыла алмады, керісінше, бүкіл жүйе синхронды сағатпен жұмыс істеді, ПЭ-дегі барлық операциялар операндыларына қарамастан бірдей уақыт алатыны кепілденді. Осылайша КУ операциялардың аяқталғанына нәтижелер мен статус кодтарын күтіп отырмай-ақ сенімді бола алды. Бір ПЭ-нің нәтижелерін екінші ПЭ-ге кіріс ретінде пайдалануды қажет ететін операциялардың өнімділігін арттыру үшін ПЭ-лер тікелей көршілеріне, сондай-ақ сегіз қадам қашықтықтағыларға қосылды. Мысалы, ПЭ1 тікелей ПЭ0 және ПЭ2-ге, сондай-ақ ПЭ9 және ПЭ45-ке қосылды. Сегіз қадамдағы байланыс деректерді алыс ПЭ арасында жылдам тасымалдауға мүмкіндік берді. Әрбір деректерді жылжыту 125 нс сағат циклында 64 сөзді жылжытты. Жүйе бір мекенжай форматын қолданды, онда нұсқаулар операндтардың біреуінің мекенжайын қамтыды, ал екінші операнд ПЭ аккумуляторында (A тіркегішінде) болды. Мекеңжай ПЭ-ге жеке «хабарлама тарату» шинасы арқылы жіберілді. Нұсқауларға байланысты шинадағы мән ПЭ-нің PEM-індегі жад орнына, ПЭ тіркегіштерінің біреуіндегі мәнге немесе сандық тұрақтыға сілтеме жасай алады. Әрбір ПЭ-нің өз жады болғандықтан, ал нұсқаулар форматы мен КУ бүкіл мекенжай кеңістігін көретін болғандықтан, жүйе негізгі мекенжайды өзгерту үшін индекс тіркегішін (X) қамтыды. Бұл, мысалы, әртүрлі ПЭ-дегі бірдей орындарында сәйкес келмейтін деректермен жұмыс істеуге мүмкіндік берді. Көрінетін мысал – ПЭМ-дегі әртүрлі орындарға жүктелген, содан кейін әртүрлі ПЭ-дегі индексті орнату арқылы біркелкілендірілген деректер массиві.

Филиалдар

Дәстүрлі компьютерлік құрылымдарда нұсқаулар жадтан оқылғанда CPU-ға бірінен соң бірі жүктеледі. Әдетте, CPU нұсқауды өңдеуді аяқтаған кезде, бағдарлама санағышы (PC) бір сөзбен арттырылады және келесі нұсқау оқылады. Бұл процесс тармақталулармен тоқтатылады, бұл PC-нің белгілі бір сынақ нәтижесіне байланысты екі орның біріне секіруіне себеп болады, мысалы, берілген жад адресі нөлдік емес мәнді сақтайды ма, жоқ па. ILLIAC жобасында әрбір PE осы сынақты әртүрлі мәндерге қолданады, демек, әртүрлі нәтижелерге ие болады. Бұл мәндер PE-ге жеке болғандықтан, келесі нұсқауларды тек PE-нің білетін мәніне сүйеніп жүктеу қажет. PE нұсқауларын қайта жүктеуден туындайтын кешігулерді болдырмау үшін ILLIAC PE-лерді тармақтың екі жағындағы нұсқаулармен жүктеді. Логикалық сынақтар PC-ні өзгертеді, оның орнына PE-ге келесі арифметикалық нұсқауды орындау керек пе, жоқ па, дегенді көрсететін "режим биттерін" орнатады. Бұл жүйені пайдалану үшін бағдарлама осылай жазылуы керек: екі мүмкін нұсқау ағынының бірі сынақтан кейін келеді және биттерді инверсиялау нұсқаулығымен аяқталады. Содан кейін екінші тармақтың коды келеді, ол барлық биттерді 1-ге орнату нұсқаулығымен аяқталады. Егер сынақ "бірінші" тармақты таңдаса, онда PE әдеттегідей жұмысын жалғастырады. Бұл кодтың соңына жеткенде режим операторының нұсқаулығы режим биттерін аударып тастайды, содан кейін PE одан әрі нұсқауларды елемеуі керек. Бұл екінші тармақтың кодының соңына жеткенше жалғасады, онда режимді қалпына келтіру нұсқаулығы PE-ні қайта қосады. Егер белгілі бір PE-нің сынағы екінші тармақты таңдаумен аяқталса, ол бірінші тармақтың соңына жеткенге дейін режим биттерін аударып, екінші тармақты өңдеуді бастайды, содан кейін оларды сол тармақтың соңында қайтадан қосады. PE 64, 32 және 8 биттік режимдерде жұмыс істей алатындықтан, режим флагтарында бірнеше бит болды, сондықтан жеке сөздерді қосуға немесе өшіруге болады. Мысалы, PE 32 биттік режимде жұмыс істеген кезде, PE-нің бір "жағында" сынақ дұрыс, ал екінші жағында жалған болуы мүмкін.