Halt and Catch Fire

Halt and Catch Fire (мнемонический код HCF) — гипотетическая ассемблерная команда, при выполнении которой центральный процессор компьютера перестает выполнять дальнейшие команды, из-за чего для восстановления работоспособности необходимо выполнить «жесткую» перезагрузку.

История возникновения

Существование некой ассемблерной команды, выполнение которой приводило бы компьютер в состояние неработоспособности, приписывалось компьютерам архитектуры IBM System/360. Мнемоническое обозначение ассемблерных команд выполнялось по аббревиатуре основной выполняемой функции команды, например ADD (добавить к числу другое число) или CMP (сравнить числа). В числе этих команд были неоднозначно интерпретируемые команды типа ZAP (буквально «Ударить током», на самом деле — Zero and Add Packed, «Обнулить регистр и добавить к нему упакованное десятичное число»)[1]. Программисты, работавшие с этим ассемблером, стали придумывать собственные мнемонические обозначения и приписывать им юмористическое толкование. Так, например, были придуманы команды XPR (Execute Programmer, «Казнить программиста»), CAI (Corrupt Accounting Information, «Испортить бухгалтерские данные»)[2], а также «SDI» (Self Destruct Immediately, «Немедленно самоуничтожиться»)[2] и CRN (Convert to Roman Numerals, «Преобразовать в римские числа»)[3]. Среди этих юмористических обозначений также появилась команда HCF (Halt and Catch Fire, «Зависнуть и загореться»)[4][5][6]. Первые упоминания о HCF появились где-то в середине 1970-х годов[4][5].

В первоначальном смысле значение catch fire подразумевало не буквальное воспламенение, а полную потерю функционирования до следующей «жёсткой» перезагрузки. Но были слухи и о поломках аппаратуры от неверных команд[7]. Существует городская легенда: на одном компьютере 1960-х годов всё повышали и повышали быстродействие магнитной памяти, прошитой тонкими проволочками. Обычной работе повышенные токи не мешали, однако операция HLT (Halt, ожидание сигнала от внешнего устройства) была реализована как «если сигнала не было, прыгнуть на тот же адрес». Многократное чтение одной и той же ячейки приводило к перегоранию соответствующей проволочки.

Существующие примеры

Микропроцессор Motorola 6800 стал первым процессором, в котором была обнаружена недокументированная инструкция, действия которой были схожи с HCF[8]. Компанией-разработчиком было документировано 197 операций (опкодов), тогда как архитектура процессора допускала 256 возможных комбинаций. Исследователь Джерри Вилер попробовал по очереди подать процессору оставшиеся 59 «недействительных команд», что привело к неожиданным результатам: одна из инструкций перевела процессор в нерабочий режим[8]:

Когда инструкция исполнялась, выяснить, что происходит, можно было только осциллографом. С пользовательской точки зрения машина останавливается и пресекает все попытки перезапустить. Индикаторы на адресной шине показывают, что процессор начинает очень быстро последовательно перечитывать всю память. В итоге адресная шина превращается в 16-битный счётчик. Тем не менее, процессор не обрабатывает то, что читает… он только читает.

Другой исследователь, Девид Аданс, на это позднее отметил: «Инструкция DD переводила процессор в бесконечный цикл последовательного чтения адресного пространства памяти (некоторые инженеры называли эту инструкцию HCF, но мы ее называли инструкцией Drop Dead [Упасть замертво]). Режим Drop Dead отлично подходил для выявления проблем с аппаратной частью с помощью осциллографа; чтение адресов памяти и работа частотного генератора укладывались в красивые прямоугольные волны»[9]. Таким образом, данная инструкция являлась фактически недокументированной функцией ввода процессора в диагностический режим[10].

В других процессорах, во многом из-за ошибок проектирования либо недокументированных возможностей, также возможен эффект, похожий на режим команды HCF. Так в процессорах семейства Intel 8086 существовала инструкция HLT (Halt, «Остановка»), которая прекращала выполнение дальнейших инструкций и переводила процессор в режим остановки, из которого можно было выйти при получении соответствующего прерывания, исключения отладки, по сигналу BINIT, INIT или RESET[11]. В некоторых ранних чипах семейства 80486DX4 существовала проблема, из-за которой выход из режима HLT был невозможен, и систему оставалось только перезагрузить. Чтобы обойти эту проблему, разработчики ОС вводили режим no-hlt, который запускал бесконечный цикл ожидания вместо исполнения данной инструкции[12].

