JP4769936B2 - Information processing system with memory controller - Google Patents

Information processing system with memory controller Download PDF

Info

Publication number
JP4769936B2
JP4769936B2 JP2005171073A JP2005171073A JP4769936B2 JP 4769936 B2 JP4769936 B2 JP 4769936B2 JP 2005171073 A JP2005171073 A JP 2005171073A JP 2005171073 A JP2005171073 A JP 2005171073A JP 4769936 B2 JP4769936 B2 JP 4769936B2
Authority
JP
Japan
Prior art keywords
data
read
column address
memory
memory 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.)
Active
Application number
JP2005171073A
Other languages
Japanese (ja)
Other versions
JP2006344139A (en
Inventor
純 宮崎
Original Assignee
国立大学法人 奈良先端科学技術大学院大学
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 国立大学法人 奈良先端科学技術大学院大学 filed Critical 国立大学法人 奈良先端科学技術大学院大学
Priority to JP2005171073A priority Critical patent/JP4769936B2/en
Priority to PCT/JP2006/311628 priority patent/WO2006132365A1/en
Publication of JP2006344139A publication Critical patent/JP2006344139A/en
Application granted granted Critical
Publication of JP4769936B2 publication Critical patent/JP4769936B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)

Description

本発明は、メモリコントローラに関し、特に、メモリ装置の高速リードアクセス技術に関する。   The present invention relates to a memory controller, and more particularly to a high-speed read access technique for a memory device.

DRAM(dynamic random access memory)は、低コストながらも大規模な記憶容量を実現するため、近年のコンピュータシステムにおける主記憶装置として広く用いられている。DRAMのデータ読み出しは、その構造上、行アドレス及び列アドレス、及びマルチバンク構成のDRAMにあってはさらにバンクアドレスを指定して行う。具体的には、バンクアドレス及び行アドレスで指定されたメモリセルアレイバンクにおける行をアクティブにし、このアクティブにされた行に含まれるデータの中から列アドレスで指定されたものを読み出す。そして、DRAMではいわゆる破壊読み出しが行われるため、データ読み出し後にプリチャージを行う必要がある。このため、DRAMのメモリアクセス速度は比較的遅いものとなっている。   DRAM (dynamic random access memory) is widely used as a main storage device in recent computer systems in order to realize a large-scale storage capacity at a low cost. Data reading from the DRAM is performed by designating a row address and a column address, and a bank address in the case of a multi-bank DRAM. Specifically, the row in the memory cell array bank designated by the bank address and the row address is activated, and the data designated by the column address is read out from the data included in the activated row. Since so-called destructive reading is performed in the DRAM, it is necessary to perform precharge after data reading. For this reason, the memory access speed of the DRAM is relatively slow.

CPU(central processing unit)の処理速度が比較的遅かった時代にはDRAMのメモリアクセス速度の遅さはさほど問題とはならなかった。しかし、近年、CPUの処理速度が飛躍的に向上するようになって、DRAMのメモリアクセス速度がCPUの処理速度に追いつかない、いわゆるメモリウォールが問題となっている。このため、DRAMのメモリアクセスをいかに高速化するかが重要な課題となっている。特に、主記憶データベースや大規模数値演算などのアプリケーションでは高速なリードアクセスが要求されるところである。   In the era when the processing speed of the CPU (central processing unit) was relatively slow, the slow memory access speed of the DRAM was not a problem. However, in recent years, the processing speed of the CPU has been dramatically improved, and so-called memory walls, in which the memory access speed of the DRAM cannot catch up with the processing speed of the CPU, have become a problem. Therefore, how to increase the memory access speed of DRAM is an important issue. In particular, high-speed read access is required for applications such as main memory databases and large-scale numerical calculations.

これまでの高速メモリアクセスの手法として、スタティックカラムモード、ニブルモード、バーストモード、ページモード、EDO(extended data out)などが知られている。また、メモリセルアレイにおける一の行に属するデータを固定ストライドで読み出す固定ストライド転送方式が提案されている(例えば、非特許文献1参照)。
Lixin Zhang et al., "The Impulse Memory Controller", IEEE Trans. Computers, 50(11):1117-1132, 2001
As a conventional high-speed memory access method, static column mode, nibble mode, burst mode, page mode, EDO (extended data out), and the like are known. Further, a fixed stride transfer method has been proposed in which data belonging to one row in a memory cell array is read with a fixed stride (see, for example, Non-Patent Document 1).
Lixin Zhang et al., "The Impulse Memory Controller", IEEE Trans. Computers, 50 (11): 1117-1132, 2001

従来のメモリアクセス手法には次のような問題点がある。まず、(1)CPUの処理速度よりもメモリアクセス速度の方が遅いため、個々のデータへのアクセスのたびにCPUがデータ到着まで停止してしまうという点である。そして、(2)キャッシュライン指向のデータアクセスのため不連続なデータアクセスは効率が悪く、また、キャッシュラインを充足させるべく必要なデータに付随して不要なデータまでも読み出す必要があり、この不要なデータの読み出しのために時間が浪費されるという点である。さらに、(3)少量のデータを得るために大量の物理アドレスをメモリ装置に与える必要があり、アドレス指定に必要な情報量に比して読み出される情報量が少なく、データ読み出しが非効率であるという点である。   The conventional memory access method has the following problems. First, (1) since the memory access speed is slower than the processing speed of the CPU, the CPU stops until the data arrives each time data is accessed. (2) Discontinuous data access is inefficient due to cache line-oriented data access, and unnecessary data must be read along with necessary data to satisfy the cache line. Time is wasted for reading data. Further, (3) it is necessary to give a large amount of physical addresses to the memory device in order to obtain a small amount of data, the amount of information read out is smaller than the amount of information required for addressing, and data reading is inefficient. That is the point.

