(57)【要約】【課題】  処理の高速化が図られたメモリシステムを提供する。【解決手段】  システムバス１３とＤＲＡＭコントローラ１７との間に配備されたキャッシュメモリコントローラ１５を備え、マスタ１２からのＤＲＡＭ１８の読出し命令を受け、キャッシュメモリ１６に読出し命令に応じたデータが格納されているときはそのデータをキャッシュメモリ１６から読み出してマスタ１２に送り、キャッシュメモリ１６にその読出し命令に応じたデータが格納されていないときはその読出し命令をＤＲＡＭ１８に伝えてＤＲＡＭ１８から読み出されたその読出し命令に応じたデータをマスタ１２に送るとともにＤＲＡＭ１８から先読みしたデータをキャッシュメモリ１６に格納する。【選択図】  図１
2008305082.tif 000002
【特許請求の範囲】
【請求項１】
ＤＲＡＭと、
システムバスと、
前記ＤＲＡＭを前記システムバスを介してアクセスするマスタと、
キャッシュメモリと、
前記システムバスと前記ＤＲＡＭとの間に配備され、前記マスタからの前記ＤＲＡＭの読出し命令を受け、前記キャッシュメモリに該読出し命令に応じたデータが格納されているときは該データを該キャッシュメモリから読み出して前記マスタに送り、該キャッシュメモリに該読出し命令に応じたデータが格納されていないときは該読出し命令を前記ＤＲＡＭに伝えて該ＤＲＡＭから読み出された該読出し命令に応じたデータを前記マスタに送るとともに該ＤＲＡＭから先読みしたデータを前記キャッシュメモリに格納するキャッシュメモリコントローラとを備えたことを特徴とするメモリシステム。
【請求項２】
前記マスタが、読出し命令出力時に以降の読出し手順を表わす先読み情報を出力するものであって、
前記先読み情報を受け取り、該先読み情報に従って、前記キャッシュメモリコントローラに、前記ＤＲＡＭからデータを先読みさせて前記キャッシュメモリに格納させるシーケンサを備えたことを特徴とする請求項１記載のメモリシステム。
【請求項３】
前記キャッシュメモリコントローラが、読出し命令を受け取る複数のポートを有するものであることを特徴とする請求項１又は２記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＲＡＭをアクセスするメモリシステムに関する。
【背景技術】
【０００２】
一般に、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を制御するＤＲＡＭコントローラは、所定のバースト長でＤＲＡＭにシーケンシャルにアクセスする。従って、ＤＲＡＭコントローラにアクセスする可能性のあるマスタは、ＤＲＡＭのバースト長に合わせて、かつシーケンシャルにアクセスすると、ＤＲＡＭを効率よくアクセスすることができる。
【０００３】
ここで、一般的に用いられているバスプロトコルは、１回のアクセスで複数のワードを連続して転送するバースト転送の機能を有する。このバースト転送の機能では、マスタが、これから発生するアクセスの総ワード数とアクセス順を予めＤＲＡＭコントローラに予告してＤＲＡＭをアクセスするため、このバースト転送機能を用いてＤＲＡＭへのアクセスを行なうと、ＤＲＡＭへのアクセス効率を高めることができる。また、バスプロトコルは、１回のアクセスで１ワードを転送するシングル転送の機能も有するが、このシングル転送の機能を用いてＤＲＡＭをアクセスした場合は、ＤＲＡＭへのアクセス効率は低下する。従って、ＤＲＡＭへのアクセスは、全てバースト転送で行なわれることが好ましい。
【０００４】
図９は、バースト転送の機能を説明するための回路構成を示す図、図１０は、図９に示す回路構成における処理の流れを示す図である。
【０００５】
図９には、マスタ１０１と、システムバス１０２と、ＤＲＡＭコントローラ１０３と、ＤＲＡＭ１０４とが示されている。マスタ１０１とＤＲＡＭコントローラ１０３は、システムバス１０２に接続されている。また、ＤＲＡＭコントローラ１０３は、ＤＲＡＭ１０４に接続されている。
【０００６】
これらマスタ１０１，ＤＲＡＭコントローラ１０３，ＤＲＡＭ１０４は、６４ビットのバス幅を有する。ここでは、ＤＲＡＭ１０４へのアクセスは、４バースト単位（４×６４ビット単位）で行なわれるものとする。図１０に示すように、先ず、マスタ１０１からアドレス０ｈのデータを読み出すための読出し命令（ＲＥＡＤ）が出力される。この読出し命令は、システムバス１０２を経由してＤＲＡＭコントローラ１０３に入力される。ＤＲＡＭコントローラ１０３は、この読出し命令を受けて、４バースト単位でＤＲＡＭ１０４をアクセスする。これにより、ＤＲＡＭ１０４からアドレス０ｈ，８ｈ，１０ｈ，１８ｈのデータが順次に出力される。ＤＲＡＭコントローラ１０３は、ＤＲＡＭ１０４から出力されたアドレス０ｈ，８ｈ，１０ｈ，１８ｈのデータのうちのアドレス０ｈのデータを、システムバス１０２を経由してマスタ１０１に出力する。ここで、ＤＲＡＭ１０４から出力されたアドレス８ｈ，１０ｈ，１８ｈのデータ（丸印の点線で示す）は破棄される。
【０００７】
次いで、マスタ１０１からアドレス８ｈのデータを読み出すための読出し命令が出力され、これによりＤＲＡＭ１０４からアドレス０ｈ，８ｈ，１０ｈ，１８ｈのデータが出力される。ＤＲＡＭコントローラ１０３は、ＤＲＡＭ１０４から出力されたアドレス０ｈ，８ｈ，１０ｈ，１８ｈのデータのうちのアドレス８ｈのデータを、システムバス１０２を経由してマスタ１０１に出力する。ここで、ＤＲＡＭ１０４から出力されたアドレス０ｈ，１０ｈ，１８ｈのデータ（丸印の点線で示す）は破棄される。
【０００８】
この回路構成では、図１０の丸印の点線で示すように、ＤＲＡＭ１０４から出力された４つのデータのうちの３つのデータが破棄されるため、無駄なアクセスが行なわれることとなり、従ってＤＲＡＭ１０４へのアクセス効率は低いこととなる。
【０００９】
尚、アクセス順がシーケンシャルでない場合、シングル転送に分割して処理する必要があり、この場合は、１回のアクセスで１つのデータが転送されるため、ＤＲＡＭ１０４へのアクセス効率はさらに低くなる。
【００１０】
ここで、従来より、図９に示す回路構成に加えて、ＤＲＡＭよりも動作速度が速いＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ；キャッシュメモリと称する）と、ＤＲＡＭから読み出されたデータをキャッシュメモリに格納するためのキャッシュメモリコントローラを備えたメモリシステムが知られている。キャッシュメモリコントローラは、マスタとシステムバスとの間に配備され、またキャッシュメモリはキャッシュメモリコントローラに接続されている。このメモリシステムによれば、ＤＲＡＭから読み出されたデータ（上記破棄されるデータ）は、キャッシュメモリコントローラによりキャッシュメモリに格納される。このようなメモリシステムとして、例えば、特許文献１に、内部バスで互いに接続された、動作速度が遅いメインメモリ（ＤＲＡＭ）と動作速度が速いキャッシュメモリ（ＳＲＡＭ）とを備え、一度アクセスされたメインメモリのアドレスのデータ（先読みしたデータ）をキャッシュメモリに格納しておき、再度そのアドレスがアクセスされた場合はキャッシュメモリからそのアドレスのデータを読み出すことにより、高速なアクセスを可能にするキャッシュＤＲＡＭ（メモリシステム）が提案されている。
【００１１】
また、上述した図９に示す回路構成では、別の問題として、図１０に示すようにアドレス０ｈの読出しが行なわれてそのアドレス０ｈのデータがマスタ１０１に出力されるまで、後続（アドレス８ｈ）の読出しが行なわれないため、ＤＲＡＭ１０４へのアクセスやシステムバス１０２のレイテンシ（命令の開始から実行完了までに要する時間、即ち読出し／書込みサイクルを実行するのに要する時間）が大きいという問題がある。従って、システムの応答性が悪いという問題がある。
【００１２】
この問題を解決するために、高速なＤＲＡＭを選択したりシステムバスの周波数を上げたりすることが考えられるが、コストアップ等の問題が発生する。そこで、例えば特許文献２に、低速メモリから読み出したデータをアドレスと見なした場合は、そのデータをＦＩＦＯに格納しておき、低速メモリがアクセスされていないときにＦＩＦＯに格納されているデータをキャッシュメモリに格納しておくことにより、ランダムデータの先読みを実現して処理の高速化を図る技術が提案されている。
【特許文献１】特開２００２−７４９４２号公報
【特許文献２】特開２００５−３０１７９２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
従来のメモリシステムでは、キャッシュメモリコントローラは、マスタとシステムバスとの間に備えられている。このため、キャッシュメモリコントローラは、システムバスを介してＤＲＡＭをアクセスする必要がある。従って、アクセス効率が悪いという問題がある。
【００１４】
また、特許文献１に提案されたキャッシュＤＲＡＭは、ＤＲＡＭとＳＲＡＭが内部バスで接続された特殊な構造を有するメモリシステムであるため、あまり現実的ではない。
【００１５】
さらに、特許文献２に提案された、低速メモリから読み出したデータをアドレスと見なしてキャッシュメモリに格納してデータの先読みを行なう技術では、アドレスと見なしたデータと全く同じ値をデータとして読み込む可能性があり、従って確実性に欠けるという問題を抱えている。
【００１６】
本発明は、上記事情に鑑み、処理の高速化が図られたメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記目的を達成する本発明のメモリシステムは、
ＤＲＡＭと、
システムバスと、
上記ＤＲＡＭを上記システムバスを介してアクセスするマスタと、
キャッシュメモリと、
上記システムバスと上記ＤＲＡＭとの間に配備され、上記マスタからの上記ＤＲＡＭの読出し命令を受け、上記キャッシュメモリにその読出し命令に応じたデータが格納されているときはそのデータをそのキャッシュメモリから読み出して上記マスタに送り、そのキャッシュメモリにその読出し命令に応じたデータが格納されていないときはその読出し命令を上記ＤＲＡＭに伝えてそのＤＲＡＭから読み出されたその読出し命令に応じたデータを上記マスタに送るとともにそのＤＲＡＭから先読みしたデータを上記キャッシュメモリに格納するキャッシュメモリコントローラとを備えたことを特徴とする。
【００１８】
本発明のメモリシステムは、システムバスとＤＲＡＭとの間に、キャッシュメモリコントローラを備えた構成である。このため、キャッシュメモリコントローラからＤＲＡＭへのアクセスを全て１キャッシュライン分のバーストアクセスとすることができる。このようにすることにより、無駄なアクセスの発生が防止され、従ってアクセス効率が高められて処理の高速化が図られる。
【００１９】
ここで、上記マスタが、読出し命令出力時に以降の読出し手順を表わす先読み情報を出力するものであって、
上記先読み情報を受け取り、その先読み情報に従って、上記キャッシュメモリコントローラに、上記ＤＲＡＭからデータを先読みさせて上記キャッシュメモリに格納させるシーケンサを備えたことが好ましい。
【００２０】
このように、シーケンサが、ＤＲＡＭからデータを先読みさせ、そのＤＲＡＭからのデータを、キャッシュメモリコントローラを介してキャッシュメモリに格納させると、システムバスを使用してＤＲＡＭからデータを先読みしてキャッシュメモリに格納させる場合と比較し、システムバスを他の処理に使用することができ、従って処理のさらなる高速化を図ることができる。
【００２１】
また、上記キャッシュメモリコントローラが、読出し命令を受け取る複数のポートを有するものであることも好ましい態様である。
【００２２】
このようにすると、キャッシュメモリコントローラは、複数のマスタからの読出し命令を複数のポートで同時に受け取って処理することができる。従って、処理のさらなる高速化を図ることができる。
【発明の効果】
【００２３】
本発明によれば、処理の高速化が図られたメモリシステムを提供することができる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照して本発明の実施の形態を説明する。
【００２５】
図１は、本発明のメモリシステムの第１実施形態の回路構成を示す図である。
【００２６】
図１に示すメモリシステム１０には、マスタ１１，１２と、これらマスタ１１，１２が接続されたシステムバス１３と、そのシステムバス１３に接続されたキャッシュメモリコントローラ１５と、そのキャッシュメモリコントローラ１５に接続されたキャッシュメモリ１６およびＤＲＡＭコントローラ１７と、そのＤＲＡＭコントローラ１７に接続されたＤＲＡＭ１８とが備えられている。マスタ１１，１２，キャッシュメモリコントローラ１５，ＤＲＡＭコントローラ１７は、６４ビットのバス幅を有する。また、ＤＲＡＭコントローラ１７は、４バースト単位（４×６４ビット単位）でＤＲＡＭ１８をアクセスする。
【００２７】
マスタ１１，１２は、システムバス１３，キャッシュメモリコントローラ１５，ＤＲＡＭコントローラ１７を経由してＤＲＡＭ１８をアクセスする。
【００２８】
キャッシュメモリコントローラ１５は、システムバス１３とＤＲＡＭコントローラ１７との間に配備され、マスタ１２（もしくはマスタ１１）からのＤＲＡＭ１８への読出し命令を受け、キャッシュメモリ１６にその読出し命令に応じたデータが格納されているときはそのデータをキャッシュメモリ１６から読み出してマスタ１２に送り、キャッシュメモリ１６にその読出し命令に応じたデータが格納されていないときはその読出し命令をＤＲＡＭコントローラ１７を介してＤＲＡＭ１８に伝える。さらに、ＤＲＡＭ１８から読み出された、その読出し命令に応じたデータをマスタ１２に送るとともにＤＲＡＭ１８から先読みしたデータをキャッシュメモリ１６に格納する。
【００２９】
ここで、キャッシュメモリコントローラ１５は、キャッシュメモリ１６に１キャッシュライン分のサイズ（６４ビット分のサイズ）でアクセスするとともに、ＤＲＡＭコントローラ１７にも１キャッシュライン分のサイズでアクセスする。このため、無駄なアクセスの発生が防止されている。
【００３０】
また、キャッシュメモリ１６は、ＤＲＡＭコントローラ１７ヘのアクセスの整列化と先読みデータの退避のためにのみ設けられており、従ってキャッシュメモリ１６のサイズは小さくて済む。
【００３１】
図２は、図１に示すメモリシステムにおける処理の流れを示す図である。
【００３２】
このメモリシステム１０では、この図２に示すように、先ず、マスタ１２からアドレス０ｈのデータを読み出すための読出し命令（ＲＥＡＤ）が出力される。この読出し命令は、キャッシュメモリコントローラ１５に入力される。キャッシュメモリコントローラ１５は、アドレス０ｈのデータがキャッシュメモリ１６に存在しているか否かを確認する。
【００３３】
最初の時点では、キャッシュメモリ１６には、このアドレス０ｈのデータは存在しない（キャッシュミスと称する）ため、キャッシュメモリコントローラ１５は、ＤＲＡＭコントローラ１７にアクセスする。ＤＲＡＭコントローラ１７は、４バースト単位でＤＲＡＭ１８にアクセスする。これにより、ＤＲＡＭ１８からアドレス０ｈ，８ｈ，１０ｈ，１８ｈのデータが順次に出力される。ＤＲＡＭコントローラ１７は、ＤＲＡＭ１８から出力されたアドレス０ｈ，８ｈ，１０ｈ，１８ｈのデータ（図２に示す０ｈのデータ，８ｈのデータ，１０ｈのデータ，１８ｈのデータ）を、キャッシュメモリコントローラ１５に向けて出力する。
【００３４】
キャッシュメモリコントローラ１５は、これらのデータをキャッシュメモリ１６に格納するとともに、これらのデータのうちのアドレス０ｈのデータを、システムバス１３を経由してマスタ１２に出力する。
【００３５】
次いで、マスタ１２からアドレス８ｈのデータを読み出すための読出し命令が、キャッシュメモリコントローラ１５に向けて出力される。キャッシュメモリコントローラ１５は、アドレス８ｈのデータがキャッシュメモリ１６に存在しているか否かを確認する。キャッシュメモリ１６には、先ほどの処理の過程で既にアドレス８ｈのデータが存在する（キャッシュヒットと称する）ため、キャッシュメモリコントローラ１５はＤＲＡＭコントローラ１７へのアクセスを行なわずに、キャッシュメモリ１６へのアクセスを行なう。これにより、キャッシュメモリ１６からアドレス８ｈのデータがキャッシュメモリコントローラ１５に出力される。キャッシュメモリコントローラ１５は、このデータ（８ｈのデータ）を、システムバス１３を経由してマスタ１２に出力する。
【００３６】
さらに、マスタ１２からアドレス１０ｈのデータを読み出すための読出し命令が、キャッシュメモリコントローラ１５に向けて出力される。キャッシュメモリコントローラ１５は、アドレス１０ｈのデータがキャッシュメモリ１６に存在しているか否かを確認する。キャッシュメモリ１６には、アドレス１０ｈのデータも存在するため、キャッシュメモリコントローラ１５はキャッシュメモリ１６へのアクセスを行なう。これにより、キャッシュメモリ１６からアドレス１０ｈのデータがキャッシュメモリコントローラ１５に出力される。キャッシュメモリコントローラ１５は、このデータ（１０ｈのデータ）を、システムバス１３を経由してマスタ１２に出力する。
【００３７】
従来のメモリシステムでは、キャッシュメモリコントローラは、マスタとシステムバスとの間に配備される。このため、キャッシュメモリコントローラは、システムバスを介してＤＲＡＭをアクセスする必要がある。従って、アクセス効率が悪いという問題がある。
【００３８】
これに対して、第１実施形態のメモリシステム１０では、システムバス１３とＤＲＡＭコントローラ１７との間に、キャッシュメモリコントローラ１５が配備されている。このキャッシュメモリコントローラ１５は、ＤＲＡＭコントローラ１７に１キャッシュライン分のサイズ（６４ビット×４のサイズ）でアクセスする。また、このサイズはＤＲＡＭ１８のバーストサイズと同じである。従って、アクセス効率は高く、処理の高速化が図られている。
【００３９】
また、従来のメモリシステムでは、キャッシュメモリコントローラでアドレス領域毎にキャッシュ可能／禁止（キャッシュメモリへのデータの格納可能／禁止）を設定しているが、第１実施形態のメモリシステム１０では、このような設定は必要なく、アドレスの全空間にわたりキャッシュ可能とすることができる。また、キャッシュメモリ１６の目的は、前述したように、ＤＲＡＭコントローラ１５ヘのアクセスの整列化と先読みデータの退避にあるので、キャッシュヒット率はそれほど高くなくてもよく、従ってキャッシュメモリ１６のサイズは小さくて済む。
【００４０】
図３は、本発明のメモリシステムの第２実施形態の回路構成を示す図である。
【００４１】
尚、図１に示すメモリシステム１０の構成要素と同じ構成要素には同一の符号を付し、異なる点について説明する。
【００４２】
図３に示すメモリシステム２０は、図１に示すメモリシステム１０と比較し、図１に示すキャッシュメモリコントローラ１５が、以下に説明するキャッシュメモリコントローラ２５に置き換えられている点が異なっている。
【００４３】
キャッシュメモリコントローラ２５は、読出し命令を受け取る２つのポートＡ，Ｂを有する。ポートＡ，Ｂは、それぞれ、６４ビットのバス幅を有する。このように、第２実施形態のメモリシステム２０では、システムバス１３とキャッシュメモリコントローラ２５との間が多重化されている。このため、キャッシュメモリコントローラ２５は、マスタ１１，１２からの読み出し命令（アクセス）を並列的に処理することができる。換言すれば、キャッシュメモリコントローラ２５の帯域幅（バス幅）が大きくなっており、従って処理の高速化が図られる。
【００４４】
また、マスタ１１，１２がポートＡとポートＢのどちらを使ってアクセスを行なうのかについては、マスタ１１，１２毎にどちらを使うのかを固定しておいてもよいし、あるいはアクセスした際に空いていた方のポートを使うようにしてもよい。さらに、データ転送量の少ない方のマスタに固定的に１つのポートを割り当てれば、他のマスタに負担をかけることなくアクセスを行なうことができる。ここで、複数ポートを持った高速メモリは多くのＡＳＩＣベンダで使用可能であるため、第２実施形態のメモリシステム２０はＡＳＩＣに好適に搭載することができる。
【００４５】
図４は、本発明のメモリシステムの第３実施形態の回路構成を示す図である。
【００４６】
第３実施形態のメモリシステム３０には、読出し命令出力時に、以降の読出し手順を表わす先読み情報を出力するマスタ２２が備えられている。
【００４７】
また、このメモリシステム３０には、図３に示すキャッシュメモリコントローラ２５のポートＢに接続されたシーケンサ１４が備えられている。このシーケンサ１４は、マスタ２２からの先読み情報に従って、キャッシュメモリコントローラ２５に、ＤＲＡＭコントローラ１７を介してＤＲＡＭ１８からデータを先読みさせてキャッシュメモリ１６に格納させるものである。このように、シーケンサ１４とキャッシュメモリコントローラ２５とを直結してＤＲＡＭ１８をアクセスすることにより、システムバス１３を使用してＤＲＡＭ１８をアクセスする場合と比較し、システムバス１３を他の処理に使用することができ、従って処理の高速化を図ることができる。
【００４８】
さらに詳細に説明する。近年では、ＤＲＡＭ内に構築されたリンク構造のデータを１つずつ辿って、所望のデータを得るような回路機能ブロックであるＩＰコア（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ  Ｃｏｒｅ）が存在する。
【００４９】
図５は、ＩＰコアのリンク構造の例（２種類）を示す図である。
【００５０】
図５の上段には、３２ビットのデータ１が格納される第１のリストと、３２ビットのデータ２が格納される第２のリストと、３２ビットのデータ３が格納される第３のリストとが、関連づけられたリンク構造例が示されている。ここで、第１のリストの先頭アドレス（Ｏｆｆｓｅｔ＋０ｈ）で示されるデータ１の部分は、第２のリストの先頭アドレスを指し示している。また、第２のリストの先頭アドレスで示されるデータ２の部分は、第３のリストの先頭アドレスを指し示している。
【００５１】
また、図５の下段には、６４ビットのデータ１が格納される第１のリストと、６４ビットのデータ２が格納される第２のリストと、６４ビットのデータ３が格納される第３のリストとが、関連づけられたリンク構造例が示されている。ここで、第１のリストの先頭アドレス（Ｏｆｆｓｅｔ＋０ｈ）で示されるデータ１の部分のうちの下位の３２ビット分のデータ部分は、第２のリストの先頭アドレスを指し示している。また、第２のリストの先頭アドレスで示されるデータ２の部分のうちの下位の３２ビット分のデータ部分は、第３のリストの先頭アドレスを指し示している。
【００５２】
前述した図４に示すメモリシステム３０では、このようなリンク構造のリスト（データ）が取り扱われる。ここで、マスタ２２からは、上記リンク構造のリストの読出し手順を表わす先読み情報が出力される。シーケンサ１４は、この先読み情報を受け取る。以下、図６を参照して詳細に説明する。
【００５３】
図６は、図４に示すメモリシステムにおける処理の流れを示す図である。
【００５４】
先ず、マスタ２２から、２バースト分のアドレス（アドレス０ｈ，８ｈ）のデータを読み出すための読出し命令（ＲＥＡＤ２）が出力される。ここで、マスタ２２から出力される読出し命令には、アドレス０ｈ，８ｈとともに、図５の下段に示すリンク構造のリストをアクセスするための先読み情報（フラグＦＬＧ）が付加される。
【００５５】
マスタ２２からのリード命令（ＲＥＡＤ２）は、キャッシュメモリコントローラ２５のポートＡに入力される。ここで、キャッシュメモリコントローラ２５は、フラグＦＬＧが付加されたアドレス０ｈ，８ｈのデータがキャッシュメモリ１６に存在しているか否かを確認する。
【００５６】
最初の時点では、キャッシュメモリ１６には、アドレス０ｈ，８ｈのデータは存在しない（キャッシュミス）ため、キャッシュメモリコントローラ２５は、ＤＲＡＭコントローラ１７にアクセスする。これを受けて、ＤＲＡＭコントローラ１７は、４バースト単位でＤＲＡＭ１８にアクセスする。詳細には、ＤＲＡＭコントローラ１７から、４バースト分のアドレス（アドレス０ｈ，８ｈ，１０ｈ，１８ｈ）のデータを読み出すための読出し命令（ＲＥＡＤ４）が出力される。これにより、ＤＲＡＭ１８からアドレス０ｈ，８ｈ，１０ｈ，１８ｈのデータａ，ｂ，ｃ，ｄが出力される。これらのデータａ，ｂ，ｃ，ｄは、ＤＲＡＭコントローラ１７に入力される。さらに、ＤＲＡＭコントローラ１７は、これらのデータａ，ｂ，ｃ，ｄをキャッシュメモリコントローラ２５に出力する。
【００５７】
キャッシュメモリコントローラ２５は、ＤＲＡＭコントローラ１７からのデータａ，ｂ，ｃ，ｄをキャッシュメモリ１６に格納するとともに、フラグＦＬＧが付されたアドレス０ｈ，８ｈに対応するデータａ，ｂにフラグＦＬＧを付して、マスタ２２に出力する。
【００５８】
ここで、シーケンサ１４は、キャッシュメモリコントローラ２５のポートＢを経由してＤＲＡＭ１８からの、アドレス０ｈのデータａを読み出す。このデータａは、次のリストの先頭アドレスＡを示すものである。これにより、図６の下段に示すように、この先頭アドレスＡを含む４バースト分のアドレス（アドレスＡ，Ａ＋８ｈ，Ａ＋１０ｈ，Ａ＋１８ｈ）が指定され、これらのアドレスで指定されたデータｅ，ｆ，ｇ，ｈがＤＲＡＭ１８から出力される。このようにして、シーケンサ１４でＤＲＡＭ１８のデータが先読みされる。さらに、これらのデータｅ，ｆ，ｇ，ｈは、ＤＲＡＭコントローラ１７，キャッシュメモリコントローラ２５を経由してキャッシュメモリ１６に格納される。
【００５９】
次いで、マスタ２２から、２バースト分のアドレス（アドレスＡ，Ａ＋８ｈ）のデータを読み出すための読出し命令（ＲＥＡＤ２）が出力される。この読出し命令には、アドレスＡ，Ａ＋８ｈとともに先読み情報（フラグＦＬＧ）が付加される。
【００６０】
マスタ２２からの読出し命令（ＲＥＡＤ２）は、キャッシュメモリコントローラ２５のポートＡに入力される。キャッシュメモリコントローラ２５は、フラグＦＬＧが付加されたアドレスＡ，Ａ＋８ｈのデータがキャッシュメモリ１６に存在するか否かを確認する。
【００６１】
ここでは、キャッシュメモリ１６には、アドレスＡ，Ａ＋８ｈのデータは存在するため（キャッシュヒット）、キャッシュメモリコントローラ２５は、キャッシュメモリ１６からデータｅ，ｆを読み出して、フラグＦＬＧが付されたアドレスＡ，Ａ＋８ｈに対応するデータｅ，ｆにフラグＦＬＧを付して、マスタ２２に出力する。
【００６２】
このように、第３実施形態のメモリシステム３０では、キャッシュメモリコントローラ２５がマスタ２２にデータ（リードデータ）を出力する際に、そのリードデータにフラグＦＬＧが付加される。また、フラグＦＬＧがシーケンサ１４で観測された場合、シーケンサ１４はリンク構造アクセスであると認識し、予測されたアドレスのデータの読み出しをＤＲＡＭ１８に対して行なう。さらに、マスタ２２は、上述したようにアドレスＡ，Ａ＋８ｈのデータの読み出しを行なう。ここで、アドレスＡ，Ａ＋８ｈのデータは、既にキャッシュされているため、低レイテンシでアクセスを完了することができる。また、この時点でのアクセスもフラグＦＬＧが付加されているため、シーケンサ１４により先読みが行なわれる。ここで、シーケンサ１４が行なう先読み動作は、シーケンサ１４とＤＲＡＭコントローラ１７の間での閉じられた動作（限定された動作）であるため、システムバス１３上のアクセスを阻害（悪影響を及ぼす）することはほとんどない。
【００６３】
シーケンサ１４の構成としては、小規模のＣＰＵを好適に用いることができる。このＣＰＵで、予測のアルゴリズムをソフトウェアで実現することにより、その後の変更にも柔軟に対応することができる。尚、割り込み応答速度や動作周波数の点で問題がある場合には、このようなＣＰＵを用いた構成とは異なる、以下に示す簡単な回路構成を採用することができる。
【００６４】
図７は、簡単な回路構成を採用したシーケンサの回路を示す図である。
【００６５】
図７には、レジスタ４１と、比較＆アクション決定部４２と、マスタ４３とを備えたシーケンサ４０とが示されている。尚、この図７には、前述したキャッシュメモリコントローラ２５も示されている。
【００６６】
レジスタ４１は、第１のレジスタ部４１＿１と、第２のレジスタ部４１＿２と、第３のレジスタ部４１＿３とを有する。第１のレジスタ部４１＿１には、第１のＦＬＧ番号と、その第１のＦＬＧ番号を使用したときにリードされたデータのどの部分をアドレスとして認識するかの情報（アドレスオフセット値；単にオフセット値と記述する）が格納される。また、第２のレジスタ部４１＿２には、第２のＦＬＧ番号と、その第２のＦＬＧ番号を使用したときにリードされたデータのどの部分をアドレスとして認識するかの情報（オフセット値）が格納される。さらに、第３のレジスタ部４１＿３には、第３のＦＬＧ番号と、その第３のＦＬＧ番号を使用したときにリードされたデータのどの部分をアドレスとして認識するかの情報（オフセット値）が格納される。
【００６７】
比較＆アクション決定部４２は、ボートＡのアクセスを監視し、ポートＡに現れたＦＬＧ番号と、レジスタ４１に格納されているＦＬＧ番号とが一致した場合に、そのレジスタ４１に格納されているオフセット値を使ってリードデータからアドレスを取り出す。取り出されたアドレスは、マスタ４３に渡される。
【００６８】
マスタ４３は、比較＆アクション決定部４２から渡されたアドレスを先頭として４バーストのリード命令を、ポートＢに向けて出力（発行）する。
【００６９】
このようにすることで、リンク構造が１種類ではない場合であっても、リンク構造の種類ごとに異なる手段でアドレスを予測することができる。また、ＦＬＧ番号とアドレスは、システムバスを介して変更可能にしておくことで、柔軟性を持たせることができる。
【００７０】
図８は、図７に示すシーケンサの動作を説明するための図である。
【００７１】
ここでは、第１のレジスタ部４１＿１には、オフセット値として‘１’が格納されているものとする。また、第２，第３のレジスタ部４１＿２，４１＿３には、オフセット値として共に‘０’が格納されているものとする。第１のレジスタ部４１＿１に、オフセット値として‘１’が格納されているため、第１のＦＬＧ番号を使用したときのアドレスが予測される。
【００７２】
ここで、比較＆アクション決定部４２は、ボートＡに出力された４バースト分のデータａ，ｂ，ｃ，ｄおよびＦＬＧ番号を監視する。ここでは、ＦＬＧ番号は、第１のレジスタ部４１＿１に格納されている第１のＦＬＧ番号を示すＦＬＧ＝１であるものとする。比較＆アクション決定部４２では、このＦＬＧ番号（ＦＬＧ＝１）と、第１のレジスタ部４１＿１に格納されているオフセット値とが一致したと判定し、データａ，ｂ，ｃ，ｄのうちのデータａをアドレスとして使用する。このデータａは、マスタ４３に渡され、このデータａを先頭のアドレスとして４バーストのリード命令を、キャッシュメモリコントローラ２５のポートＢに向けて出力する。以下、前述したように、キャッシュメモリコントローラ２５は、ＤＲＡＭコントローラ１７を介してＤＲＡＭ１８からデータを先読みさせてキャッシュメモリ１６に格納させる。
【図面の簡単な説明】
【００７３】
【図１】本発明のメモリシステムの第１実施形態の回路構成を示す図である。
【図２】図１に示すメモリシステムにおける処理の流れを示す図である。
【図３】本発明のメモリシステムの第２実施形態の回路構成を示す図である。
【図４】本発明のメモリシステムの第３実施形態の回路構成を示す図である。
【図５】ＩＰコアのリンク構造の例（２種類）を示す図である。
【図６】図４に示すメモリシステムにおける処理の流れを示す図である。
【図７】簡単な回路構成を採用したシーケンサの回路を示す図である。
【図８】図７に示すシーケンサの動作を説明するための図である。
【図９】従来のメモリシステムの回路構成を示す図である。
【図１０】図９に示すメモリシステムにおける処理の流れを示す図である。
【符号の説明】
【００７４】
１０，２０，３０  メモリシステム
１１，１２，２２，４３  マスタ
１３  システムバス
１４，４０  シーケンサ
１５，２５  キャッシュメモリコントローラ
１６  キャッシュメモリ
１７  ＤＲＡＭコントローラ
１８  ＤＲＡＭ
４１  レジスタ
４２  比較＆アクション決定部
４１＿１  第１のレジスタ部
４１＿２  第２のレジスタ部
４１＿３  第３のレジスタ部
【図１】
2008305082.tif 000003
【図２】
2008305082.tif 000004
【図３】
2008305082.tif 000005
【図４】
2008305082.tif 000006
【図５】
2008305082.tif 000007
【図６】
2008305082.tif 000008
【図７】
2008305082.tif 000009
【図８】
2008305082.tif 000010
【図９】
2008305082.tif 000011
【図１０】
2008305082.tif 000012