JP2012113699A - 改良されたフラッシュメモリ互換性の電子デバイスと相関する方法 - Google Patents

改良されたフラッシュメモリ互換性の電子デバイスと相関する方法 Download PDF

Info

Publication number
JP2012113699A
JP2012113699A JP2011237052A JP2011237052A JP2012113699A JP 2012113699 A JP2012113699 A JP 2012113699A JP 2011237052 A JP2011237052 A JP 2011237052A JP 2011237052 A JP2011237052 A JP 2011237052A JP 2012113699 A JP2012113699 A JP 2012113699A
Authority
JP
Japan
Prior art keywords
block
physical
virtual
page
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011237052A
Other languages
English (en)
Other versions
JP5694895B2 (ja
Inventor
Jia-Ruei Wang
佳瑞 王
Ssu-Po Chin
嗣勃 秦
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.)
HTC Corp
Original Assignee
HTC 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 HTC Corp filed Critical HTC Corp
Publication of JP2012113699A publication Critical patent/JP2012113699A/ja
Application granted granted Critical
Publication of JP5694895B2 publication Critical patent/JP5694895B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】改良されたフラッシュメモリ互換性の電子デバイスと相関する方法を提供する。
【解決手段】改良されたフラッシュメモリ互換性の電子デバイスと相関する方法が開示される。電子デバイスは、NANDフラッシュ、処理ユニットとプログラムメモリを有する。プログラムメモリは、アプリケーションソフトとオペレーティングシステムのコードを保存し、処理ユニットにより読み出し、及び、実行される。アプリケーションソフトは、特定のページサイズで、NANDフラッシュアクセスを要求する。オペレーティングシステムは、アプリケーションソフトとNANDフラッシュ間の媒介となり、デバイスドライバーを提供し、NANDフラッシュの複数の物理ページを、特定のページサイズの各仮想ページに割り当て、仮想ページを参照することにより、アプリケーションソフトからのNANDフラッシュアクセス要求に応答する。
【選択図】図1B

Description

本発明は、フラッシュメモリを備えた電子デバイスに関するものであって、特に、各種ページサイズのNANDフラッシュの使用を可能にするフラッシュメモリ互換性設計に関するものである。
フラッシュメモリは、電気的に消去、及び、再プログラムできる不揮発性コンピュータストレージチップである。メモリカード、USBフラッシュデバイス、MP3プレーヤー、ソリッドステート装置(solid−state drives)、サムドライブ(thumb drives)、PDA等に用いられて、データの通常の保存とコンピュータと別のデジタル製品間の伝送を行う。
NANDフラッシュは、フラッシュメモリの一種である。一般に、NANDフラッシュの保存空間は、複数の物理ブロックに分割され、且つ、各物理ブロックは、更に、複数の物理ページに分割される。NANDフラッシュの読み取りとプログラミング操作は、一度に1ページ実行されなければならず、ロック解除(unlocking)と消去(erasing)は、ブロックを単位として(block−wise fashion)実行されなければならない。よって、NANDフラッシュを備えた電子デバイスのアプリケーションソフトを設計する時、NANDフラッシュの物理ページサイズと物理ブロックサイズが考慮される必要がある。例えば、備えられたNANDフラッシュが2K+64バイトのページに分割される場合、アプリケーションソフトは、特定のページサイズ、2K+64バイトに基づいて、NANDフラッシュにアクセスできるように設計されなければならず、備えられたNANDフラッシュが4K+128バイトのページに分割される場合、アプリケーションソフトは、別の特定のページサイズ、4K+128バイトに基づいて、NANDフラッシュにアクセスできるように設計されなければならない。異なるページサイズのNANDフラッシュとの互換性のため、電子デバイスのアプリケーションソフトの設計は非常に複雑である。
改良されたフラッシュメモリ互換性の電子デバイスと電子デバイスのフラッシュメモリ互換性を改善する方法を提供し、上述の問題を解決することを目的とする。
本発明の実施形態による電子デバイスは、NANDフラッシュ、処理ユニット、及び、プログラムメモリを含む。NANDフラッシュは複数の物理ブロックを有し、且つ、各物理ブロックは、更に、複数の物理ページに分割される。プログラムメモリは、アプリケーションソフトとオペレーティングシステムのコードを保存し、処理ユニットにより読み出し、実行される。処理ユニットにより実行されるアプリケーションソフトは、特定のページサイズで、NANDフラッシュアクセスを要求する。処理ユニットにより実行されるオペレーティングシステムは、アプリケーションソフトとNANDフラッシュ間の媒介となり、デバイスドライバーを提供し、NANDフラッシュの複数の物理ページを、特定のページサイズの各仮想ページに割り当て、仮想ページを参照することにより、アプリケーションソフトから要求されるNANDフラッシュアクセス要求に応答する。
別の実施形態中、電子デバイスのフラッシュメモリ互換性を改善する方法が紹介される。まず、電子デバイス上に備えられるNANDフラッシュの物理ページサイズが観察され、物理ページサイズと特定のページサイズ間のサイズの比率1:Nが判断され、Nは数値で、且つ、特定のページサイズが、NANDフラッシュアクセス要求の電子デバイスのアプリケーションソフト中で定義される。Nの値に基づいて、仮想ページアロケーションが導入され、NANDフラッシュのN物理ページを各仮想ページに割り当てる。仮想ページにより、アプリケーションソフトからのNANDフラッシュアクセス要求に応じる。
本発明のフラッシュメモリ互換性設計は、各種ページサイズのNANDフラッシュの使用を可能にする。
本発明の実施形態による電子デバイスを示す図である。 電子デバイス100のソフトウェアアーキテクチャを示す図である。 仮想ページアロケーションのコンセプトを示す図である。 ページを単位とした読み取り/書き込み指令転換技術を示す図である。 仮想ブロックアロケーションのコンセプトを示す図である。 ページを単位とした読み取り/書き込み指令転換技術を示す図である。 ブロック消去指令転換技術を示す図である。 状態観察要求の転換技術を示す図である。 ステータス設定指令要求の転換技術を示す図である。
図1Aは、本発明の実施形態による電子デバイスを示す図である。電子デバイス100は、NANDフラッシュ102、処理ユニット104、プログラムメモリ106、及び、入力/出力ユニット108を含む。プログラムメモリ106は、アプリケーションソフト110とオペレーティングシステム112のコードを保存する。処理ユニット104は、プログラムメモリ106のコードを読み出し、実行して、様々なアプリケーションを実行し、且つ、NANDフラッシュ102と入力/出力ユニット108を管理するオペレーティングシステムをビルドする。
図1Bは、電子デバイス100のソフトウェアアーキテクチャである。ユーザー202は、アプリケーション204で、電子デバイス100を操作する。簡単にするため、アプリケーション204のためにコード化されたアプリケーションソフトは、特定の仕様のNANDフラッシュだけにアクセスが可能である。例えば、アプリケーション204により要求されるNANDフラッシュアクセス要求は、特定のページサイズだけと互換性を有する。しかし、電子デバイス100上に備えられたNANDフラッシュ102(物理ブロックB1,B2…Bnに分割され、各物理ブロックは、更に、物理ページに分割される)は、アプリケーションソフト中で定義される特定のページサイズと異なる物理ページサイズを有する。この問題に対処するため、仮想ページアロケーション技術が、オペレーティングシステム内のデバイスドライバーのソフトウェア設計に導入される。図のように、オペレーティングシステム206は、アプリケーション204とNANDフラッシュ102間の媒介となり、オペレーティングシステム206により提供されるデバイスドライバー208は、仮想ページアロケーション技術を実現する。仮想ページアロケーション技術により、NANDフラッシュ102の幾つかの物理ページは、単一の仮想ページとして割り当てられる(破線の円を参照)。各仮想ページのサイズは、アプリケーション204のために定義された特定のページサイズに適合する。デバイスドライバー208は、NANDフラッシュ102を駆動して、仮想ページを参照することにより、アプリケーション204からのNANDフラッシュアクセス要求に応答する。このように、たとえ、NANDフラッシュ102の物理ページサイズがどのくらいであっても、特定のフラッシュメモリに対し設計されたアプリケーション204は正常に作動する。異なる仕様のNANDフラッシュは、開示された電子デバイス100と互換性がある。
図2は、仮想ページアロケーションのコンセプトを示す。図のように、アプリケーション204からのNANDフラッシュ要求は、特定のページサイズ−−4K+128バイトに基づき、データの4KバイトとECCのようなページ情報の128バイトがある。デバイスドライバー208の仮想ページアロケーションにより、NANDフラッシュ102の二個の物理ページは、単一の仮想ページとして割り当てられる。第一物理ページは2K+64バイトを提供し、第二物理ページは2K+64バイトを提供する。このように、各仮想ページは特定のページサイズに符合し、アプリケーション204から要求されるNANDフラッシュに適切に応答できる。注意すべきことは、単一の仮想ページ中、データバイトは、二個の部分Data1とData2に分けられる。第一部分Data1は第一物理ページに含まれ、第二部分Data2は第二物理ページに含まれる。仮想ページの情報バイト(以下、仮想ページ情報)では、完全に、第一物理ページに含まれる、又は、完全に、第二物理ページに含まれる。別の実施形態中、第一と第二物理ページ両方は、それらの情報バイトを提供し、仮想ページ情報を保存する。
上述の仮想ページアロケーションに加え、デバイスドライバー208は、更に、指令転換を含む。
図3は、読み取り/書き込み指令転換を示す。アプリケーション204中、各仮想ページ読み取り/書き込み指令は、完全な仮想ページを読み取り/書き込みすることを指示する。デバイスドライバー208は、各仮想ページ読み取り/書き込み指令を分離した物理ページ読み取り/書き込み指令Instruction_1とInstruction_2に転換する働きをする。要求された仮想ページの第一と第二物理ページは、それぞれ、物理ページ読み取り/書き込み指令、Instruction_1とInstruction_2により、読み取り/書き込みされる。
別の実施形態中、デバイスドライバー208は、更に、仮想ブロックアロケーションを含む。図4は、仮想ブロックアロケーションのコンセプトを示す。アプリケーション204中、許容範囲のブロックサイズは、設計者により選択された特定の値に制限される。アプリケーションソフトで定義される特定のブロックサイズは、単一の仮想ブロックのサイズを決定する。図4の例中、特定のブロックサイズは、64*(4K+128バイト)である。NANDフラッシュ102を駆動して、アプリケーション204からの指令に応答するため、デバイスドライバー208は、NANDフラッシュ102内の二個の物理ブロック(第一物理ブロックと第二物理ブロック)を単一の仮想ブロックとして割り当てる。この実施形態中、第一物理ブロックは、64個の物理ページPhyPage1−PhyPage64を含み、第二物理ブロックも、64個の物理ページPhyPage65−PhyPage128を含む。各物理ページは2K+64バイトを含むので、単一の仮想ブロックに割り当てられる総保存空間は64*2*(2K+64バイト)を含み、アプリケーションソフトに定義される特定のブロックサイズに等しい。仮想ブロックも、アプリケーション204の指令に対応するように割り当てられる。注意すべきことは、各仮想ブロックのステータス(以下、仮想ブロックステータス、仮想ブロックを形成する全物理ブロックのステータス(有効/無効)を示す)は、物理ブロックのステータスバイトに保存される。例えば、仮想ブロックステータスは、第一物理ブロックのステータスバイトにより完全に保存される、又は、第二物理ブロックのステータスバイトにより完全に保存される、又は、別の例で、仮想ブロックのステータスは、第一と第二物理ブロック両方のステータスバイトに分散する。
上述の仮想ブロックアロケーションに加え、デバイスドライバー208は、更に、ブロックを単位とした指令転換を含む。
図5は、読み取り/書き込み指令転換を示す。アプリケーション204中、各仮想ブロック読み取り/書き込み指令は、完全な仮想ブロックを読み取り/書き込みするように指示する。デバイスドライバー208は、各仮想ブロック読み取り/書き込み指令を、分離したブロック読み取り/書き込み指令Instruction_1とInstruction_2に転換する働きをする。要求された仮想ブロックの第一と第二物理ブロックは、それぞれ、物理ブロック読み取り/書き込み指令、Instruction_1とInstruction_2により、読み取り/書き込みされる。
図6は、消去指令転換を示す。アプリケーション204中、各仮想ブロック消去指令は、完全な仮想ブロックを消去するよう指示する。デバイスドライバー208は、各仮想ブロック消去指令を、分離したブロック消去指令Instruction_1とInstruction_2に転換する働きをする。要求された仮想ブロックの第一と第二物理ブロックは、それぞれ、物理ブロック消去指令、Instruction_1とInstruction_2により消去される。
図7は、状態観察要求の転換を示す。GET STATUS指令は、通常、ブロックステータス(無効/有効)を観察するのに用いられる。アプリケーション204中、各仮想ブロック状態観察指令は、要求された仮想ブロックの有効性を観察するように指示する。デバイスドライバー208は、各仮想ブロック状態観察指令を、分離したブロックステータス観察指令Instruction_1とInstruction_2に転換する働きをする。要求された仮想ブロックの第一物理ブロックのステータスは、物理ブロックステータス観察指令Instruction_1により観察され、要求された仮想ブロックの第二物理ブロックのステータスは、物理ブロックステータス観察指令Instruction_2により観察される。観察された結果が、物理ブロック中のいずれかが無効であることを示す時、仮想ブロック全体が無効であると見なされる。
図8は、ステータス設定(SET STATUS)指令要求の転換を示す図である。ステータス設定指令は、ブロックステータス(無効/有効と表示)の設定に用いられる。アプリケーション204中、各仮想ブロックステータス設定指令は、要求された仮想ブロックのステータスを設定するよう指示する。デバイスドライバー208は、各仮想ブロックステータス設定指令を、物理ブロックステータス設定指令に転換する働きをし、全体の仮想ブロックのステータスを、要求された仮想ブロックの物理ブロックのいずれか一つのステータスバイトに保存する。図8の例中、物理ブロックステータス設定指令は、全体の要求された仮想ブロックのステータスを、第一物理ブロックの予備空間に保存する。別の例で、物理ブロックステータス設定指令は、全体の要求された仮想ブロックのステータスを、第二物理ブロックの予備空間に保存する。
この段落は、電子デバイスのフラッシュメモリ互換性を改善する方法について検討する。まず、電子デバイス上に備えられたNANDフラッシュの物理ページサイズが観察され、物理ページサイズと特定のページサイズ間のサイズの比例1:Nが判断され、Nは数値、且つ、特定のページサイズは、NANDフラッシュアクセス要求の電子デバイスのアプリケーションソフトで定義される。Nの値に基づいて、仮想ページアロケーション技術が実行され、NANDフラッシュのN物理ページを、各仮想ページに割り当てる。仮想ページを参照することにより、アプリケーションソフトからのNANDフラッシュアクセス要求が適切に応答される。検討された方法は、あらゆるANDフラッシュを備える電子デバイスに応用できる。
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や変更を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
100 電子デバイス
102 NANDフラッシュ
104 処理ユニット
106 プログラムメモリ
108 入力/出力ユニット
110 アプリケーションソフト
112 オペレーティングシステム
202 ユーザー
204 アプリケーション
206 オペレーティングシステム
208 デバイスドライバー
B1、B2、…、Bn 物理ブロック
Data1、Data2 第一、第二部分のデータバイト
PhyPage1…PhyPage128 物理ページ

