弊社をフォローする:
Follow us on LinkedIn Follow us on Twitter Like us on Facebook Subscribe to our channel on YouTube Follow us on Tumblr
共有する:
| More

マイクロスレッディング

概要

マイクロスレッディングは、行および列のアクセス粒度を細かくすることで、転送効率および DRAM アーキテクチャリソースの利用効率を向上させます。物理メモリスペースの各クワドラントに独立した行および列回路を使用することで、一般的な DRAM デバイスと比べて、転送サイズを最小で 1/4 に抑えることができます。また、各クワドラントに異なるアドレスを割り当てることで、グラフィックスやマルチコアプロセッサのスレッド化されたメモリの負荷を軽減します。この独特なアーキテクチャにより、処理ごとの消費電力を低減しながらも、デバイスの総データバンド幅を維持することができます。

一般的な DRAM の動作

DRAM インターフェイスのスループット向上は、コア速度の向上より、急激に進んでいます。 DRAM インターフェイスのデータレートが 10 倍近く増加しているに対して、DRAM コアの周波数はそれ程変わっていません。インターフェイスのバンド幅の向上に対応するために、コアプリフェッチのサイズも増大しています。プリフェッチサイズが増大すると、アクセス「粒度」(一度にアクセスできるデータ量)も大きくなり、グラフィックスやマルチコアコンピューティングなどのアプリケーションに必要以上のデータを送ることになります。過剰なデータを受け取ると非効率性が増し、DRAM および信号電力を浪費することになります。

アクセス粒度は、メモリアーキテクチャ内のデータへのアクセスのしやすさに作用します。一般的な DRAM は 8 つのストレージバンクで構成されます。各バンクは、さらに 2 つのハーフバンク「A」と「B」に区分されます。32 データピンの DRAM では、各 A ハーフバンクは 16 データピンに接続され、各 B ハーフバンクは残りの 16 ピンに接続されています。バンクは、物理ダイの対向するクワドラントに配置され、各クワドラントには専用の行および列回路が備えられています。各ハーフバンクは、行および列コマンドに対して、並行して動作します。

行コマンドは、指定されたバンクの各ハーフバンクから 1 つの行を選択することで、その行を検出およびラッチします。物理的なタイミングの制約により、別のバンクの行にアクセスできるまでに、遅延(行サイクル間隔 tRR)が発生します。 列コマンドも同様に制約されます(列サイクル間隔 tCC)。ただし、一般的に行のタイミング間隔は列のタイミング間隔の 2 倍であるため、1 つの行をアクティブにする際に生じるタイムロスの間に、2 つの列コマンドを発行することができます。

1 処理につき送信されるデータ量を表す列プリフェッチ長は、それぞれの列および行のタイミング遅延、そしてビット転送レートにより決定されます。

ここで、「プリフェッチ = タイミング遅延/ビット転送レート」となります。

主流の DRAM コアは一般的に最大 200MHz で動作しますが、 業界標準の高性能 DRAM コアは最大 400MHz で動作することができます。現代の業界標準 DRAM 技術を利用しても、生産収率を犠牲にせずに、またはコスト増なしに 400MHz を超えるコア周波数を実現するのは困難になります。各ハーフバンクが同じ行または列処理の下、動作するように DRAM コアが構成されているため、高性能 DRAM コアが 3200MHz を超える外部データレートをサポートできるようにするには、16ビットの列プリフェッチが必要となります。

なお、

列の粒度 = (列プリフェッチ) x (ハーフバンクごとのデータピン数) x (アクセスごとのハーフバンク数)

または、

ハーフバンクにつき 16データピンを備える 32ビット幅の DRAM の場合:

アクセスごとの列の粒度 = 16 x 16 x 2 = 512ビットまたは 64バイト となります。

