Север-5
Nord-5 был машиной Norsk Data первой 32-битной и считался первым 32-битным мини-компьютером . [ 1 ] с учетом различной квалификации. В литературе компании он описывался как «вспомогательный компьютер... контролируемый двумя или более компьютерами NORD-1», это устройство включало «Интегрированную компьютерную систему NORD» или систему NORDIC. Возможно, именно эта более комплексная конфигурация поддержала такие заявления о том, что машина стала первой в отрасли. [ 2 ] : iii Его преемник, Норд-50, сам по себе описывался как «компьютер специального назначения» и аналогичен главному компьютеру Норд-10 . [ 3 ] : III
Представленный в 1972 году, «Норд-5» в отчетах был отнесен к категории «суперминикомпьютера», а ретроспективно описан как «технологический успех, но коммерческая катастрофа». [ 4 ] в конечном итоге их вытеснило семейство ND-500 , анонсированное в 1981 году. [ 5 ] Первоначально описывался как более крупная версия Nord -1, призванная конкурировать с UNIVAC 1106 и IBM System/360 Model 44 . [ 6 ] машина использовала Nord-1 в качестве процессора внешней консоли, на котором работала большая часть операционной системы . [ 7 ] Будучи разработанным для «высокой производительности при обработке чисел», машина могла выполнять умножение с плавающей запятой примерно за 1 мкс и деление примерно за 8 мкс. [ 2 ] : iii Согласно данным бенчмаркинга, Nord-50 достиг 0,5 миллиона инструкций Whetstone в секунду. [ 8 ]
Архитектура Норд-5 и Норд-50
[ редактировать ]Nord-5 и Nord-50 представляли собой во многом схожие процессоры , которые не поддерживают специальные инструкции ввода-вывода, инструкции, связанные с прерываниями, или функции управления памятью, которые в каждом случае делегируются главному компьютеру Nord-1 и Nord-10. [ 2 ] : iii [ 3 ] : III ЦП каждой машины предоставляет три класса инструкций, каждый из которых поддерживает ряд операций манипулирования данными, разделенных на те, которые выполняют доступ к памяти, те, которые работают с внутренними или внешними регистрами, и те, которые объединяют значения регистра с постоянным операндом или аргументом. [ 2 ] [ 9 ]
В процессоре Nord-50 использовались TTL интегральные схемы с 64-битными микросхемами ОЗУ SN7489 для хранения регистров. [ 3 ] : III-5-1 и SN74181 арифметико-логический блок . Последнее повлияло на кодировку инструкций, поддерживаемую ЦП, при этом входная кодировка выбора функции 74181 влияла на поле функционального кода инструкции адресации памяти. [ 3 ] : III-6-1
По сравнению с Nord-1 и Nord-10, которые предлагали ограниченное количество 16-битных регистров, [ 10 ] : 13–14 [ 11 ] : 3–1 Nord-5 и Nord-50 предоставили гораздо больше 32-битных регистров общего назначения, и это отражено в их наборе команд, кодирующих инструкции в 32-битных словах, в отличие от 16-битного командного слова Nord-1. и Норд-10, [ 10 ] : 16 [ 11 ] : 3–1 и предоставление более общих инструкций по операциям загрузки, хранения и смены, в отличие от инструкций для конкретных регистров, предоставляемых Nord-1 и Nord-10. Инструкции для арифметических операций и операций передачи регистров более универсальны и не ограничиваются действием на конкретные регистры, как это делают эквивалентные инструкции Nord-1 и Nord-10. Арифметика с плавающей запятой двойной точности также является заметным преимуществом Nord-5 и Nord-50, заслуживающим дополнительных инструкций. [ 3 ] : CI.1–CI.6
Регистры
[ редактировать ]ЦП в Nord-5 и Nord-50 имеет 64 регистра общего назначения размером 32 бита, обозначаемые GR 0..63 . Арифметика с плавающей запятой является основной функцией каждой системы, поэтому операции с плавающей запятой также используют эти регистры. Здесь Nord-5 и Nord-50 расходятся в поддержке представлений с плавающей запятой, при этом Nord-5 поддерживает только 64-битное представление с 52-битной мантиссой и 11-битной экспонентой. [ 2 ] : 1–2, 1–3 тогда как Nord-50 поддерживает 32- и 64-битные представления, причем последнее имеет 55-битную мантиссу и 9-битную экспоненту. [ 9 ] : 1–2, 1–3
|
Поскольку для 64-битных значений требуются пары 32-битных регистров общего назначения, Nord-5 отображает каждый плавающий регистр от FR 0 до 15 в регистр от GR 0 до 15 для самого старшего слова 64-битного представления, спаривания. которые регистрируются с одним из GR 16..31 для наименее значимого слова. Аналогично, FR 32..47 соединяет регистры из GR 32..47 с регистрами из GR 48..63 . [ 2 ] : 1–4 Эта схема продолжается в Nord-50 для плавающих регистров двойной точности, обозначенных FDR 0..15,32..47 , с плавающими регистрами одинарной точности FR 0..15,32..47, соответствующими GR 0.. 15,32..47 , таким образом используется только один из регистров в парах, выделенных для плавающих регистров двойной точности. [ 9 ] : 1–4
Первые шестнадцать регистров общего назначения более универсальны, поскольку их можно использовать в роли базового регистра или индексного регистра в инструкциях доступа к памяти, обеспечивая таким образом базовые регистры BR 0..15 и индексные регистры XR 0..15 . Вторые шестнадцать общих регистров также играют особую роль в качестве регистров модификации при определенных обстоятельствах: MR 0..15 соответствует GR 16..31 . [ 2 ] : 1–5 [ 9 ] : 1–7 Как и в других архитектурах процессоров, нулевой регистр GR 0 имеет нулевое значение, и это влияет на все интерпретации регистра (как BR 0 , FR 0 , XR 0 и MR 0 ). [ 2 ] : 1–4 [ 9 ] : 1–4
Специальные регистры, предназначенные для определенных ролей, включают регистр переполнения (OR), применимый для умножения, и регистр остатка (RR), применимый для деления. Регистр счетчика программ (P) содержит адрес команды, считываемой из памяти, а регистр команд (IR) содержит команду, выполняемую в данный момент. [ 2 ] : 1–5 [ 9 ] : 1–7
Набор инструкций
[ редактировать ]Инструкции обращения к памяти включают вычисление эффективного адреса памяти и доступ к этому вычисленному местоположению. Такие инструкции могут включать прямую или косвенную адресацию. Инструкции прямой адресации также включают выполнение указанной функции с использованием эффективного адреса и указанного регистра.
Кусочек | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
я = 0 | Х (индекс) | Б (база) | FC (код функции) | R/F/FD (обозначение регистра) | D (смещение) | ||||||||||||||||||||||||||
я = 1 | Х (индекс) | Б (база) | 0 | D (смещение) |
В обеих формах эффективный адрес вычисляется с использованием указанных базового и индексного регистров, добавляя значение смещения:
Она = R B + R X + D
Если поле I не установлено или очищено, команда прямой адресации выполняет функцию, указанную полем FC, используя эффективный адрес вместе с регистром, указанным полем обозначения регистра. Каждая из функций составляет основу конкретной отдельной инструкции и включает следующие примеры:
Инструкции | Операции |
---|---|
ЛДР, СТР, XMR | Передачи между регистрами и памятью (загрузка, сохранение, обмен) |
ЛДФ, СТФ (Норд-5) ЛДД, СТД (Норд-50) |
Передача значений двойной точности с плавающей запятой между регистрами и парами слов памяти (загрузка, сохранение). |
ДОБАВИТЬ, АДМ, И, ДЕЛ, MPY, ПОДПИСАТЬСЯ | Арифметические и логические операции, результаты которых помещаются в регистры или память. |
ФАД, ФДВ, ФМУ, ФСБ | Арифметика с плавающей запятой одинарной (Nord-50) или двойной точности (Nord-5), обновление регистров |
ФАДД, ФДВД, ФМУД, ФСБД | Арифметика с плавающей запятой двойной точности (Nord-50), обновление регистров |
JRF, JRN, JRP, JRZ | Операции условного перехода, проверяющие значения регистров, переход к эффективному адресу |
ЖФМ, ЖНМ, ЖПМ, ЖЗМ | Операции условного перехода, проверяющие измененные значения регистров, переход к эффективному адресу |
РТЖ | Переход, сохранение обратного адреса в регистре |
Более необычные операции включают операции условного пропуска (такие как CRD, CRE, CRG, CRL), сравнивающие значения регистра со значениями, полученными из эффективного адреса, пропуская следующую инструкцию в потоке, где условие удовлетворено. Удаленное выполнение (EXC) включает в себя выполнение инструкции, полученной из эффективного адреса, или даже выполнение самого вычисленного значения адреса, интерпретируемого как инструкция.
При установке поля I возникает команда косвенной адресации, включающая потенциально большее значение смещения при вычислении эффективного адреса. Однако никакая функция не задействована. Вместо этого затем получается 32-битное слово в вычисленном эффективном адресе, чтобы предоставить еще одну инструкцию обращения к памяти, кодирующую детали нового эффективного адреса. Таким образом, инструкция эффективно загружается извне обычного потока команд и выполняется, что аналогично инструкции EXC. При получении другой инструкции косвенной адресации цикл получения нового эффективного адреса повторяется, и архитектура допускает связывание до 16 косвенных ссылок, завершающееся прямой ссылкой. [ 2 ] : 2–1, 2–2 [ 9 ] : 2–1, 2–2
Межрегистровые инструкции включают операции, которые используют только регистры. Их можно отличить от инструкций обращения к памяти, поскольку биты с 18 по 22 оставлены пустыми, а бит 31 оставлен пустым, чтобы отличить их от инструкций аргументов. [ 2 ] : 2–3 [ 9 ] : 2–3
Кусочек | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | RFC (код функции) | RSC (код подфункции) | 0 | DR/DF/DFD (обозначение регистра назначения) | SRA/SRAD (обозначение исходного регистра A) | SRB (обозначение исходного регистра B) |
Формат предполагает обычное использование двух регистров источника и одного регистра результата (назначения). Однако некоторые инструкции используют поле SRB для кодирования констант, таких как величины сдвига или номера битов. Выбор инструкций поддерживается функциями, закодированными этим классом инструкций, включая следующие:
Инструкции | Операции |
---|---|
РИН, РУТ | Передачи между процессором и внешними регистрами |
ШР, СХД | Арифметические и логические операции сдвига над 32-битными и 64-битными значениями. |
БКЛ, БКМ, БСТ | Операции очистки, дополнения и установки указанного бита |
ФИКС, ФЛО FIR, FIRD, FIXD, FLOD (Север-50) |
Преобразования между целочисленными значениями и значениями с плавающей запятой |
ФРО, ИРО, ЛРО | Арифметика с плавающей запятой, целочисленная арифметика и логические операции. |
Инструкции условного пропуска также встречаются в этом классе команд, включающие либо проверку отдельных битов (BSO, BSZ), либо выполнение арифметических операций с плавающей запятой и целых чисел с последующей указанной операцией сравнения с нулем (FRS, IRS), результат которой определяет, будет ли следующая инструкция будет пропущена. Особенностью является команда вызова монитора (STOP), которая использует ноль в полях, связанных с функцией, а биты от 0 до 17 используются в качестве функционального кода в программе мониторинга Nord-1 или Nord-10. [ 2 ] : 3–2 [ 9 ] : 3–2
Инструкции аргументов включают в себя операции, которые применяют константные значения, закодированные в инструкции, к значению регистра, обновляя регистр. Их можно отличить от инструкций обращения к памяти, поскольку биты с 18 по 22 оставлены пустыми, а бит 31 оставлен установленным, чтобы отличать их от межрегистровых инструкций. [ 2 ] : 2–3 [ 9 ] : 2–3
Кусочек | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
1 | AFC (код функции) | DR (регистр назначения) | 0 | ASF (код подфункции) | А (аргумент) |
Этот класс инструкций ограничен тремя видами «прямых» инструкций, выполняющих простую арифметику (DAR), логические операции (DLR) или операцию условного пропуска, включающую операнды и операцию дополнения (DSK). [ 2 ] : 4–1, 4–2 [ 9 ] : 4–1, 4–2
Ссылки
[ редактировать ]- ^ Холт, Кнут (1988). Управление инновациями в продуктах . Butterworth & Co. (Publishers) Ltd. с. 318 . Проверено 7 июля 2023 г.
- ^ Перейти обратно: а б с д и ж г час я дж к л м н Набор инструкций NORD-5 (PDF) . АО «Норск Дата-Электроник». Сентябрь 1971 года . Проверено 30 августа 2024 г.
- ^ Перейти обратно: а б с д и Функциональное описание NORD 50 (PDF) . Норск Дата АС. Ноябрь 1977 года . Проверено 24 августа 2024 г.
- ^ Смит, Кевин (16 декабря 1985 г.). «Данные Norsk быстро растут благодаря выходу на общеевропейский уровень» . Электроника . стр. 62–63 . Проверено 7 июля 2023 г.
- ^ Кэхилл, Кевин (9 апреля 1981 г.). «Norsk выпускает первую европейскую 32-битную мини-систему» . Компьютерный еженедельник . п. 3 . Проверено 24 июня 2024 г.
- ^ «Корабли приветствуют на борту норвежские компьютеры» . Электроника . 21 декабря 1970 г. с. 76 . Проверено 7 июля 2023 г.
- ^ Цели проектирования NORD-10 (PDF) . Норск Дата АС. п. 3 . Проверено 26 августа 2024 г.
- ^ «История и результаты теста Whetstone Benchmark» . Коллекция тестов ПК Роя Лонгботтома . Октябрь 2014 года . Проверено 31 августа 2024 г.
- ^ Перейти обратно: а б с д и ж г час я дж к Справочное руководство NORD-50 (PDF) . Норск Дата АС. Февраль 1976 года . Проверено 26 августа 2024 г.
- ^ Перейти обратно: а б Справочное руководство NORD-1 (PDF) . АО «Норск Дата-Электроник». Февраль 1970 года . Проверено 31 августа 2024 г.
- ^ Перейти обратно: а б Справочное руководство NORD-10/S (PDF) . Норск Дата АС. Июнь 1977 года . Проверено 31 августа 2024 г.