JP2016110516A - メモリコントローラとその制御方法 - Google Patents

メモリコントローラとその制御方法 Download PDF

Info

Publication number
JP2016110516A
JP2016110516A JP2014249422A JP2014249422A JP2016110516A JP 2016110516 A JP2016110516 A JP 2016110516A JP 2014249422 A JP2014249422 A JP 2014249422A JP 2014249422 A JP2014249422 A JP 2014249422A JP 2016110516 A JP2016110516 A JP 2016110516A
Authority
JP
Japan
Prior art keywords
command
memory
retransmission
commands
memory controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014249422A
Other languages
English (en)
Inventor
康宏 加藤
Yasuhiro Kato
康宏 加藤
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 JP2014249422A priority Critical patent/JP2016110516A/ja
Priority to PCT/JP2015/006044 priority patent/WO2016092798A1/en
Publication of JP2016110516A publication Critical patent/JP2016110516A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Dram (AREA)

Abstract

【課題】 メモリコントローラがメモリにコマンドを再送する際、システム要件に応じてどのコマンド種別を優先して再送するか異なる。また、コマンド種別毎に再送コマンドバッファを持つと回路規模が増大する。【解決手段】 再送バッファに保持されたコマンドのうち、コマンド種別に基づいて優先するコマンドから順に再送し、優先度の高いコマンドを早くメモリに実行させる。また、システム要件に応じて特定コマンドを優先して再送し易いバッファを提供することで、回路規模の増大を抑制する。【選択図】 図1

Description

