TOP > 国内特許検索 > メモリコントローラを備えた情報処理システム > 明細書

明細書 :メモリコントローラを備えた情報処理システム

発行国 日本国特許庁(JP)
公報種別 特許公報(B2)
特許番号 特許第4769936号 (P4769936)
公開番号 特開2006-344139 (P2006-344139A)
登録日 平成23年7月1日(2011.7.1)
発行日 平成23年9月7日(2011.9.7)
公開日 平成18年12月21日(2006.12.21)
発明の名称または考案の名称 メモリコントローラを備えた情報処理システム
国際特許分類 G06F  12/02        (2006.01)
G06F  12/00        (2006.01)
FI G06F 12/02 590A
G06F 12/00 560F
請求項の数または発明の数 3
全頁数 10
出願番号 特願2005-171073 (P2005-171073)
出願日 平成17年6月10日(2005.6.10)
審査請求日 平成20年5月28日(2008.5.28)
特許権者または実用新案権者 【識別番号】504143441
【氏名又は名称】国立大学法人 奈良先端科学技術大学院大学
発明者または考案者 【氏名】宮崎 純
個別代理人の代理人 【識別番号】100077931、【弁理士】、【氏名又は名称】前田 弘
【識別番号】100094134、【弁理士】、【氏名又は名称】小山 廣毅
【識別番号】100110939、【弁理士】、【氏名又は名称】竹内 宏
【識別番号】100110940、【弁理士】、【氏名又は名称】嶋田 高久
【識別番号】100113262、【弁理士】、【氏名又は名称】竹内 祐二
【識別番号】100115059、【弁理士】、【氏名又は名称】今江 克実
【識別番号】100115691、【弁理士】、【氏名又は名称】藤田 篤史
【識別番号】100117581、【弁理士】、【氏名又は名称】二宮 克也
【識別番号】100117710、【弁理士】、【氏名又は名称】原田 智雄
【識別番号】100121728、【弁理士】、【氏名又は名称】井関 勝守
【識別番号】100124349、【弁理士】、【氏名又は名称】米田 圭啓
【識別番号】100124671、【弁理士】、【氏名又は名称】関 啓
【識別番号】100131060、【弁理士】、【氏名又は名称】杉浦 靖也
審査官 【審査官】多賀 実
参考文献・文献 特開平02-133854(JP,A)
国際公開第2005/024561(WO,A1)
特開昭58-192154(JP,A)
特開平09-306179(JP,A)
府川智治 外2名 ,主記憶データベース向け高機能メモリコントローラの性能評価,情報処理学会研究報告(2003-ARC-152),日本,社団法人情報処理学会,2003年 3月11日,Vol.2003 No.27 ,p.85-90
調査した分野 G06F12/00
G06F12/02
G06F13/16
G06F13/28
特許請求の範囲 【請求項1】
リードアクセスに係る行に属する所定ビット長のデータのそれぞれについての読み出し要否を示す情報を受け、当該情報を格納する格納部と、前記格納部に格納された情報を参照し、読み出し要のデータの列アドレスを生成する列アドレス生成部とを有し、メモリ装置に対して、前記リードアクセスに係る行アドレス及び前記生成された列アドレスで指定されるデータの出力制御を行うメモリコントローラと、
前記情報を生成し、前記メモリコントローラに、当該生成した情報及びリードアクセスに係る行アドレスを伴う第1のリードリクエストコマンド、及びリードアクセスに係る行アドレス及び列アドレスを伴う第2のリードリクエストコマンドのいずれか一方を選択的に与える処理装置とを備え、
前記処理装置は、前記リードアクセスに係る行における読み出し要のデータの粗密状態に応じて、前記第1及び第2のリードリクエストコマンドの選択を行うものであり、
前記メモリコントローラは、
前記処理装置から与えられた列アドレス及び前記列アドレス生成部によって生成された列アドレスのいずれか一方を選択する列アドレスセレクタと、
前記処理装置から与えられたコマンドに応じて、前記列アドレスセレクタの選択動作を制御する制御部とを有するものである
ことを特徴とする情報処理システム。
【請求項2】
請求項に記載の情報処理システムにおいて、
前記メモリコントローラは、
与えられた演算対象データと前記メモリ装置から出力されたデータとの間で、前記処理装置によって指示された演算を行う演算部と、
前記演算部から出力されたデータ及び前記メモリ装置から出力されたデータのいずれか一方を選択的に出力する出力セレクタとを有するものであり、
前記制御部は、前記処理装置から与えられたコマンドに応じて、前記出力セレクタの選択動作を制御するものである
ことを特徴とする情報処理システム。
【請求項3】
請求項に記載の情報処理システムにおいて、
前記処理装置は、前記演算部に比較演算を指示するものであり、
前記演算部は、前記演算対象データと前記メモリ装置から出力されたデータとの間で前記比較演算を行い、当該比較演算の結果に基づいて、前記リードアクセスに係る行に属する所定ビット長のデータのそれぞれが所定の条件を満たしているか否かを示す情報を生成するものである
ことを特徴とする情報処理システム。
発明の詳細な説明 【技術分野】
【0001】
本発明は、メモリコントローラに関し、特に、メモリ装置の高速リードアクセス技術に関する。
【背景技術】
【0002】
DRAM(dynamic random access memory)は、低コストながらも大規模な記憶容量を実現するため、近年のコンピュータシステムにおける主記憶装置として広く用いられている。DRAMのデータ読み出しは、その構造上、行アドレス及び列アドレス、及びマルチバンク構成のDRAMにあってはさらにバンクアドレスを指定して行う。具体的には、バンクアドレス及び行アドレスで指定されたメモリセルアレイバンクにおける行をアクティブにし、このアクティブにされた行に含まれるデータの中から列アドレスで指定されたものを読み出す。そして、DRAMではいわゆる破壊読み出しが行われるため、データ読み出し後にプリチャージを行う必要がある。このため、DRAMのメモリアクセス速度は比較的遅いものとなっている。
【0003】
CPU(central processing unit)の処理速度が比較的遅かった時代にはDRAMのメモリアクセス速度の遅さはさほど問題とはならなかった。しかし、近年、CPUの処理速度が飛躍的に向上するようになって、DRAMのメモリアクセス速度がCPUの処理速度に追いつかない、いわゆるメモリウォールが問題となっている。このため、DRAMのメモリアクセスをいかに高速化するかが重要な課題となっている。特に、主記憶データベースや大規模数値演算などのアプリケーションでは高速なリードアクセスが要求されるところである。
【0004】
これまでの高速メモリアクセスの手法として、スタティックカラムモード、ニブルモード、バーストモード、ページモード、EDO(extended data out)などが知られている。また、メモリセルアレイにおける一の行に属するデータを固定ストライドで読み出す固定ストライド転送方式が提案されている(例えば、非特許文献1参照)。

