stringtranslate.com

ТИ-990

Панель программатора TI-990

TI -990 представлял собой серию 16-битных миникомпьютеров , продававшихся компанией Texas Instruments (TI) в 1970-х и 1980-х годах. TI-990 пришел на замену более ранним миникомпьютерным системам TI, TI-960 и TI-980. Он имел несколько уникальных функций, и его было легче программировать, чем его предшественников.

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

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

Функции

Рабочие пространства

В TI-990 регистры хранятся в памяти, и обращение к ним осуществляется через аппаратный регистр, называемый указателем рабочей области. Концепция рабочей области заключается в том, что основная память была основана на новых полупроводниковых микросхемах оперативной памяти, разработанных TI, и работала на той же скорости, что и ЦП. [ нужны разъяснения ] Это означало, что не имело значения, были ли «регистры» реальными регистрами в ЦП или хранились в памяти. [ нужна цитация ] Когда указатель рабочей области загружается с адресом памяти, этот адрес является источником регистров.

В 990 имеется только три аппаратных регистра: указатель рабочей области (WP), счетчик программ (PC) и регистр состояния (ST). Переключение контекста повлекло за собой сохранение и восстановление только аппаратных регистров.

Расширенная операция

У TI-990 была возможность выполнять расширенные операции за счет использования подключаемого оборудования. [ нужна цитация ] Если оборудование отсутствует, процессор ловит, позволяя программному обеспечению выполнить эту функцию. Код операции (XOP) допускал подключение к системе 15 устройств. Однако в операционных системах TI устройство 15 было зарезервировано для вызова супервизора (SVC), посредством которого пользовательские программы запрашивали ввод-вывод и другие услуги операционной системы.

На 990/12 инструкция XOP могла запускать микрокод из записываемого хранилища управления машины.

Ортогональный набор команд

TI-990 использовал достаточно ортогональный набор команд . Форматы инструкций допускали одно-, двух- и трехсловные инструкции. ЦП модели 990/12 допускал выполнение четырехсловных инструкций с операциями в расширенном режиме. [ нужны разъяснения ]

Архитектурные детали

Общие режимы адресации регистров

(R — общий регистр, от 0 до 15.)

0. Регистр — значение передается в регистр или из него: OPR R ; R содержит операнд
1. Косвенный регистр – регистр содержит адрес операнда: OPR *R ; R указывает на операнд
2. Индексировано: OPR @MEM(R); R содержит значение индекса (смещение в байтах), которое нужно добавить к адресу MEM. R0 не используется при индексировании и допускает прямую адресацию памяти.
3. Косвенное автоинкремент: OPR *R+ ; R содержит адрес операнда. Позже увеличьте R на длину типа операнда.

Во многих инструкциях несколько регистров определяли цели. Это:

ТИ-990 инструкция

Наборы инструкций 990/4, 990/5, 990/9 состояли из 69 инструкций, 990/10 имели 72 инструкции , 990/10A имели 77 инструкций и 990/12 имели 144 инструкции .

Инструкции сгруппированы в соответствии с режимами адресации и количеством операндов, которые они принимают. Группа определяется расположением битовых полей внутри командного слова. Крайних левых битов командного слова достаточно для идентификации его группы.

Инструкция группы 1

Первое поле слова определяет операцию, которую необходимо выполнить, остальные два поля предоставляют информацию для поиска операндов. [ нужны разъяснения ]

Тип 2 инструкции

Первое поле слова определяет операцию, которую необходимо выполнить, второе поле представляет собой относительное смещение того, куда идти, для инструкций JMP или относительное смещение для адресации битов CRU. [ нужны разъяснения ]

Группа 3 инструкции

Первое поле слова определяет операцию, второе поле предоставляет регистр, третье поле предоставляет информацию для поиска второго операнда. [ нужны разъяснения ]

Инструкция группы 4

Первое поле слова определяет операцию, которую необходимо выполнить, второе поле — разрядность операции, третье поле предоставляет информацию для поиска второго операнда. [ нужны разъяснения ]

Группа 5 инструкции

Первое поле слова определяет операцию, которую необходимо выполнить, второе поле — счетчик сдвига, третье поле указывает регистр для сдвига. [ нужны разъяснения ]

Группа 6 инструкции

Первое поле определяет операцию, которую необходимо выполнить, второе поле предоставляет информацию для поиска второго операнда. [ нужны разъяснения ]

Инструкция группы 7

Слово указывает операцию, которую необходимо выполнить.

Группа 8 инструкции

Первое поле определяет операцию, второе поле указывает регистр, если применимо. Третье поле, если применимо, определяет непосредственный операнд во втором слове. [ нужны разъяснения ]

Группа 9 инструкции

Первое поле слова определяет операцию, второе поле предоставляет регистр, третье поле предоставляет информацию для поиска второго операнда. [ нужны разъяснения ]

