Магазин управления - Control store

А магазин управления является частью ЦП устройство управления в котором хранятся микропрограмма. Обычно к нему обращается микросеквенсор. Реализация хранилища элементов управления, содержимое которого неизменяемо, называется Только для чтения памяти (ROM) или постоянное хранилище (ROS); тот, содержимое которого можно изменять, известен как хранилище элементов управления с возможностью записи (WCS).

Выполнение

Раннее использование

Ранние хранилища управления были реализованы в виде диодной матрицы, доступ к которой осуществлялся через декодеры адресов, разновидность постоянной памяти. Эта традиция восходит к матрица времени программы на MIT Whirlwind, впервые описан в 1947 году. СБИС процессоры вместо этого используют матрицы полевые транзисторы построить ПЗУ и / или PLA структуры, используемые для управления процессором, а также его внутренним секвенсором в микрокодированный выполнение. IBM System / 360 использовали самые разные техники: CCROS (Постоянное хранилище конденсатора карты) на Модель 30, TROS (Хранение только для чтения трансформатора) на Модель 40, и BCROS (Сбалансированный конденсатор, доступное только для чтения) на Модель 50.

Записываемые магазины

Некоторые компьютеры были построены с использованием «записываемого микрокода» - вместо того, чтобы хранить микрокод в ПЗУ или аппаратной логике, микрокод хранился в ОЗУ, называемом записываемое хранилище управления или же WCS. Такой компьютер иногда называют Записываемый компьютер с набором команд или же WISC.[1] Многие из этих машин были экспериментальными лабораторными прототипами, такими как WISC CPU / 16.[2] и RTX 32P.[3]

Оригинал Система / 360 модели имели хранилище элементов управления только для чтения, но позже System / 360, Система / 370 и последующие модели загружали часть или все свои микропрограммы с дискет или других DASD в записываемое хранилище управления, состоящее из сверхвысокой скорости произвольный доступ чтение-запись памяти. Архитектура System / 370 включает средство, называемое Начальная загрузка микропрограммы (IML или же IMPL)[4] который может быть вызван из консоли как часть Сброс при включении (ПОР) или от другого процессора в тесно связаны мультипроцессор сложный. Это позволило IBM легко устранять дефекты микропрограммирования в полевых условиях. Даже когда большая часть управляющего хранилища хранится в ПЗУ, поставщики компьютеров часто продают управляющее хранилище с возможностью записи в качестве опции, позволяя клиентам настраивать микропрограмму машины. Другие поставщики, например IBM, используют WCS для запуска микрокода для функций эмулятора.[5][6] и аппаратная диагностика.[7]

Другие коммерческие машины, которые использовали записываемый микрокод, включают Малые системы Берроуза (1970-е и 1980-е годы), процессоры Xerox в своем Лисп-машины и Xerox Star рабочие станции, DEC VAX 8800 («Наутилус»), и Символика L- и G-машины (1980-е). Некоторые DEC PDP-10 машины хранят свой микрокод в микросхемах SRAM (шириной около 80 бит x 2 тыс. слов), которые обычно загружаются при включении через какой-либо другой внешний процессор.[8] Многие другие машины предлагали в качестве опции программируемые пользователем хранилища управления с возможностью записи (включая HP 2100, DEC PDP-11/60 и Машины данных Varian Серия V-70 миникомпьютеры ). Mentec M11 и Mentec M1 хранит свой микрокод в микросхемах SRAM, загружаемых при включении через другой ЦП. Данные General Eclipse MV / 8000 («Eagle») имел записываемое управляющее хранилище SRAM, загружаемое при включении через другой ЦП.[9]

WCS предлагал несколько преимуществ, включая простоту внесения исправлений в микропрограмму и, для определенных поколений оборудования, более быстрый доступ, чем могли обеспечить ПЗУ. Программируемая пользователем WCS позволяет пользователю оптимизировать машину для определенных целей.