Claims (18)

  1. 改良されたフラッシュメモリ互換性の電子デバイスであって、
    複数の物理ブロックを含み、前記の各物理ブロックは、更に、複数の物理ページに分割されるNANDフラッシュと、
    処理ユニットと、
    アプリケーションソフトとオペレーティングシステムのコードを保存するプログラムメモリと、
    を含み、
    前記処理ユニットにより実行される前記アプリケーションソフトは、特定のページサイズで、NANDフラッシュアクセスを要求し、
    前記処理ユニットにより実行される前記オペレーティングシステムは、前記アプリケーションソフトと前記NANDフラッシュ間の媒介となり、デバイスドライバーを提供して、前記NANDフラッシュの複数の前記物理ページを、特定のページサイズの各仮想ページに割り当て、これらの仮想ページを参照することにより、前記アプリケーションソフトからのNANDフラッシュアクセス要求に応答することを特徴とする電子デバイス。
  2. 前記オペレーティングシステムにより提供され、且つ、前記処理ユニットにより実行される前記デバイスドライバーは、更に、各仮想ページの仮想ページ情報を、対応する前記物理ページの情報バイトに保存することを特徴とする請求項1に記載の電子デバイス。
  3. 前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、前記アプリケーションソフトにより要求される単一の仮想ページ読み取り/書き込み指令を、分離したページ読み取り/書き込み指令に転換して、割り当てられる前記物理ページを別々に、読み取り/書き込みし、前記仮想ページ読み取り/書き込み指令がアクセスしたい前記仮想ページを形成することを特徴とする請求項1に記載の電子デバイス。
  4. 前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、前記NANDフラッシュの複数の物理ブロックを、前記アプリケーションソフトにアクセス可能な単一の仮想ブロックとして割り当てることを特徴とする請求項1に記載の電子デバイス。
  5. 前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、各仮想ブロックの仮想ブロック状態を、対応する前記物理ブロックのステータスバイトに保存することを特徴とする請求項4に記載の電子デバイス。
  6. 前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、単一の仮想ブロック読み取り/書き込み指令を、分離したブロック読み取り/書き込み指令に転換して、別々に、前記物理ブロックを読み取り/書き込みし、前記物理ブロックが割り当てられて、前記仮想ブロック読み取り/書き込み指令がアクセスしたい前記仮想ブロックを形成することを特徴とする請求項4に記載の電子デバイス。
  7. 前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、単一の仮想ブロック消去指令を、分離したブロック消去指令に転換し、別々に、前記物理ブロックを消去し、前記物理ブロックが割り当てられて、前記仮想ブロック消去指令が消去したい前記仮想ブロックを形成することを特徴とする請求項4に記載の電子デバイス。
  8. 前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、単一の仮想ブロック状態観察指令を、分離したブロックステータス観察指令に転換し、別々に、前記物理ブロックのステータスを観察し、前記物理ブロックが割り当てられて、前記仮想ブロック状態観察指令が参照する前記仮想ブロックを形成することを特徴とする請求項4に記載の電子デバイス。
  9. 前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、単一の仮想ブロックステータス設定指令を、単一の物理ブロックステータス設定指令に転換し、一個の仮想ブロックのステータスを、いずれかの前記物理ブロックのステータスバイトに記録し、前記物理ブロックが割り当てられて、前記仮想ブロックを形成することを特徴とする請求項4に記載の電子デバイス。
  10. 電子デバイスのフラッシュメモリ互換性を改善する方法であって、
    前記電子デバイス上に備えられるNANDフラッシュの物理ページサイズを観察し、前記NANDフラッシュは、複数の物理ブロックを含み、前記の各物理ブロックは、更に、複数の物理ページに分割されるステップと、
    前記物理ページサイズと特定のページサイズ間のサイズの比率1:Nを判断し、Nは数値、且つ、前記特定のページサイズは、前記電子デバイスのアプリケーションソフトのNANDフラッシュアクセス要求を定義するステップと、
    前記NANDフラッシュのN物理ページを、各仮想ページに割り当てるステップと、
    前記仮想ページを参照することにより、前記アプリケーションソフトからの前記NANDフラッシュアクセス要求に応答するステップと、
    を含むことを特徴とする方法。
  11. 更に、各仮想ページの仮想ページ情報を、対応する前記物理ページの情報バイトに保存することを特徴とする請求項10に記載の方法。
  12. 更に、前記アプリケーションソフトにより要求される単一の仮想ページ読み取り/書き込み指令を、分離したページ読み取り/書き込み指令に転換して、別々に、前記物理ページを読み取り/書き込みし、前記物理ページが割り当てられて、前記仮想ページ読み取り/書き込み指令が参照する前記仮想ページを形成することを特徴とする請求項10に記載の方法。
  13. 更に、前記NANDフラッシュのN物理ブロックを、前記アプリケーションソフトにアクセス可能な単一の仮想ブロックとして割り当てることを特徴とする請求項10に記載の方法。
  14. 更に、各仮想ブロックの仮想ブロックステータスを、対応する前記物理ブロックのステータスバイトに保存することを特徴とする請求項13に記載の方法。
  15. 更に、単一の仮想ブロック読み取り/書き込み指令を、分離したブロック読み取り/書き込み指令に転換し、別々に、前記物理ブロックを読み取り/書き込みし、前記物理ブロックが割り当てられて、前記仮想ブロック読み取り/書き込み指令が参照する前記仮想ブロックを形成することを特徴とする請求項13に記載の方法。
  16. 更に、単一の仮想ブロック消去指令を、分離したブロック消去指令に転換して、前記物理ブロックを消去し、前記物理ブロックが割り当てられて、前記仮想ブロック消去指令が参照する前記仮想ブロックを形成することを特徴とする請求項13に記載の方法。
  17. 更に、単一の仮想ブロック状態観察指令を、分離したブロックステータス観察指令に転換し、別々に、前記物理ブロックのステータスを観察し、前記物理ブロックが割り当てられて、前記仮想ブロック状態観察指令が参照する前記仮想ブロックを形成することを特徴とする請求項13に記載の方法。
  18. 更に、単一の仮想ブロックステータス設定指令を、単一の物理ブロックステータス設定指令に転換し、単一の仮想ブロックのステータスを、いずれかの物理ブロックステータスバイトに記録して、前記物理ブロックが割り当てられて、前記仮想ブロックを形成することを特徴とする請求項13に記載の方法。
