stringtranslate.com

Общие данные Нова

Система Nova (бежевый и желтый, в центре внизу) и система жесткого диска с картриджем (открытая, под Nova) в практически пустой стойке.
Nova 1200 (в центре справа) обрабатывал изображения, полученные с помощью EMI-Scanner, первого в мире коммерчески доступного компьютерного томографа .

Data General Nova — серия 16-битных миникомпьютеров , выпущенная американской компанией Data General . Семейство Nova было очень популярно в 1970-х годах, и в конечном итоге было продано десятки тысяч единиц.

Первая модель, известная просто как «Nova», была выпущена в 1969 году. [1] Nova была упакована в один корпус высотой 3U для монтажа в стойку и имела достаточную вычислительную мощность для решения большинства простых задач. Нова стала популярной в научных лабораториях по всему миру. В следующем году за ним последовал SuperNOVA , который работал примерно в четыре раза быстрее.

Представленная в период быстрого прогресса в разработке интегральных схем (или «микрочипов»), линейка претерпела несколько обновлений в течение следующих пяти лет, представив 800 и 1200, Nova 2, Nova 3 и, наконец, Nova 4. Однокристальная реализация была также представлена ​​как microNOVA в 1977 году, но не получила широкого распространения, поскольку рынок перешел на новые конструкции микропроцессоров. В 1977 году компания Fairchild Semiconductor также представила микропроцессорную версию Nova — Fairchild 9440 , но она также нашла ограниченное применение на рынке.

На смену линии Nova пришла Data General Eclipse , которая во многом была похожа, но добавляла поддержку виртуальной памяти и другие функции, необходимые современным операционным системам . 32-битное обновление Eclipse привело к созданию серии Eclipse MV 1980-х годов.

История

Эдсон де Кастро и PDP-X

Эдсон де Кастро был менеджером по продукции новаторской корпорации Digital Equipment Corporation (DEC) PDP-8 , 12-битного компьютера, широко известного как первый настоящий миникомпьютер. [2] Он также руководил разработкой модернизированного PDP-8/I, в котором вместо отдельных транзисторов использовались ранние интегральные схемы . [3]

Во время разработки PDP-8/I де Кастро посещал производителей печатных плат , которые быстро увеличивали сложность плат, которые они могли собирать. де Кастро пришел к выводу, что 8/I можно производить с использованием полностью автоматизированной сборки на больших платах, что было невозможно всего годом ранее. Другие сотрудники DEC привыкли к платам меньшего размера, которые использовались в более ранних машинах, и были обеспокоены отслеживанием проблем, когда на одной плате было много компонентов. [a] Для 8/I было принято решение оставить небольшие платы, используя новую упаковку « перевернутый чип » для небольшого улучшения плотности. [3]

В период разработки PDP-8 введение ASCII и его основное обновление в 1967 году привело к появлению нового поколения проектов с длиной слова, кратной 8 битам, а не кратным 6 битам, как в большинстве предыдущих проектов. Это привело к тому, что конструкции среднего класса работали с длиной слова 16 бит вместо нынешних 12- и 18-битных линеек DEC. де Кастро был убежден, что можно улучшить PDP-8, построив 16-разрядный процессор мини-компьютера на одной 15-дюймовой квадратной плате. [4] [5]

В 1967 году де Кастро начал новую разработку, известную как «PDP-X», которая включала несколько расширенных функций. Среди них была единая базовая конструкция, которую можно было использовать для создания 8-, 16- и 32-битных платформ. [6] Это дошло до создания нескольких подробных документов по архитектуре. Кен Олсен не поддержал этот проект, считая, что он не дает достаточных преимуществ перед 12-битным PDP-8 и 18-битным PDP-9 . В конечном итоге он был отменен весной 1968 года. [4]

Дизайн Новы

Отмена PDP-X побудила де Кастро подумать о том, чтобы покинуть DEC и построить систему самостоятельно. Он был не один; в конце 1967 года сформировалась группа инженеров-единомышленников для рассмотрения такой машины. В группу входили Пэт Грин, менеджер подразделения; Ричард Согге, еще один инженер по аппаратному обеспечению; и Генри Буркхардт III, инженер-программист. [7] В отличие от PDP-X, новые усилия были сосредоточены на одной машине, которую можно было бы быстро вывести на рынок, поскольку де Кастро считал, что концепция PDP-X слишком амбициозна для небольшой начинающей компании . [8]

Обсудив это с другими сотрудниками DEC, первоначальная концепция привела к созданию 8-битной машины, реализация которой будет менее затратной. [9] Группа начала разговор с Гербертом Ричманом, продавцом Fairchild Semiconductor , который знал остальных благодаря своим контактам с DEC. В то время Fairchild боролась с Texas Instruments и Signetics на быстрорастущем рынке TTL и представляла новые производства , позволяющие создавать более сложные конструкции. Последняя серия 9300 компании Fairchild позволяла использовать до 96 вентилей на микросхему, и они использовали это для реализации ряда 4-битных микросхем, таких как двоичные счетчики и регистры сдвига . [10]

Использование этих микросхем уменьшило общее количество микросхем, необходимое для реализации полного арифметико-логического устройства (АЛУ), основного математического компонента ЦП, что позволило расширить 8-битную конструкцию до 16-битной. Это действительно потребовало расширения ЦП с одной печатной платы размером 15 на 15 дюймов (38 см × 38 см) до двух, но такая конструкция все равно будет значительно дешевле в производстве, чем 8/I, но при этом будет более мощной и удобной. На основе ASCII. Третья плата содержала схемы ввода-вывода , а полная система обычно включала еще одну плату с 4 КБ оперативной памяти . Полная система из четырех карт помещается в одном шасси, монтируемом в стойку. [5]

Платы были спроектированы таким образом, чтобы их можно было соединить вместе с помощью объединительной платы с печатной платой с минимальным количеством проводов вручную, что позволило собрать все платы автоматизированным способом. Это значительно снизило затраты по сравнению с платой 8/I, которая состояла из множества меньших плат, которые приходилось соединять вместе на объединительной плате, которая сама соединялась с помощью проволочной обмотки . Конструкция платы большего размера также сделала Nova более надежной, что сделало ее особенно привлекательной для промышленных или лабораторных условий. [5]

В новом проекте использовалась простая архитектура загрузки-хранения [4] , которая вновь появилась в проектах RISC в 1980-х годах. Поскольку сложность триггеров быстро уменьшалась по мере их реализации в микросхемах, конструкция компенсировала отсутствие режимов адресации схемы загрузки-сохранения путем добавления четырех аккумуляторов общего назначения вместо единственного регистра, который можно было бы найти. в аналогичных недорогих предложениях, таких как серия PDP. [4]

Нова введение

