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

JP5582418B2 - トランザクションメモリ - Google Patents

トランザクションメモリ Download PDF

Info

Publication number
JP5582418B2
JP5582418B2 JP2011278132A JP2011278132A JP5582418B2 JP 5582418 B2 JP5582418 B2 JP 5582418B2 JP 2011278132 A JP2011278132 A JP 2011278132A JP 2011278132 A JP2011278132 A JP 2011278132A JP 5582418 B2 JP5582418 B2 JP 5582418B2
Authority
JP
Japan
Prior art keywords
transaction
memory
remapping table
memory array
receiving
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.)
Active
Application number
JP2011278132A
Other languages
English (en)
Other versions
JP2012155705A (ja
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
Application filed by マイクロン テクノロジー, インク. filed Critical マイクロン テクノロジー, インク.
Publication of JP2012155705A publication Critical patent/JP2012155705A/ja
Application granted granted Critical
Publication of JP5582418B2 publication Critical patent/JP5582418B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/206Memory mapped I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Description

本明細書に開示される主題は、メモリデバイスを用いてトランザクションを実行する技術に関する。
いくつかのアプリケーションでは、トランザクションと呼ばれる単一の動作として一連の指示を処理することが望まれ得る。例えば、トランザクションは、トランザクションは、開始イベントを含み、それに続いてメモリへの書込みを生じさせる複数の命令または演算子(オペレータ)を続いて含み、そして終了イベントを含んでもよい。トランザクションは、部分的に完了されてはならず、完全にかつ成功して実行されるか、あるいはフェイルするかのどちらかであり得る。すなわち、トランザクションの全ての命令又は演算子が成功して実行されるか、又は全くされないかのどちらかである。トランザクションを管理することは、例えば、コンピュータ・アーキテクチャーのオペレーティングシステムの比較的大量のソフトウェアオーバーヘッドを伴う、比較的複雑なタスクであり得る。このようなソフトウェアオーバーヘッド及び複雑さを低減することが望ましい場合がある。
非限定的かつ非排他的な実施形態について、以下に図を参照して記載する。特に明示がない限り、類似の番号は様々な図を通して類似の部分を示す。
図1は、実施形態に係る、トランザクションプロトコルに従うイベントの状態を示す図である。 図2は、実施形態に係る、トランザクションの状態を示す図である。 図3は、実施形態に係る、メモリサブシステムを示すブロック図である。 図4は、実施形態に係る、トランザクション処理のフローチャートである。 図5は、コンピュータシステムの代表的な実施形態を示す概略図である。
本明細書全体を通して、「一実施形態」又は「実施形態」を参照することは、こうした実施形態に関連して記載された特定の特色、構造、特性が、請求項に記載された主題の少なくとも一実施形態に含まれることを意味する。それゆえ、本明細書を通して様々な箇所における「一実施形態において」又は「実施形態」という語句の出現は、必ずしも全てが同一の実施形態を参照しているものではない。更に、特定の特色、構造、又は特性は、1つ以上の実施形態において組み合わされてもよい。
実施形態において、1つ以上のトランザクションを実行するための技術及び/又はアーキテクチャーは、例えば、トランザクションを実行する処理中に物理メモリを再マッピングすることによって、ソフトウェアの複雑さ及び/又はオペレーティングシステムのメモリオーバーヘッドを低減させる利点を提供し得る。このようなトランザクションは、原子的形態(atomic fashion)で単一の動作として実行される一組の命令又は演算子を含んでもよい。ここで、「原子的形態」で実行されるトランザクションとは、部分的に完了されることはできず、完全に実行されるかあるいはトランザクションが前の状態を損なうことのないままにしてフェイルするかのどちらかである、トランザクションのことを言う。例えば、トランザクションは、メモリに特定の情報を書き込むための、複数の命令又は演算子を含んでもよい。このようなトランザクションは、「コミット」と呼ばれる、開始イベント及び終了イベントを含んでもよい。まさに言及したように、このようなトランザクションは、部分的に完了されることはできず、完全にかつ成功して実行されるか、又はフェイルするかのどちらかであり得る。すなわち、トランザクションの全ての命令又は演算子が成功して実行されるか、又は全く実行されないかのどちらかであり得る。
実施形態は、トランザクションを定義するトランザクションプロトコルに、少なくとも部分的に基づいて動作する、メモリサブシステムを含んでもよい。例えば、このようなトランザクションプロトコルは、当業者に公知のデータベースコンピュータ言語を含む、SQLに関連付けられてもよいが、請求項の主題はそのように限定されるものではない。このようなトランザクションは、例えば、開始信号及び一連の書込み演算子、続いてコミット演算子を実行するメモリサブシステムに対する命令を含んでもよい。このようなコミット演算子は、全ての書込み演算子が実行されるか、又は全く実行されないかのどちらかであるように、トランザクションを原子的形態で終了させるためにメモリサブシステムによって実行されてもよい。このようなメモリサブシステムは、複数の独立したトランザクションを実行してもよい。一実装例において、メモリサブシステムは、システムレベルのアドレスを物理メモリのアドレスにマッピングするための再マッピングテーブルを用いて、1つ以上のトランザクションを実行してもよい。例えば、このようなトランザクションソリューションは、後に詳細に記載するように、コミット演算子を受信することに応答して、再マッピングテーブルの一部分を再書込みすることによって実行されてもよい。一実装例において、メモリサブシステムは、トランザクションエンジンに転送されるべきデータベース構造の更なるナレッジを伴い得る、リレーショナルデータベースサブシステムとしての役割を果たしてもよい。このような更なる情報は、例えば、どのキーが1つのテーブルを別のテーブルにリンクさせているかと、そのようなテーブルに対するフィールド定義とを特定してもよい。別の実装例において、メモリサブシステムは、トランザクションをサポートするIOサブシステムとしての役割を果たしてもよい。このようなサブシステムは、セクタ上で動作することができ、かつ、そのセクタが何の情報を記憶するかについてのナレッジを持たない。この場合において、リレーショナルデータベースソフトウェアは、データベーストランザクションを管理してもよく、かつ、トランザクションをセクタレベルのトランザクションに翻訳してもよい。
一実装例において、1つ以上のトランザクションを実行する、本明細書に開示される技術及び/又はアーキテクチャーは、メモリ再マッピング機能を含むシステムインフラストラクチャーを利用してもよい。例えば、比較的大きなメモリサブシステムは、メモリの欠陥部分を隔離するために、及び/又は、メモリ空間の比較的大きな部分に渡って同一のウェア(wear)レベルを保証するために、メモリサブシステムのページ又はセクタを再マッピングすることができる、ソフトウェア及び/又はハードウェアを含んでもよい。更に、このようなソフトウェア及び/又はハードウェアは、後に詳細に説明するように、原子トランザクションを実行するために用いられてもよい。
1つの特定の実施形態において、原子的形態でトランザクションを実行するメモリサブシステムは、上で言及したように、トランザクションプロトコルを用いて動作してもよい。このようなプロトコルは、個々のトランザクションコマンドを、開始部分、ペイロード部分、及び、終了部分を含むものとして定義してもよい。このようなプロトコルは、トランザクションコマンドを開始したホストにトランザクション状態を提供しながら、複数の同時トランザクションコマンドを許容することができる。例えば、このような状態は、「トランザクションA完了」、「トランザクションA未完了」、「トランザクションB未完了」等を含んでもよい。トランザクションコマンドの開始部分を受信すると、メモリサブシステムは、トランザクションを実行するために用いられる、1つ以上の再マッピングテーブルの一時コピーを生成してもよい。トランザクションは、再マッピングテーブルの小部分にのみ影響を与えることもあるので、メモリサブシステムは、テーブルのうちのトランザクションの実行中に変更される部分を単に複製してもよい。更に、トランザクションの開始部分を受信する結果として、メモリの一部分(例えば、ページ及び/又はセクタ)は、メモリサブシステムにおいて複製されてもよい。一実装例において、このような複製処理では、メモリのオリジナル部分を不変なままにしておき、メモリ部分を複製したものを、変更、再書込み、及び/又は、処理することができる。他の実装例において、このような複製処理では、メモリ部分を複製したものを損なわれないままにしておき、メモリのオリジナル部分を、変更、再書込み、及び/又は、処理することができる。トランザクションコマンドの個々の演算子は、同様に、オリジナルの再マッピングテーブル又は再マッピングテーブルの一時コピーの変更、再書込み、及び/又は他のそのような処理をもたらしてもよい。トランザクションコマンドの終了部分又はコミット部分を受信することにより、メモリサブシステムは、トランザクションコマンドに含まれる全ての演算子が成功して完了していること、及び、再マッピングテーブルの一時コピーが損なわれないままであることを確認することができる。成功して完了している場合、レジスタは、再マッピングテーブルの一時コピーが、マスタ再マッピングテーブルに統合されるべきことを示すようにセットされてよい。例えば、再マッピングテーブルの一時コピーに含まれる情報は、このような統合後のマスタ再マッピングテーブルに含まれてもよい。このようなレジスタをセッティングすることにより、トランザクションを完了することができる。再マッピングテーブルのこのような一時コピーは、マスタ再マッピングテーブルの完全なコピーである必要はない。例えば、一時コピーは、近い将来のトランザクションに関係する変更を含む、マスタ再マッピングテーブルの一部分を単に表してもよい。一実装例において、再マッピングテーブルの一時コピーは、生成される必要はない。代わりに、マスタ再マッピングテーブルは、再マッピングテーブルの一部分が、特定のトランザクションに関連することを示すビットを含むように(僅かに)拡張されてもよい。このような特定部分は、トランザクションが「コミット」されるまで未完了のトランザクション動作の一部分として処理されてもよく、この「コミット」の時点において、再マッピングテーブルのそのような拡張部分を、マスター再マッピングテーブルのパーマネントレコードと振る舞わしてよい。
一実装例において、複数のトランザクションコマンドを処理することが可能なメモリサブシステムは、上に記載したように、マスタ再マッピングテーブルの一部分の複数の一時コピーを作成及び/又は処理することが可能であってもよい。同時にアクティブな複数のトランザクションが、メモリページの共通なサブセットに影響を及ぼすことを可能にさせられる場合において、メモリサブシステムは、トランザクションが処理される順番トラックを保持してもよい。勿論、このようなメモリサブシステムについての詳細は単に例示であって、請求項の主題はそのように限定されるものではない。
特定の実装例において、トランザクションを実行する方法は、上で議論したように、トランザクションリクエスト、複数のトランザクション演算子、及び/又は、トランザクションコミットを受信することを含んでもよい。例えば、回路及び/又はソフトウェアを備えるメモリコントローラは、このようなトランザクションリクエストをホストから受信してもよい。一実装例において、このようなメモリコントローラは、ホスト又は他の構成要素(エンティティ)からトランザクションリクエストを受信することに応答して、(このメモリコントローラを含んでもよく、又は含まなくてもよい)メモリデバイス内のメモリのコンテンツの一部分のコピーをつくり出してもよい。このようなコピーは、トランザクションがフェイルする場合に備えて、メモリに記憶されるオリジナルのコンテンツの保存を可能にすることができる。例えば、トランザクションコマンドは、メモリの特定部分に対して書込みを行う複数の演算子を含んでもよいが、このメモリは、特定の記憶情報を既に含んでいることがある。それゆえ、トランザクションコマンドの書込み演算子は、メモリの特定部分の記憶情報を「オーバーライト」してもよい(例えば、用いるメモリの形式に少なくとも部分的に応じた再書込み、又は、消去−書込み演算子シーケンス)。このような書込み演算子の一部分でも実行された後にトランザクションがフェイルする場合、オリジナルの記憶情報が失われることがある。しかしながら、オリジナルの記憶情報のコピーを持つことにより、このようなオリジナルの記憶情報を回復する方法を提供することができる。従って、メモリのうちトランザクションコマンドによって影響され得る1つ以上の部分は、トランザクションコマンドの演算子を実行することに先立ってコピーされてもよい。
上で言及したように、コントローラは、トランザクションコマンドの1つ以上のトランザクション演算子を受信することに応答して、メモリのコピーの情報を修正してもよい。特に、オリジナルのメモリを損なわれないようにし、トランザクション演算子によって修正されないようにすることができる。一実装例において、メモリサブシステムは、メモリのセクタ上で動作してもよい。そのような場合、上に記載したようにオリジナルのメモリをコピーするよりも新しい空のセクタを割り当てることが可能な場合がある。セクタは、更新されることで完全に再書込みされてもよい。従って、メモリサブシステムは、変更されるべきセクタの完全なコンテンツを受信していてよく、それにより、メモリのオリジナルのコンテンツをコピーする必要性を除去する。
トランザクションコマンドは、コンピュータデバイス又は他のこのようなホスティング構成要素(エンティティ)のオペレーティングシステム又はプロセッサによって開始されてもよい。例えば、トランザクションコマンドの書込み演算子により、メモリコピーのコンテンツの再書込みがもたらされることがある。一実装例において、コントローラは、1つ以上のコピーが配置される、メモリ内の物理的ロケーションをポイントする、一時再マッピングテーブルを保持してもよい。このような一時再マッピングテーブルは、1つ以上のトランザクション演算子をホストから受信することに応答して修正されてもよい。例えば、このようなトランザクション演算子が、メモリコピーの再配置をもたらすことがある。それゆえ、一時再マッピングテーブルは、このような再配置をトラックするように修正されてもよい。一実装例において、メモリコントローラは、1つ以上の更なるトランザクションコマンドに対応する、1つ以上の更なる一時再マッピングテーブルを同時に保持してもよい。例えば、複数の一時再マッピングテーブルを同時に保持することにより、メモリコントローラが複数のトランザクションを実行することを可能にすることができる。
実施形態では、1つ以上の一時再マッピングテーブルを保持することに加えて、メモリコントローラは、メモリ内の物理的ロケーションをポイントするマスタ再マッピングテーブルを保持してもよい。このようなマスタ再マッピングテーブルは、1つ以上の一時再マッピングテーブルのコンテンツに少なくとも部分的に基づいて、修正されてもよい。マスタ再マッピングテーブルのこのような修正は、トランザクションコマンドのコミット部分を受信することの結果として実行されてもよい。しかしながら、マスタ再マッピングテーブルの修正は、トランザクションが成功したか又はフェイルしたかどうかに、少なくとも部分的に基づいていてもよい。例えば、トランザクションが成功した場合、上で議論したように、メモリの修正されたコピーのコンテンツは、(この修正されたコピーの源である)メモリのオリジナルのコンテンツをオーバーライトするために用いられてもよい。また、マスタ再マッピングテーブルは、例えば、修正されたコピーのコンテンツが元のメモリロケーションに今記憶されるという事実を反映するように、修正されてもよい。他方で、トランザクションが成功していない場合、メモリの修正されたコピーのコンテンツは、そのようなコンテンツが用いられずオーバーライト又は消去されてもよいといった意味で、破棄されてもよい。このことは、トランザクションがフェイルする場合、トランザクションを実行する結果として修正されたデータ又は情報は保存されるべきではないからである。その代わりに、データ又は情報は、そのオリジナルのコンテンツに「戻される」べきである。上で説明したように、メモリのコピーされた部分が修正され、トランザクション中、オリジナルのメモリ部分は変更されない(例えば、保存される)ので、こうしたコピーにより、オリジナルのコンテンツへこのような返却が可能になる。また、例えば、マスタ再マッピングテーブルは、修正されたコピーのコンテンツは用いられるべきではなく、元のメモリロケーションに現在記憶されているコンテンツが代わりに用いられるべきであるという事実を反映するように、修正することができる。
トランザクション処理を伴う必要がない特定の実装例において、このようなマスタ再マッピングテーブルは、更に、メモリウェアレベリング動作及び/又は不良メモリ置換動作のために用いられてもよい。例えば、マスタ再マッピングテーブルは、不良ブロック及び/又はメモリアレイの過度に使用されたブロックに起因して再配置されたメモリのブロックに関する情報を保持してもよい。それゆえ、マスタ再マッピングテーブルは、例えば、ウェアレベリング又は不良ブロック管理及び/又はトランザクション等の複数の用途に関係してよい。
図1は、実施形態に係る、或るトランザクションプロトコルに従うイベントの状態を示す図である。例えば、トランザクションを実行するメモリコントローラは、このようなトランザクションプロトコルに、少なくとも部分的に基づいて動作してもよい。このようなトランザクションプロトコルにおいて、ホストは、メモリサブシステム150にトランザクションコマンド100を提供することによって、トランザクションを開始してもよい。このようなトランザクションコマンドは、開始部分110、ペイロード部分120、巻き戻し部分135、及び、終了部分130を含んでもよい。ペイロード部分120は、例えば、演算子「0」で開始して演算子「N」で終了するN個の複数の演算子を含んでもよい。上で言及したように、終了部分130は、トランザクションを終えるトランザクションコミットを含んでもよい。巻き戻し部分135は、いくつかの状況において終了部分130の代わりに生じてもよい。例えば、巻き戻し部分135が終了部分130の代わりに受信される場合、コマンド100の全ての動作が破棄されてもよい。一実装例において、メモリサブシステム150は、1つ以上のトランザクションを実行するメモリデバイス155を含んでもよい。このようなメモリサブシステムの一実施例は、図3に対する記載において更に詳細に説明される。このようなメモリサブシステムは、トランザクションが成功して完了したか又はフェイルしたかに関して、ホストに通知を与えてもよい。例えば、トランザクションコマンド100の全ての演算子を成功して完了することに応答して、メモリサブシステム150は、ホストに「完了」通知140を与えてもよい。勿論、トランザクションプロトコルのこのような詳細は単に例示であって、請求項の主題はそのように限定されるものではない。
図2は、実施形態に係る、トランザクションの状態を示す図である。時間は、図2において垂直下方に進行する。このようなトランザクションは、上で言及したように、ホスト又はシステム200によって開始されてもよく、メモリサブシステム210によって実行されてもよい。例えば、このようなホスト又はシステム200は、アプリケーションを実行するコンピュータプラットフォームを備えてもよく、メモリサブシステム210は、1つ以上のメモリデバイスを備えてもよい。1つ以上のこのようなトランザクションは、同時に実行されてもよい。単一のトランザクションの一実施例では、トランザクション0は、トランザクション0に対するトランザクションコマンドの開始部分をシステム200が提供することよって開始されてもよい。それに応じて、メモリサブシステム210は、演算子A及び演算子B等の、後に続くトランザクション演算子を受信し実行する準備をしてよい。上で説明したように、このような準備は、メモリのうち演算子A、B等によって影響を与えられ得る部分のコピーを生成することを含んでもよい。それゆえ、このような演算子は、トランザクション0がフェイルする場合に備えて保存されるオリジナルのメモリコンテンツを修正する必要はない。トランザクション0に対するトランザクションコマンドの終了部分をシステム200から受信すると、メモリサブシステム210は、トランザクション0が成功して完了したか又はフェイルしたかを判定することができる。どちらの場合においても、メモリサブシステム210は、このような成否をシステム200に知らせることができる。
複数のトランザクションを同時に実行する一実施例では、トランザクション1及び2は、両方のトランザクションに対するトランザクションコマンドの開始部分をシステム200が提供することによって開始されてもよい。それに応じて、メモリサブシステム210は、両方のトランザクションの演算子A等の、後に続くトランザクション演算子を受信し実行する準備をしてよい。上で説明したように、このような準備は、メモリのうち演算子によって影響を受け得る部分のコピーを生成することを含んでよい。それゆえ、このような演算子は、メモリのオリジナル部分を修正する必要はなく、情報は、トランザクション1又は2のどちらかがフェイルする場合に失われないですむ。特定の順番が図2に示されるが、複数のトランザクションの演算子は、任意の順番で実行されてもよい。例えば、トランザクション1に対するトランザクションコマンドの演算子Aは、トランザクション2に対するトランザクションコマンドの演算子Aの前に実行されてもよい。トランザクション1に対するトランザクションコマンドの終了部分をシステム200から受信すると、メモリサブシステム210は、トランザクション1が成功して完了したか又はフェイルしたかについて判定することができる。どちらの場合においても、メモリサブシステム210は、このような成否をシステム200に知らせることができる。同様に、トランザクション2の終了部分をシステム200から受信すると、メモリサブシステム210は、トランザクション2が成功して完了したか又はフェイルしたかについて判定することができる。どちらの場合でも、メモリサブシステム210は、このような成否をシステム200に知らせることができる。
一実装例において、メモリサブシステム210は、許容されるトランザクション演算子の最大数及び/又は1つ以上のトランザクションに使用されるメモリ部分の最大サイズを判定するためのコンテンツを含むレジスタ(図示せず)を備えてもよい。例えば、このようなレジスタは、トランザクションの演算子の数が500個に限定されることを示すコンテンツを含んでもよい。他の実施例として、このようなレジスタは、特定のトランザクションに用いられるべきメモリの部分の最大サイズが100個のページ又はセクタに限定されることを示すコンテンツを含んでもよい。勿論、トランザクションを実行することに必要な技術のこのような詳細は単に例示であって、請求項の主題はそのように限定されるものではない。
図3は、実施形態に係る、メモリサブシステム300及びホスト360を示すブロック図である。例えば、メモリサブシステム300は、メモリアレイ及び/又はコントローラを含むメモリデバイスを備えてもよく、ホスト360は、プロセッサを備えてもよい。図3の矢印は、方向を示してよいが、請求項の主題はいずれのこのような方向にも限定されるものではない。上で議論したように、トランザクションコマンドは、トランザクションリクエスト、1つ以上のトランザクション演算子、及び/又は、トランザクションコミットを含んでもよい。トランザクションを実行するメモリコントローラは、トランザクションエンジン330を備えてもよい。このようなメモリコントローラは、例えば、回線又はバス305を介してホスト360からトランザクションコマンドを受信してもよい。一実装例において、このようなメモリコントローラは、ホスト360からトランザクションコマンドを受信することに応答して、メモリサブシステム300内のメモリ350のコンテンツの一部分の1つ以上のコピーをつくり出してもよい。このようなメモリコピーは、メモリ350の予備領域355に配置されてもよいが、請求項の主題はそのように限定されるものではない。上で言及したように、メモリコントローラは、トランザクションコマンドの1つ以上のトランザクション演算子を受信することに応答して、メモリのコピーの情報を修正してもよい。例えば、トランザクションコマンドの書込み演算子は、メモリコピーのコンテンツを再書込みすることをもたらしてもよい。一実装例において、メモリコントローラは、1つ以上のコピーが配置される、予備領域355等の、メモリ350内の物理的ロケーションをポイントする、1つ以上の一時再マッピングテーブル340を保持してもよい。このような一時再マッピングテーブル340は、トランザクションコマンド中の1つ以上のトランザクション演算子を受信することに応答して修正されてもよい。例えば、このようなトランザクション演算子は、メモリコピーの再配置をもたらしてもよい。それゆえ、一時再マッピングテーブル340は、このような再配置をトラックするように修正されてもよい。1つ以上の一時再マッピングテーブルを保持することに加えて、メモリコントローラは、メモリ350内の物理的ロケーションをポイントするマスタ再マッピングテーブル320を保持してもよい。このようなマスタ再マッピングテーブルは、1つ以上の一時再マッピングテーブル340のコンテンツに、少なくとも部分的に基づくトランザクションエンジン330によって修正されてもよい。マスタ再マッピングテーブル320のこのような修正は、トランザクションコマンドのコミット部分を受信する結果として実行されてもよい。しかしながら、マスタ再マッピングテーブル320の修正は、上で説明したように、トランザクションが成功したか又はフェイルしたかについて、少なくとも部分的に基づいていてもよい。
図4は、実施形態に係る、トランザクション処理400のフローチャートである。ブロック410では、上で議論したように、メモリコントローラを備えるメモリサブシステムは、トランザクションリクエスト、1つ以上のトランザクション演算子、及び/又は、トランザクションコミットを含むトランザクションコマンドを受信してもよい。ブロック420において、このようなメモリコントローラは、メモリデバイス内のメモリのコンテンツの一部のコピーをつくり出してもよい。このようなコピーは、上で議論したように、トランザクションがフェイルする場合に備えて、メモリ内に記憶されるオリジナルのコンテンツの保存を可能にする。ブロック430において、メモリコントローラは、トランザクションコマンドの1つ以上のトランザクション演算子を受信することに応答して、メモリのコピーの情報を修正してもよい。例えば、トランザクションコマンドの書込み演算子は、メモリコピーのコンテンツを再書込みすることをもたらしてもよい。一実装例において、メモリコントローラは、1つ以上のコピーが配置される、メモリ内の物理的ロケーションをポイントする一時再マッピングテーブルを保持してもよいが、こうした物理的ロケーションは、例えば、図3に示す予備メモリ355等のメモリの予備領域内のものでもよい。このような一時再マッピングテーブルは、トランザクションコマンド内の1つ以上のトランザクション演算子を受信することに応答して修正されてもよい。ひし形で示す440において、トランザクションコマンドの終了を意味する、トランザクションコマンドのコミットが受信されるかどうかについて判定が成されてもよい。コミットが受信される場合、処理400は、ひし形で示す450に進行してもよく、ここで、トランザクションが成功して完了したかどうかについて判定が成されてよい。もし成功して完了されていない場合は、ブロック455に示すように、メモリの修正されたコピーのコンテンツを用いられずに、オーバーライト及び/又は消去されてよい。処理400は、その後、ブロック460に進行してもよく、ここで、メモリサブシステムが異常をホストに知らせることができる。しかしながら、トランザクションが成功して完了した場合、処理400は、ブロック470に進行してもよく、ここで、メモリの修正されたコピーのコンテンツは、上で議論したように、メモリのオリジナルのコンテンツをオーバーライトするために用いられてよい。更に、マスタ再マッピングテーブルは、例えば、修正されたコピーのコンテンツが、元のメモリロケーション内に今記憶されるという事実を反映するように、修正されてもよい。ブロック480において、メモリサブシステムは、トランザクションが成功して完了したことをホストに知らせてもよい。しかしながら、このようなコミットがひし形で示す440において受信されない場合、処理400は、修正を破棄する巻き戻しコマンドが受信されたかどうかについて判定が成されてよい、ひし形で示す490に進行してもよい。このような巻き戻しコマンドが受信されない場合、処理400は、後に続くトランザクション演算子を受信することに応答してメモリコピーが更に修正される、ブロック430にリターンされてよい。しかしながら、巻き戻しコマンドが受信される場合、処理400は、ブロック493に進行してもよく、ここで、メモリの修正されたコピーのコンテンツは、無視され、用いられず、オーバーライト及び/又は消去されてよい。処理400は、その後、メモリサブシステムが、巻き戻し処理が成功又は完全であることをホストに知らせる、ブロック496に進行してよい。勿論、処理400についてのこのような詳細は単に例示であって、請求項の主題はそのように限定されるものではない。
図5は、メモリデバイス510を含むコンピュータシステム500の実施形態例を概略的に示す図である。このようなコンピュータデバイスは、例えば、アプリケーション及び/又は他のコードを実行するために、1つ以上のプロセッサを備えてよい。例えば、メモリデバイス510は、図1に示したPCM100の一部分を含むメモリを備えてよい。コンピュータデバイス504は、メモリデバイス510を管理するように構成されてよい任意のデバイス、装置、又は機械の典型としてよい。メモリデバイス510は、メモリコントローラ515及びメモリ522を含んでよい。例示であって制限されるものではないが、コンピュータデバイス504は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、ワークステーション、サーバデバイス等の1つ以上のコンピュータデバイス及び/又はプラットフォームと、例えば、携帯情報端末、モバイル通信デバイス等の1つ以上のパーソナルコンピュータデバイス又は通信デバイス及び/又は装置と、例えば、データベース又はデータ記憶サービスプロバイダ/システム等のコンピュータシステム及び/又は関連するサービスプロバイダ機能と、及び/又はこれらの任意の組み合わせとを含んでよい。
システム500に示した様々なデバイスの全部又は一部、及び本明細書に更に記載されたような処理及び方法は、ハードウェア、ファームウェア、ソフトウェア、又はこれらの任意の組み合わせを用いるかあるいは含むように実装されてもよいことが理解される。ゆえに、例示であって限定されるものではないが、コンピュータデバイス504は、バス540及びホスト又はメモリマイクロコントローラ515を通してメモリ522に動作的に連結される、少なくとも1つの処理ユニット520を含んでよい。処理ユニット520は、データコンピューティング手順又はデータコンピューティング処理の少なくとも一部を実行するように構成可能な1つ以上の回路の典型である。例示であって限定されるものではないが、処理ユニット520は、1つ以上のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路、デジタル信号プロセッサ、プログラマブル論理デバイス、フィールド・プログラマブル・ゲートアレイ等を含んでよく、又はこれらの任意の組み合わせを含んでよい。処理ユニット520は、メモリコントローラ515と通信するように構成されたオペレーティングシステムを含んでよい。このようなオペレーティングシステムは、例えば、バス540上でメモリコントローラ515に送信されるトランザクションコマンドを生成してよい。このようなトランザクションコマンドは、例えば、読み出しコマンド及び/又は書込みコマンドを含む演算子を含んでよい。一実装例において、バス540は、少しの例を挙げると、イーサネット(登録商標)、ワイヤレスローカルエリアネットワーク(LAN)、セルラーネットワーク、シリアルATA(SATA)、シリアルアタッチドSCSI(SAS)、又は、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)カードの一部を含んでもよい。トランザクションコマンドを受信することに応答して、例えば、メモリコントローラ515は、このようなトランザクションを実行するために、上記の処理400を実行してよい。一実装例において、システム500は、例えば、少なくとも1つのメモリアレイを含むメモリデバイス510を備えてよい。このようなメモリデバイスは、更に、トランザクションリクエスト、1つ以上のトランザクション演算子、及び/又は、トランザクションコミットを含むトランザクションコマンドを受信するメモリコントローラ515を備えてよい。メモリコントローラ515は、更に、トランザクションコマンドを受信することに応答して、少なくとも1つのメモリアレイのコンテンツの一部分のコピーをつくり出してよい。メモリコントローラ515は、その後、トランザクションの1つ以上のトランザクション演算子を受信することに応答して、コピーの情報を修正してよい。一実装例において、処理ユニット520は、1つ以上のアプリケーションのホストをつとめるとともにこのようなトランザクションを開始してもよいが、請求項の主題はそのように限定されるものではない。
メモリ522は、任意のデータストレージ機構の典型である。メモリ522は、例えば、一次メモリ524及び/又は二次メモリ526を含んでよい。一次メモリ524は、例えば、ランダムアクセスメモリ、リードオンリメモリ等を含んでよい。この例示は処理ユニット520から離れているものとして説明したが、一次メモリ524の全部又は一部は処理ユニット520内に備えられていてよく、あるいは処理ユニット520と同じ場所に設置されているか、又は処理ユニット520に連結されてよいと理解されるべきである。
二次メモリ526は、例えば、一次メモリと同一形式のメモリもしくは類似形式のメモリ、及び/又は、例えば、ディスクドライブ、光学ディスクドライブ、テープドライブ、固体メモリドライブ等の1つ以上のデータ記憶装置もしくはシステムを含んでよい。所定の実装例において、二次メモリ526は動作可能的にコンピュータ可読媒体528から受信可能であってよく、もしくは、コンピュータ可読媒体528に連結するように構成可能であってよい。コンピュータ可読媒体528は、例えば、システム500における1つ以上のデバイスに対するデータ、コード、及び/又は命令を送ることができ、かつ/又は、こうしたデータ、コード、及び/又は命令をアクセス可能にすることができる任意の媒体を含んでよい。
コンピュータデバイス504は、例えば、入力/出力532を含んでよい。入力/出力532は、人及び/又は機械の入力を受入れるように構成可能な、又は導入するように構成可能な1つ以上のデバイス又は機能、及び/又は、人及び/又は機械の出力を送達させるように構成可能な、又は提供するように構成可能な1つ以上のデバイス又は機能の典型である。例示であって限定されるものではないが、入力/出力デバイス532は、動作可能に構成されたディスプレイ、スピーカー、キーボード、マウス、トラックボール、タッチスクリーン、データポート等を含んでよい。
本明細書に使用された用語「及び」、「及び/又は」、及び「又は」は、少なくとも一部において、これらの用語が使用される文脈に応じた様々な意味を含んでよい。一般に、「A、B、又はC」等のリストに関連するように使用された場合の「及び/又は」並びに「又は」とは、ここでは包括的な意味として使用している「A、B、及びC」、並びに、ここでは排他的な意味として使用している「A、B、又はC」を意味することが意図される。本明細書全体を通した「一実施形態」又は「実施形態」といった言及は、その実施形態に関連して記載した特定の特色、構造、特性が、請求項に記載された主題の少なくとも一実施形態に含まれることを意味する。それゆえ、本明細書を通して様々な箇所における「一実施形態において」又は「実施形態」という語句の出現は、必ずしも全てが同一の実施形態を言及しているものではない。更に、これら特定の特色、構造、又は特徴は、1つ以上の実施形態において組み合わされてよい。
現時点で考えられる実施形態例について説明して述べてきたが、請求項の主題から逸脱することなく、他の様々な変更を行い、均等物との置換を行うことができることが当業者に理解されるであろう。加えて、本明細書に開示された主要概念から逸脱することなく、特定の状況を請求項の主題の教示に適用するように多くの変更がなされてよい。それゆえ、請求項の主題が開示された特定の実施形態に限定されないことが意図され、そのような請求項の主題は、添付の特許請求の範囲に含まれる全ての実施形態及びそれらの均等物を包含することもあることが意図される。

