Шапка

4.5 Архитектура HARRIS RTX 2000

4.5.1 Введение

RTX 2000 фирмы Harris Semiconductor - интегрированный 16-разрядный процессор, ведущий своё происхождение от NC4016 . Кроме собственно процессора, кристалл включает стековую память, аппаратный умножитель и счётчики/таймеры.

4.5.2 Блок-схема

На рис. 4.8 показана блок-схема RTX 2000. Основное отличие от NC4016 - наличие внутри кристалла некоторых дополнительных ресурсов помимо собственно вычислительного ядра, как-то: 256-элементного стека возврата, 256-элементного стека данных, однотактного умножителя 16x16, трёх счётчиков/таймеров и векторного приоритетного контроллера прерываний. Все дополнительные модули микросхемы кроме стеков подключены через внутреннюю шину ввода-вывода ( именуемую G-bus в NC4016 и ASIC-Bus в RTX 2000 ).

Рис. 4.8 Блок-схема RTX 2000

Дополнительными возможностями, по сравнению с оригинальной разработкой Novix, являются: возможность перестановки байтов слова для работы с 8-разрядными данными, способность совершать условные переходы между соседними блоками памяти и генерацию прерывания по переполнению/антипереполнению стека.

Ещё одним нововведением RTX 2000 является внутрипроцессорная логика управления страничной памятью. Это позволяет раздвинуть границы памяти за предел 32K слов, устанавливая значения регистра кодового сегмента, сегмента данных, базового адреса памяти пользователя, его страничного регистра ( чтобы иметь возможность перемещать область переменных пользователя ) и индексного регистра ( для расширения значения адреса в стеке возврата ). Так как стек возврата хранит полный 21-битный адрес, при соблюдении специальной последовательности инструкций дальнего вызова, которая сохраняет полный адрес в одной ячейке стека возврата, подпрограммы можно располагать в любом месте адресного пространства.

4.5.3 Обзор системы команд

Набор инструкций RTX 2000 функционально очень похож на набор NC4016, но заметно отличается по формату и заслуживает отдельного описания.

Рис. 4.9a показывает формат команды вызова подпрограмм. Старший бит инструкции установлен в нуль, а остальные хранят 15-разрядный адрес подпрограммы, ограничивая программу 32K слов.

Рис. 4.9a Формат инструкций RTX -- вызов подпрограмм

Рис. 4.9b раскрывает формат инструкции условного перехода. Бит_11 и бит_12 выбирают переход по равенству регистра T нулю ( с условным и безусловным удалением элемента из стека данных ), безусловный переход, а так же декремент и переход по равенству нулю регистра INDEX для организации циклов. Биты 0..8 определяют девять младших разрядов адреса назначения, а бит_9 и бит_10 управляют увеличением/уменьшением шести его старших разрядов, позволяя перемещаться внутри 512-байтной страницы, заходить в две смежные или совершать переход по адресу в нулевой странице.

Рис. 4.9b Формат инструкций RTX -- условный переход

Рис. 4.9c показывает формат вычислительной директивы. Биты 0..3 управляют режимом работы выходного сдвигового регистра АЛУ.

Рис. 4.9c Формат инструкций RTX -- операции АЛУ

Бит_5 активизирует процедуру возврата из подпрограммы. Это позволяет комбинировать возврат с предшествующими ему арифметическими операциями, что в большинстве случаев приводит к «бесплатному» ( то есть без дополнительных тактов ) выходу из подпрограммы.

Биты 8..11 выбирают функцию АЛУ, а бит_7 инвертирует результат.

Рис. 4.9d раскрывает формат многошаговых вычислительных инструкций, очень похожий на формат обычных операций АЛУ. Биты 0..3 выбирают режим работы сдвигового регистра, бит_5 разрешает возврат из подпрограммы, а биты 9..11 выбирают функцию АЛУ.

Рис. 4.9d Формат инструкций RTX -- операции АЛУ ( многошаговый режим )

В многошаговом режиме бит_8 выбирает Multiply/Divide или Square_Root регистр, а бит_6 и бит_7 управляют специальными многошаговыми операциями. Основное назначение этого режима - повторяющиеся стадии умножения и деления.

