(57)【要約】【課題】リード要求のデータサイズとメモリのアクセス単位が一致していない場合でも高速にデータを読み出す。【解決手段】メモリコマンド出力制御部９０が、ＣＰＵ１０のリード要求に基づいてメモリ装置３０からアクセス単位ごとにデータを読み出し、リード予備データ保持部６０が、読み出されたデータのうち最後のアクセス単位のデータを保持する。ＣＰＵ１０から次のリード要求があった場合に、データ選択制御部７０は、リード要求の対象となっているデータのうちリード予備データ保持部６０に保持されていないアクセス単位のデータのみをメモリコマンド出力制御部９０を介してメモリ装置３０から読み出し、メモリ装置３０から読み出したデータとリード予備データ保持部６０の保持データをＣＰＵ１０に返す。同一のアクセス単位を重複してメモリ装置３０から読み出す必要がなく、これにより高速なデータ読み出しが可能である。【選択図】図１
2012137944.tif 000002
【特許請求の範囲】
【請求項１】
アドレス空間を特定サイズのアクセス単位で区切ってデータを記憶しているメモリ装置に接続され、
前記メモリ装置を用いるプロセッサ装置から前記メモリ装置内のデータに対するリード要求があった場合に、リード要求で要求されているデータが含まれるように前記メモリ装置からアクセス単位に従ってデータを読み出し、前記メモリ装置から読み出したデータを前記プロセッサ装置に対して出力するメモリアクセス部と、
前記メモリアクセス部により読み出されたデータのうち最後尾のアクセス単位のデータを選択して記憶するデータ記憶部とを有することを特徴とするメモリアクセス装置。
【請求項２】
前記メモリアクセス部は、
リード要求があった場合に、リード要求で要求されているデータの一部が前記データ記憶部に記憶されていれば、前記データ記憶部に記憶されているデータを読み出すとともに、前記リード要求で要求されているデータのうち前記データ記憶部に記憶されているデータを除く部分が含まれるように前記メモリ装置からアクセス単位に従ってデータを読み出し、前記データ記憶部及び前記メモリ装置から読み出したデータを前記プロセッサ装置に対して出力することを特徴とする請求項１に記載のメモリアクセス装置。
【請求項３】
前記メモリアクセス装置は、更に、
前記データ記憶部にデータが記憶される最後尾のアクセス単位のアドレス範囲を記憶するアドレス記憶部を有し、
前記メモリアクセス部は、
前記アドレス記憶部に記憶されているアドレス範囲を参照して、前記リード要求で要求されているデータの一部が前記データ記憶部に記憶されているか否かを判断することを特徴とする請求項２に記載のメモリアクセス装置。
【請求項４】
前記メモリアクセス装置は、
複数組のデータ記憶部とアドレス記憶部とを有することを特徴とする請求項３に記載のメモリアクセス装置。
【請求項５】
前記メモリアクセス部は、
リード要求があった場合に、複数のアドレス記憶部に記憶されているアドレス範囲を参照して、前記リード要求で要求されているデータの一部が記憶されているデータ記憶部を特定し、特定したデータ記憶部に記憶されているデータを読み出すとともに、前記リード要求で要求されているデータのうち前記データ記憶部に記憶されているデータを除く部分が含まれるように前記メモリ装置からアクセス単位に従ってデータを読み出し、前記データ記憶部及び前記メモリ装置から読み出したデータを前記プロセッサ装置に対して出力することを特徴とする請求項４に記載のメモリアクセス装置。
【請求項６】
前記メモリアクセス装置は、
垂直ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）方式によりＥＣＣビットが配置されているメモリ装置に接続されていることを特徴とする請求項１〜５のいずれかに記載のメモリアクセス装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリからのデータの読み出しを高速化する技術に関する。
【背景技術】
【０００２】
従来のＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）制御機能付メモリ制御装置は、ＥＣＣ制御機能のないメモリ制御装置と比較して、データをメモリからリードする際にＥＣＣの検査および訂正の処理が余分に必要であり性能上不利である。
このため、従来のＥＣＣ制御機能付メモリ制御装置は、リード要求の来ていない必要以上の先のアドレスのデータをある一定の量分あらかじめリードしてメモリ制御装置内のバッファに保持しておき、後にバッファ内にデータが記憶されているメモリのアドレスに対してリード要求が来た場合には、あらたにメモリに対するリード処理を行うことはせず、あらかじめリードして保持しておいたバッファ内のデータをリード要求元に送信することによって高速化を行っていた（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１４９５０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のメモリ制御装置は、水平ＥＣＣ方式を採用し、データの幅方向にＥＣＣ用のビット、またはＥＣＣ用のメモリ素子を用意し（例えば図４で４の列をＥＣＣ用ビット、またはデータとは別の素子とした場合）、なおかつ１回のメモリアクセスに必要となるサイズがリード要求元の要求するデータのサイズと同一か、いずれかがもう一方の整数倍である場合には効果があるが、その場合はメモリの素子にコストがかかるという課題がある。
【０００５】
また、近年の組込み機器などでは、メモリの容量自体はさほど大きなものが必要ではなく、ＥＣＣ用にデータ幅の広いメモリ素子の使用、またはＥＣＣ用にメモリ素子を別途用意するなどのコストをかけないで製品の信頼性を向上することが求められている。
そのためデータの深さ方向にＥＣＣを付加する垂直ＥＣＣ方式の採用も必要となってきているが、メモリ上のデータの配置が深さ方向にずれていくため、従来のメモリ制御装置ではデータをあらかじめ余分にリードしてバッファに保持しておくために、リード要求のあったアドレスがメモリ上の、メモリのアクセス単位に対して途中のアドレスであった場合には余分なリードアクセスが発生してしまうという課題がある。
【０００６】
例えば、メモリでは垂直ＥＣＣ方式を採用した図３のようなデータの配置がなされているが、リード要求元では図２のようなＥＣＣのないデータの配置でメモリのアドレスを認識している場合を想定する。
この場合に、ＥＣＣのないリード要求元のデータの配置（図２）上の１０番地から１６バイト（メモリのアクセス単位で１ＢＡＮＫ分）をリードしようとすると、図３のメモリのアクセス単位（１ＢＡＮＫごと）ではＢＡＮＫ１とＢＡＮＫ２のリードが必要である。
このため、リード要求元のデータ配置（図２）上の次のＢＡＮＫである２０番地から１ＢＡＮＫ分のリードを行うには、メモリのデータ配置（図３）ではＢＡＮＫ２とＢＡＮＫ３のリードが必要である。
このように、リード要求元のデータ配置（図２）上の１０番地と２０番地をリードするためには、ＢＡＮＫ２（図３）を２回リードしなければならない。
あらかじめ先のアドレスまでバッファに先読みする従来の技術であっても、半端分が残るＢＡＮＫまでリードした場合は、データとＥＣＣバイトが全て揃っている範囲内で、ＥＣＣ検査、訂正を行い、バッファに入れるため、半端分を読み捨てる必要がある。
そして半端分のＢＡＮＫのメモリリードが必要になった場合、再度同一のＢＡＮＫをメモリから読み出す必要があり、効率的ではなかった。
【０００７】
この発明は上記のような課題を解決することを主な目的としており、リード要求のデータサイズとメモリ装置のアクセス単位が一致していない場合でも高速にデータを読み出せる方式を実現することを主な目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るメモリアクセス装置は、
アドレス空間を特定サイズのアクセス単位で区切ってデータを記憶しているメモリ装置に接続され、
前記メモリ装置を用いるプロセッサ装置から前記メモリ装置内のデータに対するリード要求があった場合に、リード要求で要求されているデータが含まれるように前記メモリ装置からアクセス単位に従ってデータを読み出し、前記メモリ装置から読み出したデータを前記プロセッサ装置に対して出力するメモリアクセス部と、
前記メモリアクセス部により読み出されたデータのうち最後尾のアクセス単位のデータを選択して記憶するデータ記憶部とを有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、メモリ装置から読み出されたデータのうち最後尾のアクセス単位のデータをデータ記憶部にて保持するため、次のリード要求では、データ記憶部で保持されているアクセス単位以外のアクセス単位のみをメモリ装置から読み出せばよいので、リード要求のデータサイズとメモリ装置のアクセス単位が一致していない場合でも、同一のアクセス単位を再度メモリ装置から読み出す必要がなく、これにより高速なデータ読み出しが可能となる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係るメモリ制御システムの構成例を示す図。
【図２】リード要求元で認識しているデータとアドレスの関係を例示する図。
【図３】メモリ装置におけるデータとアドレスの関係を例示する図。
【図４】データの幅方向にＥＣＣ用のビットを用意した構成を示す図。
【図５】実施の形態２に係るメモリ制御システムの構成例を示す図。
【発明を実施するための形態】
【００１１】
実施の形態１．
本実施の形態では、リード要求のデータサイズに対してメモリ装置のアクセス単位が半端な場合におけるデータ読み出しの高速化を実現する方式を説明する。
図１は、本実施の形態に係るこの発明のメモリ制御システムの構成例を示す。
【００１２】
図１において、１０は、プロセッサ装置たるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
１１は、ＣＰＵコマンドバスである。
１２は、ＣＰＵデータバスである。
【００１３】
３０は、メモリ装置（以下、単にメモリ３０とも表記する）である。
メモリ装置３０は、図４に示すように、アドレス空間を特定サイズのアクセス単位（図４の場合は１６バイト）で区切ってデータを記憶している。
【００１４】
２０は、ＥＣＣ制御機能付メモリリード／ライト制御部である。
ＥＣＣ制御機能付メモリリード／ライト制御部２０は、ＣＰＵ１０からメモリ３０に対するＣＰＵコマンドバス１１を通じて受信したアドレス情報を含むライト要求について、ＣＰＵデータバス１２を通じて受信したデータに対しＥＣＣを付加する。
また、ＣＰＵコマンドバス１１を通じて受信したアドレスをメモリ３０上のアドレスに変換して、メモリ３０に対してメモリコマンドバス１００を通じてアドレス情報を含むライト要求を発行し、ライト対象データをメモリデータバス５００を通じて送信する。
また、ＣＰＵ１０からメモリ３０に対するＣＰＵコマンドバス１１を通じて受信したアドレス情報を含むリード要求について、ＣＰＵコマンドバス１１を通じて受信したアドレスをメモリ３０上のアドレスに変換して、メモリ３０に対してメモリコマンドバス１００を通じてアドレス情報を含むリード要求を発行し、メモリ３０から受信したリードデータをメモリデータバス５００を通じて受信する。
なお、ＣＰＵ１０とＥＣＣ制御機能付メモリリード／ライト制御部２０との接続方法は、本構成のように１対１での接続でもよいし、Ｉ／Ｏバスとのブリッジやその他の機能手段が接続される汎用バスであってもよい。
【００１５】
７０は、データ選択制御部である。
データ選択制御部７０は、ＣＰＵ１０からメモリ装置３０内のデータに対するリード要求があった場合に、リード要求で要求されているデータが含まれるようにメモリ装置３０からアクセス単位に従ってデータを読み出し、メモリ装置３０から読み出したデータをＥＣＣ制御機能付メモリリード／ライト制御部２０を介してＣＰＵ１０に対して出力する。
より具体的には、データ選択制御部７０はＥＣＣ制御機能付メモリリード／ライト制御部２０からメモリ３０に対して発行されたメモリコマンドをメモリコマンドバス１００を介して入力し、メモリコマンドがメモリ３０へのリード要求であった場合、リード予備データ保持部６０に保持されているデータのメモリ３０上に格納されているアドレスをリード予備データアドレス保持部５０から入力して両者を比較し、比較した結果が一致した場合はリード予備データバス３００から入力したリード予備データ保持部６０のデータを選択してメモリデータバス５００に出力し、比較した結果が一致しなかった場合はメモリ３０からリードし、メモリデータインターフェースバス２００を介して入力したデータを選択してメモリデータバス５００に出力する。
また、ＥＣＣ制御機能付メモリリード／ライト制御部２０からメモリ３０に対して発行されたメモリコマンドをメモリコマンドバス１００を介して入力し、メモリコマンドがメモリ３０へのライト要求であった場合、ＥＣＣ制御機能付メモリリード／ライト制御部２０からメモリデータバス５００を介して入力したライトデータをそのままメモリ３０へ出力する。
データ選択制御部７０は、メモリコマンド出力制御部９０とともに、メモリアクセス部を構成する。
【００１６】
９０は、メモリコマンド出力制御部である。
メモリコマンド出力制御部９０は、ＥＣＣ制御機能付メモリリード／ライト制御部２０がメモリコマンドバス１００を介して発行したメモリリードコマンドのアドレスがリード予備データアドレス保持部５０に格納しているアドレスと一致した場合に、その情報をデータ選択制御部７０からリード予備データアドレスヒット制御バス９００によって受信し、メモリ３０へはリードアクセスを出力しないようにする。
また、ＥＣＣ制御機能付メモリリード／ライト制御部２０がメモリコマンドバス１００を介して発行したメモリリードコマンドのアドレスがリード予備データアドレス保持部５０に格納しているアドレスと一致しなかった場合に、メモリ３０に対してメモリリードアクセスを行う。
メモリコマンド出力制御部９０は、データ選択制御部７０とともにメモリアクセス部を構成する。
【００１７】
６０は、リード予備データ保持部である。
リード予備データ保持部６０は、データ選択制御部７０及びメモリコマンド出力制御部９０により読み出されたデータのうち最後尾のアクセス単位（ＢＡＮＫ）のデータを選択して記憶する。
リード予備データ保持部６０は、データ記憶部の例である。
【００１８】
５０は、リード予備データアドレス保持部である。
リード予備データアドレス保持部５０は、リード予備データ保持部６０にデータが記憶される最後尾のアクセス単位のアドレス範囲を記憶する。
リード予備データアドレス保持部５０は、アドレス記憶部の例である。
【００１９】
また、１００はメモリコマンドバスであり、２００はメモリデータインターフェースバスであり、３００はリード予備データバスである。
５００はメモリデータバスであり、６００はメモリデバイスコマンドバスであり、７００はメモリコマンドデータ同期信号であり、９００はリード予備データアドレスヒット制御バスである。
【００２０】
なお、図１において、一点鎖線にて囲んでいる範囲が、本願のメモリアクセス装置に相当する。
【００２１】
次に動作について説明する。
最初に、ＣＰＵ１０からメモリ３０へのリード動作を説明する。
【００２２】
ＣＰＵ１０は、メモリ３０へのリード要求をＣＰＵコマンドバス１１を介してＥＣＣ制御機能付メモリリード／ライト制御部２０に発行する。
ＥＣＣ制御機能付メモリリード／ライト制御部２０は、ＣＰＵ１０からのメモリ３０へのリード要求を受信すると、メモリコマンド出力制御部９０に対してメモリコマンドバス１００を介してメモリ３０へのリード要求を発行する。
【００２３】
リード時は、データ選択制御部７０はリード予備データアドレス保持部５０に格納しているアドレスとＥＣＣ制御機能付メモリリード／ライト制御部２０がメモリコマンドバス１００に出力したアドレスを比較し、一致した場合はデータ選択制御部７０はリード予備データアドレスヒット制御バス９００により、メモリコマンド出力制御部９０に通知され、メモリコマンド出力制御部９０はメモリ３０に対してリードアクセスは発行しない。
この場合、データ選択制御部７０はリード予備データ保持部６０からリード予備データバス３００を介して入力したデータをメモリデータバス５００に出力する。
【００２４】
一方、アドレスが一致しなかった場合、すなわち、データ選択制御部７０がリード予備データアドレス保持部５０に格納しているアドレスとＥＣＣ制御機能付メモリリード／ライト制御部２０がメモリコマンドバス１００に出力したアドレスを比較した結果、両アドレスが一致しなかった場合は、メモリコマンド出力制御部９０がメモリ３０に対してリードアクセスを行う。
リードしたデータはメモリデータインターフェースバス２００を介してデータ選択制御部７０に入力する。
データ選択制御部７０は、メモリデータインターフェースバス２００から受信したデータをメモリデータバス５００を介してＥＣＣ制御機能付メモリリード／ライト制御部２０に出力する。
ＥＣＣ制御機能付メモリリード／ライト制御部２０は、メモリデータバス５００から入力したデータについてＥＣＣ検査、訂正処理を行ったあとＣＰＵ１０にＣＰＵデータバス１２を介してデータを送信する。
また、データ選択制御部７０はメモリデータインターフェースバス２００から受信中のデータについて、次に受信するデータがメモリにアクセスする単位（１ＢＡＮＫ）で最後のＢＡＮＫであった場合にリード予備データアドレスヒット制御バス９００を介してリード予備データ保持部６０と、リード予備データアドレス保持部５０に通知する。
次に受信するＢＡＮＫ単位のデータがリード中の最後のＢＡＮＫの場合、リード予備データ保持部６０はそのデータを格納し、リード予備データアドレス保持部５０はそのアドレスを格納する。
【００２５】
例えば、図３のメモリ上に配置されたデータについて、ＣＰＵ１０からはＥＣＣバイト分を除いた図２のように認識されている。
ここで、ＣＰＵ１０が０番地から１回のメモリアクセス単位であるｆ番地までをリードしようとすると、実際にはＥＣＣバイトを含めたメモリ３０上の１３番地まで必要となるため、ＥＣＣ制御機能付メモリリード／ライト制御部２０は図３のＢＡＮＫ０とＢＡＮＫ１のリードをメモリ３０に要求する。
ここで、リード予備データ保持部６０にてＢＡＮＫ１のデータを保持しないと、次にＣＰＵ１０が図２の１０番地から１回のメモリアクセス単位である１ｆ番地までをリードしようとすると、図３のメモリ３０上ではＢＡＮＫ１とＢＡＮＫ２のリードが必要であり、もう一度ＢＡＮＫ１をリードしなければならず効率的ではない。
しかし、本実施の形態では、メモリアクセスの最後のＢＡＮＫをリード予備データ保持部６０に格納している。
このため、上記の例において、図３のＢＡＮＫ０とＢＡＮＫ１のデータをメモリ３０から読み出した際に、最後のＢＡＮＫのデータであるＢＡＮＫ１のデータをリード予備データ保持部６０に格納する。
このため、次に、図２の１０番地から１ｆ番地までのリード要求（図３のＢＡＮＫ１とＢＡＮＫ２のリード要求）がきた場合は、ＢＡＮＫ１はリード予備データ保持部６０からデータを読み出し、ＢＡＮＫ２のみメモリ３０に対してリードアクセスすることで、ＣＰＵ１０より要求されたデータを返送することができる。
【００２６】
特許文献１のように、例えばＥＣＣ制御機能付メモリリード／ライト制御部２０の中で、あらかじめ先のアドレスまでリードしたデータをバッファに保持しておく場合でも、図２の０番地から１ｆ番地までをリードして保持した場合は、メモリ３０に対しては図３のＢＡＮＫ０、ＢＡＮＫ１、ＢＡＮＫ２のリードを発行しており、さらに先のアドレス２０番地から２ｆ番地をリードしようとすると、もう一度ＢＡＮＫ２のリードが必要となり効率的ではない。
また、図３のメモリ上で、きりのよいアドレス（例えば４ｆ番地）までをあらかじめリードしようとした場合には、バッファの容量を大きくしなければならず、またその先のリードが発行されなかったときは無駄となる。
さらにＣＰＵ１０が汎用バスに接続されている場合は、ＣＰＵ１０以外のメモリリードを要求する手段が有った場合はＣＰＵ１０が長時間メモリを占有することになり、システムの性能が犠牲になることもある。
【００２７】
このように、本実施の形態では、垂直ＥＣＣを採用したメモリ構成において、アドレスがずれることによりメモリアクセス単位（ＢＡＮＫ）について半端なメモリアクセスが発生する場合でも、その半端分のＢＡＮＫのデータを保持することができ、半端分のＢＡＮＫのデータについて重複してメモリアクセスを行う必要がなく、無駄なメモリアクセスを排除することができる。
【００２８】
次に、ＣＰＵ１０からメモリ３０へのライト動作について説明する。
【００２９】
ＣＰＵ１０は、メモリ３０へのライト要求をＣＰＵコマンドバス１１を介し、書き込みするデータはＣＰＵデータバス１２を介してＥＣＣ制御機能付メモリリード／ライト制御部２０に発行する。
ＥＣＣ制御機能付メモリリード／ライト制御部２０は、ＣＰＵ１０からのメモリ３０へのライト要求を受信すると、メモリコマンド出力制御部９０に対してメモリコマンドバス１００を介してメモリ３０へのライト要求を発行する。
【００３０】
ライトするデータはＥＣＣ制御機能付メモリリード／ライト制御部２０によりＥＣＣを付加され、メモリデータバス５００を介して送信するが、データ選択制御部７０は、ライト時はメモリデータバス５００から入力したデータをメモリデータインターフェースバス２００に出力する。
ライト時は、データ選択制御部７０はリード予備データアドレス保持部５０に格納しているアドレスとＥＣＣ制御機能付メモリリード／ライト制御部２０がメモリコマンドバス１００に出力したアドレスを比較し、一致した場合はリード予備データ保持部６０は、リード予備データアドレスヒット制御バス９００を受信してメモリデータインターフェースバスのデータを読み込んで格納し、リード予備データアドレス保持部５０はメモリコマンドバス１００から入力したアドレスを格納する。
【００３１】
一方、アドレスが一致しない場合、すなわち、リード予備データアドレス保持部５０に格納しているアドレスとＥＣＣ制御機能付メモリリード／ライト制御部２０がメモリコマンドバス１００に出力したアドレスを比較した結果、両アドレスが一致しなかった場合は、リード予備データ保持部６０とリード予備データアドレス保持部５０は格納しているデータ、アドレスを更新しない。
また、メモリコマンド出力制御部９０はメモリコマンドバス１００から受信したＥＣＣ制御機能付メモリリード／ライト制御部２０からのライト要求に対し、メモリデバイスコマンドバス６００を介してメモリ３０に対しメモリライトコマンドを発行する。
ライトするデータはメモリデータインターフェースバス２００を介してデータ選択制御部からメモリ３０に転送されるが、メモリコマンドとの同期はメモリコマンドデータ同期信号７００によって行う。
例えばメモリコマンドを発行したタイミングをメモリコマンドデータ同期信号７００によってメモリコマンド出力制御部９０からデータ選択制御部７０に通知し、メモリコマンド出力制御部９０はその情報からデータを出力するタイミングを計って出力するなどといった方法でよい。
ここは接続するメモリ３０の種類によりタイミングは異なる。
【００３２】
以上、本実施の形態では、
ＣＰＵとＥＣＣ制御機能を備えメモリへのリードおよびライトアクセスを制御する手段を備えたシステムであって、
ＣＰＵがＥＣＣつきのデータをメモリからリードした際に、最後にアクセスしたメモリアクセスの単位分のデータを保持するリード予備データ保持部と、
リード予備データ保持部に格納されたデータのメモリ上のアドレスを保持するリード予備データアドレス保持部と、
リード予備データアドレス保持部とメモリアクセス要求のアドレスを比較する機能と比較した結果が一致した場合にリード予備データ保持部のデータを選択する手段と、
リード予備データアドレス保持部とメモリアクセス要求のアドレスを比較する機能と比較した結果が一致しなかった場合にメモリからリードしたデータを選択する部を備えたデータ選択制御部と、
リード予備データアドレス保持部とメモリアクセス要求のアドレスを比較する機能と比較した結果が一致した場合にメモリへのアクセス要求を出さない機能を備えたメモリコマンド出力制御部を備えるメモリ制御システムを説明した。
【００３３】
実施の形態２．
以上の実施の形態１では、ＣＰＵがメモリからリードしたときに最後にアクセスしたＢＡＮＫのみを保持するようにしたものであるが、次にマルチタスクや、複数のリード要求元があるような場合に、複数のアドレスについて最後にアクセスしたＢＡＮＫを保持する実施形態を示す。
図５は、このような場合のメモリ制御システムの一例を示す。
【００３４】
基本的な構成は実施の形態１と同様であるが、リード予備データ保持部５１、リード予備データアドレス保持部６１を追加し、複数のＢＡＮＫデータを保持するため、データ選択制御部７０は複数のリード予備データアドレス保持部とメモリコマンドバス１００から入力するアドレスとの比較を行う。
また、複数のリード予備データ保持部とリード予備データアドレス保持部があるため、リードした最後のＢＡＮＫをどのリード予備データ保持部に格納するかを選択するリード予備データ選択部１１００と、そのアドレスをどのリード予備データアドレス保持部に格納するかを選択するリード予備データアドレス選択部１０００を備える。
【００３５】
次に、動作について説明する。
【００３６】
基本的な動作は実施の形態１と同様であるが、リード予備データアドレス選択部１０００はメモリからリードしたデータのアドレスをどのリード予備データアドレス保持部に格納するかを選択する。
例えば、リード予備データアドレス保持部５１に格納されているアドレスの次のアドレスについてのリードだった場合は、そのリード予備データアドレス保持部５１に格納する。
または最近使用されたリード予備データアドレス保持部に格納する。
または複数あるリード予備データアドレス保持部について順番に格納する。
これらの格納方法については、システムにとって都合のよい方法を選択すればよい。
【００３７】
データ選択制御部７０は、複数あるリード予備データアドレスとメモリコマンドバス１００から入力するアドレスとの比較を行い、一致したアドレスがあるかないかの判断を行う。
一致したアドレスがあった場合は、リード予備データアドレスヒット制御バス９００を介してメモリコマンド出力制御部９０に通知し、メモリ３０へのリードアクセスが発行されないようにする。
そして、一致したリード予備データアドレス保持部に対応するリード予備データ保持部のデータをデータ選択制御部７０はメモリデータバス５００を介してＥＣＣ制御機能付メモリリード／ライト制御部２０に出力する。
また、データ選択制御部７０は、リード予備データ保持部に保持されていないデータについては、実施の形態１と同様に、メモリ装置３０から対象となるデータを読み出し、ＣＰＵ１０に返す。
このとき、メモリ装置３０から読み出したデータのうちの最後のＢＡＮＫのデータは、いずれかのリード予備データ保持部に保持される。
【００３８】
以上のように、複数のアドレスに対するメモリへの最後のＢＡＮＫデータを保持するようにしているので、マルチタスクなどで発生する複数のアドレス系統へのアクセスに対応することができる。
また、ＣＰＵ１０だけでなくメモリへのアクセス要求元が複数ある場合にも複数のアドレス系統へのアクセスに対応することができる。
【００３９】
以上、本実施の形態では、リード予備データ保持部と、リード予備データアドレス保持部を複数備えるメモリ制御システムを説明した。
【符号の説明】
【００４０】
１０  ＣＰＵ、１１  ＣＰＵコマンドバス、１２  ＣＰＵデータバス、２０  ＥＣＣ制御機能付メモリリード／ライト制御部、３０  メモリ装置、５０  リード予備データアドレス保持部、５１  リード予備データアドレス保持部、６０  リード予備データ保持部、６１  リード予備データ保持部、７０  データ選択制御部、９０  メモリコマンド出力制御部、１００  メモリコマンドバス、２００  メモリデータインターフェースバス、３００  リード予備データバス、５００  メモリデータバス、６００  メモリデバイスコマンドバス、７００  メモリコマンドデータ同期信号、９００  リード予備データアドレスヒット制御バス、１０００  リード予備データアドレス選択部、１１００  リード予備データ選択部。
【図１】
2012137944.tif 000003
【図２】
2012137944.tif 000004
【図３】
2012137944.tif 000005
【図４】
2012137944.tif 000006
【図５】
2012137944.tif 000007