Claims (20)

  1. トランザクションリクエスト又は複数のトランザクション演算子を含むトランザクションコマンドを受信することと、
    前記トランザクションリクエストを受信することに応答して、メモリアレイの第1の部分内のオリジナルのコンテンツを、前記メモリアレイの第2の部分にコピーすることと、
    前記トランザクションコマンドの前記複数のトランザクション演算子を受信することに応答して、前記第2の部分の前記オリジナルのコンテンツを修正することと、
    前記メモリアレイ内の物理的ロケーションをポイントするマスタ再マッピングテーブルを設けることと、
    前記トランザクションコマンドによって影響を受ける前記マスタ再マッピングテーブルの部分に対応した一時再マッピングテーブルを設けることと、
    前記メモリアレイの前記第2の部分になされた修正を反映するように、前記一時再マッピングテーブルを修正することと、
    前記一時再マッピングテーブルの修正された内容に基づいて、前記マスタ再マッピングテーブルを更新することと、
    を備えることを特徴とする方法。
  2. 前記トランザクションコマンドは、前記トランザクションコマンドを終了させるトランザクションコミットを更に備え、前記トランザクションコミットを受信することに応答して、前記トランザクションコマンドに関連するトランザクションが成功したか又はフェイルしたかについて判定し、
    前記トランザクションが成功した場合、
    前記第1の部分の前記オリジナルのコンテンツを、前記第2の部分内の前記修正されたコンテンツで置換し、
    前記トランザクションがフェイルした場合、
    次のトランザクション中に前記第2の部分内の前記修正されたコンテンツを書き直す、
    ことを特徴とする請求項1に記載の方法。
  3. 前記一時再マッピングテーブルは、前記第2の部分が配置される前記メモリ内の物理的ロケーションをポイントすることを更に備えることを特徴とする請求項1に記載の方法。
  4. 前記1つ以上のトランザクション演算子を受信することに応答して、前記一時再マッピングテーブルを修正することを更に備えることを特徴とする請求項3に記載の方法。
  5. 1つ以上の更なるトランザクションに対応する、1つ以上の更なる一時再マッピングテーブルを同時に保持することを更に備えることを特徴とする請求項3記載の方法。
  6. レジスタのコンテンツに、少なくとも部分的に基づいて、許容するトランザクション演算子の最大数、及び/又は、前記メモリの前記第1の部分あるいは前記第2の部分の最大サイズを判定することを更に備えることを特徴とする請求項1に記載の方法。
  7. 記トランザクションコマンド内のトランザクションコミットを受信することに応答して、かつ、メモリウェアレベリング動作又は不良メモリ置換動作に応答して、前記マスタ再マッピングテーブルを修正することと、
    を更に備えることを特徴とする請求項3に記載の方法。
  8. 少なくとも1つのメモリアレイと、
    トランザクションリクエスト又は複数のトランザクション演算子を含むトランザクションコマンドを受信するとともに、
    前記トランザクションリクエストを受信することに応答して、前記少なくとも1つのメモリアレイの第1の部分内のオリジナルのコンテンツを、前記少なくとも1つのメモリアレイの第2の部分にコピーし、
    前記トランザクションコマンドの前記複数のトランザクション演算子を受信することに応答して、前記第2の部分の前記オリジナルのコンテンツを修正し、
    前記メモリアレイ内の物理的ロケーションをポイントするマスタ再マッピングテーブルを設け、
    前記トランザクションコマンドによって影響を受ける前記マスタ再マッピングテーブルの部分に対応した一時再マッピングテーブルを設け、
    前記メモリアレイの前記第2の部分になされた修正を反映するように、前記一時再マッピングテーブルを修正し、かつ
    前記一時再マッピングテーブルの修正された内容に基づいて、前記マスタ再マッピングテーブルを更新する、
    コントローラと、
    を備えることを特徴とするメモリデバイス。
  9. 前記一時再マッピングテーブルは、前記第2の部分が配置される、前記少なくとも1つのメモリアレイ内の物理的ロケーションをポイントすることを特徴とする請求項8に記載のメモリデバイス。
  10. 前記コントローラは、前記1つ以上のトランザクション演算子を受信することに応答して、前記一時再マッピングテーブルを修正するように適応されていることを特徴とする請求項9に記載のメモリデバイス。
  11. 1つ以上の更なるトランザクションに対応する、1つ以上の更なる一時再マッピングテーブルを更に備えることを特徴とする請求項9に記載のメモリデバイス。
  12. 許容トランザクション演算子の最大数、及び/又は、前記少なくとも1つのメモリアレイの前記第1の部分あるいは前記第2の部分の最大サイズを示すコンテンツを記憶するレジスタを更に備えることを特徴とする請求項8に記載のメモリデバイス。
  13. 前記マスタ再マッピングテーブルは、前記1つ以上のトランザクション演算子に少なくとも部分的に基づいて、また、メモリウェアレベリング動作又は不良メモリ置換動作に少なくとも部分的に基づいて、前記少なくとも1つのメモリアレイ内の物理的ロケーションをポイントすることを特徴とする請求項9に記載のメモリデバイス。
  14. 前記第2の部分を保持する前記メモリアレイの予備領域を更に備えることを特徴とする請求項8に記載のメモリデバイス。
  15. 前記コントローラは、トランザクションプロトコルに少なくとも部分的に基づいて動作するトランザクションエンジンを備えることを特徴とする請求項8に記載のメモリデバイス。
  16. 少なくとも1つのメモリアレイを備えるメモリデバイスであって、
    トランザクションリクエスト又は複数のトランザクション演算子を含むトランザクションコマンドを受信するとともに、
    前記トランザクションリクエストを受信することに応答して、前記少なくとも1つのメモリアレイの第1の部分内のオリジナルのコンテンツを、前記少なくとも1つのメモリアレイの第2の部分にコピーし、
    前記トランザクションコマンドの前記複数のトランザクション演算子を受信することに応答して、前記第2の部分の前記オリジナルのコンテンツを修正
    前記メモリアレイ内の物理的ロケーションをポイントするマスタ再マッピングテーブルを設け、
    前記トランザクションコマンドによって影響を受ける前記マスタ再マッピングテーブルの部分に対応した一時再マッピングテーブルを設け、
    前記メモリアレイの前記第2の部分になされた修正を反映するように、前記一時再マッピングテーブルを修正し、かつ
    前記一時再マッピングテーブルの修正された内容に基づいて、前記マスタ再マッピングテーブルを更新する、
    メモリコントローラを更に備えるメモリデバイスと、
    1つ以上のアプリケーションを提供するとともに、前記トランザクションコマンドを開始するプロセッサと、
    を備えることを特徴とするシステム。
  17. 前記一時再マッピングテーブルは、前記第2の部分が配置される、前記少なくとも1つのメモリアレイ内の物理的ロケーションをポイントすることを特徴とする請求項16に記載のシステム。
  18. 前記メモリコントローラは、前記1つ以上のトランザクション演算子を受信することに応答して、前記一時再マッピングテーブルを修正するように適応されていることを特徴とする請求項17に記載のシステム。
  19. 1つ以上の更なるトランザクションに対応する、1つ以上の更なる一時再マッピングテーブルを更に備えることを特徴とする請求項17に記載のシステム。
  20. 前記コントローラは、トランザクションプロトコルに少なくとも部分的に基づいて動作する、トランザクションエンジンを備えることを特徴とする請求項16に記載のシステム。