また、主記憶データベースなどのアプリケーションを考えた場合、メモリ装置に格納されたデータについて選択演算や結合演算などの単純な比較演算の結果に基づいて条件分岐処理を行うことが多い。すなわち、演算結果が重要なのであって、比較演算対象のデータ自体はさほど重要ではない場合が多い。このような場合にも、(4)メモリ装置から時間をかけてデータを読み出し、高速で高価なCPUで単純な演算を行うのは、バス資源及びCPU資源の無駄遣いである。   When considering an application such as a main memory database, conditional branch processing is often performed on data stored in a memory device based on the result of a simple comparison operation such as a selection operation or a join operation. In other words, the calculation result is important, and the data to be compared is not very important in many cases. Even in such a case, (4) it is wasteful of bus resources and CPU resources to read data from the memory device over time and perform simple calculations with a high-speed and expensive CPU.

ベクトル計算機などのようにメモリモジュールを多重化すれば上記の諸問題は解決されようが、コスト増となるためあまり好ましくはない。そこで、上記問題に鑑み、本発明は、メモリモジュールの多重化などを行うことなく、メモリ装置のリードアクセスを高速化することを課題とする。   If the memory modules are multiplexed like a vector computer or the like, the above problems will be solved, but this is not preferable because it increases the cost. In view of the above problems, an object of the present invention is to increase the read access speed of a memory device without performing multiplexing of memory modules.

上記課題を解決するために本発明が講じた手段は、メモリコントローラとして、リードアクセスに係る行に属する所定ビット長のデータのそれぞれについての読み出し要否を示す情報を受け、当該情報を格納する格納部と、格納部に格納された情報を参照し、読み出し要のデータの列アドレスを生成する列アドレス生成部とを備え、メモリ装置に対して、上記のリードアクセスに係る行アドレス及び上記の生成された列アドレスで指定されるデータの出力制御を行うものとする。   Means taken by the present invention to solve the above problems is a memory controller that receives information indicating whether or not each data of a predetermined bit length belonging to a row related to read access is read and stores the information. And a column address generation unit that generates a column address of data that needs to be read with reference to information stored in the storage unit, and the row address and the generation related to the read access to the memory device It is assumed that output control of data specified by the specified column address is performed.

この発明によると、メモリコントローラ内部で読み出し要のデータの列アドレスが生成されるため、データ読み出しの際に逐一メモリコントローラに大量の物理アドレスを指定する必要がなくなり、リードアクセスに係る入力データ量が削減される。また、リードアクセスに係る行における所望のデータのみが出力され、不要なデータの読み出しがなくなる。これにより、メモリ装置のリードアクセスが高速化される。   According to the present invention, since a column address of data to be read is generated inside the memory controller, it is not necessary to specify a large amount of physical addresses in the memory controller every time data is read, and the amount of input data related to read access is reduced. Reduced. In addition, only desired data in a row related to read access is output, and unnecessary data is not read out. This speeds up the read access of the memory device.

好ましくは、上記のメモリコントローラは、与えられた演算対象データと上記の指定されたデータとの間で指示された演算を行う演算部を備え、所定のコマンドが与えられたとき、演算部によって生成されたデータを出力するものとする。   Preferably, the memory controller includes a calculation unit that performs a specified calculation between given calculation target data and the specified data, and is generated by the calculation unit when a predetermined command is given. The output data shall be output.

この発明によると、演算部によって、メモリ装置に格納されたデータに対する演算が行われるため、本来的に当該演算を行うべきCPUなどの負荷が軽減される。   According to the present invention, since the arithmetic unit performs an operation on the data stored in the memory device, the load on the CPU or the like that should perform the operation is reduced.

より好ましくは、演算部は、演算対象データと上記の指定されたデータとの間で指示された比較演算を行い、当該比較演算の結果に基づいて、上記のリードアクセスに係る行に属する所定ビット長のデータのそれぞれが所定の条件を満たしているか否かを示す情報を生成するものとする。   More preferably, the calculation unit performs a specified comparison operation between the calculation target data and the specified data, and based on a result of the comparison calculation, the predetermined bit belonging to the row related to the read access. Information indicating whether each piece of long data satisfies a predetermined condition is generated.

この発明によると、読み出し要のデータ量が多い場合であっても、リードアクセスに係る出力データは固定長となるため、出力データ量が削減される。これにより、メモリ装置のリードアクセスが高速化される According to the present invention, even when the amount of data that needs to be read is large, the output data related to read access has a fixed length, and thus the amount of output data is reduced. This speeds up the read access of the memory device .