Некоторые конструкции ЦП компилируют набор инструкций в записываемый баран или же ВСПЫШКА внутри ЦП (например, Рекурсив процессор и Имсис Cjip ),[10] или FPGA (реконфигурируемые вычисления ).

Несколько процессоров Intel в x86 семейство архитектуры имеет записываемый микрокод,[11] начиная с Pentium Pro в 1995 г.[12]Это позволило ошибки в Intel Core 2 микрокод и Intel Xeon микрокод должен быть исправлен в программном обеспечении, вместо того, чтобы требовать замены всего чипа. Такие исправления могут быть установлены Linux,[13] FreeBSD,[14] Майкрософт Виндоус,[15] или BIOS материнской платы.[16]

Расчет времени, фиксация и предотвращение состояния гонки

Управляющее хранилище обычно имеет регистр на своих выходах. Выходы, которые возвращаются в секвенсор для определения следующего адреса, должны пройти через какой-то регистр, чтобы предотвратить создание состояние гонки. В большинстве схем все остальные биты также проходят через регистр. Это связано с тем, что машина будет работать быстрее, если выполнение следующей микрокоманды будет отложено на один цикл. Этот регистр известен как конвейерный регистр. Очень часто выполнение следующей микрокоманды зависит от результата текущей микрокоманды, которая не будет стабильной до конца текущего микроцикла. Видно, что в любом случае все выходы управляющего хранилища попадают в один большой регистр. Раньше было возможно купить СППЗУ с этими битами регистра на одном кристалле.

В тактовый сигнал определение тактовая частота, который является временем цикла системы, в первую очередь синхронизирует этот регистр.

Рекомендации

  1. ^ «Записываемый набор инструкций, компьютеры, ориентированные на стек: концепция WISC» статья Филипа Купмана мл. 1987 г.
  2. ^ «Архитектура WISC CPU / 16» Фил Купман 1989
  3. ^ «Архитектура RTX 32P» Филип Купман 1989
  4. ^ IBM (сентябрь 1974 г.), IBM System / 370 Принципы работы (PDF), Четвертое издание, стр. 98, 245, GA22-7000-4
  5. ^ IBM (июнь 1968 г.), Функциональные характеристики IBM System / 360 Model 85 (PDF), ВТОРОЕ ИЗДАНИЕ, A22-6916-1
  6. ^ IBM (март 1969 г.), Описание специальной функции IBM System / 360 709/7090/7094 Функция совместимости для IBM System / 360 Model 85, Первое издание, GA27-2733-0
  7. ^ IBM (январь 1971 г.), Функциональные характеристики IBM System / 370 Model 155 (PDF), ВТОРОЕ ИЗДАНИЕ, GA22-6942-1
  8. ^ http://pdp10.nocrew.org/cpu/kl10-ucode.txt
  9. ^ Марк Смотерман. «CPSC 330 / Душа новой машины». Записываемое управляющее ОЗУ 4096 x 75 бит: 74-битная микрокоманда с 1 битом четности (18 полей)
  10. ^ «Великие микропроцессоры прошлого и настоящего (V 13.4.0)». Cpushack.com. Получено 2010-04-26.
  11. ^ «Руководство разработчика программного обеспечения для архитектур Intel (R) 64 и IA-32», том 3A: Руководство по системному программированию, часть 1, глава 9.11: «Средства обновления микрокода», декабрь 2009 г.
  12. ^ Гвеннап, Линли (1997-09-15). «Микрокод P6 можно исправить» (PDF). Отчет микропроцессора. Получено 2017-06-26.
  13. ^ «Утилита обновления микрокода Intel для Linux». Архивировано из оригинал 26 февраля 2012 г.
  14. ^ Стефан Блахманн (02.03.2018). «Новый инструмент обновления микрокода для FreeBSD». FreeBSD-хакеры (Список рассылки). Получено 2019-07-09.
  15. ^ «Доступно обновление надежности микрокода, которое повышает надежность систем, использующих процессоры Intel»
  16. ^ «Требуется обновление BIOS, если во время POST появляется сообщение об отсутствии микрокода»