ロックされたCMPXCHG8Bインストラクションでの不正なオペランド

読み:ロックされたコンペアエクスチェンジはちビーインストラクションでのふせいなオペランド
外語:Invalid Operand with Locked CMPXCHG8B Instruction 英語
品詞:名詞

オーバードライブプロセッサを含むPentiumMMX Pentiumに存在するエラッタ(設計上の欠陥等によるエラー)の一つ。

目次

次の4バイトの命令列が実行されると、プロセッサーがハングアップする。

F0h、0Fh、C7h、C8h〜CFh

最初のF0hがLOCK命令で、次の命令を実行中にバスをロックする。全ての命令に対して使えるものではなく、使えない命令に対して使用された場合は無効命令例外を発行する。

次の命令(0Fh C7h)はcmpxchg8b命令で、この命令の最初のパラメーターにはレジスターを与えることができないので、そのような命令に対しては無効命令例外を発行するはずだが、例外が発行されずにCPUがハングアップする。

LOCK命令のバグは、ごく普通のアプリケーションを使う範囲ではまず遭遇することはない。

またソフトウェアの回避法も無い訳ではないが、これは当然ソフトウェア側でバグを考慮していないと回避できない。cmpxchg8b命令に不都合があるわけではなく、あくまでも無効命令例外の不都合である。ゆえに普通の(バグの無い)ソフトでは、まず起こり得ない。

Windows NTではNT 4.0 SP4以降で標準対応し、NT 3.51では修正モジュールが配布された。

MS-DOS/Windows 3.1以前/Windows 95では対応しない。

Windows 98ではシステム設定→全般→詳細設定で、設定変更が必要である。

Linuxではカーネル2.0.32および2.1.64以降、FreeBSDでは2.2.6-RELEASE以降のリリースで対策が取られている。

関連するリンク
Pentium F0 バグ
用語の所属
F0
関連する用語
Pentium
MMX Pentium

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club