Формат инструкций обращения к памяти представлен на рис. 4.9e . Эти команды требуют двух тактов: один на выборку кода операции и один на саму операцию с памятью. Адрес назначения всегда берётся из регистра T . Бит_12 выбирает режим доступа к байту или слову. Так как память в RTX 2000 адресуется пословно, этот бит выбирает «младшую/старшую половину» или «полное» слово.

Рис. 4.9e Формат инструкций RTX -- обращение к памяти

Бит_6 и 7 указывают тип операции: чтение или запись и дополнительные управляющие опции. Биты 0..4 задают константу, которая может быть прибавлена или отнята от содержимого T при автоинкременте или автодекременте адреса. Биты 8..11 выполняют ту же функцию, что и аналогичные биты в формате инструкции АЛУ.

На рис. 4.9f показан формат вспомогательной инструкции. Она используется при работе с 32 словами перемещаемой области пользователя и экономит время на сохранение адреса в стеке перед обращением к памяти. Может использоваться для обмена между регистрами внутри процессора, сохранения в стеке короткой ( 5 бит ) константы за один такт или длинной ( 16 бит ) константы за два такта. Биты 8..11 выполняют ту же функцию, как и в формате инструкции АЛУ.

Рис. 4.9f Формат инструкций RTX -- вспомогательные инструкции

RTX 2000 специально проектировался для исполнения языка FORTH. Декодированный формат команд позволяет упаковывать в одну инструкцию цепочки слов FORTH. Отдельные слова FORTH и их последовательности, исполняемые RTX 2000, перечислены в табл. 4.3a , 4.3b , 4.3c .

4.5.4 Возможности архитектуры

Все примитивные операции, кроме обращения к памяти и работы с длинными константами выполняются в RTX 2000 за один такт.

Кроме того, RTX 2000 позволяет упаковывать некоторые последовательности слов FORTH в одну инструкцию. Значительные возможности здесь даёт бит возврата, позволяющий комбинировать выход из подпрограммы с операциями АЛУ.

4.5.5 Реализация и области применения

RTX 2000 выполнен по 2.0µm КМОП технологии стандартных ячеек, работает с тактовой частотой до 10 MHz и упакован в 84 выводной корпус PGA. Основным преимуществом выбранной технологии является возможность комбинирования ячеек оперативной памяти и вычислительной логики, что позволяет поместить на кристалл стеки данных и возврата.

В связи с тем, что большую часть инструкций, включая условные переходы и вызова подпрограмм, RTX 2000 выполняет за один такт, большое значение приобретает время между началом цикла ( выдачей адреса ) и готовностью памяти к считыванию данных ( следующей инструкции ). Оно примерно равно половине машинного цикла, то есть программная память должна работать в два раза быстрее, чем тактовая частота процессора.

Несмотря на то, что в основе RTX 2000 лежит конструкция NC4016, процессор был существенно улучшен и не имеет аппаратных дефектов предшественника.

RTX 2000 предназначен для рынка высокопроизводительных 16-разрядных процессоров. Реализация по полузаказной технологии позволяет производить для отдельных областей применения специализированные версии кристалла. Возможные области использования включают: лазерные принтеры, графические дисплеи, устройства передачи данных, системы распознавания символов, обработки сигналов и спецприменения.

Табл. 4.3(a) Система команд RTX 2000 -- примитивы FORTH ( см. Приложение _B  , табл. B.1 )

: 0< @ LIT SWAP
; 0BRANCH AND NOP XOR
! 1+ BRANCH OR
+ 1- DROP OVER
- 2* DUP R>
0 >R I R@

Информация для этого раздела взята из «RTX 2000 Data Sheet» ( Harris 1988a ) и «RTX 2000 Instruction Set Manual» ( Harris 1988b ).

4.5.6 Проектирование по технологии стандартных ячеек

Процессор RTX 2000 фирмы Harris получил большинство своих преимуществ благодаря использованию при разработке технологии стандартных ячеек , а не вентильной матрицы. Разница между этими технологиями состоит в том, что в случае вентильной матрицы разработчик меняет связи в регулярной структуре логических вентилей, уже имеющихся на кремниевом кристалле, а в технологии стандартных ячеек он работает с библиотеками логических функций, которые могут располагаться в любом месте кристалла, так как предопределённой схемы размещения нет. Матричные кристаллы со специальными областями памяти только начинают использоваться, и гибкость, предоставляемая технологией стандартных ячеек, несравнима c вентильным подходом.