【非特許文献1】Lixin Zhang et al., "The Impulse Memory Controller", IEEE Trans. Computers, 50(11):1117-1132, 2001
【発明の開示】
【発明が解決しようとする課題】
【0005】
従来のメモリアクセス手法には次のような問題点がある。まず、(1)CPUの処理速度よりもメモリアクセス速度の方が遅いため、個々のデータへのアクセスのたびにCPUがデータ到着まで停止してしまうという点である。そして、(2)キャッシュライン指向のデータアクセスのため不連続なデータアクセスは効率が悪く、また、キャッシュラインを充足させるべく必要なデータに付随して不要なデータまでも読み出す必要があり、この不要なデータの読み出しのために時間が浪費されるという点である。さらに、(3)少量のデータを得るために大量の物理アドレスをメモリ装置に与える必要があり、アドレス指定に必要な情報量に比して読み出される情報量が少なく、データ読み出しが非効率であるという点である。
【0006】
また、主記憶データベースなどのアプリケーションを考えた場合、メモリ装置に格納されたデータについて選択演算や結合演算などの単純な比較演算の結果に基づいて条件分岐処理を行うことが多い。すなわち、演算結果が重要なのであって、比較演算対象のデータ自体はさほど重要ではない場合が多い。このような場合にも、(4)メモリ装置から時間をかけてデータを読み出し、高速で高価なCPUで単純な演算を行うのは、バス資源及びCPU資源の無駄遣いである。
【0007】
ベクトル計算機などのようにメモリモジュールを多重化すれば上記の諸問題は解決されようが、コスト増となるためあまり好ましくはない。そこで、上記問題に鑑み、本発明は、メモリモジュールの多重化などを行うことなく、メモリ装置のリードアクセスを高速化することを課題とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために本発明が講じた手段は、メモリコントローラとして、リードアクセスに係る行に属する所定ビット長のデータのそれぞれについての読み出し要否を示す情報を受け、当該情報を格納する格納部と、格納部に格納された情報を参照し、読み出し要のデータの列アドレスを生成する列アドレス生成部とを備え、メモリ装置に対して、上記のリードアクセスに係る行アドレス及び上記の生成された列アドレスで指定されるデータの出力制御を行うものとする。
【0009】
この発明によると、メモリコントローラ内部で読み出し要のデータの列アドレスが生成されるため、データ読み出しの際に逐一メモリコントローラに大量の物理アドレスを指定する必要がなくなり、リードアクセスに係る入力データ量が削減される。また、リードアクセスに係る行における所望のデータのみが出力され、不要なデータの読み出しがなくなる。これにより、メモリ装置のリードアクセスが高速化される。
【0010】
好ましくは、上記のメモリコントローラは、与えられた演算対象データと上記の指定されたデータとの間で指示された演算を行う演算部を備え、所定のコマンドが与えられたとき、演算部によって生成されたデータを出力するものとする。
【0011】
この発明によると、演算部によって、メモリ装置に格納されたデータに対する演算が行われるため、本来的に当該演算を行うべきCPUなどの負荷が軽減される。
【0012】
より好ましくは、演算部は、演算対象データと上記の指定されたデータとの間で指示された比較演算を行い、当該比較演算の結果に基づいて、上記のリードアクセスに係る行に属する所定ビット長のデータのそれぞれが所定の条件を満たしているか否かを示す情報を生成するものとする。
【0013】
この発明によると、読み出し要のデータ量が多い場合であっても、リードアクセスに係る出力データは固定長となるため、出力データ量が削減される。これにより、メモリ装置のリードアクセスが高速化される
【0014】
また、本発明が講じた手段は、情報処理システムとして、上記のメモリコントローラと、上記の情報を生成し、上記のメモリコントローラに、当該生成した情報及びリードアクセスに係る行アドレスを伴う第1のリードリクエストコマンド、及びリードアクセスに係る行アドレス及び列アドレスを伴う第2のリードリクエストコマンドのいずれか一方を選択的に与える処理装置とを備えたものとする。そして、処理装置は、上記のリードアクセスに係る行における読み出し要のデータの粗密状態に応じて、第1及び第2のリードリクエストコマンドの選択を行うものとする。また、メモリコントローラは、処理装置から与えられた列アドレス及び上記の列アドレス生成部によって生成された列アドレスのいずれか一方を選択する列アドレスセレクタと、処理装置から与えられたコマンドに応じて、上記の列アドレスセレクタの選択動作を制御する制御部とをさらに有するものとする。
【0015】
好ましくは、上記のメモリコントローラは、与えられた演算対象データと上記のメモリ装置から出力されたデータとの間で、上記の処理装置によって指示された演算を行う演算部と、演算部から出力されたデータ及び上記のメモリ装置から出力されたデータのいずれか一方を選択的に出力する出力セレクタとを有するものとする。また、上記の制御部は、上記の処理装置から与えられたコマンドに応じて、上記の出力セレクタの選択動作を制御するものとする。
【0016】
より好ましくは、上記の処理装置は、上記の演算部に比較演算を指示するものとする。また、上記の演算部は、上記の演算対象データと上記のメモリ装置から出力されたデータとの間で上記の比較演算を行い、当該比較演算の結果に基づいて、上記のリードアクセスに係る行に属する所定ビット長のデータのそれぞれが所定の条件を満たしているか否かを示す情報を生成するものとする
【発明の効果】
【0017】
以上のように本発明によると、メモリ装置からのデータ読み出しに関して、メモリコントローラに入力すべきデータ量及びメモリ装置から出力されるデータ量が削減される。これにより、特にメモリモジュールの多重化などを行うことなく、メモリ装置のリードアクセスが高速化される。
【発明を実施するための最良の形態】
【0018】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【0019】
(第1の実施形態)
図1は、本発明の第1の実施形態に係るメモリコントローラ及び一般的なDRAMからなるメモリシステムの構成の一部を示す。本実施形態に係るメモリコントローラ1Aは、格納部10、列アドレス生成部20、列アドレスセレクタ30、制御部40を備えている。なお、図1はリードアクセスの説明に必要となる構成要素のみを示している。
【0020】
格納部10は、リードアクセスに係る行に属する所定ビット長のデータのそれぞれの読み出し要否を示す情報であるビットマップBMinを受け、これを格納する。ビットマップBMinは、メモリセルアレイ110における一の行に属する所定ビット長のデータのそれぞれについて、読み出し要のものについてはビット“1”で、読み出し不要のものについてはビット“0”で表すようにするとよい。例えば、32ビットワード単位でデータ読み出しを行う場合、上記の所定ビット長は“32”であり、メモリセルアレイ110における一の行に4kバイト(=1024ワード)のデータが含まれるとすると、ビットマップBMinの情報量は1kビット(=32ワード)となる。
【0021】
列アドレス生成部20は、格納部10に格納されたビットマップBMinを参照し、読み出し要のデータの列アドレスを生成する。具体的には、列アドレス生成部20は、ビットマップBMin中のビット“1”に対応するデータ(ワード)の列アドレスを生成する。
【0022】
列アドレスセレクタ30は、図示しないCPUなどから与えられたアドレスADDR中の列アドレス、及び列アドレス生成部20によって生成された列アドレスのいずれか一方を選択し、この選択した列アドレスを列アドレスバッファ120に与える。なお、アドレスADDR中の行アドレスは行アドレスバッファ130に与えられ、列アドレスバッファ120及び行アドレスバッファ130にそれぞれ格納された列アドレス及び行アドレスは列デコーダ140及び行デコーダ150によってそれぞれデコードされ、所望のデータがセンスアンプ160によって増幅され、出力バッファ170からデータDoutとしてCPUなどに出力される。
【0023】
制御部40は、列アドレス生成部20及び列アドレスセレクタ30を制御する。具体的には、制御部40は、CPUによって発行されたリードリクエストコマンドCMDがビットマップBMinによって指示されたデータを要求する命令であったとき、列アドレス生成部20に対して列アドレス生成を指示するとともに、列アドレスセレクタ30に対して列アドレス生成部20によって生成された列アドレスを選択するように指示する。なお、制御部40は、通常のリードリクエストコマンドを受けたときは、列アドレスセレクタ30に対してアドレスADDR中の列アドレスを選択するように指示する。
【0024】
次に、本発明に係るリードアクセス(以下、「ビットマップアクセス」という。)について図2のタイミングチャートを参照して説明する。まず、行アドレスRに対応する行がアクティブにされた後、列アドレス生成部20によって生成された列アドレスCa,Cb,Cc,Cd,Ce,CfがクロックCLKに同期して順に指定される。そして、これら列アドレスCa~Cfに対応するデータDa,Db,Dc,Dd,De,DfがクロックCLKに同期して順に読み出される。このように、ビットマップアクセスでは列アドレスCa~Cfはメモリコントローラ内部で生成されており、この点が従来のページモードによるメモリアクセスとは異なる。すなわち、ページモードでは、個々の列アドレスを指定するためにCPUからメモリコントローラにその都度列アドレスを与えるのに対して、ビットマップアクセスでは、メモリコントローラに行アドレス及びビットマップを一旦与えれば後はメモリコントローラが列アドレスを生成し、それを受けたDRAMが能動的に所望のデータを読み出してCPUに出力する。
【0025】
図3は、ビットマップアクセスを実現する上で好ましい情報処理システムの構成を示す。図3に示した情報処理システムは、本実施形態に係るメモリコントローラ1A及び処理装置としてのCPU2を備えている。
【0026】
CPU2は、ビットマップアクセスを行う場合、ビットマップアクセス用のリードリクエストコマンドを発行するとともにメモリコントローラ1Aにリードアクセスに係る行アドレス及びビットマップを与える。通常、CPUにはキャッシュメモリが内蔵されており、キャッシュライン指向のリードアクセスが可能となっているが、CPU2は、さらに、メモリ装置100から出力されたデータを一時的に格納するためのFIFO(first-in first-out)3を備えている。FIFO3を備える理由は、ビットマップアクセスでは非連続データが読み出されることがあり、データの連続性を前提としたキャッシュメモリは適さないからである。FIFO3を備えることにより、CPU2は、キャッシュラインが充足されたか否かにかかわらず、メモリ装置100から読み出されたデータDoutを任意のタイミングで取り込むことができる。
【0027】
なお、実際のCPUにおいてNウェイ構成となっているキャッシュメモリの一部をFIFOとして用いることにより、回路構成を大幅に変更することなく、また、回路規模を特に増大させることなくCPU内部にFIFOを実現することができる。また、特にFIFOを備えなくとも、ビットマップアクセスによって得られたデータに非連続性を示すビットを挿入するなどしてデータの非連続点を明確にすることでキャッシュメモリにより処理をすることも可能である。
【0028】
ところで、ビットマップアクセスは、メモリ装置の非連続データの読み出し高速化という効果を奏するが、リードリクエストの際に比較的サイズの大きいビットマップをメモリ装置に与える点で、通常のメモリアクセスよりもオーバーヘッドが大きくなる。このため、メモリセルアレイにおける一の行に属するデータを数個程度読み出す場合には、ビットマップアクセスよりも通常のメモリアクセスの方が高速である。
【0029】
図4は、通常アクセス及びビットマップアクセス(BMA)に係る所要時間を比較したグラフである。横軸pは、メモリセルアレイにおける一の行に属するデータ総数に対する読み出し要求に係るデータ総数の割合を示し、縦軸Tは、CPUの所要サイクル数を示す。上述したようにビットマップアクセスはオーバーヘッドが大きいため、pがゼロ近傍では通常アクセスよりも所要時間が大きくなる。しかし、リードリクエストコマンドの発行が1回で済むため、所要時間はpの増加に対して線形に増加する。一方、通常アクセスは、pがゼロ近傍ではビットマップアクセスよりも所要時間は少ないものの、読み出し要求に係るデータ量が増加するにつれCPUからのリードリクエスト数もまた増加する。したがって、所要時間はpの増加に対して急激に増加し、ある分岐点を越えるとビットマップアクセスよりも所要時間が大きくなる。そこで、リードアクセスの所要時間を最小化するためにも、図3において、CPU2は、リードアクセスに係る行における読み出し要のデータの粗密状態に応じて、リードリクエストコマンドを切り替えることが好ましい。具体的には、CPU2は、通常アクセスが有利と判断した場合には通常のリードリクエストコマンドを発行し、ビットマップアクセスが有利と判断した場合にはビットマップアクセスに係るリードリクエストコマンドを発行する。
【0030】
なお、上記の分岐点は情報処理システムの構成によって異なるが、キャッシュ容量やビットマップ転送速度などから一意に特定することができる。また、読み出し要のデータが固定ストライドでアクセス可能である場合には、上述の固定ストライド転送方式によるリードアクセスを選択するようにしてもよい。
【0031】
(第2の実施形態)
図5は、本発明の第2の実施形態に係るメモリコントローラ及び一般的なDRAMからなるメモリシステムの構成の一部を示す。本実施形態に係るメモリシステム1Bは、図1のメモリコントローラ1Aに、さらに、演算部50及び出力セレクタ60を追加した構成となっている。なお、図5において図1と同じ構成要素については同じ符号を付している。
【0032】
演算部50は、図示しないCPUなどから与えられた演算対象データDopと、出力バッファ170から出力されたデータDoutとの間で、CPUなどから指示された演算子θで演算を行い、その演算結果としてのデータDout2を出力する。なお、演算部50で行う演算は、算術演算(例えば、加算、減算、除算、及び乗算など。)、論理演算(例えば、論理和、論理積、及び排他的論理和など。)、及び比較演算(例えば、“=”、“<”、“>”、“≦”、“≧”、“≠”など。)などのいずれであってもよい。
【0033】
出力セレクタ60は、データDout及びデータDout2のいずれか一方を選択し、データDTとしてCPUなどに出力する。出力セレクタ60の選択動作は制御部40によって制御される。具体的には、制御部40は、ビットマップアクセスの場合には出力セレクタ60に対してデータDout2を選択するように指示する一方、通常のリードアクセスの場合にはデータDoutを選択するように指示する。
【0034】
主記憶データベースなどにおける条件分岐処理を考えた場合、メモリ装置に格納されたデータ自体はさほど重要ではなく、比較演算の結果が得られればよいことが多い。そこで、特に、演算部50によって比較演算を行う場合について考える。この場合、演算部50は、演算対象データDopとデータDoutとを比較し、この比較の結果に基づいて、リードアクセスに係る行に属する所定ビット長のデータのそれぞれが所定の条件を満たしているか否かを示す情報であるビットマップ(以下、ビットマップBMinと区別するために「ビットマップBMout」という。)を生成する。かかる演算部50はコンパレータアレイで実現することができる。データDoutが所定の条件を満たしているか否かは、演算対象データDop及びデータDoutについて、演算子θで比較演算を行った結果として与えられる。例えば、演算子θとして“=”が指定された場合、演算対象データDopとデータDoutとが等しければビットマップBMout中の当該データDoutに対応するビットが例えば“1”となり、等しくなければ“0”となる。
【0035】
ビットマップBMoutは、リードアクセスに係る行に属する所定ビット長のデータのそれぞれについて所定の条件が満たされているか否かを示すため、その情報量はビットマップBMinと同じである。例えば、32ビットワード単位でデータ読み出しを行う場合、上記の所定ビット長は“32”であり、メモリセルアレイ110における一の行に4kバイト(=1024ワード)のデータが含まれるとすると、ビットマップBMoutの情報量はビットマップBMinと同じ1kビット(=32ワード)となる。すなわち、ビットマップBMoutは、読み出し要のデータが多い場合でもその情報量は一定であり、出力データ量が削減される。
【0036】
以上、本実施形態によると、メモリ装置に格納されたデータに対する算術演算、論理演算、比較演算などの比較的単純な演算がメモリコントローラによって行われるため、CPUはこれら単純な演算を行う必要がなくなり、その分、他の処理に時間を割り当てることができる。特に、メモリコントローラによって比較演算を行い、ビットマップBMoutを出力することによって、比較演算の結果のみがCPUに伝達される。これにより、メモリ装置からCPUに比較演算のためだけに必要とされるデータが送られることがなくなり、その分、他のデータ転送にバス資源を充てることができる。すなわち、システム全体としてのパフォーマンスが向上する。
【0037】
図6は、本実施形態に係るメモリコントローラを備えた情報処理システムの構成を示す。図6の情報処理システムでは、FIFO3はメモリコントローラ1Bの内部に設けられている。このように、FIFO3は必ずしもCPU2の内部に設けなくてもよい。なお、CPU2は、FIFO3からデータDTを受けるようにしてもよいし、また、従来と同様にキャッシュラインにデータを取り込むようにしてもよい。
【0038】
以上、本発明の実施の形態についてDRAMのメモリコントローラを例に説明したが、本発明はこれに限定されるものではない。すなわち、本発明に係るメモリコントローラ及びリードアクセス方法は、DRAMを代表とする半導体メモリ装置のみならず、磁気抵抗メモリ装置(MRAM)や強誘電体メモリ装置(FeRAM)などのおよそセルアレイ構造を有するメモリ装置一般に適用可能である。
【産業上の利用可能性】
【0039】
本発明に係るメモリコントローラ及び情報処理システムは、高速なリードアクセスが可能なため、主記憶データベース、大規模数値演算、ストリームデータ処理などの応用分野に有用である。
【図面の簡単な説明】
【0040】
【図1】第1の実施形態に係るメモリコントローラを備えたメモリシステムの構成図である。
【図2】図1のメモリコントローラによるリードアクセスに係るタイミングチャートである。
【図3】図1のメモリコントローラを備えた情報処理システムの構成図である。
【図4】通常アクセス及びビットマップアクセスに係る所要時間を比較したグラフである。
【図5】第2の実施形態に係るメモリコントローラを備えたメモリシステムの構成図である。
【図6】図4のメモリコントローラを備えた情報処理システムの構成図である。
【符号の説明】
【0041】
1A,1B メモリコントローラ
2 CPU(処理装置)
3 FIFO
10 格納部
20 列アドレス生成部
30 列アドレスセレクタ
40 制御部
50 演算部
60 出力セレクタ
図面
【図1】
0
【図2】
1
【図3】
2
【図4】
3
【図5】
4
【図6】
5