Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5091548B2 - メモリシステム - Google Patents
[go: Go Back, main page]

JP5091548B2 - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP5091548B2
JP5091548B2 JP2007150548A JP2007150548A JP5091548B2 JP 5091548 B2 JP5091548 B2 JP 5091548B2 JP 2007150548 A JP2007150548 A JP 2007150548A JP 2007150548 A JP2007150548 A JP 2007150548A JP 5091548 B2 JP5091548 B2 JP 5091548B2
Authority
JP
Japan
Prior art keywords
dram
cache memory
data
master
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007150548A
Other languages
English (en)
Other versions
JP2008305082A (ja
JP2008305082A5 (ja
Inventor
和憲 山下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kawasaki Microelectronics Inc
Original Assignee
Kawasaki Microelectronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kawasaki Microelectronics Inc filed Critical Kawasaki Microelectronics Inc
Priority to JP2007150548A priority Critical patent/JP5091548B2/ja
Publication of JP2008305082A publication Critical patent/JP2008305082A/ja
Publication of JP2008305082A5 publication Critical patent/JP2008305082A5/ja
Application granted granted Critical
Publication of JP5091548B2 publication Critical patent/JP5091548B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、DRAMをアクセスするメモリシステムに関する。
一般に、DRAM(Dynamic Random Access Memory)を制御するDRAMコントローラは、所定のバースト長でDRAMにシーケンシャルにアクセスする。従って、DRAMコントローラにアクセスする可能性のあるマスタは、DRAMのバースト長に合わせて、かつシーケンシャルにアクセスすると、DRAMを効率よくアクセスすることができる。
ここで、一般的に用いられているバスプロトコルは、1回のアクセスで複数のワードを連続して転送するバースト転送の機能を有する。このバースト転送の機能では、マスタが、これから発生するアクセスの総ワード数とアクセス順を予めDRAMコントローラに予告してDRAMをアクセスするため、このバースト転送機能を用いてDRAMへのアクセスを行なうと、DRAMへのアクセス効率を高めることができる。また、バスプロトコルは、1回のアクセスで1ワードを転送するシングル転送の機能も有するが、このシングル転送の機能を用いてDRAMをアクセスした場合は、DRAMへのアクセス効率は低下する。従って、DRAMへのアクセスは、全てバースト転送で行なわれることが好ましい。
図9は、バースト転送の機能を説明するための回路構成を示す図、図10は、図9に示す回路構成における処理の流れを示す図である。
図9には、マスタ101と、システムバス102と、DRAMコントローラ103と、DRAM104とが示されている。マスタ101とDRAMコントローラ103は、システムバス102に接続されている。また、DRAMコントローラ103は、DRAM104に接続されている。
これらマスタ101,DRAMコントローラ103,DRAM104は、64ビットのバス幅を有する。ここでは、DRAM104へのアクセスは、4バースト単位(4×64ビット単位)で行なわれるものとする。図10に示すように、先ず、マスタ101からアドレス0hのデータを読み出すための読出し命令(READ)が出力される。この読出し命令は、システムバス102を経由してDRAMコントローラ103に入力される。DRAMコントローラ103は、この読出し命令を受けて、4バースト単位でDRAM104をアクセスする。これにより、DRAM104からアドレス0h,8h,10h,18hのデータが順次に出力される。DRAMコントローラ103は、DRAM104から出力されたアドレス0h,8h,10h,18hのデータのうちのアドレス0hのデータを、システムバス102を経由してマスタ101に出力する。ここで、DRAM104から出力されたアドレス8h,10h,18hのデータ(丸印の点線で示す)は破棄される。
次いで、マスタ101からアドレス8hのデータを読み出すための読出し命令が出力され、これによりDRAM104からアドレス0h,8h,10h,18hのデータが出力される。DRAMコントローラ103は、DRAM104から出力されたアドレス0h,8h,10h,18hのデータのうちのアドレス8hのデータを、システムバス102を経由してマスタ101に出力する。ここで、DRAM104から出力されたアドレス0h,10h,18hのデータ(丸印の点線で示す)は破棄される。
この回路構成では、図10の丸印の点線で示すように、DRAM104から出力された4つのデータのうちの3つのデータが破棄されるため、無駄なアクセスが行なわれることとなり、従ってDRAM104へのアクセス効率は低いこととなる。
尚、アクセス順がシーケンシャルでない場合、シングル転送に分割して処理する必要があり、この場合は、1回のアクセスで1つのデータが転送されるため、DRAM104へのアクセス効率はさらに低くなる。
ここで、従来より、図9に示す回路構成に加えて、DRAMよりも動作速度が速いSRAM(Static Random Access Memory;キャッシュメモリと称する)と、DRAMから読み出されたデータをキャッシュメモリに格納するためのキャッシュメモリコントローラを備えたメモリシステムが知られている。キャッシュメモリコントローラは、マスタとシステムバスとの間に配備され、またキャッシュメモリはキャッシュメモリコントローラに接続されている。このメモリシステムによれば、DRAMから読み出されたデータ(上記破棄されるデータ)は、キャッシュメモリコントローラによりキャッシュメモリに格納される。このようなメモリシステムとして、例えば、特許文献1に、内部バスで互いに接続された、動作速度が遅いメインメモリ(DRAM)と動作速度が速いキャッシュメモリ(SRAM)とを備え、一度アクセスされたメインメモリのアドレスのデータ(先読みしたデータ)をキャッシュメモリに格納しておき、再度そのアドレスがアクセスされた場合はキャッシュメモリからそのアドレスのデータを読み出すことにより、高速なアクセスを可能にするキャッシュDRAM(メモリシステム)が提案されている。
また、上述した図9に示す回路構成では、別の問題として、図10に示すようにアドレス0hの読出しが行なわれてそのアドレス0hのデータがマスタ101に出力されるまで、後続(アドレス8h)の読出しが行なわれないため、DRAM104へのアクセスやシステムバス102のレイテンシ(命令の開始から実行完了までに要する時間、即ち読出し/書込みサイクルを実行するのに要する時間)が大きいという問題がある。従って、システムの応答性が悪いという問題がある。
この問題を解決するために、高速なDRAMを選択したりシステムバスの周波数を上げたりすることが考えられるが、コストアップ等の問題が発生する。そこで、例えば特許文献2に、低速メモリから読み出したデータをアドレスと見なした場合は、そのデータをFIFOに格納しておき、低速メモリがアクセスされていないときにFIFOに格納されているデータをキャッシュメモリに格納しておくことにより、ランダムデータの先読みを実現して処理の高速化を図る技術が提案されている。
特開2002−74942号公報 特開2005−301792号公報
従来のメモリシステムでは、キャッシュメモリコントローラは、マスタとシステムバスとの間に備えられている。このため、キャッシュメモリコントローラは、システムバスを介してDRAMをアクセスする必要がある。従って、アクセス効率が悪いという問題がある。
また、特許文献1に提案されたキャッシュDRAMは、DRAMとSRAMが内部バスで接続された特殊な構造を有するメモリシステムであるため、あまり現実的ではない。
さらに、特許文献2に提案された、低速メモリから読み出したデータをアドレスと見なしてキャッシュメモリに格納してデータの先読みを行なう技術では、アドレスと見なしたデータと全く同じ値をデータとして読み込む可能性があり、従って確実性に欠けるという問題を抱えている。
本発明は、上記事情に鑑み、処理の高速化が図られたメモリシステムを提供することを目的とする。
上記目的を達成する本発明のメモリシステムは、
DRAMと、
システムバスと、
上記DRAMを上記システムバスを介してアクセスするマスタと、
キャッシュメモリと、
上記システムバスと上記DRAMとの間に配備され、上記マスタからの上記DRAMの読出し命令を受け、上記キャッシュメモリにその読出し命令に応じたデータが格納されているときはそのデータをそのキャッシュメモリから読み出して上記マスタに送り、そのキャッシュメモリにその読出し命令に応じたデータが格納されていないときはその読出し命令を上記DRAMに伝えてそのDRAMから読み出されたその読出し命令に応じたデータを上記マスタに送るとともにそのDRAMから先読みしたデータを上記キャッシュメモリに格納するキャッシュメモリコントローラとを備えたことを特徴とする。
本発明のメモリシステムは、システムバスとDRAMとの間に、キャッシュメモリコントローラを備えた構成である。このため、キャッシュメモリコントローラからDRAMへのアクセスを全て1キャッシュライン分のバーストアクセスとすることができる。このようにすることにより、無駄なアクセスの発生が防止され、従ってアクセス効率が高められて処理の高速化が図られる。
ここで、上記マスタが、読出し命令出力時に以降の読出し手順を表わす先読み情報を出力するものであって、
上記先読み情報を受け取り、その先読み情報に従って、上記キャッシュメモリコントローラに、上記DRAMからデータを先読みさせて上記キャッシュメモリに格納させるシーケンサを備えたことが好ましい。
このように、シーケンサが、DRAMからデータを先読みさせ、そのDRAMからのデータを、キャッシュメモリコントローラを介してキャッシュメモリに格納させると、システムバスを使用してDRAMからデータを先読みしてキャッシュメモリに格納させる場合と比較し、システムバスを他の処理に使用することができ、従って処理のさらなる高速化を図ることができる。
また、上記キャッシュメモリコントローラが、読出し命令を受け取る複数のポートを有するものであることも好ましい態様である。
このようにすると、キャッシュメモリコントローラは、複数のマスタからの読出し命令を複数のポートで同時に受け取って処理することができる。従って、処理のさらなる高速化を図ることができる。
本発明によれば、処理の高速化が図られたメモリシステムを提供することができる。
以下、図面を参照して本発明の実施の形態を説明する。
図1は、本発明のメモリシステムの第1実施形態の回路構成を示す図である。
図1に示すメモリシステム10には、マスタ11,12と、これらマスタ11,12が接続されたシステムバス13と、そのシステムバス13に接続されたキャッシュメモリコントローラ15と、そのキャッシュメモリコントローラ15に接続されたキャッシュメモリ16およびDRAMコントローラ17と、そのDRAMコントローラ17に接続されたDRAM18とが備えられている。マスタ11,12,キャッシュメモリコントローラ15,DRAMコントローラ17は、64ビットのバス幅を有する。また、DRAMコントローラ17は、4バースト単位(4×64ビット単位)でDRAM18をアクセスする。
マスタ11,12は、システムバス13,キャッシュメモリコントローラ15,DRAMコントローラ17を経由してDRAM18をアクセスする。
キャッシュメモリコントローラ15は、システムバス13とDRAMコントローラ17との間に配備され、マスタ12(もしくはマスタ11)からのDRAM18への読出し命令を受け、キャッシュメモリ16にその読出し命令に応じたデータが格納されているときはそのデータをキャッシュメモリ16から読み出してマスタ12に送り、キャッシュメモリ16にその読出し命令に応じたデータが格納されていないときはその読出し命令をDRAMコントローラ17を介してDRAM18に伝える。さらに、DRAM18から読み出された、その読出し命令に応じたデータをマスタ12に送るとともにDRAM18から先読みしたデータをキャッシュメモリ16に格納する。
ここで、キャッシュメモリコントローラ15は、キャッシュメモリ16に1キャッシュライン分のサイズ(64ビット分のサイズ)でアクセスするとともに、DRAMコントローラ17にも1キャッシュライン分のサイズでアクセスする。このため、無駄なアクセスの発生が防止されている。
また、キャッシュメモリ16は、DRAMコントローラ17ヘのアクセスの整列化と先読みデータの退避のためにのみ設けられており、従ってキャッシュメモリ16のサイズは小さくて済む。
図2は、図1に示すメモリシステムにおける処理の流れを示す図である。
このメモリシステム10では、この図2に示すように、先ず、マスタ12からアドレス0hのデータを読み出すための読出し命令(READ)が出力される。この読出し命令は、キャッシュメモリコントローラ15に入力される。キャッシュメモリコントローラ15は、アドレス0hのデータがキャッシュメモリ16に存在しているか否かを確認する。
最初の時点では、キャッシュメモリ16には、このアドレス0hのデータは存在しない(キャッシュミスと称する)ため、キャッシュメモリコントローラ15は、DRAMコントローラ17にアクセスする。DRAMコントローラ17は、4バースト単位でDRAM18にアクセスする。これにより、DRAM18からアドレス0h,8h,10h,18hのデータが順次に出力される。DRAMコントローラ17は、DRAM18から出力されたアドレス0h,8h,10h,18hのデータ(図2に示す0hのデータ,8hのデータ,10hのデータ,18hのデータ)を、キャッシュメモリコントローラ15に向けて出力する。
キャッシュメモリコントローラ15は、これらのデータをキャッシュメモリ16に格納するとともに、これらのデータのうちのアドレス0hのデータを、システムバス13を経由してマスタ12に出力する。
次いで、マスタ12からアドレス8hのデータを読み出すための読出し命令が、キャッシュメモリコントローラ15に向けて出力される。キャッシュメモリコントローラ15は、アドレス8hのデータがキャッシュメモリ16に存在しているか否かを確認する。キャッシュメモリ16には、先ほどの処理の過程で既にアドレス8hのデータが存在する(キャッシュヒットと称する)ため、キャッシュメモリコントローラ15はDRAMコントローラ17へのアクセスを行なわずに、キャッシュメモリ16へのアクセスを行なう。これにより、キャッシュメモリ16からアドレス8hのデータがキャッシュメモリコントローラ15に出力される。キャッシュメモリコントローラ15は、このデータ(8hのデータ)を、システムバス13を経由してマスタ12に出力する。
さらに、マスタ12からアドレス10hのデータを読み出すための読出し命令が、キャッシュメモリコントローラ15に向けて出力される。キャッシュメモリコントローラ15は、アドレス10hのデータがキャッシュメモリ16に存在しているか否かを確認する。キャッシュメモリ16には、アドレス10hのデータも存在するため、キャッシュメモリコントローラ15はキャッシュメモリ16へのアクセスを行なう。これにより、キャッシュメモリ16からアドレス10hのデータがキャッシュメモリコントローラ15に出力される。キャッシュメモリコントローラ15は、このデータ(10hのデータ)を、システムバス13を経由してマスタ12に出力する。
従来のメモリシステムでは、キャッシュメモリコントローラは、マスタとシステムバスとの間に配備される。このため、キャッシュメモリコントローラは、システムバスを介してDRAMをアクセスする必要がある。従って、アクセス効率が悪いという問題がある。
これに対して、第1実施形態のメモリシステム10では、システムバス13とDRAMコントローラ17との間に、キャッシュメモリコントローラ15が配備されている。このキャッシュメモリコントローラ15は、DRAMコントローラ17に1キャッシュライン分のサイズ(64ビット×4のサイズ)でアクセスする。また、このサイズはDRAM18のバーストサイズと同じである。従って、アクセス効率は高く、処理の高速化が図られている。
また、従来のメモリシステムでは、キャッシュメモリコントローラでアドレス領域毎にキャッシュ可能/禁止(キャッシュメモリへのデータの格納可能/禁止)を設定しているが、第1実施形態のメモリシステム10では、このような設定は必要なく、アドレスの全空間にわたりキャッシュ可能とすることができる。また、キャッシュメモリ16の目的は、前述したように、DRAMコントローラ15ヘのアクセスの整列化と先読みデータの退避にあるので、キャッシュヒット率はそれほど高くなくてもよく、従ってキャッシュメモリ16のサイズは小さくて済む。
図3は、本発明のメモリシステムの第2実施形態の回路構成を示す図である。
尚、図1に示すメモリシステム10の構成要素と同じ構成要素には同一の符号を付し、異なる点について説明する。
図3に示すメモリシステム20は、図1に示すメモリシステム10と比較し、図1に示すキャッシュメモリコントローラ15が、以下に説明するキャッシュメモリコントローラ25に置き換えられている点が異なっている。
キャッシュメモリコントローラ25は、読出し命令を受け取る2つのポートA,Bを有する。ポートA,Bは、それぞれ、64ビットのバス幅を有する。このように、第2実施形態のメモリシステム20では、システムバス13とキャッシュメモリコントローラ25との間が多重化されている。このため、キャッシュメモリコントローラ25は、マスタ11,12からの読み出し命令(アクセス)を並列的に処理することができる。換言すれば、キャッシュメモリコントローラ25の帯域幅(バス幅)が大きくなっており、従って処理の高速化が図られる。
また、マスタ11,12がポートAとポートBのどちらを使ってアクセスを行なうのかについては、マスタ11,12毎にどちらを使うのかを固定しておいてもよいし、あるいはアクセスした際に空いていた方のポートを使うようにしてもよい。さらに、データ転送量の少ない方のマスタに固定的に1つのポートを割り当てれば、他のマスタに負担をかけることなくアクセスを行なうことができる。ここで、複数ポートを持った高速メモリは多くのASICベンダで使用可能であるため、第2実施形態のメモリシステム20はASICに好適に搭載することができる。
図4は、本発明のメモリシステムの第3実施形態の回路構成を示す図である。
第3実施形態のメモリシステム30には、読出し命令出力時に、以降の読出し手順を表わす先読み情報を出力するマスタ22が備えられている。
また、このメモリシステム30には、図3に示すキャッシュメモリコントローラ25のポートBに接続されたシーケンサ14が備えられている。このシーケンサ14は、マスタ22からの先読み情報に従って、キャッシュメモリコントローラ25に、DRAMコントローラ17を介してDRAM18からデータを先読みさせてキャッシュメモリ16に格納させるものである。このように、シーケンサ14とキャッシュメモリコントローラ25とを直結してDRAM18をアクセスすることにより、システムバス13を使用してDRAM18をアクセスする場合と比較し、システムバス13を他の処理に使用することができ、従って処理の高速化を図ることができる。
さらに詳細に説明する。近年では、DRAM内に構築されたリンク構造のデータを1つずつ辿って、所望のデータを得るような回路機能ブロックであるIPコア(Intellectual Property Core)が存在する。
図5は、IPコアのリンク構造の例(2種類)を示す図である。
図5の上段には、32ビットのデータ1が格納される第1のリストと、32ビットのデータ2が格納される第2のリストと、32ビットのデータ3が格納される第3のリストとが、関連づけられたリンク構造例が示されている。ここで、第1のリストの先頭アドレス(Offset+0h)で示されるデータ1の部分は、第2のリストの先頭アドレスを指し示している。また、第2のリストの先頭アドレスで示されるデータ2の部分は、第3のリストの先頭アドレスを指し示している。
また、図5の下段には、64ビットのデータ1が格納される第1のリストと、64ビットのデータ2が格納される第2のリストと、64ビットのデータ3が格納される第3のリストとが、関連づけられたリンク構造例が示されている。ここで、第1のリストの先頭アドレス(Offset+0h)で示されるデータ1の部分のうちの下位の32ビット分のデータ部分は、第2のリストの先頭アドレスを指し示している。また、第2のリストの先頭アドレスで示されるデータ2の部分のうちの下位の32ビット分のデータ部分は、第3のリストの先頭アドレスを指し示している。
前述した図4に示すメモリシステム30では、このようなリンク構造のリスト(データ)が取り扱われる。ここで、マスタ22からは、上記リンク構造のリストの読出し手順を表わす先読み情報が出力される。シーケンサ14は、この先読み情報を受け取る。以下、図6を参照して詳細に説明する。
図6は、図4に示すメモリシステムにおける処理の流れを示す図である。
先ず、マスタ22から、2バースト分のアドレス(アドレス0h,8h)のデータを読み出すための読出し命令(READ2)が出力される。ここで、マスタ22から出力される読出し命令には、アドレス0h,8hとともに、図5の下段に示すリンク構造のリストをアクセスするための先読み情報(フラグFLG)が付加される。
マスタ22からのリード命令(READ2)は、キャッシュメモリコントローラ25のポートAに入力される。ここで、キャッシュメモリコントローラ25は、フラグFLGが付加されたアドレス0h,8hのデータがキャッシュメモリ16に存在しているか否かを確認する。
最初の時点では、キャッシュメモリ16には、アドレス0h,8hのデータは存在しない(キャッシュミス)ため、キャッシュメモリコントローラ25は、DRAMコントローラ17にアクセスする。これを受けて、DRAMコントローラ17は、4バースト単位でDRAM18にアクセスする。詳細には、DRAMコントローラ17から、4バースト分のアドレス(アドレス0h,8h,10h,18h)のデータを読み出すための読出し命令(READ4)が出力される。これにより、DRAM18からアドレス0h,8h,10h,18hのデータa,b,c,dが出力される。これらのデータa,b,c,dは、DRAMコントローラ17に入力される。さらに、DRAMコントローラ17は、これらのデータa,b,c,dをキャッシュメモリコントローラ25に出力する。
キャッシュメモリコントローラ25は、DRAMコントローラ17からのデータa,b,c,dをキャッシュメモリ16に格納するとともに、フラグFLGが付されたアドレス0h,8hに対応するデータa,bにフラグFLGを付して、マスタ22に出力する。
ここで、シーケンサ14は、キャッシュメモリコントローラ25のポートBを経由してDRAM18からの、アドレス0hのデータaを読み出す。このデータaは、次のリストの先頭アドレスAを示すものである。これにより、図6の下段に示すように、この先頭アドレスAを含む4バースト分のアドレス(アドレスA,A+8h,A+10h,A+18h)が指定され、これらのアドレスで指定されたデータe,f,g,hがDRAM18から出力される。このようにして、シーケンサ14でDRAM18のデータが先読みされる。さらに、これらのデータe,f,g,hは、DRAMコントローラ17,キャッシュメモリコントローラ25を経由してキャッシュメモリ16に格納される。
次いで、マスタ22から、2バースト分のアドレス(アドレスA,A+8h)のデータを読み出すための読出し命令(READ2)が出力される。この読出し命令には、アドレスA,A+8hとともに先読み情報(フラグFLG)が付加される。
マスタ22からの読出し命令(READ2)は、キャッシュメモリコントローラ25のポートAに入力される。キャッシュメモリコントローラ25は、フラグFLGが付加されたアドレスA,A+8hのデータがキャッシュメモリ16に存在するか否かを確認する。
ここでは、キャッシュメモリ16には、アドレスA,A+8hのデータは存在するため(キャッシュヒット)、キャッシュメモリコントローラ25は、キャッシュメモリ16からデータe,fを読み出して、フラグFLGが付されたアドレスA,A+8hに対応するデータe,fにフラグFLGを付して、マスタ22に出力する。
このように、第3実施形態のメモリシステム30では、キャッシュメモリコントローラ25がマスタ22にデータ(リードデータ)を出力する際に、そのリードデータにフラグFLGが付加される。また、フラグFLGがシーケンサ14で観測された場合、シーケンサ14はリンク構造アクセスであると認識し、予測されたアドレスのデータの読み出しをDRAM18に対して行なう。さらに、マスタ22は、上述したようにアドレスA,A+8hのデータの読み出しを行なう。ここで、アドレスA,A+8hのデータは、既にキャッシュされているため、低レイテンシでアクセスを完了することができる。また、この時点でのアクセスもフラグFLGが付加されているため、シーケンサ14により先読みが行なわれる。ここで、シーケンサ14が行なう先読み動作は、シーケンサ14とDRAMコントローラ17の間での閉じられた動作(限定された動作)であるため、システムバス13上のアクセスを阻害(悪影響を及ぼす)することはほとんどない。
シーケンサ14の構成としては、小規模のCPUを好適に用いることができる。このCPUで、予測のアルゴリズムをソフトウェアで実現することにより、その後の変更にも柔軟に対応することができる。尚、割り込み応答速度や動作周波数の点で問題がある場合には、このようなCPUを用いた構成とは異なる、以下に示す簡単な回路構成を採用することができる。
図7は、簡単な回路構成を採用したシーケンサの回路を示す図である。
図7には、レジスタ41と、比較&アクション決定部42と、マスタ43とを備えたシーケンサ40とが示されている。尚、この図7には、前述したキャッシュメモリコントローラ25も示されている。
レジスタ41は、第1のレジスタ部41_1と、第2のレジスタ部41_2と、第3のレジスタ部41_3とを有する。第1のレジスタ部41_1には、第1のFLG番号と、その第1のFLG番号を使用したときにリードされたデータのどの部分をアドレスとして認識するかの情報(アドレスオフセット値;単にオフセット値と記述する)が格納される。また、第2のレジスタ部41_2には、第2のFLG番号と、その第2のFLG番号を使用したときにリードされたデータのどの部分をアドレスとして認識するかの情報(オフセット値)が格納される。さらに、第3のレジスタ部41_3には、第3のFLG番号と、その第3のFLG番号を使用したときにリードされたデータのどの部分をアドレスとして認識するかの情報(オフセット値)が格納される。
比較&アクション決定部42は、ボートAのアクセスを監視し、ポートAに現れたFLG番号と、レジスタ41に格納されているFLG番号とが一致した場合に、そのレジスタ41に格納されているオフセット値を使ってリードデータからアドレスを取り出す。取り出されたアドレスは、マスタ43に渡される。
マスタ43は、比較&アクション決定部42から渡されたアドレスを先頭として4バーストのリード命令を、ポートBに向けて出力(発行)する。
このようにすることで、リンク構造が1種類ではない場合であっても、リンク構造の種類ごとに異なる手段でアドレスを予測することができる。また、FLG番号とアドレスは、システムバスを介して変更可能にしておくことで、柔軟性を持たせることができる。
図8は、図7に示すシーケンサの動作を説明するための図である。
ここでは、第1のレジスタ部41_1には、オフセット値として‘1’が格納されているものとする。また、第2,第3のレジスタ部41_2,41_3には、オフセット値として共に‘0’が格納されているものとする。第1のレジスタ部41_1に、オフセット値として‘1’が格納されているため、第1のFLG番号を使用したときのアドレスが予測される。
ここで、比較&アクション決定部42は、ボートAに出力された4バースト分のデータa,b,c,dおよびFLG番号を監視する。ここでは、FLG番号は、第1のレジスタ部41_1に格納されている第1のFLG番号を示すFLG=1であるものとする。比較&アクション決定部42では、このFLG番号(FLG=1)と、第1のレジスタ部41_1に格納されているオフセット値とが一致したと判定し、データa,b,c,dのうちのデータaをアドレスとして使用する。このデータaは、マスタ43に渡され、このデータaを先頭のアドレスとして4バーストのリード命令を、キャッシュメモリコントローラ25のポートBに向けて出力する。以下、前述したように、キャッシュメモリコントローラ25は、DRAMコントローラ17を介してDRAM18からデータを先読みさせてキャッシュメモリ16に格納させる。
本発明のメモリシステムの第1実施形態の回路構成を示す図である。 図1に示すメモリシステムにおける処理の流れを示す図である。 本発明のメモリシステムの第2実施形態の回路構成を示す図である。 本発明のメモリシステムの第3実施形態の回路構成を示す図である。 IPコアのリンク構造の例(2種類)を示す図である。 図4に示すメモリシステムにおける処理の流れを示す図である。 簡単な回路構成を採用したシーケンサの回路を示す図である。 図7に示すシーケンサの動作を説明するための図である。 従来のメモリシステムの回路構成を示す図である。 図9に示すメモリシステムにおける処理の流れを示す図である。
符号の説明
10,20,30 メモリシステム
11,12,22,43 マスタ
13 システムバス
14,40 シーケンサ
15,25 キャッシュメモリコントローラ
16 キャッシュメモリ
17 DRAMコントローラ
18 DRAM
41 レジスタ
42 比較&アクション決定部
41_1 第1のレジスタ部
41_2 第2のレジスタ部
41_3 第3のレジスタ部

Claims (2)

  1. リンク構造が構築されたDRAMと、
    システムバスと、
    前記DRAMを前記システムバスを介してアクセスするために、前記リンク構造のリストをアクセスするための先読み情報を付加した読み出し命令を出力するマスタと、
    キャッシュメモリと、
    前記システムバスと前記DRAMとの間に配備され、前記マスタからの前記DRAMの読出し命令を受け、前記キャッシュメモリに該読出し命令に応じたデータが格納されているときは該データを該キャッシュメモリから読み出して前記マスタに送り、該キャッシュメモリに該読出し命令に応じたデータが格納されていないときは該読出し命令を前記DRAMに伝えて該DRAMから読み出された該読出し命令に応じたデータを前記マスタに送るとともに該DRAMから先読みしたデータを前記キャッシュメモリに格納するキャッシュメモリコントローラと、
    前記先読み情報を受け取り、該先読み情報に従って前記リンク構造を辿って、前記キャッシュメモリコントローラに、前記DRAMからデータを先読みさせて前記キャッシュメモリに格納させるシーケンサとを備え
    前記シーケンサが、前記先読み情報の番号ごとの、前記読み出し命令に応じたデータのどの部分をアドレスとして認識するかの情報であるアドレスオフセット値を格納する複数のレジスタと、前記先読み情報の番号に対応する前記レジスタに格納されたアドレスオフセット値を使って、前記キャッシュメモリコントローラに、前記DRAMからデータを先読みさせるシーケンサマスタとを備えたことを特徴とするメモリシステム。
  2. 前記キャッシュメモリコントローラが、前記マスタからの読出し命令を受け取る第1のポートと、前記シーケンサから前記先読みのための読出し命令を受け取る第2のポートとを有するものであることを特徴とする請求項1記載のメモリシステム。
JP2007150548A 2007-06-06 2007-06-06 メモリシステム Expired - Fee Related JP5091548B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007150548A JP5091548B2 (ja) 2007-06-06 2007-06-06 メモリシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007150548A JP5091548B2 (ja) 2007-06-06 2007-06-06 メモリシステム

Publications (3)

Publication Number Publication Date
JP2008305082A JP2008305082A (ja) 2008-12-18
JP2008305082A5 JP2008305082A5 (ja) 2010-07-22
JP5091548B2 true JP5091548B2 (ja) 2012-12-05

Family

ID=40233775

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007150548A Expired - Fee Related JP5091548B2 (ja) 2007-06-06 2007-06-06 メモリシステム

Country Status (1)

Country Link
JP (1) JP5091548B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8933947B2 (en) * 2009-09-10 2015-01-13 Ati Technologies Ulc Reading a local memory of a processing unit
US11862217B2 (en) * 2019-02-16 2024-01-02 Tohoku University Device, sensor node, access controller, data transfer method, and processing method in microcontroller

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2522176B2 (ja) * 1993-08-13 1996-08-07 日本電気株式会社 プロセッサの制御方法
JP3445873B2 (ja) * 1994-06-06 2003-09-08 株式会社日立製作所 データプリフェッチ方法およびそのための情報処理装置
US6311260B1 (en) * 1999-02-25 2001-10-30 Nec Research Institute, Inc. Method for perfetching structured data
JP3594081B2 (ja) * 2001-01-23 2004-11-24 日本電気株式会社 情報処理装置

Also Published As

Publication number Publication date
JP2008305082A (ja) 2008-12-18

Similar Documents

Publication Publication Date Title
JP3717212B2 (ja) 情報処理装置及び情報処理ユニット
KR100860956B1 (ko) 메모리 시퀀싱 힌트들을 제공하기 위한 메모리 허브 및방법
US7260685B2 (en) Memory hub and access method having internal prefetch buffers
JP5417879B2 (ja) キャッシュ装置
CN100334564C (zh) 具有内部行高速缓存的内存集线器及访问方法
KR101379524B1 (ko) 디스플레이 파이프 내에서의 스트리밍 변환
JPH11143775A (ja) キャッシュメモリシステム
JP5428687B2 (ja) メモリ制御装置
JPH11203192A (ja) 並列プロセッサおよび演算処理方法
JP5265827B2 (ja) ハイブリッドコヒーレンスプロトコル
CN117873917A (zh) 一种缓存系统、访问请求处理方法、芯片及电子设备
JP2000172562A (ja) 情報処理装置
JP5091548B2 (ja) メモリシステム
JP4266900B2 (ja) 画像処理システム
JP2005267148A (ja) メモリ制御装置
US6097403A (en) Memory including logic for operating upon graphics primitives
JPH0830546A (ja) バス制御装置
JP5182284B2 (ja) ベクトル処理装置
US6349370B1 (en) Multiple bus shared memory parallel processor and processing method
JP2004240616A (ja) メモリコントローラ及びメモリアクセス制御方法
JP4431492B2 (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット
JPH05282208A (ja) キャッシュメモリ制御方式
JP3718667B2 (ja) 情報処理装置及び情報処理ユニット
US20040123021A1 (en) Memory control apparatus executing prefetch instruction
JP2682789B2 (ja) コンピュータ入出力キャッシュ・システム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100603

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100603

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120619

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120815

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120815

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120911

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120914

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150921

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5091548

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees