JP2002288037A - Memory control device and method - Google Patents
Memory control device and methodInfo
- Publication number
- JP2002288037A JP2002288037A JP2001089303A JP2001089303A JP2002288037A JP 2002288037 A JP2002288037 A JP 2002288037A JP 2001089303 A JP2001089303 A JP 2001089303A JP 2001089303 A JP2001089303 A JP 2001089303A JP 2002288037 A JP2002288037 A JP 2002288037A
- Authority
- JP
- Japan
- Prior art keywords
- command
- bank
- request
- memory control
- banks
- 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.)
- Pending
Links
Abstract
Description
【0001】[0001]
【発明の属する技術分野】この発明は、コンピュータの
主記憶メモリや画像処理プロセッサに用いられるSDR
AMを制御するのに用いて好適なメモリ制御装置及び方
法に関する。The present invention relates to an SDR used in a main memory of a computer or an image processor.
The present invention relates to a memory control device and method suitable for controlling AM.
【0002】[0002]
【従来の技術】近年、コンピュータの主記憶メモリや、
画像処理プロセッサのメモリとして、SDRAM(Sync
hronous Dynamic Random Access Memory)が広く用いら
れるようになってきている。SDRAMは、クロックに
同期した連続的なデータ転送が可能であり、バースト転
送を指定すると、指定したバイト数分のデータ転送を1
クロック単位で連続して行うことができる。また、SD
RAM内の記憶領域は、複数のバンクに分割した構成と
されている。このようにバンクを分割すると、バンク毎
に切り換えてバースト転送を行うことで、異なるページ
をアクセスする際に必要となるプリチャージ動作を隠蔽
することが可能になり、転送レートを向上することがで
きる。2. Description of the Related Art In recent years, a main storage memory of a computer,
SDRAM (Sync
hronous Dynamic Random Access Memory) has been widely used. The SDRAM is capable of continuous data transfer synchronized with a clock. When burst transfer is specified, data transfer for the specified number of bytes is performed by one.
It can be performed continuously in clock units. Also, SD
The storage area in the RAM is divided into a plurality of banks. When the banks are divided in this manner, by performing burst transfer by switching for each bank, it is possible to conceal a precharge operation required when accessing different pages, and to improve a transfer rate. .
【0003】図6は、従来のSDRAMのメモリコント
ローラの構成を示すブロック図である。図6において、
メモリコントローラ101は、リクエスト処理回路11
1と、コマンド生成回路112と、コマンド出力回路1
13と、データ制御回路114とからなる。FIG. 6 is a block diagram showing a configuration of a memory controller of a conventional SDRAM. In FIG.
The memory controller 101 includes a request processing circuit 11
1, the command generation circuit 112, and the command output circuit 1
13 and a data control circuit 114.
【0004】リクエスト処理回路111に、メモリ対す
る処理を行うための要求が与えられる。リクエスト処理
回路111は、この要求を保持し、この要求をコマンド
生成回路112に対して出力する。コマンド生成回路1
12は、この要求に対するコマンドを生成する。このコ
マンドは、ある要求に対するバンクアクティブ、リード
/ライト、プリチャージのコマンドセットからなる。コ
マンド生成回路112で生成されたコマンドは、コマン
ド出力回路113から出力され、SDRAM102に与
えられる。データ制御回路114は、クロックに同期し
てSDRAM102からデータの読み出し/書き込みを
行う制御を行なう。[0004] A request for performing processing on a memory is given to a request processing circuit 111. The request processing circuit 111 holds the request and outputs the request to the command generation circuit 112. Command generation circuit 1
12 generates a command for this request. This command comprises a command set of bank active, read / write, and precharge for a certain request. The command generated by the command generation circuit 112 is output from the command output circuit 113 and provided to the SDRAM 102. The data control circuit 114 performs control for reading / writing data from / to the SDRAM 102 in synchronization with a clock.
【0005】[0005]
【発明が解決しようとする課題】SDRAMでは、各バ
ンクは独立しており、各バンクに対して独立にコマンド
を発行することができる。また、このような複数バンク
構成のSDRAMでは、データ線は各バンクで共有する
ため、リード/ライト動作を同時に行うことができない
が、アクティブコマンドの発行からリード/ライト期
間、及びそれからプリチャージコマンド発行までの間に
発生するデータアクセスのないクロックサイクルでは、
他のバンクに対するアクセスを同時に行うことができ
る。In the SDRAM, each bank is independent, and a command can be issued to each bank independently. In such an SDRAM having a plurality of banks, the data lines are shared by the banks, so that the read / write operation cannot be performed at the same time. In a clock cycle without data access that occurs between
Access to other banks can be performed simultaneously.
【0006】そこで、このようなデータアクセスのない
クロックサイクルに、別のバンクをアクセスし、バンク
が切り換えられたときのアクセス効率を上げることが考
えられる。Therefore, it is conceivable that another bank is accessed in such a clock cycle without data access to increase the access efficiency when the bank is switched.
【0007】つまり、SDRAMでは、バンクにアクテ
ィブコマンドを送り、リード/ライトのコマンドを送っ
た後に、データのリード/ライトが行われる。アクティ
ブコマンドを送った後にリード/ライトコマンドが送れ
るようになるまで、及び、リード/ライトコマンドを送
った後に実際にデータがリード/ライトされまで、待ち
時間が必要である。したがって、そのバンクでデータの
やり取りがなされていないクロックサイクルで、他のバ
ンクにアクティブコマンドを送っておけば、他のバンク
に切り換えられたときに、待ち時間がなくなり、即座に
データがリード/ライトできる。That is, in the SDRAM, an active command is sent to a bank, and a read / write command is sent, and then data is read / written. A waiting time is required until a read / write command can be sent after sending an active command, and until data is actually read / written after sending a read / write command. Therefore, if an active command is sent to another bank in a clock cycle in which data is not exchanged in that bank, there is no waiting time when switching to another bank, and data is immediately read / written. it can.
【0008】ところが、上述の従来のSDRAMのコン
トローラでは、要求毎に順次コマンドセットを発行する
ようにしている。このため、1つのバンクに対するバン
クアクティブ、リード/ライト、プリチャージからなる
コマンドセットが発行された後でないと、他のバンクに
対するコマンドセットが発行できない。このため、その
バンクでデータのやり取りがなされていないクロックサ
イクルで、他のバンクをアクセスして、アクセス効率を
上げるようにすることは困難である。However, in the above-mentioned conventional SDRAM controller, a command set is issued sequentially for each request. Therefore, a command set for another bank cannot be issued until a command set including bank active, read / write, and precharge for one bank is issued. For this reason, it is difficult to access another bank in a clock cycle in which data is not exchanged in that bank to improve access efficiency.
【0009】すなわち、図7は、上述の従来のメモリコ
ントローラ101でのコマンド発行アルゴリズムを示す
フローチャートである。図7において、アイドリング状
態から(ステップS101)、アクセス要求があるか否
かが判断され(ステップS102)、アクセス要求があ
ったら、アクティブコマンドが発行される(ステップS
103)。そして、リード/ライトコマンドが発行可能
になるまで(ステップS105)、ウェイトされ(ステ
ップS104)、リード/ライトコマンドが発行可能に
なったら、リード/ライトコマンドが発行される(ステ
ップS106)。そして、データの読み出しが終了する
まで(ステップS108)、ウェイトされ(ステップS
107)、バーストアクセスが終了するまで(ステップ
S109)、リード/ライトコマンドの発行(ステップ
S106)、ウェイト(ステップS107)、データの
読み出し終了の判断が行われる(ステップS108)。
ステップS109でバーストアクセスが終了したと判断
されたら、ステップS106で、さらに、リード/ライ
トコマンドが発行される。ステップS108で、データ
の読み出しが終了したら、プリチャージか可能になるま
で(ステップS110)、ウェイトされ(ステップS1
11)、プリチャージが可能になったら、プリチャージ
が実行される(ステップS112)。FIG. 7 is a flowchart showing a command issuing algorithm in the conventional memory controller 101 described above. In FIG. 7, from the idling state (step S101), it is determined whether or not there is an access request (step S102). If there is an access request, an active command is issued (step S101).
103). The process waits until a read / write command can be issued (step S105). When the read / write command can be issued, a read / write command is issued (step S106). Until the data reading is completed (step S108), the wait is performed (step S108).
107) Until the burst access ends (step S109), a read / write command issuance (step S106), a wait (step S107), and determination of the end of data reading are performed (step S108).
If it is determined in step S109 that the burst access has been completed, a read / write command is issued in step S106. When the data reading is completed in step S108, a wait is performed (step S1) until precharging becomes possible (step S110).
11) When precharge becomes possible, precharge is executed (step S112).
【0010】例えば、SDRAMのバンクAへのリード
の要求と、バンクBへのリードの要求が起こったとす
る。この場合、従来のメモリコントローラ101では、
図8に示すように、バンクAに対するバンクアクティ
ブ、リード/ライト、プリチャージからなるコマンドセ
ットが発行された後に、バンクBに対するバンクアクテ
ィブ、リード/ライト、プリチャージからなるコマンド
セットが発行される。For example, it is assumed that a read request to bank A of the SDRAM and a read request to bank B occur. In this case, in the conventional memory controller 101,
As shown in FIG. 8, after a command set including bank active, read / write, and precharge is issued to bank A, a command set including bank active, read / write, and precharge is issued to bank B.
【0011】すなわち、図8は、従来のメモリコントロ
ーラ101で、バンクAへのリードの要求と、バンクB
へのリードの要求が起こったときの動作を示すものであ
る。なお、CASレイテンシーは「2」、バースト長は
「2」とする。FIG. 8 shows a conventional memory controller 101 in which a read request to bank A and a bank B
This is an operation when a request to read data is issued. Note that the CAS latency is “2” and the burst length is “2”.
【0012】図8において、クロックサイクル「1」
で、バンクAに対するバンクアクティブコマンドが発行
される。クロックサイクル「2」がウェイトとなり、ク
ロックサイクル「3」で、バンクAのリードコマンドが
発行される。クロックサイクル「4」がウェイトとな
り、クロックサイクル「5」で、バンクAに対するリー
ドコマンドが発行される。クロックサイクル「6」がウ
ェイトとなり、クロックサイクル「7」でバンクAに対
するプリチャージコマンドが発行される。In FIG. 8, clock cycle "1"
Then, a bank active command for bank A is issued. The clock cycle “2” becomes a wait, and the read command of the bank A is issued in the clock cycle “3”. Clock cycle “4” becomes a wait, and a read command for bank A is issued in clock cycle “5”. Clock cycle “6” becomes a wait, and a precharge command for bank A is issued in clock cycle “7”.
【0013】このようにして、バンクAに対するバンク
アクティブ、リード、プリチャージのコマンドセットが
発行された後のサイクルから、バンクBに対するコマン
ドセットが発行される。As described above, the command set for the bank B is issued from the cycle after the command set for the bank active, read, and precharge for the bank A is issued.
【0014】クロックサイクル「8」で、バンクBに対
するアクティブコマンドが発行される。クロックサイク
ル「9」がウェイトとなり、クロックサイクル「10」
でバンクBに対するアクティブコマンドが発行される。
クロックサイクル「11」がウェイトとなり、クロック
サイクル「12」で、バンクBに対するプリチャージコ
マンドが発行される。At clock cycle "8", an active command for bank B is issued. Clock cycle "9" becomes a wait, and clock cycle "10"
Issues an active command to bank B.
A clock cycle “11” becomes a wait, and a precharge command for bank B is issued in clock cycle “12”.
【0015】このように、従来のメモリコントローラで
は、バンクAに対するコマンドセットを発行してから、
バンクBに対するコマンドセットを発行していたため、
バンクAに対するリードとバンクBに対するリードを行
う処理に12クロックサイクル要する。As described above, in the conventional memory controller, after issuing the command set for bank A,
Since the command set for bank B was issued,
It takes 12 clock cycles to perform a read operation on bank A and a read operation on bank B.
【0016】ここで、クロックサイクル「1」でバンク
Aのアクティブコマンドを発行してから、クロックサイ
クル「3」又はクロックサイクル「5」でリードコマン
ドを発行するまでの期間、及びクロックサイクル「7」
でプリチャージコマンドを発行する間では、他方のバン
クBに対するアクセスを同時に行うことができる。この
間に、バンクBにアクティブコマンドを与えておけば、
バンクAのデータの読み出しを行った後に、直ちに、バ
ンクBのデータを読み出すことができる。Here, a period from issuing the active command of bank A in clock cycle "1" to issuing a read command in clock cycle "3" or clock cycle "5", and clock cycle "7"
, The access to the other bank B can be performed at the same time. During this time, if an active command is given to bank B,
Immediately after reading the data in bank A, the data in bank B can be read.
【0017】ところが、上述のように、従来のメモリコ
ントローラでは、各バンクに順次バンクアクティブ、リ
ード/ライト、プリチャージからなるコマンドセットを
与える構成とされており、アクティブからリード/ライ
トまでの間及びプリチャージ発行の間のデータのやり取
りがなされていないクロックサイクルで、別のバンクを
アクセスして、アクセス効率を上げることができないと
いう問題がある。However, as described above, in the conventional memory controller, a command set consisting of bank active, read / write, and precharge is sequentially applied to each bank. There is a problem that access efficiency cannot be improved by accessing another bank in a clock cycle in which data is not exchanged during issuance of the precharge.
【0018】したがって、この発明の目的は、複数のバ
ンクからなるSDRAMを制御するメモリ制御装置及び
方法において、そのバンクでデータのやり取りがなされ
ていないクロックサイクルに別のバンクにアクセスを移
し、バンクを切り換えたときのアクセス効率を上げるこ
とができるようにしたメモリ制御装置及び方法を提供す
ることにある。Accordingly, an object of the present invention is to provide a memory control device and method for controlling an SDRAM comprising a plurality of banks, by shifting access to another bank in a clock cycle in which data is not exchanged in that bank, and An object of the present invention is to provide a memory control device and a memory control method capable of improving access efficiency at the time of switching.
【0019】[0019]
【課題を解決するための手段】この発明は、複数のバン
クから構成され、クロックを使用してデータを読み書き
を行う同期型メモリを制御するメモリ制御装置であっ
て、入力された要求を上記複数のバンク毎に分配するリ
クエスト分配手段と、上記要求に基づいて上記複数のバ
ンク毎のコマンドを生成する複数のコマンド生成手段
と、上記複数のコマンド生成手段で生成されたコマンド
を選択し、上記同期型メモリに供給するコマンド選択手
段とを備え、上記コマンド選択手段は、バンクのデータ
アクセスがない期間に、他のバンクのコマンドを優先さ
せるようにしたことを特徴とするメモリ制御装置であ
る。SUMMARY OF THE INVENTION The present invention is a memory control device for controlling a synchronous memory which comprises a plurality of banks and reads and writes data by using a clock. Request distributing means for distributing each of the banks, a plurality of command generating means for generating a command for each of the plurality of banks based on the request, and a command generated by the plurality of command generating means are selected. A command selection unit for supplying a command to the pattern memory, wherein the command selection unit is configured to prioritize a command of another bank during a period in which no data access of the bank is performed.
【0020】この発明は、複数のバンクから構成され、
クロックを使用してデータを読み書きを行う同期型メモ
リを制御するメモリ制御方法であって、入力された要求
を上記複数のバンク毎に分配し、上記要求に基づいて上
記複数のバンク毎のコマンドを生成し、上記生成された
コマンドを選択して、上記同期型メモリに供給し、上記
選択は、バンクのデータアクセスがない期間に、他のバ
ンクのコマンドを優先させるようにしたメモリ制御方法
である。The present invention comprises a plurality of banks,
A memory control method for controlling a synchronous memory that reads and writes data by using a clock, wherein an input request is distributed to each of the plurality of banks, and a command for each of the plurality of banks is transmitted based on the request. A memory control method for generating, selecting the generated command, and supplying the selected command to the synchronous memory, wherein the selection is made to prioritize a command of another bank during a period in which there is no data access of the bank. .
【0021】入力された要求が各バンク毎の要求とに分
けられ、各バンク毎のコマンド生成回路により、各バン
ク毎にコマンドが生成される。そして、現在のバンクで
データのやり取りがなされていない期間に、現在のバン
クのプリチャージコマンドが先送りされ、他のバンクの
アクセスコマントが優先される。これにより、バンクを
切り換えたときのウェイトがなくなり、アクセスが効率
的に行われる。The input request is divided into a request for each bank and a command is generated for each bank by a command generation circuit for each bank. Then, during a period in which no data is exchanged in the current bank, the precharge command of the current bank is postponed, and the access command of another bank is given priority. As a result, there is no wait when switching banks, and access is performed efficiently.
【0022】[0022]
【発明の実施の形態】以下、この発明の実施の形態につ
いて図面を参照して説明する。図1は、この発明の一実
施の形態を示すものである。図1において、1はメモリ
コントローラ、2はSDRAMである。SDRAM2
は、図2に示すように、2つのバンクA、バンクBを有
する。メモリコントローラ1は、このような2つのバン
クA、BからなるSDRAM2の制御を行うものであ
る。SDRAMは、バースト転送を指定すると、指定し
たワード線分のデータ転送を1クロックサイクルで行う
ことができる。Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 shows an embodiment of the present invention. In FIG. 1, 1 is a memory controller, and 2 is an SDRAM. SDRAM2
Has two banks A and B as shown in FIG. The memory controller 1 controls the SDRAM 2 including the two banks A and B. When a burst transfer is designated, the SDRAM can perform data transfer for the designated word line in one clock cycle.
【0023】図1において、この発明が適用されたメモ
リコントローラ1は、リクエスト分配回路11と、コマ
ンド生成回路12A及び12Bと、コマンド選択回路1
3と、データ制御回路14とからなる。In FIG. 1, a memory controller 1 to which the present invention is applied includes a request distribution circuit 11, command generation circuits 12A and 12B, and a command selection circuit 1.
3 and a data control circuit 14.
【0024】リクエスト分配回路11には、メモリに対
する処理を行うための要求が与えられる。この要求に
は、バンクAに対する要求と、バンクBに対する要求と
がある。リクエスト分配回路11は、与えられた要求
を、バンクAに対する要求とバンクBに対する要求とに
分け、バンクAに対する要求は、コマンド生成回路12
Aに供給し、コマンドBに対する要求はコマンド生成回
路12Bに供給している。The request distribution circuit 11 is provided with a request for performing processing on the memory. This request includes a request for bank A and a request for bank B. The request distribution circuit 11 divides the given request into a request for bank A and a request for bank B.
A, and the request for the command B is supplied to the command generation circuit 12B.
【0025】コマンド生成回路12Aは、SDRAM2
のバンクAの要求に対するコマンドを生成している。コ
マンド生成回路12Bは、SDRAM2のバンクBの要
求に対するコマンドを生成している。The command generation circuit 12A is connected to the SDRAM 2
In response to the request from the bank A of the first bank. The command generation circuit 12B generates a command corresponding to a request from the bank B of the SDRAM 2.
【0026】コマンドには、アクティブ、リード/ライ
ト、プリチャージがある。アクティブコマンドは、選択
したメモリセルに対応するワード線に所定のパルス電圧
(ワード線を活性化させる)ことを指示するコマンドで
ある。リードコマンドは、選択されたメモリセルのデー
タ線の電位から記憶データを読み取ることを指示するコ
マンドである。ライトコマンドは、選択されたメモリセ
ルのデータ線に、書き込むデータに応じた電位を印加す
ることを指示するコマンドである。プリチャージコマン
ドは、SDRAM2内のアクセスを行うメモリセルに対
応するデータ線を所定の電位に設定することを指示する
コマンドである。Commands include active, read / write, and precharge. The active command is a command for instructing a word line corresponding to the selected memory cell to apply a predetermined pulse voltage (to activate the word line). The read command is a command for instructing reading of stored data from the potential of the data line of the selected memory cell. The write command is a command for instructing to apply a potential according to data to be written to the data line of the selected memory cell. The precharge command is a command for instructing to set a data line corresponding to a memory cell to be accessed in the SDRAM 2 to a predetermined potential.
【0027】コマンド生成回路12A及びコマンド生成
回路12Bからのコマンドがコマンド選択回路13に供
給される。コマンド選択回路13は、SDRAM2のア
クセスが効率的に行われるように、バンクAに対するコ
マンドとバンクBに対するコマンドとを選択して、SD
RAM2に送っている。The commands from the command generation circuits 12A and 12B are supplied to the command selection circuit 13. The command selection circuit 13 selects a command for the bank A and a command for the bank B so that the SDRAM 2 can be accessed efficiently, and
It is sent to RAM2.
【0028】すなわち、アクティブコマンドの発行から
リード/ライト期間、及びプリチャージコマンド発行の
期間において、データのやり取りがなされていないクロ
ックサイクルでは、別のバンクをアクセスすることがで
きる。そこで、例えば、バンクAに対するアクセスを行
っている間において、データのやり取りがなされていな
いクロックサイクルで、バンクBに対するコマンドのう
ちアクティブコマンドを優先して出し、プリチャージコ
マンドを先送りするようにする。このようにすると、バ
ンクAからバンクBにアクセスが移ったときに、バンク
Bのリード/ライトを直ちに行うことができ、効率的に
アクセスが行える。That is, another bank can be accessed in a clock cycle in which no data is exchanged during the period from the issuance of the active command to the read / write period and the period of issuance of the precharge command. Therefore, for example, during access to the bank A, an active command among commands to the bank B is preferentially issued in a clock cycle in which no data is exchanged, and a precharge command is postponed. In this way, when access is transferred from bank A to bank B, read / write of bank B can be performed immediately, and efficient access can be performed.
【0029】コマンド選択回路13は、このように、現
在のバンクでデータのやり取りがなされていないクロッ
クサイクルに、他のバンクでアクティブコマンドの発行
があればそれを優先し、プリチャージコマンドは先送り
にして、バンクが切り換えられたときのアクセスが効率
的に行えるようにしている。As described above, the command selection circuit 13 gives priority to the issuance of an active command if another bank issues an active command in a clock cycle in which data is not exchanged in the current bank. Thus, access when a bank is switched can be performed efficiently.
【0030】データ制御回路14は、クロックに同期し
てSDRAM2からデータの読み出し/書き込みを行う
制御を行っている。The data control circuit 14 controls reading and writing of data from the SDRAM 2 in synchronization with a clock.
【0031】このように、この発明の実施の形態では、
リクエスト分配回路11により、メモリコントローラ1
に入力された要求がバンクAに対する要求とバンクBに
対する要求とに分けられ、コマンド生成回路12A及び
12Bで、各バンク毎にコマンドが生成される。そし
て、コマンド選択回路13で、SDRAM2のアクセス
が効率的に行われるように、現在のバンクでデータのや
り取りがなされていないクロックサイクルに、他のバン
クでアクティブコマンドの発行があればそれを優先し、
プリチャージコマンドは先送りにしている。As described above, in the embodiment of the present invention,
The request distribution circuit 11 allows the memory controller 1
Are divided into a request for bank A and a request for bank B, and the command generation circuits 12A and 12B generate a command for each bank. In the clock cycle in which data is not exchanged in the current bank, if an active command is issued in another bank, the command selection circuit 13 gives priority to the SDRAM 2 so that the SDRAM 2 is accessed efficiently. ,
The precharge command is postponed.
【0032】図3は、コマンド選択回路13のコマンド
選択アルゴリズムの一例を示すものである。図3におい
て、現在アクセス中のバンクのコマンドが実行される
(ステップS1)。そして、次のコマンドがあるか否か
が判断される(ステップS2)。次のコマンドがあった
ら、次のコマンドがプリチャージコマンドであるか否か
が判断され(ステップS3)、プリチャージコマンドで
なければ、ステップS1に戻り、現在のバンクのコマン
ドが引き続き実行される。FIG. 3 shows an example of a command selection algorithm of the command selection circuit 13. In FIG. 3, the command of the currently accessed bank is executed (step S1). Then, it is determined whether there is a next command (step S2). If there is a next command, it is determined whether or not the next command is a precharge command (step S3). If not, the process returns to step S1 and the command of the current bank is continuously executed.
【0033】ステップS3で、プリチャージコマンドで
あると判断されたら、プリチャージコマンドは先送りさ
れるため、次のバンクに移り(ステップS4)、ステッ
プS1に戻り、次のバンクのコマンドが実行される。If it is determined in step S3 that the command is a precharge command, the precharge command is postponed, so that the process moves to the next bank (step S4), returns to step S1, and executes the command of the next bank. .
【0034】ステップS2で、次のコマンドがなけれ
ば、他のバンクのアクティブコマンドがあるか否かが判
断される(ステップS5)。他のバンクのアクティブコ
マンドがあれば、他のバンクのアクティブコマンドが優
先して発行され(ステップS6)、ステップS2に戻
る。In step S2, if there is no next command, it is determined whether there is an active command of another bank (step S5). If there is an active command of another bank, the active command of another bank is issued with priority (step S6), and the process returns to step S2.
【0035】ステップS5で、他のバンクのアクティブ
コマンドがなければ、他のバンクのプリチャージコマン
ドがあるか否かが判断される(ステップS7)。他のバ
ンクのプリチャージコマンドがあったら、アクセス済み
バンクのプリチャージコマンドが発行され(ステップS
8)、ステップS2に戻る。In step S5, if there is no active command of another bank, it is determined whether or not there is a precharge command of another bank (step S7). If there is a precharge command for another bank, a precharge command for the accessed bank is issued (step S
8) Return to step S2.
【0036】ステップS7で、他のバンクのプリチャー
ジコマンドがなければ、コマンド発行をせずに(ステッ
プS9)、ステップS2に戻る。In step S7, if there is no precharge command for another bank, no command is issued (step S9), and the process returns to step S2.
【0037】例えば、バンクAとバンクBとにアクセス
するような場合、現在、バンクAにアクセスしていると
すると、先ず、バンクAのコマンドが出力される(ステ
ップS1)。ここで、次に、どのコマンドを出力すべき
であるかの判断が行われる。先ず、現在のバンクAに対
し、次に有効なコマンドがあるか否かが判断され(ステ
ップS2)、有効なコマンドがある場合には、次がプリ
チャージコマンドであるか否かが判断され(ステップS
3)、次がプリチャージコマンド以外のコマンドである
場合には、そのコマンドを発行し、次がプリチャージコ
マンドであれば、アクセス要求を待っている次のバンク
にアクセスに移される(ステップS4)。For example, in the case where the bank A and the bank B are accessed, assuming that the bank A is currently accessed, a command for the bank A is first output (step S1). Here, next, it is determined which command should be output. First, it is determined whether there is a next valid command for the current bank A (step S2). If there is a valid command, it is determined whether the next is a precharge command (step S2). Step S
3) If the next is a command other than the precharge command, the command is issued. If the next is the precharge command, the access is moved to the next bank waiting for the access request (step S4). .
【0038】バンクAに次のコマンドがない場合には、
アクティブコマンド要求を出しているバンクがあれば
(ステップS5)、これが発行され(ステップS6)、
アクティブコマンド要求を出しているバンクがない場合
には、プリチャージ待ちのバンクがあるか否かが判断さ
れ(ステップS7)、プリチャージ待ちのバンクがあっ
たら、プリチャージが発行され(ステップS8)、プリ
チャージ待ちのバンクがない場合には、次のクロックで
はコマンドは発行せず(ステップS9)、更に、ステッ
プS2に戻り、次のクロックにおける判断に移る。この
ような処理が繰り返し行われる。If there is no next command in bank A,
If there is a bank issuing an active command request (step S5), this is issued (step S6).
If there is no bank issuing an active command request, it is determined whether there is a bank waiting for precharge (step S7). If there is a bank waiting for precharge, a precharge is issued (step S8). If there is no bank waiting for precharge, no command is issued in the next clock (step S9), and the process returns to step S2 to proceed to the determination in the next clock. Such processing is repeatedly performed.
【0039】図4は、この発明が適用されたメモリコン
トローラ1で、バンクAへのリードの要求と、バンクB
へのリードの要求が起こったときの動作を示すものであ
る。なお、CASレイテンシーは「2」、バースト長は
「2」とする。FIG. 4 shows a memory controller 1 to which the present invention is applied.
This is an operation when a request to read data is issued. Note that the CAS latency is “2” and the burst length is “2”.
【0040】図4において、クロックサイクル「1」
で、バンクAに対するバンクアクティブコマンドが発行
される。クロックサイクル「2」がウェイトとなり、ク
ロックサイクル「3」で、バンクAのリードコマンドが
発行される。In FIG. 4, clock cycle "1"
Then, a bank active command for bank A is issued. The clock cycle “2” becomes a wait, and the read command of the bank A is issued in the clock cycle “3”.
【0041】クロックサイクル「4」では、バンクBに
対するアクティブコマンドが出されているので、これを
優先して、バンクBに対するアクティブコマンドが与え
られる。In clock cycle "4", since an active command for bank B is issued, the active command for bank B is given priority.
【0042】クロックサイクル「5」で、バンクAに対
するリードコマンドが発行される。クロックサイクル
「6」がウェイトとなる。At clock cycle "5", a read command for bank A is issued. The clock cycle “6” becomes a wait.
【0043】クロックサイクル「7」では、バンクAに
対するプリチャージコマンドが発行されるべきである
が、これは先送りにされ、アクセスがバンクBに移さ
れ、バンクBのリードコマンドが発行される。At clock cycle "7", a precharge command for bank A should be issued, which is postponed, access is transferred to bank B, and a read command for bank B is issued.
【0044】クロックサイクル「8」で、バンクAに対
するプリチャージコマンドが発行され、クロックサイク
ル「9」で、バンクBに対するプリチャージコマンドが
発行される。At clock cycle "8", a precharge command for bank A is issued, and at clock cycle "9", a precharge command for bank B is issued.
【0045】従来では、アクティブ、リード/ライト、
プリチャージのコマンドセットを順次バンクに送るよう
にしていたのに対して、この発明の実施の形態では、上
述のように、現在のバンクでデータのやり取りがなされ
ていない期間に、他のバンクでアクティブコマンドの発
行があればそれを優先し、プリチャージコマンドは先送
りにしている。Conventionally, active, read / write,
While the precharge command set is sequentially transmitted to the bank, in the embodiment of the present invention, as described above, during the period when data is not exchanged in the current bank, the data is transmitted to another bank. If an active command is issued, it is given priority, and the precharge command is postponed.
【0046】図4に示したこの発明が適用されたメモリ
コントローラを使ったときのデータアクセスのタイミン
グと、図8に示した従来のメモリコントローラを使った
ときのデータアクセスのタイミングとを比較すれば分か
るように、従来のように、アクティブ、リード・ライ
ト、プリチャージのコマンドセットを順次バンクに送る
ようにした場合には、バンクAに対するリードとバンク
Bに対するリードを行う処理に12クロックサイクル要
するのに対して、この発明の実施の形態では、9クロッ
クサイクルで処理できる。このように、この発明の実施
の形態では、3クロック分の短縮が図れる。The data access timing when using the memory controller to which the present invention shown in FIG. 4 is applied is compared with the data access timing when using the conventional memory controller shown in FIG. As can be seen, when the command set of active, read / write, and precharge is sequentially sent to the bank as in the related art, it takes 12 clock cycles for the process of reading from bank A and reading from bank B. On the other hand, in the embodiment of the present invention, processing can be performed in nine clock cycles. As described above, according to the embodiment of the present invention, it is possible to reduce the time by three clocks.
【0047】なお、上述の例では、SDRAM2のバン
ク数を2つにしているが、この発明は、バンク数が複数
の場合にも同様に適用できる。In the above example, the number of banks of the SDRAM 2 is two. However, the present invention can be similarly applied to a case where the number of banks is plural.
【0048】例えば、図5は、SDRAM2のバンク数
を4にした場合の例である。バンク数が4の場合には、
各バンクに対応して、コマンド生成回路12A、12
B、12C、12Dが設けられる。リクエスト分配回路
11では、4つのバンクに対応してリクエストが分配さ
れ、各コマンド生成回路12A、12B、12C、12
D、各バンク毎のコマンドが生成される。そして、コマ
ンド選択回路13で、SDRAM2のアクセスが効率的
に行われるように、コマンドが分配される。このときの
処理は、バンクが2つのときと同様に、そのバンクに対
するコマンドのうちプリチャージコマンドを先送りに
し、他のバンクに対するコマンドのうちアクティブコマ
ンドを早く出すようにすれば良く、そのときの処理は、
前述の図3の処理と同様である。FIG. 5 shows an example in which the number of banks of the SDRAM 2 is four. If the number of banks is 4,
Command generation circuits 12A and 12A corresponding to each bank
B, 12C and 12D are provided. In the request distribution circuit 11, requests are distributed corresponding to the four banks, and the command generation circuits 12A, 12B, 12C, 12
D, a command for each bank is generated. Then, the commands are distributed by the command selection circuit 13 so that the SDRAM 2 is accessed efficiently. At this time, as in the case of two banks, the precharge command among the commands for that bank may be postponed, and the active command among the commands for other banks may be issued earlier. Is
This is the same as the processing of FIG. 3 described above.
【0049】[0049]
【発明の効果】この発明によれば、入力された要求が各
バンク毎の要求とに分けられ、各バンク毎のコマンド生
成回路により、各バンク毎にコマンドが生成される。そ
して、現在のバンクでデータのやり取りがなされていな
い期間に、現在のバンクのプリチャージコマンドが先送
りされ、他のバンクのアクセスコマントが優先される。
これにより、バンクを切り換えたときのウェイトがなく
なり、アクセスが効率的に行われる。According to the present invention, an input request is divided into a request for each bank, and a command generation circuit for each bank generates a command for each bank. Then, during a period in which no data is exchanged in the current bank, the precharge command of the current bank is postponed, and the access command of another bank is given priority.
As a result, there is no wait when switching banks, and access is performed efficiently.
【図1】この発明の一実施の形態のブロック図である。FIG. 1 is a block diagram of an embodiment of the present invention.
【図2】SDRAMの説明に用いる略線図である。FIG. 2 is a schematic diagram used for describing an SDRAM.
【図3】この発明の一実施の形態の説明に用いるフロー
チャートである。FIG. 3 is a flowchart used for describing one embodiment of the present invention.
【図4】この発明の一実施の形態の説明に用いるタイミ
ング図である。FIG. 4 is a timing chart used for describing one embodiment of the present invention.
【図5】この発明の他の実施の形態のブロック図であ
る。FIG. 5 is a block diagram of another embodiment of the present invention.
【図6】従来のメモリコントローラの一例のブロック図
である。FIG. 6 is a block diagram of an example of a conventional memory controller.
【図7】従来のメモリコントローラの一例の説明に用い
るフローチャートである。FIG. 7 is a flowchart used to describe an example of a conventional memory controller.
【図8】従来のメモリコントローラの一例の説明に用い
るタイミング図である。FIG. 8 is a timing chart used to describe an example of a conventional memory controller.
1・・・メモリコントローラ、11・・・リクエスト分
配回路、12A、12B、12C・・・コマンド生成回
路、13・・・コマンド選択回路DESCRIPTION OF SYMBOLS 1 ... Memory controller, 11 ... Request distribution circuit, 12A, 12B, 12C ... Command generation circuit, 13 ... Command selection circuit
Claims (8)
使用してデータを読み書きを行う同期型メモリを制御す
るメモリ制御装置であって、 入力された要求を上記複数のバンク毎に分配するリクエ
スト分配手段と、 上記要求に基づいて上記複数のバンク毎のコマンドを生
成する複数のコマンド生成手段と、 上記複数のコマンド生成手段で生成されたコマンドを選
択し、上記同期型メモリに供給するコマンド選択手段と
を備え、 上記コマンド選択手段は、バンクのデータアクセスがな
い期間に、他のバンクのコマンドを優先させるようにし
たことを特徴とするメモリ制御装置。1. A memory control device comprising a plurality of banks for controlling a synchronous memory which reads and writes data using a clock, wherein the request distribution distributes an input request to each of the plurality of banks. Means, a plurality of command generation means for generating commands for each of the plurality of banks based on the request, and a command selection means for selecting a command generated by the plurality of command generation means and supplying the command to the synchronous memory A memory control device, wherein the command selecting means gives priority to a command of another bank during a period when there is no data access of the bank.
タアクセスがない期間に、他のバンクのアクティブコマ
ンドを優先させるようにした請求項1に記載のメモリ制
御装置。2. The memory control device according to claim 1, wherein said command selection means prioritizes an active command of another bank during a period when there is no data access of a bank.
コマンドを先送りするようにした請求項1に記載のメモ
リ制御装置。3. The memory control device according to claim 1, wherein said command selection means postpones a precharge command.
タアクセスがない期間に、他のバンクのアクティブコマ
ンドを優先させると共に、プリチャージコマンドを先送
りするようにした請求項1に記載のメモリ制御装置。4. The memory control device according to claim 1, wherein said command selection means prioritizes an active command of another bank and pre-charges a precharge command during a period when there is no data access of a bank.
使用してデータを読み書きを行う同期型メモリを制御す
るメモリ制御方法であって、 入力された要求を上記複数のバンク毎に分配し、 上記要求に基づいて上記複数のバンク毎のコマンドを生
成し、 上記生成されたコマンドを選択して、上記同期型メモリ
に供給し、 上記選択は、バンクのデータアクセスがない期間に、他
のバンクのコマンドを優先させるようにしたメモリ制御
方法。5. A memory control method for controlling a synchronous memory which is composed of a plurality of banks and reads and writes data using a clock, wherein an input request is distributed to each of the plurality of banks. Generating a command for each of the plurality of banks based on a request; selecting the generated command; and supplying the selected command to the synchronous memory; A memory control method that gives priority to commands.
ない期間に、他のバンクのアクティブコマンドを優先さ
せるようにした請求項5に記載のメモリ制御方法。6. The memory control method according to claim 5, wherein said selection gives priority to an active command of another bank during a period when there is no data access of a bank.
送りするようにした請求項5に記載のメモリ制御方法。7. The memory control method according to claim 5, wherein the selection is made to postpone a precharge command.
タアクセスがない期間に、他のバンクのアクティブコマ
ンドを優先させると共に、プリチャージコマンドを先送
りするようにした請求項5に記載のメモリ制御方法。8. The memory control method according to claim 5, wherein said command selection means prioritizes an active command of another bank and pre-charges a precharge command during a period when there is no data access of a bank.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001089303A JP2002288037A (en) | 2001-03-27 | 2001-03-27 | Memory control device and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001089303A JP2002288037A (en) | 2001-03-27 | 2001-03-27 | Memory control device and method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002288037A true JP2002288037A (en) | 2002-10-04 |
Family
ID=18944254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001089303A Pending JP2002288037A (en) | 2001-03-27 | 2001-03-27 | Memory control device and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002288037A (en) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006011593A (en) * | 2004-06-23 | 2006-01-12 | Sony Corp | Memory controller |
US7124263B2 (en) | 2003-07-09 | 2006-10-17 | Kabushiki Kaisha Toshiba | Memory controller, semiconductor integrated circuit, and method for controlling a memory |
JP2007514221A (en) * | 2003-12-09 | 2007-05-31 | トムソン ライセンシング | Memory controller |
KR100803188B1 (en) | 2005-09-09 | 2008-02-14 | 후지쯔 가부시끼가이샤 | Semiconductor memory device, semiconductor integrated circuit system using the same, and control method of semiconductor memory device |
CN100433189C (en) * | 2004-08-09 | 2008-11-12 | 凌阳科技股份有限公司 | Data exchange circuit and method for synchronous DRAM |
JP2013012232A (en) * | 2006-02-09 | 2013-01-17 | Metallum Inc | Memory circuit system and method |
US8705240B1 (en) | 2007-12-18 | 2014-04-22 | Google Inc. | Embossed heat spreader |
US8710862B2 (en) | 2009-06-09 | 2014-04-29 | Google Inc. | Programming of DIMM termination resistance values |
US8751732B2 (en) | 2006-10-05 | 2014-06-10 | Google Inc. | System and method for increasing capacity, performance, and flexibility of flash storage |
US8762675B2 (en) | 2008-06-23 | 2014-06-24 | Google Inc. | Memory system for synchronous data transmission |
US8760936B1 (en) | 2006-11-13 | 2014-06-24 | Google Inc. | Multi-rank partial width memory modules |
US8773937B2 (en) | 2005-06-24 | 2014-07-08 | Google Inc. | Memory refresh apparatus and method |
US8797779B2 (en) | 2006-02-09 | 2014-08-05 | Google Inc. | Memory module with memory stack and interface with enhanced capabilites |
US8811065B2 (en) | 2005-09-02 | 2014-08-19 | Google Inc. | Performing error detection on DRAMs |
US8819356B2 (en) | 2008-07-25 | 2014-08-26 | Google Inc. | Configurable multirank memory system with interface circuit |
US8868829B2 (en) | 2006-07-31 | 2014-10-21 | Google Inc. | Memory circuit system and method |
US8949519B2 (en) | 2005-06-24 | 2015-02-03 | Google Inc. | Simulating a memory circuit |
US8972673B2 (en) | 2006-07-31 | 2015-03-03 | Google Inc. | Power management of memory circuits by virtual memory simulation |
US8977806B1 (en) | 2006-10-05 | 2015-03-10 | Google Inc. | Hybrid memory module |
US9047976B2 (en) | 2006-07-31 | 2015-06-02 | Google Inc. | Combined signal delay and power saving for use with a plurality of memory circuits |
US9171585B2 (en) | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
US9507739B2 (en) | 2005-06-24 | 2016-11-29 | Google Inc. | Configurable memory circuit system and method |
US9632929B2 (en) | 2006-02-09 | 2017-04-25 | Google Inc. | Translating an address associated with a command communicated between a system and memory circuits |
US10013371B2 (en) | 2005-06-24 | 2018-07-03 | Google Llc | Configurable memory circuit system and method |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000259494A (en) * | 1999-03-04 | 2000-09-22 | Matsushita Electric Ind Co Ltd | Memory controller |
-
2001
- 2001-03-27 JP JP2001089303A patent/JP2002288037A/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000259494A (en) * | 1999-03-04 | 2000-09-22 | Matsushita Electric Ind Co Ltd | Memory controller |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7124263B2 (en) | 2003-07-09 | 2006-10-17 | Kabushiki Kaisha Toshiba | Memory controller, semiconductor integrated circuit, and method for controlling a memory |
JP2007514221A (en) * | 2003-12-09 | 2007-05-31 | トムソン ライセンシング | Memory controller |
JP2006011593A (en) * | 2004-06-23 | 2006-01-12 | Sony Corp | Memory controller |
CN100433189C (en) * | 2004-08-09 | 2008-11-12 | 凌阳科技股份有限公司 | Data exchange circuit and method for synchronous DRAM |
US9171585B2 (en) | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
US10013371B2 (en) | 2005-06-24 | 2018-07-03 | Google Llc | Configurable memory circuit system and method |
US9507739B2 (en) | 2005-06-24 | 2016-11-29 | Google Inc. | Configurable memory circuit system and method |
US8949519B2 (en) | 2005-06-24 | 2015-02-03 | Google Inc. | Simulating a memory circuit |
US8773937B2 (en) | 2005-06-24 | 2014-07-08 | Google Inc. | Memory refresh apparatus and method |
US8811065B2 (en) | 2005-09-02 | 2014-08-19 | Google Inc. | Performing error detection on DRAMs |
KR100803188B1 (en) | 2005-09-09 | 2008-02-14 | 후지쯔 가부시끼가이샤 | Semiconductor memory device, semiconductor integrated circuit system using the same, and control method of semiconductor memory device |
JP2013012232A (en) * | 2006-02-09 | 2013-01-17 | Metallum Inc | Memory circuit system and method |
US9632929B2 (en) | 2006-02-09 | 2017-04-25 | Google Inc. | Translating an address associated with a command communicated between a system and memory circuits |
US8797779B2 (en) | 2006-02-09 | 2014-08-05 | Google Inc. | Memory module with memory stack and interface with enhanced capabilites |
US8972673B2 (en) | 2006-07-31 | 2015-03-03 | Google Inc. | Power management of memory circuits by virtual memory simulation |
US8868829B2 (en) | 2006-07-31 | 2014-10-21 | Google Inc. | Memory circuit system and method |
US9047976B2 (en) | 2006-07-31 | 2015-06-02 | Google Inc. | Combined signal delay and power saving for use with a plurality of memory circuits |
US8977806B1 (en) | 2006-10-05 | 2015-03-10 | Google Inc. | Hybrid memory module |
US8751732B2 (en) | 2006-10-05 | 2014-06-10 | Google Inc. | System and method for increasing capacity, performance, and flexibility of flash storage |
US8760936B1 (en) | 2006-11-13 | 2014-06-24 | Google Inc. | Multi-rank partial width memory modules |
US8730670B1 (en) | 2007-12-18 | 2014-05-20 | Google Inc. | Embossed heat spreader |
US8705240B1 (en) | 2007-12-18 | 2014-04-22 | Google Inc. | Embossed heat spreader |
US8762675B2 (en) | 2008-06-23 | 2014-06-24 | Google Inc. | Memory system for synchronous data transmission |
US8819356B2 (en) | 2008-07-25 | 2014-08-26 | Google Inc. | Configurable multirank memory system with interface circuit |
US8710862B2 (en) | 2009-06-09 | 2014-04-29 | Google Inc. | Programming of DIMM termination resistance values |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002288037A (en) | Memory control device and method | |
TWI251739B (en) | Semiconductor device | |
US6088774A (en) | Read/write timing for maximum utilization of bidirectional read/write bus | |
JP2909592B2 (en) | Computer memory system | |
JP3819004B2 (en) | Memory control device | |
JP2016218721A (en) | Memory control circuit and memory control method | |
JP4370063B2 (en) | Semiconductor memory device control device and semiconductor memory device control method | |
JP2001035158A (en) | Method and system for accessing memory | |
JP2000020451A (en) | Device and method for processing information and provision method | |
JP2001256106A (en) | Memory access system | |
KR20050081498A (en) | Memory bank interleaving method and apparatus in the multi-layer bus system | |
JPH09237492A (en) | Memory control device | |
JP2004171678A (en) | Apparatus, method, and program for storing information | |
JP4633334B2 (en) | Information processing apparatus and memory access arbitration method | |
JP2011034214A (en) | Memory controller | |
JP3820831B2 (en) | Memory control method and apparatus | |
GB2365590A (en) | Improved data procesing system for reducing idle clock cycles | |
JP3967921B2 (en) | Data processing apparatus and data processing system | |
JPH10144073A (en) | Access mechanism for synchronous dram | |
JPH07311730A (en) | Method and device for memory control | |
JP2000227895A (en) | Device and method for transferring image data | |
JP2000250528A (en) | Image memory device | |
JP2000285013A (en) | Interface device | |
JP2000011645A (en) | Semiconductor storage | |
JPH1139216A (en) | Semiconductor storage and cache memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071214 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101214 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110405 |