このページの本文へ

前へ 1 2 3 次へ

ロードマップでわかる!当世プロセッサー事情 第328回

スーパーコンピューターの系譜 メモリーを持たないKSR-1

2015年11月02日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/) 編集●北村/ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

 最近、HPC業界にも片足を軽く突っ込んでいる知人に「最近の連載、HPC黒歴史化してていいねぇ」と言われて、そう言われみると確かに、と思った。

連載271回の最後で「スーパーコンピューターの世界は、一歩間違うと黒歴史連載になりかねないのだが、今回はそうした趣旨ではない」と書いておきながらこの体たらくかと反省したりもしている。

 しかし、HPCの歴史は失敗や敗退したメーカーとその機種の歴史とほぼ等しいだけに、なかなか黒歴史化させないのが難しい。というわけで今回もまたもやそんな製品である。ただしその理由はなかなか斬新である。

KSR-1

メモリーを持たない超並列マシン
KSR-1

 1986年、米マサチューセッツ州でKSR(Kendall Square Research)という会社が設立された。Kendall Squareというのは会社がある地名()であり、ボストン市街から川を隔ててすぐのところ、有名なマサチューセッツ工科大学の非常に近くである。

 もっともKendall Squareのオフィスは手狭だったためか、1990年になる前に、もう少しボストンから離れたWalthamという場所に移動したが、社名はKSRのままとされた。

 創始者はSteven Frank氏とHenry Burkhardt III氏の2人で、このBurkhardt氏はもともとDECでPDP-8の設計に携わり、その後Data GeneralやEncore Computerの設立にも関わった人物である。

 さて、そのKSRが1991年に発表した最初のマシンがKSR-1である。最大1088プロセッサー構成で実現されるもので、分類としては超並列マシンにあたると思われる。

 まずはシステムの構成だが、Photo01がそのラフな構図である。すべてのプロセッサーノード(図中のP)は、サブキャッシュと呼ばれる256KBの命令/データキャッシュ(1次キャッシュ相当)と、32MBのローカルキャッシュ(2次キャッシュ相当)を持つ。

ジョージア工科大のUmakishore Ramachandran氏の“Scalability Study of the KSR-1”という論文より抜粋。この論文のAbstractにある結論を読む限り、やはりALLCACHEアーキテクチャー(後述)は無茶だったという気がする

 このノードが32個、1つのリングバス(Ring 0)にぶら下る。この外側に、さらに大きいリングバス(Ring 1)がある形だ。Ring 1にはRing 0を最大34個ぶら下げ可能で、Ring 0にはそれぞれ最大32プロセッサーノードを接続できるので、最大ノード数が32×34=1088となる計算だ。ちなみにKSRではこのプロセッサーノードをCellと称している。

 このシステムがユニークなのは、メモリーを持たないことだ。同社はこれを“ALLCACHE”アーキテクチャーと称している。

 システム全体で仮想アドレスは共有しており(これをSVA:System Virtual Addressと呼ぶ)、それと個々のCellが持つアドレス(CA:Context Address)を、STT(Segment Translation Table)で変換する仕組みが用意されているが、肝心のメモリーそのものは「ない」という代物である。

 メモリーがないのにどうやって動かすかというと、それぞれのCellは、アドレスを指定して書き込み、あるいは読み込みをする場合、その実体はサブキャッシュないしローカルキャッシュに対して実行される。

 「最初にどうやってキャッシュに値を埋めるのか」という根本的な問題はあるにせよ、確かにキャッシュが溢れるような使い方をしない限り、以後そのCellは自身のサブキャッシュないしローカルキャッシュだけを相手にしていればプログラムが動作する。

 問題は、他のCellに接続されたキャッシュにアクセスする場合だが、結論から言えば直接キャッシュにアクセスすることはできない。それができたらメモリーである。

 したがって、他のCellに接続されたキャッシュにアクセスする場合は、ノード間通信という形で、そのCellにリクエストを出し結果を受け取ることになる。

 アドレス空間はすべてのノードで決まるが、メモリーそのものは共有しておらず、ただしキャッシュコヒーレンシが保たれる(嘘ではない)ということで、この方式をCC-NUMA(Cache Coherency Non Unified Memory Architecture)と分類されることもある。

 「ヘネシー&パターソン コンピュータ アーキテクチャ 定量的アプローチ」(通称:ヘネパタ本)の著者であり、MIPSの創始者、現在はスタンフォード大学の学長であるJohn L. Hennessy博士は、自身の“An Empirical Comparison of the Kendall Square Research KSR-1 and Stanford DASH Multiprocessors”という論文の中で、KSR-1はCOMA(Cache Only Memory Architecture)と分類している(ちなみにStanford DASHはHennessy博士が開発していたCC-NUMAのマシンである)。

 なぜこういうアーキテクチャーを考えついたのかはよくわからない。ただ1990年頃は、キャッシュを大量に搭載するという力技が一瞬流行ったことがある。

 筆者の記憶では(ベンダーがどこかは思い出せないのだが)MIPSのR3000に16MBの2次キャッシュを組み合わせ、「RTOSがまるごとキャッシュに載るのでリアルタイム処理でも利用できる」という謎のプロセッサーが発表になったこともあった。

 実際、ローカルキャッシュの実体そのものはメモリーと大差なく、Tag RAMが搭載されるメモリーをローカルキャッシュと呼んでるような構成だったため、実装そのものはそう難易度は高くなかっただろう。

→次のページヘ続く (1キャビネット以内の構成では性能を発揮

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン