stringtranslate.com

ТМС9900

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

Его 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 году.

История

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

TMS9900 был разработан как однокристальная версия миникомпьютера TI 990 , так же, как 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). Эта инструкция выполняет инструкцию в регистре. Его можно использовать для отладки (в качестве инструкции точки останова ), для создания таблиц индексированных кодов операций, используемых в интерпретаторах байт-кода, а также для выполнения критических по времени инструкций ввода-вывода во время прерывания. Пример его полезности показан в коде ниже, где прерывание обслуживается очень инкапсулированным образом, что в противном случае потребовало бы гораздо большего количества инструкций.

;************************************;; ЭТО ПРЕРЫВАНИЕ МОДЕЛИРУЕТ УПРАВЛЕНИЕ DMA; ОРГАНИЗУЕТСЯ СЛЕДУЮЩИМ:;; R9 Удерживает ТЕКУЩУЮ КОМАНДУ, НАПРИМЕР; IOREAD: STCR *R8+,BYTEWIDE ;BYTE WIDE ЧТЕНИЕ ДАННЫХ FDC; IOWRITE: LDCR *R8+,BYTEWIDE;BYTE WIDE ЗАПИСЬ ДАННЫХ FDC; R8 СОХРАНЯЕТ ТЕКУЩИЙ АДРЕС DMA.; R12 СОХРАНЯЕТ ТЕКУЩИЙ ПОРТ ВВОД-ВВОД-DATREG;************************************INTDRQ X R9 ;МОЖЕТ БЫТЬ ЧТЕНИЕ ИЛИ ЗАПИСЬ РТВП

это общий фрагмент кода во время прерывания, который может использоваться как командами чтения, так и записи ввода-вывода. Подобные методы можно использовать в любых методах отладки, которые можно использовать.

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 указывает на адрес предела стека.

 ; ;************************************************ ; ВЫЗОВ ПОДПРОГРАММЫ ; ОПРЕДЕЛЕНИЕ XOP: DXOP CALL,6 ; МЕТОД ВЫЗОВА: ВЫЗОВ @SUBROUTINE_ADDRESS ;************************************************ ; ED32 C2AD 0014 XOP6: MOV @2*R10(R13),R10 ;ПОЛУЧИТЬ УКАЗАТЕЛЬ СТЕКА ED36 064A DECT R10 ;УМЕНЬШЕНИЕ УКАЗАНИЯ СТЕКА ED38 C68E MOV R14,*R10 ;ВОЗВРАТ ПК В СТЕК ED3A C38B MOV R11,R14 ;ПЕРЕМЕСТИТЬ EA В R14 ДЛЯ ВЫЗОВА ED3C CB4A 0014 MOV R10,@2*R10(R13) ;ОБНОВИТЬ УКАЗАТЕЛЬ СТЕКА ED40 0380 RTWP; СЕЙЧАС МЫ ИСПОЛЬЗУЕМ ОРИГИНАЛЬНЫЙ WP

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

Выполнение

Конфигурация контактов TMS9900 (64-контактный DIP )

TMS9900 был реализован по N-канальной технологии MOS с кремниевым затвором [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 адресуемых битов.

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

Приложения

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

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

Компания TI разработала серию компьютерных модулей TM990, включая процессор, память, ввод-вывод, которые при подключении к корпусу карты могли образовывать 16-битный мини-компьютер. Обычно они использовались для управления процессом. [9] Был выпущен микропроцессорный тренажер TM990/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, но ни один из них не продвинулся дальше стадии прототипа.

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

Позже компания 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]

Варианты

Примечания

  1. ^ Только General Instrument CP1600 приближается к дате выпуска.

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

  1. ^ abc Руководство по предварительным данным 16-битных микропроцессоров TMS99105A и TMS99110A (PDF) . Texas Instruments Inc., 1982. с. 1.
  2. ^ Гуттаг, Карл (14 апреля 1980 г.). «Сравнение производительности 99000 «Альфа»» (PDF) . Проверено 26 октября 2022 г.
  3. ^ Райнс, Уолден К. (22 июня 2017 г.). «The Texas Instruments 99/4: первый в мире 16-битный домашний компьютер». IEEE-спектр . Проверено 08 июля 2017 г.
  4. ^ ab Руководство по данным микропроцессора TMS9900 (PDF) . Texas Instruments Inc., 1976. с. 3.
  5. ^ «Использование инструкции TMS 9000 XOP для реализации функции отладки» . Проверено 13 января 2024 г.
  6. ^ Texas Instruments 1976, стр. 31.
  7. ^ Texas Instruments 1976, стр. 28.
  8. ^ Texas Instruments 1976, стр. 6.
  9. ^ "16-битные микрокомпьютерные модули Стюарта серии TM 990" . Проверено 25 марта 2014 г.
  10. ^ «Программируемые калькуляторы — Texas Instruments TM990/189» . Проверено 25 марта 2014 г.
  11. ^ Маркетинговая брошюра TMS9995 (PDF) . Texas Instruments Inc., 1981. с. 2.
  12. ^ "Powertran Cortex.com" . Проверено 27 марта 2014 г.
  13. ^ Справочник проектировщиков микросистем, 2-е издание . Техас Инструментс Лимитед. 1981. стр. 3–25 и далее.

Внешние ссылки