stringtranslate.com

Контрольный магазин

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

Выполнение

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

Ранние хранилища управления были реализованы как диодная матрица, доступ к которой осуществлялся через декодеры адреса, форма памяти только для чтения. Эта традиция восходит к матрице синхронизации программ на MIT Whirlwind , впервые описанной в 1947 году. Современные процессоры VLSI вместо этого используют матрицы полевых транзисторов для построения структур ROM и/или PLA, используемых для управления процессором, а также его внутренним секвенсором в микрокодированной реализации. IBM System/360 использовала различные методы: CCROS (Card Capacitor Read-Only Storage) на Model 30 , TROS (Transformer Read-Only Storage) на Model 40 и BCROS (Balanced Capacitor Read-Only Storage) на Models 50 , 65 и 67 .

Записываемые хранилища

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

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

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

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

Некоторые конструкции ЦП компилируют набор инструкций в перезаписываемую ОЗУ или флэш-память внутри ЦП (например, процессор Rekursiv и Imsys Cjip) [11] или ПЛИС ( реконфигурируемые вычисления ).

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

Синхронизация, фиксация и предотвращение состояния гонки

Управляющее хранилище обычно имеет регистр на своих выходах. Выходы, которые возвращаются в секвенсор для определения следующего адреса, должны проходить через какой-то регистр, чтобы предотвратить создание состояния гонки . [19] В большинстве конструкций все остальные биты также проходят через регистр. Это связано с тем, что машина будет работать быстрее, если выполнение следующей микроинструкции задерживается на один цикл. Этот регистр известен как конвейерный регистр. Очень часто выполнение следующей микроинструкции зависит от результата текущей микроинструкции, который не будет стабильным до конца текущего микроцикла. Можно увидеть, что в любом случае все выходы управляющего хранилища попадают в один большой регистр. Исторически раньше можно было купить EPROM с этими битами регистра на одном чипе.

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

Ссылки

  1. ^ Купман-младший, Филипп (1987). «Записываемый набор инструкций, стек-ориентированные компьютеры: концепция WISC» (PDF) . Журнал Forth Application and Research . 5 (1): 49–71.
  2. ^ Купман-младший, Филипп (1989). «Архитектура WISC CPU/16». Стековые компьютеры: новая волна.
  3. ^ Купман-младший, Филипп (1989). «Архитектура RTX 32P». Стековые компьютеры: новая волна.
  4. ^ IBM (сентябрь 1974 г.), IBM System/370 Principles of Operation (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. ^ Смит, Эрик (3 сентября 2002 г.). "Re: Каков был размер микрокода в различных машинах". Группа новостей : comp.arch.
  9. ^ Марк Смотерман. «CPSC 330 / Душа новой машины». 4096 x 75-битная SRAM-память управления с возможностью записи: 74-битная микроинструкция с 1 битом четности (18 полей)
  10. ^ Макдауэлл, Чарли (1982). "Защита на уровне микромашин". ACM SIGARCH Computer Architecture News . 10 (1): 5. doi :10.1145/859520.859521 . Получено 2023-11-25 . Нередко можно встретить микропрограммы размером более 50 Кбайт. Это увеличение размера и выход микропрограммирования за рамки традиционных границ эмуляции машинных инструкций увеличили вероятность как вредоносных, так и ошибочных микропрограмм, особенно последних.
  11. ^ "Великие микропроцессоры прошлого и настоящего (V 13.4.0)". Cpushack.com . Получено 2010-04-26 .
  12. ^ Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 3A: Руководство по системному программированию, часть 1 (PDF) . Декабрь 2009 г. Глава 9.11: «Средства обновления микрокода».
  13. ^ Стиллер, Андреас; Пол, Матиас Р. (12 мая 1996 г.). «Процессоргефлюстер». c't – магазин компьютерной техники . Тенденции и новости / aktuell - Prozessoren (на немецком языке). Том. 1996, нет. 6. Верлаг Хайнц Хайзе ГмбХ и Ко КГ . п. 20. ISSN  0724-8679. Архивировано из оригинала 28 августа 2017 г. Проверено 28 августа 2017 г.
  14. ^ Gwennap, Linley (1997-09-15). "Микрокод P6 можно пропатчить - Intel раскрывает подробности механизма загрузки для исправления ошибок ЦП" (PDF) . Отчет о микропроцессорах . Ресурсы MicroDesign . Архивировано (PDF) из оригинала 2022-05-19 . Получено 2017-06-26 .(2 страницы)
  15. ^ "Утилита обновления микрокода Intel для Linux". Архивировано из оригинала 2012-02-26.
  16. ^ Стефан Блахманн (2018-03-02). "Новый инструмент обновления микрокода для FreeBSD". freebsd-hackers (список рассылки) . Получено 2019-07-09 .
  17. ^ "Доступно обновление надежности микрокода, повышающее надежность систем, использующих процессоры Intel". Служба поддержки Microsoft . 22 июня 2007 г. Архивировано из оригинала 28.06.2007.
  18. ^ "Обновление BIOS требуется, когда во время POST появляется сообщение Missing Microcode". Intel . Получено 2022-01-13 .
  19. Дон Ланкастер. «Кулинарная книга по использованию телевизионной пишущей машинки». стр. 62. ( TV Typewriter )

Дальнейшее чтение