(57)【要約】【課題】メモリの複数のバンクをインタリーブする際に、データ転送量に応じたコマンドパターンにより、データ転送効率が高く、かつ、データ転送効率を見積もることが容易となるメモリ制御装置を提供する。【解決手段】データ転送に対応するコマンドパターンがコマンドパターン選択回路２により順次選択されて、一対のコマンドパターンラッチ回路４，５と、一対のデコーダ６，７により交互に処理される。その際、前後のコマンドパターンを連結可能なタイミングを示す連結信号を連結信号生成回路１２により確定し、その連結信号に基づくタイミングをもって、前後のコマンドパターンが連結される。【選択図】図１
2006011593.tif 000002
【特許請求の範囲】
【請求項１】
複数のバンクからなるメモリに対するデータ転送に対して、それぞれ各バンクに対するコマンドからなり、予め設定された複数のコマンドパターンのうち、一のコマンドパターンを順次選択し、
連続する２つのコマンドパターンを、前記メモリに対する所定のアクセス基準を満足するタイミングをもって順次連結する
メモリ制御装置。
【請求項２】
複数のバンクからなるメモリに対するデータ転送に対して、それぞれ各バンクに対するコマンドからなり、予め設定された複数のコマンドパターンのうち、一のコマンドパターンを順次選択して割り当てる選択手段と、
選択手段により選択されたコマンドパターンをラッチする一対のラッチ手段と、
前記一対のラッチ手段にそれぞれ対応し、各ラッチ手段にラッチされたコマンドパターンを、サイクル単位の前記メモリに対するコマンド群にデコードするとともに、前記メモリに対する所定のアクセス基準に基づいて、前記コマンドパターンに対して前記複数のコマンドパターンのそれぞれを連結可能なタイミングを示す複数の連結信号を生成する一対のデコード手段と、
選択手段が選択した第１のコマンドパターンに対応する複数の連結信号の中から、選択手段が前記第１のコマンドパターンに続けて選択した第２のコマンドパターンに応じた一の連結信号を選択するとともに、当該一の連結信号に基づいて、前記一対のラッチ手段が交互にコマンドパターンをラッチするタイミングを制御するタイミング制御手段と、
前記一対のデコード手段がデコードしたコマンド群を、交互に選択して連結する連結手段と
を有するメモリ制御装置。
【請求項３】
前記連結手段は、
前記一対のデコード手段のうち一方のデコード手段がデコードするコマンドパターンが無指示コマンド（ＮＯＰ）に相当する場合には、他方のデコード手段がデコードするコマンドパターンを選択して出力する
請求項２記載のメモリ制御装置。
【請求項４】
前記タイミング制御手段は、
二進カウンタに基づいて、前記一対のラッチ手段に対して交互に反転させたラッチイネーブル信号を与える
請求項２記載のメモリ制御装置。
【請求項５】
前記選択手段が順次選択するコマンドパターンを待機させるキュー
を有する請求項２記載のメモリ制御装置。
【請求項６】
前記タイミング制御手段は、
前記複数のコマンドパターンのすべてのコマンドパターンに対して連結可能とする第２の連結信号を選択可能とする
請求項２記載のメモリ制御装置。
【請求項７】
前記一対のデコード手段は、外部から書換可能な記憶手段を含み、
前記記憶手段は、前記複数のコマンドパターンの各コマンドパターンのサイクル数に応じたアドレスにより管理され、
各コマンドパターンに対応するサイクル単位のコマンド群と、前記複数の連結信号と、を前記アドレスにより参照されるデータとして記憶する
請求項２記載のメモリ制御装置。
【請求項８】
前記複数のコマンドパターンは、アクセスするバンクの数毎に、アクセスが開始されるバンクが異なるコマンドパターンを含み、
前記選択手段は、
第１のバンクをもってアクセスが終了する第１のコマンドパターンを選択した後、メモリ上に前記第１のバンクに続けて割り当てられた第２のバンクからアクセスを開始する第２のコマンドパターンを選択する
請求項２記載のメモリ制御装置。
【請求項９】
前記一対のデコード手段は、前記第２のコマンドパターンに対する連結信号を生成する際に、
前記第２のコマンドパターンによりアクセスが終了するバンクに基づいて、前記第２のコマンドパターンに続けて選択される第３のコマンドパターンを予測し、前記第１のコマンドパターンと当該第３のコマンドパターンに含まれる同一バンクに対するアクセスのタイミングに応じて、前記連結信号を調整する
請求項８記載のメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリのバンク間をインタリーブすることによりデータ転送効率を向上させるメモリ制御装置に関する。
【背景技術】
【０００２】
従来から、メモリにアクセスする際には、高速化のために複数のバンクを同時にアクセスすることが一般的に行われている。すなわち、あるプロセッサからメモリがアクセスされる場合、プロセッサからのアクセスは各バンクへのアクセスに分解され、各バンクがそれぞれ独立にアクセスされる。その際、アドレスによるバンクの割り当ては、連続したアドレスが複数のバンクにまたがってアクセスされ、バンド幅が大きくとれるようにインタリーブして割り当てられる。
かかるメモリインタリーブを利用したデータ転送に関し、様々な技術が開示されている。たとえば、下記特許文献１には、最適なデータ効率によるインターリーブを行うため、各データ転送をバンク毎に分割し、バンクを意識したバス調停を行ったり、バンク毎にキュー（ＱＵＥ）を設けて同一バンクでメモリのスペック待ちになる間に、空きバンクのデータ転送を行う技術が開示されており、かかる技術によれば、データ転送効率を向上させることができる。
【特許文献１】特開２００２−２６８９４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、上記特許文献１に開示されている技術は、その実現方法や検証方法、実際にデータが必要な時間に安全にそのデータ転送が行われることを保障する方法、汎用性、将来の拡張性等を考慮すると、実際に適用する場合には問題点が多い。
たとえば、上記特許文献１に開示された技術によれば、効率を上げるために大量のキューを設けているが、そのために緊急性が高いデータ転送が待たされる場合があるという問題があり、また、各バンク間を跨ぐデータ転送でリ−ドデータの順番が大いに狂い内部回路の構造が複雑になるという問題や、将来の周辺回路やメモリのスペックが変更した場合に修正部分が多く汎用性に乏しいなどの問題がある。
【０００４】
一方、比較的簡単に効率的なインターリーブを実現する方法として、たとえば、４バン
ク構成（バンクＡ〜Ｄ）のメモリのアドレスを、バ−ストレングスにかかる単位でＡ−Ｂ−Ｃ−Ｄ−Ａ−…と順に割り当てるメモリマップとし、メモリに対する一連のコマンド郡（コマンドパターン）を４バンクインターリーブの形で予め用意し、データ転送をそのコマンドパターンで転送できる量に分割して転送することなども考えられる。
【０００５】
しかしながら、昨今、メモリもＳＤＲＡＭからＤＤＲ＿ＳＤＲＡＭへ進化し、従来より大きなバ−ストでなければ４バンクアクセスとしても効率的なデータ転送ができない。またビット幅も大きくなる傾向があるため、効率の良いデータ転送をするために、１単位のデータ量が大きくなっている。
したがって、このような１単位毎にデータ転送を分割するようなメモリバス機構においては、その１単位を効率の良いデータ量を基本（基本データ量）とし、データ量が多い転送の場合には、基本データ量によって分割する。そして、少ないデータ量の転送や、多いデータ量の転送時の分割の端数などに対応させるために、様々なデータ転送量に対応した多くのコマンドパターンを設定する必要が生じている。
【０００６】
また、近年多くの種類のバスマスタがメモリバスに接続されるようになり、これらの各バスマスタに応じてデータ転送量やメモリマップを使い分けたいという要望がある。たとえば、ほとんどのバスマスタは効率重視のインターリーブを意識したメモリマップとする一方で、一部のバスマスタは１バンク毎に異なるメモリマップを使用したい等の要求があった場合には、さらにコマンドパターンが増えることになる。
【０００７】
しかしながら、従来は、コマンドパターンとしては、たとえばリード／ライト処理に対してそれぞれ１種類のみ設定されるなど、比較的単純なコマンドパターンしか設定されていないので、データ転送効率を見積もることができないうえ、上述したメモリの進化に応じた効率的なメモリインタリーブを実現することができないのである。
【０００８】
本発明はかかる事情に鑑みてなされたものであり、その目的は、メモリの複数のバンクをインタリーブする際に、データ転送量に応じた複数のコマンドパターンにより、データ転送効率を見積もることが容易であり、かつ、データ転送効率が高いメモリ制御装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するための本発明の第１の観点は、複数のバンクからなるメモリに対するデータ転送に対して、それぞれ各バンクに対するコマンドからなり、予め設定された複数のコマンドパターンのうち、一のコマンドパターンを順次選択し、連続する２つのコマンドパターンを、前記メモリに対する所定のアクセス基準を満足するタイミングをもって順次連結するメモリ制御装置である。
【００１０】
上記目的を達成するための本発明の第２の観点は、複数のバンクからなるメモリに対するデータ転送に対して、予め設定された前記複数のバンクに対する複数のコマンドパターンのうち、一のコマンドパターンを順次選択して割り当てる選択手段と、選択手段により選択されたコマンドパターンをラッチする一対のラッチ手段と、前記一対のラッチ手段にそれぞれ対応し、各ラッチ手段にラッチされたコマンドパターンを、サイクル単位の前記メモリに対するコマンド群にデコードするとともに、前記メモリに対する所定のアクセス基準に基づいて、前記コマンドパターンに対して前記複数のコマンドパターンのそれぞれを連結可能なタイミングを示す複数の連結信号を生成する一対のデコード手段と、選択手段が選択した第１のコマンドパターンに対応する複数の連結信号の中から、選択手段が前記第１のコマンドパターンに続けて選択した第２のコマンドパターンに応じた一の連結信号を選択するとともに、当該一の連結信号に基づいて、前記一対のラッチ手段が交互にコマンドパターンをラッチするタイミングを制御するタイミング制御手段と、前記一対のデコード手段がデコードしたコマンド群を、交互に選択して連結する連結手段とを有するメモリ制御装置である。
【００１１】
好適には、前記タイミング制御手段は、前記複数のコマンドパターンのすべてのコマンドパターンに対して連結可能とする第２の連結信号を選択可能とする。
【００１２】
好適には、前記一対のデコード手段は、外部から書換可能な記憶手段を含み、前記記憶手段は、前記複数のコマンドパターンの各コマンドパターンのサイクル数に応じたアドレスにより管理され、各コマンドパターンに対応するサイクル単位のコマンド群と、前記複数の連結信号と、を前記アドレスにより参照されるデータとして記憶する。
【００１３】
好適には、前記複数のコマンドパターンは、アクセスするバンクの数毎に、アクセスが開始されるバンクが異なるコマンドパターンを含み、前記選択手段は、第１のバンクをもってアクセスが終了する第１のコマンドパターンを選択した後、メモリ上に前記第１のバンクに続けて割り当てられた第２のバンクからアクセスを開始する第２のコマンドパターンを選択する。
【００１４】
第２の観点に係るメモリ制御装置の作用は、以下の通りである。
すなわち、選択手段は、複数のバンクからなるメモリに対するデータ転送に対して、予め設定された前記複数のバンクに対する複数のコマンドパターンのうち、一のコマンドパターンを順次選択して割り当て、タイミング制御手段は、選択手段が選択した第１のコマンドパターンに対応する複数の連結信号の中から、選択手段が前記第１のコマンドパターンに続けて選択した第２のコマンドパターンに応じた一の連結信号を選択するとともに、当該一の連結信号に基づいて、前記一対のラッチ手段が交互にコマンドパターンをラッチするタイミングを制御する。
このタイミング制御手段により制御されるタイミングにより、一対のラッチ手段は、交互に選択手段により選択されたコマンドパターンをラッチし、一対のデコード手段は、各ラッチ手段にラッチされたコマンドパターンを、サイクル単位の前記メモリに対するコマンド群にデコードするとともに、前記メモリに対する所定のアクセス基準に基づいて、前記コマンドパターンに対して前記複数のコマンドパターンのそれぞれを連結可能なタイミングを示す複数の連結信号を、交互に生成する。
そして、連結手段は、前記一対のデコード手段がデコードしたコマンド群を、交互に選択して連結する。
以上のように、一対のラッチ手段と、それぞれ対応する一対のデコード手段は、交互にコマンドパターンを処理し、その際、前後のコマンドパターンが連結可能なタイミングをもって、一対のデコード手段の各デコード結果のコマンド群が連結される。
【発明の効果】
【００１５】
本発明によれば、メモリの複数のバンクをインタリーブする際に、データ転送量に応じたコマンドパターンにより、データ転送効率が向上するとともに、データ転送効率を見積もることが容易となる。
【発明を実施するための最良の形態】
【００１６】
第１の実施形態
第１の実施形態に係るメモリ制御装置は、複数のバンクからなるメモリに対してインタリーブする際に、メモリに対するコマンド（データ転送命令など）をいくつかのコマンドパターンから順次選択したコマンドパターンに基づいて行う。
その際、順次選択された前後のコマンドパターンを連結できるタイミング（インタリーブできるタイミング）を求め、そのタイミングをもって前後のコマンドパターンを順次連結していくことによって、メモリに対するインタフェース信号（ＲＡＳ，ＣＡＳ等）を生成する。
なお、以下の説明においては、コマンドパターンは、４バンク構成のメモリに対応したパターンを一例として述べることにするが、これに拘泥するものではなく、任意のマルチバンク構成のメモリに適合してコマンドパターンは規定され、コマンドパターンに応じた処理がなされる。
【００１７】
以下、本発明に係るメモリ制御装置の一実施形態について添付図面に関連付けて述べる。図１は、本発明に係るメモリ制御装置の一実施形態であるメモリ制御装置１の回路ブロック図の一例である。
なお、コマンドパターン選択回路２は、本発明の選択手段の一実施形態である。
コマンドパターンラッチ回路４，５は、本発明の一対のラッチ手段の一実施形態である。
デコーダ６，７は、本発明の一対のデコード手段の一実施形態である。
連結信号生成回路１２および分配回路１３は、本発明のタイミング制御手段の一実施形態を構成する。
【００１８】
コマンドパターン選択回路（ＳＥＬ）２は、与えられたメモリに対するコマンドに基づいて、所定のコマンドパターン群から１つのコマンドパターンを選択する回路である。
図２は、バンクＡ〜Ｄからなる４バンク構成のメモリに対するデータ転送に対して、コマンドパターン選択回路２が選択するコマンドパターン群の一例であり、（ａ）は、無指示コマンド（ＮＯＰ）の場合を、（ｂ）は、メモリのリフレッシュの場合を、（ｃ）〜（ｐ）はそれぞれ単一のコマンドパターンを、それぞれ示す。図２に示す例では、４バンク構成のメモリであるＤＤＲ＿ＳＤＲＡＭ（以下、ＤＤＲメモリと称する）をバーストレングス：４により使用するライトコマンドの場合を示す。
なお、以下の説明では、コマンドパターンを図２に付された数字によって表現することがある。たとえば、図２（ｄ）に示すコマンドパターンは、コマンドパターン：「３」である。
図に示すように、各バンクに対するコマンドは、「Ａ」コマンド（アクティブコマンド））および「Ｗ」コマンド（ライトコマンド）からなる。本実施形態では、１サイクル２バーストのバースト転送を行い、図２における「Ｗ」とそれに続く矢印は、２サイクルでの４バーストのライト処理を示している。
まず、図に示すように、各コマンドパターンは、５ビットデータとしてコマンドパターン選択回路２により処理される。
【００１９】
リードコマンドの場合も同様にコマンドパターンを規定することができ、その場合には、最上位ビットを反転したうえでライトコマンドと同じコマンドパターンとすることができる。
なお、１転送のデータ量は、一般的なＤＤＲメモリの仕様を考慮すると、バ−ストレングス：８で４バンクのデータ量（３２アドレス分）を一度に転送する場合に効率が良い。そこで、図２に示した例では、大きいデータ量の転送を分割する際に、極力３２アドレス分を転送し、分割した際の余りなどの小さいデータ量を転送する場合には、データ量に応じて無駄な転送を極力回避することができるように、バ−ストレングス：４で２度ライトコマンド（またはリードコマンド）を行うコマンドパターンを載せている。また、２度ライトコマンド（またはリードコマンド）を行う方が、メモリマップが多数存在する場合などに有利となる。
このように、図２に規定したコマンドパターンは一例であり、どのようなコマンドパターンを設定するかについては、ＤＤＲメモリのスペック等に依存するものであるため、かかるスペックに応じて設定するコマンドパターンを適宜変更することができる。
【００２０】
コマンドパターン選択回路２は、データ転送の開始アドレスとデータの長さに基づいて、コマンドパターンを選択する。このコマンドパターンの選択方法について、具体的なメモリマップにおける一例を、図３および図４に示している。
図３は、バンクＡ〜Ｄの各バンクが４アドレス単位であるメモリマップの一例であり、０番目のアドレスから２３番目のアドレスが４アドレス単位で順に各バンクに割り当てられている。図４は、図３に示すメモリマップを有するメモリに対するデータ転送のコマンドパターンの選択について説明するための図であり、（ａ）は転送するデータ量が比較的少ない場合を、（ｂ）は転送するデータ量が比較的多い場合を、それぞれ示す。
図４（ａ）では、各バンクが均等にライト処理されるために、コマンドパターン：「２」が選択され、図４（ｂ）では、バンクＡおよびバンクＢが他のバンクより多くライト処理されるために、コマンドパターン：「１１」が選択されている。
【００２１】
なお、コマンドパターン選択回路２は、データ転送に係る並べ替え方法の選択も行うことが望ましい。
すなわち、図２に示すように、各コマンドパターンは、バンクＡからアクセスが開始されるように設定されているが、実際のデータ転送に係るコマンドは、必ずしもバンクＡのアドレスから開始されるとは限らないので、コマンドパターン選択回路２においてクライアントの意図するデータ順をコマンドパターンに合わせたデータ順に並べ替える方法を選択することが望ましい。
【００２２】
キュー（ＱＵＥ）３は、コマンドパターン選択回路２により順次選択されるコマンドパターンのためのキューである。
キュー３がない場合であっても、本発明を実現することは可能であるが、コマンドパターン選択回路２においてコマンドパターンの選択に時間（サイクル）がかかることによって、デコーダ６，７でデコードにかかる時間とアンマッチとなる場合には、キュー３を設定することが望ましい。すなわち、コマンドパターン選択回路２では、ライトデータの並べ替えの際などに、一度バッファすることでコマンドパターンを生成するため、コマンドパターンの選択に時間がかかる場合があり、かかる場合においても、デコーダ６，７におけるデコード時間とのずれを吸収するために、キュー３を設定する。
【００２３】
コマンドパターンラッチ（ＬＡＴＣＨ）回路４，５は、連結信号生成回路１２からの連結信号（ｃｏｎｎｅｃｔ）に応じたタイミングをもって、キュー３上のコマンドパターン（ｎｅｘｔ＿ｃｍｄｐｔｒ）をラッチする。
その際、分配回路１３からの制御信号に応じて、ラッチイネーブル（ＬＥＮ）が各コマンドパターンラッチ回路に対して交互に与えられる。すなわち、分配回路１３は、制御信号のレベルを順に反転させ、各コマンドパターンラッチ回路に対するラッチイネーブル（ＬＥＮ）のレベルを交互に反転させる。
したがって、コマンドパターンラッチ回路４，５は、連結信号（ｃｏｎｎｅｃｔ）に応じたタイミングをもって、交互にコマンドパターン（ｎｅｘｔ＿ｃｍｄｐｔｒ）をラッチする。
【００２４】
デコーダ（ＤＥＣ）６，７は、それぞれコマンドパターンラッチ回路４，５がコマンドパターン（ｎｅｘｔ＿ｃｍｄｐｔｒ）をラッチしたタイミングをもって、そのコマンドパターンのデコードを開始する。
デコードは、５ビットのコマンドパターン（ｎｅｘｔ＿ｃｍｄｐｔｒ）に基づいて、ＤＤＲメモリ上の各バンクＡ〜Ｄ毎のサイクル単位のコマンド（図２の「Ａ」コマンド（Ａｃｔｉｖｅ）や「Ｗ」コマンド（Ｗｒｉｔｅ）等）を抽出することによって行う。これによって、図２に示したような、コマンドパターンに応じたサイクル毎のコマンド群が得られる。
【００２５】
図１に示すように、各デコーダ６，７には、それぞれ対応するカウンタ（ＣＴＲ）８，９が設定され、このカウンタによって順にデコード処理を行う。また、図１に示すように、各デコーダの処理の開始タイミングと同期して各カウンタが動作を開始するように、デコーダ６，７に交互にラッチイネーブル（ＬＥＮ）が与えられる。
たとえば、デコーダの処理対象が図２に示すコマンドパターン：「４」の場合には、カウンタの値に応じて、順に、
（１）バンクＡに対する「Ａ」コマンド
（２）ＮＯＰ
（３）バンクＢに対する「Ａ」コマンド
（４）バンクＡに対する「Ｗ」コマンド
…
というように、カウント値に応じて順に、コマンドパターン：「４」におけるコマンド群がデコードされる。
【００２６】
また、デコーダ６，７は、デコードしたコマンドパターンに対し、予め規定されたすべてのコマンドパターンと連結できるタイミングを示す信号（連結信号）を生成する。したがって、予め規定されたコマンドパターンの数の連結信号（図１のｅａｃｈ＿ｃｏｎｎｅｃｔ）が生成される。その際、すべてのコマンドパターンに対して同じ連結信号となる場合には、その単一の連結信号を生成してもよい。
なお、前後のコマンドパターンを連結できるタイミングについては、メモリ制御装置１の制御対象であるＤＤＲメモリ（図示しない）の仕様（スペック）に依存する。このＤＤＲメモリのスペック（ＤＤＲスペック）は、本発明における「所定のアクセス基準」に相当する。
次いで、連結信号の生成方法について、以下、図５および図６を参照して述べる。
【００２７】
図５は、連結信号の生成方法を示す一例であって、デコーダがコマンドパターン：「３」（図２（ｄ））を処理している場合に、コマンドパターン：「３」と連結するための連結信号を生成する場合である。
図で、（ａ）〜（ｄ）はサイクル毎に連結関係をチェックする状態を模式的に表し、（ｅ）は、その結果として得られる連結信号を時系列上で表している。なお、連結信号は、連結可能である場合にＨレベル、連結不可能である場合にＬレベルとなる。また、（ａ）〜（ｄ）の各図において、上から下にかけて、順にバンクＡ〜Ｄに対するコマンドに対応している。
ＤＤＲメモリのスペック（ＤＤＲスペック）によって、同一サイクルのコマンドが重複する場合を禁止すること（たとえば、「Ａ」コマンドと「Ｗ」コマンドの重複禁止）、同一バンクに対するアクセス時間が所定のサイクル以上であること等の条件があるので、各デコーダでは、かかるＤＤＲスペックを満足させながら、前後のコマンドパターンを連結できるタイミングを算出する。
【００２８】
図５では、（ａ）から（ｄ）にかけて前後のコマンドパターンの間隔をサイクル単位で変化させる（時間間隔を長くする）ことにより、それぞれにおいてＤＤＲメモリのスペックを満足するか否かをチェックすることによって、連結信号を生成している。
（ａ）では、異なるバンク間（バンクＡおよびバンクＤ）で「Ｗ」コマンドと「Ｗ」コマンドが同一サイクルで重複するので、前後のコマンドパターンを連結することはできず、対応する連結信号はＬレベルとなる。
（ｂ）では、ＤＤＲスペックに反しないので、前後のコマンドパターンを連結することができ、対応する連結信号はＨレベルとなる。
（ｃ）では、異なるバンク間（バンクＡおよびバンクＤ）で「Ａ」コマンドと「Ｗ」コマンドが同一サイクルで重複するので、前後のコマンドパターンを連結することはできず、対応する連結信号はＬレベルとなる。
（ｄ）では、ＤＤＲスペックに反しないので、前後のコマンドパターンを連結することができ、対応する連結信号はＨレベルとなる。なお、前後のコマンドパターンの間隔を（ｄ）で示す間隔以上に確保する場合は、常に連結信号はＨレベルとなる。
【００２９】
なお、連結信号は、図５に示すように、一度Ｈレベルになった後にＬレベルになり、さらにＨレベルとなる場合がある。すなわち、デコーダは、前後のコマンドパターンの間隔が最小となるＨレベルのタイミングのみだけでなく、その後にＨレベルとなるタイミングも算出する。
これは、コマンドパターン選択回路２において次のコマンドパターンの選択に時間がかかり、最初にＨレベルとなったタイミングで前後のコマンドパターンを連結できない場合があり得ること考慮したものである。かかる場合でも、その次にＨレベルとなったタイミングで前後のコマンドパターンを連結させることができる。
【００３０】
図６は、連結信号の生成方法を示す別の一例であって、デコーダがコマンドパターン：「３」（図２（ｄ））を処理している場合に、コマンドパターン：「２」と連結するための連結信号を生成する場合である。
図において、（ａ）は、ＤＤＲスペックを満足させながら前後のコマンドパターンの時間間隔を最も短くした場合を示し、（ｂ）は、（ａ）に示すタイミング以降において連結信号がＨレベル（連結可能）となることを示している。
【００３１】
連結信号生成回路１２は、各デコーダ６，７により生成されるコマンドパターン毎の複数の連結信号（ｅａｃｈ＿ｃｏｎｎｅｃｔ）を交互に入力し、キュー３上の次のコマンドパターン（ｎｅｘｔ＿ｃｍｄｐｔｒ）に応じた連結信号をその中から選択して、確定した連結信号（ｃｏｎｎｅｃｔ）として出力する。この確定した連結信号に基づいて、タイミング制御されて連続するコマンドパターンが連結される。
【００３２】
分配回路（ＤＲＢ）１３は、ゲート回路１４および１５を介して、コマンドパターンラッチ回路４および５の間がコマンドパターン（ｎｅｘｔ＿ｃｍｄｐｔｒ）を交互にラッチするように、制御信号をゲート回路１４および１５に与える。
【００３３】
デコーダ選択回路１０は、この分配回路１３からの制御信号に基づいて、交互に各デコーダ６，７により生成されるコマンドパターン毎の複数の連結信号（ｅａｃｈ＿ｃｏｎｎｅｃｔ）を選択して、連結信号生成回路１２に与える。
【００３４】
出力選択回路１１は、各デコーダ６，７によりデコードされたサイクル毎のコマンド群を順に選択して、図示しないＤＤＲメモリに対するインタフェース信号等を出力する。
なお、出力選択回路１１は、一方のデコーダ６のデコード結果がＮＯＰ（無指示コマンド）である場合には、他方のデコーダ６のデコード結果を選択して出力する。上記連結が適切に行われる限り、どちらか一方のデコーダは必ずＮＯＰであるということが言えるので、これにより、安全にインターリーブ処理を行うことができる。
【００３５】
図７は、連結信号生成回路（ＴＧ）１２の一実施例を示す回路図である。なお、図７では、図示の簡単のため、コマンドパターンが８種類ある場合を例として示している。
図７で、コマンドパターン（ｎｅｘｔ＿ｃｍｄｐｔｒ）は、デコーダ１２１において８ビットの信号にデコードされて、複数のＡＮＤ回路１２２＿１〜１２２＿８からなるＡＮＤ回路ブロック１２２に与えられる。また、デコーダで生成されたコマンドパターンの数だけ（図７の例では、８個）の連結信号（ｅａｃｈ＿ｃｏｎｎｅｃｔ）は、それぞれＡＮＤ回路ブロック１２２の各ＡＮＤ回路１２２＿１〜１２２＿８に与えられる。
これにより、複数の連結信号（ｅａｃｈ＿ｃｏｎｎｅｃｔ）の中から、コマンドパターン（ｎｅｘｔ＿ｃｍｄｐｔｒ）に応じた連結信号が選択されて、ＯＲ回路１２３より出力される。
【００３６】
ゲート回路群１２４は、キュー３からのＶＡＬＩＤ信号に応じて、選択された連結信号を出力するとともに、第２の連結信号（図３のａｎｙ＿ｃｏｎｎｅｃｔ）を選択可能に構成する。
すなわち、本実施形態では、連結信号（ｅａｃｈ＿ｃｏｎｎｅｃｔ）は、コマンドパターンの数だけの連結信号だけでなく、第２の連結信号（ａｎｙ＿ｃｏｎｎｅｃｔ）を含んで構成する。第２の連結信号（ａｎｙ＿ｃｏｎｎｅｃｔ）は、すべてのコマンドパターンを連結できるタイミングを示す信号である。
第２の連結信号を設けることで、長期間データ転送がなくバスが空いた状態が継続する場合でも、その後のデータ転送処理に適切に対応させることができる。
【００３７】
ラッチ回路群１２５は、連結信号（ｅａｃｈ＿ｃｏｎｎｅｃｔ）の中から選択された１つの連結信号または第２の連結信号（ａｎｙ＿ｃｏｎｎｅｃｔ）を順次ラッチし、確定した連結信号（ｃｏｎｎｅｃｔ）として出力する。
この確定した連結信号（ｃｏｎｎｅｃｔ）に基づいたタイミングによって、各コマンドパターンラッチ回路がキュー３に待機する次のコマンドパターン（ｎｅｘｔ＿ｃｍｄｐｔｒ）をラッチするように制御される。
【００３８】
以上、実施形態に係るメモリ制御装置１の構成と各構成要素の処理内容について述べた。次に、メモリ制御装置１の全体処理について、再び図１に関連付けて述べる。
先ず、コマンドパターン選択回路２において、たとえば、Ｎ番目のデータ転送に対するコマンドパターン（ｎｅｘｔ＿ｃｍｄｐｔｒ）が選択されてコマンドパターンラッチ回路４によりラッチされ、デコーダ６において処理が開始されると、その処理の間はデコーダ７では処理が行われず、待機する状態となっている。
デコーダ６では、カウンタ８のカウント値に応じて、コマンドパターンのデコード処理が行われ、そのコマンドパターンに対して連結可能なタイミングを示す連結信号を、設定されているすべてのコマンドパターン毎に求める（ｅａｃｈ＿ｃｏｎｎｅｃｔ）。
なお、この時点において、デコーダ選択回路１０は、分配回路１３からの制御信号により、デコーダ６が出力する連結信号（ｅａｃｈ＿ｃｏｎｎｅｃｔ）を選択するように制御される。
【００３９】
デコーダ６からの連結信号を与えられた連結信号生成回路１２は、キュー３に待機するＮ＋１番目のデータ転送に対するコマンドパターン（ｎｅｘｔ＿ｃｍｄｐｔｒ）を入力し、複数の連結信号（ｅａｃｈ＿ｃｏｎｎｅｃｔ）の中から、入力したコマンドパターンに応じた１つの連結信号を選択することで、確定した連結信号（ｃｏｎｎｅｃｔ）を出力する。
この確定した連結信号（ｃｏｎｎｅｃｔ）がゲート回路１４，１５に与えられるとともに、分配回路１３は制御信号を反転させるので、確定した連結信号（ｃｏｎｎｅｃｔ）によるタイミングをもって、コマンドパターンラッチ回路５に対するラッチイネーブル（ＬＥＮ）がアクティブとなる。
これにより、コマンドパターンラッチ回路５は、キュー３に待機するＮ＋１番目のデータ転送に対するコマンドパターン（ｎｅｘｔ＿ｃｍｄｐｔｒ）をラッチし、デコーダ７は、デコード処理を開始する。そして、このデコード処理の間は、デコーダ６では処理が行われず、待機する状態となっている。
すなわち、Ｎ＋１番目のデータ転送においては、Ｎ番目のデータ転送に対して、一対のデコーダ６，７の処理／非処理が入れ替わる。
【００４０】
デコーダ７では、カウンタ９のカウント値に応じて、コマンドパターンのデコード処理が行われ、そのコマンドパターンに対して連結可能なタイミングを示す連結信号を、設定されているすべてのコマンドパターン毎に求める（ｅａｃｈ＿ｃｏｎｎｅｃｔ）。
この時、分配回路１３からの制御信号により、デコーダ選択回路１０は、デコーダ７が出力する連結信号（ｅａｃｈ＿ｃｏｎｎｅｃｔ）を選択するように制御される。
【００４１】
デコーダ７からの連結信号を与えられた連結信号生成回路１２は、キュー３に待機するＮ＋２番目のデータ転送に対するコマンドパターン（ｎｅｘｔ＿ｃｍｄｐｔｒ）を入力し、複数の連結信号（ｅａｃｈ＿ｃｏｎｎｅｃｔ）の中から、入力したコマンドパターンに応じた１つの連結信号を選択することで、確定した連結信号（ｃｏｎｎｅｃｔ）を出力する。
この確定した連結信号（ｃｏｎｎｅｃｔ）がゲート回路１４，１５に与えられるとともに、分配回路１３は制御信号を反転させるので、確定した連結信号（ｃｏｎｎｅｃｔ）によるタイミングをもって、コマンドパターンラッチ回路４に対するラッチイネーブル（ＬＥＮ）がアクティブとなる。
これにより、コマンドパターンラッチ回路４は、キュー３に待機するＮ＋２番目のデータ転送に対するコマンドパターン（ｎｅｘｔ＿ｃｍｄｐｔｒ）をラッチし、デコーダ６は、デコード処理を開始する。そして、このデコード処理の間は、デコーダ７では処理が行われず、待機する状態となっている。
【００４２】
Ｎ＋３番目以降のデータ転送についても同様に処理される。すなわち、デコーダ６およびデコーダ７の処理が交互に行われ、かつ、連結信号生成回路１２が生成する確定した連結信号（ｃｏｎｎｅｃｔ）によるタイミングをもって行われる。
出力選択回路１１は、各デコーダ６，７でデコードしたコマンド群を交互に選択して連結することによって、図示しないＤＤＲメモリに対するインタフェース信号（ＲＡＳ，ＣＡＳ，ＷＥ等）を生成する。
【００４３】
以上述べたように、本実施形態に係るメモリ制御装置１によれば、データ転送に対し、データ長に応じて予め設定した複数のコマンドパターンの中から選択して処理するように構成したので、データ転送を分割して行う場合など様々なデータ量が存在するデータ転送を効率よく行うことができる。
また、本実施形態に係るメモリ制御装置１によれば、前後するデータ転送は順次コマンドパターンが選択されて、一対のコマンドパターンラッチ回路４，５と、一対のデコーダ６，７により交互に処理し、その際、前後のコマンドパターンが連結可能なタイミングをもって、各デコーダの処理が開始されるように構成したので、予め規定されるメモリのスペック違反とならない安全なインターリーブを実現できるとともに、コマンドパターンが限定されているので、データ転送に対する検証を容易に行うことができる。
【００４４】
また、本実施形態に係るメモリ制御装置１によれば、連続するコマンドパターン間を連結可能なタイミングをもって順次連結させていくので、インタリーブによるデータ転送効率を高めることができるとともに、連続するコマンドパターン間の時間間隔を予め求めることができるので、コマンドパターンの組合せに基づいて、コマンドパターン間のデータ転送におけるワ−ストペナルティを見積もることができる。すなわち、メモリ制御装置１によれば、期待することができるデータ効率を予め予測することが可能である。
もっとも、より複雑に回路構成を行ったり、コマンドパターンを非常に多く設定することで、本発明に係るメモリ制御装置よりも効率的なメモリ制御回路を実現することは可能であるが、本発明は、比較的簡単な回路構成で限定された数のコマンドパターンによってインターリーブを実現するので、メモリ制御装置のコスト低減に資するとともに、データ転送に対する検証が容易となる利点がある。
【００４５】
なお、本実施形態は、上述した内容に拘泥せず、本発明の要旨を変更しない範囲内で様々な改変を行うことが可能である。
たとえば、各デコーダ６，７において行うデコード処理をＳＲＡＭによって実現することができる。すなわち、コマンドパターン毎にカウンタ８，９に相当するアドレスを割り当て、各アドレスに、コマンドパターンをデコードした場合のコマンド群を順にデータとして記憶させる。そして、各デコーダ６，７は、入力したコマンドパターン（ｎｅｘｔ＿ｃｍｄｐｔｒ）に応じたアドレスを順に参照して、コマンドを得る。
これにより、ＤＤＲスペックが変更された場合やコマンドパターンを新たに追加する場合等に、ＳＲＡＭの内容を変更する（書き換える）ことで容易に適応させることができ、メモリ制御装置１を汎用性および拡張性に優れたものとすることができる。
【００４６】
第２の実施形態
以下、第２の実施形態に係るメモリ制御装置について述べる。
本実施形態に係るメモリ制御装置では、第１の実施形態に係るメモリ制御装置１と比較して、制御対象であるＤＤＲメモリのメモリマップに応じた最適な構成を有するものである。
【００４７】
第１の実施形態において、図３および図４に関連付けて述べたように、図３に示したメモリマップを有するＤＤＲメモリでは、各バンクのアドレス量が比較的少ないために、図２に示したコマンドパターンにより、ほぼデータ量に応じた転送を行うことができる。
しかし、図３に示したメモリマップでは、図８に示すように、ＤＤＲメモリにとって効率の良い３２アドレス分のデータ量のコマンドがローを跨ぐ可能性があり、本来１つの転送で実行すべきデータ転送を２つに分割しなければならない場合が生ずる。正確には、転送対象のデータが１３アドレス分を超える場合に、ローを跨ぐ可能性がある。
【００４８】
一方、ローを跨ぐことを回避するために、ＤＤＲメモリの各バンクのアドレス量を増加させて対応することができる。
図９は、バンクＡ〜Ｄの各バンクが８アドレス単位であるメモリマップの一例であり、０番目のアドレスから３９番目のアドレスが８アドレス単位で順に各バンクに割り当てられている。図１０は、図９に示すメモリマップを有するＤＤＲメモリに対するデータ転送のコマンドパターンの選択の一例を示す図である。
【００４９】
図９に示すメモリマップによれば、少なくとも２５アドレス分のデータ量を転送する場合にローを跨ぐことは避けられ、図３で示したメモリマップよりもデータ効率が良い。たとえば、図１０に示す例では、ローを跨ぐことは回避され、コマンドパターン：「１１」が選択されている。
しかしながら、図９に示すメモリマップでは、図４（ｂ）と図１０を比較して明らかなように、データ量の少ないコマンドパターンを選択することができない。
【００５０】
そこで、本実施形態に係るメモリ制御装置では、ローを跨ぐことを回避するためにバンク毎のアドレス量を増加させたメモリマップを設定する場合に、効率的にデータ量の少ないコマンドパターンを選択することができるようにする。
そして、かかるメモリマップでは、アクセスしないバンクが多くなることに着目し、１つのデータ転送において、アクセスするバンクの順番を回転させることによってデータ効率を向上させることを特徴とする。
【００５１】
図１１は、バンクＡ〜Ｄからなる４バンク構成のＤＤＲメモリに対するコマンドに対して設定されるコマンドパターン群の一例であり、（ａ）〜（ｄ）は４バンク用のコマンドパターンを、（ｅ）〜（ｈ）は３バンク用のコマンドパターンを、（ｉ）〜（ｌ）は２バンク用のコマンドパターンを、（ｍ）〜（ｐ）は１バンク用のコマンドパターンを、それぞれ示す。
図１１では、同数のバンク用のコマンドパターンでは、アクセスする順番がバンク毎に異なる。たとえば、４バンク用のコマンドパターンである（ａ）〜（ｄ）では、それぞれ、Ａ−Ｂ−Ｃ−Ｄ、Ｂ−Ｃ−Ｄ−Ａ、Ｃ−Ｄ−Ａ−Ｂ、Ｄ−Ａ−Ｂ−Ｃの順に各バンクがアクセスされる。すなわち、アクセスを開始する最初のバンクがそれぞれ異なるのである。
なお、図では、同数のバンク用のコマンドパターン群は、バンクＡからアクセスが開始するコマンドパターンのみが表されているが、バンクＡ以外のバンクからアクセスが開始するコマンドパターンも同様である。
【００５２】
図１２は、上述したようにアクセスの順番が回転して設定されたコマンドパターンを用いた場合のデータ転送処理を図解し、（ａ）は、図９に示したメモリマップ上のデータを転送する際に選択するコマンドパターンを、（ｂ）は、さらに次のデータ転送を行う際に選択するコマンドパターンの連結方法を、それぞれ示す。
図１２（ａ）に示す例は、アクセスがバンクＡおよびバンクＢのみとなる場合を示し、この場合には、図１１に示すコマンドパターン：「８」が選択されて処理される。そして、その後に次のデータ転送を行う場合には、図１２（ｂ）に示すように、バンクＣからアクセスが開始されるコマンドパターンを選択する。
すなわち、次のデータ転送においては、データ長に応じて、バンクＣからアクセスが開始されるコマンドパターン：「２」、「６」、「１０」、「１４」（図１１参照）の中から選択して処理する。
【００５３】
以上述べたように、本実施形態に係るメモリ制御装置によれば、前の転送時にアクセスが終了するバンクに応じて、次の転送時にアクセスを開始するバンクを選択することにより、アクセスするバンクの順番を回転させながらインターリーブを行うので、ローを跨ぐことを回避するためにバンク毎のアドレス量を増加させた場合にも、転送効率を向上させることができる。
また、バスマスタ等が１バンク単位でデータ転送したい場合に、簡易な構成によりデータ効率を上げることができる。
【００５４】
第３の実施形態
以下、第３の実施形態に係るメモリ制御装置について述べる。
上述した第２の実施形態に係るメモリ制御装置によれば、転送効率を向上させることができる一方で、コマンドパターンの組み合わせによっては、インターリーブとして問題が生じる場合がある。
【００５５】
図１３は、コマンドパターンの組み合わせによって、インタリーブとして問題が生ずる場合を例示する。
図１１で述べたように、第２の実施形態に係るメモリ制御装置では、たとえば、１バンクのみのアクセスを想定しているので、図１３に示すように、バンクＢのみにアクセスするコマンドパターンの後に、バンクＡのみにアクセスするコマンドパターンが選択され、さらにバンクＢを含むコマンドパターンが選択される場合があり得る。
すなわち、第２の実施形態で述べたように、アクセスを開始するバンクを順番を順に回転させていく方法では、図１３において、バンクＡのみのコマンドパターンの次のデータ転送では、再びバンクＢからアクセスを開始することになる。
【００５６】
ここで、ＤＤＲメモリの仕様によっては、同一バンクに対する複数のアクセスの間隔を所定サイクル数以上確保することが条件となっている場合があり、図１３に示すようなアクセスは許容されない場合がある（ＤＤＲメモリのスペック違反）。
このようなＤＤＲメモリのスペック違反は、Ａ−Ｂ−Ｃ−Ｄというバンクに対するアクセスの順番を前後するコマンドパターンの間で１バンク飛ばすような場合や、各バンク間でデータ長が異なる場合などにおいても生ずる可能性がある。
【００５７】
本実施形態では、かかるＤＤＲメモリのスペック違反とならないようにするためのコマンドパターンの連結方法に特徴がある。具体的には、デコーダで連結信号を生成する際に、処理対象のコマンドパターンの次のコマンドパターンだけでなく、更にその次のコマンドパターンを意識して連結信号を生成するようにする。
なお、この考え方を拡張し、後続する３以上の複数のコマンドパターン（たとえば、３個や４個のコマンドパターン）を考慮して最適な連結信号を生成する方法も考えられるが、システム全体のベストエフォートには影響しても、ワースト時の転送効率は変わらない。また、後続する３以上の複数のコマンドパターンを考慮する場合には、その設計や検証が非常に煩雑になるので、本実施形態においては行わない。
【００５８】
次いで、本実施形態に係るメモリ制御装置のコマンドパターンの連結方法の具体例について述べる。
図１４は、本実施形態における連結信号の生成方法を例示したものである。
たとえば、図１４（ａ）において、先行するコマンドパターンがバンクＢのみのアクセスである場合に、その次のバンクＡのみのコマンドパターンを連結させる時には、さらにその次のバンクＢを含むコマンドパターン（点線で示す）を意識して、バンクＡのみのコマンドパターンを連結する。これにより、バンクＡのみのコマンドパターンが、バンクＢのみのコマンドパターンに近づき過ぎない状態で連結される結果、バンクＢを含むコマンドパターン同士の間隔がＤＤＲメモリのスペック違反となることを回避することができる。
【００５９】
図１４（ｂ）では、先行するコマンドパターンがバンクＣのみのアクセスである場合に、その次のバンクＡのみのコマンドパターンを連結させる時には、さらにその次のコマンドパターン、すなわち、バンクＢから開始されバンクＣを含むコマンドパターン（点線で示す）を意識して、バンクＡのみのコマンドパターンを連結する。
図１４（ｃ）では、先行するコマンドパターンがバンクＢおよびバンクＣのアクセスである場合に、その次のバンクＡのみのコマンドパターンを連結させる時には、さらにその次のコマンドパターン、すなわち、バンクＢから開始されバンクＣを含むコマンドパターン（点線で示す）を意識して、バンクＡのみのコマンドパターンを連結する。
【００６０】
以上述べたように、本実施形態に係るメモリ制御装置によれば、第２の実施形態に係るメモリ制御装置と比較して、ＤＤＲメモリのスペック違反とならないように前後のコマンドパターンを連結させるので、第１および第２の実施形態で述べたメモリ制御装置を広く適用させることができる。
【図面の簡単な説明】
【００６１】
【図１】実施形態に係るメモリ制御装置の回路ブロック図の一例である。
【図２】４バンク構成のメモリに対するデータ転送に対して選択されるコマンドパターン群の一例であり、（ａ）は、無指示コマンド（ＮＯＰ）の場合を、（ｂ）は、メモリのリフレッシュの場合を、（ｃ）〜（ｐ）はそれぞれ単一のコマンドパターンを、それぞれ示す。
【図３】各バンクが４アドレス単位で構成されるメモリマップの一例である。
【図４】データ転送に対するコマンドパターンの選択について説明するための図であり、（ａ）は転送するデータ量が比較的少ない場合を、（ｂ）は転送するデータ量が比較的多い場合を、それぞれ示す。
【図５】連結信号の生成方法を示す一例である。
【図６】連結信号の生成方法を示す一例である。
【図７】連結信号生成回路の一実施例を示す回路図である。
【図８】データ転送に係るコマンドがアドレスのローを跨ぐ一例である。
【図９】各バンクが８アドレス単位で構成されるメモリマップの一例である。
【図１０】ＤＤＲメモリに対するデータ転送のコマンドパターンの選択の一例を示す。
【図１１】４バンク構成のＤＤＲメモリに対するコマンドに対して設定されるコマンドパターン群の一例であり、（ａ）〜（ｄ）は４バンク用のコマンドパターンを、（ｅ）〜（ｈ）は３バンク用のコマンドパターンを、（ｉ）〜（ｌ）は２バンク用のコマンドパターンを、（ｍ）〜（ｐ）は１バンク用のコマンドパターンを、それぞれ示す。
【図１２】アクセスの順番が回転して設定されたコマンドパターンを用いた場合のデータ転送処理を図解し、（ａ）は、データ転送の際に選択するコマンドパターンを、（ｂ）は、さらに次のデータ転送の際に選択するコマンドパターンの連結方法を、それぞれ示す。
【図１３】コマンドパターンの組み合わせによって、インタリーブとして問題が生ずる場合を例示する図である。
【図１４】連結信号の生成方法を例示する図である。
【符号の説明】
【００６２】
１…メモリ制御装置、２…コマンドパターン選択回路、３…キュー、４，５…コマンドパターンラッチ回路、６，７…デコーダ、８，９…カウンタ、１０…デコーダ選択回路、１１…出力選択回路、１２…連結信号生成回路、１２１…デコーダ、１２２…ＡＮＤ回路ブロック、１２３…ＯＲ回路、１２４…ゲート回路群、１２５…ラッチ回路群、１３…分配回路、１４，１５…ゲート回路。
【図１】
2006011593.tif 000003
【図２】
2006011593.tif 000004
【図３】
2006011593.tif 000005
【図４】
2006011593.tif 000006
【図５】
2006011593.tif 000007
【図６】
2006011593.tif 000008
【図７】
2006011593.tif 000009
【図８】
2006011593.tif 000010
【図９】
2006011593.tif 000011
【図１０】
2006011593.tif 000012
【図１１】
2006011593.tif 000013
【図１２】
2006011593.tif 000014
【図１３】
2006011593.tif 000015
【図１４】
2006011593.tif 000016