Кіріспе

Суперкомпьютер

Advanced Scientific Computer (ASC) – 1966 және 1973 жылдар аралығында Texas Instruments (TI) компаниясы жобалаған және өндірген суперкомпьютер. ASC-нің орталық процессорлық блогы (CPU) векторлық өңдеуді қолдады, бұл оның жоғары өнімділігін арттыруға бағытталған маңызды техника болды. ASC, сондай-ақ Control Data Corporation STAR 100 суперкомпьютері (осы жылы ұсынылған) – векторлық өңдеуді қолдайтын алғашқы компьютерлердің бірі болды. Дегенмен, бұл техниканың мүмкіндіктері ASC немесе STAR 100 компьютерлерінде толыққанды пайдаланылмады, себебі техниканы жеткілікті деңгейде түсінбеді. 1975 жылы жарияланған Cray Research Cray 1 суперкомпьютері ғана векторлық өңдеуді толыққанды іске асырып, оны кеңінен танымал ете алды. Cray 1-де векторлық өңдеуді табысты қолдану ASC (және STAR 100) компьютерлерін бірінші буын векторлық процессорлар ретінде белгіледі, ал Cray 1 екінші буынға жатты.

Тарих

TI компаниясы Geophysical Service Incorporated (GSI) компаниясының бөлімшесі ретінде басталып, ол мұнай барлау компаниялары үшін сейсмикалық зерттеулер жүргізген. GSI енді TI-дің еншілес компаниясы болды, және TI сейсмикалық деректерді өңдеу және талдау үшін ең соңғы компьютерлік технологияны қолдануды жоспарлады. ASC жобасы бастапқыда Advanced Seismic Computer ретінде қолға алынды. Жоба дами келе, TI оның ауқымын кеңейтуге шешім қабылдады. Атаудан "Сейсмикалық" сөзі "Ғылыми" сөзімен ауыстырылды, бұл жобаға ASC деген атауын сақтап қалуға мүмкіндік берді. Бастапқыда, операциялық жүйе және FORTRAN компиляторын қоса алғандағы бағдарламалық жасақтама, Джордж Р. Тримбл, кішінің басшылығымен Computer Usage Company компаниясымен шарт бойынша жасалды, бірақ кейіннен TI оны өзіне алды. Даллас қаласындағы Оңтүстік методистік университеті ASC үшін ALGOL компиляторын әзірледі.

Сәулет

ASC бір жылдамдықпен бөлісілген жадқа негізделген, оған CPU және сегіз I/O арна контроллері қол жеткізді, бұл Сеймур Крейдің CDC 6600 құрылысына ұқсас ұйымдастырылған. Жадына тек жадты басқару блогы (MCU) арқылы қол жеткізілуі мүмкін болды. MCU екі бағытты, арнаға 256 биттік параллель желі болды, ол сегізге дейін тәуелсіз процессорларды қолдауға қабілетті, ал "негізгі жадқа" (ұзартылған жад деп аталады) кіру үшін тоғызыншы арна болды. MCU сондай-ақ кэш контроллері ретінде қызмет етті, сегіз процессор порты үшін жартылай өткізгіш жадқа жоғары жылдамдықпен қол жеткізуді қамтамасыз етті және негізгі жадтағы 24 биттік адрестік кеңістікке барлық байланысты басқарды. MCU асинхронды түрде жұмыс істеуге арналған, бұл оған әртүрлі жылдамдықтарда жұмыс істеуге және өнімділіктің әртүрлі деңгейлерінде масштабталуға мүмкіндік берді. Мысалы, негізгі жад баяурақ, бірақ арзан ядролық жадтан құрастырылуы мүмкін болғанмен, бұл практикалық түрде қолданылмады. Ең жоғары жылдамдықта ол портқа секундтық 80 миллион 32 биттік сөзді, ал жалпы өткізу қабілеті секундтық 640 миллион сөзді құрады. Бұл сол кездегі ең жылдам жадтардың мүмкіндіктерін асып түсті. CPU-дың 60 нс сағаттық циклы (16,67 МГц сағаттық жиілігі) болды және оның логикасы TI компаниясының ILLIAC IV суперкомпьютері үшін әзірлеген 20 есіктік эмитерлік байланысқан логикалық интегралдық схемаларынан құралды. CPU өзінің дәуірі үшін өте жетілген архитектураға және ұйымдастырылуға ие болды, скалярлар, векторлар немесе матрицалармен жұмыс істейтін микрокодталған арифметикалық және математикалық нұсқауларды қолдады. Векторлық өңдеу құрылымдары жадтан жадқа архитектурасын қолданды, онда векторлық операндар жадтан оқылды және нәтижелік вектор жадқа жазылды. CPU-да бір, екі немесе төрт векторлық жолақ болуы мүмкін, бұл CPU-ға орнатылған векторлық жолақтардың санына байланысты әр циклде бірден төрт векторлық нәтиже шығаруға мүмкіндік берді. Векторлық жолақтар скалярлық нұсқаулар үшін де пайдаланылды, әр жолақта бір уақытта 12 скалярлық нұсқау орындала алатын болды. Төрт жолақты CPU-да барлық CPU бойынша 36 нұсқауға дейін орындалуы мүмкін болды. Процессордың 48 32 биттік тізілімі болды, бұл сол кездегі үлкен сан. Тізілімдердің 16-сы адрестеуге, 16-сы скалярлық операцияларға, 8-і индекстік ығысуларға және 8-і векторлық нұсқаулардың әртүрлі параметрлерін көрсетуге пайдаланылды. Деректер регистрлер мен жад арасында жүктеу/сақтау нұсқаулары арқылы жылжытылды, олар бір уақытта 4–64 биттен (екі тізімнен) беруге қабілетті болды. Көптеген векторлық процессорлар жадтың өткізу қабілетімен шектелген, яғни олар деректерді жадтан алудан гөрі жылдам өңдей алатын. Бұл қазіргі заманғы SIMD дизайндарында да маңызды проблема болып табылады, сондықтан қазіргі заманғы компьютерлік дизайндарда жадтың өткізу қабілетін арттыруға көп күш жұмсалды (бірақ көбінесе сәттіліксіз). ASC-де бұл жадты алдын ала болжау бірлігімен біршама жақсартылды, ол алдағы жадқа қол жеткізуді болжады және оларды скалярлық тізімдерге көрінбей жүктеді, процессордағы жад интерфейсін пайдалана отырып, жад буферлік бірлігі (MBU) деп аталды. "Перифериялық процессор" операциялық жүйені және оның ішінде жұмыс істейтін бағдарламаларды жылдам орындауға, сондай-ақ деректерді CPU-ға беруге арналған жеке жүйе болды. PP сегіз "виртуалды процессордан" (VP) құралды, олар тек нұсқауларды және қарапайым бүтін сандық арифметиканы өңдеуге арналған. Әрбір VP-де өзінің жеке бағдарламалық санауышы және тізімдері болды, сондықтан жүйе бір уақытта сегіз бағдарламаны орындай алды, бұл тек жадқа қол жеткізумен шектелген. Сегіз бағдарламаны орындауда ұстап тұру жүйеге сол кездегі жад шинасында қандай деректер бар екеніне байланысты бағдарламаларды CPU-да араластыруға мүмкіндік берді, бұл CPU-ның жадтан дерек күтуіне тура келетін "өлі уақытты" азайтады. PP құрамына 64 32 биттік байланыс тізімі (CR) кірді. CR-лер ASC-нің әртүрлі бөліктері арасындағы байланыс үшін қажетті күйді сақтады: CPU, VP және арна контроллері. ASC нұсқаулар жиынтығына жылдам Фурье түрлендірулерін (FFT) есептеуді жылдамдатуға арналған біттерді кері аудару нұсқауы кірді. ASC өндіріске енгізілген кезде, FFT үшін осы операцияны қажет етпейтін жақсы алгоритмдер әзірленді. TI осы нұсқауды дұрыс қолдана алатын алғашқы адамға сыйлық ұсынды, бірақ ешқашан алынбады.

