(57)【要約】  本発明のメモリ制御回路は、アクセス数設定回路には、ＳＤＲＡＭの同一バンクにおける異なる行に対する活性化の最小間隔時間と動作速度とバンク数を入力し、バンク毎に書き込み又は読み出しを行う最適な回数を算出し、ＤＲＡＭアクセス制御回路にて映像信号をＳＤＲＡＭに書き込み又は読み出すためのコマンドシーケンスとアドレスを発生する。
2009125572.tif 000002
【特許請求の範囲】
【請求項１】
複数のバンクを有するＳＤＲＡＭに画像データの書き込み及び読み出しを行うメモリ制御回路であって、
前記ＳＤＲＡＭの同一バンクにおける異なる行に対する活性化の最小間隔時間と前記ＳＤＲＡＭの動作周波数と前記ＳＤＲＡＭのバンク数とを入力し、前記ＳＤＲＡＭの各バンクに対する連続して書き込み又は読み出しする回数であるバンクアクセス数を計算するアクセス数設定回路と、
前記アクセス数設定回路により計算された前記バンクアクセス数に基づいて、前記ＳＤＲＡＭの前記各バンクに対する書き込み又は読み出しするシーケンスを出力するＤＲＡＭアクセス制御回路と、
を備えるメモリ制御回路。
【請求項２】
前記ＤＲＡＭアクセス制御回路から出力される前記ＳＤＲＡＭの前記各バンクに対する書き込み又は読み出しする前記シーケンスは、前記各バンクに対する、
１回の活性化と
１回以上の連続した書き込み又は読み出しと
１回のプリチャージとで
終了する請求項１に記載のメモリ制御回路。
【請求項３】
前記ＤＲＡＭアクセス制御回路から出力される前記ＳＤＲＡＭの前記各バンクに対する書き込み又は読み出しする前記シーケンスは、前記各バンクに対する
１回の活性化と
１回のオートプリチャージ付きの書き込み又は読み出しとで
終了する請求項１に記載のメモリ制御回路。
【請求項４】
前記ＤＲＡＭアクセス制御回路から出力される前記ＳＤＲＡＭの前記各バンクに対する書き込み又は読み出しする前記シーケンスは、前記各バンクに対する
１回の活性化と
１回以上の書き込み又は読み出しと
１回のオートプリチャージ付きの書き込み又は読み出しとで
終了する請求項１に記載のメモリ制御回路。
【請求項５】
前記アクセス数設定回路は、
前記ＳＤＲＡＭのクロック周期と前記各バンクにアクセスするクロック回数から前記各バンクのアクセス時間を算出する算出回路と、
前記算出回路により算出されたアクセス時間と前記ＳＤＲＡＭのバンク数を乗算し、再度同じバンクにアクセスするまでの待機時間である同一バンクアクセス周期を算出する乗算回路と、
前記各バンクにおける活性に必要な最小間隔時間を記録する記録回路と、
前記乗算回路により算出した前記同一バンクアクセス周期と前記記録回路に記録した前記最小間隔時間とを比較する比較回路と、
前記比較回路の結果により、前記各バンクにアクセスするクロック回数を設定する設定回路と、
を備えた請求項１記載のメモリ制御回路。
【請求項６】
前記アクセス数設定回路は、前記同一バンクアクセス周期と前記最小間隔時間とを、実質的に一致するように設定する請求項５記載のメモリ制御回路。
【請求項７】
前記アクセス数設定回路は、前記同一バンクアクセス周期を前記最小間隔時間以上であるように設定する請求項５記載のメモリ制御回路。
【請求項８】
前記アクセス数設定回路は、前記同一バンクアクセス周期を前記最小間隔時間以上であるように設定する請求項６記載のメモリ制御回路。
【請求項９】
複数のバンクを有するＳＤＲＡＭに画像データの書き込み及び読み出しを行う制御方式であって、
前記ＳＤＲＡＭの同一バンクにおける異なる行に対する活性化の最小間隔時間と、前記ＳＤＲＡＭの動作周波数と、前記ＳＤＲＡＭのバンク数とを入力とし、前記ＳＤＲＡＭの各バンクに対する連続して書き込み又は読み出しする回数であるバンクアクセス数を計算するアクセス数設定ステップと、
前記アクセス数設定ステップにより計算された前記バンクアクセス数に基づいて、前記ＳＤＲＡＭの前記各バンクに対する書き込み又は読み出しするシーケンスを出力するＤＲＡＭアクセス制御ステップと、
を備える、メモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に対する画像データの書き込み及び読み出しを行う方法に関する。
【背景技術】
【０００２】
近年、画像処理に用いるメモリとしてＳＤＲＡＭの利用が急速に広まっている。ＳＤＲＡＭの特徴として、高速な入出力インターフェースを持ち、大容量のメモリを比較的安価に入手可能なことが挙げられる。また、従来のＳＤＲ（シングル  データ  レート）に対して、最近になってＤＤＲ（ダブル  データ  レート）に対応したＳＤＲＡＭが多く使用されるようになってきており、さらなる入出力インターフェースの高速化が進んでいる。【０００３】
しかし、ＳＤＲＡＭの入出力インターフェースの高速化に比べて、ＤＲＡＭコア部の動作速度は、ＳＤＲのＳＤＲＡＭの時代から、基本的には高速化は図られていない。すなわち、ＳＤＲＡＭは、入出力インターフェースと接続されるデータ転送バス幅を大きくすることで、入出力インターフェースの高速化に対応している。例えば、ＤＤＲのＳＤＲＡＭで、入出力インターフェースが８００Ｍｂｐｓの伝送レートで、クロック周波数は４００ＭＨｚで動作するＳＤＲＡＭにおいてでも、同一バンクの連続した活性化（以下、「アクティベート」と呼ぶ）の最小間隔時間（以下、「ｔＲＣ」とも略記する）は５０ｎｓ程度である。したがって、ＳＤＲＡＭの同一バンクへアクセスする時間的制限が、入出力インターフェースの時間的制限の４０倍程度の大きさになって。その結果、この時間的制限が、ＳＤＲＡＭへ連続アクセスする際の大きな制約になっている。【０００４】
次に、ＳＤＲＡＭへ連続アクセスする方法について、従来の技術を説明する。特許文献１による従来の技術の第１の方法は、ＤＲＡＭの例である。すなわち、ＤＲＡＭの各バンクに対して、書き込み又は読み出し動作であるアクセスをしている間に、他のバンクのプリチャージおよびリフレッシュを行うものである。従来の技術の第１の方法では、バンクインターリーブを行うことによって、ＤＲＡＭに対する連続アクセスを実現している。しかしながら、ＳＤＲＡＭの高速な入出力インターフェースに対して、ｔＲＣを適応的に隠蔽化する方法にはなっていない。【０００５】
特許文献２による従来の技術の第２の方法は、各バンクの列のデータ全てにアクセスしたタイミングで、別のバンクに連続アクセスが可能なようにＳＤＲＡＭ自体で、バンクの切り替えを適切に行うものである。従来の技術の第２の方法では、ＳＤＲＡＭへ連続アクセスは可能となる。しかしながら、ＳＤＲＡＭ自体が汎用のＳＤＲＡＭとは異なるものとなる。したがって、第２の方法によるＳＤＲＡＭでは、汎用性に問題がある。したがって、ＳＤＲＡＭのコストが高くなる等の問題が生じる。また、映像データの書き込み又は読み出しを行う場合には、映像データを特定のデータ量のパケットに分けて、ＳＤＲＡＭの様々なアドレスに特定の間隔でのアクセスが発生する。しかしながら、ＳＤＲＡＭのランダムアクセスに対するｔＲＣの制限が隠蔽されていないため、アクセスするアドレスによっては連続アクセスできない場合が発生する。【０００６】
一般に映像信号の遅延を行う目的で、ＳＤＲＡＭに対して映像信号の書き込み又は読み出しを行う場合には、複数の映像信号の書き込み又は読み出しを行う必要がある。したがって、一般にＳＤＲＡＭ上の書き込み又は読み出しを行うアドレスは、ランダムにかつ頻繁に変化する。【０００７】
上記したように、従来の技術では、ＳＤＲＡＭは、映像信号の書き込み又は読み出しを行う際に、ランダムなアドレスに対して発行される連続したアクセスに対応できない。したがって、ＳＤＲＡＭのデータ転送帯域を有効に利用できない問題がある。一方、複雑なアドレス管理と映像データの書き込み又は読み出しの順序を最適化することにより、データ転送帯域を最大限使用する方法も考えられている。しかしながら、この方法では、ＳＤＲＡＭに対する制御コマンドのシーケンスが複雑になる。その結果、ＳＤＲＡＭに対する制御回路にとって大きな負担となっている。また、制御回路及び干渉バッファに用いるメモリの規模が大きくなる等の問題がある。
【特許文献１】特開平４−１４９８９２号公報
【特許文献２】特開２０００−１４８５８０号公報
【発明の開示】
【０００８】
本発明のメモリ制御回路は、複数のバンクを有するＳＤＲＡＭに画像データの書き込み及び読み出しを行うメモリ制御回路であって、アクセス数設定回路と、ＤＲＡＭアクセス制御回路とを備える。
【０００９】
アクセス数設定回路は、ＳＤＲＡＭの同一バンクにおける異なる行に対する活性化の最小間隔時間とＳＤＲＡＭの動作周波数とＳＤＲＡＭのバンク数とを入力し、ＳＤＲＡＭの各バンクに対する連続して書き込み又は読み出しする回数であるバンクアクセス数を計算する。ＤＲＡＭアクセス制御回路は、アクセス数設定回路により計算されたバンクアクセス数に基づいて、ＳＤＲＡＭの各バンクに対する書き込み又は読み出しするシーケンスを出力する。
【００１０】
このような構成により、ＳＤＲＡＭの同一バンクにおける異なる行に対する活性化の最小間隔時間とＳＤＲＡＭの動作周波数とＳＤＲＡＭのバンク数とからＳＤＲＡＭのバンク毎に発生する書き込み又は読み出しを行う回数を最適化することができ、ＳＤＲＡＭの入出力インターフェースに比べて内部のＤＲＡＭコア部の低速である問題を隠蔽することができ、ＳＤＲＡＭに対して映像信号の書き込み又は読み出しを連続して行うことが可能となる。したがって、ＳＤＲＡＭの持つデータ転送帯域を有効活用することが可能となる。
【００１１】
また、本発明のメモリ制御方法は、複数のバンクを有するＳＤＲＡＭに画像データの書き込み及び読み出しを行う制御方式であって、アクセス数設定ステップと、ＤＲＡＭアクセス制御ステップとを備える。
【００１２】
アクセス数設定ステップは、ＳＤＲＡＭの同一バンクにおける異なる行に対する活性化の最小間隔時間と、ＳＤＲＡＭの動作周波数と、ＳＤＲＡＭのバンクス数とを入力とし、ＳＤＲＡＭの各バンクに対する連続して書き込み又は読み出しする回数であるバンクアクセス数を計算する。ＤＲＡＭアクセス制御ステップは、アクセス数設定ステップにより計算されたバンクアクセス数に基づいて、ＳＤＲＡＭの各バンクに対する書き込み又は読み出しするシーケンスを出力する。
【図面の簡単な説明】
【００１３】
【図１】図１は、本実施の形態におけるメモリ制御回路の構成を示すブロック図である。
【図２】図２は、本実施の形態におけるメモリ制御方法を説明するフローチャートである。
【図３】図３は、シングルデータレートＳＤＲＡＭに対するデータ書き込みのタイミングチャートである。
【図４】図４は、ＤＤＲ１−ＳＤＲＡＭ規格のダブルデータレートＳＤＲＡＭに対するデータ書き込みのタイミングチャートである。
【図５】図５は、ＤＤＲ２−ＳＤＲＡＭ規格のダブルデータレートＳＤＲＡＭに対するデータ書き込みのタイミングチャートである。
【図６】図６は、本実施の形態におけるアクセス数設定回路の構成を示すブロック図である。
【図７Ａ】図７Ａは、ＳＤＲＡＭに対するデータ書き込みのタイミングチャートである。
【図７Ｂ】図７Ｂは、ＳＤＲＡＭに対するデータ書き込みのタイミングチャートである。
【図８】図８は、ＳＤＲＡＭの物理アドレスに対する論理アドレスのマッピングの説明図である。
【図９】図９は、ＳＤＲＡＭの物理アドレスに対する論理アドレスのマッピングの説明図である。
【図１０】図１０は、ＳＤＲＡＭに対する書き込み時のコマンドシーケンスのタイミングチャートの一例である。
【図１１】図１１は、ＳＤＲＡＭに対する書き込み時のコマンドシーケンスのタイミングチャートの一例である。
【図１２】図１２は、ＳＤＲＡＭに対する書き込み時のコマンドシーケンスのタイミングチャートの一例である。
【図１３】図１３は、ＳＤＲＡＭに対する書き込み時のコマンドシーケンスのタイミングチャートの一例である。
【符号の説明】
【００１４】
１    アクセス数設定回路
２    ＤＲＡＭアクセス制御回路
３    データ組み立て回路
４    ＤＲＡＭ書き込み制御回路
５    ＤＲＡＭ読み出し制御回路
６    ＤＲＡＭデータバス制御回路
６０２    メモリ
６０４    算出回路
６０６    乗算回路
６０８    比較回路
６１０    設定回路
６１２    クロック数
６１４    アクセス時間
６１８    同一バンクアクセス周期
６２０    活性化の最小間隔時間
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態について、図面を用いて説明する。【００１６】
（実施の形態）
以下、本発明に関わるメモリ制御回路の一実施形態について説明する。図１は、本実施の形態におけるメモリ制御回路の構成を示すブロック図である。本実施の形態におけるメモリ制御回路は、複数のバンクを有するＳＤＲＡＭに画像データの書き込み及び読み出しを行う。メモリ制御回路は、アクセス数設定回路１、ＤＲＡＭアクセス制御回路２、データ組み立て回路３、ＤＲＡＭ書き込み制御回路４、ＤＲＡＭ読み出し制御回路５、ＤＲＡＭデータバス制御回路６を備えている。【００１７】
アクセス数設定回路１は、ＳＤＲＡＭの同一バンクにおける異なる行に対する活性化の最小間隔時間とＳＤＲＡＭの動作周波数とＳＤＲＡＭのバンク数を入力し、ＳＤＲＡＭの各バンクに対する連続して書き込み又は読み出しする回数であるバンクアクセス数を計算する。そして、アクセス数設定回路１は、ＳＤＲＡＭへ書き込み及び読み出しを行う際の最小データ量に相当するデータサイズＤＳを出力する。【００１８】
映像信号をＳＤＲＡＭに書き込む際には、複数の映像信号１〜Ｎが、データ組み立て回路３に入力される。そして、データ組み立て回路３は、アクセス数設定回路１から出力されるデータサイズＤＳに基づいて、データサイズＤＳのデータ量のデータ系列Ｗｄ１〜ＷｄＮを、映像信号１〜Ｎ毎に組み立てる。データ組み立て回路３は、データ系列Ｗｄ１〜ＷｄＮとともに、ＳＤＲＡＭの書き込み論理アドレスＷａｄ１〜ＷａｄＮを、映像信号１〜Ｎ毎に出力する。【００１９】
ＤＲＡＭ書き込み制御回路４は、データ組み立て回路３から出力される映像データ毎の書き込み論理アドレスＷａｄ１〜ＷａｄＮとデータ系列Ｗｄ１〜ＷｄＮとを入力する。そして、ＤＲＡＭ書き込み制御回路４は、調停動作後に、ＳＤＲＡＭへの調停書き込みデータＷＤと調停書き込みアドレスＷＲとを出力する。ＤＲＡＭアクセス制御回路２は、調停書き込みアドレスＷＲから、ＳＤＲＡＭへの書き込み動作を行うためのコマンドシーケンスＣＭＤとアドレスＡＤを出力する。また、ＤＲＡＭデータパス制御回路６は、調停書き込みデータＷＤから双方向バスを通してＳＤＲＡＭへの書き込みデータを出力し、映像信号１〜ＮをＳＤＲＡＭの所定のアドレスへ書き込みを行う。【００２０】
映像信号１〜ＮをＳＤＲＡＭから読み出す際には、複数の映像信号の読み出し要求１〜Ｎが、独立にデータ組み立て回路３に入力される。そして、データ組み立て回路３は、アクセス数設定回路１から出力されるデータサイズＤＳに基づいて、データサイズＤＳのデータ量毎にＳＤＲＡＭの読み出しを行うための読み出し論理アドレスＲａｄ１〜ＲａｄＮを発生する。【００２１】
ＤＲＡＭ読み出し制御回路５は、データ組み立て回路３から出力される映像データ１〜Ｎ毎の読み出し論理アドレスＲａｄ１〜ＲａｄＮを入力する。そして、ＤＲＡＭ読み出し制御回路５は、調停動作後に、調停読み出しアドレスＲＲをＤＲＡＭアクセス制御回路２へ出力する。ＤＲＡＭアクセス制御回路２は、調停読み出しアドレスＲＲから、ＳＤＲＡＭへの読み出し動作を行うためのコマンドシーケンスＣＭＤとアドレスＡＤを出力する。ＳＤＲＡＭからの読み出し動作を行うコマンドシーケンスＣＭＤに対して、一定のレイテンシー後にＳＤＲＡＭから読み出しデータが双方向バスを通してＤＲＡＭデータパス制御回路６に入力される。ＤＲＡＭデータパス制御回路５は、入力される読み出しデータから、ＳＤＲＡＭ読み出しデータＲＤを、ＤＲＡＭ読み出し制御回路５へ出力する。ＤＲＡＭ読み出し制御回路５は、データ組み立て回路３に対して、ＳＤＲＡＭ読み出しデータＲＤを該当する読み出し要求を出力した回路へ調停読み出しデータＲｄ１〜ＲｄＮを出力する。このようにして、メモリ制御回路は、ＳＤＲＡＭから所定のアドレスに格納された映像信号１〜Ｎを読み出すことになる。上記したように、ＤＲＡＭアクセス制御回路２は、アクセス数設定回路１により計算されたバンクアクセス数に基づいて、ＳＤＲＡＭの各バンクに対する書き込み又は読み出しするシーケンスを出力する。【００２２】
図２は、本実施の形態におけるメモリ制御方法を説明するフローチャートである。本実施の形態におけるメモリ制御方法は、複数のバンクを有するＳＤＲＡＭに画像データの書き込み及び読み出しを行う制御方式であって、アクセス数設定ステップと、ＤＲＡＭアクセス制御ステップと、を備える。【００２３】
アクセス数設定ステップは、ＳＤＲＡＭの同一バンクにおける異なる行に対する活性化の最小間隔時間と、ＳＤＲＡＭの動作周波数と、ＳＤＲＡＭのバンクス数とを入力し、ＳＤＲＡＭの各バンクに対する連続して書き込み又は読み出しする回数であるバンクアクセス数を計算する（ステップ２１）。ＤＲＡＭアクセス制御ステップは、アクセス数設定ステップにより計算されたバンクアクセス数に基づいて、ＳＤＲＡＭの各バンクに対する書き込み又は読み出しするシーケンスを出力する（ステップ２２）。【００２４】
すなわち、上記したように、アクセス数設定回路１は、ＳＤＲＡＭへ書き込み及び読み出しを行う際の最小データ量に相当するデータサイズＤＳを出力する。そして、ＤＲＡＭアクセス制御回路２は、データサイズＤＳに基づいて、ＲＡＭアクセス制御回路２と、データ組み立て回路３と、ＤＲＡＭ書き込み制御回路４とにより、複数の映像信号１〜ＮをＳＤＲＡＭに書き込む。また、データサイズＤＳに基づいて、データ組み立て回路３と、ＤＲＡＭ読み出し制御回路５と、ＤＲＡＭデータパス制御回路６とにより、映像信号１〜ＮがＳＤＲＡＭから読み出される。【００２５】
以下、メモリ制御回路のさらに詳細な動作に関して説明を行う。アクセス数設定回路１は、ＳＤＲＡＭの同一バンクにおける異なる行に対する活性化の最小間隔時間とＳＤＲＡＭの動作周波数とＳＤＲＡＭのバンク数から、全てのバンクに対して書き込み又は読み出しを連続して行うことができるように、各バンクでの書き込み又は読み出し回数を設定する。すなわち、アクセス数設定回路１は、全てのバンクに対して書き込み又は読み出し動作を連続して行った結果、同一バンクに再びアクセスする間隔（以下、「同一バンクアクセス周期」と呼ぶ）をｔＲＣ以上であるように（以下、「連続アクセス条件」と呼ぶ）、又は同一バンクアクセス周期とｔＲＣとを実質的に一致するように、各バンクでの書き込み又は読み出し回数を設定する。ｔＲＣは、ＳＤＲＡＭの種類に関わらずほぼ一定の値となっている。【００２６】
次に、以下に示すように、一般のシングルデータレートＳＤＲＡＭに対する各バンクでの書き込み又は読み出し回数の算出方法の例を示す。図３は、シングルデータレートＳＤＲＡＭに対するデータ書き込みのタイミングチャートである。なお、一例として、メモリ制御回路の各設定は、クロック周波数：１６６ＭＨｚ（クロック周期を表すｔＣＫは、６ｎｓ）、入出力インターフェースの動作周波数：１６６ＭＨｚ（周期６ｎｓ）、バンク数：４バンク、ｔＲＣ：６０ｎｓ、バーストレングス：８データ／バーストであるとする。図３に示すように、上段の波形は、ＳＤＲＡＭに入力されるクロック波形を示す。中段の波形は、０から３で示す４つのバンクを順次、アクセスしていることを示している。下段の波形は、ＳＤＲＡＭに入出力されるデータのタイミングを示している。【００２７】
バーストレングスが８となるため、シングルデータレートＳＤＲＡＭに対する１回の書き込み又は読み出し動作は８データが最小単位となる。したがって、シングルデータレートＳＤＲＡＭは、１バーストの処理に８クロックの期間が必要となる。バンク数が４であるため、各バンクで１バーストの書き込み又は読み出し動作を行うことによって、４バンク全ての読み出し動作を行うには８クロックの４バンク分となり３２クロックの期間が必要となる。一方、ｔＲＣは、６０ｎｓなので、クロック数に換算すると１０クロックとなり、各バンクで１バースト以上の書き込み又は読み出し動作を行うことで連続アクセス条件を満たすことができる。なお、バーストレングスが４の場合においても、各バンクに対して１バーストのアクセスで同一バンクアクセス周期は１／２の１６クロックとなるが、連続アクセス条件を満たすことになる。【００２８】
次に、ＤＤＲ１−ＳＤＲＡＭ規格のダブルデータレートＳＤＲＡＭに対する各バンクでの書き込み又は読み出し回数の算出方法の例を示す。図４は、ＤＤＲ１−ＳＤＲＡＭ規格のダブルデータレートＳＤＲＡＭに対するデータ書き込みのタイミングチャートである。なお、一例として、メモリ制御回路の各設定は、クロック周波数：２００ＭＨｚ（クロック周期を表すｔＣＫは、５ｎｓ）、入出力インターフェースの動作周波数：４００ＭＨｚ（周期２．５ｎｓ）、バンク数：４バンク、ｔＲＣ：６０ｎｓ、バーストレングス：８データ／バーストであるとする。なお、上段、中段、下段の波形の意味は、図３と同様であるので説明を省略する。【００２９】
バーストレングスが８となるため、ＳＤＲＡＭに対する１回の書き込み又は読み出し動作は８データが最小単位となる。したがって、ダブルデータレートＳＤＲＡＭは、１バーストの処理に４クロックの期間が必要となる。バンク数が４であるため、各バンクで１バーストの書き込み又は読み出し動作を行うことによって、４バンク全ての読み出し動作を行うには４クロックの４バンク分となり１６クロックの期間が必要となる。一方、ｔＲＣは、６０ｎｓなので、クロック数に換算すると１２クロックとなり、各バンクで１バースト以上の書き込み又は読み出し動作を行うことで連続アクセス条件を満たすことができる。なお、バーストレングスが４の場合には、各バンクに対して１バーストのアクセスでは同一バンクアクセス周期は１／２の８クロックとなり、連続アクセス条件を満たすことができないが、各バンクに対して２バースト以上のアクセスを行うことで連続アクセス条件を満たすことができる。【００３０】
次に、ＤＤＲ２−ＳＤＲＡＭ規格のダブルデータレートＳＤＲＡＭに対する各バンクでの書き込み又は読み出し回数の算出方法の例を示す。図５は、ＤＤＲ２−ＳＤＲＡＭ規格のダブルデータレートＳＤＲＡＭに対するデータ書き込みのタイミングチャートである。なお、一例として、メモリ制御回路の各設定は、クロック周波数：４００ＭＨｚ（クロック周期を表すｔＣＫは、２．５ｎｓ）、入出力インターフェースの動作周波数：８００ＭＨｚ（周期１．２５ｎｓ）、バンク数：４バンク、ｔＲＣ：６０ｎｓ、バーストレングス：８データ／バーストであるとする。なお、上段、中段、下段の波形の意味は、図３、図４と同様であるので説明を省略する。【００３１】
上記の例と同様に、各バンクで１バーストの書き込み又は読み出し動作を行う場合には、４バンク全ての読み出し動作を行うには４クロックの４バンク分となり１６クロックの期間が必要となる。一方、ｔＲＣは、６０ｎｓなので、クロック数に換算すると２４クロックとなり、各バンクで１バーストの書き込み又は読み出し動作を行うことでは連続アクセス条件を満たすことができない。【００３２】
そこで、本実施の形態では、各バンクに対するアクセス回数を設定することにより、連続アクセス条件を満たすことが可能になるように設定する。例えば、各バンクに対して２バースト以上のアクセスを行うことで、連続アクセス条件を満たすことができる。【００３３】
以上の例からも分かるように、ＳＤＲＡＭのバンク数をＮｂ、ＳＤＲＡＭのクロック周期をｔＣＫとした場合に、連続アクセス条件を満たすための各バンクに対する書き込み又は読み出し動作を行う際に必要となる最低処理時間Ｐｂ（ｍｉｎ）は、以下の式で計算できる。【００３４】
Ｐｂ（ｍｉｎ）＝ＲＵ（ＲＵ（ｔＲＣ／ＴＣＫ）／Ｎｂ）
ここで、ＲＵ（）は、（）内の数値、あるいは数式に対して、小数点切り上げ処理を施すことを表す。【００３５】
一方、ＳＤＲＡＭの各バンクに対して書き込み又は読み出し動作は、バーストレングス単位でしか行うことができない。したがって、Ｐｂ（ｍｉｎ）をバーストレングス単位で切り上げ処理した結果が、連続アクセス条件を満たす各バンクに対する実際に動作可能な最低処理時間となる。なお、図３、図４では、バンクを昇順に発生しているが、固定順序で４バーストの期間で各バンクに対して一度のアクセスを行うのではあれば、バンクのアクセス順序は任意に設定しても構わない。また、図５においては、２バースト単位でバンクを昇順で発生しているが、この場合も、８バーストの期間で、各バンクに対して連続して２バースト連続アクセスが一度発生する条件さえ満たせば、バンクのアクセス順序は任意に設定しても構わない。【００３６】
アクセス数設定回路１から出力されるデータサイズＤＳは、ＳＤＲＡＭのデータバス幅に依存し、全てのバンクに対して連続した書き込み及び読み出しが一巡する期間（以降、「連続データアクセス周期」と呼ぶ）にＳＤＲＡＭとの間で転送するデータの総量を示す値となる。つまり、シングルデータレートのＳＤＲＡＭの場合には、連続データアクセス周期にＳＤＲＡＭとの間でのデータ転送量（以降、「連続アクセスデータ量」と呼ぶ）は、データバス幅と連続データアクセス周期のクロック数の積となる。ダブルデータレートのＳＤＲＡＭの場合には、連続アクセスデータ量は、ＳＤＲＡＭのデータバス幅と連続データアクセス周期のクロック数の積の２倍のデータ量となる。【００３７】
ここで、アクセス数設定回路１の具体的な構成の一例について、図６を参照しながら説明する。図６は、本実施の形態におけるアクセス数設定回路１の構成を示すブロック図である。図６に示すように、アクセス数設定回路１は、メモリ６０２と、算出回路６０４と、乗算回路６０６と、比較回路６０８と、設定回路６１０とにより構成されている。メモリ６０２は、上述したＳＤＲＡＭのバンク数、ＳＤＲＡＭのクロック周期、バーストレングスのパラメータ（バーストレングス値の転送データ数）、１バーストレングスのデータ処理に必要なクロック数、ＳＤＲＡＭの同一バンクにおける異なる行に対する等を記録している。メモリ６０２から出力される上記したこれらの所定データのうち活性化の最小間隔時間６２０は、比較回路６０８に入力される。すなわち、各バンクにおける活性に必要な最小間隔時間６２０を記録する記録回路は、メモリ６０２に含まれている。【００３８】
算出回路６０４は、メモリ６０２よりＳＤＲＡＭのクロック周期及び１バーストレングスのデータ処理に必要なクロック数６１２を読み出して、クロック周期にクロック数を乗算することにより各バンクに対するアクセス時間６１４を算出する。乗算回路６０６は、アクセス時間６１４とメモリ６０２から読み出したＳＤＲＡＭのバンク数６１６とを乗算した連続データアクセス周期（同一バンクアクセス周期）６１８を算出する。比較回路６０８は、乗算回路６０６により算出した連続データアクセス周期（同一バンクアクセス周期）６１８と、メモリ６０２から読み出した活性化の最小間隔時間６２０とを比較する。設定回路６１０は、比較回路６０８の結果に基づいて各バンクにアクセスするアクセス回数を設定する。【００３９】
この構成に基づいて、アクセス数設定回路１の具体的な動作の一例について、図７Ａ、図７Ｂを参照しながら説明する。なお、これらの図に用いた値は、説明の簡単化のために、上述した例で使用した値と同じ値を使用している。つまり、クロック周波数：４００ＭＨｚ（クロック周期を表すｔＣＫは、２．５ｎｓ）、入出力インターフェースの動作周波数：８００ＭＨｚ（周期１．２５ｎｓ）、バンク数：４バンク、ｔＲＣ：６０ｎｓ、バーストレングス：、８データ／バーストのＳＤＲＡＭの動作パラメータを用いて説明する。なお、上段、中段、下段の波形の意味は、図３、図４、図５と同様であるので説明を省略する。【００４０】
バーストレングスが８となるため、ＳＤＲＡＭに対する１回の書き込み又は読み出し動作は８データが最小単位となり、ダブルデータレートで動作するため、１バーストの処理に４クロックの期間が必要となる。【００４１】
まず、最初にメモリ６０２から、ＳＤＲＡＭのクロック周期（この例においては２．５ｎｓ）及びバーストレングスのパラメータ（この例においては８データ／バースト）に基づいて算出された１バーストレングスのデータ処理に必要なクロック数６１２（この例においては４クロック）を読み出して、クロック周期にクロック数を乗算することにより各バンクに対するアクセス時間（この例の場合には２．５×４＝１０ｎｓ）６１４を算出回路６０４により算出する。【００４２】
次に、上述した算出回路６０４により算出したアクセス時間（１０ｎｓ）６１４とメモリ６０２から読み出したＳＤＲＡＭのバンク数６１６（この例においては４バンク）を乗算した連続データアクセス周期（同一バンクアクセス周期）６１８（この例においては、１０ｎｓ×４＝４０ｎｓ）を乗算回路６０６により算出する。【００４３】
次に、上述した乗算回路６０６により算出した同一バンクアクセス周期６１８（４０ｎｓ）とメモリから読み出した活性化の最小間隔時間６２０（この例においては、６０ｎｓ）とを比較回路６０８により比較する。この場合、図７Ａに示すように、活性化の最小間隔時間６２０よりも同一バンクアクセス周期６１８（４０ｎｓ）の値が小さいため、その差分である２０ｎｓ分だけこのメモリ制御回路はメモリにアクセスすることができない。そこで、本発明においては、図７Ｂに示すように、この場合には設定回路６１０により、メモリに格納されたクロック数６１２（この例においては８クロック）を変更する。この後は、クロック数６１２を変更して、上述した処理を再度繰り返す。【００４４】
具体的には、メモリ６０２から、ＳＤＲＡＭのクロック周期（この例においては２．５ｎｓ）及び設定回路６１０により設定されたクロック数６１２（この例においては８クロック）を読み出して、クロック周期にクロック数６１２を乗算することにより各バンクに対するアクセス時間（この例の場合には２．５×８＝２０ｎｓ）６１４を算出回路６０４により算出する。【００４５】
次に、上述した算出回路６０４により算出したアクセス時間（２０ｎｓ）６１４とメモリ６０２から読み出したＳＤＲＡＭのバンク数６１６（この例においては４バンク）を乗算した連続データアクセス周期（同一バンクアクセス周期）６１８（この例においては、２０ｎｓ×４＝８０ｎｓ）を乗算回路６０６により算出する。【００４６】
次に、上述した乗算回路６０６により算出した同一バンクアクセス周期６１８（８０ｎｓ）とメモリから読み出した活性化の最小間隔時間６２０（この例においては、６０ｎｓ）とを比較回路により比較する。この場合、図７Ｂに示すように、活性化の最小間隔時間６２０よりも同一バンクアクセス周期６１８（８０ｎｓ）の値が大きい。この場合には、メモリ制御回路は、メモリが使用されていない時間がなく、ＳＤＲＡＭのクロック周期の速度が向上した場合であっても、メモリに効率的にアクセスすることが可能になるものである。【００４７】
データ組み立て回路３は、連続アクセスデータ量をＳＤＲＡＭに書き込み及び読み出しを行う際の最小単位として動作する。つまり、ＳＤＲＡＭに対して書き込み及び読み出しを行う際のＳＤＲＡＭの論理アドレスは、連続アクセスデータ量を最小単位とした値となる。例えば、以下に示すＳＤＲＡＭの使用形態では、バーストレングス：８、データバス幅：１６、連続データアクセス周期：４バースト（各バンク１バーストのアクセス）、ＳＤＲＡＭ列ビット幅：８ビット、ＳＤＲＡＭ行ビット幅：１２ビット、ＳＤＲＡＭバンク数：４（２ビット）であると仮定する。【００４８】
連続アクセスデータ量は、バーストレングスと、データバス幅と、連続データアクセス周期との積となり、５１２ビットとなる。また、ＳＤＲＡＭの物理アドレスに対する論理アドレスのマッピングの一例を図８に示す。物理アドレスは、行、列、バンクのアドレスのビット幅の合計になり２４ビットの構成となっている。しかし、論理アドレスは、バーストレングを８としているため、列方向の最下位の３ビットとバンクの２ビットは論理アドレスとしてアクセスすることができなくなり、列方向で５ビット、行方向で１２ビットの合計１７ビットのアドレス空間となる。図８では、論理アドレスの構成を最下位ビットから列、行と昇順に並べているが、論理アドレスの並べ方に制限はない。【００４９】
さらに、以下に示すＳＤＲＡＭの使用形態では、バーストレングス：８、データバス幅：１６、連続データアクセス周期：８バースト（各バンク２バーストのアクセス）、ＳＤＲＡＭ列ビット幅：８ビット、ＳＤＲＡＭ行ビット幅：１２ビット、ＳＤＲＡＭバンク数：４（２ビット）であると仮定する。【００５０】
連続アクセスデータ量はバーストレングス、データバス幅、連続データアクセス周期との積となり１０２４ビットとなる。また、ＳＤＲＡＭの物理アドレスに対する論理アドレスのマッピングの一例を図９に示す。物理アドレスは、行、列、バンクのアドレスのビット幅の合計になり２４ビットの構成となっている。しかし、論理アドレスは、バーストレングが８であり、各バンクに対して２バーストの連続アクセスを行うため列方向の最下位の４ビットとバンクの２ビットは論理アドレスとしてアクセスすることができなくなり、列方向で４ビット、行方向で１２ビットの合計１６ビットのアドレス空間となる。図９では、論理アドレスの構成を最下位ビットから列、行と昇順に並べているが、論理アドレスの並べ方に制限はない。【００５１】
ＤＲＡＭアクセス制御回路２は、データ組み立て回路３から出力される調停後の論理アドレスである調停書き込みアドレスＷＲ又は調停読み出しアドレスＲＲを入力としてＳＤＲＡＭに対するコマンドシーケンスＣＭＤとアドレスＡＤを出力する。以下、ＤＲＡＭアクセス制御回路２におけるコマンドシーケンスとアドレスの発生する動作を説明する。【００５２】
ＳＤＲＡＭに対してバーストレングスに従って、書き込み及び読み出しを行う際には、対象とするバンクと行アドレスを指定してアクセス対象となる行に対してアクティブ（ＡＣＴＩＶＥ）コマンドを発行し活性化（アクティベート）を行う。バンク毎に活性化された行に対して、列方向の所定のアドレスに対して書き込み及び読み出しを行う必要がある。【００５３】
ＳＤＲＡＭに対して書き込みを行う際には、列アドレスとバンクを指定して既に活性化された行に対してライトコマンドを発行して書き込み動作を行う。この際、１回のライトコマンドに対してバーストレングスで指定される期間の書き込みがＳＤＲＡＭに対して行われる。２回以上の連続したバーストの書き込みを行うには、バーストレングスに相当する時間間隔をあけてライトコマンドを連続して発行する必要がある。また、ライトコマンドに対してＳＤＲＡＭへ書き込むデータは、ライトコマンドを発行するタイミングに対して所定のタイミングでＳＤＲＡＭへ入力する必要がある。ＤＲＡＭデータパス制御回路６は、ライトコマンドを発行するタイミングに従って、所定のタイミングでＳＤＲＡＭへの書き込みデータをＳＤＲＡＭへ入力する。また、各バンクに対して、所定の書き込み動作が終了した際には、該当バンクに対してプリチャージを行って、活性化しているバンクを非活性状態にする必要がある。【００５４】
ＳＤＲＡＭから読み出しを行う際には、ＳＤＲＡＭに対して発行するコマンドシーケンスとアドレスは書き込み時と同様になる。書き込み時には、ライトコマンドを発行するタイミングに同期してＳＤＲＡＭへ書き込むデータを出力する。しかし、読み出し時には、リードコマンドから所定のレイテンシー後にＳＤＲＡＭから読み出しデータが出力されるため、ＤＲＡＭデータパス制御回路６にてＳＤＲＡＭから出力された読み出しデータを、読み出し要求を出力した回路へ出力する必要がある。【００５５】
ＳＤＲＡＭにはアクセスする際に上で述べたようなシーケンスにおける制限があるため、ＳＤＲＡＭの各バンクに対して以下のコマンドを発行する必要がある。【００５６】
（１）行の活性化
（２）ライト又はリードコマンドの発行
（３）プリチャージ実行
従って、ＳＤＲＡＭに対して連続したアクセスを行う場合には、同一バンクアクセス周期６１８内に上記のコマンドをバンク数だけ発行する必要がある。【００５７】
以上のことから、ＤＲＡＭアクセス制御回路２から出力されるＳＤＲＡＭの各バンクに対する書き込み又は読み出しするシーケンスは、各バンクに対する、１回の活性化と１回以上の連続した書き込み又は読み出しと１回のプリチャージとで終了する。【００５８】
図１０は、ＳＤＲＡＭに対する書き込み時のコマンドシーケンスのタイミングチャートの一例である。ここで、クロック周波数：１６６ＭＨｚ（クロック周期を表すｔＣＫは、６ｎｓ）、入出力インターフェースの動作周波数：１６６ＭＨｚ（周期６ｎｓ）、バンク数：４バンク、ｔＲＣ：６０ｎｓ、バーストレングス：８データ／バーストである。【００５９】
図１０に示すように、最上段の波形は、ＳＤＲＡＭに柳力されるクロック波形を示す。２段目の波形は、０から３で示す４つのバンクにアクセスしている順番を示している。３段目の波形は、各バンクに対するコマンドのシーケンスを示している。アクティベートのコマンドは、Ａで示している。ライトコマンドは、Ｗで示している。プリチャージコマンドは、Ｐで示している。４段目の波形は、論理アドレスを示している。行アドレスは、Ａｒ、Ｂｒで示している。また、列アドレスは、Ａｃ、Ｂｃで示している。５段目の波形は、ＳＤＲＡＭに書き込むデータのタイミングを示している。【００６０】
図１０に示すように、バンクに対するアクティベートとライトコマンドは４クロックの間隔を開けて発行する。プリチャージに関しては、書き込みデータをＳＤＲＡＭに対してバースト分書き込んだ後の所定の時間後に、はじめて実行することができる。そのため、対象となるバンクの次に続くバンクに対するライトコマンドに続けて、プリチャージを行っている。また、ＳＤＲＡＭのアドレスは、初期の４バースト間は、行アドレスＡｒ、列アドレスＡｃに対して各バンクにＳＤＲＡＭに８個のデータを書き込む。このシーケンスの後に続くバンク０からは、上記アドレスとは異なる論理アドレス（行アドレスＢｒ、列アドレスＢｃ）に対して連続した書き込みが行われる。連続したＳＤＲＡＭへの書き込みを行うことができる。【００６１】
別のコマンドシーケンスのタイミングチャートの一例として、図１１は、各バンクに対して２バーストのアクセスを行った場合のタイミングチャートである。なお、ここでは、想定するＳＤＲＡＭのとして、クロック周波数：４００ＭＨｚ（クロック周期を表すｔＣＫは、２．５ｎｓ）、入出力インターフェースの動作周波数：８００ＭＨｚ（周期１．２５ｎｓ）、バンク数：４バンク、ｔＲＣ：６０ｎｓ、バーストレングス：８データ／バーストであると仮定する。【００６２】
なお、各段の波形の意味は、図１０と同様の部分は説明を省略する。図１０と異なるのは、４段目の波形である論理アドレスである。列アドレスＡｃ+８は、列アドレスＡｃから８データ分だけ離れたアドレスを示している。同様に、列アドレスＢｃ+８は、列アドレスＢｃから８データ分だけ離れたアドレスを示している。【００６３】
各バンクにおいて、１回のアクティベートを行った後に２回のライトコマンドを発行し、各バンクに２バーストの期間連続してＳＤＲＡＭへ書き込みを行っている。２バースト毎の処理を行っていること以外は、上記タイミングチャートと同等の動作を行っている。なお、本実施例では、各バンクに対して１バーストと連続した２バーストの書き込みを行っているが、同一バンクアクセス周期６１８が長くなるが、各バンクに対して３回以上の連続した書き込みを行ってもよい。【００６４】
なお、アクティベート、ライト、プリチャージのそれぞれのコマンドに関しては、ＳＤＲＡＭのコマンドシーケンスの制約に従って、ＳＤＲＡＭからの連続読み出しを行うことが可能であれば、本実施例に示したシーケンスに従う必要はない。なお、ＳＤＲＡＭから読み出しを行う際にも、同様なタイミングでコマンドシーケンスを発生することが可能である。【００６５】
また、ＳＤＲＡＭへのコマンドには、オートプリチャージ付きのライトコマンド及びリードコマンドがあり、例えば１回のオートプリチャージ付きのライトコマンドを発行することにより、ライトコマンドと一定の時間後にプリチャージをＳＤＲＡＭ内部で自動的に発生することが可能である。また、オートプリチャージ付きのライト又はリードコマンドを使用することにより、コマンド発生の頻度を下げることができるため、コマンドシーケンの発生回路規模の低減と電力を削減することができる。【００６６】
すなわち、ＤＲＡＭアクセス制御回路２から出力されるＳＤＲＡＭの各バンクに対する書き込み又は読み出しするシーケンスは、各バンクに対する、１回の活性化と１回のオートプリチャージ付きの書き込み又は読み出しとで終了してもよい。【００６７】
各バンクに対してアクティブ、ライト、プリチャージの３つのコマンドを一回ずつ発行しているコマンドシーケンスでは、各バンクにアクティブとオートプリチャージ付きのライトコマンドに置き換えることが可能である。図１２は、各バンクにアクティブとオートプリチャージ付きのライトコマンドを発行しているコマンドシーケンスの一例である。【００６８】
なお、各段の波形の意味は、図１０と同様の部分は説明を省略する。図１０と異なるのは、３段目の波形である各バンクに対するコマンドのシーケンスである。【００６９】
オートプリチャージ付きのライトコマンドをＷｐで示している。【００７０】
各バンクに対して、１回のアクティベートと２回以上のライトコマンドと１回のプリチャージを行っているコマンドシーケンスでは、プリチャージコマンドとその前に同一バンクに対して行っているライトコマンドをオートプリチャージ付きのライトコマンドに置き換えることが可能である。図１３は、各バンクにアクティブと一回のライトコマンドとオートプリチャージ付きのライトコマンドを発行しているコマンドシーケンスの一例である。なお、各段の波形の意味は、図１１と図１２とで説明したので、説明を省略する。【００７１】
本実施例では、各バンクに対して１バーストと連続した２バーストの書き込みを行っているが、同一バンクアクセス周期６１８が長くなるが、各バンクに対して３回以上の連続した書き込みを行ってもよい。すなわち、ＤＲＡＭアクセス制御回路２から出力されるＳＤＲＡＭの各バンクに対する書き込み又は読み出しするシーケンスは、各バンクに対する、１回の活性化と１回以上の書き込み又は読み出しと１回のオートプリチャージ付きの書き込み又は読み出しとで終了してもよい。【００７２】
なお、アクティベート、ライト、プリチャージのそれぞれのコマンドに関しては、ＳＤＲＡＭのコマンドシーケンスの制約に従って、ＳＤＲＡＭからの連続読み出しを行うことが可能であれば、前述したシーケンスに従う必要はない。また、ＳＤＲＡＭから読み出しを行う際にも、同様なタイミングでコマンドシーケンスを発生することが可能である。【００７３】
なお、各バンクに対して書き込み及び読み出しを連続して行う回数を増やすことにより、プリチャージの頻度を減らすことができ、ＳＤＲＡＭの消費電力を削減することが可能である。一方、各バンクに対して書き込み及び読み出しを連続して行う回数を増やすことになり、連続アクセスデータ量が大きくなる。そのため、連続アクセスデータ量未満のアクセスが発生した場合においても、連続アクセスデータ量のアクセスにデータ量が切り上げられるため、消費電力とＳＤＲＡＭのメモリ容量さらには、連続アクセスデータ量未満のアクセスが発生した場合のデータ転送効率の悪化等と考えて最適な連続アクセスデータ量を決める必要がある。また、ＳＤＲＡＭのメモリ容量が逼迫している場合には、ＳＤＲＡＭに対して連続アクセスができなくなりデータ転送効率は下がるが、同一バンクアクセス周期未満で書き込み及び読み出し動作を停止し、ＳＤＲＡＭのメモリ容量の使用効率を高めることも可能である。
【産業上の利用可能性】
【００７４】
本発明は、ＳＤＲＡＭ等のメモリ制御に利用することができる。
【図１】
2009125572.tif 000003
【図２】
2009125572.tif 000004
【図３】
2009125572.tif 000005
【図４】
2009125572.tif 000006
【図５】
2009125572.tif 000007
【図６】
2009125572.tif 000008
【図７Ａ】
2009125572.tif 000009
【図７Ｂ】
2009125572.tif 000010
【図８】
2009125572.tif 000011
【図９】
2009125572.tif 000012
【図１０】
2009125572.tif 000013
【図１１】
2009125572.tif 000014
【図１２】
2009125572.tif 000015
【図１３】
2009125572.tif 000016
【国際調査報告】
2009125572.tif 000017
2009125572.tif 000018