(57)【要約】【課題】  メモリ制御回路において、転送指示毎の優先度は考慮されているがメモリアクセス単位に、優先度を考慮できるように構成されておらず、メモリアクセス中に受信される高優先度の転送指示の処理が長い時間待たされてしまう。【解決手段】  メモリ制御装置によって、受信した転送指示をメモリアクセス単位に分割し、メモリアクセス中にそれよりも優先度の高い転送指示を受信すると、低い転送指示に基づくメモリアクセスを中断し、優先度の高い転送指示に基づくメモリアクセスを開始する。【選択図】  図１
2014035628.tif 000002
【特許請求の範囲】
【請求項１】
転送指示に基づいてメモリアクセス単位の複数のメモリコマンドを発行するメモリ制御装置であって、
転送指示を受信する受信手段と、
前記転送指示に基づいてメモリアクセス単位の複数のメモリアクセス要求を出力する出力手段と、
メモリデバイスに対して前記メモリアクセス要求に基づいてメモリコマンドを発行するコマンド生成手段とを備え、
前記コマンド生成手段は、第１の転送指示に関する複数のメモリアクセス要求に基づく複数のメモリコマンドに、前記第１の転送指示より後に前記受信手段で受け付けられた第２の転送指示に関するメモリアクセス要求に基づくメモリコマンドを割り込ませるように発行することを特徴とするメモリ制御装置。
【請求項２】
前記受信手段は、第１転送単位で転送される転送指示を受信し、
前記コマンド生成手段は、第１転送単位の１単位の転送指示に基づいて、第１転送単位より小さい第２転送単位であるメモリアクセス単位のメモリコマンドを複数発行し、
第１の転送指示に基づく複数のメモリコマンドに、前記第１の転送指示より後に前記受信手段で受け付けられ前記第１の転送指示より優先度の高い第２の転送指示に関するメモリアクセス要求に基づくメモリコマンドを割り込ませるように発行することを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
第１の転送指示に基づくメモリアクセスに、前記第２の転送指示に基づくメモリアクセスを割り込ませる際に、前記出力手段は第１の転送指示に関するメモリアクセスに出力する処理を中断することを特徴とする請求項１又は２に記載のメモリ制御装置。
【請求項４】
前記出力手段は、優先度毎に複数の状態バッファを備え、優先度の高い前記第２の転送指示に関するメモリアクセスが完了すると、優先度の低い前記第１の転送指示に対応する状態バッファの保持している処理状態に基づいて前記第１の転送指示に基づくメモリアクセス要求の出力を再開することを特徴とする請求項１乃至３のいずれか１項に記載のメモリ制御装置。
【請求項５】
前記転送指示は前記メモリデバイスに対するバーストアクセスを含み、前記コマンド生成手段は前記メモリデバイスに対するバーストアクセスを中断するためのターミネーション制御回路を備えることを特徴とする請求項１乃至４のいずれか１項に記載のメモリ制御装置。
【請求項６】
複数の転送指示をメモリアクセス単位に変換してメモリコマンドとして発行するメモリ制御回路であって、
前記転送指示を優先度ごとに振り分ける転送振り分け回路と、
前記転送振り分け回路によって振り分けられた転送指示をメモリアクセス単位に変換し、メモリアクセス要求を出力する複数の転送分割回路と、
前記メモリアクセス要求に基づいてメモリデバイスに発行するメモリコマンドを生成するメモリコマンド生成回路とを有し、
前記転送分割回路は、分割状態を保持する状態バッファを備え、
前記メモリコマンド生成回路は、複数の転送分割回路からメモリアクセス要求があると、優先度の高い転送指示に関するメモリアクセス要求を優先的に処理することを特徴とするメモリ制御装置。
【請求項７】
メモリコマンド生成回路は、所定単位のメモリアクセスが完了するたびに次のメモリアクセス要求を選択することを特徴とする請求項６に記載のメモリ制御装置。
【請求項８】
ターミネーション制御回路を更に備え、
前記メモリコマンド生成回路は、優先度の高い転送指示に基づくメモリアクセス要求を検出すると、前記ターミネーション制御回路によってメモリアクセスを中断し、優先度の高い転送指示に基づくメモリアクセス要求の処理を開始することを特徴とする請求項６に記載のメモリ制御装置。
【請求項９】
前記転送指示は優先度を示す情報を含むことを特徴とする請求項６に記載のメモリ制御装置。
【請求項１０】
前記転送振り分け回路が、受信する転送指示の発行元を識別して前記転送指示の優先度を付与することを特徴とする請求項６に記載のメモリ制御装置。
【請求項１１】
複数の転送を受信し、前記転送をメモリアクセス単位に分割し、メモリに発行するメモリ制御装置であり、
前記転送の優先度ごとに転送分割要求を出す転送振り分け回路と、
前記転送分割要求を受けて、前記転送をメモリアクセス単位に分割し、メモリアクセス要求を出す転送分割回路と、
前記メモリアクセス要求を受けて、メモリに発行するメモリコマンドを生成するメモリコマンド生成回路とを有し、
前記転送分割回路は分割処理中の転送の状態を保持する転送分割状態バッファを優先度ごとに備え、転送の分割処理中にそれよりも優先度の高い転送に関する転送分割要求を受信すると、分割処理中の転送についての状態を前記状態バッファに保持したまま、前記優先度の高い転送に基づく分割処理を開始し、前記優先度の高い転送に基づくメモリアクセスが完了すると、前記状態バッファに保持している状態に基づいて中断した転送に基づく分割処理を再開することを特徴とするメモリ制御装置。
【請求項１２】
複数のバスマスタと、ＤＲＡＭと、メモリバスと、オンチップバスと、前記ＤＲＡＭに前記メモリバスを介して接続され、前記オンチップバスを介して前記複数のバスマスタに接続されているメモリ制御装置と、を備える情報処理装置であって、
前記メモリ制御装置は、
前記複数のバスマスタから前記ＤＲＡＭへのバーストアクセスを示す転送指示を受信する受信手段と、前記転送指示を前記ＤＲＡＭに対するアクセス単位に変換する変換手段と、前記変換手段の変換した転送指示に基づいて前記ＤＲＡＭに対するメモリコマンドを発行する発行手段とを備え、
前記発行手段は、前記ＤＲＡＭへのバーストアクセス中に、より優先度の高い他の転送指示を受け付けると、前記バーストアクセスを中断して前記他の転送指示に基づくメモリアクセスを開始することを特徴とする情報処理装置。
【請求項１３】
前記変換手段は、バーストアクセス中の転送指示について、どこまでメモリアクセスを行ったかを示す状態保持手段を備え、前記発行手段は前記バーストアクセスの中断に応じて、中断したバーストアクセスに関する状態保持手段に未転送分のバースト長を加算し直すことを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
前記受信手段は少なくとも１つの優先度について、複数の転送指示を保持するキューを備え、キューに保持している複数の転送指示について並び替えることを特徴とする請求項１２に記載の情報処理装置。
【請求項１５】
転送指示に基づいてメモリアクセス単位のメモリコマンドを発行するメモリ制御装置であって、転送指示を受信する受信手段と、前記転送指示に基づいてメモリアクセス要求を出力する出力手段と、メモリデバイスに対して前記メモリアクセス要求に基づいてメモリコマンドを発行するコマンド生成手段とを備えるメモリ制御装置の制御方法であって、
第１の転送指示に関する複数のメモリアクセス要求に基づく複数のメモリコマンドに、前記第１の転送指示より後に前記受信手段で受け付けられた第２の転送指示に関するメモリアクセス要求に基づくメモリコマンドを割り込ませるように発行することを特徴とする制御方法。
【請求項１６】
複数の転送指示をメモリアクセス単位に変換してメモリコマンドとして発行するメモリ制御回路であって、前記転送指示を優先度ごとに振り分ける転送振り分け回路と、前記転送振り分け回路によって振り分けられた転送指示をメモリアクセス単位に変換し、メモリアクセス要求を出力する複数の転送分割回路と、前記転送分割回路における分割状態を保持する複数の状態バッファと、前記メモリアクセス要求に基づいてメモリデバイスに発行するメモリコマンドを生成するメモリコマンド生成回路とを有するメモリ制御回路の制御方法であって、
前記メモリコマンド生成回路に対して複数の転送分割回路からメモリアクセス要求があると、優先度の高い転送指示に関するメモリアクセス要求を優先的に処理することを特徴とする制御方法。
【請求項１７】
複数のバスマスタと、ＤＲＡＭと、メモリバスと、オンチップバスと、
前記複数のバスマスタから前記ＤＲＡＭへのバーストアクセスを示す転送指示を受信する受信手段と、前記転送指示を前記ＤＲＡＭに対するアクセス単位に変換する変換手段と、前記変換手段の変換した転送指示に基づいて前記ＤＲＡＭに対するメモリコマンドを、前記メモリバスを介して発行する発行手段と、を備えるメモリ制御回路とを備える情報処理装置の制御方法であって、
前記ＤＲＡＭへのバーストアクセス中に、より優先度の高い他の転送指示を受け付けると、前記バーストアクセスを中断して前記他の転送指示に基づくメモリアクセスを開始することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、転送の優先度に応じてメモリアクセスを制御する情報処理装置、メモリコントローラメモリ制御回路およびその制御方法に関する。
【背景技術】
【０００２】
近年、複数マスタがオンチップバスを介して１つのメモリを共有するメモリシステムが主流である。こういったシステムでは各マスタが非同期に転送を発行する。しかし、各マスタからの転送には、あるレイテンシを満たさなければならないものや、ある転送帯域を満たさなければならないものなど様々な種類の転送がある。レイテンシを保証する必要のある転送は、優先度の高い転送として扱い、優先度の高い転送を他の転送よりも先に処理する種々の手法がある。
【０００３】
例えば、特許文献１は、メモリ制御回路がレイテンシの算出が必要な転送用のキューと不要な転送用のキューと設けて、状況に応じてどちらのキューの保持している転送指示を取り出してメモリアクセスするかを判断する手法を開示している。また、特許文献２は、メモリ制御回路がアクセスするアドレス領域ごとに転送を保持するキューを設けて、優先度の高いアクセス領域のキューの転送からメモリアクセスする手法を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１６５１０５号公報
【特許文献２】特開２００６−２５０５５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、オンチップバスからのメモリ制御回路への転送単位が、メモリ制御回路からメモリへの転送単位と異なる際には、オンチップバスからの転送を分割して調整する必要が生じる。具体的には、オンチップバスからの１つの転送単位の転送を実現するために、メモリ制御回路は複数のメモリアクセスコマンドを発行する必要がある。
【０００６】
しかし、特許文献１や特許文献２に開示されている手法では、分割して発行するメモリアクセスについて優先度が考慮できる様に構成されていない。従って、オンチップバスから優先度の低いメモリアクセス要求を受けて複数のメモリアクセスコマンドに分割していると、優先度の高い他のメモリアクセス要求を受けても、優先度の低いメモリアクセス要求から生成した複数のメモリアクセスコマンドに基づくメモリアクセスを完了するまで優先度の高いメモリアクセス要求の処理を開始することができない。
【０００７】
例えば、オンチップバスからの転送が８ビートの転送であり、それが２つメモリアクセスコマンドに分割され、メモリアクセスに４サイクルを要するものとする。２つのメモリアクセスは連続して処理されるため、８サイクルの間は後続の転送は処理されない。一方、オンチップバスからの転送が１２８ビートの転送であると、それが３２個のメモリアクセスに分割される。それぞれに４サイクルを要するものとすると、１２８サイクルの間は後続の転送は処理されない。このように、後続の転送の優先度が高くても、分割したメモリアクセスを実行中は他の転送を処理することができないため、優先度が高い転送に関する転送効率が良くない。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明に係るメモリ制御装置は、転送指示に基づいてメモリアクセス単位のメモリコマンドを発行するメモリ制御装置であって、転送指示を受信する受信手段と、前記転送指示に基づいてメモリアクセス要求を出力する出力手段と、メモリデバイスに対して前記メモリアクセス要求に基づいてメモリコマンドを発行するコマンド生成手段とを備え、前記コマンド生成手段は、第１の転送指示に関する複数のメモリアクセス要求に基づく複数のメモリコマンドに、前記第１の転送指示より後に前記受信手段で受け付けられ前記第１の転送指示より優先度の高い第２の転送指示に関するメモリアクセス要求に基づくメモリコマンドを割り込ませるように発行することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、先行する転送に基づくメモリアクセスを開始していても、後続の優先度の高い転送に基づくメモリアクセスを割り込ませて転送させ、優先度の高い転送に関する転送効率を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】メモリ制御回路の概略構成を示すブロック図である。
【図２】転送指示、メモリアクセス要求、メモリコマンドの内容を示す概略図である。
【図３】メモリ制御回路の動作波形を示すタイミングチャートである。
【図４】メモリ制御回路の概略構成を示すブロック図である。
【図５】メモリ制御回路の動作波形を示すタイミングチャートである。
【図６】メモリ制御回路の概略構成を示すブロック図である。
【図７】メモリ制御回路の概略構成を示すブロック図である。
【図８】転送振り分け回路の構成を示すブロック図である。
【図９】情報処理装置の概略構成を示すブロック図である。
【図１０】（ａ）、（ｂ）従来のメモリ制御回路によって優先度の異なる２つの転送が処理される様子を示す模式図であり、（ｃ）本発明のメモリ制御回路によって優先度の異なる２つの転送が処理される様子を示す模式図である。
【発明を実施するための形態】
【００１１】
＜＜実施形態１＞＞
図９は本発明に係る一実施形態の情報処理装置の概略構成を示す。情報処理装置は、ここでは複写機能付きのプリンタでありＬＳＩ９００とＬＳＩ９００に接続されるデバイスとを備える。ＬＳＩ９００は、ＣＰＵ９０１とＥｔｈｅｒｎｅｔ（登録商標）コントローラ９０２、２つの画像処理回路９０３、９０４、ＳＤＲＡＭ制御回路（メモリ制御回路）９０５、ＲＯＭ制御回路９０６、およびこれらの構成９０１〜９０６を相互に接続するオンチップバス９０７を有する。ＬＳＩ９００に接続されるデバイスとしては、ネットワークデバイス９１１とスキャンデバイス９１２、プリンタデバイス９１３、ＳＤＲＡＭデバイス９２１、ＲＯＭデバイス９２２を有している。
【００１２】
ＲＯＭデバイス９２２にはＣＰＵ９０１が実行するプログラムが格納されており、ＣＰＵ９０１がこのプログラムを読み出して実行することでシステムを起動する。ネットワークデバイス９１１とスキャンデバイス９１２はプリントするデータをＬＳＩ９００に入力する。ネットワークデバイス９１１からのデータはＥｔｈｅｒｎｅｔ（登録商標）コントローラ９０２がメモリ制御回路９０５に送信する。スキャンデバイス９１２からのデータは画像処理回路９０３によって画像処理（画像処理用色空間への変換処理、シェーディング補正、フィルタ処理、など）され、メモリ制御回路９０５に送信される。メモリ制御回路９０５はメモリバスを介してＳＤＲＡＭデバイス９２１にデータを書き込んだり、ＳＤＲＡＭデバイス９２１が保持しているデータを読み出したりする。ＳＤＲＡＭデバイス９２１に格納されたデータはメモリ制御回路９０６を介して画像処理回路９０４によって読み出され印刷用の画像処理（印刷用色空間への変換処理、ガンマ補正など）がなされた後に、プリンタデバイス９１３に送信される。
【００１３】
次に、図１を用いて図９のメモリ制御回路９０５の概略構成をメモリ制御回路１００として説明する。図１に示すように、メモリ制御回路１００は、転送振り分け回路１０１と２つの転送分割回路１０３−１、１０３−２とメモリコマンド生成回路１０４とを備えている。以降の説明では、各種信号を区別して説明するため、転送振り分け回路が上流から受信する転送要求および転送振り分け回路が転送分割回路に振り分ける情報を転送指示（転送分割要求）と称す。さらに、転送分割回路１０２がメモリコマンド生成回路１０４に発行する情報をメモリアクセス要求と称し、メモリコマンド生成回路１０４がメモリデバイス（ＤＤＲ−ＳＤＲＡＭなど）に対して発行する情報をメモリコマンド（リードコマンド、ライトコマンド）と称す。なお、説明の簡便のため、「転送指示、メモリアクセス要求およびメモリコマンド」のいずれも、メモリに書き込む方向またはメモリから読み出す方向のデータ転送に関するものとする。
【００１４】
転送振り分け回路１０１は優先度に応じた転送分割回路１０２に、上流のオンチップバス９０７からの転送指示を振り分ける。例えば、低い優先度の転送指示を転送分割回路１０２−１へ、高優先度の転送指示を転送分割回路１０２−２へ送信する。
【００１５】
転送分割回路１０２−１、１０２−２の各々は転送振り分け回路１０１から受信した転送指示に基づいてメモリアクセス単位（バーストアクセス単位、所定単位）のメモリアクセス要求を出力する。このとき、転送指示の長さ（ｂｉｔ長に相当）によっては分割して複数のメモリアクセス要求を出力する。なお、オンチップバスの最小転送単位（第１転送単位）がメモリアクセス単位（第２転送単位）より大きければ、分割する必要がある。メモリコマンド生成回路１０４は複数の転送分割回路１０２−１、１０２−２から出力されるメモリアクセス要求のうち優先度の高いメモリアクセス要求を選択し、選択したメモリアクセス要求に基づいてメモリデバイスにメモリコマンドを発行する。従って、優先度の高いメモリアクセス要求が優先的に処理される。
【００１６】
本実施形態で、１回のメモリアクセスはオンチップバスからの４ビート分の転送に対応するものとする。ここで、オンチップバスからメモリ制御回路１００が１６ビートの転送指示を受け付けたものとすると、転送分割回路１０２は、１６ビートの転送指示の「先頭から４ビート分」を取り出してメモリアクセス要求を生成する。次に、転送分割回路１０２は、１６ビートの転送指示の「先頭から５ビート目〜先頭から８ビート目」を取り出してメモリアクセス要求を生成する。このような処理を繰り返すことで複数のメモリアクセス要求に分割（変換）する。ここで、転送分割回路１０２は、オンチップバスからの転送指示を分割するたびに、どこまで処理（分割したメモリアクセス）を行ったかを示す情報（分割状態情報、処理状態）を転送分割状態バッファ（状態保持部）１０３に保持させる。ここでは、未分割の転送のバースト長（１６ビートで２つのメモリアクセス要求について分割処理済みであれば、“８”）を記憶し、分割処理のたびにデクリメントするものとする。どこまで分割処理を行ったかを示す情報を保持しておくことによって、分割処理の中断と再開が可能になる。
【００１７】
図３は本実施形態のメモリ制御回路１００に関する各種信号の動作波形を示すタイミングチャートである。横軸は時間遷移（クロックサイクル時間）を示し、縦軸は各種信号の波形又は保持する値を示す。ここでは、メモリ制御回路１００がオンチップバスから３つの転送指示（転送指示Ａ〜Ｃ）を受信して処理する例を示す。転送指示Ａ（第１の転送指示）は低優先度でバースト長が１６である。転送指示Ｂ（第２の転送指示）は低優先度でバースト長が４である。転送指示Ｃは高優先度でバースト長が４であるものとする。説明の簡便のため転送指示Ａ〜Ｃはメモリに対するリードアクセスとするが、その他のコマンドが混在してもよい。また、メモリアクセス一回のデータ量はオンチップバスの４ビート分のデータ量と一致し、メモリアクセスに４サイクル要するものとする。
【００１８】
まず、図３の縦軸に示す各種信号について説明する。
【００１９】
Ｃｌｋ信号は、メモリ制御回路１００に供給されるクロックを示す。Ｔｒａｎｓ＿Ｒｅｑ信号は、転送指示を示す信号であり、オンチップバスから転送振り分け回路１０１に入力される。Ｔｒａｎｓ＿Ａｃｋ信号は、転送振り分け回路１０１からオンチップバスに対して転送指示を受信したことを示す応答信号である。Ｔｒａｎｓ＿Ａｃｋ信号に基づいて、オンチップバスに接続されているバスマスタは次の転送を送信する。以降のＡｃｋ信号はこれ同様にハンドシェイクのため受領信号とする。
【００２０】
Ｔｒａｎｓ＿Ｐｒｉ信号は、転送指示の優先度を示す信号であり、オンチップバスからＴｒａｎｓ＿Ｒｅｑ信号と並行して転送振り分け回路１０１に入力される。Ｔｒａｎｓ＿Ｌｅｎ信号は、転送指示のバースト長を示す信号であり、オンチップバスからＴｒａｎｓ＿Ｒｅｑ信号と並行して転送振り分け回路１０１に入力される。
【００２１】
Ｌｏｗ＿Ｄｉｖ＿Ｒｅｑ信号は、優先度の低い転送指示を分割する要求を示す信号であり、転送振り分け回路１０１が転送分割回路１０２−１に出力する。Ｌｏｗ＿Ｄｉｖ＿Ａｃｋ信号は、転送分割回路１０２−１が分割する対象の転送指示を受信したことを示す信号であり、転送分割回路１０２−１が転送振り分け回路１０１に出力する。Ｌｏｗ＿Ｄｉｖ＿Ｌｅｎ信号は優先度の低い転送指示のバースト長を示す。
【００２２】
Ｈｉｇｈ＿Ｄｉｖ＿Ｒｅｑ信号は、優先度の高い転送指示を分割する要求を示す信号であり、転送振り分け回路１０１が転送分割回路１０２−２に出力する。Ｈｉｇｈ＿Ｄｉｖ＿Ａｃｋ信号は、転送分割回路１０２−２が分割する対象の転送指示を受信したことを示す信号であり、転送分割回路１０２−２が転送振り分け回路１０１に出力する。Ｈｉｇｈ＿Ｄｉｖ＿Ｌｅｎ信号は優先度の高い転送指示のバースト長を示す。
【００２３】
Ｌｏｗ＿Ｍｅｍ＿Ｒｅｑ信号は、優先度の低い転送指示に基づくメモリアクセス要求を示し、転送分割回路１０２−１がメモリコマンド生成回路１０４に出力する。Ｌｏｗ＿Ｍｅｍ＿Ａｃｋ信号は、メモリコマンド生成回路１０４が優先度の低い転送指示に関するメモリアクセス要求を受信したことを示し、メモリコマンド生成回路１０４が転送分割回路１０２−１に出力する。Ｌｏｗ＿Ｒｅｍ＿Ｌｅｎ信号は転送分割状態バッファ１０３−１の保持している値であり、低優先度の分割メモリアクセスの進行状態と対応し、ここでは、残りのバースト長を示す。
【００２４】
Ｈｉｇｈ＿Ｍｅｍ＿Ｒｅｑ信号は、優先度の高い転送指示に基づくメモリアクセス要求を示し、転送分割回路１０２−２がメモリコマンド生成回路１０４に出力する。Ｈｉｇｈ＿Ｍｅｍ＿Ａｃｋ信号は、メモリコマンド生成回路１０４が優先度の高い転送指示に関するメモリアクセス要求を受信したことを示し、メモリコマンド生成回路１０４が転送分割回路１０２−２に出力する。Ｈｉｇｈ＿Ｒｅｍ＿Ｌｅｎ信号は、転送分割状態バッファ１０３−２の保持している値であり高優先度の分割メモリアクセスの進行状態と対応し、ここでは残りのバースト長を示す。Ｍｅｍ＿Ｃｍｄ信号は、メモリコマンド生成回路１０４が、メモリデバイスに対して発行するメモリコマンドを示す。
【００２５】
次に、クロックサイクル毎の各種信号の遷移を遷移順に説明する。
【００２６】
Ｔ０で、不図示のバスマスタがオンチップバスに対して転送指示Ａに関する転送要求を発行する。ここで、各種バッファは零にクリアされているものとする。さらに、Ｔ２で、オンチップバスからメモリアクセス制御回路１００に転送指示Ａを示すＴｒａｎｓ＿Ｒｅｑ信号がアサートされる（Ｔ１ではＴｒａｎｓ＿Ｒｅｑが立ちあがっておらず認識されない）。
【００２７】
Ｔ３で、メモリアクセス制御回路１００はＴｒａｎｓ＿Ａｃｋ信号を上流のオンチップバスへアサートすることで転送指示Ａの受信を完了する。このとき、転送振り分け回路１０１は、Ｔｒａｎｓ＿Ｐｒｉ信号に基づいて転送指示Ａが低優先度であることを認識し、Ｔｒａｎｓ＿Ｌｅｎ信号に基づいて転送指示Ａのバースト長が１６であることを認識する。
【００２８】
Ｔ４で、転送振り分け回路１０１は転送指示Ａの優先度の認識に応じてＬｏｗ＿Ｄｉｖ＿Ｒｅｑ信号およびＬｏｗ＿Ｄｉｖ＿Ｌｅｎ信号を転送分割回路１０２−１に送信する。
【００２９】
Ｔ５で、さらに、オンチップバスからメモリアクセス制御回路１００に対して、低優先度の転送指示Ｂに関するＴｒａｎｓ＿Ｒｅｑ信号、Ｔｒａｎｓ＿Ｐｒｉ信号およびＴｒａｎｓ＿Ｌｅｎ信号が入力される。一方、転送指示Ａに関して、転送分割回路１０２−１はＬｏｗ＿Ｄｉｖ＿Ａｃｋ信号を転送振り分け回路１０１にアサートし、転送指示Ａの分割処理を開始する。
【００３０】
Ｔ６で、転送指示Ｂに関して、メモリアクセス制御回路１００はＴｒａｎｓ＿Ａｃｋ信号をアサートすることで転送指示Ｂを受信したことを通知する。一方、転送指示Ａに関して、転送分割回路１０２−１はＬｏｗ＿Ｍｅｍ＿Ｒｅｑ信号をアサートすることでメモリコマンド生成回路１０４に対してメモリアクセス要求を出す。また、このとき転送分割状態バッファ１０３−１の残りのバースト長としてＬｏｗ＿Ｒｅｍ＿Ｌｅｎ信号には１６がセットされる。
【００３１】
Ｔ７で、転送指示Ｂに関して、転送振り分け回路１０１は転送指示Ｂが低優先度であると認識し、Ｌｏｗ＿Ｄｉｖ＿Ｒｅｑ信号をアサートして転送分割回路１０２−１に送信する。転送分割回路１０２−１は、転送分割状態バッファ１０３−１のＬｏｗ＿Ｒｅｍ＿Ｌｅｎ信号が０でないため、Ｌｏｗ＿Ｄｉｖ＿Ａｃｋ信号をアサートしない。一方、転送指示Ａに関して、メモリコマンド生成回路１０４は転送分割回路１０２−２からのＨｉｇｈ＿Ｍｅｍ＿Ｒｅｑ信号がアサートされていないことを確認し、転送分割回路１０２−１に対してＬｏｗ＿Ｍｅｍ＿Ａｃｋ信号をアサートする。
【００３２】
Ｔ８で、オンチップバスからメモリアクセス制御回路１００に高優先度の転送指示Ｃを示すＴｒａｎｓ＿Ｒｅｑ信号、Ｔｒａｎｓ＿Ｐｒｉ信号およびＴｒａｎｓ＿Ｌｅｎ信号が入力される。一方で、転送指示Ａに関して、Ｌｏｗ＿Ｍｅｍ＿Ａｃｋ信号のアサートに応答して、転送分割状態バッファ１０３−１のＬｏｗ＿Ｒｅｍ＿Ｌｅｎ信号が４つデクリメントされる。並行して、メモリコマンド生成回路１０４がメモリデバイスに対して転送指示Ａに基づいて生成する複数のリードコマンドの１つ目を発行する。転送指示Ｂに関しては、転送指示Ａの分割処理中（分割メモリアクセス中）であるので処理が待たされている。
【００３３】
Ｔ９で、転送指示Ｃに関して、メモリアクセス制御回路１００はＴｒａｎｓ＿Ａｃｋ信号をアサートすることで転送指示Ｃを受信する。一方、転送指示Ａに関して、転送分割回路１０２−１は引き続きＬｏｗ＿Ｍｅｍ＿Ｒｅｑ信号をアサートすることでメモリコマンド生成回路１０４に対してメモリアクセス要求を出す。
【００３４】
Ｔ１０で、転送指示Ｃに関して、転送振り分け回路１０１は転送指示Ｃが高優先度であると認識し、Ｈｉｇｈ＿Ｄｉｖ＿Ｒｅｑ信号およびＨｉｇｇ＿Ｄｉｖ＿Ｌｅｎ信号を転送分割回路１０２−２に送信する。一方、転送指示Ａに関して、メモリコマンド生成回路１０４は前のメモリアクセスに４サイクルを要しているため、Ｌｏｗ＿Ｍｅｍ＿Ａｃｋ信号をアサートしない。
【００３５】
Ｔ１１で、転送指示Ｃに関して、転送分割回路１０２−２はＨｉｇｈ＿Ｄｉｖ＿Ａｃｋ信号をアサートすることで転送指示Ｃの分割を開始する。一方、転送指示Ａに関して、メモリコマンド生成回路１０４は転送分割回路１０２−２からのＨｉｇｈ＿Ｍｅｍ＿Ｒｅｑ信号がアサートされていないことを確認した上で、転送分割回路１０２−１へＬｏｗ＿Ｍｅｍ＿Ａｃｋ信号をアサートする。
【００３６】
Ｔ１２で、転送指示Ｃに関して、転送分割回路１０２−２はＨｉｇｈ＿Ｍｅｍ＿Ｒｅｑ信号をアサートすることでメモリコマンド生成回路１０４に対して生成したメモリアクセス要求を出す。メモリコマンド生成回路１０４は前のメモリアクセスに４サイクルを要しているため、Ｈｉｇｈ＿Ｍｅｍ＿Ａｃｋ信号をアサートしない。一方で、転送指示Ａに関して、Ｌｏｗ＿Ｍｅｍ＿Ａｃｋ信号のアサートに応じて、転送分割状態バッファ１０３−１のＬｏｗ＿Ｒｅｍ＿Ｌｅｎ信号が４つデクリメントされる。並行して、メモリコマンド生成回路１０４はメモリに対して転送指示Ａに基づいて生成したリードコマンドの２つ目を発行する。このように、転送分割回路１０２−２が高優先度の転送を分割したメモリアクセスを割り込ませようとするが、実際にメモリアクセス中であればメモリコマンド生成回路１０４は割込みの受け付けを保留する。
【００３７】
Ｔ１５では、コマンド生成回路１０４に対して、転送分割回路１０２−１からのＬｏｗ＿Ｍｅｍ＿Ｒｅｑ信号と転送分割回路１０２−２からのＨｉｇｈ＿Ｍｅｍ＿Ｒｅｑ信号がともにアサートされている。そこで、メモリコマンド生成回路１０４は優先度の高い転送分割回路１０２−２に対して、Ｈｉｇｈ＿Ｍｅｍ＿Ａｃｋ信号をアサートする。このＨｉｇｈ＿Ｍｅｍ＿Ａｃｋ信号は実質的に割込み受け付け可能であることを示す。
【００３８】
Ｔ１６では、転送指示Ａに関する分割メモリアクセスが中断される。そして、転送指示Ｃに関して、Ｈｉｇｈ＿Ｍｅｍ＿Ａｃｋ信号がアサートされたことにより、転送分割状態バッファ１０３−２のＨｉｇｈ＿Ｒｅｍ＿Ｌｅｎ信号が４つデクリメントされる。並行して、メモリコマンド生成回路１０４はメモリデバイスに対して転送指示Ｃを分割して生成したリードコマンドを発行する。転送分割状態バッファ１０３−２のＨｉｇｈ＿Ｒｅｍ＿Ｌｅｎ信号がデクリメントされた結果０になり、転送指示Ｃに関するメモリアクセスが完了することが分かる。
【００３９】
その後、Ｔ１９〜Ｔ２４で、転送指示Ａに関するメモリアクセスが再開され、転送指示Ａの残りのメモリアクセス要求はメモリコマンド生成回路１０４に受信され、メモリデバイスに対して転送指示Ａに基づく残りのリードコマンドが繰り返し発行される。Ｔ２４で、転送指示Ａに関して、Ｌｏｗ＿Ｒｅｍ＿Ｌｅｎ信号が０になったことにより、転送指示Ａに関するメモリアクセスが完了することが分かる。
【００４０】
Ｔ２７で、転送分割回路１０２−１はＬｏｗ＿Ｄｉｖ＿Ａｃｋ信号をアサートし、転送指示Ｂに基づくメモリアクセス要求がメモリコマンド生成回路１０４に選択される。そしてＴ２８で、メモリデバイスに対して転送指示Ｂに関するリードコマンドが発行される。このとき、Ｌｏｗ＿Ｒｅｍ＿Ｌｅｎ信号が０になったことにより、転送指示Ｂに関するメモリアクセスが完了することが分かる。
【００４１】
図２に転送指示、メモリアクセス要求、メモリコマンドの内容を示す。
【００４２】
転送指示は、ＡＤＤＲ、ＬＥＮ、ＰＲＩ、ＤＩＲの情報を含み、ＡＤＤＲはアクセスの開始アドレス、ＬＥＮはバースト長、ＰＲＩは優先度、ＤＩＲはリードかライトを示す。
【００４３】
メモリアクセス要求は、ＣＳ、ＢＡＮＫ、ＲＯＷ、ＣＯＬ、ＤＩＲの情報を含み、ＣＳはＤＲＡＭのチップセレクト、ＢＡＮＫはＤＲＡＭのバンクアドレス、ＲＯＷはＤＲＡＭのロウアドレス、ＣＯＬはＤＲＡＭのカラムアドレス、ＤＩＲはリードかライトを示す。
【００４４】
メモリコマンドは、ＣＳｎ、ＢＡ、ＡＤＤＲ、ＲＡＳｎ、ＣＡＳｎ、ＷＥｎの情報を含み、ＣＳｎ、ＲＡＳｎ、ＣＡＳｎ、ＷＥｎはＤＲＡＭのコマンドを示し、ＢＡはコマンドの対象バンクを示し、ＡＤＤＲはコマンドの対象アドレスを示す。以下に、代表的なメモリコマンドを示す。
【００４５】
ＣＳｎ＝１ならばコマンドは無効である。
【００４６】
ＣＳｎ＝０、ＲＡＳｎ＝０、ＣＡＳｎ＝１、ＷＥｎ＝１ならば、アクティブコマンド（Ａｃｔｉｖｅ：ＡＣＴ）を意味する。このときＢＡはアクティブするバンクを示し、ＡＤＤＲはアクティブするロウアドレスを示す。なお、ここで指定するロウアドレスはプリチャージコマンド（Ｐｒｅｃｈａｒｇｅ：ＰＲＥ，ＰＲＥＡ）によってそのバンクがアイドル状態になるまで有効となる。従って、他のロウアドレスを指定する場合、一旦、プリチャージコマンドを入力する。
【００４７】
ＣＳｎ＝０、ＲＡＳｎ＝１、ＣＡＳｎ＝０、ＷＥｎ＝１ならばリードコマンドを意味する。このときＢＡはリードするバンクを示し、ＡＤＤＲはリードするカラムアドレスを示す。
【００４８】
ＣＳｎ＝０、ＲＡＳｎ＝１、ＣＡＳｎ＝０、ＷＥｎ＝０ならばライトコマンドを意味する。このときＢＡはライトするバンクを示し、ＡＤＤＲはライトするカラムアドレスを示す。
【００４９】
なお、メモリコマンドとして周知のＳＤＲＡＭ（ＤＤＲ１〜４）で規定されているコマンドを含んでいてもよい。
【００５０】
図１０にメモリアクセスを割り込ませる様子を示す。図１０の横軸は経過時間、縦軸はメモリ制御回路が処理する転送を示す。図１０の例では、メモリ制御回路は矢印１００１のタイミングでオンチップバスから１２８ビートの転送１（１ＭＢ、書込み、低優先度）を受け、矢印１００２のタイミングでオンチップバスから転送２（１２８ビート１回分のビット数、書込み、高優先度）を受ける。
【００５１】
図１０（ａ）、（ｂ）は従来のメモリ制御回路によって処理される様子を示す。転送２は転送１よりも優先度が高いので、メモリ制御回路は転送２を転送１に割り込ませようとする。しかし、実際には図１０（ｂ）に示すように、１２８ビートの１回分（１単位）の転送は３２個のメモリアクセスコマンドによって実現される。従って、従来のメモリ制御回路は転送１について最初の１２８ビートの１回分の転送単位に相当するメモリアクセスコマンドを複数発行し終えるまで、転送２についてのメモリアクセスコマンドを発行しない。なお、図１０（ｂ）では理解し易い様に転送１の最初の転送だけ分割する様を示しているが、実際にはそれ以降の転送も分割される。
【００５２】
図１０（ｃ）は、本実施形態のメモリ制御回路１００を用いて転送１と転送２を処理する様子を示す。メモリ制御回路１００は転送２を受け付けてから、従来より早く転送２についてのメモリアクセスコマンドを発行することができる。なお、転送２を受けた時点で転送１についてｎ個目のメモリアクセスを発行中であり、転送２の処理を終えてから残り（３２−ｎ個）のメモリアクセスを再開している。
【００５３】
以上説明したように、本実施形態によれば、先行する転送に基づくメモリアクセスを開始していても、後続の優先度の高い転送に基づくメモリアクセスを割り込ませて転送させ、優先度の高い転送に関する転送効率を向上させることができる。本来、オンチップバスのプロトコルにおいてはリアルタイム性の保証が必要な転送に高い優先度を割り当てるため、本実施形態によればシステム内のリアルタイム性が向上するともいえる。
【００５４】
＜＜実施形態２＞＞
本実施形態では、バーストアクセス（バースト転送）を中断する機能が規定されているＤＤＲ−ＳＤＲＡＭを利用したメモリ制御回路の構成について説明する。
【００５５】
図４は本実施形態のメモリアクセス制御回路２００の概略構成である。なお、実施形態１の構成と同様のものについては同一の符号を付すとともに機能的に変わらない場合はその説明を省略する。
【００５６】
転送振り分け回路１０１はオンチップバスからの転送指示を受信し、低優先度の転送を転送分割回路２０２−１へ、高優先度の転送を転送分割回路２０２−２へ送信する。転送分割回路２０２−１、２０２−２は受信した転送指示に基づいてメモリアクセス要求を生成する。メモリコマンド生成回路２０４は複数の転送分割回路２０２−１、２０２−２からのメモリアクセス要求のうち優先度の高いものを選択して、選択したメモリアクセス要求に基づいてメモリデバイスへバーストアクセスを伴うメモリコマンドを発行する。
【００５７】
転送分割回路２０２は、転送指示を分割するたびに残りのメモリアクセス要求の生成に必要な情報を転送分割状態バッファ２０３に保持させる。本実施形態では、転送指示を完了させるための残りのバースト長を記憶しておくものとする。
【００５８】
ターミネーション制御回路２０５はバーストアクセス中に、それよりも優先度の高い転送指示に基づくメモリアクセス要求を検出すると、優先度の低い転送指示に基づくバーストアクセスを中断する。バーストアクセス中断した場合、メモリアクセスを完了させるための残りのバースト長がいくらかを、ターミネーション制御回路２０５が転送分割状態バッファ２０３−１に通知する。メモリコマンド生成回路２０４はメモリアクセスを中断すると転送分割回路２０２−２からのメモリアクセス要求を受け付け、メモリアクセスをする。転送分割状態バッファ２０３−１は処理できなかったバースト長を未分割のバースト長に加算する。
【００５９】
図５は本実施形態のメモリ制御回路２００に関する各種信号の動作波形を示すタイミングチャートである。横軸と縦軸に関して、実施形態１と同様な点については説明を省略する。ここでは、オンチップバスから３つの転送指示（転送指示Ａ〜Ｃ）を受信して処理する例を示す。また、全ての転送指示はリード転送であるものとする。転送指示Ａは低優先度でバースト長が１６である。転送指示Ｂは低優先度でバースト長が４である。転送指示Ｃは高優先度でバースト長が４であるものとする。また、メモリアクセス一回のデータ量はオンチップバスの４ビート分のデータ量と一致し、リードアクセスに４サイクル要するものとする。
【００６０】
Ｃｌｋ信号、Ｔｒａｎｓ＿Ｒｅｑ信号、Ｔｒａｎｓ＿Ａｃｋ信号、Ｔｒａｎｓ＿Ｐｒｉ信号、Ｔｒａｎｓ＿Ｌｅｎ信号、Ｌｏｗ＿Ｄｉｖ＿Ｒｅｑ信号、Ｌｏｗ＿Ｄｉｖ＿Ａｃｋ信号、Ｌｏｗ＿Ｄｉｖ＿Ｌｅｎ信号、Ｈｉｇｈ＿Ｄｉｖ＿Ｒｅｑ信号、Ｈｉｇｈ＿Ｄｉｖ＿Ａｃｋ信号およびＨｉｇｈ＿Ｄｉｖ＿Ｌｅｎ信号の各々については、信号の定義も遷移の様子も図３とほぼ同様なのでその説明を省略する。
【００６１】
Ｌｏｗ＿Ｍｅｍ＿Ｒｅｑ信号、Ｌｏｗ＿Ｍｅｍ＿Ａｃｋ信号、Ｌｏｗ＿Ｒｅｍ＿Ｌｅｎ信号、Ｈｉｇｈ＿Ｍｅｍ＿Ｒｅｑ信号、Ｈｉｇｈ＿Ｍｅｍ＿Ａｃｋ信号およびＨｉｇｈ＿Ｒｅｍ＿Ｌｅｎ信号の各々については信号の定義は図３と同様であるが、その遷移の様子が図３とは異なる。詳細は後述するが、実施形態２のメモリコマンド生成回路２０４がバーストアクセスを中断する際に転送分割状態バッファに未転送分のバースト長の値を加算し直すことに起因する。
【００６２】
Ｔｅｒｍ信号は、メモリアクセスが中断されたことを示し、ターミネーション制御回路２０５から転送分割状態バッファ２０３−１に出力される。Ｔｅｒｍ＿Ｌｅｎ信号は、バーストアクセスが中断された際の未処理（未転送）のバースト長を示し、ターミネーション制御回路２０５から転送分割状態バッファ２０３−１に出力される。
【００６３】
次に、クロックサイクル毎の各種信号の遷移を遷移順に説明する。ただし、Ｔ０〜Ｔ１１までは図３に示すタイミングチャートと同様であるので、その説明を省略する。Ｔ１１の状態は、低優先度の転送指示Ａに基づく２つ目のリードコマンドが発行される直前であり、転送指示Ｂに基づく処理は転送分割回路２０２−１によって保留され、転送指示Ｃに基づくメモリアクセス要求がメモリコマンド生成回路２０４に伝達される直前である。
【００６４】
Ｔ１２で、転送指示Ａに関して、Ｌｏｗ＿Ｍｅｍ＿Ａｃｋ信号のアサートに応じて転送分割状態バッファ２０３−１の保持するＬｏｗ＿Ｒｅｍ＿Ｌｅｎ信号が４つデクリメントされる。並行して、メモリコマンド生成回路２０４はメモリデバイスに対して転送指示Ａに基づくリードコマンドを発行する。一方で、転送指示Ｃに関して、転送分割回路２０２−２はＨｉｇｈ＿Ｍｅｍ＿Ｒｅｑ信号をアサートすることでメモリコマンド生成回路２０４に対して転送指示Ｂに基づくメモリアクセス要求を出力する。
【００６５】
Ｔ１３で、転送指示Ｃに関して、ターミネーション制御回路２０５はメモリアクセス実行中に転送分割回路２０２−２からのメモリアクセス要求に応答して、Ｔｅｒｍ信号をアサートする。並行して、ターミネーション制御回路２０５は転送分割回路２０２−１に対して転送指示Ａに関するバーストアクセスの中断により２ビート分の転送が未処理であることを知らせる。また、メモリコマンド生成回路２０４は転送指示Ａに基づくリードコマンドの完了を待つことなく転送指示Ｃに基づくメモリアクセス要求を選択する。ここでは、Ｈｉｇｈ＿Ｍｅｍ＿Ａｃｋ信号をアサートし、転送分割回路２０２−２からのメモリアクセス要求を選択する。
【００６６】
Ｔ１４で、転送指示Ｃに関して、Ｈｉｇｈ＿Ｍｅｍ＿Ａｃｋ信号のアサートに応じて転送分割状態バッファ２０３−２のＨｉｇｈ＿Ｒｅｍ＿Ｌｅｎ信号が４つデクリメントされる。並行して、メモリコマンド生成回路２０４はメモリデバイスに対して転送指示Ｃに基づくリードコマンドを発行する。ここで、Ｈｉｇｈ＿Ｒｅｍ＿Ｌｅｎ信号が０になったことにより、転送指示Ｃが完了することが分かる。一方で、転送指示Ａに関して、転送分割状態バッファ２０３−１は転送指示Ａに基づくバーストアクセスが中断され、２ビート分が未処理である通知を受けて、Ｌｏｗ＿Ｒｅｍ＿Ｌｅｎを未処理分加算して更新する。
【００６７】
Ｔ１７〜Ｔ２６では、転送指示Ａに関して、転送分割回路２０２−１はバーストアクセスの中断の通知を考慮した上でメモリアクセス要求をメモリコマンド生成回路２０４に出力し、転送指示Ａに基づくメモリアクセスが再開される。
【００６８】
転送指示Ａに基づくメモリアクセスが完了した後、Ｔ２６で、転送分割回路２０２−１はＬｏｗ＿Ｄｉｖ＿Ａｃｋ信号をアサートし、転送指示Ｂを受信する。そして、Ｔ２９で、転送指示Ｂに基づくメモリアクセス要求がメモリコマンド生成回路２０４に選択され、Ｔ３０で、メモリデバイスに対して転送指示Ｂに基づくメモリコマンドが発行される。このとき、Ｌｏｗ＿Ｒｅｍ＿Ｌｅｎ信号が０になったことにより、転送指示Ｂに基づくメモリコマンドの発行が完了することが分かる。
【００６９】
以上説明したように、本実施形態によれば、先行する転送に基づくバーストアクセス中であっても、バーストターミネーションを利用して後続の優先度の高い転送に基づくメモリアクセスを割り込ませることができる。従って、優先度の高い転送に関する転送効率をより向上させることができる。
【００７０】
なお、上述の実施形態では説明の簡便のため、優先度に対応する転送分割回路を明示的に別の構成としたが、図６や図７のように転送分割状態バッファを優先度毎に設けておけば、メモリコマンド生成回路への出力系は共通化してもよい。図６や図７のように構成することで、転送分割回路のゲート数を減少させることができる。ここで、図６や図７の構成では転送分割回路を共通化しているので、転送振り分け回路の重要度が下がる。従って、転送分割回路を共通化する際には転送振り分け回路と一体的に構成してもよい。
【００７１】
なお、上述の実施形態では説明の簡便のため、リード転送を例に説明したが、転送指示はメモリデバイスへのライト転送であってもよいし、リード転送とライト転送の両方を含んでいてもよい。また、低優先度と高優先度の２つに振り分ける例を用いて説明したが、優先度を３つ以上に振り分けてもよい。ただし、優先度を３つ以上に振り分ける場合、優先度に対応する転送分割状態バッファを増やす必要がある。また、メモリコマンド生成回路に複数のメモリアクセス要求の中から優先度の高いものを選択したり、中断したバーストアクセスについて複数の転送分割状態バッファのうち適切なものに通知したりする構成が必要となる。ただし、調停回路として一般的な構成を用いてもよいし、メモリアクセス要求にどの転送分割系（優先度）から伝達されたものを識別するための識別子を付加しターミネーション制御回路やメモリコマンド生成回路が識別子に応じて選択するようにしてもよい。
【００７２】
上述の実施形態では、転送指示Ｃの処理が転送指示Ａや転送指示Ｂの処理を追い越して処理する例を示した。このような場合、メモリのアクセス領域が同じ領域であるかどうかなどの転送間の依存関係を確認した上で、この依存関係に基づいて追い越しを許可・禁止を制御してもよい。例えば、転送Ａのアクセス領域がアドレス０ｘ０〜０ｘ７Ｆ、転送Ｂのアクセスが０ｘ８０〜０ｘ９Ｆ、転送Ｃのアクセス領域がアドレス０ｘ６０〜０ｘ７Ｆであったとする。この場合、転送Ｃのアクセス領域が転送Ａのアクセス領域と重なるため、転送Ｃの追い越しを禁止し、転送Ｃが転送Ａも転送Ｂも追い越さない様に制御する。
【００７３】
上述の実施形態では、オンチップバスからの転送に予め優先度に対応する情報が付与された例を用いたが、メモリアクセス制御回路がバスやマスタなどの転送指示の発行元を識別して、バスやマスタに応じて転送の優先度を決定して付与するようにしてもよい。その際には、メモリ制御回路に各マスタの識別子と優先度とを対応づけた情報を格納しておけばよい。
【００７４】
また、上述の実施形態では、転送振り分け回路で転送指示を１つだけ保持する構成を用いて説明したが、転送振り分け回路１０１内にＦＩＦＯバッファ（キュー）８０２を備えて複数の転送を保持できる構成であってもよい。例えば、図８（Ａ）のように優先度ごとにバッファ８０２を備え、セレクタ８０１で振り分ける。優先度ごとにバッファを備えた場合、同じ優先度の転送間で順序入れ替えをしてメモリデバイスへのアクセスの効率化を図ってもよい。例えば、異なるバンクへのライトアクセスが連続するように並び替えたり、同じバンクの同じページのアクセスが連続するように並び換えたり、リードとライトの切り替わりが少なくなるように並び換えたりしてもよい。
【００７５】
また、上述の実施形態では転送分割回路が転送分割状態バッファを備え、メモリコマンド生成回路がターミネーション制御回路を備えているが、転送分割状態バッファやターミネーション制御回路は、転送分割回路やメモリコマンド生成回路と通信可能であれば、これらの外に配置されていてもよい。
【００７６】
また、図８（Ｂ）のように低優先度だけバッファを備えてもよい。順序入れ替えが不要な優先度の転送についてはバッファを備える必要はなく、優先度ごとにバッファを備える図８（Ａ）の構成よりも回路規模を削減可能となる。
【００７７】
また上述の説明では図９のように複写機能付きのプリンタを用いて説明したが、本発明はＳＤＲＡＭを備えるメモリに適用することができる。
【００７８】
上述の各実施形態では説明の簡便のため、実施形態毎の図面を用意して説明したが、複数種類のメモリデバイスを構成し、メモリデバイスの種類に応じた複数のメモリ制御回路を用いる場合などは、複数の実施形態を組み合わせても本発明を実施できる。その場合、各実施形態の効果に対応する個別の課題を解決していることに相当する。
【図１】
2014035628.tif 000003
【図２】
2014035628.tif 000004
【図３】
2014035628.tif 000005
【図４】
2014035628.tif 000006
【図５】
2014035628.tif 000007
【図６】
2014035628.tif 000008
【図７】
2014035628.tif 000009
【図８】
2014035628.tif 000010
【図９】
2014035628.tif 000011
【図１０】
2014035628.tif 000012