また、本発明が講じた手段は、情報処理システムとして、上記のメモリコントローラと、上記の情報を生成し、上記のメモリコントローラに、当該生成した情報及びリードアクセスに係る行アドレスを伴う第1のリードリクエストコマンド、及びリードアクセスに係る行アドレス及び列アドレスを伴う第2のリードリクエストコマンドのいずれか一方を選択的に与える処理装置とを備えたものとする。そして、処理装置は、上記のリードアクセスに係る行における読み出し要のデータの粗密状態に応じて、第1及び第2のリードリクエストコマンドの選択を行うものとする。また、メモリコントローラは、処理装置から与えられた列アドレス及び上記の列アドレス生成部によって生成された列アドレスのいずれか一方を選択する列アドレスセレクタと、処理装置から与えられたコマンドに応じて、上記の列アドレスセレクタの選択動作を制御する制御部とをさらに有するものとする。   Further, according to the present invention, the information processing system generates the memory controller and the information as described above, and the memory controller includes the first information accompanied by the generated information and a row address related to the read access. And a processing device that selectively gives one of a read request command and a second read request command with a row address and a column address related to read access. Then, it is assumed that the processing device selects the first and second read request commands in accordance with the density state of the data to be read in the row related to the read access. In addition, the memory controller has a column address selector that selects one of the column address given from the processing device and the column address generated by the column address generation unit, and a command given from the processing device, And a control unit for controlling the selection operation of the column address selector.

好ましくは、上記のメモリコントローラは、与えられた演算対象データと上記のメモリ装置から出力されたデータとの間で、上記の処理装置によって指示された演算を行う演算部と、演算部から出力されたデータ及び上記のメモリ装置から出力されたデータのいずれか一方を選択的に出力する出力セレクタとを有するものとする。また、上記の制御部は、上記の処理装置から与えられたコマンドに応じて、上記の出力セレクタの選択動作を制御するものとする。   Preferably, the memory controller includes a calculation unit that performs a calculation instructed by the processing device between given calculation target data and data output from the memory device, and is output from the calculation unit. And an output selector for selectively outputting either the data output from the memory device or the data output from the memory device. In addition, the control unit controls the selection operation of the output selector according to a command given from the processing device.

より好ましくは、上記の処理装置は、上記の演算部に比較演算を指示するものとする。また、上記の演算部は、上記の演算対象データと上記のメモリ装置から出力されたデータとの間で上記の比較演算を行い、当該比較演算の結果に基づいて、上記のリードアクセスに係る行に属する所定ビット長のデータのそれぞれが所定の条件を満たしているか否かを示す情報を生成するものとする More preferably, the processing device instructs the arithmetic unit to perform a comparison operation. In addition, the arithmetic unit performs the comparison operation between the operation target data and the data output from the memory device, and performs a row related to the read access based on a result of the comparison operation. It is assumed that information indicating whether each of the data having a predetermined bit length belonging to the above satisfies a predetermined condition is generated .

以上のように本発明によると、メモリ装置からのデータ読み出しに関して、メモリコントローラに入力すべきデータ量及びメモリ装置から出力されるデータ量が削減される。これにより、特にメモリモジュールの多重化などを行うことなく、メモリ装置のリードアクセスが高速化される。   As described above, according to the present invention, regarding the data reading from the memory device, the data amount to be input to the memory controller and the data amount output from the memory device are reduced. This speeds up the read access of the memory device without particularly multiplexing the memory modules.

以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。   The best mode for carrying out the present invention will be described below with reference to the drawings.

(第1の実施形態)
図1は、本発明の第1の実施形態に係るメモリコントローラ及び一般的なDRAMからなるメモリシステムの構成の一部を示す。本実施形態に係るメモリコントローラ1Aは、格納部10、列アドレス生成部20、列アドレスセレクタ30、制御部40を備えている。なお、図1はリードアクセスの説明に必要となる構成要素のみを示している。
(First embodiment)
FIG. 1 shows a part of the configuration of a memory system including a memory controller and a general DRAM according to the first embodiment of the present invention. The memory controller 1A according to the present embodiment includes a storage unit 10, a column address generation unit 20, a column address selector 30, and a control unit 40. FIG. 1 shows only components necessary for explanation of read access.

格納部10は、リードアクセスに係る行に属する所定ビット長のデータのそれぞれの読み出し要否を示す情報であるビットマップBMinを受け、これを格納する。ビットマップBMinは、メモリセルアレイ110における一の行に属する所定ビット長のデータのそれぞれについて、読み出し要のものについてはビット“1”で、読み出し不要のものについてはビット“0”で表すようにするとよい。例えば、32ビットワード単位でデータ読み出しを行う場合、上記の所定ビット長は“32”であり、メモリセルアレイ110における一の行に4kバイト(=1024ワード)のデータが含まれるとすると、ビットマップBMinの情報量は1kビット(=32ワード)となる。   The storage unit 10 receives and stores a bitmap BMin that is information indicating whether or not each of data having a predetermined bit length belonging to a row related to read access is necessary. In the bit map BMin, for each piece of data having a predetermined bit length belonging to one row in the memory cell array 110, a bit that is required to be read is represented by bit "1", and a data that does not need to be read is represented by bit "0". Good. For example, when data is read in units of 32 bit words, the predetermined bit length is “32”, and if one row in the memory cell array 110 includes 4 kbytes (= 1024 words) of data, The amount of information of BMin is 1 kbit (= 32 words).

列アドレス生成部20は、格納部10に格納されたビットマップBMinを参照し、読み出し要のデータの列アドレスを生成する。具体的には、列アドレス生成部20は、ビットマップBMin中のビット“1”に対応するデータ(ワード)の列アドレスを生成する。   The column address generation unit 20 refers to the bitmap BMin stored in the storage unit 10 and generates a column address of data that needs to be read. Specifically, the column address generation unit 20 generates a column address of data (word) corresponding to the bit “1” in the bitmap BMin.

