CPUID(4)

名前
cpuid - x86 CPUID アクセスデバイス

説明
CPUID は x86 CPU に関する情報を問い合わせるためのインターフェースを提供する。

このデバイスには lseek(2) と pread(2) を使って、 適切な CPUID レベルにアクセスし、 16 バイトのデータを読み出す。 もっと大きな読み出しサイズを指定すると、 連続する複数のレベルが読み出される。

ファイル位置の下位 32 ビットは次の %eax として使用され、 ファイル位置の上位 32 ビットは次の %ecx として使用される。 後者は、 eax=4 のように eax レベルを数えるのを意図したものである。

このドライバーは /dev/cpu/CPUNUM/cpuid を使用する。 なお CPUNUM はマイナー番号である。 SMP マシンでは、 このドライバーは /proc/cpuinfo に載っている CPU CPUNUM にアクセスする。

このファイルは、 ユーザー root またはグループ root だけが読み出しできるように保護されている。

注意
CPUID 命令はインラインアセンブラーを使ってプログラムで直接実行できる。 しかし、 このデバイスを使うことで、 プロセスの affinity を変更せずにすべての CPU に便利にアクセスできる。

cpuid の情報のほとんどは、 /proc/cpuinfo か、 /sys/devices/system/cpu のサブディレクトリ経由で読みやすい形で参照できる。 このデバイス経由で直接 CPUID にアクセスするのは例外的な場合にだけにすべきである。

cpuid ドライバーは自動ではロードされない。 モジュールに対応したカーネルでは、 使用する前に以下のコマンドを使って明示的にロードする必要がある。

     $ modprobe cpuid

追加の入力レジスターが必要な CPUID 機能はサポートされていない。

非常に古い x86 CPU では CPUID はサポートされていない。

関連項目
 cpuid(1)

Intel Corporation, Intel 64 and IA-32 Architectures Software Developer's Manual Volume 2A: Instruction Set Reference, A-M, 3-180 CPUID reference.

Intel Corporation, Intel Processor Identification and the CPUID Instruction, Application note 485.

この文書について
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。