Инструкция группы 10

Первое поле определяет операцию, второе поле указывает файл карты (0 = ядро, 1 = пользователь), а третье поле указывает регистр с адресом.

Данный файл карты загружается 6 словами по адресу в регистре.

Эта инструкция поддерживалась на 990/10A и 990/12 или на 990/10 с установленной опцией карты памяти.

Группа 11 инструкции

Первое слово — это код операции; во втором слове первое поле — это поле счетчика байтов, второе поле — операнд-адресат, а третье поле — операнд-источник. Эти инструкции поддерживаются моделями 990/12. [ нужны разъяснения ]

Инструкции множественной точности позволяли выполнять логическую и целочисленную арифметику с операндами длиной от 1 до 15 байт. *SM и *AM поддерживались на 990/10A.

Группа 12 инструкции

Первое поле первого слова — это код операции, второе поле первого слова указывает регистр контрольной точки; первое поле второго слова — это поле количества байтов, второе поле — операнд-адресат, а третье поле — операнд-источник. Эти инструкции поддерживались на 990/12.

Группа 13 инструкции

Первое слово — это код операции; во втором слове первое поле — это поле счетчика байтов, второе поле — счетчик сдвига, а третье поле — исходный операнд. Эти инструкции поддерживаются моделями 990/12 и 990/10A.

Группа 14 инструкции

Первое слово — это код операции; первое поле второго слова — это поле позиции, а второе поле — исходный операнд. Эти инструкции поддерживались на 990/12.

Инструкция группы 15

Первое поле первого слова — это код операции, второе поле первого слова указывает ширину; первое поле второго слова — это позиция, второе поле — исходный операнд. [ нужны разъяснения ] Эта инструкция поддерживается на 990/12.

Группа 16 инструкции

Первое поле первого слова — это код операции, второе поле первого слова указывает ширину; первое поле второго слова — это позиция, второе поле — операнд-адресат, а третье поле — операнд-источник. Эти инструкции поддерживаются на моделях 990/12.

Группа 17 инструкции

Первое слово — это код операции; первое поле второго слова — это поле значения, второе поле — это регистр, а третье поле — относительное смещение. [ нужны разъяснения ] Эти инструкции поддерживаются на 990/12.

Группа 18 инструкции

Первое поле слова — это код операции, а второе поле — спецификация регистра. Эти инструкции поддерживаются на моделях 990/12.

Инструкция группы 19

Первое слово — это код операции; первое поле второго слова является операндом-адресатом, а второе поле — операндом-источником. Эта инструкция поддерживается на 990/12.

Группа 20 инструкции

Первое слово — это код операции; первое поле второго слова — это поле кода условия, второе поле — операнд-адресат, а третье поле — операнд-источник. Эти инструкции поддерживаются на моделях 990/12.

Инструкция группы 21

Первое поле первого слова — это код операции, второе поле первого слова определяет длину назначения; первое поле второго слова определяет длину источника, второе поле — операнд-адресат, а третье поле — операнд-источник. Эта инструкция поддерживается только на 990/12.

Пример программирования на языке ассемблера

Полная программа « Привет, мир! » на ассемблере TI-990 для работы под DX10 :

 IDT 'Привет' НАЗВАНИЕ «HELLO — программа «Привет, мир»»* DXOP SVC,15 Определить SVCTMLUNO EQU 0 Терминал LUNO*Р0 ЭКВ 0Р1 ЭКВ 1R2 ЭКВ 2R3 EQU 3R4 ЭКВ 4Р5 ЭКВ 5Р6 ЭКВ 6R7 EQU 7R8 ЭКВ 8R9 EQU 9Р10 ЭКВ 10Р11 ЭКВ 11Р12 ЭКВ 12Р13 ЭКВ 13Р14 ЭКВ 14Р15 ЭКВ 15* ДАННЫЕ WP,ВХОД,0** Рабочая область (На 990 мы можем «предварительно загружать» регистры)*WP ДАННЫЕ 0 R0 ДАННЫЕ 0 R1 ДАННЫЕ >1600 R2 – Конец программы SVC ДАННЫЕ > 0000 R3 — открыть код операции ввода-вывода ДАННЫЕ > 0B00 R4 — запись кода операции ввода-вывода ДАННЫЕ > 0100 R5 — Закрыть код операции ввода-вывода СТРОКА ДАННЫХ R6 - Адрес сообщения ДАННЫЕ STRLEN R7 - Длина сообщения ДАННЫЕ 0 R8 ДАННЫЕ 0 R9 ДАННЫЕ 0 R10 ДАННЫЕ 0 R11 ДАННЫЕ 0 R12 ДАННЫЕ 0 R13 ДАННЫЕ 0 R14 ДАННЫЕ 0 R15** Терминальный блок SVC*TRMSCB BYTE 0 Код операции SVC (0 = ввод/вывод)TRMERR BYTE 0 Код ошибкиTRMOPC БАЙТ 0 КОД ОПЕРАЦИИ ВВОДА/ВЫВОДАTRMLUN БАЙТ TMLUNO LUNOTRMFLG ДАННЫЕ 0 ФлагиTRMBUF DATA $-$ Адрес буфераTRMLRL DATA $-$ Длина логической записиTRMCHC DATA $-$ Количество символов** Сообщение*СТРОЧНЫЙ ТЕКСТ «Привет, мир!» БАЙТ >D,>ASTRLEN EQU $-СТРИНГА ДАЖЕ СТРАНИЦА** Основная запись программы*ВХОД MOVB R3,@TRMOPC Установить открытый код операции в SCB SVC @TRMSCB Открытый терминал MOVB @TRMERR,R0 Проверить наличие ошибок JNE ВЫХОД MOVB R4,@TRMOPC Установить код операции записи MOV R6,@TRMBUF Установить адрес буфера MOV R7,@TRMLRL Установить длину логической записи MOV R7, @TRMCHC и количество символов SVC @TRMSCB Написать сообщение MOVB @TRMERR,R0 Проверить наличие ошибок JNE ЗАКРЫТЬCLOSE MOVB R5,@TRMOPC Установить код операции закрытия SVC @TRMSCB Закрыть терминалВЫХОД SVC R2 Выход из программы* КОНЕЦ

