Техасские инструменты TMS9900 - Texas Instruments TMS9900

Техасские инструменты TMS9900
ДизайнерИнструменты Техаса
Биты16 бит
Введено1976
ДизайнCISC
Порядок байтовБольшой
Регистры
ПК, WP, ST
Общее назначение2 внутри процессора (WP, ST), стек размером 16 × 16 бит, расположенный во внешнем ОЗУ

Представленный в июне 1976 г. TMS9900 был одним из первых коммерчески доступных одночиповых 16 бит микропроцессоры. TMS9900 нашел свое самое широкое применение в Texas Instruments TI-99/4 и ТИ-99 / 4А домашние компьютеры.[нужна цитата ]

История

TMS9900JL в керамическом корпусе с позолотой булавки

TMS9900 был разработан как однокристальная версия TI 990 миникомпьютер серия, очень похожая на Интерсил 6100 была единственная фишка PDP-8 (12 бит), а Fairchild 9440 и Общие данные mN601 были однокристальными версиями Общие данные с Новая звезда. В отличие от других 16-битных микропроцессоров, таких как National Semiconductor ИМП-16 или DEC LSI-11, некоторые из которых предшествовали TMS9900, последний был однокристальным автономным 16-разрядным микропроцессором.

TI использовала одну и ту же архитектуру в разных подразделениях для корпоративной синергии: «одна компания, одна компьютерная архитектура». В конце 1970-х Уолден С. Райнс представил TMS9900 группе IBM, разрабатывающей персональный компьютер. «До 1981 года мы не знали бы, что именно мы потеряли», потому что IBM выбрала Intel 8088 для IBM PC - напомнил он. После неудачной попытки выйти на рынок персональных компьютеров с такими продуктами, как ТИ-99 / 4А, микропроцессорное подразделение компании в конечном итоге переключило внимание на TMS320 серия процессоров специального назначения.[1]

Архитектура

TMS9900 имеет три внутренних 16-битных регистрыСчетчик команд (ПК), Регистр статуса (ST) и регистр указателя рабочей области (WP).[2] Регистр WP точки на базовый адрес во внешнем баран где хранятся 16 пользовательских регистров общего назначения процессора (каждый шириной 16 бит). Эта архитектура позволяет быстро переключение контекста; например когда подпрограмма вводится только один регистр рабочей области, вместо того, чтобы требовать, чтобы регистры сохранялись индивидуально.

Адреса относятся к байтам с прямой порядок байтов соглашение о заказе. TMS9900 - это классическая 16-битная машина с адресным пространством 216 байт (65 536 байт или 32 768 слов).

Нет понятия стека и регистра указателя стека. Вместо этого существуют инструкции перехода, которые сохраняют счетчик программы в регистре и изменяют контекст регистра. Каждый из 16 аппаратных и 16 программных векторов прерываний состоит из пары значений PC и WP, поэтому переключение контекста регистра также автоматически выполняется прерыванием.

Набор команд и адресация

TMS9900 имеет 69 инструкций, которые состоят из одного, двух или трех слов и всегда выровнены по словам в памяти. Набор инструкций довольно ортогональный, что означает, что, за некоторыми исключениями, инструкции могут использовать все методы доступа операнды (режимы адресации).

Режимы адресации включают в себя немедленную (операнд в инструкции), прямую или «символьную» (адрес операнда в инструкции), регистр (операнд в регистре рабочей области), косвенный регистр (адрес операнда в регистре рабочей области) с автоинкрементом или без него, индексированный (адрес операнда в инструкции, индексированной содержимым регистров рабочей области) и Program Counter Relative.

Наиболее важные команды с двумя операндами (сложение, вычитание, сравнение, перемещение и т. Д.) Содержат 2-битный режим адресации и 4-битные поля селектора регистров для операндов источника и назначения. В коде операции «символьный» режим представлен как индексированный режим с полем регистра, установленным на 0, поэтому регистр рабочей области 0 (WR0) не может использоваться в индексированном режиме. В менее часто используемых инструкциях с двумя операндами, таких как XOR, операнд назначения должен быть регистром рабочего пространства (или парой регистров рабочего пространства в случае инструкций умножения и деления).

Управление потоком данных осуществляется с помощью группы из одной безусловной и двенадцати условных инструкций перехода. Цели перехода относятся к ПК со смещением от -128 до +127 адресов слов.

Для вызовов подпрограмм инструкция Branch and Load Workspace Pointer (BLWP) загружает новые значения WP и PC, а затем сохраняет значения WP, PC и ST в (новые) регистры 13, 14 и 15 соответственно. В конце подпрограммы указатель возврата рабочей области (RTWP) восстанавливает их в обратном порядке. Используя BLWP / RTWP, можно вкладывать вызовы подпрограмм, несмотря на отсутствие стека, однако программисту необходимо явно назначить соответствующее рабочее пространство регистров.

