Кіріспе

Ұлыбританияның орталық компьютерлік жүйелері

ICL 2900 сериясы – британдық өндіруші International Computers Limited компаниясының 1974 жылғы 9 қазанда жариялаған орталық компьютерлік жүйелерінің қатары. Компания 1968 жылы құрылғаннан кейін бірден "New Range" деген атпен әзірлеу жұмыстарын бастады. Бұл серия компанияның бұрынғы машиналарымен де, бәсекелес машиналарымен де үйлесімді болу үшін жасалмаған; оның орнына, ол әртүрлі көздерден алынған ең жақсы идеяларды біріктіретін жаңа, синтетикалық нұсқа ретінде жобаланды. 2900 сериясы 1980-ші жылдардың ортасында 39 сериясымен алмастырылды, бірақ 39 сериясы 2900 сериясының архитектурасын іске асырған жаңа машиналар жиынтығы болды, ал "Триметра" таңбасымен шығарылған ICL машиналары да осы архитектураны қолданды.

Шығу тегі

ICL 1968 жылы International Computers and Tabulators (ICT) компаниясының English Electric Leo Marconi және Elliott Automation компанияларымен бірігуі нәтижесінде құрылғанда, компания болашақ өнімдер қатары үшін бірнеше мүмкіндікті қарастырды. Оларға ICT-нің 1900 сериясын немесе English Electric System 4 жүйесін жаңарту, сондай-ақ Дж.К. Илиффтың Basic Language Machine негізіндегі әзірлеме кірді. Соңында таңдалған нұсқа – «Синтетикалық нұсқа» деп аталды: жаңа дизайн бастапқыда толығымен жаңадан жобаланды. Аты айтқандай, бұл жобаға ICL-дің бұрынғы машиналарының ішінде көптеген көздер әсер етті. Burroughs мейнфреймдерінің дизайны үлкен әсер еткенімен, ICL жоғары деңгейдегі бір тілге дизайнды оңтайландыру идеясын қабылдамады. Multics жүйесі қорғау саласындағы сияқты басқа да идеяларды ұсынды. Дегенмен, ең маңызды сыртқы ықпал, әлдебір Манчестер университетінде жасалған MU5 машинасы болды.

Виртуалды машина

2900 сериялы архитектура бағдарламаға қолжетімді ресурстар жиынтығы ретінде виртуалды машина тұжырымдамасын пайдаланады. 2900 сериялы архитектурадағы виртуалды машина тұжырымдамасы басқа орталарда қолданылатын терминнен өзгеше. Әрбір бағдарлама өз виртуалды машинасының ішінде іске қосылатындықтан, бұл тұжырым басқа операциялық жүйелердегі процестерге ұқсас, бірақ 2900 сериялы процесі көбірек жіпке (thread) жақын. Виртуалды машинадағы ең негізгі ресурс – виртуалды жад (memory). Басқа ресурстарға шеткі құрылғылар, файлдар және желілік қосылымдар кіреді. Виртуалды машинада код қорғаудың он алты деңгейінде жұмыс істей алады, бұл деңгейлерге кіру деңгейлері (access levels) немесе ACR деңгейлері (Access Control Register – кіруді бақылау тізілімі) дейді. Операциялық жүйе кодынң ең жоғары құқықты деңгейлері (ядро) пайдаланушы бағдарламасымен бірдей виртуалды машинада жұмыс істейді, сондай-ақ файлдық сақтауға қол жеткізу және желілік байланысты жүзеге асыратын кіші жүйелер сияқты аралық деңгейлер де осылай жұмыс істейді. Жүйелік шақырулар қорғау деңгейін өзгертуді қамтиды, бірақ басқа виртуалды машинадағы кодты шақыру үшін артық шығынға түспейді. Әрбір код модулі белгілі бір кіру деңгейінде орындалады, төменгі деңгейдегі (жоғары құқықты) код ұсынатын функцияларды шақыра алады, бірақ сол деңгейдегі жадқа немесе басқа ресурстарға тікелей қол жеткізе алмайды. Осылайша, архитектура жүйелік қауіпсіздікті қамтамасыз ететін енгізілген капсулация механизмін ұсынады. Жад сегменттері виртуалды машиналар арасында ортақ пайдаланылуы мүмкін. Ортақ жадтың екі түрі бар: операциялық жүйе пайдаланатын (барлық виртуалды машиналарда болатын) жалпы сегменттер және қолданба деңгейіндегі ортақ деректер үшін пайдаланылатын жаһандық сегменттер. Соңғы механизм екі виртуалды машинаның байланысу қажеттілігі болған жағдайда ғана қолданылады. Мысалы, жаһандық жад сегменттері дерекқорындағы құлыптау кестелері үшін қолданылады. Мұндай сегменттерге қол жеткізуді синхрондау үшін аппараттық семафорлар қол жетімді. Бір қызықты жайт – екі виртуалды машина жаһандық сегментті ортақ пайдаланғанда, бірдей жад орны үшін әртүрлі виртуалды мекенжайларды қолданады, сондықтан виртуалды мекенжайларды бір виртуалды машинадан екіншісіне қауіпсіз түрде беруге болмайды. ICL 2900 сериялы және ICL 39 сериялы машиналарда орталық процессор (CPU) үшін "Order Code Processor" (OCP) термині қолданылады.

