他のコア/プロセッサを有効/無効にするために使用される x86-64 命令と、それらでコードの実行を開始する方法は?
これがオペレーティングシステムによってどのように行われるかについてのドキュメントはどこかにありますか?
カーネルの実装について話していると仮定すると....
私の理解では、主にこのドキュメントに基づいています。
メモリが正しく機能する場合 (しゃれは意図されていません)、マルチプロセッサのサポートを検出するために、ファームウェアが設定した魔法のバイトセットを特定の範囲のメモリでスキャンします。そこから、CPU を記述する構造をたどり、さまざまな CPU での割り込みの設定について APIC コントローラーと対話することができます。
これは古い質問であることは承知していますが、インテルのマルチコア チップに関する最新のリファレンスを次に示します。
リンク先: http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html
x86 を稼働させるのはかなり面倒です... APIC システムほどコアではありません。チップセットのドキュメントを調べる必要がありますが、残念ながらほとんど隠されている傾向があります。
間違いなく、カーネルレベルである必要があります。Linux を見るのは良い考えのように思えます。
そのような特定のことを行うために設定できるモデル固有のレジスタに関する Intel/AMD のドキュメントがおそらくあります。カーネルレベルにあるものを書いていない限り、アクセスできるかどうかはわかりません...