Набор команд также содержит код операции Branch and Link (BL), который сохраняет только ПК в регистре 11 без изменения WP. В этом случае инструкция ветвления (B), использующая WR11 в качестве адреса назначения, может служить в качестве кода операции возврата, но подпрограммы типа BL не могут быть вложены без выполнения программистом действий по сохранению адреса возврата.

В TMS9900 есть необычная и редко используемая инструкция под названием «X» (eXecute). Эта инструкция используется для выполнять другая инструкция по адресу, на который указывает регистр без изменения потока программы, т.е. выполнение продолжается по адресу, следующему за инструкцией X. Эту инструкцию можно использовать для отладки (как точка останова инструкция) и для создания таблиц индексированных кодов операций, используемых в интерпретаторах байт-кода.

TMS9900 также поддерживает инструкцию расширенной работы (XOP). XOP дается число в диапазоне 0-15, а также адрес источника. При вызове инструкция выполнит переключение контекста через один из шестнадцати векторов в заранее определенных местах в памяти. Это похоже на прерывание, но инструкция XOP также сохраняет адрес источника в регистре 11 новой рабочей области. XOP менее гибкий, чем BLWP, так как векторы передачи должны быть в фиксированных местах, но экономит память, поскольку вместо этого исходный адрес может использоваться выполняемой подпрограммой, когда он не определяет местоположение вектора. XOP используется для реализовывать инструкции в программном обеспечении в моделях более низкого уровня, где более высокие версии миникомпьютеров серии 990 могут иметь специальное оборудование для их выполнения.

В типичных сравнениях с Intel 8086, у TMS9900 были программы меньшего размера.[нужна цитата ] Единственный[нужна цитата ] Недостатками были небольшое адресное пространство и необходимость в быстрой оперативной памяти.

Выполнение

Конфигурация контактов TMS9900 (64-контактный ОКУНАТЬ )

TMS9900 был реализован в N-канальном кремниевом МОП-процессе,[2] для чего требовались источники питания +5 В, −5 В и +12 В и четырехфазный (неперекрывающийся) тактовый генератор с максимальной частотой 3 МГц (цикл 333 нс),[3] обычно генерируется из кристалла 48 МГц с использованием микросхемы тактового генератора TIM9904 (также известного как 74LS362).

Самым коротким инструкциям требуется восемь тактов или 2,7 мкс для завершения (при условии 0 внешних циклов ожидания), многие другие выполняются от 10 до 14 циклов (3,3 ... 4,7 мкс); самая длинная инструкция (DIV) может занимать до 124 циклов (41,3 мкс).[4]

Чип был упакован в (тогда необычный) 64-контактный, шириной 0,9 дюйма. ОКУНАТЬ. Сравнительно большое количество выводов позволяло использовать 15-битный (слово) адресная шина и 16 бит шина данных выводиться на выделенные контакты без использования мультиплексирования (в отличие, например, Intel 8086 CPU), упрощая подключение к внешней памяти. Вопреки соглашению, используемому многими другими производителями, компания TI пометила наиболее важные линии адреса и данных «A0» и «D0» соответственно. Все внутренние пути к данным и ALU имеют ширину 16 бит.

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

Система аппаратных прерываний поддерживает 4-битный вход приоритета прерывания, который должен быть выше уровня приоритета, хранящегося в регистре состояния (биты 12-15), чтобы запрос прерывания мог быть обработан. В дополнение /НАГРУЗКА input предоставляет возможность немаскируемого прерывания с выделенным вектором.[5]

ЦП TMS9900 также содержит 16-битный регистр сдвига («CRU»), предназначенный для взаимодействия с внешними регистрами сдвига, с выделенными инструкциями, поддерживающими доступ к полям шириной 1–16 бит из общего числа 4096 адресуемых битов.

Параллельные периферийные устройства могут быть подключены в с отображением памяти мода на обычный адрес и шину данных.

Приложения

В Томи Репетитор, домашний компьютер 1983 года на базе процессора TMS9995

TMS9900 использовался в ТИ-99/4 и ТИ-99 / 4А домашние компьютеры. К сожалению, чтобы снизить производственные затраты, TI решила использовать в этих системах только 128 16-битных слов оперативной памяти быстрого типа, к которой TMS9900 может получить прямой доступ. Остальной объем памяти составил 16кБ. 8 бит DRAM доступ к нему был возможен только косвенно, через контроллер видеодисплея, что существенно снизило производительность TI-99/4.

TI разработала серию компьютерных модулей TM990, включая ЦП, память, ввод / вывод, которые при установке в каркас карты могли образовывать 16-разрядный миникомпьютер. Обычно они использовались для управления технологическим процессом. [6] Был выпущен микропроцессорный тренажер TM990 / 189.[7]

Разработка продуктов семейства TMS9900

Вторым поколением микропроцессоров семейства TMS9900 был микропроцессор TMS9995, который обеспечивал «функциональную производительность на скоростях в 3 раза быстрее, чем любой предыдущий процессор семейства 9900»,[8] во многом благодаря включению технологии предварительной выборки инструкций. На арене домашних компьютеров TMS9995 нашел применение только в Томи Репетитор, эзотерическое обновление TI99-4 / A под названием Женева 9640, а проект напечатан на Электроника сегодня: Powertran Cortex.[9] Планировалось использовать его в компьютерных системах TI-99/2 и TI-99/8, но ни одна из них не продвинулась дальше стадии прототипа.