JP2011237052A 2010-11-26 2011-10-28 改良されたフラッシュメモリ互換性の電子デバイスと相関する方法 Expired - Fee Related JP5694895B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US41740010P 2010-11-26 2010-11-26
US61/417,400 2010-11-26
US13/196,966 US8452914B2 (en) 2010-11-26 2011-08-03 Electronic devices with improved flash memory compatibility and methods corresponding thereto
US13/196,966 2011-08-03

Publications (2)

Publication Number Publication Date
JP2012113699A true JP2012113699A (ja) 2012-06-14
JP5694895B2 JP5694895B2 (ja) 2015-04-01

Family

ID=44865945

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011237052A Expired - Fee Related JP5694895B2 (ja) 2010-11-26 2011-10-28 改良されたフラッシュメモリ互換性の電子デバイスと相関する方法

Country Status (6)

Country Link
US (1) US8452914B2 (ja)
EP (1) EP2458494A1 (ja)
JP (1) JP5694895B2 (ja)
KR (1) KR101348048B1 (ja)
CN (1) CN102591784A (ja)
TW (1) TWI443511B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015114754A1 (ja) * 2014-01-29 2015-08-06 株式会社日立製作所 ストレージ装置

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
CN103902461A (zh) * 2012-12-27 2014-07-02 中兴通讯股份有限公司 不同Nand闪存兼容方法及装置
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9916213B1 (en) 2013-03-15 2018-03-13 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9858084B2 (en) 2013-03-15 2018-01-02 Bitmicro Networks, Inc. Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
KR101635704B1 (ko) 2015-02-25 2016-07-01 영남대학교 산학협력단 대용량 입출력을 지원하는 저장장치에 기반한 가상 메모리 시스템
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
CN107894903B (zh) * 2017-12-07 2021-08-03 北京兆易创新科技股份有限公司 Spi-nand的配置文件的io方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1196685A (ja) * 1997-09-18 1999-04-09 Toshiba Corp コンピュータシステム
JP2003216483A (ja) * 2002-01-21 2003-07-31 Fujitsu Ltd メモリコントローラおよびメモリシステム装置
JP2004342126A (ja) * 1998-02-25 2004-12-02 Lexar Media Inc 複数のデバイスへ同時書き込み操作を行うことにより高まるフラッシュメモリデバイスにおけるメモリ性能

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5556448A (en) * 1995-01-10 1996-09-17 United Air Specialists, Inc. Electrostatic precipitator that operates in conductive grease atmosphere
US6970992B2 (en) 1999-10-04 2005-11-29 Intel Corporation Apparatus to map virtual pages to disparate-sized, non-contiguous real pages and methods relating thereto
US6957237B1 (en) * 2000-06-02 2005-10-18 Sun Microsystems, Inc. Database store for a virtual heap
GB0030226D0 (en) * 2000-12-12 2001-01-24 Ibm A data storage system and a method of storing data including a multi-level cache
US6591330B2 (en) * 2001-06-18 2003-07-08 M-Systems Flash Disk Pioneers Ltd. System and method for flexible flash file
US7516297B2 (en) 2005-11-10 2009-04-07 Hewlett-Packard Development Company, L.P. Memory management
US8019959B2 (en) 2007-02-09 2011-09-13 Marvell World Trade Ltd. Nonvolatile memory system
WO2009053962A2 (en) 2007-10-22 2009-04-30 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
KR20090106221A (ko) * 2008-04-04 2009-10-08 엘지전자 주식회사 병렬 구조를 가지는 플래시 메모리 시스템 및 그 데이터기록방법 및 플래시 메모리
US8180954B2 (en) 2008-04-15 2012-05-15 SMART Storage Systems, Inc. Flash management using logical page size
EP2297742B1 (en) * 2008-05-16 2013-07-24 Fusion-io, Inc. Apparatus, system, and method for detecting and replacing failed data storage

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1196685A (ja) * 1997-09-18 1999-04-09 Toshiba Corp コンピュータシステム
JP2004342126A (ja) * 1998-02-25 2004-12-02 Lexar Media Inc 複数のデバイスへ同時書き込み操作を行うことにより高まるフラッシュメモリデバイスにおけるメモリ性能
JP2003216483A (ja) * 2002-01-21 2003-07-31 Fujitsu Ltd メモリコントローラおよびメモリシステム装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015114754A1 (ja) * 2014-01-29 2015-08-06 株式会社日立製作所 ストレージ装置
JP6076506B2 (ja) * 2014-01-29 2017-02-08 株式会社日立製作所 ストレージ装置
US10061710B2 (en) 2014-01-29 2018-08-28 Hitachi, Ltd. Storage device

