JP2005327296A - メモリカード内の隠されたメモリを消去する方法及び装置 - Google Patents

メモリカード内の隠されたメモリを消去する方法及び装置 Download PDF

Info

Publication number
JP2005327296A
JP2005327296A JP2005142688A JP2005142688A JP2005327296A JP 2005327296 A JP2005327296 A JP 2005327296A JP 2005142688 A JP2005142688 A JP 2005142688A JP 2005142688 A JP2005142688 A JP 2005142688A JP 2005327296 A JP2005327296 A JP 2005327296A
Authority
JP
Japan
Prior art keywords
memory
block
bank
hidden
storage medium
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
JP2005142688A
Other languages
English (en)
Inventor
Hideki Yagi
秀規 八木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of JP2005327296A publication Critical patent/JP2005327296A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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/79Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups

Abstract

【課題】メモリカードからデータを安全に消去する方法、装置、ソフトウェア、およびシステムを提供する。
【解決手段】各メモリバンクのアクセス不可能な領域内のメモリの隠された代替ブロックの数が決定される。一つの実施例では、メモリのブロックが、隠された代替ブロックの数まで、各メモリバンク内のデータパターンを用いて繰り返し上書きされる。別の実施例では、メモリのブロックが、隠された代替ブロックの数まで、各メモリバンク内で繰り返し消去される。各メモリバンクのアクセス可能な領域内のメモリのブロックは、このデータパターンを用いて消去又は上書きされる。
【選択図】図1

Description