В конце 1967 года Ричман представил группу нью-йоркскому юристу Фреду Адлеру, который начал искать различные источники финансирования для стартового капитала. К 1968 году Адлер заключил крупную сделку по финансированию с консорциумом венчурных фондов из Бостона, который согласился предоставить первоначальные инвестиции в размере 400 000 долларов США , а вторые 400 000 долларов США были доступны для наращивания производства. де Кастро, Буркхарт и Согге покинули DEC и основали Data General (DG) 15 апреля 1968 года. Грин не присоединился к ним, посчитав предприятие слишком рискованным, а Ричман не присоединился до тех пор, пока продукт не был запущен в эксплуатацию позже в том же году. [5]

Работа над первой системой заняла около девяти месяцев, а первые продажи начались в ноябре того же года. Им немного повезло, потому что осенняя совместная компьютерная конференция была отложена до декабря того же года, поэтому они смогли привезти работающее устройство в Центр Москоне , где они запустили версию Spacewar! . [11] DG официально выпустила Nova в 1969 году по базовой цене 3995 долларов США (что эквивалентно 31 880 долларам в 2022 году), рекламируя его как «лучший маленький компьютер в мире». [12] Базовая модель была не очень полезна из коробки, и добавление8  кВт (16  КБ ) ОЗУ в виде основной памяти обычно доводило цену до 7995 долларов США . [13] Напротив, 8/I с4  кВт (6 КБ ) стоил 12 800 долларов США . [14]

Первая продажа была осуществлена ​​университету в Техасе, где команда вручную собрала образец, который был отправлен в феврале. Однако это произошло в разгар забастовки в авиационной отрасли, и машина так и не прибыла. Они прислали второй экземпляр, который прибыл сразу же, поскольку к этому моменту забастовка уже закончилась, а в мае, наконец, был доставлен и первоначальный экземпляр. [15]

Система имела успех с самого начала: 100-я была продана через шесть месяцев, [16] и 500-я через 15 месяцев. [13] Продажи ускорились по мере появления новых версий, и к 1975 году годовой объем продаж компании составил 100 миллионов долларов США . [17]

СуперНОВА

Кен Олсен публично предсказал, что DG потерпит неудачу, но с выпуском Nova стало ясно, что этого не произойдет. К этому времени ряд других компаний также заговорили о внедрении 16-битных проектов. Олсен решил, что это представляет угрозу как для их 18-битной, так и для 12-битной линейки, и начал разработку новой 16-битной версии. [18] В 1970 году он появился как PDP-11 , гораздо более сложная конструкция, которая отличалась от PDP-X так же, как и Nova. Эти два дизайна активно конкурировали на рынке. [4]

Слухи о новой системе от DEC дошли до DG вскоре после начала поставок Nova. Весной 1970 года они наняли нового дизайнера Ларри Селигмана, чтобы тот обогнал любую возможную машину, находящуюся в стадии разработки. С момента разработки Nova произошли два основных изменения; Во-первых, Signetics представила 8260, 4-битную микросхему, сочетающую в себе сумматор, XNOR и AND, а это означало, что количество микросхем, необходимых для реализации базовой логики, было уменьшено примерно в три раза. Другая причина заключалась в том, что Intel агрессивно продвигала полупроводниковую память, обещая 1024 бита на одном кристалле и работающую на гораздо более высоких скоростях, чем базовая память. [18]

В новом дизайне Селигмана были использованы оба этих улучшения. Начнем с того, что новые микросхемы позволили расширить АЛУ до полной 16-битной ширины на тех же двух картах, что позволило ему выполнять математические и логические операции за один цикл и тем самым сделать новую конструкцию в четыре раза быстрее исходной. . Кроме того, была использована новая базовая память меньшего размера, которая улучшила время цикла с исходных 1200 нс до 800 нс, что дало дополнительные преимущества.1/3улучшение. Производительность можно было бы еще улучшить, заменив ядро ​​постоянной памятью ; из-за отсутствия цикла чтения-записи ядра, к нему можно получить доступ за 300 нс для значительного повышения производительности. [16]

Получившаяся в результате машина, известная как SuperNOVA , была выпущена в 1970 году. Хотя первоначальные модели все еще использовали ядро, вся конструкция основывалась на предположении, что станут доступны более быстрые полупроводниковые запоминающие устройства, и платформа сможет в полной мере использовать их. Он был представлен позже в том же году, что и SuperNOVA SC с полупроводниковой (SC) памятью. Память с гораздо более высокой производительностью позволила ЦП, который был синхронен с памятью, еще больше увеличить скорость до работы с временем цикла 300 нс (3,3 МГц). Это сделало его самым быстрым доступным мини-компьютером за многие годы. [19] Первоначально новая память была очень дорогой и сильно нагревалась, поэтому она не получила широкого распространения. [20]

1200 и 800

Печатная плата процессора Nova 1200 . 74181 ALU — это большая правоцентристская микросхема.

В качестве демонстрации мощи своей технологии вентильной матрицы Micromatrix в 1968 году Fairchild создала прототип 4711, однокристального 4-битного АЛУ. [10] [21] Конструкция никогда не предназначалась для массового производства, и ее производство было довольно дорогим. Появление Signetics 8260 в 1969 году вынудило их сделать это; И Texas Instruments, и Fairchild представили в 1970 году собственные 4-битные ALU: 74181 и 9341 соответственно. В отличие от 8260, новые конструкции предлагали все общие логические функции и еще больше сокращали количество микросхем. [10]

Это побудило генерального директора рассмотреть возможность разработки нового процессора с использованием этих более интегрированных микросхем. Как минимум, это сократило бы количество ЦП до одной карты для базовой Nova или SuperNOVA. Появилась новая концепция, согласно которой на одном шасси можно было бы разместить любую машину, просто заменив печатную плату ЦП. Это позволит клиентам приобрести более дешевую систему, а затем обновить ее в любое время. [22]

Пока Селигман работал над SuperNOVA, компания получила письмо от Рона Грюнера, в котором говорилось: «Я читал о вашем продукте, я читал вашу рекламу и буду работать на вас. в вашем офисе через неделю, чтобы поговорить с вами об этом». [22] Его тут же наняли. Грюнеру было поручено разработать недорогую машину, а Селигман разработал соответствующую высокопроизводительную версию. [22]

Недорогая модель Gruner, выпущенная в 1970 году как Nova 1200 , 1200 относится к использованию базовой памяти оригинальной Nova 1200 нс. Он имел 4-битное АЛУ на базе одного чипа 74181 и, таким образом, по сути представлял собой переупакованную Nova. Переупакованная модель SuperNOVA с четырьмя ALU от Селигмана была выпущена в 1971 году как Nova 800 , что привело к несколько запутанному названию, поскольку модель с меньшим номером имела более высокую производительность. [22] Обе модели предлагались в различных корпусах: 1200 с семью слотами, 1210 с четырьмя и 1220 с четырнадцатью.

Более поздние модели

К этому времени PDP-11 наконец поступил в продажу. Он предлагал гораздо более богатую архитектуру набора команд , чем намеренно простая архитектура Nova. Постоянное совершенствование конструкции микросхем, особенно их соотношения цены и качества , снижало ценность исходных упрощенных инструкций. Селигману было поручено разработать новую машину, которая была бы совместима с Nova и предлагала бы гораздо более богатую среду для тех, кто этого хотел. Эта концепция поставлялась как серия Data General Eclipse , которая предлагала возможность добавлять дополнительные схемы для адаптации набора команд для научных задач или рабочих нагрузок по обработке данных. Eclipse успешно конкурировал с PDP-11 на более высоком уровне рынка. [23]

Примерно в то же время начали появляться слухи о новой 32-битной машине от DEC. Генеральный директор решил, что им нужен аналогичный продукт, и Грюнеру было поручено заняться тем, что впоследствии стало проектом Fountainhead. Учитывая масштабы проекта, они согласились, что все усилия следует проводить за пределами объекта, и Грюнер выбрал место в парке Research Triangle Park в Северной Каролине . Эта конструкция стала очень сложной [24] и в конечном итоге была отменена несколько лет спустя.

Пока эти усилия продолжались, работы по линии Нова продолжались.

840

Работает Nova 840 (Передняя панель заменена на от 1220)

Модель 840, впервые предложенная в 1973 году, также включала новую систему страничной памяти, позволяющую использовать адреса длиной до 17 бит. Индекс смещает базовый адрес в большую память объемом 128 килослов. На самом деле установка такого большого объема памяти потребовала значительного пространства; Модель 840 поставляется в большом корпусе с 14 слотами.

Нова 2

Следующей версией была Nova 2 , первые версии которой были выпущены в 1973 году. Nova 2, по сути, была упрощенной версией более ранних машин, поскольку увеличение плотности чипов позволило уменьшить размер ЦП. В то время как в SuperNOVA использовались три платы размером 15×15 дюймов для реализации ЦП и его памяти, в Nova 2 все это размещалось на одной плате. ПЗУ использовалось для хранения загрузочного кода, который затем копировался в ядро ​​при «загрузке программы». Переключатель был переключен. Были доступны версии с четырьмя («2/4»), семью и десятью («2/10») слотами.

Нова 3

Общие данные Нова 3

В Nova 3 1975 года были добавлены еще два регистра, используемые для управления доступом к встроенному стеку. Процессор также был переработан с использованием компонентов TTL , что еще больше повысило производительность системы. Nova 3 предлагалась в четырехслотовой (Nova 3/4) и двенадцатислотовой (Nova 3/12) версиях.

Нова 4

Похоже, что Data General изначально планировала, что Nova 3 будет последней в своей линейке, планируя заменить Nova более поздними машинами Eclipse. Однако продолжающийся спрос привел к появлению машины Nova 4 , на этот раз основанной на четырех битовых ALU AMD Am2901 . Эта машина с самого начала проектировалась как Nova 4 и Eclipse S/140, с разными микрокодами для каждой. Также был доступен сопроцессор с плавающей запятой, занимавший отдельный слот. Дополнительная опция позволяла отображать память, позволяя программам получать доступ к памяти объемом до 128 килослов с использованием переключения банков . В отличие от более ранних машин, Nova 4 не имела консоли на передней панели и вместо этого использовала терминал для эмуляции консоли, когда это необходимо.

Существовали три разные версии Nova 4: Nova 4/C, Nova 4/S и Nova 4/X. Nova 4/C представляла собой одноплатную реализацию, включавшую всю память (16 или 32 кслова). В Nova 4/S и 4/X использовались отдельные платы памяти. Nova 4/X имел встроенный блок управления памятью (MMU), позволяющий использовать до 128 килослов памяти. MMU также был установлен в Nova 4/S, но был отключен прошивкой. И 4/S, и 4/X включали в себя «предварительную выборку» для повышения производительности за счет извлечения до двух инструкций из памяти до того, как они потребуются.

микроНОВА

Общие данные микропроцессор mN601

Data General также выпустила серию однокристальных реализаций процессора Nova microNOVA . Чтобы его можно было разместить в 40-контактном микросхеме с двойным входом (DIP), адресная шина и шина данных использовали общий набор из 16 контактов. Это означало, что чтение и запись в память требовали двух циклов, и в результате машина работала примерно вдвое медленнее, чем оригинальная Nova. [25]

Первым чипом в серии был mN601 1977 года. Он продавался как ЦП для других пользователей, полный набор микросхем для тех, кто хочет реализовать компьютер, полноценный компьютер на одной плате с 4 КБ ОЗУ, а также как полноценная бюджетная модель Nova. [25] Модернизированная версия конструкции mN602 1979 года сократила весь набор микросхем до одной СБИС . Это предлагалось в двух машинах: microNOVA MP/100 и более крупной microNOVA MP/200 .

Позже microNOVA была переупакована с монитором в корпусе типа ПК и двумя дискетами как Enterprise . Enterprise была выпущена в 1981 году и работала под управлением RDOS , но появление IBM PC в том же году заставило большинство других машин исчезнуть из поля зрения. [26]

Наследие Новы

Nova повлияла на дизайн компьютеров Xerox Alto (1973) [27] и Apple I (1976) [28] , а его архитектура легла в основу серии Computervision CGP (Computervision Graphics Processor). Сообщается, что его внешний дизайн послужил прямым источником вдохновения для передней панели микрокомпьютера MITS Altair (1975).

Data General продолжила успех оригинальной Nova, выпустив серию более быстрых моделей. Позднее было представлено семейство систем Eclipse с расширенным набором команд, совместимым с предыдущими версиями, а серия MV еще больше расширила Eclipse до 32-битной архитектуры, чтобы конкурировать с DEC VAX . Развитие серии MV было задокументировано в популярной книге Трейси Киддер 1981 года «Душа новой машины» . Сама Data General позже превратилась в поставщика серверов и массивов хранения данных на базе процессоров Intel, которые в конечном итоге были куплены EMC .

Во всем мире существует разнообразная, но пылкая группа людей, которые восстанавливают и сохраняют оригинальные 16-битные системы Data General. [29] [30]

Техническое описание

Дизайн процессора

Nova, в отличие от PDP-8 , имела архитектуру «загрузка-сохранение» . Он имел четыре 16-битных аккумуляторных регистра, два из которых (2 и 3) могли использоваться как индексные регистры . Имелся 15-битный счетчик программ и однобитный регистр переноса . Как и в PDP-8, адресация текущей + нулевой страницы была центральной. Регистра стека не было , но в более поздних разработках Eclipse для этой функции использовался выделенный адрес аппаратной памяти.

