今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御

木村啓二

tag: 組み込み

技術解説 2005年2月18日

● プロセッサ間で通信しながら起動

 マルチプロセッサ・システムが起動するようすを見てみましょう.ここでは,Xeonマルチプロセッサのブート(起動)処理を取り上げます(2).米国Intel社のIA-32アーキテクチャのCPUは,プロセッサ間で割り込み要求(Interpro-cessor Interrupt;プロセッサ間割り込み)を送受信する ことにより,簡単な通信を行っています.割り込みは「Advanced Programmable Interrupt Controller (APIC)」というマルチプロセッシング対応の割り込みコントローラで処理します注3

 Xeonのデュアルプロセッサ・システムがブートするようすを図4に示します.まず,電源を投入すると(あるいはシステムのリセット直後),各CPUはそれぞれが持つテスト・コードを実行し,「ブート」を示すプロセッサ間割り込みをブロードキャストします.いちばん早く「ブート」を発行したCPUがマスタ・プロセッサとなります.

 すべてのCPUが「ブート」を発行したら,マスタ・プロセッサはBIOSを初期化し,「スタートアップ」を示すプロセッサ間割り込みをブロードキャストします.マスタ・プロセッサ以外のCPUは「スタートアップ」を受信してから自分自身のBIOSを初期化します.初期化が終了したらマスタ・プロセッサに通知し,休止(HALT)状態に移行します.すべてのCPUが初期化を終了したら,マスタ・プロセッサはOSのブート処理に入ります.

 注3;Pentium IIIコアのころまでは,プロセッサ間のバスとは別に,APIC専用のバスで割り込み要求を処理していた.XeonやPentium 4(Net Burstコア)からは,割り込み要求をバス・トランザクションの一環として処理している.

f04_01.gif
図4 Xeonマルチプロセッサ・システムにおけるブート処理
各処理ごとにプロセッサ間割り込み(IPI)を用いた待ち合わせを行いながら,ブート処理を実現している.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日