JP2006004464A - Memory controller - Google Patents
Memory controller Download PDFInfo
- Publication number
- JP2006004464A JP2006004464A JP2004176511A JP2004176511A JP2006004464A JP 2006004464 A JP2006004464 A JP 2006004464A JP 2004176511 A JP2004176511 A JP 2004176511A JP 2004176511 A JP2004176511 A JP 2004176511A JP 2006004464 A JP2006004464 A JP 2006004464A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- refresh
- comparison
- address
- control device
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 63
- 238000001514 detection method Methods 0.000 claims description 37
- 230000004044 response Effects 0.000 claims description 11
- 230000007423 decrease Effects 0.000 claims description 5
- 238000001994 activation Methods 0.000 description 34
- 230000004913 activation Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 5
- 230000007774 longterm Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- Dram (AREA)
Abstract
Description
この発明は、メモリ制御装置に係る発明であり、例えば、SDRAMのリフレッシュ処理を制御するメモリ制御装置として適用することができる。 The present invention relates to a memory control device, and can be applied as, for example, a memory control device that controls SDRAM refresh processing.
SDRAM(Synchronous Dynamic Random Access Memory)を利用する場合には、メモリセルの記憶内容を再充電する必要がある。ここで、当該再充電は、一定間隔でオートリフレッシュコマンドを発行することにより、行われる。 When an SDRAM (Synchronous Dynamic Random Access Memory) is used, it is necessary to recharge the memory contents of the memory cell. Here, the recharging is performed by issuing an auto refresh command at regular intervals.
従来技術に係るSDRAMのリフレッシュ制御方式では、SDRAMコマンド発行部の状態と無関係に、一定間隔でオートリフレッシュコマンドが実行されていた(例えば、非特許文献1参照。)。 In the refresh control method of the SDRAM according to the prior art, the auto-refresh command is executed at regular intervals regardless of the state of the SDRAM command issuing unit (for example, see Non-Patent Document 1).
ここで、SDRAMコマンド発行部とは、メモリアクセスコマンドとリフレッシュコマンドとを受付、受付順にSDRAMに対するコマンドシーケンスを発行する装置である。 Here, the SDRAM command issuing unit is a device that accepts a memory access command and a refresh command and issues a command sequence for the SDRAM in the order of acceptance.
なお、SDRAMの所定の記憶素子からデータを読み出される(または、書き込まれる)前に、SDRAMは、対応するバンクおよびROW(行)に対して、バンクプリチャージ・バンクアクティベート処理が施される。ここで、バンクアクティベート処理とは、リード、ライトコマンドの実行に先立って、アクセス対象のバンクおよびロウアドレスを選択、活性化する処理である。また、バンクプリチャージ動作とは、バンクアクティベート処理によって活性化されたバンクおよびロウアドレスを非活性(アイドル)の状態に戻す処理である。同一のバンクに対して複数のロウアドレスの活性化はできない。別のロウアドレスを活性化するには、既に活性化済みのロウアドレスの非活性化処理が必要となる。 Note that before data is read (or written) from a predetermined storage element of the SDRAM, the SDRAM performs bank precharge / bank activation processing on the corresponding bank and ROW (row). Here, the bank activation process is a process of selecting and activating an access target bank and row address prior to execution of a read / write command. The bank precharge operation is a process for returning the bank and row address activated by the bank activation process to an inactive (idle) state. A plurality of row addresses cannot be activated for the same bank. In order to activate another row address, it is necessary to deactivate the already activated row address.
ここで、同一のバンク・同一ROWに属する記憶素子に対して、連続してデータの読み出し(または、書き込み)処理が行われるとする。この場合には、SDRAMには、バンクアクティベート処理が施されること無く、連続してリード(またはライト)コマンドが発行される。 Here, it is assumed that data reading (or writing) processing is continuously performed on storage elements belonging to the same bank and the same ROW. In this case, a read (or write) command is continuously issued to the SDRAM without performing bank activation processing.
ところで、SDRAMに対してリフレッシュ処理が施された後は、SDRAMに対してリード(または、ライト)コマンドを発行する前に、所定のバンクおよびROWに対してバンクアクティベート処理を施す必要がある。 By the way, after the refresh process is performed on the SDRAM, it is necessary to perform the bank activation process on a predetermined bank and ROW before issuing a read (or write) command to the SDRAM.
しかし、非特許文献1に係る技術において、同一バンク・同一ROWアドレスでカラムアドレスのみ異なるメモリ領域に対する連続アクセスが行われる途中に、定期的に発行されるリフレッシュコマンドが強制的に挿入されたとする。リフレッシュ処理が行われた場合には、全てのバンクがアイドル状態となる。したがって、上記のような場合には、必ずバンクアクティベート処理からコマンドシーケンスを実行する必要がある。
However, in the technique according to
これにより、本来不必要なバンクアクティベート処理を、SDRAMのリフレッシュ処理後に改めて行う必要が生じる。つまり、リフレッシュ処理に必要な実行サイクルのみだけでなく、バンクアクティベート処理サイクルが余分に必要となる。したがって、SDRAMの実効的な転送効率が損なわれる結果となる。 This makes it necessary to perform bank activation processing that is essentially unnecessary after the SDRAM refresh processing. That is, not only an execution cycle necessary for the refresh process but also an extra bank activation process cycle is required. Therefore, the effective transfer efficiency of the SDRAM is impaired.
そこで、この発明は、例えメモリに対するリフレッシュ処理が施されたとしても、実効的なデータ転送効率の損失を最小限にすることができるメモリ制御装置を提供することを目的とする。 Therefore, an object of the present invention is to provide a memory control device that can minimize the loss of effective data transfer efficiency even if a refresh process is performed on the memory.
上記の目的を達成するために、本発明に係る請求項1に記載のメモリ制御装置は、メモリのアクティブ状況を示すアクティブ情報内の第一のアドレスと、メモリアクセス要求内の第二のアドレスとを比較するアドレス比較部と、前記アドレス比較部の比較結果に応じて、メモリに対するリフレッシュ要求を生成するリフレッシュ要求生成部とを、備えている。
In order to achieve the above object, the memory control device according to
また、請求項2に記載のメモリ制御装置は、メモリに対するアクセスがないアイドルサイクルを検出するアイドルサイクル検出部と、前記アイドルサイクル検出部のアイドルサイクルの検出に応じて、メモリに対するリフレッシュ要求を生成するリフレッシュ要求生成部とを、備えている。 According to a second aspect of the present invention, there is provided a memory control device that detects an idle cycle in which there is no access to the memory, and generates a refresh request for the memory in response to detection of an idle cycle by the idle cycle detection unit. And a refresh request generation unit.
また、請求項15に記載のメモリ制御装置は、メモリのアクティブ状況を示すアクティブ情報内の第一のアドレスと、メモリアクセス要求内の第二のアドレスとを比較するアドレス比較部と、前記メモリに対するアクセスがないアイドルサイクルを検出するアイドルサイクル検出部と、前記アドレス比較部の比較結果と、前記アイドルサイクル検出部のアイドルサイクルの検出とに応じて、メモリに対するリフレッシュ要求を生成するリフレッシュ要求生成部とを、備えている。
The memory control device according to
本発明の請求項1に記載のメモリ制御装置は、メモリのアクティブ状況を示すアクティブ情報内の第一のアドレスと、メモリアクセス要求内の第二のアドレスとを比較するアドレス比較部と、前記アドレス比較部の比較結果に応じて、メモリに対するリフレッシュ要求を生成するリフレッシュ要求生成部とを、備えているので、メモリに対するアクティベート処理の時期を判断し、当該時期を狙ってメモリのリフレッシュ処理を行うことができる。したがって、リフレッシュ処理に伴う無駄なアクティベート処理を施す必要がなくなる。よって、メモリに対する実効的なデータ転送効率を向上させることができる。 According to a first aspect of the present invention, there is provided a memory control device comprising: an address comparing unit that compares a first address in active information indicating a memory active state with a second address in a memory access request; and the address A refresh request generation unit that generates a refresh request for the memory according to the comparison result of the comparison unit is provided, so the timing of the activation process for the memory is determined, and the memory refresh process is performed aiming at the time Can do. Therefore, it is not necessary to perform a useless activation process associated with the refresh process. Therefore, effective data transfer efficiency with respect to the memory can be improved.
また、請求項2に記載のメモリ制御装置は、メモリに対するアクセスがないアイドルサイクルを検出するアイドルサイクル検出部と、前記アイドルサイクル検出部のアイドルサイクルの検出に応じて、メモリに対するリフレッシュ要求を生成するリフレッシュ要求生成部とを、備えているので、アイドルサイクルを利用して、メモリのリフレッシュ処理を行うことができる。したがって、メモリに対する実効的なデータ転送効率を向上させることができる。 According to a second aspect of the present invention, there is provided a memory control device that detects an idle cycle in which there is no access to the memory, and generates a refresh request for the memory in response to detection of an idle cycle by the idle cycle detection unit. Since the refresh request generator is provided, the memory refresh process can be performed using the idle cycle. Therefore, effective data transfer efficiency with respect to the memory can be improved.
また、請求項15に記載のメモリ制御装置は、メモリのアクティブ状況を示すアクティブ情報内の第一のアドレスと、メモリアクセス要求内の第二のアドレスとを比較するアドレス比較部と、前記メモリに対するアクセスがないアイドルサイクルを検出するアイドルサイクル検出部と、前記アドレス比較部の比較結果と、前記アイドルサイクル検出部のアイドルサイクルの検出とに応じて、メモリに対するリフレッシュ要求を生成するリフレッシュ要求生成部とを、備えているので、請求項1,2に記載のメモリ制御装置を組み合わせたメモリ制御装置を提供することができる。
The memory control device according to
以下に示す例からも分かるように、リフレッシュ処理が実施されるタイミングによって、SDRAM(Synchronous Dynamic Random Access Memory)の実効的な転送効率が変化する。例えば、図1に示すメモリアクセスシーケンスを例に取って説明する。 As can be seen from the example shown below, the effective transfer efficiency of SDRAM (Synchronous Dynamic Random Access Memory) varies depending on the timing at which the refresh process is performed. For example, the memory access sequence shown in FIG. 1 will be described as an example.
ここで、図1において、「RD」は、リードアクセスを意味している。また、「Bi」は、i番目のバンクアドレスを示している。また、「Ri」は、i行目のロウアドレスを示している。また、「Ci」は、i列目のカラムアドレスを示している。例えば、1番目のメモリアクセス要求ID1は、1番目のバンクアドレス、1番目のロウアドレス、および1番目のカラムアドレスに属する記憶素子に対しする、リードアクセスコマンドである。 Here, “RD” in FIG. 1 means read access. “Bi” indicates the i-th bank address. “Ri” indicates the row address of the i-th row. “Ci” indicates a column address of the i-th column. For example, the first memory access request ID1 is a read access command for the storage elements belonging to the first bank address, the first row address, and the first column address.
図1から分かるように、メモリアクセス要求ID1とメモリアクセス要求ID2とは、同一バンク・同一ROWアドレスに対する連続アクセスである。また、メモリアクセス要求ID2とメモリアクセス要求ID3とは、異なったROWアドレス(バンクアドレスは同一である)に対する連続アクセスである。 As can be seen from FIG. 1, the memory access request ID1 and the memory access request ID2 are continuous accesses to the same bank and the same ROW address. Memory access request ID2 and memory access request ID3 are continuous accesses to different ROW addresses (the bank addresses are the same).
図1に示したメモリアクセスシーケンスにおいて、メモリアクセス要求ID1とメモリアクセス要求ID2との間にリフレッシュ処理を施した場合(ケースA)、およびメモリアクセス要求ID2とメモリアクセス要求ID3との間にリフレッシュ処理を施した場合(ケースB)、を各々考える。 In the memory access sequence shown in FIG. 1, when refresh processing is performed between memory access request ID1 and memory access request ID2 (Case A), and refresh processing is performed between memory access request ID2 and memory access request ID3. Each case is considered (Case B).
図2は、ケースAのSDRAMに対するコマンドシーケンスを示す。図3は、ケースBのSDRAMに対するコマンドシーケンスを示す。 FIG. 2 shows a command sequence for the SDRAM of case A. FIG. 3 shows a command sequence for the SDRAM of case B.
ここで、図2,3において、「ACT」は、バンクアクティベートコマンドを意味する。また、「READ」は、リードコマンドを意味する。また、「WRITE」は、ライトコマンドを意味する。また、「PRE」は、プリチャージコマンドを意味する。また、「REF」は、リフレッシュコマンドを意味する。 Here, in FIGS. 2 and 3, “ACT” means a bank activate command. “READ” means a read command. “WRITE” means a write command. “PRE” means a precharge command. “REF” means a refresh command.
さて、図2から分かるように、ケースAでは、一連の処理が完了するまでに9サイクル要している。これに対して、図3から分かるように、ケースBでは、一連の処理が完了するまでに7サイクルしか要していない。 As can be seen from FIG. 2, in case A, nine cycles are required to complete a series of processing. On the other hand, as can be seen from FIG. 3, in case B, only 7 cycles are required to complete a series of processing.
このように、リフレッシュ処理が挿入される場所によって、SDRAMの実効的な転送効率が変化することが分かる。本発明は、このようにリフレッシュの実施タイミングを最適化することで、SDRAMの実効的な転送効率の低下を抑制するものである。 Thus, it can be seen that the effective transfer efficiency of the SDRAM changes depending on the place where the refresh process is inserted. The present invention suppresses a decrease in the effective transfer efficiency of the SDRAM by optimizing the refresh execution timing in this way.
以下、この発明をその実施の形態を示す図面に基づいて、どのタイミングでリフレッシュ処理を施すのかを具体的に説明する。 Hereinafter, based on the drawings showing the embodiments of the present invention, the timing at which the refresh process is performed will be specifically described.
<実施の形態1>
本実施の形態に係るメモリ制御装置は、バンクアクティベート処理が必要なタイミングを狙って、SDRAMに対してリフレッシュ処理を施すことを特徴とする。図4は、本実施の形態に係るメモリ制御装置の構成を示すブロック図である。
<
The memory control device according to the present embodiment is characterized in that refresh processing is performed on the SDRAM at the timing when bank activation processing is required. FIG. 4 is a block diagram showing a configuration of the memory control device according to the present embodiment.
図4に示すように、メモリ制御装置100は、第一、二の閾値設定部1,2、リフレッシュカウンタ3、平均リフレッシュ間隔設定部4、第一、二の比較部5,6、BANK/ROWアドレス比較部7、リフレッシュ要求生成部8、要求調停部9、およびSDRAMコマンド発行部10により、構成されている。
As shown in FIG. 4, the
また、図4には、メモリ制御装置100の他に、バスマスタ200およびSDRAM300も図示している。
FIG. 4 also shows the
ここで、SDRAM300は、外部から入力されるクロックに同期して動作するDRAMである。また、SDRAM300は、同一BANK・同一ROWアドレスに属する記憶領域については、バンクアクティベート処理無しに、連続してリード・ライト処理が実施される。
Here, the SDRAM 300 is a DRAM that operates in synchronization with a clock input from the outside. Further, in the
バスマスタ200は、SDRAM300へのメモリアクセス要求を発行する装置である。なお、バスマスタ200が複数存在するケースもある。しかし、ここでは、簡略化のため一つのみを図示している。バスマスタ200として、例えば、CPU(Central Processing Unit)やDMAC(Direct Memory Access Controller)などがある。
The
図4に示すように、第一の閾値設定部1の出力部o1は、第一の比較部5の入力部i3と接続されている。また、第二の閾値設定部2の出力部o2は、第二の比較部6の入力部i5と接続されている。
As shown in FIG. 4, the output unit o <b> 1 of the first
リフレッシュカウンタ3の出力部o3は、第一の比較部5の入力部i4と第二の比較部6の入力部i6と、各々接続されている。また、リフレッシュカウンタ3の入力部i1は、平均リフレッシュ間隔設定部4の出力部o4と接続されており、入力部i2には、要求調停部9の出力部o9と接続されている。
The output unit o3 of the
リフレッシュ要求生成部8の入力部i9は、BANK/ROWアドレス比較部7の出力部o7と接続されており、入力部i10には、第一の比較部5の出力部o5と接続されており、入力部i11には、第二の比較部6の出力部o6と接続されている。また、リフレッシュ要求生成部8の出力部o8は、要求調停部9の入力部i12と接続されている。
The input unit i9 of the refresh
要求調停部9の出力部o10は、SDRAMコマンド発行部10の入力部i14に接続されている。SDRAMコマンド発行部10の出力部o11は、SDRAM300の入力部i15に接続されており、出力部o12は、BANK/ROWアドレス比較部7の入力部i8と接続されている。
The output unit o10 of the
バスマスタ200の出力部o13は、BANK/ROWアドレス比較部7の入力部i7と、要求調停部9の入力部i13とに、各々接続されている。
The output unit o13 of the
次に、メモリ制御装置100を構成する各部の説明をする。
Next, each part which comprises the
第一、二の閾値設定部1,2は、リフレッシュ制御方法を切り替えるための基準値となる、閾値を保持(格納)するレジスタである。
The first and second
平均リフレッシュ間隔設定部4は、必要とされるリフレッシュ間隔の平均値(以下、平均リフレッシュ間隔値と称する)を保持(格納)するレジスタである。
The average refresh
リフレッシュカウンタ3は、サイクル数が増加するに従って、通常はダウンカウントを行う装置である。また、SDRAM300に対するリフレッシュ処理が実行されたなら、リフレッシュカウンタ3は、平均リフレッシュ間隔設定部4に保持されている平均リフレッシュ間隔値を、現在のカウント値に加算する。
The
第一の比較部5は、リフレッシュカウンタ3のカウント値と、第一の閾値設定部1に保持されている閾値(以下、第一の閾値と称する)との大小関係を比較する装置である。もし、カウント値の方が大きければ、第一の比較部5は、「1」の信号を出力する。
The
第二の比較部6は、リフレッシュカウンタ3のカウント値と、第二の閾値設定部2に保持されている閾値(以下、第二の閾値と称する)との大小関係を比較する装置である。もし、カウント値の方が大きければ、第二の比較部6は、「1」の信号を出力する。
The
BANK/ROWアドレス比較部7は、SDRAMコマンド発行部10から出力された現在のアクティブROW情報(BANK情報を含む)ARと、バスマスタ200から出力されたメモリアクセス要求内のBANK/ROWアドレスとを比較する。当該比較の結果、両者が一致すれば、BANK/ROWアドレス比較部7は、「1」の信号を出力する。
The BANK / ROW
ここで、アクティブROW情報ARとは、SDRAMコマンド発行部10が内部情報として保持している情報であり、当該アクティブROW情報ARにより、SDRAM300のアクティブ状態にあるBANKアドレス、ROWアドレスを知ることができる。
Here, the active ROW information AR is information held by the SDRAM
後に説明されるが、SDRAMコマンド発行部10は、複数のコマンドから構成されるコマンドシーケンスを発行する。SDRAMコマンド発行部10は、当該コマンドシーケンスの内容を参酌することにより、上記アクティブROW情報ARを作成する。そして、当該作成されたアクティブROW情報ARを、SDRAMコマンド発行部10は、内部状態として保持する。
As will be described later, the SDRAM
リフレッシュ要求生成部8は、以下のような論理を実現する。
The
もし、第一の比較部5から「0」の信号が出力された場合(つまり、第一の比較部5での比較処理の結果、リフレッシュカウンタ3のカウント値が、第一の閾値以下である場合)には(以下、ケースαと称する)、リフレッシュ要求生成部8は、リフレッシュ要求信号を出力する(「1」の信号を出力する)。
If a signal of “0” is output from the first comparison unit 5 (that is, as a result of comparison processing in the
もし、第一の比較部5から「1」の信号が出力され(つまり、第一の比較部5での比較処理の結果、リフレッシュカウンタ3のカウント値が、第一の閾値より大きいとき)、かつ、第二の比較部6から「0」の信号が出力され(つまり、第二の比較部6での比較処理の結果、リフレッシュカウンタ3のカウント値が、第二の閾値以下である場合)た場合において、BANK/ROWアドレス比較部7から「0」の信号が出力される場合(つまり、BANK/ROWアドレス比較部7での、SDRAMコマンド発行部10から出力された現在のアクティブROW情報(BANK情報を含む)と、バスマスタ200から出力されたメモリアクセス要求内のBANK/ROWアドレスとの比較処理の結果、BANKアドレスまたはROWアドレスが異なる場合)には(以下、ケースβと称する)、リフレッシュ要求生成部8は、リフレッシュ要求信号を出力する(「1」の信号を出力する)。
If the
もし、第一の比較部5から「1」の信号が出力され、かつ、第二の比較部6から「0」の信号が出力された場合において、BANK/ROWアドレス比較部7から「1」の信号が出力される場合(つまり、BANK/ROWアドレス比較部7での、SDRAMコマンド発行部10から出力された現在のアクティブROW情報(BANK情報を含む)ARと、バスマスタ200から出力されたメモリアクセス要求内のBANK/ROWアドレスとの比較処理の結果、BANKアドレスおよびROWアドレスが、各々一致する場合)には(以下、ケースγと称する)、リフレッシュ要求生成部8は、リフレッシュ要求信号を出力しない(「0」の信号を出力する)。
If the signal “1” is output from the
もし、第一の比較部5から「1」の信号が出力され、かつ、第二の比較部6から「1」の信号が出力された場合(つまり、第二の比較部6での比較処理の結果、リフレッシュカウンタ3のカウント値が、第二の閾値より大きいとき)には(以下、ケースδと称する)、リフレッシュ要求生成部8は、リフレッシュ要求信号を出力しない(「0」の信号を出力する)。
If a signal “1” is output from the
なお、ケースαおよびケースδのときは、BANK/ROWアドレス比較部7から出力される信号に関わらず、上記処理を行う。
In case α and case δ, the above processing is performed regardless of the signal output from the BANK / ROW
要求調停部9は、バスマスタ200から出力されるメモリアクセス要求と、リフレッシュ要求生成部8から出力されるリフレッシュ要求との調停を行う。そして、どちらか一方の要求を、SDRAMコマンド発行部10に対して出力する。ここで、要求調停部9の調停方式は、常にリフレッシュ要求を優先的に、SDRAMコマンド発行部10に対して出力する方式である。
The
SDRAMコマンド発行部10は、要求調停部9を経由して入力されてくる、メモリアクセス要求とリフレッシュ要求とを受付ける。そして、SDRAM300に対して出力するために、SDRAMコマンド発行部10は、受付順に構成されたコマンドシーケンスを発行する。
The SDRAM
次に、図4に示した本実施の形態に係るメモリ制御装置100の動作について説明する。なお、第一の閾値設定部1には、第一の閾値として「5」が設定されている。また、第二の閾値設定部2には、第二の閾値として「9」が設定されている。また、平均リフレッシュ間隔設定部4には、平均リフレッシュ間隔値として「10」が設定されている。
Next, the operation of the
また、バスマスタ200からは、図5に示す一連(図5では9個)のメモリアクセス要求から成るメモリアクセスシーケンスが出力されるものとする。
Further, it is assumed that the
図5において、メモリアクセス要求IDi(i=1,2,・・・,9)は、i番目のメモリアクセス要求を示す。また、RDは、SDRAM300に対するリードアクセスを示す。また、WTは、SDRAM300に対するライトアクセスを示す。
In FIG. 5, a memory access request IDi (i = 1, 2,..., 9) indicates the i-th memory access request. RD indicates read access to the
また、BANK addressBkは、k番目のバンクアドレスを示す。また、ROW addressRlは、l行目の行アドレスを示す。また、COLUMN addressCmは、m列目の列アドレスを示す。なお、k、l、mは自然数である。 BANK address Bk indicates the kth bank address. ROW addressRl indicates the row address of the lth row. Further, COLUMN addressCm indicates the column address of the m-th column. Note that k, l, and m are natural numbers.
また、図6に、図5に示したメモリアクセスシーケンスに対する、図4で示した各回路の状態や信号の変化を示す。 FIG. 6 shows changes in the states and signals of the circuits shown in FIG. 4 with respect to the memory access sequence shown in FIG.
図6において、1行目は、サイクル数である。2行目は、バスマスタ200から出力されたメモリアクセス要求のID番号である。3行目は、リフレッシュカウンタ3のカウンタ値である。4行目は、第二の比較部6の出力信号である。5行目は、第一の比較部5の出力信号である。
In FIG. 6, the first line is the number of cycles. The second line is the memory access request ID number output from the
また、6行目は、SDRAMコマンド発行部10が管理(保持)する、現在アクティブ状態にあるROW情報(アクティブROW情報)のうち、BANKアドレスを示している。7行目は、当該ROW情報のうちROWアドレスを示している。8行目は、バスマスタ200から出力されたメモリアクセス要求のBANKアドレスであり、9行目は、ROWアドレスである。
The sixth line shows the BANK address among the currently active ROW information (active ROW information) managed (held) by the SDRAM
また、10行目は、BANK/ROWアドレス比較部7の出力信号である。11行目は、リフレッシュ要求生成部8の出力信号である。12行目は、SDRAMコマンド発行部10から出力される、SDRAM300に対するコマンドである。13行目は、SDRAMコマンド発行部10から出力される、SDRAM300に対するBANKアドレスである。さらに、14行目は、SDRAMコマンド発行部10から出力される、SDRAM300に対するROWアドレスまたはCOLUMNアドレスである。
The 10th line is an output signal of the BANK / ROW
なお、図6の11行目のコマンド表示において、「READ」は、読み出し処理コマンドを示している。また、「WRITE」は、書き込み処理コマンドを示している。また、「ACT」はバンクアクティベート処理コマンドを示している。また、「PRE」は、バンクプリチャージ処理コマンドを示している。また、「REF」は、リフレッシュ処理コマンドを示している。 In the command display on the eleventh line in FIG. 6, “READ” indicates a read processing command. “WRITE” indicates a write processing command. “ACT” represents a bank activation processing command. “PRE” indicates a bank precharge processing command. “REF” represents a refresh processing command.
まず、図6に示されているように、第一サイクルでは、バスマスタ200からメモリアクセス要求ID1が出力される。メモリアクセス要求ID1は、図5で示した様に、アドレスB1,R1,C1に対応する、SDRAM300の記憶素子からのデータ読み出し処理コマンドである。
First, as shown in FIG. 6, in the first cycle, the memory access request ID <b> 1 is output from the
SDRAM300においては、メモリアクセス要求ID1の読み出し処理(第二サイクル)を行う前に、BANKアドレスB1、ROWアドレスR1の記憶領域に対して、バンクアクティベート処理が実行される(図6の第一サイクル)。つまり、データの読み出しコマンドの前に、バンクアクティベート処理コマンドが発行される。
In the
なお、このとき、リフレッシュカウンタ3のカウンタ値は、「10」である。したがって、当該カウンタ値「10」は、第二の閾値設定部2に記憶されている第二の閾値「9」よりも大きいので、第二の比較部6からは、「1」の信号が出力される。また、当該カウンタ値「10」は、第一の閾値設定部1に記憶されている第一の閾値「5」よりも大きいので、第一の比較部5からは、「1」の信号が出力される。
At this time, the counter value of the
さて、上記でも説明したように、リフレッシュカウンタ3のカウンタ値は、サイクル数が増加する度に、減少する。したがって、第二サイクル以降は、リフレッシュカウンタ3のカウンタ値は、第二の閾値以下となる。よって、第二の比較部6からは、「0」の信号が出力される(図6の4行目)。
As described above, the counter value of the
第三サイクルには、バスマスタ200から出力される、図5で示したメモリアクセス要求ID2(アドレスB1,R1,C2に対応する、SDRAM300の記憶素子からのデータ読み出し処理)が、各回路7,9に入力される。このとき、リフレッシュカウンタ3のカウンタ値は、「8」である。つまり、第一の閾値「5」よりも大きく、第二の閾値「9」より小さい。したがって、第一の比較部5からは、「1」の信号が出力され、第二の比較部6からは、「0」の信号が出力される。
In the third cycle, the memory access request ID2 (data read processing from the storage element of the
また、第三サイクルでは、SDRAMコマンド発行部10から出力されるアクティブROW情報ARは、(B1、R1)である。
In the third cycle, the active ROW information AR output from the SDRAM
そうすると、BANK/ROWアドレス比較部7が受け取る、バスマスタ200からのメモリアクセス要求ID2内のBANK・ROWアドレス(B1,R1)と、第三サイクルでのアクティブ状態にあるBANK・ROWアドレス(B1,R1)とが、各々一致する(つまり、BANK/ROW比較部7から「1」の信号が出力される。図6参照)。これは、上記ケースγに該当する。
Then, the BANK / ROW
したがって、リフレッシュ要求生成部8は、リフレッシュ要求を出力しない(つまり、リフレッシュ要求生成部8からは、「0」の信号が出力される。図6参照)。したがって、SDRAMコマンド発行部10は、メモリアクセス要求ID2に従い、SDRAM300の対応する記憶素子に対する、データの読み出し処理コマンドを発行する(図6参照)。
Therefore, the
次に、第四サイクルには、バスマスタ200から出力される、図5で示したメモリアクセス要求ID3(アドレスB1,R2,C3に対応する、SDRAM300の記憶素子からのデータ読み出し処理)が、各回路7,9に入力される。このとき、リフレッシュカウンタ3のカウンタ値は、「7」である。つまり、第一の閾値「5」よりも大きく、第二の閾値「9」より小さい。したがって、第一の比較部5からは、「1」の信号が出力され、第二の比較部6からは、「0」の信号が出力される。
Next, in the fourth cycle, the memory access request ID3 (data read processing from the storage element of the
また、第四サイクルでは、SDRAMコマンド発行部10から出力されるアクティブROW情報ARは、(B1、R1)である。
In the fourth cycle, the active ROW information AR output from the SDRAM
そうすると、BANK/ROWアドレス比較部7が受け取る、バスマスタ200からのメモリアクセス要求ID2内のBANK・ROWアドレス(B1,R2)と、第四サイクルでのアクティブ状態にあるBANK・ROWアドレス(B1,R1)とが、完全に一致しない(つまり、BANK/ROW比較部7から「0」の信号が出力される。図6参照)。これは、上記ケースβに該当する。
Then, the BANK / ROW
したがって、リフレッシュ要求生成部8は、リフレッシュ要求を出力する(つまり、リフレッシュ要求生成部8からは、「1」の信号が出力される。図6参照)。そして、現在アクティブ状態にある記憶領域(アドレスB1,R1)を非アクティブ状態とするために、SDRAMコマンド発行部10は、バンクプリチャージ処理コマンドが発行される。また、このときのSDRAMコマンド発行部10から出力される、アクティブROW情報ARは、無効となる(図6では、「X」で表示する)。
Therefore, the
そして、当該バンクプリチャージ処理コマンド発行後、第5サイクルには(リフレッシュカウンタ値は、「6」となる)、リフレッシュ要求に応じて、SDRAMコマンド発行部10は、SDRAM300に対してリフレッシュ処理コマンドを発行する(図6参照)。
Then, in the fifth cycle (the refresh counter value becomes “6”) after issuing the bank precharge processing command, the SDRAM
また、要求調停部9を介して出力される、リフレッシュ要求に応じて、リフレッシュカウンタ3は、現在のカウント値「6」に、平均リフレッシュ間隔設定部4に記憶されている平均リフレッシュ間隔値「10」を加算する(図6の第六サイクル)。
Further, in response to the refresh request output via the
したがって、第六サイクルでは、リフレッシュカウンタのカウント値「16」は、第一、二の閾値よりも大きくなるので、第一、二の比較部5,6からは、「1」の信号が出力される。
Accordingly, in the sixth cycle, the count value “16” of the refresh counter is larger than the first and second threshold values, so that the first and
また、第六サイクルでは、SDRAM300においては、メモリアクセス要求ID3の読み出し処理(第七サイクル)を行う前に、BANKアドレスB1、ROWアドレスR2の記憶領域に対して、バンクアクティベート処理が実行される。したがって、第6サイクルでは、SDRAMコマンド発行部10からは、読み出し処理コマンドに先立って、バンクアクティベート処理コマンドが発行される。
In the sixth cycle, in the
さて、第六サイクルから第十二サイクルまでは、リフレッシュカウンタ3のカウント値が、第二の閾値「9」よりも大きい。これは、上記ケースδの場合である。
Now, from the sixth cycle to the twelfth cycle, the count value of the
したがって、第六サイクルから第十二サイクルまでの期間中は、リフレッシュ要求生成部8は、リフレッシュ要求信号を出力しない(「0」の信号を出力し続ける)。そして、SDRAMコマンド発行部10からは、バスメモリ200から出力されるメモリアクセス要求ID4,5,6に従って、SDRAM300に対する通常のデータ読み出し処理等のコマンドが発行される(図6参照)。
Therefore, during the period from the sixth cycle to the twelfth cycle, the refresh
つまり、アクティブ状態にある記憶領域が、BANKアドレスBi、ROWアドレスRiであり、バスマスタ200から出力されたメモリアクセス要求が、BANKアドレスBi、ROWアドレスRiの記憶領域に対するものであるとする(すなわち、両BANK/ROWアドレスが、完全に一致する場合)。このときは、バンクプリチャージ処理コマンドおよびバンクアクティベート処理コマンドを発行せずに、当該メモリアクセス要求に従ったデータの読み出し等の処理コマンドが発行される。
That is, the storage area in the active state is the BANK address Bi and the ROW address Ri, and the memory access request output from the
また、アクティブ状態にある記憶領域が、BANKアドレスBi、ROWアドレスRiであり、バスマスタ200から出力されたメモリアクセス要求が、BANKアドレスBj、ROWアドレスRjの記憶領域に対するものであるとする(すなわち、両アドレスのうち、BANKアドレスまたはROWアドレスが不一致の場合)。このときは、バンクプリチャージ処理コマンド、その後のバンクアクティベート処理コマンドの発行を行う。そして、その後に、当該メモリアクセス要求に従ったデータの読み出し等の処理コマンドが発行される。
Further, assume that the storage areas in the active state are the BANK address Bi and the ROW address Ri, and the memory access request output from the
さて、第十三サイクル以降になると、リフレッシュカウンタ3のカウンタ値は、「9」以下となる。すなわち、当該カウンタ値は、第二の閾値「9」以下となる。したがって、リフレッシュ要求生成部8は、ケースβまたはケースγのどちらかに示した動作を行うことになる。
Now, after the thirteenth cycle, the counter value of the
なお、第十三サイクル以降において、リフレッシュ要求生成部8がリフレッシュ要求を生成しない場合には、メモリ制御装置100は、SDRAM300に対しては、バスメモリ200から出力されるメモリアクセス要求ID7,8に従って、通常のデータ読み出し処理等が実行する(図6参照)。
If the
ここで、第十五、十六サイクルにおいて、BANK/ROWアドレス比較部7には、バスマスタ200から出力されたメモリアクセス要求ID7,8が入力される。当該メモリアクセス要求ID7,8内のBANKアドレスおよびROWアドレスは、アクティブROW情報(当該アクティブ情報は、第十五、十六サイクル時に、SDRAMコマンド発行部10から出力されたものである)内のBANKアドレスおよびROWアドレスと、一致する(ケースγ)。
Here, in the fifteenth and sixteenth cycles, the memory
したがって、SDRAMコマンド発行部10からは、SDRAM300のリフレッシュ処理コマンドの発行を行わず、メモリアクセス要求ID7,8に従って、該当する記憶素子に対するデータの読み出し、書き込み等の処理コマンドを発行する。
Therefore, the SDRAM
さて、第十七サイクルでは、リフレッシュカウンタ3のカウンタ値は、「5」となる。当該カウンタ値は、第一の閾値「5」以下に該当する。つまり、第一、二の比較部5,6からは、共に「0」の信号が出力される。当該ケースは、ケースαに該当する。
In the seventeenth cycle, the counter value of the
したがって、リフレッシュ要求生成部8は、BANK/ROWアドレス比較部7から出力される信号に関わらず、リフレッシュ要求信号を出力する(「1」の信号を出力する)。
Accordingly, the
これにより、第十七サイクルでは、SDRMAコマンド発行部10は、現在活性状態ある記憶領域を非活性化するために、バンクプリチャージ処理コマンドを発行する。
Thus, in the seventeenth cycle, the SDRMA
そして、第十八サイクルでは、SDRAMコマンド発行部10からは、SDRAM300に対するリフレッシュ処理コマンドが発行される。
In the eighteenth cycle, the SDRAM
その後、第十九サイクルでは、SDRAMコマンド発行部10からは、メモリアクセス要求ID9に従ったデータの読み出し処理コマンド(第二十サイクル)を発行前に、該当するBANKアドレス、ROWアドレスの記憶領域に対しての、バンクアクティベート処理コマンドが発行される。
Thereafter, in the nineteenth cycle, before issuing a data read processing command (20th cycle) in accordance with the memory
なお、第十八サイクルにおいて、リフレッシュ処理が実施されたので、リフレッシュカウンタ3のカウント値「4」に、平均リフレッシュ間隔値「10」が加算される。つまり、第十九サイクルでは、リフレッシュカウンタ3のカウンタ値は、「14」となる。
In the eighteenth cycle, since the refresh process has been performed, the average refresh interval value “10” is added to the count value “4” of the
したがって、第十九サイクル以降はケースδとなる。よって、カウンタ値が第二の閾値「9」以下となるまで、リフレッシュ要求生成部8は、BANK/ROW比較部7の出力に関わらず、リフレッシュ要求の信号は出力しない。
Therefore, the case δ is applied after the nineteenth cycle. Therefore, the refresh
本実施の形態に係るメモリ制御装置100を用いた場合の、サイクル数に対するリフレッシュカウンタ3のカウンタ値の変化を、図7に模式的に示す。図7において、縦軸はカウンタ値であり、横軸はサイクル数である。なお、上記実施の形態では、第一の閾値「5」、第二の閾値「9」、リフレッシュ間隔値「10」の場合に説明した。しかし、図7の模式図は、当該各閾値等の設定と異なる設定のものである。
FIG. 7 schematically shows changes in the counter value of the
また、「丸印」は、メモリアクセス要求のBANK・ROWアドレスとアクティブROW情報ARのBANK・ROWアドレスとが、それぞれ一致する場合である。「星印」は、メモリアクセス要求のBANKアドレスまたはROWアドレスが、アクティブROW情報ARのBANKアドレスまたはROWアドレスと不一致の場合である。また、「矢印」は、リフレッシュ処理後の平均リフレッシュ間隔値の加算を示す。 “Circle” is a case where the BANK / ROW address of the memory access request and the BANK / ROW address of the active ROW information AR match each other. “Star” is a case where the BANK address or ROW address of the memory access request does not match the BANK address or ROW address of the active ROW information AR. An “arrow” indicates addition of an average refresh interval value after the refresh process.
図7が示すように、カウンタ値が第二の閾値以下の場合において、上記アドレスの不一致の事象が連続して発生すれば、その度にリフレッシュ処理が連続して実施される。そして、リフレッシュ処理が実施される度に、カウンタ値に平均リフレッシュ間隔値が加算される。 As shown in FIG. 7, in the case where the counter value is equal to or smaller than the second threshold value, if the address mismatch event occurs continuously, the refresh process is continuously performed each time. Each time the refresh process is performed, the average refresh interval value is added to the counter value.
しかし、カウンタ値が第二の閾値より大きくなれば、リフレッシュ処理が実施されることはない。 However, if the counter value is larger than the second threshold value, the refresh process is not performed.
また、上記アドレスの一致事象が連続して発生した場合、カウンタ値が第一の閾値以下となり得る。しかし、カウント値が減少し続けて第一の閾値以下となったときには、強制的にリフレッシュ処理が実施される。そして、カウント値に平均リフレッシュ間隔値が加算される。 Further, when the address coincidence event occurs continuously, the counter value can be equal to or less than the first threshold value. However, when the count value continues to decrease and falls below the first threshold value, the refresh process is forcibly executed. Then, the average refresh interval value is added to the count value.
以上のように、本実施の形態に係るメモリ制御装置100は、ケースβ、γのように、バンクアクティベート処理が必要なタイミングを狙って、SDRAM300に対するリフレッシュ処理を実施している。
As described above, the
したがって、図2,3を用いた説明したように、同一BANK・同一ROWアドレスに対して連続してアクセスしている途中に、リフレッシュ処理が実施されることを防止することができる。つまり、無駄なバンクプリチャージ処理および無駄なバンクアクティベート処理を行う必要がなくなる。 Therefore, as described with reference to FIGS. 2 and 3, it is possible to prevent the refresh process from being performed while continuously accessing the same BANK / same ROW address. That is, it is not necessary to perform useless bank precharge processing and useless bank activation processing.
よって、SDRAM300に対するリフレッシュ処理が施されたとしても、バンクアクティベートが施されるタイミングで行われるので、実効的なデータ転送効率の損失を最小限にすることができる。
Therefore, even if the refresh process is performed on the
また、本実施の形態に係るメモリ制御装置100は、平均リフレッシュ間隔値を保持する平均リフレッシュ間隔設定部4を有している。そして、リフレッシュ処理が実施された場合には、リフレッシュカウンタ3のカウンタ値に平均リフレッシュ間隔値が加算される。
In addition, the
したがって、リフレッシュ処理の間隔は一定になることはないが、長期的に見た場合には、リフレッシュ処理の平均的な間隔は、平均リフレッシュ間隔値とほぼ等しくすることができる。 Therefore, although the refresh process interval does not become constant, the average refresh process interval can be made substantially equal to the average refresh interval value in the long term.
また、本実施の形態係るメモリ制御装置100は、第一の閾値とリフレッシュカウンタ3のカウント値とを比較する第一の比較部5を有している。そして、第一の比較部5の比較の結果、カウンタ値が第一の閾値以下となったときには、リフレッシュ要求生成部8は、リフレッシュ要求を生成している。
In addition, the
したがって、バスマスタ200からのメモリアクセス要求のBANKアドレスおよびROWアドレスが、アクティブROW情報ARのBANKアドレスおよびROWアドレスと、それぞれ一致する事象が連続して発生した場合に、強制的にSDRAM300に対してリフレッシュ処理を実施することができる。
Therefore, when the BANK address and the ROW address of the memory access request from the
なお、リフレッシュ処理は、前段階の一のメモリアクセス要求に従った処理の終了後に、実施される。したがって、第一の閾値は、一のメモリアクセス要求に要する最大の処理サイクル数以上に設定しておくべきである。 The refresh process is performed after the process in accordance with the memory access request in the previous stage is completed. Therefore, the first threshold value should be set to be equal to or greater than the maximum number of processing cycles required for one memory access request.
また、本実施の形態に係るメモリ制御装置100は、第二の閾値とリフレッシュカウンタ3のカウント値とを比較する第二の比較部6を有している。そして、第二の比較部6の比較の結果、カウンタ値が第二の閾値より大きいときには、リフレッシュ要求生成部8は、リフレッシュ要求を生成することはない。
In addition, the
したがって、第二の閾値を経験則等に基いて適正な値に設定することにより、SDRAM300内に記憶されている電荷量が十分であり、リフレッシュ処理を行う必要がない場合での、無用なSDRAM300のリフレッシュ処理を防止することができる。
Therefore, by setting the second threshold value to an appropriate value based on an empirical rule or the like,
なお、リフレッシュカウンタ3のカウンタ値が第二の閾値より大きくなると、リフレッシュ処理は実施されない。したがって、第二の閾値のときに、リフレッシュ処理が実施された場合が、リフレッシュカウンタ3の取り得る最大のカウンタ値である。
When the counter value of the
また、上記のように、第一の閾値は、一つのメモリアクセス要求に要する最大の処理サイクル数以上に設定することが望ましい。したがって、当該制約を厳守すれば、リフレッシュカウンタ3の取り得る最小のカウンタ値は、「0」となる。つまり、リフレッシュカウンタ3のカウンタ値が「0」のときに、リフレッシュ処理が強制的に実施される可能性がある。
As described above, the first threshold value is desirably set to be equal to or greater than the maximum number of processing cycles required for one memory access request. Therefore, if the restriction is strictly observed, the minimum counter value that the
以上により、リフレッシュ処理間のサイクル数は、最大でも(第二の閾値)+(平均リフレッシュ間隔値)である。 As described above, the number of cycles between refresh processes is at most (second threshold value) + (average refresh interval value).
ところで、SDRAM300には、一度リフレッシュ処理を実施されたから、次にリフレッシュ処理が必要なときまでの上限期間tREFが、定義されている。したがって、第二の閾値をあまりにも大きくとると、リフレッシュ処理間のサイクル数が、上限期間tREFを超えてしまうことがある。
By the way, the
したがって、第二の閾値は、リフレッシュ処理間のサイクル数が、上限期間tREFを超えない範囲内で設定する必要がある。 Therefore, it is necessary to set the second threshold within a range in which the number of cycles between refresh processes does not exceed the upper limit period tREF.
また、本実施の形態に係るメモリ制御装置は、要求調停部9を有している。要求調停部9は、メモリアクセス要求とリフレッシュ要求との調停を行い、リフレッシュ要求を優先的に後段のSDRAMコマンド発行部10へ出力する装置である。したがって、以下の効果を有する。
Further, the memory control device according to the present embodiment has a
つまり、リフレッシュ要求よりもメモリアクセス要求の方が優先してSDRAMコマンド発行部10に入力されたとする。このとき、たとえ、バンクアクティベートが実施されるタイミングでリフレッシュ要求生成されたとしても、SDRAMコマンド発行部10で発行されるコマンドシーケンスにおいては、リフレッシュ要求の順序が前記タイミングより遅れてしまう。
That is, it is assumed that the memory access request is prioritized over the refresh request and is input to the SDRAM
しかし、上記要求調停部9を設けることにより、上記のような問題の発生を防止することができる。
However, by providing the
また、本実施の形態に係るメモリ制御装置は、SDRAM300のアクティブROW情報ARを内部状態として保持しているSDRAMコマンド発行部10を有している。
In addition, the memory control device according to the present embodiment includes an SDRAM
したがって、BANK/ROWアドレス比較部7での比較処理に際して、当該SDRAMコマンド発行部10の内部状態を参照することができる。よって、当該比較処理に際して、わざわざSDRAM300のアクティブ状態を参照する作業を削減でき、当該比較処理をより簡便に行うことができる。
Therefore, the internal state of the SDRAM
なお、上記では、SDRAMコマンド発行部10は、バンクを区別せずにアクティブROW情報ARの管理(保持)を行っていた。つまり、アクティブROW情報AR内のBANKアドレス、ROWアドレスと、メモリアクセス要求内のBANKアドレス、ROWアドレスとが、各々同じときには、バンクプリチャージ・バンクアクティベート処理を実施することは無かった。これは、メモリアクセスの効率化のための制御である。
In the above description, the SDRAM
一方、上記とは別に、SDRAMコマンド発行部10を、バンクを区別してアクティブROW情報ARを管理(保持)する構成としても良い。つまり、アクティブROW情報内のROWアドレスと、メモリアクセス要求内のROWアドレスとが同じときに、バンクプリチャージ・バンクアクティベート処理を不実施としても良い。これにより、前者の場合と比べて、よりメモリアクセスの効率化を図ることができる。
On the other hand, apart from the above, the SDRAM
<実施の形態2>
本実施の形態に係るメモリ制御装置は、バスマスタからのメモリアクセス要求が無い(メモリに対するアクセスがない)アイドルサイクルのタイミングを狙って、SDRAMに対してリフレッシュ処理を施すことを特徴とする。図8は、本実施の形態に係るメモリ制御装置の構成を示すブロック図である。
<
The memory control device according to the present embodiment is characterized in that the SDRAM is subjected to refresh processing aiming at an idle cycle timing in which there is no memory access request from the bus master (no access to the memory). FIG. 8 is a block diagram showing a configuration of the memory control device according to the present embodiment.
本実施の形態に係るメモリ制御装置100(図8)と、実施の形態1に係るメモリ制御装置100(図4)とは、以下の点において異なる。 Memory control device 100 (FIG. 8) according to the present embodiment differs from memory control device 100 (FIG. 4) according to the first embodiment in the following points.
実施の形態1に係るメモリ制御装置100は、閾値設定部1,2および比較部5,6は、それぞれ二つ配設されていた。しかし、本実施の形態に係るメモリ制御装置100は、一つの閾値設定部21と一つの比較部22しか配設されていない。
In the
また、本実施の形態に係るメモリ制御装置100には、BANK/ROWアドレス比較部7の代わりに、アイドルサイクル検出部23が配設されている。
Further, in the
その他の構成および接続関係は、実施の形態1に係るメモリ制御装置100と同じであるので、ここでの詳細な説明は省略する。
Since other configurations and connection relationships are the same as those of the
また、図8には、実施の形態1と同様に、メモリ制御装置100の他に、バスマスタ200およびSDRAM300も図示している。バスマスタ200およびSDRAM300の説明は、実施の形態1の通りである。
FIG. 8 also shows the
図8において、閾値設定部21は、リフレッシュ制御方法を切り替えるための基準となる、第三の閾値を保持(格納)するレジスタである。また、比較部22は、リフレッシュカウンタ3のカウント値と、閾値設定部21に設定されている第三の閾値との大小関係を比較する装置である。もし、カウント値の方が大きければ、比較部22は、「1」の信号を出力する。
In FIG. 8, a threshold
アイドルサイクル検出部23は、バスマスタ200から出力されるメモリアクセス要求の状態と、SDRAMコマンド発行部10から出力されるアクティブROW情報ARとを監視する回路である。
The idle
アイドルサイクル検出部23は、バスマスタ200からメモリアクセス要求の出力が無く、かつ、SDRAMコマンド発行部10からSDRAM300に対してコマンドシーケンスが発行されていない場合には、アイドルサイクルであることを検出する。
The idle
そして、アイドルサイクル検出部23は、当該アイドルサイクルを検出すると、リフレッシュ要求生成部8に「1」の信号を出力する。これにより、アイドルサイクル検出部23がアイドルサイクルを検知したことを、リフレッシュ要求生成部8に知らせることができる。
When the idle
リフレッシュ要求生成部8は、以下のような論理を実現する。
The
もし、比較部22から「1」の信号が出力された場合(つまり、比較部22での比較処理の結果、リフレッシュカウンタ3のカウント値が、第三の閾値より大きな場合)には(以下、ケースεと称する)、リフレッシュ要求生成部8は、リフレッシュ要求信号を出力しない(「0」の信号を出力する)。
If a signal “1” is output from the comparison unit 22 (that is, if the count value of the
もし、比較部22から「0」の信号が出力され(つまり、比較部22での比較処理の結果、リフレッシュカウンタ3のカウント値が、第三の閾値以下である場合)、かつ、アイドルサイクル検出部23から「0」の信号が出力される(つまり、アイドルサイクル検出部23がアイドルサイクルを検出していない)場合には(以下、ケースζと称する)、リフレッシュ要求生成部8は、リフレッシュ要求信号を出力しない(「0」の信号を出力する)。
If the
もし、比較部22から「0」の信号が出力され、かつ、アイドルサイクル検出部23から「1」の信号が出力される(アイドルサイクル検出部23がアイドルサイクルを検出した)場合には(以下、ケースηと称する)、リフレッシュ要求生成部8は、リフレッシュ要求信号を出力する(「1」の信号を出力する)。
If the
なお、ケースεのときは、アイドルサイクル検出部23からの出力結果に関わらず、上記処理を行う。
In case ε, the above processing is performed regardless of the output result from the idle
次に、図8に示した本実施の形態に係るメモリ制御装置100の動作について説明する。なお、閾値設定部21には、第三の閾値として「50」が設定されている。また、平均リフレッシュ間隔設定部4には、平均リフレッシュ間隔値として「10」が設定されている。
Next, the operation of the
また、バスマスタ200からは、図9に示す一連(図9では5個である)のメモリアクセス要求から成るメモリアクセスシーケンス(図9では、途中に、メモリアクセス要求が出力されない部分「IDLE」も含まれている)が出力されるものとする。
Also, the
なお、図9内に示されている各記号の意味内容は、実施の形態1で説明した図5内に示された各記号のそれと同じである。 The meaning content of each symbol shown in FIG. 9 is the same as that of each symbol shown in FIG. 5 described in the first embodiment.
また、図10に、図9に示したメモリアクセスシーケンスに対する、図8で示した各回路の状態や信号の変化を示す。 FIG. 10 shows changes in the states and signals of the circuits shown in FIG. 8 with respect to the memory access sequence shown in FIG.
図10において、1行目は、サイクル数である。2行目は、バスマスタ200から出力されたメモリアクセス要求のID番号である。3行目は、リフレッシュカウンタ3のカウンタ値である。4行目は、比較部22の出力信号である。5行目は、アイドルサイクル検出部23の出力信号である。6行目は、リフレッシュ要求生成部8の出力信号である。
In FIG. 10, the first line is the number of cycles. The second line is the memory access request ID number output from the
また、7行目は、SDRAMコマンド発行部10から出力される、SDRAM300に対するコマンドである。8行目は、SDRAMコマンド発行部10から出力される、SDRAM300に対するBANKアドレスである。さらに、9行目は、SDRAMコマンド発行部10から出力される、SDRAM300に対するROWアドレスまたはCOLUMNアドレスである。
The seventh line is a command for the
なお、図10において、「NOP」は、SDRAMコマンド発行部10から発行されるコマンドが無い状態を示す。図10内に示されているそれ以外各記号の意味内容は、実施の形態1で説明した図6内に示された各記号のそれと同じである。
In FIG. 10, “NOP” indicates a state in which there is no command issued from the SDRAM
まず、図10に示されているように、第一サイクルでは、バスマスタ200からメモリアクセス要求ID1が出力される。メモリアクセス要求ID1は、図9で示した様に、アドレスB1,R1,C1に対応する、SDRAM300の記憶素子からのデータ読み出し処理コマンドである。
First, as shown in FIG. 10, in the first cycle, the memory access request ID <b> 1 is output from the
SDRAM300においては、メモリアクセス要求ID1の読み出し処理(第二サイクル)を行う前に、BANKアドレスB1、ROWアドレスR1の記憶領域に対して、バンクアクティベート処理が実行される(図10の第一サイクル)。つまり、SDRAMコマンド発行部10からは、読み出し処理コマンドの発行前に、バンクアクティベート処理コマンドが発行される。
In the
なお、このとき、リフレッシュカウンタ3のカウンタ値は、「51」である。したがって、当該カウンタ値「51」は、閾値設定部21に記憶されている第三の閾値「50」よりも大きいので、比較部22からは、「1」の信号が出力される。
At this time, the counter value of the
さて、実施の形態1と同様に、リフレッシュカウンタ3のカウンタ値は、サイクル数が増加する度に、減少する。したがって、第二サイクル以降は、リフレッシュカウンタ3のカウンタ値は、第三の閾値以下となる。よって、比較部22からは、「0」の信号が出力される(図6の4行目)。
As in the first embodiment, the counter value of the
第二、三サイクルには、SDRAMコマンド発行部10からは、該当するアドレスの記憶素子に対する読み出し処理コマンドが発行される。ここで、当該読み出しコマンドは、バスマスタ200から出力された、図9で示したメモリアクセス要求ID1,ID2に従ったものである。
In the second and third cycles, the SDRAM
なお、第二、三サイクル(リフレッシュカウンタ3のカウンタ値は、それぞれ「50」および「49」である)では、アイドルサイクルの検出はされない。よって、第二、三サイクルは、ケースζに該当する。したがって、リフレッシュ要求生成部8は、リフレッシュ要求を生成しない(つまり、リフレッシュ要求生成部8は、「0」の信号を出力する)。
In the second and third cycles (the counter values of the
次に、第四サイクルには、アイドルサイクル検出部23は、バスマスタ200からメモリアクセス要求が出力されていないこと、および、SDRAMコマンド発行部10からSDRAM300に対してメモリアクセス要求が発行されていないこと、を検出する。つまり、アイドルサイクル検出部23は、アイドルサイクルを検出する。
Next, in the fourth cycle, the idle
したがって、アイドルサイクル検出部23は、「1」の信号を出力し、リフレッシュ要求生成部8は、当該信号を受信する。
Therefore, the idle
ところで、第四サイクルには、リフレッシュカウンタ3のカウンタ値は、「48」である。つまり、当該カウンタ値は、第三の閾値以下の条件を満たす。
By the way, in the fourth cycle, the counter value of the
以上より、第四サイクルはケースηに該当し、リフレッシュ要求生成部8は、リフレッシュ要求を生成する。つまり、リフレッシュ要求生成部8は、「1」の信号を出力する(図10参照)。
From the above, the fourth cycle corresponds to case η, and the
したがって、第四サイクルには、SDRAM300に対するリフレッシュ処理に先立って、現在アクティブ状態にある記憶領域(アドレスB1,R1)を非アクティブ状態とするために、SDRAMコマンド発行部10から、バンクプリチャージ処理コマンドが発行される。
Therefore, in the fourth cycle, prior to the refresh process for the
そして、当該バンクプリチャージ処理コマンド発行後、第5サイクルには(リフレッシュカウンタ値は、「47」となる)、SDRAMコマンド発行部10は、リフレッシュ要求に応じて、SDRAM300に対するリフレッシュ処理コマンドを発行する(図10参照)。
Then, after issuing the bank precharge processing command, in the fifth cycle (the refresh counter value becomes “47”), the SDRAM
また、要求調停部9を介して出力されるリフレッシュ要求に応じて、リフレッシュカウンタ3は、現在のカウント値「47」に、平均リフレッシュ間隔設定部4に記憶されている平均リフレッシュ間隔値「10」を加算する(図6の第六サイクル)。
Further, in response to the refresh request output via the
したがって、第六サイクルでは、リフレッシュカウンタのカウント値「57」は、第三の閾値よりも大きくなるので、比較部22からは、「1」の信号が出力される。
Therefore, in the sixth cycle, the count value “57” of the refresh counter becomes larger than the third threshold value, and therefore the signal “1” is output from the
また、第六サイクルでは、メモリアクセス要求ID3の読み出し処理コマンドの発行(第七サイクル)前に、SDRAMコマンド発行部10は、BANKアドレスB1、ROWアドレスR1の記憶領域に対する、バンクアクティベート処理コマンドを発行する。
Also, in the sixth cycle, before issuing the memory access request ID3 read processing command (seventh cycle), the SDRAM
さて、第六サイクルから第十二サイクルまでは、リフレッシュカウンタ3のカウント値が、第三の閾値「50」よりも大きい。これは、上記ケースεの場合である。
Now, from the sixth cycle to the twelfth cycle, the count value of the
したがって、第十一サイクルには、アイドルサイクル検出部23は、アイドルサイクルを検出するが、リフレッシュ要求生成部8は、リフレッシュ要求信号を出力しない(「0」の信号を出力し続ける)。
Therefore, in the eleventh cycle, the idle
よって、第六サイクルから第十二サイクルまでの期間は、アイドルサイクルの検出の有無に係らず、SDRAMコマンド発行部10からは、バスメモリ200から出力されるメモリアクセス要求ID3,4,5に従って、通常のデータ読み出し処理コマンド等が発行される(図6参照)。
Therefore, during the period from the sixth cycle to the twelfth cycle, the SDRAM
つまり、アクティブ状態にある記憶領域が、BANKアドレスBi、ROWアドレスRiであり、バスマスタ200から出力されたメモリアクセス要求が、BANKアドレスBi、ROWアドレスRiの記憶領域に対するものであるとする(すなわち、両BANK/ROWアドレスが完全に一致する場合)。
That is, the storage area in the active state is the BANK address Bi and the ROW address Ri, and the memory access request output from the
このときは、バンクプリチャージ処理コマンドおよびバンクアクティベート処理コマンドの発行は行わず、SDRAMコマンド発行部10からは、当該メモリアクセス要求に従ったデータの読み出し等の処理コマンドが発行される。
At this time, the bank precharge processing command and the bank activation processing command are not issued, and the SDRAM
また、アクティブ状態にある記憶領域が、BANKアドレスBi、ROWアドレスRiであり、バスマスタ200から出力されたメモリアクセス要求が、BANKアドレスBj、ROWアドレスRjの記憶領域に対するものであるとする(すなわち、両アドレスのうち、BANKアドレスまたはROWアドレスが不一致の場合)。
Further, assume that the storage areas in the active state are the BANK address Bi and the ROW address Ri, and the memory access request output from the
このときは、SDRAMコマンド発行部10は、バンクプリチャージ処理コマンド、その後のバンクアクティベート処理コマンドの発行を行う。そして、その後に、SDRAMコマンド発行部10は、当該メモリアクセス要求に従ったデータの読み出し等の処理コマンドを発行する。
At this time, the SDRAM
なお、第十一サイクルには、バスマスタ200からのメモリアクセス要求が出力されなかったので、SDRAMコマンド発行部10は、コマンドの発行は行わない(アイドルサイクル)。図10では、「NOP」と表記されている。
In the eleventh cycle, since no memory access request is output from the
以上のように、本実施の形態に係るメモリ制御装置100は、ケースζ,ηのように、アイドルサイクルのタイミングを狙って、SDRAM300に対するリフレッシュ処理を実施している。したがって、下記の効果を有する。
As described above, the
例えば、アイドルサイクルと異なるサイクルのときに、SDRAM300に対するリフレッシュ処理を実施したとする。この場合には、アイドルサイクル数N1とリフレッシュ処理に要するサイクル数N2(バンクプリチャージ処理に要するサイクル数+リフレッシュ処理に要するサイクル数+バンクアクティベート処理に要するサイクル数)とが必要である。つまり、合計N1+N2のサイクル数を要する。
For example, it is assumed that the refresh process for the
しかし、本実施の形態のようにアイドルサイクルを利用して、当該アイドルサイクルのときにリフレッシュ処理を施すことにより、アイドルサイクル数N1を削減できる。つまり、合計のN2のサイクル数だけで良くなる。 However, the idle cycle number N1 can be reduced by using the idle cycle as in the present embodiment and performing the refresh process during the idle cycle. That is, only the total number of N2 cycles is sufficient.
したがって、本実施の形態に係るメモリ制御装置100を採用することにより、SDRAM300に対するリフレッシュ処理が施されたとしても、実効的なデータ転送効率の損失を最小限にすることができる。
Therefore, by adopting
また、本実施の形態に係るメモリ制御装置100おいても、平均リフレッシュ間隔値を保持する平均リフレッシュ間隔設定部4を有している。そして、リフレッシュ処理が実施された場合には、リフレッシュカウンタ3のカウンタ値に平均リフレッシュ間隔値が加算される。
The
したがって、実施の形態1と同様に、リフレッシュ処理の間隔は一定になることはないが、長期的に見た場合には、リフレッシュ処理の平均的な間隔は、平均リフレッシュ間隔値とほぼ等しくすることができる。 Therefore, as in the first embodiment, the refresh processing interval does not become constant, but when viewed in the long term, the average refresh processing interval should be approximately equal to the average refresh interval value. Can do.
また、本実施の形態係るメモリ制御装置100は、第三の閾値とリフレッシュカウンタ3のカウント値とを比較する比較部22を有している。そして、比較部22の比較の結果、カウンタ値が第三の閾値より大きいときには、リフレッシュ要求生成部8は、リフレッシュ要求を生成することはない。
Further, the
第三の閾値は、あまりに低く設定しすぎると、リフレッシュ処理が必要であるにもかかわらず、されない可能性が高くなる。これに対して、第三の閾値を、あまりに高く設定しすぎると、不必要なリフレッシュ処理が頻繁に行われる可能性がある。 If the third threshold value is set too low, there is a high possibility that the third threshold value will not be executed although the refresh process is required. On the other hand, if the third threshold is set too high, unnecessary refresh processing may be frequently performed.
したがって、第三の閾値を経験則等に基いて適正な値に設定することにより、SDRAM300内に記憶されている電荷量が十分であり、リフレッシュ処理を行う必要がない場合での、無用なSDRAM300のリフレッシュ処理を防止することができる。
Accordingly, by setting the third threshold value to an appropriate value based on an empirical rule or the like,
また、本実施の形態に係るメモリ制御装置100においても、要求調停部9、SDRAMコマンド発行部10を有している。したがって、実施の形態1で説明した効果と同様の効果を、本実施の形態においても得ることができる。
The
なお、上記では、SDRAMコマンド発行部10は、バンクを区別せずにアクティブROW情報ARの管理(保持)を行っていた。つまり、アクティブROW情報AR内のBANKアドレス、ROWアドレスと、メモリアクセス要求内のBANKアドレス、ROWアドレスとが、各々同じときには、バンクプリチャージ・バンクアクティベート処理を実施することは無かった。これは、メモリアクセスの効率化のための制御である。
In the above description, the SDRAM
一方、実施の形態1で説明したように、SDRAMコマンド発行部10を、バンクを区別してアクティブROW情報ARを管理(保持)する構成としても良い。つまり、アクティブROW情報内のROWアドレスと、メモリアクセス要求内のROWアドレスとが同じときに、バンクプリチャージ・バンクアクティベート処理を不実施としても良い。これにより、前者の場合と比べて、よりメモリアクセスの効率化を図ることができる。
On the other hand, as described in the first embodiment, the SDRAM
<実施の形態3>
本実施の形態に係るメモリ制御装置は、実施の形態1と実施の形態2との組合せである。つまり、本実施の形態に係るメモリ制御装置は、バンクアクティベート処理が必要なタイミングと、バスマスタからのメモリアクセス要求が無いアイドルサイクルのタイミングとを狙って、SDRAMに対してリフレッシュ処理を施すことを特徴とする。図11は、本実施の形態に係るメモリ制御装置の構成を示すブロック図である。
<
The memory control device according to the present embodiment is a combination of the first embodiment and the second embodiment. In other words, the memory control device according to the present embodiment performs a refresh process on the SDRAM with the aim of the timing when the bank activation process is necessary and the timing of the idle cycle where there is no memory access request from the bus master. And FIG. 11 is a block diagram showing a configuration of the memory control device according to the present embodiment.
本実施の形態に係るメモリ制御装置100(図11)は、実施の形態1に係るメモリ制御装置100(図4)に、実施の形態2に係るメモリ制御装置100(図8)が有していた、アイドルサイクル検出部23と閾値設定部(本実施の形態では、第三の閾値設定部と称する)21と比較部(本実施の形態では、第三の比較部と称する)22とを加えたものである。
The memory control device 100 (FIG. 11) according to the present embodiment has the memory control device 100 (FIG. 8) according to the second embodiment in addition to the memory control device 100 (FIG. 4) according to the first embodiment. Further, an idle
その他の回路および構成等は、実施の形態1,2と同様なので、ここでの説明は省略する。 Other circuits, configurations, and the like are the same as those in the first and second embodiments, and a description thereof is omitted here.
また、図11には、実施の形態1,2と同様に、メモリ制御装置100の他に、バスマスタ200およびSDRAM300も図示している。バスマスタ200およびSDRAM300の説明は、実施の形態1,2の通りである。
FIG. 11 also shows the
本実施の形態に係るSDRAMコマンド発行部10では、図11に示すように、4つのバンク毎にアクティブROW情報BARを管理(保持)している。つまり、メモリアクセス要求内のバンクアドレスに対応したアクティブROW情報内のROWアドレスと、メモリアクセス要求内のROWアドレスとが同じときには、バンクプリチャージ・バンクアクティベート処理を実施しない。
As shown in FIG. 11, the SDRAM
本実施の形態に係るリフレッシュ要求生成部8の論理を、図12を基に説明する。
The logic of the refresh
図12において、縦軸はリフレッシュカウンタ3のカウンタ値である。また、横軸は、サイクル数である。また、第一、二、三の閾値は、各々第一の閾値設定部1、第二の閾値設定部2および第三の閾値設定部21に設定されている閾値である。
In FIG. 12, the vertical axis represents the counter value of the
また、「丸印」は、メモリアクセス要求のBANK・ROWアドレスとアクティブROW情報のBANK・ROWアドレスとが、それぞれ一致する場合である。「星印」は、モリアクセス要求のBANKアドレスまたはROWアドレスが、アクティブROW情報のBANKアドレスまたはROWアドレスと不一致の場合である。また、「四角印」は、アイドルサイクルを検出した場合である。また、「矢印」は、リフレッシュ処理後の平均リフレッシュ間隔値の加算を示す。 “Circle” indicates a case where the BANK / ROW address of the memory access request and the BANK / ROW address of the active ROW information match. “Star” is a case where the BANK address or ROW address of the Mori access request does not match the BANK address or ROW address of the active ROW information. The “square mark” is a case where an idle cycle is detected. An “arrow” indicates addition of an average refresh interval value after the refresh process.
リフレッシュカウンタ3のカウンタ値が、第三の閾値よりも大きいときには、リフレッシュ要求生成部8は、アイドルサイクルの検出部23の結果およびBANK/ROWアドレス比較部7の結果に関わらず、リフレッシュ要求信号を出力しない(「0」の信号を出力する)。
When the counter value of the
また、リフレッシュカウンタ3のカウンタ値が、第三の閾値以下で、第二の閾値よりも大きいときには、もし、アイドルサイクルサイクル検出部23がアイドルサイクルを検出すれば、リフレッシュ要求生成部8は、リフレッシュ要求信号を出力する(「1」の信号を出力する)。
When the counter value of the
しかし、アイドルサイクルサイクル検出部23がアイドルサイクルを検出しない場合には、リフレッシュ要求生成部8は、BANK/ROWアドレス比較部7の結果に関わらず、リフレッシュ要求信号を出力しない(「0」の信号を出力する)。
However, when the idle cycle
また、リフレッシュカウンタ値が、第二の閾値以下で、第一の閾値よりも大きいときには、もし、アイドルサイクルサイクル検出部23がアイドルサイクルを検出した場合、または、BANK/ROWアドレス比較部7が、アクティブROW情報のBANKアドレス・ROWアドレスとメモリアクセス要求のBANKアドレス・ROWアドレスとの不一致を確認した場合には、それぞれの場合において、リフレッシュ要求生成部8は、リフレッシュ要求信号を出力する(「1」の信号を出力する)。
When the refresh counter value is equal to or smaller than the second threshold and greater than the first threshold, if the idle cycle
しかし、アイドルサイクルサイクル検出部23がアイドルサイクルを検出しない場合、および、BANK/ROWアドレス比較部7が、アクティブROW情報のBANKアドレス・ROWアドレスとメモリアクセス要求のBANKアドレス・ROWアドレスとの一致を確認した場合には、リフレッシュ要求生成部8は、リフレッシュ要求信号を出力しない(「0」の信号を出力する)。
However, when the idle
また、リフレッシュカウンタ値が、第一の閾値以下のときには、リフレッシュ要求生成部8は、アイドルサイクルサイクル検出部23の検出結果およびBANK/ROWアドレス比較部7の比較結果に関わらず、強制的にリフレッシュ要求信号を出力する(「1」の信号を出力する)。
When the refresh counter value is equal to or smaller than the first threshold, the
以上のように、本実施の形態に係るメモリ制御装置100は、実施の形態1,2に係るメモリ制御装置100を組み合わせているので、実施の形態1,2と同様な効果を奏することができる。
As described above, since the
1 第一の閾値設定部、2 第二の閾値設定部、3 リフレッシュカウンタ、4 平均リフレッシュ間隔設定部、5 第一の比較部、6 第二の比較部、7 BANK/ROWアドレス比較部、8 リフレッシュ要求生成部、9 要求調停部、10 SDRAMコマンド発行部、21 (第三の)閾値設定部、22 (第三の)比較部、23 アイドルサイクル検出部、100 メモリ制御装置、200 バスマスタ、300 SDRAM。
DESCRIPTION OF
Claims (15)
前記アドレス比較部の比較結果に応じて、メモリに対するリフレッシュ要求を生成するリフレッシュ要求生成部とを、
備えることを特徴とするメモリ制御装置。 An address comparison unit that compares the first address in the active information indicating the active state of the memory with the second address in the memory access request;
A refresh request generation unit that generates a refresh request for the memory according to the comparison result of the address comparison unit,
A memory control device comprising:
前記アイドルサイクル検出部のアイドルサイクルの検出に応じて、メモリに対するリフレッシュ要求を生成するリフレッシュ要求生成部とを、
備えることを特徴とするメモリ制御装置。 An idle cycle detector for detecting an idle cycle in which no memory is accessed;
A refresh request generator for generating a refresh request for the memory in response to detection of an idle cycle of the idle cycle detector;
A memory control device comprising:
サイクル数が増加するに連れてカウント値を減少させ、前記リフレッシュ要求に基いて、前記メモリのリフレッシュ処理が行われたときは、前記カウンタ値に前記平均リフレッシュ間隔値を加算されるカウンタと、をさらに備えている、
ことを特徴とする請求項1または請求項2に記載のメモリ制御装置。 An average refresh interval setting unit for holding an average refresh interval value;
A counter that decreases the count value as the number of cycles increases, and adds the average refresh interval value to the counter value when the refresh process of the memory is performed based on the refresh request; In addition,
3. The memory control device according to claim 1, wherein the memory control device is a memory control device.
前記所定の閾値と前記カウンタのカウント値とを比較する比較部と、をさらに備えており、
前記リフレッシュ要求生成部は、
前記アドレス比較部の比較結果と、前記比較部の比較結果とに応じて、リフレッシュ要求を生成する、
ことを特徴とする請求項1に記載のメモリ制御装置。 A threshold setting unit for holding a predetermined threshold;
A comparison unit that compares the predetermined threshold value with the count value of the counter, and
The refresh request generation unit
Generating a refresh request according to the comparison result of the address comparison unit and the comparison result of the comparison unit;
The memory control device according to claim 1.
第一の閾値を保持する第一の閾値設定部と、
前記第一の閾値より大きな値の第二の閾値を保持する第二の閾値設定部と、を備えており、
前記比較部は、
第一の閾値と前記カウント値とを比較する第一の比較部と、
第二の閾値と前記カウント値とを比較する第二の比較部と、を備えている、
ことを特徴とする請求項4に記載のメモリ制御装置。 The threshold setting unit includes:
A first threshold value setting unit for holding a first threshold value;
A second threshold value setting unit that holds a second threshold value that is larger than the first threshold value,
The comparison unit includes:
A first comparison unit for comparing a first threshold value and the count value;
A second comparison unit that compares a second threshold value and the count value,
The memory control device according to claim 4.
前記第二の比較部での比較の結果、前記カウンタ値が第二の閾値よりも大きいときは、リフレッシュ要求は生成しない、
ことを特徴とする請求項5に記載のメモリ制御装置。 The refresh request generation unit
As a result of the comparison in the second comparison unit, when the counter value is larger than the second threshold value, a refresh request is not generated.
The memory control device according to claim 5.
前記第二の比較部での比較の結果、前記カウンタ値が第二の閾値以下であり、かつ、前記第一の比較部での比較の結果、前記カウンタ値が第一の閾値よりも大きいときには、前記アドレス比較部での比較の結果、前記第一のアドレスのBANKアドレスおよびROWアドレスが、前記第二のアドレスのBANKアドレスおよびROWアドレスと、それぞれ一致する場合には、リフレッシュ要求は生成せず、
前記第二の比較部での比較の結果、前記カウンタ値が第二の閾値以下であり、かつ、前記第一の比較部での比較の結果、前記カウンタ値が第一の閾値よりも大きいときには、前記アドレス比較部での比較の結果、前記第一のアドレスのBANKアドレスまたはROWアドレスが、前記第二のアドレスのBANKアドレスまたはROWアドレスと、一致しない場合には、リフレッシュ要求を生成する、
ことを特徴とする請求項5または請求項6に記載のメモリ制御装置。 The refresh request generation unit
When the counter value is less than or equal to a second threshold value as a result of comparison in the second comparison unit, and the counter value is greater than the first threshold value as a result of comparison in the first comparison unit If the BANK address and ROW address of the first address match the BANK address and ROW address of the second address, respectively, as a result of the comparison by the address comparison unit, no refresh request is generated. ,
When the counter value is less than or equal to a second threshold value as a result of comparison in the second comparison unit, and the counter value is greater than the first threshold value as a result of comparison in the first comparison unit If the BANK address or ROW address of the first address does not match the BANK address or ROW address of the second address as a result of the comparison by the address comparison unit, a refresh request is generated.
The memory control device according to claim 5, wherein the memory control device is a memory control device.
前記第一の比較部での比較の結果、前記カウンタ値が第一の閾値以下のときは、リフレッシュ要求を生成する、
ことを特徴とする請求項5ないし請求項7のいずれかに記載のメモリ制御装置。 The refresh request generation unit
As a result of the comparison in the first comparison unit, when the counter value is less than or equal to the first threshold, a refresh request is generated.
8. The memory control device according to claim 5, wherein the memory control device is a memory control device.
前記所定の閾値と前記カウンタのカウント値とを比較する比較部と、をさらに備えており、
前記リフレッシュ要求生成部は、
前記アイドルサイクル検出部のアイドルサイクルの検出と、前記比較部の比較結果とに応じて、リフレッシュ要求を生成する、
ことを特徴とする請求項2に記載のメモリ制御装置。 A threshold setting unit for holding a predetermined threshold;
A comparison unit that compares the predetermined threshold value with the count value of the counter, and
The refresh request generation unit
In response to detection of an idle cycle of the idle cycle detection unit and a comparison result of the comparison unit, a refresh request is generated.
The memory control device according to claim 2.
前記比較部での比較の結果、前記カウンタ値が前記所定の閾値よりも大きいときは、リフレッシュ要求は生成しない、
ことを特徴とする請求項9に記載のメモリ制御装置。 The refresh request generation unit
As a result of the comparison in the comparison unit, when the counter value is larger than the predetermined threshold, a refresh request is not generated.
The memory control device according to claim 9.
前記比較部での比較の結果、前記カウンタ値が前記所定の閾値以下であり、かつ、前記アイドルサイクル検出部が前記アイドルサイクルを検出したときには、前記リフレッシュ要求を生成し、
前記比較部での比較の結果、前記カウンタ値が前記所定の閾値以下であり、かつ、前記アイドルサイクル検出部が前記アイドルサイクルを検出しないときには、前記リフレッシュ要求を生成しない、
ことを特徴とする請求項9または請求項10に記載のメモリ制御装置。 The refresh request generation unit
As a result of the comparison in the comparison unit, when the counter value is equal to or less than the predetermined threshold value and the idle cycle detection unit detects the idle cycle, the refresh request is generated,
As a result of the comparison in the comparison unit, when the counter value is equal to or less than the predetermined threshold and the idle cycle detection unit does not detect the idle cycle, the refresh request is not generated.
The memory control device according to claim 9 or 10, wherein
前記メモリアクセス要求と、前記リフレッシュ要求とを調停し、前記リフレッシュ要求を優先して、前記コマンド発行部に対して出力する要求調停部と、をさらに備えている、
ことを特徴とする請求項1ないし請求項11のいずれかに記載のメモリ制御装置。 A command issuing unit for issuing a command sequence for the memory in the order of acceptance;
A request arbitration unit that arbitrates the memory access request and the refresh request, and prioritizes the refresh request and outputs the request to the command issuing unit;
12. The memory control device according to claim 1, wherein the memory control device is a memory control device.
前記アクティブROW情報を内部状態として保持している、
ことを特徴とする請求項12に記載のメモリ制御装置。 The command issuing unit
Holding the active ROW information as an internal state;
The memory control device according to claim 12.
前記コマンド発行部は、
前記バンク毎に、前記アクティブROW情報を内部情報として保持している、
ことを特徴とする請求項13に記載のメモリ制御装置。 The memory is composed of at least two banks,
The command issuing unit
The active ROW information is held as internal information for each bank.
The memory control device according to claim 13.
前記メモリに対するアクセスがないアイドルサイクルを検出するアイドルサイクル検出部と、
前記アドレス比較部の比較結果と、前記アイドルサイクル検出部のアイドルサイクルの検出とに応じて、メモリに対するリフレッシュ要求を生成するリフレッシュ要求生成部とを、
備えることを特徴とするメモリ制御装置。
An address comparison unit that compares the first address in the active information indicating the active state of the memory with the second address in the memory access request;
An idle cycle detector for detecting an idle cycle without access to the memory;
A refresh request generator for generating a refresh request for the memory in response to a comparison result of the address comparator and detection of an idle cycle of the idle cycle detector;
A memory control device comprising:
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004176511A JP4463019B2 (en) | 2004-06-15 | 2004-06-15 | Memory control device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004176511A JP4463019B2 (en) | 2004-06-15 | 2004-06-15 | Memory control device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2006004464A true JP2006004464A (en) | 2006-01-05 |
| JP4463019B2 JP4463019B2 (en) | 2010-05-12 |
Family
ID=35772757
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004176511A Expired - Fee Related JP4463019B2 (en) | 2004-06-15 | 2004-06-15 | Memory control device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4463019B2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009157549A (en) * | 2007-12-26 | 2009-07-16 | Yokogawa Electric Corp | SDRAM refresh control device |
-
2004
- 2004-06-15 JP JP2004176511A patent/JP4463019B2/en not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009157549A (en) * | 2007-12-26 | 2009-07-16 | Yokogawa Electric Corp | SDRAM refresh control device |
Also Published As
| Publication number | Publication date |
|---|---|
| JP4463019B2 (en) | 2010-05-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9293188B2 (en) | Memory and memory controller for high reliability operation and method | |
| CN115516563B (en) | Refresh management for DRAM | |
| US5889714A (en) | Adaptive precharge management for synchronous DRAM | |
| JP6730453B2 (en) | Fine grain refresh | |
| US9281046B2 (en) | Data processor with memory controller for high reliability operation and method | |
| US9418723B2 (en) | Techniques to reduce memory cell refreshes for a memory device | |
| JP6783824B2 (en) | Timing control in quantum memory system | |
| JP7749662B2 (en) | DRAM refresh management list | |
| KR100685547B1 (en) | Memory control system and memory bank refresh method | |
| CN101981548B (en) | Memory throughput increase via fine granularity of precharge management | |
| JP2019520640A (en) | Self-refresh state machine MOP array | |
| US10430113B2 (en) | Memory control circuit and memory control method | |
| CN114077384A (en) | Memory device and method for controlling refresh operation of memory device | |
| US9514800B1 (en) | DRAM and self-refresh method | |
| JP2003007054A (en) | Semiconductor storage device | |
| TW201917558A (en) | Minimizing performance degradation due to refresh operations in memory sub-systems | |
| US7894290B2 (en) | Method and apparatus for performing internal hidden refreshes while latching read/write commands, address and data information for later operation | |
| US7093067B2 (en) | DRAM architecture enabling refresh and access operations in the same bank | |
| US10216658B2 (en) | Refreshing of dynamic random access memory | |
| CN101038783B (en) | Semiconductor memory, memory system, and method of operating the memory system | |
| US7778103B2 (en) | Semiconductor memory device for independently selecting mode of memory bank and method of controlling thereof | |
| JP4463019B2 (en) | Memory control device | |
| US12488823B2 (en) | Memory device and operation method thereof | |
| KR20110131634A (en) | Bank Group Refresh Control | |
| JP5861553B2 (en) | MEMORY CONTROL METHOD, MEMORY CONTROLLER, AND ELECTRONIC DEVICE |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070508 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090818 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091007 |
|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20091007 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100216 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100216 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130226 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130226 Year of fee payment: 3 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140226 Year of fee payment: 4 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| LAPS | Cancellation because of no payment of annual fees |