Кіріспе

Гетерогенді элементті процессор (HEP) 1982 жылы Denelcor, Inc. компаниясымен ұсынылды. HEP-тің архитекторы – Бертон Смит. Машина Баллистикалық зерттеулер зертханасы үшін сұйықтық динамикасы мәселелерін шешуге арналған. HEP жүйесі, атауынан көрініп тұрғандай, көптеген гетерогенді компоненттерден – процессорлардан, дерек жады модульдерінен және кіріс-шығыс модульдерінен құралған. Компоненттер коммутациялық желі арқылы байланыстырылған. HEP жүйесіндегі PEM деп аталатын бір процессор (он алтыға дейін PEM қосылуы мүмкін) ерекше болды; «бағдарламалық күй сөзі (PSW) кезекшесі» арқылы бір уақытта аппараттық құралда елуге дейін процестерді сақтауға болады. Ең ірі жүйеде 4 PEM болды. Сегіз сатылы нұсқаулық құбыр желісі сегіз түрлі процестен нұсқауларды бірден өңдеуге мүмкіндік берді. Бірақ, шын мәнінде, құбыржолда белгілі бір процестен бір ғана нұсқаудың болуына рұқсат етілді. Сондықтан процессордың 10 МИПС толық өнімділігіне сегіз немесе одан да көп процестер белсенді болғанда ғана қол жеткізілуі мүмкін; ешбір процесс 1,25 МИПС-тен жоғары өнімділікке жете алмайды. Мұндай көп тізбекті өңдеу HEP-ті «бочка процессор» ретінде жіктемелейді. HEP PEM-нің аппараттық іске асырылуы эмитерлік байланысты логикаға негіделген. Процестер пайдаланушы немесе қадағалаушы деңгейіне бөлінді. Пайдаланушы деңгейіндегі процестер пайдаланушы деңгейіндегі процестерді басқару және кіріс-шығыс операцияларын орындау үшін қадағалаушы деңгейіндегі процестерді құра алады. Бір сыныптың процестері жеті пайдаланушы тапсырмасының және жеті қадағалаушы тапсырмасының біріне топтостырылуы тиіс болды. Әрбір процессор, PSW кезекшесі мен нұсқаулық құбыржолдарынан басқа, нұсқаулық жады, 2048 64 биттік жалпы мақсаттағы тіркегіштер және 4096 тұрақты тіркегіштерді қамтыды. Тұрақты тіркегіштердің ерекшелігі – олардың мазмұнын тек қадағалаушы процестер ғана өзгерте алатындығы. Процессорлардың өзінде дерек жады болған жоқ; оның орнына дерек жады модульдерін коммутациялық желіге бөлек қосуға болады. HEP жады толыққандай бөлек нұсқаулық жадыдан (128 МБ дейін) және дерек жадынан (1 ГБ дейін) тұрды. Пайдаланушылар 64 биттік сөздерді көреді, бірақ шындығында дерек жадындағы сөздер 72 биттік болды, ал қосымша биттер күй, теңдік, таңбалау және басқа да мақсаттар үшін пайдаланылды. HEP өзара құлыптаудың бір түрін іске асырды, онда барлық тіркегіштер мен дерек жадындағы орындар «бос» және «толық» күйлерімен байланыстырылды. Орыннан оқу күйін «бос» деп белгілейді, ал орынға жазу күйін «толық» деп белгілейді. Бағдарламашы бос орыннан оқуға немесе толық орынға жазуға тырысқаннан кейін процестерді тоқтатуға рұқсат береді, бұл маңызды бөлімдерді сақтайды. Элементтер арасындағы коммутациялық желі көп жағынан қазіргі заманғы компьютерлік желіге ұқсас. Желіде әрқайсысы үш байланысы бар түйіндер жиынтығы болды. Пакет түйінге келгенде, ол маршрут кестесіне жүгінеді және пакетті оның мақсатына жақындатуға тырысады. Егер түйін тығыздалса, кез келген кіріс пакеттері маршрутталмай жіберіледі. Мұндай жолмен өңделген пакеттердің басымдық деңгейі жоғарылайды; бір түйін үшін бірнеше пакеттер бәсекелескенде, жоғары басымдық деңгейі бар пакеттер төменгі басымдық деңгейі барлардан бұрын маршрутталады. Коммутациялық желідегі тағы бір компонент – sO жүйесі, оның өз жады және дискілер мен басқа да шеткі құрылғылар үшін көптеген жеке DEC UNIBUS шиналары бар. Жүйеде әдетте тікелей көрінбейтін толық/бос биттерді сақтау мүмкіндігі де болды. IO жүйесінің бастапқы өнімділігі IO операцияларын бастаудың жоғары задерлілігіне байланысты өте жеткіліксіз екені дәлелденді. Рон Натали (BRL) және Бертон Смит жергілікті стейкхауста салфеткалардағы қосалқы бөлшектерден жаңа жүйені жасады және оны келесі аптада іске қосты. HEP-тің негізгі қолданбалы бағдарламалау тілі Фортранның бірегей түрі болды. Кейін C, Pascal және SISAL қосылды. Деректер айнымалыларының синтаксисі толық бос биттерді пайдаланып, олардың атының алдына '$' белгісін қою арқылы көрсетілді. 'A' жергілікті айнымалыны атайды, ал $A – құлыпталған толық бос айнымалы. Осылайша, қосымшаның өлі кілтіне жете алуға болады. Проблемалық жағдайларда, '$' белгісін қоспау сандық дәлсіздікке әкелуі мүмкін. HEP-тің алғашқы операциялық жүйесі HEPOS болды. Майк Мусс Баллистикалық зерттеулер зертханасы үшін Unix портына қатысты. HEPOS операциялық жүйесі Unix-ке ұқсамайтын. Ол шығынды өте төмен бағалағанмен, HEP сол кездегі бірнеше революциялық ерекшеліктеріне байланысты назар аударды. HEP CDC 7600 класындағы компьютердің өнімділігіне ие болды, ал ол Cray 1 дәуірінде пайда болды. HEP жүйелерін Баллистикалық зерттеулер зертханасы (төрт PEM жүйесі), Лос-Аламос, Аргонн ұлттық зертханасы (бір PEM), Ұлттық қауіпсіздік агенттігі және Германияның Messerschmitt (үш PEM жүйесі) сатып алды. Denelcor сондай-ақ Университетке бағдарламалық қолдау көрсетуі үшін Грузия университетіне екі PEM жүйесін жеткізді (жүйе сондай-ақ Мэриленд университетіне ұсынылған). Messerschmitt – HEP-ті «нақты» қолданбалар үшін пайдаланған жалғыз клиент; басқа клиенттер оны параллель алгоритмдермен эксперимент жасау үшін пайдаланды. BRL жүйесі BRL CAD бағдарламалық қамтамасының көмегімен фильмді дайындау үшін ғана пайдаланылды. HEP 2 және HEP 3 үшін жылдамырақ және үлкенірек жобалар басталды, бірақ олар аяқталған жоқ. Архитектуралық тұжырымдама кейін Horizon кодовый атымен іске асырылды.