Введение

32-битный микропроцессор NS32000, иногда известный как 32k, – это серия микропроцессоров, выпускаемых компанией National Semiconductor. Первый представитель семейства поступил в продажу в 1982 году, первоначально под названием 16032, а затем ставший 32016. Он был первым микропроцессором общего назначения на рынке, использующим 32-битные данные: Motorola 68000 использовал 32-битные данные, но имел 16-битное АЛУ и, следовательно, требовал вдвое больше времени для выполнения многих операций. VAX хорошо известен своей высоко "ортогональной" архитектурой набора инструкций (ISA), в которой любая инструкция может быть применена к любым данным. Например, инструкция ADD может складывать содержимое двух регистров процессора, один регистр с величиной в памяти, две величины в памяти или использовать регистр в качестве смещения относительно адреса. Такая гибкость считалась эталоном проектирования в эпоху компьютеров со сложным набором команд (CISC). В то же время National Semiconductor объявила о двух будущих версиях – NS32032 и NS32132. Первая по сути являлась версией NS16032 с 32-битной внешней шиной данных, позволяющей считывать данные в два раза быстрее. Выпуск планировался на 1984 год. NS32132 представлял собой версию с 29-битными внутренними адресами и 32-битной внешней шиной, что позволяло адресовать полный объем памяти в 4 ГБ. Выпуск был запланирован на 1985 год. Хотя выпуск в 1982 году наступил примерно на два года позже, чем у 68k, 68k еще не получил широкого распространения на рынке, и 32016 вызвал значительный интерес. К сожалению, ранние версии содержали множество ошибок и редко могли работать на заявленной скорости. К 1984 году, спустя два года, список ошибок (errata) все еще содержал пункты, описывающие неконтролируемые условия, приводящие к остановке процессора и необходимости его перезагрузки. Изначальный план разработки предусматривал выпуск моделей с частотой 6 и 10 МГц в 1983 году и 12 и 14 МГц в 1984 году. Однако в 1984 году в прессе появились сообщения о трудностях с соблюдением этого плана, сообщалось, что для увеличения частоты моделей с 6 МГц до 8 МГц потребовалось пять месяцев, а представители компании оценивали еще "два, три или пять месяцев" для увеличения частоты до 10 МГц. Причиной этих проблем, по сообщениям, являлись два неуказанных чипа из пяти в наборе микросхем (chipset). В статье начала 1985 года о рабочей станции Whitechapel MG 1, основанной на 32016, отмечалось, что блок управления памятью 32081 "страдал от ошибок" и был расположен на отдельной плате, обеспечивая аппаратные исправления. В 1986 году Texas Instruments объявила о выпуске "полностью квалифицированного набора микросхем TI32000 с 32-битным микропроцессором частотой 10 МГц", состоящего из центрального процессора TI32016 и блока управления памятью TI32082 в виде 48-выводных устройств, блока управления временем TI32201 и блока операций с плавающей точкой TI32081 в виде 24-выводных устройств, а также блока управления прерываниями TI32202 в виде 40-выводного устройства, при этом набор из пяти микросхем предлагался по цене 289 долларов за 100 единиц. National изменила свою методологию проектирования, чтобы упростить запуск детали в производство, и совместно с Тель-Авивским университетом разработала систему проектирования на языке "Z", расположенном недалеко от конструкторского центра "NSC" в Герцлии, Израиль. Язык "Z" похож на современные Verilog и VHDL, но имеет синтаксис, близкий к Pascal, и оптимизирован для двухфазной тактовой схемы. Однако к тому времени, когда результаты этих усилий стали ощутимы в проектировании, на рынке уже появилось множество машин на базе 68k, в частности Apple Macintosh, и 32016 так и не получил широкого распространения. 32016 имеет 16-битную внешнюю шину данных, 24-битную внешнюю адресную шину и полный 32-битный набор инструкций. Он также включает в себя интерфейс сопроцессора, позволяющий подключать сопроцессоры, такие как FPU и MMU, в качестве равноправных компонентов к основному процессору. MMU основана на виртуальной памяти с подкачкой, что является наиболее необычной особенностью по сравнению с сегментированным подходом к памяти, используемым конкурентами, и стало стандартом для разработки микропроцессоров в настоящее время. Архитектура поддерживает механизм перезапуска инструкции при ошибке страницы, что намного надежнее подхода Motorola к сбросу внутреннего состояния при ошибке страницы, который необходимо повторно считать перед продолжением выполнения инструкции. Хотя 32016 часто сравнивали с набором инструкций 68k, сотрудники NSC отвергали это сравнение; одной из ключевых маркетинговых фраз того времени было "Элегантность – это все", подчеркивая высокую ортогональность серии 32000 по сравнению с "кустарным" решением. Одно из ключевых отличий заключается в использовании Motorola адресных и регистров данных, с инструкциями, работающими только с одним из этих типов регистров. Серия 32000 имеет универсальные регистры, описываемые в технической документации как регистры "адрес-данные".

