Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

История [ править ]

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

TMS9900 был разработан как однокристальная версия серии миникомпьютеров TI 990 , так же как Intersil 6100 был одночиповым PDP-8 (12 бит), а Fairchild 9440 и Data General mN601 были однокристальными версиями Data General. «S Nova . В отличие от других 16-битных микропроцессоров, таких как National Semiconductor IMP-16 или DEC LSI-11 , некоторые из которых предшествовали TMS9900, последний был однокристальным автономным 16-битным микропроцессором.

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

Архитектура [ править ]

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

Адреса относятся к байтам с прямым порядком байтов . TMS9900 - это классическая 16-битная машина с адресным пространством 2 16 байтов (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-контактный DIP )

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-контактный DIP шириной 0,9 дюйма . Сравнительно большое количество контактов позволяло выводить 15-разрядную (слово) адресную шину и 16-разрядную шину данных на выделенные контакты без использование мультиплексирования (в отличие, например, от процессора Intel 8086 ), упрощающее подключение к внешней памяти. Вопреки соглашению, используемому многими другими производителями, компания TI пометила наиболее значимые строки адреса и данных «A0» и «D0» соответственно. Все внутренние тракты данных и ALU имеют ширину 16 бит.

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

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

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

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

Приложения [ править ]

Tomy Tutor , 1983 домашнего компьютера на базе процессора TMS9995

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

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

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

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

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

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

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

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

Варианты [ править ]

  • Умереть фотографии
  • TMS9900

  • TMS9981

  • TMS9995

  • TMS99105A

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Руководства по TMS9900 и справочные материалы от Bitsavers