Адрестік механизмдер

2900 архитектурасы аппараттық негіздегі шақыру стегін қолдайды, жоғары деңгейдегі тіл бағдарламаларын, әсіресе рекурсивті функцияларды шақыруға мүмкіндік беретін тиімді құрал ұсынады. Бұл сол кездегі болашаққа бағытталған шешім болды, себебі бастапқыда басым бағдарламалау тілдері COBOL және FORTRAN болады деп күтілді. Архитектура стекті пайдалана отырып процедураларды шақыру механизмдерін және стек жоғарғы жағына және ағымдағы стек фреймінің негізіне жүгіну үшін арнайы тіркелімдерді ұсынады. Жинақталмаған деректер әдетте дескриптор арқылы қарастырылады. Бұл 64 биттік құрылым, ішінде 32 биттік виртуалды мекенжай және 32 биттік басқару ақпараты бар. Басқару ақпараты адрестелетін аймақтың код немесе деректер екенін анықтайды; деректер болған жағдайда адрестелетін элементтердің көлемі (1, 8, 32, 64 немесе 128 бит); аппараттық массив шегін тексеру қажеттігін көрсететін белгі; және басқа да түрлі жетілдірулер. 32 биттік виртуалды мекенжай 14 биттік сегмент нөмірінен және сегмент ішіндегі 18 биттік ығыстырудан тұрады. Кодты орындау 2900 архитектурасының тікелей бөлігі емес. Осы факт басқа машиналарды олардың нұсқаулар жиынтығын микрокодтау арқылы эмуляциялау үшін пайдаланылды. Дегенмен, іс жүзінде 2900 сериясының барлық машиналары PLI (Primitive Level Interface) деп аталатын ортақ кодты орындау немесе нұсқаулар жиынтығын іске асырады. Бұл негізінен жоғары деңгейдегі тілдердің компиляторлары үшін мақсат ретінде жасалған. 2980 және 2988 сияқты ең қуатты машиналар барлық нұсқауларды аппараттық құралдарда орындады, ал қалғандары микрокодталған бағдарламалық жасақтаманы қолданды. Әрқайсысы белгілі бір мақсатқа арналған бірнеше тіркелімдер бар. Аккумуляторлық тіркелім (ACC) жалпы мақсатта қолдануға арналған және көлемі 32, 64 немесе 128 бит болуы мүмкін. B тіркелімі массивтерге индекстеу үшін қолданылады; LNB (Local Name Base) тіркелімі ағымдағы стек фреймінің негізіне, ал SF (Stack Front) тіркелімі стек жоғарғы жағына бағыттайды; DR тіркелімі үймеге адрестеу үшін дескрипторларды сақтауға қолданылады, және т.б. Сонымен қатар, стекке сырттағы деректерге екі 32 биттік сілтеме бар; XNB (eXtra Name Base) және LTB (Linkage Table Base). PLI нұсқауларымен танылатын дерек форматтарына 32 биттік белгісіз бүтін сандар; 32 биттік және 64 биттік екілік толықтырғыш бүтін сандар; 32 биттік, 64 биттік және 128 биттік қалқымалы нүктелер; және 32 биттік, 64 биттік және 128 биттік жинақталған ондық сандар жатады. C және UNIX конвенциясына қайшы, логикалық мән true нөл ретінде, ал false минус бір ретінде көрсетіледі. Сөздер 8 биттік таңбалар массиві ретінде сақталады, олар әдетте EBCDIC кодировкасында жазылады (бірақ ICL-дің EBCDIC-і IBM нұсқасынан шағын айырмашылықтарға ие). EBCDIC орнына ISO (негізінен ASCII) пайдалануға болады, артықшылықты тіркелімде басқару битін орнату арқылы; басқа нәрселермен қатар, бұл кейбір ондық түрлендіру нұсқауларына әсер етеді. PLI нұсқауларының кейбіреулері, әсіресе процедураларды шақыруға арналғандары, өте қуатты (әсіресе жүйелік шақырулар), сондықтан 2900 сериясындағы нұсқаулар орындалу жылдамдығы бәсекелестердің аппараттық құралдарымен тікелей салыстырылмайды. ICL маркетингтік материалдарында "IBM эквивалентті MIPS" тұжырымы қолданылды, яғни қолданбалық өлшемдерде бірдей өнімділікке қол жеткізген IBM мейнфреймінің MIPS рейтингі. 2900 архитектурасының тиімділігі, әсіресе жүйелік шақырулардың шығындарын болдырмауы, салыстырмалы түрде баяу аппараттық өнімділікті өтеді.

