JP2016212524A - Memory controller and method for controlling the same - Google Patents

Memory controller and method for controlling the same Download PDF

Info

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
Application number
JP2015093536A
Other languages
Japanese (ja)
Inventor
藤原 誠
Makoto Fujiwara
誠 藤原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2015093536A priority Critical patent/JP2016212524A/en
Publication of JP2016212524A publication Critical patent/JP2016212524A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To solve the problem that a command two cycle mode cannot continuously transmit a two cycle command since two clocks are required to transmit one command as a countermeasure to a CA parity error due to a pattern sensitive bit error when a memory controller transmits a command to a DRAM, and accordingly, DRAM access performance may be reduced when the command two cycle mode is always used.SOLUTION: A method for controlling a memory controller comprises: transmitting a command including an address, a parity bit and a chip select to a memory; holding the transmitted command; holding an error pattern when transmitting the command; and controlling the transmission cycle number of a next command to be transmitted so as to be changed when a transmission pattern consisting of at least a part of the next command to be transmitted and at least a part of a command transmitted and held before the command fits into the error pattern.SELECTED DRAWING: Figure 2

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.

特開2011−239467号JP2011-239467A 特開2005−346502号JP-A-2005-346502

JEDEC STANDARD DDR4 SDRAM JESD79−4A仕様規格書JEDEC STANDARD DDR4 SDRAM JESD79-4A specification standard

しかしながら、コマンド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.

従来技術であるコマンド2サイクルモードの波形図Waveform diagram of command 2 cycle mode, which is the conventional technology 第1の実施形態におけるメモリコントローラの概略構成例Schematic configuration example of the memory controller in the first embodiment 第1の実施形態におけるタイミング波形図Timing waveform diagram according to the first embodiment 第2の実施形態におけるエラーパターン保持を説明する図The figure explaining the error pattern holding | maintenance in 2nd Embodiment 第2の実施形態におけるエラーパターンAにおけるタイミング波形図Timing waveform diagram in error pattern A in the second embodiment 第2の実施形態におけるエラーパターンBにおけるタイミング波形図Timing waveform diagram in error pattern B in the second embodiment 第3の実施形態におけるメモリコントローラの概略構成例Schematic configuration example of a memory controller in the third embodiment 第3の実施形態におけるメモリコントローラの動作を説明する図The figure explaining operation | movement of the memory controller in 3rd Embodiment. 第4の実施形態におけるメモリコントローラの概略構成例Schematic configuration example of a memory controller in the fourth embodiment 第4の実施形態におけるメモリコントローラの動作を説明する図The figure explaining operation | movement of the memory controller in 4th Embodiment. 第5の実施形態におけるメモリコントローラの概略構成例Schematic configuration example of a memory controller in the fifth embodiment 第5の実施形態におけるメモリコントローラの動作を説明する図The figure explaining operation | movement of the memory controller in 5th Embodiment.

[第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 memory controller 100 according to the first embodiment. The memory controller 100 is connected to a DRAM 900 (DDR4 SDRAM). The memory controller 100 transmits a DRAM command including CS (chip selection signal called chip select), command, address, and parity bit to the DRAM 900. The DRAM command includes RAS #, CAS #, and WE. Hereinafter, “transmission” and “issue” are used interchangeably.

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 DRAM 900 side.

DRAM900は、受信したコマンド信号、アドレス信号のHighのビット数からパリティビットを作る。そして、メモリコントローラから送られてきたパリティビットと比較するパリティチェックを行う。比較結果が異なれば、CAパリティエラーである。DRAM900は、CAパリティエラーを検出すると、所定時間後にメモリコントローラ100にCAパリティエラーの発生を通知する。   The DRAM 900 generates a parity bit from the number of High bits of the received command signal and address signal. Then, a parity check is performed to compare with the parity bit sent from the memory controller. If the comparison results are different, it is a CA parity error. When detecting the CA parity error, the DRAM 900 notifies the memory controller 100 of the occurrence of the CA parity error after a predetermined time.

メモリコントローラ100はメモリアクセス要求を受信すると、受信したメモリアクセス要求をDRAMコマンドに変換して、コマンドQueue300に格納する。   When the memory controller 100 receives the memory access request, the memory controller 100 converts the received memory access request into a DRAM command and stores it in the command queue 300.

また、コマンド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 command issuing circuit 201 receives a DRAM command from the command queue 300, controls the transmission timing of the DRAM command, and transmits it to the DRAM 900. The DRAM command transmission interval is determined by the DRAM specification. For example, the “active command and read command have a time interval defined by a parameter tRCD”.

DRAMコマンド保持回路203は、DRAM900に送信したDRAMコマンドを、一定時間保持する。CAパリティエラー発生時に、DRAMコマンドを再送するので保持している。一定時間経過後、DRAMコマンドを破棄する。DRAMコマンド保持回路203は、DRAM900がパリティビットを用いてパリティチェックを実行する実行時間分、DRAMコマンドを保持可能な容量を持てば良い。DRAMコマンド保持回路203は、コマンド発行回路201がDRAMコマンドを送っていない間も、DRAMに送信した信号レベルをそのまま保持する。   The DRAM command holding circuit 203 holds the DRAM command transmitted to the DRAM 900 for a predetermined time. When a CA parity error occurs, the DRAM command is retransmitted and retained. After a certain time has elapsed, the DRAM command is discarded. The DRAM command holding circuit 203 only needs to have a capacity capable of holding DRAM commands for an execution time during which the DRAM 900 executes a parity check using a parity bit. The DRAM command holding circuit 203 holds the signal level transmitted to the DRAM as it is even while the command issuing circuit 201 does not send the DRAM command.

エラーパターン保持回路204は、DRAM900からCAパリティエラーの発生を通知されると、DRAMコマンド保持回路203に格納されているDRAMコマンドを参照する。そして、エラーパターン保持回路204は、CAパリティエラーが発生したDRAMコマンドを、エラーパターンとして保持する。以降の実施形態では、このエラーパターンは、パターン感度ビットエラーのパターンである。   When the occurrence of a CA parity error is notified from the DRAM 900, the error pattern holding circuit 204 refers to the DRAM command stored in the DRAM command holding circuit 203. The error pattern holding circuit 204 holds the DRAM command in which the CA parity error has occurred as an error pattern. In the following embodiments, this error pattern is a pattern sensitivity bit error pattern.

コマンド2サイクルモード要求回路400は、エラーパターン保持回路204から、エラーパターンを受信する。また、DRAMコマンド保持回路203からDRAMコマンドの発行状況を受信する。そして、コマンド発行回路201から、次に発行するDRAMコマンドの情報を受信して、次に発行するDRAMコマンドを通常モードで送信すると、エラーパターンと一致する場合に、コマンド発行回路201に、コマンド2サイクルモード要求を通知する。つまり、次に発行するDRAMコマンドの信号レベルと、直前のDRAMコマンドの信号レベルと、からなる送信パターンが、エラーパターン保持回路204に保持されているエラーパターンと一致している場合に、コマンド発行回路201に、コマンド2サイクルモード要求を通知している。   The command 2 cycle mode request circuit 400 receives an error pattern from the error pattern holding circuit 204. In addition, a DRAM command issue status is received from the DRAM command holding circuit 203. Then, when the information of the next issued DRAM command is received from the command issuing circuit 201 and the next issued DRAM command is transmitted in the normal mode, the command issuing circuit 201 receives the command 2 when it matches the error pattern. Notify the cycle mode request. That is, when the transmission pattern composed of the signal level of the next DRAM command to be issued and the signal level of the immediately preceding DRAM command matches the error pattern held in the error pattern holding circuit 204, the command issuance is performed. The command 201 is notified of the command 2 cycle mode request.

コマンド発行回路201は、コマンド2サイクルモード要求回路400からコマンド2サイクルモード要求を受信しない場合は、通常モードでDRAMコマンドを発行する。コマンド2サイクルモード要求を受信する場合は、チップセレクト以外の送信サイクル数を変更し、コマンド2サイクルモードでDRAMコマンドを発行する。このようにして、コマンド2サイクルモード要求回路400は、コマンド発行回路201を制御する。   When the command issuing circuit 201 does not receive the command 2 cycle mode request from the command 2 cycle mode request circuit 400, the command issuing circuit 201 issues a DRAM command in the normal mode. When a command 2 cycle mode request is received, the number of transmission cycles other than chip select is changed, and a DRAM command is issued in the command 2 cycle mode. In this way, the command 2 cycle mode request circuit 400 controls the command issue circuit 201.

図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 memory controller 100 in the first embodiment. CS and error are LOW active signals. The memory controller 100 sets the command, address, and parity bit to 0 in a cycle in which no DRAM command is transmitted. Here, if the memory controller 100 does not receive a CA parity error within three cycles after the DRAM 900 receives the DRAM command, it is assumed that the DRAM command has been correctly received by the DRAM.

タイミングT1にDRAM900がコマンドAを受信し、メモリコントローラ100はタイミングT4までにCAパリティエラーを受信しなかったため、コマンドAのDRAMでの受信において、CAパリティエラーが発生していないことを示している。   Since the DRAM 900 receives the command A at the timing T1 and the memory controller 100 has not received the CA parity error by the timing T4, it indicates that no CA parity error has occurred in the reception of the command A by the DRAM. .

タイミング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 memory controller 100 detects that a CA parity error has occurred when receiving the command B in the DRAM 900. To do.

CAパリティエラーの検出に伴い、メモリコントローラ100はエラーパターンを生成する。本動作波形の場合、コマンドBの発行前のタイミングT2、T3の2サイクル期間コマンド、アドレス、パリティビットは0であるため、「2サイクル以上0が連続した後のコマンドBの発行」というエラーパターンが生成される。このように、エラーパターンは「Nサイクル以上同じ信号が連続した後のコマンドXの発行」となる。そして、このエラーパターンは、エラーパターン保持回路204に保持される。   Along with the detection of the CA parity error, the memory controller 100 generates an error pattern. In the case of this operation waveform, since the command, address, and parity bit are 0 for the two-cycle period at timings T2 and T3 before issuing command B, the error pattern “issue of command B after 2 consecutive cycles of 0” Is generated. Thus, the error pattern is “issue of command X after the same signal continues for N cycles or more”. This error pattern is held in the error pattern holding circuit 204.

DRAM900は、タイミングT9にコマンドCを受信する。コマンドCのコマンド発行は、エラーパターン保持回路204に保持されたエラーパターンと一致しないので、通常モードでDRAMコマンドが発行される。   The DRAM 900 receives the command C at timing T9. Since the command C command issuance does not match the error pattern held in the error pattern holding circuit 204, the DRAM command is issued in the normal mode.

タイミング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 command issuing circuit 201, and the command 2-cycle mode request circuit 400 recognizes that the command to be issued next is the command B. Next, the DRAM command holding circuit 203 stores the fact that 0 is continued in the command, address, and parity bit during the two-cycle period of timing T10 and T11. Depending on the specifications of the DRAM, the DRAM command issuance interval needs to be 3 cycles or more.

コマンド2サイクルモード要求回路400は、コマンド、アドレス、パリティビットで0がタイミングT10、T11の2サイクル連続していることをDRAMコマンド保持回路203から受信する。コマンド2サイクルモード要求回路400は、次のコマンドがコマンドBであることを既に認識しているので、エラーパターン保持回路204に保持されたエラーパターンと、次に送るDRAMコマンドを含む送信パターンとの一致を検出する。コマンド2サイクルモード要求回路400は、タイミングT12でコマンド2サイクルモード要求を通知する。   The command 2-cycle mode request circuit 400 receives from the DRAM command holding circuit 203 that the command, address, and parity bit are 0 for two cycles at timings T10 and T11. Since the command 2 cycle mode request circuit 400 has already recognized that the next command is the command B, the error pattern held in the error pattern holding circuit 204 and the transmission pattern including the DRAM command to be sent next are sent. Find a match. The command 2 cycle mode request circuit 400 notifies the command 2 cycle mode request at timing T12.

メモリコントローラ100は、タイミングT12、T13サイクルに、コマンド2サイクルモードでチップセレクト以外のコマンドBを発行する。チップセレクトは2サイクル目のタイミングT13に発行する。   The memory controller 100 issues a command B other than the chip select in the command 2-cycle mode at the timing T12 and T13 cycles. The chip select is issued at timing T13 in the second cycle.

上記の通り、本実施形態では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 DRAM 900, the DRAM command over a plurality of cycles is held in the error pattern holding circuit 204 as an error pattern. When a similar transmission pattern occurs, the command 2 cycle mode request circuit 400 of the memory controller 100 issues a DRAM command in the command 2 cycle mode to suppress the occurrence of a CA parity error. The command 2-cycle mode request circuit 400 may issue a DRAM command continuously for two cycles or more. In that case, the chip select is issued after the second cycle. In other words, the command two-cycle mode request circuit 400 can be rephrased as issuing a DRAM command other than chip select continuously for at least two cycles from at least one cycle before chip select.

本実施形態では、DRAM900からCAパリティエラーを受信すると、エラーパターンを生成し、エラーパターン保持回路204に保持するメモリコントローラに関する説明をした。エラーパターン保持回路204には、予め、レジスタアクセス等でエラーパターンを直接書き込んで保持させても良い。   In the present embodiment, the memory controller that generates an error pattern and holds it in the error pattern holding circuit 204 when a CA parity error is received from the DRAM 900 has been described. In the error pattern holding circuit 204, an error pattern may be directly written and held in advance by register access or the like.

[第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 pattern holding circuit 204.

図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 memory controller 100 issues a command A at timing T5, a command B at timing T8, and a command C at timing T11. In this embodiment, the memory controller 100 keeps the command, address, and parity bit at the values when the previous DRAM command is issued until the next DRAM command is issued, and does not return to the 0 level.

タイミングT12で、メモリコントローラ100は、DRAM900からCAパリティエラーを受信し、タイミングT11のコマンドCでCAパリティエラーが発生したことを検出する。タイミングT8に発行されたコマンドBは、3サイクル経過後のタイミングT11までにCAパリティエラーを通知されていないので、DRAM900に正常に受信されている。   At timing T12, the memory controller 100 receives a CA parity error from the DRAM 900, and detects that a CA parity error has occurred in the command C at timing T11. The command B issued at the timing T8 is normally received by the DRAM 900 because the CA parity error is not notified by the timing T11 after the elapse of 3 cycles.

説明を簡単にするため、本動作波形ではコマンド、アドレス、パリティビットがビット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 bit 0 to bit 5 in this operation waveform. For example, command 3 bits, address 2 bits, parity bit 1 bit.

本動作波形の場合、ビット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 bit 1 and bit 3 does not change from the issue of command A to the issue of command C. Bit 0, bit 2, and bit 4 invert the signal level in order to issue command C, and the signal level before being inverted is continuous for three cycles from timing T8 to timing T10. Bit 5 also inverts the signal to issue command C, and the signal level before inversion is continuous for 6 cycles from timing T4 to timing T10.

パターン感度ビットエラーの要因は、同一論理レベルが連続した後に論理レベルが変化した場合の信号減退であり、第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 pattern holding circuit 204 as in the following two examples. Hold on.
-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 DRAM 900.

図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 memory controller 100 to which the error pattern A in the second embodiment is applied. When issuing the command C at the timing T11, the memory controller 100 detects that the bit 5 is 0 for 6 consecutive cycles in the previous cycle, and issues the command C in the command 2 cycle mode. Note that the commands A and B are not issued in the command 2-cycle mode because the commands are changed simultaneously with CS. Since CS is issued in the next cycle after changing command C, command C is issued in the command 2 cycle mode.

コマンド2サイクルモード要求回路400が、コマンド発行回路201、エラーパターン保持回路204、DRAMコマンド保持回路203から情報を受信している。それにより、コマンド2サイクルモード要求回路400が、次のDRAMコマンドを含む送信パターンが、エラーパターン保持回路204に保持されているエラーパターンと一致するので、パターン感度ビットエラーを原因とするCAパリティエラーを起こしそうだと判断する。そして、そのエラーを防止している。具体的には、メモリコントローラ100がタイミングT11でコマンドCを発行したときに、DRAM900側でCAパリティエラーが発生することを防止できている。   The command 2-cycle mode request circuit 400 receives information from the command issuing circuit 201, the error pattern holding circuit 204, and the DRAM command holding circuit 203. As a result, the command 2 cycle mode request circuit 400 matches the error pattern held in the error pattern holding circuit 204 with the transmission pattern including the next DRAM command, so that the CA parity error caused by the pattern sensitivity bit error occurs. It is judged that it is likely to cause. And that error is prevented. Specifically, it is possible to prevent a CA parity error from occurring on the DRAM 900 side when the memory controller 100 issues a command C at timing T11.

一方、タイミング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 bit 3, the 9-cycle signal level is inverted after continuous, but if it does not match the error pattern held in the error pattern holding circuit 204, the command 2 cycle mode The request circuit 400 determines. Therefore, the command 2 cycle mode request circuit 400 does not request the command 2 cycle mode, and the command issuing circuit 201 issues a DRAM command in the normal mode.

図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 memory controller 100 to which the error pattern B in the second embodiment is applied. When issuing the command C at the timing T11, the memory controller 100 detects that the bit 5 is 0 for 6 consecutive cycles, and issues the command C in the command 2 cycle mode. Further, when issuing the command D at the timing T14, the memory controller 100 detects that the bit 3 is 1 continuously for 6 cycles or more and issues the command D in the command 2 cycle mode. As a result, it is possible to prevent a CA parity error from occurring on the DRAM 900 side when the memory controller 100 issues the command C.

本実施形態では、メモリコントローラ100が、各ビットの信号レベルの連続に着目してエラーパターンを生成することを説明してきた。同一信号レベルの連続に加え、さらに、信号レベルそのものをエラーパターンの条件に含んでも良い。図4の動作波形例で説明すると、エラーパターンAは「ビット5が、6サイクル以上“0”が連続した後の、“1”への変化」、エラーパターンBは「6サイクル以上、“0”が連続した後の、“1”への変化」となる。   In the present embodiment, it has been described that the memory controller 100 generates an error pattern by paying attention to the continuation of the signal level of each bit. In addition to the continuation of the same signal level, the signal level itself may be included in the error pattern condition. Referring to the operation waveform example of FIG. 4, the error pattern A is “bit 5 changes to“ 1 ”after“ 0 ”continues for 6 cycles or more”, and the error pattern B is “6 cycles or more,“ 0 ”. "Change to" 1 "after" "continues."

上記の通り、本実施形態では、メモリコントローラ100が、DRAM900からCAパリティエラーを受信すると、発行したDRAMコマンドの各ビットの状態からエラーパターンをエラーパターン保持回路204に保持する。そして、同様のパターンが発生する場合に、メモリコントローラ100のコマンド2サイクルモード要求回路は、コマンド2サイクルモードでDRAMコマンドを発行して、CAパリティエラーの発生を抑制する。   As described above, in this embodiment, when the memory controller 100 receives a CA parity error from the DRAM 900, the error pattern is held in the error pattern holding circuit 204 from the state of each bit of the issued DRAM command. When a similar pattern occurs, the command 2 cycle mode request circuit of the memory controller 100 issues a DRAM command in the command 2 cycle mode to suppress the occurrence of a CA parity error.

また、本実施形態では、DRAM900からCAパリティエラーを受信すると、エラーパターンを生成し、エラーパターン保持回路204に保持するメモリコントローラ100に関する説明をした。エラーパターン保持回路204に、予め、レジスタアクセス等でエラーパターンを直接書き込んで保持させても良い。   In this embodiment, the memory controller 100 that generates an error pattern and stores the error pattern in the error pattern holding circuit 204 when a CA parity error is received from the DRAM 900 has been described. The error pattern may be directly written and held in advance in the error pattern holding circuit 204 by register access or the like.

[第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 memory controller 100 according to the third embodiment. The memory controller 100 is connected to a DRAM 900 (DDR4 SDRAM), and transmits a DRAM command including CS, a command, an address, and a parity bit to the DRAM 900. Similar to the first embodiment, the DRAM 900 performs a parity check of the DRAM command, and when a CA parity error is detected, notifies the memory controller 100 of the occurrence of the CA parity error after a predetermined time.

メモリコントローラ100はメモリアクセス要求を受信すると、受信したメモリアクセス要求をDRAMコマンドに変換して、コマンドQueue300に格納する。   When the memory controller 100 receives the memory access request, the memory controller 100 converts the received memory access request into a DRAM command and stores it in the command queue 300.

また、コマンド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コマンドの送信タイミングを制御して、選択回路601に送信する。   The command issuing circuit 201 receives a DRAM command from the command Queue 300, controls the transmission timing of the DRAM command, and transmits the DRAM command to the selection circuit 601.

選択回路601は、コマンド発行回路201からのDRAMコマンドを受信すると、受信したDRAMコマンドをDRAM900に送信し、コマンド発行回路201からのDRAMコマンドを受信しない場合は、トグル生成回路600から受信したトグルパターンを、DRAM900に送信する。   When receiving the DRAM command from the command issuing circuit 201, the selection circuit 601 transmits the received DRAM command to the DRAM 900, and when not receiving the DRAM command from the command issuing circuit 201, the selection pattern 601 receives the toggle pattern Is transmitted to the DRAM 900.

DRAMコマンド保持回路203は、DRAM900に送信したDRAMコマンドを、一定時間保持する。CAパリティエラー発生時に、DRAMコマンドを再送するので保持している。一定時間経過後、DRAMコマンドを破棄する。DRAMコマンド保持回路203は、DRAM900がパリティビットを用いてパリティチェックを実行する実行時間分、DRAMコマンドを保持可能な容量を持てば良い。DRAMコマンド保持回路203は、コマンド発行回路201がDRAMコマンドを送っていない間も、DRAMに送信した信号レベルをそのまま保持する。   The DRAM command holding circuit 203 holds the DRAM command transmitted to the DRAM 900 for a predetermined time. When a CA parity error occurs, the DRAM command is retransmitted and retained. After a certain time has elapsed, the DRAM command is discarded. The DRAM command holding circuit 203 only needs to have a capacity capable of holding DRAM commands for an execution time during which the DRAM 900 executes a parity check using a parity bit. The DRAM command holding circuit 203 holds the signal level transmitted to the DRAM as it is even while the command issuing circuit 201 does not send the DRAM command.

エラーパターン保持回路204は、DRAM900からCAパリティエラーの発生を通知されると、DRAMコマンド保持回路203に格納されているDRAMコマンドを参照する。そして、エラーパターン保持回路204は、CAパリティエラーが発生したDRAMコマンドを含む発行パターンから、エラーパターンを生成して保持する。このエラーパターンは、パターン感度ビットエラーのパターンである。   When the occurrence of a CA parity error is notified from the DRAM 900, the error pattern holding circuit 204 refers to the DRAM command stored in the DRAM command holding circuit 203. Then, the error pattern holding circuit 204 generates and holds an error pattern from the issued pattern including the DRAM command in which the CA parity error has occurred. This error pattern is a pattern sensitivity bit error pattern.

トグル生成回路600は、エラーパターン保持回路204から、エラーパターンを受信して、次に発行するDRAMコマンドがエラーパターンに当てはまらないようにコマンド、アドレス、パリティビットをトグルさせるトグルパターンを生成する。   The toggle generation circuit 600 receives the error pattern from the error pattern holding circuit 204, and generates a toggle pattern that toggles the command, address, and parity bit so that the next issued DRAM command does not match the error pattern.

図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 toggle generation circuit 600 generates a toggle signal that toggles the command and address signals every two cycles. In this embodiment, the generation of toggle signals in which the command, address, and parity bits are all 0 bits and all 1 bits at intervals of two cycles continues, but it is only necessary to control so that the signal level of each bit is not continuous. There is no need to change to the same signal level at the timing.

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 toggle generation circuit 600 and the command output at the same signal level as the toggle generation circuit 600 of the command issuing circuit 201 are continuous. Occurs when

選択回路601は、コマンド発行回路201からDRAMコマンドが入力された場合は、コマンド発行回路201が生成したDRAMコマンドを選択し、それ以外の場合は、トグル生成回路600が生成したDRAMコマンドを選択する。   The selection circuit 601 selects the DRAM command generated by the command issuance circuit 201 when the DRAM command is input from the command issuance circuit 201, and selects the DRAM command generated by the toggle generation circuit 600 otherwise. .

図8では、メモリコントローラ100は、タイミングT13でコマンドCを発行している。タイミングT13以外の期間では、メモリコントローラ100はトグル生成回路600が生成したコマンドを送信する。   In FIG. 8, the memory controller 100 issues a command C at timing T13. In a period other than the timing T13, the memory controller 100 transmits the command generated by the toggle generation circuit 600.

上記の通り、本実施形態ではDRAM900からCAパリティエラーを受信すると、エラー前に信号レベルが連続したサイクル数をエラーパターンとして保持する。そして、同様のパターンが発生しないように、トグル生成回路でコマンド信号をトグルさせて、CAパリティエラーの再発を抑制する。   As described above, in this embodiment, when a CA parity error is received from the DRAM 900, the number of cycles in which the signal level continues before the error is held as an error pattern. Then, the command signal is toggled by the toggle generation circuit so that a similar pattern does not occur, thereby suppressing the recurrence of the CA parity error.

また、本実施形態では、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 pattern holding circuit 204 has been described with respect to the holding memory controller. The error pattern may be directly written and held in advance in the error pattern holding circuit 204 by register access or the like.

本実施形態では、エラーパターンを保持して、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 memory controller 100 according to the fourth embodiment. The difference from the circuit configuration example of the third embodiment is that the toggle generation circuit 600 confirms the issued DRAM command using the DRAM command holding circuit 203. A toggle signal is generated only when a DRAM command is stored in the command queue 300 or the command issuing circuit 201 and an error pattern occurs.

図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 command queue 300. The toggle generation circuit 600 inputs the issued DRAM command information from the DRAM command holding circuit 203, confirms that the issued DRAM command is 0 in the four cycles from timing T8 to T11, and sends it to the error pattern holding circuit 204. Detects a match with the stored error pattern.

トグル生成回路600は、タイミングT11にコマンド、アドレス、パリティビットのトグルを開始する。コマンド発行回路201は、タイミングT12にコマンドQueue300からDRAMコマンドを受信する。タイミングT13でコマンドCが発行され、コマンドQueue300、コマンド発行回路201が空になるため、タイミングT13での、コマンド、アドレス、パリティビットのトグルが行われない。実施形態3と異なり、トグル生成回路600からは、タイミングT13以降も、信号レベル1が連続して出力される。   The toggle generation circuit 600 starts toggling the command, address, and parity bit at timing T11. The command issuing circuit 201 receives a DRAM command from the command queue 300 at timing T12. Since the command C is issued at the timing T13 and the command queue 300 and the command issuing circuit 201 become empty, the command, address, and parity bit are not toggled at the timing T13. Unlike the third embodiment, the signal level 1 is continuously output from the toggle generation circuit 600 after the timing T13.

上記の通り、本実施形態では、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 pattern holding circuit 204 as an error pattern. Then, the command signal is toggled by the toggle generation circuit 600 so that the same error pattern does not occur only during the period from the issue of the next DRAM command to the completion of the issue of the DRAM command. As a result, while the occurrence of the CA parity error is suppressed, the signal toggle during the period when there is no memory access to the DRAM 900 is suppressed.

また、本実施形態では、DRAMからCAパリティエラーを受信すると、エラーパターンを生成し、エラーパターン保持回路204に保持するメモリコントローラに関する説明をした。エラーパターン保持回路204に、予め、レジスタアクセス等でエラーパターンを直接書き込んで保持させても良い。   In this embodiment, the memory controller that generates an error pattern and stores it in the error pattern holding circuit 204 when a CA parity error is received from the DRAM has been described. The error pattern may be directly written and held in advance in the error pattern holding circuit 204 by register access or the like.

さらに、第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 memory controller 100 according to the fifth embodiment. The difference from the first embodiment is that a training circuit 500 is added.

本実施形態における、トレーニング回路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 command issuing circuit 201, the selection circuit 602 transmits the received DRAM command to the DRAM 900 (DDR4 SDRAM). When receiving a DRAM command from the training circuit 500, the selection circuit 602 transmits the received DRAM command to the DRAM 900. To do.

図12は、本実施形態おけるトレーニング回路が生成する動作波形を説明する図である。メモリコントローラ100は、DRAMコマンドを送信しないサイクルでは、コマンド、アドレス、パリティビットを0にする。   FIG. 12 is a diagram for explaining operation waveforms generated by the training circuit in the present embodiment. The memory controller 100 sets the command, address, and parity bit to 0 in a cycle in which no DRAM command is transmitted.

メモリコントローラ100は、コマンド発行間隔のサイクル数を順次大きくしながら、タイミングT2、T4、T7、T11、T16で、DRAMコマンドを発行し、その際の、コマンド、アドレス、パリティビットは1にする。   The memory controller 100 issues a DRAM command at timings T2, T4, T7, T11, and T16 while sequentially increasing the number of cycles of the command issue interval, and sets the command, address, and parity bit to 1 at that time.

タイミング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 pattern holding circuit 204 recognizes that a CA parity error has occurred by issuing a DRAM command at timing T11. Since the DRAM command at the timing T11 is changed after the command, address, and parity bit have been continued for 3 cycles, an error pattern “issue command after signal level is continuous for 3 cycles or more” is an error pattern holding circuit. 204.

上記のトレーニング回路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 SYMBOLS 100 Memory controller 201 Command issuing circuit 203 DRAM command holding circuit 204 Error pattern holding circuit 300 Command Queue
400 Command 2-cycle mode request circuit 900 DRAM

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.
前記制御手段は、前記次に送信するコマンドのうち前記チップセレクト以外を2サイクル以上連続して送信し、前記次に送信するコマンドの2サイクル目以降にチップセレクトを送信するように前記送信手段に要求し、
前記送信手段は、前記制御手段に要求されたように前記コマンドをメモリに送信することを特徴とする請求項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サイクル前から2サイクル以上連続して送信するように前記送信手段に要求し、
前記送信手段は、前記制御手段に要求されたように前記コマンドをメモリに送信することを特徴とする請求項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.
前記制御手段は、コマンドを2サイクルで送信することを要求する要求回路であることを特徴とする請求項1乃至3の何れか1項に記載のメモリコントローラ。   4. The memory controller according to claim 1, wherein the control means is a request circuit that requests transmission of a command in two cycles. 前記第1保持手段は、所定時間の間、前記コマンドを保持し、所定時間経過後、前記コマンドを破棄することを特徴とする請求項1乃至4の何れか1項に記載のメモリコントローラ。   5. The memory controller according to claim 1, wherein the first holding unit holds the command for a predetermined time and discards the command after the predetermined time elapses. 前記第1保持手段は、前記送信手段で送信されたコマンドの前記メモリにおける受信において、エラーが発生したことを前記メモリから通知された場合、前記第1保持手段に保持されたコマンドを、前記メモリに再送することを特徴とする請求項1乃至5の何れか1項に記載のメモリコントローラ。   When the first holding unit is notified from the memory that an error has occurred in receiving the command transmitted by the transmitting unit in the memory, the first holding unit stores the command held in the first holding unit in the memory. The memory controller according to any one of claims 1 to 5, wherein the memory controller is retransmitted at a later time. 前記第1保持手段は、前記メモリが前記パリティビットを用いてパリティチェックを実行する時間分、前記送信手段が送信したコマンドを保持可能な容量を持つことを特徴とする請求項1乃至6の何れか1項に記載のメモリコントローラ。   7. The first holding unit has a capacity capable of holding a command transmitted by the transmission unit for a time during which the memory performs a parity check using the parity bit. 2. The memory controller according to item 1. 前記第2保持手段は、前記送信手段で送信されたコマンドの前記メモリにおける受信において、エラーが発生したことを前記メモリから通知された場合、当該コマンドと当該コマンドの前に前記送信手段が送信し前記第1保持手段に保持されるコマンドとに含まれる送信パターンを前記エラーパターンとして保持することを特徴とする請求項1乃至7の何れか1項に記載のメモリコントローラ。   When the second holding unit is notified from the memory that an error has occurred in receiving the command transmitted by the transmitting unit, the transmitting unit transmits the command and the command before the command. 8. The memory controller according to claim 1, wherein a transmission pattern included in a command held in the first holding unit is held as the error pattern. 前記第2保持手段に保持されるエラーパターンは、パターン感度ビットエラーであることを特徴とする請求項1乃至8の何れか1項に記載のメモリコントローラ。   The memory controller according to claim 1, wherein the error pattern held in the second holding unit is a pattern sensitivity bit error. 前記第2保持手段に保持されるエラーパターンは、前記コマンドに含まれる何れかのビットについて、Nサイクル以上同じ信号が連続した後の信号の変化を示すパターンであることを特徴とする請求項1乃至9の何れか1項に記載のメモリコントローラ。   2. The error pattern held in the second holding means is a pattern showing a change in a signal after the same signal continues for N cycles or more for any bit included in the command. 10. The memory controller according to any one of 1 to 9. 前記第2保持手段には、予めエラーパターンが保持されていることを特徴とする請求項1乃至10の何れか1項に記載のメモリコントローラ。   The memory controller according to claim 1, wherein an error pattern is held in advance in the second holding unit. 前記メモリと接続されていることを特徴とする請求項1乃至11の何れか1項に記載のメモリコントローラ。   The memory controller according to claim 1, wherein the memory controller is connected to the memory. 前記メモリはDRAMであることを特徴とする請求項1乃至12の何れか1項に記載のメモリコントローラ。   The memory controller according to claim 1, wherein the memory is a DRAM. 前記エラーパターンを生成するトレーニング回路を備え、前記トレーニング回路は、Nサイクル以上同じ信号が連続した後の信号の変化を示すパターンをトレーニングパターンとして生成し、前記第2保持手段は、前記トレーニングパターンの受信においてエラーが発生したことを前記メモリから通知された場合、前記トレーニング回路が生成したトレーニングパターンをエラーパターンとして保持することを特徴とする請求項1乃至13の何れか1項に記載のメモリコントローラ。   A training circuit for generating the error pattern, wherein the training circuit generates a pattern indicating a change in the signal after the same signal continues for N cycles or more as a training pattern, and the second holding unit includes: The memory controller according to any one of claims 1 to 13, wherein when the memory notifies that an error has occurred in reception, the training pattern generated by the training circuit is held as an error pattern. . アドレス、パリティビット、チップセレクトを含むコマンドを発行する発行手段と、
前記コマンドに含まれる何れかのビットの信号の発行パターンについて、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.
請求項1に記載のメモリコントローラの制御方法。   The method of controlling a memory controller according to claim 1. 請求項15に記載のメモリコントローラの制御方法。   The method for controlling a memory controller according to claim 15.
JP2015093536A 2015-04-30 2015-04-30 Memory controller and method for controlling the same Pending JP2016212524A (en)

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)

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