列アドレスセレクタ30は、図示しないCPUなどから与えられたアドレスADDR中の列アドレス、及び列アドレス生成部20によって生成された列アドレスのいずれか一方を選択し、この選択した列アドレスを列アドレスバッファ120に与える。なお、アドレスADDR中の行アドレスは行アドレスバッファ130に与えられ、列アドレスバッファ120及び行アドレスバッファ130にそれぞれ格納された列アドレス及び行アドレスは列デコーダ140及び行デコーダ150によってそれぞれデコードされ、所望のデータがセンスアンプ160によって増幅され、出力バッファ170からデータDoutとしてCPUなどに出力される。 The column address selector 30 selects one of a column address in an address ADDR given from a CPU (not shown) or the like, and a column address generated by the column address generation unit 20, and selects the selected column address C as a column address. Provide to buffer 120. The row address R in the address ADDR is given to the row address buffer 130, and the column address and the row address stored in the column address buffer 120 and the row address buffer 130 are decoded by the column decoder 140 and the row decoder 150, respectively. Desired data is amplified by the sense amplifier 160 and output from the output buffer 170 to the CPU or the like as data Dout.

制御部40は、列アドレス生成部20及び列アドレスセレクタ30を制御する。具体的には、制御部40は、CPUによって発行されたリードリクエストコマンドCMDがビットマップBMinによって指示されたデータを要求する命令であったとき、列アドレス生成部20に対して列アドレス生成を指示するとともに、列アドレスセレクタ30に対して列アドレス生成部20によって生成された列アドレスを選択するように指示する。なお、制御部40は、通常のリードリクエストコマンドを受けたときは、列アドレスセレクタ30に対してアドレスADDR中の列アドレスを選択するように指示する。   The control unit 40 controls the column address generation unit 20 and the column address selector 30. Specifically, the control unit 40 instructs the column address generation unit 20 to generate a column address when the read request command CMD issued by the CPU is an instruction requesting data specified by the bitmap BMin. At the same time, it instructs the column address selector 30 to select the column address generated by the column address generator 20. When receiving a normal read request command, the control unit 40 instructs the column address selector 30 to select a column address in the address ADDR.

次に、本発明に係るリードアクセス(以下、「ビットマップアクセス」という。)について図2のタイミングチャートを参照して説明する。まず、行アドレスRに対応する行がアクティブにされた後、列アドレス生成部20によって生成された列アドレスCa,Cb,Cc,Cd,Ce,CfがクロックCLKに同期して順に指定される。そして、これら列アドレスCa〜Cfに対応するデータDa,Db,Dc,Dd,De,DfがクロックCLKに同期して順に読み出される。このように、ビットマップアクセスでは列アドレスCa〜Cfはメモリコントローラ内部で生成されており、この点が従来のページモードによるメモリアクセスとは異なる。すなわち、ページモードでは、個々の列アドレスを指定するためにCPUからメモリコントローラにその都度列アドレスを与えるのに対して、ビットマップアクセスでは、メモリコントローラに行アドレス及びビットマップを一旦与えれば後はメモリコントローラが列アドレスを生成し、それを受けたDRAMが能動的に所望のデータを読み出してCPUに出力する。 Next, read access according to the present invention (hereinafter referred to as “bitmap access”) will be described with reference to the timing chart of FIG. First, after the row corresponding to the row address R is activated, the column addresses Ca, Cb, Cc, Cd, Ce , and Cf generated by the column address generation unit 20 are sequentially specified in synchronization with the clock CLK. Data Da, Db, Dc, Dd, De, and Df corresponding to these column addresses Ca to Cf are sequentially read in synchronization with the clock CLK. Thus, in the bitmap access, the column addresses Ca to Cf are generated inside the memory controller, and this point is different from the memory access in the conventional page mode. That is, in the page mode, a column address is given from the CPU to the memory controller every time in order to designate individual column addresses. In bitmap access, once a row address and a bitmap are given to the memory controller, The memory controller generates a column address, and the DRAM receiving it actively reads out desired data and outputs it to the CPU.

図3は、ビットマップアクセスを実現する上で好ましい情報処理システムの構成を示す。図3に示した情報処理システムは、本実施形態に係るメモリコントローラ1A及び処理装置としてのCPU2を備えている。   FIG. 3 shows a configuration of an information processing system preferable for realizing bitmap access. The information processing system shown in FIG. 3 includes a memory controller 1A according to the present embodiment and a CPU 2 as a processing device.

CPU2は、ビットマップアクセスを行う場合、ビットマップアクセス用のリードリクエストコマンドを発行するとともにメモリコントローラ1Aにリードアクセスに係る行アドレス及びビットマップを与える。通常、CPUにはキャッシュメモリが内蔵されており、キャッシュライン指向のリードアクセスが可能となっているが、CPU2は、さらに、メモリ装置100から出力されたデータを一時的に格納するためのFIFO(first-in first-out)3を備えている。FIFO3を備える理由は、ビットマップアクセスでは非連続データが読み出されることがあり、データの連続性を前提としたキャッシュメモリは適さないからである。FIFO3を備えることにより、CPU2は、キャッシュラインが充足されたか否かにかかわらず、メモリ装置100から読み出されたデータDoutを任意のタイミングで取り込むことができる。   When performing bitmap access, the CPU 2 issues a read request command for bitmap access and gives the memory controller 1A a row address and a bitmap related to the read access. Normally, the CPU has a built-in cache memory, and cache line-oriented read access is possible. However, the CPU 2 further includes a FIFO (temporarily storing a data output from the memory device 100). first-in first-out) 3. The reason why the FIFO 3 is provided is that non-continuous data may be read in bitmap access, and a cache memory that assumes data continuity is not suitable. By providing the FIFO 3, the CPU 2 can fetch the data Dout read from the memory device 100 at an arbitrary timing regardless of whether or not the cache line is satisfied.

