(57)【要約】【課題】複数のデータ処理装置（バスマスタ）から１つの記憶装置にアクセス要求が発行されてバスが競合するメモリアクセスシステムにおけるアクセス効率を改善する。【解決手段】メモリ制御装置におけるアクセス要求受付手段２２は、ＤＲＡＭ１０の連続したアドレスに配置されているデータに対する連続する複数のアクセス要求、または、ＤＲＡＭ１０の不連続なアドレスに配置されているデータに対する連続する複数のアクセス要求を、連続した複数のアクセス要求として受け付ける。アクセス要求並べ替え手段２４は、アクセス要求受付手段２２が受け付けた連続するアクセス要求について、１つのデータ処理装置から出力された、データの書込み要求、または、データの読み出し要求のいずれか一方の連続したアクセス要求の範囲内でＤＲＡＭ１０のバンク順に連続したアクセス要求を並べ替えてＤＲＡＭ１０のアクセスを制御する。【選択図】図２
2010027006.tif 000002
【特許請求の範囲】
【請求項１】
バスと、バンク構造を持つ単一の記憶装置と、前記バスに対する接続される複数のデータ処理装置からの前記記憶装置へのデータの書込み要求、または、前記記憶装置からのデータの読み出し要求が前記バスにおいて競合しないように調停するバス調停装置とを有するメモリアクセスシステムに配設され、
アクセス要求受付手段と、
アクセス要求並べ替え手段と、
を有し、
前記アクセス要求受付手段は、
前記記憶装置の連続したアドレスに配置されているデータに対する連続する複数のアクセス要求を受け付ける、または、
前記記憶装置の不連続なアドレスに配置されているデータに対する連続する複数のアクセス要求を連続した複数のアクセス要求として受け付け、または、
１つのアクセス要求にできない前記記憶装置の連続したアドレスに配置されているデータに対するアクセス要求を、連続した複数のアクセス要求として受け付け、
前記アクセス要求並べ替え手段は、少なくとも、前記アクセス要求受付手段において受け付けた連続するアクセス要求について、前記１つのデータ処理装置から出力された、データの書込み要求、または、データの読み出し要求のいずれか一方の連続したアクセス要求の範囲内で前記記憶装置のバンク順に前記連続したアクセス要求を並べ替えて、前記記憶装置のアクセス動作を制御する、
メモリ制御装置。
【請求項２】
前記アクセス要求並べ替え手段は、前記連続するアクセス要求について、前回並べ替えた最後のアクセス要求と競合しないアクセス要求を次のアクセス要求の先頭に並べ替える、
請求項１に記載のメモリ制御装置。
【請求項３】
前記アクセス要求並べ替え手段は、前記連続するアクセス要求について、前回並べ替えたアクセス要求と競合するアクセス要求を前回並べ替えた順番と同じ順番で１つずつ並べ替える、
請求項１に記載のメモリ制御装置。
【請求項４】
前記アクセス要求並べ替え手段は、前記アクセス要求受付手段から入力された前記複数のアクセス要求について、次の最初のアクセス要求を参照して、当該次の最初のアクセス要求と競合しないアクセス要求を最後のアクセス要求に並べ替える、
請求項１に記載のメモリ制御装置。
【請求項５】
前記アクセス要求並べ替え手段は、
アクセスサイクル計算部と、
データ並べ替え部と
を有し、
前記アクセスサイクル計算部は、前記アクセス要求受付手段から入力された連続するアクセス要求についてアクセスサイクルの数を計算し、並べ替え後のアクセスサイクルが最短になるように、前記連続するアクセス要求を並べ替え、
前記データ並べ替え部は、前記アクセスサイクル計算部におけるアクセス要求の並べ替えに応じて、対応するデータを並べ替える、
請求項１に記載のメモリ制御装置。
【請求項６】
当該メモリ制御装置は、前記アクセス要求受付手段と前記アクセス要求並べ替え手段との間に設けられた、ライトアクセス要求キャッシュ手段をさらに有し、
当該ライトアクセス要求キャッシュ手段は、
第１のキャッシュ・メモリと、
第１の判定・制御部と
を有し、
前記第１の判定・制御部は、
前記アクセス要求受付手段から入力されたアクセス要求のうち、リードコマンドに該当するデータが前記キャッシュ・メモリに保存されている場合は、前記第１のキャッシュ・メモリに保存されているデータを前記バスに送出する処理を行い、または、前記アクセス要求受付手段から入力されたアクセス要求のうち、ライトコマンドに該当するデータが前記キャッシュ・メモリに保存されていないが、前記第１のキャッシュ・メモリに保存可能である場合はそのライトコマンドを保存し、
前記アクセス要求受付手段から入力されたアクセス要求のうち、リードコマンドに該当するデータが前記第１のキャッシュ・メモリに保存されていない場合は、または、前記アクセス要求受付手段から入力されたアクセス要求のうち、ライトコマンドに該当するデータが前記キャッシュ・メモリに保存されていず、前記キャッシュ・メモリに保存できない場合は、前記アクセス要求受付手段から入力されたアクセス要求を前記アクセス要求並べ替え手段に送出する処理を行う、
請求項１に記載のメモリ制御装置。
【請求項７】
当該メモリ制御装置は、前記アクセス要求受付手段と前記アクセス要求並べ替え手段との間に設けられた、リードアクセス要求キャッシュ手段をさらに有し、
当該リードアクセス要求キャッシュ手段は、
第２のキャッシュ・メモリと、
第２の判定・制御部と
を有し、
前記第２の判定・制御部は、
前記アクセス要求受付手段から入力されたアクセス要求のうち、リードコマンドに該当するアクセス要求と対応するデータを前記第２のキャッシュ・メモリに保存しておき、前記第２のキャッシュ・メモリに保存しているリードコマンドに該当するアクセス要求に該当するアクセス要求を前記アクセス要求受付手段から入力したとき、前記保存しているデータを前記バスに送出する処理を行う、
請求項１に記載のメモリ制御装置。
【請求項８】
前記記憶装置は、所定周期でリフレッシュ動作を行う記憶装置であり、
当該メモリ制御装置は、前記記憶装置に接続されたリフレッシュ・コマンド発行手段を有し、
前記リフレッシュ・コマンド発行手段は、前記リフレッシュ周期の前の所定時間内に、前回の前記記憶装置へのアクセスの競合で一定時間以下のアクセス間隔になるように連続したアクセス要求が並べ替えできない場合に前記記憶装置をリフレッシュ動作させる、リフレッシュコマンドを前記記憶装置に発行する、
請求項１に記載のメモリ制御装置。
【請求項９】
前記バス調停装置から、前記アクセス要求並べ替え手段に、前記データ処理装置から前記バスに出力された連続するアクセス要求に切れ目があることを指示する、連続アクセス切れ目通知信号が入力されたとき、
前記アクセス要求並べ替え手段は、前記連続アクセス切れ目通知信号に応じて、連続するアクセス要求の調整を行う、
請求項１に記載のメモリ制御装置。
【請求項１０】
前記アクセス要求並べ替え手段は、前記連続するアクセス要求を処理する数を、事前に決定された前記データ処理装置の優先度に応じて決定する、
請求項１に記載のメモリ制御装置。
【請求項１１】
バスと、
バンク構造を持つ、単一の記憶装置と、
前記バスに対する接続される複数のデータ処理装置からの前記記憶装置へのデータの書込み要求、または、前記記憶装置からのデータの読み出し要求が前記バスにおいて競合しないように調停するバス調停装置と、
請求項１〜１０のいずれかに記載のメモリ制御装置と
を有する、
メモリアクセスシステム。
【請求項１２】
バスと、バンク構造を持つ、単一の記憶装置と、前記バスに対する接続される複数のデータ処理装置からの前記記憶装置へのデータの書込み要求、または、前記記憶装置からのデータの読み出し要求が前記バスにおいて競合しないように調停するバス調停装置とを有するメモリアクセスシステムに配設されるメモリ制御装置に適用され、
アクセス要求受付工程と、
アクセス要求並べ替え工程と
を少なくとも有し、
前記アクセス要求受付工程において、
前記記憶装置の連続したアドレスに配置されているデータに対する連続する複数のアクセス要求を受け付ける、または、
前記記憶装置の不連続なアドレスに配置されているデータに対する連続する複数のアクセス要求を連続した複数のアクセス要求として受け付け、または、
１つのアクセス要求にできない前記記憶装置の連続したアドレスに配置されているデータに対するアクセス要求を、連続した複数のアクセス要求として受け付け、
前記アクセス要求並べ替え工程において、少なくとも、前記アクセス要求受付工程において受け付けた連続するアクセス要求について、前記１つのデータ処理装置から出力された、データの書込み要求、または、データの読み出し要求のいずれか一方の連続したアクセス要求の範囲内で前記記憶装置のバンク順に前記連続したアクセス要求を並べ替えて、前記記憶装置のアクセス動作を制御する、
メモリ制御方法。
【請求項１３】
バスと、バンク構造を持つ、単一の記憶装置と、前記バスに対する接続される複数のデータ処理装置からの前記記憶装置へのデータの書込み要求、または、前記記憶装置からのデータの読み出し要求が前記バスにおいて競合しないように調停するバス調停装置とを有するメモリアクセスシステムに配設されるメモリ制御装置に適用され、
少なくとも、
アクセス要求受付手順と、
アクセス要求並べ替え手順と
をコンピュータに実行させるプログラムであり、
前記コンピュータに実行させる前記アクセス要求受付手順は、
前記記憶装置の連続したアドレスに配置されているデータに対する連続する複数のアクセス要求を受け付ける、または、
前記記憶装置の不連続なアドレスに配置されているデータに対する連続する複数のアクセス要求を連続した複数のアクセス要求として受け付ける、または、
１つのアクセス要求にできない前記記憶装置の連続したアドレスに配置されているデータに対するアクセス要求を、連続した複数のアクセス要求として受け付ける
処理を行う手順を含み、
前記アクセス要求並べ替え手順は、少なくとも、前記アクセス要求受付手順において受け付けた連続するアクセス要求について、前記１つのデータ処理装置から出力された、データの書込み要求、または、データの読み出し要求のいずれか一方の連続したアクセス要求の範囲内で前記記憶装置のバンク順に前記連続したアクセス要求を並べ替えて、前記記憶装置のアクセス動作を制御する処理を行う手順を含む、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータ処理装置から１つの記憶装置（メモリ）にデータの書き込み、または、記憶手段からデータの読み出しを行う、メモリアクセスシステム、および、メモリアクセスシステムに適用するメモリ制御装置、メモリ制御方法、および、プログラムに関する。
特に、本発明は、バスに接続された複数のデータ処理装置から、１つの記憶手段にデータの書き込み、または、記憶手段からデータを読みだすときに、バスの使用の競合を調停するバス調停手段と、記憶手段の制御を行うメモリ制御装置とを有する、メモリアクセスシステム、それに適用するメモリ制御装置、メモリ制御方法、および、プログラムに関する。
【背景技術】
【０００２】
１つの記憶装置（メモリ）、たとえば、１つのＤＲＡＭに対して、複数のデータ処理装置から、データの書き込み、または、データの読み出しを行うメモリアクセスシステムが種々の分野で使用されている。
たとえば、１つのメモリに対して、複数のデータ処理装置が、メモリに画像データを書き込んだり、書き込んだ画像データをメモリから読み出すことにより、メモリに記憶された画像データを複数のデータ処理装置が使用して、所望の信号処理を遂行する、メモリアクセスシステム（または、信号処理システム）が知られている。
【０００３】
このようなメモリアクセスシステムにおいては、複数のデータ処理装置から１つのメモリに対して、データの書き込み要求、または、データの読み出し要求が同時に発生する場合が起こる。
以下、記憶装置（メモリ）への、データの書き込み要求、または、データの読み出し要求を総称して、記憶装置（メモリ）への「アクセス要求」という。
【０００４】
バス調停装置（バス・アービター）は、複数のデータ処理装置から、１つのメモリに同じタイミングでアクセス要求が発生した場合のバスの使用の競合を調停する。
【０００５】
ＤＲＡＭなどのメモリは、バンクごとのアクセスが可能となっている。
そこで、複数のデータ処理装置からアクセス要求があった場合に、バンクごと処理するため、バスとメモリとの間に、メモリコントローラを設けて、バンクごとのアクセスを可能とすることにより、メモリのアクセス効率を向上することが試みられている。
そのようなメモリのアクセス効率を改善する先行技術を例示する。
【０００６】
特許文献１（特開２００７−１８２２２号公報）は、あるデータ処理装置（バスマスタ）からのメモリへのアクセス要求をメモリのバンク単位に分割し、転送要求がないバンクが存在する場合、別のデータ処理装置からのアクセス要求を組み合わせて行う。これにより、メモリのアクセス効率を改善することを意図している。
【０００７】
また、特許文献２（特開２００６−２６０４７２号公報）は、アクセス要求の並べ替えについて特に限定せずに、バンク単位の順序を入れ換える技術を開示している。
【０００８】
しかしながら、特許文献１、２に開示されている手法を適用すると、異なるバスマスタ（データ処理装置）からのメモリアクセスの順番が入れ替わる。この詳細は、本発明の実施の形態における対比として後で詳述する。
バスマスタ（データ処理装置）のメモリアクセスの順番が入れ替わると、たとえば、バスマスタＡがメモリに書き込んだデータを、このデータの書き込みの直後に、別のバスマスタＢがデータの読み出しを行ってもバスマスタＡが書いたデータをメモリから読みだせない場合がある。その具体例は、図面を参照して、本発明の実施の形態との対比において、後で、詳述する。
【０００９】
【特許文献１】特開２００７−１８２２２号公報
【特許文献２】特開２００６−２６０４７２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
また、同一のバスマスタ（データ処理装置）のメモリへのデータの書き込み、および、メモリからのデータの読み出しの順番が入れ替わった場合、メモリに書き込みしたデータをその直後に同じバスマスタでメモリから読みだしても書き込んだデータを正しく読みだすことができない可能性がある。
【００１１】
さらに、バスマスタ（データ処理装置）に優先度がある場合は、優先度のレベルをメモリ制御装置（メモリコントローラ）で管理する必要があり、メモリ制御装置の処理内容および構成が複雑になる。
【００１２】
他方、特許文献１、２に開示されている技術においては、メモリへのアクセス要求の分割を行っているが、１つのアクセス要求で発行できるアクセスには、たとえば、（ａ）連続アドレスでなければならない、（ｂ）バスによっては１ｋＢの境界を跨いではいけないなどの制約がある。そのため、バスマスタ（データ処理装置）によっては、データがあるのにアドレスが連続していないために細かく分割されてしまう。
【００１３】
さらに、バスマスタ（データ処理装置）からのアクセス要求のデータサイズのばらつきが大きくなり、データ量が同じでもデータ転送に必要な時間が異なるという問題があった。
【００１４】
複数のアクセス要求を分割して、特に限定せずにバンク単位の順序を並べ替えてメモリへのデータの書き込み・読み出しをする場合について述べる。
ある連続したメモリからのデータの読み出しが、複数のアクセス要求の最後に必要とするデータのみの組み合わせであった場合、少しのメモリアクセスの時間で複数のアクセス要求のデータが揃う。その結果、メモリコントローラは、メモリアクセス量以上のデータをバスマスタに送らねばならず、バス使用の競合が生ずるという問題がある。
【００１５】
したがって、上述した課題を克服して、アクセス効率のよいメモリアクセスシステムを提供することが望まれている。
また、上記効率のよいメモリアクセスシステムに適用した好適なメモリ制御装置（メモリコントローラ）が要望されている。
さらに、上記効率のよいメモリアクセスシステムに適用した好適なメモリ制御方法（メモリコントル方法）およびプログラムが要望されている。
【課題を解決するための手段】
【００１６】
本発明によれば、バスと、バンク構造を持つ、単一の記憶装置と、前記バスに対する接続される複数のデータ処理装置からの前記記憶装置へのデータの書込み要求、または、前記記憶装置からのデータの読み出し要求が前記バスにおいて競合しないように調停するバス調停装置とを有するメモリアクセスシステムに配設され、
アクセス要求受付手段と、アクセス要求並べ替え手段とを有し、
前記アクセス要求受付手段は、前記記憶装置の連続したアドレスに配置されているデータに対する連続する複数のアクセス要求を受け付ける、または、前記記憶装置の不連続なアドレスに配置されているデータに対する連続する複数のアクセス要求を連続した複数のアクセス要求として受け付け、または、１つのアクセス要求にできない前記記憶装置の連続したアドレスに配置されているデータに対するアクセス要求を、連続した複数のアクセス要求として受け付け、
前記アクセス要求並べ替え手段は、少なくとも、前記アクセス要求受付手段において受け付けた連続するアクセス要求について、前記１つのデータ処理装置から出力された、データの書込み要求、または、データの読み出し要求のいずれか一方の連続したアクセス要求の範囲内で前記記憶装置のバンク順に前記連続したアクセス要求を並べ替えて、前記記憶装置のアクセス動作を制御する、
メモリ制御装置が提供される。
【００１７】
好ましくは、前記アクセス要求並べ替え手段は、前記連続するアクセス要求について、前回並べ替えた最後のアクセス要求と競合しないアクセス要求を次のアクセス要求の先頭に並べ替える。
また好ましくは、前記アクセス要求並べ替え手段は、連続するアクセス要求について、前回並べ替えたアクセス要求と競合するアクセス要求を前回並べ替えた順番と同じ順番で１つずつ並べ替える。
好ましくは、前記アクセス要求並べ替え手段は、前記アクセス要求受付手段から入力された前記複数のアクセス要求について、次の最初のアクセス要求を参照して、当該次の最初のアクセス要求と競合しないアクセス要求を最後のアクセス要求に並べ替える。
【００１８】
好ましくは、前記アクセス要求並べ替え手段は、アクセスサイクル計算部と、データ並べ替え部とを有する。
前記アクセスサイクル計算部は、前記アクセス要求受付手段から入力された連続するアクセス要求についてアクセスサイクルの数を計算し、並べ替え後のアクセスサイクルが最短になるように、前記連続するアクセス要求を並べ替える。
前記データ並べ替え部は、前記アクセスサイクル計算部におけるアクセス要求の並べ替えに応じて、対応するデータを並べ替える。
【００１９】
また好ましくは、当該メモリ制御装置は、前記アクセス要求受付手段と前記アクセス要求並べ替え手段との間に設けられた、ライトアクセス要求キャッシュ手段をさらに有し、当該ライトアクセス要求キャッシュ手段は、第１のキャッシュ・メモリと、第１の判定・制御部とを有する。
前記第１の判定・制御部は、前記アクセス要求受付手段から入力されたアクセス要求のうち、リードコマンドに該当するデータが前記キャッシュ・メモリに保存されている場合は、前記キャッシュ・メモリに保存されているデータを前記バスに送出する処理を行い、または、前記アクセス要求受付手段から入力されたアクセス要求のうち、ライトコマンドに該当するデータが前記キャッシュ・メモリに保存されていないが、前記キャッシュ・メモリに保存可能である場合はそのライトコマンドを保存し、前記アクセス要求受付手段から入力されたアクセス要求のうち、リードコマンドに該当するデータが前記キャッシュ・メモリに保存されていない場合は、または、前記アクセス要求受付手段から入力されたアクセス要求のうち、ライトコマンドに該当するデータが前記キャッシュ・メモリに保存されていず、前記キャッシュ・メモリに保存できない場合は、前記アクセス要求受付手段から入力されたアクセス要求を前記アクセス要求並べ替え手段に送出する処理を行う。
【００２０】
また好ましくは、当該メモリ制御装置は、前記アクセス要求受付手段と前記アクセス要求並べ替え手段との間に設けられた、リードアクセス要求キャッシュ手段をさらに有し、当該リードアクセス要求キャッシュ手段は、第２のキャッシュ・メモリと、第２の判定・制御部とを有する。
前記第２の判定・制御部は、前記アクセス要求受付手段から入力されたアクセス要求のうち、リードコマンドに該当するアクセス要求と対応するデータを前記第２のキャッシュ・メモリに保存しておき、前記第２のキャッシュ・メモリに保存しているリードコマンドに該当するアクセス要求に該当するアクセス要求を前記アクセス要求受付手段から入力したとき、前記保存しているデータを前記バスに送出する処理を行う。
【００２１】
好ましくは、前記記憶装置は、所定周期でリフレッシュ動作を行う記憶装置であり、
当該メモリ制御装置は、前記記憶装置に接続されたリフレッシュ・コマンド発行手段を有する。
前記リフレッシュ・コマンド発行手段は、前記リフレッシュ周期の前の所定時間内に、前回の前記記憶装置へのアクセスの競合で一定時間以下のアクセス間隔になるように連続したアクセス要求が並べ替えできない場合に、前記記憶装置をリフレッシュ動作させる、リフレッシュコマンドを前記記憶装置に発行する。
【００２２】
好ましくは、前記バス調停装置から、前記アクセス要求並べ替え手段に、前記データ処理装置から前記バスに出力された連続するアクセス要求に切れ目があることを指示する、連続アクセス切れ目通知信号が入力されたとき、前記アクセス要求並べ替え手段は、前記連続アクセス切れ目通知信号に応じて、連続するアクセス要求の調整を行う。
【００２３】
好ましくは、前記アクセス要求並べ替え手段は、前記連続するアクセス要求を処理する数を、事前に決定された前記データ処理装置の優先度に応じて決定する。
【００２４】
また本発明によれば、バスと、バンク構造を持つ、単一の記憶装置と、前記バスに対する接続される複数のデータ処理装置からの前記記憶装置へのデータの書込み要求、または、前記記憶装置からのデータの読み出し要求が前記バスにおいて競合しないように調停するバス調停装置と、上記いずれかに記載のメモリ制御装置とを有する、メモリアクセスシステムが提供される。
【００２５】
本発明によれば、バスと、バンク構造を持つ、単一の記憶装置と、前記バスに対する接続される複数のデータ処理装置からの前記記憶装置へのデータの書込み要求、または、前記記憶装置からのデータの読み出し要求が前記バスにおいて競合しないように調停するバス調停装置とを有するメモリアクセスシステムに配設されるメモリ制御装置に適用するため、少なくとも、アクセス要求受付工程と、アクセス要求並べ替え工程とを有し、
前記アクセス要求受付工程において、前記記憶装置の連続したアドレスに配置されているデータに対する連続する複数のアクセス要求を受け付ける、または、前記記憶装置の不連続なアドレスに配置されているデータに対する連続する複数のアクセス要求を連続した複数のアクセス要求として受け付け、または、１つのアクセス要求にできない前記記憶装置の連続したアドレスに配置されているデータに対するアクセス要求を、連続した複数のアクセス要求として受け付け、
前記アクセス要求並べ替え工程において、少なくとも、前記アクセス要求受付工程において受け付けた連続するアクセス要求について、前記１つのデータ処理装置から出力された、データの書込み要求、または、データの読み出し要求のいずれか一方の連続したアクセス要求の範囲内で前記記憶装置のバンク順に前記連続したアクセス要求を並べ替えて、前記記憶装置のアクセス動作を制御する、
メモリ制御方法が提供される。
【００２６】
また本発明によれば、バスと、バンク構造を持つ、単一の記憶装置と、前記バスに対する接続される複数のデータ処理装置からの前記記憶装置へのデータの書込み要求、または、前記記憶装置からのデータの読み出し要求が前記バスにおいて競合しないように調停するバス調停装置とを有するメモリアクセスシステムに配設されるメモリ制御装置に適用するため、少なくとも、アクセス要求受付手順と、アクセス要求並べ替え手順とをコンピュータに実行させるプログラムであり、
前記コンピュータに実行させる前記アクセス要求受付手順において、前記記憶装置の連続したアドレスに配置されているデータに対する連続する複数のアクセス要求を受け付ける、または、前記記憶装置の不連続なアドレスに配置されているデータに対する連続する複数のアクセス要求を連続した複数のアクセス要求として受け付ける、または、１つのアクセス要求にできない前記記憶装置の連続したアドレスに配置されているデータに対するアクセス要求を、連続した複数のアクセス要求として受け付ける手順を行い、
前記コンピュータに実行させる前記アクセス要求並べ替え手順において、少なくとも、前記アクセス要求受付手順において受け付けた連続するアクセス要求について、前記１つのデータ処理装置から出力された、データの書込み要求、または、データの読み出し要求のいずれか一方の連続したアクセス要求の範囲内で前記記憶装置のバンク順に前記連続したアクセス要求を並べ替えて、前記記憶装置のアクセス動作を制御する手順を行う、
プログラムが提供される。
【発明の効果】
【００２７】
本発明によれば、記憶装置へのアクセス効率を改善することができたメモリアクセスシステムを提供することができる。
【００２８】
また本発明によれば、メモリアクセスシステムに適用され、記憶装置へのアクセス効率を改善することができた、メモリ制御装置を提供することができる。
【００２９】
さらに本発明によれば、メモリアクセスシステムに適用され、記憶装置へのアクセス効率を改善することができた、メモリ制御方法を提供することができる。
【００３０】
また本発明によれば、メモリアクセスシステムに適用され、記憶装置へのアクセス効率を改善することができた、プログラムを提供することができる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明のメモリアクセスシステム、メモリ制御装置およびメモリ制御方法の実施の形態を添付した図面を参照して述べる。
【００３２】
第１実施の形態
図１は、一般的なメモリバス構成に、本願発明の実施の形態のメモリアクセス制御技術を適用した、メモリアクセスシステムの構成を示す。
図１に図解のメモリアクセスシステム１は、記憶装置（メモリ）の１例としての、ダイナミック・ランダム・アクセス・メモリ装置（ＤＲＡＭ）１０と、メモリ制御装置としてのメモリコントローラ２０と、バス調停装置としてのバス・アービター（バス調停部）３０と、アドレスバス７０と、データバス８０とを有する。
なお、アドレスバス７０とデータバス８０とを総称して、バス９０と呼ぶ。
【００３３】
バス９０を介してＤＲＡＭ１０に対して、データの書き込み要求、または、データの読み出し要求を行う、データ処理装置として、第１のバスマスタ４０と第２のバスマスタ５０とがバス９０に接続されている。
データ処理装置としてのバスマスタは、上述した２つのバスマスタに限らず、複数存在可能であるが、図１には図解を簡単にするため、２個のバスマスタを設けた場合について図解した。
【００３４】
ＤＲＡＭ１０は、複数のバンクを有し、各バンクごとにアクセスが可能な構成をしている。
【００３５】
図２は、図１のメモリアクセスシステム１に適用する、本発明のメモリ制御装置の１実施の形態としてのメモリコントローラの構成を示す図である。
図２に図解のメモリコントローラ２０は、アクセス要求受付手段２２と、アクセス要求並べ替え手段２４と、コマンド発行手段２６と、リフレッシュ・コマンド発行手段２８とを有する。
アクセス要求受付手段２２は、一方において、バス９０、すなわち、アドレスバス７０とデータバス８０に接続されている。また、アクセス要求受付手段２２は、他方において、アクセス要求並べ替え手段２４に接続されている。
アクセス要求並べ替え手段２４は、一方において、アクセス要求受付手段２２に接続され、他方において、コマンド発行手段２６に接続されている。
コマンド発行手段２６は、一方において、アクセス要求並べ替え手段２４に接続され、他方において、ＤＲＡＭ１０に接続されている。
また、リフレッシュ・コマンド発行手段２８は、アクセス要求並べ替え手段２４とＤＲＡＭ１０に接続されている。
以下、メモリコントローラ２０の動作を述べる。
【００３６】
アクセス要求受付手段２２は、アドレスバス７０から１つのリードコマンドまたはライトコマンドにできる単位となるアクセス要求ＡＣＣ−ＲＥＱ０を受け取り、受け取ったアクセス要求をアクセス要求並べ替え手段２４に転送する。
アクセス要求受付手段２２は、上述したアクセス要求ＡＣＣ−ＲＥＱ０の受信と同時に、アクセス要求ＡＣＣ−ＲＥＱ０に対応するデータＤＡＴＡ０をデータバス８０から受け取り、受け取ったデータＤＡＴＡ０をアクセス要求並べ替え手段２４に転送する。
【００３７】
アクセス要求並べ替え手段２４は、アクセスサイクル計算部２４１と、データ並べ替え部２４３とを有する。
アクセスサイクル計算部２４１は、アクセス要求受付手段２２から転送されたアクセス要求についてアクセスサイクルが短くなる順序を計算して、計算した順序にアクセス要求を並べ替える。
データ並べ替え部２４３は、アクセスサイクル計算部２４１において並べ替えた順序に応じて、アクセス要求受付手段２２から転送されたデータＤＡＴＡ１を並べ替える。
なお、データ並べ替え部２４３におけるデータの並べ替えのタイミングは、ＤＲＡＭ１０へのデータの書き込み時はアクセス要求の並べ替えと同時に行い、ＤＲＡＭ１０からデータを読みだす時はデータを読みだした後に行う。
アクセス要求並べ替え手段２４において並べ替えたアクセス要求は、コマンド発行手段２６に転送される。
なお、アクセス要求並べ替え手段２４における詳細動作は、添付図面を参照した種々の実施の形態として後述する。
【００３８】
コマンド発行手段２６は、アクセス要求並べ替え手段２４から転送されたアクセス要求（リードコマンドまたは、ライトコマンド）を、ＤＲＡＭ１０の規定に合ったコマンドとして、規定されたタイミングを満足するように、ＤＲＡＭ１０に対して発行する。
【００３９】
リフレッシュ・コマンド発行手段２８もＤＲＡＭ１０に接続されており、ＤＲＡＭ１０に記憶（格納、または、保管）されているデータのリフレッシュ動作を制御するコマンドを発行する。
【００４０】
バス・アービター（バス調停装置）３０の動作の概要を述べる。なお、バス・アービター３０の詳細な動作は、たとえば、図１７、図１８を参照した後述する。
第１のバスマスタ４０がバス９０を使用するとき、バス・アービター３０に対して、バスの使用を要求することを示す「バスリクエスト」またはロックすることを要求することを示す「ロック要求信号」、すなわち、第１のバスリクエスト・ロック要求信号Ｓ４０を出力する。「バスリクエスト」または「ロック要求」については、図１８を参照して後述する。
【００４１】
第１のバスマスタ４０からバスリクエスト・ロック要求信号Ｓ４０を受けたバス・アービター３０は、バス９０の状態を判断して、第１のバスマスタ４０がバス９０に対して使用可能とする場合、第１のバスマスタ４０にバスの使用を許可することを意味する、第１のバス使用許可信号Ｓ３１を、第１のバスマスタ４０に出力する。
同様に、第２のバスマスタ５０がバス９０を使用するとき、バスアービター３０に対して、第２のバスリクエスト・ロック要求信号Ｓ５０を出力する。バスリクエスト・ロック要求信号Ｓ５０を受けたバス・アービター３０は、バス９０の状態を判断して、第２のバスマスタ５０がバス９０に対して使用可能とする場合、第２のバスマスタ５０にバスの使用を許可することを意味する、第２のバス使用許可信号Ｓ３２を、第２のバスマスタ５０に出力する。
【００４２】
バス９０の競合を調停するバス・アービター３０から、必要に応じて、メモリコントローラ２０に、連続アクセスの切れ目を通知する、連続アクセス切れ目通知信号Ｓ３０が印加される。バス・アービター３０からの連続アクセス切れ目通知信号Ｓ３０の発行については後述する。
【００４３】
図３は、本発明の実施の形態におけるアクセス要求の出し方（図３（Ｂ））と、従来のアクセス要求の出し方（図３（Ｃ））を示す図である。この実施の形態は、２つまで連続してアクセス要求を受け付ける場合について例示する。
図３（Ａ）はアドレス配置を示す。
図３（Ａ）に図示したように、たとえば、第１のバスマスタ４０がＡ１，Ａ３，Ａ５，Ａ７，Ａ９，Ａ１１と不連続な６個のアクセス要求をアドレスバス７０に転送し、第２のバスマスタ５０がＢ１，Ｂ２，Ｂ３，Ｂ４，Ｂ５，Ｂ６とアドレスが連続する６個のアクセス要求をアドレスバス７０に転送するとき、これらのアクセス要求はアドレスバス７０においてバス・アービター３０で調停されながら、アドレスバス７０を転送される。
【００４４】
図３（Ｂ）に図示の例では、アドレスが不連続なアクセス要求は１回につき１つの転送を行うが、アドレスが連続したアクセス要求は太い枠内のバースト転送が行われ、２つずつアクセス要求がアドレスバス７０の上を転送される。
図３（Ｃ）は、アドレスが不連続しているか連続しているかに拘らず、公平に１つのバスマスタから２個ずつアドレス要求が転送される場合を示す。
【００４５】
図３（Ｂ）の図解と図３（Ｃ）の図解とを比較すると、転送するのは同じデータ量であるにもかかわらず、図３（Ｃ）に図解した場合のほうが早く転送が終了する。
本実施の形態において、図３（Ｃ）に図解した方法で転送を行う。
【００４６】
図４は、連続アドレス要求が、４個までの場合のアドレス配置を示す図である。
図４（Ａ）はアドレス要求が境界を跨がない場合のアドレス配置を示す。
図４（Ｂ）は図４（Ａ）のアドレス配置が不連続なので、アドレス要求が２個ずつに分割されるが、バースト転送可能な２個ずつのアドレス要求の転送を行う場合を示す。
図４（Ｃ）は、不連続なアドレスのアドレス要求を連続して転送する場合を示す。
【００４７】
図４（Ｄ）はアドレス要求が境界を跨ぐ場合のアドレス配置を示す。
図４（Ｅ）は図４（Ｄ）のアドレス配置が境界を跨ぐので、境界を跨ぐ部分でアクセス要求が２個ずつに分割され、２個ずつのアクセス要求の転送を行う場合を示す。
図４（Ｆ）は、境界を跨ぐが４つのアクセス要求を連続して転送する場合を示す。
【００４８】
本実施の形態においては、図４（Ｃ）、図４（Ｆ）に示したように、アクセス要求を連続した転送することを可能とする。その結果、アドレスの連続または不連続、あるいは、アドレス配置の境界を跨ぐか否かに拘らず、連続転送当たりのデータ量をほぼ同じにすることができる。
なお、連続アドレス要求の数は、上記例示の４に限らず、任意にすることができる。
【００４９】
図５は連続転送数のパターンを例示的に図表として表した図表である。
本発明の実施の形態のメモリアクセスシステム１が、たとえば、画像処理システムに適用された場合などにおいて、画像データの転送など、事前にデータの転送量が分かっている場合、複数のアクセス要求が事前に判明している。その場合、たとえば、残りのアクセス要求が８以上の場合は８以下になるまでは４、８未満の１〜７までの場合は図表に示したように転送量をまとめることで、必ず上限数以下で複数のアクセス要求を連続して行うことができる。
たとえば、判明しているアクセス要求の数が７の場合は、４個のアクセス要求を連続して転送し、次いで、３個のアクセス要求を連続して転送する。特に、転送上、上限のアクセス要求の連続の数をＤＲＡＭ１０のバンク数の整数倍にすることで、並べ替え効率のよいアクセスにすることができる。
【００５０】
すなわち、アクセス要求並べ替え手段２４において、連続したアクセス要求の範囲内で並べ替えが行われるので、判明しているアクセス要求数が複数の場合は、必ず、複数個のアクセス要求を連続させることができる。
この例では、転送上、上限のアクセス要求の連続する数を４としているが、４には限定されない。
【００５１】
図６はアクセス要求の並べ替えを示す図である。
図６（Ａ）は３個のバスマスタＡ，Ｂ，Ｃからそれぞれ、リードコマンドＡ３Ｒ，Ａ４Ｒ、ライトコマンドＢ３Ｗ，Ｂ４Ｗ、リードコマンドＣ４Ｒ，Ｃ１Ｒが転送される。
たとえば、「Ａ３Ｒ」は、バスマスタＡから、バンク３のリードコマンドが転送されることを意味する。また、「Ｂ３Ｗ」は、バスマスタＢから、バンク３へのライトコマンドが転送されることを意味する。
この例は、バスマスタＢから転送されたライトコマンド「Ｂ４Ｗ」によってバンク４に書き込まれたデータを、バスマスタＣから転送されたリードコマンド「Ｃ４Ｒ」によってデータを読みだすことを示す。
【００５２】
図６（Ｂ）、（Ｃ）は、従来の方法を示す。
図６（Ｂ）に図示した太枠内でコマンドがアクセス要求としてバースト転送され、コマンド単位に分割される。その後、バスマスタ間を含めた並べ替えが行われる。
このようなバスマスタ間を含めた並べ替えを行うと、バスマスタＢのバンク４へのライト（データの書き込み）の後、バスマスタＣのバンク４へのデータのリード（読み出し）が行われることが、バスマスタから転送された当初のアクセス要求の順序である。
図６（Ｃ）に図示したように、（ａ）まず、バスマスタ間の並べ代えを行う。すなわち、バスマスタＢのコマンドＢ３Ｗ，Ｂ４Ｗが、バスマスタＣからのリードコマンドＣ４Ｒ，Ｃ１Ｒの後にする並べ替えを行う。（ｂ）その後、バスマスタ内の並べ替えを行う。すなわち、バスマスタＣから転送されたコマンドＣ４Ｒ，Ｃ１Ｒが、バンク１を先に、バンク４を後に並べ替えが行われている。
その結果、並べ替えられたコマンドに従うと、バスマスタＢから転送されたコマンド「Ｂ４Ｗ」によってバンク４に書き込まれたデータを、バスマスタＣから転送されたコマンド「Ｃ４Ｒ」によって読みだすことができない。
【００５３】
なお、データの書き込み、読み出し後にデータをアクセス要求順に入れ替えても上述した問題は解決しない。そのため、データが変化しないような使用方法に限定することが必要となる。
【００５４】
図６（Ｄ）、（Ｅ）は、本発明の実施の形態の方法を示す。
この例では、図６（Ｅ）に示されているように、アクセス要求並べ替え手段２４が、バスマスタＣから転送されたコマンドＣ４Ｒ，Ｃ１Ｒの間でのみで並べ替えが行われる。
すなわち、本実施の形態では、バスマスタが同一、読み出し・書き込みのどちらか一方の連続したアクセス要求の範囲内でのみアクセス要求の並べ替えを行う。その結果、アクセス要求の順番が入れ替わってもデータの読み出し書き込みに変化はない。
このように、バスマスタ間でコマンドの入れ替えを行わず、１つのバスマスタからのコマンド内で並べ替えを行うことにより、上述した問題を克服することができる。
【００５５】
図７はアクセス要求の並べ替えを示す他の例を示す図である。
図７（Ａ）は、３個のバスマスタＡ，Ｂ，Ｃからそれぞれ、リードコマンドＡ１Ｒ，Ａ２Ｒ、リードコマンドＢ２Ｒ，Ｂ３Ｒ、リードコマンドＣ４Ｒ，Ｃ１Ｒが転送される。
図７（Ｂ）は従来の方法を示す。バスマスタＢとバスマスタＣからのリード要求がそれぞれ２つのコマンドに分割され、最後の２つに配置される。そのため、最後の２つのコマンドの実行により、４つのコマンドのデータをバスに転送しなければならなくなり、バスへのデータ転送が集中して、バスの競合が起こる。
【００５６】
図７（Ｃ）は、本発明の実施の形態による方法であり、アクセス要求並べ替え手段２４において、バスマスタが同一、読み出し・書き込みのどちらか一方の連続したＤＲＡＭ１０のバンクへのアクセス要求の範囲内でのみアクセス要求を並べ替える。その結果、バスへの転送が一時的に集中して競合することが回避できる。
【００５７】
図８は、コマンドの並べ替えの例を示す図である。
図８（Ａ）に示すように、バスマスタＡからのコマンドの転送の後に、バスマスタＢのコマンドの転送を行う。
図８（Ｂ）は、バスマスタＢからのコマンドの順序を、アクセス要求並べ替え手段２４において、Ｂ４Ｒ，Ｂ３Ｒ，Ｂ２Ｒ，Ｂ１Ｒから、Ｂ１Ｒ，Ｂ４Ｒ，Ｂ３Ｒ，Ｂ２Ｒに並べ替え例を示す。この場合、ハスマスタＡの最後のコマンドＡ４Ｒ（バンク４）と、バスマスタＢの最初のコマンドＢ１Ｒのバンク１とは競合しない。
図８（Ｃ）は、バスマスタＢからのコマンドの順序を、アクセス要求並べ替え手段２４において、Ｂ４Ｒ，Ｂ３Ｒ，Ｂ２Ｒ，Ｂ１Ｒから、Ｂ１Ｒ，Ｂ２Ｒ，Ｂ３Ｒ，Ｂ４Ｒに並べ替え例を示す。この場合も、ハスマスタＡの最後のコマンドＡ４Ｒ（バンク４）と、バスマスタＢの最初のコマンドＢ１Ｒのバンク１とは競合しない。
このようにアクセス要求並べ替え手段２４において、コマンドを並べ替えすることにより、ＤＲＡＭ１０へのアクセスの効率を改善することができる。
【００５８】
図９はコマンドの並べ替えの他の例を示す図である。
図９の例は、アクセス要求並べ替え手段２４において、（ａ）バスマスタＡの最後のバンク４と、バスマスタＢの最初のバンク１とが競合しないようにアクセス要求の順序を並べ替え、さらに、（ｂ）バスマスタＢの最後のバンクと、バスマスタＣの最初のバンク４とが競合しないように並べ替えを行った例を示す。
バスマスタＣがコマンドＣ４Ｒでバンク４のデータを読みだす要求を出しているので、アクセス要求並べ替え手段２４において、バスマスタＢの最後はバンク４ではなく、バンク３のコマンドＢ３Ｒを配置するように並べ替えを行っている。
【００５９】
上述した第１実施の形態によれば、下記の効果を奏する。
（１）データがある場合、アクセス要求を複数連続して発行可能とすることにより、バスマスタ間で連続して転送するデータサイズのばらつきを削減することができる。その結果、データ量が同じならば、転送時間をほぼ同じにして同一バスマスタからの複数のアクセス要求を入れ替えることにより、メモリアクセスの効率を向上させることができる。
【００６０】
（２）同一バスマスタからデータの読み出し、または、データの書き込みのいずれか一方の範囲内でのみ並べ替えを行うため、メモリアクセス量とバスマスタへの転送量が同じになる。その結果、少しのメモリアクセスでより多くのデータの量をバスで送ることがなくなるため、バスの競合を低減することができる。
【００６１】
第２実施の形態
図１０は、図１のメモリシステム１に適用される、本発明の第２実施の形態としてのメモリコントローラ２０Ａの構成を示す図である。
図１０に図解した第２実施の形態のメモリコントローラ２０Ａは、図２に図解した第１実施の形態のメモリコントローラ２０と比較すると、アクセス要求受付手段２２とアクセス要求並べ替え手段２４との間に、ライト（書き込み）アクセス要求キャッシュ手段２３を付加している。
ライトアクセス要求キャッシュ手段２３は、図示しない、ライトアクセス要求を保存する第１のキャッシュ・メモリと、コマンドがヒットしたか否かを判定する第１の判定・制御部とを有する。
【００６２】
図１１はライトアクセス要求キャッシュ手段２３の動作を示す図である。
図１１（Ａ）に図解したように、ライトアクセス要求キャッシュ手段２３における第１判定・制御部における判定により、リードコマンドがヒットしたときは、ライトアクセス要求キャッシュ手段２３の第１判定・制御部はアクセス要求をアクセス要求並べ替え手段２４に転送せずに、第１のキャッシュ・メモリに前回の動作のときに保持しているデータをデータバス８０に返す。
【００６３】
ここで、「ヒット」とは、ライトアクセス要求キャッシュ手段２３の第１のキャッシュ・メモリで保持しているデータに一致するバスマスタからのリード（読み出し）要求、または、ライト（書き込み）要求があった場合を意味する。
【００６４】
他方、図１１（Ｂ）に図解したように、リードコマンドがヒットしなかったときは、上述した動作と同様に、第１の判定・制御部はアクセス要求をアクセス要求並べ替え手段２４に転送する。アクセス要求並べ替え手段２４は上述した並べ替え処理を行う。以下、上述した処理が行われる。
【００６５】
図１１（Ｃ）に図解したように、ライトコマンドがヒットした場合、または、ライトコマンドがヒットしなかった場合でライトアクセス要求キャッシュ手段２３の第１のキャッシュ・メモリにアクセス要求を格納可能な場合は、ライトアクセス要求キャッシュ手段２３の第１の判定・制御部は第１のキャッシュ・メモリにそのアクセス要求を格納する。
他方、図１１（Ｄ）に図解したように、ライトコマンドがヒットせず、かつ、第１のキャッシュ・メモリに格納もできない場合について述べる。ライトアクセス要求キャッシュ手段２３の第１の判定・制御部は、今回のライトコマンドのアクセス要求と第１のキャッシュ・メモリに格納されているアクセス要求の少なくとも一方を含む所定数の連続したアクセス要求を、アクセス要求受付手段２２に出力する。
これにより、ライトアクセス要求を複数連続させることができる。
また、ライトアクセス要求の後、リードアクセス要求があった場合でも、ライトアクセス要求前のデータが、データバス８０に転送されることがない。
【００６６】
図１２は、ＤＲＡＭ１０の複数のバンクに読み出しのみのデータを予め保持しておき、バンク競合により別のバンクの読み出しに置き換えることを説明する図である。
図１２において、記号Ａ〜Ｊはデータの種類を示しており、数字はＤＲＡＭ１０のバンクを示している。同じ記号は同じデータがバンクに保管されていることを示す。
【００６７】
データをＤＲＡＭ１０のバンクからＣＡＢＦＡＢの順序で読みだす場合、アクセス要求受付手段２２が、アクセス要求を、図１２（Ｂ）に示したように、Ｃ１，Ａ１，Ｂ１，Ｆ４，Ａ４，Ｂ１の順序でアドレスバス７０から受け取った場合、データＡとデータＢはＤＲＡＭ１０の複数のバンクに保存（格納）されているので、図１２（Ｃ）に示したように、データＡとデータＢのバンクを変更して、Ｃ１，Ａ２，Ｂ３，Ｆ４，Ａ１，Ｂ２のバンクにする。
このようにアクセス要求並べ替え手段２４において、バンクの順序を変更することによりバンクの競合を減らすことができ、その結果、アクセスに必要な時間を短縮することができる。
【００６８】
図１３はリフレッシュ動作の例を示す図である。
図１３（Ａ）は、アクセス要求の関係で、ＤＲＡＭ１０のバンク４の利用が連続し、コマンドＣ４ＲとＤ４Ｒの間で、アクセス時間が空いた場合を示す図である。
図１３（Ｂ）は、上記アクセス時間が空くという欠点を解決するため、リフレッシュ期限が近い場合、アクセス要求並べ替え手段２４からの「リフレッシュコマンド発行要求」信号に従って、リフレッシュ・コマンド発行手段２８がＤＲＡＭ１０に対して、リフレッシュコマンドＲＥＦを発行する。このようにすることで、アクセス間隔が短くできるときにリフレッシュが挿入されることを低減することができる。これにより、ＤＲＡＭ１０のリフレッシュによる動作時間を回避できる。
【００６９】
図１４を参照して図１３を参照した動作を述べる。
図１４はＤＲＡＭ１０のリフレッシュ処理を説明する図である。
図１４（Ａ）に図示のごとく、リフレッシュ期限の前にアクセスが短くできない場合にリフレッシュを挿入する所定時間の「リフレッシュ挿入期間」、その後に、強制的なリフレッシュを挿入する「リフレッシュ強制挿入期間」を設ける。このようにすることで、リフレッシュ間隔を一定以下にして、アクセスが短くできないときにＤＲＡＭ１０におけるリフレッシュを極力発生させないようにすることができる。
図１４（Ｂ）は、図１４（Ａ）を参照して述べた、リフレッシュ挿入期間、リフレッシュ強制挿入期間を設けない場合を示す図である。
【００７０】
図１５はアクセス要求の競合が解消できない場合を示す図である。
図１５（Ａ）は、図１３（Ａ）に図解した状態と同様の状態を示す図である。
この場合、図１５（Ｃ）に図示したように、リードアクセス要求の上位アドレスまたは下位アドレスのアクセス要求のないアドレスの、リードアクセス要求を、アクセス要求並べ替え手段２４で生成して、生成したアクセス要求を図１５（Ａ）に示した空いた区間に挿入する。
これにより、ＤＲＡＭ１０におけるバンクの競合を低減することができる。
他の改善方法を、第３実施の形態として、図１６を参照して述べる。
【００７１】
本発明の第２実施の形態によれば、下記の効果を奏する。
（１）ライトのみで格納できるライトアクセス要求キャッシュ手段２３を設けることにより、少ない連続アクセス要求数を多くの連続アクセス要求数に変換することができる。その結果、並べ替えによる効率改善を図ることができる。
（２）複数のバンクに同じ読み出しのみのデータを格納し、バンクの競合に応じてバンクを変換して読みだすことにより、アクセス効率を改善することができる。
【００７２】
（３）ＤＲＡＭ１０のリフレッシュをアクセスの競合が発生している場合にだけ行うことにより、アクセスの競合が発生していないときには、ＤＲＡＭ１０にリフレッシュ動作が入ってＤＲＡＭ１０のアクセス効率が低下することを防止することができる。
【００７３】
第３実施の形態
図１６は、図１のメモリシステム１に適用する、本発明の第３実施の形態のメモリコントローラ２０Ｂの構成を示す図である。
図２に図解したメモリコントローラ２０の構成と比較すると、図１６に図解したメモリコントローラ２０Ｂは、図２に図解したメモリコントローラ２０におけるアクセス要求受付手段２２とアクセス要求並べ替え手段２４との間に、リード（読出し）アクセス要求キャッシュ手段２５が付加されていることである。
リードアクセス要求キャッシュ手段２５は、図示しない、リードアクセスのみのコマンドを保存する、第２のキャッシュ・メモリと、第２の判定・制御部とを有する。
【００７４】
リードアクセス要求キャッシュ手段２５の第２の判定・制御部は、図１５（Ｃ）を参照して述べた、アクセス要求並べ替え手段２４において生成したリードアクセス要求のデータを第２のキャッシュ・メモリに保存しておき、その後、リードアクセス要求がバスマスタから転送されてきたとき、第２のキャッシュ・メモリに保存しておいたリードアクセス要求を用いる。すなわち、図１５（Ａ）の空白部分に第２のキャッシュ・メモリに保存するリードアクセスデータを挿入する。
これにより、アクセス要求に対して、アクセス要求並べ替え手段２４およびコマンド発行手段２６の処理を行わずに、リード（読出し）アクセス要求キャッシュ手段２５のみで対応可能となる。その結果、アクセス効率が向上する。
【００７５】
第４実施の形態
図１７はバス・アービター（バス調停部）３０による調停方法を例示した図である。
バス・アービター３０は、連続する複数のアクセス要求を同一のバスマスタ、たとえば、第１のバスマスタ４０から４個のアクセス要求、Ａ１Ｒ，Ａ２Ｒ，Ａ３Ｒ，Ａ４Ｒが伝送された場合、すなわち、４個のアクセス要求を転送した時点ｔ１で、再度バスの使用の調停を行う。同様に、バス・アービター３０は、第２のバスマスタ５０から４個のアクセス要求、Ｂ１Ｒ，Ｂ２Ｒ，Ｂ３Ｒ，Ｂ４Ｒが伝送された場合、すなわち、４個のアクセス要求を転送した時点ｔ２で、再度バスの使用の調停を行う。
【００７６】
図１８は、バスマスタから連続した複数のアクセス要求を同一バスマスタから伝送される例を示す図である。
図１８（Ａ）は、アクセス要求が連続している間、同一バスマスタの転送を継続する場合を示す図である。
図１８（Ａ）に図示のごとく、たとえば、バスマスタＡ（たとえば、第１のバスマスタ４０）からの所定数のアクセス要求が伝送できた時点で一旦転送要求を取り下げ、バス・アービター３０が認識した後、再度、アクセス要求を出力する。このとき、バス・アービター３０は、転送中のバスマスタから転送要求がある間、バスの調停を行わない。
すなわち、残りのアクセス要求が、たとえば、８以上のとき、図１７を参照して述べた方法をとり、残りのアクセス要求が、たとえば、８未満のとき、図１８（Ａ）のようにすることにより、アクセス要求したいるバスマスタが１つでも、空きサイクルの発生を抑制することができる。
【００７７】
また、図１８（Ｂ）に示すように、バスマスタからのロックの要求によって、空きサイクルの発生を抑制することができる。
図１８（Ｂ）は、ロックされている間、同一バスマスタからの要求を転送することを継続することを示す図である。
連続した複数のアクセス要求を同一バスマスタから伝送する間、そのバスマスタは「ロック」を出力する。このとき、バス・アービター３０は、ロックがある間、バスの調停を行わない。
【００７８】
図１７を参照して述べた例は、連続するアクセスの切れ目を、メモリコントローラ２０、２０Ａ、２０Ｂに伝送する場合である。
他方、図１８を参照して述べた例は、バス・アービター３０が、連続するアクセスの切れ目を示す信号、連続アクセス切れ目通知信号Ｓ３０をメモリコントローラ２０、２０Ａ、２０Ｂに伝送する場合である。連続アクセス切れ目通知信号Ｓ３０により、メモリコントローラ２０、２０Ａ、２０Ｂのアクセス要求受付手段２２は連続するアクセスの切れ目を検出することができる。
または、図１８（Ａ）示したように、メモリコントローラ２０、２０Ａ、２０Ｂのアクセス要求受付手段２２は、転送要求、図１８（Ｂ）に示したように、ロックの各信号から連続するアクセスの切れ目を判断する。
【００７９】
第５実施の形態
図１７および図１８に例示した場合において、バスマスタが自己を示す固有のマスタ識別信号（ＩＤ）を出力する場合は、メモリコントローラ２０、２０Ａ、２０Ｂのアクセス要求並べ替え手段２４は、図１９（Ａ）、（Ｂ）に図解したように、バスマスタの識別信号ＩＤと、読み出し要求Ｒと、書込み要求Ｗとが変わる所を連続アクセスの切れ目と判断することもできる。
図１９は、バスマスタの識別信号ＩＤと、読み出し要求Ｒと書込み要求Ｗとが切り替わる所を連続アクセスの切れ目と判断することを示す図である。
【００８０】
第６実施の形態
図２０は、バスマスタの優先度と連続アクセス数との関係を示す図である。
図２０（Ａ）に示すように、アクセス要求が連続しないバスマスタを複数個、優先度を最高位にしないことで、優先度の高いバスマスタが多い場合に単独のアクセス要求を発生するバスマスタが連続しない。その結果、効率の低下を回避することができる。
【００８１】
図２０（Ｂ）は、バスマスタＡのバス要求に対して、バスマスタＢ、Ｃのアクセス要求が高い場合を示す図である。
タイミングｔ１以降、バスマスタＢの要求Ｂ４Ｒ、バスマスタＣの要求Ｃ４Ｒが、バスマスタＡの要求、Ａ１Ｒ，Ａ２Ｒ，Ａ４Ｒ，Ａ３Ｒに先行して行われる。
【００８２】
図２０（Ｃ）は、バスマスタＣのバス要求が、バスマスタＡ、Ｂのアクセス要求より低い場合を示す図である。
タイミングｔ２以降、バスマスタＢの要求Ｂ４Ｒ、バスマスタＡの要求、Ａ１Ｒ，Ａ２Ｒ，Ａ４Ｒ，Ａ３Ｒが遂行され、タイミングｔ３において、バスマスタＣの要求Ｃ４Ｒが遂行される。
【００８３】
以上、本発明の実施の形態によれば、下記の効果を奏することができる。
（１）異なるバスマスタや、読み書きが異なる同一バスマスタからのアクセス順番を変更せずにメモリアクセスの効率を向上させることができる。
（２）アクセス単位がバンクを跨がないので、メモリアクセス単位に分割する必要がない。さらに、複数の連続アクセスが任意のアクセスを行うことができる。
（３）バスによるバーストアクセスの境界の制限があったとしても、１つのリードコマンドやライトコマンドでアクセスできる境界にもなるので、アクセス要求をこのための分割する必要がない。
【００８４】
（４）ライトのみで格納できるキャッシュを設けることにより、少ない連続アクセス要求数を多くの連続アクセス要求数に変換することだできるので、並べ替えによる効率改善を図ることができる。
（５）複数のバンクに同じ読み出しのみのデータを格納し、バンクの競合に応じてバンクを変換して読みだすことにより、アクセス効率を改善することができる。
【００８５】
（６）ＤＲＡＭ１０のリフレッシュ動作をアクセスの競合が発生している場合にだけ行うことにより、アクセスの競合が発生していないときには、ＤＲＡＭ１０にリフレッシュ動作が入ってアクセス効率が低下することを防止することができる。
【００８６】
上述した実施の形態は本発明の１つの例示であり、本発明は上述した実施の形態に限定される種々の変形態様をとることができる。
たとえば、ＤＲＡＭ１０は、本発明の記憶装置の１例であり、バンク構成をとるその他の半導体記憶装置を使用することができる。
【００８７】
また、図２、図１０、図１６を参照して述べた、メモリコントローラ２０、２０Ａ、２０への構成は例示であり、これらの構成に限定されず、メモリコントローラ２０、２０Ａ、２０として、上記例示した処理動作が遂行されればよい。
【００８８】
なお、上述した複数の実施の形態において、アクセス要求受付手段２２において、１つのアクセス要求を、１つのリードコマンドまたはライトコマンドにできる、複数のアクセス要求に分割することもできる。
【産業上の利用可能性】
【００８９】
本発明の実施の形態のメモリコントローラ２０、２０Ａ、２０Ｂ、および、メモリコントローラ２０、２０Ａ、２０Ｂを用いたメモリアクセスシステム１は、ＤＲＡＭ１０などの記憶装置に複数のバスマスタ（データ処理装置）からデータを書込み、または記憶装置からデータの読み出しを行う、種々の装置、たとえば、パーソナルコンピュータ、画像データを取り扱う撮像装置、音声記録・再生装置、画像記録・再生装置、表示処理装置、産業用ロボット、ＰＤＡ、たとえば、携帯電話などの携帯端末装置、ネットワーク装置、セットトップボックス、ゲーム機などに適用することができる。
【図面の簡単な説明】
【００９０】
【図１】図１は一般的なメモリ・バス構成に、本願発明のメモリコントローラを適用した場合を示すメモリシステムの構成を示す図である。
【図２】図２は図１に図解したメモリ・システムに適用する、本発明の第１実施の形態としてのメモリコントローラの構成を示す図である。
【図３】図３は本発明の実施の形態におけるアクセス要求の出し方（図３（Ｂ））と、従来のアクセス要求の出し方（図３（Ｃ））を示す図である。
【図４】図４は連続アドレス要求が４個までの場合のアドレス配置を示す図である。
【図５】図５は連続転送数のパターンを図表として表した図表である。
【図６】図６はアクセス要求の並べ替えを示す図である。
【図７】図７はアクセス要求の並べ替えを示す他の例を示す図である。
【図８】図８はコマンドの並べ替えの例を示す図である。
【図９】図９はコマンドの並べ替えの他の例を示す図である。
【図１０】図１０は図１に図解したメモリ・システムに適用する、本発明の第２実施の形態としてのメモリコントローラの構成を示す図である。
【図１１】図１１は図１０に図解したライトアクセス要求キャッシュ手段の動作を示す図である。
【図１２】図１２はＤＲＡＭの複数のバンクに読み出しのみのデータを予め保持しておき、バンク競合により別のバンクの読み出しに置き換えることを説明する図である。
【図１３】図１３はＤＲＡＭ１０におけるリフレッシュ動作の例を示す図である。
【図１４】図１４は図１３を参照して述べたリフレッシュ処理を説明する図である。
【図１５】図１５はアクセス要求の競合が解消できない場合を示す図である。
【図１６】図１６は図１に図解したメモリ・システムに適用する、本発明の第３実施の形態のメモリコントローラの構成を示す図である。
【図１７】図１７はバス・アービターによるバスの調停方法を例示した図である。
【図１８】図１８はバスマスタから連続した複数のアクセス要求を同一バスマスタから伝送される例を示す図である。
【図１９】図１９はバスマスタの識別信号（ＩＤ）と、読み出し要求（Ｒ）と書込み要求（Ｗ）とが切り替わる所を連続アクセスの切れ目と判断することを示す図である。
【図２０】図２０はバスマスタの優先度と連続アクセス数との関係を示す図である。
【符号の説明】
【００９１】
１…メモリアクセスシステム、１０…ＤＲＡＭ、２０…メモリコントローラ、２２…アクセス要求受付手段、２３…ライト（書き込み）アクセス要求キャッシュ手段、２４…アクセス要求並べ替え手段、２４１…アクセスサイクル計算部、２４３…データ並べ替え部、２５…リード（読出し）アクセス要求キャッシュ手段、２６…コマンド発行手段、２８…リフレッシュ・コマンド発行手段、３０…バス・アービター（バス調停装置）、４０、５０…バスマスタ、７０…アドレスバス、８０…データバス、９０…バス、Ｓ３０…連続アクセス切れ目通知信号
【図１】
2010027006.tif 000003
【図２】
2010027006.tif 000004
【図３】
2010027006.tif 000005
【図４】
2010027006.tif 000006
【図５】
2010027006.tif 000007
【図６】
2010027006.tif 000008
【図７】
2010027006.tif 000009
【図８】
2010027006.tif 000010
【図９】
2010027006.tif 000011
【図１０】
2010027006.tif 000012
【図１１】
2010027006.tif 000013
【図１２】
2010027006.tif 000014
【図１３】
2010027006.tif 000015
【図１４】
2010027006.tif 000016
【図１５】
2010027006.tif 000017
【図１６】
2010027006.tif 000018
【図１７】
2010027006.tif 000019
【図１８】
2010027006.tif 000020
【図１９】
2010027006.tif 000021
【図２０】
2010027006.tif 000022