JP5416697B2 - Method and system for communicating with a non-volatile memory storage device - Google Patents

Method and system for communicating with a non-volatile memory storage device Download PDF

Info

Publication number
JP5416697B2
JP5416697B2 JP2010515224A JP2010515224A JP5416697B2 JP 5416697 B2 JP5416697 B2 JP 5416697B2 JP 2010515224 A JP2010515224 A JP 2010515224A JP 2010515224 A JP2010515224 A JP 2010515224A JP 5416697 B2 JP5416697 B2 JP 5416697B2
Authority
JP
Japan
Prior art keywords
storage device
command
host system
file
analysis module
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.)
Expired - Fee Related
Application number
JP2010515224A
Other languages
Japanese (ja)
Other versions
JP2010534873A (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/771,203 external-priority patent/US8429328B2/en
Priority claimed from US11/771,165 external-priority patent/US8433842B2/en
Application filed by サンディスク テクノロジィース インコーポレイテッド filed Critical サンディスク テクノロジィース インコーポレイテッド
Publication of JP2010534873A publication Critical patent/JP2010534873A/en
Application granted granted Critical
Publication of JP5416697B2 publication Critical patent/JP5416697B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • 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
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • G06F12/0661Configuration or reconfiguration with centralised address assignment and decentralised selection
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/177Smart card

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、不揮発性メモリストレージ装置に関し、より具体的には不揮発性メモリストレージ装置との通信に関する。   The present invention relates to a nonvolatile memory storage device, and more specifically to communication with a nonvolatile memory storage device.

関連出願の相互参照
本願は、その全体が本願明細書において参照により援用されている、2007年6月29日に出願された米国特許出願第11/771,203号(特許文献1)と2007年6月29日に出願された米国特許出願第11/771,165号(特許文献2)の利益を主張する。
CROSS-REFERENCE TO RELATED APPLICATIONS This application, the entirety of which is hereby incorporated by reference, filed on June 29, 2007 U.S. Patent Application Serial No. 11 / 771,203 (Patent Document 1) and 2007 Claims the benefit of US patent application Ser. No. 11 / 771,165, filed Jun. 29.

情報の蓄積にあたって、不揮発性メモリストレージ装置が一般的に利用されている。これらの装置は携帯電話機、デジタルカメラ、デスクトップコンピュータ、ラップトップコンピュータ、およびその他の類似のシステムで使われている(本願明細書では合同的かつ互換的に「ホストシステム」または「ホスト」と呼ぶ)。
各種のホストシステムプラットフォームではソフトウェア層(ソフトウェア開発キット(SDK)層と呼ばれることもある)を使用し、不揮発性メモリスストレージデバイスドライバを介して不揮発性メモリストレージ装置と通信する。不揮発性メモリストレージ装置のさらなる機能にアクセスするため、ホストシステムにSDK層を追加することもあり、これにより、これらのSDK層なしでは利用できない不揮発性メモリストレージ装置のさらなる機能にアクセスすることができる。異なるホストシステム提供業者へのSDK移植は厄介であり、これを軽減することが望まれる。
A nonvolatile memory storage device is generally used for storing information. These devices are used in mobile phones, digital cameras, desktop computers, laptop computers, and other similar systems (referred to herein collectively and interchangeably as “host systems” or “hosts”). .
Various host system platforms use a software layer (sometimes referred to as a software development kit (SDK) layer) to communicate with a non-volatile memory storage device via a non-volatile memory storage device driver. In order to access further functions of the non-volatile memory storage device, an SDK layer may be added to the host system, thereby allowing access to additional functions of the non-volatile memory storage device that are not available without these SDK layers. . Porting SDK to different host system providers is cumbersome and it is desirable to mitigate this.

米国特許出願第11/771,203号US patent application Ser. No. 11 / 771,203 米国特許出願第11/771,165号US patent application Ser. No. 11 / 771,165

一実施形態において、ストレージ装置のための方法が提供される。この方法は、ストレージ装置のコマンド解析モジュールにより、ホストシステムからのコマンドを解釈することと、コマンド解析モジュールにより、操作に関する情報をコマンドから抽出することとを含む。   In one embodiment, a method for a storage device is provided. This method includes interpreting a command from the host system by the command analysis module of the storage apparatus, and extracting information related to the operation from the command by the command analysis module.

別の実施形態において、ストレージ装置のための方法が提供される。この方法は、ストレージ装置により、ホストシステムからプラットフォーム独立形式コマンドを受信することと、ストレージ装置のコマンド解析モジュールにより、コマンドを解釈することと、コマンド解析モジュールにより、操作に関する情報をコマンドから抽出することと、ストレージ装置によって操作が実行された後、コマンド解析モジュールにより、ホストシステムへ応答を送信することとを含む。   In another embodiment, a method for a storage device is provided. In this method, the storage device receives a platform independent command from the host system, interprets the command by the command analysis module of the storage device, and extracts information about the operation from the command by the command analysis module. And sending a response to the host system by the command analysis module after the operation is executed by the storage apparatus.

さらに別の実施形態において、ストレージ装置のための方法が提供される。この方法は、ストレージ装置により、ホストシステムからプラットフォーム独立形式コマンドを受信することと、ストレージ装置のファームウェアコードにより、コマンドにて操作指令の有無を検出することと、コマンド解析モジュールにより、操作に関する情報をコマンドから抽出することと、ストレージ装置によって操作が実行された後、コマンド解析モジュールにより、ホストシステムへ応答を送信することとを含む。   In yet another embodiment, a method for a storage device is provided. In this method, the storage device receives a platform independent format command from the host system, the storage device firmware code detects the presence / absence of an operation command, and the command analysis module provides information about the operation. Extracting from the command and sending a response to the host system by the command analysis module after the operation is performed by the storage device.

一実施形態において、ストレージ装置が提供される。このストレージ装置は、ホストシステムからのプラットフォーム独立形式コマンドを解釈し、かつ操作に関する情報をコマンドから抽出する、コマンド解析モジュールを含み、このコマンド解析モジュールはホストシステムと連携する。   In one embodiment, a storage device is provided. The storage apparatus includes a command analysis module that interprets platform-independent commands from the host system and extracts operation information from the commands, and the command analysis module cooperates with the host system.

別の実施形態において、ストレージ装置が提供される。このストレージ装置は、ホストシステムからプラットフォーム独立形式コマンドを受信し、コマンドを解釈し、操作に関する情報をコマンドから抽出し、かつストレージ装置によって操作が実行された後にホストシステムへ応答を送信する、コマンド解析モジュールを含む。   In another embodiment, a storage device is provided. This storage device receives a platform independent command from the host system, interprets the command, extracts information about the operation from the command, and sends a response to the host system after the operation is performed by the storage device. Includes modules.

さらに別の実施形態において、ストレージ装置が提供される。このストレージ装置は、ホストシステムからプラットフォーム独立形式コマンドを受信し、ストレージ装置のファームウェアコードがコマンドにて操作指令の有無を検出した後に操作に関する情報をコマンドから抽出し、かつストレージ装置によって操作が実行された後にホストシステムへ応答を送信する、コマンド解析モジュールを含む。   In yet another embodiment, a storage device is provided. This storage device receives a platform independent format command from the host system, extracts information about the operation from the command after the firmware code of the storage device detects the presence or absence of an operation command in the command, and the operation is executed by the storage device It includes a command parsing module that sends a response to the host system afterwards.

この簡単な概要は、説明の本質を速やかに理解できるように提供されたものである。この後に続く好適な実施形態の詳細な説明を添付の図面と併せて参照することにより、より完全に説明を理解することができる。   This brief summary has been provided so that the nature of the description may be understood quickly. A more complete understanding can be obtained by reference to the following detailed description of the preferred embodiment in conjunction with the accompanying drawings.

これより種々の実施形態の図面を参照しながら前述した特徴とその他の特徴を説明する。図面において、同じ構成要素には同じ参照符号を付す。図に示された実施形態は、説明を制限することではなく図解することを目的とする。図面は以下の図を含む。   The above-described features and other features will now be described with reference to the drawings of various embodiments. In the drawings, the same components are denoted by the same reference numerals. The embodiments shown in the figures are intended to be illustrative rather than limiting. The drawings include the following figures.

不揮発性メモリ装置へ機能的に結合するホストシステムのブロック図を示す。1 shows a block diagram of a host system operatively coupled to a non-volatile memory device. 不揮発性メモリ装置用メモリコントローラのブロック図の一例を示す。An example of the block diagram of the memory controller for non-volatile memory devices is shown. 不揮発性メモリ装置との通信に用いる典型的なソフトウェアアーキテクチャのブロック図を示す。1 shows a block diagram of an exemplary software architecture used for communication with a non-volatile memory device. 一実施形態に従い、コマンド解析モジュールを備えるシステムのブロック図を示す。FIG. 2 shows a block diagram of a system comprising a command analysis module according to one embodiment. 一実施形態に従い、不揮発性メモリ装置と通信するプロセスの流れ図を示す。6 illustrates a flow diagram of a process for communicating with a non-volatile memory device, according to one embodiment. 一実施形態に従い、不揮発性メモリ装置と通信するプロセスおよびシステムの一例を示す。2 illustrates an example process and system for communicating with a non-volatile memory device, according to one embodiment.

種々の実施形態の理解を助けるため、計算システムと不揮発性メモリストレージ装置の一般的なアーキテクチャおよび動作を先に説明する。次に、一般的なアーキテクチャを参照しながら具合的なアーキテクチャおよび動作を説明する。   To assist in understanding the various embodiments, the general architecture and operation of computing systems and non-volatile memory storage devices are described first. Next, specific architecture and operation will be described with reference to a general architecture.

図1Aは、システムバス105へ接続された中央処理装置(「CPU」)(またはマイクロプロセッサ、またはプロセッサ)101を含む典型的なホストシステム100のブロック図を示す。システムバス105へ結合されたランダムアクセスメインメモリ(「RAM」)103は、メモリストレージへのアクセスをCPU101に提供する。CPU101はプログラム命令を実行するときに処理ステップをRAM103に蓄積し、蓄積された処理ステップをRAM103から実行する。
ホストシステム100は、ネットワークインターフェイス104経由でコンピュータネットワーク(図示せず)へ接続する。インターネットはこのようなネットワークの1つであり、ホストシステム100はインターネットからアプリケーション、コード、文書等の電子情報をダウンロードできる。
起動命令シーケンスや基本入出力操作システム(BIOS)シーケンス等、一定の命令シーケンスを蓄積するため、読み出し専用メモリ(「ROM」)102を設ける。
キーボード、キーパッド、ポインティングデバイス(「マウス」)、モニタ、モデム等の入出力(「I/O」)装置106も設ける。
FIG. 1A shows a block diagram of an exemplary host system 100 that includes a central processing unit (“CPU”) (or microprocessor or processor) 101 connected to a system bus 105. A random access main memory (“RAM”) 103 coupled to the system bus 105 provides the CPU 101 with access to the memory storage. The CPU 101 stores processing steps in the RAM 103 when executing program instructions, and executes the stored processing steps from the RAM 103.
The host system 100 connects to a computer network (not shown) via the network interface 104. The Internet is one such network, and the host system 100 can download electronic information such as applications, codes, and documents from the Internet.
A read-only memory (“ROM”) 102 is provided to store certain command sequences, such as startup command sequences and basic input / output operating system (BIOS) sequences.
An input / output (“I / O”) device 106 such as a keyboard, keypad, pointing device (“mouse”), monitor, modem, etc. is also provided.

ホストシステム100と結合する不揮発性メモリストレージ装置111は、コントローラモジュール108(「メモリコントローラ」または「コントローラ」と呼ばれることもある)とソリッドステートメモリモジュール109〜110(メモリモジュール#1およびメモリモジュール#Nと図に示されている)とを含む。コントローラモジュール108はバスインターフェイス107を介して、あるいはシステムバス105を介して直接的に、あるいは他の何らかの周辺バス(図示せず)を介して、ホストプロセッサ101と連携する。   The nonvolatile memory storage device 111 coupled to the host system 100 includes a controller module 108 (sometimes referred to as “memory controller” or “controller”) and solid state memory modules 109 to 110 (memory module # 1 and memory module #N). And is shown in the figure). The controller module 108 cooperates with the host processor 101 via the bus interface 107, directly via the system bus 105, or via some other peripheral bus (not shown).

不揮発性メモリストレージ装置111は、一実施形態において、フラッシュメモリ装置(またはカード)であってもよい。コンパクトフラッシュ(CF)、マルチメディアカード(MMC)、セキュアデジタル(SD)、ミニSD、メモリスティック、スマートメディア、トランスフラッシュ等、現在様々なフラッシュメモリカードが数多く市販されている。これらのカードはいずれも規格化された仕様(例えば、その全体が本願明細書において参照により援用されているユニバーサルシリアルバス(USB)仕様に基づくインターフェイス)に基づく特有の機械的および/または電気的インターフェイス(あるいは無線インターフェイス等、タイプの異なる何らかのインターフェイス)を有するが、それぞれに内蔵されたフラッシュメモリはよく似ている。これらのカードはいずれも、本件出願人にあたるサンディスク コーポレイションより入手できる。
サンディスク コーポレイションはまた、そのCruzerという商標のもとで一連のフラッシュドライブを提供している。これはユニバーサルシリアルバス(USB)プラグを有する小型の手持ち型メモリシステムであって、ホストシステムとの接続にあたってこのプラグをホストのUSB差込口に差し込む。これらのメモリカードとフラッシュドライブはコントローラを内蔵し、このコントローラがホストシステムと連携して、ホストシステムに内蔵されたフラッシュメモリの動作を制御する。
The nonvolatile memory storage device 111 may be a flash memory device (or card) in one embodiment. Many flash memory cards such as compact flash (CF), multimedia card (MMC), secure digital (SD), mini-SD, memory stick, smart media, and transflash are currently on the market. Each of these cards has a unique mechanical and / or electrical interface based on a standardized specification (eg, an interface based on the Universal Serial Bus (USB) specification, which is incorporated herein by reference in its entirety). (Or some interface of a different type, such as a wireless interface), but the flash memory built into each is very similar. All of these cards are available from SanDisk Corporation, the applicant.
SanDisk Corporation also offers a series of flash drives under its Cruzer trademark. This is a small handheld memory system having a universal serial bus (USB) plug, and this plug is inserted into the USB insertion port of the host for connection with the host system. These memory cards and flash drives incorporate a controller, and this controller cooperates with the host system to control the operation of the flash memory incorporated in the host system.

このようなメモリカードとフラッシュドライブを使用するホストシステム(100等)は数多くあり、様々である。例えば、パーソナルコンピュータ(PC)、ラップトップをはじめとするポータブルコンピュータ、携帯電話機、個人用携帯情報端末(PDA)、デジタル静止画カメラ、デジタル動画カメラ、ポータブルオーディオプレイヤ等を挙げることができる。ホストは通常ならば1種類以上のメモリカードまたはフラッシュドライブに対応する差込口を内蔵するが、メモリカードを差し込むアダプタが必要なものもある。   There are many host systems (such as 100) using such a memory card and a flash drive, and various. For example, a personal computer (PC), a portable computer such as a laptop, a mobile phone, a personal digital assistant (PDA), a digital still camera, a digital video camera, a portable audio player, and the like can be given. Normally, the host has a built-in port corresponding to one or more types of memory cards or flash drives, but some hosts require an adapter for inserting a memory card.

図1Bは、コントローラモジュール108の内部アーキテクチャのブロック図を示す。コントローラモジュール108はマイクロコントローラ114を含み、マイクロコントローラは、インターフェイスロジック116を通じて他の様々なコンポーネントと連携する。メモリ115には、マイクロコントローラ114が不揮発性メモリストレージ装置111の動作を制御するためのファームウェアおよびソフトウェア命令が蓄積される。メモリ115は、揮発性の再プログラム可能なランダムアクセスメモリ(「RAM」)か、再プログラム不可能な不揮発性メモリ(「ROM」)か、一度だけプログラム可能なメモリか、再プログラム可能なフラッシュ形式の電気的に消去可能でプログラム可能な読み出し専用メモリ(「EEPROM」)であってもよい。
ホストインターフェイス113はホストシステム100と連携し、メモリインターフェイス112はメモリモジュール109〜110と連携する。
FIG. 1B shows a block diagram of the internal architecture of the controller module 108. The controller module 108 includes a microcontroller 114 that interacts with various other components through interface logic 116. The memory 115 stores firmware and software instructions for the microcontroller 114 to control the operation of the nonvolatile memory storage device 111. Memory 115 may be volatile reprogrammable random access memory ("RAM"), non-reprogrammable non-volatile memory ("ROM"), one-time programmable memory, or a reprogrammable flash format. Electrically erasable and programmable read only memory ("EEPROM").
The host interface 113 cooperates with the host system 100, and the memory interface 112 cooperates with the memory modules 109 to 110.

図1Cは、ストレージデバイスドライバ121とSDK層118とを用いて不揮発性メモリストレージ装置111と通信する従来型オペレーティングシステムの最上位ブロック図を示す。ソフトウェアアプリケーション117はホストシステム100によって実行され、不揮発性メモリストレージ装置111に蓄積された情報を読み出すコマンドか、不揮発性メモリストレージ装置111で情報を書き込むコマンドか、他の何らかの機能を遂行するコマンドを送信する。これらの操作はファームウェア命令119を実行するマイクロコントローラ114によって遂行される。
ホストシステム100には、不揮発性メモリストレージ装置111へのアクセスにあたってSDK層118が必要になることがある。使用するオペレーティングシステムはホストシステム100によって異なるため、バージョンが異なるSDK層118が必要になる。これはストレージ装置の提供業者にとって厄介であり、不揮発性メモリストレージ装置111を使用するユーザにも支障をきたすことがある。
FIG. 1C shows a top-level block diagram of a conventional operating system that communicates with the non-volatile memory storage device 111 using the storage device driver 121 and the SDK layer 118. The software application 117 is executed by the host system 100 and transmits a command for reading information stored in the nonvolatile memory storage device 111, a command for writing information in the nonvolatile memory storage device 111, or a command for performing some other function. To do. These operations are performed by the microcontroller 114 that executes the firmware instructions 119.
The host system 100 may require the SDK layer 118 to access the nonvolatile memory storage device 111. Since the operating system to be used differs depending on the host system 100, the SDK layers 118 having different versions are required. This is troublesome for the storage device provider, and may interfere with the user who uses the nonvolatile memory storage device 111.

一実施形態において、不揮発性メモリストレージ装置111AへのアクセスにあたってSDK層118が不要か、パーシャルSDK層120(SDK層118の薄バージョン)(「薄SDK層」と呼ぶ)を使用する、簡略されたアーキテクチャが提供される。図1Dは、プラットフォームに依存しない形式で不揮発性メモリストレージ装置111Aと通信する最上位アーキテクチャのブロック図を示す。不揮発性メモリストレージ装置111Aは、不揮発性メモリストレージ装置111の全コンポーネントを含むほか、後述する、ホストシステム100と連携するコマンド解析モジュール122を含む。
コマンド解析モジュール122は、ホストシステム100からストレージドライバ121と薄SDK層120とを通じて送信されるコマンドを解析する。これらのコマンドは汎用形式をとるため、ホストシステムごとに別々のSDK層118を用意する必要はない。
In one embodiment, the SDK layer 118 is not required to access the non-volatile memory storage device 111A, or a partial SDK layer 120 (a thin version of the SDK layer 118) (referred to as a “thin SDK layer”) is simplified. An architecture is provided. FIG. 1D shows a block diagram of a top-level architecture that communicates with the non-volatile memory storage device 111A in a platform-independent format. The non-volatile memory storage device 111A includes all components of the non-volatile memory storage device 111, and also includes a command analysis module 122 that cooperates with the host system 100, which will be described later.
The command analysis module 122 analyzes a command transmitted from the host system 100 through the storage driver 121 and the thin SDK layer 120. Since these commands take a general-purpose format, it is not necessary to prepare a separate SDK layer 118 for each host system.

コマンド解析モジュール122は、一実施形態において、XMLパーサである。XMLは、その全体が本願明細書において参照により援用されているW3Cコンソーシアムによって定義される標準マークアップ言語(拡張マークアップ言語(Extensible Markup language))の略である。XMLは普及しつつあるテキスト方式のマークアップ言語である。HTML(ハイパーテキストマークアップ言語)と同様に、データはタグ(山括弧で括られた識別子<...>等)を用いて識別する。これらのタグはいずれも「マークアップ」と呼ばれている。しかし、HTMLと違ってXMLのタグはデータ表示のあり方を指定するのではなく、データを識別するものである。HTMLのタグは「このデータを太字フォントで表示」(<b>...</b>)と指定するが、XMLのタグは、プログラムにおけるフィールド名のような働きをする。XMLのタグはアプリケーションのタイプに応じてカスタマイズできる。この実施形態のコマンド解析モジュール122は、ホストシステム100からXMLタグ(コマンド)を受信し、解釈できる。   The command analysis module 122 is an XML parser in one embodiment. XML is an abbreviation for standard markup language (Extensible Markup language) defined by the W3C consortium, which is incorporated herein by reference in its entirety. XML is a text-based markup language that is becoming popular. Similar to HTML (Hypertext Markup Language), data is identified using tags (identifiers enclosed in angle brackets, etc.). Both of these tags are called “markups”. However, unlike HTML, XML tags do not specify the way data is displayed, but identify data. The HTML tag specifies “display this data in bold font” (<b>... </ B>), but the XML tag acts like a field name in the program. XML tags can be customized depending on the type of application. The command analysis module 122 of this embodiment can receive and interpret an XML tag (command) from the host system 100.

パーシャルSDK層120とコマンド解析モジュール122との間では、読み出し、書き込み、削除、ディレクトリ作成コマンド等、種々のファイルシステムコマンドに対応するXMLタグが規定されている。ホストシステム100によって送信されるXMLタグは、ディレクトリ作成、データ書き込み、データ読み出し等、複数の操作の実行命令を含むことがある。操作の実行にあたって、コマンド解析モジュール122が操作に関する情報を抽出し、不揮発性メモリストレージ装置111Aの適当なコンポーネント/モジュール(マイクロコントローラ114等)に通知する。   Between the partial SDK layer 120 and the command analysis module 122, XML tags corresponding to various file system commands such as read, write, delete, and directory creation commands are defined. An XML tag transmitted by the host system 100 may include execution instructions for a plurality of operations such as directory creation, data writing, and data reading. In executing the operation, the command analysis module 122 extracts information related to the operation and notifies an appropriate component / module (such as the microcontroller 114) of the nonvolatile memory storage device 111A.

図2は、薄SDK層120を使用するか、SDK層118を使用せずに不揮発性メモリストレージ装置111Aと通信するプロセスの流れ図を示す。このプロセスは、ホストシステム100が不揮発性メモリストレージ装置111Aへクエリコマンドを送信するステップS200で始まる。ステップS202では、不揮発性メモリストレージ装置111Aでサポートされた機能に関する情報が不揮発性メモリストレージ装置111Aから送信される。
ステップS204では、ホストシステム100がプラットフォーム独立形式のコマンドを送信する。プラットフォーム独立形式とは、コマンドの形式がホストシステム100のオペレーティングシステム/環境に左右されないことを意味する。例えば、XML等がプラットフォーム独立形式にあたる。
コマンド解析モジュール122は、ステップS206でコマンド(またはタグ)を解析し、ホストシステム100が要望する任意の操作について情報を抽出する。1つのタグに複数の操作の情報を入れることもできる。コマンド解析モジュール122は、操作を実行すべきモジュールに通知する。
ステップS208では操作が実行され、ホストシステム100が応答を望む場合には、コマンド解析モジュール122がホストシステム100に応答を送り返す。
FIG. 2 shows a flow diagram of a process for communicating with the non-volatile memory storage device 111A using the thin SDK layer 120 or not using the SDK layer 118. This process starts in step S200 in which the host system 100 transmits a query command to the nonvolatile memory storage device 111A. In step S202, information related to functions supported by the nonvolatile memory storage device 111A is transmitted from the nonvolatile memory storage device 111A.
In step S204, the host system 100 transmits a platform-independent command. The platform independent format means that the command format does not depend on the operating system / environment of the host system 100. For example, XML is a platform independent format.
The command analysis module 122 analyzes the command (or tag) in step S206, and extracts information about an arbitrary operation requested by the host system 100. Information of a plurality of operations can be put in one tag. The command analysis module 122 notifies the module that should execute the operation.
In step S <b> 208, if an operation is executed and the host system 100 desires a response, the command analysis module 122 sends a response back to the host system 100.

以下、一実施形態に従いXMLタグを使用する一例を紹介する。この例のホストシステムはディレクトリ作成コマンドを送信してもよい。以下に記された斜体のテキストは、この操作の実行に用いられるXMLタグを示す。タグ「Path」にはディレクトリ名が入り、ホストがステータスを知りたい場合には、タグ「RetStatus」に操作の「リターンステータス」が蓄積される。以下、ディレクトリを作成するためのXMLタグを示す。
<FileSystemOperation>
<OpType>CreateDirectory</OpType>
<Parameters>
<Path>”0:\\MyDir\\MyMusic”</Path>
</Parameters>
<RetStatus></RetStatus>
</FileSystemOperation>
Hereinafter, an example of using an XML tag according to an embodiment will be introduced. The host system in this example may send a directory creation command. The italic text described below indicates the XML tag used to perform this operation. If the directory name is entered in the tag “Path” and the host wants to know the status, the “return status” of the operation is accumulated in the tag “RetStatus”. An XML tag for creating a directory is shown below.
<FileSystemOperation>
<OpType> CreateDirectory </ OpType>
<Parameters>
<Path>"0: \\ MyDir \\ MyMusic"</Path>
</ Parameters>
<RetStatus></RetStatus>
</ FileSystemOperation>

図3は、図2の処理ステップを使用する一例を示す。この例のホストシステム100は携帯電話機である。例えば、ホストシステム100は、ディレクトリを作成するためのXMLタグ(例えば、パケット/ファイル「write SNDK.XML」)を用意する。このXMLタグは、ファイルシステムオペレーションによって識別される。不揮発性メモリストレージ装置111Aは、XMLタグで指定された操作をサポートしない場合には、その旨を伝える応答(またはステータス)「Interface_Not_Supported」を返すことができる。
ファームウェア119は、タグの書き込みに先立ちXMLタグで操作指令の有無を判断する。これは、ファームウェア119がファイルシステム操作を識別するために使用可能な特別な識別子を使用することにより達成され得る。
コマンド解析モジュール122はXMLパケットを傍受し、要求された操作を実行するため、適当なモジュールに通知する。操作が実行された後にはコマンド解析モジュール122がホストシステム100へステータスXMLパケットを送信する。
ホストシステム100は、操作ステータスのチェックを望む場合にタグを読み返すことができる。例えば、図3では、「0:\\myDir\\MyMusic」作成の結果として「SD_SUCCESS」が返っている。
一実施形態において、不揮発性メモリストレージ装置と通信しその機能にアクセスするにあたって、パーシャルSDK層が必要となる場合と、SDK層が不要となる場合とがある。
FIG. 3 shows an example of using the processing steps of FIG. The host system 100 in this example is a mobile phone. For example, the host system 100 prepares an XML tag (for example, a packet / file “write SNDK.XML”) for creating a directory. This XML tag is identified by the file system operation. If the operation specified by the XML tag is not supported, the nonvolatile memory storage device 111A can return a response (or status) “Interface_Not_Supported” to that effect.
The firmware 119 determines the presence / absence of an operation command using the XML tag prior to writing the tag. This can be accomplished by using a special identifier that firmware 119 can use to identify file system operations.
The command analysis module 122 intercepts the XML packet and notifies the appropriate module to perform the requested operation. After the operation is executed, the command analysis module 122 transmits a status XML packet to the host system 100.
The host system 100 can read back the tag when it is desired to check the operation status. For example, in FIG. 3, “SD_SUCCESS” is returned as a result of creating “0: \\ myDir \\ MyMusic”.
In one embodiment, a partial SDK layer may be required or an SDK layer may be unnecessary when communicating with a nonvolatile memory storage device and accessing its functions.

前述した実施形態の説明では不揮発性メモリストレージ装置が使われているが、ハードディスクやテープドライブ、またはその他の種類のホストシステムとの連携にあたってメモリコントローラや状態マシン等のハードウェア/ソフトウェアを使用するストレージ装置等、いかなるタイプのストレージ装置であっても前述した実施形態を実装できることに留意するべきである。
現時点で好適な実施形態と考えられるものについて説明が記されているが、この説明が前述したものに限定されないことが理解できるはずである。反対に、本願の説明は様々な修正および等価構成を添付の特許請求の範囲の精神および範囲内に含めることを目的とする。
In the above description of the embodiment, a non-volatile memory storage device is used. However, a storage that uses hardware / software such as a memory controller or a state machine in cooperation with a hard disk, a tape drive, or other types of host systems. It should be noted that the above-described embodiments can be implemented with any type of storage device, such as a device.
While an explanation has been given of what is presently considered to be the preferred embodiment, it should be understood that the description is not limited to that described above. On the contrary, the description herein is intended to cover various modifications and equivalent arrangements within the spirit and scope of the appended claims.

Claims (18)

ストレージ装置のための方法あって
ストシステムからのファイルを前記ストレージ装置で受信するステップと、
受信したファイルに、前記ストレージ装置によって操作を要求するコマンドが含まれるか否かを判断するステップと、
前記ストレージ装置によって操作を要求するコマンドが前記ファイルに含まれると判断したことを受けて、
前記ストレージ装置のコマンド解析モジュールにより、前記コマンドを解釈するステップと、
前記コマンド解析モジュールにより、操作に関する情報を前記コマンドから抽出するステップと、
前記ストレージ装置によって操作を実行した後で前記ホストシステムに送信すべき応答を含むように受信したファイルのコンテンツを修正し、その修正したファイルを前記ストレージ装置に書き込み、前記ホストシステムが前記修正したファイルを読み出す要求を前記ストレージ装置に対して発行したことに応じて、前記ファイルを前記ホストシステムに返すことによって、操作を実行した後に、前記コマンド解析モジュールにより、前記ホストシステムへ応答を送信するステップと
前記ストレージ装置によって操作を要求するコマンドが前記ファイルに含まれないと判断したことを受けて、前記ファイルを前記ストレージ装置に書き込むステップと、
を含む方法。
A method for the storage device,
Receiving a file from the host system the storage device,
Determining whether the received file includes a command requesting an operation by the storage device;
In response to determining that the file includes a command requesting an operation by the storage device,
Interpreting the command by a command analysis module of the storage device;
Extracting information about operation from the command by the command analysis module;
The content of the received file is modified to include a response to be sent to the host system after an operation is performed by the storage device, the modified file is written to the storage device, and the modified file is written by the host system. in response to the requesting to read the to the storage device by returning the file to the host system, after performing the operation, by the command analysis module, and transmits a response to the host system step And
In response to determining that the command requesting an operation by the storage device is not included in the file, writing the file to the storage device;
Including methods.
請求項1記載の方法において、
前記コマンドには複数の操作に関する情報が埋め込まれる方法。
The method of claim 1, wherein
A method in which information related to a plurality of operations is embedded in the command.
請求項1記載の方法において、
前記コマンド解析モジュールは、前記操作に関する情報を前記ストレージ装置のモジュールに提供する方法。
The method of claim 1, wherein
The command analysis module provides information related to the operation to a module of the storage apparatus.
請求項3記載の方法において、
前記モジュールは、マイクロコントローラである方法。
The method of claim 3, wherein
The method wherein the module is a microcontroller.
請求項1記載の方法において、
前記コマンド解析モジュールは、XMLパーサである方法。
The method of claim 1, wherein
The command analysis module is an XML parser.
請求項1記載の方法において、
前記ストレージ装置は、不揮発性メモリストレージ装置である方法。
The method of claim 1, wherein
The storage device is a non-volatile memory storage device.
請求項1記載の方法において、
前記ファイルに、前記ストレージ装置によって操作を要求するコマンドが含まれるか否かを前記ストレージ装置のファームウェアコードにより判断する方法。
The method of claim 1, wherein
A method of determining whether or not the file includes a command for requesting an operation by the storage device, based on a firmware code of the storage device .
請求項1記載の方法において、
前記コマンド解析モジュールは、パーシャルソフトウェア層を介して前記ホストシステムと連携する方法。
The method of claim 1 , wherein
The command analysis module cooperates with the host system through a partial software layer.
請求項1記載の方法において、
前記ストレージ装置は、前記ホストシステムにリムーバブルストレージを提供するフラッシュメモリドライブまたはフラッシュメモリカードを備える方法。
The method of claim 1, wherein
Wherein the storage device, how Ru provided with a flash memory drive or a flash memory card provides removable storage to the host system.
ストレージ装置であって、
コマンド解析モジュールであって、
ホストシステムからファイルを受信し、
受信したファイルに、前記ストレージ装置によって操作を要求するコマンドが含まれるか否かを判断し、
前記ストレージ装置によって操作を要求するコマンドが前記ファイルに含まれると判断したことを受けて、
前記コマンドを解釈し、
操作に関する情報を前記コマンドから抽出し、
前記ストレージ装置によって操作を実行した後で前記ホストシステムに送信すべき応答を含むように受信したファイルのコンテンツを修正し、その修正したファイルを前記ストレージ装置に書き込み、前記ホストシステムが前記修正したファイルを読み出す要求を前記ストレージ装置に対して発行したことに応じて、前記ファイルを前記ホストシステムに返すことによって、操作を実行した後に前記ホストシステムへ応答を送信し、かつ
前記ストレージ装置によって操作を要求するコマンドが前記ファイルに含まれないと判断したことを受けて、前記ファイルを前記ストレージ装置に書き込むためのコマンド解析モジュールを備えるストレージ装置。
A storage device,
A command analysis module,
Receive files from the host system,
Determine whether the received file includes a command for requesting an operation by the storage device,
In response to determining that the file includes a command requesting an operation by the storage device,
Interpret the command,
Extract information about the operation from the command,
The content of the received file is modified to include a response to be sent to the host system after an operation is performed by the storage device, the modified file is written to the storage device, and the modified file is written by the host system. In response to issuing a request to read to the storage device, sending a response to the host system after performing an operation by returning the file to the host system, and
The command requesting the operation by the storage device in response to the fact that it is determined to be not included in the file, Bei obtain storage device command analysis module for writing said file to said storage device.
請求項10記載のストレージ装置において、
前記コマンドには複数の操作に関する情報が埋め込まれるストレージ装置。
The storage apparatus according to claim 10 , wherein
A storage device in which information related to a plurality of operations is embedded in the command.
請求項10記載のストレージ装置において、
前記コマンド解析モジュールは、前記操作に関する情報を前記ストレージ装置のモジュールに提供するストレージ装置。
The storage apparatus according to claim 10 , wherein
The command analysis module is a storage device that provides information related to the operation to a module of the storage device.
請求項12記載のストレージ装置において、
前記モジュールは、マイクロコントローラであるストレージ装置。
The storage apparatus according to claim 12 , wherein
The module is a storage device that is a microcontroller.
請求項10記載のストレージ装置において、
前記コマンド解析モジュールは、XMLパーサであるストレージ装置。
The storage apparatus according to claim 10 , wherein
The command analysis module is a storage device that is an XML parser.
請求項10記載のストレージ装置において、
前記ストレージ装置は、不揮発性メモリストレージ装置であるストレージ装置。
The storage apparatus according to claim 10 , wherein
The storage device is a non-volatile memory storage device.
請求項10記載のストレージ装置において、
前記ファイルに、前記ストレージ装置によって操作を要求するコマンドが含まれるか否かを前記ストレージ装置のファームウェアコードにより判断するストレージ装置。
The storage apparatus according to claim 10, wherein
A storage apparatus that determines, based on a firmware code of the storage apparatus, whether the file includes a command that requests an operation by the storage apparatus.
請求項10記載のストレージ装置において、
前記コマンド解析モジュールは、パーシャルソフトウェア層を介して前記ホストシステムと連携するストレージ装置。
The storage apparatus according to claim 10 , wherein
The command analysis module is a storage device that cooperates with the host system via a partial software layer.
請求項10記載のストレージ装置において、
前記ストレージ装置は、前記ホストシステムにリムーバブルストレージを提供するフラッシュメモリドライブまたはフラッシュメモリカードを備えるストレージ装置。
The storage apparatus according to claim 10, wherein
The storage apparatus includes a flash memory drive or a flash memory card that provides removable storage to the host system.
JP2010515224A 2007-06-29 2008-06-30 Method and system for communicating with a non-volatile memory storage device Expired - Fee Related JP5416697B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/771,203 2007-06-29
US11/771,165 2007-06-29
US11/771,203 US8429328B2 (en) 2007-06-29 2007-06-29 System for communicating with a non-volatile memory storage device
US11/771,165 US8433842B2 (en) 2007-06-29 2007-06-29 Method for communicating with a non-volatile memory storage device
PCT/US2008/068796 WO2009006408A2 (en) 2007-06-29 2008-06-30 Methods and systems for communicating with a non-volatile memory storage device

Publications (2)

Publication Number Publication Date
JP2010534873A JP2010534873A (en) 2010-11-11
JP5416697B2 true JP5416697B2 (en) 2014-02-12

Family

ID=39930812

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010515224A Expired - Fee Related JP5416697B2 (en) 2007-06-29 2008-06-30 Method and system for communicating with a non-volatile memory storage device

Country Status (4)

Country Link
EP (1) EP2171618A2 (en)
JP (1) JP5416697B2 (en)
KR (1) KR101570662B1 (en)
WO (1) WO2009006408A2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102267041B1 (en) * 2015-06-05 2021-06-22 삼성전자주식회사 Storage device and operation method thereof

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149813B2 (en) * 2001-08-14 2006-12-12 Microsoft Corporation Method and system for synchronizing mobile devices
JP2004046817A (en) * 2002-05-23 2004-02-12 Ricoh Co Ltd Program, storage medium, data management device, and data management system
DE10234158A1 (en) * 2002-07-26 2004-02-05 Giesecke & Devrient Gmbh Set up a file system on a disk
US20040052166A1 (en) * 2002-09-16 2004-03-18 Koninklijke Philips Electronics N.V. Command set for removable rewritable computer storage
CN1260642C (en) * 2002-11-18 2006-06-21 深圳市朗科科技有限公司 Method for transmitting command and data to portable storage device
JP2004318940A (en) 2003-04-14 2004-11-11 Renesas Technology Corp Storage device

Also Published As

Publication number Publication date
WO2009006408A2 (en) 2009-01-08
KR20100058452A (en) 2010-06-03
KR101570662B1 (en) 2015-11-23
EP2171618A2 (en) 2010-04-07
WO2009006408A3 (en) 2009-04-30
JP2010534873A (en) 2010-11-11

Similar Documents

Publication Publication Date Title
US7447821B2 (en) U3 adapter
US7913252B2 (en) Portable platform for executing software applications in a virtual environment
US8799521B2 (en) System and method for receiving control commands at a peripheral device
US8701104B2 (en) System and method for user agent code patch management
US20060250360A1 (en) Smart pointer
JP2009510544A (en) Decompression technology for generating software images
US8429328B2 (en) System for communicating with a non-volatile memory storage device
CN114564158B (en) Method, device, equipment and medium for controlling document printing under Linux system
CN102937963A (en) Template and server content download using protocol handlers
US8433842B2 (en) Method for communicating with a non-volatile memory storage device
TW201034018A (en) System and method to respond to a data file deletion instruction
US20030237052A1 (en) Method and an apparatus for styling a web service
JP5416697B2 (en) Method and system for communicating with a non-volatile memory storage device
TW201032048A (en) Network adapter, method &amp; computer program product
US20100017554A1 (en) System and method for managing a plugged device
US8661425B1 (en) Method, apparatus, and computer-readable medium for storing data associated with a firmware program
TWI453667B (en) Methods and apparatuses for launching a program application
CN102207862A (en) Apparatus, systems, and methods for dynamic language customization
CN114327733A (en) Dynamic updating method, device, equipment and medium for starting interactive interface
US7516261B2 (en) Method for U3 adapter
JP2011215889A (en) Information processing apparatus and method for starting the same
US8200895B2 (en) File system recognition structure
CN113504936B (en) Software version release method, computer device and storage medium
US20110082986A1 (en) Electronic device for providing self-adapting services depending on the platform of the host equipment with which it is connected
EP1830276B1 (en) Method for a host end fixedly naming a common serial port device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110620

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130502

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130513

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130603

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130610

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130621

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130802

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131022

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131115

R150 Certificate of patent or registration of utility model

Ref document number: 5416697

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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