P (паралель) сериясы

2900 сериясында алғаш жарияланған машиналар 2980 және 2970 болды. 2980 бір немесе екі тапсырыс кодты процессорларды (OCP) қолдады, олардың әрқайсысы секундына 3 миллион нұсқау орындай алатын, ал нақты жады 8 мегабайтқа дейін конфигурацияланатын, 500 наносекундтық қолжетімділік уақыты бар. 2980 бастапқыда ICL-дің New Range негізгі компьютерлерінің ең қуаттысы болды. OCP-ден басқа, ол бірнеше жадты басқару контроллерінен (SMAC) және бір немесе бірнеше жадты қолжеткізу контроллерінен (SAC), жалпы перифериялық контроллерден (GPC), бір немесе бірнеше дискілік файл контроллерлерінен (DFC) және байланыс желісі контроллерінен (CLC) тұратын, сонымен қатар дискілік жетектер (әдеттегі конфигурацияда сегіз EDS 200 жетегі болар еді), магниттік ленталар, операциялық станция (OPER), желілік принтерлер және карта оқу құрылғылары болды. Ол ICL VME (VME/B, VME/K) немесе Эдинбург көп қолжеткізу жүйесін (EMAS) операциялық жүйесін іске қоса алатын. Типтік 2980 конфигурациясының құны шамамен 2 миллион фунт стерлинг (1977 жылғы 2,0 фунт стерлинг шамамен қазіргі жылдары миллионға жуық теңгеге баламалы) болатын. 2980-нен айырмашылығы, 2970 және одан кейінгі 2960 микрокодталған, сондықтан бұрынғы 1900 сериясы немесе System 4 сияқты нұсқаулар жиынтығын эмуляциялауға мүмкіндік берді. 2900 сериялы машина бірнеше функционалдық модульдерден құралған, олардың әрқайсысы жеке шкафқа орналастырылған. Перифериялық құрылғылар ICL-дің Primitive Interface (Socket/Plug және кабель жиынтығы) арқылы SMAC-тағы порт адаптеріне қосылды. Логикалық адрестеу қолданылды және жүйелік компоненттерді порттар, магистральдар және ағындар тұрғысынан анықтау үшін топтық схема пайдаланылды. Магистраль – бұл порт ішіндегі перифериялық контроллерге тағайындалған жалпы атау және аппараттық мекенжай. Магистраль – бірнеше ағын құрылғыларының контроллерінің жалпы атауы. Ағын – бұл жеке перифериялық құрылғыларға сілтеме жасалатын каналдың жалпы атауы. 2960 сериясының жүктелу процесі ерекше атауға лайық: OCP шағын OPER терминалы мен кассеталық жетегін қамтыды. Жүктелу кезінде OCP өзінің бастапқы бағдарламалық жүктемесін (IPL) тағайындалған IPL құрылғысынан орындайтын. IPL коды OCP-ге жүйенің аппараттық конфигурациясын анықтау үшін ағындар, магистральдар және порттар бойынша іздеу арқылы микрокод жиынтығы және/немесе іске қосылатын операциялық жүйе үшін әдепкі немесе қолмен таңдалған жүктеу құрылғысын табуға мүмкіндік берді. Бұл процесс GROPE немесе перифериялық жабдықтардың жалпы барлау деп аталды. Кассеталық жүктеу әдісі инженерлік қызметкерлерге диагностикалық бағдарламаны жүктеуге және орындауға мүмкіндік берді.

S (сериялық) сериясы

Алғашқы машиналар кейіннен 2966 орта деңгейдегі конструкцияға негізделген машиналар отбасымен ауыстырылды, оларды жасауға шығын аз болды және параллель емес, тізбектік байланыстар қолданылды. 2966 үлгісінің өнімділігі 2988 және 2958 үлгілеріне дейін арттырылды, сондай-ақ екі процессорлы нұсқалармен толықтырылып, өнімділіктің барлық диапазонын қамтыды.