TMS9900NL в пластиковом DIP пакете

Позднее TI разработала более мощное семейство микропроцессоров TMS99000, которое использовалось в качестве ЦП в 990 / 10А миникомпьютер как снижение затрат. К сожалению, к тому времени, когда 990 / 10A вышли на рынок, конец эры мини-компьютеров уже был близок.

Семейство TMS99000 включает два микропроцессора,[10] TMS99105A и TMS99110A, которые идентичны, за исключением включения встроенной памяти ПЗУ макросов (память макросов содержит добавленные функции или инструкции через процедуры эмуляции, написанные стандартным машинным кодом). Встроенное хранилище макросов ПЗУ в микропроцессоре TMS99110A содержит инструкции с плавающей запятой, которые доступны как часть набора команд машинного языка, в то время как TMS99105A не включает в себя хранилище макросов ПЗУ. Был анонсирован третий член семейства TMS99000, TMS99120.[11] но, возможно, никогда не производились в коммерческих целях. Встроенное в микросхему ROM Macrostore в TMS99120 содержит процедуры поддержки во время выполнения для языка высокого уровня PASCAL.

Набор команд для семейства TMS99000 является расширенным набором TMS9995 и TMS9900 с совместимостью объектного кода. Дополнительные инструкции включают инструкции умножения и деления со знаком; сдвиг, сложение и вычитание длинных слов; регистр состояния загрузки, указатель рабочего места загрузки, операции стека, многопроцессорная поддержка, битовые манипуляции. Члены семейства могут мгновенно получить доступ к 256 КБ памяти и могут использовать устройство отображения памяти TIM99610 для адресации до 16 МБ. Архитектура содержит много других улучшений по сравнению с TMS9900 и TMS9995.

Варианты

МодельОписание
TI990 / 9Ранний многочиповый ЦП для миникомпьютерных систем, 1974 г.
TI990 / 10Многокристальная реализация для миникомпьютерных систем, 1975 г.
TI990 / 12Многокристальная реализация, быстрее, чем 990/10
TMS9900Однокристальная реализация, 1976 г., использовалась в компьютере TI-99/4 (A)
TMS9940Микроконтроллер с 2КБ ПЗУ, 128Б ОЗУ, декрементер, шина CRU, 1979 г.
TMS9980
TMS9981
8-битные версии TMS9900
TMS9985TMS9940 с 8 КБ ПЗУ, 256 Б ОЗУ и 8-битной внешней шиной, c. 1978 (никогда не выпускался)
TMS9989Улучшенный 9980, используется в военной технике
TMS9995Улучшенный TMS9985-подобный, без ПЗУ. Используемый в прототипах TI-99/2 и TI-99/8, Томи Репетитор и женевский компьютер
TMS99105Базовый член семейства микропроцессоров TMS99000
TMS99110Микропроцессор семейства TMS99000 с инструкциями с плавающей запятой, предварительно запрограммированными во встроенной памяти Macrostore ROM
TMS99120Микропроцессор семейства TMS99000 с подпрограммами поддержки во время выполнения для языка высокого уровня PASCAL, предварительно запрограммированным в
встроенная память Macrostore ROM (микропроцессор был объявлен, но, возможно, никогда не был коммерчески произведен)

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

  1. ^ Райнс, Уолден С. (2017-06-22). "Texas Instruments 99/4: первый в мире 16-разрядный домашний компьютер". IEEE Spectrum. Получено 2017-07-08.
  2. ^ а б Руководство по микропроцессору TMS9900 (PDF). Texas Instruments Inc., 1976. p. 3.
  3. ^ Руководство по микропроцессору TMS9900 (PDF). Texas Instruments Inc., 1976. p. 31.
  4. ^ Руководство по микропроцессору TMS9900 (PDF). Texas Instruments Inc., 1976. p. 28.
  5. ^ Руководство по микропроцессору TMS9900 (PDF). Texas Instruments Inc., 1976. p. 6.
  6. ^ "16-разрядные микрокомпьютерные модули Stuart's TM серии 990". Получено 2014-03-25.
  7. ^ «Программируемые калькуляторы - Texas Instruments TM990 / 189». Получено 2014-03-25.
  8. ^ Маркетинговая брошюра TMS9995 (PDF). Texas Instruments Inc., 1981. стр. 2.
  9. ^ "Powertran Cortex.com". Получено 2014-03-27.
  10. ^ Руководство по предварительным данным для 16-разрядных микропроцессоров TMS99105A и TMS99110A (PDF). Texas Instruments Inc., 1982. стр. 1.
  11. ^ Справочник разработчика микросистем, 2-е издание. Texas Instruments Limited. 1981. С. 3–25 и далее.

внешняя ссылка