本発明は、メモリコントローラに関し、特に、メモリがコマンドを正しく受信できなかった際にコマンドを再送するメモリコントローラに関する。
DRAMはメモリコントローラからコマンド信号及びアドレス信号を受信し、コマンド信号及びアドレス信号をデコードすることで、コマンドの種類を判別し、DRAMのメモリセルやモードレジスタなどにアクセスする。
近年、DRAMの規格としてDDR4が提案されている。DDR4におけるコマンドの送受信は、800MHzから1.6GHzの高速なクロックに同期して行われる。そのため、コマンド信号及びアドレス信号が正しく受信されたかを検証するCA(Command Address)パリティと呼ばれる機能がサポートされている。DRAMはCAパリティエラー(以下、単に「パリティエラー」、「エラー」とも記載する。)を検出すると、エラーが起きたことをメモリコントローラに通知し、全Bankをページクローズ状態にする。(非特許文献1参照)
CAパリティエラーが起こる前の数サイクルは、コマンドが実行されたか分からず、CAパリティエラーが起こった後の数サイクルは、コマンドが実行されない。メモリコントローラはエラー通知を受けると、CAパリティエラーが起こる前後数サイクルで、メモリコントローラから送った、実行されなかった可能性のあるコマンドをメモリデバイスに再送する必要がある。そこで、コマンドを再送するために、メモリコントローラは発行したコマンドで再送対象となるコマンドを一定時間格納する再送コマンドバッファ(以下、「コマンド保持回路」または「再送バッファ」とも記載する。)を持つ必要がある。正常動作時のスループット低下をさけるために、再送コマンドバッファは上記一定時間内にメモリコントローラが1つのメモリデバイスに発行するコマンドを少なくとも格納できる容量を持つ必要がある。
JEDEC STANDARD DDR4 SDRAM JESD79−4仕様規格書
CAパリティエラー検出後、DRAMは全Bankをページクローズ状態にするため、メモリコントローラはエラーが起こる前と同じ順番でコマンドの再送を行うと性能低下が発生する場合がある。例えばDRAMがCAパリティエラーを検出する前にメモリコントローラがRD→PREA→REFの順番でコマンドを発行していたとする。CAパリティエラーが起きた後、同じ順番でコマンドの再送を行うとDRAMは全Bankページクローズ状態なので、まずACTを発行してからRD→PREA(Precharge All Bank)→REF(Refersh)を実行することになる。しかし、DRAM性能の観点ではREFを最初に実行するとREF→ACT(Bank Activate)→RDの順番となり、より短い時間でコマンドの実行を完了することが可能である。つまりページクローズ状態に発行可能なコマンドを最初に発行し、後からリード、ライトのようなページオープン時に発行可能なコマンドを発行することが望ましい。
一方、メモリアクセスしたマスタ性能の観点ではリード、ライトが早く完了することが望ましい。例えばDRAMがCAパリティエラーを検出する前にメモリコントローラはREF→ACT→RDの順番でコマンドを発行していたとする。この場合、エラーが起こった後に、メモリがRDを最初に実行できるように、メモリコントローラがRDを優先して発行し、メモリアクセスしたマスタへリードレスポンスをより早く返信することが望ましい。つまりACT→RD→PREA→REFと順番を替えてメモリコントローラがコマンドを発行することが望ましい。この場合、メモリは、リード、ライトを最初に実行し、後からその他コマンドを実行する。
その他にもシステム要件に応じて、どのコマンド種別を優先して再送するか選択できることが望ましい。
更に、再送コマンドバッファのコマンド格納方法について、一般的に単一の再送コマンドバッファに全コマンドを発行した順番で格納することが考えられる。この場合、コマンドを再送する際に再送コマンドバッファに優先するコマンドが存在するか検索し、検索した結果に基づいて再送するコマンドを選択する必要があり、再送するコマンドを選択するための回路が複雑となる。コマンド種別毎に独立した再送コマンドバッファを持つ場合、各再送コマンドバッファに再送対象のコマンドを格納しているかという情報だけで再送するコマンドを選択することが可能となり再送するコマンドを選択するための回路は単純となる。しかし、メモリコントローラは一定時間内にメモリコントローラが発行するコマンドを全て格納できる再送コマンドバッファをコマンド種別の数だけ持つことになり、回路規模が増大してしまう問題がある。
本発明は上記の課題に鑑みてなされたものである。すなわち、メモリコントローラがメモリにコマンドを再送する際に、システム要件に応じて特定コマンドを優先して再送するメモリコントローラを提供することを目的とする。また、その方法を提供することを目的とする。
本発明に係るメモリコントローラは以下の構成を備える。即ち、コマンドをチップセレクトに従ってメモリに送信する送信手段と、前記送信手段が送信したコマンドを保持する保持手段と、前記送信手段が送信したコマンドの前記メモリにおける受信において、エラーが発生したことを前記メモリから通知された場合、前記保持手段に保持されたコマンドのうちコマンド種別に基づいて優先するコマンドから順に再送する再送手段。
本発明によれば、メモリコントローラがメモリにコマンドを再送する際に、システム要件に応じて特定コマンドを優先して再送することで、優先度の高いコマンドを早くメモリに実行させることが容易になる。
本発明の第1の実施形態におけるメモリコントローラの概略構成例 本発明の第1の実施形態における再送コマンド選択回路の概略構成例 本発明の第1の実施形態におけるメモリコントローラの動作波形例 本発明の第1の実施形態における再送コマンド選択回路の動作波形例 本発明の第2の実施形態におけるメモリコントローラの概略構成例 本発明の第2の実施形態におけるコマンドバッファ回路の概略構成例
[実施形態1]
図1は本実施形態のメモリコントローラ100の概略構成である。メモリコントローラ100は、メモリ900に接続され、コマンド、アドレス、チップセレクト、パリティビットを送信する。パリティビットについては、パリティ生成回路202の説明において後述する。前記メモリ900は、コマンド、アドレス、パリティビットからパリティチェックを行い、チェック結果を、一定時間後に通知する。
コマンド生成回路201は、発行するコマンド及びアドレス及びチップセレクトを生成し、前記メモリ900に発行する。
パリティ生成回路202は、前記コマンド及びアドレスからパリティビットを生成し、前記メモリ900に発行する。コマンドを示す信号線とアドレスを示す信号線があり、それらのビットのうちHighになっているビット数が奇数か偶数かで、メモリコントローラはパリティビットを作る。そして、パリティビットをコマンド、アドレスに付加して送る。パリティビットは、メモリデバイス側でチェックビットとして用いられる。メモリ900は、受信したコマンド信号、アドレス信号のHighのビット数からパリティビットを作る。そして、メモリコントローラ100から送られてきたパリティビットと比較するパリティチェックを行う。比較結果が異なれば、CAパリティエラーである。CAパリティエラーが発生したことを検出した場合は、メモリ900は、メモリコントローラ100へエラーを通知する。
状態管理回路203は、前記メモリ900からチェック結果がエラーである通知を受けると、再送待機モードとなる。再送待機モードは、前記メモリ900がコマンドを受信可能になるまでの所定の一定時間が経過すると再送モードとなる。再送モード中に前記メモリ900からエラーである通知を受けると再送モードから再送待機モードになる。コマンド保持回路204に保持された再送対象コマンドが全て再送され、前記一定時間経過すると再送モードから通常モードになる。再送モードでは、再送コマンドを再送中である。
前記コマンド保持回路204は、前記コマンド及びアドレス及びチップセレクトが前記メモリ900に発行された際に、前記コマンド及びアドレス及びチップセレクトを再送対象として保持する。保持してから前記一定時間経つまで前記状態管理回路203が通常モードもしくは再送モードを示し続けていれば、前記コマンド及びアドレス及びチップセレクトを破棄する。前記状態管理回路203が再送モードを示すならば、前記コマンド及びアドレス及びチップセレクトが前記メモリ900に発行された際に、前記コマンド及びアドレス及びチップセレクトを破棄する。前記コマンド保持回路204は、第一のコマンド種別に属するコマンドのコマンド及びアドレス及びチップセレクトを第一コマンドバッファ回路401に保持する。また、第二のコマンド種別に属するコマンドのコマンド及びアドレス及びチップセレクトを第二コマンドバッファ回路402に保持する。
本実施形態では説明の容易化のために、第一のコマンド種別はページオープン状態で発行可能となるRD、WRコマンドとし、第二のコマンド種別はページクローズ状態で発行可能となるRD、WR以外のその他コマンドとする。例えば、第2コマンド種別に属するコマンドとして、リフレッシュ、ZQキャリブレーション、モードレジスタコマンドが挙げられる。前記第一コマンドバッファ回路401に保持しているコマンド及びアドレス及びチップセレクトを第一再送コマンド、アドレス、チップセレクトとして出力する。同様に、前記第二コマンドバッファ回路402に保持しているコマンド及びアドレス及びチップセレクトを第二再送コマンド、アドレス、チップセレクトとして出力する。前記状態管理回路203が通常モードもしくは再送モードから再送待機モードに遷移した際に、前記第一コマンドバッファ回路401及び前記第二コマンドバッファ回路402に保持していたコマンドを再送対象コマンドとする。前記状態管理回路203が再送モードの際、前記第一コマンドバッファ回路401に保持している前記再送対象コマンドの有無を第一コマンドバッファ情報で出力する。同様に、前記第二コマンドバッファ回路402に保持している前記再送対象コマンドの有無を第二コマンドバッファ情報で出力する。なお、前記第一コマンドバッファ回路401、第二コマンドバッファ回路402はそれぞれ前記一定時間内に発行されるコマンド及びアドレス及びチップセレクト全てを格納できるものとする。
前記コマンド生成回路201は、通常モードにおいては、通常コマンド生成回路301によりコマンドを生成し、再送モードにおいては、再送コマンド生成回路302によりコマンドを生成する。
再送コマンド選択回路205は、前記コマンド保持回路204から出力されるコマンド種別毎の再送コマンド及びアドレス及びチップセレクトから一つを選択し、前記再送コマンド生成回路302に再送コマンド及びアドレス及びチップセレクトを出力する。さらに、前記コマンド保持回路204から出力されるコマンド種別毎のコマンドバッファ情報から、コマンド保持回路204のいずれかのコマンドバッファ回路に再送対象コマンドが存在すれば、前記再送コマンド生成回路302にコマンド生成要求を出力する。
なおメモリ900のページがクローズ状態なので、DRAM性能を優先するなら、前記再送コマンド生成回路302は、ACT、PRE、PREAコマンドなど、メモリのページクローズ状態で発行可能なコマンドをまず、生成・発行する。そして次に、RD、WR、その他コマンドを発行するものとする。
図2は前記再送コマンド選択回路205の概略構成である。再送コマンド調停回路501は、入力されるコマンド種別毎の再送コマンド及びアドレス及びチップセレクトから一つを選択し、選択した再送コマンド及びアドレス及びチップセレクトを出力する。また、有効な再送コマンド、アドレス、チップセレクトを選択した場合はコマンド生成要求を出力する。本実施形態ではRD、WRコマンドに対応する第一再送コマンド、アドレス、チップセレクト、第一コマンドバッファ情報とRD、WR以外のその他コマンドに対応する第二再送コマンドアドレス、チップセレクト、第二コマンドバッファ情報が入力される。ここで前記第一コマンドバッファ情報と前記第二コマンドバッファ情報は値がLOWの時、再送対象コマンドを保持していることを示す。反対に、HIGHの時、再送コマンドを保持していないことを示す。再送コマンド優先度設定回路502は、前記再送コマンド選択回路501に入力されるコマンド種別毎に優先度を設定し、優先度情報を前記再送コマンド選択回路501に出力する。本実施形態ではシステム要件がマスタ性能を優先することであるとし、第一のコマンド種別のコマンド、つまりRD、WRコマンドを優先するように設定されているものとする。前記再送コマンド選択回路501は前記優先度情報に基づいて、優先度の高いコマンド種別の再送コマンド、アドレス、チップセレクトが存在すれば、前記優先度の高いコマンド種別の再送コマンド、アドレス、チップセレクトを優先して選択して出力する。従って、前記再送コマンド選択回路501は第一コマンドバッファ情報の値がLOWであれば、第一のコマンド種別の再送コマンド、アドレス、チップセレクトを優先して選択して出力する。
図3は本実施形態における前記メモリコントローラ100の動作波形である。本動作波形図では、エラーは前記メモリ900から通知される信号であり、LOWアクティブな信号とする。時刻T0からT7にかけて前記状態管理回路203が示すモードは通常モードであり、前記通常コマンド生成回路301でコマンド及びアドレス及びチップセレクトを生成する。時刻T1でRD、WR以外のその他コマンドであるCMD−1を前記メモリ900に発行し、時刻T2でCMD−2を発行している。さらに時刻T3で時刻T4に発行するRDに対するACT、時刻T4でRDという順で発行している。時刻T5で時刻T6に発行するWRに対するACT、時刻T6でWRという順で発行している。時刻T8で前記メモリ900からエラーが通知され、前記状態管理回路203のモードは再送待機モードへ遷移する。時刻T12で前記メモリ900はエラー通知を解除しコマンドを受信できるようになり、前記状態管理回路203のモードは再送モードに遷移する。再送モードでは前記再送コマンド生成回路302でコマンド及びアドレス及びチップセレクトを生成する。ここでは時刻T1から時刻T6で発行した前記CMD−1、CMD−2、RD、WRを再送対象とする。時刻T3に発行していたACTは、前記再送コマンド生成回路302でRD、WRコマンド発行時にメモリ900のページオープン状態に応じて自動で生成発行されるため、再送対象とはしない。本実施形態ではRD、WRコマンドを優先するため、前記CMD−1、CMD−2よりも前記RD、WRコマンドが優先して再送される。従って、時刻T13で前記再送コマンド生成回路302は前記RDの発行のためにページをオープンするACTを発行し、時刻T14で再送対象である前記RDを再送する。同様に時刻T15で前記再送コマンド生成回路302は前記WRコマンドを発行するためにページをオープンするACTを発行する。このACTは時刻T5で送っていたACTの再送ではなく、自動生成して発行したものである。時刻T16で再送対象である前記WRコマンドを再送する。時刻T17で前記RD、WRコマンド再送後に前記CMD−1を再送するためにページをクローズするPREAを発行し、時刻T18でCMD−1を再送、時刻T19でCMD−2を再送する。
図4は、本実施形態における前記再送コマンド選択回路205の動作波形である。ここでは図3におけるモードが再送待機モードから再送モードに遷移する時刻T11以降の動作を説明する。つまり、時刻T11から時刻T20は図3と図4で同時刻を示している。前記再送コマンド優先度設定回路502は第一のコマンド種別のコマンドであるRD、WRを優先するように設定されているため、優先度情報は第一のコマンド種別(RD、WR)優先を示している。また前記第一コマンドバッファ回路401に再送対象コマンドとしてRD、WRが存在しており、前記第二コマンドバッファ回路402にはその他コマンドであるCMD−1、CMD−2が存在している。
時刻T12でモードが再送モードへと遷移する。時刻T13で前記コマンド保持回路204は再送モードであることを受け、前記第一コマンドバッファ情報と前記第二コマンドバッファ情報を出力する。時刻T13から時刻T16にかけて前記第一コマンドバッファ情報はLOWのため、第一のコマンド種別のコマンドであるRD、WRが前記第一コマンドバッファ回路401に存在していることを示している。前記再送コマンド調停回路501は第一再送コマンド、アドレス、チップセレクトを選択して再送コマンド、アドレス、チップセレクトとして出力し、コマンド生成要求を生成する。時刻T13から時刻T14ではRDが選択され再送コマンド、アドレス、チップセレクトとして出力される。同様に時刻T15から時刻T16ではWRが選択され再送コマンド、アドレス、チップセレクトとして出力される。時刻T17で前記第一コマンドバッファ情報がHIGHになり前記第一のコマンド種別のコマンドがすべて再送されたことを示している。前記再送コマンド調停回路501は前記第一コマンドバッファ情報のHIGHを確認し、次に前記第二コマンドバッファ情報を確認する。前記第二コマンドバッファ情報がLOWであることを確認し、第二再送コマンド、アドレス、チップセレクトを選択して再送コマンド、アドレス、チップセレクトとして出力し、コマンド生成要求を生成する。時刻T17から時刻T19にかけて第二再送コマンド、アドレス、チップセレクトが選択され出力される。時刻T17から時刻T18では第二再送コマンド、アドレス、チップセレクトから入力されるCMD−1が選択され再送コマンド、アドレス、チップセレクトとして出力される。時刻T19でCMD−2が選択され再送コマンド、アドレス、チップセレクトとして出力される。時刻T20で前記再送コマンド調停回路501は前記第一コマンドバッファ回路401も前記第二コマンドバッファ回路402も再送対象コマンドを保持していないことを確認し、コマンド生成要求をデアサートする。
本実施形態によれば、コマンドを再送する際に、第一コマンドバッファ回路401に保持した、優先度の高いRD、WRをRD、WR以外のその他コマンドよりも早く再送する。よって、メモリアクセスしたマスタ性能の観点で性能低下を抑制することが可能となる。
一方、前記再送コマンド優先度設定回路502に第二のコマンド種別に属するRD、WR以外のその他コマンドを優先するように設定してある場合は、RD、WRよりも、第二コマンドバッファ回路402に保持した、その他コマンドを優先して再送する。RD、WR以外のその他コマンドはページクローズ状態に発行可能なコマンドであるため、DRAM性能の観点で性能低下を抑制することが可能となる。
その他にもシステム要件に応じて優先したいコマンド種別に属するコマンドを分けて保持し、そのコマンド種別を優先するように設定することで、システム要件に応じて優先したいコマンド種別に属するコマンドを優先して再送することが可能となる。
[実施形態2]
実施形態2は、実施形態1におけるコマンド保持回路204を異なる形態にしたものである。図5は実施形態2における本実施形態のメモリコントローラ600の概略構成である。なお実施形態2におけるコマンド保持回路700以外の回路は実施形態1と同じである。
前記コマンド保持回路700は、コマンド及びアドレス及びチップセレクトが前記メモリ900に発行された際に、再送用に、前記コマンド及びアドレス及びチップセレクトを保持する。保持してから前記一定時間経つまで前記状態管理回路203が通常モードもしくは再送モードを示し続けていれば、前記コマンド及びアドレス及びチップセレクトを破棄する。前記状態管理回路203が再送モードの時、前記コマンド及びアドレス及びチップセレクトが前記メモリ900に発行された際に、前記コマンド及びアドレス及びチップセレクトを破棄する。前記コマンド保持回路700は、コマンド及びアドレス及びチップセレクトを保持するコマンドバッファ回路800を持つ。
前記コマンドバッファ回路800は、第一のコマンド種別に属するコマンドのコマンド及びアドレス及びチップセレクト、第二のコマンド種別に属するコマンドのコマンド及びアドレス及びチップセレクトを保持する。第一のコマンド種別、第二のコマンド種別については、実施形態1と同じである。前記コマンドバッファ回路800に保持された第一のコマンド種別に属するコマンドのコマンド及びアドレス及びチップセレクトを第一再送コマンド、アドレス、チップセレクトで出力する。同様に、前記コマンドバッファ回路800に保持された第二のコマンド種別に属するコマンドのコマンド及びアドレス及びチップセレクトを第二再送コマンド、アドレス、チップセレクトで出力する。前記状態管理回路203が通常モードもしくは再送モードから再送待機モードに遷移した際に、前記コマンドバッファ回路800に保持していたコマンドを再送対象コマンドとする。前記状態管理回路203が再送モードの際、前記コマンドバッファ回路800に保持している第一のコマンド種別に属する再送対象コマンドの有無を第一コマンドバッファ情報で出力する。同様に、前記コマンドバッファ回路800に保持している第二のコマンド種別に属する再送対象コマンドの有無を第二コマンドバッファ情報で出力する。
プッシュ生成回路701はコマンド及びアドレス及びチップセレクトが発行された際に、第一のコマンド種別に属するコマンドであれば第一のコマンド種別に属するコマンドを保持することを指示する信号である第一プッシュをアサートする。同様に第二のコマンド種別に属するコマンドであれば第二プッシュをアサートする。前記コマンドバッファ回路800は前記第一プッシュアサート時、第一書き込みコマンド、アドレス、チップセレクトとして入力される前記コマンド及びアドレス及びチップセレクトを保持する。同様に前記第二プッシュアサート時、第二書き込みコマンド、アドレス、チップセレクトとして入力される前記コマンド及びアドレス及びチップセレクトを保持する。
ポップ生成回路702は上述した前記コマンド及びアドレス及びチップセレクトを前記コマンドバッファ回路800から破棄する条件が整うと、コマンド種別に応じて第一ポップもしくは第二ポップをアサートする。前記コマンドバッファ回路800は前記第一ポップアサート時、保持している第一のコマンド種別に属するコマンドのうち最初に保持したコマンド及びアドレス及びチップセレクトを破棄する。同様に前記第二ポップアサート時、保持している第二のコマンド種別に属するコマンドのうち最初に保持したコマンド及びアドレス及びチップセレクトを破棄する。
図6は前記コマンドバッファ回路800の概略構成である。第一ポインタ制御回路801は、第一プッシュ、第一ポップに基づいて、第一書き込みコマンド、アドレス情報の書き込み位置を計算して第一ポインタとして出力する。第一プッシュがアサートされると+1、第一ポップがアサートされるとー1、というように計算する。ここで前記第一ポインタ制御回路801から出力される第一ポインタの初期値は0である。同様に、第二ポインタ制御回路802は第二プッシュ、第二ポップに基づいて、第二書き込みコマンド、アドレスの書き込み位置を計算して第二ポインタとして出力する。
コマンドバッファ状態信号生成回路803は、前記第一ポインタと第二ポインタの値からバッファ805の格納状態を計算し第一エンプティ、フル、第二エンプティ、フルを出力する。第一ポインタが0ならば第一エンプティをアサートし、0でなければデアサートする。同様に第二ポインタが0ならば第二エンプティをアサートし、0でなければデアサートする。前記バッファ805の最大段数をDPT(N段としてもよい)とすると、第一ポインタと第二ポインタの合計値がDPTならば第一フル、第二フルを共にアサートし、合計値がDPTでなければデアサートする。
書き込み制御回路804は第一プッシュがアサートされると、バッファ805中の第一ポインタで示された位置に第一書き込みコマンド、アドレス、チップセレクトの値を書き込む。第二プッシュがアサートされると、データバッファ805中の第二ポインタで示された値をDPT−1から引いた位置に第二書き込みコマンド、アドレス、チップセレクトの値を書き込む。つまり、第一書き込みコマンド、アドレス、チップセレクトは前記バッファ805の0段目から順に+1シフトしながら書き込まれる。第二書き込みコマンド、アドレス、チップセレクトは前記データバッファ805のDPT−1段から順に−1シフトしながら書き込まれる。第一ポップがアサートされると前記バッファ805中の第一ポインタで示された位置より小さい段に格納されたコマンド、アドレス、チップセレクトをそれぞれー1シフトした位置に書き込む。第二ポップがアサートされると前記バッファ805中の第二ポインタで示された位置より大きい段に格納されたコマンド、アドレス、チップセレクトをそれぞれ+1シフトした位置に書き込む。第一書き込みコマンド、第二書き込みコマンドそれぞれが、バッファ805の一方と他方の異なる方向から書き込まれている。
前記バッファ805はコマンド及びアドレス及びチップセレクトを格納するバッファであり、第一再送コマンド、アドレス、チップセレクトに0段目に格納されているコマンド、アドレス、チップセレクトを出力する。第二再送コマンド、アドレス、チップセレクトにはDPT−1段目に格納されているコマンド、アドレス、チップセレクトを出力する。
前記コマンド保持回路700は前記状態管理回路203が通常モードもしくは再送モードから再送待機モードに遷移した際に、第一ポインタ及び第二ポインタの値からコマンド種別毎の再送対象コマンド数を判断することが可能である。前記コマンド種別毎の再送対象コマンド数と同数回、対応したコマンド種別に属するコマンドが再送されると、前記再送対象コマンドが無くなったことを前記第一コマンドバッファ情報及び第二コマンドバッファ情報で出力する。
本実施形態のコマンド保持回路700は、2つのコマンド種別を同一のバッファで保持しつつ、独立して管理することが可能となる。これにより、一定時間内にメモリコントローラが発行するコマンドを全て格納できる再送コマンドバッファをコマンド種別の数だけ持つ必要がなくなり、回路規模の増大を抑制することが可能となる。さらに、実施形態1と同様にシステム要件に応じて優先度の高いコマンド種別のコマンドを優先して再送することで、性能低下を抑制することが可能となる。
本実施形態では再送モードの際、再送対象コマンドがメモリ900に再送されるとコマンド保持回路700から前記再送対象コマンドを破棄するとした。さらにコマンドバッファ回路800からは常に0段目及びDPT−1段目に格納されているコマンド、アドレス、チップセレクトを出力すると説明した。しかし、再送モードの際のコマンドを破棄するタイミングは上記に限定するものではない。再送対象コマンドが前記メモリ900に再送された時刻ではコマンド保持回路から前記再送対象コマンドを破棄せず、再送後一定時間経つまで状態管理回路203が再送モードであったら破棄するとしてもよい。この場合再送モードの際は、再送対象コマンドが前記メモリ900に発行されても前記コマンド保持回路にコマンド及びアドレス及びチップセレクトは保持しない。またコマンドバッファ回路からは全ての段に格納されているコマンド、アドレス、チップセレクトを前記コマンド保持回路に出力する。前記コマンド保持回路は再送対象コマンドが前記メモリ900に再送される毎に次に再送すべきコマンドを選択し、第一再送コマンド、アドレス、チップセレクト及び第二再送コマンド、アドレス、チップセレクトとして出力する。上記動作のコマンド保持回路、コマンドバッファ回路でも本実施形態のメモリコントローラと同等の効果を実現することが可能である。
実施形態1及び2では、通常コマンド生成回路301と再送コマンド生成回路302をそれぞれ別の回路として説明したが、1つの回路で両方の機能を実現させても構わない。
実施形態1では、再送コマンド優先度設定回路502で第一のコマンド種別のコマンドを優先するとして説明したが、第一のコマンド種別のコマンドに限定するものではなく、他コマンド種別のコマンドを優先しても構わない。
実施形態1では、コマンド保持回路204は2つのコマンド種別毎にバッファを持ち、再送コマンド選択回路205は2つのコマンド種別から選択するとして説明したが、コマンドの種別は2つに限定するものではない。コマンド種別は3つ以上であっても構わない。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100 メモリコントローラ
201 コマンド生成回路
202 パリティ生成回路
203 状態管理回路
204 コマンド保持回路
205 再送コマンド選択回路
301 通常コマンド生成回路
302 再送コマンド生成回路
401 第一コマンドバッファ回路
402 第二コマンドバッファ回路
501 再送コマンド調停回路
502 再送コマンド優先度設定回路
600 メモリコントローラ
700 コマンド保持回路
701 プッシュ生成回路
702 ポップ生成回路
800 コマンドバッファ回路
801 第一ポインタ制御回路
802 第二ポインタ制御回路
803 コマンドバッファ状態信号生成回路
804 書きこみ制御回路
805 バッファ
900 メモリ

