[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2008524754A - Memory system having in-stream data encryption / decryption and error correction functions - Google Patents

Memory system having in-stream data encryption / decryption and error correction functions Download PDF

Info

Publication number
JP2008524754A
JP2008524754A JP2007548490A JP2007548490A JP2008524754A JP 2008524754 A JP2008524754 A JP 2008524754A JP 2007548490 A JP2007548490 A JP 2007548490A JP 2007548490 A JP2007548490 A JP 2007548490A JP 2008524754 A JP2008524754 A JP 2008524754A
Authority
JP
Japan
Prior art keywords
data
circuit
cell
buffer
data stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007548490A
Other languages
Japanese (ja)
Other versions
JP2008524754A5 (en
Inventor
ホルツマン,マイケル
ビー. コーエン,バルク
イスラム,ムハンマド,アール.
デヴィッドソン,マシュー
Original Assignee
サンディスク コーポレーション
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
Priority claimed from US11/313,447 external-priority patent/US20060239450A1/en
Priority claimed from US11/313,428 external-priority patent/US8396208B2/en
Application filed by サンディスク コーポレーション filed Critical サンディスク コーポレーション
Publication of JP2008524754A publication Critical patent/JP2008524754A/en
Publication of JP2008524754A5 publication Critical patent/JP2008524754A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Storage Device Security (AREA)

Abstract

全てのコントローラとの最小の関与で、データストリーム中のデータのエラー訂正を暗号化処理する場合、メモリシステムの処理能力が改善される。メモリーセルからのデータを読み出す時にエラー訂正を行うために、回路によって実行する全ての暗号化処理の前に、セルと暗号化回路の間を通過するデータストリーム中のデータのビットエラーを訂正する。好ましくは、複数のバッファを使用することで待ち時間が減少する場合、暗号化回路とメモリ間のデータをバッファするために使用した一つ以上のバッファでエラー訂正が起こる。
【選択図】 図2
When encrypting error correction of data in a data stream with minimal involvement with all controllers, the processing capacity of the memory system is improved. In order to perform error correction when reading data from the memory cell, the bit error of the data in the data stream passing between the cell and the encryption circuit is corrected before any encryption processing performed by the circuit. Preferably, when latency is reduced by using multiple buffers, error correction occurs in one or more buffers used to buffer data between the encryption circuit and the memory.
[Selection] Figure 2

Description

本発明は概してメモリシステムに関し、詳細にはイン-ストリームデータの暗号化/復号およびエラー訂正の機能を有するメモリシステムに関する。   The present invention generally relates to a memory system, and more particularly to a memory system having functions of encryption / decryption and error correction of in-stream data.

モバイル機器市場は、より多くのデータ交換を発生させることにより平均収益の増加を図るよう、コンテンツ保存機能を含む方向に発展している。これは、そのコンテンツがモバイル機器に保存されている時保護されねばならない、ことを意味する。   The mobile device market is evolving to include content storage functions to increase average revenue by generating more data exchanges. This means that the content must be protected when stored on the mobile device.

従来、ポータブル記憶装置は商業用に使用されている。それはデータを一つのコンピュータ機器から別のコンピュータ機器に伝送する、あるいはバックアップ・データを保存する、ものである。ポータブル・ハードディスクドライブと、ポータブル・フラッシュメモリ・ディスクおよびフラッシュメモリ・カードのような最新のポータブル記憶装置は、保存管理の制御用マイクロプロセッサを含む。   Traditionally, portable storage devices are used commercially. It transmits data from one computer device to another or stores backup data. Modern portable storage devices such as portable hard disk drives and portable flash memory disks and flash memory cards include a microprocessor for storage management control.

ポータブル記憶装置に保存されたコンテンツを保護するために、保存されたデータは通常、暗号化され、許可されたユーザだけがデータを復号することが許される。   In order to protect content stored on a portable storage device, the stored data is typically encrypted and only authorized users are allowed to decrypt the data.

ポータブル記憶装置に保存されたデータにはビットエラーがあり得るので、エラー訂正を用いることが望ましい。現行のエラー訂正用の仕組みは暗号化能力を備えたポータブル記憶装置との互換性がないかもしれない。従って、そのような困難を緩和する、改善された局所的な記憶装置を提供することが望ましい。   Since data stored in portable storage devices can have bit errors, it is desirable to use error correction. Current error correction mechanisms may not be compatible with portable storage devices with encryption capabilities. Accordingly, it would be desirable to provide an improved local storage device that alleviates such difficulties.

メモリーセルに保存されるデータは、多くの原因でエラーを含んでいる場合がある。従って、メモリーセルからのデータを読み出す場合、エラー訂正を行うのが普通である。エラー訂正では、さらにデータ・ストリーム中のエラーの位置を検知することもある。回路によって実行された暗号化処理は、データストリーム中のビットの位置を変える場合があるので、もし、そのような処理が行われる時に、データストリーム中のビットエラーが修正されてしまっていないと、該処理後にはビットエラーの位置情報はもはや正確ではなくなるから、暗号化処理が行われた後では、エラー訂正はもはや可能でなくなるかもしれない。従って、本発明の一態様は、回路によって実行される全ての暗号化処理の前に、セルと暗号化回路の間を通過するデータストリーム中のデータのビットエラーを修正することが好ましい、という認識に基づいているものである。好ましくは、少なくとも1つのバッファを用いてセルと回路の間を通過するデータストリーム中のデータを保存し、データを回路によって暗号化処理する前に、そのバッファに保存されセルから始まるデータ中の全てのエラーが修正されることである。   Data stored in memory cells can contain errors for many reasons. Therefore, error correction is usually performed when reading data from the memory cell. Error correction may also detect the location of the error in the data stream. The encryption process performed by the circuit may change the position of the bits in the data stream, so if such processing is done, the bit error in the data stream has not been corrected, After the process, the position information of the bit error is no longer accurate, and after the encryption process is performed, error correction may no longer be possible. Accordingly, it is recognized that one aspect of the present invention preferably corrects bit errors in data in a data stream passing between the cell and the encryption circuit prior to any encryption processing performed by the circuit. It is based on. Preferably, at least one buffer is used to store the data in the data stream passing between the cell and the circuit, and all of the data stored in the buffer and starting from the cell is encrypted before the data is encrypted by the circuit. The error is to be fixed.

本発明の様々な態様が実施され得るメモリシステムのひとつの例を図1のブロック図に示す。図1に示されるように、メモリシステム10は、中央処理装置(CPU)12、バッファ管理ユニット(BMU)14、ホストインターフェースモジュール(HIM)16とフラッシュインターフェースモジュール(FIM)18、フラッシュメモリ20、および周辺アクセスモジュール(PAM)22を含む。メモリシステム10は、ホストインターフェースバス26およびポート26aを通してホスト装置24と通信する。NAND型でもよいフラッシュメモリ20は、ホスト装置24用のデータ記憶装置を提供する。又、CPU12用のソフトウェアコード(code)もフラッシュメモリ20に保存してよい。FIM18は、フラッシュインターフェースバス28およびポート28aを通してフラッシュメモリ20に接続している。HIM16は、例えばデジタルカメラ、パソコン、PDA(Personal Digital Assistant)、デジタルメディアプレーヤー、MP−3プレーヤーおよび携帯電話あるいは他のデジタル装置のようなホストシステムに接続されるのに適している。周辺アクセスモジュール22は、CPU12との通信用に、FIM、HIMおよびBMUのような適切なコントローラモジュールを選択する。一つの実施例では、点線で囲む枠内のシステム10の全ての構成部品をメモリカードあるいはスティック10’のような単一ユニットに封入し、好ましくはカードあるいはスティック中に密閉しても良い。   One example of a memory system in which various aspects of the present invention may be implemented is shown in the block diagram of FIG. As shown in FIG. 1, the memory system 10 includes a central processing unit (CPU) 12, a buffer management unit (BMU) 14, a host interface module (HIM) 16 and a flash interface module (FIM) 18, a flash memory 20, and A peripheral access module (PAM) 22 is included. Memory system 10 communicates with host device 24 through host interface bus 26 and port 26a. The flash memory 20, which may be a NAND type, provides a data storage device for the host device 24. Also, software code (code) for the CPU 12 may be stored in the flash memory 20. The FIM 18 is connected to the flash memory 20 through the flash interface bus 28 and the port 28a. The HIM 16 is suitable for connection to a host system such as, for example, a digital camera, a personal computer, a PDA (Personal Digital Assistant), a digital media player, an MP-3 player, and a mobile phone or other digital device. Peripheral access module 22 selects an appropriate controller module, such as FIM, HIM, and BMU, for communication with CPU 12. In one embodiment, all components of the system 10 within the frame enclosed by the dotted line may be enclosed in a single unit, such as a memory card or stick 10 ', and preferably enclosed in a card or stick.

バッファ管理ユニット14は、ホストダイレクトメモリアクセス(HDMA)32、フラッシュダイレクトメモリアクセス(FDMA)コントローラ34、アービタ36、バッファランダムアクセスメモリ(BRAM)38および暗号化エンジン(Crypto−Engine)40を含む。アービタ36は共有バスアービタであるので、どんな時でも、ただ一つのマスタあるいはイニシエータ(HDMA32あるいはFDMA34あるいはCPU12である得る)だけがアクティブになることができ、スレーブまたはターゲットはBRAM38である。アービタは、適切なイニシエータの要求をBRAM38に伝送する役割を果たす。HDMA32とFDMA34は、HIM16、FIM18と、BRAM38との間あるいはCPU ランダムアクセスメモリ(CPU RAM)12aとの間に運ばれたデータに役割を果たす。HDMA32およびFDMA34の作動は従来通りで、ここに詳述する必要はない。BRAM38は、ホスト装置24、フラッシュメモリ20およびCPU RAM 12aの間で通過したデータをバッファするのに使用される。HDMA32とFDMA34は、HIM16/FIM18と、BRAM38との間あるいはCPU RAM 12aとの間にデータを転送し、セクター転送完了を指示する役割を果たす。以下に説明するように、FIM18は更に、フラッシュメモリ20から読み出されたデータ中のエラーを検知し、エラーを発見するとCPU12に知らせる能力を持っている。   The buffer management unit 14 includes a host direct memory access (HDMA) 32, a flash direct memory access (FDMA) controller 34, an arbiter 36, a buffer random access memory (BRAM) 38, and an encryption engine (Crypto-Engine) 40. Since arbiter 36 is a shared bus arbiter, only one master or initiator (which can be HDMA 32 or FDMA 34 or CPU 12) can be active at any time, and the slave or target is BRAM 38. The arbiter is responsible for transmitting the appropriate initiator request to the BRAM 38. The HDMA 32 and FDMA 34 play a role in data carried between the HIM 16 and FIM 18 and the BRAM 38 or between the CPU random access memory (CPU RAM) 12a. The operation of HDMA 32 and FDMA 34 is conventional and need not be detailed here. The BRAM 38 is used to buffer data passed between the host device 24, the flash memory 20, and the CPU RAM 12a. The HDMA 32 and the FDMA 34 transfer data between the HIM 16 / FIM 18 and the BRAM 38 or the CPU RAM 12a, and play a role of instructing the completion of sector transfer. As will be described below, the FIM 18 further has a capability of detecting an error in data read from the flash memory 20 and notifying the CPU 12 when an error is found.

フラッシュメモリ20からのデータをホスト装置24によって読み出す場合、最初、メモリ20中の暗号化されたデータがバス28、FIM18、FDMA34、暗号化データを復号するクリプト(暗号)エンジン40を通して取出され、そこで暗号化データが復号されBRAM38に保存される。復号されたデータは、その後BRAM38からHDMA32、HIM16、バス26を通してホスト装置24に送られる。メモリ20に保存されたデータが復号されたキー及び/又はアルゴリズムと比べて異なるきキー及び/またはアルゴリズムによって、ホスト装置24に送られるデータが再び暗号化されるように、BRAM 38からフェッチされたデータは、HDMA32に送られる前に、クリプトエンジン40によって再び暗号化することができる。好ましくは、かつ代わりの態様では、上記のプロセスにて復号されたデータをBRAM38に保存して、そのデータが許可されていないアクセスに攻撃され得ることよりは、メモリ20からのデータは、BRAM38に伝送される前に、暗号化エンジン40によって復号し、再暗号化してもよい。BRAM38中の暗号化されたデータは、その後、前述したように、ホスト装置24へ伝送される。これが読み出し処理中のデータストリームの説明である。   When data from the flash memory 20 is read by the host device 24, the encrypted data in the memory 20 is first retrieved through the bus 28, FIM 18, FDMA 34, and the crypto engine 40 that decrypts the encrypted data. The encrypted data is decrypted and stored in the BRAM 38. The decrypted data is then sent from the BRAM 38 to the host device 24 through the HDMA 32, the HIM 16, and the bus 26. The data stored in the memory 20 is fetched from the BRAM 38 so that the data sent to the host device 24 is encrypted again with a different key and / or algorithm compared to the decrypted key and / or algorithm. The data can be encrypted again by the crypto engine 40 before being sent to the HDMA 32. Preferably, and in an alternative embodiment, the data from memory 20 is stored in BRAM 38 rather than storing the data decrypted in the above process in BRAM 38 and the data can be attacked by unauthorized access. Before being transmitted, it may be decrypted by the encryption engine 40 and re-encrypted. The encrypted data in the BRAM 38 is then transmitted to the host device 24 as described above. This is an explanation of the data stream being read.

データがホスト装置24によってメモリ20に書き込まれる場合は、データストリームの方向が逆になる。例えば、暗号化されていないデータをホスト装置によって、バス26、HIM16、HDMA32を経て暗号化エンジン40へ送る場合、これらのデータは、BRAM38に保存される前にエンジン40によって暗号化されてもよい。その代わりに、未暗号化データをBRAM38に保存してもよい。このデータは、その後、FDMA34に送られる前に、メモリ20へ行く途中で暗号化される。書き込まれたデータが多段の暗号化処理を経過する場合、処理済みデータをBRAM38に保存する前に、エンジン40が前記の処理を完了するのが好ましい。   When data is written to the memory 20 by the host device 24, the direction of the data stream is reversed. For example, if unencrypted data is sent by the host device via the bus 26, HIM 16 and HDMA 32 to the encryption engine 40, these data may be encrypted by the engine 40 before being stored in the BRAM 38. . Instead, unencrypted data may be stored in the BRAM 38. This data is then encrypted on the way to memory 20 before being sent to FDMA 34. When the written data passes through a multi-stage encryption process, the engine 40 preferably completes the process before storing the processed data in the BRAM 38.

図1のメモリシステム10においてフラッシュメモリが含まれるが、このシステムは、その代わりに、例えば磁気ディスク、光ディスクCD並びに、他のすべてのタイプの書き換え可能な不揮発性メモリシステムのような、他のタイプの不揮発性メモリをさらに含んでもよく、上記の様々な利点は、このもう一つの実施例にも同様に適用できる。このもう一つの実施例では、このメモリも、メモリシステムの残りの構成部品と共に、同じ筺体(メモリカードやメモリースティックのような)中に密閉されるのが好ましい。   Although flash memory is included in the memory system 10 of FIG. 1, this system is instead replaced by other types, such as magnetic disks, optical discs CD, and all other types of rewritable non-volatile memory systems. The above-mentioned various advantages can be applied to this other embodiment as well. In this alternative embodiment, the memory is also preferably sealed in the same housing (such as a memory card or memory stick) along with the remaining components of the memory system.

《エラー訂正》
不揮発性の(例えばフラッシュ)メモリに保存されたデータは、不良化したりエラーを含んだりする可能性がある。この為、FIM18は、ビットストリーム中のエラーの位置を含めて、メモリ20からのデータストリームのどのビットがエラーを有しているかを検知するエラー訂正(ECC)回路102を有することができる。これは、本発明の他の態様を説明するためのメモリシステム100のブロック図である、図2に示されている。ビットストリームの中にエラーが検知された場合、FIM18はCPU12に割込み信号を送り、回路102はエラーのビットの位置に関する情報をCPU12に送る。暗号化機能を有していない従来のメモリシステムでは、エラーはBRAM38中でCPUによって訂正されている。しかし、データストリームからのデータがその訂正の前に先に暗号化処理された場合、暗号化処理は、処理したデータストリーム中のデータビットの位置および/又は値を変更させる可能性があるので、暗号化処理後のビットエラーの位置および/又は値は回路102によってCPU12に送られるものとは異なっている可能性がある。これは、暗号化処理されたデータがBRAM38に到着した時に、エラーを訂正することを不可能にする可能性がある。本発明の一態様は、この問題を防止するよう、データの暗号化処理の前に、検知されたエラーを訂正するという認識から発しているものである。
<Error correction>
Data stored in non-volatile (eg, flash) memory can be corrupted or contain errors. Thus, the FIM 18 can have an error correction (ECC) circuit 102 that detects which bits of the data stream from the memory 20 have errors, including the location of errors in the bitstream. This is shown in FIG. 2, which is a block diagram of a memory system 100 for illustrating another aspect of the present invention. If an error is detected in the bitstream, the FIM 18 sends an interrupt signal to the CPU 12 and the circuit 102 sends information about the position of the bit in error to the CPU 12. In a conventional memory system that does not have an encryption function, the error is corrected in the BRAM 38 by the CPU. However, if the data from the data stream was previously encrypted prior to its correction, the encryption process may change the position and / or value of the data bits in the processed data stream, so The position and / or value of the bit error after the encryption process may be different from that sent by the circuit 102 to the CPU 12. This may make it impossible to correct the error when the encrypted data arrives at the BRAM 38. One aspect of the present invention originates from the recognition of correcting detected errors prior to data encryption processing to prevent this problem.

エラーバッファユニット(EBU)104は、CPU12がデータストリームにエラーがある事を示す割り込みをFIM18から受け取った時CPUがBRAM38の代わりにエラーをEBU104で訂正するように、BMU14とFIM18の間を通過するデータストリームからのデータを保存するために使用される。デジタルデータを訂正するには、エラーのビットが、回路102によって検知されたエラーの位置で、単に「反転(flip)される」(つまり、“1”を“0”に、“0”を“1”に転換する)。   An error buffer unit (EBU) 104 passes between BMU 14 and FIM 18 so that when CPU 12 receives an interrupt from FIM 18 indicating that there is an error in the data stream, CPU corrects the error with EBU 104 instead of BRAM 38. Used to store data from the data stream. To correct the digital data, the bit of the error is simply “flipped” (ie, “1” to “0” and “0” to “0” at the location of the error detected by the circuit 102). 1 ”).

エラーが検知された時、データストリームの中に割り込みの回数を減らすために、図3に示すように、二つ以上のバッファをEBU104中で使用してもよい。図3に示すように、二つのバッファ104aおよび104bを使用し、二つのバッファのうちの一つはFIM18を通してメモリ20からデータを受け取り、他方はBMU14中のFDMA34を通してデータを暗号化エンジン40に送る。図3では、二つのスイッチ106aおよび106bが使用されている。図3に示すように、二つのスイッチが実線の位置にある場合、バッファ104aはBMU14にデータを供給しているが、バッファ104bはFIM18からデータを受け取っている。図3に示すように、二つのスイッチが点線の位置にある場合、バッファ104bはBMU14にデータを供給しているが、バッファ104aはFIM18からデータを受け取っている。バッファに保存されたデータをBMUに送る前に、先ずそれぞれのバッファをデータで満たすことができる。データが、バッファ104aおよび104bから送られる、あるいは、バッファ104aおよび104bによって受け取られる時に、CPUはバッファ104aおよび104b中のエラーを訂正する。この方法では、唯一の待ち時間は、データストリームの開始時に二つのバッファのうちの一つを満たすのに必要な時間だけである。その後には、エラー訂正にCPUがかける時間が、各バッファを満たすために必要とされる時間と比較して短かければ、エラーが回路102によって検知された時でも、データストリームに割り込みはない。   Two or more buffers may be used in the EBU 104 as shown in FIG. 3 to reduce the number of interrupts in the data stream when an error is detected. As shown in FIG. 3, two buffers 104a and 104b are used, one of the two buffers receives data from the memory 20 through the FIM 18, and the other sends the data to the encryption engine 40 through the FDMA 34 in the BMU 14. . In FIG. 3, two switches 106a and 106b are used. As shown in FIG. 3, when the two switches are in the solid line position, the buffer 104 a supplies data to the BMU 14, but the buffer 104 b receives data from the FIM 18. As shown in FIG. 3, when the two switches are in the dotted line position, the buffer 104 b is supplying data to the BMU 14, but the buffer 104 a is receiving data from the FIM 18. Before sending the data stored in the buffer to the BMU, each buffer can first be filled with data. When data is sent from or received by buffers 104a and 104b, the CPU corrects errors in buffers 104a and 104b. In this way, the only latency is the time required to fill one of the two buffers at the beginning of the data stream. Thereafter, if the time taken by the CPU for error correction is short compared to the time required to fill each buffer, there is no interruption in the data stream even when an error is detected by the circuit 102.

データ訂正の時間がバッファを満たすより長くかかる場合、エラーが検知された時だけ、データストリームが割り込まれるが、エラー検知がなかった時、データストリームは割り込みなしで流れる。EBU104とFDMA34の間で接続するバッファ空の信号(図示されていない)は、データストリームが割り込まれ、これ以上のデータが利用可能ではないと後者FDMA34へ知らせる。その後、FDMA34も暗号化エンジン40も一時停止し、データストリームが再開するのを待つ。   If the data correction takes longer than filling the buffer, the data stream is interrupted only when an error is detected, but when no error is detected, the data stream flows without interruption. A buffer empty signal (not shown) connecting between EBU 104 and FDMA 34 informs the latter FDMA 34 that the data stream has been interrupted and no more data is available. Thereafter, both the FDMA 34 and the encryption engine 40 are suspended and wait for the data stream to resume.

ホスト装置24がデータをメモリ20に書き込む時には、エラー訂正の必要がないと考えられるので、EBUをバイパスするのが望ましい。これはスイッチ108で達成され得る。スイッチ108を閉じると、HIM16(図2に完全に示されていない)からのデータは、単純に二つのバッファ104aおよび104bをバイパスする。データがメモリ20から読み出されるか、メモリ20に書き込まれる時に暗号化処理が必要でない場合も、スイッチ108はバイパスモードで閉じてもよい。このモードによれば、暗号化エンジン40がシステム10から除かれているかのように、HDMAとFDMAはアービタ36に直接接続され、データストリームはEBU104および暗号化エンジン40の両方をバイパスする。これもまた、スイッチを使用して達成され得る。従って、バイパスモードでは、CPU12の管理下でシステム100のロジック回路(図示されていない)は、データストリームにブロック40をバイパスさせ、スイッチ108を閉じさせる。   When the host device 24 writes data to the memory 20, it is considered that there is no need for error correction, so it is desirable to bypass the EBU. This can be accomplished with switch 108. When switch 108 is closed, data from HIM 16 (not fully shown in FIG. 2) simply bypasses the two buffers 104a and 104b. The switch 108 may also be closed in bypass mode if no encryption process is required when data is read from or written to the memory 20. According to this mode, the HDMA and FDMA are connected directly to the arbiter 36, as if the encryption engine 40 was removed from the system 10, and the data stream bypasses both the EBU 104 and the encryption engine 40. This can also be achieved using a switch. Thus, in bypass mode, under the control of the CPU 12, the logic circuitry (not shown) of the system 100 causes the data stream to bypass the block 40 and close the switch 108.

エラー訂正処理は、図4のフローチャートで示す。CPU12は、ホスト装置24(楕円150)から読み出しコマンドを受け取った後に読み出しオペレーションを始める。その後、適切なセキュリティ設定情報を用いて暗号化エンジン40を設定し、読み出しオペレーション用のBMU14、および例えばオペレーション用のBRAM38中でのメモリスペースの割り付け等のパラメーターを設定する(ブロック152、154)。CPU12はさらに、データが読まれることになるメモリ20中の位置を特定すること等で、FIM18を設定する(ブロック156)。その後、HDMAおよびFDMAエンジン32および34を開始する。ブロック158を参照。CPUが割り込みを受け取った場合、それがFIMの割り込みであるか否かをチェックする(菱形160)。FIMの割り込みを受け取った時、CPUはその割り込みが、データストリーム(162)中に一つ以上のエラーがあることを示す割り込みであるか否かを確認するためにチェックする(162)。もしもエラーが示された場合、CPUはバッファ104aおよび/又は104bのエラーの訂正に移行し(ブロック164)、そしてFIM18を設定することに戻り、データが次に読まれるメモリ20中の位置を変更する(ブロック156)。FIMの割り込みがデータストリーム中のエラーを示さない時は、FIMがそのオペレーションを完了したことを意味し、CPUもFIMを再設定し再起動するためにブロック156に戻る。CPUに検知された割り込みがFIMの割り込みでない場合、CPUはそれがデータの割り込みの終了であるか否かを確認するためにチェックする(菱形166)。そうである場合、読み出し操作は終了する(楕円168)。そうでない場合、この割り込みは、データの暗号化処理と無関係であり(つまりクロック割り込み)、CPUはそれ(図示されていない)点検し、割り込みがあるか否かをチェックするために菱形160に戻る。   The error correction process is shown in the flowchart of FIG. The CPU 12 starts a read operation after receiving a read command from the host device 24 (ellipse 150). Thereafter, the encryption engine 40 is set using appropriate security setting information to set parameters such as allocation of memory space in the BMU 14 for read operations and, for example, the BRAM 38 for operations (blocks 152, 154). The CPU 12 further sets the FIM 18, such as by identifying the location in the memory 20 from which data will be read (block 156). Thereafter, the HDMA and FDMA engines 32 and 34 are started. See block 158. If the CPU receives an interrupt, it checks whether it is a FIM interrupt (diamond 160). When an FIM interrupt is received, the CPU checks to see if the interrupt is an interrupt indicating that there is one or more errors in the data stream (162) (162). If an error is indicated, the CPU proceeds to correct errors in buffers 104a and / or 104b (block 164) and returns to setting FIM 18 to change the location in memory 20 where the data will be read next. (Block 156). If the FIM interrupt does not indicate an error in the data stream, it means that the FIM has completed its operation and the CPU also returns to block 156 to reconfigure and restart the FIM. If the interrupt detected by the CPU is not an FIM interrupt, the CPU checks to see if it is the end of the data interrupt (diamond 166). If so, the read operation ends (ellipse 168). Otherwise, this interrupt is unrelated to the data encryption process (ie, clock interrupt) and the CPU checks it (not shown) and returns to diamond 160 to check for interrupts. .

書き込み操作の場合には図4をわずかに修正するだけでよい。メモリ20に書き込まれるデータにはECCエラーの処理がないので、CPU12は書き込み操作で菱形162及びブロック164中のプロセスを省略することができる。書き込み操作中にFIMの割り込みがCPU12によって受け取られた場合、これは、FIMがその操作を完了したことを意味し、CPUもFIMを再設定するためにブロック156に戻る。この違いの他には、書き込み操作は実質的に読み出しオペレーションと同様である。   In the case of a write operation, only a slight modification of FIG. 4 is necessary. Since the data written in the memory 20 has no ECC error processing, the CPU 12 can omit the processes in the diamond 162 and the block 164 by the write operation. If a FIM interrupt is received by the CPU 12 during a write operation, this means that the FIM has completed the operation and the CPU also returns to block 156 to reset the FIM. Other than this difference, the write operation is substantially similar to the read operation.

本発明は様々な実施例を参照して上述したが、添付した請求項及びその等価物によって画定される本発明の範囲を逸脱することなく、変更および修正を行い得ることが理解できよう。ここに引用された文献はすべて参考のために示す。   While the invention has been described above with reference to various embodiments, it will be understood that changes and modifications can be made without departing from the scope of the invention as defined by the appended claims and their equivalents. All references cited here are for reference only.

図1は、本発明を説明するための、ホスト装置と通信するメモリシステムのブロック図である。FIG. 1 is a block diagram of a memory system that communicates with a host device for explaining the present invention. 図2は、図1の中のメモリシステムのいくつかのブロックのうちのひとつのブロック図である。FIG. 2 is a block diagram of one of several blocks of the memory system in FIG. 図3は、図2のエラー訂正バッファユニットの好ましい設定をより詳細に説明する回路図である。FIG. 3 is a circuit diagram illustrating in more detail a preferred setting of the error correction buffer unit of FIG. 図4は、本発明の一つの態様の好ましい実施例を説明するための、図2のシステムの作動を説明するフローチャートである。 記述上の便宜から、本出願では、同一の構成要素には同じ番号を付している。FIG. 4 is a flowchart illustrating the operation of the system of FIG. 2 to illustrate a preferred embodiment of one aspect of the present invention. For convenience of description, the same components are given the same numbers in this application.

Claims (10)

不揮発性のメモリセルおよび暗号化回路を含む、暗号化データ保存用のメモリシステム中のデータを訂正する方法であって、該方法は
前記セルからの、あるいは、前記セルへのデータストリーム中のデータに対して暗号化処理を実行するために、前記回路を使用することと、
前記セルと前記回路の間を通過する前記データストリーム中のデータを保存する、少なくとも一つのバッファを設けることと、
前記回路で前記データに対して暗号化処理を実行する前に、前記バッファに保存され前記セルから始まる前記データ中の全てのエラーを訂正することと、を含む方法。
A method for correcting data in a memory system for storing encrypted data, comprising a non-volatile memory cell and an encryption circuit, the method comprising data in a data stream from or to the cell Using the circuit to perform an encryption process on
Providing at least one buffer for storing data in the data stream passing between the cell and the circuit;
Correcting all errors in the data stored in the buffer and starting from the cell before performing an encryption process on the data in the circuit.
前記訂正が、前記セルから前記回路に向かう前記データストリーム中のデータ内の一つ以上のエラーの存在を示す信号に応じて、前記データが前記回路に到達する前に前記訂正が前記一つ以上のエラーを訂正するようになされる請求項1に記載の方法。   In response to a signal indicating the presence of one or more errors in the data stream in the data stream from the cell to the circuit, the correction is performed before the data reaches the circuit. The method of claim 1, wherein the method is adapted to correct an error. 前記システムが、前記セルと前記回路の間を通過する前記データストリーム中のデータを保存する二つのバッファを含み、前記方法がデータの保存および前記セルから前記回路へのデータ伝送を交互に行うために、その二つのバッファを使用することを更に含む、請求項2記載の方法。   The system includes two buffers for storing data in the data stream passing between the cell and the circuit, the method alternately storing data and transmitting data from the cell to the circuit; 3. The method of claim 2, further comprising using the two buffers. 前記使用は、前記二つのバッファの内の第二のバッファに保存したデータを前記回路に送る時、前記二つのバッファの内の第一のバッファにデータを保存する請求項3に記載の方法。   4. The method of claim 3, wherein the use stores data in a first buffer of the two buffers when sending data stored in a second buffer of the two buffers to the circuit. 暗号化されたデータを保存するメモリシステムであって、
不揮発性メモリセルと、
前記セルからの、あるいは、前記セルへのデータストリーム中のデータに対して暗号化処理を実行する回路と、
前記セルと前記回路の間を通過する前記データストリーム中のデータを保存する少なくとも一つのバッファと、
前記セルと、少なくとも一つの前記バッファと、前記回路とをコントロールして、前記バッファ内に保存したデータ中の全てのエラーを訂正し、前記回路がこのようなデータに対して前記暗号化処理を実行する前に前記セルから始まっているコントローラと、を含むメモリシステム。
A memory system for storing encrypted data,
A non-volatile memory cell;
A circuit that performs an encryption process on data in the data stream from or to the cell;
At least one buffer for storing data in the data stream passing between the cell and the circuit;
The cell, at least one buffer, and the circuit are controlled to correct all errors in the data stored in the buffer, and the circuit performs the encryption process on such data. A memory system comprising a controller starting from said cell before execution.
前記コントローラは、前記セルから前記回路に向かうことになっている前記データストリーム中のデータ内に一つ以上のエラーが存在することを示す信号に応じて、前記データが前記回路に到達する前に、その一つ以上のエラーを訂正する、請求項5に記載のシステム。   Before the data reaches the circuit in response to a signal indicating that there is one or more errors in the data in the data stream destined for the circuit from the cell. 6. The system of claim 5, wherein the one or more errors are corrected. 前記データストリーム中のエラーを検知し、前記データストリームに少なくとも一つのエラーがあることが検知される場合に、前記信号を前記コントローラに送らせるエラー訂正回路を更に含む、請求項6に記載のシステム。   7. The system of claim 6, further comprising an error correction circuit that detects an error in the data stream and causes the signal to be sent to the controller when it is detected that there is at least one error in the data stream. . 前記システムは、前記セルと前記回路の間を通過する前記データストリーム中のデータを保存する前記二つのバッファを含み、前記二つのバッファが交互にデータを保存し前記セルから前記回路へデータを送るように使用する、請求項5に記載のシステム。   The system includes the two buffers that store data in the data stream passing between the cell and the circuit, the two buffers alternately storing data and sending data from the cell to the circuit 6. The system according to claim 5, wherein the system is used as follows. 前記二つのバッファの内の第二のバッファに保存されたデータを前記回路に送る時に、前記二つのバッファの内の第一のバッファにデータを保存している、請求項8に記載のシステム。   9. The system of claim 8, wherein when the data stored in the second buffer of the two buffers is sent to the circuit, the data is stored in the first buffer of the two buffers. 前記コントローラは、バイパスモードでの代替バイパス経路において、前記データストリーム中のデータに前記バッファと前記回路をバイパスさせる、請求項5に記載のシステム。   The system of claim 5, wherein the controller causes data in the data stream to bypass the buffer and the circuit in an alternate bypass path in a bypass mode.
JP2007548490A 2004-12-21 2005-12-21 Memory system having in-stream data encryption / decryption and error correction functions Pending JP2008524754A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US63848504P 2004-12-21 2004-12-21
US11/313,447 US20060239450A1 (en) 2004-12-21 2005-12-20 In stream data encryption / decryption and error correction method
US11/313,428 US8396208B2 (en) 2004-12-21 2005-12-20 Memory system with in stream data encryption/decryption and error correction
PCT/US2005/046688 WO2006069273A2 (en) 2004-12-21 2005-12-21 Memory system with in stream data encryption/decryption and error correction

Publications (2)

Publication Number Publication Date
JP2008524754A true JP2008524754A (en) 2008-07-10
JP2008524754A5 JP2008524754A5 (en) 2008-10-30

Family

ID=36602336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007548490A Pending JP2008524754A (en) 2004-12-21 2005-12-21 Memory system having in-stream data encryption / decryption and error correction functions

Country Status (6)

Country Link
EP (1) EP1828898A2 (en)
JP (1) JP2008524754A (en)
KR (1) KR101254136B1 (en)
CN (1) CN101124545B (en)
TW (1) TWI391945B (en)
WO (1) WO2006069273A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008109611A (en) * 2006-09-29 2008-05-08 Fujitsu Ltd Encryption conversion apparatus, encryption conversion method and encryption conversion program
WO2011064883A1 (en) * 2009-11-27 2011-06-03 株式会社東芝 Memory chip
JP2012517628A (en) * 2009-02-09 2012-08-02 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, system, and computer program for quickly protecting NVS data in the event of a power loss

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321686B2 (en) 2005-02-07 2012-11-27 Sandisk Technologies Inc. Secure memory card with life cycle phases
US8423788B2 (en) 2005-02-07 2013-04-16 Sandisk Technologies Inc. Secure memory card with life cycle phases
US8108691B2 (en) 2005-02-07 2012-01-31 Sandisk Technologies Inc. Methods used in a secure memory card with life cycle phases
US7743409B2 (en) 2005-07-08 2010-06-22 Sandisk Corporation Methods used in a mass storage device with automated credentials loading
JP5017439B2 (en) * 2010-09-22 2012-09-05 株式会社東芝 Cryptographic operation device and memory system
KR102392844B1 (en) * 2017-03-10 2022-05-03 삼성전자주식회사 Memory controller and storage device including the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS642136A (en) * 1987-06-25 1989-01-06 Fujitsu Ltd System for controlling fifo buffer
JPH113284A (en) * 1997-06-10 1999-01-06 Mitsubishi Electric Corp Information storage medium and its security method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5438575A (en) * 1992-11-16 1995-08-01 Ampex Corporation Data storage system with stale data detector and method of operation
TWI223204B (en) * 2001-11-08 2004-11-01 Toshiba Corp Memory card, content transmission system, and content transmission method
CN1229940C (en) * 2002-04-30 2005-11-30 电子科技大学 Video/data broadcasting co-channel multi-flow transparent transmitting method
JP4118639B2 (en) * 2002-09-17 2008-07-16 株式会社リコー File management device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS642136A (en) * 1987-06-25 1989-01-06 Fujitsu Ltd System for controlling fifo buffer
JPH113284A (en) * 1997-06-10 1999-01-06 Mitsubishi Electric Corp Information storage medium and its security method

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008109611A (en) * 2006-09-29 2008-05-08 Fujitsu Ltd Encryption conversion apparatus, encryption conversion method and encryption conversion program
US8713328B2 (en) 2006-09-29 2014-04-29 Fujitsu Limited Code conversion apparatus, code conversion method, and computer product
JP2012517628A (en) * 2009-02-09 2012-08-02 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, system, and computer program for quickly protecting NVS data in the event of a power loss
US10133883B2 (en) 2009-02-09 2018-11-20 International Business Machines Corporation Rapid safeguarding of NVS data during power loss event
WO2011064883A1 (en) * 2009-11-27 2011-06-03 株式会社東芝 Memory chip
JP5178839B2 (en) * 2009-11-27 2013-04-10 株式会社東芝 Memory chip
US8473810B2 (en) 2009-11-27 2013-06-25 Kabushiki Kaisha Toshiba Memory chip having a security function and for which reading and writing of data is controlled by an authenticated controller
US8788907B2 (en) 2009-11-27 2014-07-22 Kabushiki Kaisha Toshiba Memory chip for converting data received from controller controlling reading and writing of data
US9053062B2 (en) 2009-11-27 2015-06-09 Kabushiki Kaisha Toshiba Memory chip for converting data received from controller controlling reading and writing of data
US9355045B2 (en) 2009-11-27 2016-05-31 Kabushiki Kaisha Toshiba Memory device for converting data received from controller controlling reading and writing of data

Also Published As

Publication number Publication date
KR20070087676A (en) 2007-08-28
EP1828898A2 (en) 2007-09-05
TW200641911A (en) 2006-12-01
CN101124545B (en) 2012-05-16
CN101124545A (en) 2008-02-13
KR101254136B1 (en) 2013-04-12
WO2006069273A2 (en) 2006-06-29
WO2006069273A3 (en) 2006-11-16
TWI391945B (en) 2013-04-01

Similar Documents

Publication Publication Date Title
KR101323746B1 (en) Memory System with In-Stream Data Encryption/Decryption
US6769087B2 (en) Data storage device and method for controlling the device
US20100058066A1 (en) Method and system for protecting data
US20060239450A1 (en) In stream data encryption / decryption and error correction method
US20080052537A1 (en) Storage device, write-back method, and computer product
US7835518B2 (en) System and method for write failure recovery
JP2008524754A (en) Memory system having in-stream data encryption / decryption and error correction functions
US8396208B2 (en) Memory system with in stream data encryption/decryption and error correction
CN112115076B (en) Encryption and decryption device and method for user data
US20080104368A1 (en) Storage element having data protection functionality
JP2007310601A (en) Microcomputer and method for protecting its software
JP2010165206A (en) Memory controller and nonvolatile storage device
JP5118494B2 (en) Memory system having in-stream data encryption / decryption function
JP2008524969A5 (en)
US12124618B2 (en) SoC architecture and data protection method thereof
US9058295B2 (en) Encrypt data of storage device
US7571368B1 (en) Digital content protection systems and methods
US20070230690A1 (en) System for write failure recovery
JP2001356964A (en) Ciphered data storage device
US20120310897A1 (en) Electronic device and information processing method
KR20080108119A (en) System and method for write failure recovery

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080910

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110614

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110909

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120207

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120426

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120508

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120605

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120612

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120618

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120807

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120904