Jump to content

Национальный полупроводниковый завод ПАСЕ

Кристалл National Semiconductor PACE (IPC-16A/500)

National Semiconductor компании IPC-16A PACE , сокращение от «Элемент обработки и управления», был первым коммерческим однокристальным 16-битным микропроцессором , анонсированным в конце 1974 года. [1] Это была однокристальная реализация пятичиповой архитектуры IMP-16 начала 1973 года , которая, в свою очередь, была вдохновлена ​​миникомпьютером Data General Nova . К базовому IMP-16 компания PACE добавила новый рабочий режим, «байтовый режим», который был полезен для работы с 8-битными данными, такими как текст ASCII .

Реализованный в pMOS , как это было принято в ту эпоху, PACE требовал трех напряжений питания и внешнего тактового сигнала с достаточным сигналом для управления внутренней логикой. Обычно это обеспечивается чипом STE. Большинству систем PACE также требовался заушный чип для преобразования сигналов более высокого внутреннего напряжения в уровни TTL , используемые остальной частью системы. Его мультиплексированный адрес и выводы данных также требовали дополнительной логики.

Хотя у National Semiconductor были соглашения о вторичном производстве с Signetics и Rockwell Semiconductor , ни одна из компаний не разработала дизайн PACE. За PACE последовал INS8900 , который имел ту же архитектуру, но был реализован на nMOS . Эта версия упростила электрический интерфейс, а также исправила несколько ошибок в логике PACE и увеличила скорость примерно на 50%. [2] К тому времени, когда он стал доступен, появились более производительные 16-битные процессоры, и компания начала приуменьшать продажи этой линейки.

Описание

[ редактировать ]

Физический

[ редактировать ]
Распиновка оригинального PACE.

PACE был упакован в 40-контактный двойной рядный корпус (DIP), первоначально из керамики. Поскольку была основана на логике pMOS серия PACE , ей требовалось три напряжения питания: +5 В (V SS , контакт 20), +8 В (V BB , контакт 23) и -12 В в качестве уровня земли (V GG , контакт 29). Уровень +8 В обычно обеспечивался с помощью простой электроники, питаемой от линии +5 В, что уменьшало сложность источника питания .

Чип обычно управлялся с помощью внешнего тактового сигнала с частотой 750 наносекунд (1,33 МГц) с использованием чипа системного элемента синхронизации, STE, для генерации сигналов необходимой мощности. [2] Поскольку эти сигналы также использовались внешними устройствами, тактовые сигналы находились на уровне TTL , +5 В, в отличие от большинства выводов, которые имели напряжение +8 В. [3]

Поскольку внешние сигналы подавались с напряжением +8 В, взаимодействие системы с обычными устройствами, работающими на уровнях TTL, было непростой задачей. По этой причине системы, использующие PACE, обычно включают элемент двунаправленного приемопередатчика, BTE. В сочетании с PACE это позволило создать полный набор сигналов шины с напряжением TTL, которые затем можно было легко использовать для легкого взаимодействия с большинством современных устройств, таких как SRAM . [4]

Чтобы разместить 16-битные адреса и данные на 40-контактном DIP, один и тот же набор из 16 контактов был мультиплексирован между представлением адреса и чтением и записью данных в отдельных циклах. Для этого требовалось, чтобы внешние устройства, такие как основная память , фиксировали адрес между циклами. [5]

Внутренний дизайн

[ редактировать ]
Регистры ПАСЕ
1 5 1 4 1 3 1 2 1 1 1 0 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 (битовая позиция)
Основные регистры
AC0 аккумулятор
АС1 аккумулятор
АС2 Акк/База
AC3 Акк/База
Счетчик программ
ПК Счетчик программ
Куча
ПКС (Десять записей)
Регистр флагов состояния (FR)
1 F14 F13 F12 F11 Б ОДИН л CY ОВ IE5 IE4 IE3 IE2 IE1 1 Статус

IMP-16 компании National Semiconductor был создан на основе Data General Nova, но имел ряд незначительных отличий в своей ISA. Среди них была обработка четырех доступных пользователю 16-битных регистров процессора . В Nova первые два регистра были аккумуляторами общего назначения и использовались для большинства основных арифметических и логических операций, а вторые два могли использоваться в качестве операндов или индексных регистров . IMP-16 последовал этой модели. [6] но PACE изменил ряд инструкций, чтобы они работали только с первым аккумулятором AC0. [2]

