(57)【要約】【課題】  複数のメモリバンクに格納された連続的なデータに対し、データ処理装置が効率的にアクセスを行うことができるようにする。【解決手段】  データ処理装置からなされた同期型メモリに対するデータ転送要求が、バースト転送長単位リクエスト分割部１１１ａによって、データ転送量が一度にバースト転送されるデータ量で、一度に転送されるデータが単一のメモリバンク内のデータである複数のデータ転送要求に分割される。分割されたデータ転送要求は、リクエスト組み立て部１１１ｂによって、各メモリバンクに対するデータ転送要求が１つずつ組み合わせられたデータ転送要求に組み立てられて、複数の新たなデータ転送要求として出力される。【選択図】  図２
2006268801.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置によるメモリに対するアクセスを制御するメモリアクセス制御回路であって、
前記メモリは、独立して動作させることが可能な複数個のメモリバンクを有し、クロック信号に同期してデータをバースト転送することが可能な同期型メモリであり、
前記メモリに対するデータ転送要求を前記データ処理装置から受け付けるとともに、受け付けたデータ転送要求を、データ転送量が一度にバースト転送されるデータ量で、一度に転送されるデータが単一のメモリバンク内のデータである複数のデータ転送要求に分割するバースト転送長単位転送要求分割部と、
前記バースト転送長単位転送要求分割部が分割した複数のデータ転送要求を、各メモリバンクに対するデータ転送要求が１つずつ組み合わせられたデータ転送要求に組み立てて、複数の新たなデータ転送要求を生成する転送要求組み立て部と、
前記新たなデータ転送要求に基づいて、前記メモリと前記データ処理装置との間のデータ転送を制御するデータ転送制御部と、
を備えたことを特徴とするメモリアクセス制御回路。
【請求項２】
請求項１のメモリアクセス制御回路であって、
前記転送要求組み立て部は、データ転送要求を組み合わせる際に、何れかのメモリバンクに対するデータ転送要求が不足している場合には、不足したデータ転送要求を生成して組み合わせるように構成されていることを特徴とするメモリアクセス制御回路。
【請求項３】
請求項１および請求項２のうちの何れか１項のメモリアクセス制御回路であって、
前記バースト転送長単位転送要求分割部、および転送要求組み立て部は、少なくともそれぞれ２つ以上設けられ、
さらに、各転送要求組み立て部が生成したデータ転送要求の実行順序を決定する実行順序決定部を備え、
前記データ転送制御部は、前記実行順序決定部が決定した順序でデータ転送を制御するように構成されていることを特徴とするメモリアクセス制御回路。
【請求項４】
請求項１および請求項２のうちの何れか１項のメモリアクセス制御回路であって、さらに、
前記バースト転送長単位転送要求分割部によってデータ転送要求が受け付けられるデータ処理装置とは互いに異なるデータ処理装置から前記メモリに対するデータ転送要求を受け付けるとともに、受け付けたデータ転送要求を、データ転送量が、一度にバースト転送されるデータ量と前記メモリが有するメモリバンクの数との乗算値であるデータ転送要求に分割して複数の新たなデータ転送要求を生成する全メモリバンク単位転送要求分割部と、
前記転送要求組み立て部が生成したデータ転送要求、および前記全メモリバンク単位転送要求分割部が生成したデータ転送要求の実行順序を決定する実行順序決定部とを備え、
前記データ転送制御部は、前記実行順序決定部が決定した順序でデータ転送を制御するように構成されていることを特徴とするメモリアクセス制御回路。
【請求項５】
請求項３および請求項４のうちの何れか１項のメモリアクセス制御回路であって、
前記実行順序決定部は、データ処理装置から与えられた回数情報が示す回数だけ連続して、当該データ処理装置のデータ転送要求が実行されるように実行順序を決定するように構成されていることを特徴とするメモリアクセス制御回路。
【請求項６】
請求項３および請求項４のうちの何れか１項のメモリアクセス制御回路であって、さらに、
前記バースト転送長単位転送要求分割部と同じデータ転送要求を受け付けるとともに、受け付けたデータ転送要求を、データ転送量が、一度にバースト転送されるデータ量と前記メモリバンクの数との乗算値であるデータ転送要求に分割して複数の新たなデータ転送要求を生成する全メモリバンク単位転送要求分割部と、
データ転送が終了していないデータ転送要求がいくつあるかを示す転送状況情報が入力され、前記転送状況情報が示すデータ転送待ちのデータ転送要求の数が所定数よりも少ない場合には、前記全メモリバンク単位転送要求分割部が生成したデータ転送要求を実行順序決定部に出力し、データ転送待ちのデータ転送要求の数が所定数よりも多い場合には、前記転送要求組み立て部が生成したデータ転送要求を実行順序決定部に出力する選択部とを備え、
前記実行順序決定部は、入力されたデータ転送要求の実行順序を決定する一方、前記転送状況情報を出力するように構成されていることを特徴とするメモリアクセス制御回路。
【請求項７】
請求項１および請求項２のうちの何れか１項のメモリアクセス制御回路であって、さらに、
前記バースト転送長単位転送要求分割部と同じデータ転送要求を受け付けるとともに、受け付けたデータ転送要求を、データ転送量が、一度にバースト転送されるデータ量と前記メモリバンクの数との乗算値であるデータ転送要求に分割して複数の新たなデータ転送要求を生成する全メモリバンク単位転送要求分割部と、
前記データ処理装置がデータ転送要求を出力してからどれくらいの転送要求時間内にデータ転送が開始されるべきかを示す転送要求時間情報が前記データ処理装置から入力され、前記転送要求時間情報が示す転送要求時間が所定の時間よりも短い場合には、前記全メモリバンク単位転送要求分割部が生成したデータ転送要求を実行順序決定部に出力し、前記転送要求時間が所定の時間よりも長い場合には、前記転送要求組み立て部が生成したデータ転送要求を実行順序決定部に出力する選択部と、
を備えたことを特徴とするメモリアクセス制御回路。
【請求項８】
請求項１および請求項２のうちの何れか１項のメモリアクセス制御回路であって、さらに、
前記バースト転送長単位転送要求分割部と同じデータ転送要求を受け付けるとともに、受け付けたデータ転送要求を、データ転送量が、一度にバースト転送されるデータ量と前記メモリバンクの数との乗算値であるデータ転送要求に分割して複数の新たなデータ転送要求を生成する全メモリバンク単位転送要求分割部と、
前記データ処理装置が出力する選択情報に基づいて、前記全メモリバンク単位転送要求分割部が生成したデータ転送要求、および前記転送要求組み立て部が生成したデータ転送要求の何れか一方を選択的に出力する選択部と、
を備えたことを特徴とするメモリアクセス制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置による同期型メモリに対するアクセス動作を制御するメモリアクセス制御回路に関するものである。
【背景技術】
【０００２】
近年、半導体プロセス技術の進化により、大規模システム回路が広く開発されている。大規模システム回路では、複数のデータ処理装置が１つのシステム内に設けられる場合があり、このような大規模システム回路（データ処理システム）では、それぞれのデータ処理装置が１つのメモリを共通に使用するユニファイドメモリアクセスシステムが採用されることが多い。ユニファイドメモリアクセスシステムでは、通常、複数のデータ処理装置から１つのメモリに対して発行されたデータ転送要求を調停するためにメモリアクセス制御回路が設けられている。ユニファイドメモリアクセスシステムに用いられたメモリアクセス制御回路としては、データ転送長を固定長に限定し、複数のデータ処理装置（リクエスタ）からのデータ転送の要求（リクエスト）を固定長のデータ転送要求に分割し、分割された要求毎に調停を行うようにしたものがある（例えば特許文献１を参照）。
【０００３】
また、上記のようなユニファイドメモリアクセスシステムでは、メモリにＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ）が用いられることが多い。ＳＤＲＡＭは、外部から供給されるカラムアドレスがプリセットされるカラムアドレスカウンタを備え、このカウンタを内部でインクリメントすることによって、連続的なデータアクセスが容易にできるという特徴がある。このようなアクセスは、バーストアクセスと呼ばれる。
【０００４】
また、ＳＤＲＡＭは、バーストアクセス中に別のカラムアドレスを入力すれば、ロウアドレスは同じで、カラムアドレスが別のデータにアクセスすることもできる。
【０００５】
ただし、連続的にアクセスしている際に、ロウアドレスを変更すれば、カラムアドレス系の動作時間に加え、例えばプリチャージに要する時間等のロウアドレス系の動作時間がさらに必要になり、データが外部に読み出されるまでに、少なからず余計な時間がかかってしまうことになる。
【０００６】
アクセスに余計な時間がかかるのを避けるため、ＳＤＲＡＭは、独立して動作させることが可能な複数個のメモリブロック（以下、メモリバンク、または単にバンクと言う。）を備えている。一般的にはＳＤＲＡＭには、バンクＡ、バンクＢ、バンクＣ、バンクＤといった複数のメモリバンクがあり、このメモリバンクが順繰りにアクセスされることで効率的なデータ転送が可能になる。
【０００７】
図１１は、ＳＤＲＡＭのバンクＡ〜Ｄが順繰りにアクセスされるときのアクセスタイミングを例示している。同図は、４ワード毎にバンクを切換え、ＣＬ（カスレーテンシー：カラムアドレスが確定してから読み出しデータが確定するまでのメモリサイクル数）が３サイクルの例である。
【０００８】
例えば、このアクセスタイミングで動作するＳＤＲＡＭは、先ず、アクティブコマンド（Ａｃｔ）によりバンクＡが選択されて、ロウアドレス０（Ｒｏｗ０）が与えられ、その後、リードコマンド（Ｒｅａｄ）が入力されて、カラムアドレス０（Ｃｏｌ０）が指定されることによって、バンクＡから４ワードのデータＡ００〜Ａ０３が順次読み出される。続いて、バンクＢを指定するアクティブコマンド、およびリードコマンドが入力されて、バンクＢから４ワードのデータが読み出される。バンクＣ、およびバンクＤについても同様に順次アクセスが行われ、それぞれのバンクから４ワードのデータが読み出される。
【０００９】
バンクＢに対するアクティブコマンド（Ａｃｔ）の入力、ロウアドレスの指定、およびリードコマンド（Ｒｅａｄ）によるカラムアドレスの指定は、バンクＡのアクセス途中に発行することができる。したがって、何れかのバンクのアクセスしている途中で、次にアクセスするバンクに予めコマンドを発行して、バンクＡ〜Ｄを順次アクセスすることにより、無駄なアクセス時間を無くして、効率よくメモリをアクセスすることができる。また、図１１に示した例では、バンクＡ、およびバンクＢのＲｏｗ１にアクセスするために、バンクＡ、およびバンクＢに対して、プリチャージコマンド（Ｐｒｅ）を入力している。
【００１０】
したがって、ＳＤＲＡＭによって構成されたユニファイドメモリアクセスシステムにおいて、例えば音声データや画像データのように連続性のあるデータがＳＤＲＡＭに格納された場合には、効率のよいデータの転送を行うことが可能になる。例えば図１２は、ＳＤＲＡＭのバンク構成を利用して、画像データのように連続したデータが格納された例を示している。この例では、画像の１ライン分に相当する連続したデータが４ワード毎にバンクＡ〜Ｄに格納されている。すなわち、データ０からデータ３までがバンクＡに、続くデータ４からデータ７までがバンクＢに、データ８からデータ１１までがバンクＣに、データ１２からデータ１５までがバンクＤに、それぞれ格納されている。続く１ライン分のデータも同様に、それぞれ４ワード毎にバンクＡ〜Ｄに格納されている。
【００１１】
このように格納されたデータは、メモリアクセス制御回路に制御されて、例えば読み出し開始位置が０、転送サイズが１６ワードであれば、図１３（１）に示すように、バンクＡ〜Ｄがそれぞれ１回づつアクセスされることによって画像の１ライン分に相当するデータが効率よく転送される。
【００１２】
しかし、上記のメモリアクセス制御回路では、バンクの途中からデータを読み取る場合には、データ転送の無駄を生じてしまう場合がある。
【００１３】
例えば図１３（２）に示すように、読み出し開始位置が４、転送サイズが１６ワードの場合には、４バンクに対し連続してアクセスを行うシステムでは、バンクＡ〜Ｄがそれぞれ２回づつアクセスされる。この場合、１回目のリクエスト時のバンクＡに対するアクセスと、２回目のリクエスト時のバンクＢ〜Ｄに対するアクセスとは、無駄なアクセスであり、効率の悪い転送となっている。
【００１４】
また、図１３（３）に示すように、読み出し開始位置が０、転送サイズが９０ワードの場合には、４バンクを連続してアクセスするシステムでは、バンクＡ〜Ｄに対し、それぞれ６回のアクセスが行われる。また、図１３（４）に示すように、読み出し開始位置が９０、転送サイズが９０ワードの場合には、バンクＡ〜Ｄに対し、それぞれ７回のアクセスが行われる。図１３（３）と図１３（４）とに示されたデータ転送は、転送サイズが同じ９０ワードにも係わらず、図１３（４）の場合の方がアクセス回数が１回多くなってしまっている。
【００１５】
このように、ユニファイドメモリアクセスシステムにおける上記メモリアクセス制御回路では、転送の効率が読み出し開始の位置によって左右される。
【００１６】
このような転送効率の悪化に対しては、ＳＤＲＡＭからデータを読み出す順序を変更することによって、メモリアクセスが必ず一定のバンクから始まり、一定のバンクで終了するようにして、無駄なアクセスをさせないようにしたメモリアクセス制御回路がある（例えば特許文献２を参照。）。
【特許文献１】特開２００４−４６３７１号公報（第２図）
【特許文献２】特開２０００−２５１４７０号公報（第１図）
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかし、上記のデータの読み出す順序を変更するメモリアクセス制御回路は、途中からアクセスされるバンクに対しては、読み出し開始の位置に応じて、同一バンク内で、別のカラムアドレスのデータを組み合わせることによってバースト転送のサイズ分のデータ転送が行われるようにしていたので、データ転送（バースト転送）の途中でカラムアドレスを入力し直さなければならなかった。バースト転送の途中でカラムアドレスが変更されると、一つのバンクに対するアクセスが終了し、次のバンクにアクセスした際に、無効期間（データが出力されない期間）を生じてしまい、データ転送の効率が悪化してしまうという問題を有していた。
【００１８】
例えば図１４は、ＳＤＲＡＭのバンクＡ〜Ｄが順次アクセスされる際に、バンクＡへのアクセス中に、ロウアドレスは変更されずに、カラムアドレスのみが変更されてＳＤＲＡＭにアクセスされる場合のタイミングを示している。この例では、バンクＡのＲｏｗ１、Ｃｏｌ０からのバーストアクセス中に、同じバンク、同じロウアドレスで、カラムアドレスのみがＣｏｌ６に変更されて、アクセスされている。この場合、バーストアクセス中に別のカラムアドレスが入力されるので、アクティブコマンド（Ａｃｔ）、リード（Ｒｅａｄ）、およびライトコマンドの入力ができなくなり、バンクＡの出力データとバンクＢの出力データとの間に無効期間を生じている。
【００１９】
本発明は、前記の問題に着目してなされたものであり、複数のメモリバンクに格納された連続的なデータに対し、データ処理装置が効率的にアクセスを行うことができるメモリアクセス制御回路を提供することを課題とする。
【課題を解決するための手段】
【００２０】
前記の課題を解決するため、請求項１の発明は、
データ処理装置によるメモリに対するアクセスを制御するメモリアクセス制御回路であって、
前記メモリは、独立して動作させることが可能な複数個のメモリバンクを有し、クロック信号に同期してデータをバースト転送することが可能な同期型メモリであり、
前記メモリに対するデータ転送要求を前記データ処理装置から受け付けるとともに、受け付けたデータ転送要求を、データ転送量が一度にバースト転送されるデータ量で、一度に転送されるデータが単一のメモリバンク内のデータである複数のデータ転送要求に分割するバースト転送長単位転送要求分割部と、
前記バースト転送長単位転送要求分割部が分割した複数のデータ転送要求を、各メモリバンクに対するデータ転送要求が１つずつ組み合わせられたデータ転送要求に組み立てて、複数の新たなデータ転送要求を生成する転送要求組み立て部と、
前記新たなデータ転送要求に基づいて、前記メモリと前記データ処理装置との間のデータ転送を制御するデータ転送制御部と、
を備えたことを特徴とする。
【００２１】
また、請求項２の発明は、
請求項１のメモリアクセス制御回路であって、
前記転送要求組み立て部は、データ転送要求を組み合わせる際に、何れかのメモリバンクに対するデータ転送要求が不足している場合には、不足したデータ転送要求を生成して組み合わせるように構成されていることを特徴とする。
【００２２】
また、請求項３の発明は、
請求項１および請求項２のうちの何れか１項のメモリアクセス制御回路であって、
前記バースト転送長単位転送要求分割部、および転送要求組み立て部は、少なくともそれぞれ２つ以上設けられ、
さらに、各転送要求組み立て部が生成したデータ転送要求の実行順序を決定する実行順序決定部を備え、
前記データ転送制御部は、前記実行順序決定部が決定した順序でデータ転送を制御するように構成されていることを特徴とする。
【００２３】
これらにより、複数のメモリバンクに格納された連続的なデータに対し、データ処理装置が効率的にアクセスを行うことが可能になる。
【００２４】
また、各アクセス要求が複数のバンクに跨らないように、メモリに対するアクセス要求を分割し、所定のメモリバンクから順にメモリにアクセスされるように、分割したアクセス要求を並べ替えるので、無効期間（データが出力されない期間）を生じさせないようにできる。
【００２５】
また、請求項４の発明は、
請求項１および請求項２のうちの何れか１項のメモリアクセス制御回路であって、さらに、
前記バースト転送長単位転送要求分割部によってデータ転送要求が受け付けられるデータ処理装置とは互いに異なるデータ処理装置から前記メモリに対するデータ転送要求を受け付けるとともに、受け付けたデータ転送要求を、データ転送量が、一度にバースト転送されるデータ量と前記メモリが有するメモリバンクの数との乗算値であるデータ転送要求に分割して複数の新たなデータ転送要求を生成する全メモリバンク単位転送要求分割部と、
前記転送要求組み立て部が生成したデータ転送要求、および前記全メモリバンク単位転送要求分割部が生成したデータ転送要求の実行順序を決定する実行順序決定部とを備え、
前記データ転送制御部は、前記実行順序決定部が決定した順序でデータ転送を制御するように構成されていることを特徴とする。
【００２６】
これにより、例えば、複数のメモリバンクに格納された連続的なデータに対し、バンクの途中からデータを読み取るような処理を行うデータ処理装置は、バースト転送長単位転送要求分割部に接続し、常に一定のバンクからデータを読み取るような処理を行うデータ処理装置は、全メモリバンク単位転送要求分割部に接続すれば、それぞれのデータ処理装置に適した方法でデータ転送が行われる。
【００２７】
また、請求項５の発明は、
請求項３および請求項４のうちの何れか１項のメモリアクセス制御回路であって、
前記実行順序決定部は、データ処理装置から与えられた回数情報が示す回数だけ連続して、当該データ処理装置のデータ転送要求が実行されるように実行順序を決定するように構成されていることを特徴とする。
【００２８】
これにより、データ処理装置に一度に転送されるデータサイズを制御することができるので、例えば大量のデータを必要とするデータ処理装置に対しては、一度の処理で転送されるデータサイズの増大を図ることができ、処理速度の向上やデータ転送の効率化を図ることが可能になる。
【００２９】
また、請求項６の発明は、
請求項３および請求項４のうちの何れか１項のメモリアクセス制御回路であって、さらに、
前記バースト転送長単位転送要求分割部と同じデータ転送要求を受け付けるとともに、受け付けたデータ転送要求を、データ転送量が、一度にバースト転送されるデータ量と前記メモリバンクの数との乗算値であるデータ転送要求に分割して複数の新たなデータ転送要求を生成する全メモリバンク単位転送要求分割部と、
データ転送が終了していないデータ転送要求がいくつあるかを示す転送状況情報が入力され、前記転送状況情報が示すデータ転送待ちのデータ転送要求の数が所定数よりも少ない場合には、前記全メモリバンク単位転送要求分割部が生成したデータ転送要求を実行順序決定部に出力し、データ転送待ちのデータ転送要求の数が所定数よりも多い場合には、前記転送要求組み立て部が生成したデータ転送要求を実行順序決定部に出力する選択部とを備え、
前記実行順序決定部は、入力されたデータ転送要求の実行順序を決定する一方、前記転送状況情報を出力するように構成されていることを特徴とする。
【００３０】
また、請求項７の発明は、
請求項１および請求項２のうちの何れか１項のメモリアクセス制御回路であって、さらに、
前記バースト転送長単位転送要求分割部と同じデータ転送要求を受け付けるとともに、受け付けたデータ転送要求を、データ転送量が、一度にバースト転送されるデータ量と前記メモリバンクの数との乗算値であるデータ転送要求に分割して複数の新たなデータ転送要求を生成する全メモリバンク単位転送要求分割部と、
前記データ処理装置がデータ転送要求を出力してからどれくらいの転送要求時間内にデータ転送が開始されるべきかを示す転送要求時間情報が前記データ処理装置から入力され、前記転送要求時間情報が示す転送要求時間が所定の時間よりも短い場合には、前記全メモリバンク単位転送要求分割部が生成したデータ転送要求を実行順序決定部に出力し、前記転送要求時間が所定の時間よりも長い場合には、前記転送要求組み立て部が生成したデータ転送要求を実行順序決定部に出力する選択部と、
を備えたことを特徴とする。
【００３１】
また、請求項８の発明は、
請求項１および請求項２のうちの何れか１項のメモリアクセス制御回路であって、さらに、
前記バースト転送長単位転送要求分割部と同じデータ転送要求を受け付けるとともに、受け付けたデータ転送要求を、データ転送量が、一度にバースト転送されるデータ量と前記メモリバンクの数との乗算値であるデータ転送要求に分割して複数の新たなデータ転送要求を生成する全メモリバンク単位転送要求分割部と、
前記データ処理装置が出力する選択情報に基づいて、前記全メモリバンク単位転送要求分割部が生成したデータ転送要求、および前記転送要求組み立て部が生成したデータ転送要求の何れか一方を選択的に出力する選択部と、
を備えたことを特徴とする。
【００３２】
これらにより、データ転送待ちをしているアクセス要求の数や、データ処理装置から与えられた転送要求時間や、データ処理装置の制御に応じて、データ転送要求を分割する方法が選択されるので、処理速度の向上やデータ転送の効率化を図ることが可能になる。
【発明の効果】
【００３３】
本発明によれば、複数のメモリバンクに格納された連続的なデータに対し、データ処理装置が効率的にアクセスを行うことが可能になる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明の実施形態について図面を参照しながら説明する。
【００３５】
《発明の実施形態１》
（データ処理システムの構成）
図１は、本発明の実施形態１に係るメモリアクセス制御回路１００（ＭＡＣ）が用いられたデータ処理システムの構成を示すブロック図である。このデータ処理システムは、同図に示すように、メモリアクセス制御回路１００、メモリ２００、および複数のリクエスタ３００（データ処理装置）を備えて構成され、各リクエスタ３００は、バス４００を介してメモリアクセス制御回路１００と接続されている。そして、各リクエスタ３００が処理するデータは、メモリ２００に格納されてアクセスされるようになっている。すなわち、このデータ処理システムでは、１つのメモリ２００の格納領域を複数のリクエスタ３００で共有する、いわゆるユニファイドメモリアクセスシステムが構成されている。
【００３６】
メモリアクセス制御回路１００は、各リクエスタ３００のメモリ２００に対するアクセス管理（何れのリクエスタに対してメモリ２００と入出力を行うかの管理）、およびメモリ２００のマッピングの管理（メモリ２００の何れのアドレスからデータを入出力するかの管理）を行うハードウェアである。具体的には、メモリアクセス制御回路１００は、ある１つのリクエスタ３００からアクセス要求（リクエスト）を受け付けると、そのアクセス要求と他のリクエスタ３００からのアクセス要求との調停を図り、そのアクセス要求の実行タイミングを決定し、そのリクエストに対する実行タイミングとなった時に、対応する１つのリクエスタ３００に対してイネーブル信号ＥＮを発行するようになっている。
【００３７】
メモリ２００は、所定のクロック信号に同期してデータ転送を行うメモリ装置であり、メモリアクセス制御回路１００を介して、各リクエスタ３００からアクセスされるようになっている。
【００３８】
また、メモリ２００は、独立して動作させることが可能な複数個のメモリブロック（以下、メモリバンク、または単にバンクと言う。）を備えて構成されている。以下の説明では、メモリ２００が４つのメモリバンク（バンクＡ、バンクＢ、バンクＣ、およびバンクＤ）を備えている例を説明する。
【００３９】
また、メモリ２００は、外部から供給されるカラムアドレスがプリセットされるカラムアドレスカウンタを備え、このカウンタをメモリ２００がインクリメントすることによって、連続的なデータアクセス（バーストアクセス）が行われるようになっている。バーストアクセスが行われる際には、１つのメモリバンクに対しては、一度に一定のサイズ（バースト転送長）のデータ転送が行われる。
【００４０】
このようなメモリ２００の例としては、例えばシンクロナスＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ）がある。
【００４１】
リクエスタ３００は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等のデータ処理装置である。リクエスタ３００は、メモリ２００にアクセスする場合、すなわち、メモリ２００に対して、データの書き込み、またはデータの読み出しを行う場合には、メモリアクセス制御回路１００に対してリクエストを発行し、メモリアクセス制御回路１００から前記イネーブル信号ＥＮが発行されている間、メモリアクセス制御回路１００を介してメモリ２００との間でデータの転送（データの書き込みのための転送、またはデータ読み出しのための転送）を行うようになっている。
【００４２】
なお、１回のリクエストにともなうデータ転送サイズは、リクエスタ３００によって異なっている。例えば、あるリクエスタは、１回のリクエストによって１２８ワード（ここでは、１ワードは３２ビット長のデータとする。）のデータ転送を要求し、また、あるリクエスタは、１回のリクエストによって３２ワードのデータ転送を要求する。
【００４３】
また、同一のリクエスタ３００から要求されるデータ転送のサイズは、一定でなくてもよい。
【００４４】
（メモリアクセス制御回路１００の構成）
上記メモリアクセス制御回路１００の構成についてさらに詳しく説明する。
【００４５】
メモリアクセス制御回路１００は、図２に示すように、リクエスト分割部１１０、リクエスト調停部１２０、およびアクセス制御部１３０を備えて構成されている。
【００４６】
リクエスト分割部１１０は、リクエスト分割ブロック１１１と複数の全バンク単位リクエスト分割部１１２とを備えて構成されている。各リクエスタ３００は、リクエスト分割ブロック１１１、および全バンク単位リクエスト分割部１１２の何れかと１対１に対応して接続されている。
【００４７】
リクエスト分割ブロック１１１は、バースト転送長単位リクエスト分割部１１１ａとリクエスト組み立て部１１１ｂとを備えて構成されている。
【００４８】
バースト転送長単位リクエスト分割部１１１ａは、接続されたリクエスタ３００のメモリ２００に対するアクセス要求（リクエスト）をバースト転送長単位のアクセス要求に分割して新たなアクセス要求を生成するようになっている。例えば、バースト転送長が４ワードの場合に、リクエスタ３００からのアクセス要求が８０ワードの転送の要求であれば、新たな２０個のアクセス要求が生成される。ただし、一度に転送されるデータが単一のメモリバンク内のデータとなるように、すなわち生成されたそれぞれのアクセス要求が複数のバンクに跨るアクセスにないように、リクエスタ３００のアクセス要求の分割が行われるようになっている。
【００４９】
リクエスト組み立て部１１１ｂは、バースト転送長単位リクエスト分割部１１１ａによって分割された複数のアクセス要求を並べ替え、各メモリバンクに対するアクセス要求を１つずつ組み合わせて１つのアクセス要求に組み立てた複数の新たなアクセス要求を生成するようになっている。この組み合わせは、組み立てられたアクセス要求が所定のメモリバンクから順に、全メモリバンク（バンクＡ〜Ｄ）に対し、バーストアクセスが行われるようにされる。
【００５０】
また、リクエスト組み立て部１１１ｂは、アクセス要求を組み合わせる際に、何れかのメモリバンクに対するアクセス要求が不足している場合には、不足したアクセス要求を生成して組み合わせるようになっている。
【００５１】
バースト転送長単位リクエスト分割部１１１ａとリクエスト組み立て部１１１ｂとが上記のように構成されることによって、リクエスト組み立て部１１１ｂから出力されるアクセス要求は、バースト転送長が４ワードで、バンク数が４の場合には、１６ワード単位のアクセス要求になる。
【００５２】
なお、何れのメモリバンクからアクセスが開始されるようにアクセス要求を組み立てるかは、データの格納方法によって決めればよい。例えばメモリ２００に画像の１ライン分に相当する連続データの１６ワード分が、図３（１）に示すように、４ワード単位でバンクＡ、Ｂ、Ｃ、Ｄの順に格納されている場合には、バンクＡからアクセスされるように並べ替えを行う。
【００５３】
全バンク単位リクエスト分割部１１２は、接続されたリクエスタ３００のメモリ２００に対するアクセス要求を、全メモリバンクに対しバーストアクセスした場合のデータ転送サイズに分割するようになっている。分割された各アクセス要求における開始バンクは特に規定はなく、各メモリバンクがそれぞれ１つずつ転送されるようになっていればよい。転送時のバンクの順番は全アクセスにおいて一定の順番である。
【００５４】
例えばバースト転送長が４ワードで、メモリバンクが４つある場合には、全バンク単位リクエスト分割部１１２が各リクエスタ３００から受け付けたアクセス要求の転送開始位置が０または１６Ｎ（Ｎは０または正の整数）で、データ転送のサイズが１６ｍ＋ｎワード（ｍは、０または正の整数、ｎは、０以上１５以下の整数）であったとすれば、図４に示すように、全バンク単位リクエスト分割部１１２は、アクセス要求を１６ワード（４ワード×４＝１６）ごとのアクセス要求に分割して、それぞれ１６ワード分のデータを転送する（ｍ＋１）個の新たなアクセス要求（ｎが０の場合には、ｍ個のアクセス要求）を生成する。
【００５５】
リクエスト調停部１２０は、リクエスト組み立て部１１１ｂ、および各全バンク単位リクエスト分割部１１２によって生成された複数のアクセス要求（何れも１６ワードの転送要求）を所定の調停方式に従って並べ替えるようになっている。リクエスト調停部１２０の調停方式は特に限定されない。
【００５６】
アクセス制御部１３０は、リクエスト調停部１２０の調停の結果に応じて、アクセス要求をした各リクエスタ３００とメモリ２００との間のデータ転送の制御を行うようになっている。詳しくは、データを転送するリクエスタ３００にイネーブル信号を出力し、メモリ２００との間のデータ転送を行う。データ転送は、メモリ２００に対しては、リクエスト組み立て部１１１ｂ、または全バンク単位リクエスト分割部１１２で生成されたアクセス要求の順番でデータ転送を行うが、各リクエスタ３００に対しては、その順番でなくてもかまわない。ＳＤＲＡＭアクセス用に並べ替えはアクセス制御部で行ってもかまわないし、リクエスタへの転送アドレスでもって、制御してもかまわない。
【００５７】
（メモリアクセス制御回路１００の動作）
上記のように構成されたメモリアクセス制御回路１００の動作をメモリ２００に画像の１ライン分に相当する連続データの１６ワード分が、図３（１）に示すように、４ワード単位でバンクＡ、Ｂ、Ｃ、Ｄの順に格納されている場合を例に説明する。
【００５８】
まず、読み出し開始位置が前記連続データの先頭の場合に、例えば、転送するデータのサイズが１６ワードであれば、このデータが全バンク単位リクエスト分割部１１２に接続されたリクエスタ３００からアクセスされた場合にも、またリクエスト分割ブロック１１１に接続されたリクエスタ３００からアクセスされた場合にも、ともに１つのリクエスト（図３（１）に示すリクエスト１）が生成され、１６ワード分のデータが１回のアクセス要求によって転送される。
【００５９】
また、同様に図３（３）に示すように、データ転送のサイズが９０ワードの場合にも、リクエスト組み立て部１１１ｂ、および全バンク単位リクエスト分割部１１２の何れによっても、ともに６つのリクエスト（図３（３）に示すリクエスト１〜６）が生成され、９０ワード分のデータが６回のアクセス要求によって転送される。
【００６０】
次に、読み出し開始位置が、前記連続データの途中の場合の動作を説明する。
【００６１】
例えば、リクエスト分割ブロック１１１に接続されたリクエスタ３００によって、データの読み出し開始位置が４ワード目（バンクＢに相当）であり、データ転送のサイズが１６ワードのアクセス要求が行われると、リクエスト組み立て部１１１ｂは、図３（２）に示すようにワード１６（データ開始位置から１７番目のデータ。以下、データ開始位置からｎ＋１番目のワードをワードｎと呼ぶ。）からワード１９までのデータが格納されたバンクＡに対するアクセスが、バンクＢ（ワード４〜７が格納されている。）に対するアクセスの前に行われるように、アクセス要求を並べ替えて１つのアクセス要求（リクエスト１）を生成する。
【００６２】
また、例えば、リクエスト分割ブロック１１１に接続されたリクエスタ３００によって、読み出し開始位置がワード９０（バンクＣの途中から始まる）であり、データ転送のサイズが９０ワードのアクセス要求が行われると、バースト転送長単位リクエスト分割部１１１ａおよびリクエスト組み立て部１１１ｂは、このアクセス要求を分割して、図３（４−２）に示すように並べ替え、６つ（リクエスト１〜６）が生成する。なお、この例では、リクエスト１におけるバンクＣのワード８８，８９やリクエスト６におけるバンクＢのワード１８０〜１８３は、転送する必要のないデータであるが、転送動作の連続性を確保するため、アクセス要求は生成されるが、読み取られたデータは捨てられる。
【００６３】
一方、全バンク単位リクエスト分割部１１２に接続されたリクエスタ３００によって、読み出し開始位置がワード９０で、データ転送のサイズが９０ワードのアクセス要求が行われると、全バンク単位リクエスト分割部１１２は、アクセス要求を分割して、図３（４−１）に示すように７つのアクセス要求（リクエスト１〜７）を生成する。
【００６４】
上記のように、リクエスト組み立て部１１１ｂによって新たに生成されるアクセス要求は、全バンク単位リクエスト分割部１１２によって生成されるアクセス要求の数よりも１回分だけ少なくなる。
【００６５】
図３（３）、（４−１）、および（４−２）に示したデータ転送の例は、１ワードのサイズが４バイトを想定すると、９０ワード長で３６０バイト、２回のリクエストで７２０バイトとなり、ビデオのライン転送を行うシステムに利用された場合に有効である。
【００６６】
上記のように、本実施形態によれば、複数のメモリバンクに格納された連続的なデータに対し、複数のデータ処理装置が効率的にアクセスすることが可能になる。
【００６７】
また、各アクセス要求が複数のバンクに跨らないように、メモリに対するアクセス要求を分割し、所定のメモリバンクから順にメモリにアクセスされるように、分割したアクセス要求を並べ替えるので、無効期間（データが出力されない期間）を生じさせないようにできる。
【００６８】
《発明の実施形態１の変形例》
なお、実施形態１では、１つのリクエスタ３００に対してのみ、リクエスト分割ブロック１１１が設けられている例を説明したが、例えば図５に示すように複数のリクエスタ３００に対して、リクエスト分割ブロック１１１を設けるようにメモリアクセス制御回路１００を構成してもよい。
【００６９】
なお、以下の実施形態や変形例において前記実施形態１等と同様の機能を有する構成要素については、同一の符号を付して説明を省略する。
【００７０】
また、リクエスタ３００をリクエスト分割部１１０、および全バンク単位リクエスト分割部１１２の何れに接続するかは、リクエストの特性に応じて定めればよい。
【００７１】
《発明の実施形態１の他の変形例》
また、実施形態１の装置において、リクエスタ３００から入力された転送回数情報に応じて、複数のアクセス要求をまとめて処理（データ転送）するようにしてもよい。
【００７２】
発明の実施形態１の他の変形例に係るメモリアクセス制御回路５００は、図６に示すようにリクエスト分割部１１０に代えてリクエスト分割部５１０を備え、リクエスト調停部１２０に代えてリクエスト調停部５２０を備えて構成されている点がメモリアクセス制御回路１００と異なっている。
【００７３】
リクエスト分割部５１０は、リクエスト分割部１１０にリクエスト分割ブロック５１１が追加されている点がリクエスト分割部１１０と異なっている。
【００７４】
リクエスト分割ブロック５１１は、バースト転送長単位リクエスト分割部１１１ａとリクエスト組み立て部１１１ｂとを備え、リクエスタ３００から入力された転送回数情報をリクエスト調停部１２０に出力するようになっている。
【００７５】
リクエスト調停部５２０は、リクエスト分割ブロック１１１から出力されたアクセス要求が、前記転送回数情報に応じた回数ずつまとめてアクセス制御部１３０で処理されるように実行順序を調停するようになっている。
【００７６】
このように構成されたメモリアクセス制御回路では、例えばリクエスタ３００から２回分のアクセスをまとめて処理するように転送回数情報が入力された場合には、バースト転送長単位リクエスト分割部１１１ａとリクエスト組み立て部１１１ｂは、リクエスタ３００のアクセス要求の分割を行うとともに、前記転送回数情報をリクエスト調停部１２０に出力する。リクエスト調停部１２０は、リクエスト分割ブロック１１１から出力されたアクセス要求が２回分ずつまとめてアクセス制御部１３０で処理されるように処理順序の調停を行う。そして、これらの要求の処理順になったタイミングでアクセス制御部１３０からは、図７に示すように、リクエスタ３００に対して、イネーブル信号ＥＮが発行され、リクエスタ３００とメモリ２００の間で、２回分ずつまとめたデータ転送（３２ワード分）が行われる。
【００７７】
なお、全バンク単位リクエスト分割部１１２に接続されているリクエスタ３００からデータ転送の要求があった場合には、１６ワード分のデータの転送が行われる。
【００７８】
上記のように本変形例によれば、一度に転送されるデータサイズを制御することができるので、例えば大量のデータを必要とするリクエスタに対しては、一度の処理で転送されるデータサイズの増大を図ることができ、処理速度の向上やデータ転送の効率化を図ることが可能になる。
【００７９】
《発明の実施形態２》
リクエスト調停部１２０で調停の状況（データ転送待ちをしているアクセス要求の数）に応じて、アクセス要求の分割方法を変更するメモリアクセス制御回路の例を説明する。
【００８０】
本発明の実施形態２に係るメモリアクセス制御回路６００は、図８に示すように、実施形態１におけるリクエスト分割部１１０に代えてリクエスト分割部６１０を備え、リクエスト調停部１２０に代えてリクエスト調停部６２０を備えて構成されている。
【００８１】
リクエスト分割部６１０は、リクエスト分割ブロック１１１、リクエスト分割ブロック６１１、および複数の全バンク単位リクエスト分割部１１２を備えて構成されている。
【００８２】
リクエスト分割ブロック６１１は、バースト転送長単位リクエスト分割部１１１ａ、リクエスト組み立て部１１１ｂ、全バンク単位リクエスト分割部１１２、およびリクエスト選択部６１１ｃを備えて構成され、リクエスト調停部１２０の調停の状況（データ転送待ちをしているアクセス要求の数）に応じて、全バンク単位リクエスト分割部１１２で生成したアクセス要求を出力するか、リクエスト分割ブロック１１１で生成したアクセス要求を出力するかをリクエスト選択部６１１ｃによって切り替えるようになっている。具体的には、データ転送待ちをしているアクセス要求の数が所定の数よりも少ない場合（リクエスト調停部が空いている場合）には、全バンク単位リクエスト分割部１１２で生成したアクセス要求を出力し、データ転送待ちをしているアクセス要求の数が所定の数よりも多い場合（リクエスト調停部が混んでいる場合）には、リクエスト分割ブロック１１１で生成したアクセス要求を出力する。
【００８３】
リクエスト調停部６２０は、リクエスト調停部１２０が有する調停機能に加え、調停状況（データ転送待ちをしているアクセス要求の数）をリクエスト分割部６１０に出力するように構成される。
【００８４】
上記の構成により、例えば全バンク単位リクエスト分割部１１２によって生成されたアクセス要求が出力された場合には、実施形態１で説明したように、リクエスト回数が増える場合があるが、リクエスト組み立て部１１１ｂにおける組み立てにかかる時間を省くことが可能になるので、リクエスト調停部が空いていれば、転送速度を重視したデータ転送が可能になる。
【００８５】
一方、リクエスト調停部が混んでいる場合には、リクエスト分割ブロック１１１によって生成されたアクセス要求が出力されることによって、無駄なリクエストが削減されるとともに、無効期間（データが出力されない期間）を生じさせないようにできるので、転送効率の改善が可能になる。
【００８６】
上記のように本実施形態によれば、リクエスト調停状況に応じて、アクセス要求の分割方法を変更できるので、処理速度の向上やデータ転送の効率化を図ることが可能になる。
【００８７】
《発明の実施形態２の変形例》
リクエスト調停部１２０の調停の状況に応じてアクセス要求の分割方法を変更するのではなく、リクエスタ３００から与えられた転送要求時間信号が示す転送要求時間（データ処理装置がデータ転送要求を出力してからデータ転送が開始されるべき時間）に応じて、アクセス要求の分割方法を変更するようにしてもよい。具体的には図９に示すように、リクエスタ３００が出力する前記転送要求時間信号が入力されるように、リクエスト分割ブロック６１１を構成する。
【００８８】
また、リクエスタ３００から入力されたが示す転送要求時間が所定の時間以下の場合には、全バンク単位リクエスト分割部１１２で生成したアクセス要求を出力し、前記転送要求時間が所定の時間よりも長い場合には、リクエスト組み立て部１１１ｂで組み立てたアクセス要求を出力するように、リクエスト選択部６１１ｃを構成する。
【００８９】
これにより、転送要求時間に応じて、アクセス要求の分割方法を選択することができ、処理速度の向上やデータ転送の効率化を図ることが可能になる。
【００９０】
《発明の実施形態２の他の変形例》
また、リクエスタ３００から出力された分割要求信号に応じて、アクセス要求の分割方法を変更するようにしてもよい。具体的には、図１０に示すようにリクエスタ３００から入力された分割要求信号に応じて、全バンク単位リクエスト分割部１１２で生成したアクセス要求、およびリクエスト分割ブロック１１１で生成したアクセス要求のうちの何れかを選択的に出力するようにリクエスト選択部６１１ｃを構成すればよい。
【００９１】
これにより、ソフト制御によりアクセス要求の分割方法を制御することが可能となり、例えば転送するデータの読み込み開始位置やデータの種類に応じて、分割方法を制御すれば、処理速度の向上やデータ転送の効率化を図ることが可能になる。
【００９２】
なお、上記の各実施形態で示したデータ語長の単位は特定のワード長に限定されず、例えばバイト（８ビット）、ロングワード（３２ビット）等であってもよい。
【００９３】
また、同期型メモリはＳＤＲＡＭに限定されず、例えば、シンクロナスＳＲＡＭ等のクロック同期型のメモリであってもよい。
【００９４】
また、リクエスト分割ブロック１１１や全バンク単位リクエスト分割部１１２の数も例示であり、データ処理装置の数などに応じて、必要な数だけリクエスト分割ブロック１１１等を設ければよい。
【００９５】
また、上記の各実施形態では、転送されるデータが画像データの例を説明したが、連続的なデータとしてはこれには限定されず、例えば音声データ等であってもよい。
【産業上の利用可能性】
【００９６】
本発明にかかるメモリアクセス制御回路は、複数のメモリバンクに格納された連続的なデータに対し、データ処理装置が効率的にアクセスを行うことが可能になるという効果を有し、データ処理装置による同期型メモリに対するアクセス動作を制御するメモリアクセス制御回路等として有用である。
【図面の簡単な説明】
【００９７】
【図１】本発明の実施形態１のメモリアクセス制御回路が用いられたデータ処理システムの構成を示すブロック図である。
【図２】本発明の実施形態１に係るメモリアクセス制御回路の構成を示すブロック図である。
【図３】リクエスト分割部におけるアクセス要求の分割の実行例を示す図である。
【図４】全バンク単位リクエスト分割部１１２によるアクセス要求の分割の実行例を示す図である。
【図５】本発明の実施形態１に係るメモリアクセス制御回路の変形例の構成を示すブロック図である。
【図６】本発明の実施形態１に係るメモリアクセス制御回路の他の変形例の構成を示すブロック図である。
【図７】本発明の実施形態１に係るメモリアクセス制御回路の他の変形例におけるリクエスタとＳＤＲＡＭとの間のデータ転送タイミングチャートである。
【図８】本発明の実施形態２に係るメモリアクセス制御回路の構成を示すブロック図である。
【図９】本発明の実施形態２に係るメモリアクセス制御回路の変形例の構成を示すブロック図である。
【図１０】本発明の実施形態２に係るメモリアクセス制御回路の他の変形例の構成を示すブロック図である。
【図１１】ＳＤＲＡＭの各バンクに連続してアクセスした場合のタイミングチャートである。
【図１２】画像データの１ラインの格納例である。
【図１３】従来のメモリアクセス制御回路におけるデータの転送例を示す図である。
【図１４】従来のメモリアクセス制御回路において、バーストアクセスの途中でカラムアドレスが変更された場合のタイミングチャートである。
【符号の説明】
【００９８】
１００      メモリアクセス制御回路
１１０      リクエスト分割部
１１１      リクエスト分割ブロック
１１１ａ    バースト転送長単位リクエスト分割部
１１１ｂ    リクエスト組み立て部
１１２      全バンク単位リクエスト分割部
１２０      リクエスト調停部
１３０      アクセス制御部
２００      メモリ
３００      リクエスタ
４００      バス
５００      メモリアクセス制御回路
５１０      リクエスト分割部
５１１      リクエスト分割ブロック
５２０      リクエスト調停部
６００      メモリアクセス制御回路
６１０      リクエスト分割部
６１１      リクエスト分割ブロック
６１１ｃ    リクエスト選択部
６２０      リクエスト調停部
【図１】
2006268801.tif 000003
【図２】
2006268801.tif 000004
【図３】
2006268801.tif 000005
【図４】
2006268801.tif 000006
【図５】
2006268801.tif 000007
【図６】
2006268801.tif 000008
【図７】
2006268801.tif 000009
【図８】
2006268801.tif 000010
【図９】
2006268801.tif 000011
【図１０】
2006268801.tif 000012
【図１１】
2006268801.tif 000013
【図１２】
2006268801.tif 000014
【図１３】
2006268801.tif 000015
【図１４】
2006268801.tif 000016