さらに、行タイミング間隔においてピークバンド幅を維持するためには、最低 2 つの列が処理を行う必要があります。 これは、1 つの行アドレスストローブにつき、2 つの列アドレスストローブ(RASごとに 2 つの CAS)と一般的に言います。これにより、行の最小粒度は 128 バイトとなります。この大きいアクセス粒度は、3D グラフィックスなどのアプリケーションにおいて、非効率なデータおよび電力活用を意味します。

マイクロスレッディングによる効率性の向上

上記の例と同じコアリソースを利用した場合、マイクロスレッド化した DRAM コアには 16 のバンクが備えられています。マイクロスレッド化された DRAM の各バンクは、一般的な DRAM コアのハーフバンクと同等になります。 偶数バンクは A データピンに接続され、奇数バンクは B データピンに接続(それぞれ 16 ピンずつ)されます。一般的なコアと違い、4 バンクで構成される各クワドラントは、独立した行および列回路を使用することで単独で動作します。また、複数のメモリバンクへの同時アクセスをインターリーブすることで、直前のアクセスと同様に、コアの同じ物理側の下位クワドラントへの同時アクセスを可能にします。

マイクロスレッディングは、DRAM コアへの 4 つの独立した同時アクセスを可能にします。特定のバンクまたはバンククワドラントで他の行にアクセスするまでに、一般的なコアと同様に、一定期間が過ぎないとアクセスできませんが、他のクワドラントの残りの 3 つのバンクはこの期間中、いつでもアクセスすることができます。アクティブにされた行で列にアクセスするには、列タイミング間隔が経過しないと次の列にアクセスできませんが、他のクワドラントの列には並行してアクセスできます。クワドラントの独立性およびインターリーブにより、行タイミング間隔において、4 つの行(各クワドラントのバンクに 1 つずつ)と 8 つの列(行につき 2 つ)にアクセスすることができます。一般的な DRAM 方式では、1 つの行と 2 つの列にしかアクセスできません。

一般的な DRAM コアとタイミングは類似していますが、列タイミング間隔において、各列は最初の半分の時間にのみ、データを送信します。インターリーブされた列は、間隔において残された半分の時間にデータを送信します。マイクロスレッディングは、高い歩留まりおよびコスト効率の高いコア周波数を維持しながら、転送データの最小粒度を小さくします。4 つの異なるバンクの列アクセスをインターリーブすることで、マイクロスレッド化された DRAM コア(特定の列プリフェッチ長およびコア周波数の)は、従来の DRAM コアと比べて 2 倍以上のデータレートをサポートできます。その反面、列の動作をマイクロスレッド化することで、従来の DRAM コアと比べて列サイクル時間(tCC)を最大 1/2 に短縮しながらも、DRAM コアがコスト効率よく特定のデータ転送速度および粒度を維持できるようにします。

マイクロスレッディングにより、列の粒度は、

列のプリフェッチ/2 x 16 ピン = 16/2 x 16 = 128ビットまたは 16バイト(以前の 1/4)になります。

行の粒度は 32バイト(以前の 1/4)となります。マイクロスレッディングにより粒度が細かくなることで、多くのアプリケーションに性能アップをもたらします。たとえば、マイクロスレッド化された列のアクセス粒度が 8 バイトのグラフィックアプリケーションにおいて、計算および電力効率が 29% から 67% に上昇しています。

概要:商業的な困難およびマイクロスレッディングの性能上の利点

  • DRAM コア速度がインターフェイスバンド幅の変化について行くために、今まではプリフェッチ長を拡大することで対応していました。このため、DRAM コアは非効率的に必要なデータを転送することになります。
  • マイクロスレッディングは、同じ DRAM コアを用いた場合でも、転送効率の向上、アクセス粒度の縮小を実現します。
  • マイクロスレッディングは、消費電力を低減しながらも、高速データバンド幅を維持します。
  • マイクロスレッディングは、従来の方式と比べて、DRAM コアからのデータレートを倍増します。
  • マイクロスレッディングは、将来のデータバンド幅の増加およびより高いコアプリフェッチ比率に対して、スケーラブルなパスを提供します。