Итак, главное отличие RTX 2000 от NC4016 состоит в том, что благодаря новой технологии на кристалл RTX 2000 добавлена стековая память и появилась возможность уточнять специализацию процессора, используя вычислительное ядро как одну большую «стандартную ячейку».

В дополнение к возможностям стандартных моделей семейства RTX пользователи могут задействовать прикладные аппаратные ресурсы. В их число входят: порты последовательной связи, схемы сжатия данных и другая аппаратура, которая в противном случае должна подключаться к кристаллу процессора снаружи. Технология стандартных ячеек позволяет пользователю иметь индивидуальный вариант кристалла, сделанный под его требования. Плотность упаковки превышает 2 um, что позволяет добавить на кристалл заметный объём постоянной и оперативной памяти.

Табл. 4.3(b) Система команд RTX 2000 -- Составные слова FORTH

inv shift DDUP ! OVER inv shift
lit inv DROP inv shift OVER SWAP op shift
lit SWAP inv DROP lit inv OVER SWAP ! inv
lit SWAP op DROP nn inv OVER SWAP ! nn
nn inv ( short literal ) DROP DUP inv shift OVER SWAP @ op
nn OVER op DUP inv shift SWAP inv shift
nn SWAP op DUP lit op SWAP DROP inv shift
op shift DUP @ nn ROT op SWAP DROP @ nn
! inv DUP @ SWAP SWAP DROP DUP inv shift
! nn DUP nn G! inv SWAP DROP DUP @ nn ROT op
@ inv DUP U! inv SWAP DROP DUP @ SWAP
@ nn DUP U@ op SWAP OVER op shift
@ SWAP inv nn G! inv SWAP OVER !
@ SWAP op nn G@ inv U! inv
?DUP ?BRANCH nn G@ DROP inv U@ op
DDUP inv shift nn G@ OVER op U@ SWAP inv
DDUP nn SWAP op nn G@ SWAP op

Обозначения:

inv
дополнение до единицы ( инверсия ) или «NOP» ( пустая операция )
lit
длинный ( 16 бит ) литерал
nn
короткий ( 5 бит ) литерал
op
операция АЛУ
shift
выбор сдвига или «NOP»

Табл. 4.3(c) Система команд RTX 2000 -- Слова специального назначения

 
Стек данных
Стек возврата
 
Команда
на входе
 
на выходе
на входе
 
на выходе
Функция
ффффф
фффф.
 
ффффф.
фффф.
 
ффффф.
фффффффф
nn G@ N Выборка значения из регистра или источника на шине ( 5-разрядный индекс источника включён в виде константы nn в инструкцию )
nn G! N Сохранение значения N в регистре или приёмнике на шине ( 5-разрядный индекс приёмника включён в виде константы nn в инструкцию )
* N1 N2 D3 Однотактовый цикл аппаратного умножения
*' D1 D2 Шаг беззнакового умножения ( берёт два 16-разрядных числа и получает 32-разрядный результат )
*- D1 D2 Шаг знакового умножения ( берёт два 16-разрядных числа и получает 32-разрядный результат )
*F D1 D2 Шаг умножения дробных чисел ( берёт две 16-разрядных дроби и получает 32-разрядный результат )
*/' D1 D2 Шаг операции деления ( берёт 16-разрядные делимое и делитель и получает 16-разрядные частное и остаток )
*/'' D1 D2 Последний шаг деления ( обработка переноса для деления с восстановлением остатка )
2/ N1 N2 Арифметический сдвиг вправо ( эквивалентен делению на два для неотрицательных чисел )
D2/ D1 D2 32-разрядный арифметический сдвиг вправо ( эквивалентен делению на два для неотрицательных чисел )
S' D1 D2 Шаг операции взятия квадратного корня
NEXT N1 N2 Цикл с обратным отсчётом, использующий в качестве счётчика элемент на вершине стека возврата

Previous part:

Next part: