検索
特集

DDRコントローラの選択術重要な指標は「データ転送効率」(3/3 ページ)

システムの最適化を図る上では、適切なDDR SDRAMコントローラを選択することが極めて重要である。しかし、一般的な検討においては、同コントローラの1つの重要な指標に対して目が向けられていないケースがよくある。その指標とは「データ転送効率」である。本稿では、「データ転送効率とは何なのか」、「それをどのように活用すればよいのか」ということについて、2つのケーススタディを交えながら詳細に説明する。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

システム設計の具体例

 多くのシステムでは、設計者はメモリーサブシステムのデータ転送効率を高めることで、低コスト化、低消費電力化、パフォーマンスの向上を図る。つまり、データ転送効率は貴重な“武器”であり、設計において最も良い形でそのメリットを活用することが重要である。

 以下では、2つの具体的な例を基に、典型的な効率分析の手順と、それに伴うトレードオフ要因の調整方法を俯瞰してみる。2つの具体的な例とは、リアルタイムビデオシステムと、組み込み機器におけるネットワーク処理である。これらを通して、メモリーサブシステムのデータ転送効率による評価をどのように活用すればよいのかをケーススタディの形で説明する。具体的には、システムコストの削減、消費電力の削減、高いシステム性能の実現、製品化までの時間の短縮などを達成するために、どのようにしてトレードオフ要因を解消していけばよいのかを明らかにしたい。

Case Study 1

リアルタイムビデオシステム

 ビデオストリームを扱うリアルタイムビデオシステムでは、時間が重視される。そのため、メモリーサブシステムでも、目立つ遅延時間が発生しないようにしてデータを処理しなければならない。例えば、カメラ機器で撮影した映像は、同機器内でデジタル化され、高速リンクによりビデオストリームとして画像処理プロセッサに送られる。画像処理プロセッサは、それを各ビデオフレームに対応するデータパケットに分割しながらメモリーに保存する。こうした一連の処理には、フィルタリングや何らかの拡張アルゴリズムが盛り込まれるかもしれない。

 ここで例にとるシステムでは、画像処理メモリーに対する帯域幅によって、16のビデオストリームをリアルタイムでサポートしなければならないものとする。ビデオストリームは1000×1000ピクセルで構成され、各フレーム(3Mバイト)のカラーデータは24ビットで、1秒ごとに24フレームが必要になるとしよう。この場合、各ストリームが必要とする帯域幅は72メガバイト/秒(3Mバイト×24)となる。従って、16のストリームをサポートするには、1152メガバイト/秒が必要となる。

 また、そのほかのシステム要件として、何らかの要因による中断時に画像データが紛失してしまうことを防ぐために、少なくとも0.3秒分(345Mバイト)の画像データを保持できなければならないものとする。とはいえ、これについては、標準的な512Mバイトのメモリーモジュールで十分に対応可能である。

 ヘッダーテーブル、QoS(quality of service)データ、タイムスタンプなどにかかわる処理はその限りではないが、このシステムでは、多くのデータがシーケンシャルにアクセスされる。そのため、この例では20%のランダムアクセス、80%のシーケンシャルアクセスというトラフィックパターンで評価を行うものとする。このパターンによって得られるデータ転送効率は、基本的なコントローラの場合で約30%、CAMコントローラの場合で60〜90%になる。これらのデータ転送効率がどのようにメモリーシステムの設計に影響するのか考えてみる。

 標準的な64ビット幅/512Mバイトのメモリーモジュールを使う場合、表2に示すような複数の選択肢がある。システム帯域幅の要件である1152メガバイト/秒を満たすには、メモリーモジュールの最大転送速度とデータ転送効率について考慮する必要がある。例えば、DDR2-400モジュールの最大転送速度は3200メガバイト/秒である。基本的なコントローラで80%のシーケンシャルアクセス、すなわちデータ転送効率が30%となる場合であれば、DDR2-400モジュールで達成できる帯域幅は960メガバイト/秒となる。これはシステム要件である1152メガバイト/秒に満たない。従って、基本的なコントローラを用いる場合は、より高速なDDR2-533を使って、30%のデータ転送効率により1280メガバイト/秒を達成する必要がある。

表2 各種DDR2メモリーの仕様
表2 各種DDR2メモリーの仕様 注)64ビット幅/512Mバイトのメモリーモジュールの例を示した。

 これに対し、8エントリのCAMコントローラを利用することによって59%のデータ転送効率が達成されるなら、基本的なコントローラと比べて2倍の帯域幅が得られることになる。DDR2-400のメモリーモジュールを使用することで1888メガバイト/秒の帯域幅が実現できることになり(3200メガバイト/秒×59%)、これであればシステム要件である1152メガバイト/秒を十分に満たす。

 一般に、メモリーモジュールは、低速なものほどより安く、電力と放熱が少なくなる。また、システムのほかの部分も遅い速度で動作させることが可能であるかもしれない。データ転送効率の高い、CAMコントローラのような最適化機能を備えたコントローラを使用することにより、システム全体に大きなメリットがもたらされることが理解できるだろう。

Case Study 2

組み込み機器のネットワーク処理

 組み込み機器のネットワークアプリケーションにおいては、ネットワークプロセッサは、メモリーサブシステムにおける命令データだけではなく、パケットデータにもアクセスする必要がある。ここでは、ランダムアクセスとシーケンシャルアクセスが50%ずつ行われるとする。アプリケーションのアルゴリズムの大部分を占めるスキャッタギャザーアルゴリズムでは、ランダムアクセスが行われる場合が多く、その一方でパケットデータと命令データにはシーケンシャルアクセスが行われる傾向があるからだ。

 このアプリケーションでは複数のポートにかかわる処理が一度に処理されるので、1500メガバイト/秒の高い帯域幅が必要となる。基本的なコントローラで50%のランダムアクセス、50%のシーケンシャルアクセスが行われるとすると、データ転送効率は20%となり、最大帯域幅の要件は7500メガバイト/秒となる(7500メガバイト/秒の20%が1500メガバイト/秒)。表2を見ると、DDR2-1066であれば8500メガバイト/秒の最大帯域幅を実現できることがわかる。基本的なコントローラを利用するなら、帯域幅の要件を満たすためにこのモジュールを使う必要がある。

 一方、32エントリのCAMコントローラであれば、上記トラフィックパターンの条件で53%のデータ転送効率が得られる。この場合、メモリーモジュールとして3200メガバイト/秒の最大帯域幅を持つDDR2-400を使うことで、1696メガバイト/秒(3200メガバイト/秒×53%)を達成することが可能だ。基本的なコントローラが必要とする最もパフォーマンスの高いモジュールと、CAMコントローラのような最適化機能を持つものであれば利用できるモジュールの価格差は多大である。

 高価なメモリーモジュールを使わなければならないとすると、その製品全体のコストは高騰し、その製品は価格面で不利になるだろう。また、高価なメモリーモジュールを利用することに伴って発生する大きな消費電力、低い信頼性、納期面での問題も弊害となる。このシステム例では、最適化機能を備えたコントローラのほうが、コスト面でかなり優位になる。


 以上、本稿では、コントローラを選択する上で重要な指標となるデータ転送効率について説明した。その選択において、データ転送効率がいかに重要であるかがご理解いただけたであろう。データ転送効率を把握すれば、システムアーキテクチャにおけるさまざまなトレードオフ分析が行え、システムを最適化することができる。また、データ転送効率を基準にすることで、コストや性能、消費電力、サイズ、開発期間、信頼性などのトレードオフを解消することが容易になるのだ。

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る