32032 - - - - - -

32032 был представлен в 1984 году. Он практически полностью совместим с 32016, но отличается 32-битной шиной данных (при сохранении 24-битной шины адреса) для несколько более высокой производительности, которую описывали как "производительность миникомпьютера", сопоставимую с производительностью системы VAX 11. Существовала также модель 32008 – это 32016 с урезанной до 8 бит шиной данных, предназначенная для недорогих приложений. По своей философии она схожа с MC68008 и столь же малопопулярна. National также выпустила ряд сопутствующих микросхем поддержки, таких как блок вычислений с плавающей точкой NS32081 (FPU), блоки управления памятью NS32082 (MMU), блок прямого доступа к памяти NS32203 (DMA) и контроллеры прерываний NS32202. С полным комплектом, а также микросхемами памяти и периферийными устройствами, стало возможным создать 32-битную компьютерную систему, способную поддерживать современные многозадачные операционные системы, что ранее было возможно только на дорогостоящих миникомпьютерах и мэйнфреймах.

32332, 32532

В 1985 году National Semi представила NS32332, значительно улучшенную версию 32032. Согласно техническому описанию, улучшения включали в себя "добавление нового специализированного аппаратного обеспечения для адресации (состоящего из высокоскоростного АЛУ, сдвигающего регистра и регистра адреса), высокоэффективную увеличенную (20 байт) очередь предварительной выборки инструкций, новый интерфейс/протокол системной/шины памяти, повышение эффективности протокола подчиненного процессора и, наконец, улучшения микрокода". Также были представлены новые MMU NS32382, FPU NS32381 и (очень редкий) интерфейс NS32310 к Weitek FPA. Совокупный прирост производительности NS32332 от этих улучшений составил всего 50% по сравнению с оригинальным NS32032, и, следовательно, был меньше, чем у основного конкурента – MC68020. National Semi представила NS32532 в начале 1987 года. Работающий на частотах 20, 25 и 30 МГц, он представлял собой полную переработку внутренней реализации с пятиступенчатым конвейером, интегрированным кешем/MMU и улучшенной производительностью памяти, что делало его примерно в два раза производительнее конкурирующих MC68030 и i80386. К этому моменту архитектуры RISC начали завоевывать позиции, а основными конкурентами стали теперь также устаревшие AM29000 и MC88000, которые считались быстрее, чем NS32532. Для операций с плавающей точкой NS32532 использовал существующий интерфейс NS32381 или NS32580 к Weitek FPA. NS32532 стал основой для PC532, аппаратного проекта с открытым исходным кодом, и одного из немногих, который позволил создать работоспособную машину с реальной операционной системой (в данном случае, Minix или NetBSD). Полумифический NS32732 (иногда называемый NS32764), задуманный как высокопроизводительный преемник NS32532, так и не поступил в продажу.

Мечевая рыбка

Производная NS32732 под названием Swordfish была ориентирована на встраиваемые системы и появилась примерно в 1990 году. Swordfish имеет встроенный блок вычислений с плавающей точкой, таймеры, контроллеры DMA и другие периферийные устройства, которые обычно не встречаются в микропроцессорах. Он оснащен 64-битной шиной данных и внутренне разогнан с 25 до 50 МГц. Главным архитектором Swordfish был Дональд Альперт, который впоследствии возглавил архитектурную команду, разрабатывавшую Pentium. Внутренняя микроархитектура Pentium во многом схожа с предшествующей Swordfish. Swordfish был разработан для высокопроизводительных Postscript-лазерных принтеров, и в то время демонстрировал исключительную производительность. Конкурирующие решения могли обрабатывать около одной страницы в минуту, в то время как демонстрационный образец Swordfish печатал шестнадцать страниц в минуту, ограничиваясь лишь механикой лазерного двигателя. На каждой странице он отображал время простоя, пока двигатель завершал работу. Сам чип Swordfish был очень большим, и в конечном итоге было решено прекратить проект, и продукт так и не был запущен в серийное производство. Опыт, полученный при разработке Swordfish, был использован при создании CompactRISC. Первоначально существовали CompactRISC 32 и CompactRISC 16, разработанные с использованием "Z". National так и не выпустила на рынок чип с ядром CompactRISC 32. Исследовательский отдел National совместно с Мичиганским университетом разработал первую синтезируемую модель на Verilog, и Verilog использовался начиная с CR16C и далее.

Наследие

В июне 2015 года Удо Мёллер опубликовал полную реализацию процессора NS32000 на Verilog на платформе OpenCores. Полностью программно совместимый с процессором NS32532, оснащенным блоком FPU N32381, он значительно быстрее при реализации на FPGA, достигая более высокой тактовой частоты и требуя меньшего количества циклов на инструкцию.