JP2016212524A - Memory controller and method for controlling the same - Google Patents
Memory controller and method for controlling the same Download PDFInfo
- Publication number
- JP2016212524A JP2016212524A JP2015093536A JP2015093536A JP2016212524A JP 2016212524 A JP2016212524 A JP 2016212524A JP 2015093536 A JP2015093536 A JP 2015093536A JP 2015093536 A JP2015093536 A JP 2015093536A JP 2016212524 A JP2016212524 A JP 2016212524A
- Authority
- JP
- Japan
- Prior art keywords
- command
- pattern
- memory controller
- dram
- error
- 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
Images
Abstract
Description
本発明は、メモリコントローラに関し、特に、メモリがコマンドを正しく受信できなかった際にコマンドを再送するメモリコントローラに関する。 The present invention relates to a memory controller, and more particularly to a memory controller that retransmits a command when the memory cannot receive the command correctly.
DRAMはメモリコントローラからチップ選択信号(以降、「CS」とも記載する。)を受信すると、同一クロックサイクルで受信したコマンド信号及びアドレス信号をデコードする。そして、DRAMは、デコードしたコマンドの種類を解釈し、処理対象のデータを保持するメモリセルやDRAMの動作モードを記憶するモードレジスタなどの操作を実行する。 When the DRAM receives a chip selection signal (hereinafter also referred to as “CS”) from the memory controller, the DRAM decodes the received command signal and address signal in the same clock cycle. Then, the DRAM interprets the type of the decoded command and executes operations such as a memory cell that holds data to be processed and a mode register that stores the operation mode of the DRAM.
近年、DRAMの規格として、DDR4 SDRAMが登場している。DDR4 SDRAMのコマンドの送受信は、800MHzから1.6GHzのクロックに同期して行われる。DDR4 SDRAMは、従来のDRAMよりも高速である。そのため、DDR4 SDRAM(以下、単に「DRAM」、「メモリデバイス」とも記載する。)では、RAS、CAS、WEを含むアドレス、バンクグループ、バンクアドレス、アクティベーションコマンド信号が正しく受信されたかを検証するCA(Command Address)パリティと呼ばれる機能がサポートされている。メモリコントローラは、CSを送信すると同時に、パリティビットをDRAMに送信する。DRAMは、受信したコマンド・アドレスに対するパリティビットを検証する。DRAMは、CAパリティエラー(以下、単に「パリティエラー」、「エラー」とも記載する。)を検出すると、エラーが起きたことをメモリコントローラに通知する。(非特許文献1参照) In recent years, DDR4 SDRAM has appeared as a DRAM standard. Transmission / reception of commands of the DDR4 SDRAM is performed in synchronization with a clock of 800 MHz to 1.6 GHz. DDR4 SDRAM is faster than conventional DRAM. Therefore, the DDR4 SDRAM (hereinafter also referred to simply as “DRAM” or “memory device”) verifies whether the address including RAS, CAS, and WE, the bank group, the bank address, and the activation command signal are correctly received. A function called CA (Command Address) parity is supported. The memory controller transmits a parity bit to the DRAM simultaneously with transmitting CS. The DRAM verifies the parity bit for the received command address. When the DRAM detects a CA parity error (hereinafter also simply referred to as “parity error” or “error”), the DRAM notifies the memory controller that an error has occurred. (See Non-Patent Document 1)
CAパリティエラーが起こる前の数サイクルは、コマンドが実行されたか分からず、CAパリティエラーが起こった後の数サイクルは、コマンドが実行されない。CAパリティエラーが発生すると、メモリコントローラは、CAパリティエラーが起こる前後数サイクルで、メモリコントローラからDRAMに送ったけれども、DRAMに実行されなかった可能性のあるコマンドをDRAMに再送する必要がある。 The number of cycles before the CA parity error occurs is not known whether the command has been executed, and the number of cycles after the CA parity error has not been executed. When a CA parity error occurs, the memory controller needs to re-send to the DRAM commands that may have been sent from the memory controller to the DRAM in several cycles before and after the CA parity error occurred, but may not have been executed on the DRAM.
コマンドの再送を実現するために、例えば、DRAMに発行したコマンドを一定時間格納するコマンド保持回路(「再送バッファ」と同じ)をメモリコントローラに設けることが考えられる。コマンド保持回路(再送バッファ)には、コマンドだけでなくアドレス、パリティビットなども格納する。 In order to realize command retransmission, for example, a command holding circuit (same as “retransmission buffer”) for storing a command issued to the DRAM for a certain period of time may be provided in the memory controller. The command holding circuit (retransmission buffer) stores not only commands but also addresses and parity bits.
CAパリティエラーが起こり、コマンド保持回路(再送バッファ)のコマンドを再送すると、通常のコマンド発行を待たせることになり、メモリアクセスの応答時間が長くなる。 When a CA parity error occurs and a command in the command holding circuit (retransmission buffer) is retransmitted, normal command issuance is waited, and the response time of memory access becomes longer.
コマンドの再送が発生すると、メモリアクセスのデータバスの使用効率が低下し、メモリアクセスの応答時間が長くなる。DRAMのアクセス性能を低下させないためには、極力、CAパリティエラーが発生しないようにメモリコントローラが制御する必要がある。 When a command is retransmitted, the use efficiency of the memory access data bus is reduced, and the response time of the memory access is increased. In order not to deteriorate the access performance of the DRAM, it is necessary for the memory controller to control the CA parity error as much as possible.
CAパリティエラーの発生要因の一つに、メモリコントローラとDRAM間の伝送線路での信号減退がある。信号減退は、同一論理レベルが連続した後に論理レベルが変化した場合に大きくなることが知られている。信号減退が起こった場合に、伝送される信号が伝送されるはずだった信号と異なってしまう。このような原因で発生する信号伝送のエラーは、パターン感度ビットエラーと呼ばれている。 One of the causes of CA parity errors is signal degradation on the transmission line between the memory controller and the DRAM. It is known that the signal decay increases when the logic level changes after the same logic level continues. When signal degradation occurs, the transmitted signal is different from the signal that was supposed to be transmitted. An error in signal transmission caused by such a cause is called a pattern sensitivity bit error.
パターン感度ビットエラーを防止する技術として、論理レベルが変化した後の信号減退を補正する技術がある。この技術では、論理レベルが変化した後の信号レベルを、論理レベルが連続する際の信号レベルよりも上げる(特許文献1参照)。この技術は、プリエンファシスと呼ばれ、この技術を採用する際には専用の出力バッファ回路が必要となる。 As a technique for preventing a pattern sensitivity bit error, there is a technique for correcting a signal decrease after a logic level changes. In this technique, the signal level after the logic level is changed is higher than the signal level when the logic level continues (see Patent Document 1). This technique is called pre-emphasis, and when this technique is adopted, a dedicated output buffer circuit is required.
一方、メモリコントローラのコマンド発行のタイミング制約を緩和する、コマンド2サイクル発行という技術がある。(特許文献2参照)
図1は、コマンド2サイクル発行技術を説明する図である。以降、タイミングT1のコマンド送信方法を通常モードと呼び、タイミングT5からT6のコマンド、アドレス、パリティビットを2サイクルの期間送信するコマンド送信方法を、コマンド2サイクルモードと呼ぶ。
On the other hand, there is a technique called command two-cycle issuance that relaxes the timing constraints of memory controller command issuance. (See Patent Document 2)
FIG. 1 is a diagram for explaining a command two-cycle issue technique. Hereinafter, the command transmission method at timing T1 is referred to as a normal mode, and the command transmission method for transmitting commands, addresses, and parity bits from timing T5 to T6 for a period of 2 cycles is referred to as a command 2 cycle mode.
コマンド2サイクルモードは、CS以外の信号を1サイクル目、2サイクル目に連続して送信し、CS以外の信号レベルが安定する2サイクル目にCSを送信することで、安定したコマンド発行が可能である。そのため、コマンド2サイクル発行技術は、パターン感度ビットエラーを防止する技術としても有効である。 In command 2-cycle mode, signals other than CS are sent continuously in the first and second cycles, and CS is sent in the second cycle when the signal level other than CS is stable, so stable command issuance is possible. It is. For this reason, the command two-cycle issue technique is also effective as a technique for preventing pattern sensitivity bit errors.
しかしながら、コマンド2サイクルモードは、1つのコマンドを送信するために2クロック要するため、2サイクル連続でのコマンドを発行することが出来ない。例えば、あるDRAMブロックの「リード」コマンドの次のサイクルに、別のDRAMブロックの「アクティブ」コマンドを発行することができない。また、コマンド2サイクルモードで送ると、コマンド発行が1サイクル遅れるので、それ自体がDRAMのアクセス性能を低下させている。従って、パターン感度ビットエラーが出ないように、常にコマンド2サイクルモードを使用すると、DRAMアクセス性能が低下する可能性がある。 However, since the command 2-cycle mode requires two clocks to transmit one command, it cannot issue a command for two consecutive cycles. For example, the “active” command of another DRAM block cannot be issued in the next cycle of the “read” command of one DRAM block. Further, if the command is sent in the command 2 cycle mode, the command issuance is delayed by one cycle. Therefore, if the command 2 cycle mode is always used so that a pattern sensitivity bit error does not occur, the DRAM access performance may be lowered.
本発明は上記の課題に鑑みてなされたものである。すなわち、DRAMのアクセス性能の低下を抑えつつ、CAパリティエラーの原因の1つであるパターン感度ビットエラーの発生を低減するメモリコントローラを提供することを目的とする。また、その方法を提供することを目的とする。 The present invention has been made in view of the above problems. That is, an object of the present invention is to provide a memory controller that reduces the occurrence of pattern sensitivity bit errors, which is one of the causes of CA parity errors, while suppressing a decrease in DRAM access performance. Moreover, it aims at providing the method.
本発明に係るメモリコントローラは以下の構成を備える。即ち、アドレス、パリティビット、チップセレクトを含むコマンドをメモリに送信する送信手段と、前記送信手段が送信したコマンドを保持する第1保持手段と、前記コマンドの送信におけるエラーパターンを保持する第2保持手段と、前記送信手段が次に送信するコマンドの少なくとも一部と、当該コマンドの前に前記送信手段が送信し前記第1保持手段に保持されるコマンドの少なくとも一部と、からなる送信パターンが、前記第2保持手段に保持されたエラーパターンに当てはまる場合、前記次に送信するコマンドの送信サイクル数を変更するように前記送信手段を制御する制御手段。 The memory controller according to the present invention has the following configuration. That is, a transmitting unit that transmits a command including an address, a parity bit, and a chip select to a memory, a first holding unit that holds a command transmitted by the transmitting unit, and a second holding that holds an error pattern in the transmission of the command And a transmission pattern comprising: at least a part of a command to be transmitted next by the transmission unit; and at least a part of the command transmitted by the transmission unit and held in the first holding unit before the command. Control means for controlling the transmission means so as to change the number of transmission cycles of the next command to be transmitted when the error pattern held in the second holding means applies.
本発明によれば、パターン感度ビットエラーのエラーパターンの発生を低減させることができる。 According to the present invention, it is possible to reduce the occurrence of an error pattern of pattern sensitivity bit errors.
[第1実施形態]
図2は第1実施形態におけるメモリコントローラ100の概略構成例である。メモリコントローラ100は、DRAM900(DDR4 SDRAM)に接続されている。メモリコントローラ100は、DRAM900に、CS(チップセレクトというチップ選択信号)、コマンド、アドレス、パリティビットからなるDRAMコマンドを送信する。DRAMコマンドには、RAS#、CAS#、WEを含んでいる。以降、「送信」と「発行」を同じ意味で用いる。
[First Embodiment]
FIG. 2 is a schematic configuration example of the
CA(Command Address)パリティのパリティビットについて説明する。コマンドを示す信号線とアドレスを示す信号線があり、それらのビットのうちHighになっているビット数が奇数か偶数かで、メモリコントローラはパリティビットを作る。そして、パリティビットをコマンド、アドレスに付加して送る。パリティビットは、DRAM900側でチェックビットとして用いられる。
The parity bit of CA (Command Address) parity will be described. There are a signal line indicating a command and a signal line indicating an address, and the memory controller generates a parity bit depending on whether the number of bits that are High is odd or even. Then, the parity bit is added to the command and address and sent. The parity bit is used as a check bit on the
DRAM900は、受信したコマンド信号、アドレス信号のHighのビット数からパリティビットを作る。そして、メモリコントローラから送られてきたパリティビットと比較するパリティチェックを行う。比較結果が異なれば、CAパリティエラーである。DRAM900は、CAパリティエラーを検出すると、所定時間後にメモリコントローラ100にCAパリティエラーの発生を通知する。
The
メモリコントローラ100はメモリアクセス要求を受信すると、受信したメモリアクセス要求をDRAMコマンドに変換して、コマンドQueue300に格納する。
When the
また、コマンドQueue300には、DRAMのリフレッシュや、キャリブレーションを実行する為のメモリアクセス要求以外のDRAMコマンドも格納される。 The command Queue 300 also stores DRAM commands other than DRAM memory refresh requests and memory access requests for executing calibration.
コマンド発行回路201は、コマンドQueue300からDRAMコマンドを受信し、DRAMコマンドの送信タイミングを制御して、DRAM900に送信する。DRAMコマンド送信間隔は、DRAM仕様で定められている。例えば、「アクティブコマンドとリードコマンドは、tRCDというパラメータで定義された時間間隔をあける」仕様である。
The
DRAMコマンド保持回路203は、DRAM900に送信したDRAMコマンドを、一定時間保持する。CAパリティエラー発生時に、DRAMコマンドを再送するので保持している。一定時間経過後、DRAMコマンドを破棄する。DRAMコマンド保持回路203は、DRAM900がパリティビットを用いてパリティチェックを実行する実行時間分、DRAMコマンドを保持可能な容量を持てば良い。DRAMコマンド保持回路203は、コマンド発行回路201がDRAMコマンドを送っていない間も、DRAMに送信した信号レベルをそのまま保持する。
The DRAM
エラーパターン保持回路204は、DRAM900からCAパリティエラーの発生を通知されると、DRAMコマンド保持回路203に格納されているDRAMコマンドを参照する。そして、エラーパターン保持回路204は、CAパリティエラーが発生したDRAMコマンドを、エラーパターンとして保持する。以降の実施形態では、このエラーパターンは、パターン感度ビットエラーのパターンである。
When the occurrence of a CA parity error is notified from the
コマンド2サイクルモード要求回路400は、エラーパターン保持回路204から、エラーパターンを受信する。また、DRAMコマンド保持回路203からDRAMコマンドの発行状況を受信する。そして、コマンド発行回路201から、次に発行するDRAMコマンドの情報を受信して、次に発行するDRAMコマンドを通常モードで送信すると、エラーパターンと一致する場合に、コマンド発行回路201に、コマンド2サイクルモード要求を通知する。つまり、次に発行するDRAMコマンドの信号レベルと、直前のDRAMコマンドの信号レベルと、からなる送信パターンが、エラーパターン保持回路204に保持されているエラーパターンと一致している場合に、コマンド発行回路201に、コマンド2サイクルモード要求を通知している。
The command 2 cycle
コマンド発行回路201は、コマンド2サイクルモード要求回路400からコマンド2サイクルモード要求を受信しない場合は、通常モードでDRAMコマンドを発行する。コマンド2サイクルモード要求を受信する場合は、チップセレクト以外の送信サイクル数を変更し、コマンド2サイクルモードでDRAMコマンドを発行する。このようにして、コマンド2サイクルモード要求回路400は、コマンド発行回路201を制御する。
When the
図3は第1実施形態におけるメモリコントローラ100の動作波形例である。CS、エラーはLOWアクティブな信号である。メモリコントローラ100は、DRAMコマンドを送信しないサイクルでは、コマンド、アドレス、パリティビットを0にする。ここでは、DRAM900がDRAMコマンドを受信してから3サイクル後までにメモリコントローラ100がCAパリティエラーを受信しなければ、DRAMコマンドがDRAMに正しく受信されたものとする。
FIG. 3 is an example of operation waveforms of the
タイミングT1にDRAM900がコマンドAを受信し、メモリコントローラ100はタイミングT4までにCAパリティエラーを受信しなかったため、コマンドAのDRAMでの受信において、CAパリティエラーが発生していないことを示している。
Since the
タイミングT4にDRAMがコマンドBを受信し、メモリコントローラはタイミングT7にCAパリティエラーを受信しているので、メモリコントローラ100は、コマンドBのDRAM900での受信において、CAパリティエラーが発生したことを検出する。
Since the DRAM receives the command B at timing T4 and the memory controller receives a CA parity error at timing T7, the
CAパリティエラーの検出に伴い、メモリコントローラ100はエラーパターンを生成する。本動作波形の場合、コマンドBの発行前のタイミングT2、T3の2サイクル期間コマンド、アドレス、パリティビットは0であるため、「2サイクル以上0が連続した後のコマンドBの発行」というエラーパターンが生成される。このように、エラーパターンは「Nサイクル以上同じ信号が連続した後のコマンドXの発行」となる。そして、このエラーパターンは、エラーパターン保持回路204に保持される。
Along with the detection of the CA parity error, the
DRAM900は、タイミングT9にコマンドCを受信する。コマンドCのコマンド発行は、エラーパターン保持回路204に保持されたエラーパターンと一致しないので、通常モードでDRAMコマンドが発行される。
The
タイミングT9サイクルで、次に発行するDRAMコマンドがコマンド発行回路201に転送され、コマンド2サイクルモード要求回路400は、次に発行するコマンドがコマンドBであることを認識する。次に、タイミングT10、T11の2サイクル期間、コマンド、アドレス、パリティビットで0が連続したことがDRAMコマンド保持回路203に格納される。DRAMの仕様により、DRAMコマンドの発行間隔は3サイクル以上空ける必要がある。
At the timing T9 cycle, the DRAM command to be issued next is transferred to the
コマンド2サイクルモード要求回路400は、コマンド、アドレス、パリティビットで0がタイミングT10、T11の2サイクル連続していることをDRAMコマンド保持回路203から受信する。コマンド2サイクルモード要求回路400は、次のコマンドがコマンドBであることを既に認識しているので、エラーパターン保持回路204に保持されたエラーパターンと、次に送るDRAMコマンドを含む送信パターンとの一致を検出する。コマンド2サイクルモード要求回路400は、タイミングT12でコマンド2サイクルモード要求を通知する。
The command 2-cycle
メモリコントローラ100は、タイミングT12、T13サイクルに、コマンド2サイクルモードでチップセレクト以外のコマンドBを発行する。チップセレクトは2サイクル目のタイミングT13に発行する。
The
上記の通り、本実施形態ではDRAM900からCAパリティエラーを受信すると、複数サイクルに亘るDRAMコマンドをエラーパターン保持回路204にエラーパターンとして保持する。そして、同様の送信パターンが発生する場合に、メモリコントローラ100のコマンド2サイクルモード要求回路400が、コマンド2サイクルモードでDRAMコマンドを発行して、CAパリティエラーの発生を抑制する。コマンド2サイクルモード要求回路400は、2サイクル以上連続でDRAMコマンドを発行しても良い。その場合、チップセレクトは2サイクル目以降に発行する。また、コマンド2サイクルモード要求回路400は、チップセレクト以外のDRAMコマンドをチップセレクトの少なくとも1サイクル前から2サイクル以上連続して発行していると言い換えることができる。
As described above, in the present embodiment, when a CA parity error is received from the
本実施形態では、DRAM900からCAパリティエラーを受信すると、エラーパターンを生成し、エラーパターン保持回路204に保持するメモリコントローラに関する説明をした。エラーパターン保持回路204には、予め、レジスタアクセス等でエラーパターンを直接書き込んで保持させても良い。
In the present embodiment, the memory controller that generates an error pattern and holds it in the error
[第2実施形態]
第2実施形態では、コマンド、アドレス、パリティビットの一部である各ビットの状態に着目したエラーパターン生成するメモリコントローラを説明する。
[Second Embodiment]
In the second embodiment, a memory controller that generates an error pattern focusing on the state of each bit that is a part of a command, an address, and a parity bit will be described.
本実施形態における回路構成例は、第1実施形態と同様のため、説明を省略する。第1実施形態との差異は、エラーパターン保持回路204に保持するエラーパターンである。
Since the circuit configuration example in the present embodiment is the same as that in the first embodiment, description thereof is omitted. The difference from the first embodiment is an error pattern held in the error
図4は、第2実施形態におけるエラーパターン生成を説明する図である。メモリコントローラ100は、タイミングT5でコマンドA、タイミングT8でコマンドB、タイミングT11でコマンドCを発行している。本実施形態では、メモリコントローラ100は、コマンド、アドレス、パリティビットを、次のDRAMコマンドを発行するまで、前のDRAMコマンドを発行した時の値に保ち、0レベルに戻さない。
FIG. 4 is a diagram for explaining error pattern generation in the second embodiment. The
タイミングT12で、メモリコントローラ100は、DRAM900からCAパリティエラーを受信し、タイミングT11のコマンドCでCAパリティエラーが発生したことを検出する。タイミングT8に発行されたコマンドBは、3サイクル経過後のタイミングT11までにCAパリティエラーを通知されていないので、DRAM900に正常に受信されている。
At timing T12, the
説明を簡単にするため、本動作波形ではコマンド、アドレス、パリティビットがビット0からビット5までの6ビットで構成されているものとする。例えば、コマンド3ビット、アドレス2ビット、パリティビット1ビットである。
In order to simplify the description, it is assumed that the command, address, and parity bits are composed of 6 bits from
本動作波形の場合、ビット1、ビット3は、コマンドAを発行してからコマンドCを発行するまで信号レベルが変化していない。ビット0、ビット2、ビット4は、コマンドCを発行するために信号のレベルを反転させており、反転される前の信号レベルはタイミングT8からタイミングT10までの3サイクル連続している。ビット5も、コマンドCを発行するために信号を反転させており、反転される前の信号レベルはタイミングT4からタイミングT10までの6サイクル連続している。
In the case of this operation waveform, the signal level of
パターン感度ビットエラーの要因は、同一論理レベルが連続した後に論理レベルが変化した場合の信号減退であり、第2実施形態におけるエラーパターンは、以下に示す2つの例のようにエラーパターン保持回路204に保持する。
・エラーパターンA ビット5が6サイクル以上、信号レベルが連続した後の信号レベルの変化
・エラーパターンB 6サイクル以上、信号レベルが連続した後の信号レベルの変化
尚、「3サイクル以上、信号レベルが連続した後の信号レベルの変化」は、コマンドBのDRAM900での受信においてCAパリティエラーが起こっていないので、エラーパターン例に含めない。
The cause of the pattern sensitivity bit error is signal decrease when the logic level changes after the same logic level continues. The error pattern in the second embodiment is an error
-Error pattern A Change in signal level after bit 5 is 6 cycles or more and signal level is continuous-Error pattern B Change in signal level after 6 cycles or more and signal level is continuous Note that "3 or more cycles, signal level "Change in signal level after continuation" is not included in the error pattern example because no CA parity error has occurred in the reception of the command B by the
図5は第2実施形態におけるエラーパターンAを適応したメモリコントローラ100の動作波形例である。メモリコントローラ100は、タイミングT11にコマンドCを発行する際に、その前のサイクルで、ビット5が6サイクル連続で0であることを検出し、コマンド2サイクルモードでコマンドCを発行する。尚、コマンドA、Bは、CSと同時にコマンドが変化しているので、コマンド2サイクルモードで発行されていない。コマンドCを変化した次のサイクルでCSを発行しているので、コマンドCは、コマンド2サイクルモードで発行されている。
FIG. 5 is an example of operation waveforms of the
コマンド2サイクルモード要求回路400が、コマンド発行回路201、エラーパターン保持回路204、DRAMコマンド保持回路203から情報を受信している。それにより、コマンド2サイクルモード要求回路400が、次のDRAMコマンドを含む送信パターンが、エラーパターン保持回路204に保持されているエラーパターンと一致するので、パターン感度ビットエラーを原因とするCAパリティエラーを起こしそうだと判断する。そして、そのエラーを防止している。具体的には、メモリコントローラ100がタイミングT11でコマンドCを発行したときに、DRAM900側でCAパリティエラーが発生することを防止できている。
The command 2-cycle
一方、タイミングT14でコマンドDを発行する際、ビット3において、9サイクル信号レベルが連続した後に反転されるが、エラーパターン保持回路204に保持されているエラーパターンと一致しないと、コマンド2サイクルモード要求回路400に判断される。そのため、コマンド2サイクルモード要求回路400からは、コマンド2サイクルモード要求されず、コマンド発行回路201から、通常モードでDRAMコマンドが発行される。
On the other hand, when the command D is issued at the timing T14, in the
図6は第2実施形態におけるエラーパターンBを適応したメモリコントローラ100の動作波形例である。メモリコントローラ100は、タイミングT11にコマンドCを発行する際に、ビット5が6サイクル連続で0であることを検出し、コマンド2サイクルモードでコマンドCを発行する。さらに、メモリコントローラ100は、タイミングT14にコマンドDを発行する際にも、ビット3が6サイクル以上連続で1であることを検出し、コマンド2サイクルモードでコマンドDを発行する。その結果、メモリコントローラ100がコマンドCを発行したときに、DRAM900側でCAパリティエラーが発生することを防止できている。
FIG. 6 is an operation waveform example of the
本実施形態では、メモリコントローラ100が、各ビットの信号レベルの連続に着目してエラーパターンを生成することを説明してきた。同一信号レベルの連続に加え、さらに、信号レベルそのものをエラーパターンの条件に含んでも良い。図4の動作波形例で説明すると、エラーパターンAは「ビット5が、6サイクル以上“0”が連続した後の、“1”への変化」、エラーパターンBは「6サイクル以上、“0”が連続した後の、“1”への変化」となる。
In the present embodiment, it has been described that the
上記の通り、本実施形態では、メモリコントローラ100が、DRAM900からCAパリティエラーを受信すると、発行したDRAMコマンドの各ビットの状態からエラーパターンをエラーパターン保持回路204に保持する。そして、同様のパターンが発生する場合に、メモリコントローラ100のコマンド2サイクルモード要求回路は、コマンド2サイクルモードでDRAMコマンドを発行して、CAパリティエラーの発生を抑制する。
As described above, in this embodiment, when the
また、本実施形態では、DRAM900からCAパリティエラーを受信すると、エラーパターンを生成し、エラーパターン保持回路204に保持するメモリコントローラ100に関する説明をした。エラーパターン保持回路204に、予め、レジスタアクセス等でエラーパターンを直接書き込んで保持させても良い。
In this embodiment, the
[第3実施形態]
図7は第3実施形態におけるメモリコントローラ100の概略構成例である。メモリコントローラ100は、DRAM900(DDR4 SDRAM)に接続され、DRAM900に、CS、コマンド、アドレス、パリティビットからなるDRAMコマンドを送信する。DRAM900は、第1実施形態と同様に、DRAMコマンドのパリティチェックを行い、CAパリティエラーを検出すると、一定時間後にメモリコントローラ100にCAパリティエラーの発生を通知する。
[Third Embodiment]
FIG. 7 is a schematic configuration example of the
メモリコントローラ100はメモリアクセス要求を受信すると、受信したメモリアクセス要求をDRAMコマンドに変換して、コマンドQueue300に格納する。
When the
また、コマンドQueue300には、DRAMのリフレッシュや、キャリブレーションを実行する為のメモリアクセス要求以外のDRAMコマンドも格納される。
The
コマンド発行回路201は、コマンドQueue300からDRAMコマンドを受信し、DRAMコマンドの送信タイミングを制御して、選択回路601に送信する。
The
選択回路601は、コマンド発行回路201からのDRAMコマンドを受信すると、受信したDRAMコマンドをDRAM900に送信し、コマンド発行回路201からのDRAMコマンドを受信しない場合は、トグル生成回路600から受信したトグルパターンを、DRAM900に送信する。
When receiving the DRAM command from the
DRAMコマンド保持回路203は、DRAM900に送信したDRAMコマンドを、一定時間保持する。CAパリティエラー発生時に、DRAMコマンドを再送するので保持している。一定時間経過後、DRAMコマンドを破棄する。DRAMコマンド保持回路203は、DRAM900がパリティビットを用いてパリティチェックを実行する実行時間分、DRAMコマンドを保持可能な容量を持てば良い。DRAMコマンド保持回路203は、コマンド発行回路201がDRAMコマンドを送っていない間も、DRAMに送信した信号レベルをそのまま保持する。
The DRAM
エラーパターン保持回路204は、DRAM900からCAパリティエラーの発生を通知されると、DRAMコマンド保持回路203に格納されているDRAMコマンドを参照する。そして、エラーパターン保持回路204は、CAパリティエラーが発生したDRAMコマンドを含む発行パターンから、エラーパターンを生成して保持する。このエラーパターンは、パターン感度ビットエラーのパターンである。
When the occurrence of a CA parity error is notified from the
トグル生成回路600は、エラーパターン保持回路204から、エラーパターンを受信して、次に発行するDRAMコマンドがエラーパターンに当てはまらないようにコマンド、アドレス、パリティビットをトグルさせるトグルパターンを生成する。
The
図8は、第3実施形態におけるメモリコントローラの動作波形例である。タイミングT0にDRAMがコマンドAを受信し、メモリコントローラはタイミングT4までにCAパリティエラーを受信しなかったため、コマンドAのDRAMでの受信においては、CAパリティエラーが発生していない。タイミングT5にDRAMがコマンドBを受信し、メモリコントローラはタイミングT8にCAパリティエラーを受信するので、メモリコントローラは、コマンドBのDRAMでの受信において、CAパリティエラーが発生したことを検出する。 FIG. 8 is an example of operation waveforms of the memory controller in the third embodiment. Since the DRAM receives the command A at the timing T0 and the memory controller does not receive the CA parity error by the timing T4, the CA parity error does not occur when the command A is received by the DRAM. Since the DRAM receives the command B at timing T5 and the memory controller receives a CA parity error at timing T8, the memory controller detects that a CA parity error has occurred when receiving the command B in the DRAM.
CAパリティエラーの検出に伴い、メモリコントローラはエラーパターンを生成する。本動作波形の場合、コマンドBの前のタイミングT1、T2、T3、T4の4サイクル期間コマンド、アドレス、パリティビットは0であるため、「4サイクル以上の信号レベルの連続」というエラーパターンが生成される。 With the detection of the CA parity error, the memory controller generates an error pattern. In the case of this operation waveform, since the command, address, and parity bit are 0 during the 4-cycle period of timing T1, T2, T3, and T4 before command B, an error pattern of “continuation of signal level of 4 cycles or more” is generated. Is done.
タイミングT8以降、トグル生成回路600は、2サイクルごとにコマンド、アドレス信号をトグルさせるトグル信号を生成する。本実施形態では、コマンド、アドレス、パリティビットを2サイクル間隔で全ビット0と、全ビット1とするトグル信号の生成が続くが、各ビットの信号レベルが連続しないように制御すればよく、同じタイミングで同じ信号レベルに変化させる必要は無い。
After timing T8, the
2サイクルごとに信号をトグルさせると、同一信号レベルの連続は最大3サイクルとなる。4サイクル以上の信号レベルの連続を防げる。最大3サイクル同一信号レベルが連続するのは、トグル生成回路600の2サイクル連続での同一信号レベルの出力と、コマンド発行回路201のトグル生成回路600と同一信号レベルでのコマンド出力とが、連続する場合に発生する。
If the signal is toggled every two cycles, the continuation of the same signal level is a maximum of three cycles. Prevents signal levels from continuing for more than 4 cycles. The same signal level continues for a maximum of three cycles because the output of the same signal level in the two consecutive cycles of the
選択回路601は、コマンド発行回路201からDRAMコマンドが入力された場合は、コマンド発行回路201が生成したDRAMコマンドを選択し、それ以外の場合は、トグル生成回路600が生成したDRAMコマンドを選択する。
The
図8では、メモリコントローラ100は、タイミングT13でコマンドCを発行している。タイミングT13以外の期間では、メモリコントローラ100はトグル生成回路600が生成したコマンドを送信する。
In FIG. 8, the
上記の通り、本実施形態ではDRAM900からCAパリティエラーを受信すると、エラー前に信号レベルが連続したサイクル数をエラーパターンとして保持する。そして、同様のパターンが発生しないように、トグル生成回路でコマンド信号をトグルさせて、CAパリティエラーの再発を抑制する。
As described above, in this embodiment, when a CA parity error is received from the
また、本実施形態では、DRAMからCAパリティエラーを受信すると、エラーパターンを生成し、エラーパターン保持回路204に保持メモリコントローラに関する説明をした。エラーパターン保持回路204に、予め、レジスタアクセス等でエラーパターンを直接書き込んで保持させても良い。
In this embodiment, when a CA parity error is received from the DRAM, an error pattern is generated and the error
本実施形態では、エラーパターンを保持して、CAパリティエラーが発生しない条件で、なるべくコマンド、アドレス、パリティビットのトグルの周期を長くする実施形態を説明した。より簡単な実施方法として、例えば、コマンド、アドレス、パリティビットを1サイクルのような短い周期でトグルさせるトグル生成回路を構成すれば、エラーパターン保持回路を用いることなく、CAパリティエラーの再発を抑制することが可能である。 In the present embodiment, the embodiment has been described in which the error pattern is held and the toggle cycle of the command, address, and parity bit is made as long as possible under the condition that the CA parity error does not occur. As a simpler implementation method, for example, if a toggle generation circuit that toggles commands, addresses, and parity bits in a short cycle such as one cycle is configured, the recurrence of CA parity errors can be suppressed without using an error pattern holding circuit. Is possible.
[第4実施形態]
図9は第4実施形態におけるメモリコントローラ100の概略構成例である。第3実施形態の回路構成例との差異は、トグル生成回路600がDRAMコマンド保持回路203を用いて発行済みのDRAMコマンドを確認することである。そして、コマンドQueue300、またはコマンド発行回路201にDRAMコマンドが格納されていて、且つ、エラーパターンが発生する場合に限定して、トグル信号を生成することである。
[Fourth Embodiment]
FIG. 9 is a schematic configuration example of the
図10は、第4実施形態におけるメモリコントローラの動作波形例である。 FIG. 10 is an example of operation waveforms of the memory controller in the fourth embodiment.
タイミングT0にDRAMがコマンドAを受信し、メモリコントローラはタイミングT4までにCAパリティエラーを受信しなかったため、コマンドAのDRAMでの受信においては、CAパリティエラーが発生していない。 Since the DRAM receives the command A at the timing T0 and the memory controller does not receive the CA parity error by the timing T4, the CA parity error does not occur when the command A is received by the DRAM.
タイミングT5にDRAMがコマンドBを受信し、メモリコントローラはタイミングT8にCAパリティエラーを受信するので、メモリコントローラは、コマンドBのDRAMでの受信において、CAパリティエラーが発生したことを検出する。 Since the DRAM receives the command B at timing T5 and the memory controller receives a CA parity error at timing T8, the memory controller detects that a CA parity error has occurred when receiving the command B in the DRAM.
CAパリティエラーの検出に伴い、メモリコントローラはエラーパターンを生成する。 With the detection of the CA parity error, the memory controller generates an error pattern.
本動作波形の場合、コマンドBの前のタイミングT1、T2、T3、T4の4サイクル期間コマンド、アドレス、パリティビットは0であるため、「4サイクル以上の信号レベルの連続」というエラーパターンが生成される。 In the case of this operation waveform, since the command, address, and parity bit are 0 during the 4-cycle period of timing T1, T2, T3, and T4 before command B, an error pattern of “continuation of signal level of 4 cycles or more” is generated. Is done.
メモリコントローラは、タイミングT11でメモリアクセス要求を受信してコマンドQueue300に、DRAMコマンドが格納される。トグル生成回路600は、DRAMコマンド保持回路203から発行済みのDRAMコマンド情報を入力し、発行済みのDRAMコマンドがタイミングT8からT11の4サイクルが0であることを確認し、エラーパターン保持回路204に保持されているエラーパターンとの一致を検出する。
The memory controller receives the memory access request at timing T11, and the DRAM command is stored in the
トグル生成回路600は、タイミングT11にコマンド、アドレス、パリティビットのトグルを開始する。コマンド発行回路201は、タイミングT12にコマンドQueue300からDRAMコマンドを受信する。タイミングT13でコマンドCが発行され、コマンドQueue300、コマンド発行回路201が空になるため、タイミングT13での、コマンド、アドレス、パリティビットのトグルが行われない。実施形態3と異なり、トグル生成回路600からは、タイミングT13以降も、信号レベル1が連続して出力される。
The
上記の通り、本実施形態では、DRAMからCAパリティエラーを受信すると、そのエラー前に信号レベルが連続したサイクル数をエラーパターンとしてエラーパターン保持回路204に保持する。そして、次のDRAMコマンド発行の前から、そのDRAMコマンド発行を終えるまでの期間だけ、同様のエラーパターンが発生しないように、トグル生成回路600でコマンド信号をトグルさせる。その結果、CAパリティエラーの発生を抑制しながら、DRAM900へのメモリアクセスが無い期間の信号のトグルを抑制させる。
As described above, in the present embodiment, when a CA parity error is received from the DRAM, the number of cycles in which the signal level continues before the error is held in the error
また、本実施形態では、DRAMからCAパリティエラーを受信すると、エラーパターンを生成し、エラーパターン保持回路204に保持するメモリコントローラに関する説明をした。エラーパターン保持回路204に、予め、レジスタアクセス等でエラーパターンを直接書き込んで保持させても良い。
In this embodiment, the memory controller that generates an error pattern and stores it in the error
さらに、第3実施形態と同様に、例えば、コマンド、アドレス、パリティビットを1サイクルのような短い周期でトグルさせるトグル生成回路を構成すれば、エラーパターン保持回路を用いることなく、CAパリティエラーの再発を抑制することが可能である。 Further, as in the third embodiment, for example, if a toggle generation circuit that toggles commands, addresses, and parity bits at a short cycle such as one cycle is configured, a CA parity error can be detected without using an error pattern holding circuit. It is possible to suppress recurrence.
[第5実施形態]
図11は第5実施形態におけるメモリコントローラ100の概略構成例である。第1実施形態との差異は、トレーニング回路500が追加されていることである。
[Fifth Embodiment]
FIG. 11 is a schematic configuration example of the
本実施形態における、トレーニング回路500は、トレーニングパターンを生成する。どれぐらい信号レベルが連続した後にDRAMコマンドを発行すると、CAパリティエラーが起こり易いかを知るために、コマンド発行間隔を順次大きくするトレーニングパターンを生成している。トレーニングパターンは、DRAMコマンドで構成されている。選択回路602は、コマンド発行回路201からのDRAMコマンドを受信すると、受信したDRAMコマンドをDRAM900(DDR4 SDRAM)に送信し、トレーニング回路500からのDRAMコマンドを受信すると、受信したDRAMコマンドをDRAM900に送信する。
In the present embodiment, the training circuit 500 generates a training pattern. In order to know how long a signal level continues to issue a DRAM command and a CA parity error is likely to occur, a training pattern is generated in which the command issue interval is sequentially increased. The training pattern is composed of DRAM commands. When receiving a DRAM command from the
図12は、本実施形態おけるトレーニング回路が生成する動作波形を説明する図である。メモリコントローラ100は、DRAMコマンドを送信しないサイクルでは、コマンド、アドレス、パリティビットを0にする。
FIG. 12 is a diagram for explaining operation waveforms generated by the training circuit in the present embodiment. The
メモリコントローラ100は、コマンド発行間隔のサイクル数を順次大きくしながら、タイミングT2、T4、T7、T11、T16で、DRAMコマンドを発行し、その際の、コマンド、アドレス、パリティビットは1にする。
The
タイミングT14で、DRAMからのCAパリティエラー通知を受信すると、エラーパターン保持回路204は、タイミングT11のDRAMコマンド発行で、CAパリティエラーが発生したことを認識する。タイミングT11におけるDRAMコマンドは、コマンド、アドレス、パリティビットを3サイクル連続させた後に変化させているため、「3サイクル以上、信号レベルが連続した後のコマンド発行」というエラーパターンが、エラーパターン保持回路204に保持される。
When receiving a CA parity error notification from the DRAM at timing T14, the error
上記のトレーニング回路500によるトレーニングパターン発行動作を、メモリコントローラが、メモリアクセス要求のDRAMコマンド発行を開始する前に行う。 The training pattern issuance operation by the training circuit 500 is performed before the memory controller starts issuing a DRAM command for a memory access request.
上記説明した通り、本実施形態ではトレーニングパターン発行動作をメモリアクセス開始前に行うことで、メモリアクセス要求によるDRAMコマンド発行でのCAパリティエラーの発生を抑制する。 As described above, in this embodiment, the training pattern issuance operation is performed before the memory access is started, thereby suppressing the occurrence of a CA parity error when the DRAM command is issued due to the memory access request.
なお、本実施形態では第1実施形態のメモリコントローラの構成例にトレーニング回路を追加する構成例を説明したが、第2実施形態から第4実施形態のメモリコントローラの構成例にトレーニング回路を追加することで、本実施形態と同様の効果が得られる。 In this embodiment, the configuration example in which the training circuit is added to the configuration example of the memory controller in the first embodiment has been described. However, the training circuit is added to the configuration example of the memory controller in the second to fourth embodiments. Thus, the same effect as in the present embodiment can be obtained.
本実施形態におけるトレーニング回路が生成する動作波形は、一例であり、コマンド、アドレス、パリティビットを1ビットだけ変化させるトレーニング波形でもよい。また第2実施形態から第4実施形態のメモリコントローラにトレーニング回路を追加する際には、各実施形態で使用するエラーパターンを効率的に取得するようにトレーニングパターンを生成すると良い。 The operation waveform generated by the training circuit in the present embodiment is an example, and may be a training waveform in which the command, address, and parity bit are changed by one bit. Further, when adding a training circuit to the memory controller of the second to fourth embodiments, it is preferable to generate a training pattern so as to efficiently acquire an error pattern used in each embodiment.
100 メモリコントローラ
201 コマンド発行回路
203 DRAMコマンド保持回路
204 エラーパターン保持回路
300 コマンドQueue
400 コマンド2サイクルモード要求回路
900 DRAM
DESCRIPTION OF
400 Command 2-cycle
Claims (18)
前記送信手段が送信したコマンドを保持する第1保持手段と、
前記コマンドの送信におけるエラーパターンを保持する第2保持手段と、
前記送信手段が次に送信するコマンドの少なくとも一部と、当該コマンドの前に前記送信手段が送信し前記第1保持手段に保持されるコマンドの少なくとも一部と、からなる送信パターンが、前記第2保持手段に保持されたエラーパターンに当てはまる場合、前記次に送信するコマンドの送信サイクル数を変更するように前記送信手段を制御する制御手段と、を有することを特徴とするメモリコントローラ。 A transmission means for transmitting a command including an address, a parity bit, and a chip select to the memory;
First holding means for holding a command transmitted by the transmitting means;
Second holding means for holding an error pattern in transmission of the command;
A transmission pattern comprising at least a part of a command to be transmitted next by the transmission unit and at least a part of a command transmitted by the transmission unit and held in the first holding unit before the command is 2. A memory controller comprising: control means for controlling the transmission means so as to change the number of transmission cycles of the next command to be transmitted when the error pattern held in the holding means applies.
前記送信手段は、前記制御手段に要求されたように前記コマンドをメモリに送信することを特徴とする請求項1に記載のメモリコントローラ。 The control means transmits the command to be transmitted next to other than the chip select continuously for two cycles or more, and transmits the chip select to the transmission means to transmit the chip select after the second cycle of the command to be transmitted next. Request,
The memory controller according to claim 1, wherein the transmission unit transmits the command to the memory as requested by the control unit.
前記送信手段は、前記制御手段に要求されたように前記コマンドをメモリに送信することを特徴とする請求項1に記載のメモリコントローラ。 The control means requests the transmitting means to continuously transmit at least one cycle before the chip select from the next command to be transmitted continuously for at least two cycles.
The memory controller according to claim 1, wherein the transmission unit transmits the command to the memory as requested by the control unit.
前記コマンドに含まれる何れかのビットの信号の発行パターンについて、Nサイクル以上同じ信号が連続した後の信号の変化を示すパターンをエラーパターンとして保持するパターン保持手段と、
(N−2)以下のサイクルごとに変化するトグルパターンを生成する生成手段と、
前記コマンドと前記トグルパターンとを受信し、前記発行手段が前記コマンドを発行していない期間は前記生成手段が生成したトグルパターンを選択してメモリに送信し、前記発行手段が前記コマンドを発行している期間は前記コマンドを選択してメモリに送信する選択手段と、を有することを特徴とするメモリコントローラ。 Issuing means for issuing a command including an address, a parity bit, and a chip select;
A pattern holding means for holding, as an error pattern, a pattern indicating a change in signal after the same signal continues for N cycles or more with respect to an issuance pattern of a signal of any bit included in the command;
(N-2) generating means for generating a toggle pattern that changes every cycle;
During the period when the command and the toggle pattern are received and the issuing means does not issue the command, the toggle pattern generated by the generating means is selected and transmitted to the memory, and the issuing means issues the command. And a selection means for selecting the command and transmitting it to the memory during the period.
前記生成手段は、前記発行手段が次に発行するコマンドの前に前記発行手段が発行し前記コマンド保持手段に保持されるコマンドに含まれる何れかのビットの信号のパターンがNサイクル以上同じ信号が連続している場合、前記次に発行するコマンドの前のサイクルでトグルパターンを生成し、
前記選択手段は、Nサイクル以上同じ連続する信号と、前記次に発行するコマンドの間に前記生成手段が生成したトグルパターンを選択することを特徴とする請求項15に記載のメモリコントローラ。 Command holding means for holding the command transmitted to the memory;
The generating means generates a signal having the same pattern of any bit signal included in the command issued by the issuing means and held in the command holding means before the next command issued by the issuing means for N cycles or more. If it is continuous, a toggle pattern is generated in the cycle before the next command to be issued,
The memory controller according to claim 15, wherein the selection unit selects a toggle pattern generated by the generation unit between the same continuous signal for N cycles or more and the next command to be issued.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015093536A JP2016212524A (en) | 2015-04-30 | 2015-04-30 | Memory controller and method for controlling the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015093536A JP2016212524A (en) | 2015-04-30 | 2015-04-30 | Memory controller and method for controlling the same |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016212524A true JP2016212524A (en) | 2016-12-15 |
Family
ID=57549801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015093536A Pending JP2016212524A (en) | 2015-04-30 | 2015-04-30 | Memory controller and method for controlling the same |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016212524A (en) |
-
2015
- 2015-04-30 JP JP2015093536A patent/JP2016212524A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10684793B2 (en) | Semiconductor memory devices including error correction circuits and methods of operating the semiconductor memory devices | |
US7480774B2 (en) | Method for performing a command cancel function in a DRAM | |
US9032279B2 (en) | Memory device | |
US9552255B2 (en) | Memory device with parallel odd and even column access and methods thereof | |
US6826113B2 (en) | Synchronous dynamic random access memory device having memory command cancel function | |
US10445176B2 (en) | Memory system, memory device and operating method thereof | |
KR20190074006A (en) | Semiconductor device and semiconductor system | |
US8566685B2 (en) | Command control circuit, integrated circuit having the same, and command control method | |
US10162406B1 (en) | Systems and methods for frequency mode detection and implementation | |
RU2009118689A (en) | BUS SIGNAL CONTROL DIAGRAM AND SIGNAL PROCESSING DIAGRAM HAVING A BUS SIGNAL CONTROL DIAGRAM | |
US20030101400A1 (en) | Bus system and retry method | |
JP2014523034A (en) | Cyclic redundancy check by rank | |
JP2015506039A (en) | Integrated data masking, data poisoning and data bus inversion signaling | |
KR20190132788A (en) | Storage device and operating method of storage device | |
US20170337955A1 (en) | Active Random Access Memory | |
US7554354B2 (en) | Apparatus for controlling on-die termination of semiconductor memory and methods of controlling the same | |
US20160253228A1 (en) | Error detection circuit and semiconductor apparatus using the same | |
US20230376431A1 (en) | Method and circuit for accessing write data path of on-chip storage control unit | |
JP2011503753A (en) | Scheduling based on turnaround events | |
JP2013073664A (en) | Semiconductor device | |
KR102608909B1 (en) | Semiconductor device | |
JP2013182373A (en) | Storage device and method of controlling the same | |
US9257170B2 (en) | Semiconductor devices | |
JP2016212524A (en) | Memory controller and method for controlling the same | |
US10790011B2 (en) | Address and command generation circuit, and semiconductor system |