Микросеквенсор - Microsequencer
В компьютерная архитектура и инженерное дело, а секвенсор или микросеквенсор генерирует адреса, используемые для перехода микропрограмма из магазин управления. Используется в составе устройство управления из ЦПУ или как автономный генератор диапазонов адресов.
Обычно адреса генерируются некоторой комбинацией счетчика, поля из микрокоманды и некоторого подмножества регистр инструкций. Счетчик используется для типичного случая, когда следующая микрокоманда должна выполняться. Поле из микрокоманды используется для прыжков или другой логики.
Поскольку процессоры реализуют набор инструкций, очень полезно иметь возможность декодировать инструкции биты непосредственно в секвенсор, чтобы выбрать набор микрокоманд для выполнения инструкций ЦП.
Большинство современных процессоров CISC используют комбинацию конвейерной логики для обработки кодов операций более низкой сложности, которые могут быть выполнены за один такт, и микрокода для реализации тех, для выполнения которых требуется несколько тактов.
Одним из первых интегрированных микрокодированных процессоров был Процессор IBM PALM, который эмулировал все инструкции процессора в микрокоде и использовался на IBM 5100, один из первых персональных компьютеров.
Недавними примерами подобных процессоров на основе микросеквенсоров являются MicroCore Labs. MCL86, MCL51 , и MCL65 ядра, которые полностью эмулируют наборы инструкций Intel 8086/8088, 8051 и MOS 6502 в микрокоде.
Простой пример
В Digital Scientific Corp. Компьютерная система Meta 4 Series 16 была микропрограммируемой пользователем системой, впервые доступной в 1970 году. Ответвления в последовательности микрокода возникают одним из трех способов.[1]
- А ветвь микрокоманда определяет адрес следующей инструкции, условно или безоговорочно. Опция логического индекса (IX) заставляет 16-битный регистр Link быть логическое ИЛИ в адрес ветки, тем самым обеспечивая простую возможность индексированного ветвления.
- Все арифметические / логические инструкции допускают модификатор перехода (J), который перенаправляет выполнение микрокоманды, адресуемой регистром Link.
- Все арифметические / логические инструкции позволяют использовать модификаторы счетчика декремента (D) и перехода (J). В этом случае 8-битный регистр счетчика циклов уменьшается. Если он не равен нулю, выполняется переход к содержимому регистра Link. Если он равен нулю, выполнение продолжается со следующей инструкции.
Еще одна опция упорядочивания, разрешенная для инструкции перехода, - это опция выполнения (XQ). Если указано, выполняется отдельная инструкция по адресу перехода, но затем выполнение продолжается после исходной инструкции перехода. Опцию IX можно использовать с опцией XQ.
Сложный пример
В IBM System / 360 была серией совместимых компьютеров, представленных в 1964 году, многие из которых были микропрограммными.[2] В Система / 360 Модель 40 является хорошим примером микропрограммной машины со сложным микропоследовательностью.[3]
Микрохранилище состоит из 4096 56-битных микрокоманд, работающих в стиле горизонтального микропрограммирования. К хранилищу обращается 12-битный адресный регистр только для чтения (ROAR). В отличие от большинства регистров в архитектуре S / 360, биты в ROAR нумеруются от бита 0 справа до бита 11 слева.
+ ------------ + | РЕВ | + ------------ + 11 0
Модель 40 не выполняет последовательного выполнения микрокоманд, и поэтому микросеквенсор не выполняет ответвлений в обычном понимании. Вместо этого каждая микрокоманда указывает адрес следующей, которая должна быть выполнена. Четыре поля в микрокоманде вносят вклад в новый адрес.
- CA, 4 бита: часть следующего адреса, в зависимости от других полей.
- CB, 4 бита: определяет бит 1 следующего адреса.
- CC, 4 бита: определяет бит 0 следующего адреса.
- CD, 2 бита: управляет сборкой следующего адреса (кроме случаев, когда поле CB содержит 15).
По сути, существует три комбинации или формата этих полей.
Функциональный формат ветки
Когда поле CB содержит 15, функциональная ветвь происходит. Биты нового адреса микросхемы в ROAR определяются следующим образом.
- биты 11–10: поле CD
- биты 9–6: поле CA
- бит 5: всегда 0
- биты 4–1: старшие 4 бита регистра Q, который является правым входом в 8-битный ALU
- бит 0: результат теста, указанного в поле CC
В поле CC можно указать различные тесты состояния машины. Также можно указать константу 0 или 1 для безусловного бита.
Этот формат изменяет поток управления до 1 из 16 инструкций. парыв младших 32 словах 64-словного блока микросхемы (поскольку бит 5 всегда равен 0). Поле CC затем определяет, какая инструкция из пары принимает управление.
CD = 0, 1, 3 формат
Когда поле CD равно 0, 1 или 3, поток управления направляется инструкции в текущем блоке из 64 слов. Биты нового адреса микросхемы определяются следующим образом.
- биты 11–6: остаются прежними
- биты 5–2: поле CA
- бит 1: если CD = 0, результат теста, указанного в поле CB; в противном случае 0
- бит 0: результат теста, указанного в поле CC
Поле CA выбирает 1 из 16 групп из 4 слов в текущем блоке из 64 слов. Поля CB и CC затем определяют, какая инструкция из 4 принимает управление.
CD = 2 формат
Когда поле CD равно 2, поток управления направляется неочевидным образом. Биты адреса нового микромагазина определяются следующим образом:
- биты 11–10: остаются прежними
- биты 9–6: поле CA
- биты 5–2: остаются прежними
- бит 1: результат теста, указанного в поле CB
- бит 0: результат теста, указанного в поле CC
Следующая инструкция находится в той же области размером 1К слов, что и текущая инструкция, потому что биты 11–10 остаются такими же. Поле CA определяет блок из 64 слов в регионе. Команда находится в той же группе из 4 слов в новом блоке, что и текущая команда в текущем блоке, потому что биты 5–2 остаются такими же. Поля CB и CC затем определяют, какая команда из 4 принимает управление.
Упрощение
Это описание было упрощено. Он игнорирует следующие особенности.
- Модель 40 может работать в режиме ЦП или канальном режиме. Описание касается только режима ЦП.
- Если микрокоманда не находится в формате функционального перехода и поле CD равно 1 или 3, бит 1 следующего адреса всегда равен 0. В этом случае значения полей CD и CB определяют одну из набора управляющих линий, которые нужно поднять. .
использованная литература
- ^ Справочное руководство по компьютерной системе Digital Scientific Meta 4 Series 16 (PDF). Цифровая научная корпорация. Май 1971 г. 7032МО.
- ^ Принципы работы IBM System / 360 (PDF). International Business Machines Corp. Сентябрь 1968 г. A22-6821-7.
- ^ Функциональные блоки System / 360 Model 40 (PDF). International Business Machines Corp., март 1970 г. SY22-2843-1.