В оригинальной Nova стек не был реализован аппаратно, хотя он был добавлен в более поздних моделях Nova 3, начиная с 1975 года. PACE реализовал другой стиль стека с использованием нового регистра указателя стека (SP), который автоматически увеличивался и уменьшался при PUSH и PULL инструкции встречались. Счетчик программ (ПК) автоматически помещался или извлекался в стек во время вызовов и возвратов подпрограмм. Дополнительные инструкции позволяли также перемещать и извлекать четыре регистра, а также регистр состояния и флага управления. [7]

ЦП имел десять 16-битных ячеек памяти, в которых хранились самые верхние значения стека. Уникальная особенность PACE заключается в том, что когда стек заполняется и предпринимается еще одна попытка отправки или когда он пуст и предпринимается попытка извлечения, прерывание генерируется . Обычно это используется для вызова кода обработчика прерываний , который копирует некоторые или все значения из стека в основную память , а затем очищает стек. Это позволяет использовать внутренние регистры стека как кэш более крупного стека, основанного на памяти. [7]

Регистр состояния и флага управления также имел ширину 16 бит. Биты 0 и 15 установлены в 1 и обычно не используются, тогда как остальные четырнадцать активно используются. Сюда входили общие флаги, такие как CRY, указывающие, что сложение привело к переносу, OVF, если оно переполнилось, и LINK, который указывал, что бит необходимо сдвинуть во время инструкций сдвига и поворота. [7] LINK обычно обрабатывается с использованием флага переноса в большинстве конструкций процессоров микрокомпьютеров, но наличие двух отдельных флагов более распространено в миникомпьютерах , где имеется достаточно доступных битов состояния, поскольку это позволяет отслеживать их отдельно во время серии сдвигов/поворотов и сложения. инструкции, что представляет собой обычную последовательность. Флаг IN EN, обычно равный 1, позволяет включать или отключать прерывания. [8] Одной из уникальных особенностей PACE, отсутствующей в IMP-16, является флаг BYTE. Когда этот параметр включен, доступ к данным осуществляется в 8-битных словах вместо 16. Это позволяет упростить обработку 8-битных данных, таких как текст ASCII . [8]

Остальные биты SCF в основном отображаются непосредственно на выводах снаружи чипа. Биты с 1 по 5 — это флаги от IE1 до IE5, которые используются для приоритетного управления прерываниями. IE1 устанавливается только в случае переполнения стека. Остальные четыре можно использовать для отключения отдельных линий прерываний или, что чаще, для создания двоичного значения от 0 до 15, которое внешние устройства используют для определения, следует ли им выполнять прерывание. Например, если значение этих флагов в сумме составляет 5, любое устройство со значением прерывания 5 или ниже (1 — наивысший приоритет) может выразить это, устройство, желающее вызвать более низкий приоритет, скажем, 7, получает команду чтобы удержать его. [8]

Аналогично, флаги SCF с F11 по F14 используются в качестве выходов для обеспечения прямого управления внешними устройствами. Например, их можно использовать для указания того, что устройство 6 должно представить данные на шину, что оно может сделать путем отображения 128 байт внутреннего буфера на разделенную базовую страницу, упомянутую ранее. [8]

Режимы адресации и форматы команд

[ редактировать ]

В отличие от большинства микрокомпьютеров того времени, PACE не использовал инструкции переменной длины, все инструкции использовали 16 бит. 16-битные слова были разбиты на ряд битовых полей формата инструкций. Старшие шесть битов, с 10 по 15, содержали код операции , а биты 8 (R для относительного) и 9 (X для индекса) указывали режим адресации. Остальные восемь битов инструкции обычно содержат 8-битный адрес. [9] Это означало, что произвольную ячейку памяти нельзя было указать напрямую; несколько разных систем использовались для создания необходимого 16-битного адреса из 8-битного значения. Всего было 43 инструкции и 45 опкодов, по два опкода на каждый. LD и ST (см. ниже). [10]

Когда X было равно нулю, биты адреса представляли прямой адрес в памяти. Если R также установлен на ноль, адрес находился внутри базовой страницы. [а] обычно первые 256 байт памяти. Установка R в 1 и X в 0 использовала оставшиеся восемь битов в качестве смещения от ПК. Установка бита X в 1 включала индексацию, используя восемь битов в дополнение к значениям в индексных регистрах, при R в 0 это добавляло значение в AC2, а установка его в 1 вместо этого использовала AC3. [9]

