Сховище керування

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Сховище керування — це частина блоку керування ЦП, де зберігається мікропрограма ЦП. Зазвичай доступ до нього здійснюється за допомогою мікросеквенсера[en]. Застосування контрольного сховища, вміст якого є незмінним, відоме як постійна пам'ять (ROM) або сховище лише для читання (ROS); той вміст, який можна редагувати, відомий як змінне контрольне сховище (WCS).

Реалізація[ред. | ред. код]

Початкове використання[ред. | ред. код]

Початкові сховища керування були реалізовані як діодна матриця, доступ до якої здійснювався через декодери адрес, форми постійної пам’яті. Ця традиція бере початок від матриці синхронізації програм на MIT Whirlwind, вперше описаної в 1947 році. Сучасні процесори НВІС натомість використовують матриці польових транзисторів для створення структур ПЗУ та/або PLA, що використовуються для керування процесором та його внутрішнім секвенсором у мікрокодованому застосуванні. IBM System/360 використовувала різноманітні методи: CCROS (Card Capacitor Read-Only Storage) на Модель 30, TROS (Transformer Read-Only Storage) на Модель 40 та BCROS (Balanced Capacitor Read-Only Storage) на Моделі 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 який зазвичай завантажувався під час увімкнення живлення через інший центральний процесор. [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 дозволяв користувачеві оптимізувати машину для конкретних цілей.

Деякі конструкції ЦП збирають набір інструкцій у записувану оперативну пам’ять або флеш-пам’ять усередині ЦП (наприклад, процесор Rekursiv та Imsys Cjip), [10] або FPGA (перенастроювані обчислення).

Кілька процесорів Intel у сімействі архітектури x86 мають мікрокод із можливістю запису [11], починаючи з Pentium Pro у 1995 році [12] Це дозволило програмно виправити помилки в мікрокоді Intel Core 2 і мікрокоді Intel Xeon, замість того, щоб вимагати заміни всього чіпа. Такі виправлення можна встановити за допомогою Linux, [13] FreeBSD, Microsoft Windows [14] або BIOS материнської плати. [15]

Сховище керування зазвичай має регістр на своїх виходах. Виходи, які повертаються до секвенсора для визначення наступної адреси, мають пройти через певний регістр, щоб запобігти створенню умови змагання. [16] У більшості дизайнів усі інші біти також проходять через регістр. Це пояснюється тим, що машина працюватиме швидше, якщо виконання наступної мікрокоманди затримується на один цикл. Цей реєстр відомий як магістральний реєстр. Дуже часто виконання наступної мікрокоманди залежить від результату поточної мікрокоманди, яке не буде стабільним допоки поточний мікроцикл не завершиться. Можна помітити, що в будь-якому випадку всі виходи контрольного сховища потрапляють в один великий регістр. Раніше можна було придбати EPROM з цими реєстровими бітами на одній мікросхемі.

Тактовий сигнал, що визначає тактову частоту, яка є часом циклу системи, головним чином тактує цей регістр.

Список літератури[ред. | ред. код]

  1. Koopman Jr., Philip (1987). Writable instruction set, stack oriented computers: The WISC Concept (PDF). The Journal of Forth Application and Research. 5 (1): 49—71.
  2. Koopman Jr., Philip (1989). Architecture of the WISC CPU/16. Stack Computers: the new wave.
  3. Koopman Jr., Philip (1989). Architecture of the RTX 32P. Stack Computers: the new wave.
  4. IBM (September 1974). IBM System/370 Principles of Operation (PDF). Fourth Edition. с. 98, 245. GA22-7000-4.
  5. IBM (June 1968). IBM System/360 Model 85 Functional Characteristics (PDF). SECOND EDITION. A22-6916-1.
  6. IBM (March 1969). IBM System/360 Special Feature Description 709/7090/7094 Compatibility Feature for IBM System/360 Model 85. First Edition. GA27-2733-0.
  7. IBM (January 1971). IBM System/370 Model 155 Functional Characteristics (PDF). SECOND EDITION. GA22-6942-1.
  8. Smith. "Re: What was the size of Microcode in various machines". (Google Groups).
  9. Mark Smotherman. CPSC 330 / The Soul of a New Machine. 4096 x 75-bit SRAM writeable control store: 74-bit microinstruction with 1 parity bit (18 fields)
  10. Great Microprocessors of the Past and Present (V 13.4.0). Cpushack.com. Процитовано 26 квітня 2010.
  11. Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 3A: System Programming Guide, Part 1 (PDF). December 2009. chapter 9.11: "Microcode update facilities".
  12. P6 Microcode Can Be Patched - Intel Discloses Details of Download Mechanism for Fixing CPU Bugs (PDF). Microprocessor Report. MicroDesign Resources. 15 вересня 1997. Архів (PDF) оригіналу за 19 травня 2022. Процитовано 26 червня 2017. (2 pages)
  13. Intel Microcode Update Utility for Linux. Архів оригіналу за 26 лютого 2012.
  14. A microcode reliability update is available that improves the reliability of systems that use Intel processors. Microsoft Support. 22 червня 2007. Архів оригіналу за 28 червня 2007.
  15. BIOS Update required when Missing Microcode message is seen during POST. Intel. Процитовано 13 січня 2022.
  16. Don Lancaster. "TV Typewriter Cookbook". p. 62. (TV Typewriter)
Помилка цитування: Тег <ref> з назвою "Stiller_1996", визначений у <references>, не використовується в попередньому тексті.

Подальше читання[ред. | ред. код]