本発明は、一般に非揮発性メモリカードを消去することに関し、更に詳しくは、通常はホストシステムから隠されたSDメモリカード内のメモリを消去することに関する。
メモリカードは、例えばデジタルスチルカメラのような製品の市場が拡大し続けることにより、消費者によって幅広く使用されるようになってきた。例えばPCカード(登録商標)、コンパクトフラッシュ(登録商標)、スマートメディア(登録商標)、マルチメディアカード(MMC)(登録商標)、メモリスティック、メモリスティックプロ、セキュアデジタル(SD)メモリカード、xD−ピクチャカード(登録商標)のような様々な種類の利用可能なメモリカードが存在する。
メモリカードが始末されたり、又は別のパーティに渡される場合、その中にあるデータを如何にして消去するかが、データセキュリティの観点から重要な問題となる。すなわち、通常の手段によってメモリカードから消去されたデータは、内部メモリ内に未だに存在している。
メモリカード上に記録されたデータがもはや必要ではないとき、通常は、カードからデータを消去したように見える一般的「消去」動作が実行される。しかしながら、実際には、消去することによって、このデータを、例えばホストオペレーティングシステムからのように普通の手段からアクセスできないようにすることは稀である。このデータ自身は未だにメモリカードの内部メモリ内に存在する。従って、無法なユーザがメモリカード上に残された機密データを読み取り、それを予期しない方法で使用することは可能である。
更に、このカード内のデータは、例えば譲渡制限を持つライセンスされたプログラムのように、ライセンスされているかもしれない。中に格納されたライセンスされたプログラム(例えば、オペレーティングシステムソフトウェア、アプリケーションソフトウェア等)を消去せずに記憶装置を別のユーザに譲渡することは、ソフトウェアライセシング供給に違反する。
従って、メモリカード内のデータをより安全に消去することが望ましい。
以下の詳細記述で明らかにされる本発明の実施例は、一般に、メモリカードからデータを安全に消去する方法、装置、ソフトウェア、及びシステムに関する。
本発明の一つの実施例によれば、メモリカードを安全に消去する方法が提供される。この方法は、メモリカードの記憶媒体内の隠されたメモリ領域のサイズを決定し、隠されたメモリ領域に格納されたデータのブロックを消去する第一の命令を発行し、その後、隠されたメモリ領域のサイズに応じて、別のデータのブロックを消去するために第一の命令を繰り返し発行する。
本発明の別の実施例では、プロセッサ読取可能な記憶媒体が、ここに記録されたプログラムコードとともに提供され、メモリカード内の各メモリバンクの隠されたメモリ領域内の代替ブロックの数を決定する。このプログラムコードは、(i)各メモリバンクの隠されたメモリ領域内の代替ブロックの数に応じて、各メモリバンクの隠されたメモリ領域の代替ブロックに格納されたデータのブロックを消去する第一の命令を生成し、(ii)各メモリバンクのアクセス可能なメモリ領域内のデータのブロックを消去する第二の命令を生成するように作成される。
また、本発明の別の実施例では、フラッシュメモリカードと、ホストバスに接続され、プログラムを格納するメモリとを含むシステム要素が提供される。このプログラムは、フラッシュメモリの隠されたメモリ領域内の代替ブロックを含むフラッシュメモリカードのフラッシュメモリを、安全に消去するようにシステムが実行する指示を有する。
本発明の更なる別の実施例では、メモリカードを安全に消去する別の方法が提供される。この方法は、メモリカード内のメモリバンクの数を決定することと、各メモリバンク内のメモリのブロックのサイズを決定することと、各メモリバンクのアクセス不可能な領域内のメモリの隠された代替ブロックの数を決定することと、各メモリバンク内のメモリのブロックを、各メモリバンクのアクセス不可能な領域内のメモリの隠された代替ブロックの数まで繰り返し消去することとを含む。
本発明の更なる別の実施例では、メモリカードを安全に消去する更なる別の方法が提供される。この方法は、メモリカード内のメモリバンクの数を決定することと、各メモリバンク内のメモリのブロックのサイズを決定することと、各メモリバンクのアクセス不可能な領域内のメモリの隠された代替ブロックの数を決定することと、メモリのブロックを、各メモリバンクのアクセス不可能な領域内のメモリの隠された代替ブロックの数まで、各メモリバンク内のデータパターンを用いて繰り返し上書きすることとを含む。各方法は更に、各メモリバンクのアクセス可能な領域内のメモリのブロックを消去することを含む。
更に別の実施例では、決定手段と、第一の命令生成手段と、第二の命令生成手段とを含む装置が提供される。この決定手段は、メモリカードの記憶媒体の各バンク内の隠されたメモリ領域の代替ブロックの数を決定する。第一の命令生成手段は、各バンクのアクセス可能なメモリ領域に格納された全てのデータのブロックを消去する第一の命令を生成する。第二の命令生成手段は、各バンク内の隠されたメモリ領域の代替ブロック内に格納されたデータのブロックを消去する第二の命令を生成する。ここで第二の命令生成手段は、各バンク内の代替ブロックの数に応じて第二の命令を繰り返し生成する。
本発明の実施例の特徴及び利点は、以下の詳細記載から明らかになるであろう。
セキュリティ上の理由のため、フラッシュメモリカード内に格納された全てのデータを完全に消去することは有益である。これは特に、フラッシュメモリカードを始末したり、又は別の人に渡す場合に有益である。しかしながら、ホストシステムによって使用される典型的な消去方法は、フラッシュメモリカード内の隠されたメモリ領域を消去することができない。フラッシュメモリカードは、通常、いくつかの目的のために、隠されたメモリ領域を含む。ホストはいかなる直接的な手段によってもこの隠されたメモリ領域に対する読み出し、書き込み、又は消去を行うことができない。なぜなら、この領域は外部から隠されているからである。従って、たとえホストシステムが、アクセス可能なメモリカード内の全てのメモリ領域を消去したとしても、隠されたメモリ領域内のメモリカードには未だにデータが残っている。
図1には、メモリカードを安全に消去するシステム100のブロック図が示されている。このシステム100は、図示するように、ホストコンピュータ101とメモリカード102とを含んでいる。ホストシステム101に挿入されたメモリカード102を用いて、このシステムは、メモリカード102のフラッシュメモリ内のアクセス可能なメモリブロックを、アクセス不可能又は隠されたメモリブロックと同様に消去する。ここで用いられている用語であるフラッシュメモリは、電気的消去可能ROM(EEPROM)と称するEEPROMメモリが、メモリカードのメモリコアのための記憶媒体の好適な実施例である一方、本発明の実施例はまた、その他のタイプのメモリに対しても適用可能である。
ホストコンピュータシステム101は、図1に示され説明されるように、共に接続されたマイクロプロセッサ104、メインメモリ106、ディスプレイコントローラ107、ディスプレイデバイス108、メモリカードコントローラ109、メモリカードコネクタ110、ディスクドライブ記憶ユニット112、及び入力デバイス114を含んでいる。ホストコンピュータシステム101のこれら要素は、一つ又は複数のバス103を介して互いに通信する。
メモリカード102は、図1に示され説明されるように、共に接続されたメモリカードコネクション120、コントローラ122、及びフラッシュメモリ124を含んでいる。メモリカード102の一部として含まれるその他の要素が、図2を参照して以下に記載される。
ホストシステム101に接続されたメモリカード102を用いて、フラッシュメモリ124は、一般に、ホストシステム101によって、一つ又は複数のメモリのバンク126A〜126Nを持っているとみなされる。各バンク126は、一つ又は複数のメモリのブロック128A〜128Mを持つことができる。各ブロックは、一つ又は複数のメモリのページ130A〜130Pを持つことができる。しかしながら、各バンク内には、ホストによる通常のアクセスから隠され、メモリカード102によって様々な目的のために使用されるその他のメモリのブロックも存在しうる。
プログラム105は、ディスクドライブユニット112又はその他の固定記憶装置から読み取られ、ホストコンピュータシステム101のメインメモリ106に一時的に格納される。このプログラム105は、ホストコンピュータによって実行される本発明の一つの実施例を表し、メモリカード102からデータを安全に消去する。このプログラム105はスタンドアローンであるか、又は例えば、マイクロソフト社のWindows(登録商標)オペレーティングシステム、アップル社のMacintoshオペレーティングシステム、Linuxオペレーティングシステムのようなコンピュータ用オペレーティングシステム内のメモリカード用ソフトウェアドライバの一部であっても良い。あるいは、このプログラム105は、ソフトウェアアプリケーションの一部でありうる。あるいは、このプログラム105の動作は、メモリカードコントローラ109又はメモリカード102自身のコントローラ122のハードウェア又はソフトウェア内に具体化することができる。その場合、本発明のこれら実施例におけるフラッシュメモリを安全に消去するようにプログラム105の動作を実行させる特別な命令が与えられる。
図2に示すように、典型的なフラッシュメモリカード102’の詳細ブロック図が説明される。このフラッシュメモリカード102’は、ハウジング125内に収納されたメモリカードコネクション120、コントローラ122、及びフラッシュメモリコア124を含んでいる。フラッシュメモリコア124は、一つ又は複数のEEPROM集積回路か、又はその他のタイプのメモリ集積回路である。メモリカードコネクション120は、プリント回路基板のエッジコネクタのパッドによって形成されうる。すなわち、メモリカードコネクション120、コントローラ122、及びフラッシュメモリコア124は、プリント回路基板に共に搭載され、保護のためにハウジング125内に収納される。
また、コントローラ122は、一つ又は複数の集積回路から形成されることもできる。このコントローラ122は、図2に示され説明されるように、共に接続されたI/Oドライバインタフェース202、カードコントローラ204、パワーオン検出器206、I/Oメモリインタフェース208、及び複数のレジスタ210〜215を含む。
レジスタ210〜215は、メモリカードのための規格の一定の仕様を満足するように適用される。本発明の一つの実施例では、メモリカード102’は、セキュアデジタル(SD)メモリカードである。SDメモリカード仕様に従い、レジスタ210は、動作条件レジスタ(OCR)である。レジスタ211は、カード識別番号レジスタ(CID)である。レジスタ212は、相対カードアドレスレジスタ(RCA)である。レジスタ213は、ドライブステージレジスタ(DSR)である。レジスタ214は、カード特有データレジスタ(CSD)である。レジスタ215は、セキュアデジタルコンフィギュレーションレジスタ(SCR)である。
相対カードアドレスレジスタは、カードのためのローカルシステムアドレスを提供する。これは、メモリカードによって動的に提案され、初期化の間にホストによって承認される。カード識別番号(CID)レジスタは、メモリカードの個々の識別のために相対的にユニークな番号を提供する。ドライバステージレジスタは、カード出力ドライブを構成するために適用される。カード特有データレジスタは、カード動作又は条件についての情報を含む。従って、コンフィギュレーションレジスタは、SDメモリカード特別特性及び機能についての情報を含む。
コントローラ122のI/Oメモリインタフェース208は、フラッシュメモリコア124を形成する一つ又は複数の集積回路にインタフェースする。コントローラ122のI/Oドライバインタフェース202は、電気的なコネクション120のパッドを経由してホストコンピュータシステムに対してインタフェースを提供する。
図3に示すように、フラッシュメモリコア124とその構造のブロック図が、メモリの各バンク内部の隠されたメモリ領域300の隠されたメモリブロック、すなわち代替メモリブロック128’を説明するために使用される。メモリカードにおけるフラッシュメモリは、メモリにおける一つ又は複数のバンク126に形成される。メモリの各バンク126は、メモリの複数のブロック128,128’によって形成される。ブロックのサイズは固定されており、例えば、ブロック毎のバイトの数を示している。
メモリの各バンク126内には、隠されたメモリ領域300と、正常すなわちアクセス可能なメモリ領域302とが存在する。正常すなわちアクセス可能なメモリ領域302は、ホストシステムを通じてユーザへのアクセスが可能である。正常すなわちアクセス可能なメモリ領域302は、ユーザ読み出し/書き込み可能なメモリを含んでいる。更には、ユーザによる複製から守られたデータを備えたメモリを含んでいる。正常すなわちアクセス可能なメモリ領域302は、ともにユーザがアクセス可能な「通常領域」と「安全なデータ領域」との両方を含む。正常すなわちアクセス可能なメモリ領域302は、ホストシステムによって容易に消去、又は上書きがなされる。隠されたメモリ領域、すなわち領域300は、(例えば、パスワード、システム設定等のような)メモリカードシステムのために使用されるメモリと、データをメモリカードに書き込むために使用される代替メモリとを含んでいる。これらは共にユーザに対してアクセス可能ではない。隠されたメモリ領域すなわち領域300は、「システム領域」と「隠された領域」との両方を含む。
メモリの各ブロック128,128’は、メモリの複数のページ130を持っている。メモリのページ130は、通常の読み書き動作が行われるメモリの最小単位である。メモリのページ130は、一般に、1024ワード又はバイトのデータをアドレスする。1バイトは一般に、8ビットのデータであるが、他のビット幅であるかもしれない。
本発明の実施例では、メモリのブロックは、隠されたメモリ領域300を含むフラッシュメモリを安全に消去するための一つの消去/上書き動作を実行するために使用されるメモリのアクセス単位である。メモリのブロックが、ここで開示された本発明の実施例で説明され記述されたメモリの単位サイズである一方、本発明の実施例は、メモリのその他の単位サイズにも容易に拡張されうる。
例えば代替ブロック128’のような一つ又は複数のメモリのブロックは、バンク内部の隠されたメモリ領域300として使用される。メモリのその他のブロック128は、アクセス可能な、すなわち可視メモリ領域302を提供する。内部の隠されたメモリ領域は、ホストシステムから隠されており、ユーザは直接アクセスできない。すなわち、ホストコンピュータシステム101は、代替ブロック128’に直接アクセスできない。用語「代替ブロック」128’はまたここでは「隠されたブロック」128’とも称することができることを留意されたい。
隠されたブロック、すなわち代替ブロック128’として選択されるメモリブロックは、特定の物理アドレス空間に固定されない。すなわち、隠されたブロック、すなわち代替ブロック128’は、書き込み又は消去動作によって、物理アドレス空間内で一つの物理ブロックから別の物理ブロックへと移動する。なぜそうであるかを理解するために、EEPROMメモリに対してなされる消去及び書き込みサイクル数に限界がある。コントローラ122は、メモリカード内のメモリ容量の寿命を延長できるように、隠されたブロック、すなわち代替ブロック128’を使用して、メモリコア全体にわたった消去及び書き込みサイクルの数を増やす。
代替ブロック128’は、ホストコンピュータシステムから隠されているので、そこに存在するデータを直接的に削除又は消去することはできない。ホストコンピュータが、アクセス可能領域302のブロック128内の全てのデータを直接的に削除又は消去できる一方、内部の隠されたメモリ領域、すなわちアクセス不可能な領域300の代替ブロック128’に格納されたデータが未だに存在する。メモリカード内のデータの安全な消去を本当に行うために、内部の隠されたメモリ領域、すなわちアクセス不可能な領域300内のデータはまた、本発明の実施例によって削除又は消去される。
本発明の実施例は、データのページがメモリカード内のメモリのブロックに書き込まれており、フラッシュメモリ内でどれだけのメモリが直ちに消去されるかという方式に基づいている。フラッシュメモリは、データのページが、ブロックに直接書き込まれないようにする。コントローラはまず、そこにデータを書き込む前に特定の領域を含むメモリのブロックを消去する。フラッシュメモリ内で直ちに消去されるメモリの最小量は、メモリのブロックであり、メモリのページではない。例えば、図4(a)〜(d)のブロック128A〜128Bで示すように、メモリの各ブロック内に4ページあると仮定する。
図4(a)に示すように、データはメモリブロックA 128Aのページ2に上書きされると仮定する。フラッシュメモリカードは、以下に示す動作を内部で実行する。
(1)新たなブロックの割り当て。
メモリカードは、新たなブロックであるブロックB 128Bを割り当てる。これは未使用の隠されたブロック128’のうちの一つである。ブロック128’は、与えられたバンク内部の隠されたメモリ領域300内にあり、ホストから隠されている。
(2)移動前。
修正されておらず、修正されたページ上に配置されたページについて、ブロックA 128Aからのオリジナルページを、ブロックB 128B内の同じページ位置にコピーされたい。この例では、ページ2は、ブロック128Aに格納されたターゲットデータを用いて修正されたページである。従って、図4(a)に示すように、ブロックA 128Aのページ1データがコピーされ、ブロックB 128Bのページ1に移動/書き込みされる。
(3)ターゲットデータの書き込み。
ページ2はターゲットデータによって修正されたページであるので、図4(b)に示すように、このターゲットデータは、ブロックB 128Bのページ2に書き込まれる。
(4)移動後。
修正されておらず、修正されたページ上に配置されたページについて、ブロックA 128Aからのオリジナルページを、ブロックB 128B内の同じページ位置にコピーされたい。前に述べたように、ページ2は、この例では、ターゲットデータを用いて修正されたページである。
従って、この例では、図4(c)に示すように、ブロックA 128Aのページ3及びページ4のデータがコピーされ、ブロックB 128Bのページ3及びページ4にそれぞれ移動/書き込みがなされる。
(5)古いブロックの解放。
ブロックA 128Aはまず、データを格納し、アクセス可能なメモリ領域302の一部である一方、関連する論理アドレスXを持つ。しかしながら、ページ2を除くブロックAのオリジナルデータを保持しているブロックB 128Bによって、ブロックA 128Aと論理アドレスXとの間の関係を壊すことができる。その後、ブロックB 128Bと論理アドレスXとの間の新たな関係が、ブロックB 128Bと論理アドレスXとによってなされる。ブロックA 128Aは、論理アドレス関連からフリーであり、破棄されて、内部の代替領域300内で隠されたブロックすなわち代替ブロック128’の隠されたブロックすなわち代替ブロック128A’となることができる。これによって既存のデータを保持する。
図5に示すように、フラッシュメモリ124の物理構造は、一つ又は複数のEEPROMメモリセルの物理構造に部分的に基づいている。フラッシュメモリ124の設計において、EEPROMメモリセルは、物理アドレス構造で配列される。これによって、メモリのバンク126は、メモリのブロック128,128’から形成され、ブロックはメモリのページから形成されるようになる。隠されたメモリ領域300内のメモリの隠されたブロック、すなわち代替ブロック128’を提供するために、メモリカード内のフラッシュメモリの物理アドレス空間と、論理アドレス空間との間に1対1の対応は無い。メモリの各バンク126は、一つ又は複数の代替ブロック128’を持っている。用語「代替ブロック」128’はまたここでは「隠されたブロック」128’としても称することができることを留意されたい。内部の隠された領域300は、各メモリバンク126の一つ又は複数の代替ブロック128’である。隠された領域300内の代替ブロック128’は、メモリの連続的な物理ブロックではないが、物理アドレス空間にわたって広がる。図5の両矢印によって示されるように、現在使用可能なアクセス可能なブロック128は、別の時間ポイントにおいては、代替ブロック128’として指定される。同様に、現在の代替ブロック128’は、別の時間ポイントにおいては、使用可能なアクセス可能なブロック128として指定される。すなわち、メモリブロックは、内部の隠された領域300及びアクセス可能なメモリ領域302内に存在していることから、前後に入れ替わる。
例えば、現在の半導体技術に基づき、一つのバンクの最小サイズは16メガバイト(MB)である。例えば、メモリカードの全体容量が64MBであれば、このカード内のフラッシュメモリは、それぞれが16MBの4つのバンクの構成となろう。技術がメモリセルの製造プロセスと設計とを改善すると、一つのバンクのサイズが32MB、64MB、あるいはそれ以上に増加し、メモリカードの合計容量を増やすことができる。
前に説明したように、代替ブロック128’は、フラッシュメモリにおける書き込み/消去の動作毎に使用される。メモリのブロックが戻され、内部の隠されたメモリ領域になると、ブロックに格納されたデータが保持される。代替ブロック内のデータを消去するために、まず各バンク内のアクセス可能なメモリブロックの全てを消去し、次に、隠されたメモリの代替ブロックに格納された各バンクに無効データを書き込む。
本発明の実施例では、これを遂行するために以下に示す基本ステップが行われる。
(0)ホストによってアクセス可能な全てのアクセス可能メモリ領域の削除、消去、又は初期化を行う。
(1)カードの合計メモリ容量に基づいてバンクの合計数の決定又は仮定を行う。
(2)各バンクのための代替ブロックの合計サイズを計算する。
(3)一つのブロックのサイズを計算する。
(4)各バンクについて、同一の論理アドレスに対する無効データの消去又は書き込みを行う。書き込み動作のサイズは、ステップ3で計算されたブロックサイズと同じである。
(5)データの合計数が各バンク内の合計代替ブロックサイズに等しくなるまでステップ4を繰り返す。
(6)メモリカード内の全てのバンクについてステップ4とステップ5とを繰り返す。
例えば、図6(a)に示すように、四つの16MBバンク626を備えたメモリ624を持つ64MB SDメモリカードを考える。各バンク626は、メモリの複数のブロック628と、一つ又は複数の代替ブロック628’とを含む。一つ又は複数のブロック628’は、各メモリバンク626の内部の隠された領域600を形成する。複数のブロック628は、アクセス可能なメモリ領域602を形成する。代替ブロック628’は、内部の隠された領域600と、アクセス可能なメモリ領域602との間にある他のブロック628と交換する。すなわち、隠された領域600内のブロック628’は、連続したブロックではないが、物理アドレス空間にわたって広がっている。
図6(a)〜図6(c)、及び図7〜図10に関連して、以下に示す詳細ステップが実行され(全てが要求される訳ではないが)、内部の隠された、すなわちアクセス不可能なメモリ領域600の代替ブロック628’からのデータが削除又は消去される。
図7〜図10は、図6(a)〜図6(c)の例のメモリブロック図に対応するフローチャートを示す。このソフトウェアフローチャートは、開始ボックス700で始まる。
ブロック702では、ステップ0が実行される。ここでは、ホストに直接アクセス可能なアクセス可能なメモリ領域602の全てが消去、削除、すなわち再フォーマット/初期化される。このステップであるステップ(0)は、図示するように開始時に実行されるか、あるいは、ステップ(8)の後であって、ブロック924における終了の直前に実行される。
アクセス可能なメモリ領域602は、アクセス可能なメモリ位置を物理的に消去する命令によって直ちに全てが消去される。さもなければ、一連の書き込み命令を実行することによって、無効なデータが、アクセス可能なメモリ位置に書き込まれる。この無効なデータは、例えば、”0×FF”(FF 16進数=11111111)のような全て1、全て0 0X00(00 16進数=00000000)、又は1と0(0101010又は10101010)或いは1と0とのランダムパターンである。いずれにせよ、このデータは意味が無く、メモリカードに書き込まれ、メモリ位置を上書きする。
ブロック704とブロック706では、ステップ1が実行される。
ブロック704では、隠されたメモリの代替ブロックを含む利用可能なメモリの合計量が、以下に示す式(1A)によって示されるように可変なTotalMemoryCapacity(TMC)630に書き込まれる。代替ブロックを含む合計メモリ量は、通常、その製造者によって提供され、メモリカードのハウジング125の表面にリストされているメモリカードの指定されたサイズである。
TotalMemoryCapacity←代替ブロックを含む合計メモリ量・・・・・(1A)
ブロック706では、メモリの一つのバンク内のメモリのサイズ(BankSize 632)が決定又は仮定される。図8のフローチャートは、BankSizeがどのようにして決定されるかを説明している。図8に示すように、ブロック800では、TotalMemoryCapacityが512MB以下であるかが判定される。もしも「Yes」であれば、ブロック808にジャンプする。ブロック800において「No」であれば、ソフトウェアは、ブロック802に進む。
ブロック808では、512MB以下のメモリ容量をもつメモリカードを形成するために使用されるフラッシュメモリ構成であることから、BankSizeが16MBに設定される。
ブロック802では、TotalMemoryCapacityが2ギガバイト(GB)(2048MBと等しい)以下であるかが判定される。もしも「Yes」であれば、ブロック806にジャンプする。ブロック800において「No」であれば、このソフトウェアはブロック804に進む。
ブロック804では、2GBを超えるメモリ容量をもつメモリカードを形成するために使用されるフラッシュメモリ構成であることから、BankSizeが64MBに設定される。
ブロック806では、2GB以下であって512MBを超えるメモリ容量とをもつメモリカードを形成するために使用されるフラッシュメモリ構成であることから、BankSizeが32MBに設定される。
ブロック810では、BankSizeが決定され、ソフトウェアがブロック706に戻り、図7に示すようにブロック708に進む。
再び図7に示すように、ブロック708では、以下の式(1B)に示すように、TotalMemoryCapacityをBankSizeで除することによって、メモリカード内のバンクの合計数(TotalNumberBanks TNB)が決定される。
TotalNumberBanks=TotalMemoryCapacity/BankSize・・・(1B)
例えば、図6(a)に示すように、四つのメモリバンク626において、各バンクのサイズは16MBであると仮定する。すなわち、以下の式(1C)に示すように、BankSizeは16MBである。
BankSize=16MB・・・(1C)
従って、以下の式(1D)に示すようにして、TotalNumberBanksが計算される。
TotalNumberBanks=64MB/16MB=4・・・(1D)
ブロック710,712,714では、ステップ2が実行される。ここでは、フラッシュメモリコアの内部に隠されたメモリ領域の合計量(すなわち、合計代替メモリ容量)が計算される。
フラッシュメモリコアの内部の隠されたメモリ領域の合計量を決定するために、メモリカード内のアクセス可能なメモリの量(すなわち、隠されたメモリを含まないユーザデータ容量UserDataCapacity)が、メモリカードの合計メモリ容量(すなわち、隠されたメモリの量を含むTotalMemoryCapacity)から減じられる。UserDataCapacityは、メモリカード内のレジスタ設定から決定することができる。SDメモリカードについて、UserDataCapacityは、SDメモリカードのCSDレジスタ214に格納されたレジスタ情報から計算される。
ブロック710では、C_SIZEとC_SIZE_MULT、READ_BL_LENがメモリカード102のCSDレジスタ214から読み取られる。
ブロック712では、ブロック710によってCSDレジスタ214から取得された情報を用いて、以下に示す式(2A)によってUserDataCapacityが計算される。
Figure 2005327296
ここで、BLOCKNRは、以下に示す式(2B)及び式(2C)から計算され、BLOCK_LENは、以下に示す式(2D)から計算される。
Figure 2005327296
Figure 2005327296
Figure 2005327296
例えば、上記で議論したように、我々は、図6(a)〜図6(c)に示すメモリカードの合計メモリ容量は、67,108,864バイトに等しい64メガバイト(64MB)であると仮定した。ここで更に、各レジスタ値C_SIZEとC_SIZE_MULT、READ_BL_LENがCSDレジスタから、C_SIZE=0×0F27、又は0F27 16進数、又は3879 10進数、C_SIZE_MULT=3、及びREAD_BL_LEN=9、として読み出されるものと仮定する。いずれにせよ、UserDataCapacityは、以下のように計算される。
Figure 2005327296
ブロック714では、全てのバンクからの代替ブロックの合計代替メモリ容量(TSMC)が、以下に示す式(2E)を用いて計算される。
Figure 2005327296
典型的な64MBメモリカードを用いて計算された値を代入することによって、TotalSpareMemoryCapacityが以下のように計算される。
Figure 2005327296
TotalSpareMemoryCapacityの値は、内部に隠された領域の正確な合計数になるとは限らないことに留意されたい。なぜなら、この値は、もしあれば、システムメモリ領域及び保護メモリ領域として使用することが可能なメモリを含むからである。しかしながら、この値は、代替ブロックの合計数によって提供された合計代替メモリ容量、又は内部に隠された合計領域の最大値を表す。
ブロック716では、バンク毎の内部に隠されたメモリサイズ(HMSB 632)のサイズと、バンク内のブロック128,128’のサイズ(BlockSize 634)とを計算するためにステップ3が実行される。バンク毎の隠されたメモリサイズ(HMSB 632)は、以下に示す式(3)に従って合計代替メモリ容量(TSMC)を合計バンク数(TNB)で除することによって計算される。
HiddenMemorySizePerBank=TotalSpareMemoryCapacity/TotalNumberBanks・・・・(3)
図6(a)〜図6(c)の例を用いて続けると、合計して四つのバンクが存在し、合計代替メモリ容量は3538944バイトと計算された。これらの数を式(3A)に入力することによって、我々は、以下に示すようにバンク毎の隠されたメモリサイズHMSB632を決定することができる。
Figure 2005327296
ブロック718及びブロック720では、ステップ4が実行され、バンク内のブロック128,128’のサイズ(BlockSize 634)が計算される。SDメモリカードについて、BlockSize634は、SDメモリカードのCSDレジスタ214に格納されたレジスタ情報から計算される。
ブロック718では、WRITE_BL_LENとSECTOR_SIZEとがメモリカード102のCSDレジスタ214から読み取られる。BlockSize634は、CSDレジスタ内に定義されたSECTOR_SIZEとWRITE_BL_LENとから計算される。
ブロック720では、以下に示す式(4)に従って一つのブロック128,128’のサイズ(BlockSize 634)が計算される。
Figure 2005327296
図6(a)〜図6(c)の典型的な64MBメモリカードについて、SECTOR_SIZEは、0×20、20 16進数、又は32 10進数として読まれ、WRITE_BL_LENは、10進数の9の値を持つREAD_BL_LENに等しく読み出されると仮定する。
Figure 2005327296
これらの値を式(4)に代入することによって、BlockSizeが以下のように計算される。
Figure 2005327296
これらの値を決定した後、アクセス不可能な、すなわち隠されたメモリは、図9のフローチャートに示す複数書き込み動作によってメモリ位置を上書きするために無効なデータを用いて安全に消去される。あるいは、図10のフローチャートに示す複数消去動作を用いてメモリ位置を消去することによって、安全に消去することができる。
複数書き込み動作を用いてメモリカード内のデータを安全に消去する図9を参照する。
ブロック902では、ステップ5が実行され、メモリの代替ブロック128’を上書きするために、無効なデータを、各バンクの一つのブロックに書き込む回数が決定される。無効なデータを書き込む回数は、バンク毎の代替ブロックの数(NumberSpareBlocksBank、NSBB 636)と同じである。それぞれの場合において、バンク毎の代替ブロックの数(NumberSpareBlocksBank、NSBB 636)は、以下に示す(5)式を使って計算されるように、バンク毎の隠されたメモリサイズ(HiddenMemorySizePerBank)をBlockSizeで除することによって決定される。
NumberSpareBlocksBank=HiddenMemorySizePerBank/BlockSize・・・(5)
HiddenMemorySizePerBank HMSB 632とBlockSize634との計算は、図7を参照して以前に議論した。
図6(a)〜図6(c)の例を用いて続けると、HiddenMemorySizePerBankは、8845736バイトであり、BlockSizeが16384バイトであると以前に決定された。これらの値を式(5)に代入することによって、我々は以下を得る。
Figure 2005327296
従って、代替ブロック628’を含むメモリ624のバンク626を安全に消去するために、無効なデータの54ブロックが、与えられたバンク内で同一の論理アドレスに書き込まれるべきである。
図9のフローチャートでは、一対のループが設定されている。一つのループは、与えられたバンクにデータを書き込むためのものであり、別のループは、バンクからバンクへ移動するためのものである。
ブロック904では、変数”j”が1に初期化される。
ブロック906では、jが合計バンク数TotalNumberBanks(TNB)よりも大きいか否かが判定される。もしも大きければ、ルーチンはブロック924にジャンプし、終了する。
もしも大きくなければ、ルーチンはブロック908にジャンプする。
ブロック908では、変数”i”が1に記される。
ブロック910では、論理アドレスが決定され、与えられたバンクj、ここでjは変数、に無効なデータを繰り返し書き込むように決定される。バンク毎のユーザアクセス可能なメモリブロックの数(バンク毎のブロック数(NumberBlocksBank)は、まず、バンク毎のメモリ量(BankSize)からバンク毎の隠されたメモリ量(HiddenMemorySizePerBank)を減じ、更に、この結果を、ブロック毎のメモリ量(BlockSize)で除することによって決定される。各バンクjについて、jはインクリメントされる。従って、変数jは、あるバンクから別のバンクへとNumberBlocksBankによって論理アドレスをインクリメントする。この論理アドレスは、変数nの選択によるBlockSizesの数によって与えられたバンクj内でオフセットされる。この変数nは、0から(NumberBlocksBank−1)の範囲までのインクリメントによって変わりうる。
ブロック912では、”i”がバンク毎の代替ブロックの数NumberSpareBlocksBank(NSBB)よりも大きいか否かが判定される。もしも大きければ、このルーチンはブロック922にジャンプする。もしも大きくなければ、このルーチンはブロック914にジャンプする。
ブロック922では、変数jが、1ずつインクリメントされる。これは、メモリの新たなバンクが処理され、このルーチンがブロック906に戻ることを示している。
ブロック914では、ステップ6が実行され、無効なデータ(すなわち、消去データ)がバンクj内の同一の論理アドレスに書き込まれる。この書き込み動作中に書き込まれる無効なデータのサイズは、ブロック720においてステップ4で以前に計算されたブロックのサイズ(BlockSize)と同じである。
複数書き込み命令(CMD 25)がこの論理アドレスに対するSDメモリカードに発行される。
例えば、このアドレスが、メモリの第一のバンクに無効なデータを書き込むために使用されると仮定すると、論理アドレスは、0×00000000から(0×00CA0000−BlockSize)に設定された範囲にある。表記”0×”は、16進数に従う数を示す。
BlockSizeは、以前に16384バイトに決定された。このBlockSizeをこの範囲に代入することによって、我々は、0×00000000から0×00C9C000となる実際の論理アドレス範囲を知る。
無効なデータを書き込むために選択された論理アドレスは、ブロック720においてステップ4で決定されたBlockSizeを用いることによって、好適にはメモリのブロックと一列になっている。
例えば、無効なデータは、“0×FF”、FF 16進数、又は11111111 10進数のデータパターンであり、メモリカード内の第一のバンクについて論理アドレス“0×00800000”において、メモリカードに書き込まれる。
ブロック915では、BlockSizeの無効なデータ(すなわち、消去/削除データ)が、メモリカードに送られ、選択された論理アドレスにおいて書き込みが開始される。この無効データは、例えば全て1、全て0、1と0とを交互に、1と0とのランダムのように意味を持たないデータのパターンである。
ブロック916では、選択された論理アドレスを使って一つのブロックに無効データを書き込んだ後、複数の書き込み動作を停止するための停止命令(CMD 12)が発行される。
ブロック920では、変数iが、1ずつインクリメントされる。これは、新たなブロックが処理され、このルーチンがブロック912に戻ることを示している。
複数書き込み動作を使ってデータを上書きする代わりに、複数の消去動作を使用してデータをクリアすることが可能である。この場合、最初の書き込みブロック設定命令が発行され、消去命令(CMD 32)もまた発行される。次に、最後の書き込みブロック設定命令が発行され(CMD 33)、その後、消去命令(CMD 38)が発行される。これは、図10のフローチャートを参照して以下に説明される。ブロック914,915,916は、ステップ7として、バンク毎の代替ブロックの数(NumberSpareBlocksBank)について繰り返される。すなわち、ブロック914,915,916のステップ6は、バンク毎の代替ブロックの数(NumberSpareBlocksBank)について繰り返される。このようにして、初期代替ブロックはアクセス可能なメモリ領域に確実にスワップアウトされる。これによって、代替ブロックが上書きされることが可能となる。
引き続く例では、NumberSpareBlocksBankは54であった。従って、ブロック914,915,916は、54回繰り返される。
ブロック914,915,916を含むループと連携しているブロック910は、各バンクについて、ステップ8としてバンクの合計数(TotalNumberBanks)繰り返される。すなわち、ステップ6及びステップ7は、ブロック708で以前に計算されたバンクの合計数繰り返される。バンクの開始論理アドレスは、内部の隠されたメモリ領域を消去/上書きするためにあるバンクから別のバンクに移動する場合、ブロック910で変えられる。図6(a)〜図6(c)の例を用いて続けると、バンクの合計数(TotalNumberBanks)は4と計算された。第一のバンクアドレスは“0×00800000”又は00800000 16進数であった。これは、複数の書き込み動作を発行するために使用される。
以下のアドレスは、以下のような残りのバンクのためのブロックと並列している複数の書き込み動作を発行するために使用される。
第2のバンク:“0×01800000”又は01800000 16進数。
第3のバンク:“0×02800000”又は02800000 16進数。
第4のバンク:“0×03800000”又は03800000 16進数。
前に議論したように、ブロック702のステップ0は、図示され記述されたように、開始時の代わりにステップ8の後に実行される。すなわち、ブロック702の機能は、ブロック924における終了に先立つように移動される。
図10に示すように、複数の書き込み動作を使ってデータを上書きする代わりに、複数の消去動作が使用され、メモリコアからのデータがクリアされる。図10のフローチャートは、同一の参照符番(902,904,906,908,912,920,922,924)を用いた類似要素を有しており、図9のフローチャートと幾分同様である。図10におけるこれら類似要素の機能は、図9を参照して詳細に記載されているので、簡略化の理由でここでは繰り返さない。しかしながら、図10において参照番号1010,1014,1016,1018を持つブロックは、図9のものとは異なる。図10のフローチャートは、図9のフローチャートのように一対のループを示している。一つのループは、代替ブロックの数用であり、別のループは、メモリカードのコアメモリ内のバンクの数用である。それぞれのループの条件は、ループ内で連続すること、又は異なるブロックにジャンプすること、又はこのソフトウェアルーチンを終了させることについて類似している。
ブロック910と異なるブロック1010では、論理開始アドレス(LogicalStartAddress)がブロック910同様に選択される。更にブロック1010は、メモリの一つのブロックのBlockSizeを、論理開始アドレス(LogicalStartAddress)に加えることによって、論理終了アドレス(LogicalEndAddress)を計算する。
ブロック1014では、最初の書込ブロック設定命令(CMD 32)がSDメモリカードに発行され、与えられたバンクjで消去されたブロックの論理開始アドレスが設定される。
ブロック1016では、最後の書込ブロック設定命令(CMD 33)がSDメモリカードに発行され、与えられたバンクjで消去されたブロックの論理終了アドレスが設定される。
ブロック1018では、消去命令(CMD 38)がSDメモリカードに発行され、論理開始アドレス及び論理終了アドレスによって選択された全ての領域(すなわちブロック)が消去される。ブロック1014,1016,1018は、各バンクに存在する代替ブロックの合計数にわたってループ内で繰り返される。ブロック1010は、このメモリコア内のバンクからバンクへと処理が進むと、バンクの合計数にわたってループ内で繰り返される。
ソフトウェアで実施される場合には、本発明の実施例の要素は、本質的に、必要なタスクを実行するためのコードセグメントである。このプログラム又はコードセグメントは、プロセッサ読取可能媒体に格納することができる。あるいは、送信媒体又は通信リンクを介して搬送波内に具体化されたコンピュータデータ信号によって送信することができる。この「プロセッサ読取可能媒体」は、例えば磁気、光、電子、及び電磁による媒体のような情報を格納又は転送することが可能な任意の媒体を含みうる。このプロセッサ読取可能媒体の例は、電子回路、半導体メモリーデバイス、読取専用メモリ(ROM)、フラッシュメモリ(EEPROM)、消去可能ROM(EROM)、電気的にプログラム可能なROM(EPROM)、フロッピー(登録商標)ディスク、コンパクトディスクリードオンリーメモリ(CDROM)、光ディスク、ハードディスク、ファイバ光媒体、無線周波数(RF)リンク等を含む。コンピュータデータ信号は、例えば、電子ネットワークチャンネル、光ファイバ、空気、電磁波、RFリンク等の送信媒体を介して伝播可能な任意の信号である。コードセグメントは、例えばインターネットやイントラネットなどのコンピュータネットワークを経由してダウンロードされる。
ある典型的な実施例が説明され、更に添付図面を用いて示される一方、これら実施例は単なる説明用のものであり、一般的な発明について制限的であることはないことと、本発明は図示された記載された特定の構成及び配置に限定されるものではないこととが理解されるべきである。例えば、コンピュータシステムを含むシステムにおける本発明の一つの実施例が示され説明されたが、本発明は、例えばデジタルスチルカメラ、デジタルビデオカメラ、デジタルオーディオプレーヤ、携帯電話、電子ブック、及び/又は電子辞書等のような他の種類の電子デバイスにも具体化されうる。
しかしながら、種々の部分変形や変更が、特許請求の範囲に記載された本発明の広範な精神及び範囲から逸脱することなくなされうることが明らかになろう。従って、明細書及び図面は、限定的な認識ではなく、実例として考慮されるべきである。
図1は、メモリカードからデータを安全に消去するシステムの典型的なブロック図である。 図2は、メモリカードのより詳細なブロック図である。 図3は、フラッシュメモリコアのメモリ階層を説明する典型的なブロック図である。 図4は、新たなデータページをページブロックに書き込む典型的な動作を説明する図である。 図5は、メモリのバンク内のメモリの隠された代替ブロックと、ユーザアクセス可能なブロックとの間の論理的な違いを説明するためのフラッシュメモリコアとその階層レベルとの典型的な図である。 図6は、各バンク内のメモリの隠された代替ブロックをどのように消去又は上書きするかを決定するために行われた計算を説明するための64メガバイトフラッシュメモリコアとその階層レベルの典型的な図である。 図7は、安全にメモリカードを消去するソフトウェアルーチンの第一の典型的な部位のフローチャートである。 図8は、安全にメモリカードを消去するソフトウェアルーチンの第二の典型的な部位のフローチャートである。 図9は、複数の書込動作を使ってメモリカードの各バンク内のメモリの隠された代替ブロックを安全に上書きするソフトウェアルーチンの第三の典型的な部位のフローチャートである。 図10は、複数の消去動作を使ってメモリカードの各バンク内のメモリの隠された代替ブロックを安全に消去するソフトウェアルーチンの第三の典型的な部位の別のフローチャートである。

Claims (36)

  1. メモリカードを安全に消去する方法であって、
    前記メモリカードの記憶媒体内に隠されたメモリ領域のサイズを決定することと、
    前記隠されたメモリ領域に格納されたデータのブロックを消去する第一の命令を発行することと、
    前記隠されたメモリ領域のサイズに応じて、データのブロックを消去する前記第一の命令を発行することを繰り返すこととを備える。
  2. 請求項1に記載の方法において、
    前記データのブロックを消去するように発行された前記命令は、フラッシュメモリセルを消去する消去命令である。
  3. 請求項1に記載の方法において、
    前記データのブロックを消去するように発行された前記命令は、フラッシュメモリセルに格納されたデータをデータパターンを用いて上書きする書込命令である。
  4. 請求項1に記載の方法において、
    前記データパターンは、ランダムデータパターン、全て0のデータパターン、全て1のデータパターン、1と0との交互によるデータパターンのうちの一つである。
  5. 請求項1に記載の方法において、
    前記メモリカードの記憶媒体内のアクセス可能なメモリ領域を消去する第二の命令を発行することを更に備える。
  6. 請求項5に記載の方法において、
    前記第二の命令は、前記第一の命令の発行前に発行される。
  7. 請求項5に記載の方法において、
    前記第一の命令は、前記第二の命令の発行前に発行される。
  8. 請求項1に記載の方法において、
    前記メモリカードはセキュアデジタルメモリカードであり、
    前記記憶媒体は、複数の電気的に消去可能なプログラマブルリードオンリーメモリセルである。
  9. 請求項1に記載の方法において、
    前記メモリカードの記憶媒体内に隠されたメモリ領域のサイズを決定することは、メモリのバンク内のメモリブロックのサイズを決定することを含む。
  10. 請求項9に記載の方法において、
    前記メモリカードの記憶媒体内に隠されたメモリ領域のサイズを決定することは、ユーザデータ容量を決定することと、前記メモリカードの合計メモリ容量から前記ユーザデータ容量を引き、前記隠されたメモリ領域の容量を決定することとを更に含む。
  11. 請求項10に記載の方法において、
    前記メモリカードの記憶媒体内に隠されたメモリ領域のサイズを決定することは、前記隠されたメモリ領域の容量を、前記メモリのブロックのサイズで除することによって、前記隠されたメモリ領域内のブロックの数を決定することを更に含む。
  12. 請求項1に記載の方法において、
    前記第一の命令は、前記隠されたメモリ領域に格納された一つ又は複数のデータのバイトを消去するように、ホストシステムによって前記メモリカードに発行される。
  13. メモリカードを安全に消去する方法であって、
    前記メモリカード内のメモリバンクの数を決定することと、
    各メモリバンク内のメモリのブロックのサイズを決定することと、
    各メモリバンクのアクセス不可能な領域内のメモリの隠された代替ブロックの数を決定することと、
    各メモリバンクのアクセス不可能な領域内のメモリの隠された代替ブロックの数まで、各メモリバンク内のメモリのブロックを繰り返し消去することとを備える。
  14. 請求項13に記載の方法において、
    各メモリバンクのアクセス不可能な領域内のメモリのブロックを消去する
    ことを更に備える。
  15. メモリカードを安全に消去する方法であって、
    前記メモリカード内のメモリバンクの数を決定することと、
    各メモリバンク内のメモリのブロックのサイズを決定することと、
    各メモリバンクのアクセス不可能な領域内のメモリの隠された代替ブロックの数を決定することと、
    各メモリバンクのアクセス不可能な領域内のメモリの隠された代替ブロックの数まで、メモリのブロックを、各メモリバンク内のデータパターンを用いて繰り返し上書きすることとを備える。
  16. 請求項13に記載の方法において、
    各メモリバンクのアクセス不可能な領域内のデータパターンを用いてメモリのブロックを上書きすることを更に備える。
  17. 請求項16に記載の方法において、
    前記データパターンは、ランダムデータパターン、全て0のデータパターン、全て1のデータパターン、1と0との交互によるデータパターン、及びランダムデータパターンのうちの一つである。
  18. メモリカードを安全に消去する装置であって、
    前記メモリカードの記憶媒体の各バンク内に隠されたメモリ領域の代替ブロックの数を決定する決定手段と、
    各バンクのアクセス可能なメモリ領域に格納された全てのデータブロックを消去する第一の命令を生成する第一の命令生成手段と、
    各バンク内の隠されたメモリ領域の代替ブロックに格納されたデータブロックを消去する第二の命令を生成する第二の命令生成手段とを備え、
    前記第二の命令生成手段は、各バンク内の代替ブロックの数に応じて、前記第二の命令を繰り返し生成する。
  19. 請求項18に記載の装置において、
    前記第一の命令は、全てのデータブロックをデータパターンを用いて上書きし、
    前記第二の命令は、各代替ブロックに格納された各データブロックを前記データパターンを用いて上書きし、
    前記データパターンは、ランダムデータパターン、全て0のデータパターン、全て1のデータパターン、1と0との交互によるデータパターン、及びランダムデータパターンのうちの一つである。
  20. 請求項18に記載の装置において、
    前記第一の命令は、消去命令を用いて全てのデータブロックを消去し、
    前記第二の命令は、消去命令を用いて、各代替ブロックに格納された各データブロックを消去する。
  21. コンピュータプログラム製品であって、
    プロセッサ読取可能記憶媒体と、
    前記プロセッサ読取可能記憶媒体に記録され、前記メモリカード内の各メモリバンクの隠されたメモリ領域内の代替ブロックの数を決定するプログラムコードと、
    前記プロセッサ読取可能記憶媒体に記録され、各メモリバンクの隠されたメモリ領域内の代替ブロックの数に応じて、各メモリバンクの隠されたメモリ領域の代替ブロックに格納されたデータブロックを消去する第一の命令を生成するプログラムコードと、
    前記プロセッサ読取可能記憶媒体に記録され、各メモリバンクのアクセス可能なメモリ領域内のデータブロックを消去する第二の命令を生成するプログラムコードとを備える。
  22. 請求項21に記載のコンピュータプログラム製品において、
    前記プロセッサ読取可能記憶媒体は、磁気記憶媒体、光記憶媒体、及び半導体記憶媒体のうちの一つ又は複数のセットである。
  23. コンピュータプログラム製品であって、
    プロセッサ読取可能記憶媒体と、
    前記プロセッサ読取可能記憶媒体に記録され、前記メモリカード内の各メモリバンクの数を決定するプログラムコードと、
    前記プロセッサ読取可能記憶媒体に記録され、各メモリバンク内のメモリのブロックの数を決定するプログラムコードと、
    前記プロセッサ読取可能記憶媒体に記録され、各メモリバンクのアクセス不可能な領域内のメモリの隠された代替ブロックの数を決定するプログラムコードと、
    前記プロセッサ読取可能記憶媒体に記録され、各メモリバンクのアクセス不可能な領域内のメモリの隠された代替ブロックの数まで、各メモリバンク内のメモリのブロックを繰り返し消去するプログラムコードとを備える。
  24. 請求項23に記載のコンピュータプログラム製品において、
    前記プロセッサ読取可能記憶媒体に記録され、各メモリバンクのアクセス可能な領域内のメモリのブロックを消去するプログラムコードを更に備える。
  25. 請求項23に記載のコンピュータプログラム製品において、
    前記プロセッサ読取可能記憶媒体は、磁気記憶媒体、光記憶媒体、及び半導体記憶媒体のうちの一つ又は複数のセットである。
  26. コンピュータプログラム製品であって、
    プロセッサ読取可能記憶媒体と、
    前記プロセッサ読取可能記憶媒体に記録され、前記メモリカード内のメモリバンクの数を決定するプログラムコードと、
    前記プロセッサ読取可能記憶媒体に記録され、各メモリバンク内のメモリのブロックのサイズを決定するプログラムコードと、
    前記プロセッサ読取可能記憶媒体に記録され、各メモリバンクのアクセス不可能な領域内のメモリの隠された代替ブロックの数を決定するプログラムコードと、
    前記プロセッサ読取可能記憶媒体に記録され、各メモリバンクのアクセス不可能な領域内のメモリの隠された代替ブロックの数まで、各メモリバンク内のデータパターンを用いてメモリのブロックを繰り返し上書きするプログラムコードとを備える。
  27. 請求項26に記載のコンピュータプログラム製品において、
    前記プロセッサ読取可能記憶媒体に記録され、各メモリバンクのアクセス可能な領域内の前記データパターンを用いてメモリのブロックを上書きするプログラムコードを更に備える。
  28. 請求項26に記載のコンピュータプログラム製品において、
    前記データパターンは、ランダムデータパターン、全て0のデータパターン、全て1のデータパターン、1と0との交互によるデータパターン、及びランダムデータパターンのうちの一つである。
  29. 請求項26に記載のコンピュータプログラム製品において、
    前記プロセッサ読取可能記憶媒体は、磁気記憶媒体、光記憶媒体、及び半導体記憶媒体のうちの一つ又は複数のセットである。
  30. システムであって、
    指示を持つプログラムを格納し、バスに接続されたメモリと、
    前記バスに接続されたプロセッサと、
    前記バスに接続されたメモリカードコントローラと、
    前記メモリカードコントローラに接続されたメモリカードコネクタと、
    フラッシュメモリを有し、前記メモリカードコネクタに接続されたフラッシュメモリカードとを備え、
    前記システムは、前記プログラムの指示を実行して、前記フラッシュメモリの隠されたメモリ領域内の代替ブロックを含む前記フラッシュメモリを安全に消去する。
  31. 請求項30に記載のシステムにおいて、
    前記バスに接続され、ユーザからの入力を取得する入力デバイスと、
    前記バスに接続されたディスプレイデバイスとを更に備える。
  32. 請求項31に記載のシステムにおいて、
    前記バスと前記ディスプレイデバイスとの間に接続されたディスプレイコントローラを更に備える。
  33. 請求項30に記載のシステムにおいて、
    前記プロセッサ、前記メモリカードコントローラ、及び前記フラッシュメモリカードのうちの一つが、前記プログラムの指示を実行し、前記フラッシュメモリを安全に消去する。
  34. 請求項33に記載のシステムにおいて、
    前記フラッシュメモリを安全に消去するプログラムの指示は、前記メモリカード内の各メモリバンクの隠されたメモリ領域内の代替ブロックの数を決定する指示と、
    各メモリバンクの前記隠されたメモリ領域内の代替ブロックの数に応じて、各メモリバンクの前記隠されたメモリ領域の代替ブロックに格納されたデータのブロックを消去する第一の命令を生成する指示とを含む。
  35. 請求項34に記載のシステムにおいて、
    前記フラッシュメモリを安全に消去するプログラムの指示は、各メモリバンクのアクセス可能なメモリ領域内のデータのブロックを消去する第二の命令を生成する指示を更に含む。
  36. 請求項30に記載のシステムにおいて、
    前記フラッシュメモリカードは、
    そこにデータを格納するフラッシュメモリコアと、
    前記フラッシュメモリコアに接続され、前記フラッシュメモリコアとのデータの読み出し、書き込み、及び消去を制御するコントローラと、
    前記コントローラに接続され、前記フラッシュメモリカードを前記カードコネクタに結合させる複数のパッドとを含む。
JP2005142688A 2004-05-14 2005-05-16 メモリカード内の隠されたメモリを消去する方法及び装置 Pending JP2005327296A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/846,757 US20050257017A1 (en) 2004-05-14 2004-05-14 Method and apparatus to erase hidden memory in a memory card

Publications (1)

Publication Number Publication Date
JP2005327296A true JP2005327296A (ja) 2005-11-24

Family

ID=35310691

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005142688A Pending JP2005327296A (ja) 2004-05-14 2005-05-16 メモリカード内の隠されたメモリを消去する方法及び装置

Country Status (2)

Country Link
US (1) US20050257017A1 (ja)
JP (1) JP2005327296A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007317078A (ja) * 2006-05-29 2007-12-06 Matsushita Electric Ind Co Ltd 不揮発性メモリ、メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP2010512584A (ja) * 2006-12-06 2010-04-22 フュージョン マルチシステムズ,インク.(ディービイエイ フュージョン−アイオー) 空データトークン指令を有する要求デバイスからのデータを管理する装置、システムおよび方法
JP2010267186A (ja) * 2009-05-18 2010-11-25 Nec System Technologies Ltd 大容量記憶装置、リアサイン方法、プログラム及びディスクアレイ装置
WO2011007511A1 (ja) * 2009-07-16 2011-01-20 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム
JP2012523045A (ja) * 2009-03-31 2012-09-27 クゥアルコム・インコーポレイテッド ウェアレベリングを有する記憶デバイス上でセンシティブデータを保護するための方法
JP2012203864A (ja) * 2011-03-28 2012-10-22 Toshiba Corp メモリシステム、コントローラ、およびメモリシステムの制御方法
US8312412B2 (en) 2009-06-30 2012-11-13 Kabushiki Kaisha Toshiba Support apparatus and design support method
JP2014164427A (ja) * 2013-02-22 2014-09-08 Canon Inc データ処理装置及びその制御方法
JP2015090724A (ja) * 2013-11-07 2015-05-11 株式会社Genusion 記憶装置及びこれを用いた情報端末
JP2016504695A (ja) * 2013-01-28 2016-02-12 フジツウ テクノロジー ソリューションズ インタレクチュアル プロパティ ゲーエムベーハー 不揮発性半導体マスメモリを安全に消去するための方法、コンピュータシステム、及びコンピュータプログラム

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7246209B2 (en) * 2004-11-30 2007-07-17 Kabushiki Kaisha Toshiba System for secure erasing of files
US7584201B2 (en) * 2005-08-10 2009-09-01 Qwest Communications International, Inc Management of mobile-device data
KR100780963B1 (ko) * 2006-11-03 2007-12-03 삼성전자주식회사 메모리 카드 및 메모리 카드의 구동 방법
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8719501B2 (en) 2009-09-08 2014-05-06 Fusion-Io Apparatus, system, and method for caching data on a solid-state storage device
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
GB0816775D0 (en) * 2008-09-12 2008-10-22 The Technology Partnership Plc Memory device
US8200930B2 (en) * 2008-10-14 2012-06-12 Digital Lifeboat, Inc. Interacting with data in hidden storage
US20100100587A1 (en) * 2008-10-14 2010-04-22 Digital Lifeboat, Inc. Systems and methods for a data management recovery in a peer-to-peer network
US8407401B2 (en) * 2008-11-26 2013-03-26 Core Wireless Licensing S.A.R.L. Methods, apparatuses, and computer program products for enhancing memory erase functionality
US20100235605A1 (en) * 2009-02-13 2010-09-16 Nir Perry Enhancement of storage life expectancy by bad block management
DE102009019982A1 (de) * 2009-05-05 2010-11-18 Giesecke & Devrient Gmbh Verfahren zum Zugriff auf einen tragbaren Speicherdatenträger mit Zusatzmodul und tragbarer Speicherdatenträger
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
CN102597910B (zh) 2009-09-09 2015-03-25 弗森-艾奥公司 存储设备中用于功率减小管理的装置、系统及方法
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
WO2011031903A2 (en) 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
WO2012016089A2 (en) 2010-07-28 2012-02-02 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
US9530436B1 (en) 2010-08-12 2016-12-27 Western Digital Technologies, Inc. Methods and systems for providing data security in data storage devices
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
WO2012082792A2 (en) 2010-12-13 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for auto-commit memory
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US20120239860A1 (en) 2010-12-17 2012-09-20 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
WO2012100087A2 (en) 2011-01-19 2012-07-26 Fusion-Io, Inc. Apparatus, system, and method for managing out-of-service conditions
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
KR20130008300A (ko) * 2011-07-12 2013-01-22 삼성전자주식회사 오버 프로그램을 이용하여 소거 동작을 수행하는 플래시 메모리 장치 및 그 동작방법
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
FI125308B (en) 2012-07-05 2015-08-31 Blancco Oy Ltd Device, arrangement, method, and computer program for erasing data stored in mass storage
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
KR20150104858A (ko) * 2014-03-06 2015-09-16 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
US20160034217A1 (en) * 2014-07-31 2016-02-04 Samsung Electronics Co., Ltd. Memory controller configured to control data sanitization and memory system including the same
US9753503B2 (en) * 2014-08-14 2017-09-05 Samsung Electronics Co., Ltd. Memory card socket and data processing device including the same
KR20160024530A (ko) * 2014-08-26 2016-03-07 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
US10795810B2 (en) * 2018-09-10 2020-10-06 Micron Technology, Inc. Wear-leveling scheme for memory subsystems

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009495A (en) * 1989-12-29 1999-12-28 Packard Bell Nec Protected address range in an electrically erasable programmable read only memory
DE69223099T2 (de) * 1991-08-09 1998-06-10 Toshiba Kawasaki Kk Aufzeichnungsgerät für eine Speicherkarte
US5559988A (en) * 1993-12-30 1996-09-24 Intel Corporation Method and circuitry for queuing snooping, prioritizing and suspending commands
US5913215A (en) * 1996-04-09 1999-06-15 Seymour I. Rubinstein Browse by prompted keyword phrases with an improved method for obtaining an initial document set
JP2001051904A (ja) * 1999-08-11 2001-02-23 Hitachi Ltd 不揮発性半導体メモリを用いた外部記憶装置
RU2257609C2 (ru) * 1999-10-21 2005-07-27 Мацусита Электрик Индастриал Ко., Лтд. Устройство доступа к полупроводниковой карте памяти, компьютерно-считываемый носитель записи, способ инициализации и полупроводниковая карта памяти
DE60132229T2 (de) * 2000-10-26 2008-12-18 Matsushita Electric Industrial Co., Ltd., Kadoma Speichervorrichtung, speichersteuerverfahren und programm

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007317078A (ja) * 2006-05-29 2007-12-06 Matsushita Electric Ind Co Ltd 不揮発性メモリ、メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP2010512584A (ja) * 2006-12-06 2010-04-22 フュージョン マルチシステムズ,インク.(ディービイエイ フュージョン−アイオー) 空データトークン指令を有する要求デバイスからのデータを管理する装置、システムおよび方法
JP2012523045A (ja) * 2009-03-31 2012-09-27 クゥアルコム・インコーポレイテッド ウェアレベリングを有する記憶デバイス上でセンシティブデータを保護するための方法
JP2010267186A (ja) * 2009-05-18 2010-11-25 Nec System Technologies Ltd 大容量記憶装置、リアサイン方法、プログラム及びディスクアレイ装置
US8312412B2 (en) 2009-06-30 2012-11-13 Kabushiki Kaisha Toshiba Support apparatus and design support method
WO2011007511A1 (ja) * 2009-07-16 2011-01-20 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム
JPWO2011007511A1 (ja) * 2009-07-16 2012-12-20 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム
US8447922B2 (en) 2009-07-16 2013-05-21 Panasonic Corporation Memory controller, nonvolatile storage device, accessing device, and nonvolatile storage system
JP2012203864A (ja) * 2011-03-28 2012-10-22 Toshiba Corp メモリシステム、コントローラ、およびメモリシステムの制御方法
JP2016504695A (ja) * 2013-01-28 2016-02-12 フジツウ テクノロジー ソリューションズ インタレクチュアル プロパティ ゲーエムベーハー 不揮発性半導体マスメモリを安全に消去するための方法、コンピュータシステム、及びコンピュータプログラム
US9671964B2 (en) 2013-01-28 2017-06-06 Fujitsu Technology Solutions Intellectual Property Gmbh Method of securely erasing a non-volatile semiconductor mass memory, computer system, and computer program product
JP2014164427A (ja) * 2013-02-22 2014-09-08 Canon Inc データ処理装置及びその制御方法
JP2015090724A (ja) * 2013-11-07 2015-05-11 株式会社Genusion 記憶装置及びこれを用いた情報端末

Also Published As

Publication number Publication date
US20050257017A1 (en) 2005-11-17

Similar Documents

Publication Publication Date Title
JP2005327296A (ja) メモリカード内の隠されたメモリを消去する方法及び装置
JP3718578B2 (ja) メモリ管理方法及びメモリ管理装置
US7444460B2 (en) Data storage device, method for updating management information in data storage device, and computer program
KR100545458B1 (ko) 외부기억장치와그제어장치,및데이타송수신장치
JP4852548B2 (ja) 消去可能/書換え可能メモリ用に設計されたホスト装置で一回又は数回プログラム可能なメモリを使用する方法および装置
JP4192129B2 (ja) メモリ管理装置
US11216206B2 (en) Method of operating data storage device
US8266366B2 (en) Memory device operable in read-only and write-once, read-many (WORM) modes of operation
US9152562B2 (en) Storage sub-system for a computer comprising write-once memory devices and write-many memory devices and related method
US20080320209A1 (en) High Performance and Endurance Non-volatile Memory Based Storage Systems
JP2008523468A (ja) 不揮発記録媒体消去システム及び方法
US20100186077A1 (en) System, controller, and method thereof for transmitting data stream
JP3175648B2 (ja) 記憶装置及びデータの書込み方法
KR101365134B1 (ko) 웨어 레벨링을 갖는 저장 디바이스에서 중요 데이터를 보호하기 위한 방법
JP2003242470A (ja) 外部接続機器及びホスト機器
JP5241065B2 (ja) 外部メモリに貯蔵されたデータの変更の有無をチェックする装置及び方法
JP2005115562A (ja) フラッシュrom制御装置
JP2016504695A (ja) 不揮発性半導体マスメモリを安全に消去するための方法、コンピュータシステム、及びコンピュータプログラム
JP3818130B2 (ja) データ管理方法及び装置及びデータ管理プログラム及びデータ管理プログラムを格納した記憶媒体
JP2009193563A (ja) フラッシュメモリ装置のアクセスを保護するシステム及びその方法
JPH11317068A (ja) メモリカ―ド
JP2000112836A (ja) 情報処理装置、情報格納方法および記憶媒体
JP2002183700A (ja) メモリカード、制御装置、データ処理システム及びデータ処理方法
JP2007133895A (ja) メモリカード及びこの制御装置並びにデータ送受信システム
JP2000099676A (ja) メモリカ―ド及びそのデ―タ送受信装置