Эту программу можно запустить на симуляторе TI-990, таком как «sim990» Дэйва Питтса, который эмулирует TI-990 и включает наборы программного обеспечения для собственных операционных систем (включая DX10).

Следующая программа представляет собой автономную версию, которая печатает на последовательном терминале, подключенном к адресу CRU 0. Она иллюстрирует связь ввода-вывода CRU и рабочей области для подпрограммы PRINT.

 IDT 'Привет' НАЗВАНИЕ «HELLO — программа «Привет, мир»»*Р0 ЭКВ 0Р1 ЭКВ 1R2 ЭКВ 2R3 EQU 3R4 ЭКВ 4Р5 ЭКВ 5Р6 ЭКВ 6R7 EQU 7R8 ЭКВ 8R9 EQU 9Р10 ЭКВ 10Р11 ЭКВ 11Р12 ЭКВ 12Р13 ЭКВ 13Р14 ЭКВ 14Р15 ЭКВ 15** Биты терминала CRU*TRMCRU EQU >0 Адрес терминального устройстваXMIT EQU 8ДТР ЭКВЮ 9РТС EQU 10WRQ EQU 11RRQ EQU 12НФС ЭКВ 13* СТРАНИЦА** Основная запись программы*ВХОД LWPI WP Загрузите указатель нашей рабочей области. BLWP @PRINT Вызов нашей процедуры печати СТРОКА ДАННЫХ ДАННЫЕ СТРЛЕН ПРАЗДНЫЙ*WP BSS 32 Основная рабочая область программы** Сообщение*СТРОЧНЫЙ ТЕКСТ «Привет, мир!» БАЙТ >D,>ASTRLEN EQU $-СТРИНГА ДАЖЕ СТРАНИЦА** Распечатать сообщение*ПЕЧАТЬ ДАННЫХ PRWS,ПРЕНТПРЕНТ ЭКЮ $ MOV *R14+,R2 Получить адрес буфера MOV *R14+,R1 Получить длину сообщения SBO DTR Включение терминала готово СБО РТСPRI010 LDCR *R2+,8 Отправка символа TB WRQ Подождите, пока закончите JNE $-2 СБЗ WRQ ДЕКАБРЬ R1 ДЖГТ ПРИ010 РТВП*ДАННЫЕ PRWS 0,0,0,0,0,0,0,0 ДАННЫЕ 0,0,0,0,TRMCRU,0,0,0* КОНЕЦ ВХОДА

Модели ТИ-990

Процессоры TI-990 делились на несколько естественных групп в зависимости от исходной конструкции, на которой они основаны, и какой шины ввода-вывода они использовали.

Все модели поддерживали блок регистров связи (CRU), который представляет собой последовательную шину ввода-вывода с побитовой адресацией. Кроме того, в более дорогих моделях поддерживалась шина ввода-вывода TILINE, похожая на популярную UNIBUS от DEC . TILINE также поддерживал отношения главный/подчиненный, что позволяло использовать несколько плат ЦП в одном шасси с арбитражным управлением.

Модели TILINE/CRU

Следующие модели использовали TILINE в качестве основной шины хранения данных:

Только модели CRU

Следующие модели использовали CRU в качестве основной шины:

Операционные системы

Для TI-990 было доступно несколько операционных систем.

Из ТИ:

От третьих лиц:

Источники

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