なお、実際のCPUにおいてNウェイ構成となっているキャッシュメモリの一部をFIFOとして用いることにより、回路構成を大幅に変更することなく、また、回路規模を特に増大させることなくCPU内部にFIFOを実現することができる。また、特にFIFOを備えなくとも、ビットマップアクセスによって得られたデータに非連続性を示すビットを挿入するなどしてデータの非連続点を明確にすることでキャッシュメモリにより処理をすることも可能である。   In addition, by using a part of the cache memory having an N-way configuration in the actual CPU as a FIFO, it is possible to install the FIFO inside the CPU without significantly changing the circuit configuration and without particularly increasing the circuit scale. Can be realized. In addition, even without a FIFO, it is possible to perform processing by the cache memory by clarifying data discontinuity points by inserting bits indicating discontinuity into data obtained by bitmap access. It is.

ところで、ビットマップアクセスは、メモリ装置の非連続データの読み出し高速化という効果を奏するが、リードリクエストの際に比較的サイズの大きいビットマップをメモリ装置に与える点で、通常のメモリアクセスよりもオーバーヘッドが大きくなる。このため、メモリセルアレイにおける一の行に属するデータを数個程度読み出す場合には、ビットマップアクセスよりも通常のメモリアクセスの方が高速である。   By the way, the bit map access has the effect of speeding up the reading of the non-contiguous data in the memory device, but it is more overhead than the normal memory access in that a relatively large bit map is given to the memory device at the time of the read request. Becomes larger. Therefore, when reading several pieces of data belonging to one row in the memory cell array, normal memory access is faster than bitmap access.

図4は、通常アクセス及びビットマップアクセス(BMA)に係る所要時間を比較したグラフである。横軸pは、メモリセルアレイにおける一の行に属するデータ総数に対する読み出し要求に係るデータ総数の割合を示し、縦軸Tは、CPUの所要サイクル数を示す。上述したようにビットマップアクセスはオーバーヘッドが大きいため、pがゼロ近傍では通常アクセスよりも所要時間が大きくなる。しかし、リードリクエストコマンドの発行が1回で済むため、所要時間はpの増加に対して線形に増加する。一方、通常アクセスは、pがゼロ近傍ではビットマップアクセスよりも所要時間は少ないものの、読み出し要求に係るデータ量が増加するにつれCPUからのリードリクエスト数もまた増加する。したがって、所要時間はpの増加に対して急激に増加し、ある分岐点を越えるとビットマップアクセスよりも所要時間が大きくなる。そこで、リードアクセスの所要時間を最小化するためにも、図3において、CPU2は、リードアクセスに係る行における読み出し要のデータの粗密状態に応じて、リードリクエストコマンドを切り替えることが好ましい。具体的には、CPU2は、通常アクセスが有利と判断した場合には通常のリードリクエストコマンドを発行し、ビットマップアクセスが有利と判断した場合にはビットマップアクセスに係るリードリクエストコマンドを発行する。   FIG. 4 is a graph comparing time required for normal access and bitmap access (BMA). The horizontal axis p indicates the ratio of the total number of data related to the read request to the total number of data belonging to one row in the memory cell array, and the vertical axis T indicates the required number of cycles of the CPU. As described above, since bitmap access has a large overhead, when p is near zero, the required time is longer than that of normal access. However, since the read request command is issued only once, the required time increases linearly as p increases. On the other hand, normal access takes less time than bitmap access when p is near zero, but the number of read requests from the CPU also increases as the amount of data related to read requests increases. Therefore, the required time increases rapidly as p increases, and the required time becomes longer than bitmap access beyond a certain branch point. Therefore, in order to minimize the time required for read access, in FIG. 3, it is preferable that the CPU 2 switches the read request command in accordance with the density state of the data to be read in the row related to the read access. Specifically, the CPU 2 issues a normal read request command when it is determined that normal access is advantageous, and issues a read request command related to bitmap access when it is determined that bitmap access is advantageous.

なお、上記の分岐点は情報処理システムの構成によって異なるが、キャッシュ容量やビットマップ転送速度などから一意に特定することができる。また、読み出し要のデータが固定ストライドでアクセス可能である場合には、上述の固定ストライド転送方式によるリードアクセスを選択するようにしてもよい。   Note that the above branch point varies depending on the configuration of the information processing system, but can be uniquely identified from the cache capacity, the bitmap transfer speed, and the like. In addition, when the data to be read can be accessed with a fixed stride, read access by the above-described fixed stride transfer method may be selected.

(第2の実施形態)
図5は、本発明の第2の実施形態に係るメモリコントローラ及び一般的なDRAMからなるメモリシステムの構成の一部を示す。本実施形態に係るメモリシステム1Bは、図1のメモリコントローラ1Aに、さらに、演算部50及び出力セレクタ60を追加した構成となっている。なお、図5において図1と同じ構成要素については同じ符号を付している。
(Second Embodiment)
FIG. 5 shows a part of the configuration of a memory system including a memory controller and a general DRAM according to the second embodiment of the present invention. The memory system 1B according to the present embodiment has a configuration in which a calculation unit 50 and an output selector 60 are further added to the memory controller 1A of FIG. In FIG. 5, the same components as those in FIG. 1 are denoted by the same reference numerals.

