ТМС9900
Дизайнер | Техасские инструменты |
---|---|
Биты | 16-битный |
Представлено | 1976 |
Дизайн | ЦИСК |
Порядок байтов | Большой |
Регистры | |
ПК, WP, ST | |
общего назначения | 2 встроены в процессор (WP, ST) 16 × 16-битная рабочая область расположена во внешней оперативной памяти |
TMS9900 микропроцессоров был одним из первых коммерчески доступных однокристальных -битных 16 . [а] Представленный в июне 1976 года, он реализовал Texas Instruments компании TI-990 архитектуру миникомпьютера в однокристальном формате и первоначально использовался для младших моделей этой линейки.
Его 64-контактный формат DIP сделал его более дорогим для реализации на машинах меньшего размера, чем более распространенный 40-контактный формат, и в нем было относительно мало побед в проектировании за пределами собственного использования TI. Среди этих применений были домашние компьютеры TI-99/4 и TI-99/4A , которых в конечном итоге было продано около 2,8 миллиона единиц.
Реализации микрокомпьютера 9900 в 40-контактных корпусах включали TMS9940, TMS9980/81, TMS9995. TMS99105/10 был последней версией 9900, выпущенной в 1981 году, и включал в себя функции миникомпьютера TI 990/10. [1]
К середине 1980-х годов сфера микрокомпьютеров перешла на 16-битные системы, такие как Intel 8088 , и более новые 16/32-битные конструкции, такие как Motorola 68000 . Не имея очевидного будущего для этого чипа, TI обратила свое внимание на процессоры специального назначения, такие как Texas Instruments TMS320 , представленные в 1983 году.
История
[ редактировать ]TMS9900 был разработан как однокристальная версия миникомпьютера 990 TI , так же, как Intersil 6100 представлял собой однокристальный PDP-8 (12 бит), а Fairchild 9440 и Data General mN601 были одночиповыми версиями Data General. это Нова . В отличие от многокристальных 16-битных микропроцессоров, таких как National Semiconductor IMP-16 или DEC LSI-11 , некоторые из которых предшествовали TMS9900, 9900 представлял собой однокристальный автономный 16-битный микропроцессор.
Миникомпьютерные корни TMS9900 породили ряд архитектурных особенностей, которые обычно не встречаются в проектах, начинавшихся с чистого листа. Примечательным среди них было использование в TMS9900 регистров процессора , отображаемых в основную память . Это позволяет быстро переключать контекст , что можно осуществить путем изменения одного регистра, указателя рабочей области, так, чтобы он указывал на первую запись в списке значений регистров. Более традиционные конструкции требуют хранения всего набора внутренних регистров в памяти или в стеке.
Недостатком этого подхода является то, что доступ к этим регистрам требует больше времени. В реализации мини-компьютера с быстрой памятью эффект относительно невелик, а потенциал роста в режиме реального времени или многозадачной среде значителен, поскольку переключение контекста является обычным явлением. В других сферах, например в однопользовательских микрокомпьютерах, этот компромисс может оказаться нецелесообразным. 40-контактные реализации 9900 включали 128 или 256 байт быстрой встроенной оперативной памяти для регистров.
TI использовала одну и ту же архитектуру в разных подразделениях для корпоративной синергии: «одна компания, одна компьютерная архитектура». В конце 1970-х годов Уолден К. Райнс представил TMS99110, имевший тогда кодовое название «Альфа». [2] группе IBM, разрабатывающей персональный компьютер. «До 1981 года мы не знали, что именно мы потеряли», потому что IBM выбрала Intel 8088 для IBM PC , вспоминал он. Одним из факторов было отсутствие плана доступа к более чем 64 КБ логической памяти. Семейство 9900 могло расширить свое адресное пространство до 16 МБ только за счет сопоставления страниц; 99000 может адресовать 256 КБ через сегменты.
После ухода с рынка персональных компьютеров с такими продуктами, как TI-99/4A , подразделение микропроцессоров компании в конечном итоге переключило внимание на TMS320 . серию процессоров специального назначения [3]
Архитектура
[ редактировать ]
|
TMS9900 имеет три внутренних 16-битных регистра — счетчик программ (PC), регистр состояния (ST) и регистр указателя рабочей области (WP). [4] Регистр WP указывает на базовый адрес во внешней оперативной памяти , где хранятся 16 пользовательских регистров общего назначения процессора (каждый шириной 16 бит). Эта архитектура позволяет быстро переключать контекст ; например, при входе в подпрограмму необходимо изменить только один регистр рабочей области, а не требовать сохранения регистров по отдельности. Биты нумеруются нетрадиционно, причем старший бит равен 0.
Адреса относятся к байтам с байтов прямым порядком . TMS9900 — это классическая 16-битная машина с адресным пространством 2 16 байт (65 536 байт или 32 768 слов).
Не существует понятия стека и регистра указателя стека. Вместо этого существуют инструкции ветвления, которые сохраняют счетчик программы в регистр и изменяют контекст регистра. Каждый из 16 аппаратных и 16 программных векторов прерываний состоит из пары значений PC и WP, поэтому переключение контекста регистра также автоматически выполняется прерыванием.
Набор инструкций и адресация
[ редактировать ]TMS9900 имеет 69 инструкций длиной в одно, два или три слова, которые всегда выровнены по словам в памяти. Набор инструкций достаточно ортогонален , а это означает, что, за некоторыми исключениями, инструкции могут использовать все методы доступа к операндам (режимы адресации).
Режимы адресации включают немедленный (операнд в инструкции), прямой или «символический» (адрес операнда в инструкции), регистр (операнд в регистре рабочей области), косвенный регистр (адрес операнда в регистре рабочей области) с автоинкрементом или без него, индексированный (адрес операнда в инструкции, индексированной содержимым регистра рабочей области), и относительный счетчик программ.
Наиболее важные инструкции с двумя операндами (сложение, вычитание, сравнение, перемещение и т. д.) содержат 2-битный режим адресации и 4-битные поля выбора регистра как для исходных, так и для целевых операндов. В коде операции «символический» режим представлен как индексированный режим с полем регистра, установленным в 0, поэтому регистр рабочей области 0 (WR0) не может использоваться в индексированном режиме. В менее часто используемых инструкциях с двумя операндами, таких как XOR, операндом назначения должен быть регистр рабочей области (или пара регистров рабочей области в случае инструкций умножения и деления).
Управление потоком осуществляется с помощью группы из одной безусловной и двенадцати условных инструкций перехода. Цели перехода указаны относительно ПК со смещением от -128 до +127 адресов слов.
Для вызовов подпрограмм команда Branch and Load Workspace Pointer (BLWP) загружает новые значения WP и PC, затем сохраняет значения WP, PC и ST в (новые) регистры 13, 14 и 15 соответственно. В конце подпрограммы Return Workspace Pointer (RTWP) восстанавливает их в обратном порядке. Используя BLWP/RTWP, можно вкладывать вызовы подпрограмм, несмотря на отсутствие стека, однако программисту необходимо явно назначить соответствующее рабочее пространство регистра.
Набор инструкций также содержит код операции Branch and Link (BL), который сохраняет PC только в регистре 11 без изменения WP. В этом случае инструкция ветвления (B), использующая WR11 в качестве адреса назначения, может служить кодом операции возврата, но подпрограммы типа BL не могут быть вложенными без того, чтобы программист не предпринял действия для сохранения адреса возврата.
TMS9900 поддерживает инструкцию выполнения «X» (eXecute). Эта инструкция выполняет инструкцию в регистре. Его можно использовать для отладки (в качестве инструкции точки останова ), для создания таблиц индексированных кодов операций, используемых в интерпретаторах байт-кода, а также для выполнения критических по времени инструкций ввода-вывода во время прерывания. Пример его полезности показан в коде ниже, где прерывание обслуживается очень инкапсулированным образом, что в противном случае потребовало бы гораздо большего количества инструкций.
;*********************************** ; ; THIS INTERRUPT SIMULATES DMA CONTROL ; ORGANISED AS FOLLOWS: ; ; R9 HOLDS CURRENT COMMAND, E.G. ; IOREAD(34B8H): STCR *R8+,BYTEWIDE ;BYTE WIDE FDC DATA READ ; IOWRITE(30B8H):LDCR *R8+,BYTEWIDE ;BYTE WIDE FDC DATA WRITE ; R8 HOLDS THE CURRENT DMA ADDRESS. ; R12 HOLDS THE CURRENT IO PORT - DATREG ;************************************ INTDRQ X R9 ;CAN BE EITHER READ or WRITE RTWP
это общий фрагмент кода во время прерывания, который может использоваться как командами чтения, так и записи ввода-вывода. Подобные методы можно использовать в любых методах отладки, которые можно использовать.
TMS9900 также поддерживает команду расширенной операции (XOP). XOP присваивается число в диапазоне 0–15, а также адрес источника. При вызове инструкция выполнит переключение контекста через один из шестнадцати векторов в заранее определенных местах памяти. Инструкция XOP также помещает эффективный адрес исходного операнда в регистр 11 новой рабочей области. Функция сохранения контекста инструкции XOP также может использоваться для реализации встроенной отладки. [5]
XOP менее гибок, чем BLWP, поскольку векторы передачи должны находиться в фиксированных местах, но позволяет напрямую обращаться к одному исходному операнду, а не передавать его в регистр или иным образом.
XOP может использоваться для реализации возможности системных вызовов. В операционной системе TI DX10 XOP 15 вызывает системный вызов. Программист мог определить макрос ассемблера, например SVC, который вызывает XOP 15. Другим применением XOP была реализация инструкций в программном обеспечении, которые могли бы обрабатываться специальным оборудованием в будущих версиях миникомпьютеров серии 990. Пример таких действий можно показать в приведенном ниже коде, где функция CALL реализована с использованием инструкции XOP 6. Прелесть этой реализации функции CALL с использованием XOP заключается в том, что можно легко добавить проверки, чтобы определить, не переполнился ли стек; например C R10,@2*R9(R13), где R9 указывает на адрес предела стека.
; ;************************************************ ; CALL SUBROUTINE ; DEFINE XOP: DXOP CALL,6 ; CALLING METHOD: CALL @SUBROUTINE_ADDRESS ; R10 <=> STACK POINTER ;************************************************* ; ED32 C2AD 0014 XOP6: MOV @2*R10(R13),R10 ;GET STACK POINTER ED36 064A DECT R10 ;DECREMENT STACK POINTER ED38 C68E MOV R14,*R10 ;PUSH RETURN PC ONTO STACK ED3A C38B MOV R11,R14 ;MOVE EA INTO R14 (PC) FOR CALL ED3C CB4A 0014 MOV R10,@2*R10(R13) ;UPDATE STACK POINTER ED40 0380 RTWP ;WE ARE NOW USING THE ORIGINAL WP
При типичном сравнении с Intel 8086 у TMS9900 были программы меньшего размера. [ нужна ссылка ] Некоторый [ нужна ссылка ] Недостатками были небольшое адресное пространство и потребность в быстрой оперативной памяти.
Выполнение
[ редактировать ]TMS9900 был реализован по N-канальной МОП-технологии с кремниевым затвором. [4] для которого требовались источники питания +5 В, −5 В и +12 В и четырехфазный (неперекрывающийся) тактовый сигнал с максимальной частотой 3 МГц (цикл 333 нс), [6] обычно генерируется на кристалле с частотой 48 МГц с использованием микросхемы тактового генератора TIM9904 (он же 74LS362).
Для выполнения самых коротких инструкций требуется восемь тактов или 2,7 мкс (при условии отсутствия внешних циклов ожидания), многие другие выполняются от 10 до 14 тактов (3,3...4,7 мкс); самая длинная инструкция (DIV) может занимать до 124 тактов (41,3 мкс). [7]
Микросхема была упакована в (тогда необычный) 64-контактный DIP- корпус шириной 0,9 дюйма . Сравнительно большое количество контактов позволяло 15-битную адресную шину (слово) и 16-битную шину данных выводить на выделенные контакты без необходимости использование мультиплексирования (в отличие, например, от процессора Intel 8086 ), обеспечивающее простоту подключения к внешней памяти. Вопреки соглашению, используемому многими другими производителями, TI обозначила наиболее важные линии адреса и данных «A0» и «D0» соответственно. Пути данных и АЛУ имеют ширину 16 бит.
Процессор может быть приостановлен с тройным состоянием адресной шины для прямого доступа к внешней памяти (DMA). Доступ к памяти всегда имеет ширину 16 бит, при этом ЦП автоматически выполняет операции чтения перед записью для доступа шириной в байт.
Система аппаратных прерываний поддерживает 4-битный входной приоритет прерывания, который должен быть выше уровня приоритета, хранящегося в регистре состояния (биты 12–15), чтобы запрос на прерывание мог быть обслужен. Кроме того, вход /LOAD обеспечивает возможность немаскируемого прерывания с выделенным вектором. [8]
ЦП TMS9900 также содержит 16-битный сдвиговый регистр («CRU»), предназначенный для взаимодействия с внешними сдвиговыми регистрами со специальными инструкциями, поддерживающими доступ к полям шириной 1–16 бит из общего числа 4096 адресуемых битов.
Параллельные периферийные устройства могут быть подключены с отображением в памяти к обычной шине адреса и данных.
Приложения
[ редактировать ]TMS9900 использовался в домашних компьютерах TI-99/4 и TI-99/4A . К сожалению, чтобы снизить производственные затраты, компания TI решила использовать в этих системах всего 128 16-битных слов быстрой оперативной памяти, к которой TMS9900 мог иметь прямой доступ. Остальная часть памяти представляла собой 16 КБ 8-битной DRAM , доступ к которой был возможен только косвенно через контроллер видеодисплея, что снижало производительность TI-99/4.
Компания TI разработала серию компьютерных модулей TM990, включая процессор, память, ввод-вывод, которые при подключении к корпусу карты могли образовывать 16-битный мини-компьютер. Обычно они использовались для управления процессом. [9] Микропроцессорный тренажер был выпущен в виде ТМ990/189. [10]
Разработка продуктов семейства TMS9900
[ редактировать ]Вторым поколением микропроцессоров семейства TMS9900 был TMS9995, который обеспечивал «функциональную производительность со скоростью в 3 раза выше, чем у любого предыдущего процессора семейства 9900». [11] во многом благодаря включению технологии предварительной выборки инструкций. На арене домашних компьютеров TMS9995 нашел применение только в Tomy Tutor , эзотерической модернизации TI99-4/A под названием Geneve 9640 и в проекте, напечатанном в журнале Electronics Today : Powertran Cortex. [12] Его планировалось использовать в компьютерных системах TI-99/2 и TI-99/8, но ни один из них не продвинулся дальше стадии прототипа.
Позже компания TI разработала более мощное семейство микропроцессоров TMS99000, которое использовалось в качестве ЦП в миникомпьютере 990/10A для снижения затрат. К сожалению, к тому времени, когда 990/10A появился на рынке, конец эры миникомпьютеров уже был виден.
Семейство TMS99000 включает два микропроцессора: [1] TMS99105A и TMS99110A, которые идентичны, за исключением содержимого ПЗУ встроенного макрохранилища (память макрохранилища содержит добавленные функции или инструкции с помощью процедур эмуляции, написанных в стандартном машинном коде). Встроенное макрохранилище ПЗУ микропроцессора TMS99110A содержит инструкции с плавающей запятой, которые доступны как часть набора команд машинного языка, тогда как базовый TMS99105A этого не делает. Оба чипа могут реализовывать инструкции Macrostore во внешнем ПЗУ. Анонсирован третий член семейства TMS99000, TMS99120. [13] но, возможно, никогда не производился в коммерческих целях. Встроенное макрохранилище ПЗУ в TMS99120 должно было содержать подпрограммы поддержки языка высокого уровня PASCAL во время выполнения.
Набор инструкций семейства TMS99000 расширяет набор инструкций 9900, сохраняя при этом совместимость. Дополнительные инструкции включают в себя команды умножения и деления со знаком (впервые появившиеся в TMS9995), сдвига длинных слов, сложения и вычитания; регистр состояния загрузки, указатель рабочей области загрузки, операции стека, поддержка многопроцессорности, манипуляция битами. Члены семейства могут получить доступ к 256 КБ памяти посредством сегментации кода/данных и могут использовать преобразователь памяти TIM99610 для адресации до 16 МБ. Архитектура содержит множество других усовершенствований по сравнению с TMS9900 и TMS9995. [1]
Варианты
[ редактировать ]Модель | Описание |
---|---|
ТИ990/9 | Ранний многокристальный процессор для миникомпьютерных систем, 1974 г. |
ТИ990/10 | Многочиповая реализация для миникомпьютерных систем, 1975 г. |
ТИ990/12 | Многочиповая реализация, быстрее, чем 990/10 |
ТМС9900 | Однокристальная реализация, 1976 г., использованная в компьютере TI-99/4(A). |
ТМС9940 | Микроконтроллер с ПЗУ 2КБ, ОЗУ 128Б, декрементером, шиной CRU, 1979 г. |
ТМС9980 ТМС9981 |
8-битные версии TMS9900 с шиной данных |
ТМС9985 | TMS9940 с ПЗУ 8 КБ, ОЗУ 256 Б и 8-битной внешней шиной, c. 1978 (так и не выпущен) |
ТМС9989 | Усовершенствованный 9980, используемый в военной технике. |
ТМС9995 | Улучшенный аналог TMS9985, без ПЗУ. Используется в прототипах TI-99/2 и TI-99/8, Tomy Tutor и компьютере Geneve Geneve 9640. |
ТМС99105 | Базовый представитель семейства микропроцессоров TMS99000. |
ТМС99110 | Микропроцессор семейства TMS99000 с инструкциями с плавающей запятой, предварительно запрограммированными во встроенной памяти Macrostore ROM. |
ТМС99120 | Микропроцессор семейства TMS99000 с функциями поддержки во время выполнения языка высокого уровня PASCAL, предварительно запрограммированными в встроенная память Macrostore ROM (микропроцессор был анонсирован, но, возможно, никогда не производился серийно) |
-
ТМС9900
-
ТМС9981
-
ТМС9995
-
ТМС99105А
Примечания
[ редактировать ]- ^ Только General Instrument CP1600 приближается к дате выпуска.
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с Руководство по предварительным данным 16-битных микропроцессоров TMS99105A и TMS99110A (PDF) . Texas Instruments Inc., 1982. с. 1.
- ^ Гуттаг, Карл (14 апреля 1980 г.). «Сравнение производительности 99000 «Альфа»» (PDF) . Проверено 26 октября 2022 г.
- ^ Райнс, Уолден К. (22 июня 2017 г.). «The Texas Instruments 99/4: первый в мире 16-битный домашний компьютер» . IEEE-спектр . Архивировано из оригинала 22 июня 2017 года . Проверено 08 июля 2017 г.
- ^ Перейти обратно: а б Руководство по данным микропроцессора TMS9900 (PDF) . Texas Instruments Inc., 1976. с. 3.
- ^ «Использование инструкции TMS 9000 XOP для реализации функции отладки» . Проверено 13 января 2024 г.
- ^ Texas Instruments 1976 , стр. 31.
- ^ Texas Instruments 1976 , стр. 28.
- ^ Texas Instruments 1976 , стр. 6.
- ^ «16-битные микрокомпьютерные модули Стюарта серии TM 990» . Проверено 25 марта 2014 г.
- ^ «Программируемые калькуляторы — Texas Instruments TM990/189» . Проверено 25 марта 2014 г.
- ^ Маркетинговая брошюра TMS9995 (PDF) . Texas Instruments Inc., 1981. с. 2.
- ^ «Powertran Cortex.com» . Проверено 27 марта 2014 г.
- ^ Справочник проектировщика микросистем, 2-е издание . Техас Инструментс Лимитед. 1981. стр. 3–25 и далее.
Внешние ссылки
[ редактировать ]- Руководства и ссылки на TMS9900 от Bitsavers