(前編はコチラ)

EUROSERVERでは簡素なメモリモデルUnimemを採用

すべてのプロセサに対して、まったく同じ順序でメモリアクセスが行われたように見えるという逐次一貫性をメモリにもたせることは非常にコストが掛かるが、データセンターのワークロードでは逐次一貫性は必要が無いという知見が得られたので、EUROSERVERでは、Unimemという簡素なメモリモデルを用いることにしたという。Unimemは、ローカルなプロセサやDRAMの間ではコヒーレンシが維持され逐次一貫性が保たれており、また、大規模なシステムでも、どのプロセサからもシステム内のすべてのメモリにアクセスできるという特性をもっている。

COOL Chips XVIIIの記事一覧はコチラ

Unimemは、全システム内で逐次一貫性を持たせる場合に比べて簡素な方式であるので、高い電力効率を維持して、エクサスケールのシステムまで拡張することができるという。

全メモリアクセスの逐一貫性を持たせる必要はないとの判断から、簡素なUnimemと呼ぶ方式を用いることにした。これにより、高い電力効率を維持してエクサスケールまで拡張ができる

Unimemでは、ローカル接続の青いメモリはコヒーレントにアクセスでき、コヒーレンシは無いが、赤い線を通して、システムのどこにあるメモリでもアクセスできる。従って、リモートのデータを必要とする場合、分散メモリのように、リモートのデータを自分のメモリにコピーして持ってくる必要が無く効率が良い。

Unimemでは、リモートのメモリも赤の経路を通してアクセスできるので、自分のメモリにコピーを作る必要が無い

また、リモートのメモリページでも、他のプロセサがキャッシュしていない場合は、自分のキャッシュに格納するRemote Page Borrowingができる。従って、1つのノードが大量のメモリを使うというアプリケーションも、キャッシュが利用でき、効率よく動かすことができる。

また、他のプロセサがキャッシュしていない場合は、リモートのページをキャッシュに入れることができる。このため、1つのノードで大量のメモリを必要とするアプリケーションにも対応できる

Unimemでは、リモートメモリアクセスに、そのアドレスのオーナのプロセサが対応し、オーナのキャッシュからのデータ読み出しやキャッシュへのデータ書き込みを行うことにより、ドメイン間のコヒーレンスプロトコルなしにシェアードメモリを実現できる。

Unimemではリモートのメモリアクセスにオーナのキャッシュが対応することでシェアードメモリも実現できる

また、ローカルなメモリは、当然、ダイレクトにアクセスでき、リモートのメモリもオーナプロセサのキャッシュを通してDMAアクセスを行うことにより、高速にブロック転送を行うことができるようになっている。

リモートのメモリもオーナのキャッシュを通してのDMAにより、高速にブロック転送できる

どのような使い方でもうまく行くという訳ではないが、Unimemは少ないハードウェアオーバヘッドで多くの実用的なアプリのメモリの使い方にうまく対応できる良い方式であると思う。

EUROSERVERでは、前に述べた、大きなチップを作るのではなく、インタポーザを使って比較的小さなチップをつなぐ方式でコストを低減するというアプローチを取る。2015年末は4個のCPUをまとめる程度であるが、将来は2012年のコンピュートサブシステム全体を1枚のインタポーザに載せる計画である。

EUROSERVERではインタポーザを使って比較的小さなチップを繋ぐ方式でコストを下げる。2015年末は4個のCPUをまとめる程度であるが、将来は2012年のコンピュートサブシステム全体をインタポーザに載せる計画である

まとめとして、今日のモバイルプロセサは大部分のサーバ用途に対応できる能力を持っており、IPコアの組み合わせで、アプリに特化したシステムを作ることができる。単に、プロセサコアを替えてIOを付けるという考えではなく、コスト、電力、アプリケーション性能などシステムでの問題を考える必要がある。

EUROSERVERプロジェクトは、計算処理モジュールの再利用を可能にするナノテクノロジやスケーラブルなソフトウェアシステムのアーキテクチャを検討していると結んだ。

今日のモバイルプロセサは大部分のサーバ用途に対応できる能力を持っている。IPコアの組み合わせで、アプリに特化したシステムを作ることができる。コスト、電力、アプリケーション性能などシステムでの問題を考える必要がある。EUROSERVERプロジェクトは計算処理モジュールの再利用を可能にするナノテクノロジやスケーラブルなソフトウェアシステムのアーキテクチャを検討している

COOL Chips XVIIIの記事一覧はコチラ