Claims (9)

  1. コマンドをチップセレクトに従ってメモリに送信する送信手段と、
    前記送信手段が送信したコマンドを保持する保持手段と、
    前記送信手段が送信したコマンドの前記メモリにおける受信において、エラーが発生したことを前記メモリから通知された場合、前記保持手段に保持されたコマンドのうちコマンド種別に基づいて優先するコマンドから順に再送する再送手段と、を備えることを特徴とするメモリコントローラ。
  2. 前記再送手段は、前記送信手段が送信したコマンドの順とは異なり、RD及びWRコマンドを優先して再送することを特徴とする請求項1記載のメモリコントローラ。
  3. 前記メモリは、前記送信手段が送信したコマンドの前記メモリにおける受信においてエラーを検出するとページクローズ状態となるメモリであることを特徴とする請求項1記載のメモリコントローラ。
  4. 前記保持手段は、コマンド種別毎に独立したバッファを持つことを特徴とする請求項1または2記載のメモリコントローラ。
  5. 前記保持手段には、N段のバッファであり、一方のコマンド種別は1段からN段に向かってコマンドを書き込み、他方のコマンド種別はN段から1段に向かってコマンドを書き込まれ、
    前記再送手段は、前記保持手段の異なる方向から読み出された2つのコマンド種別のコマンドを優先するコマンドから順に再送することを特徴とする請求項1または2記載のメモリコントローラ。
  6. 前記再送手段は、前記送信手段が送信したコマンドの順とは異なり、前記メモリがページクローズ状態において発行可能なコマンドを優先して再送することを特徴とする請求項3記載のメモリコントローラ。
  7. 前記メモリがページクローズ状態において発行可能なコマンドは、リフレッシュ、ZQキャリブレーション、モードレジスタコマンドであることを特徴とする請求項6記載のメモリコントローラ。
  8. 前記送信手段では、前記コマンドに対して生成した第1のチェックビットを前記コマンドに付加して送信し、前記第1のチェックビットと前記メモリが受信したコマンド又はアドレスに対して生成した第2のチェックビットとに基づいて、前記メモリにおいて判断されたエラーを通知されることを特徴とする請求項1乃至7何れか1項に記載のメモリコントローラ。
  9. コマンドをチップセレクトに従ってメモリに送信する送信工程と、
    前記送信工程で送信したコマンドを保持手段に保持する工程と、
    前記送信工程で送信したコマンドの前記メモリにおける受信において、エラーが発生したことを前記メモリから通知された場合、前記保持手段に保持されたコマンドのうちコマンド種別に基づいて優先するコマンドから順に再送する再送工程と、を備えることを特徴とするメモリコントローラの制御方法。
JP2014249422A 2014-12-09 2014-12-09 メモリコントローラとその制御方法 Pending JP2016110516A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014249422A JP2016110516A (ja) 2014-12-09 2014-12-09 メモリコントローラとその制御方法
PCT/JP2015/006044 WO2016092798A1 (en) 2014-12-09 2015-12-04 Memory controller and control method for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014249422A JP2016110516A (ja) 2014-12-09 2014-12-09 メモリコントローラとその制御方法

Publications (1)

Publication Number Publication Date
JP2016110516A true JP2016110516A (ja) 2016-06-20

Family

ID=56107021

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014249422A Pending JP2016110516A (ja) 2014-12-09 2014-12-09 メモリコントローラとその制御方法

Country Status (2)

Country Link
JP (1) JP2016110516A (ja)
WO (1) WO2016092798A1 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101308047B1 (ko) * 2007-02-08 2013-09-12 삼성전자주식회사 메모리 시스템, 이 시스템을 위한 메모리, 및 이 메모리를위한 명령 디코딩 방법
US8862973B2 (en) * 2009-12-09 2014-10-14 Intel Corporation Method and system for error management in a memory device

Also Published As

Publication number Publication date
WO2016092798A1 (en) 2016-06-16

Similar Documents

Publication Publication Date Title
US10684793B2 (en) Semiconductor memory devices including error correction circuits and methods of operating the semiconductor memory devices
CN111124998B (zh) 片上系统、其操作方法及包括该片上系统的电子设备
KR102197401B1 (ko) 확장 가능 메모리 시스템 프로토콜로 패킷들을 송신하기 위한 시스템들 및 방법들
KR102401271B1 (ko) 메모리 시스템 및 그 동작 방법
US8020068B2 (en) Memory system and command handling method
US8862973B2 (en) Method and system for error management in a memory device
US9389953B2 (en) Semiconductor memory device and system conducting parity check and operating method of semiconductor memory device
US8533535B2 (en) Semiconductor memory device
CN104810047A (zh) 半导体器件
US11188260B2 (en) Memory module and memory system including the same
KR20190132788A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
TW201009575A (en) Memory access controlling apparatus and control method thereof
US20170024146A1 (en) Memory controller, information processing device, and control method
JP6004463B2 (ja) 記憶装置及びその制御方法
US20210193217A1 (en) Semiconductor devices
KR102608909B1 (ko) 반도체장치
US9239755B2 (en) Semiconductor device and semiconductor system including the same
US8947956B2 (en) Delay circuit and latency control circuit of memory, and signal delay method thereof
JP2016110516A (ja) メモリコントローラとその制御方法
US11322220B2 (en) Memory system including a flash memory device and a memory controller
US11705170B2 (en) Memory device related to performing a column operation
US11893240B2 (en) Reducing latency in pseudo channel based memory systems
US9766821B2 (en) Access controlling method of dual port memory system
US11921649B1 (en) Multiple parallel mode flash channels with serial link
KR102679157B1 (ko) 모드 레지스터 쓰기 명령을 이용하여 쓰기 클럭의 듀티 사이클의 트레이닝을 수행하는 시스템 온 칩, 시스템 온 칩의 동작 방법, 및 시스템 온 칩을 포함하는 전자 장치