Обычно базовой страницей были первые 256 байт памяти, но когда BPS был утвержден pin, вместо этого он разделил базовую страницу между первыми и последними 128 байтами. [9] Идея заключалась в том, что внешние устройства будут отображаться в этих верхних ячейках памяти и смогут легко отслеживать операции записи и чтения, проверяя адрес на шине и проверяя, все ли девять старших битов равны единицам. Как ни странно, нет инструкции по изменению настроек BPSвместо этого большинство систем подключали контакт к одному из контактов состояния, а затем использовали инструкции по изменению статуса для управления им. [11]

Косвенное обращение в ПАСЕ было ограниченным, чему способствовало в первую очередь LD и ST инструкции, которые загружают и сохраняют значения между регистрами и памятью. Для указания косвенной адресации использовались отдельные коды операций, а не использование битов указания адресации. При использовании адрес создавался как обычно, добавляя восемь битов адреса к базовой странице или ПК. Затем он прочитает 16-битное значение в этой ячейке памяти, а затем загрузит или сохранит его по этому адресу. В сочетании с флагом X 8-битное смещение сначала добавляется или вычитается из указанного индексного регистра. [12]

Другим пользователем косвенной адресации был ISZ и DSZ. Они увеличивали или уменьшали значение в памяти и обычно использовались для реализации циклов, поэтому косвенная адресация была обычным явлением, поскольку управляющая переменная для цикла могла располагаться вне блока кода. Другая интересная особенность этих инструкций заключалась в том, что (в любом режиме адресации) если значение было изменено на ноль, SKip инструкция была вызвана. Это позволило выйти из циклов без каких-либо дополнительных тестов; обычно последней инструкцией в цикле будет JMP обратно в начало цикла, но когда значение достигнет 0, оно автоматически SK мимо этого JMP и продолжить. [13]

Этот стиль циклического управления распространен в миникомпьютерах, но не в микрокомпьютерах. В специализированных микросхемах такого рода операции обычно выполняются с помощью нескольких инструкций: одна из них сравнивает индекс цикла с заданным значением (в данном случае с нулем), а затем возвращается обратно к началу, если условие не выполняется. Присущая PACE возможность пропуска нуля была общей особенностью мини-машин, которая повышала производительность цикла за счет отсутствия отдельного теста. Если это нецелесообразно, увеличение или уменьшение может установить смещение на ноль, чтобы избежать срабатывания этой функции. [13]

Распиновка улучшенного INS8900.

Постоянное совершенствование производства полупроводников в начале 1970-х годов привело к появлению концепции логики NMOS , или nMOS. Этот тип логики имеет то существенное преимущество, что его внутренние транзисторы не требуют большого напряжения на слое подложки, как pMOS. На практике это означает, что nMOS-процессор может работать только с двумя входными напряжениями, а не с тремя, а положительный источник питания можно установить на +5 В, что упрощает взаимодействие с ТТЛ-схемами. [14]

Компания National Semiconductor воспользовалась этой технологией, переработав PACE в nMOS для создания INS8900. Новая версия сохранила большую часть исходной компоновки микросхемы, хотя, что неудивительно, некоторые контакты питания изменили свои входы; исходный +5V V SS теперь был заземлен (GND), V BB изменился с -8 на +8V, а бывший -12V V GG стал +12V V DD . По неизвестным причинам два других контакта не изменили функцию, но изменили название; CLK стал V CC , а NCLK стал CLKX. [3]

Самым важным изменением с точки зрения использования было то, что различные сигнальные контакты теперь работали с напряжением TTL, что позволяло им напрямую взаимодействовать с внешними системами, такими как память. Это изменение не решило проблему необходимости фиксации адреса на общей шине данных/адресов, но значительно упростило такую ​​фиксацию. Вместо того, чтобы требовать относительно сложного заушного чипа, эту задачу теперь можно было выполнить с помощью обычных TTL-компонентов, хотя National Semiconductor предложила для этой цели свои собственные INS8208 и INS8212. [15] Шину теперь можно было реализовать с помощью одного INS8208, буферизующего управляющие сигналы, указывающие, находится ли шина в режиме адреса или данных (среди прочего), еще двух INS8208 для каждого буфера 8-битных данных и двух INS8212 для каждой защелки 8. -биты адреса. [16]

