JP2023169327A - インラインecc保護のための方法及びシステム - Google Patents
インラインecc保護のための方法及びシステム Download PDFInfo
- Publication number
- JP2023169327A JP2023169327A JP2023153988A JP2023153988A JP2023169327A JP 2023169327 A JP2023169327 A JP 2023169327A JP 2023153988 A JP2023153988 A JP 2023153988A JP 2023153988 A JP2023153988 A JP 2023153988A JP 2023169327 A JP2023169327 A JP 2023169327A
- Authority
- JP
- Japan
- Prior art keywords
- data
- ecc
- block
- address
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000013519 translation Methods 0.000 claims abstract description 17
- 230000010354 integration Effects 0.000 claims 1
- 238000012937 correction Methods 0.000 abstract description 8
- 208000011580 syndromic disease Diseases 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 230000007547 defect Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000001427 coherent effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000014759 maintenance of location Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000009897 systematic effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 102100034112 Alkyldihydroxyacetonephosphate synthase, peroxisomal Human genes 0.000 description 1
- 101000799143 Homo sapiens Alkyldihydroxyacetonephosphate synthase, peroxisomal Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000000848 angular dependent Auger electron spectroscopy Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0879—Burst mode
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/06—Address interface arrangements, e.g. address buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/30—Providing cache or TLB in specific location of a processing system
- G06F2212/306—In system interconnect, e.g. between two buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/403—Error protection encoding, e.g. using parity or ECC codes
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
【課題】インライン誤り訂正符号(ECC)保護のための方法、システム及び集積回路を提供する。【解決手段】メモリシステム100は、相互接続からコマンドを受け取り、ECCデータを管理し、システムアドレス及び物理メモリデバイスアドレス間のアドレス変換を実施するECCブリッジ102を有する。アドレス変換は、第1のデータアドレスを有する第1のデータブロックの後でそれに隣接する第1のECCデータブロックのための第1のECCメモリアドレスを計算し、第1のECCブロックの後でそれに隣接する第2のECCメモリアドレスを計算し、第2のECCブロックの後でそれに隣接する第2のデータアドレスを計算することによる。ブリッジは、データの完全なバーストについてECCデータを検査及び計算及び/又は読出し及び/又は書込みデータを含むデータの完全なバーストのためのECCデータをキャッシュする。【選択図】図1
Description
コンピューティングシステムにおいて、メモリ(例えば、ダイナミックランダムアクセスメモリ(DRAM)又はダブルデータレート(DDR)同期ダイナミックランダムアクセスメモリ(SDRAM))に格納されたデータは、書き込み又は読み出し動作の間、コントローラ、物理インタフェース(PHY)又はボードにおいて、又はデータがそこに格納されている間のメモリ自体において、エラーを被る場合がある。また、外部メモリはしばしば、第三者によってつくられ、及び/又は、機能的に安全な応用例に対して評価されないか、又はそうした応用例のために十分に信頼性がないかもしれない。メモリからのデータやコマンドが正しくないと、システムが正しく動作しなくなることがある。システムの誤った動作は、特に機能的安全性又は信頼性が重要であるシステム又は応用例において、望ましくない。
メモリエラーには、一般に、永続的、過渡的、及び系統的という3つのタイプがある。永久的なエラーは、通常、メモリ又は関連する回路要素の物理的な破損又は劣化の結果であり、シリコンや配線の短絡である可能性がある。過渡的エラーは粒子の衝突によるものであり、一般に、(例えば、フリップフロップにおいて)ビットフリップ状態をもたらす。系統的なエラーは論理のバグである。例えば、システムは設計どおりに正しく動作し、ハードウェアやソフトウェアにバグがあるだけ等である。
本明細書で説明される例には、メモリデバイスの物理アドレスからデータを読み出す、及び/又は、物理アドレスにデータを書き込むためのコマンドをシステムから受け取るように構成される相互接続を含む集積回路が含まれる。集積回路は、相互接続からコマンドを受け取り、システムアドレスと物理アドレスとの間のアドレス変換を実施するように構成されるブリッジをさらに含む。アドレス変換は、第1のデータアドレスを有する第1のデータブロックの後であり第1の誤り訂正符号(ECC)データブロックに隣接する第1のデータブロックのための第1のECCメモリアドレスを計算することと、第1のECCデータブロックの後であり第1のECCデータブロックに隣接する第2のECCメモリアドレスを計算することと、第2のECCシステムの後であり第2のECCシステムに隣接する第2のコマンドアドレスを計算することとによって実施される。
本明細書で説明される別の例示の集積回路が、データの一部を読み出す及び/又は書き込むためのコマンドをシステムから受け取るように構成される相互接続を含む。集積回路はまた、相互接続からコマンドを受け取り、データの一部を含むデータのバーストについてECCデータを検査及び計算するように構成されるブリッジを含む。
本明細書で説明される別の例示の集積回路は、データの一部を読み出す及び/又は書き込むためのコマンドをシステムから受け取るように構成される相互接続を含む。この集積回路は、相互接続からコマンドを受け取り、ECCデータを検査及び計算するように構成されるブリッジをさらに含む。ブリッジは、データの一部を含むデータの完全なバーストについてECCデータをキャッシュするようにさらに構成される。
本明細書で説明される例はまた、メモリデバイス、プロセッサ、及び相互接続を有するメモリシステムを含み、相互接続は、メモリデバイスの物理アドレスからデータを読み出し、及び/又は、メモリデバイスの物理アドレスへデータを書き込むために、プロセッサからコマンドを受け取るように構成される。メモリデバイスは更に、相互接続からコマンドを受け取り、システムアドレスと物理アドレスとの間のアドレス変換を実施するように構成されるブリッジを含む。アドレス変換は、第1のデータアドレスを有する第1のデータブロックの後であり第1のデータブロックに隣接する第1のECCメモリアドレスを計算すること、第1のECCブロックの後であり第1のECCブロックに隣接する第2のECCメモリアドレスを計算すること、及び、第2のECCブロックの後であり第2のECCブロックに隣接する第2のデータアドレスを計算することによって実施される。
本明細書で説明される別の例示のメモリデバイスは、メモリデバイス、プロセッサ、及び相互接続を含むメモリシステムと、ブリッジとを含む。相互接続は、データの一部を読み出すため、及び/又はデータの一部をメモリデバイスに書き込むためのコマンドをプロセッサから受け取るように構成される。ブリッジは、相互接続からコマンドを受け取り、ECCデータを検査及び計算するように構成され、ブリッジは更に、データの一部を含むデータの完全なバーストについてECCデータをキャッシュするように構成される。
また、本明細書で説明される例は、外部メモリにデータを書き込む、又は外部メモリからデータを読み出す方法を含む。この方法は、データの一部を読み出す及び/又は書き込むためのコマンドをシステムから受け取り、データの一部を含むデータの完全なバーストについてECCデータをキャッシュすることを含む。
また、本明細書では、外部メモリにデータを書き込む又はそこからデータを読み出す例示の方法について記載する。この方法は、データの一部を読み出す及び/又は書き込むためのコマンドをシステムから受け取り、データの一部を含むデータの完全なバーストについてECCデータを検査することを含む。
また、本明細書では、システムメモリアドレスを物理メモリアドレスに変換する例示の方法について記載する。この方法は、第1のデータブロックに関連する第1のECCブロックを提供し、第2のデータブロックに関連する第2のECCブロックを提供することを含む。この方法はまた、第1のデータアドレスを有する第1のデータブロックの後であって第1のデータブロックに隣接する第1のECCデータブロックについて第1のECCメモリアドレスを計算し、第1のECCブロックの後であって第1のECCブロックに隣接する第2のECCメモリアドレスを計算し、第2のECCメモリの後であって第2のECCブロックに隣接する第2のデータブロックについて第2のデータアドレスを計算することを含む。
種々の例の詳細な説明のため、ここで、添付の図面を参照する。
「~に基づく」という記載は、「少なくとも部分的に~に基づく」を意味する。従って、XがYに基づく場合、Xは、Y及び任意の数の他の要因の関数であり得る。
本明細書に記載される例は、バーストの各ワードにわたって単一エラー訂正二重エラー検出(SECDED)ECCを計算する。バーストのサイズは、メモリデバイスの要件に依存し、一般に2の累乗(例えば、16、32、64、128、256)である。ECCシンドロームは、データ又はECCデータのバーストがページ境界を越えて延在しないように、通常データ(「インライン」)と混合されて格納される。一般に、格納及び検索は、2つの別個のコマンドからなる。1つはデータ用であり、もう1つはECCシンドローム用である。データ及びECCシンドロームのためのアドレス計算は、ホストシステムが依然として平坦で連続的なメモリマップを見るように、自動的に行われ得る。アドレス計算は、データ/ECCのチャンク全体を失うことによって、単一のアドレス上の永久欠陥がマスクされないことを保証するローリングシステムを用いることができる。
また、いくつかの実施例は、どれだけ多くのデータが書き込まれるか又は読み出されるかにかかわらず、バースト全体にわたってECCを計算及び検査して、誤合致を提供するECCシンドロームのバースト又はエイリアシングに問題がないことをさらに確実にする。本明細書に記載される例示のシステムは、完全なデータ一貫性を維持しながら、データの完全なECC量子(quanta)より少ない量子が書き込まれるときに、自動的にリード・モディファイ・ライト(RMW)動作を実施する。本明細書で説明される例示のシステムはまた、サブバースト読み出しを要求するときに必要とされるであろうサブバースト書き込み及び複数読み出しを受け取るときに発生し得るRMW動作を低減するために、書き込み及び読み出しが格納及びマージされるECCキャッシュを実装する。
図1は、本明細書に記載される一例に従ったメモリシステム100を示す。メモリシステム100は、マスター107がメモリから読み出す及び/又はメモリに書き込むためのインタフェースを提供する相互接続101を含む。マスター107は、例えばプロセッサを含み得る。相互接続101は、必要な変換を実施し、マスター107からECCブリッジ102に呼を送信する。ECCブリッジ102は、コンピューティングシステムとメモリデバイスとの間のインタフェースとして機能する。ECCブリッジ102は、例えば、エラー訂正符号(ECC)検査、システムアドレスと物理アドレスとの間のアドレス変換、及びコンピューティングシステムドメインとメモリデバイスドメインとの間の電圧変換(メモリコントローラ102から始まる)を扱い得る。メモリドメインは、メモリコントローラ103、物理層(PHY)104、ボードトレース105、及びメモリデバイス106自体を含む。メモリコントローラ103、物理層(PHY)104、ボードトレース105、及びメモリデバイス106は、例えば、SDRAMであってもよく、外部又は内部RAMであってもよい。
図2は、ECCブリッジ102のブロック図を示す。ECCブリッジ102は、コンピューティングシステム電圧ドメイン201を用いて、コンピューティングシステム電圧で動作する相互接続101とインタフェースする。ECCブリッジ102はまた、メモリ電圧(例えば、DDR電圧)で動作するメモリデバイス106とインタフェースするためのメモリ電圧ドメイン203を含む。ECCブリッジ102はまた、コンピューティングシステム電圧ドメイン201とメモリ電圧ドメイン203との間で電圧変換を行うための電圧コンバータ202を含む。
メモリ電圧ドメイン203は、電圧コンバータ202から電圧変換された読み出し又は書込みコマンド(及び付随するデータ)を受け取り、受け取ったコマンドをキューに入れるコマンドアービタ204を含む。リード・モディファイ・ライト(RMW)ブロック205は、リード・モディファイ・ライト動作、例えば、不完全ECC量子書き込みコマンドに対する読み出しコマンド、を扱う。ECC量子は、ECCシンドローム当たりのデータのサイズ(例えば、8バイトのデータ)である。インラインECCブロック206は、3つの主要な機能、ECCの付加/計算、ECCデータのキャッシュ、及び、メモリデバイスにおける物理アドレスへのシステムアドレスの変換を行う。
RMWブロック205は、図3でより詳細に示されている。コマンドアービタ204からのコマンド及びデータは、調停(arbitration)スケジューラ301によって受け取られる。調停スケジューラ301は、RMWブロック205について取り込みを行い、入力コマンドをルーティングし、追加の必要なタスクを実施する。調停スケジューラ301は、インラインECCブロック206に、(以下に記載するような)RMWブロック205による追加の処理を必要としない、及び/又は、先入れ先出し(FIFO)キューであり得るRMWバックログ保持キュー302における任意のコマンドに対するアドレス衝突(コヒーレント)ではない任意のコマンドを転送し得る。例えば、調停スケジューラ301は、(1)すべての書き込みデータバイトイネーブルがECC量子に対して設定されている、(2)システムアドレスがECC保護領域にない、又は(3)データがRMWバックログ保持キュー302内のどのコマンドともコヒーレントでない、という条件のいずれかが満たされている場合に、書き込みコマンドをインラインECCブロック206に転送し得る。調停スケジューラ301は、RMWバックログ保持キュー302内のいずれのコマンドにもデータがコヒーレントでない場合、読み出しコマンドをインラインECCブロック206に転送し得る。調停スケジューラ301によってインラインECCブロック206に転送されるコマンドは、マルチスレッドFIFOキュー304を介して転送され得る。
データの部分的ECC量子を書き込むためのコマンドでは、調停スケジューラ301は、データの全バーストのための読み出しコマンドを発行し、書き込みコマンドをRMWバックログ保持キュー302に入れる。読み出しデータが状態機械(SM)207から戻されると、それはデータマージャーブロック303に置かれ、そこでRMWバックログ保持キュー302に置かれた部分的量子書込みデータとマージされる。データマージャーブロック303は、マージされたデータを調停スケジューラ301にルーティングし、調停スケジューラ301は、インラインECC206にルーティングされたマージされたデータバーストのための書き込みコマンドを発行する。
調停スケジューラ301はまた、状況の変化に起因して、もはやコヒーレントではないRMWバックログ保持キュー302内のコマンドも処理する。このケースでは、データが上述のようにマージャーを必要とし得るか、又は、コマンドが単にインラインECC206に渡され得る。上述したように、RMWバックログ保持キュー302は、コマンド及びデータを保持し、これらは、コヒーレンシ解像度で待機するか、部分的書き込みによる戻りデータで待機するかのいずれかである。
インラインECCブロック206は、図4でより詳細に示されている。インラインECCブロック206に送られたコマンド及びデータは、コマンド調停及び生成ブロック401及びECC符号化ブロック405によって受け取られる。ECC符号化ブロック405は、書き込みコマンドで書き込まれるべきデータの量子に対するECCを計算する。ECC符号化ブロック405はまた、任意選択で、データのアドレスを各ECC内に符号化し得る。符号化されたアドレスは、ECC量子、バースト、又はブロックのアドレスであり得、システム又は仮想アドレスであり得、又は、メモリデバイス内の物理アドレスであり得る。これらのアドレスのうちの1つ以上が、各ECCシンドローム内に符号化され得る。
インバウンドコマンドでは、コマンド調停及び生成ブロック401は、ECC領域及びオーナーシップ(ownership)情報に基づいてコマンドのシーケンスを生成する。例えば、或るキャッシュエントリが、特定のCPUによって「所有」され得、そのCPUによってのみ利用可能とし得る。ECCキャッシュバッファ402内のECCキャッシュラインの小さな組が、他のすべてのシステムイニシエータのために確保され得る。
コマンド調停及び生成ブロック401によって読み出しコマンドが受け取られると、コマンド調停及び生成ブロック401は、関連するデータについてのECCがすでにECCキャッシュバッファ402にあるかどうかを判定する。ECCがECCキャッシュバッファ402にある場合、コマンド調停及び生成ブロック401は、読み出しコマンドをSM207にルーティングし、キャッシュされたECCを用いる。関連するデータのためのECCがECCキャッシュバッファ402にないが、ECCキャッシュバッファ402がECCブロックをキャッシュする空間を有する場合、コマンド調停及び生成ブロック401は、データ及びECCブロックの両方について、SM207に読み出しコマンドをルーティングする。SM207がECCブロックを戻すと、それらはECCキャッシュバッファ402に(オプションで、マルチスレッドFIFOキュー404を介して)格納される。関連するデータのためのECCがECCキャッシュバッファ402になく、追加のECCブロックのための利用可能な空間がない場合、ECCキャッシュバッファ402は、データとECCブロックの両方についてSM207に読み出しコマンドを送信する前に、最も古い読み出しECCデータを取り除く。取り除いたECCデータが「ダーティ」である場合、つまりキャッシュされたECCデータが物理メモリに格納されているECCデータとは異なる場合、ECCブロックは外部メモリに書き込まれ得る。
コマンド調停及び生成ブロック401によって書き込みコマンドが受け取られると、コマンド調停及び生成ブロック401は、関連するデータのためのECCがすでにECCキャッシュバッファ402内にあるか否かを判定する。ECCがECCキャッシュバッファ402にある場合、ECCは、ECCキャッシュバッファ402内のキャッシュされたECCにマージされ、「ダーティ」とマーキングされる。関連するデータのためのECCがECCキャッシュバッファ402にないが、ECCキャッシュバッファ402が、ECCブロックをキャッシュするための空間を有する場合、ECCキャッシュバッファ402内の最も古い所有エントリが割り当てられ、ECCがその空間に格納されて「ダーティ」とマーキングされる。コマンド調停及び生成ブロック401は、データブロックのためにSM207に書き込みコマンドを発行する。
関連するデータのためのECCがECCキャッシュバッファ402内になく、ECCキャッシュバッファ内の空間が所有されていない場合、コマンド調停及び生成ブロック401は、データブロックのためにSM207に書き込みコマンドを発行する。関連するデータのためのECCがECCキャッシュバッファ402内になく、すべての所有エントリがダーティである場合、ECCキャッシュバッファ402内の最も古いエントリが取り除かれ、ダーティである場合、外部メモリに書き込まれ得る。この空間は再割り当てされ得、書き込みコマンドのためのECCは、ECCキャッシュバッファ402のその再割り当てされた空間に書き込まれ得る。
コマンド調停及び生成ブロック401によってSM207に送られたコマンドは、マルチスレッドFIFOキュー403を介して送られ得る。
図4の例示のインラインECCブロック206では、ECCキャッシュバッファ402が、以前に読み書きされたECCブロックを将来の使用のために保持する。ECCキャッシュバッファ402は、ECCデータの各バイトについて、キャッシュされたECCバイトが物理メモリに格納されたECCバイトと異なるか否かを示す「ダーティ」フラグを有する。本明細書で記載する例では、ECCキャッシュバッファ内の各エントリが、8バーストのデータに対するECCシンドロームデータを保持する。この場合、ECCキャッシュバッファは、8個の連続するデータブロック(512バイト)に対して64バイトのECCシンドロームデータを保持する。
上述したように、インラインECCブロック206は、システムアドレスと物理メモリアドレスとの間のアドレス変換も実施する。コマンド調停及び生成ブロック401は、このアドレス変換を実施し、変換されたアドレスをSM207に発行された読み出し及び書き込みコマンドに挿入する。本明細書で説明される例では、2つの64バイトECCブロックが、2つの512バイトデータブロック(各々8つの64バイトメモリバーストを有する)間に配置されるように、システムアドレスが変換される。このアドレス変換の例を図5に示す。図5から分かるように、ECCブロック52及び53は、512バイトデータブロック51及び54の間に連続的に配置される。
このアドレス変換は、データ及びECCシンドローム格納にわたるすべてのアドレスビットを互い違いにすることによって、コマンド又はアドレス指定における欠陥に対する保護を提供する。この互い違いのパターンはメモリ空間の効率的な使用を提供し、通常のデータ使用のために空間の8/9を保持する一方で、ECCシンドロームのために1/9だけを取っておき、無駄になるメモリ空間はたとえあるとしてもほとんどない。また、8バースト(例えば、512バイト)毎のデータがECCに使用される1つのブロックを共有するので、アドレスビットエラーが、整合されたECCブロックにあたることはなく、データと同様にメモリアドレスが保護される。特に、バーストカウントに2の累乗(例えば、この例において8)を用い、バーストカウントに3の累乗+ECCシンドローム(例えば、この例ではバーストカウント(8)+1=9)を用いることによって、任意のアドレスビット欠陥が、データ及びECCが整合され、エラーをもたらすことを妨げる。また、バースト整合が如何なる128バイトぺージ境界にも交差しないように、2つの64バイトECCブロックが連続的に配置されている。このような配置は、例えば、128バイトバーストをサポートし得、128バイトを128バイトのメモリ整合された境界上で開始させ得る。メモリデバイスのバースト整合構成に応じて、また、データブロック+ECCブロックの数が素数バイアスを有するように、異なる数及びサイズのECCブロック及びデータバースト/ブロックを用いることができる。
図6は、図5のデータブロック51及び54とECCブロック52及び52との間の関係をより詳細に示す。データブロック51は、8つの64バイトバーストd0~d7を有する。データブロック54は、8つの64バイトバーストd8~dFを有する。64バイトECCブロック52は、データブロック51用のECCデータe0を含んでおり、64バイトECCブロック53は、ECCブロック54用のECCデータe1を含んでいる。図5及び図6のアドレスパターンを用いると、ブロック51及び54の第1のバーストは、メモリ全体を通して常に128バイト境界上にある。従って、この特定の例では、メモリデバイスに送られるすべての読み出しコマンドは128ビット整合であるべきであり、すべての2バースト動作は常に2バースト(このケースでは128バイト)整合される。
他の整合の例も本システムによって意図される。例えば、256バイト整合を、64バーストメモリデバイスと共に用いることができる。このようなケースでは、4つの64バイトECCブロックが、16ブロックのデータの間に置かれる。これにより、256バイト整合されたすべてのマスターリクエストが、メモリデバイスに256バイト整合される。
図7は、状態機械(SM)207のブロック図を示す。アービタ701は、資源が利用可能であることを保証するためにメモリコントローラ103へのコマンドを調停する責務を負う。アービタ701によってメモリコントローラ103に送られるコマンドは、マルチスレッドFIFOキュー704を介して送られ得る。読み出し戻りFIFO703が、読み出しコマンドに応答してメモリデバイス(図1のメモリデバイス106など)からデータ及びECCを受け取ると、読み出し戻りFIFOは、そのデータのためのデータとオーナーシップを保持し、ECCデータをラインECC206に返す。読み出し戻りFIFO703は、ECC訂正及び検出(ECC COR/DET)ブロック702にデータを送り、ECC COR/DETブロック702は、SECDEDデバイスのケースでは、シングルエラーが訂正し、及び/又はダブルエラーが、インラインECCブロック206から受け取ったECCデータを用いてメモリのECC保護された領域を検出し、訂正された読み出しデータをマージャ-のためにRMWブロック205に返す。ECC訂正及び検出ブロック702は、メモリデバイスから受け取ったデータのバースト全体にわたってこのECC検査を実施する。バースト毎に8つのECCブロックが検査されるため、また、ECCシンドロームもメモリアドレスを含むため、アドレスビットエラーの事象においてECCシンドローム上の誤ヒットの可能性は小さい。読み出し戻りFIFO703は、読み出しECCデータを直接インラインECC206に戻すことができる。
本明細書で説明されるECCキャッシュの例(例えば、ECCキャッシュバッファ402)は、メモリデバイスインタフェース上の最適バーストより少ないことを回避するために、トランザクションの効率的なマージ及びキャッシュを提供する。幾つかの実施例は、要求されたデータにかかわらず、コマンド及びアドレスのためのさらなる保護を提供するために、バースト全体にわたってECCを検査及び計算する。データバーストアクセス全体(DDRメモリの64バイトデータバースト全体など)にわたってECCを検査することで、コマンド又はアドレス欠陥から保護される。また、幾つかの例はさらに、アドレスをバーストにわたって拡散する新規な方式によって、トランザクションのアドレスをECCシンドロームに符号化し、追加のビットなしにトランザクションをさらに保護することもできる。幾つかの例は更に、より高いエラー検出率を可能にするために、パリティなどの付加的な診断手段を用いて機能(例えば、アドレス変換、ECC生成など)を保護する。幾つかの例は更に、難読化又は暗号化を追加してデータを保護し、エラー検出を強化することによって拡張され得る。
本明細書に記載の解決策は、アドレス空間のより効率的な使用を提供し(無駄なメモリを潜在的になくし)、新規なアドレス変換方式を用いることによってアドレス欠陥(行、列、バンク、及びランク)に対する優れた保護を提供し、RMW及びサブバーストアクセスを最小化することによってメモリインタフェースのより効率的な使用を提供し、メモリコマンドキューに入る前に2つの独立したコマンドを生成することによってメモリコントローラ全体に対する保護を提供し、アドレスをECCシンドロームに符号化することによって付加的な保護を提供するので、既存の解決策よりも有益である。
本明細書に記載されるインラインECC保護手法は、任意のタイプの電子機器システム又はデバイスで実装され得、オートモーティブ(例えば、ADAS又は高度ドライバ支援システム)又は産業応用例など、機能的安全性が重要である応用例におけるシステム及びデバイスに特に有用である。そのようなデバイスの一例には、ハードウェア要素(回路要素を含む)、ソフトウェア要素(有形コンピュータ読み取り可能媒体上に格納されたコンピュータコードを含む)、又は、ハードウェア及び/又はソフトウェア要素の組み合わせを含み得る、デバイスの機能に寄与する様々な内部及び/又は外部構成要素が含まれ得る。こういったデバイスは、入力/出力(I/O)ポート、入力構造、一つ又は複数のプロセッサ、メモリ、電源などを含み得る。
図8は、本明細書に記載の例に従った、例示のプロセッサ81及びメモリデバイス100を有する、1つのそのような例示のデバイス80を示す。
プロセッサ81は、デバイス80の全般的な動作を制御し得る。例えば、プロセッサ81は、オペレーティングシステム、プログラム、ユーザー及びアプリケーションインタフェース、ならびに、デバイスの他の任意の機能を実行するための処理能力を提供し得る。プロセッサ81は、一つ又は複数の汎用マイクロプロセッサ、特定用途マイクロプロセッサ(ASIC)、又はそのような処理構成要素の組み合わせなど、一つ又は複数のマイクロプロセッサを含み得る。プロセッサ81は、×86又はRISCアーキテクチャに基づく一つ又はそれ以上のプロセッサ、ならびに、専用グラフィックスプロセッサ(GPU)、画像信号プロセッサ、デジタルシグナルプロセッサ、ビデオプロセッサ、オーディオ、及び/又は関連するチップセットを含み得る。プロセッサ81は、多数の同じ又は異なるタイプのプロセッシングコアを含み得、システムオンチップ(SOC)デバイスとして実装され得る。
プロセッサ81によって処理されるべき命令又はデータは、メモリデバイス100などのコンピュータ読み取り可能媒体に格納され得る。メモリデバイス100は、メモリデバイス(例えば、DRAM、SDRAM、又は内部メモリ)と、上述のインラインECC機能を実装するECCブリッジとを含み得る。
本明細書において、ECC機能性及びアドレス変換は、ECCブリッジ102において行われるものとして説明されているが、この機能は代わりに、全体的又は部分的に、別の構成要素(例えば、メモリコントローラ103)において実装されてもよい。
本発明の特許請求の範囲内で、説明した例示の実施例に改変が成され得、他の実施例が可能である。
Claims (28)
- 集積回路であって、
メモリデバイスの物理アドレスからデータを読み出す及び/又はメモリデバイスの物理アドレスにデータを書き込むためのコマンドをシステムから受け取るように構成される相互接続、及び
前記相互接続から前記コマンドを受け取り、システムアドレスと前記物理アドレスとの間のアドレス変換を実施するように構成されるブリッジ、
を含み、
前記アドレス変換が、第1のデータアドレスを有する第1のデータブロックの後であり前記第1のデータブロックに隣接する第1のECCデータブロックのためのメモリアドレスを計算すること、前記第1のECCブロックの後でありそれに隣接する第2のECCメモリアドレスを計算すること、及び、前記第2のECCブロックの後でありそれに隣接する第2のデータアドレスを計算することによって成される、集積回路。 - 請求項1に記載の集積回路であって、
前記第1のECCデータブロックが前記第1のデータブロックのためのECCデータを含み、前記第2のECCデータブロックが前記第2のデータブロックのためのECCデータを含む、集積回路。 - 請求項1に記載の集積回路であって、
前記第1のECCデータブロック及び前記第2のECCデータブロックが各々64バイトであり、前記第1のデータブロック及び前記第2のデータブロックが各々512バイトである、集積回路。 - 請求項1に記載の集積回路であって、
前記第1のデータアドレス、前記第2のデータアドレス、前記第1のECCメモリアドレス、及び前記第2のECCメモリアドレスが、前記メモリデバイスにおける連続する位置に対応する、集積回路。 - 集積回路であって、
データの一部を読み出す及び/又は書き込むためにコマンドをシステムから受け取るように構成される相互接続、及び
前記相互接続から前記コマンドを受け取り、前記データの一部を含むデータのバーストのためのECCデータを検査及び計算するように構成されるブリッジ、
を含む、集積回路。 - 外部メモリとインタフェースするための集積回路であって、前記集積回路が、
データの一部を読みだす及び/又は書き込むためのコマンドをシステムから受け取るように構成される相互接続、及び
前記相互接続から前記コマンドを受け取り、ECCデータを検査及び計算するように構成されるブリッジであって、前記データの一部を含むデータの完全なバーストのためのECCデータをキャッシュするようにさらに構成される前記ブリッジ、
を含む、集積回路。 - 請求項6に記載の集積回路であって、
前記コマンドが第1のコマンドであり、前記第1のコマンドが書き込みコマンドである場合、前記ブリッジが、データの部分的ブロックを第1のアドレスに書き込み、前記外部メモリから前記第1のアドレスにおけるデータのブロックと前記データのブロックに関連するECCデータとを読み出すように更に構成され、
前記ブリッジが、前記書き込みコマンド及び前記データの部分的ブロックを保持して、前記ブリッジへの前記データのブロックの戻しを保留するように構成される保持キューを含む、集積回路。 - 請求項7に記載の集積回路であって、
前記ブリッジが更に、前記外部メモリから前記データのブロックと前記データのブロックのためのECCデータとを受け取り、前記データの部分的ブロックを前記データのブロックとマージして、マージされたデータを作成し、前記マージされたデータを前記外部メモリに書き込むように構成される、集積回路。 - 請求項8に記載の集積回路であって、
前記ブリッジが更に、前記データのブロックのために前記ECCデータをキャッシュするように構成される、集積回路。 - 請求項7に記載の集積回路であって、
前記ブリッジが更に、第2のアドレスに関連する第2のコマンドを前記システムから受け取り、前記第2のアドレスが前記保持キュー内の任意のアドレスと一致する場合、前記第2のコマンドを前記保持キューに置くように構成される、集積回路。 - メモリシステムであって、
メモリデバイス、
プロセッサ、
前記メモリデバイスの物理アドレスからデータを読み出す及び/又は前記メモリデバイスの物理アドレスにデータを書き込むために前記プロセッサからコマンドを受け取るように構成される相互接続、及び
前記相互接続から前記コマンドを受け取り、システムアドレスと前記物理アドレスとの間のアドレス変換を実施するように構成されるブリッジ、
を含み、
前記アドレス変換が、第1のデータアドレスを有する第1のデータブロックの後であり前記第1のデータブロックに隣接する第1のECCデータブロックのための第1のECCメモリアドレスを計算し、前記第1のECCブロックの後であり前記第1のECCブロックに隣接する第2のECCメモリアドレスを計算し、前記第2のECCブロックの後であり前記第2のECCブロックに隣接する第2のデータアドレスを計算することによって成される、メモリシステム。 - 請求項11に記載のメモリシステムであって、
前記第1のECCデータブロックが前記第1のデータブロックのためのECCデータを含み、前記第2のECCデータブロックが前記第2のデータブロックのためのECCデータを含む、メモリシステム。 - 請求項11に記載のメモリシステムであって、
前記第1のECCデータブロック及び第2のECCデータブロックが各々64バイトであり、前記第1のデータブロック及び第2のデータブロックが各々512バイトである、メモリシステム。 - 請求項11に記載のメモリシステムであって、
前記第1のデータアドレス、第2のデータアドレス、第1のECCメモリアドレス、及び第2のECCメモリアドレスが、前記メモリデバイス内の連続する位置に対応する、メモリシステム。 - メモリシステムであって、
メモリデバイス、
プロセッサ、
データの一部を読み出す及び/又は前記メモリデバイスに書き込むためのコマンドを前記プロセッサから受け取るように構成される相互接続、及び
前記相互接続から前記コマンドを受け取り、ECCデータを検査及び計算するように構成されるブリッジであり、前記データの一部を含むデータの完全なバーストのためのECCデータをキャッシュするようにさらに構成される前記ブリッジ、
を含む、メモリシステム。 - 請求項15に記載のメモリシステムであって、
前記コマンドが第1のコマンドであり、前記ブリッジが、前記第1のコマンドが書き込みコマンドである場合、第1のアドレスにデータの部分的ブロックを書き込み、前記外部メモリから前記第1のアドレスにおけるデータのブロックと前記データのブロックに関連するECCデータとを読み出すようにさらに構成され、
前記ブリッジが、前記書き込みコマンド及び前記データの部分的ブロックを保持して、前記ブリッジへの前記データのブロックの戻しを保留するように構成される保持キューを含む、メモリシステム。 - 請求項16に記載のメモリシステムであって、
前記ブリッジが、前記データのブロックと前記データのブロックのためのECCデータとを前記外部メモリから受け取り、前記データの部分的ブロックを前記データのブロックとマージして、マージされたデータを作成し、前記マージされたデータを前記外部メモリに書き込むようにさらに構成される、メモリシステム。 - 請求項17に記載のメモリシステムであって、
前記ブリッジが、前記データのブロックのための前記ECCデータをキャッシュするようにさらに構成される、メモリシステム。 - 請求項16に記載のメモリシステムであって、
前記ブリッジが、第2のアドレスに関連する第2のコマンドを前記システムから受け取り、前記第2のアドレスが前記保持キューの任意のアドレスと一致する場合、前記第2のコマンドを前記保持キューに置くようにさらに構成される、メモリシステム。 - 外部メモリにデータを書き込む又はそこからデータを読み出す方法であって、
前記メモリが、
データの一部を読み出す及び/又は書き込むコマンドをシステムから受け取ること、及び
前記データの一部を含むデータの完全なバーストのためのECCデータをキャッシュすること、
を含む、方法。 - 請求項20に記載の方法であって、
前記受け取ることが、データの部分的ブロックを第1のアドレスに書き込むための第1の書き込みコマンドを受け取ることを含む場合、
前記外部メモリから、前記第1のアドレスを含み、前記データのブロックに関連するECCデータを含むデータのブロックを読み出すこと、及び
前記第1の書き込みコマンド及びデータの部分的ブロックをキューに置くこと、
をさらに含む、方法。 - 請求項21に記載の方法であって、
前記データのブロックと前記データのブロックのためのECCデータとを外部前記メモリから受け取ること、
前記データの部分的ブロックを前記データのブロックとマージして、マージされたデータを作成すること、及び
前記マージされたデータを前記外部メモリに書き込むこと、
をさらに含む、方法。 - 請求項22に記載の方法であって、
前記データのブロックのための前記ECCデータをキャッシュすることをさらに含む、方法。 - 請求項21に記載の方法であって、
第2のアドレスに関連する第2のコマンドを前記システムから受け取ること、
前記第2のアドレスが前記キュー内の任意のアドレスと一致する場合、前記第2のコマンドを前記キューに置くこと、
をさらに含む、方法。 - 請求項20に記載の方法であって、
前記キャッシュすることが、前記データの一部を含むデータの8つの連続するバーストのためのECCデータをキャッシュすることを含む、方法。 - 外部メモリにデータを書き込む又はそこからデータを読み出す方法であって、
データの一部を読み出す及び/又は書き込むコマンドをシステムから受け取ること、
前記データの一部を含むデータの完全なバーストのためのECCデータを検査すること、
を含む、方法。 - システムメモリアドレスを物理メモリアドレスに変換する方法であって、
第1のデータブロックに関連する第1のECCブロックを提供すること、
第2のデータブロックに関連する第2のECCブロックを提供すること、
第1のデータアドレスを有する前記第1のデータブロックの後であり前記第1のデータブロックに隣接する前記第1のECCデータブロックについて第1のECCメモリアドレスを計算すること、
前記第1のECCブロックの後でありそれに隣接する第2のECCメモリアドレスを計算すること、
前記第2のECCブロックの後でありそれに隣接する前記第2のECCデータブロックについて第2のECCメモリアドレスを計算すること、
を含む、方法。 - 請求項27に記載の方法であって、
前記第1のデータブロック、第1のECCブロック、第2のECCブロック、及び第2のデータブロックが、前記第1のデータアドレス、第1のECCメモリアドレス、第2のECCメモリアドレス、及び第2のデータアドレスに基づいてメモリにおいて連続している、方法。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862777993P | 2018-12-11 | 2018-12-11 | |
US62/777,993 | 2018-12-11 | ||
US16/590,515 US11119909B2 (en) | 2018-12-11 | 2019-10-02 | Method and system for in-line ECC protection |
US16/590,515 | 2019-10-02 | ||
JP2021533424A JP7354253B2 (ja) | 2018-12-11 | 2019-12-10 | インラインecc保護のための方法及びシステム |
PCT/US2019/065416 WO2020123471A1 (en) | 2018-12-11 | 2019-12-10 | Method and system for in-line ecc protection |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021533424A Division JP7354253B2 (ja) | 2018-12-11 | 2019-12-10 | インラインecc保護のための方法及びシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023169327A true JP2023169327A (ja) | 2023-11-29 |
Family
ID=70972067
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021533424A Active JP7354253B2 (ja) | 2018-12-11 | 2019-12-10 | インラインecc保護のための方法及びシステム |
JP2023153988A Pending JP2023169327A (ja) | 2018-12-11 | 2023-09-20 | インラインecc保護のための方法及びシステム |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021533424A Active JP7354253B2 (ja) | 2018-12-11 | 2019-12-10 | インラインecc保護のための方法及びシステム |
Country Status (5)
Country | Link |
---|---|
US (3) | US11119909B2 (ja) |
EP (1) | EP3895017A4 (ja) |
JP (2) | JP7354253B2 (ja) |
CN (1) | CN112867993A (ja) |
WO (1) | WO2020123471A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11119909B2 (en) * | 2018-12-11 | 2021-09-14 | Texas Instmments Incorporated | Method and system for in-line ECC protection |
US12014068B2 (en) | 2021-04-27 | 2024-06-18 | Microchip Technology Inc. | System and method for double data rate (DDR) chip-kill recovery |
US11561857B2 (en) * | 2021-05-11 | 2023-01-24 | Robert Bosch Gmbh | Method for the secured storing of a data element to be stored by a computer program in an external memory |
US11934696B2 (en) | 2021-05-18 | 2024-03-19 | Microchip Technology Inc. | Machine learning assisted quality of service (QoS) for solid state drives |
US11699493B2 (en) | 2021-05-24 | 2023-07-11 | Microchip Technology Inc. | Method and apparatus for performing a read of a flash memory using predicted retention-and-read-disturb-compensated threshold voltage shift offset values |
CN117280328A (zh) | 2021-06-01 | 2023-12-22 | 微芯片技术股份有限公司 | 存储器地址保护 |
DE112022002131T5 (de) | 2021-09-28 | 2024-04-11 | Microchip Technology Inc. | Ldpc-dekodierung mit trapped-block-management |
US20230342240A1 (en) * | 2022-04-26 | 2023-10-26 | Nxp Usa, Inc. | Data processing system having a memory controller with inline error correction code (ecc) support |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0415547A3 (en) * | 1989-08-01 | 1993-03-24 | Digital Equipment Corporation | Method of handling nonexistent memory errors |
US6804799B2 (en) | 2001-06-26 | 2004-10-12 | Advanced Micro Devices, Inc. | Using type bits to track storage of ECC and predecode bits in a level two cache |
US7043679B1 (en) | 2002-06-27 | 2006-05-09 | Advanced Micro Devices, Inc. | Piggybacking of ECC corrections behind loads |
TWI277869B (en) * | 2005-08-23 | 2007-04-01 | Via Tech Inc | Architecture and method for storing data |
US7676730B2 (en) * | 2005-09-30 | 2010-03-09 | Quantum Corporation | Method and apparatus for implementing error correction coding in a random access memory |
JP2007104708A (ja) * | 2006-11-27 | 2007-04-19 | Renesas Technology Corp | データ処理方法 |
US8135935B2 (en) * | 2007-03-20 | 2012-03-13 | Advanced Micro Devices, Inc. | ECC implementation in non-ECC components |
US8127185B2 (en) * | 2009-01-23 | 2012-02-28 | Micron Technology, Inc. | Memory devices and methods for managing error regions |
US8341498B2 (en) * | 2010-10-01 | 2012-12-25 | Sandisk Technologies Inc. | System and method of data encoding |
EP2761481A4 (en) | 2011-09-30 | 2015-06-17 | Intel Corp | PRESENTATION OF DIRECT ACCESS STORAGE DEVICE IN LOGIC READER MODEL |
US11119909B2 (en) * | 2018-12-11 | 2021-09-14 | Texas Instmments Incorporated | Method and system for in-line ECC protection |
-
2019
- 2019-10-02 US US16/590,515 patent/US11119909B2/en active Active
- 2019-12-10 JP JP2021533424A patent/JP7354253B2/ja active Active
- 2019-12-10 WO PCT/US2019/065416 patent/WO2020123471A1/en unknown
- 2019-12-10 EP EP19895886.0A patent/EP3895017A4/en active Pending
- 2019-12-10 CN CN201980068709.6A patent/CN112867993A/zh active Pending
-
2021
- 2021-09-14 US US17/474,141 patent/US11726907B2/en active Active
-
2023
- 2023-08-14 US US18/449,025 patent/US20230393975A1/en active Pending
- 2023-09-20 JP JP2023153988A patent/JP2023169327A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3895017A4 (en) | 2022-06-22 |
US11119909B2 (en) | 2021-09-14 |
US20230393975A1 (en) | 2023-12-07 |
US11726907B2 (en) | 2023-08-15 |
JP2022520150A (ja) | 2022-03-29 |
WO2020123471A1 (en) | 2020-06-18 |
US20210406171A1 (en) | 2021-12-30 |
JP7354253B2 (ja) | 2023-10-02 |
EP3895017A1 (en) | 2021-10-20 |
CN112867993A (zh) | 2021-05-28 |
US20200183826A1 (en) | 2020-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7354253B2 (ja) | インラインecc保護のための方法及びシステム | |
US10198310B1 (en) | Providing error correcting code (ECC) capability for memory | |
US8866831B2 (en) | Shared virtual memory between a host and discrete graphics device in a computing system | |
US7725663B2 (en) | Memory protection system and method | |
JP4643479B2 (ja) | アクセス制御装置、アクセス制御システム、プロセッサ、アクセス制御方法およびメモリアクセス制御方法 | |
US7761779B2 (en) | Access control apparatus, access control system, processor, access control method, memory access control apparatus, memory access control system, and memory access control method | |
US8959417B2 (en) | Providing low-latency error correcting code capability for memory | |
JP2007148770A (ja) | メモリ保護装置、メモリ保護システムおよびメモリ保護方法 | |
US20220276924A1 (en) | Techniques for storing data to enhance recovery and detection of data corruption errors | |
CN108369557B (zh) | 非对称一致性协议 | |
US9098425B2 (en) | Implementing user mode foreign device attachment to memory channel | |
TW200300885A (en) | System and method for handling device accesses to a memory providing increased memory access security | |
US6591393B1 (en) | Masking error detection/correction latency in multilevel cache transfers | |
US8910004B2 (en) | Information processing apparatus, and method of controlling information processing apparatus | |
US8667226B2 (en) | Selective interconnect transaction control for cache coherency maintenance | |
JP2010079765A (ja) | 情報処理装置 | |
KR20220110055A (ko) | 저-복잡도 커버리지-기반 압축 | |
US7577890B2 (en) | Systems and methods for mitigating latency associated with error detection and correction | |
US9147499B2 (en) | Memory operation of paired memory devices | |
US10503643B1 (en) | Cache coherence with functional address apertures | |
US6249878B1 (en) | Data storage system | |
JPS58172765A (ja) | デ−タ処理装置 | |
JPS60140444A (ja) | 共有メモリに対する部分書込みの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20230920 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231016 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231016 |