Самые ранние модели Nova обрабатывали математические данные последовательно в 4-битных пакетах, используя один ALU из 74181 битов . Через год после своего появления эта конструкция была улучшена и теперь включает полный 16-битный параллельный математический блок с использованием четырех процессоров 74181, причем эта конструкция получила название SuperNova. В будущих версиях системы были добавлены стековая единица и аппаратное умножение/деление.

Nova 4 / Eclipse S/140 был основан на четырех бит-срезных ALU AMD 2901 с микрокодом в постоянной памяти и был первым Nova, разработанным только для основной памяти DRAM , без возможности использования памяти на магнитных сердечниках .

Память и ввод-вывод

Первые модели были доступны с памятью на магнитном сердечнике объемом 8 тыс. слов в качестве опции, которую приходилось покупать практически каждому, в результате чего стоимость системы достигала 7995 долларов.

Эта основная плата памяти была организована планарно как четыре группы по четыре банка, каждый банк содержал два набора ядер в матрице 64 на 64; таким образом, в каждом наборе было 64 x 64 = 4096 бит, x 2 набора давали 8 192 бита, x 4 банка давали 32 768 бит, x 4 группы давали в общей сложности 131 072 бита, и это, разделенное на размер машинного слова в 16 бит, давало 8 192 слова. памяти.

Ядро этой платы памяти на 8 КБ занимало расположенную в центре «плату на плате» шириной 5,25 дюйма и высотой 6,125 дюйма и было закрыто защитной пластиной. Он был окружен необходимой схемой поддержки чтения-записи-перезаписи драйверов. Все ядро ​​и соответствующая вспомогательная электроника помещаются на одну стандартную плату размером 15 x 15 дюймов (380 мм). В одном внешнем блоке расширения может поддерживаться до 32 КБ такой основной оперативной памяти . Полупроводниковое ПЗУ уже было доступно в то время, и системы без ОЗУ (т.е. только с ПЗУ) стали популярными во многих промышленных условиях. Оригинальные машины Nova работали на частоте примерно 200 кГц , но SuperNova была разработана для работы на частоте до 3 МГц при использовании со специальной полупроводниковой основной памятью.

Стандартизированная объединительная плата и сигналы ввода-вывода создали простую и эффективную конструкцию ввода-вывода, которая упростила взаимодействие программируемых устройств ввода-вывода и каналов данных с Nova по сравнению с конкурирующими машинами. В дополнение к специальной структуре шины ввода-вывода объединительная плата Nova имела контакты для намотки проводов , которые можно было использовать для нестандартных разъемов или других специальных целей.

Модель программирования

Формат инструкций можно разделить на одну из трех функций: 1) манипуляция между регистрами, 2) обращение к памяти и 3) ввод/вывод. Каждая инструкция заключалась в одном слове. Манипулирование между регистрами было почти RISC -подобным по своей битовой эффективности; а инструкция, которая манипулирует данными регистров, также может выполнять тесты, сдвиги и даже отбрасывать результат. Варианты оборудования включали блок целочисленного умножения и деления, блок с плавающей запятой (одинарной и двойной точности) и управление памятью .

Программное обеспечение Data General на перфоленте

Самая ранняя Nova поставлялась с интерпретатором BASIC на перфоленте . По мере роста продукта компания Data General разработала множество языков для компьютеров Nova, работающих под управлением различных операционных систем. FORTRAN IV , ALGOL , Extended BASIC, Data General Business Basic , Interactive COBOL и несколько ассемблеров были доступны в Data General. Сторонние поставщики и сообщество пользователей расширили свои предложения за счет Forth , Lisp , BCPL , C , ALGOL и других проприетарных версий COBOL и BASIC .

Набор инструкций

Реализованные ниже машинные инструкции представляют собой общий набор, реализованный во всех процессорах серии Nova. В определенных моделях часто реализовывались дополнительные инструкции, а некоторые инструкции предоставлялись дополнительным оборудованием.

Арифметические инструкции

Все арифметические инструкции выполняются между аккумуляторами. Для операций, требующих двух операндов, один брался из аккумулятора-источника, а другой - из аккумулятора-приемника, а результат помещался в аккумулятор-приемник. Для операций с одним операндом операнд брался из исходного регистра, а результат заменял регистр назначения. Для всех кодов операций с одним операндом допустимо, чтобы аккумуляторы источника и назначения были одинаковыми, и операция работала должным образом.

Все арифметические инструкции включали бит «без загрузки», который, будучи установлен, подавлял передачу результата в регистр назначения; это использовалось вместе с опциями тестирования для выполнения теста без потери существующего содержимого регистра назначения. На языке ассемблера добавление символа «#» к коду операции устанавливает бит отсутствия загрузки.

ЦП содержал однобитный регистр, называемый битом переноса, который после арифметической операции содержал перенос самого старшего бита. Бит переноса может быть установлен в желаемое значение перед выполнением операции с использованием двухбитового поля в инструкции. Бит может быть установлен, очищен или дополнен перед выполнением инструкции. На языке ассемблера эти параметры задавались добавлением буквы к коду операции: «O» — установить бит переноса; «Z» — очистить бит переноса, «C» — дополнить бит переноса, ничего — бит переноса оставить в покое. Если также был указан бит отсутствия загрузки, для вычислений будет использоваться указанное значение переноса, но фактический регистр переноса останется неизменным.

Все арифметические инструкции включали двухбитовое поле, которое можно было использовать для указания параметра сдвига, который будет применяться к результату перед его загрузкой в ​​регистр назначения. Можно указать однобитовый сдвиг влево или вправо или поменять местами два байта результата. Сдвиги были 17-битными циклическими, с битом переноса «слева» от старшего бита. Другими словами, когда выполнялся сдвиг влево, наиболее значимый бит результата сдвигался в бит переноса, а предыдущее содержимое бита переноса сдвигалось в наименее значащий бит результата. Замена байтов не повлияла на бит переноса. На языке ассемблера эти параметры задавались добавлением буквы к коду операции: «L» — сдвиг влево; 'R' — сдвиг вправо, 'S' – поменять местами байты; ничего — не выполняйте сдвиг или замену.

Все арифметические инструкции включали трехбитное поле, в котором можно было указать тест, который должен был применяться к результату операции. Если результат теста оказался верным, следующая инструкция в строке была пропущена. На языке ассемблера опция проверки была указана как третий операнд инструкции. Доступными тестами были:

Фактические арифметические инструкции были:

Пример арифметических инструкций со всеми используемыми опциями:

АДДЗР# 0 , 2 , СНЦ 

Это декодируется как: очистить бит переноса; добавьте содержимое AC2 (аккумулятор 2) в AC0; круговой сдвиг результата на один бит вправо; проверьте результат, чтобы увидеть, установлен ли бит переноса, и, если да, пропустите следующую инструкцию. Отмените результат после выполнения теста. По сути, это добавляет два числа и проверяет, является ли результат четным или нечетным.

Справочные инструкции по памяти

