В компьютерной архитектуре и инженерии секвенсор или микросеквенсор генерирует адреса, используемые для пошагового выполнения микропрограммы управляющего хранилища . Он используется как часть блока управления ЦП или как автономный генератор для диапазонов адресов.
Обычно адреса генерируются некоторой комбинацией счетчика, поля из микроинструкции и некоторого подмножества регистра инструкций . Счетчик используется для типичного случая, когда следующая микроинструкция является той, которая должна быть выполнена. Поле из микроинструкции используется для переходов или другой логики.
Поскольку процессоры реализуют набор инструкций, очень полезно иметь возможность декодировать биты инструкций непосредственно в секвенсоре, чтобы выбрать набор микроинструкций для выполнения инструкций процессора.
Большинство современных CISC-процессоров используют комбинацию конвейерной логики для обработки кодов операций низкой сложности, которые могут быть выполнены за один такт, и микрокода для реализации тех, выполнение которых занимает несколько тактовых циклов.
Одним из первых интегрированных микрокодированных процессоров был процессор IBM PALM , который эмулировал все инструкции процессора в микрокоде и использовался в IBM 5100 , одном из первых персональных компьютеров.
Последними примерами подобных процессоров с открытым исходным кодом на базе микросеквенсора являются ядра MicroCore Labs MCL86, MCL51 и MCL65, которые полностью эмулируют наборы инструкций Intel 8086/8088, 8051 и MOS 6502 в микрокоде.
Компьютерная система Meta 4 Series 16 компании Digital Scientific Corp. была микропрограммируемой пользователем системой, впервые появившейся в 1970 году. Ответвления в последовательности микрокода происходят одним из трех способов. [1]
Еще одна опция последовательности, разрешенная для инструкции ветвления, — это опция выполнения (XQ). Если она указана, выполняется единственная инструкция по адресу ветвления, но затем выполнение продолжается после исходной инструкции ветвления. Опция IX может использоваться с опцией XQ.
IBM System/360 — серия совместимых компьютеров, представленных в 1964 году, многие из которых были микропрограммированными. [2] System /360 Model 40 — хороший пример микропрограммируемой машины со сложным микропоследовательным выполнением. [3]
Микрохранилище состоит из 4096 56-битных микрокоманд, работающих в горизонтальном стиле микропрограммирования. Хранилище адресуется 12-битным регистром адреса только для чтения (ROAR). В отличие от большинства регистров в архитектуре S/360, биты в ROAR нумеруются от бита 0 справа до бита 11 слева.
+------------+ | РЕВ | +------------+ 11 0
Модель 40 не выполняет последовательного выполнения микроинструкций, и поэтому микросеквенсор на самом деле не выполняет ветвления в общепринятом смысле. Вместо этого каждая микроинструкция указывает адрес следующей, которая должна быть выполнена. Четыре поля в микроинструкции вносят вклад в новый адрес.
По сути, существует три комбинации или формата этих полей.
Когда поле CB содержит 15, происходит функциональное ветвление . Биты нового адреса микросохранения в ROAR определяются следующим образом.
Поле CC может определять различные тесты состояния машины. Оно также может определять константу 0 или 1 для безусловного бита.
Этот формат изменяет поток управления на 1 из 16 пар инструкций в нижних 32 словах 64-словного блока микропамяти (поскольку бит 5 всегда равен 0). Затем поле CC определяет, какая инструкция из пары получает управление.
Когда поле CD равно 0, 1 или 3, поток управления направляется к инструкции в текущем блоке из 64 слов. Биты нового адреса микросохранения определяются следующим образом.
Поле CA выбирает 1 из 16 групп по 4 слова в текущем блоке из 64 слов. Затем поля CB и CC определяют, какая инструкция из 4 получает управление.
Когда поле CD равно 2, поток управления направляется неочевидным образом. Биты нового адреса микрохранилища определяются следующим образом:
Следующая инструкция находится в той же области из 1K слов, что и текущая инструкция, потому что биты 11–10 остаются прежними. Поле CA определяет блок из 64 слов в пределах области. Инструкция находится в той же группе из 4 слов в пределах нового блока, что и текущая инструкция в пределах текущего блока, потому что биты 5–2 остаются прежними. Затем поля CB и CC определяют, какая инструкция из 4 получает управление.
Это описание упрощено. Оно игнорирует следующие особенности.