Еще одно изменение, ставшее возможным благодаря снижению нагрузки на nMOS, заключалось в том, что тактовые сигналы больше не требовали такой большой мощности. Это устранило необходимость в STE, который можно было заменить подходящим кристаллом и одним инвертором 7404 , доступным от многих производителей. [16] Поскольку внешний тактовый сигнал больше не был мощным, требовался только один тактовый вход, бывший NCLK, теперь переименованный в CLKX. Бывшая вторая фаза теперь генерировалась на борту ЦП. Эти изменения также позволили системе работать на более высокой скорости: был рекомендован кристалл с частотой 2 МГц, что довольно значительно больше, чем у PACE 1,33. Это увеличило время выполнения инструкций до 8–20 микросекунд. [2]

Другие изменения включали ряд исправлений проблем, обнаруженных в PACE. Примечательной среди них была проблема с прерыванием, которое запускалось при заполнении стека. В ПАСЕ это не сработало должным образом; если прерывание прибыло точно в то же время, что и NIR3 или NIR5, неправильный код прерывания будет вызван из местоположения 0, а не из 2. National Semiconductor предложила либо не использовать эту функцию, либо разместить один и тот же адрес в обоих местах, чтобы они всегда вызвать тот же код, который затем определит, что на самом деле произошло. [17] Аналогичные проблемы возникали, когда прерывание уровня 0 возникало в течение 12 циклов после других прерываний, что приводило к вызову неправильного кода. [18] Все эти проблемы были решены в 8900. [17]

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

[ редактировать ]

Хотя PACE работал на относительно высокой для того времени тактовой частоте, архитектура набора команд (ISA) была реализована с использованием микрокода , а мультиплексированная шина требовала двух циклов для каждого доступа к памяти. В результате выполнение типичной инструкции занимало от 12 до 30 микросекунд, что примерно соответствовало скорости современных 8-битных процессоров, таких как Intel 8080 . [2] Это по-прежнему давало преимущество при работе с большими данными, например, в библиотеке с плавающей запятой , поскольку одна инструкция могла обрабатывать вдвое больше данных за одну операцию. [4]

Примечания

[ редактировать ]
  1. ^ известен как нулевая страница В некоторых системах, например MOS 6502, .
  1. ^ https://www.cpu-world.com/CPUs/PACE/index.html.
  2. ^ Jump up to: а б с д и Абрамовиц и др. 1981 , с. 1.1.
  3. ^ Jump up to: а б Абрамовиц и др. 1981 , с. 1.10.
  4. ^ Jump up to: а б Абрамовиц и др. 1981 , с. 1.2.
  5. ^ Абрамовиц и др. 1981 , с. 1.3.
  6. ^ Абрамовиц и др. 1981 , с. 1.4.
  7. ^ Jump up to: а б с Абрамовиц и др. 1981 , с. 1,5.
  8. ^ Jump up to: а б с д Абрамовиц и др. 1981 , с. 1.9.
  9. ^ Jump up to: а б с Абрамовиц и др. 1981 , с. 1.6.
  10. ^ Абрамовиц и др. 1981 г. , Таблица 1.2.
  11. ^ Абрамовиц и др. 1981 , с. 1.7.
  12. ^ Абрамовиц и др. 1981 , стр. 1,8–1,9.
  13. ^ Jump up to: а б Абрамовиц и др. 1981 , с. 1.24.
  14. ^ Кричлоу, Д.Л. (2007). «Воспоминания о масштабировании МОП-транзисторов» . Информационный бюллетень Общества твердотельных схем IEEE . 12 (1): 19–22. дои : 10.1109/N-SSC.2007.4785536 .
  15. ^ Абрамовиц и др. 1981 , с. 2.
  16. ^ Jump up to: а б Абрамовиц и др. 1981 , с. 1.4, рисунок 1.2.
  17. ^ Jump up to: а б Абрамовиц и др. 1981 , с. 1.22.
  18. ^ Абрамовиц и др. 1981 , с. 1.23.

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

[ редактировать ]
  • IPC-16A PACE , Технический паспорт National Semiconductor, Bitsavers (06.01.2018)
  • Абрамовиц, Боб; Энгер, Дженис; Ингрэм, Кертис; Джейкобсон, Сюзанна; Макгуайр, Патрик (1981). Справочник Осборна по 16-битному микропроцессору . Осборн/МакГроу-Хилл. ISBN  0-931988-43-8 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: dd66f3b184bcfed6d208ce9ed3bb230a__1718106960
URL1:https://arc.ask3.ru/arc/aa/dd/0a/dd66f3b184bcfed6d208ce9ed3bb230a.html
Заголовок, (Title) документа по адресу, URL1:
National Semiconductor PACE - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)