Набор инструкций Nova содержал пару инструкций, которые передавали содержимое памяти в аккумуляторы и наоборот, две инструкции передачи управления и две инструкции, которые проверяли содержимое ячейки памяти. Все инструкции обращения к памяти содержали восьмибитное поле адреса и двухбитное поле, определяющее режим адресации памяти. Четыре режима были:

Очевидно, что режим 0 был способен обращаться только к первым 256 словам памяти, учитывая восьмибитное адресное поле. Эта часть памяти называлась «нулевой страницей». Слова памяти нулевой страницы считались ценными для программистов на языке ассемблера Nova из-за их небольшого количества; только к нулевым позициям страницы можно было обращаться из любого места программы, не прибегая к индексированной адресации, которая требовала связывания аккумулятора 2 или 3 для использования в качестве индексного регистра. На языке ассемблера директива «.ZREL» заставляла ассемблер помещать инструкции и слова данных, следующие за ней, на нулевую страницу; Директива «.NREL» помещала следующие инструкции и слова данных в «обычную» память. В более поздних моделях Nova были добавлены инструкции с расширенными полями адресации, что позволило преодолеть эту проблему (за счет снижения производительности).

Относительные смещения для режима 1 ассемблер вычислял автоматически, хотя можно было и явно записать это в исходнике. Если инструкция обращения к памяти ссылалась на адрес памяти в пространстве .NREL, но не имел спецификатора режима, предполагался режим 1, а ассемблер вычислял смещение между текущей инструкцией и адресом, на который ссылается, и помещал его в поле адреса инструкции (при условии, что результирующий значение помещается в 8-битное поле).

Две инструкции по загрузке и хранению были следующими:

Обе эти инструкции включали «косвенный» бит. Если этот бит был установлен (сделано на языке ассемблера путем добавления символа «@» к коду операции), предполагалось, что содержимое целевого адреса само по себе является адресом памяти, и на этот адрес можно будет ссылаться для загрузки или сохранения.

Двумя инструкциями по передаче управления были:

Как и в случае с инструкциями загрузки и сохранения, инструкции перехода содержали косвенный бит, который также был указан в ассемблере с использованием символа «@». В случае непрямого перехода процессор извлекал содержимое целевой ячейки и использовал это значение в качестве адреса памяти для перехода. Однако, в отличие от инструкций загрузки и сохранения, если бы в косвенном адресе был установлен старший бит, он выполнил бы следующий цикл косвенности. В процессорах серии Nova до Nova 3 не было ограничения на количество циклов косвенности; косвенный адрес, ссылающийся на самого себя, приведет к бесконечному циклу косвенной адресации, в котором инструкция никогда не завершится. (Это может вызвать тревогу у пользователей, поскольку в таком состоянии нажатие переключателя СТОП на передней панели ничего не дало. Чтобы разорвать петлю, необходимо было перезагрузить машину.)

Две инструкции по тестированию памяти были следующими:

Как и в случае с инструкциями загрузки и сохранения, существовал бит косвенной адресации, который выполнял один уровень косвенной адресации. Эти инструкции были странными тем, что на Novas с памятью на магнитных сердечниках инструкция выполнялась внутри самой платы памяти. Как это было принято в то время, платы памяти содержали схему «обратной записи» для решения проблемы деструктивного чтения, свойственной памяти с магнитным сердечником. Но механизм обратной записи также содержал мини-арифметический блок, который процессор использовал для нескольких целей. Для инструкций ISZ и DSZ приращение или уменьшение происходило между считываемой ячейкой памяти и обратной записью; ЦП просто ждал, пока ему сообщат, был ли результат нулевым или ненулевым. Эти инструкции были полезны, поскольку позволяли использовать ячейку памяти в качестве счетчика циклов без использования аккумулятора, но они были медленнее, чем выполнение эквивалентных арифметических инструкций.

Некоторые примеры инструкций обращения к памяти:

ЛДА 1 , СЧЕТ 

Переносит содержимое ячейки памяти с меткой COUNT в аккумулятор 1. Предполагая, что COUNT находится в пространстве .NREL, эта инструкция эквивалентна: LDA 1,1,(COUNT-(.+1)), где '.' представляет расположение инструкции LDA.

JSR@ 0 , 17 

Косвенный переход к адресу памяти, указанному содержимым ячейки 17, в пространстве нулевой страницы, и запись адреса возврата в аккумулятор 3. Это был стандартный метод выполнения системного вызова RDOS на ранних моделях Nova; мнемоника языка ассемблера ".SYSTM" переведена на это.

СПМ 0 , 3 

Перейти к ячейке памяти, адрес которой содержится в аккумуляторе 3. Это был обычный способ возврата из функции или вызова подпрограммы, поскольку инструкция JSR оставляла адрес возврата в аккумуляторе 3.

СТА 0 , 3 , - 1 

Сохраните содержимое аккумулятора 0 в месте, которое на единицу меньше адреса, содержащегося в аккумуляторе 3.

СЧИТАНИЕ ДСЗ 

Уменьшите значение в ячейке с надписью COUNT и пропустите следующую инструкцию, если результат равен нулю. Как и в приведенном выше случае, если предполагается, что COUNT находится в пространстве .NREL, это эквивалентно: DSZ 1,(COUNT-(.+1))

Инструкции ввода/вывода

В Novas реализована канальная модель взаимодействия с устройствами ввода-вывода. В модели ожидалось, что каждое устройство ввода-вывода будет реализовывать два флага, называемые «Занято» и «Готово», а также три регистра данных и управления, называемые A, B и C. Доступны инструкции ввода-вывода. для чтения и записи регистров, а также для отправки устройству одного из трех сигналов, называемых «старт», «очистка» и «импульс». Обычно отправка сигнала запуска инициирует операцию ввода-вывода, которая была настроена путем загрузки значений в регистры A/B/C. Сигнал очистки остановил операцию ввода-вывода и очистил возникшее в результате прерывание. Импульсный сигнал использовался для инициирования вспомогательных операций в сложных подсистемах, таких как операции поиска на дисках. Опрашиваемые устройства обычно передавали данные непосредственно между устройством и регистром A. Устройства DMA обычно использовали регистр A для указания адреса памяти, регистр B для указания количества передаваемых слов и регистр C для флагов управления. Канал 63 относился к самому ЦП и использовался для различных специальных функций.

Каждая инструкция ввода-вывода содержала шестибитное поле номера канала, четырехбитное поле для указания регистра для чтения или записи и двухбитное поле для указания того, какой сигнал следует отправить. На языке ассемблера сигнал задавался добавлением буквы к коду операции: «S» для начала, «C» для очистки, «P» для импульса и «ничего» для отсутствия сигнала. Коды операций были:

Кроме того, были доступны четыре инструкции для проверки состояния устройства:

