(57)【要約】【課題】  ＲＤＲＡＭメモリコントローラでオープンページ方式を採る場合に、優先度の低いアクセスによってより優先度の高いアクセスの行われるページが閉じられることを防ぐ。【解決手段】  メモリコントローラにオープンされているページの情報を管理するページ管理手段と、任意に設定されるアドレス範囲の境界アドレスを保持する手段と、メモリに対するアクセスのアドレスが前記アドレス範囲内に入るか否かを判定する手段とを備える。メモリに対するアクセスのアドレスが前記アドレス範囲内である場合は、オープンページ方式をもって該ページにアクセスし前記ページ管理手段によって該ページの状態を管理し、前期アドレス範囲外である場合にはクローズページ方式をもって該ページにアクセスする。【選択図】  図１
2006107021.tif 000002
【特許請求の範囲】
【請求項１】
外部から書き込み、読み出し要求を受け、前記書き込み、読み出し要求に応じて一つ無いし複数の記憶デバイスに対して、前記要求が書き込みである場合には、外部より受け取ったデータを前記記憶デバイスに書き込み、前記要求が読み出しである場合には、前記記憶デバイスから読み出したデータを外部に出力する記憶デバイスの制御装置であって、
前記記憶デバイスは各々が異なる複数の状態をとることのできる複数の部分から構成されるダイナミック型半導体メモリであって、
前記半導体メモリの前記複数部分における状態の情報を保持する手段と、
前記書き込み、読み出し要求のアドレスが予め設定された範囲内に入っているか否かを判定する手段とを備え、
前記判定手段の判定結果に基づき前記情報保持手段が管理すべき情報か否かを判定し、
前記半導体メモリの前記複数部分における状態が前記情報保持手段によって管理されるものであれば、第一の方式をもって前記半導体メモリへのアクセスを制御し、
管理されるものでなければ第二の方式をもって前記半導体メモリへのアクセスを制御することを特徴とする。
【請求項２】
前記第一の方式がオープンページ方式、前記第二の方式がクローズページ方式であることを特徴とする請求項1に記載の記憶デバイス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置における半導体記憶装置、とりわけDRAMの制御方法に関する。
【背景技術】
【０００２】
コンピュータシステムにおける中央演算処理装置の処理能力の向上は今日まで留まるところを知らず、その基本動作クロック周波数は1GHzを超えるまでになった。一方で主記憶を成す半導体メモリデバイスの速度はそれほどには向上しておらず、両者のギャップは広がる一方である。
【０００３】
そのため従来よりCPUと主記憶との間に低容量ではあるがより高速なメモリ（キャッシュメモリ）を設け、記憶装置を階層化することで速度ギャップを緩衝することを計ってきた。これはCPUがメモリにアクセスする際の参照の局所性が高いことを利用し、小容量高速のキャッシュメモリにほとんどのアクセスが行われるように構成することで、主記憶の動作速度の遅さを隠蔽するものである。今日では2階層以上のキャッシュメモリを持つコンピュータシステムも珍しくはない(例えば特許文献１参照)。
【０００４】
しかしながら、アクセスがキャッシュにミスした場合の損失は、記憶階層が増加すると共に、また主記憶とCPUの速度さが大きくなると共に相対的に増大する。近年では動画像のようなストリーム型のデータを扱うアプリケーションが増えたことにより、データアクセスの局所性が相対的に低下し、それによりキャッシュの効果が小さくなり、CPU単体の性能が向上してもシステム全体の性能を上げることが難しくなってきた。
【０００５】
この問題に対する本質的な解決方法は主記憶の動作速度を上げることである。しかしながら今日のほとんどのコンピュータシステムの主記憶を構成しているDRAMのデバイス速度そのものをCPUのように大幅に上げることは難しい。従ってDRAMデバイスを中核とする周辺回路のアーキテクチャを工夫することにより実効的な動作速度を向上させなければならない。従来よりこのような考え方の下に様々な種類のDRAMが考案されてきた。近年実用化された代表的なものにはEDO-DRAM,SDRAM,DDR-SDRAMなどがある。その中でもDirectRDRAM（DRDRAM）はインターフェース部分に高いクロック周波数を用い、アクセスをパケット単位のプロトコルで行うことと、深いパイプライン処理によって高い実効転送レートを実現したものである。
【０００６】
図２にDRDRAMを用いたメモリシステムの構成を示す。DRDRAMではチャネルを構成するCTM/CTMN,CFM/CFMN,RQ[7:0]{ROW[2:0],COL[4:0]},DQA[8:0],DQB[8:0]およびSCK,CMD,SIOの合計33本の信号線によりメモリコントローラとの間で通信する。
【０００７】
メモリコントローラから個々のDRDRAMに対し、RQ[7:0]信号線上にCFM/CFMNに同期するパケットに構成されたコマンドが与えられる。パケットはRQ信号線のうちROW[2:0]を使うROWパケットとCOL[4:0]を使うCOLパケットに分けられ、それぞれ対象となるデバイスのデバイスアドレス、バンクアドレス、及びロウアドレス（ROWパケット）ないしカラムアドレス（COLパケット）を含んでいる。コマンドが書き込みコマンドである場合はそれに続いてDQA/DQB信号線上に書き込みデータが送られる。読み出しコマンドである場合はそれに続いて対象デバイスからDQA/DQB信号線上に読み出しデータが返される。
【０００８】
図３にROWパケット、図４にCOLパケットの詳しい構成を示す。
【０００９】
次にメモリコントローラがDRDRAMデバイスに対してアクセスする場合の基本動作を説明する。まずROWパケットにより対象となるデバイスの対象バンク内の１ページ（1つのロウアドレスに対応）をアクティベートする。メモリコントローラ内のコマンド発行手段はアクセスが書きこみの場合には、次いでtRCD時間以降にCOLパケット(WRコマンド)を発行し対象デバイスの対象ページ内の位置アドレス(カラムアドレス)に書きこみを行うことを通知する。このとき、オートプリチャージモードであればtRTP後に自動的にプリチャージを行わせることを同時に示す(WRAコマンド)。そしてtCWDの間隔を空けてDQA/DQBに書きこみデータをパケットとして送出する。図５に書き込み時のタイミングチャートを示す。
【００１０】
アクセスが読み出しの場合には、同様にtRCD時間以降にCOLパケット(RDコマンド)を発行し対象デバイスの対象ページ内の位置アドレス(カラムアドレス)から読み出しを行うことを通知する。このとき、オートプリチャージモードであればtRDP後に自動的にプリチャージを行わせることを同時に示す(RDAコマンド)。対象デバイスはtCACの間隔を空けてDQA/DQBに読み出しデータをパケットとして送出する。実際はチャネル上でメモリコントローラから各デバイスまで1クロックサイクル以上の伝播遅延が許容されているため、各デバイスはそれを考慮したタイミングで読み出しデータをチャネル上に送出する。図６にメモリコントローラの位置で見た読み出し時のタイミングチャートを示す。
【００１１】
これら読み出し、書き込み動作は、デバイス/バンクアドレス/ページ(ロウ)アドレスが競合しない限り最大4段のパイプライン的に行うことができる。図7に読み出し・書き込みをパイプラインで行った場合のタイミングチャートを示す。
【００１２】
以上はアクセス毎にページのオープン(アクティベート)・クローズ(プリチャージ)を行うクローズページポリシーを適用した場合であるが、同一ページに連続してアクセスする場合には一旦当該ページを1つのROWパケットでオープンした後、必要なだけCOLパケットを連続して発行し、最後にページをクローズするようにする(オープンページポリシー)ことで、途中のページアクティベート/プリチャージに要する時間を省くことができ、アクセスのバンド幅を大幅に向上することができる。このためにメモリコントローラ内にオープンされているページの情報を管理するページ管理手段を備え、新たにアクセスするアドレスに対応するページが既にオープンされている(ページヒット)か、あるいは競合する(ページミス、バンク競合)かを判定し、その結果に応じてコマンドを発行する。
【００１３】
図８は前記ページ管理手段を詳しく説明する図である。前記ページ情報として、デバイスアドレス、バンクアドレス、ロウアドレスを複数組保持している。判定にカラムアドレスは不要なため保持していない。さらにそのエントリが有効であるか否かを示す情報、およびアクセスの履歴情報を保持する。
【００１４】
ページヒットの判定は入力される次アドレスのうち、デバイスアドレス、バンクアドレス、ロウアドレスの全てが一致するエントリを検索する。もしそのようなエントリが存在すればページヒットである。この場合は次アドレスのアクセスのために該アドレスの存在するページをアクティベートする必要は無い。
【００１５】
ページミスの判定は入力される次アドレスのうち、デバイスアドレス、バンクアドレスが一致し、ロウアドレスが一致しないエントリを検索する。もしそのようなエントリが存在すればページミスである。この場合該エントリに対応するページを一旦クローズ（プリチャージ）し、その後次アドレスの存在するページをオープン（アクティベート）しなければならない。その結果、前記ページ管理手段の前記ページ情報内の該エントリは次アドレスのものと入れ替えられる。
【００１６】
バンク競合はデバイスアドレスが一致し、かつ次アドレス中のバンクアドレスに対応するバンクとセンスアンプを共有するバンクのバンクアドレスを持つエントリを検索する。もしそのようなエントリが存在すればバンク競合であり、ページミスと同様、該エントリに対応するページを一旦クローズ（プリチャージ）し、その後次アドレスの存在するページをオープン（アクティベート）しなければならない。その結果、前記ページ管理手段の前記ページ情報内の該エントリはやはり次アドレスのものと入れ替えられる。
【００１７】
ページヒット、ページミス、バンク競合のいずれでもない場合は、次アドレスの存在するページをオープン（アクティベート）しなければならない。このとき前記ページ管理手段の前記ページ情報内に次アドレスに対応するエントリを追加することになる。もし前記エントリ数が、前記ページ情報として保持できる最大エントリ数を超えてしまう場合には、既に存在するエントリの中から一つを選んで入れ替えなければならない。例えば前記アクセス履歴情報を参照し、最後にアクセスされた時間が最も古いエントリを選び出し、次アドレスの存在するページと入れ替える。これによりページ情報が失われるため古いエントリに対応するページはクローズしなければならない。
【００１８】
図９に読み出し時においてオープンページポリシーを適用した場合のタイミングチャートを示す。
【００１９】
始めにアドレスA1={デバイスアドレスda,バンクアドレスba,ロウアドレスra,カラムアドレスca1,ca2}(以降{da/ba/ra/ca1,ca2}と表記)から読み出す。
【００２０】
まずこのアドレスの存在するページ{デバイスアドレスda,バンクアドレスba,ロウアドレスra}(以降{da/ba/ra}と表記)をアクティベートするROWパケットACT a0を発行する。ここにa0はデバイスアドレスda,バンクアドレスba、ロウアドレスraに対応する。
【００２１】
次いで該ページよりリードするCOLパケットRD a1,RD a2を発行する。ここにa1はデバイスアドレスda, バンクアドレスba、カラムアドレスca1、a2はデバイスアドレスda, バンクアドレスba、カラムアドレスca2に対応する。
【００２２】
このときの前記ページ管理手段の保持する前記ページ情報は図10のようになる。
【００２３】
次にアドレスA2= {da/ba/ra/ca3,ca4}から読み出す。このデバイスアドレス、バンクアドレス、ロウアドレスと前記ページ情報のエントリと比較すると、全て一致するのでこの場合ページヒットである。従ってROWパケットは省かれ該ページよりリードするCOLパケットRD a3, RD a4のみを発行する。このときの前記ページ管理手段の保持する前記ページ情報は図10のままである。
【００２４】
次にアドレスB1= {db/bb/rb/cb1,cb2}から読み出す。このデバイスアドレスdbはデバイスアドレスdaと異なるとすれば、ページヒット、ページミス、バンク競合のいずれでもないので、{db/bb/rb}をアクティベートするROWパケットACT b0を発行する。次いで該ページよりリードするCOLパケットRD b1, RD b2を発行する。このときの前記ページ管理手段の保持する前記ページ情報は図11のようになる。
【００２５】
最後にアドレスA3= {da/ba/ra/ca5,ca6}から読み出す。このデバイスアドレス、バンクアドレス、ロウアドレスと前記ページ情報のエントリと比較すると、全て一致するのでこの場合もページヒットである。従って該ページよりリードするCOLパケットRD a5, RD a6のみを発行する。このときの前記ページ管理手段の保持する前記ページ情報は図11のままである。このようにして前記ページ管理手段を用いオープンページポリシーは実現される。
【特許文献１】特開２０００−３３９９７６号公報
【発明の開示】
【発明が解決しようとする課題】
【００２６】
しかしながら、前述のオープンページポリシーを適用する場合、アドレスの比較は全エントリで一斉に行う必要があり、タイミングの制約や回路規模の問題から管理できるページの数には限りがある。もし、短期間にアクセスされるページの数が最大エントリ数に収まっていれば良いが、そうでない場合は必ずいずれかのページはクローズされなければならない。その結果、比較的優先度の低いアクセスのために、優先度の高いアクセスが使用するページが頻繁にクローズされてしまうことが起こり得、それがためシステム性能が低下してしまう。
【００２７】
例えば従来例において、前記ページ管理手段が2エントリのみ持つとする。オープンされているページが無い状態から、前記システムバス200を通じ、順にアドレスA=0x1234_5670,B=0x08e0_4440に対する読み出し、アドレスC=0x1800_3d80への書き込み要求があったとする。ここにアドレスA,Bの存在するページに対するアクセスはアドレスCの存在するページに対するアクセスよりも頻度が多く、優先度が高いとする。アドレスAはデバイスアドレスda, バンクアドレスba,ロウアドレスraにカラムアドレスcaに割り当てられている。これを{da/ba/ra/ca}と表記する。同様にアドレスBは{db/bb/rb/cb},アドレスCは{dc/bc/rc/cc}に割り当てられている。これらアドレスA,B,Cは互いに競合しない別のページに存在する。すなわち、da,db,dcは互いに異なるか、あるいは同一デバイスであってもba,bb,bcが互いに同一でなくかつセンスアンプを共有しないバンクである。従って原理的にはこれら3つのページは同時にオープンしておくことができる。しかしながら、前記ページ管理手段のエントリ数が２であるため、同時に２つのページのみしかオープンできない。この場合はアドレスCへのアクセスするためにはまずアドレスAの存在するページを閉じなければならない。そして、直後に次アドレスA'=0x1234_5680={da/ba/ra/ca+1}に対してアクセスがあった場合、今度はアドレスBの存在するページをクローズし、その後再びアドレスA'の存在するページをオープンしなければならない。すなわち優先度の低いアドレスCへのアクセスによって優先度の高いアドレスA,Bへのアクセス時間が犠牲になってしまう。
【課題を解決するための手段】
【００２８】
係る課題を解決するため、本発明においてはメモリコントローラ内にアドレス判定手段を設け、予め設定されたアドレス範囲に対応するページのみ前記ページ管理手段によって管理し、オープンページ方式でアクセスする。アドレス範囲に入らないページはクローズページ方式でアクセスする。優先度の高いアクセスが使用するページのみ前記アドレス範囲に入るように設定することで、優先度の低いアクセスのためにページがクローズされることが無くなる。
【発明の効果】
【００２９】
以上説明したように、本発明によれば、オープンページポリシーを適用する場合に、優先度の低いページへのアクセスによって優先度の高いページがクローズされる状況を無くすことができ、システムを最適化できる。
【発明を実施するための最良の形態】
【００３０】
（実施形態１）
上記した本発明の実施の形態について更に詳細に説明すべく、本発明の一実施例について、図面を参照して詳細に説明する。
【００３１】
図１は本発明に係るメモリコントローラの一実施形態の構成を説明する図である。図１において、101はシステムバスインターフェース回路、102はメモリインターフェース回路であり、それぞれ外部とインターフェースするための回路である。メモリに対する書き込み、読み出し要求はシステムバス200を通じてメモリコントローラに指令され、チャネル300を通じてメモリに伝えられる。103はコマンド発行手段であり、前記要求に応じた書き込み、読み出し命令あるいはリフレッシュ命令を生成し、前記メモリインターフェース部102に与える。前記メモリインターフェース部102はこれを前述のようなコマンドパケットに変換し前記チャネル300上に送出する。104はページ管理手段であり、現在オープンされているページのアドレス情報を保持し、また新たなアドレスとの比較を行い、ページのヒット、ミス、バンク競合等を判定し、前記コマンド発行手段に伝える。105はアドレス範囲境界保持手段であり任意のアドレス範囲が設定される。106はアドレス比較手段であり、次アクセスアドレスが前記アドレス範囲境界保持手段により保持されるアドレス範囲に含まれるか否かを判定する。107、108はライトデータバッファ、リードデータバッファであり、それぞれ書き込み、読み出しデータを一旦保持しておき、必要なタイミングで出力するためのものである。
【００３２】
さて、本発明の一実施例において、前記ページ管理手段は2つのエントリを備える。前記アドレス範囲境界保持手段105にアドレスの下限として0x1000_0000(接頭辞0xは16進数字を示す)、上限として0x2000_0000が設定されているとする。
【００３３】
前述の従来例と同様、オープンされているページが無い状態から、前記システムバス200を通じ、順にアドレスA=0x1234_5678,B=0x08e0_4444に対する書き込み、アドレスC=0x1800_3d8cからの読み出し要求があったとする。本実施例において、アドレスAはデバイスアドレスda, バンクアドレスba,ロウアドレスraにカラムアドレスcaに割り当てられている。これを{da,ba,ra,ca}と表記する。同様にアドレスBは{db,bb,rb,cb},アドレスCは{dc,bc,rc,cc}に割り当てられている。これらアドレスA,B,Cは互いに競合しない別のページに存在する。すなわち、da,db,dcは互いに異なるか、あるいは同一デバイスであってもba,bb,bcが互いに同一でなくかつセンスアンプを共有しないバンクである。
【００３４】
まずアドレスA=0x1234_5678に対するアクセスに対し、前記アドレス比較手段106において前記アドレス範囲境界保持手段105の保持する下限アドレス=0x1000_0000および上限アドレス=0x2000_0000との比較が行われる。その結果アドレスAは該アドレス範囲内にあることが判明するので、アドレスAについてオープンページ方式をもってアクセスする。
【００３５】
すなわちアドレスAへのアクセス後、当該ページはクローズせず、その情報を前記ページ管理手段104のエントリに登録する。
【００３６】
次にアドレスB=0x08e0_4444に対するアクセスに対し、前記アドレス比較手段106において前記アドレス範囲境界保持手段105の保持する下限アドレス=0x1000_0000および上限アドレス=0x2000_0000との比較が行われる。その結果アドレスBは該アドレス範囲内にはないことが判明するので、アドレスBについてはくローズページ方式をもってアクセスする。すなわちアドレスBへのアクセス後、当該ページは直ちにクローズする。
【００３７】
次いでアドレスC=0x1800_3d8cに対するアクセスに対し、前記アドレス比較手段106において前記アドレス範囲境界保持手段105の保持する下限アドレス=0x1000_0000および上限アドレス=0x2000_0000との比較が行われる。その結果アドレスCは該アドレス範囲内にあることが判明するので、アドレスCについてもオープンページ方式をもってアクセスする。すなわちアドレスCへのアクセス後、当該ページはクローズせず、その情報を前記ページ管理手段104のエントリに登録する。
【００３８】
この時点における前記ページ管理手段104の保持するページ情報は図12のようになる。次いで、A'=0x1234_5680={da/ba/ra/ca+1}に対して読み出しアクセスがあった場合、このアドレスは前記ページ管理手段104においてページヒットであると判定されるので、ページをオープンする必要はなく直ちにCOLパケットによるリードアクセスを行う。
【００３９】
以上において、本発明が特定の実施例に関して図示されかつ説明されたが、さらに他の修正および改善が可能であることは言うまでも無い。例えば、本実施例においては、説明の簡単のため前記アドレス範囲境界保持手段105の保持するアドレスの範囲は1領域だけの場合を示したが、もちろん複数領域であってもよいことは言うまでもない。
【００４０】
したがって、本発明は示された特定の形式に限定されるものではなく、かつ添付の特許請求の範囲において本発明の精神および範囲から離れることのない全ての修正をカバーすることを考えていることが理解されるべきである。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施の一形態の構成を示すブロック図。
【図２】RDRAMを用いたメモリサブシステムの構成を説明する図。
【図３】ROWパケットの構成を示す図。
【図４】COLパケットの構成を示す図。
【図５】書き込み動作時におけるチャネル上の信号のタイミングを示す図。
【図６】読み出し動作時におけるチャネル上の信号のタイミングを示す図。
【図７】チャネル上のパイプライン動作を説明する図。
【図８】従来例におけるページ管理手段を説明する図。
【図９】オープンページ時の読み出し動作のタイミングを説明する図。
【図１０】従来例におけるページ管理手段の保持するページ情報の一例を説明する図。
【図１１】従来例におけるページ管理手段の保持するページ情報の一例を説明する図。
【図１２】本発明の一実施例におけるページ管理手段の保持するページ情報の一例を説明する図。
【符号の説明】
【００４２】
101  システムバスインターフェース回路
102  メモリインターフェース回路
103  コマンド発行手段
104  ページ管理手段
105  アドレス範囲境界保持手段
106  アドレス比較手段
107  ライトデータバッファ
108  リードデータバッファ
200  システムバス
300  チャネル
400  メモリコントローラ
410〜440  RDRAM
450  チャネル
460  終端子
470  クロック発振器
【図１】
2006107021.tif 000003
【図２】
2006107021.tif 000004
【図３】
2006107021.tif 000005
【図４】
2006107021.tif 000006
【図５】
2006107021.tif 000007
【図６】
2006107021.tif 000008
【図７】
2006107021.tif 000009
【図８】
2006107021.tif 000010
【図９】
2006107021.tif 000011
【図１０】
2006107021.tif 000012
【図１１】
2006107021.tif 000013
【図１２】
2006107021.tif 000014