В более поздней линейке Intel Pentium существовала аппаратная проблема при выполнении инструкции F00F C7C8. В обычных условиях появление такой инструкции невозможно, однако злонамеренный программист мог вручную внести эту инструкцию в исполняемый код, что приводило к зависанию компьютера до следующей перезагрузки. Для решения проблемы Intel выпустила микрокод, исправляющий ошибку, а в дальнейшем избавилась от этой проблемы в последующий ревизиях процессоров[13][14].

У другого широко применявшегося в 1980-е годы процессора MOS 6502 существует 12 недействительных команд, которые приводят к его зависанию[15][16].

Процессор Z-80 также имеет последовательность команд, приводящую к зависанию: DI, HALT. В честь неё была названа демопати DiHalt.

Примечания

  1. IBM System/360 Principles of Operation. IBM. Дата обращения: 2 июля 2014. Архивировано 29 февраля 2012 года.
  2. 1 2 Dunlap, Bryan. A Proposed Instruction Set. Physics Department, The Ohio State University. Дата обращения: 20 июня 2016. Архивировано из оригинала 8 сентября 2017 года.
  3. Far out op codes, Werner Cirsovius, Архивировано 5 марта 2016, Дата обращения: 28 мая 2015 {{citation}}: |archive-date= / |archive-url= несоответствие временной метки; предлагается 5 марта 2016 (справка) Источник. Дата обращения: 11 мая 2017. Архивировано 5 марта 2016 года.
  4. 1 2 «Subject: HCF instruction: from Principles of Operation» Архивная копия от 24 февраля 2017 на Wayback Machine, Archived at textfiles.com
  5. 1 2 Apocryphal opcode mnemonics, long Архивировано 22 января 2011 года. , 23/04/1990, alt.folklore.computers, (via Google Groups)
  6. "Overextended Mnemonics", Creative Computing, 6 (4): 17 (hex) (flip-side), April 1980, Дата обращения: 12 марта 2017
  7. HCF. www.catb.org. Дата обращения: 8 сентября 2017. Архивировано 20 мая 2012 года.
  8. 1 2 Wheeler, Gerry. Undocumented M6800 Instructions (англ.) // BYTE : magazine. — 1977. — December (vol. 2, no. 12). — P. 46—47.
  9. Agans, David J. Debugging: the 9 indispensable rules for finding even the most elusive software and hardware problems (англ.). — New York: American Management Association, 2002. — P. 77. — ISBN 9780814426784. Архивировано 26 июля 2014 года.
  10. Daniels, R. Gary; Bruce, William. Built-In Self-Test Trends in Motorola Microprocessors (англ.) // IEEE Design & Test[англ.] : magazine. — 1985. — April (vol. 2, no. 2). — P. 64—71. — doi:10.1109/MDT.1985.294865. «HACOF thus became the first intentional built-in self-test feature on a Motorola microprocessor.»
  11. x86 Instruction Set Reference: HLT. Дата обращения: 2 июля 2014. Архивировано из оригинала 14 июля 2014 года.
  12. Gortmaker, Paul. The Linux Boot Prompt-How To. The Linux Documentation Project (21 марта 2003). Дата обращения: 2 июля 2014. Архивировано 6 июля 2015 года.
  13. Collins, Robert R. The Pentium F00F Bug: Workarounds for a nasty problem. Dr. Dobb's Journal (1 мая 1998). Дата обращения: 11 мая 2017. Архивировано 30 апреля 2022 года.
  14. Pentium Processor Specification Update (неопр.). — Intel, 1999. — С. 51—52. Архивировано 4 марта 2016 года.
  15. Steil, Michael. How MOS 6502 Illegal Opcodes really work. pagetable.com. Дата обращения: 11 мая 2017. Архивировано 7 июля 2016 года.
  16. Offenga, Freddy. 6502 Undocumented Opcodes. NesDev. Дата обращения: 11 мая 2017. Архивировано 8 августа 2016 года.

Read other articles:

TNP-ATP is a fluorescent molecule that is able to determine whether a protein binds to ATP, and the constants associated with that binding. It is primarily used in fluorescence spectroscopy, but is also very useful as an acceptor molecule in FRET, and as a fluorescent probe in fluorescence microscopy and X-ray crystallography.[1] TNP BINDING Constituent parts TNP refers to the chemical compound 2,4,6-trinitrophenol, also known as Picric acid.[2] It is a primary constituent of ...

 

Disambiguazione – Se stai cercando altri significati, vedi Malatesta (disambigua). Malatesta'Elephas Indus Culices Non Timet'(it:L'elefante indiano non teme le zanzare.)Bandato di sei pezzi, tre dei quali scaccati d'oro e di rosso e gli altri d'argento, circondato di bordura indentata d'oro e di nero[1][2]Stato Signoria di Rimini Signoria di Brescia Titoli Conte di Sogliano Signore di Ascoli Signore di Brescia Signore di Bertinoro Signore di Cervia Signore di Cesena Signore...

 

This article is part of a series onCanadian Confederation Conferences Charlottetown, 1864Quebec, 1864London, 1866 People Fathers of ConfederationLaurentian elite Related Anti-Confederation PartyBritish North America ActsChesapeake AffairConstitutional historyGreat CoalitionQuebec ResolutionsTerritorial evolution of CanadaTrent Affair1867 Canadian federal election Canada Portalvte The history of post-confederation Canada began on July 1, 1867, when the British North American colonies of Canad...

مكتب مبعوث الأمين العام للشباب مكتب مبعوث الأمين العام للشباب‌ المقر الرئيسي نيويورك،  الولايات المتحدة تاريخ التأسيس 17 يناير 2013؛ منذ 11 سنة (2013-01-17) الموقع الرسمي الموقع الرسمي  تعديل مصدري - تعديل   مكتب مبعوث الأمين العام للشباب هو منصب تتجلى وظيفته في ا...

 

Premier League Malti 2004-2005 Competizione Premier League Malti Sport Calcio Edizione 90ª Organizzatore MFA Luogo  Malta Partecipanti 10 Formula 1 girone all'italiana Risultati Vincitore  Sliema Wanderers(26º titolo) Retrocessioni  St. Patrick FC Lija Athletic Statistiche Miglior marcatore Andrew Cohen (21) Cronologia della competizione 2003-04 2005-06 Manuale L'edizione 2004-2005 della Premier League maltese (MIA Premier League per motivi di sponsorizzazione) è ...

 

Japanese manga series You can help expand this article with text translated from the corresponding article in Japanese. (March 2009) Click [show] for important translation instructions. View a machine-translated version of the Japanese article. Machine translation, like DeepL or Google Translate, is a useful starting point for translations, but translators must revise errors as necessary and confirm that the translation is accurate, rather than simply copy-pasting machine-translated text...

1964 film by Grigori Kozintsev For the BBC production starring Christopher Plummer, see Hamlet at Elsinore. For the stage production starring Richard Burton filmed and released in 1964, see Richard Burton's Hamlet. HamletDirected byGrigori KozintsevIosif Shapiro [Wikidata] (co-director)Written byWilliam ShakespeareBoris PasternakGrigori KozintsevStarringInnokenty SmoktunovskyMikhail NazvanovElza RadziņaAnastasiya VertinskayaCinematographyJonas GriciusMusic byDmitri ShostakovichD...

 

American racing driver Jordan TaylorTaylor at the Circuit of the Americas in 2023Nationality AmericanBornJordan Lee Taylor (1991-05-10) May 10, 1991 (age 32)Orlando, Florida, U.S.Related toRicky Taylor (brother)Wayne Taylor (father)IMSA SportsCar Championship careerDebut season2014Current teamWayne Taylor RacingRacing licence FIA PlatinumCar number40Starts107Championships3 2017 (P), 2020-2021 (GTLM)Wins27Podiums62Poles17Best finish1st in 2017 (P), 2020-2021 GTLM)Finished last season3rd N...

 