Запуск устройства привел к установке флага занятости. Когда запрошенная операция была завершена, обычно устройство очищало свой флаг занятости и устанавливало флаг выполнения; у большинства устройств механизм запроса прерывания был привязан к флагу выполнения, поэтому установка флага выполнения вызывала прерывание (если прерывания были включены и устройство не было замаскировано).

Специальные инструкции

Эти инструкции выполняли различные функции управления процессором и состояния. Все они на самом деле представляли собой сокращенные мнемоники для инструкций ввода-вывода на канале 63, самоссылающемся канале ввода-вывода ЦП.

Прерывания и обработка прерываний

С аппаратной точки зрения механизм прерываний был относительно простым, но и менее гибким, чем в современных архитектурах ЦП. Объединительная плата поддерживала одну линию запроса прерывания, к которой подключались все устройства, способные прерывать. Когда устройству требовалось запросить прерывание, оно вызывало эту строку. ЦП принял прерывание, как только завершил текущую инструкцию. Как указано выше, ожидалось, что устройство поднимет свой флаг ввода-вывода «готово», когда оно запросит прерывание, и соглашение заключалось в том, что устройство очистит свой запрос на прерывание, когда ЦП выполнит инструкцию очистки ввода-вывода на канале устройства. число.

ЦП ожидал, что операционная система поместит адрес своей процедуры обслуживания прерываний в адрес памяти 1. Когда устройство прерывалось, ЦП выполнял косвенный переход через адрес 1, помещая адрес возврата в адрес памяти 0 и отключая дальнейшие прерывания. Обработчик прерывания затем выполнит инструкцию INTA, чтобы определить номер канала прерывающего устройства. Это работало за счет подачи сигнала «подтверждения» на объединительной плате. Сигнал подтверждения подключался последовательно через объединительную плату, так что он проходил через каждую плату на шине. Ожидалось, что любое устройство, запрашивающее прерывание, будет блокировать дальнейшее распространение сигнала подтверждения по шине, так что, если два или более устройств одновременно имели ожидающие прерывания, только первое из них увидит сигнал подтверждения. Затем это устройство отреагировало, поместив номер своего канала в линии данных на шине. Это означало, что в случае одновременных запросов на прерывание приоритетное устройство определялось тем, какое из них было физически ближе всего к ЦП в каркасе для карт.

После того, как прерывание было обработано и сервисная программа отправила устройству очистку ввода-вывода, оно возобновило нормальную обработку, разрешив прерывания и затем вернувшись через непрямой переход через адрес памяти 0. Чтобы предотвратить прерывание ожидающего прерывания непосредственно перед при обратном переходе (который приводил к перезаписи адреса возврата), инструкция INTEN имела задержку в один цикл инструкции. При его выполнении прерывания не будут разрешены до тех пор, пока не будет выполнена следующая инструкция, которая, как ожидалось, будет инструкцией JMP@0.

Затем процедура обслуживания прерываний операционной системы обычно выполняет индексированный переход, используя полученный номер канала, чтобы перейти к конкретной процедуре обработки прерываний для устройства. Было несколько устройств, в частности схема обнаружения сбоя питания ЦП, которые не ответили на инструкцию INTA. Если INTA возвращал нулевой результат, подпрограмме обслуживания прерываний приходилось опрашивать все устройства, не отвечающие на INTA, с помощью инструкций SKPDZ/SKPDN, чтобы определить, какое из них прервалось.

Операционная система могла бы в некоторой степени управлять порядком прерываний, устанавливая маску прерывания с помощью инструкции MSKO. Это было предназначено для того, чтобы операционная система могла определить, каким устройствам разрешено прерывание в данный момент времени. При выполнении этой инструкции 16-битная маска прерывания передавалась всем устройствам на объединительной плате. Устройство должно было решить, что на самом деле означает для него маска; по соглашению замаскированное устройство не должно было вызывать линию прерывания, но у ЦП не было средств обеспечить это. Большинство маскируемых устройств позволяли выбирать бит маски с помощью перемычки на плате. Были устройства, которые вообще игнорировали маску.

В системах, имеющих память на магнитном сердечнике (которая сохраняла свое содержимое без питания), было возможно восстановление после сбоя питания. Схема обнаружения сбоя питания в ЦП выдавала прерывание при обнаружении потери основного питания, поступающего в компьютер; с этого момента у ЦП было небольшое количество времени, пока конденсатор в источнике питания не потерял заряд и не отключилось питание ЦП. Этого времени было достаточно, чтобы остановить выполняемый ввод-вывод, выдав команду IORST, а затем сохранить содержимое четырех аккумуляторов и бит переноса в память. При возобновлении подачи питания, если ключевой переключатель на передней панели ЦП находился в положении LOCK, ЦП запускался и выполнял непрямой переход через адрес памяти 2. Ожидалось, что это будет адрес сервисной процедуры операционной системы, которая перезагрузит аккумуляторы. и перенесите бит, а затем возобновите нормальную обработку. Сервисной программе предстояло выяснить, как перезапустить операции ввода-вывода, прерванные из-за сбоя питания.

Компоновка передней панели

Как было принято в то время, большинство моделей Nova имели консоль на передней панели для управления и мониторинга функций ЦП. Все модели до Nova 3 использовали каноническую компоновку передней панели, как показано на фотографии панели Nova 840 выше. Компоновка содержала переключатель питания с ключом, два ряда лампочек отображения адреса и данных, ряд переключателей ввода данных и ряд функциональных переключателей, которые при нажатии активировали различные функции ЦП. Адресные лампы всегда отображали текущее значение счетчика программ в двоичном формате. Лампы данных отображали различные значения в зависимости от того, какая функция ЦП была активна в данный момент. Слева от крайней левой лампы данных дополнительная лампа отображала текущее значение бита переноса. На большинстве моделей использовались лампы накаливания, припаянные к панели управления; замена перегоревших ламп была проклятием существования для инженеров выездного обслуживания Data General.

Каждый из переключателей данных контролировал значение одного бита в 16-битном значении, и в соответствии с соглашением Data General они были пронумерованы от 0 до 15 слева направо. Переключатели данных обеспечивали ввод данных в ЦП для различных функций, а также могли быть прочитаны работающей программой с использованием инструкции языка ассемблера READS. Чтобы уменьшить беспорядок на панели и сэкономить деньги, функциональные переключатели были реализованы как двусторонние переключатели мгновенного действия. Когда рычаг функционального переключателя был поднят, он запускал функцию, название которой было напечатано над переключателем на панели; когда рычаг был нажат, он активировал функцию, название которой появлялось под переключателем. Рычаг переключателя при отпускании возвращался в нейтральное положение.

Судя по фотографии Nova 840, первые четыре переключателя слева выполняли функции ПРОВЕРКА и ДЕПОЗИТ для четырех аккумуляторов. Нажатие кнопки ПРОВЕРИТЬ на одном из них привело к тому, что текущее значение аккумулятора отобразилось в двоичном виде с помощью индикаторов данных. При нажатии DEPOSIT двоичное значение, представленное текущими настройками переключателей данных, переносится в аккумулятор.