JP2011278132A 2011-01-27 2011-12-20 トランザクションメモリ Active JP5582418B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/015,396 2011-01-27
US13/015,396 US9104690B2 (en) 2011-01-27 2011-01-27 Transactional memory

Publications (2)

Publication Number Publication Date
JP2012155705A JP2012155705A (ja) 2012-08-16
JP5582418B2 true JP5582418B2 (ja) 2014-09-03

Family

ID=46511607

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011278132A Active JP5582418B2 (ja) 2011-01-27 2011-12-20 トランザクションメモリ

Country Status (6)

Country Link
US (2) US9104690B2 (ja)
JP (1) JP5582418B2 (ja)
KR (1) KR101337676B1 (ja)
CN (1) CN102707898B (ja)
DE (1) DE102012201154B4 (ja)
TW (1) TWI590046B (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9244724B2 (en) * 2013-08-15 2016-01-26 Globalfoundries Inc. Management of transactional memory access requests by a cache memory
JP6289883B2 (ja) * 2013-11-27 2018-03-07 株式会社東芝 ストレージ装置
GB2529148B (en) * 2014-08-04 2020-05-27 Advanced Risc Mach Ltd Write operations to non-volatile memory
US11582244B2 (en) * 2017-03-23 2023-02-14 International Business Machines Corporation Access control of administrative operations within an application
US10635613B2 (en) * 2017-04-11 2020-04-28 Micron Technology, Inc. Transaction identification
US10621103B2 (en) 2017-12-05 2020-04-14 Arm Limited Apparatus and method for handling write operations
KR102707997B1 (ko) * 2019-05-10 2024-09-23 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
US11693690B2 (en) 2020-10-20 2023-07-04 Micron Technology, Inc. Method of completing a programmable atomic transaction by ensuring memory locks are cleared
US11740929B2 (en) 2020-10-20 2023-08-29 Micron Technology, Inc. Registering a custom atomic operation with the operating system
US12020062B2 (en) 2020-10-20 2024-06-25 Micron Technology, Inc. Method of executing programmable atomic unit resources within a multi-process system
US11403023B2 (en) 2020-10-20 2022-08-02 Micron Technology, Inc. Method of organizing a programmable atomic unit instruction memory
US11436187B2 (en) * 2020-10-20 2022-09-06 Micron Technology, Inc. Method of notifying a process or programmable atomic operation traps
US11586439B2 (en) 2020-10-20 2023-02-21 Micron Technology, Inc. Detecting infinite loops in a programmable atomic transaction

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014724A (en) * 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
US8341332B2 (en) 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US6779094B2 (en) * 2000-06-19 2004-08-17 Storage Technology Corporation Apparatus and method for instant copy of data by writing new data to an additional physical storage area
JP4140750B2 (ja) 2000-12-28 2008-08-27 日本電信電話株式会社 Icカード内メモリアクセス制御方法および装置並びにプログラム記憶媒体
US6871257B2 (en) 2002-02-22 2005-03-22 Sandisk Corporation Pipelined parallel programming operation in a non-volatile memory system
US7389308B2 (en) * 2003-05-30 2008-06-17 Microsoft Corporation Shadow paging
US7568025B2 (en) * 2003-06-27 2009-07-28 Bank Of America Corporation System and method to monitor performance of different domains associated with a computer system or network
US7779212B2 (en) * 2003-10-17 2010-08-17 Micron Technology, Inc. Method and apparatus for sending data from multiple sources over a communications bus
US8417913B2 (en) * 2003-11-13 2013-04-09 International Business Machines Corporation Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
US7395384B2 (en) 2004-07-21 2008-07-01 Sandisk Corproation Method and apparatus for maintaining data on non-volatile memory systems
US7290176B2 (en) * 2004-07-31 2007-10-30 Hewlett-Packard Development Company, L.P. Method and system for generating stacked register dumps from backing-store memory
JP4104586B2 (ja) 2004-09-30 2008-06-18 株式会社東芝 ファイル管理機能を備えたファイルシステム及びファイル管理方法
US7490215B2 (en) 2004-12-22 2009-02-10 Intel Corporation Media memory system and method for providing concurrent memory access to a plurality of processors through separate translation table information
CN100369038C (zh) 2005-02-24 2008-02-13 中兴通讯股份有限公司 一种实时数据库事务操作的实现方法
US7478261B2 (en) 2005-09-13 2009-01-13 M2000 Reconfigurable circuit with redundant reconfigurable cluster(s)
US8683143B2 (en) 2005-12-30 2014-03-25 Intel Corporation Unbounded transactional memory systems
US7533237B1 (en) * 2006-05-11 2009-05-12 Nvidia Corporation Off-chip memory allocation for a unified shader
US20080005504A1 (en) 2006-06-30 2008-01-03 Jesse Barnes Global overflow method for virtualized transactional memory
US20080120304A1 (en) 2006-11-21 2008-05-22 Calio Robert J Method and system for providing high performance data modification of relational database tables
CN101589386B (zh) 2006-12-04 2013-03-27 桑迪士克Il有限公司 增加透明的文件更新
US8589341B2 (en) 2006-12-04 2013-11-19 Sandisk Il Ltd. Incremental transparent file updating
US10311427B2 (en) * 2006-12-29 2019-06-04 Google Technology Holdings LLC Method and system for monitoring secure application execution events during contactless RFID/NFC communication
JP2008287398A (ja) 2007-05-16 2008-11-27 Toshiba Corp 主記憶装置、主記憶装置の制御方法、およびこの主記憶装置を用いた情報処理装置
US7856522B2 (en) * 2007-05-16 2010-12-21 Oracle International Corporation Flash-aware storage optimized for mobile and embedded DBMS on NAND flash memory
KR101336258B1 (ko) 2007-05-29 2013-12-03 삼성전자 주식회사 비휘발성 메모리의 데이터 처리 장치 및 방법
WO2009052527A1 (en) * 2007-10-19 2009-04-23 Virident Systems, Inc. Managing memory systems containing components with asymmetric characteristics
US8627014B2 (en) 2008-12-30 2014-01-07 Intel Corporation Memory model for hardware attributes within a transactional memory system
US8627017B2 (en) 2008-12-30 2014-01-07 Intel Corporation Read and write monitoring attributes in transactional memory (TM) systems
US8250282B2 (en) * 2009-05-14 2012-08-21 Micron Technology, Inc. PCM memories for storage bus interfaces
US8036016B2 (en) * 2009-09-01 2011-10-11 Micron Technology, Inc. Maintenance process to enhance memory endurance

Also Published As

Publication number Publication date
US20150347315A1 (en) 2015-12-03
KR20120087091A (ko) 2012-08-06
CN102707898A (zh) 2012-10-03
TWI590046B (zh) 2017-07-01
DE102012201154B4 (de) 2021-08-05
US10083122B2 (en) 2018-09-25
US9104690B2 (en) 2015-08-11
JP2012155705A (ja) 2012-08-16
CN102707898B (zh) 2016-04-27
US20120198205A1 (en) 2012-08-02
DE102012201154A1 (de) 2012-08-02
TW201232257A (en) 2012-08-01
KR101337676B1 (ko) 2013-12-06

Similar Documents

Publication Publication Date Title
JP5582418B2 (ja) トランザクションメモリ
JP6026538B2 (ja) 検証されたデータセットの不揮発性媒体ジャーナリング
US9235524B1 (en) System and method for improving cache performance
US8627012B1 (en) System and method for improving cache performance
RU2554847C2 (ru) Контрольные точки для файловой системы
US10102070B2 (en) Information processing system, storage apparatus and storage device
JP2018152127A (ja) 注釈付きアトミック書き込み操作を行う方法および装置
US9037799B2 (en) Rebuild of redundant secondary storage cache
CN113568566B (zh) 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器
US10089320B2 (en) Method and apparatus for maintaining data consistency in an in-place-update file system with data deduplication
TW201502783A (zh) 用以執行無原子元資料之電力故障安全快取的技術
US10521148B2 (en) Data storage device backup
KR20150053720A (ko) 논리 블록 주소의 아토믹 스왑 및 트림을 위한 swat 커맨드 및 애플리케이션 프로그래밍 인터페이스
US10664193B2 (en) Storage system for improved efficiency of parity generation and minimized processor load
EP2979191B1 (en) Coordinating replication of data stored in a non-volatile memory-based system
US9053033B1 (en) System and method for cache content sharing
WO2015141219A1 (ja) ストレージシステム、制御装置、記憶装置、データアクセス方法及びプログラム記録媒体
US9009416B1 (en) System and method for managing cache system content directories
JP2014038551A (ja) データ記憶装置、データ記憶装置の制御方法、及びデータ記憶装置の制御プログラム
CN111752475B (zh) 在存储服务器中进行数据存取管理的方法与装置
CN113568567B (zh) 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20131227

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131227

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140130

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140130

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: 20140624

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140703

R150 Certificate of patent or registration of utility model

Ref document number: 5582418

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

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