Also Published As

Publication number Publication date
KR20120057521A (ko) 2012-06-05
TWI443511B (zh) 2014-07-01
US8452914B2 (en) 2013-05-28
TW201229753A (en) 2012-07-16
US20120137050A1 (en) 2012-05-31
JP5694895B2 (ja) 2015-04-01
EP2458494A1 (en) 2012-05-30
CN102591784A (zh) 2012-07-18
KR101348048B1 (ko) 2014-01-03

Similar Documents

Publication Publication Date Title
JP5694895B2 (ja) 改良されたフラッシュメモリ互換性の電子デバイスと相関する方法
CN109582599B (zh) 数据储存装置以及非挥发式存储器操作方法
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US20190171522A1 (en) Data storage device, host device for data storage device operations, and data writing method
TWI502594B (zh) 用於快閃儲存裝置之半區塊管理
CN109697027B (zh) 包括共享存储器区域和专用存储器区域的数据存储设备
KR20190054426A (ko) 메모리 시스템 및 그것의 동작 방법
KR102595233B1 (ko) 데이터 처리 시스템 및 그것의 동작 방법
JP2008009527A (ja) メモリシステム
US20150058531A1 (en) Data writing method, memory control circuit unit and memory storage apparatus
US20130275655A1 (en) Memory management method and memory controller and memory storage device using the same
TWI489272B (zh) 保護資料的方法、記憶體控制器與記憶體儲存裝置
TWI430091B (zh) Semiconductor memory device
US20140013030A1 (en) Memory storage device, memory controller thereof, and method for writing data thereof
KR20220077691A (ko) 호스트, 메모리 컨트롤러 및 메모리 장치를 포함하는 전자 시스템 및 이의 동작 방법
CN109697017B (zh) 数据储存装置以及非挥发式存储器操作方法
CN111198825A (zh) 存储设备和包括存储设备的存储系统
JP4737223B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN111338995A (zh) 数据存储装置及操作数据存储装置的方法
TWI724483B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
CN113836047A (zh) 存储装置及其操作方法
US11914900B2 (en) Storage system and method for early command cancelation
JP4985108B2 (ja) データ記憶装置およびその制御方法
KR20230011214A (ko) 스토리지 장치 및 이의 동작 방법
KR20220159270A (ko) 스토리지 장치 및 그 동작 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130730

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131001

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140131

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140207

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20140314

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150205

R150 Certificate of patent or registration of utility model

Ref document number: 5694895

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees