JP2020195134A - メモリエラーを訂正するためのシステム及び方法 - Google Patents
メモリエラーを訂正するためのシステム及び方法 Download PDFInfo
- Publication number
- JP2020195134A JP2020195134A JP2020093658A JP2020093658A JP2020195134A JP 2020195134 A JP2020195134 A JP 2020195134A JP 2020093658 A JP2020093658 A JP 2020093658A JP 2020093658 A JP2020093658 A JP 2020093658A JP 2020195134 A JP2020195134 A JP 2020195134A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- authentication
- character
- correction
- correct
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 300
- 238000012937 correction Methods 0.000 title claims abstract description 201
- 238000000034 method Methods 0.000 title claims abstract description 84
- 230000006870 function Effects 0.000 claims description 73
- 238000012795 verification Methods 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 22
- 238000006467 substitution reaction Methods 0.000 claims description 14
- 238000011084 recovery Methods 0.000 claims description 12
- 238000001514 detection method Methods 0.000 claims description 11
- 230000004913 activation Effects 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 description 12
- 238000012360 testing method Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 7
- 238000010200 validation analysis Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000005201 scrubbing Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- VIEYMVWPECAOCY-UHFFFAOYSA-N 7-amino-4-(chloromethyl)chromen-2-one Chemical compound ClCC1=CC(=O)OC2=CC(N)=CC=C21 VIEYMVWPECAOCY-UHFFFAOYSA-N 0.000 description 1
- 208000033830 Hot Flashes Diseases 0.000 description 1
- 206010060800 Hot flush Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 206010016531 fetishism Diseases 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 235000012431 wafers Nutrition 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- 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
- 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/1048—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 using arrangements adapted for a specific error detection or correction feature
-
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- 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/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/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/84—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved access time or stability
-
- 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/88—Masking faults in memories by using spares or by reconfiguring with partially good memories
- G11C29/883—Masking faults in memories by using spares or by reconfiguring with partially good memories using a single defective memory device with reduced capacity, e.g. half capacity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- 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/0409—Online test
-
- 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
-
- 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
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Power Engineering (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Storage Device Security (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
Description
US6838331B2、US9525546B2、US20070089034A1、US20080168319A1、US20090164704A1、US20080222491A1、US7266747B2、US20060256615A1、US7937639B2(Infineon 2006)、US20170255512A1、US10026488B2(Sandisk)、US20180239665A1、US20180246783A1(Sandisk 2016)及びUS20180091308(Durham)。
メモリと、メモリコンテンツ認証機能と、エラー訂正機能とを含む集積回路と、を備え、
メモリコンテンツ認証機能は、認証待ちメモリコンテンツと標準コンテンツとを比較し、認証待ちメモリコンテンツが標準コンテンツと同じであると認証された場合、メモリコンテンツ認証機能は、「正しい(authentic)」ことを出力し、そうでない場合は「正しくない(non−authentic)」ことを出力し、
エラー訂正機能は、少なくとも1つの可能な訂正をメモリにおける少なくとも1つの誤りのある文字エンティティ(erroneous word entity)に適用して、正しいと思われる文字エンティティを生成し、メモリコンテンツ認証機能を呼び出して、正しいと思われる文字エンティティに適用し、メモリコンテンツ認証機能の出力が「正しい」である場合、メモリにおける誤りのある文字エンティティを正しいと思われる文字エンティティに置き換えて、認証に関連する信頼レベルから導出された信頼レベルに達するエラー訂正を生成することを特徴とする自己訂正メモリシステム。
上述の実施例のいずれかに記載のシステムによると、認証機能は、暗号化された強力な認証を実行するように作動できる。
上述の実施例のいずれかに記載のシステムによると、認証機能は、文字認証を実行するように作動してもい。
上述の実施例のいずれかに記載のシステムによると、エラー訂正機能は、少なくとも1つの可能な訂正をメモリにおける少なくとも1つの誤りのある文字に適用して、正しいと思われる文字を生成し、文字認証を呼び出して正しいと思われる文字に適用し、文字認証の出力が「正しい」である場合、強力な認証を呼び出して、正しいと思われる文字に適用し、強力な認証の出力が「正しい」である場合、メモリにおける誤りのある文字をこの正しいと思われる文字に置き換えて、強力な認証及び文字認証に関連する信頼レベルから導出された信頼レベルに達するエラー訂正を生成するように配置される。
上述の実施例のいずれかに記載のシステムによると、文字認証をメモリにおける少なくとも1つの文字に適用することで、前記誤りのある文字を検出し、「正しくない」の出力を生成する任意の文字は誤りがあると見なされ、「正しい」の出力を生成する任意の文字は誤りがないと見なされる。
上述の実施例のいずれかに記載のシステムによると、少なくとも1つの可能な訂正は、誤りのある文字エンティティにおける少なくとも1ビットを0から1にまたは1から0にフリップする(flip)ことを含む。
上述の実施例のいずれかに記載のシステムによると、可能な訂正が複数の誤りのある文字に適用されて、複数の正しいと思われる文字を生成する。それに、強力な認証を何度も呼び出して複数の正しいと思われる文字をそれぞれ含む複数のメモリイメージ又はチャンクに適用するのではなく、強力な認証を一度呼び出して訂正されたメモリイメージ又はチャンクに適用して、訂正されたメモリイメージ又はチャンクにおける全ての複数の誤りのある文字をそれぞれ正しいと思われる文字に置換、この結果、メモリ及び/又は訂正時間を節約する。
上述の実施例のいずれかに記載のシステムによると、可能な訂正が複数の誤りのある文字に適用されて、複数の正しいと思われる文字を生成する。また、強力な認証を何度も呼び出して複数の正しいと思われる文字をそれぞれ含む複数のメモリイメージ又はチャンクに適用するのではなく、強力な認証を一度呼び出して複数の正しいと思われる文字の全てに適用し、この結果、メモリ及び/又は訂正時間を節約する。
上述の実施例のいずれかに記載のシステムによると、第1の可能な訂正及び第2の可能な訂正は、少なくとも1つの誤りのある文字に適用され、第1の可能な訂正で誤りのある文字におけるフリップされた任意のビットは、第2の可能な訂正が誤りのある文字に適用される前にフリップされない、これにより、第2の可能な訂正を同じ誤りのある文字に適用する前に、誤りのある文字の第1の可能な訂正を取り消す(undo)。
上述の実施例のいずれかに記載のシステムによると、全ての可能な訂正が少なくとも1つの誤りのある文字に適用される。
上述の実施例のいずれかに記載のシステムによると、全ての可能な訂正が適用される誤りのある文字は、訂正不可能な誤りのある文字を含む。当該訂正不可能な誤りのある文字は、全ての可能な訂正を試みたが、まだ正しい文字認証に失敗ため、訂正不可能(uncorrectable)と見なされる。
上述の実施例のいずれかに記載のシステムによると、全ての可能な訂正より少ない訂正を含む可能な訂正のサブセットを判定するために、少なくとも1つのヒューリスティック法(heuristic)を採用し、ここで、サブセットには,正しい文字認証をもたらす可能な訂正がなくても、サブセットにおける可能な訂正が少なくとも1つの誤りのある文字に適用される。
上述の実施例のいずれかに記載のシステムによると、認証待ちメモリコンテンツと標準コンテンツとを比較することは、時点t2で特定のメモリ位置に記憶されている認証待ちメモリコンテンツに強力な認証を適用して、計算された認証値を生成し、且つこの計算された認証値と記憶された結果とを比較することである。記憶された結果は、期待される認証値とも呼ばれ、期待される認証値は、前記時点t2よりも前の時点t1で特定のメモリ位置のメモリコンテンツに強力な認証を適用することで生成される。
集積回路のターゲットメモリ(不揮発性または揮発性)に常駐するメモリコンテンツにエラー訂正機能を提供する方法であり、この方法は少なくとも以下のステップを含む、
(b)ターゲットメモリに常駐するメモリコンテンツのエラーを検出する。
(c)それぞれがエラーの可能な訂正からなる少なくともいくつかのビット置換によって、少なくとも1つのオンザフライシグネチャマッチ(on−the−fly signature match)を検索して、強力な認証を成功させる提案の訂正を定義する。
(d)少なくとも1つのオンザフライシグネチャマッチを見つけると、提案された訂正の最終検証として全体的な認証を使用する。
(e)コードを修正して最終検証に成功するために、パワーフェイルセーフコードリカバリ更新プロセス(power−fail safe code recovery update process)を使用する場合、ターゲットメモリをラボに持ち込む必要がない。
上述の実施例のいずれかに記載の方法によると、メモリの訂正ニーズを示す出力指示を提供することをさらに含む。例えば、メモリコンテンツの訂正は既に失敗したため、少なくとも1つのターゲットメモリをラボに持ち込んで完全な再プログラミングする必要がある。
上述の実施例のいずれかに記載の方法によると、出力指示を提供する前に、検索がエラーのシングルビット置換(single−bit permutation)のみに対して実行される。
上述の実施例のいずれかに記載の方法によると、出力指示を提供する前に、エラーの全てのシングルビット置換及びダブルビット置換に対して検索を実行する。
上述の実施例のいずれかに記載の方法によると、出力指示を提供する前に、エラーの全てのシングルビット置換に対して検索を実行し、少なくとも1つのオンザフライシグネチャマッチも見つけないと、エラーの少なくともいくつかのダブルビット置換に対して検索を再度実行する。
上述の実施例のいずれかに記載の方法によると、検出の前に、強力な認証を一度実行し及びオンザフライの文字認証によって、ターゲットメモリに常駐するメモリコンテンツを保護することをさらに含む。
上述の実施例のいずれかに記載の方法によると、一度実行される強力な認証は、集積回路がアクティブでない状態からウェイクアップされた直後に実行される強力な認証を含む。
上述の実施例のいずれかに記載の方法によると、一度実行される強力な認証は、集積回路の起動の直後に実行される強力な認証を含む。
上述の実施例のいずれかに記載の方法によると、一度実行される強力な認証は、集積回路がスリープ状態を終了した直後に実行される強力な認証を含む。
上述の実施例のいずれかに記載の方法によると、メモリコンテンツは、ターゲットメモリに記憶されたコードを含む。
上述の実施例のいずれかに記載のシステムによると、エラー訂正機能は、少なくとも1つの可能な訂正をメモリにおける少なくとも1つの誤りのある文字に適用するために作動でき、エラー訂正機能は、正しいと思われる文字を生成し、続いてメモリコンテンツ認証機能を呼び出して、正しいと思われる文字に適用し、且つメモリコンテンツ認証機能の出力が「正しい」である場合、メモリにおける誤りのある文字をこの正しいと思われる文字に置き換える。
上述の実施例のいずれかに記載のシステムによると、エラー訂正機能は、少なくとも1つの可能な訂正を少なくとも1つの誤りのある文字エンティティの文字認証に適用するために作動でき、エラー訂正機能は、正しいと思われる文字エンティティを生成し、且つメモリコンテンツ認証機能を呼び出して、正しいと思われる文字エンティティに適用し、メモリコンテンツ認証機能の出力が「正しい」である場合、メモリにおける誤りのある文字認証をこの正しいと思われる文字認証に置き換える。
上述の実施例のいずれかに記載のシステムによると、前の時点t1は、メモリのファームウェア更新が発生した時間である。
命令を含むコンピュータプログラムであって、プロセッサが前記命令を実行すると、前記命令は、前記プロセッサを上述の1つ又は複数の方法における1つ又は複数の動作を実行させることを特徴とするコンピュータプログラム。
少なくとも1つのプロセッサを備えるシステムであって、通常、対応する専用のハードウェアと協同して作動し、本明細書に記載の1つ又は複数の方法における少なくとも1つの動作を実行するように構成されるシステム。
通常、プロセッサとメモリ間のインターフェイスに関連付けられている任意の従来のアクセス制御機能を含むように意図され、ハードウェアとファームウェアを含む仮想ロジックエンティティとして実行できる。
集積回路(ICとも呼ばれる)における任意のメモリアレイを含んでもよい、メモリアレイは通常、使用中及びフリーのメモリのページを含む。現在使用されていないフリーのページは、保留ページ(Reserved page)と見なされる。
メモリコンテンツを検証するためのアルゴリズム又はプロセスを含んでもよい。大きなコード又は持続的なデータセグメントでは、ダイジェスト/セキュリティキーに基づくHASH関数を採用することができる。
メモリよりもはるかに小さい任意のデータの断片を含んでもよい。例えば、数千の文字を含む可能性のあるメモリアレイにおける16ビットのデータ、又は128ビットのデータ、256ビットのデータ或いはそれ以上である。通常、文字はメモリから取得される最小データの断片であり、独自の認証コードを持っている。
シグネチャマッチとも呼ばれ、認証待ち「文字」のダイジェストを含んでもよい。
文字を読み取るたびに、文字認証を同時に読み取る。通常、ビット構造の長さは、データの長さに認証の長さを加えたものである。同時に、読み取られた文字に基づいて認証を再計算して、計算された認証データと読み取られた文字の認証とを比較する。再計算された認証データがメモリから読み取られた認証データと等しい場合、一致であると判断する。
システムが管理しようとするメモリのコンテンツ全体に対する強力な認証を含んでもよい。通常、いつでも、特にデータが訂正された後、コンテンツのダイジェストと事前計算されたデータとが同じであれば、再認証時に、現在のコンテンツは、当時の事前計算されたコンテンツと同じであると見なすことができ、よって、データが訂正された直後に実行される強力な認証が成功した場合、提案された訂正又は修正は正しく、認証又は確認されたものである。
コンテンツからハッシュ(hash)を生成するアルゴリズム(例えば、強力な認証などに使用される)を含んでもよい、前記ハッシュは、認証待ちコンテンツの完全性を確認できる。例えば、コンテンツが既に変更されたのか、又は(アクセスが制御されたメモリの場合)不正な変更が加えられたか、又は改ざんされたのかを確認する。従って、ダイジェスト及びハッシュは、本明細書で通常、交換可能に使用され、両方とも名詞と動詞で使用される。
通常、メッセージ認証コード(message authentication code,MAC)アルゴリズムであり、内部的にハッシュを使用して(暗号化ではなく)MACを生成する。
例えば、別の実行中のプロセスと同時に実行する。例えば、認証中に、認証待ちデータを読み取り同時にダイジェストを計算し、このダイジェストを期待される値と比較することができ、又は(コンテンツの)書き込み操作中にダイジェストを計算し、このダイジェストをメモリに書き込むことができる。
時点t2で計算されたメモリの「強力な認証のデータ」と、時点t2よりも前の時点t1で事前計算された/記憶(期待)された同じメモリゾーン(memory zone)の「強力な認証のデータ」との間に一致する又は一致しない(等しいまたは等しくない)ことがあるかの判定を含んでもよい。
1つのチップを含んでもよい、前記チップは「垂直」又は「3D」チップとして分類され、複数の(数十層の場合もある)メモリ層又は結晶粒を積層することで超高密度ストレージを生成してビットコストを低減する。ビットコストスケーリング(bit cost scaling,BiCS)又はパンチアンドプラグ プロセス(punch and plug process)を使用できる。本明細書の実施例は、通常、メモリに適用され、スタックフラッシュ及び他のフラッシュ/不揮発メモリ(NVM)技術を含むが、これに限定されなくてもよい。
メモリ容量における冗長性を含んでもよいが、これは通常、結晶粒の面積及び製品コストの面で不利である。例えば、エラー訂正コード(ECC)を使用してエラー訂正を実行するとは、通常、ECCのXビットをデータ/検証情報のYビットに適用し、エラー訂正に使用されるオーバーヘッド又は追加のメモリ容量(Y/X)*100%に変換することを意味する。
文字自体(文字ビットとも呼ばれる)と、文字に関する文字検証のデータ(検証ビットとも呼ばれる)と、メモリに記憶される文字に関するデータを含んでもよい。文字認証は、この明細書では「対応する」文字認証データと呼ばれる。いくつかの実施例によれば、文字部分のビットと認証部分のビットとがそれぞれスキャン又はフリップされるが、通常、文字に対して計算を実行し、認証比較に対して本明細書に記載される全てのものを実行する。
ECC(エラー訂正コードを示す)、FW(ファームウェアを示す)、NVM(不揮発メモリを示す)、ASIC(アプリケーション固有の集積回路を示す)、DSP(デジタル信号処理を示す)、HMAC(ハッシュベースのメッセージ認証コードを示す)、IC(集積回路を示す)及びHW(ハードウェアを示す)。
メモリに記憶されたコードなどのメモリコンテンツが、「強力な認証」及び「文字認証」に保護される集積回路を提供する。
オンザフライの文字認証が失敗するたびに(例えば、実行中に)、集積回路は停止する(例えば、次の起動まで)又は自動的に再び起動する。例えば、メモリ空間に確保するコードがあるとする。従って、メモリからの読み取りは通常、ICのプロセッサがそのメモリ空間からコードをフェッチしていることを意味する。これは、通常、文字認証の失敗が識別された場合、対象のプロセッサが変更されたコードのみフェッチすることを意味する。このとき、変更されたコードの実行を防止するために、プロセッサは停止する可能性があり、通常はリカバリを開始する必要がある。回復動作は、例えば、ROMにおけるコードのような100%安全であることがわかっている別のコードにジャンプすること、又は
ソフトウェアまたはハードウェアのいずれかによって、ここで説明するエラー訂正及び検証の少なくとも一方をトリガするリセットをROMから再開することを含んでもよい。
次に起動する時(又は上記の例に従って)に、全ての「文字認証」は、メモリコンテンツを保護するための「強力な認証」計算の一部としてチェックされる。「文字認証」が起動認証中に失敗した場合(実行時とは逆)、エラー検出を構成するため、集積回路は、例えば図3の操作ステップ140〜170の全て又は任意のサブセットを実行することによって、メモリコンテンツで見つかったエラーを訂正しようとする。
メモリがコード実行メモリ(code execution memory)である場合、例えばエラー訂正を行うと(例えば、図3の操作ステップ140〜170の全て又は任意のサブセットを実行する)、訂正されたコードを解析できる。この場合、適切なパワーフェイルセーフコードリカバリ更新フロー(Power−fail safe Code recovery update flow)が実行される。コードが成功に修正されると、プロセッサは、通常の操作として実行を再開できる。
破損した文字(例えば起動認証中に「文字認証」がこの文字で失敗したためにエラーが検出された文字)の全てのビット置換(例えば、説明された実施例では128+16のビット置換)をチェックして、一致を検索する。データと認証との間に適切な比率が存在する可能性があることを強調する。128ビット及び16ビットのパラメータは単なる例示である。
一致が見つかった場合、訂正または修正された(例えば、誤りのあるコンテンツに対する提案された訂正)誤りのあるデータ又はコンテンツを「強力な認証」計算の一部としてダイジェストできる。認証アルゴリズムと訂正されたビット数によっては、複数の一致が見つかる可能性がある。この場合、一致するビットの組み合わせの全ての置換(ビットパターンとも呼ばれ)を試し、正しい「強力な認証」を生成する置換が採用される。通常、正しいとは、訂正またはコードを使用した(または適用した)「強力な認証」の結果が、メモリの元のコンテンツを使用した(または適用された)強力な認証の事前計算の結果と等しいことを意味する。
それ以外の場合は、例えば、再検索によって、今回はエラーの少なくともいくつかのダブルビット置換に対して、複数のエラーを訂正することが好ましい。1つ以上のエラー(1つ以上のビットを含む)は訂正可能であるが、いくつかの実施例によれば、複数のビットを含むエラーは、その計算が1ビットのエラーの計算よりも複雑で、その計算が約X2/2(たとえば1442/2)回のチェックが必要であるため修正できない。
図1に示すように、エラーを訂正できない場合、通常、例えば高いレベルのソフトウェアを介してエンドユーザーにアラートを提供する。
訂正待ちフラッシュページを識別する。複数のページは訂正の必要がある場合、訂正が必要な文字(アドレス+データ)を不揮発性メモリに保留(又はこの文字の指示)する。次に、操作ステップ220を実行してすぐに訂正し、又は操作ステップ230を実行して次の起動後に修正する。
例えば、ページごとに図5の操作ステップ310〜350の全てを実行することで、各訂正待ちページを訂正する。
ブート時、フラッシュコード認証が実行される前に、ブートコード(boot code)は、例えば使用可能とマークされたページが存在するかをチェックし、使用可能な場合、ブートコードは、ブートを続行する前に、操作ステップ310〜350の全て又は任意のサブセットを完了できる、そうでない場合、いくつかのより高いレベルのファームウェアは、「ガベージコレクション(garbage collection)」を実行できる。例えば、可能な限り最小のメモリ空間を占めるようにメモリコンテンツを圧縮するため、一時的なエラー訂正のために少なくとも1ページを解放する。
保留された事前定義のフラッシュ ページにフラッシュページのアドレス及び訂正されたデート(コード)を書き込み、正しく書き込まれるかを検証する。
保留ページに、例えば、このページに有効な情報を含む、または使用中で消去しない他のファームウェアを示すビットを設定する。このビットは、本発明のシステムが中断された場合(例えば、ユーザーが電源をオフした後、操作を再開しようとする)にも有用である。
例えば、図4の操作ステップ210でエラーが検出されたページなどの元のフラッシュページを消去する。
保留されたフラッシュページからの訂正されたデータで元のフラッシュページを更新し、正しく書き込まれるかを検証する。
保留されたページを消去して、他のページのエラーを訂正するために将来そのページを使用できるようにする。
文字認証の失敗にメモリのチェックですぐに応答し、ターゲットメモリから読み取り中に文字認証の不一致が見つかった場合、プロセッサの次の実行シーケンスの前に上記のプロセスを実行する。
各集積回路がアクティブでない状態からウェイクアップされるイベントでトリガーされる。例えば、起動又はスリープ状態からアクティブ状態に変更した後、強力な認証を再計算し、事前計算された強力な認証のデータと比較し、再計算された強力な認証と事前計算された強力な認証との間に不一致が発生した場合、上記のエラー訂正メカニズムを有効にする。
場合によっては、強力な認証を再計算し、再計算の結果を事前計算された強力な認証と比較し、再計算された強力な認証と事前計算された強力な認証との間に不一致が発生した場合、本明細書で記載されるメモリエラー訂正のプロセスを有効にできる。トリガーは、例えば、上記の操作を実行するための時間的な指示を与えるいくつかのプログラム可能なタイマーを使用して実行できる。集積回路の正常の操作が妨害されて中断されるため、このメカニズムは通常、損失をもたらすが、より大きな保護を取得できる。
外部イベントによってトリガーされる。例えば、装置(集積回路とも呼ばれる)は、ハッカー攻撃又は他のいくつかの機能エラーの原因となる試みを認識した(例えば、ICに存在する可能性のあるハードウェアまたはファームウェアのハッカー検出機能を使用する)場合、強力な認証を再計算して、事前計算された強力な認証と比較し、再計算された強力な認証のデータと事前計算された強力な認証のデータとの間に不一致が存在した場合、本明細書で説明するメモリエラー訂正のプロセスを有効にできる。
メモリがアクセスされるたびにターゲットメモリ全体をチェックする。この実施例は、例えば頻繁に実行されないコードにとっては適切である。メモリへのアクセスが少なく、リアルタイムのデータ完全性が極めて重要である場合、パフォーマンスのオーバーヘッドが比較的重要ではない。
複数の文字が含まれるコードなどのコンテンツをメモリゾーンに入力する。各文字に対して、書き込み中に「文字認証データ(word auth)」を計算し、「文字認証データ」を文字に隣接して記憶する。
メモリコンテンツに対して「強力な認証」を実行し、結果をメモリのどこかに記憶し(例えば、強力な認証を実行する機能を備えたメモリイメージをオフラインで準備するエンティティなどによって事前に計算される)、セキュリティメモリアレイ2が常駐するICに提供される。
メモリの読み取りを含め、通常どおりメモリを使用する。各メモリの読み取りには、
次のものが含まれる。
訂正待ちコンテンツにエラー修正を実行する。当該訂正待ちコンテンツは、文字と、文字に関連する文字認証とを含む。文字と文字認証とは組み合わせである(例えば、順次の組み合わせ)ため、結合されたビットのストリングが提供される。エラー訂正は、全てのビットをスキャンすることと、結合されたビットのストリングにおける各ビット(ターゲットが1ビットエラーを訂正する場合)及び各ビットのペア(ターゲットが2ビットエラーを訂正する場合)の少なくとも一方をフリップし、文字認証データを再確認することとを含む。エラーが、文字に存在するではなく、文字認証データに存在する可能性があるため、メモリに記憶されたメモリ文字認証データと比較しない。代替的に、1ビットをフリップして、文字認証データを再計算し、再計算された文字認証を使用可能な文字認証データと比較する。例えば、Xビットの読み取りデータとYビットの認証データをメモリから読み取り、この組み合わせられた構造でビットをフリップする。フリップされたビットがXビットのデータにあると、訂正後のデータのXビットの認証を再計算し、再計算された認証データをメモリから読み取られたYビットの認証データと比較する。
このステップに入ると、通常、ビットフリップ(または2ビットエラーの場合にそのペアフリップ)が実行可能な訂正を生成しなかったため、文字レベルでエラー訂正が失敗した。従って、このメモリコンテンツを訂正不可能なメモリコンテンツにマークする。例えば、図1に示すようにより高いレベルのソフトウェアに警告し、システムを停止することで、プロセッサ1及びその組み合わせは(例えば、適切な出力指示を生成することにより)より高いレベルの回復を促すことができる。例えば、集積回路が取り付けられた装置をに送ってテクニカルサポートを行う。
「強力な認証」を行い、例えばメモリゾーン全体のHMACなどのダイジェストを計算して、強力な認証結果を生成する。通常、強力な認証は、ダイジェスト/ MAC /サインを生成する。
強力な認証結果を操作ステップ1002でメモリに記憶された事前計算の強力な認証結果と比較する。結果が等しい場合、強力な認証は一致である。それ以外の場合(等しくない)は、強力な認証は不一致である。
強力な認証は一致であり、訂正後にメモリコンテンツが合格であることを示す場合は、通常どおりこのメモリを使用し続ける。例えば、操作ステップ1003を実行する。
それ以外の場合、即ち、強力な認証は不一致である場合、例えば図8のような不一致プロセスを実行する。図8に示すように、操作ステップ10012における不一致プロセスの適切なフローは、以下の操作の全て又は適切に順序付けられた任意のサブセットを含んでも良い。また、次のように、エラー訂正機能によって制御または実現できる。
操作ステップ1006をやり直すことにより、図1のメモリアレイ2全体をスキャンするが、識別されたすべてのエラーを修正する。
操作ステップ1009〜10011をやり直すことにより、強力な認証をやり直す。
強力な認証が失敗した場合(つまり、不一致の場合)、訂正できないと想定して、より高いレベルの回復が必要になる場合がある。従って、このメモリコンテンツを訂正不可能なメモリコンテンツにマークする。例えば、図1に示すようにより高いレベルのソフトウェアに警告し、システムを停止することで、プロセッサ1及びその組み合わせは(例えば、適切な出力指示を生成することにより)より高いレベルの回復を促すことができる。例えば、集積回路が取り付けられた装置をに送ってテクニカルサポートを行う。
提案された訂正を推測し、提案された訂正を適用してから、強力な認証で訂正を検証する。これが失敗した場合は、再試行し、別の訂正を推測する。
提案された訂正を推測し、文字認証をチェックする。これが失敗した場合は、成功される文字認証を得るまで、別の提案された訂正を推測し、再び文字認証を使用してチェックする。この後、訂正される最終の検証として強力な認証を使用する。当該強力な認証は、文字認証がなくても使用できる。
(2)より大きいフラッシュ領域のオーバーヘッド(通常は無視できる)。
(3)SHA256−512 HMACは良い選択のようだ。
(1)より大きい領域のオーバーヘッド。
(2)より速い訂正時間。
(3)HASHが累積的である場合、つまりブート/サイクルランタイムを維持できる。即ち、コード全体に1つのHASHを使用する同時に、中間結果を保持して訂正プロセスをスピードアップする。
ターゲットメモリコンテンツの少なくとも一部の完全性を検証するために、ターゲットメモリ全体の少なくとも一部のビットフリップオプションのスキャンを含む強力な認証を呼び出すことを含む認証とエラー訂正を組み合わせる方法。
実施例(A)の方法によれば、スキャンは、ターゲットメモリ全体に対して実行される。
統計的訂正の実施例を有するオンザフライ「文字認証」は、実施例(A)の方法によれば、文字認証が使用され、特定の文字に認証エラーが検出された場合、ターゲットメモリ全体ではなく、特定の文字のみスキャンして、特定の文字を訂正しようとする。ペイロード文字が認証文字と一致する場合は、メモリコンテンツの完全性に対する最高の検証として、強力な認証を呼び出す。
2…メモリアレイ
6…ハードウェア
7…ファームウェア
10…集積回路
16…システム
18…ソフトウェア
Claims (27)
- メモリと、メモリコンテンツ認証機能ユニットと、エラー訂正機能ユニットとを含む集積回路と、
を備え、
前記メモリは、メモリコンテンツを記憶し、
前記メモリコンテンツ認証機能ユニットは、認証待ちメモリコンテンツと標準コンテンツとを比較し、前記認証待ちメモリコンテンツが前記標準コンテンツと同じである場合、「正しい」ことを出力し、前記認証待ちメモリコンテンツが前記標準コンテンツと同じではない場合、「正しくない」ことを出力し、
前記エラー訂正機能ユニットは、少なくとも1つの可能な訂正を前記メモリにおける少なくとも1つの誤りのある文字エンティティに適用して、正しいと思われる文字エンティティを生成し、前記メモリコンテンツ認証機能ユニットを呼び出して、文字認証を前記正しいと思われる文字エンティティに適用し、前記メモリコンテンツ認証機能ユニットの出力が「正しい」である場合、前記メモリにおける前記誤りのある文字エンティティを前記正しいと思われる文字エンティティに置き換えて、前記メモリコンテンツ認証機能ユニットに関連する信頼レベルから導出された信頼レベルでエラー訂正を生成することを特徴とする自己訂正メモリシステム。 - 前記メモリコンテンツ認証機能ユニットは、暗号化された強力な認証を実行するように作動することを特徴とする請求項1に記載の自己訂正メモリシステム。
- 前記メモリコンテンツ認証機能ユニットは、文字認証を実行するように作動することを特徴とする請求項2に記載の自己訂正メモリシステム。
- 前記エラー訂正機能ユニットは、
前記少なくとも1つの可能な訂正を前記メモリにおける少なくとも1つの誤りのある文字に適用して、正しいと思われる文字を生成し、
前記メモリコンテンツ認証機能ユニットを呼び出して、前記文字認証を前記正しいと思われる文字に適用し、
前記メモリコンテンツ認証機能ユニットの出力が「正しい」である場合、前記暗号化された強力な認証を呼び出して、前記正しいと思われる文字を含むメモリイメージ又はチャンク全体に適用し、
前記暗号化された強力な認証の出力が「正しい」である場合、前記メモリにおける前記少なくとも1つの誤りのある文字を前記正しいと思われる文字に置き換えて、前記暗号化された強力な認証及び前記文字認証の少なくとも一方に関連する信頼レベルから導出された信頼レベルで前記エラー訂正を実行するように配置されることを特徴とする請求項3に記載の自己訂正メモリシステム。 - 前記文字認証を前記メモリにおける少なくとも1つの文字に適用することで、前記少なくとも1つの誤りのある文字を検出し、
「正しくない」の出力を生成する任意の文字は誤りがあると見なされ、「正しい」の出力を生成する任意の文字は誤りがないと見なされることを特徴とする請求項4に記載の自己訂正メモリシステム。 - 前記少なくとも1つの可能な訂正は、
前記誤りのある文字エンティティにおける少なくとも1ビットを0から1にまたは1から0にフリップすることを含むことを特徴とする請求項1に記載の自己訂正メモリシステム。 - 前記可能な訂正が複数の誤りのある文字に適用されて、前記複数の正しいと思われる文字を生成し、それに、前記暗号化された強力な認証を何度も呼び出して前記複数の正しいと思われる文字をそれぞれ含む複数のメモリイメージ又はチャンクに適用するのではなく、前記暗号化された強力な認証を一度呼び出して訂正されたメモリイメージ又はチャンクに適用して、前記訂正されたメモリイメージ又はチャンクにおける全ての前記複数の誤りのある文字をそれぞれ前記正しいと思われる文字に置換して、メモリ及び訂正時間の少なくとも一方を節約することを特徴とする請求項2に記載の自己訂正メモリシステム。
- 第1の可能な訂正及び第2の可能な訂正は、少なくとも1つの誤りのある文字に適用され、前記第1の可能な訂正で前記誤りのある文字におけるフリップされた任意のビットは、前記第2の可能な訂正が前記誤りのある文字に適用される前にフリップされないため、前記第2の可能な訂正を同じ前記誤りのある文字に適用する前に、前記誤りのある文字の前記第1の可能な訂正を元に戻すことを特徴とする請求項1に記載の自己訂正メモリシステム。
- 全ての前記可能な訂正が前記少なくとも1つの誤りのある文字に適用されることを特徴とする請求項8に記載の自己訂正メモリシステム。
- 全ての前記可能な訂正が適用される前記誤りのある文字は、
全ての前記可能な訂正が前記誤りのある文字に適用されても、正しい文字認証を生成できない訂正不可能と見なされる誤りのある文字を含むことを特徴とする請求項9に記載の自己訂正メモリシステム。 - 全ての前記可能な訂正より少ない訂正を含む前記可能な訂正のサブセットを判定するために、少なくとも1つのヒューリスティック法を採用し、
前記サブセットには,正しい前記文字認証をもたらす前記可能な訂正がなくても、前記サブセットにおける前記可能な訂正が前記少なくとも1つの誤りのある文字に適用されることを特徴とする請求項8に記載の自己訂正メモリシステム。 - 前記メモリコンテンツと前記標準コンテンツとを比較して認証する前記メモリコンテンツ認証機能ユニットは、時点t2で特定のメモリ位置に記憶される前記メモリコンテンツに前記暗号化された強力な認証を適用して、計算された認証値を生成し、且つ前記計算された認証値と期待される認証値とを比較し、
前記時点t2よりも前の時点t1で、前記メモリコンテンツの信頼性が正しいと判定された場合、前記暗号化された強力な認証を前記特定のメモリ位置における前記メモリコンテンツに適用して、前記期待される認証値を生成することを特徴とする請求項2に記載の自己訂正メモリシステム。 - 前記エラー訂正機能ユニットは、少なくとも1つの可能な訂正を前記メモリにおける少なくとも1つの誤りのある文字に適用し、1つの正しいと思われる文字を生成し、前記メモリコンテンツ認証機能ユニットを呼び出して、前記正しいと思われる文字に認証を適用し、前記メモリコンテンツ認証機能ユニットの出力が「正しい」である場合、前記メモリにおける前記誤りのある文字を前記正しいと思われる文字に置換することを特徴とする請求項1に記載の自己訂正メモリシステム。
- 前記エラー訂正機能ユニットは、少なくとも1つの可能な訂正を少なくとも1つの誤りのある文字エンティティの文字認証に適用し、1つの正しいと思われる文字エンティティを生成し、前記メモリコンテンツ認証機能ユニットを呼び出して、前記正しいと思われる文字エンティティに認証を適用し、前記メモリコンテンツ認証機能ユニットの出力が「正しい」である場合、前記メモリにおける前記誤りのある文字エンティティの文字認証を前記正しいと思われる文字エンティティの文字認証に置換することを特徴とする請求項1に記載の自己訂正メモリシステム。
- 前記時点t1は、前記メモリのファームウェア更新が発生した時点であることを特徴とする請求項12に記載の自己訂正メモリシステム。
- 前に順序付けられた前記能な訂正が後に順序付けられた前記能な訂正よりも事前に訂正される可能性が高くなって、所望の合計修正時間を短縮するように、少なくとも1つのヒューリスティック法を採用して、前記可能な訂正が順序付けられることを特徴とする請求項1に記載の自己訂正メモリシステム。
- 集積回路のターゲットメモリに常駐するメモリコンテンツにエラー訂正機能を提供する方法であって、
前記ターゲットメモリに常駐する前記メモリコンテンツのエラーを検出することと、
それぞれが前記エラーの可能な訂正からなる少なくともいくつかのビット置換によって、少なくとも1つのオンザフライシグネチャマッチを検索して、強力な認証を成功させる提案の訂正を定義することと、
前記少なくとも1つのオンザフライシグネチャマッチを見つけると、前記提案された訂正の最終検証として全体的な認証を使用することと、
前記最終検証に成功すると、パワーフェイルセーフコードリカバリ更新プロセスを使用して、前記エラーを訂正するため、前記ターゲットメモリにエラー訂正を提供して、前記ターゲットメモリをラボに持ち込む必要がないことと、
を含むことを特徴とする方法。 - メモリの訂正ニーズの出力指示を提供し、前記メモリコンテンツの訂正が既に失敗した場合、出力指示は、前記少なくとも1つのターゲットメモリをラボに持ち込んで、完全に再プログラミングするように指示することとを更に含むことを特徴とする請求項17に記載の方法。
- 前記出力指示を提供する前に、前記検索は前記エラーのシングルビット置換のみに対して実行されることを特徴とする請求項18に記載の方法。
- 前記出力指示を提供する前に、前記検索は前記エラーの全てのシングルビット置換及びダブルビット置換に対して実行されることを特徴とする請求項18に記載の方法。
- 前記出力指示を提供する前に、前記検索は前記エラーの全てのシングルビット置換に対して実行され、前記少なくとも1つのオンザフライシグネチャマッチを見つけないと、今回の前記検索は前記エラーの少なくともいくつかのダブルビット置換に対して再度実行されることを特徴とする請求項18に記載の方法。
- 前記検出の前に、前記強力な認証を一度実行し及びオンザフライの文字認証を実行して、前記ターゲットメモリに常駐する前記メモリコンテンツを保護することとを更に含むことを特徴とする請求項17に記載の方法。
- 前記強力な認証は、前記集積回路がアクティブでない状態からウェイクアップされた直後に実行される前記強力な認証を含むことを特徴とする請求項22に記載の方法。
- 前記強力な認証は、前記集積回路の起動の直後に実行される前記強力な認証を含むことを特徴とする請求項23に記載の方法。
- 前記強力な認証は、前記集積回路がスリープ状態を終了した直後に実行される前記強力な認証を含むことを特徴とする請求項23に記載の方法。
- 前記メモリコンテンツは、前記ターゲットメモリに記憶されたコードを含むことを特徴とする請求項23に記載の方法。
- 前記出力指示を提供する前に、前記検索は前記エラーのシングルビット置換に対して何度も実行されることを特徴とする請求項18に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/423,676 US11475170B2 (en) | 2019-05-28 | 2019-05-28 | System and method for correction of memory errors |
US16/423,676 | 2019-05-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020195134A true JP2020195134A (ja) | 2020-12-03 |
JP7160860B2 JP7160860B2 (ja) | 2022-10-25 |
Family
ID=73506215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020093658A Active JP7160860B2 (ja) | 2019-05-28 | 2020-05-28 | メモリエラーを訂正するためのシステム及び方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11475170B2 (ja) |
JP (1) | JP7160860B2 (ja) |
CN (1) | CN112015582B (ja) |
TW (1) | TWI748419B (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007515708A (ja) * | 2003-11-19 | 2007-06-14 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 携帯端末内のデータ更新方法 |
JP2014191372A (ja) * | 2013-03-26 | 2014-10-06 | Mega Chips Corp | 不揮発性記憶システム、不揮発性記憶装置、メモリコントローラ、および、プログラム |
US20180189132A1 (en) * | 2017-01-04 | 2018-07-05 | Samsung Electronics Co., Ltd. | Memory apparatus for in-chip error correction |
US20190043600A1 (en) * | 2017-08-03 | 2019-02-07 | Arm Ltd | Memory organization for security and reliability |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100751199B1 (ko) * | 1999-07-06 | 2007-08-22 | 소니 가부시끼 가이샤 | 관리 장치 및 데이터 처리 장치 |
US7403952B2 (en) * | 2000-12-28 | 2008-07-22 | International Business Machines Corporation | Numa system resource descriptors including performance characteristics |
US6838331B2 (en) | 2002-04-09 | 2005-01-04 | Micron Technology, Inc. | Method and system for dynamically operating memory in a power-saving error correction mode |
CA2447204C (en) | 2002-11-29 | 2010-03-23 | Memory Management Services Ltd. | Error correction scheme for memory |
US20050283566A1 (en) * | 2003-09-29 | 2005-12-22 | Rockwell Automation Technologies, Inc. | Self testing and securing ram system and method |
US20060256615A1 (en) | 2005-05-10 | 2006-11-16 | Larson Thane M | Horizontal and vertical error correction coding (ECC) system and method |
US7681109B2 (en) | 2005-10-13 | 2010-03-16 | Ramot At Tel Aviv University Ltd. | Method of error correction in MBC flash memory |
DE102006003146B4 (de) | 2006-01-23 | 2016-05-12 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Auslesen eines Datenwortes und Vorrichtung und Verfahren zum Speichern eines Datenblocks |
KR100842680B1 (ko) | 2007-01-08 | 2008-07-01 | 삼성전자주식회사 | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 |
KR100813630B1 (ko) | 2007-02-07 | 2008-03-14 | 삼성전자주식회사 | 독출 성능을 향상할 수 있는 플래시 메모리 시스템 및그것의 독출 방법 |
US7626868B1 (en) | 2007-05-04 | 2009-12-01 | Flashsilicon, Incorporation | Level verification and adjustment for multi-level cell (MLC) non-volatile memory (NVM) |
FR2917920B1 (fr) * | 2007-06-22 | 2009-10-09 | Centre Nat Rech Scient | Procede d'authentification utilisant un decodage de code correcteur d'erreurs a partir d'une matrice publique |
US9152496B2 (en) | 2007-12-21 | 2015-10-06 | Cypress Semiconductor Corporation | High performance flash channel interface |
WO2009151703A2 (en) * | 2008-03-18 | 2009-12-17 | Clevx, Llc | Computing input system with secure storage and method of operation thereof |
US8456919B1 (en) | 2011-11-10 | 2013-06-04 | Sandisk Technologies Inc. | Method and apparatus to provide data including hard bit data and soft bit data to a rank modulation decoder |
US8730723B2 (en) | 2012-03-12 | 2014-05-20 | Flashsilicon Incorporation | Structures and methods of high efficient bit conversion for multi-level cell non-volatile memories |
US9703945B2 (en) | 2012-09-19 | 2017-07-11 | Winbond Electronics Corporation | Secured computing system with asynchronous authentication |
US9225356B2 (en) * | 2012-11-12 | 2015-12-29 | Freescale Semiconductor, Inc. | Programming a non-volatile memory (NVM) system having error correction code (ECC) |
US9076557B2 (en) | 2012-11-19 | 2015-07-07 | Texas Instruments Incorporated | Read margin measurement in a read-only memory |
CN104756120B (zh) * | 2013-03-27 | 2019-04-23 | 爱迪德技术有限公司 | 存储和访问数据 |
US10055294B2 (en) | 2014-01-09 | 2018-08-21 | Sandisk Technologies Llc | Selective copyback for on die buffered non-volatile memory |
US9369282B2 (en) * | 2014-01-29 | 2016-06-14 | Red Hat, Inc. | Mobile device user authentication for accessing protected network resources |
IL231550A0 (en) | 2014-03-17 | 2014-08-31 | Nuvoton Technology Corp | Saving secure information in external memory |
US9438590B2 (en) * | 2014-05-23 | 2016-09-06 | Fujitsu Limited | Privacy preserving biometric authentication based on error correcting codes |
KR20150143150A (ko) * | 2014-06-13 | 2015-12-23 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 |
US9438417B2 (en) * | 2014-08-12 | 2016-09-06 | Robert Bosch Gmbh | System and method for shared key agreement over untrusted communication channels |
US10594491B2 (en) * | 2015-12-24 | 2020-03-17 | Intel Corporation | Cryptographic system memory management |
US9990249B2 (en) * | 2015-12-24 | 2018-06-05 | Intel Corporation | Memory integrity with error detection and correction |
US10432232B2 (en) | 2016-03-04 | 2019-10-01 | Sandisk Technologies Llc | Multi-type parity bit generation for encoding and decoding |
US10725860B2 (en) | 2016-03-04 | 2020-07-28 | Sandisk Technologies Llc | Storage system and method for handling a burst of errors |
JP6794297B2 (ja) * | 2016-05-25 | 2020-12-02 | ヌヴォトンテクノロジージャパン株式会社 | 認証装置および認証方法 |
US10026488B2 (en) | 2016-08-18 | 2018-07-17 | Sandisk Technologies Llc | Non-volatile memory with read disturb detection for open blocks |
KR20180022175A (ko) | 2016-08-23 | 2018-03-06 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
US10248484B2 (en) | 2017-02-21 | 2019-04-02 | Intel Corporation | Prioritized error-detection and scheduling |
-
2019
- 2019-05-28 US US16/423,676 patent/US11475170B2/en active Active
-
2020
- 2020-04-21 TW TW109113285A patent/TWI748419B/zh active
- 2020-05-28 JP JP2020093658A patent/JP7160860B2/ja active Active
- 2020-05-28 CN CN202010469167.8A patent/CN112015582B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007515708A (ja) * | 2003-11-19 | 2007-06-14 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 携帯端末内のデータ更新方法 |
JP2014191372A (ja) * | 2013-03-26 | 2014-10-06 | Mega Chips Corp | 不揮発性記憶システム、不揮発性記憶装置、メモリコントローラ、および、プログラム |
US20180189132A1 (en) * | 2017-01-04 | 2018-07-05 | Samsung Electronics Co., Ltd. | Memory apparatus for in-chip error correction |
US20190043600A1 (en) * | 2017-08-03 | 2019-02-07 | Arm Ltd | Memory organization for security and reliability |
Also Published As
Publication number | Publication date |
---|---|
TWI748419B (zh) | 2021-12-01 |
CN112015582B (zh) | 2024-03-12 |
TW202046334A (zh) | 2020-12-16 |
CN112015582A (zh) | 2020-12-01 |
US11475170B2 (en) | 2022-10-18 |
US20200380173A1 (en) | 2020-12-03 |
JP7160860B2 (ja) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8281229B2 (en) | Firmware verification using system memory error check logic | |
JP6373888B2 (ja) | 情報処理装置及び制御方法 | |
US7401234B2 (en) | Autonomous memory checker for runtime security assurance and method therefore | |
US20210149681A1 (en) | Secure Firmware Management with Hierarchical Boot Sequence using Last Known Good Firmware | |
JP7113115B2 (ja) | シリコンデバイスファームウェア上のロールバック攻撃を防止するセキュリティシステム、および、方法 | |
US11960632B2 (en) | Data attestation in memory | |
US20200410097A1 (en) | Confirming a version of firmware loaded to a processor-based device | |
CN109445705B (zh) | 固件认证方法及固态硬盘 | |
CN112685338A (zh) | 包括安全可修补rom的半导体装置及其修补方法 | |
TWI760752B (zh) | 應用加速驗證映像檔方法的系統 | |
CN113486360B (zh) | 基于risc-v的安全启动方法及系统 | |
JP7038185B2 (ja) | レジスタ内容のインテグリティを検証するシステム、および、その方法 | |
EP3454216B1 (en) | Method for protecting unauthorized data access from a memory | |
JP6622360B2 (ja) | 情報処理装置 | |
US20180204006A1 (en) | Fast authentication of code in a low-power system | |
JP2020195134A (ja) | メモリエラーを訂正するためのシステム及び方法 | |
WO2016024967A1 (en) | Secure non-volatile random access memory | |
CN111695164B (zh) | 电子设备及其控制方法 | |
JP7097407B2 (ja) | ビットエラー修正の試行錯誤を優先順位付けるためのシステムおよび方法 | |
US20230129942A1 (en) | Method for locking a rewritable non-volatile memory and electronic device implementing said method | |
US20240152284A1 (en) | Storage controller and method of providing firmware image | |
CN117935894A (zh) | 安全计算机存储器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200528 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210622 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210629 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210928 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220215 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220512 |
|
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: 20220913 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221013 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7160860 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |