Кіріспе

32 биттік супер миникомпьютерлер сериясы

Orion – 1980 жылдары Оксфорд қаласында орналасқан High Level Hardware Limited (HLH) компаниясы жобалаған және өндірген 32 биттік супер миникомпьютерлер сериясы. Компания машинаның төрт нұсқасын шығарды: түпнұсқа Orion, кейде «Микрокодталатын Orion» деп аталады. Микрокодталатын CPU-ы әлдеқайда жылдам Fairchild Clipper RISC C 100 процессорымен алмастырылған Orion 1/05 шамамен 5,5 MIPS бүтін сандық өнімділік және 1 Mflop қос дәлдікті жылжымалы нүктелік өнімділікпен қамтамасыз етті. Orion 1/05-ке қарағанда шамамен 33% артық өнімділік ұсынған Orion 1/07 (7,3 MIPS және 1,33 Mflops). Intergraph Corporation компаниясының Advanced Processor Division бөлімшесінің кейінгі буындағы C 300 Clipper процессорына негізделген, және кең ауқымды салқындатуды қажет еткен Orion 1/10. Orion 1/10 бүтін сандар және бір дәлдікті жылжымалы нүктелік операцияларды 30%-ға, ал қос дәлдікті жылжымалы нүктелік өнімділікті (10 MIPS және 3 Mflops) 150%-дан астам жақсартты. Барлық төрт машинада бірдей I/O жүйесі қолданылды.

Өмірбаян

High Level Hardware – 1982 жылдың басында Дэвид Г. Смолл мен Тимоти Б. Робинсон құрған тәуелсіз британдық компания. Дэвид Смолл бұрын Оксфордтағы Research Machines Limited компаниясының негізгі акционері және директоры болған. Екі серіктес те бұрын Research Machines компаниясының Арнайы Жобалар Тобының жетекші мүшелері болды. 1984 жылы осы зерттеулердің нәтижесінде High Level Hardware компаниясы жоғары өнімділікке ие, микрокодпен бағдарламаланатын, UNIX суперминикомпьютерін – Orion-ды ұсынды, ол әсіресе математикалық модельдеу, жасанды интеллект және символдық алгебра сияқты ғылыми салаларда қолдануға арналған. 1987 жылдың сәуірінде High Level Hardware Fairchild Clipper процессоры негізінде жасалған Orion сериясын таныстырды, бірақ 1989 жылдың соңында аппараттық нарықтан бас тартып, жоғары деңгейдегі Apple Macintosh сатуға көшті.

Микрокодталған Орион

Бастапқы Orion Am2900 сериялы құрылғыларға негізделген процессор архитектурасын қолданды. Бұл процессордың ерекшелігі – оның микрокодын жазуға болады, яғни нұсқаулар жиынтығын өзгертуге мүмкіндік бар еді. Осы мүмкіндік арқасында кейбір Orion процессорлары Occam және LISP бағдарламалау тілдерін орындауға немесе тіпті фракталдарды есептеуге арналған нұсқаулар жиынтығымен бейімделді.

Орталық өңдеу блогы

CPU Am2901 биттік кесінді микропроцессордың негізінде құрылған АЛУ-дан тұрды. Оған байтты өңдеу блогы қосылды, ол сегіз және он алты биттік деректерді өңдеу үшін қажетті ығыстыру, бұру және маскалау операцияларын орындай алатын. Қосымша логика, бір операцияда таңбалы және таңбасыз екілік толықтыруды салыстыру, көп дәлдіктік арифметика және қозғалатын нүктелі нормалдауды қолдау үшін ұсынылды. Көптеген операциялар 150 нс ішінде орындалатын, алайда микробағдарламалық басқару астында цикл уақыты 125 нс-тан 200 нс-қа дейін өзгеруі мүмкін, осылайша уақытты оңтайландыруға болады. Am2910 негізіндегі микросекуенсер микробағдарлама арқылы басқару ағынын бағыттайтын. Ол тармақталуларды, циклдарды және кіші бағдарлама шақыруларын орындай алатын, олардың көпшілігі CPU күйінің бірнеше шарттарына байланысты болатын. CPU нұсқаулық декодері машиналық деңгейдегі нұсқауларды (микро нұсқауларға қарамастан) декодтады. Бұл жылдам паритеттік тексерумен жадта сақталған карта кестелерін пайдалану арқылы жүзеге асырылды, ол бір байттық операциялық кодтарды микро нұсқаулық адрестерімен байланыстырды. Басқару басқа CPU функцияларымен қатар орындалатын арнайы секуенсер операциясын пайдаланып осы адрестерге берілді. Осылайша нұсқаулықты декодтау нұсқаулықты орындаумен қабаттасты. Нұсқаулар жиынтығын опциялық код арқылы таңдалған 256 жазбадан асыруға мүмкіндік беретін қашқыш механизм қарастырылды. Машинаға бірнеше нұсқаулар жиынтығын бір мезгілде қолдауға мүмкіндік беретін бірнеше жіберу кестелері жиынтығын ауыстыруға арналған қосымша механизм болды. Бұл механизмді пайдалану арқылы әр контексттік ауысу кезінде әртүрлі нұсқаулар жиынтығы таңдалуы мүмкін. Бұл механизм артықшылықты нұсқауларды, динамикалық профильдеуді (өнімділікті бақылау үшін) және бірнеше CPU режимдерін (мысалы, пайдаланушы және ядро) жүзеге асыру үшін де қолданылды. Негізгі жадтан тәуелсіз кэш жадының рөлі процедуралық бағдарланған тіл үшін бағалау стегінің жоғарғы бөлігін сақтау болды. Кэш екі циклдік кешігуден кейін цикл сайын бір сөзді бере алатын, паритеттік қорғанысы бар 512 32 биттік сөзден тұратын бірнеше бетке бөлінді. Беттер архитектуралық максимумнан 16 жұпқа дейін топтастырылды. Бастапқы машинада екі жұп болды. Әр жұптың екінші мүшесі әдетте қосымша жылдам тіркегіштер ретінде және стек бетіне әсер етпейтін уақытша сақтау ретінде пайдаланылды. Кэш адресін анықтайтын CPU тіркегішінің төменгі тоғыз биті санаушылармен іске асырылды және арттыру және азайту операцияларын (итеру және суыру), сондай-ақ кездейсоқ кіруге рұқсат берді.

Бақылау қоймасы

Басқару қоймасы жоғары жылдамдықты статикалық жадтарды пайдаланып салынды. Ол әдетте жүктелу кезінде іске қосылды, бұл машинаны толыққанды пайдаланушы микропрограммалауға мүмкіндік берді. Басқару қоймасының циклдық уақыты 125 нс-қа тең болды, бұл ең жылдам процессор циклымен бірдей. Архитектура 32 килосөздік (64 биттік сөз ұзындығы) басқару қоймасын қолдады, бірақ жад технологиясының шектеулеріне байланысты бастапқы нұсқауда максимум 8 килосөздік көлемге рұқсат берілді. Стандартты конфигурацияда бір схемалық тақтада 4 килосөз болды. Мұндай екі тақта орнатылуы мүмкін еді. Теңдік тексеруі қарастырылған. Қажетті жылдамдыққа қол жеткізу үшін, басқару қоймасының айналасында екі деңгейлі конвейер қолданылды. Кейіннен 16 килосөздік тақта іске асырылды, бұл басқару қоймасының ең жоғары көлемін 32 килосөздік деңгейге жеткізді.

Негізгі жады

Негізгі жад 32 биттік сөздермен екі жолмен кезектендіріліп ұйымдастырылды, бұл бір операцияда 64 бит дерек алуға немесе сақтауға мүмкіндік берді. Қалыпты жұмыс істеу кезінде негізгі жадқа виртуалды жад басқару бірлігі арқылы қол жеткізілді. Алғашқы іске асырылымда әрбір негізгі жад модулі 64К динамикалық MOS жадтарын пайдаланып құрылған, теңдік қорғаумен 0.5 Мбайт сақтау көлемін қамтиды. Кездейсоқ сұрау циклының уақыты 32 биттік сөз үшін 500 нс құрады, бірақ бірнеше сөздік деректерді беру, мысалы, кэштен және керісінше, 32 биттік сөз үшін 250 нс (секундына 16 Мбайт) тиімді цикл уақытын қамтамасыз етті. Жад модульдері 26 биттік физикалық сөздік мекенжайларды декодтады, ал осы шекте жалпы жад сыйымдылығы тек қол жетімді жүйелік шина ұяларының санымен шектелді; жүйенің I/O конфигурациясына байланысты 10 Мбайтқа дейін физикалық жад орнатылуы мүмкін. Жаңартылған жад модулінің іске асырылымы 256К жадтарды пайдаланып көлемін 2 МБ-қа дейін арттырды. Логикалық мекенжайларды физикалық мекенжайларға түрлендіру мекенжайларды түрлендіру кестелерінің жиынтығы арқылы жүзеге асырылды. Әрбір процесс әдетте бағдарлама, үйінді және стек үшін қолданылатын үш тәуелсіз кеңейтілетін жад аймағына қол жеткізе алады. Төртінші аймақ әдетте операциялық жүйеге резервтелген. Кестелер сонымен қатар әрбір жад беті үшін құқықтар біттерінің жиынтығын қамтиды, бұл толық қорғауды қамтамасыз етеді және сұраныс бойынша беттік виртуалды жадты іске асыруды қолдайды. Түрлендіру кестелері процессорда кэштелген, нәтижесінде, көбінесе мекенжайды түрлендіру кезінде тек бір микрокомандаға қосымша шығындар туды. Бет өлшемі, аппараттық құралдармен бекітілген, 4 Кбайт болды. Әрбір логикалық аймақ 256 Мбайтқа дейін болуы мүмкін.

Кіріс/шығыс кіші жүйесі

Orion I/O жүйелері диагностика жүргізу, терминалдар мен дискілерді басқару сияқты төменгі деңгейдегі тапсырмаларды орындау үшін бірнеше қосымша микрокомпьютерлерді қамтиды. Диагностикалық микрокомпьютер (Zilog Z80 негізінде) процессорға кіріктірілген. Оның функцияларына қуат алғаш рет қосылғанда жүйелік сенімділікті тексеру, процессорды бастап қою және қалпына келтірілмейтін басқару сақтағышының теңсіздік қатесі анықталған жағдайда басқаруды қолға алу кіреді. Сондай-ақ, машина жұмыс істеп тұрғанда жаңа микрокодты динамикалық түрде жүктеуге болады. Терминалды қосуға арналған RS 232C интерфейсі қарастырылған. Жүйеде ақаулықтар туған кезде, арнайы микрокодпен бірге кең ауқымды диагностика жүргізіліп, ақаулықтарды талдауға болады. Көбінесе мәселелер бір немесе екі интегралды схемаға байланысты болатын. Бір немесе бірнеше интеллектуалды I/O арналары сыртқы құрылғылардың жұмысын бақылайды. Олардың әрқайсысы Z80 негізіндегі толық функционалды микрокомпьютерді қамтиды, ол басқару функцияларын және күтімді қамтамасыз етеді. Сыртқы құрылғыларға және олардан деректерді беру Am2901 биттік тілімдерді пайдалана отырып құрылған тікелей жадқа қол жеткізу (DMA) арқылы жүзеге асырылады. Бұл Orion жад жүйесінің және сыртқы құрылғының толық мүмкіндіктерін пайдалануға мүмкіндік берді, сонымен қатар микрокомпьютер жұмсақ I/O қателеріне түзету шараларын қолдана алады. Orion бағдарламалық жасақтамасы микрокомпьютермен жоғары деңгейдегі хабар алмасу протоколын пайдаланып байланысады.

Операциялық жүйе

Микрокодталатын Orion операциялық жүйесі OTS (Orion Time Sharing) 1. x нұсқасы болды, бұл 4.1BSD UNIX операциялық жүйесінің порты. Clipper процессорларында жұмыс істейтін Orion жүйелері OTS 2. x нұсқасын қолданды, ол 4.2BSD UNIX-тің кейбір қосымшалармен жасалған порты еді. Бұл жүйе аса сенімді немесе қауіпсіз болған жоқ, сонымен қатар процестердің пайдаланушы идентификаторларын "ұмытып", пайдаланушы процестерін кездейсоқ түрде root құқықтарымен іске қосуға бейімділік танытты. HLH сондай-ақ Orion үшін StarPoint деп аталатын графикалық терминалды жасады, оған X Window System портталды. Орион сериясы британдық университеттердің компьютерлік ғылым факультеттерінде, оның ішінде Вестфилд колледжі (Лондон), Бат, Эдинбург, Хериот-Уатт, Кингстон политехникалық институты, Кент, Саутгемптон, Уорвик, Йорк, Лондон Король колледжінде орташа деңгейде танымал болды. Типтік көп пайдаланушылық Orion конфигурациясында 8 МБ оперативті жад, SMD қатты дискісі (мысалы, 168 МБ Kennedy немесе 434 МБ Fujitsu Eagle), 60 МБ QIC 24 таспалық дискісі және 8-ден 32-ге дейін RS 232 терминал порттары болды.