Кіріспе

Nord 10 – Norsk Data компаниясы шығарған, көп тілді уақытты бөлісуге арналған бағдарламалар мен нақты уақыт көп бағдарламалық жүйелер үшін жасалған орташа өлшемді, жалпы мақсаттағы 16 биттік шағын компьютер. Ол 1973 жылы ұсынылған. 1975 жылы ұсынылған Nord 10/S үлгісінде CPU кэші, беттеу және басқа да түрлі жақсартулар енгізілді. CPU-да микропроцессор болған, ол нұсқаулықта микрокодты процессордың біріктірілген сөзі ретінде анықталған, оны сол кезде дамып келе жатқан микропроцессормен шатастыруға болмайды. CPU сонымен қатар нұсқаулар, оператормен байланыс, жүктеушілер және аппараттық сынақ бағдарламаларын қамтыды, олар 1К жадта оқуға арналған режимде іске асырылды. Микропроцессор клиенттердің қалауынша қосымша нұсқауларды енгізуге де мүмкіндік берді. Nord 10 жадты басқару жүйесіне ие болды, аппараттық беттеу арқылы жад көлемін 64-тен 256К 16 биттік сөздерге дейін кеңейтеді, сондай-ақ екі тәуелсіз қорғау жүйесі болды, біреуі әрбір бетке, екіншісі нұсқаулар режиміне әсер етеді. Үзіліс жүйесінде әрқайсысының өзіндік жалпы мақсаттағы тіркелімдері бар 16 бағдарламалық деңгей болды. Ескерту: Төмендегі ақпараттың көп бөлігі Nord 10-ды таныстыратын Norsk Data компаниясының құжатынан алынған. Кейбір ақпарат, әсіресе жад жүйесі туралы мәліметтер, кейінірек шыққан Nord 10/S үшін дәл болмауы мүмкін.

Орталық процессор

Орталық өңдеу блогы (CPU) барлығы 24 баспалы схема тақтасынан құралды. Рафтағы соңғы сегіз орын бағдарламалық басқарумен жұмыс істейтін кіріс/шығыс (I/O) құрылғыларына арналды, мысалы, консольді телепринтер (телетип), қағазды лента, перфокарта оқу және перфоратор, жолды принтер, дисплей, оператордың панелі және нақты уақыт сағаты. Nord 10 процессорлық 160 регистрге ие болды, олардың 128-і бағдарламаларға қолжетімді болды, әрқайсысы 16 бағдарлама деңгейінде сегізден. Олардың алтауы жалпы регистрлер, біреуі – бағдарлама санауы, ал қалғанында мәртебе туралы ақпарат сақталды. Қозғалмалы нүктелі арифметикалық операциялар стандартты болды. Нұсқаулар бес түрлі форматта жұмыс істей алатын: бит, 8 биттік байт, 16 биттік сөздер, 32 биттік қос сөздер және 48 биттік қозғалмалы нүктелі сөздер.

Жады

Бірінші Nord 10s кездейсоқ сұраныс жады жүйесі арнайы жад тірегінде орналасқан 8К 16 биттік модульдерден құралған. Бір 19 дюймдік тіректе сегіз 8К модульге дейін орналасатын болды. Nord 10 физикалық адрестік кеңістігін 64К-тан 256К 16 биттік сөздерге дейін кеңейтуге мүмкіндік болды. Беттеу жүйесі 16 биттік виртуалды адресті 18 биттік физикалық адреске түрлендірді. Аппараттық беттеу жүйесі бір пайдаланушыға 64КБ дейінгі бағдарламаларды жазуға мүмкіндік берді (виртуалды жад), ал бағдарламаның тек бөліктері физикалық жадта белгілі бір уақытта болуы мүмкін еді (динамикалық жадты бөлу арқылы). Беттеу жүйесі жадты 1К беттерге бөлді. Төрт беттік индекс кестелері 256 сөздік өте жылдам жад блогында табылды. Физикалық адресті есептеу жад циклының тиімді уақытында айтарлықтай кешігу тудырмады. Nord 10 екі тәуелсіз қорғау жүйесіне ие болды. Әрбір жеке бет оқылудан, жазылудан (мәліметтер түрі немесе нұсқаулар түрі) немесе нұсқауларды оқылудан қорғалатын болды. Сонымен қатар, беттерді төрт түрлі санатқа бөлетін жүйе болды, олар сақиналар деп аталды. Сақиналар 0-ден 3-ке дейінгі басымдыққа ие болды. Төменгі сақинадағы бағдарламаға жоғары сақинадағы беттерге кіруге ешқашан рұқсат етілмеді. 2 және 3 сақиналарында жұмыс істейтін бағдарламалар Nord 10 нұсқаулар жиынтығын толыққанды пайдалана алды, ал 0 және 1 сақиналарындағы бағдарламаларға тек шектеулі нұсқаулар жиынтығы ғана қол жетімді болды. Әртүрлі сақиналар оператордың панелінде көрсетілді. Мысалы, 0 сақинасы (Пайдаланушы) пайдаланушы бағдарламасын қамти алатын болса, компиляторлар мен ассемблерлер 1 сақинада (Қорғалған пайдаланушы) жұмыс істеді. Операциялық жүйенің басым бөлігі 2 сақинада (Жүйе), ал ядро 3 сақинада (Қорғалған жүйе) жұмыс істей алады. Егер 0 немесе 1 сақинасында артықшылықты нұсқауларды орындауға тырысылса немесе қорғалған бетке кіруге тырысылса, бағдарлама деңгейі 14-те аппараттық күйді тоқтату автоматты түрде туындайды, бұл қате туралы хабарлайды.

I/O жүйесі мен шина архитектурасы

NORD 10 барлық сыртқы құрылғылар үшін ортақ шина жүйесімен жабдықталған. Шина жүйесі топтарға бөлінді және егер құрылғы істен шыққан жағдайда, ол шина жүйесін тоқтата алмайтынына көз жеткізу үшін көп еңбек жұмсалды. Әрбір топтың өз басқарушысы болды, ол шина жүйесі үшін электрондық коммутатор ретінде ғана емес, сонымен қатар бүкіл топ үшін басымдық деңгейін өзгерте алатын. Карталар арасындағы барлық байланыстар көп қабатты баспа тақтасының артқы жағындағы сымдар арқылы жасалды, ал барлық кіріс/шығыс интерфейсі бірдей стандартты формаға ие болды. Сондықтан жүйені жаңа құрылғыларды қосу арқылы немесе қолданыстағы интерфейс карталарын жылжыту арқылы кеңейтуге немесе қайта конфигурациялауға болады. Карта тірегіндегі құрылғы интерфейсінің орны құрылғының үзіліс басымдығын анықтады. Тікелей жадқа қол жеткізу кезінде құрылғы сұрау жібереді. CPU сұрауды бастаған құрылғыға жеткенге дейін құрылғыдан құрылғыға жіберілетін жауап сигналымен жауап береді, содан кейін жадқа деректерді беру мүмкін болады. Егер екі немесе одан көп құрылғы бір уақытта CPU-дан DMA сұрауын жіберсе, ең жоғары басымдыққа ие құрылғы орындалады. Бір жад циклынан кейін тізбектегі келесі DMA дерек жіберуге рұқсат алады, және т.б., жоғары басымдыққа ие құрылғы қайтадан сұрау жібергенге дейін. Бұл көптеген DMA құрылғылары бірдей шина жүйесін толық деректер беру жылдамдығымен пайдалана алатынын білдіреді. Мастер-құл байланысын орнату қажеттілігі болмады. Деректерді беру бір 16 биттік сөз үшін 850 наносекундты құрады, яғни 2,2 МБ/с. I/O шинасының баспаланған артқы жағы 8 интерфейс ұясынан тұратын модульдік болып келді. Диск, барабан, магниттік лента сияқты жаппай сақтау құрылғылары үшін интерфейстер автобус жүйесінің тиісті орнына қосылатын бір интерфейс картасымен жасалды, ал қалған басқару карталары (6-7) артқы жақ модульдерінің біріне орналастырылды.

Жүйені үзіп тастау

"Nord 10" жүйесі 16 басымдық деңгейі бар көп бағдарламалық жүйеге ие болды. Әрбір деңгейдің өзіндік тізілімдер жиынтығы болды, оның ішінде бағдарлама санауышы және күй сөзі кірді. Іске қосылған деңгейлерді алдыңғы панельде "белсенді деңгейлер" батырмасын басу арқылы көруге болады. 0-ден 9-ға дейінгі деңгейлер бағдарламалар үшін пайдаланылды. Ішкі аппараттық күйден келетін үзілістер 14-деңгейге тағайындалды, ал 15-деңгей өте жылдам пайдаланушы үзілістері үшін резервтелді (бұл сөйлеу тілінде "синхротрон деңгейі" деп аталды, себебі оны қолданған жалғыз бағдарлама CERN-дегі синхротронды басқаратын бағдарлама болды). 10, 11, 12 және 13-деңгейлер сыртқы құрылғыларға арналды. Әрбір құрылғының өзіне тән бірегей идентификациялық векторы болды. Барлығы 2048 мұндай вектор қолжетімді болды. "Идентификатор" командасы қай құрылғы үзіліс бергенін анықтады. Үзілістің идентификациясы 1,7 микросекунд уақыт алды, оның ішінде тізілімдерді қосу және өшіруге кеткен уақыт та кірді.

Жүйелік бағдарламалық қамтамасыз ету

Nord 10 уақытты бөлісу жүйесімен, Nord TSS және нақты уақыт көп тапсырмалы операциялық жүйесі Sintran IIIпен бірге жеткізілді. Sintran III үшін минималды конфигурация 8К магниттік ядролық жадысы бар стандартты Nord 10 құрылғысын қамтыды. NORD TSS арқылы барлық пайдаланушылар Fortran IV, BASIC, MAC Assembler, NODAL, NORD PL немесе QED жүйелерінің кез келгенін бір уақытта іске қоса алатын болды.

Белгілі қалған жүйелер

Бірнеше Nord 10 және Nord 10/S жүйелері сақталған, олардың көпшілігі дерлік толық жұмыс жасайтын жағдайда, ал бірнешеуі NODAF-тың қамқорлығында. Жүйелерді қалпына келтіру Ослода NODAF және Тронхеймде Норвегия ғылым және технология университетімен жоспарлануда. Оның алдында Nord 1, ал кейінгісі Nord 100 болды.