JP2023090690A - メモリからeccを読み出す回路および方法 - Google Patents

メモリからeccを読み出す回路および方法 Download PDF

Info

Publication number
JP2023090690A
JP2023090690A JP2022201103A JP2022201103A JP2023090690A JP 2023090690 A JP2023090690 A JP 2023090690A JP 2022201103 A JP2022201103 A JP 2022201103A JP 2022201103 A JP2022201103 A JP 2022201103A JP 2023090690 A JP2023090690 A JP 2023090690A
Authority
JP
Japan
Prior art keywords
command
line
receiving
address line
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2022201103A
Other languages
English (en)
Other versions
JP7500698B2 (ja
Inventor
信明 秦
Nobuaki Hata
雄一 伊勢
Yuichi Ise
ズィットロー クリフォード
Zitlaw Clifford
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.)
Infineon Technologies LLC
Original Assignee
Infineon Technologies LLC
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 Infineon Technologies LLC filed Critical Infineon Technologies LLC
Publication of JP2023090690A publication Critical patent/JP2023090690A/ja
Application granted granted Critical
Publication of JP7500698B2 publication Critical patent/JP7500698B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Dram (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】メモリから誤り訂正符号(ECC)を読み出す回路および方法を提供する。【解決手段】方法は、セレクタ回路にメモリデバイスのデータメモリ部分からのデータを選択させる第1の選択を表す1つまたは複数のビットを含む第1のコマンド及び第1の読み出しコマンドを受信するステップと、セレクタ回路を用いてデータメモリ部分から、第1の読み出しコマンドに関連付けられた第1のデータを供給するステップと、セレクタ回路にECCメモリ部分からのデータを選択させる第2の選択を表す1つまたは複数のビットを含む第2のコマンド及び第2の読み出しコマンドを受信するステップと、セレクタ回路を用いてECCメモリ部分から、第1のデータに関連付けられた第1のECC値を供給するステップと、を含む。【選択図】図1

Description

関連出願の相互参照
本願は、2021年12月17日付にて出願された“Reading Error-Correction Code(ECC) from Non-volatile memory”なるタイトルの米国仮出願第63/290982号の利益を主張し、当該出願は参照により本明細書に組み込まれるものとする。
技術分野
本開示は、一般的には電子システムおよび方法に関し、また特段の実施形態においてはメモリから誤り訂正符号(ECC)を読み出す回路および方法に関する。
ECCとは、データにおける誤りの検出および/または訂正に使用可能な数学的プロセスとして理解することができる。例えば、ECCは、メモリに記憶されたデータにおいてかつ/またはデータの通信中に発生しうる誤り(例えばビットフリップ)を検出しかつ/または訂正するために使用されうる。いくつかの用途では、誤りをリアルタイムで検出し訂正することができる。誤り検出および/または誤り訂正のケイパビリティを達成するために、ECCは冗長性を利用している。例えば、ECCは、64ビットのデータごとに8個の付加ビットを使用して、例えば1回の誤り訂正(SEC)および2回の誤り検出(DED)を達成することができる。従来のECCの一例としてハミング符号が挙げられる。他のタイプのECCも使用可能である。
ECCは、読み出しデータの誤りを検出しかつ/または訂正するために、ダイナミックランダムアクセスメモリ(DRAM)からの読み出しを行う際に使用することができる。例えば、読み出し動作中、メモリコントローラは、データバス線を用いてDRAMからデータを読み出し、専用のECCバス線を用いて読み出しデータに関連付けられたECCを読み出す。次いで、メモリコントローラは、読み出しデータに基づいてECCを再生する。読み出されたECCと再生されたECCとの間に一致が存在するとメモリコントローラが判定した場合、誤りは検出されない。読み出されたECCと再生されたECCとの間の不一致により、誤りが示される。誤りの数(例えばフリップされたビットの数)および特定のECCに依存して、検出された誤りを訂正することができる。例えば、いくつかのDRAMはハミング符号ベースのECCを使用しており、これにより、メモリコントローラがシングルビットエラーを訂正し、かつダブルビットエラーを検出することが可能となる。
一実施形態によれば、方法は、メモリデバイスのパラレルインタフェースの制御線を介して第1のコマンドを受信することと、第1のコマンドを受信した後に、制御線を介して第1の読み出しコマンドを受信することであって、第1のコマンドまたは第1の読み出しコマンドは、第1の選択を表す1つまたは複数のビットを含み、第1の選択は、セレクタ回路にメモリデバイスのデータメモリ部分からのデータを選択させるものであり、第2の選択は、セレクタ回路に誤り訂正符号(ECC)メモリ部分からのデータを選択させるものである、ことと、第1の読み出しコマンドおよび第1の選択を受信した後に、パラレルインタフェースのデータ線を介し、セレクタ回路を用いて、データメモリ部分から、第1の読み出しコマンドに関連付けられた第1のデータを供給することと、制御線を介して第2のコマンドを受信することと、第2のコマンドを受信した後に、制御線を介して第2の読み出しコマンドを受信することであって、第2のコマンドまたは第2の読み出しコマンドは、第2の選択を表す1つまたは複数のビットを含む、ことと、第2の読み出しコマンドおよび第2の選択を受信した後に、データ線を介して、セレクタ回路を用いて、ECCメモリ部分から、第1のデータに関連付けられた第1のECC値を供給することと、を含む。
一実施形態によれば、方法は、メモリデバイスのパラレルインタフェースの制御線を介して第1の読み出しコマンドを受信することと、第1の読み出しコマンドの受信に応答して、パラレルインタフェースのデータ線を介して、第1のメモリ部分から、第1の読み出しコマンドに関連付けられた第1のデータを供給し、メモリデバイスの誤り訂正符号(ECC)メモリ部分から、第1のデータに関連付けられた第1の誤り訂正符号(ECC)値をバッファへコピーすることと、第1の読み出し命令を受信した後に、制御線を介してバッファ読み出しコマンドを受信することと、バッファ読み出しコマンドを受信した後に、データ線を介してバッファから第1のECC値を供給することと、を含む。
一実施形態によれば、集積回路は、制御線を介してコマンドを受信するように構成されかつデータ線を介してデータを伝送するように構成されたパラレルインタフェースと、データを記憶するように構成されたデータメモリ部分と、データメモリ部分に記憶されているデータに関連付けられた誤り訂正符号(ECC)値を記憶するように構成された誤り訂正符号(ECC)メモリ部分と、バッファと、データメモリ部分のデータ出力端に結合された第1の入力端とECCメモリ部分のデータ出力端に結合された第2の入力端とを有するセレクタ回路と、コントローラと、を備え、コントローラは、パラレルインタフェースにより、制御線を介して第1の読み出しコマンドを受信した後に、セレクタ回路に第1の入力端を選択させ、パラレルインタフェースにセレクタ回路の第1の入力端からデータ線を介して第1の読み出しコマンドに関連付けられた第1のデータを供給させ、パラレルインタフェースにより、制御線を介して第2のコマンドを受信した後に、セレクタ回路に第2の入力端を選択させ、パラレルインタフェースにセレクタ回路の第2の入力端からデータ線を介して第1のデータに関連付けられた第1のECC値を供給させる、ように構成されている。
ここで、本発明およびその利点のより充分な理解のために、添付の図面と併せて、以下の説明を参照されたい。
本発明の一実施形態によるメモリシステム100を示す概略図である。 本発明の一実施形態によるメモリシステムを示す概略図である。 本発明の一実施形態による図2のメモリシステムの波形を示す図である。 A~C共に、本発明の一実施形態による、図2のECCアドレス空間への出し入れのための可能なコマンドを示す図である。 本発明の一実施形態による、動作開始コマンドの一部として実現されるアドレス空間選択コマンドを示す図である。 本発明の一実施形態による、読み出しコマンドの一部として実現されるアドレス空間選択コマンドを示す図である。 本発明の一実施形態によるメモリシステムを示す概略図である。 本発明の一実施形態による図7のメモリシステムの波形を示す図である。 本発明の一実施形態による、FIFOバッファからのECC取り出しコマンドを示す図である。 本発明の実施形態による、図2のメモリシステムと図7のメモリシステムとの間の性能比較を示す図である。 本発明の一実施形態によるメモリを示す概略図である。 本発明の実施形態による、ECCを用いてメモリを動作させるための方法の実施形態を示すフローチャートである。 本発明の実施形態による、ECCを用いてメモリを動作させるための方法の実施形態を示すフローチャートである。
異なる図における対応する番号および符号は、全体として、別様の指示がない限り、対応する部分を指すものとする。図は、好ましい実施形態の重要な態様を明確に示すために描いているものであり、必ずしも縮尺通りに描かれているわけではない。
開示する実施形態の構成および使用を以下にて詳細に説明する。ただし、本発明が多様な特定のコンテキストにおいて具現化可能である多数の適用可能な発明のコンセプトを提供することを理解されたい。ここで論じる特定の実施形態は、本発明を構成しかつ使用する特定の手法の例示に過ぎず、本発明の範囲を限定するものではない。
以下の説明は、本説明による複数の例示的な実施形態の詳細な理解を提供するための様々な特定の詳細を示すものである。これらの実施形態は、特定の詳細のうちの1つもしくは複数を用いずに、または他の方法、構成要素、材料などを用いて、達成することができる。別の事例においては、実施形態の種々の態様を不明瞭にしないよう、公知の構造、材料または動作を詳細には図示せずもしくは説明しない。本明細書において「一実施形態」なる記述は、当該実施形態に関連して説明する特定の構成、構造または特徴が少なくとも1つの実施形態に含まれることを示している。したがって、本明細書の種々の個所に登場しうる「1つの実施形態において」のような語句も、必ずしも厳密に同一の実施形態を表すとは限らない。さらに、特定の形態、構造または特徴を、1つまたは複数の実施形態において任意の適切な形式で組み合わせることもできる。
本発明の実施形態を、特定のコンテキスト、例えば低電力通信のための二重データレート(DDR)4(LPDDR4)に準拠したECCケイパビリティを有するフラッシュメモリに則して説明する。いくつかの実施形態は、LPDDR4規格との(例えば完全な)互換性を有することなく、かつ/または他の規格に準拠しながら、または任意の特定の規格に(例えば完全に)準拠することなく、実現可能である。いくつかの実施形態は、他のタイプのメモリ技術を用いて、例えば揮発性メモリおよび他のタイプの不揮発性メモリを用いて、実現することができる。
通信規格は、一般に、特定の技術の採用を容易にするために使用される。デジタル通信規格は、情報の交換のための規則のセット、例えば、デジタル通信線と、当該デジタル通信線において例えばデバイスとのインタフェースを形成するために搬送されるデジタル信号の関連する特性(例えば方向、搬送されているデータのタイプ、タイミング要件など)と、のセットを規定するものとすることができる。
デジタル通信規格の例として、DDR、DDR2、DDR3、DDR4、DDR5、LPDDR(1)、LPDDR2、LPDDR3、LPDDR4、LPDDR4、LPDDR4X、LPDDR5、LPDDR5X、IC、USB3.2(またはこれ以前のもの)などが挙げられる。
通信規格は標準化機構によって公開されているものであってよい。標準化機構の例には、JEDEC、IEEE、ISO、USB-IFが含まれる。いくつかの事例では、企業などの非標準化機構が、後に業界標準として採用されうる通信プロトコル仕様(例えば、Phillips Semiconductors社が最初に公開したIC仕様)を公開することもある。
例えば、2014年8月に公開され、第JESD209-4号に関連付けられている低電力通信のための二重データレート4(LPDDR4)は、シンクロナスDRAMとのインタフェース形成/通信のためにJEDEC Solid State Technology Association(JEDECとも称される)によって規定された規格である。LPDDR4はECCを本来はサポートしていない。
本発明の一実施形態において、不揮発性メモリ、例えばフラッシュメモリは、データおよび関連するECCを記憶する。不揮発性メモリは、LPDDR4メモリコントローラが不揮発性メモリの読み出し動作を実行して、メモリコントローラのハードウェア変更を必要とすることなく、例えばECCを読み出す追加の通信線を必要とすることなしに、不揮発性メモリからDQ線を介して読み出しデータおよび関連するECCを取り出すことを可能にする。いくつかの実施形態では、読み出し動作後、多目的コマンド(MPC)を使用して、DQ線路を介してECCが取り出される。いくつかの実施形態では、LPDDR4規格によって規定された1つまたは複数の予約ビットまたは未使用ビットが、読み出し動作によってアクセスされるアドレス空間の選択(例えばデータ空間またはECC空間のいずれか)に使用される。いくつかの実施形態では、1つまたは複数の予約ビットまたは未使用ビットは、LPDDR4規格の予約レジスタ内に配置されている。いくつかの実施形態では、1つまたは複数の予約ビットまたは未使用ビットは、LPDDR4規格によって規定された標準コマンドの一部であり、例えば動作開始コマンドまたは読み出しコマンドの一部である。
図1には、本発明の一実施形態によるメモリシステム100の概略図が示されている。メモリシステム100は、メモリコントローラ102およびメモリ132を含む。メモリコントローラ102は、DDR物理層(DDR PHY)104およびDDRコントローラ106を含む。メモリ132は、DDR物理層(DDR PHY)134、データメモリアレイ136、ECCメモリアレイ138およびデータフローコントローラ140を含む。いくつかの実施形態では、メモリシステム100は、LPDDR4規格との互換性を有し、かつこれに準拠している。
図1に示されているように、いくつかの実施形態では、DDR PHY104およびDDR PHY134は、データ入出力(DQ)線、データストローブ(DQS)線、コマンド/アドレス(CA)線、クロック(CK)線およびチップ選択(CS)線に接続されている(図示されていない他の線がDDR PHY104とDDR PHY134とを接続していてもよい)。CAおよびCSは、(例えばCK線に基づいて)DDR PHY134にコマンドを供給するために使用されうる。DQ線およびDQS線は、それぞれ双方向データバスのデータ線およびデータストローブ線である。
いくつかの実施形態では、DDR PHY104は、DDR PHY134に対し、コマンドアドレス信号CA、クロック信号CKおよびチップ選択信号を供給する。データ信号DQおよびデータストローブ信号DQSは、それぞれ、メモリコントローラ102がメモリ132への書き込みを行っているかまたはメモリ132からの読み出しを行っているかに応じて、DDR PHY104によってまたはDDR PHY134によって供給可能である。
いくつかの実施形態では、データメモリアレイ136は、データを記憶するように構成されている(例えばDQ線を介してメモリコントローラ102により書き込まれる)。
いくつかの実施形態では、メモリ132は、例えば各メモリバンク内に実現された複数のデータメモリアレイ136を含み、ここで、バンクの選択は、バンクアドレスビス(例えばLPDDR4規格によって規定されている読み出しコマンドまたは動作開始コマンドのビットBA0,BA1,およびBA2など)によって制御可能である。
いくつかの実施形態では、ECCメモリアレイ138は、データメモリアレイ136に記憶されたデータに関連付けられたECCを記憶するように構成されている。例えば、いくつかの実施形態では、ECCメモリアレイ138は、データメモリアレイ136と同数のアドレスを含むことができ、メモリアレイ136の同じアドレスに記憶されたデータに対応するECCを各アドレスに記憶することができる。他の実現形態も可能である。
いくつかの実施形態では、ECCメモリアレイ138は、データメモリアレイ136より小さくてよい。例えば、64ビットのデータごとに8個のECCビットが使用される実施形態では、ECCメモリアレイ138は、例えば、アドレスを同数としたとき、データメモリアレイ136より8倍小さくすることができる。
いくつかの実施形態では、メモリアレイ136および138を、例えばNORフラッシュまたはNANDフラッシュなどのフラッシュメモリと共に実現することができる。ノンフラッシュメモリ、例えば揮発性メモリを使用するなどの他の実現形態も可能である。
いくつかの実施形態では、DDR PHY104および134は、それぞれ例えばCA線、CS線およびCK線を用いてコマンドを送受信するように構成されており、また、DQ線およびDQS線を用いてデータを送受信することができる。いくつかの実施形態では、DDR PHY104および134は、当該技術分野において公知の任意の手法で実現することができる。例えば、いくつかの実施形態では、DDR PHY104および/または134は、LPDDR4規格に準拠するかまたはLPDDR4規格との互換性を有することができる。
いくつかの実施形態では、DDRコントローラ106は、例えば、DDR PHY104を用いてデータを読み出すためまたは書き込むために、メモリ132を動作させるように構成されている。いくつかの実施形態では、DDRコントローラ106は、メモリに記憶された命令を実行することのできる汎用のまたはカスタムのコントローラまたはプロセッサによって実現可能である。いくつかの実施形態では、DDRコントローラ106を、ステートマシンを用いて実現することができる。他の実現形態も可能である。
いくつかの実施形態では、メモリコントローラ102は、スタンドアローンのコントローラとして、例えば集積回路(IC)内に実現されている。いくつかの実施形態では、メモリコントローラ102は、他の回路、例えばマイクロコントローラ、ADC、DACなどを含むシステムオンチップ(SoC)などのIC内に実現されている。
いくつかの実施形態では、メモリ132は、単一のダイまたは複数のダイを含みうる単一のIC内に実現されている。いくつかの実施形態では、メモリ132は、複数のICを用いて実現することができる。
いくつかの実施形態では、DQ線は、1つまたは複数のDQS線に基づいて、メモリコントローラ102とメモリ132との間でデータを伝送するための双方向線である。いくつかの実施形態では、DQS線は、読み出し動作または書き込み動作のためにDQ線のデータのストローブに使用される双方向クロック線である。例えば、いくつかの実施形態では、読み出し動作中、DDR PHY134は、DQS線のクロック信号にエッジ整合されたDQ線を介して読み出しデータが供給される間、DQS線を介してクロック信号を供給する。いくつかの実施形態では、書き込み動作中、DDR PHY104は、DQS線のクロック信号にエッジ整合されたDQ線を介して書き込みデータが供給される間、DQS線を介してクロック信号を供給する。
いくつかの実施形態は、DQ線のグループごとに1対の差動DQ線を含んでいる。例えば、いくつかの実施形態では、差動クロックを搬送する一対のDQS線が、8ビットバイトレーン(DQ)ごとに設けられている。例えば、いくつかの実施形態では、各通信チャネルが、16ビットのデータ(上位バイトに関連付けられた8ビットと下位バイトに関連付けられた8ビット)を搬送する16個のDQ線と、上位バイトおよび下位バイトのそれぞれに対する差動クロックを搬送する2対のDQS線と、を含む。他の実現形態も可能である。例えば4個、8個、32個および64個のDQ線を有する実施形態も可能である。
いくつかの実施形態では、CS線およびCA線は、例えば(例えば差動)CK線に基づいて(例えばCK線に供給されるクロック信号に基づいて)、メモリ132にコマンドを供給するために使用される。CS線およびCA線を使用して供給されうる可能なコマンドの例には、読み出しコマンド、書き込みコマンド、多目的コマンド(MPC)および(例えばLPDDR4規格に規定されている)動作開始コマンドが含まれる。例えば、いくつかの実施形態では、例えばバンクおよびアドレスの選択を提供するために、任意の読み出しコマンドまたは書き込みコマンドの前に、動作開始コマンドが使用される。いくつかの実施形態では、(単一読み出し動作またはバースト読み出し動作でありうる)読み出しコマンドは、メモリ132に、以前の動作開始コマンドを使用して選択されたアドレスおよびバンクに関連付けられたデータをDQ線へ供給させるためのものである。いくつかの実施形態では、(単一書き込み動作またはバースト書き込み動作でありうる)書き込みコマンドは、メモリ132に、以前の動作開始コマンドで選択されたアドレスおよびバンクに関連付けられたデータメモリストレージにDQ線からのデータを記憶させるためのものである。いくつかの実施形態では、MPCコマンドは、メモリ132に、1つまたは複数のトレーニングモードにアクセスさせるためのものである。
いくつかの実施形態は、通信チャネルあたり6個のCA線、1個のCS線および差動クロックCK線を含む。他の実現形態も可能である。
いくつかの実施形態では、データフローコントローラ140は、DDR PHY134に、DQ線を使用して、読み出しコマンド中に読み出されたデータに関連付けられたECC値を供給させるように構成されており、ここで、ECC値はECCメモリアレイ138に記憶されている。いくつかの実施形態では、データフローコントローラ140は、読み出しコマンドに応答して、DDR PHY134にECC値を供給させるように構成されたステートマシンを含む。いくつかの実施形態では、データフローコントローラ140は、メモリ内で命令を実行するように構成された汎用のまたはカスタムのコントローラまたはプロセッサを含む。他の実現形態も可能である。
データメモリアレイ136とECCメモリアレイ138とが2つの別個のアレイとして図示されているが、いくつかの実施形態では、データメモリアレイ136およびECCメモリアレイ138は同じメモリアレイの一部である。例えば、いくつかの実施形態では、データおよび関連するECC値が単一のアレイ内で交互配置される。他の実現形態も可能である。
図2には、本発明の一実施形態によるメモリシステム200の概略図が示されている。メモリシステム200は、メモリコントローラ202およびメモリ232を含む。メモリコントローラ202は、DDR PHY104およびDDRコントローラ206を含む。メモリ232は、DDR PHY134、データフローコントローラ240およびメモリストレージ237を含む。メモリストレージ237は、データメモリアレイ136およびECCメモリアレイ138を含む。データフローコントローラ240は、ステートマシン234およびマルチプレクサ(MUX)236を含む。メモリ132がメモリ200として実現されてよい。データフローコントローラ140がデータフローコントローラ240として実現されてよい。メモリコントローラ102がメモリコントローラ202として実現されてよい。DDRコントローラ106がDDRコントローラ206として実現されてよい。
いくつかの実施形態では、メモリシステム200は、LPDDR4規格との互換性を有し、かつこれに準拠している。
通常動作中、メモリコントローラ202が読み出しコマンドを発すると、DDR PHY134は、MUX236の出力に依存して、アレイ136または138からDQ線にデータを供給する。MUX236は、アドレス空間選択信号ASSELに基づいて、データメモリアレイ126またはECCメモリアレイ138からデータバスD236にデータを供給するかどうかを選択する。いくつかの実施形態では、ステートマシン234は、読み出しコマンド中または読み出しコマンドの前にCA線および/またはCS線において受信された1つまたは複数のビットに基づいて、アドレス空間選択信号ASSELの状態を決定する。例えば、いくつかの実施形態では、メモリ232への読み出しコマンドの送信前に、DDRコントローラ206が、アドレス空間信号ASSELの状態を選択するコマンド(例えば動作開始コマンド)を送信する。いくつかの実施形態では、DDRコントローラ206が、読み出しコマンドのビットを使用してアドレス空間信号ASSELの状態を選択する。
ステートマシン234は、(CA線およびCS線から受信されたデータに基づいて)DDR PHY134からコマンドおよびアドレスの詳細を受信し、このようにして受信されたコマンドに基づいて、MUX236、データメモリアレイ136およびECCメモリアレイ238を制御するように構成されている。いくつかの実施形態では、ステートマシン234は、論理ゲートおよびフリップフロップを使用して実現することができる。いくつかの実施形態では、ステートマシン234はプログラミング可能であってよい。他の実現形態も可能である。
いくつかの実施形態では、バスD234は、受信されたコマンドに関する詳細、例えばコマンドのタイプ(例えば読み出し、書き込み、MPCなど)および関連するパラメータ(例えばBL、APなど)ならびにアドレシングの詳細、例えば行/列アドレスおよびバンクアドレスを搬送する。
いくつかの実施形態では、バスD237がメモリアドレス(例えば行/列アドレス、バンクアドレス)と(例えば1つまたは複数の制御信号を用いて)命令とを搬送し、これによりデータの記憶または伝送が行われる。
いくつかの実施形態では、バスD136が、バスD237から受信されたメモリアドレスに関連付けられたデータメモリアレイ136からのデータを搬送する。いくつかの実施形態では、バスD138が、バスD237から受信されたメモリアドレスに関連付けられたECCメモリアレイ138からのデータを搬送する。
いくつかの実施形態では、信号ASSELが、メモリ232のレジスタ内のアドレス空間選択ビットに割り当てられている。アドレス空間選択ビットがアサートされると(例えば論理1)、ECCメモリ空間が選択され、アドレス空間選択ビットがデアサートされると(例えば論理0)、データメモリ空間が選択される。いくつかの実施形態では、例えばCA線、CS線およびCK線を使用して受信されたコマンドにより(例えば受信されたコマンドの内容に基づいて)、アドレス空間選択ビットがアサートまたはデアサートされるようにすることができる。
図3には、本発明の一実施形態によるメモリシステム200の波形300が示されている。図3は、図2を考慮して理解することができる。
図3に示されているように、時点tで、メモリコントローラ202は、CA線、CS線およびCK線を使用して第1のコマンドCMDをメモリ232へ送信し、ここで、コマンドCMDは、MUX236にデータメモリアレイ136からのデータを供給させる信号ASSELをデアサートさせるための1つまたは複数のビット(例えば論理0)を含む。時点tで、メモリコントローラ202は、CA線、CS線およびCK線を使用して読み出しコマンドRDをメモリ232へ送信する。コマンドCMDが信号ASSELをデアサートさせたので、MUX236は読み出しコマンドRDの受信に応答してデータメモリアレイ136からデータを供給し、次いで、このデータが、時点tから、DQ線およびDQS線を使用してメモリコントローラ202へ伝送される。
時点tで読み出し動作が終了した後、メモリコントローラ202は、CA線、CS線およびCK線を使用して第2のコマンドCMDをメモリ232へ送信し、ここで、コマンドCMDは、MUX236にECCメモリアレイ138からのデータを供給させるための信号ASSELをアサートする1つまたは複数のビット(例えば論理1)を含む。時点tで、メモリコントローラ202は、CA線、CS線およびCK線を使用して、読み出しコマンドRDをメモリ232へ送信する。コマンドCMDが信号ASSELをアサートさせたので、MUX236が読み出しコマンドRDの受信に応答してECCメモリアレイ138からのデータを供給し、次いで、このデータが時点tからDQ線およびDQS線を使用してメモリコントローラ202へ伝送される。
いくつかの実施形態では、時点tから伝送される読み出しコマンドRDは、時点tから伝送されるECCが時点tから伝送されるデータに関連付けられるよう、時点tから伝送される読み出しコマンドRDと同じアドレスに関連付けられる。いくつかの実施形態では、時点tから伝送されるECCデータは、時点tから伝送されるデータに関連付けられない(例えば異なるアドレスに関連付けられうる)。
図2および図3には、ECCメモリ空間を選択するアサート信号ASSELが論理1に対応し、データメモリ空間を選択するデアサート信号ASSELが論理0に対応する実施形態が示されているが、反対の極性も使用可能であることが理解される。
図4のAには、本発明の一実施形態によるコマンドCMDおよびCMDの可能な実現形態が示されている。図4のBおよびCには、本発明の一実施形態による、図4のAに示されているコマンドCMDおよびCMDにそれぞれ関連付けられる波形が示されている。図4のA~Cに示されている実施形態では、通信チャネルごとに、6個のCA線、1個のCS線および差動クロックCK線が使用されている(簡明性のために、図4のBおよびCには差動クロックCK線の1つのクロック信号のみを示している)。他の実現形態も可能である。メモリシステム200は、図4のA~Cに示されているように、コマンドCMDおよびCMDを実現可能である。
図4のA~Cに示されているように、いくつかの実施形態では、コマンドは、CS線のハイ状態の間およびCS線のロー状態の間に伝送されるビットによって形成されている。
図3によれば、いくつかの実施形態では、図4のA~Cに示されているコマンドCMDおよびCMDが使用される場合、コマンドCMDの後かつ時点tの前に動作開始コマンドを伝送し、コマンドCMDの後かつ時点tの前に動作開始コマンドを伝送する。いくつかの実施形態では、このような動作開始コマンドが、図5に示されているようにビット502をドントケアとして(ローまたはハイで)実現されうる。いくつかの実施形態では、CAS-2および非選択コマンド(図示せず)などの他のコマンドも、時間t~tの間に伝送することができる。
いくつかの実施形態では、図4のA~Cに示されているようにコマンドCMDおよびCMDを実現することにより、LPDDR4規格との互換性を維持することが有利に可能となる一方、LPDDR4では、コマンドがMPCコマンドの一部である予約コマンド(RFU)として図4のA~Cに示されているように規定されるので、DQ線およびDQS線を用いたECC値の伝送が可能となる。他のコマンドも使用可能である。例えば、いくつかの実施形態では、図4のAおよびBにコマンドCMDとして示されているコマンドをコマンドCMDとして使用し、図4のAおよびCにコマンドCMDとして示されているコマンドをコマンドCMDとして使用することもできる。いくつかの実施形態では、CMDおよびCMDは、例えばMR26などのLPDDR4規格のMode Register Write(MRW)コマンドの一部として実現することができる。
いくつかの実施形態では、コマンドCMDおよびCMDは、動作開始コマンドを使用して実現される。例えば図5には、本発明の一実施形態による、動作開始コマンドの一部として実現されたコマンドCMDおよびCMDとが示されている。図5に示されている実施形態は、通信チャネルごとに6個のCA線、1個のCS線および差動クロックCK線を使用しており、ここで、6個のCA線からのデータは、例えば図4のBおよびCに示されているのと同様に、CS線のハイ状態中に伝送され、次いでCS線のロー状態中に伝送される。他の実現形態も可能である。メモリシステム200は、図5に示されているように、コマンドCMDおよびCMDを実現することができる。
図5に示されているように、いくつかの実施形態では、動作開始コマンドは、CS線の2サイクルにおけるCS線のハイ状態中およびロー状態中に伝送されるビットによって形成される(コマンドACT-1およびこれに続くコマンドACT-2が動作開始コマンドを形成している)。
図5に示されているように、動作開始コマンドは、ビットBA0~BA2(アドレシングされるメモリバンクを示す)およびビットR0~R15(例えば後続の読み出しコマンド中に使用されるメモリ行アドレスを示す)を含んでいる。図5に示されているように、いくつかの実施形態では、ビット502は、信号ASSELの状態を示すために使用されている。例えば、メモリコントローラ202は、ECCメモリアレイ138からECCデータを読み出す読み出しコマンドに先行する動作開始コマンド中、(例えばハイ)ビット502をアサートし、データメモリアレイ136からデータを読み出す読み出しコマンドに先行する動作開始コマンド中、(例えばロー)ビット502をデアサートする。
いくつかの実施形態では、図5に示されているようにコマンドCMDおよびCMDを実現することにより、有利には、LPDDR4規格との互換性を維持しつつ、DQ線およびDQS線(例えばここではDQ線はデータを搬送し、DQS線は当該データに関連付けられたクロックを搬送する)を使用したECC値の伝送が可能となる。なぜなら、LPDDR4では、ビット502が規定状態(ローまたはハイ)を有するもののこれに機能を関連させないことが要求されるビットとして規定されているからである。
いくつかの実施形態では、動作開始コマンドの他のビットが、信号ASSELの状態を設定するために使用されうる。例えば、メモリ232が、2個のダイを含みかつ1個のダイあたり2個のチャネルおよび1個のチャネルあたり8個のバンクを有する4Gbメモリである実施形態では、ビットR14~R15は使用されない。この種のいくつかの実施形態では、ビットR14~R15のうちの1つを使用して、(例えばビット502に関して説明したのと同様の方式で)信号ASSELの状態を設定することができる。別の例として、メモリ232が8個のバンクに分散されている256Mbのメモリである実施形態では、ビットR11~R15が使用されない。この種のいくつかの実施形態では、ビットR11~R15のうち1つを用いて信号ASSELの状態を設定することができる。
いくつかの実施形態では、動作開始コマンドの未使用ビット(例えば動作開始コマンドの未使用のRビット)を使用して(ECCアドレス空間とデータアドレス空間との間の)アドレス空間を選択することにより、有利には、LPDDR4規格との互換性を維持しつつ、DQ線およびDQS線を使用したECC値の伝送が可能となる。
いくつかの実施形態では、コマンドCMDおよびCMDは、読み出しコマンドを使用して実現される。例えば、いくつかの実施形態では、時点tおよび時点tで発生する読み出しコマンドRDを、それぞれ時点tおよび時点tでCMDおよびCMDを実行する代わりに、それぞれCMDおよびCMDに置き換えることができる。
図6には、本発明の一実施形態による読み出しコマンドの一部として実現されたコマンドCMDおよびCMDが示されている。図6に示されている実施形態は、通信チャネルごとに6個のCA線、1個のCS線および差動クロックCK線を使用しており、ここで、6個のCA線からのデータは、CS線のハイ状態中およびその後のCS線のロー状態中に、例えば図4のBおよびCに示されているのと同様に伝送される。他の実現形態も可能である。メモリシステム200は、図6に示されているようにコマンドCMDおよびCMDを実現可能である。
図6に示されているように、いくつかの実施形態では、読み出しコマンドは、CS線のハイ状態中およびロー状態中に伝送されるビットによって形成される。
図6に示されているように、読み出しコマンドは、(アドレシングすべきメモリバンクを示す)ビットBA0~BA2、読み出しバースト長(例えば16または32)を制御するビットBL、オートプリチャージ機能を制御するビット、および、コマンドCAS-2のビットC8~C0(図示せず)と共にアドレシングすべき列アドレスを形成するビットC9を含む。図6に示されているように、いくつかの実施形態では、ビット602は、信号ASSELの状態を示すために使用されている。例えば、メモリコントローラ202は、ECCメモリアレイ138からECCデータを読み出す読み出しコマンド中、(例えばハイ)ビット602をアサートし、データメモリアレイ136からデータを読み出す読み出しコマンド中、(例えばロー)ビット602をデアサートする。
いくつかの実施形態では、図6に示されているようにコマンドCMDおよびCMDを実現することにより、有利には、LPDDR4規格との互換性を維持しつつ、DQ線およびDQS線(例えばここではDQ線はデータを搬送し、DQS線は当該データに関連付けられたクロックを搬送しうる)を使用したECC値の伝送が可能となる。なぜなら、LPDDR4では、ビット602が規定状態(ローまたはハイ)を有するもののこれに機能を関連させないことが要求されるビットとして規定されているからである。
いくつかの実施形態では、読み出しコマンドの他のビットを、信号ASSELの状態を設定するために使用することができる。例えば、バースト長機能をディスエーブルにする実施形態では、ビットBLを使用して、(例えばビット502に関して説明したのと同様の方式で)信号ASSELの状態を設定することができる。オートプリチャージ機能をディスエーブルにする実施形態(例えばオートプリチャージ機能を使用できない不揮発性メモリの実施形態)では、ビットAPを使用して、(例えばビット502に関して説明したのと同様の方式で)信号ASSELの状態を設定することができる。
いくつかの実施形態では、読み出しコマンドの未使用ビット(例えば未使用の機能に対応するビット)を使用して(ECCアドレス空間とデータアドレス空間との間の)アドレス空間を選択することにより、有利には、LPDDR4規格との互換性を維持しつつ、DQ線およびDQS線を用いたECC値の伝送が可能となる。
いくつかの実施形態の利点には、同じデータバス(例えばDQ線およびDQS線)を使用した読み出しデータに関連付けられたECC値の(例えば不揮発性)メモリによる供給が含まれ、これにより有利には、(ECCの供給によって)メモリの信頼性を増大させつつ、(メモリおよび/またはメモリコントローラに追加のピンを必要としうる)ECC値の供給のための付加的な通信線の使用が回避される。
いくつかの実施形態の利点には、(例えば不揮発性)メモリの、LPDDR4規格との互換性を維持し、LPDDR4規格への準拠を可能にしつつ、読み出しデータに関連付けられたECC値を供給することが含まれ、これにより有利には、ハードウェアの変更を行わずにLPDDR4メモリコントローラの再使用が可能となる(いくつかの実施形態では、わずかなファームウェア変更を実行するのみで、LPDDR4メモリコントローラをDQ線およびDQS線を介してECC値を取り出すコマンドに適合させることができる)。
図7には、本発明の一実施形態による、メモリシステム700の概略図が示されている。メモリシステム700は、メモリコントローラ702およびメモリ732を含む。メモリコントローラ702は、DDR PHY104およびDDRコントローラ706を含む。メモリ732は、DDR PHY134、データフローコントローラ740およびメモリストレージ237を含む。データフローコントローラ740は、ステートマシン734および先入れ先出しバッファ(FIFOバッファ)736を含む。メモリ132をメモリ732として実現することができる。データフローコントローラ140をデータフローコントローラ740として実現することができる。メモリコントローラ102をメモリコントローラ702として実現することができる。DDRコントローラ10をDDRコントローラ706として実現することができる。
いくつかの実施形態では、メモリシステム700は、LPDDR4規格との互換性を有し、かつこれに準拠する。
メモリシステム700はメモリシステム200と同様に動作する。ただし、メモリシステム700は、読み出しコマンドに応答して、FIFOバッファ736を使用してECC値を一時的に記憶する。例えば、いくつかの実施形態では、読み出しコマンドの受信に応答して、メモリ732は、データメモリアレイ136から要求されたデータを供給し、関連するECC値をECCメモリアレイ138からFIFOバッファ736へ(例えば自動的にかつ/または同時に)供給する。後続のコマンドでは、メモリコントローラ702が、DQ線およびDQS線を使用して、DDR PHY134によって供給可能なデータをFIFOバッファ736から要求することができる。
ステートマシン734は、(CA線およびCS線から受信されたデータに基づいて)DDR PHY134からコマンドおよびアドレスの詳細を受信し、読み出しコマンドの受信に応答して、データメモリアレイ136からDDR PHY134へ、またECCメモリアレイ138からFIFOバッファ736へ、データを転送させるように構成されている。ステートマシン734はまた、FIFO読み出しコマンドに応答して、FIFOバッファ736からDDR PHY134へデータを転送させるように構成されている。いくつかの実施形態では、ステートマシン734は、論理ゲートおよびフリップフロップを使用して実現されうる。いくつかの実施形態では、ステートマシン734は、プログラミング可能であってよい。他の実現形態も可能である。
いくつかの実施形態では、バスD734は、FIFOバッファ736に、バスD736を介してFIFOバッファ736に記憶されたデータ(例えばECC値)を伝送させるための制御信号を搬送する。
いくつかの実施形態では、バスD736は、FIFOバッファ736からのデータを搬送する。
いくつかの実施形態では、付加的なMUX(737)が、第1の入力端および第2の入力端でバスD136およびD736を受信し、ステートマシン734からの出力に基づいて、選択された出力を(例えばMUX236と同様の方式で)DDR PHY134に選択的に供給し、ここで、ステートマシン734は、MUX236に、読み出し要求の受信に応答してバスD136を選択させ、FIFO読み出し要求の受信に応答してバスD736を選択させる。いくつかの実施形態では、こうした選択をDDR PHY134内で実行し、MUX737を省略するかまたはこれをDDR PHY134内に実現することもできる。
いくつかの実施形態では、FIFOバッファ736は、ECCメモリアレイ138からのECC値を記憶するように構成されている。いくつかの実施形態では、FIFOバッファ736はまた、MPCベースのトレーニングに関連付けられたデータを記憶するように構成されている。いくつかの実施形態では、FIFOバッファ736は、当該技術分野で公知の任意の形式で実現することができる。
図8には、本発明の一実施形態によるメモリシステム700の波形800が示されている。図8は、図7を考慮して理解することができる。
メモリコントローラ702は、図8に示されているように、時点t11において、CA線、CS線およびCK線を使用してメモリ732に読み出しコマンドRDを送信する。読み出しコマンドRDの受信に応答して、ステートマシン734が、データメモリアレイ136に、要求された読み出しデータをDDR PHY134へと供給させ、次いで、DDR PHY134が、時間t12からDQ線およびDQS線を使用して要求された読み出しデータを伝送する。読み出しコマンドRDの受信に応答して、ステートマシン734はまた、ECCメモリアレイ138からFIFOバッファ736へ、要求された読み出しデータに関連付けられたECC値をコピーさせる。いくつかの実施形態では、ECC値のコピーは、時点t12から時点t13までの間に行われる。いくつかの実施形態では、ECC値のコピーは、時点t12の前に行われる。
時点t13で読み出し動作が終了した後、メモリコントローラ702は、CA線、CS線およびCK線を使用して、FIFOバッファ736からの読み出しを要求するFIFO読み出し要求を含むコマンドCMDをメモリ232へ送信する。FIFO読み出し要求に応答して、ステートマシン734は、FIFOバッファ736に、記憶されているECC値をDDR PHY134へと供給させ、次いでこのECC値がDQ線およびDQS線を使用して時点t14から伝送される。
いくつかの実施形態では、時点t14から伝送されるECC値は、時点t12から伝送される(データと同じ順序で伝送される)データに関連付けられている。
いくつかの実施形態では、図8に示されている読み出しコマンドRDは、図6に示されている通り、(ハイ状態またはロー状態を有する)ビット602がドントケアであるように実現されている。
図9は、本発明の一実施形態による、コマンドCMDの可能な実現形態が示されている。図9に示されている実施形態は、通信チャネルごとに6個のCA線、1個のCS線および差動クロックCK線を使用しており、ここで、6個のCA線からのデータが、CS線のハイ状態中およびその後のCS線のロー状態中に、例えば図4のBおよびCに示されているのと同様に伝送される。他の実現形態も可能である。メモリシステム700は、図9に示されているようにコマンドCMDを実現することができる。
図8に関して、いくつかの実施形態では、コマンドCMDが伝送される場合、伝送の直後に、CAS-2コマンド(図示せず)が連続的にかつ他のいずれのコマンドも間に挟むことなく続行する。
いくつかの実施形態では、図9に示されているようにコマンドCMDを実現することにより、有利には、DQ線およびDQS線を使用したECC値の伝送を可能にしつつ、LPDDR4規格との互換性を維持することが可能となる。なぜなら、LPDDR4は、図9に示されているコマンドを、読み出しまたは書き込みのトレーニング動作中に使用されるFIFOバッファからデータを取り出すために使用されるMPCとして規定しているからである(なお、当該コマンドは非トレーニング中には使用されず、したがって読み出しコマンドの後にFIFOバッファ736に記憶されているデータを取り出すためのFIFOバッファ736へのアクセスの際に使用可能となる)。
図10には、本発明の実施形態による、メモリシステム200とメモリシステム700との間の性能比較が示されている。
図3および図10に示されているように、メモリシステム200は、読み出しコマンド(コマンドCMDの後のコマンドRD)を使用して(例えばそれぞれの動作開始コマンドおよびRDコマンドによって供給される同じアドレシング設定で)データメモリアレイ136からデータを取り出すのと同様に、読み出しコマンド(コマンドCMDの後のコマンドRD)を使用してECCメモリアレイ138からECC値を取り出す。したがって、メモリシステム200として実現されているいくつかの実施形態では、関連するECC値を取り出す場合と同数のサイクルをデータの取り出しに使用することができる。例えば、8ビットのECC値が64ビットのデータごとに使用される実施形態では、8回の読み出し動作中(例えばDDRを用いた16個のDQ線を使用して8×256ビットのデータを取り出すためのバースト読み出し中)に、メモリコントローラ202により、64個のクロックパルス(128個のクロックエッジ)が8×256ビットのデータを取り出すために使用され、64個のクロックパルス(128個のクロックエッジ)が、8×256ビットのデータと8×32ビットのECC値とを加算したものを取り出すための合計128個のクロックパルスに対する、8×32ビットのECC値を取り出すために使用される。いくつかの実施形態では、未使用のECCビット(例えば各ECC読み出しのためのビット33~256)をデフォルト状態(例えば論理0)に設定可能である。
図8および図10に示されているように、メモリシステム700は、データメモリアレイ136からデータを取り出すために使用される読み出しコマンド(コマンドRD)とは異なる別個のコマンド(コマンドCMD)を使用して、FIFOバッファ736からECC値を取り出す。したがって、いくつかの実施形態では、FIFOバッファ736からECC値のセットを取り出すために使用されるクロックパルス数は、データの取り出しに使用されるクロックパルス数とは異なる。例えば、図10に示されているように、いくつかの実施形態では、メモリシステム700は、FIFOバッファ736からデータを取り出すために、異なる(例えば固定の)数のクロックパルス(例えば8個のクロックパルス)を使用することができる。例えば、8ビットのECC値が64ビットのデータごとに8回の読み出し動作中(例えばDDRを有する16個のDQ線を使用して8×256ビットを取り出すためのバースト読み出し中)に使用される実施形態では、メモリコントローラ202により、64個のクロックパルス(128個のクロックエッジ)が8×256ビットのデータを取り出すために使用され、8個のクロックパルス(16個のクロックエッジ)が、8×256ビットのデータと8×32ビットのECC値とを加算したものを取り出すための合計72個のクロックパルスに対する、8×32ビットのECC値を取り出すために使用される。
図10に示されているように、いくつかの実施形態では、(例えばFIFO)バッファを使用して読み出しコマンド中にECC値を一時的に記憶し、次いでバッファ読み出しコマンドに応答してDQ線およびDQS線を使用してECC値を伝送し、これにより、有利には、ECCメモリアレイからECC値を取り出すために読み出しコマンドを使用する場合よりも高い性能が得られる(例えばデータと関連するECC値とを加えたものの伝送がより高速となる)。
図11には、本発明の一実施形態によるメモリ1100の概略図が示されている。メモリ132はメモリ1100として実現可能である。メモリ1100は、シリアルインタフェース1110、制御論理回路1112、DDR PHY134、データフローコントローラ140、8個のメモリバンク237、ならびにバス1122および1124を含む。各メモリバンク237は、データメモリアレイ136、ECCメモリアレイ138、読み出しパス1104および読み出し/書き込みパス1102を備えている。
図11に示されているように、各メモリバンク237には、バス1122を使用した読み出し動作のために、DDR PHY134を介してアクセス可能である。各メモリバンク237には、バス1124を使用した読み出し動作または書き込み動作のために、シリアルインタフェース1110を介してアクセス可能である。
いくつかの実施形態では、メモリコントローラは、シリアルインタフェース1110を使用して、メモリバンク237のいずれかへの順次の書き込み動作を実行することができる。このような書き込み動作は、データおよび関連するECC値を特定のメモリバンク237へ書き込むことを含みうる。
いくつかの実施形態では、メモリコントローラ(例えば102)は、DDR PHY134を使用して並列モードで読み出し動作を実行することもできる。このような読み出し動作は、(例えば図1~図10に関して説明したような)DQ線およびDQS線を使用したデータおよび関連するECC値の読み出しを含みうる。
いくつかの実施形態では、シリアルインタフェース1110を介してメモリ1100にアクセスするメモリコントローラと、DDR PHY134を介してメモリ1100にアクセスするメモリコントローラと、は、同一のSoC内、例えば同一のマイクロコントローラ内に実現されている。
図11に示されているように、いくつかの実施形態では、データフローコントローラ140をメモリバンク237の外部に実現することができる。他の実現形態も可能である。例えば、いくつかの実施形態では、データフローコントローラ140の一部がメモリバンク237内に実現されてもよい。例えば、データフローコントローラ140がデータフローコントローラ240として実現されている実施形態では、ステートマシン234がメモリバンク237の外部に実現されうる一方、MUX236が各メモリバンク237内に実現されうる。別の例として、データフローコントローラ140がデータフローコントローラ740として実現されている実施形態では、ステートマシン734がメモリバンク237の外部に実現されうる。
シリアルインタフェース1110は、例えばシリアルペリフェラルインタフェースSPI、例えばクワッドSPI(QSPI)として実現することができる。いくつかの実施形態では、シリアルインタフェース1110は、従来技術において公知の他の形式で実現することができる。
制御論理回路1112は、シリアルインタフェース1110により受信されたコマンドに基づいて、特定のメモリバンク237への読み出し動作および書き込み動作を制御するように構成されている。制御論理回路1112は、従来技術において公知の任意の形式で実現することができる。
いくつかの実施形態では、パラレルインタフェース134は、読み出し専用インタフェースとして実現されうる(書き込みコマンドは許可されない)。
いくつかの実施形態では、メモリ1100は、集積回路内に実現されるフラッシュメモリデバイスである。いくつかの実施形態では、フラッシュメモリデバイスはNORフラッシュメモリデバイスである。いくつかの実施形態では、フラッシュメモリデバイスはNANDフラッシュメモリデバイスである。
いくつかの実施形態では、メモリ1100は、集積回路に実現される揮発性(例えばDRAMタイプ)メモリデバイスである。
図12には、ECCを用いてメモリを動作させるための方法1200の実施形態のフローチャートが示されている。方法1200は、例えばメモリ232によって実現することができる。
ステップ1202において、第1のコマンドが、パラレルインタフェース(例えば134)により制御線(例えばCKを使用するCA、CS)を介して受信される。ステップ1204においては、(例えば第1のデータを読み出すための)第1の読み出しコマンドが制御線を介して受信される。
ステップ1206において、セレクタ回路(例えば236)は、第1のコマンド(1202)または第1の読み出しコマンド(1204)の1つまたは複数のビットに基づいて、ECCメモリアレイ(例えば138)からでなくデータメモリアレイ(例えば136)からのデータを選択するようにコンフィグレーションされる。例えば図3および図4のAに示されているように、いくつかの実施形態では、第1のコマンド(例えばCMD)は、例えばステートマシン234に対し、コンフィグレーションされたMUX236に入力端D136を選択させるための命令を共に形成する特定の状態にある複数のビットを含みうる。別の例として、図3および図5に示されているように、第1のコマンド(CMD)は、例えばステートマシン234に対し、コンフィグレーションされたMUX236に入力端D136を選択させるための特定の状態(例えばロー)にある1ビット(例えば502)を含む動作開始コマンドであってもよい。さらに別の例として、図3および図6に示されているように、第1のコマンド(CMD)が動作開始コマンドであり、第1の読み出しコマンドが、例えばステートマシン234に対し、コンフィグレーションされたMUX236に入力端D136を選択させるための特定の状態(例えばロー)にある1ビット(例えば602)を含んでもよい。
ステップ1208において、パラレルインタフェースは、データ線(例えばDQSを使用したDQ)を介して、セレクタ回路の出力端からのデータを伝送する(この時点では、ステップ1206に基づき、D136からのデータが選択される)。
ステップ1212において、第2のコマンドが制御線を介して受信される。ステップ1214において、(例えば第1のデータを読み出すための)第2の読み出しコマンドが、制御線を介して受信される。
ステップ1216において、セレクタ回路は、第2のコマンド(1212)または第2の読み出しコマンド(1214)の1つまたは複数のビットに基づいて、ECCメモリアレイからデータを選択するようにコンフィグレーションされる。例えば、図3および図4のAに示されているように、いくつかの実施形態では、第2のコマンド(例えばCMD)は、例えばステートマシン234に対し、コンフィグレーションされたMUX236に入力端D138を選択させるための命令を共に形成する特定の状態にある複数のビットを含みうる(さらに、例えば第1の読み出しコマンドと第2の読み出しコマンドとは同一であってよい)。別の例として、図3および図5に示されているように、第2のコマンド(CMD)は、例えばステートマシン234に対し、コンフィグレーションされたMUX236に入力端D138を選択させるための特定の状態(例えばハイ)にある1つのビット(例えば502)を含む動作開始コマンドであってよい(さらに、例えば第1の読み出しコマンドと第2の読み出しコマンドとは同一であってよい)。さらに別の例として、図3および図6に示されているように、第1のコマンド(CMD)が動作開始コマンドであり、第2の読み出しコマンドが、例えばステートマシン234に対し、コンフィグレーションされたMUX236に入力端D138を選択させるための特定の状態(例えばハイ)にある1つのビット(例えば602)を含んでもよい。
ステップ1218において、パラレルインタフェースは、データ線を介して、セレクタ回路の出力端からのデータを伝送する(この時点では、ステップ1216に基づき、D138からのデータが選択される)。したがって、いくつかの実施形態では、ステップ1208において、パラレルインタフェースが、ステップ1208中に伝送された第1のデータに関連付けられたECC値を、データ線を介して伝送する。
いくつかの実施形態では、方法1200は、LPDDR4規格との互換性を有し、かつこれに準拠している。
図13には、ECCを用いてメモリを動作させるための方法1300の実施形態のフローチャートが示されている。方法1300は、例えばメモリ732によって実現することができる。
ステップ1302において、(例えば第1のデータを読み出すための)第1の読み出しコマンドが、制御線(例えばCKを使用するCA、CS)を介して、パラレルインタフェース(例えば134)によって受信される。
ステップ1304において、パラレルインタフェースは、データ線(例えばDQSを使用するDQ)を介して、データメモリアレイ(例えば136)から第1のデータを伝送する。
ステップ1306において、第1のデータに関連付けられたECC値がECCメモリアレイ(例えば138)からバッファ(例えば736)へコピーされる。いくつかの実施形態では、ステップ1306は、(例えば少なくとも部分的に)ステップ1304と同時に実行される。いくつかの実施形態では、ステップ1306は、ステップ1304の後に実行される。いくつかの実施形態では、ステップ1306は、ステップ1304の前に実行される。
ステップ1306において、バッファ読み出しコマンド(例えば図9に示されている例えばCMD)が制御線を介して受信される。
ステップ1308において、パラレルインタフェースは、データ線を介してバッファからデータを伝送する。したがって、いくつかの実施形態では、ステップ1308において、パラレルインタフェースは、ステップ1304中に伝送される第1のデータに関連付けられたECC値を、データ線を介して伝送する。
いくつかの実施形態では、方法1300は、LPDDR4規格との互換性を有し、かつこれに準拠している。
ここで、本発明の例示的な実施形態を要約する。また、他の実施形態も、本明細書および本明細書に添付されている特許請求の範囲の全体から理解することができる。
実施例1 方法であって、メモリデバイスのパラレルインタフェースの制御線を介して第1のコマンドを受信することと、前記第1のコマンドを受信した後に、前記制御線を介して第1の読み出しコマンドを受信することであって、前記第1のコマンドまたは前記第1の読み出しコマンドは、第1の選択を表す1つまたは複数のビットを含み、前記第1の選択は、セレクタ回路に前記メモリデバイスのデータメモリ部分からのデータを選択させるものであり、第2の選択は、前記セレクタ回路に誤り訂正符号(ECC)メモリ部分からのデータを選択させるものである、ことと、前記第1の読み出しコマンドおよび前記第1の選択を受信した後に、前記パラレルインタフェースのデータ線を介し、前記セレクタ回路を用いて、前記データメモリ部分から、前記第1の読み出しコマンドに関連付けられた第1のデータを供給することと、前記制御線を介して第2のコマンドを受信することと、前記第2のコマンドを受信した後に、前記制御線を介して第2の読み出しコマンドを受信することであって、前記第2のコマンドまたは前記第2の読み出しコマンドは、前記第2の選択を表す1つまたは複数のビットを含む、ことと、前記第2の読み出しコマンドおよび前記第2の選択を受信した後に、前記データ線を介して、前記セレクタ回路を用いて、前記ECCメモリ部分から、前記第1のデータに関連付けられた第1のECC値を供給することと、を含む方法。
実施例2 前記第1のコマンドは、前記第1の選択を表す1つまたは複数のビットを有し、前記第2のコマンドは、前記第2の選択を表す1つまたは複数のビットを有し、前記第1の読み出しコマンドは、前記第2の読み出しコマンドと同一である、実施例1記載の方法。
実施例3 前記方法がさらに、前記第1のコマンドを受信した後、前記第1の読み出しコマンドを受信する前に、前記制御線を介して第1の動作開始コマンドを受信することと、前記第2のコマンドを受信した後、前記第2の読み出しコマンドを受信する前に、前記制御線を介して第2の動作開始コマンドを受信することと、を含む、実施例1または2記載の方法。
実施例4 前記制御線が、チップ選択線と、第1のコマンドアドレス線と、第2のコマンドアドレス線と、第3のコマンドアドレス線と、第4のコマンドアドレス線と、第5のコマンドアドレス線と、第6のコマンドアドレス線と、を含み、前記第1のコマンドまたは前記第2のコマンドのうちの一方を受信することが、ハイ状態にある前記チップ選択線を受信し、続いてロー状態にある前記チップ選択線を受信することと、前記チップ選択線がハイ状態にある場合、ロー状態にある前記第1のコマンドアドレス線、前記第2のコマンドアドレス線、前記第3のコマンドアドレス線、前記第4のコマンドアドレス線および前記第5のコマンドアドレス線ならびにハイ状態にある前記第6のコマンドアドレス線を受信することと、前記チップ選択線がロー状態にある場合、ロー状態にある前記第1のコマンドアドレス線、前記第2のコマンドアドレス線、前記第4のコマンドアドレス線および前記第5のコマンドアドレス線ならびにハイ状態にある前記第3のコマンドアドレス線および前記第6のコマンドアドレス線を受信することと、を含み、前記第1のコマンドまたは前記第2のコマンドのうちの他方を受信することが、ハイ状態にある前記チップ選択線を受信し、続いてロー状態にある前記チップ選択線を受信することと、前記チップ選択線がハイ状態にある場合、ロー状態にある前記第1のコマンドアドレス線、前記第2のコマンドアドレス線、前記第3のコマンドアドレス線、前記第4のコマンドアドレス線および前記第5のコマンドアドレス線ならびにハイ状態にある前記第6のコマンドアドレス線を受信することと、前記チップ選択線がロー状態にある場合、ロー状態にある前記第1のコマンドアドレス線、前記第2のコマンドアドレス線、前記第3のコマンドアドレス線および前記第5のコマンドアドレス線ならびにハイ状態にある前記第4のコマンドアドレス線および前記第6のコマンドアドレス線を受信することと、を含む、実施例1から3までのいずれか1つ記載の方法。
実施例5 前記制御線が、チップ選択線と、第1のコマンドアドレス線と、第2のコマンドアドレス線と、第3のコマンドアドレス線と、第4のコマンドアドレス線と、第5のコマンドアドレス線と、第6のコマンドアドレス線と、を含み、前記第1のコマンドまたは前記第2のコマンドのうちの一方を受信することが、第1の部分と第2の部分とを含む第1の動作開始コマンドを受信することであって、前記第1の動作開始コマンドの前記第1の部分を受信することは、ハイ状態にある前記チップ選択線を受信し、続いてロー状態にある前記チップ選択線を受信することを含む、ことと、前記第1の動作開始コマンドの前記第1の部分において、前記チップ選択線がハイ状態にある場合、ハイ状態にある前記第1のコマンドアドレス線とロー状態にある前記第2のコマンドアドレス線を受信することと、前記第1の動作開始コマンドの前記第1の部分において、前記チップ選択線がロー状態にある場合、ロー状態にある前記第4のコマンドアドレス線を受信することと、を含み、前記第1のコマンドまたは前記第2のコマンドのうちの他方を受信することが、第1の部分と第2の部分とを含む第2の動作開始コマンドを受信することであって、前記第2の動作開始コマンドの前記第1の部分を受信することは、ハイ状態にある前記チップ選択線を受信し、続いてロー状態にある前記チップ選択線を受信することを含む、ことと、前記第2の動作開始コマンドの前記第1の部分において、前記チップ選択線がハイ状態にある場合、ハイ状態にある前記第1のコマンドアドレス線とロー状態にある前記第2のコマンドアドレス線を受信することと、前記第2の動作開始コマンドの前記第1の部分において、前記チップ選択線がロー状態にある場合、ハイ状態にある前記第4のコマンドアドレス線を受信することと、を含む、実施例1または2記載の方法。
実施例6 前記第1のコマンドは第1の動作開始コマンドであり、前記第2のコマンドは第2の動作開始コマンドであり、前記第1の読み出しコマンドは、前記第1の選択を表す1つまたは複数のビットを含み、前記第2の読み出しコマンドは、前記第2の選択を表す1つまたは複数のビットを含む、実施例1または2記載の方法。
実施例7 前記制御線が、チップ選択線と、第1のコマンドアドレス線と、第2のコマンドアドレス線と、第3のコマンドアドレス線と、第4のコマンドアドレス線と、第5のコマンドアドレス線と、第6のコマンドアドレス線と、を含み、前記第1のコマンドまたは前記第2のコマンドのうちの一方を受信することが、ハイ状態にある前記チップ選択線を受信し、続いてロー状態にある前記チップ選択線を受信することと、前記チップ選択線がハイ状態にある場合、ロー状態にある前記第1のコマンドアドレス線、前記第3のコマンドアドレス線、前記第4のコマンドアドレス線および前記第5のコマンドアドレス線ならびにハイ状態にある前記第2のコマンドアドレス線を受信することと、前記チップ選択線がロー状態にある場合、ロー状態にある前記第4のコマンドアドレス線を受信することと、を含み、前記第1のコマンドまたは前記第2のコマンドのうちの他方を受信することが、ハイ状態にある前記チップ選択線を受信し、続いてロー状態にある前記チップ選択線を受信することと、前記チップ選択線がハイ状態にある場合、ロー状態にある前記第1のコマンドアドレス線、前記第3のコマンドアドレス線、前記第4のコマンドアドレス線および前記第5のコマンドアドレス線ならびにハイ状態にある前記第2のコマンドアドレス線を受信することと、前記チップ選択線がロー状態にある場合、ハイ状態にある前記第4のコマンドアドレス線を受信することと、を含む、実施例1または2および6記載の方法。
実施例8 前記パラレルインタフェースは、LPDDR4規格との互換性を有する、実施例1から7までのいずれか1つ記載の方法。
実施例9 前記第1の読み出しコマンドは、前記第1の選択を表す1つまたは複数のビットを含み、前記第2の読み出しコマンドは、前記第2の選択を表す1つまたは複数のビットを含む、実施例1または2および6から8までのいずれか1つ記載の方法。
実施例10 前記第1のコマンドは、前記第1の選択を表す1つまたは複数のビットを含み、前記第2のコマンドは、前記第2の選択を表す1つまたは複数のビットを含む、実施例1から4までおよび8のいずれか1つ記載の方法。
実施例11 前記第1のコマンドおよび前記第2のコマンドは、LPDDR4規格に準拠した動作開始コマンドである、実施例1または2または5および8から10までのいずれか1つ記載の方法。
実施例12 前記第1のコマンドおよび前記第2のコマンドは、LPDDR4規格に準拠した多目的コマンド(MPC)である、実施例1から4までおよび8および10のいずれか1つ記載の方法。
実施例13 前記パラレルインタフェースは、標準化機構によって規定されたデジタル通信規格に準拠している、実施例1から12までのいずれか1つ記載の方法。
実施例14 方法であって、メモリデバイスのパラレルインタフェースの制御線を介して、第1の読み出しコマンドを受信することと、前記第1の読み出しコマンドの受信に応答して、前記パラレルインタフェースのデータ線を介して、第1のメモリ部分から、前記第1の読み出しコマンドに関連付けられた第1のデータを供給し、前記メモリデバイスの誤り訂正符号(ECC)メモリ部分から、前記第1のデータに関連付けられた第1の誤り訂正符号(ECC)値をバッファへコピーすることと、前記第1の読み出し命令を受信した後に、前記制御線を介してバッファ読み出しコマンドを受信することと、前記バッファ読み出しコマンドを受信した後に、前記データ線を介して、前記バッファから前記第1のECC値を供給することと、を含む方法。
実施例15 制御線が、チップ選択線と、第1のコマンドアドレス線と、第2のコマンドアドレス線と、第3のコマンドアドレス線と、第4のコマンドアドレス線と、第5のコマンドアドレス線と、第6のコマンドアドレス線と、を含み、前記バッファ読み出しコマンドを受信することが、ハイ状態にある前記チップ選択線を受信し、続いてロー状態にある前記チップ選択線を受信することと、前記チップ選択線がハイ状態にある場合、ロー状態にある前記第1のコマンドアドレス線、前記第2のコマンドアドレス線、前記第3のコマンドアドレス線、前記第4のコマンドアドレス線および前記第5のコマンドアドレス線ならびにハイ状態にある前記第6のコマンドアドレス線を受信することと、前記チップ選択線がロー状態にある場合、ロー状態にある前記第2のコマンドアドレス線、前記第3のコマンドアドレス線、前記第4のコマンドアドレス線、前記第5のコマンドアドレス線および前記第6のコマンドアドレス線ならびにハイ状態にある前記第1のコマンドアドレス線を受信することと、を含む、実施例14記載の方法。
実施例16 前記パラレルインタフェースは、標準化機構によって規定されたデジタル通信規格に準拠している、実施例14または15記載の方法。
実施例17 前記パラレルインタフェースは、LPDDR4規格との互換性を有する、実施例14から16までのいずれか1つ記載の方法。
実施例18 前記バッファ読み出しコマンドは、LPDDR4規格に準拠した多目的コマンド(MPC)である、実施例14から17までのいずれか1つ記載の方法。
実施例19 前記バッファは、先入れ先出しバッファ(FIFOバッファ)を備える、実施例14から18までのいずれか1つ記載の方法。
実施例20 集積回路であって、制御線を介してコマンドを受信するように構成されかつデータ線を介してデータを伝送するように構成されたパラレルインタフェースと、データを記憶するように構成されたデータメモリ部分と、前記データメモリ部分に記憶されているデータに関連付けられた誤り訂正符号(ECC)値を記憶するように構成された誤り訂正符号(ECC)メモリ部分と、バッファと、前記データメモリ部分のデータ出力端に結合された第1の入力端と前記ECCメモリ部分のデータ出力端に結合された第2の入力端とを有するセレクタ回路と、コントローラと、を備え、前記コントローラは、前記パラレルインタフェースにより、前記制御線を介して第1の読み出しコマンドを受信した後に、前記セレクタ回路に前記第1の入力端を選択させ、前記パラレルインタフェースに前記セレクタ回路の前記第1の入力端から前記データ線を介して、第1の読み出しコマンドに関連付けられた第1のデータを供給させ、前記パラレルインタフェースにより、前記制御線を介して第2のコマンドを受信した後に、前記セレクタ回路に前記第2の入力端を選択させ、前記パラレルインタフェースに前記セレクタ回路の前記第2の入力端から前記データ線を介して前記第1のデータに関連付けられた第1のECC値を供給させる、ように構成されている、集積回路。
実施例21 前記セレクタ回路の前記第2の入力端は前記バッファを介して前記ECCメモリ部分に結合されており、前記バッファのデータ出力端は前記第2の入力端に結合されており、前記バッファのデータ入力端は前記ECCメモリ部分に結合されている、実施例20記載の集積回路。
実施例22 前記第2のコマンドは読み出しバッファコマンドであり、前記コントローラは、前記パラレルインタフェースにより、前記制御線を介して前記第1の読み出しコマンドを受信した後に、前記第1のECC値を前記ECCメモリ部分から前記バッファへコピーし、前記パラレルインタフェースにより、前記制御線を介して前記第2のコマンドを受信した後に、前記セレクタ回路に前記第2の入力端を選択させ、前記パラレルインタフェースに、データ線を介して前記バッファから第1のECC値を供給させる、ように構成されている、実施例20または21記載の集積回路。
実施例23 前記コントローラは、前記第1の読み出しコマンドを受信する前に受信された第1の動作開始コマンドの1つまたは複数のビットに基づいて、前記セレクタ回路に前記第1の入力端を選択させ、前記第2のコマンドを受信する前に受信された第2の動作開始コマンドの1つまたは複数のビットに基づいて、前記セレクタ回路に前記第2の入力端を選択させる、ように構成されており、前記第2のコマンドは第2の読み出しコマンドである、実施例20記載の集積回路。
実施例24 前記コントローラはステートマシンを備えている、実施例20から23までのいずれか1つ記載の集積回路。
実施例25 前記コントローラは前記セレクタ回路を備えている、実施例20から24までのいずれか1つ記載の集積回路。
実施例26 前記ECCメモリ部分は、前記データメモリ部分よりも小さい、実施例20から25までのいずれか1つ記載の集積回路。
実施例27 前記集積回路はさらに複数のメモリバンクを備えており、該複数のメモリバンクのうち第1のメモリバンクが前記データメモリ部分および前記ECCメモリ部分を含む、実施例20から26までのいずれか1つ記載の集積回路。
実施例28 前記パラレルインタフェースはLPDDR4規格との互換性を有する、実施例20から27までのいずれか1つ記載の集積回路。
実施例29 前記集積回路はフラッシュメモリデバイスである、実施例20から28までのいずれか1つ記載の集積回路。
例示的な実施形態を参照しつつ本発明を説明してきたが、この説明は限定的な意味で解釈されることを意図するものではない。当該説明を参照することで、例示的な実施形態の様々な修正および組み合わせならびに本発明の他の実施形態が当業者に明らかになるであろう。したがって、添付の特許請求の範囲は、こうしたあらゆる修正形態または実施形態を包含することが意図されている。

Claims (25)

  1. 方法であって、前記方法は、
    メモリデバイスのパラレルインタフェースの制御線を介して第1のコマンドを受信するステップと、
    前記第1のコマンドを受信した後に、前記制御線を介して第1の読み出しコマンドを受信するステップであって、前記第1のコマンドまたは前記第1の読み出しコマンドは、第1の選択を表す1つまたは複数のビットを含み、前記第1の選択は、セレクタ回路に前記メモリデバイスのデータメモリ部分からのデータを選択させるものであり、第2の選択は、前記セレクタ回路に誤り訂正符号(ECC)メモリ部分からのデータを選択させるものであるステップと、
    前記第1の読み出しコマンドおよび前記第1の選択を受信した後に、前記パラレルインタフェースのデータ線を介し、前記セレクタ回路を用いて、前記データメモリ部分から、前記第1の読み出しコマンドに関連付けられた第1のデータを供給するステップと、
    前記制御線を介して第2のコマンドを受信するステップと、
    前記第2のコマンドを受信した後に、前記制御線を介して第2の読み出しコマンドを受信するステップであって、前記第2のコマンドまたは前記第2の読み出しコマンドは、前記第2の選択を表す1つまたは複数のビットを含むステップと、
    前記第2の読み出しコマンドおよび前記第2の選択を受信した後に、前記データ線を介して、前記セレクタ回路を用いて、前記ECCメモリ部分から、前記第1のデータに関連付けられた第1のECC値を供給するステップと、
    を含む方法。
  2. 前記第1のコマンドは、前記第1の選択を表す1つまたは複数のビットを有し、
    前記第2のコマンドは、前記第2の選択を表す1つまたは複数のビットを有し、
    前記第1の読み出しコマンドは、前記第2の読み出しコマンドと同一である、
    請求項1記載の方法。
  3. 前記方法は、
    前記第1のコマンドを受信した後、前記第1の読み出しコマンドを受信する前に、前記制御線を介して第1の動作開始コマンドを受信するステップと、
    前記第2のコマンドを受信した後、前記第2の読み出しコマンドを受信する前に、前記制御線を介して第2の動作開始コマンドを受信するステップと、
    をさらに含む、
    請求項2記載の方法。
  4. 前記制御線は、チップ選択線と、第1のコマンドアドレス線と、第2のコマンドアドレス線と、第3のコマンドアドレス線と、第4のコマンドアドレス線と、第5のコマンドアドレス線と、第6のコマンドアドレス線と、を含み、
    前記第1のコマンドまたは前記第2のコマンドのうちの一方を受信するステップは、
    ハイ状態にある前記チップ選択線を受信し、続いてロー状態にある前記チップ選択線を受信するステップと、
    前記チップ選択線がハイ状態にある場合、ロー状態にある前記第1のコマンドアドレス線、前記第2のコマンドアドレス線、前記第3のコマンドアドレス線、前記第4のコマンドアドレス線および前記第5のコマンドアドレス線ならびにハイ状態にある前記第6のコマンドアドレス線を受信するステップと、
    前記チップ選択線がロー状態にある場合、ロー状態にある前記第1のコマンドアドレス線、前記第2のコマンドアドレス線、前記第4のコマンドアドレス線および前記第5のコマンドアドレス線ならびにハイ状態にある前記第3のコマンドアドレス線および前記第6のコマンドアドレス線を受信するステップと、
    を含み、
    前記第1のコマンドまたは前記第2のコマンドのうちの他方を受信するステップは、
    ハイ状態にある前記チップ選択線を受信し、続いてロー状態にある前記チップ選択線を受信するステップと、
    前記チップ選択線がハイ状態にある場合、ロー状態にある前記第1のコマンドアドレス線、前記第2のコマンドアドレス線、前記第3のコマンドアドレス線、前記第4のコマンドアドレス線および前記第5のコマンドアドレス線ならびにハイ状態にある前記第6のコマンドアドレス線を受信するステップと、
    前記チップ選択線がロー状態にある場合、ロー状態にある前記第1のコマンドアドレス線、前記第2のコマンドアドレス線、前記第3のコマンドアドレス線および前記第5のコマンドアドレス線ならびにハイ状態にある前記第4のコマンドアドレス線および前記第6のコマンドアドレス線を受信するステップと、
    を含む、
    請求項3記載の方法。
  5. 前記制御線は、チップ選択線と、第1のコマンドアドレス線と、第2のコマンドアドレス線と、第3のコマンドアドレス線と、第4のコマンドアドレス線と、第5のコマンドアドレス線と、第6のコマンドアドレス線と、を含み、
    前記第1のコマンドまたは前記第2のコマンドのうちの一方を受信するステップは、
    第1の部分と第2の部分とを含む第1の動作開始コマンドを受信するステップであって、前記第1の動作開始コマンドの前記第1の部分を受信するステップは、ハイ状態にある前記チップ選択線を受信し、続いてロー状態にある前記チップ選択線を受信するステップを含むステップと、
    前記第1の動作開始コマンドの前記第1の部分において、前記チップ選択線がハイ状態にある場合、ハイ状態にある前記第1のコマンドアドレス線とロー状態にある前記第2のコマンドアドレス線とを受信するステップと、
    前記第1の動作開始コマンドの前記第1の部分において、前記チップ選択線がロー状態にある場合、ロー状態にある前記第4のコマンドアドレス線を受信するステップと、
    を含み、
    前記第1のコマンドまたは前記第2のコマンドのうちの他方を受信するステップは、
    第1の部分と第2の部分とを含む第2の動作開始コマンドを受信するステップであって、前記第2の動作開始コマンドの前記第1の部分を受信するステップは、ハイ状態にある前記チップ選択線を受信し、続いてロー状態にある前記チップ選択線を受信するステップを含むステップと、
    前記第2の動作開始コマンドの前記第1の部分において、前記チップ選択線がハイ状態にある場合、ハイ状態にある前記第1のコマンドアドレス線とロー状態にある前記第2のコマンドアドレス線とを受信するステップと、
    前記第2の動作開始コマンドの前記第1の部分において、前記チップ選択線がロー状態にある場合、ハイ状態にある前記第4のコマンドアドレス線を受信するステップと、
    を含む、
    請求項2記載の方法。
  6. 前記第1のコマンドは、第1の動作開始コマンドであり、
    前記第2のコマンドは、第2の動作開始コマンドであり、
    前記第1の読み出しコマンドは、前記第1の選択を表す1つまたは複数のビットを含み、
    前記第2の読み出しコマンドは、前記第2の選択を表す1つまたは複数のビットを含む、
    請求項1記載の方法。
  7. 前記制御線は、チップ選択線と、第1のコマンドアドレス線と、第2のコマンドアドレス線と、第3のコマンドアドレス線と、第4のコマンドアドレス線と、第5のコマンドアドレス線と、第6のコマンドアドレス線と、を含み、
    前記第1のコマンドまたは前記第2のコマンドのうちの一方を受信するステップは、
    ハイ状態にある前記チップ選択線を受信し、続いてロー状態にある前記チップ選択線を受信するステップと、
    前記チップ選択線がハイ状態にある場合、ロー状態にある前記第1のコマンドアドレス線、前記第3のコマンドアドレス線、前記第4のコマンドアドレス線および前記第5のコマンドアドレス線ならびにハイ状態にある前記第2のコマンドアドレス線を受信するステップと、
    前記チップ選択線がロー状態にある場合、ロー状態にある前記第4のコマンドアドレス線を受信するステップと、
    を含み、
    前記第1のコマンドまたは前記第2のコマンドのうちの他方を受信するステップは、
    ハイ状態にある前記チップ選択線を受信し、続いてロー状態にある前記チップ選択線を受信するステップと、
    前記チップ選択線がハイ状態にある場合、ロー状態にある前記第1のコマンドアドレス線、前記第3のコマンドアドレス線、前記第4のコマンドアドレス線および前記第5のコマンドアドレス線ならびにハイ状態にある前記第2のコマンドアドレス線を受信するステップと、
    前記チップ選択線がロー状態にある場合、ハイ状態にある前記第4のコマンドアドレス線を受信するステップと、
    を含む、
    請求項6記載の方法。
  8. 前記パラレルインタフェースは、LPDDR4規格または標準化機構によって規定された他のデジタル通信規格との互換性を有する、
    請求項1記載の方法。
  9. 前記第1の読み出しコマンドは、前記第1の選択を表す1つまたは複数のビットを含み、
    前記第2の読み出しコマンドは、前記第2の選択を表す1つまたは複数のビットを含む、
    請求項8記載の方法。
  10. 前記第1のコマンドは、前記第1の選択を表す1つまたは複数のビットを含み、
    前記第2のコマンドは、前記第2の選択を表す1つまたは複数のビットを含む、
    請求項8記載の方法。
  11. 前記第1のコマンドおよび前記第2のコマンドは、LPDDR4規格に準拠した動作開始コマンドである、
    請求項10記載の方法。
  12. 前記第1のコマンドおよび前記第2のコマンドは、LPDDR4規格に準拠した多目的コマンド(MPC)である、
    請求項10記載の方法。
  13. 方法であって、前記方法は、
    メモリデバイスのパラレルインタフェースの制御線を介して、第1の読み出しコマンドを受信するステップと、
    前記第1の読み出しコマンドを受信するステップに応答して、
    前記パラレルインタフェースのデータ線を介して、第1のメモリ部分から、前記第1の読み出しコマンドに関連付けられた第1のデータを供給し、
    前記メモリデバイスの誤り訂正符号(ECC)メモリ部分から、前記第1のデータに関連付けられた第1の誤り訂正符号(ECC)値をバッファへコピーするステップと、
    前記第1の読み出し命令を受信した後に、前記制御線を介してバッファ読み出しコマンドを受信するステップと、
    前記バッファ読み出しコマンドを受信した後に、前記データ線を介して前記バッファから前記第1のECC値を供給するステップと、
    を含む方法。
  14. 制御線は、チップ選択線と、第1のコマンドアドレス線と、第2のコマンドアドレス線と、第3のコマンドアドレス線と、第4のコマンドアドレス線と、第5のコマンドアドレス線と、第6のコマンドアドレス線と、を含み、
    前記バッファ読み出しコマンドを受信するステップは、
    ハイ状態にある前記チップ選択線を受信し、続いてロー状態にある前記チップ選択線を受信するステップと、
    前記チップ選択線がハイ状態にある場合、ロー状態にある前記第1のコマンドアドレス線、前記第2のコマンドアドレス線、前記第3のコマンドアドレス線、前記第4のコマンドアドレス線および前記第5のコマンドアドレス線ならびにハイ状態にある前記第6のコマンドアドレス線を受信するステップと、
    前記チップ選択線がロー状態にある場合、ロー状態にある前記第2のコマンドアドレス線、前記第3のコマンドアドレス線、前記第4のコマンドアドレス線、前記第5のコマンドアドレス線および前記第6のコマンドアドレス線ならびにハイ状態にある前記第1のコマンドアドレス線を受信するステップと、
    を含む、
    請求項13記載の方法。
  15. 前記パラレルインタフェースは、LPDDR4規格との互換性を有するか、または、標準化機構によって規定されたデジタル通信規格に準拠している、
    請求項13記載の方法。
  16. 前記バッファ読み出しコマンドは、LPDDR4規格に準拠した多目的コマンド(MPC)である、
    請求項15記載の方法。
  17. 前記バッファは、先入れ先出しバッファ(FIFOバッファ)を備える、
    請求項13記載の方法。
  18. 集積回路であって、前記集積回路は、
    制御線を介してコマンドを受信するように構成されかつデータ線を介してデータを伝送するように構成されたパラレルインタフェースと、
    データを記憶するように構成されたデータメモリ部分と、
    前記データメモリ部分に記憶されているデータに関連付けられた誤り訂正符号(ECC)値を記憶するように構成された誤り訂正符号(ECC)メモリ部分と、
    バッファと、
    前記データメモリ部分のデータ出力端に結合された第1の入力端と前記ECCメモリ部分のデータ出力端に結合された第2の入力端とを有するセレクタ回路と、
    コントローラと、
    を備え、前記コントローラは、
    前記パラレルインタフェースにより、前記制御線を介して第1の読み出しコマンドを受信した後に、前記セレクタ回路に前記第1の入力端を選択させ、前記パラレルインタフェースに前記セレクタ回路の前記第1の入力端から前記データ線を介して前記第1の読み出しコマンドに関連付けられた第1のデータを供給させ、
    前記パラレルインタフェースにより、前記制御線を介して第2のコマンドを受信した後に、前記セレクタ回路に前記第2の入力端を選択させ、前記パラレルインタフェースに前記セレクタ回路の前記第2の入力端から前記データ線を介して前記第1のデータに関連付けられた第1のECC値を供給させる、
    ように構成されている、
    集積回路。
  19. 前記セレクタ回路の前記第2の入力端は、前記バッファを介して前記ECCメモリ部分に結合されており、
    前記バッファのデータ出力端は、前記第2の入力端に結合されており、
    前記バッファのデータ入力端は、前記ECCメモリ部分に結合されている、
    請求項18記載の集積回路。
  20. 前記第2のコマンドは、読み出しバッファコマンドであり、
    前記コントローラは、
    前記パラレルインタフェースにより、前記制御線を介して前記第1の読み出しコマンドを受信した後に、前記第1のECC値を前記ECCメモリ部分から前記バッファへコピーし、
    前記パラレルインタフェースにより、前記制御線を介して前記第2のコマンドを受信した後に、前記セレクタ回路に前記第2の入力端を選択させ、前記パラレルインタフェースに前記バッファから前記データ線を介して前記第1のECC値を供給させる、
    ように構成されている、
    請求項19記載の集積回路。
  21. 前記コントローラは、
    前記第1の読み出しコマンドを受信する前に受信された第1の動作開始コマンドの1つまたは複数のビットに基づいて、前記セレクタ回路に前記第1の入力端を選択させ、
    前記第2のコマンドを受信する前に受信された第2の動作開始コマンドの1つまたは複数のビットに基づいて、前記セレクタ回路に前記第2の入力端を選択させる、
    ように構成されており、
    前記第2のコマンドは、第2の読み出しコマンドである、
    請求項18記載の集積回路。
  22. 前記コントローラは、ステートマシンを備えており、前記セレクタ回路をさらに備えている、
    請求項18記載の集積回路。
  23. 前記ECCメモリ部分は、前記データメモリ部分よりも小さい、
    請求項18記載の集積回路。
  24. 前記集積回路は、複数のメモリバンクをさらに備えており、前記複数のメモリバンクのうち第1のメモリバンクは、前記データメモリ部分および前記ECCメモリ部分を含む、
    請求項18記載の集積回路。
  25. 前記パラレルインタフェースは、LPDDR4規格との互換性を有し、前記集積回路は、フラッシュメモリデバイスである、
    請求項18記載の集積回路。
JP2022201103A 2021-12-17 2022-12-16 メモリからeccを読み出す回路および方法 Active JP7500698B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163290982P 2021-12-17 2021-12-17
US63/290,982 2021-12-17
US17/698,729 2022-03-18
US17/698,729 US11841764B2 (en) 2021-12-17 2022-03-18 Circuit and method for reading ECC from memory

Publications (2)

Publication Number Publication Date
JP2023090690A true JP2023090690A (ja) 2023-06-29
JP7500698B2 JP7500698B2 (ja) 2024-06-17

Family

ID=86606017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022201103A Active JP7500698B2 (ja) 2021-12-17 2022-12-16 メモリからeccを読み出す回路および方法

Country Status (4)

Country Link
US (1) US11841764B2 (ja)
JP (1) JP7500698B2 (ja)
DE (1) DE102022133778A1 (ja)
TW (1) TW202328917A (ja)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4550439B2 (ja) * 2003-02-28 2010-09-22 東芝メモリシステムズ株式会社 Ecc制御装置
DE102004033387B4 (de) * 2004-07-09 2008-06-05 Infineon Technologies Ag Digitale RAM-Speicherschaltung mit erweiterter Befehlsstruktur
US7506226B2 (en) * 2006-05-23 2009-03-17 Micron Technology, Inc. System and method for more efficiently using error correction codes to facilitate memory device testing
US9965387B1 (en) * 2010-07-09 2018-05-08 Cypress Semiconductor Corporation Memory devices having embedded hardware acceleration and corresponding methods
US9025409B2 (en) * 2011-08-05 2015-05-05 Rambus Inc. Memory buffers and modules supporting dynamic point-to-point connections
US9471484B2 (en) * 2012-09-19 2016-10-18 Novachips Canada Inc. Flash memory controller having dual mode pin-out
US9354872B2 (en) * 2014-04-24 2016-05-31 Xitore, Inc. Apparatus, system, and method for non-volatile data storage and retrieval
KR102324769B1 (ko) * 2015-06-29 2021-11-10 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR20180033676A (ko) * 2016-09-26 2018-04-04 에스케이하이닉스 주식회사 메모리 모듈 및 이를 포함하는 메모리 시스템
US11404097B2 (en) * 2018-12-11 2022-08-02 SK Hynix Inc. Memory system and operating method of the memory system
US11403172B2 (en) 2019-08-05 2022-08-02 Cypress Semiconductor Corporation Methods for error detection and correction and corresponding systems and devices for the same
US11200118B2 (en) 2019-08-29 2021-12-14 Micron Technology, Inc. Semiconductor device with modified command and associated methods and systems
KR20220060378A (ko) * 2020-11-04 2022-05-11 삼성전자주식회사 병렬 비트 테스트(pbt) 모드에서 불량 데이터를 출력할 수 메모리 장치 및 그것을 포함하는 메모리 시스템

Also Published As

Publication number Publication date
DE102022133778A1 (de) 2023-06-22
US11841764B2 (en) 2023-12-12
US20230195564A1 (en) 2023-06-22
JP7500698B2 (ja) 2024-06-17
TW202328917A (zh) 2023-07-16

Similar Documents

Publication Publication Date Title
US10127969B2 (en) Memory device command receiving and decoding methods
US20190198090A1 (en) Systems and methods for performing row hammer refresh operations in redundant memory
US7120754B2 (en) Synchronous DRAM with selectable internal prefetch size
KR100884096B1 (ko) 메모리 디바이스 및 모듈과, 컴퓨팅 디바이스와, 메모리시스템과 디바이스 및 컨트롤러의 작동 방법
US8730759B2 (en) Devices and system providing reduced quantity of interconnections
US11646092B2 (en) Shared error check and correct logic for multiple data banks
US20090276548A1 (en) Dynamically setting burst type of a double data rate memory device
US20110246857A1 (en) Memory system and method
TWI729239B (zh) 半導體裝置
US9083382B2 (en) Memory with on-chip error correction
US7840744B2 (en) Rank select operation between an XIO interface and a double data rate interface
US11573916B2 (en) Apparatuses and methods for writing data to a memory
US9659618B1 (en) Memory interface, memory control circuit unit, memory storage device and clock generation method
CN117153217A (zh) 用于改进ddr存储器装置中的写入前同步码的系统和方法
US9141472B2 (en) Sharing a check bit memory device between groups of memory devices
US11017839B2 (en) DRAM, memory controller and associated training method
US11562781B1 (en) Memory devices with low pin count interfaces, and corresponding methods and systems
JP7500698B2 (ja) メモリからeccを読み出す回路および方法
CN113454720B (zh) 存储设备及其控制方法
US20230386535A1 (en) Semiconductor device for performing data alignment operation
US11614888B2 (en) Memory system and electronic system including the same
US11328756B1 (en) Semiconductor device and semiconductor system performing auto-precharge operation
US11983411B2 (en) Methods, devices and systems for including alternate memory access operations over memory interface
WO2024050265A1 (en) Memory device with extended write data window
JP2006012360A (ja) 半導体記憶装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240417

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240605

R150 Certificate of patent or registration of utility model

Ref document number: 7500698

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150