演算部50は、図示しないCPUなどから与えられた演算対象データDopと、出力バッファ170から出力されたデータDoutとの間で、CPUなどから指示された演算子θで演算を行い、その演算結果としてのデータDout2を出力する。なお、演算部50で行う演算は、算術演算(例えば、加算、減算、除算、及び乗算など。)、論理演算(例えば、論理和、論理積、及び排他的論理和など。)、及び比較演算(例えば、“=”、“<”、“>”、“≦”、“≧”、“≠”など。)などのいずれであってもよい。   The calculation unit 50 performs calculation between the calculation target data Dop given from a CPU (not shown) and the data Dout output from the output buffer 170 using an operator θ instructed by the CPU or the like, and the calculation result As data Dout2. The operations performed by the operation unit 50 include arithmetic operations (for example, addition, subtraction, division, and multiplication), logical operations (for example, logical sum, logical product, and exclusive logical sum), and comparison operations. (For example, “=”, “<”, “>”, “≦”, “≧”, “≠”, etc.).

出力セレクタ60は、データDout及びデータDout2のいずれか一方を選択し、データDTとしてCPUなどに出力する。出力セレクタ60の選択動作は制御部40によって制御される。具体的には、制御部40は、ビットマップアクセスの場合には出力セレクタ60に対してデータDout2を選択するように指示する一方、通常のリードアクセスの場合にはデータDoutを選択するように指示する。   The output selector 60 selects one of the data Dout and the data Dout2, and outputs it as data DT to a CPU or the like. The selection operation of the output selector 60 is controlled by the control unit 40. Specifically, the control unit 40 instructs the output selector 60 to select the data Dout2 in the case of bitmap access, while instructing to select the data Dout in the case of normal read access. To do.

主記憶データベースなどにおける条件分岐処理を考えた場合、メモリ装置に格納されたデータ自体はさほど重要ではなく、比較演算の結果が得られればよいことが多い。そこで、特に、演算部50によって比較演算を行う場合について考える。この場合、演算部50は、演算対象データDopとデータDoutとを比較し、この比較の結果に基づいて、リードアクセスに係る行に属する所定ビット長のデータのそれぞれが所定の条件を満たしているか否かを示す情報であるビットマップ(以下、ビットマップBMinと区別するために「ビットマップBMout」という。)を生成する。かかる演算部50はコンパレータアレイで実現することができる。データDoutが所定の条件を満たしているか否かは、演算対象データDop及びデータDoutについて、演算子θで比較演算を行った結果として与えられる。例えば、演算子θとして“=”が指定された場合、演算対象データDopとデータDoutとが等しければビットマップBMout中の当該データDoutに対応するビットが例えば“1”となり、等しくなければ“0”となる。   When considering conditional branch processing in a main memory database or the like, the data itself stored in the memory device is not so important, and it is often sufficient to obtain the result of the comparison operation. Therefore, in particular, a case where a comparison operation is performed by the operation unit 50 will be considered. In this case, the operation unit 50 compares the operation target data Dop and the data Dout, and based on the result of the comparison, whether each of the data having a predetermined bit length belonging to the row related to the read access satisfies a predetermined condition. A bit map (hereinafter referred to as “bit map BMout” in order to distinguish it from the bit map BMin) is generated. Such a calculation unit 50 can be realized by a comparator array. Whether or not the data Dout satisfies a predetermined condition is given as a result of performing a comparison operation with the operator θ on the operation target data Dop and the data Dout. For example, when “=” is specified as the operator θ, the bit corresponding to the data Dout in the bitmap BMout is, for example, “1” if the operation target data Dop and the data Dout are equal, and “0” if they are not equal. "

ビットマップBMoutは、リードアクセスに係る行に属する所定ビット長のデータのそれぞれについて所定の条件が満たされているか否かを示すため、その情報量はビットマップBMinと同じである。例えば、32ビットワード単位でデータ読み出しを行う場合、上記の所定ビット長は“32”であり、メモリセルアレイ110における一の行に4kバイト(=1024ワード)のデータが含まれるとすると、ビットマップBMoutの情報量はビットマップBMinと同じ1kビット(=32ワード)となる。すなわち、ビットマップBMoutは、読み出し要のデータが多い場合でもその情報量は一定であり、出力データ量が削減される。   Since the bitmap BMout indicates whether or not a predetermined condition is satisfied for each of the data having a predetermined bit length belonging to the row related to the read access, the information amount thereof is the same as that of the bitmap BMin. For example, when data is read in units of 32 bit words, the predetermined bit length is “32”, and if one row in the memory cell array 110 includes 4 kbytes (= 1024 words) of data, The information amount of BMout is 1 k bits (= 32 words), which is the same as that of the bitmap BMin. That is, the amount of information in the bitmap BMout is constant even when there is a lot of data to be read, and the amount of output data is reduced.

以上、本実施形態によると、メモリ装置に格納されたデータに対する算術演算、論理演算、比較演算などの比較的単純な演算がメモリコントローラによって行われるため、CPUはこれら単純な演算を行う必要がなくなり、その分、他の処理に時間を割り当てることができる。特に、メモリコントローラによって比較演算を行い、ビットマップBMoutを出力することによって、比較演算の結果のみがCPUに伝達される。これにより、メモリ装置からCPUに比較演算のためだけに必要とされるデータが送られることがなくなり、その分、他のデータ転送にバス資源を充てることができる。すなわち、システム全体としてのパフォーマンスが向上する。   As described above, according to the present embodiment, since the memory controller performs relatively simple operations such as arithmetic operations, logical operations, and comparison operations on the data stored in the memory device, the CPU does not need to perform these simple operations. Therefore, time can be allocated to other processes. In particular, only the result of the comparison operation is transmitted to the CPU by performing the comparison operation by the memory controller and outputting the bitmap BMout. As a result, data required only for the comparison operation is not sent from the memory device to the CPU, and the bus resources can be used for other data transfers accordingly. That is, the performance of the entire system is improved.