Идя направо, следующим переключателем был переключатель RESET/STOP. Нажатие STOP привело к остановке процессора после завершения текущей инструкции. Нажатие RESET привело к немедленной остановке ЦП, очистке ряда внутренних регистров ЦП и отправке сигнала сброса ввода-вывода всем подключенным устройствам. Переключатель справа от него был переключателем ПУСК/ПРОДОЛЖЕНИЕ. Нажатие кнопки ПРОДОЛЖИТЬ заставило ЦП возобновить выполнение инструкции, на которую в данный момент указывает счетчик программ. При нажатии START значение, установленное в данный момент в переключателях данных 1–15, переносится в счетчик программы, а затем начинается выполнение оттуда.

Следующие два переключателя обеспечивали доступ к памяти для чтения и записи с передней панели. Нажатие кнопки EXAMINE передает значение, установленное в переключателях данных 1–15, в программный счетчик, извлекает значение из соответствующей ячейки памяти и отображает его значение на индикаторах данных. Нажатие кнопки EXAMINE NEXT увеличило счетчик программ, а затем выполнило операцию проверки этой ячейки памяти, позволяя пользователю пройти через ряд ячеек памяти. Нажатие кнопки DEPOSIT записывает значение, содержащееся в данных, и переключается на ячейку памяти, на которую указывает программный счетчик. Нажатие кнопки DEPOSIT NEXT сначала увеличивает счетчик программ, а затем помещает его в указанную ячейку памяти.

Функция INST STEP заставила ЦП выполнить одну инструкцию в текущем месте счетчика программ, а затем остановиться. Поскольку счетчик программы увеличивался в ходе выполнения инструкции, это позволяло пользователю выполнять программу пошагово. MEMORY STEP (неправильный термин) заставил процессор пройти один такт и остановиться. Это было мало полезно для пользователей и обычно использовалось только обслуживающим персоналом для диагностики.

ЗАГРУЗКА ПРОГРАММЫ — это механизм, обычно используемый для загрузки Nova. Когда этот переключатель сработал, загрузочное ПЗУ из 32 слов отображалось на первые 32 слова памяти, счетчик программ устанавливался на 0 и запускался ЦП. Загрузочное ПЗУ содержало код, который считывал 256 слов (512 байт) кода с выбранного устройства ввода-вывода в память, а затем передавал управление считанному коду. Переключатели данных 8–15 использовались для указания загрузочному ПЗУ, с какого канала ввода-вывода следует загружаться. Если переключатель 0 был выключен, загрузочное ПЗУ предполагало, что устройство является опрашиваемым устройством (например, устройство чтения бумажной ленты), и запускало цикл опрашиваемого ввода до тех пор, пока не были прочитаны 512 байт. Если переключатель 0 был включен, загрузочное ПЗУ предполагало, что устройство является устройством с поддержкой DMA, и инициировало передачу данных DMA. Загрузочное ПЗУ не было достаточно умным, чтобы расположить устройство перед началом передачи. Это была проблема при перезагрузке после сбоя; если загрузочным устройством был дисковод, его головки, скорее всего, остались на случайном цилиндре. Их нужно было переместить в цилиндр 0, где RDOS записал загрузочный блок первого уровня, чтобы последовательность загрузки работала. Обычно это делалось путем циклического прохождения накопителем последовательности загрузки, но пользователи, которых расстраивало время ожидания (до 5 минут в зависимости от модели накопителя), научились вводить с передней панели привод «перекалибровать» код ввода-вывода. и пропустить через него процессор за один шаг — операция, которая у опытного пользователя заняла всего несколько секунд.

Выключатель питания представлял собой трехпозиционный переключатель с ключом и положениями, отмеченными OFF, ON и LOCK. В положении OFF все питание ЦП было отключено. При повороте ключа в положение ON подается питание на процессор. Однако, в отличие от нынешних ЦП, ЦП не запускался автоматически при подаче питания; пользователю приходилось использовать ЗАГРУЗКУ ПРОГРАММЫ или какой-либо другой метод, чтобы запустить ЦП и инициировать последовательность загрузки. Поворот переключателя в положение LOCK отключил функциональные переключатели на передней панели; повернув переключатель в положение LOCK и вынув ключ, пользователь может сделать ЦП устойчивым к несанкционированному вмешательству. В системах с памятью на магнитных сердечниках положение LOCK также включает функцию автоматического восстановления после сбоя питания. Ключ можно вынуть в положениях OFF или LOCK.

Производительность

Nova 1200 выполнил инструкции доступа к основной памяти (LDA и STA) за 2,55 микросекунды (мкс). Использование постоянной памяти сэкономило 0,4 мкс. Инструкции аккумулятора (ADD, SUB, COM, NEG и т. д.) занимали 1,55 мкс, MUL 2,55 мкс, DIV 3,75 мкс, ISZ 3,15-4,5 мкс. [31] В более поздней версии Eclipse MV/6000 LDA и STA требовали 0,44 мкс, ADD и т. д. требовали 0,33 мкс, MUL 2,2 мкс, DIV 3,19 мкс, ISZ 1,32 мкс, FAD 5,17 мкс, FMMD 11,66 мкс. [32]

Примеры языка ассемблера

Программа «Привет, мир»

Это минимальный пример программирования на ассемблере Nova. Он предназначен для работы под RDOS и печатает строку « Hello, world. » на консоли.

 ; программа «привет, мир» для Nova, работающей под управлением RDOS ; использует системный вызов PCHAR .titl hello .nrel .ent start       начало: dochar : lda 0 , @pmsg ; загрузить ac0 следующим символом, mov# 0 , 0 , snr ; тест ac0; пропустить, если ненулевое значение (не загружать результат) jmp Done .systm .pchar ; напечатать первый jmp er ; пропускается, если все в порядке, movs 0 , 0 ; поменять местами байты .systm .pchar ; напечатать второй jmp er ; пропускается, если все в порядке isz pmsg ; указать на следующий символ jmp dochar ; обойти еще раз                               готово: .systm ; нормальный выход .rtn er: .systm ; ошибка выход .ertn остановка         пмсг: . + 1 ; указатель на первый символ строки ; байты примечаний по умолчанию упаковываются справа налево ; <15><12> обозначает пару CR LF. .txt / Привет , мир. < 15 >< 12 >/ 0 ; пометить слово для завершения строки          .конец начало 

16-битное умножение