Нарықтағы қабылдау

ASC машиналары алғаш рет 1970 жылдардың басында қолжетімді болғанда, олар дерлік барлық басқа машиналардан, соның ішінде CDC STAR 100 машинасынан да жоғары өнімділік көрсетті және кейбір жағдайларда ILLIAC IV машинасымен шайқасты. Бірақ 1975 жылы Cray 1 жарияланған кезде, олардан тек жетісі орнатылған еді. Cray 1 өзінің дизайнының басым бөлігін жадқа тұрақты жоғары жылдамдықпен қол жеткізуге бағыштады, оның ішінде жартылай өткізгіш жадтың миллионнан астам 64 биттік сөздері және ASC-ге қарағанда бес есе жылдам цикл уақыты (12,5 нс) болды. ASC кейбір жағынан кеңейтуге қолайлы болғанымен, суперкомпьютер нарығында жылдамдық басты орын алады, ал Cray 1 әлдеқайда жылдам еді. ASC машиналарының сатылымы дерлік бірден тоқтатылды, және жаңартылған ASC бастапқы цикл уақытынан бес есе жылдам жобаланғанымен, Texas Instruments компаниясы нарықтан шығуға шешім қабылдады.

Векторлық өңдеу қолданбалары

ASC #1 прототипі бір құбырлы жүйе болды және меншік ақпараттарды сақтау үшін TI-дың негізгі зауытынан тыс, Техас штатының Остин қаласында іске қосылды. Кейіннен ол екі құбырлы жүйеге жаңартылып, ASC #1A деп аталды. Содан кейін TI-дың GSI бөлімі оны сейсмикалық деректерді өңдеу үшін пайдаланды. ASC #2 Нидерландыдағы Shell Oil Company компаниясына жалға берілді және сейсмикалық деректерді өңдеуге де қолданылды. ASC #3 Алабама штатының Хантсвилл қаласындағы Редстоун Арсеналында зымыранға қарсы қорғаныс технологиясын әзірлеу үшін орнатылды. SALT шартымен жүйе кейіннен Миссисипи штатының Виксбург қаласындағы Армия инженерлік корпусына бөгеттерге түсетін күшті талдау үшін қайта орналастырылды. ASC #4 NOAA Принстон университетінде ауа райын болжау модельдерін жасау үшін пайдаланды. ASC жүйелері #5 және #6 TI-дың Остин қаласындағы негізгі зауытына орнатылды және GSI бөлімінде сейсмикалық деректерді өңдеу үшін қолданылды. ASC #7 Вашингтон қаласындағы Әскери-теңіз зерттеу зертханасына плазма физикасын зерттеу үшін жіберілді.