図6は、本実施形態に係るメモリコントローラを備えた情報処理システムの構成を示す。図6の情報処理システムでは、FIFO3はメモリコントローラ1Bの内部に設けられている。このように、FIFO3は必ずしもCPU2の内部に設けなくてもよい。なお、CPU2は、FIFO3からデータDTを受けるようにしてもよいし、また、従来と同様にキャッシュラインにデータを取り込むようにしてもよい。 FIG. 6 shows a configuration of an information processing system including the memory controller according to the present embodiment. In the information processing system of FIG. 6, the FIFO 3 is provided inside the memory controller 1B. As described above, the FIFO 3 is not necessarily provided inside the CPU 2. Note that the CPU 2 may receive the data DT from the FIFO 3, or may fetch the data into the cache line as in the conventional case.

以上、本発明の実施の形態についてDRAMのメモリコントローラを例に説明したが、本発明はこれに限定されるものではない。すなわち、本発明に係るメモリコントローラ及びリードアクセス方法は、DRAMを代表とする半導体メモリ装置のみならず、磁気抵抗メモリ装置(MRAM)や強誘電体メモリ装置(FeRAM)などのおよそセルアレイ構造を有するメモリ装置一般に適用可能である。   As described above, the embodiment of the present invention has been described by taking the DRAM memory controller as an example, but the present invention is not limited to this. That is, the memory controller and the read access method according to the present invention include not only a semiconductor memory device represented by a DRAM but also a memory having an approximately cell array structure such as a magnetoresistive memory device (MRAM) and a ferroelectric memory device (FeRAM). Applicable to devices in general.

本発明に係るメモリコントローラ及び情報処理システムは、高速なリードアクセスが可能なため、主記憶データベース、大規模数値演算、ストリームデータ処理などの応用分野に有用である。   Since the memory controller and the information processing system according to the present invention enable high-speed read access, they are useful in application fields such as a main memory database, large-scale numerical calculation, and stream data processing.

第1の実施形態に係るメモリコントローラを備えたメモリシステムの構成図である。1 is a configuration diagram of a memory system including a memory controller according to a first embodiment. 図1のメモリコントローラによるリードアクセスに係るタイミングチャートである。3 is a timing chart relating to read access by the memory controller of FIG. 1. 図1のメモリコントローラを備えた情報処理システムの構成図である。It is a block diagram of the information processing system provided with the memory controller of FIG. 通常アクセス及びビットマップアクセスに係る所要時間を比較したグラフである。It is the graph which compared the required time concerning normal access and bitmap access. 第2の実施形態に係るメモリコントローラを備えたメモリシステムの構成図である。It is a block diagram of the memory system provided with the memory controller which concerns on 2nd Embodiment. 図4のメモリコントローラを備えた情報処理システムの構成図である。It is a block diagram of the information processing system provided with the memory controller of FIG.

1A,1B メモリコントローラ
2 CPU(処理装置)
3 FIFO
10 格納部
20 列アドレス生成部
30 列アドレスセレクタ
40 制御部
50 演算部
60 出力セレクタ
1A, 1B Memory controller 2 CPU (Processor)
3 FIFO
DESCRIPTION OF SYMBOLS 10 Storage part 20 Column address generation part 30 Column address selector 40 Control part 50 Calculation part 60 Output selector

Claims (3)

