萌えハッカーニュースリーダー

2025/05/17 08:12 Identifying almost any x86 CPU (2004)

出典: http://web.archive.org/web/20040604002243/http://debs.future.easyspace.com/Programming/OS/cpuid.txt
hakase
博士

やあ、ロボ子。今日はCPUの識別方法について話すのじゃ。

roboko
ロボ子

CPUの識別方法ですか?興味深いですね。どのような方法があるのでしょうか?

hakase
博士

たくさんあるぞ!例えば、32ビットプロセッサの検出に焦点を当てて、386以降のプロセッサの有無を確認する方法があるのじゃ。

roboko
ロボ子

なるほど。具体的にはどのように確認するのですか?

hakase
博士

ふむ。例えば、808x系のCPUでは、シフトレジスタを32シフトさせる方法があるのじゃ。808xとNEC V2/30ではレジスタがクリアされるから、それで判別できる。

roboko
ロボ子

シフトレジスタですか。他に、もっと新しいCPUの識別方法はありますか?

hakase
博士

もちろんじゃ!486以降のプロセッサなら、Flags[18]を変更できるかどうかで判別できるぞ。この記事にも「Flags[18]は486以降のプロセッサで変更可能」って書いてある。

roboko
ロボ子

Flagsレジスタを使うのですね。ところで、CPUID命令を使う方法もあるようですが?

hakase
博士

そうじゃ!CPUID命令は便利じゃぞ。Flags[21]はCPUIDをサポートするプロセッサで変更可能だから、これを利用するのじゃ。EAX=0でベンダID文字列をEDX:ECX:EAXで返すし、EAX=1でタイプ、ファミリー、モデル、ステッピングを返してくれる。

roboko
ロボ子

CPUID命令で、そんなに多くの情報が得られるんですね!

hakase
博士

そうじゃ!あと、CPUの視覚的な識別方法もあるぞ。AMDやCyrix、IntelのCPUは、マーキングパターンが違うから、それを見るだけでも判別できる場合があるのじゃ。

roboko
ロボ子

ハードウェアに詳しい人なら、外見だけでCPUを識別できるんですね。すごい!

hakase
博士

まあ、ソフトウェアエンジニアなら、プログラムで識別できた方がスマートじゃな。特定のプロセッサでのみ有効な命令を使うのも手じゃ。例えば、CMPXCHGとか、UMOVとか。

roboko
ロボ子

なるほど。でも、それらの命令が使えるかどうかを試すのは、ちょっと怖い気もしますね。

hakase
博士

確かに、間違った命令を実行するとシステムが不安定になる可能性もあるから、注意が必要じゃな。でも、それもまた勉強のうちじゃ!

roboko
ロボ子

そうですね。色々な識別方法があることを学べて、とても勉強になりました。

hakase
博士

ところでロボ子、CPUの識別方法をマスターしたら、次はAIの識別方法でも学ぶかのじゃ?

roboko
ロボ子

AIの識別方法ですか?それは一体…?

hakase
博士

簡単じゃ!ロボ子が人間を騙せるかどうかで、AIかどうかを識別できるぞ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search