1946 film Kitty KorneredDirected byRobert ClampettStory byRobert ClampettStarringMel BlancMusic byCarl W. StallingAnimation byManny GouldRod ScribnerC. MelendezLayouts byThomas McKimsonBackgrounds byDorcy HowardColor processTechnicolorProductioncompanyWarner Bros. Cartoons, Inc.Distributed byWarner Bros. PicturesRelease date June 8, 1946 (1946-06-08) Running time7:06LanguageEnglish Kitty Kornered is a 1946 Warner Bros. Looney Tunes cartoon, directed by Robert Clampett.[1 ...

Men's combinedat the XXI Olympic Winter GamesThe on-hill podium ceremony.From left: Ivica Kostelić (silver), Bode Miller (gold)and Silvan Zurbriggen (bronze)VenueWhistler CreeksideWhistler, British Columbia CanadaDateFebruary 21Competitors52 from 22 nationsWinning time2:44.92Medalists Bode Miller  United States Ivica Kostelić  Croatia Silvan Zurbriggen  Switzerland← 20062014 → Alpine skiing at the2010 Winter OlympicsCombinedmenwomenDownhi...

 

Sejarah Kota Bandung secara resmi dimulai pada masa pemerintahan Kolonial portugis, pada abad ke-7. Kota Bandung didirikan oleh dan atas kehendak (kebijakan) Bupati Bandung ke-9 R.A. Wiranatakusumah (1794-1829).[1] Akan tetapi proses pendiriannya dipercepat oleh perintah Gubernur Jenderal Hindia Belanda ke-36, Herman Willem Daendels (1808-1811) dengan surat keputusan (besluit) pada tanggal 25 September 1810, sehingga tanggal 25 September dianggap sebagai hari jadi Kota Bandung.[1&...

 

尊敬的拿督赛夫丁阿都拉Saifuddin bin Abdullah国会议员馬來西亞国会下议院英迪拉马哥打现任就任日期2018年7月16日 (2018-07-16)前任法兹阿都拉曼(希盟公正党)多数票10,950(2018) 马来西亚外交部长任期2021年8月30日—2022年11月24日君主最高元首苏丹阿都拉首相依斯迈沙比里副职卡玛鲁丁查化(国盟土团党)前任希山慕丁(国阵巫统)继任赞比里(国阵巫统)任期2018年7月2�...

2004 studio album by Brian Wilson This article is about the rerecorded 2004 version of Smile. For the unfinished album, see Smile (The Beach Boys album). Brian Wilson Presents SmileStudio album by Brian WilsonReleasedSeptember 28, 2004 (2004-09-28)RecordedApril 13 – July 2004StudioSunset Sound Recorders and Your Place or Mine Recording, CaliforniaGenreOrchestral pop[1][2]art pop[3]psychedelic pop[4]Americana[5]indie rock[6]L...

 

「アプリケーション」はこの項目へ転送されています。英語の意味については「wikt:応用」、「wikt:application」をご覧ください。 この記事には複数の問題があります。改善やノートページでの議論にご協力ください。 出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。(2018年4月) 古い情報を更新する必要があります。(2021年3月)出...

 

11 هـمعلومات عامةجزء من تقويم هجري تاريخ البدء 28 مارس 632[1] تاريخ الانتهاء 17 مارس 633[1] المواليد قائمة مواليد 11 هـ الوفيات قائمة وفيات 11 هـ لديه جزء أو أجزاء محرم 11 هـصفر 11 هـربيع الأول 11 هـ 10 هـ 12 هـ تعديل - تعديل مصدري - تعديل ويكي بيانات قرن: قرن 0 - قرن 1 - قرن 2 عقد: -20  -10&...

Pour les articles homonymes, voir Suter. Cet article est une ébauche concernant un coureur cycliste suisse. Vous pouvez partager vos connaissances en l’améliorant (comment ?). Pour plus d’informations, voyez le projet cyclisme. Henri SuterHenri Suter en 1926InformationsNaissance 10 juillet 1899GränichenDécès 6 novembre 1978 (à 79 ans)BülachNationalité suisseSpécialité ClassiquesÉquipes professionnelles 1918-1919 individuel 1920 Stucchi-Dunlop 1921 individuel 1922-192...

 

S-4/YH-24 YH-24 in flight Role light helicopterType of aircraft Manufacturer Seibel Helicopter Designer Charles Seibel First flight January 1949 Primary user United States Army Number built 2 Developed into Cessna CH-1 The Seibel S-4 was a two-bladed, single-engine helicopter built by Seibel Helicopter. Designed by Charles Seibel, the S-4 was evaluated by the United States Army under the designation YH-24 Sky Hawk, but would be rejected for service. The S-4B would serve as the basis for...

 

Campionati internazionali Rugby Europe 2020-2021 Logo della competizione Competizione Campionati internazionali Rugby Europe Sport Rugby a 15 Edizione 50ª Organizzatore Rugby Europe Date dal 6 marzo 2021al 18 dicembre 2021 Luogo Europa Partecipanti 6 Formula girone unico Risultati Vincitore Georgia(13º titolo) Secondo Romania Terzo Portogallo Coppa Antim Georgia Coppa Kiselëv Russia Statistiche Miglior marcatore Samuel Marques (74) Record mete Raffaele Storti (5) Incontr...

Questa voce sull'argomento cestisti statunitensi è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Chris HillNazionalità Stati Uniti Altezza191 cm Pallacanestro RuoloPlaymaker Termine carriera2014 CarrieraGiovanili 2000-2001North Lawrence High School2001-2005 MSU Spartans Squadre di club 2005-2006 Évreux192006-2007 Clermont-Ferrand342007-2008 Bornova Belediyesi182008-2009 ...

 

Pour les articles homonymes, voir Bourg. Cet article est une ébauche concernant la Chine. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Le bourg (chinois simplifié : 镇 ; chinois traditionnel : 鎮 ; pinyin : zhèn) est une division administrative du niveau cantonal (乡级) en République populaire de Chine[1]. Voir aussi Administration territoriale de la République popula...