10
マルチコアアセンブリ言語はどのように見えますか?
昔々、たとえばx86アセンブラを作成するには、「EDXレジスタに値5をロードする」、「EDXレジスタをインクリメントする」などの指示があります。 4コア(またはそれ以上)を備えた最新のCPUでは、マシンコードレベルで4つの別個のCPUがあるように見えますか(つまり、4つの異なる「EDX」レジスタしかない)。もしそうなら、「EDXレジスタをインクリメントする」と言うとき、どのCPUのEDXレジスタがインクリメントされるかを決定するものは何ですか?現在、x86アセンブラに「CPUコンテキスト」または「スレッド」の概念はありますか? コア間の通信/同期はどのように機能しますか? オペレーティングシステムを作成している場合、ハードウェアを介して公開されているメカニズムによって、さまざまなコアでの実行をスケジュールできますか?特別な特権付きの指示ですか? マルチコアCPU用の最適化コンパイラ/バイトコードVMを作成している場合、すべてのコアで効率的に実行されるコードを生成するために、たとえばx86について特に何を知る必要がありますか? マルチコア機能をサポートするためにx86マシンコードにどのような変更が加えられましたか?