リードアクセスに係る行に属する所定ビット長のデータのそれぞれについての読み出し要否を示す情報を受け、当該情報を格納する格納部と、前記格納部に格納された情報を参照し、読み出し要のデータの列アドレスを生成する列アドレス生成部とを有し、メモリ装置に対して、前記リードアクセスに係る行アドレス及び前記生成された列アドレスで指定されるデータの出力制御を行うメモリコントローラと、
前記情報を生成し、前記メモリコントローラに、当該生成した情報及びリードアクセスに係る行アドレスを伴う第1のリードリクエストコマンド、及びリードアクセスに係る行アドレス及び列アドレスを伴う第2のリードリクエストコマンドのいずれか一方を選択的に与える処理装置とを備え、
前記処理装置は、前記リードアクセスに係る行における読み出し要のデータの粗密状態に応じて、前記第1及び第2のリードリクエストコマンドの選択を行うものであり、
前記メモリコントローラは、
前記処理装置から与えられた列アドレス及び前記列アドレス生成部によって生成された列アドレスのいずれか一方を選択する列アドレスセレクタと、
前記処理装置から与えられたコマンドに応じて、前記列アドレスセレクタの選択動作を制御する制御部とを有するものである
ことを特徴とする情報処理システム。
Receives information indicating whether or not each piece of data having a predetermined bit length belonging to a row related to read access is necessary, and refers to the information stored in the storage unit that stores the information and the data that needs to be read. A memory controller that controls the output of data specified by the row address related to the read access and the generated column address ;
The information is generated, and the memory controller receives a first read request command with the generated information and a row address related to read access, and a second read request command with a row address and column address related to read access. A processing device that selectively gives one of them,
The processing device performs selection of the first and second read request commands in accordance with a density state of data to be read in a row related to the read access.
The memory controller is
A column address selector for selecting either a column address given from the processing device or a column address generated by the column address generation unit;
An information processing system comprising: a control unit that controls a selection operation of the column address selector according to a command given from the processing device.
請求項に記載の情報処理システムにおいて、
前記メモリコントローラは、
与えられた演算対象データと前記メモリ装置から出力されたデータとの間で、前記処理装置によって指示された演算を行う演算部と、
前記演算部から出力されたデータ及び前記メモリ装置から出力されたデータのいずれか一方を選択的に出力する出力セレクタとを有するものであり、
前記制御部は、前記処理装置から与えられたコマンドに応じて、前記出力セレクタの選択動作を制御するものである
ことを特徴とする情報処理システム。
In the information processing system according to claim 1,
The memory controller is
A calculation unit that performs a calculation instructed by the processing device between given calculation target data and data output from the memory device;
An output selector that selectively outputs any one of the data output from the arithmetic unit and the data output from the memory device;
The information processing system, wherein the control unit controls a selection operation of the output selector in accordance with a command given from the processing device.
請求項に記載の情報処理システムにおいて、
前記処理装置は、前記演算部に比較演算を指示するものであり、
前記演算部は、前記演算対象データと前記メモリ装置から出力されたデータとの間で前記比較演算を行い、当該比較演算の結果に基づいて、前記リードアクセスに係る行に属する所定ビット長のデータのそれぞれが所定の条件を満たしているか否かを示す情報を生成するものである
ことを特徴とする情報処理システム。
In the information processing system according to claim 2,
The processing device instructs the arithmetic unit to perform a comparison operation,
The operation unit performs the comparison operation between the operation target data and the data output from the memory device, and based on a result of the comparison operation, data having a predetermined bit length belonging to the row related to the read access An information processing system for generating information indicating whether or not each satisfies a predetermined condition.
JP2005171073A 2005-06-10 2005-06-10 Information processing system with memory controller Active JP4769936B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005171073A JP4769936B2 (en) 2005-06-10 2005-06-10 Information processing system with memory controller
PCT/JP2006/311628 WO2006132365A1 (en) 2005-06-10 2006-06-09 Memory controller, information processing system, and read access method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005171073A JP4769936B2 (en) 2005-06-10 2005-06-10 Information processing system with memory controller

Publications (2)

Publication Number Publication Date
JP2006344139A JP2006344139A (en) 2006-12-21
JP4769936B2 true JP4769936B2 (en) 2011-09-07

Family

ID=37498559

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005171073A Active JP4769936B2 (en) 2005-06-10 2005-06-10 Information processing system with memory controller

Country Status (2)

Country Link
JP (1) JP4769936B2 (en)
WO (1) WO2006132365A1 (en)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58192154A (en) * 1982-05-07 1983-11-09 Casio Comput Co Ltd Memory device having automatic data processing function
JPS63144496A (en) * 1986-12-05 1988-06-16 Fujitsu Ltd Write control system for storage device
JPH02133854A (en) * 1988-11-14 1990-05-23 Nec Corp Dma controller capable of access to transfer enable/ unable memory
JPH06332851A (en) * 1993-05-25 1994-12-02 Hitachi Ltd Data transfer system
JPH09306179A (en) * 1996-05-15 1997-11-28 Kokusai Electric Co Ltd Associative memory
JP2003316726A (en) * 2002-04-25 2003-11-07 Nanao Corp Data transfer method and device therefor, and image display device used for it
US20050050237A1 (en) * 2003-08-28 2005-03-03 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules

Also Published As

Publication number Publication date
WO2006132365A1 (en) 2006-12-14
JP2006344139A (en) 2006-12-21

Similar Documents

Publication Publication Date Title
US7707328B2 (en) Memory access control circuit
US10672445B2 (en) Memory device including local support for target data searching and methods of operating the same
JP2005535038A (en) Memory hub with internal row caching and access method.
US6128244A (en) Method and apparatus for accessing one of a plurality of memory units within an electronic memory device
JPWO2006051780A1 (en) Nonvolatile memory device and method of accessing nonvolatile memory device
US20060215481A1 (en) System and method for re-ordering memory references for access to memory
US20230023866A1 (en) Shared multi-port memory from single port
KR101645003B1 (en) memory controller and computing apparatus incorporating the memory controller
JP4769936B2 (en) Information processing system with memory controller
CN114116533B (en) Method for storing data by using shared memory
JP4234829B2 (en) Memory control device
US7075546B2 (en) Intelligent wait methodology
US20100211704A1 (en) Data Processing Apparatus
US7664919B2 (en) Cache system
US6772271B2 (en) Reduction of bank switching instructions in main memory of data processing apparatus having main memory and plural memory
JP4969811B2 (en) Information processing system and memory control device
KR100334298B1 (en) Memory device
JP2008269348A (en) Memory control device and memory control method
JP7346883B2 (en) Vector processor device and generation method
JP5546356B2 (en) Memory device and signal processing device
KR20190029270A (en) Processing in memory device with multiple cache and memory accessing method thereof
JP2010061498A (en) Memory control device, semiconductor test apparatus and memory control method
JP5393626B2 (en) Information processing device
JP2972568B2 (en) Bus extender
JP5035608B2 (en) Data reading device

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20050613

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050613

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110425

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110524

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150