Базовые модели Nova поставлялись без встроенной аппаратной возможности умножения и деления, чтобы поддерживать конкурентоспособные цены. Следующая процедура умножает два 16-битных слова, чтобы получить результат в виде 16-битного слова (переполнение игнорируется). Он демонстрирует комбинированное использование операций ALU, сдвига и проверки (пропуска). Обратите внимание, что когда эта подпрограмма вызывается jsr, AC3 сохраняет адрес возврата . Это используется инструкцией возврата jmp 0,3. Идиоматический способ очистки аккумулятора sub 0,0. Другие отдельные инструкции могут быть организованы для загрузки определенного набора полезных констант (например, -2, -1 или +1).

 мпй: ; умножьте AC0 <- AC1 * AC2, Тоби Тейн суб0 , 0 ; _ очистить результат mbit: movzr 1 , 1 , szc ; множитель сдвига, проверка младшего разряда, добавление 2 , 0 ; 1: добавить множимое movzl 2 , 2 , szr ; сдвиг и проверка на ноль jmp mbit ; не ноль, сделайте еще один бит jmp 0 , 3 ; возвращаться           

Двоичный аккумулятор печати

Следующая процедура выводит значение AC1 в виде 16-значного двоичного числа на консоль RDOS. Он раскрывает дополнительные особенности набора команд Nova. Например, не существует инструкции для загрузки произвольного «немедленного» значения в аккумулятор (хотя инструкции обращения к памяти кодируют такое значение для формирования эффективного адреса). Аккумуляторы обычно должны загружаться из инициализированных ячеек памяти (например, n16). Другие современные машины, такие как PDP-11 , и практически все современные архитектуры допускают немедленную загрузку, хотя многие из них, такие как ARM , ограничивают диапазон значений, которые могут быть загружены немедленно.

Поскольку макрос вызова RDOS .systmреализует jsr, AC3 заменяется адресом возврата функции .pchar. Следовательно, необходимо временное местоположение для сохранения обратного адреса вызывающего эту функцию. Для рекурсивной или иной реентерабельной процедуры вместо этого необходимо использовать стек, аппаратное обеспечение, если оно доступно, и программное обеспечение, если нет. Инструкция возврата jmp @ retrnиспользует режим непрямой адресации Nova для загрузки возвращаемого ПК.

Определения констант в конце демонстрируют две особенности ассемблера: система счисления ассемблера по умолчанию является восьмеричной20 ( = шестнадцать), а символьные константы могут быть закодированы, например, как "0.

 пбин: ; напечатайте AC1 на консоли в виде 16 двоичных цифр, автор Тоби Тейн  станция 3 , возврат ; сохранить обратный адрес lda 2 , n16 ; настроить цикл счетчика бит: lda 0 , chr0 ; загрузить ASCII '0' movzl 1 , 1 , szc ; получить следующий бит в переносе Inc 0 , 0 ; увеличить до '1' .systm .pchar ; AC0-2 сохранен jmp err ; если ошибка вкл. 2 , 2 , szr ; счетчик ударов jmp цикл ; повторите цикл, если не ноль lda 0 , spc ; вывести пробел .systm .pchar jmp err ; если ошибка jmp @ retrn                                      spc: " ;это пробел chr0: "0 n16: -20 retrn: 0        

Приложения

Канадская радиовещательная корпорация в Монреале использовала Nova 1200 для автоматизации воспроизведения каналов вплоть до конца 1980-х годов. Затем его заменили отремонтированными агрегатами Nova 4, которые использовались до середины 1990-х годов.

Смотрите также

Примечания

  1. ^ Вероятно, это было реакцией на проблемы с PDP-6 , который использовал большие платы и имел значительную частоту отказов. PDP -10 , по сути, модернизированная PDP-6, использует карты меньшего размера с «перевернутым чипом».

Рекомендации

Цитаты

  1. ^ «Музей истории компьютеров — Data General Corporation (DG) — лучший маленький компьютер в мире» .
  2. ^ Привет, Тони; Привет, Энтони; Папай, Дюри (2014). Компьютерная вселенная: путешествие через революцию. Издательство Кембриджского университета. п. 165. ИСБН 9780521766456.
  3. ^ аб Хендри 2002, с. 40.
  4. ^ abcde Супник 2004.
  5. ^ abcd Хендри 2002, с. 48.
  6. ^ Хендри 2002, с. 42.
  7. ^ «Когда миникомпьютер становится Micro: DGC microNOVA mN601 и 602» . Музей «Хажина процессора» . 21 ноября 2014 г.
  8. ^ Хендри 2002, с. 43.
  9. ^ Хендри 2002, с. 43-44.
  10. ^ abc Джанлука Г. (2017). «История ALU 74181 в коммерческих миникомпьютерах».
  11. ^ Хендри 2002, с. 49.
  12. ^ «Лучший маленький компьютер в мире» (PDF) . Ноябрь 1968 г. Архивировано (PDF) из оригинала 11 декабря 2019 г.
  13. ^ ab «Помешали в DEC, процветают в Data General». Музей истории компьютеров .
  14. ^ Джонс, Дуглас. «Корпорация цифрового оборудования PDP-8». Факультет компьютерных наук Университета Айовы .
  15. ^ Хендри 2002, с. 50.
  16. ^ ab "СУПЕР НОВА" (PDF) . Музей истории компьютеров . 1970. Архивировано (PDF) из оригинала 11 декабря 2019 г.
  17. ^ «Бизнес, который забыло время: Data General исчез. Но делает ли это его основателя неудачником?» деньги.cnn.com . 1 апреля 2003 года . Проверено 27 июля 2016 г.
  18. ^ аб Хендри 2002, с. 53.
  19. ^ «Общая история / предыстория данных» . Клемсонский университет .
  20. ^ Хендри 2002, с. 54.
  21. ^ Хендри 2002, с. 44.
  22. ^ abcd Хендри 2002, с. 55.
  23. ^ Хендри 2002, с. 58.
  24. ^ Хендри 2002, с. 60.
  25. ^ АБ микроНОВА . Общие данные. 1977.
  26. ^ «Предприятие — 16-битный бизнес-компьютер всего за 2300 фунтов стерлингов» . Мир персональных компьютеров . Октябрь 1983 года.
  27. ^ Чарльз П. Такер; Эдвард М. МакКрайт (декабрь 1974 г.). «Альт: система персонального компьютера» (PDF) . п. 13. Архивировано (PDF) из оригинала 6 июня 2011 г.
  28. ^ Том Овад (2005). Создание реплики Apple I: возвращение в гараж . п. XXI. ISBN 1-931836-40-Х.
  29. ^ «Общее восстановление данных». Общие данные Nova, Eclipse, MV и AV . Проверено 20 августа 2021 г.
  30. ^ «Большие и красивые миникомпьютеры общего назначения для обработки данных» . www.chookfest.net . Проверено 20 августа 2021 г.
  31. ^ Техническое руководство Nova 1200, Общие данные 015-000002, 1971, стр. 1-4.
  32. ^ Принципы работы Eclipse MV/6000, Общие данные 014-000648, 1980, приложение. Ф

Библиография

Внешние ссылки