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 были однокристальными версиями Nova от Data General . В отличие от многокристальных 16-битных микропроцессоров, таких как National Semiconductor IMP-16 или DEC LSI-11 , некоторые из которых предшествовали TMS9900, 9900 был однокристальным, автономным 16-битным микропроцессором.

Корни миникомпьютера TMS9900 порождают ряд архитектурных особенностей, которые обычно не встречаются в проектах, начинавшихся с чистого листа. Среди них следует отметить использование TMS9900 регистров процессора , отображаемых в основную память . Это позволяет быстро переключать контекст , что может быть достигнуто путем изменения одного регистра, указателя рабочей области, для указания на первую запись в списке значений регистров. Более традиционные проекты потребовали бы сохранения всего набора внутренних регистров в памяти или стеке.

Недостатком этого подхода является то, что доступ к этим регистрам занимает больше времени. В реализации мини-компьютера с быстрой памятью эффект относительно невелик, а преимущество в среде реального времени или многозадачности существенно, поскольку переключения контекста являются обычным явлением. В других ролях, таких как однопользовательские микрокомпьютеры, этот компромисс может быть нецелесообразным. Реализации 9900 с 40 выводами включали 128 или 256 байт быстрой встроенной оперативной памяти для регистров.

TI использовала одну и ту же архитектуру в разных подразделениях для корпоративной синергии: «одна компания, одна компьютерная архитектура». В конце 1970-х годов Уолден К. Райнс провел презентацию TMS99110, тогда носившего кодовое название «Alpha», [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 слов).

Нет выделенного регистра указателя стека. Вместо этого существуют инструкции ветвления, которые сохраняют счетчик программ в регистре (Branch and Link) или изменяют контекст регистра (Branch and Link Workspace, или XOP). Каждый из 16 аппаратных и 16 программных векторов прерывания состоит из пары значений PC и WP, поэтому переключение контекста регистра также автоматически выполняется прерыванием. Стеки могут быть реализованы поверх любого из этих механизмов. [5]

Набор инструкций и адресация

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

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

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

Управление потоком осуществляется с помощью группы из одной безусловной и двенадцати условных инструкций Jump. Цели перехода относятся к PC со смещением от -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(34B8H): STCR *R8+,BYTEWIDE ; ЧТЕНИЕ ДАННЫХ FDC ШИРИНОЙ БАЙТ; IOWRITE(30B8H):LDCR *R8+,BYTEWIDE ;ЗАПИСЬ ДАННЫХ FDC ШИРИНОЙ БАЙТ; R8 СОХРАНЯЕТ ТЕКУЩИЙ АДРЕС DMA.; R12 СОХРАНЯЕТ ТЕКУЩИЙ ПОРТ IO - DATREG;************************************INTDRQ X R9 ;МОЖНО ЧИТАТЬ ИЛИ ЗАПИСЫВАТЬ РТВП

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

TMS9900 также поддерживает инструкцию eXtended OPeration (XOP). XOP присваивается номер в диапазоне 0-15, а также адрес источника. При вызове инструкция выполняет переключение контекста через один из шестнадцати векторов в предопределенных местах памяти. Инструкция XOP также помещает эффективный адрес операнда источника в регистр 11 нового рабочего пространства. Функция сохранения контекста инструкции XOP также может использоваться для реализации встроенной отладки. [6]

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

XOP можно использовать для реализации системного вызова. В операционной системе DX10 компании TI XOP 15 вызывает системный вызов. Программист может определить макрос ассемблера, например SVC, который вызывает XOP 15. Еще одним применением XOP была реализация инструкций в программном обеспечении, которые могут обрабатываться выделенным оборудованием в будущих версиях серии миникомпьютеров 990. Пример таких действий можно показать в коде ниже, где функция CALL реализована с использованием и инструкции XOP 6. Прелесть этой реализации функции CALL с использованием и XOP заключается в том, что легко добавить проверки для определения переполнения стека; например, C R10,@2*R9(R13), где R9 указывает на адрес предела стека.

 ; ;************************************************ ; ВЫЗОВ ПОДПРОГРАММЫ ; ОПРЕДЕЛИТЬ XOP: ВЫЗОВ DXOP, 6 ; МЕТОД ВЫЗОВА: ВЫЗОВ @SUBROUTINE_ADDRESS ; R10 <=> УКАЗАТЕЛЬ СТЕКА ;************************************************ ; ED32 C2AD 0014 XOP6: MOV @2*R10(R13),R10 ;ПОЛУЧИТЬ УКАЗАТЕЛЬ СТЕКА ED36 064A DECT R10 ;УМЕНЬШЕНИЕ УКАЗАТЕЛЯ СТЕКА ED38 C68E MOV R14,*R10 ;PUSH ВОЗВРАТ ПК В СТЕК 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-канального кремниевого затвора МОП [4], для которой требовались источники питания +5 В, −5 В и +12 В, а также четырехфазный (неперекрывающийся) тактовый сигнал с максимальной частотой 3 МГц (цикл 333 нс) [7] , обычно генерируемый кристаллом 48 МГц с использованием микросхемы тактового генератора TIM9904 (он же 74LS362).

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

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

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

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

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

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

Приложения

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

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

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

В конце 1970-х годов Джон Уокер и Дэн Дрейк разработали карты шины S100 на основе TMS9900 и полный программный стек для них. [12] [13] Позже они стали соучредителями Autodesk , частично основанной на программном обеспечении, впервые разработанном для этих систем на базе TMS9900. [14]

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

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

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

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

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

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

Варианты

Примечания

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

Ссылки

  1. ^ abc TMS99105A и TMS99110A 16-битные микропроцессоры Предварительные данные Руководство (PDF) . Texas Instruments Inc. 1982. стр. 1.
  2. ^ Гуттаг, Карл (1980-04-14). "99000 "Альфа" Сравнение производительности" (PDF) . Получено 2022-10-26 .
  3. ^ Райнс, Уолден К. (2017-06-22). "The Texas Instruments 99/4: World's First 16-Bit Home Computer". IEEE Spectrum . Архивировано из оригинала 22 июня 2017 года . Получено 2017-07-08 .
  4. ^ ab TMS9900 Microprocessor Data Manual (PDF) . Texas Instruments Inc. 1976. стр. 3.
  5. ^ "DX10 Operating System Release 3.5 System Design Document" (PDF) . Texas Instruments, Inc. 1982. стр. 8.1.
  6. ^ "Использование инструкции TMS 9000 XOP для реализации функции отладки" . Получено 13.01.2024 .
  7. Texas Instruments 1976, стр. 31.
  8. Texas Instruments 1976, стр. 28.
  9. Texas Instruments 1976, стр. 6.
  10. ^ "16-разрядные микрокомпьютерные модули Stuart's TM 990 Series" . Получено 25.03.2014 .
  11. ^ "Программируемые калькуляторы - Texas Instruments TM990/189" . Получено 2014-03-25 .
  12. ^ "История Marinchip Systems" . Получено 2024-08-25 .
  13. ^ "Программное обеспечение Маринчип" . Проверено 25 августа 2024 г.
  14. ^ "История Autocad" . Получено 2024-08-25 .
  15. ^ Маркетинговая брошюра TMS9995 (PDF) . Texas Instruments Inc. 1981. стр. 2.
  16. ^ "Powertran Cortex.com" . Получено 2014-03-27 .
  17. Справочник проектировщика микросистем, 2-е издание . Texas Instruments Limited. 1981. С. 3–25 и далее.

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