インテルの研究者は、実験的なインテルチップは 1,000 個のコアを持つプロセッサを構築する実現可能性を示していると主張した。
インテルの研究者ティモシー・マットソン氏は、今週ニューオーリンズで開催されているスーパーコンピュータ 2010 カンファレンスでの講演で、インテルの 48 コア シングル チップ クラウド コンピュータ (SCC) プロセッサのアーキテクチャは「任意にスケーラブル」であると述べた。
「これは原理的には1,000コアまで拡張可能なアーキテクチャです」と彼は述べた。「コアをどんどん追加していくことができます。」
コア数が 1,000 程度を超えると、メッシュ、つまり多数のコアを接続するオンチップ ネットワークの直径が大きくなり、パフォーマンスに悪影響を与えるようになると Mattson 氏は述べた。
インテルは、マイクロプロセッサの将来の進歩は、チップ上にさらに多くのコアを詰め込むことにかかっていると断言しています。しかし、コア数が増えるにつれて、インテルの設計者はスケーラビリティの問題に直面せざるを得なくなります。

初期のマルチコア チップ アーキテクチャは、各コアがシステムのメモリを同じ方法で認識することを保証する一連のプロトコル (キャッシュ コヒーレンスと呼ばれる手法) に依存していました。
チップにコアが追加されるにつれて、このアプローチは「コア数に応じてコアあたりのプロトコル オーバーヘッドが増加し、それを超えるとオーバーヘッドがコア追加の価値を超える『コヒーレンスの壁』につながる」という点で問題が生じると、マットソン氏の講演に付随する論文で指摘されている。
マットソン氏は、キャッシュの一貫性を排除し、代わりにコア同士がメッセージを渡すことができるようにするほうがよいアプローチだと主張している。
設計チームの最近の作業は、コアの追加に応じて拡張できるチップのメッセージ パッシング技術の開発に重点を置いています。
マットソン氏によると、このチップ自体はインテルのTeraScale研究プログラムによって過去数年にわたって設計されており、実験段階のものであり、インテルの製品ロードマップには載っていないという。研究者や開発者には、この設計のための開発ツールを構築できるよう、限定数のコピーが配布されている。
このチップは、約1年前にインテルの工場で45ナノメートルプロセスを用いて初めて製造されたもので、実際には6×4のタイル配列で構成されており、各タイルには2つのコアが搭載されています。13億個以上のトランジスタを搭載し、消費電力は25~125ワットです。
簡略化のため、チームはコア自体には1994年頃の市販のPentiumプロセッサ設計を使用しました。「このチップのパフォーマンスはそれほど魅力的ではありません」とマットソン氏は言います。このチップは標準的なx86命令セットを使用しています。
このプロセッサの斬新さは、タイル型アーキテクチャとネットワークおよびアドレスインフラストラクチャにあります。各コアには、データをパケットにパッケージ化し、オンボードルーターに接続する「メッシュインターフェースコンポーネント」が搭載されています。また、各タイルには16KBのランダムアクセスメモリを備えた「メッセージパッシングバッファ」も搭載されています。
チームは、プロセッサが多数のコア間でメッセージを渡す能力を効率化するために、さまざまなアプローチを試しました。
データリンク層にTCP/IPプロトコルをインストールすることで、チームは各コア上で別々のLinuxベースのオペレーティングシステムを実行できるようになりました。マットソン氏は、チップ上で48ノードのLinuxクラスターを実行することは可能だが、「退屈だろう」と指摘しました。
「これを面白くするには、プログラミングモデルがこのチップの独自の機能にどのようにマッピングされるのかを問わなければなりません」と彼は言いました。
チームはまた、コア間のメッセージ受け渡し用の小さな API (アプリケーション プログラミング インターフェイス) ライブラリも開発しました。これは RCCE と呼ばれ、マットソン氏はこれを「ロッキー」と発音しました。
チームはテストにおいて、RCCEを用いたコア間のメッセージパッシングがTCP/IPベースのLinuxクラスタと同等の速度を実現できることを示しました。どちらのアプローチも、コア間通信におけるメッセージパッシングアプローチの有望性を示しています。
「我々の予備的な研究は、SCCプロセッサとそのネイティブメッセージパッシングAPIが効果的なソフトウェア開発プラットフォームを提供することを実証した」と論文は結論づけている。「非同期メッセージパッシングの欠如によって予想されていた困難は、今のところ顕在化していない。」
マットソン氏は、チップのメッセージパッシング機能に加え、SCCの省電力機能についても詳しく説明した。各タイルの周波数は可変である。プログラマー向けにフックが用意されており、プログラムから実行中のコアの周波数や電圧を調整できる。しかし、この機能はプログラマーにとって新たな課題を生み出すだろうと、マットソン氏は警告した。
「自分のプログラムを見て、『本当に必要な電圧は何ボルトか?』と考えるのは、思っているよりもずっと難しい」と彼は言う。
ジョアブ・ジャクソンは、IDGニュースサービスでエンタープライズソフトウェアとテクノロジー全般の最新ニュースを担当しています。Twitterで@Joab_Jacksonをフォローしてください。ジョアブのメールアドレスは[email protected]です。