В компьютерной архитектуре и инженерии , A секвенсор или микросеквенатор генерирует адреса , используемые для шага через микропрограмму из в магазине управления . Он используется в качестве части блока управления в виде процессора или в качестве автономного генератора для диапазонов адресов.
Обычно адреса генерируются некоторой комбинацией счетчика, поля микрокоманды и некоторого подмножества регистра команд . Счетчик используется для типичного случая, когда следующая микрокоманда должна выполняться. Поле из микрокоманды используется для прыжков или другой логики.
Поскольку ЦП реализуют набор инструкций, очень полезно иметь возможность декодировать биты инструкции непосредственно в секвенсор, чтобы выбрать набор микрокоманд для выполнения инструкций ЦП.
Большинство современных процессоров CISC используют комбинацию конвейерной логики для обработки кодов операций меньшей сложности, которые могут быть выполнены за один такт, и микрокода для реализации тех, для выполнения которых требуется несколько тактов.
Одним из первых интегрированных микрокодированных процессоров был IBM PALM Processor , который эмулировал все инструкции процессора в микрокоде и использовался на IBM 5100 , одном из первых персональных компьютеров.
Недавними примерами подобных процессоров на основе микропоследовательностей являются ядра MicroCore Labs MCL86 , MCL51 и MCL65, которые полностью эмулируют наборы команд Intel 8086/8088, 8051 и MOS 6502 в микрокоде.
Простой пример
Digital Scientific Corp. Series 16 компьютерная система Meta 4 была пользователь microprogrammable системой первой доступна в 1970. Филиалов в последовательности микрокода происходит в одном из трех способов. [1]
- Филиал микрокоманда определяет адрес следующей команды, либо условно или безусловно. Опция логического индекса (IX) заставляет 16-битный регистр Link быть логическим OR с адресом перехода, таким образом обеспечивая простую возможность индексированного перехода.
- Все арифметические / логические инструкции допускают модификатор перехода (J), который перенаправляет выполнение микрокоманды, адресованной регистром Link.
- Все арифметические / логические инструкции допускают использование модификаторов счетчика декремента (D) и перехода (J). В этом случае 8-битный регистр счетчика цикла уменьшается. Если он не равен нулю, выполняется переход к содержимому регистра Link. Если он равен нулю, выполнение продолжается со следующей инструкции.
Еще одна опция упорядочивания, разрешенная в инструкции ветвления, - это опция выполнения (XQ). Если указано, выполняется отдельная инструкция по адресу перехода, но затем выполнение продолжается после исходной инструкции перехода. Опцию IX можно использовать с опцией XQ.
Сложный пример
System / 360 IBM была серия совместимых компьютеров , введенных в 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.