激変するメニーコア時代のDRAMアーキテクチャ
高性能チップに関する技術講演会「Hot Chips(A Symposium on High Performance Chips)」が、米国カリフォルニア州パロアルトのスタンフォード大学で、8月17日~8月19日(現地時間)に開催された。
マイクロプロセッサはサーバー用はもちろんのこと、組み込み用でもマルチコア、マルチスレッドが標準的な仕様となりつつある。かつてはシングルコア、シングルスレッドのマイクロプロセッサの動作周波数を高めることで、システムの性能を上げてきた。しかし現在では、プロセッサコアの数とマルチスレッディングの数を増やし、動作周波数は低めにすることで消費電力の増加を抑えながら、システムの性能を高めるアプローチがごく普通になっている。
高性能マイクロプロセッサは今後、さらにプロセッサコア数を増やすとともに、異なる特性のプロセッサコアを混載した「ヘテロジニアスメニーコア」へと進みつつある。
ヘテロジニアスメニーコアのマイクロプロセッサを搭載したシステムを想定したときに、現在のままでは性能向上を大きく制約しそうな要因が1つある。それは、メモリアクセスだ。
●シングルコアが前提だったDRAMのアーキテクチャPCやメディアタブレット、スマートフォンなどの主記憶(メインメモリ)であるDRAMのアーキテクチャは、マイクロプロセッサがシングルコアだった時代と変わらずに、データ転送速度を高めようとしている。それがDDR3からDDR4へ、あるいはLPDDR2からLPDDR3、Wide I/Oへといった流れである。
ところがヘテロジニアスメニーコアの時代に、こういったDRAMアーキテクチャは致命的な欠点を露呈する恐れが強い。それは、数多くのプロセッサコアが並列にメモリにアクセスするといった状況(コンカレントアクセス)を想定していないことだ。
プロセッサがDRAMにアクセスしてデータを読み込むとき、読み出しのコマンドを入れたタイミングから数クロック遅れてデータがDRAMから出力される。出力されるデータは1個ではなく、通常は4個、あるいは8個といった単位で短いサイクルで連続して読み出される。この連続して読み出すデータの個数を増やせば、実効的にデータ転送速度が上がる。
シングルコアプロセッサの場合は、DRAMのデータを読み出すプロセッサコアは1つだけなので、DRAMアクセスがコンカレントに起こることはなかった。データの読み出し、あるいは書き込みの動作が完了しないうちに次の読み書きが発生することはあっても、同時並列的にアクセスが生じることはなかった。これはメモリバスの競合が起こりにくく、また、メモリコントローラの設計が(易しいわけではないにせよ)それなりに単純であることを意味する。
●メニーコア、マルチスレッドでアクセスが一気に複雑化ところが、メニーコアプロセッサではDRAMアクセスが頻繁に、しかも、同時並列で起こる可能性がある。現在のDRAMアーキテクチャは、アクセスを始めてから最初のデータを実際に入出力し始めるまでの遅れ(レイテンシ)が長い。このため、同時並列にアクセスが発生すると、プロセッサコア数にもよるが、最初のデータを入出力するまでに数十クロック~数百クロックも待たされてしまう、という事態が生じる恐れがある。
また殺到するアクセス要求をさばくため、メモリコントローラは極めて複雑になり、プロセッサにメモリアクセスが与える負担は相当に重くなるだろう。それでもDRAMがDIMMのような現在のアーキテクチャを採用するかぎり、メニーコアプロセッサではシステム性能が一気に低下する恐れがつきまとう。
●超小型DRAMモジュールにコントローラを組み込むそこでメニーコアプロセッサのシステムに対応した新たなDRAMアーキテクチャを、DRAMベンダーのMicron Technologyが開発している。Hot Chips 23では、その概要が公表された(講演者はJ. T. Pawlowski氏、アーキテクチャ開発グループのチーフテクノロジスト)。アーキテクチャの名称は「ハイブリッドメモリキューブ(HMC:Hybrid Memory Cube)」という。
HMCの最大の特徴は、プロセッサとDRAMのインターフェイスを抽象化し、プロトコルベースの高速シリアルリンクでデータを転送することにある。極端に言ってしまうと、プロセッサはDRAMコントローラを持たない。DRAMモジュール側がコントローラ機能と高速シリアルリンクのインターフェイス機能を備える。こうすると、DRAMチップの複雑なタイミング制御はすべて、DRAMモジュール側が受け持つようになる。
HMCの物理的な構造は、非常にコンパクトなものである。DRAMのシリコンダイをシリコン貫通電極(TSV:Through Silicon Via)技術で積層し、電気的に接続する。DRAMシリコンダイの枚数は4枚あるいは8枚。このDRAM積層スタックを、大規模ロジックのシリコンダイに載せて電気的に接続する。大規模ロジックの裏面にははんだボールのアレイがあり、プリント基板などに接続される。パッケージング部分を除くと、外形寸法はシリコンダイ5枚分あるいは9枚分の大きさとなる。
HMCの大規模ロジックはDRAMコントローラ回路と高速シリアルリンクインターフェイス回路の両方を内蔵する。DRAMシリコンダイとのデータ転送速度は1Tbit/secと極めて高い。TSV技術で接続したことで、このような高いデータ転送速度を実現できるのだろう。
DRAMサブシステムが抱える課題 | ハイブリッドメモリキューブ(HMC:Hybrid Memory Cube)の狙い |
HMCの概要。DRAMのシリコンダイはTSV技術によって積層され、ロジックのシリコンダイに載せられる | HMCの実装例。プロセッサとHMCをマルチチップモジュール化したもの |
●16チャンネルのメモリインターフェイス
DRAMシリコンダイのメモリセルアレイは「スライス(Slice)」と呼ぶ単位に分割される。DRAM積層スタックを水平方向でみたときに同じ位置のスライスが垂直方向にひとまとめにされ、大規模ロジックのDRAMコントローラ回路に接続される。すなわち、スライスごとにコントローラ回路が存在する。たとえば4×4イコール16個のスライスがあると、16個のスライスコントローラ回路が大規模ロジックに用意される。つまり16チャンネルのメモリインターフェイスが存在することに相当しており、高い並列度を有することが分かる。
大規模ロジックとプロセッサを結ぶ高速シリアルリンクは、1レーン当たり10Gbit/secでデータを伝送する。送信レーンと受信レーンは分かれており、それぞれが差動信号を送受信する。送信レーンの数は16レーン、受信レーンの数は16レーンである。これを1本のリンクとし、4本、あるいは8本といったリンク数でHMCの大規模ロジックとプロセッサーを結ぶ。リンク数が4本あるいは8本なのは、1本のリンクが何らかの不具合でシャットダウンしても、残りのリンクでデータを伝送できるようにするためである。高速シリアルリンクで伝送するデータの単位は32Bあるいは64B、128Bを考えている。
HMCのアーキテクチャ。DRAMシリコンダイのメモリセルアレイは「スライス(Slice)」と呼ぶ単位に分割され、各スライスがDRAMコントローラ回路とつながる | HMCとプロセッサを結ぶ高速シリアルリンクの概要 |
●1GbitのHMC用DRAMを試作
4枚のDRAMシリコンダイを積層したHMCの性能は、DDR3-1333の約10倍のデータ転送速度、DDR3-1333の5分の1以下の消費電力(データ転送速度当たり)といった高い水準になる。
Micronはすでに、1GbitのHMC用DRAMシリコンダイを試作し、4枚のシリコンダイをTSVで積層したHMCの評価に入っている。DRAMのシリコンダイは50nm技術、大規模ロジックのシリコンダイは90nm技術で製造した。HMCの記憶容量は512MB(4Gbit)、高速シリアルリンクのデータ転送速度は128GB/secと高い。外形寸法は27mm角である。
HMCと既存のDRAMインターフェイスの比較、および試作したHMC用1Gbit DRAMのシリコンダイ写真 | 評価中のHMCと治具 | HMCを利用した大容量メモリサブシステムのイメージ。高速シリアルリンクでHMC同士、およびプロセッサを結ぶ |
DRAMは1970年に登場して以降、基本的なアーキテクチャは変化せずに大容量化と高速化を重ねてきた。1990年代にクロック非同期式からクロック同期式への変化はあったものの、メモリバスを介してホスト側のメモリコントローラとデータをやり取りする構造は変わらなかった。Micronの提案と開発は、40年を超えるDRAMの歴史で初めての大改革だと言えそうだ。もちろん、HMCが本命になるかどうかは分からない。ただし、メニーコアプロセッサシステムの性能を引き出すためには、メモリサブシステムの変更は避けられない。このことだけは確かだろう。
(2011年 8月 23日)
[Reported by 福田 昭]