Halt and Catch Fire

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

Halt and Catch Fire (укр. зупинись і загорись), відома також за мнемонікою HCF, стосується кількох машинних інструкцій що змушують процесор припинити корисну роботу. Слово «загорітись» використовується як жарт, процесори зазвичай не загоряються. Також використовують позначення «SDI» — «Self Destruct Immediate» (укр. негайне самознищення).

З появою MC6800 (представленого в 1974 році) програмісти виявили недолік в його конструкції. Через неповне декодування опкодів, два незаконних опкоди, 0x9D та 0xDD, призводять до нескінченного збільшення програмного лічильника на процесорі, що блокує процесор до скидання. Ці коди отримали неофіційну назву HCF. Під час розробки MC6802 інженери спочатку планували видалити цю інструкцію, але залишили її для тестування. В результаті HCF була офіційно визнана справжньою інструкцією.[1]

В ранніх процесорах

[ред. | ред. код]

Інструкція HCF раніше була вигаданою інструкцією, про яку казали що вона розробляється в IBM для використання в комп'ютерах System/360 разом з іншими дивними інструкціями на зразок «Electrocute Computer Operator».

Одна апокрифічна історія про інструкцію HCF тягнеться аж до кінця 1960-тих, коли комп'ютери використовували пам'ять на магнітних осердях. Історія каже що аби прискорити швидкість пам'яті на своїх наступних моделях інженери збільшили струми читання/запису в проводах які проходили крізь осердя. Це працювало нормально коли комп'ютери виконували звичайні програми, тому що доступ до пам'яті розподілявся по всій пам'яті. Проте, інструкція HALT була реалізована як «перехід на себе». Це означало що одна й та сама область пам'яті була постійно запитувана, і проводи які до неї вели нагрівались так що починали диміти — тому інструкцію позначили як «Halt and Catch Fire».[2]

У 1990 році в USENET обговорювалося, що HCF виник ще до 1977 року.[3]

Примітки

[ред. | ред. код]
  1. Daniels, R. Gary; Bruce, William C. (1985-04). Built-In Self-Test Trends in Motorola Microprocessors. IEEE Design & Test of Computers. Т. 2, № 2. с. 64—71. doi:10.1109/MDT.1985.294865. ISSN 1558-1918. Процитовано 5 квітня 2023.
  2. http://catless.ncl.ac.uk/Risks/5.6.html#subj2.4 [Архівовано 27 червня 2012 у Wayback Machine.] | RISKS Digest: Hardware vs Software Battles (from Usenet)
  3. Переспрямування до Google Груп. groups.google.com. Процитовано 5 квітня 2023.

Посилання

[ред. | ред. код]