(57)【要約】【課題】メモリ装置のリードアクセスを高速化する。【解決手段】メモリコントローラ（１Ａ）は、リードアクセスに係る行に属する所定ビット長のデータのそれぞれについての読み出し要否を示す情報を受け、当該情報を格納する格納部（１０）と、格納部（１０）に格納された情報を参照し、読み出し要のデータの列アドレスを生成する列アドレス生成部（２０）とを備えている。ここで、メモリコントローラ（１Ａ）は、上記リードアクセスに係る行アドレス及び上記生成された列アドレスで指定されるデータの出力制御を行う。【選択図】図１
2006344139.tif 000002
【特許請求の範囲】
【請求項１】
リードアクセスに係る行に属する所定ビット長のデータのそれぞれについての読み出し要否を示す情報を受け、当該情報を格納する格納部と、
前記格納部に格納された情報を参照し、読み出し要のデータの列アドレスを生成する列アドレス生成部とを備え、
メモリ装置に対して、前記リードアクセスに係る行アドレス及び前記生成された列アドレスで指定されるデータの出力制御を行う
ことを特徴とするメモリコントローラ。
【請求項２】
請求項１に記載のメモリコントローラにおいて、
与えられた演算対象データと前記指定されたデータとの間で指示された演算を行う演算部を備え、
所定のコマンドが与えられたとき、前記演算部によって生成されたデータを出力する
ことを特徴とするメモリコントローラ。
【請求項３】
請求項２に記載のメモリコントローラにおいて、
前記演算部は、前記演算対象データと前記指定されたデータとの間で指示された比較演算を行い、当該比較演算の結果に基づいて、前記リードアクセスに係る行に属する所定ビット長のデータのそれぞれが所定の条件を満たしているか否かを示す情報を生成するものである
ことを特徴とするメモリコントローラ。
【請求項４】
請求項１に記載のメモリコントローラと、
前記情報を生成し、前記メモリコントローラに、当該生成した情報及びリードアクセスに係る行アドレスを伴うリードリクエストコマンドを与える処理装置と、
前記メモリコントローラの出力制御により前記メモリ装置から出力されたデータを取り込むＦＩＦＯとを備えた
ことを特徴とする情報処理システム。
【請求項５】
請求項４に記載の情報処理システムにおいて、
前記ＦＩＦＯは、前記処理装置内部に設けられている
ことを特徴とする情報処理システム。
【請求項６】
請求項１に記載のメモリコントローラと、
前記情報を生成し、前記メモリコントローラに、当該生成した情報及びリードアクセスに係る行アドレスを伴う第１のリードリクエストコマンド、及びリードアクセスに係る行アドレス及び列アドレスを伴う第２のリードリクエストコマンドのいずれか一方を選択的に与える処理装置とを備え、
前記処理装置は、前記リードアクセスに係る行における読み出し要のデータの粗密状態に応じて、前記第１及び第２のリードリクエストコマンドの選択を行うものであり、
前記メモリコントローラは、
前記処理装置から与えられた列アドレス及び前記列アドレス生成部によって生成された列アドレスのいずれか一方を選択する列アドレスセレクタと、
前記処理装置から与えられたコマンドに応じて、前記列アドレスセレクタの選択動作を制御する制御部とを有するものである
ことを特徴とする情報処理システム。
【請求項７】
請求項６に記載の情報システムにおいて、
前記メモリコントローラは、
与えられた演算対象データと前記メモリ装置から出力されたデータとの間で、前記処理装置によって指示された演算を行う演算部と、
前記演算部から出力されたデータ及び前記メモリ装置から出力されたデータのいずれか一方を選択的に出力する出力セレクタとを有するものであり、
前記制御部は、前記処理装置から与えられたコマンドに応じて、前記出力セレクタの選択動作を制御するものである
ことを特徴とする情報処理システム。
【請求項８】
請求項７に記載の情報システムにおいて、
前記処理装置は、前記演算部に比較演算を指示するものであり、
前記演算部は、前記演算対象データと前記メモリ装置から出力されたデータとの間で前記比較演算を行い、当該比較演算の結果に基づいて、前記リードアクセスに係る行に属する所定ビット長のデータのそれぞれが所定の条件を満たしているか否かを示す情報を生成するものである
ことを特徴とする情報処理システム。
【請求項９】
リードアクセスに係る行に属する所定ビット長のデータのそれぞれについての読み出し要否を示す情報を生成するステップと、
前記生成された情報に基づいて、読み出し要のデータの列アドレスを生成するステップと、
前記リードアクセスに係る行アドレス及び前記生成された列アドレスで指定されるデータを読み出すステップとを備えた
ことを特徴とするメモリ装置のリードアクセス方法。
【請求項１０】
請求項９に記載のリードアクセス方法において、
与えられた演算対象データと前記指定されたデータとの間で指示された演算を行うステップと、
前記リードアクセスに係る出力データとして、前記演算の結果を出力するステップとを備えた
ことを特徴とするリードアクセス方法。
【請求項１１】
請求項１０に記載のリードアクセス方法において、
前記演算は、比較演算であり、
当該リードアクセス方法は、
前記演算の結果として、前記比較演算の結果に基づいて、前記リードアクセスに係る行に属する所定ビット長のデータのそれぞれが所定の条件を満たしているか否かを示す情報を生成するステップを備えた
ことを特徴とするリードアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラに関し、特に、メモリ装置の高速リードアクセス技術に関する。
【背景技術】
【０００２】
ＤＲＡＭ（dynamic random access memory）は、低コストながらも大規模な記憶容量を実現するため、近年のコンピュータシステムにおける主記憶装置として広く用いられている。ＤＲＡＭのデータ読み出しは、その構造上、行アドレス及び列アドレス、及びマルチバンク構成のＤＲＡＭにあってはさらにバンクアドレスを指定して行う。具体的には、バンクアドレス及び行アドレスで指定されたメモリセルアレイバンクにおける行をアクティブにし、このアクティブにされた行に含まれるデータの中から列アドレスで指定されたものを読み出す。そして、ＤＲＡＭではいわゆる破壊読み出しが行われるため、データ読み出し後にプリチャージを行う必要がある。このため、ＤＲＡＭのメモリアクセス速度は比較的遅いものとなっている。
【０００３】
ＣＰＵ（central processing unit）の処理速度が比較的遅かった時代にはＤＲＡＭのメモリアクセス速度の遅さはさほど問題とはならなかった。しかし、近年、ＣＰＵの処理速度が飛躍的に向上するようになって、ＤＲＡＭのメモリアクセス速度がＣＰＵの処理速度に追いつかない、いわゆるメモリウォールが問題となっている。このため、ＤＲＡＭのメモリアクセスをいかに高速化するかが重要な課題となっている。特に、主記憶データベースや大規模数値演算などのアプリケーションでは高速なリードアクセスが要求されるところである。
【０００４】
これまでの高速メモリアクセスの手法として、スタティックカラムモード、ニブルモード、バーストモード、ページモード、ＥＤＯ（extended data out）などが知られている。また、メモリセルアレイにおける一の行に属するデータを固定ストライドで読み出す固定ストライド転送方式が提案されている（例えば、非特許文献１参照）。
【非特許文献１】Lixin Zhang et al., "The Impulse Memory Controller", IEEE Trans. Computers, 50(11):1117-1132, 2001
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のメモリアクセス手法には次のような問題点がある。まず、（１）ＣＰＵの処理速度よりもメモリアクセス速度の方が遅いため、個々のデータへのアクセスのたびにＣＰＵがデータ到着まで停止してしまうという点である。そして、（２）キャッシュライン指向のデータアクセスのため不連続なデータアクセスは効率が悪く、また、キャッシュラインを充足させるべく必要なデータに付随して不要なデータまでも読み出す必要があり、この不要なデータの読み出しのために時間が浪費されるという点である。さらに、（３）少量のデータを得るために大量の物理アドレスをメモリ装置に与える必要があり、アドレス指定に必要な情報量に比して読み出される情報量が少なく、データ読み出しが非効率であるという点である。
【０００６】
また、主記憶データベースなどのアプリケーションを考えた場合、メモリ装置に格納されたデータについて選択演算や結合演算などの単純な比較演算の結果に基づいて条件分岐処理を行うことが多い。すなわち、演算結果が重要なのであって、比較演算対象のデータ自体はさほど重要ではない場合が多い。このような場合にも、（４）メモリ装置から時間をかけてデータを読み出し、高速で高価なＣＰＵで単純な演算を行うのは、バス資源及びＣＰＵ資源の無駄遣いである。
【０００７】
ベクトル計算機などのようにメモリモジュールを多重化すれば上記の諸問題は解決されようが、コスト増となるためあまり好ましくはない。そこで、上記問題に鑑み、本発明は、メモリモジュールの多重化などを行うことなく、メモリ装置のリードアクセスを高速化することを課題とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明が講じた手段は、メモリコントローラとして、リードアクセスに係る行に属する所定ビット長のデータのそれぞれについての読み出し要否を示す情報を受け、当該情報を格納する格納部と、格納部に格納された情報を参照し、読み出し要のデータの列アドレスを生成する列アドレス生成部とを備え、メモリ装置に対して、上記のリードアクセスに係る行アドレス及び上記の生成された列アドレスで指定されるデータの出力制御を行うものとする。
【０００９】
この発明によると、メモリコントローラ内部で読み出し要のデータの列アドレスが生成されるため、データ読み出しの際に逐一メモリコントローラに大量の物理アドレスを指定する必要がなくなり、リードアクセスに係る入力データ量が削減される。また、リードアクセスに係る行における所望のデータのみが出力され、不要なデータの読み出しがなくなる。これにより、メモリ装置のリードアクセスが高速化される。
【００１０】
好ましくは、上記のメモリコントローラは、与えられた演算対象データと上記の指定されたデータとの間で指示された演算を行う演算部を備え、所定のコマンドが与えられたとき、演算部によって生成されたデータを出力するものとする。
【００１１】
この発明によると、演算部によって、メモリ装置に格納されたデータに対する演算が行われるため、本来的に当該演算を行うべきＣＰＵなどの負荷が軽減される。
【００１２】
より好ましくは、演算部は、演算対象データと上記の指定されたデータとの間で指示された比較演算を行い、当該比較演算の結果に基づいて、上記のリードアクセスに係る行に属する所定ビット長のデータのそれぞれが所定の条件を満たしているか否かを示す情報を生成するものとする。
【００１３】
この発明によると、読み出し要のデータ量が多い場合であっても、リードアクセスに係る出力データは固定長となるため、出力データ量が削減される。これにより、メモリ装置のリードアクセスが高速化される。
【００１４】
また、本発明が講じた手段は、情報処理システムとして、上記のメモリコントローラと、上記の情報を生成し、上記のメモリコントローラに、当該生成した情報及びリードアクセスに係る行アドレスを伴うリードリクエストコマンドを与える処理装置と、上記のメモリコントローラの出力制御により上記のメモリ装置から出力されたデータを取り込むＦＩＦＯとを備えたものとする。
【００１５】
この発明によると、ＦＩＦＯにメモリ装置からのデータが取り込まれるため、処理装置はメモリ装置からのデータ出力のタイミングにかかわらず任意のタイミングでＦＩＦＯに取り込まれた所望のデータにアクセスすることができる。
【００１６】
好ましくは、上記のＦＩＦＯは、上記の処理装置内部に設けられているものとする。
【００１７】
また、本発明が講じた手段は、情報処理システムとして、上記のメモリコントローラと、上記の情報を生成し、上記のメモリコントローラに、当該生成した情報及びリードアクセスに係る行アドレスを伴う第１のリードリクエストコマンド、及びリードアクセスに係る行アドレス及び列アドレスを伴う第２のリードリクエストコマンドのいずれか一方を選択的に与える処理装置とを備えたものとする。そして、処理装置は、上記のリードアクセスに係る行における読み出し要のデータの粗密状態に応じて、第１及び第２のリードリクエストコマンドの選択を行うものとする。また、メモリコントローラは、処理装置から与えられた列アドレス及び上記の列アドレス生成部によって生成された列アドレスのいずれか一方を選択する列アドレスセレクタと、処理装置から与えられたコマンドに応じて、上記の列アドレスセレクタの選択動作を制御する制御部とをさらに有するものとする。
【００１８】
好ましくは、上記のメモリコントローラは、与えられた演算対象データと上記のメモリ装置から出力されたデータとの間で、上記の処理装置によって指示された演算を行う演算部と、演算部から出力されたデータ及び上記のメモリ装置から出力されたデータのいずれか一方を選択的に出力する出力セレクタとを有するものとする。また、上記の制御部は、上記の処理装置から与えられたコマンドに応じて、上記の出力セレクタの選択動作を制御するものとする。
【００１９】
より好ましくは、上記の処理装置は、上記の演算部に比較演算を指示するものとする。また、上記の演算部は、上記の演算対象データと上記のメモリ装置から出力されたデータとの間で上記の比較演算を行い、当該比較演算の結果に基づいて、上記のリードアクセスに係る行に属する所定ビット長のデータのそれぞれが所定の条件を満たしているか否かを示す情報を生成するものとする。
【００２０】
一方、本発明が講じた手段は、メモリ装置のリードアクセス方法として、リードアクセスに係る行に属する所定ビット長のデータのそれぞれについての読み出し要否を示す情報を生成するステップと、上記生成された情報に基づいて、読み出し要のデータの列アドレスを生成するステップと、上記リードアクセスに係る行アドレス及び前記生成された列アドレスで指定されるデータを読み出すステップとを備えたものとする。
【００２１】
この発明によると、データ読み出しの際に逐一大量の物理アドレスを指定する必要がなくなり、リードアクセスに係る入力データ量が削減される。また、リードアクセスに係る行における所望のデータのみが出力され、不要なデータの読み出しがなくなる。これにより、メモリ装置のリードアクセスが高速化される。
【００２２】
好ましくは、上記のリードアクセス方法は、与えられた演算対象データと上記の指定されたデータとの間で指示された演算を行うステップと、上記のリードアクセスに係る出力データとして、上記の演算の結果を出力するステップとを備えたものとする。
【００２３】
この発明によると、メモリ装置に格納されたデータに対して演算が行われ、その演算の結果がリードアクセスに係る出力データとして出力されるため、本来的に当該演算を行うべきＣＰＵなどの負荷が軽減される。
【００２４】
より好ましくは、上記の演算は、比較演算であり、上記のリードアクセス方法は、上記の演算の結果として、上記の比較演算の結果に基づいて、上記のリードアクセスに係る行に属する所定ビット長のデータのそれぞれが所定の条件を満たしているか否かを示す情報を生成するステップを備えたものとする。
【００２５】
この発明によると、読み出し要のデータ量が多い場合であっても、リードアクセスに係る出力データは固定長となるため、出力データ量が削減される。これにより、メモリ装置のリードアクセスが高速化される。
【発明の効果】
【００２６】
以上のように本発明によると、メモリ装置からのデータ読み出しに関して、メモリコントローラに入力すべきデータ量及びメモリ装置から出力されるデータ量が削減される。これにより、特にメモリモジュールの多重化などを行うことなく、メモリ装置のリードアクセスが高速化される。
【発明を実施するための最良の形態】
【００２７】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【００２８】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るメモリコントローラ及び一般的なＤＲＡＭからなるメモリシステムの構成の一部を示す。本実施形態に係るメモリコントローラ１Ａは、格納部１０、列アドレス生成部２０、列アドレスセレクタ３０、制御部４０を備えている。なお、図１はリードアクセスの説明に必要となる構成要素のみを示している。
【００２９】
格納部１０は、リードアクセスに係る行に属する所定ビット長のデータのそれぞれの読み出し要否を示す情報であるビットマップＢＭｉｎを受け、これを格納する。ビットマップＢＭｉｎは、メモリセルアレイ１１０における一の行に属する所定ビット長のデータのそれぞれについて、読み出し要のものについてはビット“１”で、読み出し不要のものについてはビット“０”で表すようにするとよい。例えば、３２ビットワード単位でデータ読み出しを行う場合、上記の所定ビット長は“３２”であり、メモリセルアレイ１１０における一の行に４ｋバイト（＝１０２４ワード）のデータが含まれるとすると、ビットマップＢＭｉｎの情報量は１ｋビット（＝３２ワード）となる。
【００３０】
列アドレス生成部２０は、格納部１０に格納されたビットマップＢＭｉｎを参照し、読み出し要のデータの列アドレスを生成する。具体的には、列アドレス生成部２０は、ビットマップＢＭｉｎ中のビット“１”に対応するデータ（ワード）の列アドレスを生成する。
【００３１】
列アドレスセレクタ３０は、図示しないＣＰＵなどから与えられたアドレスＡＤＤＲ中の列アドレス、及び列アドレス生成部２０によって生成された列アドレスのいずれか一方を選択し、この選択した列アドレスＲを列アドレスバッファ１２０に与える。なお、アドレスＡＤＤＲ中の行アドレスＣは行アドレスバッファ１３０に与えられ、列アドレスバッファ１２０及び行アドレスバッファ１３０にそれぞれ格納された列アドレス及び行アドレスは列デコーダ１４０及び行デコーダ１５０によってそれぞれデコードされ、所望のデータがセンスアンプ１６０によって増幅され、出力バッファ１７０からデータＤｏｕｔとしてＣＰＵなどに出力される。
【００３２】
制御部４０は、列アドレス生成部２０及び列アドレスセレクタ３０を制御する。具体的には、制御部４０は、ＣＰＵによって発行されたリードリクエストコマンドＣＭＤがビットマップＢＭｉｎによって指示されたデータを要求する命令であったとき、列アドレス生成部２０に対して列アドレス生成を指示するとともに、列アドレスセレクタ３０に対して列アドレス生成部２０によって生成された列アドレスを選択するように指示する。なお、制御部４０は、通常のリードリクエストコマンドを受けたときは、列アドレスセレクタ３０に対してアドレスＡＤＤＲ中の列アドレスを選択するように指示する。
【００３３】
次に、本発明に係るリードアクセス（以下、「ビットマップアクセス」という。）について図２のタイミングチャートを参照して説明する。まず、行アドレスＲに対応する行がアクティブにされた後、列アドレス生成部２０によって生成された列アドレスＣａ，Ｃｂ，Ｃｃ，Ｃｄ，Ｃｄ，Ｃｄ，ＣｆがクロックＣＬＫに同期して順に指定される。そして、これら列アドレスＣａ〜Ｃｆに対応するデータＤａ，Ｄｂ，Ｄｃ，Ｄｄ，Ｄｅ，ＤｆがクロックＣＬＫに同期して順に読み出される。このように、ビットマップアクセスでは列アドレスＣａ〜Ｃｆはメモリコントローラ内部で生成されており、この点が従来のページモードによるメモリアクセスとは異なる。すなわち、ページモードでは、個々の列アドレスを指定するためにＣＰＵからメモリコントローラにその都度列アドレスを与えるのに対して、ビットマップアクセスでは、メモリコントローラに行アドレス及びビットマップを一旦与えれば後はメモリコントローラが列アドレスを生成し、それを受けたＤＲＡＭが能動的に所望のデータを読み出してＣＰＵに出力する。
【００３４】
図３は、ビットマップアクセスを実現する上で好ましい情報処理システムの構成を示す。図３に示した情報処理システムは、本実施形態に係るメモリコントローラ１Ａ及び処理装置としてのＣＰＵ２を備えている。
【００３５】
ＣＰＵ２は、ビットマップアクセスを行う場合、ビットマップアクセス用のリードリクエストコマンドを発行するとともにメモリコントローラ１Ａにリードアクセスに係る行アドレス及びビットマップを与える。通常、ＣＰＵにはキャッシュメモリが内蔵されており、キャッシュライン指向のリードアクセスが可能となっているが、ＣＰＵ２は、さらに、メモリ装置１００から出力されたデータを一時的に格納するためのＦＩＦＯ（first-in first-out）３を備えている。ＦＩＦＯ３を備える理由は、ビットマップアクセスでは非連続データが読み出されることがあり、データの連続性を前提としたキャッシュメモリは適さないからである。ＦＩＦＯ３を備えることにより、ＣＰＵ２は、キャッシュラインが充足されたか否かにかかわらず、メモリ装置１００から読み出されたデータＤｏｕｔを任意のタイミングで取り込むことができる。
【００３６】
なお、実際のＣＰＵにおいてＮウェイ構成となっているキャッシュメモリの一部をＦＩＦＯとして用いることにより、回路構成を大幅に変更することなく、また、回路規模を特に増大させることなくＣＰＵ内部にＦＩＦＯを実現することができる。また、特にＦＩＦＯを備えなくとも、ビットマップアクセスによって得られたデータに非連続性を示すビットを挿入するなどしてデータの非連続点を明確にすることでキャッシュメモリにより処理をすることも可能である。
【００３７】
ところで、ビットマップアクセスは、メモリ装置の非連続データの読み出し高速化という効果を奏するが、リードリクエストの際に比較的サイズの大きいビットマップをメモリ装置に与える点で、通常のメモリアクセスよりもオーバーヘッドが大きくなる。このため、メモリセルアレイにおける一の行に属するデータを数個程度読み出す場合には、ビットマップアクセスよりも通常のメモリアクセスの方が高速である。
【００３８】
図４は、通常アクセス及びビットマップアクセス（ＢＭＡ）に係る所要時間を比較したグラフである。横軸ｐは、メモリセルアレイにおける一の行に属するデータ総数に対する読み出し要求に係るデータ総数の割合を示し、縦軸Ｔは、ＣＰＵの所要サイクル数を示す。上述したようにビットマップアクセスはオーバーヘッドが大きいため、ｐがゼロ近傍では通常アクセスよりも所要時間が大きくなる。しかし、リードリクエストコマンドの発行が１回で済むため、所要時間はｐの増加に対して線形に増加する。一方、通常アクセスは、ｐがゼロ近傍ではビットマップアクセスよりも所要時間は少ないものの、読み出し要求に係るデータ量が増加するにつれＣＰＵからのリードリクエスト数もまた増加する。したがって、所要時間はｐの増加に対して急激に増加し、ある分岐点を越えるとビットマップアクセスよりも所要時間が大きくなる。そこで、リードアクセスの所要時間を最小化するためにも、図３において、ＣＰＵ２は、リードアクセスに係る行における読み出し要のデータの粗密状態に応じて、リードリクエストコマンドを切り替えることが好ましい。具体的には、ＣＰＵ２は、通常アクセスが有利と判断した場合には通常のリードリクエストコマンドを発行し、ビットマップアクセスが有利と判断した場合にはビットマップアクセスに係るリードリクエストコマンドを発行する。
【００３９】
なお、上記の分岐点は情報処理システムの構成によって異なるが、キャッシュ容量やビットマップ転送速度などから一意に特定することができる。また、読み出し要のデータが固定ストライドでアクセス可能である場合には、上述の固定ストライド転送方式によるリードアクセスを選択するようにしてもよい。
【００４０】
（第２の実施形態）
図５は、本発明の第２の実施形態に係るメモリコントローラ及び一般的なＤＲＡＭからなるメモリシステムの構成の一部を示す。本実施形態に係るメモリシステム１Ｂは、図１のメモリコントローラ１Ａに、さらに、演算部５０及び出力セレクタ６０を追加した構成となっている。なお、図５において図１と同じ構成要素については同じ符号を付している。
【００４１】
演算部５０は、図示しないＣＰＵなどから与えられた演算対象データＤｏｐと、出力バッファ１７０から出力されたデータＤｏｕｔとの間で、ＣＰＵなどから指示された演算子θで演算を行い、その演算結果としてのデータＤｏｕｔ２を出力する。なお、演算部５０で行う演算は、算術演算（例えば、加算、減算、除算、及び乗算など。）、論理演算（例えば、論理和、論理積、及び排他的論理和など。）、及び比較演算（例えば、“＝”、“＜”、“＞”、“≦”、“≧”、“≠”など。）などのいずれであってもよい。
【００４２】
出力セレクタ６０は、データＤｏｕｔ及びデータＤｏｕｔ２のいずれか一方を選択し、データＤＴとしてＣＰＵなどに出力する。出力セレクタ６０の選択動作は制御部４０によって制御される。具体的には、制御部４０は、ビットマップアクセスの場合には出力セレクタ６０に対してデータＤｏｕｔ２を選択するように指示する一方、通常のリードアクセスの場合にはデータＤｏｕｔを選択するように指示する。
【００４３】
主記憶データベースなどにおける条件分岐処理を考えた場合、メモリ装置に格納されたデータ自体はさほど重要ではなく、比較演算の結果が得られればよいことが多い。そこで、特に、演算部５０によって比較演算を行う場合について考える。この場合、演算部５０は、演算対象データＤｏｐとデータＤｏｕｔとを比較し、この比較の結果に基づいて、リードアクセスに係る行に属する所定ビット長のデータのそれぞれが所定の条件を満たしているか否かを示す情報であるビットマップ（以下、ビットマップＢＭｉｎと区別するために「ビットマップＢＭｏｕｔ」という。）を生成する。かかる演算部５０はコンパレータアレイで実現することができる。データＤｏｕｔが所定の条件を満たしているか否かは、演算対象データＤｏｐ及びデータＤｏｕｔについて、演算子θで比較演算を行った結果として与えられる。例えば、演算子θとして“＝”が指定された場合、演算対象データＤｏｐとデータＤｏｕｔとが等しければビットマップＢＭｏｕｔ中の当該データＤｏｕｔに対応するビットが例えば“１”となり、等しくなければ“０”となる。
【００４４】
ビットマップＢＭｏｕｔは、リードアクセスに係る行に属する所定ビット長のデータのそれぞれについて所定の条件が満たされているか否かを示すため、その情報量はビットマップＢＭｉｎと同じである。例えば、３２ビットワード単位でデータ読み出しを行う場合、上記の所定ビット長は“３２”であり、メモリセルアレイ１１０における一の行に４ｋバイト（＝１０２４ワード）のデータが含まれるとすると、ビットマップＢＭｏｕｔの情報量はビットマップＢＭｉｎと同じ１ｋビット（＝３２ワード）となる。すなわち、ビットマップＢＭｏｕｔは、読み出し要のデータが多い場合でもその情報量は一定であり、出力データ量が削減される。
【００４５】
以上、本実施形態によると、メモリ装置に格納されたデータに対する算術演算、論理演算、比較演算などの比較的単純な演算がメモリコントローラによって行われるため、ＣＰＵはこれら単純な演算を行う必要がなくなり、その分、他の処理に時間を割り当てることができる。特に、メモリコントローラによって比較演算を行い、ビットマップＢＭｏｕｔを出力することによって、比較演算の結果のみがＣＰＵに伝達される。これにより、メモリ装置からＣＰＵに比較演算のためだけに必要とされるデータが送られることがなくなり、その分、他のデータ転送にバス資源を充てることができる。すなわち、システム全体としてのパフォーマンスが向上する。
【００４６】
図６は、本実施形態に係るメモリコントローラを備えた情報処理システムの構成を示す。図６の情報処理システムでは、ＦＩＦＯ３はメモリコントローラ１Ｂの内部に設けられている。このように、ＦＩＦＯ３は必ずしもＣＰＵ２の内部に設けなくてもよい。なお、ＣＰＵ２は、ＦＩＦＯ３からデータをＤＴを受けるようにしてもよいし、また、従来と同様にキャッシュラインにデータを取り込むようにしてもよい。
【００４７】
以上、本発明の実施の形態についてＤＲＡＭのメモリコントローラを例に説明したが、本発明はこれに限定されるものではない。すなわち、本発明に係るメモリコントローラ及びリードアクセス方法は、ＤＲＡＭを代表とする半導体メモリ装置のみならず、磁気抵抗メモリ装置（ＭＲＡＭ）や強誘電体メモリ装置（ＦｅＲＡＭ）などのおよそセルアレイ構造を有するメモリ装置一般に適用可能である。
【産業上の利用可能性】
【００４８】
本発明に係るメモリコントローラ及び情報処理システムは、高速なリードアクセスが可能なため、主記憶データベース、大規模数値演算、ストリームデータ処理などの応用分野に有用である。
【図面の簡単な説明】
【００４９】
【図１】第１の実施形態に係るメモリコントローラを備えたメモリシステムの構成図である。
【図２】図１のメモリコントローラによるリードアクセスに係るタイミングチャートである。
【図３】図１のメモリコントローラを備えた情報処理システムの構成図である。
【図４】通常アクセス及びビットマップアクセスに係る所要時間を比較したグラフである。
【図５】第２の実施形態に係るメモリコントローラを備えたメモリシステムの構成図である。
【図６】図４のメモリコントローラを備えた情報処理システムの構成図である。
【符号の説明】
【００５０】
１Ａ，１Ｂ  メモリコントローラ
２    ＣＰＵ（処理装置）
３    ＦＩＦＯ
１０  格納部
２０  列アドレス生成部
３０  列アドレスセレクタ
４０  制御部
５０  演算部
６０  出力セレクタ
【図１】
2006344139.tif 000003
【図２】
2006344139.tif 000004
【図３】
2006344139.tif 000005
【図４】
2006344139.tif 000006
【図５】
2006344139.tif 000007
【図６】
2006344139.tif 000008