JP2013077278A - メモリ・デバイス - Google Patents

メモリ・デバイス Download PDF

Info

Publication number
JP2013077278A
JP2013077278A JP2012024188A JP2012024188A JP2013077278A JP 2013077278 A JP2013077278 A JP 2013077278A JP 2012024188 A JP2012024188 A JP 2012024188A JP 2012024188 A JP2012024188 A JP 2012024188A JP 2013077278 A JP2013077278 A JP 2013077278A
Authority
JP
Japan
Prior art keywords
memory
data
command
write
memory device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012024188A
Other languages
English (en)
Inventor
Osamu Yamagishi
治 山岸
Atsushi Shiraishi
敦 白石
Misao Hasegawa
操 長谷川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012024188A priority Critical patent/JP2013077278A/ja
Priority to TW101107019A priority patent/TWI494757B/zh
Priority to CN201210068500.XA priority patent/CN102999452B/zh
Priority to US13/424,749 priority patent/US8909854B2/en
Publication of JP2013077278A publication Critical patent/JP2013077278A/ja
Pending legal-status Critical Current

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/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
    • 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
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

【課題】規格で定められていない仕様について、より高い性能を実現できるメモリ・デバイスを提供する。
【解決手段】メモリ・デバイスは、複数のセルからなる書き込み単位ごとにデータを書き込む不揮発性のメモリと、メモリを制御するコントローラを含む。コントローラは、メモリのメモリ空間を複数のパーティションに区切って管理し、ホスト・デバイスからの書き込みデータをメモリに書き込む要求に対して書き込みデータの分割された部分である書き込みデータ部分を送信することをそのサイズを指定してホスト・デバイスに要求することを定めた書き込み手順に従い、第1パーティションへのアクセスを要求する第1コマンドの処理の完了前に第2パーティションへのアクセスを要求する第2コマンドを受け付ける。書き込みデータ部分は該データ部分および付加的データの和のサイズが書き込み単位のサイズ以下で最大となるサイズの整数倍のサイズを有する。
【選択図】図10

Description

本発明の実施形態はメモリ・デバイスに関する。
データを保持するメディアとして種々のものが存在する。そのようなメディアとして、例えばクライアント・サーバ・モデルに基づいたメモリ・デバイスがある。クライアント・サーバ・モデルに基づいた、メモリ・デバイスおよびホスト・デバイスからなるメモリ・システムでは、別のメモリ・システムと異なる点がある。例えば、クライアント・サーバ・モデルに基づくメモリ・デバイスおよびホスト・デバイスの役割分担は、クライアント・サーバ・モデルに基づかないメモリ・デバイスおよびホスト・デバイスの役割分担と異なる。したがって、ホスト・デバイスとメモリ・デバイスとの間の通信内容も、クライアント・サーバ・モデルに基づくシステムと基づかないシステムとで異なる。
メモリ・システムは特定の規格に則っていることがある。例えば、クライアント・サーバ・モデルに基づくメモリ・システムとして、例えば、UFS(Universal Flash Storage)メモリ・デバイスおよびホスト・デバイスが挙げられる。規格で定められている点については、メモリ・システムは仕様に則っていなければならない。しかしながら、規格で定められていない点も存在し、このような点については、メモリ・システムの設計者が定めることができる。このように自由度が存在する事項については、メモリ・システムの特性に適する形で好ましい性能が実現されるように、決定されるべきである。このような自由度を伴った事項に対して適切な決定を行なって、より高い性能を実現できるメモリ・デバイスを提供する要望がある。
特開2003−203490号公報
より高い性能を実現できるメモリ・デバイスを提供しようとするものである。
実施形態の一実施形態によるメモリ・デバイスは、複数のセルからなる書き込み単位ごとにデータを書き込む不揮発性のメモリと、メモリを制御するコントローラを含む。コントローラは、メモリのメモリ空間を複数のパーティションに区切って管理し、ホスト・デバイスからの書き込みデータをメモリに書き込む要求に対して書き込みデータの分割された部分である書き込みデータ部分を送信することをそのサイズを指定してホスト・デバイスに要求することを定めた書き込み手順に従い、第1パーティションへのアクセスを要求する第1コマンドの処理の完了前に第2パーティションへのアクセスを要求する第2コマンドを受け付ける。書き込みデータ部分は当該書き込みデータ部分および対応する付加的データの和のサイズが書き込み単位のサイズ以下で最大となるように決定されたサイズの整数倍のサイズを有する。
参考例によるメモリ・システムの通信の様子を示している。 第1実施形態に係るメモリ・デバイスのハードウェア上の構成を示している。 メモリを例示する回路図。 メモリ空間の構成を例示する図。 メモリ・デバイスが封止された形態の例を示している。 第1実施形態に係るメモリ・デバイスの機能ブロックを示している。 パケットの例を示している。 論理アドレスと物理ブロックの変換テーブルの例を示している。 第1実施形態に係るルータをより詳細に示す機能ブロック図である。 第1実施形態に係るデータ書き込み時の通信の様子を例示している。 第1実施形態に係るデータ読み出し時の通信の様子を例示している。 第2実施形態に係るデータ書き込み時の通信の様子を例示している。 第2実施形態に係るデータ読み出し時の通信の様子を例示している。 第1実施形態に係る1ページ中のデータの中身を例示している。
実施形態の説明に先立ち、クライアント・サーバ・モデルに基づくメモリ・システムの参考例について簡単に説明する。クライアント・サーバ・モデルに基づくメモリ・デバイスに複数のパーティションが設けられる場合がある。図1は、そのようなメモリ・デバイスとそのホスト・デバイスとの間の書き込みの際の通信の様子を例示している。
図1に示されているように、ホスト・デバイスは書き込みコマンドを発行することにより、書き込みを開始する。書き込みコマンドは、書き込まれるデータ(書き込みデータ)の論理アドレス、および書き込みデータのサイズの情報を含んでいる。この書き込みコマンドは、例としてメモリ・デバイスのパーティション1への書き込みを指示している。このメモリ・デバイスは、一般に、書き込みコマンドを受け取ると、書き込みデータの転送要求の内容を決定する。転送要求には、書き込みデータのうちのメモリ・デバイスがホスト・デバイスからの転送を望む部分の大きさおよびオフセット・アドレスが含まれることになっている。オフセット・アドレスは、メモリ・デバイスが転送を望む部分の位置を特定するためのものである。ホスト・デバイスは、転送要求を受け取ると、要求されたデータ部分をメモリ・デバイスに転送する。メモリ・デバイスは、受け取ったデータ部分をメモリに書き込むことと、さらなるデータ部分の転送要求を送信することと、を実行する。このような転送要求と書き込みは、書き込みデータ全体が書き込まれるまで継続する。書き込みデータ全体の書き込みの成功または失敗に応じて、メモリ・デバイスはホスト・デバイスに相応するレスポンスを送信する。
あるパーティションを指定する書き込みコマンドの発行からレスポンスの発行までの間は、メモリ・デバイスは、別のパーティションへの書き込みを受け付けない。このため、パーティション1以外のパーティションへの書き込みを望むホスト・デバイスは、パーティション1への書き込みの終了後に、例えばパーティション2への書き込みを指示する書き込みコマンドを発行する。この書き込みコマンドの発行を受けて、ホスト・デバイスおよびメモリ・デバイスは、上記と同様の手順で、パーティション2への書き込みを行なう。
このような、あるパーティションへの書き込みコマンドの発行からレスポンスの発行までの間は、別のパーティションへの書き込みを禁止するメモリ・デバイスには、例えばeMMCデバイスが知られている。
一方、複数のパーティションへの並行したアクセスを受け付けるメモリ・デバイスおよびホスト・デバイスが存在する。そのようなメモリ・システムとして、UFSメモリ・デバイスおよびホスト・デバイスが挙げられる。UFSの規格は、メモリ・デバイスおよびホスト・デバイスが複数パーティションへのアクセスをサポートすることを要求するのみで、そのようなアクセスの詳細を規定していない。このため、詳細の未規定事項については、メモリ・システムの特性を考慮して、適切に決定される必要がある。
以下に、このような知見に基づいて構成された実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、構成部品の材質、形状、構造、配置等を下記のものに特定するものでない。実施形態の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
(第1実施形態)
図2は、第1実施形態に係るメモリ・デバイスを概略的に示している。図2は、メモリ・デバイスのハードウェア上の構成を示している。図2に示されているように、メモリ・デバイス(半導体記憶装置)1は、ホスト・デバイス(以下、単にホストと称する場合がある)2と通信できるように構成されている。メモリ・デバイス1とホスト2は、少なくとも、ホスト2からの書き込み要求に対して、メモリ・デバイス1が書き込みデータの部分のサイズおよび位置を指定できる方式で通信する。より具体的には、メモリ・デバイス1とホスト2は、クライアント・サーバ・モデルに基づいて通信する。メモリ・デバイス1は、ターゲットとして動作し、ホスト2はイニシエータとして動作する。さらに具体的な例として、メモリ・デバイス1はUFSメモリ・デバイスであり、ホスト2はUFSメモリ・デバイスをサポートするホストである。
メモリ・デバイス1は、少なくとも、不揮発性の半導体メモリ11と、メモリ11を制御するためのメモリ・コントローラ12とを含んでいる。メモリ11は、複数ビットからなる特定の書き込み単位でデータの書き込みおよび読み出しを行う。さらに、メモリ11は、複数の書き込み単位からなる消去単位でデータを消去する。
例えば、メモリ11は1つまたは複数のNAND型フラッシュ・メモリからなる。メモリ11がNAND型フラッシュ・メモリである場合、メモリ11は、ページ単位でデータの書き込みおよび読み出しを行う。ページは、図3に示すように、接続された複数のメモリ・セルの集合のメモリ空間からなり、固有の物理アドレスを割り当てられている。各メモリ・セルは、いわゆる積層ゲート構造のMOSFET(metal oxide semiconductor field effect transistor)MTからなる。各セル・トランジスタMTは、浮遊ゲート電極FGに蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じた情報を記憶する。セル・トランジスタMTが電流経路(ソース/ドレインSD)同士を相互に直列接続されてNANDストリングを構成し、NANDストリングの両端に選択トランジスタS1、S2が接続される。選択トランジスタS2の電流経路の他端はビット線BLに接続され、選択トランジスタS1の電流経路の他端はソース線SLに接続されている。
ワード線WL0乃至WL63は、WL方向に延び、同じ行に属する複数のセル・トランジスタMTの制御ゲート電極CGに接続される。セル・トランジスタMTは、ビット線BLとワード線WLとの各交点に設けられる。セレクト・ゲート線SGDは、WL方向に延び、ブロック内の全選択トランジスタS2に接続されている。セレクト・ゲート線SGSは、WL方向に延び、ブロック内の全選択トランジスタS1に接続されている。同じワード線WLと接続されている複数のメモリ・セル・トランジスタMTは、ページを構成する。
メモリ11がNAND型フラッシュ・メモリである場合、セル・トランジスタMTが2つ以上の閾値電圧の異なる状態を取り得る、つまり1つのメモリ・セルが多値(多ビット)を記憶できるようにメモリ11が構成されていてもよい。そのような多値を記憶可能なメモリの場合、1つのワード線に複数ページが割り当てられる。
メモリ11は、図4に示すように、複数のメモリ・セルからなるメモリ・セルアレイ91と、メモリ・セルとの間でデータの入出力を行うページ・バッファ92とを備えている。ページ・バッファ92は、1ページ分のデータを保持する。メモリ11へのデータの書き込みを行う場合、メモリ・コントローラ12は、書き込みコマンドとともに、書き込み先を示すページアドレスと1ページ分の書き込みデータとをメモリ11に送信する。メモリ11は、メモリ・コントローラ12から受信した書き込みデータをページ・バッファ92に格納し、ページ・バッファ92内の書き込みデータをページアドレスで指定されたメモリ・セルへと書き込む。このメモリ・セルへの書き込み動作を開始すると、メモリ11はメモリ・コントローラ12に対して動作中であることを示すビジー信号を出力する。引き続きデータを書き込む場合、ビジー信号がレディー信号に切り替わった後、次のページアドレスに対して上記と同様の動作を行う。
メモリ11からのデータの読み出しを行う場合、メモリ・コントローラ12は、読み出しコマンドとともに、読み出し先を示すページアドレスをメモリ11に送信する。メモリ11は、ページアドレスで指定されたメモリ・セルからページ・バッファ92に1ページ分のデータを読み出す。このメモリ・セルからの読み出し動作を開始すると、メモリ11はメモリ・コントローラ12に対してビジー信号を出力する。そして、ビジー信号がレディー信号に切り替わった後、ページ・バッファ92に格納された読み出しデータがメモリ・コントローラ11に出力される。引き続きデータを読み出す場合、次のページアドレスに対して上記と同様の動作を行う。
また、メモリ11がNAND型フラッシュ・メモリである場合、メモリ11は、ブロック単位でデータの消去を行う。各ブロックは、連続する物理アドレスを有する複数のページからなる。以下の説明では、便宜上、書き込み単位をページとし、消去単位をブロックとする。しかしながら、メモリ11は、必ずしもNAND型フラッシュ・メモリに限られない。
図2に戻る。メモリ・デバイス1は、I/O21、コア・ロジック部22、I/O23を含んでいる。I/O21は、メモリ・デバイス1がホスト2と接続するためのハードウェア上の構成を含んでいる。メモリ・デバイス1がUFSメモリ・デバイスである場合、メモリ・デバイス1とホスト2との間の信号には、RESET、REF_CLK、DOUT、DOUT_c、DIN、DIN_c、VCC、VCCQ、VCCQ2、VDDi、VDDi2、VDDi3が含まれる。RESET、REF_CLK、DOUT、DOUT_c、DIN、DIN_cは、ホスト2とI/O21との間で通信される。RESETは、ハードウェア・リセット信号である。REF_CLKは、参照クロックである。DOUTとDOUT_cは差動信号対を形成し、ホスト2からメモリ・デバイス1へ送信される信号である。DINとDIN_cは差動信号対を形成し、メモリ・デバイス1からホスト2へ送信される信号である。VCC、VCCQ、VCCQ2は、メモリ11およびコア・ロジック部22に供給される電源電圧である。VDDi、VDDi2、VDDi3は、コア・ロジック部22に供給され、コア・ロジック部22内に電圧レギュレータが設けられる際の入力端子である。
コア・ロジック部22は、メモリ・コントローラ12のうちのI/Oを除く主要部分である。I/O23は、メモリ・コントローラ12がメモリ11と接続するためのハードウェア上の構成を含んでいる。コア・ロジック部22は、ホスト・インターフェース31、バッファ32、データ・バス33、メモリ・インターフェース34、バッファ35、ECC回路36、制御バス41、CPU(central processing unit)42、ROM(read only memory)43、ワークRAM(random access memory)45、レジスタ46を含んでいる。
I/O21は、ホスト・インターフェース31と接続されている。ホスト・インターフェース31は、メモリ・デバイス1とホスト2が通信するのに必要な処理を行なう。より具体的には、ホスト・インターフェース31は、メモリ・デバイス1とホスト2がともに準拠している通信プロトコルに則ってメモリ・デバイス1とホスト2との間の通信を担う。メモリ・デバイス1がUFSメモリ・デバイスである場合、例えば、ホスト・インターフェース31は、UFSインターフェースである。UFSインターフェースは、物理層についてはM−PHY規格に則っており、リンク層についてはUniPro規格に則っている。
ホスト・インターフェース31は、バッファ32と接続されている。バッファ32は、ホスト2からメモリ・デバイス1に送信されたデータをホスト・インターフェース31を介して受け取り、これを一時的に保持する。また、バッファ32は、メモリ・デバイス1からホスト・インターフェース31を介してホスト2へ送信されるデータを一時的に保持する。バッファ32はデータ・バス33と接続されている。
I/O23は、メモリ・インターフェース34と接続されている。メモリ・インターフェース34は、メモリ・コントローラ12がメモリ11と通信するのに必要な処理を行なう。より具体的には、メモリ・インターフェース34は、コア・ロジック部22からの指示をメモリ11が認識可能な形態で送信する。メモリ11がNAND型フラッシュ・メモリである場合、メモリ・インターフェース34は、NANDフラッシュ・インターフェースである。
メモリ・インターフェース34は、バッファ35と接続されている。バッファ35は、メモリ11からメモリ・コントローラ12に送信されたデータをメモリ・インターフェース34を介して受け取り、これを一時的に保持する。また、バッファ35は、メモリ・コントローラ12からメモリ11にメモリ・インターフェース34を介して送信される予定のデータを一時的に保持する。バッファ35はデータ・バス33と接続されている。メモリ・インターフェース34およびバッファ35は、ECC(error correcting code)回路36と接続されている。ECC回路36はまた、データ・バッファ35と接続されている。ECC回路36は、ホスト2からの書き込みデータをデータ・バス33を介して受け取り、書き込みデータにエラー訂正符号を付加し、エラー訂正符号を付された書き込みデータをバッファ35に供給する。また、ECC回路36は、メモリ11から供給されたデータをバッファ35を介して受け取り、このデータに対してエラー訂正符号を用いてエラー訂正を行い、エラー訂正されたデータをデータ・バス33に供給する。
制御バス41には、CPU42、ROM43、RAM45、レジスタ46が接続されている。CPU42、ROM43、RAM45、レジスタ46は、制御バス41を介して相互に通信する。CPU42は、メモリ・デバイス1の全体の動作を司る。CPU42は、ROM43に格納されている制御プログラム(命令)に従って所定の処理を実行する。CPU42は、制御プログラムに従ってホスト2から受けたコマンドに従ってメモリ11に対する所定の処理を実行したりする。
ROM43は、CPU42により実行される制御プログラムなどを格納する。RAM45は、CPU42の作業エリアとして使用され、CPU42の作業に必要な変数等を一時的に記憶する。レジスタ46は、メモリ・デバイス1の動作に必要な種々の値を保持する。また、レジスタ46は、ホスト2が、メモリ・デバイス1を制御するのに必要な種々の値を保持する。
制御バス41には、ホスト・インターフェース31、バッファ32、メモリ・インターフェース34、バッファ35が接続されている。CPU42は、制御プログラムやホスト2からの指示に基づいて、ホスト・インターフェース31、バッファ32、メモリ・インターフェース34、バッファ35を制御する。メモリ・コントローラ12には、アナログ回路51が設けられていてもよい。
メモリ・デバイス1は、例えば、プリント基板上に半田により実装される埋め込み型でも良いし、ホスト2に設けられたカード・スロットに対して脱着可能なリムーバブル型でもよい。図5は、封止された形態のメモリ・デバイス1の例を示している。図5に示されているように、プリント基板201上にチップ状の複数のメモリ11が積層されている。各メモリ11は、プリント基板201上の配線パターン(図示せず)にワイヤ202により接続されている。チップ状のメモリ・コントローラ12も、プリント基板201上に置かれ、ワイヤ202により配線パターンに接続されている。プリント基板201の裏面には、図示せぬ外部端子(例えば、BGA(ball grid array))が設けられている。外部端子には、図2に示した信号(RESET、REF_CLK、DOUT、DOUT_c、DIN、DIN_c、VCC、VCCQ、VCCQ2、VDDi、VDDi2、VDDi3が割り当てられ、この外部端子を介してメモリ・デバイス1外部のホスト2との間で信号が通信される。プリント基板201、メモリ11、メモリ・コントローラ12、ワイヤ202は、例えば樹脂製のパッケージ203により封止されている。
次に、図6に、メモリ・デバイス1の構成の別の視点を示す。より具体的には、図6は、メモリ・デバイス1の論理構成、すなわち機能ブロックを示している。各ブロックは、ハードウェア、コンピュータ・ソフトウェアのいずれかまたは両者を組み合わせたものとして実現されることが可能である。各機能ブロックが、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も実施形態の範疇に含まれる。また、各機能ブロックが、以下の具体例のように区別されていることは、必須ではない。例えば、一部の機能が以下の説明において例示されている機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示のブロックがさらに細かい機能サブブロックに分割されていてもよい。どのブロックによって特定されるかによって実施形態が限定されるものではない。
メモリ・デバイス1は、ターゲット・ポート61、ルータ62、デバイス・マネージャ63、デスクリプタ64、アトリビュート65、フラグ66、複数のLU(logical unit)67を含んでいる。ターゲット・ポート61は、メモリ・デバイス1がホスト2と通信可能に接続されるためのポートであり、例えばホスト・インターフェース31に対応する。ルータ62は、ホスト2から受信された通信(タスク、コマンド、データ、クエリー等)を宛先のLU67にルーティングする。ホスト2は、コマンドの処理またはタスク管理機能を、1つのLU67を宛先とする要求を通じて要求する。LU67同士は、アドレス(例えばLUN(logical unit number))により相互に識別されることが可能である。LUNは、例えば、図7に示されているように、メモリ・デバイス1とホスト2との間の通信(パケット)に含められることが可能である。図7に示されているように、パケット101は、LUN102と、実体部103を含んでいる。LUN102は、例えばパケット101のヘッダに含められることが可能である。実体部103は、パケットの機能に固有の内容、例えばコマンド、データ、各種のパラメータ等を含んでいる。各パケットの宛先のLU67は、LUNにより一意に特定される。UFSメモリ・デバイスでは、メモリ・デバイス1とホスト2との間のパケットはいずれもヘッダを含んでおり、ヘッダ内にLUNが記述されている。
ルータ62は、ホスト2から受信された通信(タスク、コマンド、データ、クエリー)を、この通信中のLUNに基づいて、宛先のLU67にルーティングする。また、ルータ62は、複数のLU67からのホスト2宛ての通信を例えば時分割によって適当な順序でターゲット・ポート61に送信する。ルータ62は、例えばCPU42、ROM43、レジスタ46により実現される。すなわち、CPU42によって、ROM43中のプログラムが、レジスタ46中の値を参照しながら実行されることを通じて実現される。
デバイス・マネージャ63は、デバイス・レベルの動作およびコンフィギュレーションの管理を行なう。デバイス・レベルの管理には、例えば、メモリ・デバイス1の電力管理、スリープ等の制御等が含まれる。デバイス・レベルのコンフィギュレーションには、デスクリプタの組を保持すること等が含まれる。デバイス・マネージャ63は、ホスト2からのメモリ・デバイス1のコンフィギュレーション情報の変更および出力要求であるクエリー要求のようなコマンドを処理する。デバイス・マネージャ63は、例えばCPU42、ROM43、レジスタ46により実現される。すなわち、CPU42によって、ROM43中のプログラムが、レジスタ46中の値を参照しながら実行されることを通じて実現される。
デスクリプタ64、アトリビュート65、フラグ66は、例えばワークRAM45中のデータとして実現される。デスクリプタ64は、予め定義されたフォーマットのデータ構造を有し、メモリ・デバイス1についての何らかの特徴を記述するためのものである。デスクリプタ64には、例えば、メモリ・デバイス1にアクセスするのに必要なデバイス・クラス、サブ・クラス、プロトコル等が含まれる。アトリビュート65は、メモリ・デバイス1に与えられた設定を示す変更可能または読み出し専用のパラメータである。アトリビュート65には、例えば、メモリ・デバイス1とホスト2との間で転送可能なデータの最大値等が含まれる。フラグ66は、種々の項目についての択一的な論理値からなり、例えば「真」または「偽」、あるいは「0」または「1」等により表わされる。
各LU67は、例えばメモリ11、メモリ・インターフェース34、バッファ35、ECC回路36、CPU42、ROM43、レジスタ46により実現される。各LU67は、相互に独立して、ホスト2からの処理を実行する。したがって、各LU67はメモリ11、インターフェース21、23、バッファ35、ECC回路36、CPU42、ROM43、レジスタ46等の資源の一部を利用して実現される。各LUは、上記のようにホスト2からは1つのLUを特定するLUNによって相互に区別される。ホスト2からのコマンドは指定されたLU67によって実行される。
各LU67は、デバイス・サーバ71、タスク・マネージャ72、メモリ領域73を含んでいる。メモリ領域73は、メモリ11のメモリ領域のうちの一部から構成され、ホスト2からの書き込みデータを実際に格納する。デバイス・サーバ71およびタスク・マネージャ72は、例えばCPU42、ROM43、レジスタ46により実現される。すなわち、CPU42によって、ROM43中のプログラムが、レジスタ46中の値を参照しながら実行されることを通じて実現される。デバイス・サーバ71は、ホスト2から受信されたLUレベルの処理を要求するコマンドを解釈し、実行する。そのような処理には、例えば、データの書き込み、読み出し、消去等が含まれる。LU67はメモリ領域73を含んでいるので、デバイス・サーバ71は、少なくともメモリ領域73(メモリ11)を制御する機能を有している。タスク・マネージャ72は、複数のコマンド(タスク)の実行の順序を制御し、タスク管理機能を提供する。
上記のように、デバイス・サーバ71は、メモリ11の制御に関する処理を行なう。そのような処理には、論理アドレスと物理アドレスの変換が含まれる。論理アドレスは、ホスト2によって、ホスト2がメモリ・デバイス1に書き込むことを望むデータに割り当てられるアドレスである。物理アドレスは、上記のように、メモリ11の書き込み領域(ページ)または消去領域(ブロック)を特定するためのアドレスである。デバイス・サーバ71は、自身に対応するメモリ領域73によるデータの記憶状態を管理する。記憶状態の管理とは、どの物理アドレスのページ(または物理ブロック)が、どの論理アドレスのデータを保持しているかの関係、およびどの物理アドレスのページ(または物理ブロック)が消去状態(何も書き込まれていない、または無効なデータを保持している状態)であるかを管理することを含んでいる。その管理のために、デバイス・サーバ71は、例えば論理アドレス・物理アドレス変換テーブル(以下、単に変換テーブルと称する場合がある)を保持している。
変換の例として、例えば、図8に示されているように、割り当てをブロックとすることができる。各ブロック中の各ページに対して、固定の論理アドレス・オフセットが割り当てられている。図8は、メモリ11の書き込み単位の大きさが16kBであり、論理アドレスが512Bサイズのデータごとに割り当てられている例を示している。
次に、図9および図10を参照して、データ書き込みの際の動作について説明する。図9は、第1実施形態に係るルータ62をより詳細に示す機能ブロック図である。図10は、第1実施形態に係るデータ書き込み時の通信の様子を示している。図9に示されているように、ルータ62は、管理部81と、優先順位保持部82と、優先順位判断部83と、分配・配列部84と、モード明示部85と、を含んでいる。
管理部81は、ルータ62の全体を管理する。優先順位保持部82は複数LU67同士の間の優先順位が定められている場合に、優先順位を明示する情報を保持する。優先順位は、例えば、メモリ・デバイス1のユーザがホスト・デバイス2を通じて設定することができる。優先順位保持部82は、例えばRAM44および/またはレジスタ46により実現される。優先順位判断部83は、優先順位保持部82にアクセスして、複数の書き込みコマンドの各々のアクセス対象である複数LU67同士の優先順位を判断する。分配・配列部84は、ホスト2から受信した通信を、その中に含まれているLUNを参照して、宛先のLU67に分配する。また、分配・配列部84は、複数のLU67からホスト2宛ての通信を、例えば時分割によって適当な順序でターゲット・ポート61に送信する。より具体的には、分配・配列部84は、優先順位判断部83からの情報に基づいて、順序を決定する。モード明示部85については後述する。
メモリ・デバイス1は、あるLU67へのアクセスを要求するコマンド(書き込み、読み出し、消去等)の処理の完了前に別のLU67へのアクセスを要求する別のコマンドを受け付けることが可能に構成されている。具体的には、ルータ62の上記の機能を通じて、複数LU67への並行アクセスが可能にされている。
次に、図10を参照して、データ書き込み時のシーケンスについて説明する。以下では、2つのLU67、LU67への並行したアクセスがあった場合を例に取る。さらに、本例では、この2つのLU67、LU67同士の間に優先順位は設定されていない。優先順位が設定されている場合については、第2実施形態において説明する。
図10に示されているように、第1書き込みコマンドがホスト2からメモリ・デバイス1に送信される。書き込みコマンドはいずれも、少なくとも、LUN、書き込み指示、アドレス、書き込みデータ・サイズを含んでいる。アドレスは、書き込みデータが書き込まれる位置(論理アドレス)である。書き込みデータ・サイズは、書き込みデータの全体のサイズを示す。第1書き込みコマンドは、LU67を宛先としている。
UFSメモリ・システムでは、データ、コマンド、クエリー等はいずれもパケットによって転送される。メモリ・デバイス1およびホスト2がUFSメモリ・システムである場合、書き込みコマンドは、コマンド転送パケット(Command UPIU)に相当する。コマンド転送パケットはヘッダを含み、パケットの実体部にコマンド記述部が含まれており、コマンド記述部にSCSI(small computer system interface)コマンドが格納されている。SCSIコマンド中に、書き込みコマンド、アドレス、書き込みデータ・サイズが含まれている。
第1書き込みコマンドは、ルータ62による分配を通じて宛先のLU67のデバイス・サーバ71により受信される。デバイス・サーバ71は、書き込みデータ全体のうちのある部分(書き込みデータ部分)に対する転送要求を生成する。転送要求は、書き込みデータ部分が書き込まれた結果ページの終端に一致するサイズの書き込みデータ部分を要求する。書き込み要求がページの先頭からの書き込みに相当する場合は、各書き込みデータ部分はページ・サイズに等しい。このように、デバイス・サーバ71は、書き込みデータ部分をページ・サイズごとに要求する。メモリ11は、ページ単位でデータ書き込みを行なうので、書き込みデータのうちの1ページと同じサイズの部分ごとにデータを受信すると、効率よくデータを書き込めるからである。
なお、本例では、論理アドレスは0x0000であり、これは、ブロック(すなわちページ)の先頭からの書き込み要求に相当する。このため、最初の転送要求1−1は、書き込みデータの先頭からの部分を要求する。より具体的には、論理アドレスが0x0000の16kBサイズの書き込みデータ部分の転送要求が生成される。転送要求1−1は、図10に示されているように、ルータ62を介してホスト2に送信される。なお、書き込み要求がページの先頭からの書き込み要求に相当しない場合は、デバイス・サーバ71は、書き込みデータの先頭から、書き込み先のページの終端までに相当するサイズの部分を1番目の書き込みデータ部分として要求し、続く書き込みデータ部分はページ・サイズとする。
転送要求は、LUN(ヘッダ)、転送データ・アドレス、転送データ・サイズを含んでいる。転送データ・アドレスは、LU67が転送を要求する書き込みデータ部分のオフセット・アドレスを示す。転送データ・サイズは、対応する書き込みデータ部分のサイズを示す。メモリ・デバイス1およびホスト2がUFSメモリ・システムである場合、転送要求は、転送要求パケット(Ready To Transfer UPIU)に相当する。転送要求パケットは、パケットの実体部において、LU67がデータ転送の準備ができたことを示すとともに、転送データ・アドレス、転送データ・サイズを含んでいる。
図10に示されているように、ホスト2は、転送要求を受信すると、この要求される書き込みデータ部分を送信する。データ転送は、LUN(ヘッダ)、データを含んでいる。メモリ・デバイス1およびホスト2がUFSメモリ・システムである場合、書き込みデータ部分は、ホスト・データ転送パケット(Data Out UPIU)により転送される。ホスト・データ転送パケットは、実体部において、転送すべき書き込みデータ部分を含んでいる。
ホスト2からの書き込みデータ部分は、対応する転送要求を発行した第1LU67によって受信される(データ転送1−1)。受信された書き込みデータ部分は、デバイス・サーバ71の制御によってメモリ領域73の適切な位置に書き込まれる。
次いで、第1LU67のデバイス・サーバ71は、次の転送要求1−2を生成する。この転送要求1−2は、書き込みデータ全体のうちの最初の書き込みデータ部分に続くページ・サイズの部分の転送を要求する。この2番目の書き込みデータ部分は、論理アドレスが0x0020の16kBサイズの書き込みデータ部分に相当する。転送要求はホスト2に送信される(データ転送1−2)。次いで、対応するデータ部分が、1番目のデータ部分を参照して説明したのと同様の手順でメモリ領域73に書き込まれる。
第1書き込みコマンドによる第1LU67への書き込みが完了する前に、第2LU67への書き込みを要求する第2書き込みコマンドが発行されたとする。第2書き込みコマンドの発行のタイミングは、図10に示されているものには限られない。
第2書き込みコマンドは、例えば、論理アドレスが0x1000の32kBサイズのデータの書き込みを要求している。ルータ62は、第1書き込みコマンドによる書き込みが完了する前に、第2書き込みコマンドを受け取ると、これを拒絶せずに処理する。具体的には、以下の規則に基づいて、ルータ62は、2つの要求(第1、第2書き込みコマンド)を処理する。
上記のように、本実施形態では、LU67同士の間に優先順位は定められていない。より具体的には、少なくとも、未完了の第1書き込みコマンドが対象とする第1LU67と、新たに受信された第2書き込みコマンドが対象とする第2LU67との間には優先順位は定められていない。この優先順位の情報は、優先順位保持部82において保持されている。優先順位判断部83は、優先順位保持部82にアクセスして、優先順位の情報を取得する。次いで、優先順位判断部83は、第1LU67と第2LU67との間に優先順位が定められていないことを知得し、この旨を分配・配列部84に通知する。分配・配列部84は、未完了の複数のLU67へのアクセス(本例では書き込み)要求に対して、これらの要求が対象とするLU67同士の間に優先順位が定められていない場合、当該複数の要求を並行して処理する。すなわち、複数の書き込み要求の各々を実行するための処理を、転送要求およびデータ転送を1組の処理として、組ごとに時分割に基づいて代わる代わる実行する。より具体的には、処理中の複数LU67用の処理を、LU67ごとに一回ずつ順番に処理する。例えば、本例のように、2つのLU67への並列の処理要求に対して、分配・配列部84は、第1LU67、第2LU67、第1LU67、第2LU67…と交互に処理を行なう。3対以上のLU67への並列の処理要求についても同様である。
分配・配列部84は、受信した第2書き込みコマンドを宛先である第2LU67に送信する。第2LU67のデバイス・サーバ71は、第2書き込みコマンドを受け取ると、転送要求を生成する。転送要求の生成は、上記の第1書き込みコマンドについてのものと同じである。本例では、論理アドレスが0x1000の16kBサイズの書き込みデータ部分の転送要求2−1が生成される。転送要求2−1は、分配・配列部84により受信され、次いでホスト2に送信される。次いで、分配・配列部84は、対応するデータ部分をホスト2から受け取り、これを第2LU67に送信する(データ転送2−1)。第2LU67のデバイス・サーバ71は、1番目のデータ部分を参照して説明したのと同様の手順で第2LU67のメモリ領域73に書き込む。
第2LU67に関する処理が行なわれている間は、第1LU67に関する処理は停止される。例えば、分配・配列部84は、第1LU67からの転送要求を受け取ったとしても、これを送出せずに一時的に保持する。実際の態様の一例として、図6の構成がソフトウェアで実現されている場合は、ソフトウェアは、第2書き込みコマンドを受け取ると、第2LU67に関する処理を実行し、第2LU67に関する1回目の処理(転送要求およびデータ転送)の終了後に、第1LU67に関する転送要求を生成する。
第2LU67に関するデータ転送2−1が終了すると、分配・配列部84は、第1LU67からの転送要求1−3をホスト2に送信する。次いで、転送要求1−3に対応するデータ部分が第1LU67に書き込まれる(データ転送1−3)。
以下、同様の処理が繰り返される。すなわち、第1LU67に関する処理、第2LU67に関する処理、第1LU67に関する処理、…と繰り返される。各処理において、転送要求は、あるLU67についての直前のデータ部分に続く部分からページ・サイズのデータの転送を要求する。処理中の要求(書き込み要求)についての処理が完了すると、対応するLU67のデバイス・サーバ71は、書き込み成功の旨のレスポンスをホスト2に送信する。図10では、第2書き込みコマンドについては、転送要求およびデータ転送からなる処理が2回で終了している。全ての要求についての成功の旨のレスポンスが発行されると、処理は終了する。
ここまでの説明では、複数のLU67のための各処理が、1回ずつ順に実行される。しかしながら、例えば2回またはそれ以上の回数ずつ順に実行されてもよい。さらに、順番が、1周ごとに変化してもよい。例えば、1周目では、第1LU、第2LU、第3LUの順番で、2周目では第1LU、第3LU、第2LUの順番で実行される。すなわち、結果として、各データ転送が同じ大きさであるとして、複数のLUに関する処理要求が並存している間、各LUに関する処理が均等に扱われる。均等な扱いをどのように実現するかは、本明細書に記載の種々の方法、および可能なあらゆる方法で、実現されることが可能である。
読み出しに関しても同様である。図11は、第1実施形態に係るデータ読み出し時の通信の様子を例示している。データ読み出しを希望するホスト2は、図10の書き込みコマンドに代えて、読み出しコマンドをメモリ・デバイス1に発行する。読み出しコマンドはいずれも、少なくとも、LUN、読み出し指示、読み出しデータの論理アドレスを含んでいる。読み出しの場合は、LU67は、読み出しコマンドを受け取ると、読み出しデータ全体のうちの適当な大きさに分割された部分を、部分ごとに順次、送出する。メモリ・デバイス1およびホスト2がUFSメモリ・システムである場合、読み出しデータ部分は、デバイス・データ転送パケット(Data In UPIU)により転送される。デバイス・データ転送パケットは、実体部において、転送すべき読み出しデータ部分を含んでいる。ルータ62は、読み出しデータ部分をホスト2に送信する。書き込みの場合と同じく、複数LU67に関する要求の処理が並列に進行している間は、各LU67に関する処理が均等に行なわれる。図の例では、第2読み出しコマンドの受信から、LU67からのデータ転送とLU67からのデータ転送が交互に行なわれる。ある読み出しコマンドについての読み出しデータ全体の送出が完了すると、対応するLU67は、成功の旨のレスポンスをルータ62を介してホスト2に送信する。読み出しについてここで説明した点以外については、書き込みと全く同様である。
以上説明したように、第1実施形態に係るメモリ・デバイスは、ある第1のコマンドの処理が完了する前に、別の第2のコマンドを受け付け可能に構成されている。さらに多くのコマンドの場合も同様で、一般化すると、ある1つまたは複数のコマンドの処理が完了する前に、さらなるコマンドを受け付け可能に構成されている。すなわち、複数LUへのマルチ・アクセスが可能に構成されている。メモリ・デバイスは、処理未完了の複数のコマンドに対して、各コマンドにより要求される処理を複数部分に分割し、各部分を、各LUについて代わる代わる順に実行する。こうして、複数LUへの並行したアクセスが実現される。特に、ホストがマルチ・タスク・アプリケーションをサポートしている場合に、マルチ・タスク・アプリケーションにより並行動作のパフォーマンスを向上可能なメモリ・デバイスが提供される。
ここまでの説明では、マルチ・アクセスが常に許可されている例に関する。一方、例えば、マルチ・アクセスが許可されているモード(マルチ・アクセス許可モード)と禁止されているモード(マルチ・アクセス禁止モード)が設けられていてもよい。そのために、図9に示されているように、例えば、ルータ62中にモード明示部85が設けられる。モード明示部85は、例えばRAM44および/またはレジスタ46により実現される。モード明示部85には、メモリ・デバイス1がいずれのモードに設定されているかを示す情報が格納されている。モードの選択は、メモリ・デバイス1のユーザがホスト・デバイス2を通じて設定することができる。モードの選択は、例えばメモリ・デバイス1の初期設定時、または任意のタイミングで行なうことができる。ルータ62中の例えば管理部81は、ある第1のコマンドの処理が完了する前に別の第2のコマンドを受け取ると、モード明示部85を参照し、結果を分配・配列部84に通知する。マルチ・アクセスが許可されている場合、分配・配列部84は、上記のように動作する。一方、マルチ・アクセスが禁止されている場合、分配・配列部84は、2つ目のコマンドを拒絶する。具体的には、例えば、ルータ62は、単に2つ目のコマンドを無視する。または、あるコマンドの処理中の別のコマンドを受け付け不能の旨をホスト2に通知する。この場合、ホスト2は、先のコマンドのための処理の完了後に、次のコマンドをメモリ・デバイス1に発行する。2つのモードの併用は、例えば、処理が、開始の順に完了することを望むユーザをサポートすることを可能にする。
また、上記のようにECC回路36は、書き込みデータにエラー訂正符号を付加する。具体的には、ECC回路36は、受け取った書き込みデータ部分を、ECC回路36の特性等に基づいて特定の大きさの部分(実データ部分と称する)に分割する。そして、ECC回路36は実データ部分ごとにECCを生成し、対応する実データ部分に付加する。すなわち、実データ部分は、ECCのための処理単位である。実データ部分、対応するECC、および対応する管理データの組は例えばフレームなどと呼ばれる。ECC回路36からは、フレームが出力される。書き込みデータの宛先のLUに対応するデバイス・サーバ71は、このフレームを対象とする受信済みのデータ書き込み要求に基づいて、ECC回路36からのフレームをバッファ35に蓄積する。バッファ35に蓄積されたフレームの個数が適当な数に達すると、対応するデバイス・サーバ71は、複数フレームの組を対応するメモリ領域73に書き込む。
ここで、メモリ・デバイス1は、フレームの大きさおよび種々の必要な管理データの大きさを考慮して、書き込みデータ部分の大きさを決定する。具体的には、メモリ・デバイス1は、書き込みデータ部分とこれに対応する全ての付加的データ(ECC、管理データ)とを合わせたサイズがページ以下で最大となるように決定されたサイズの書き込みデータ部分を要求する。図14は、第1実施形態に係るメモリ・デバイス1による1ページ中のデータの中身を例示している。すなわち、メモリ・デバイス1は、ページに書き込まれた結果、図14に示されるように決定された大きさの書き込みデータ部分を要求する。図14に示されるように、1フレームは、実データ部分301、対応する管理データ302、対応するECC303からなる。図14は、1024バイトの実データ部分301、2バイトの管理データ302、76バイトのECC303を例示している。さらに1ページごとに、管理データ306が含まれることになっている場合がある。管理データ306にもECC307が付加される。管理データ306、ECC307の大きさは、それぞれ例えば8バイト、76バイトである。メモリ・デバイス1は、書き込みデータ部分の部分からなる複数の実データ部分301と第1付加的データ(例えばECC303、307および管理データ302、306)とを合わせた大きさをページ・サイズから除いた未使用部308の大きさが、実データ部分301とその実データ部分に付加される第2付加的データ(例えばECC303および管理データ302)の大きさより小さくなるように決定された大きさの書き込みデータ部分を要求する。このような大きさの書き込みデータ部分を用いることにより、ページを最大限に利用できる。
採用されるECCの方式により、ECC処理単位に相当する実データ部分301の大きさは決まっている。同様に、管理データ302、ECC303、管理データ307の大きさも決まっている。したがって、ページ・サイズ以下で最大の実データ部分301の個数は、ECC処理単位の大きさにより定まる。
(第2実施形態)
第1実施形態では、複数LU67に関する要求の処理がLU67間で平等に実行される。第2実施形態では、複数LU67に関する要求の処理がLU67間で偏って実行される。第2実施形態に係るメモリ・デバイスは、第1実施形態と同じハードウェア構成(図2)および機能ブロック(図6)を有する。以下では、図11を参照して、書き込みシーケンスについて第1実施形態と異なる点について説明する。一方、第2実施形態の説明で触れられていない点については、第1実施形態についての記述が第2実施形態に全て適用されることに留意されたい。
図11の処理は、途中まで第1実施形態(図10)と同じである。すなわち、第1書き込みコマンド、転送要求1−1、データ転送1−1、転送要求1−2、データ転送1−2までは第1実施形態と同様に進行する。
メモリ・デバイス1は、第1書き込みコマンドによる第1LU67への書き込みが完了する前に第2書き込みコマンドを受け取る。なお、以下の説明では、メモリ・デバイス1はマルチ・アクセス許可モードにある。第2書き込みコマンドは、例えば、論理アドレスが0x1000の32kBサイズのデータの書き込みを要求している。ルータ62は、第1書き込みコマンドによる書き込みが完了する前に、第2書き込みコマンドを受け取ると、これを拒絶せずに処理する。具体的には、以下の規則に基づいて、ルータ62は、複数の要求(第1、第2書き込みコマンド)を処理する。
優先順位判断部83は、優先順位保持部82にアクセスして、優先順位の情報を取得する。ここでは例として、第2LU67が第1LU67より高い優先順位を有しているとする。優先順位判断部83は、第2LU67の優先順位が高いことを知得し、この旨を分配・配列部84に通知する。分配・配列部84は、最も高い優先順位を有するLU67に関する処理を最優先で集中的に行なって完了させる。本例では、第2LU67のデバイス・サーバ71は、第2書き込みコマンドに続いて第2LU67からの転送要求2−1を送信し、対応するデータ部分を受け取り、第2LU67のメモリ領域73に書き込む。引き続き、メモリ・デバイス2は、第2LU67に関する処理を行なう。すなわち、第2LU67のデバイス・サーバ71は、転送要求2−2を送信し、対応するデータ部分を受け取り、第2LU67のメモリ領域73に書き込む。この時点で、第2書き込みコマンドの処理が完了したので、第2LU67のデバイス・サーバ71は、書き込み成功の旨のレスポンスをホスト2に送信する。
第2LU67に関する処理が行なわれている間は、第1LU67に関する処理は停止される。例えば、分配・配列部84は、第1LU67からの転送要求を受け取ったとしても、これを送出せずに一時的に保持する。実際の態様の一例として、図6の構成がソフトウェアで実現されている場合は、ソフトウェアは、第2LU67のための処理の完了後、第1LU67のための処理を再開する。
以降、第1LU67のための処理が再開し、完了まで継続する。
3つ以上のLUに対する処理が並行する場合も上記の規則に則って実行される。すなわち、優先順位判断部83は、複数の要求を処理中に、新たな要求を受け取ると、受信済みの要求が対象とする複数のLU67と新たな要求が対象とするLU67との優先順位を比較する。実際には、全LU67に優先順位が設定されている場合、現在最高の優先順位のLUと新たな要求が対象とするLUとを比較すれば足りる。そして、最も高い優先順位を有するLU67のための処理を割込みで行なう。この割込み処理が完了すると、残りの複数の要求のうちで、最も高い優先順位のLU67を対象とする要求を処理する。こうして、全ての要求が完了するまで処理が継続する。さらに、第2実施形態が第1実施形態と組み合わされてもよい。すなわち、同じ優先順位を有する2つのLUに関する処理が第1実施形態のように実行されている間に、より高い優先順位を有する別のLUに関する要求に対して、この要求のための処理が最優先で実行される。完了後、先の2つのLUに関する処理が、第1実施形態のように継続する。
ここまでの説明では、最も高い優先順位を有するLU67に関する処理が、完了まで実行される。しかしながら、例えば優先順位に基づいて各LU67に重みをつけて、各LU67に関する処理が偏って扱われてもよい。例えば、あるLUに関する1回の処理と別のLUに関するより多い回数(例えば2回)処理とを1セットとして、セットが繰り返される。この例では、1セット中で2回の処理を享受するLUは、1回の処理を享受するLUよりも高い優先順位を有する。
本実施形態では、書き込みについての処理を例に説明した。しかしながら、第1実施形態と同じく、本実施形態も読み出しにも適用可能である。図12は、第2実施形態に係るデータ読み出し時の通信の様子を例示している。メモリ・デバイス1は第1読み出しコマンドのための処理完了前に第2読み出しコマンドを受け取る。すると、メモリ・デバイス1は、第2読み出しコマンドのための処理のみを行なって完了させる。続いて、メモリ・デバイス1は、第1読み出しコマンドのための処理を再開する。読み出しについてここで説明した点以外については、書き込みと全く同様である。
以上説明したように、第2実施形態に係るメモリ・デバイスは、第1実施形態と同じく、ある1つまたは複数のコマンドの処理が完了する前に、さらなるコマンドを受け付け可能に構成されている。メモリ・デバイス1は、新たなコマンドを受け取る度に、例えば全コマンドが対象とするLUの優先順位に基づいて、最も高い優先順位を有するLUのための処理を優先的に処理する。優先的に処理される例として、当該LUのための処理が集中的に実行されてもよいし、他の処理と並行的ではあるがより多い回数処理されてもよい。こうして、複数LUへの並行したアクセスが実現される。
第2実施形態においても、第1実施形態と同じく、書き込みデータ部分のサイズを書き込みデータ部分とこれに対応する全ての付加的データ(ECC、管理データ)とを合わせたサイズがページ以下で最大となるように決定されたサイズとすることができる。
また、上記の実施形態では、メモリ・デバイス1がホスト2に転送を要求する書き込みデータ部分は、メモリ11の1ページ分のサイズであるが、この書き込みデータ部分のサイズは1ページ分に限られず、ページ・サイズの整数倍であればよい。付加的データを考慮した場合も同じである。すなわち、書き込みデータ部分のサイズは、書き込みデータ部分とこれに対応する全ての付加的データ(ECC、管理データ)とを合わせたサイズがページ以下で最大となるように決定されたサイズの整数倍であってもよい。
その他、各実施形態は、上記のものに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で、種々に変形することが可能である。さらに、上記実施形態には種々の段階が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の実施形態が抽出され得る。例えば、上記各実施形態に示される全構成要件から幾つかの構成要件が削除されても、この構成要件が削除された構成が実施形態として抽出され得る。
1…メモリ・デバイス、2…ホスト・デバイス、11…メモリ、12…コントローラ、21…I/O、22…コア・ロジック部、23…I/O、31…ホスト・インターフェース、32…バッファ、33…データ・バス、34…メモリ・インターフェース、35…バッファ、36…ECC回路、41…制御バス、42…CPU、43…ROM、44…RAM、45…ワークRAM、46…レジスタ、51…アナログ・ポート、52…テスト・ポート、61…ターゲット・ポート、62…タスク・ルータ、63…デバイス・マネージャ、64…デスクリプタ、65…アトリビュート、66…フラグ、67…LU、71…デバイス・サーバ、72…タスク・マネージャ、81…管理部、82…優先順位保持部、83…優先順位判断部、84…分配・配列部、85…モード明示部。

Claims (5)

  1. 複数のセルからなる書き込み単位ごとにデータを書き込む不揮発性のメモリと、
    前記メモリを制御し、前記メモリのメモリ空間を複数のパーティションに区切って管理し、ホスト・デバイスからの書き込みデータを前記メモリに書き込む要求に対して前記書き込みデータの分割された部分である書き込みデータ部分を送信することをそのサイズを指定して前記ホスト・デバイスに要求することを定めた書き込み手順に従い、第1パーティションへのアクセスを要求する第1コマンドの処理の完了前に第2パーティションへのアクセスを要求する第2コマンドを受け付けるコントローラと、
    を具備し、
    前記書き込みデータ部分は当該書き込みデータ部分および対応する付加的データの和のサイズが前記書き込み単位のサイズ以下で最大となるように決定されたサイズの整数倍のサイズを有する、ことを特徴とするメモリ・デバイス。
  2. 前記コントローラが、前記第1コマンドの処理の完了前に前記第2コマンドを受信すると、前記第1コマンドにより要求される処理の一部の実行と前記第2コマンドにより要求される処理の一部の実行とを代わる代わる実行する、
    ことを特徴とする請求項1に記載のメモリ・デバイス。
  3. 前記コントローラが、1つまたは複数のパーティションへのアクセスをそれぞれ要求する1つまたは複数の先行コマンドにより要求される処理の完了前に別のパーティションへのアクセスを要求する後続コマンドを受信すると、前記先行コマンドの各々により要求される処理の一部の実行と前記後続コマンドにより要求される処理の一部の実行とを、前記先行コマンドおよび前記後続コマンドの各々について均等に順番に実行する、
    ことを特徴とする請求項2に記載のメモリ・デバイス。
  4. 前記コントローラが、前記第1コマンドの処理の完了前に前記第2コマンドを受信すると、前記第1パーティションおよび前記第2パーティションの優先順位の低い方へのアクセスを要求する前記第1および第2コマンドの一方により要求される処理を行なわずに前記第1および第2コマンドの他方により要求される処理を完了させる、
    ことを特徴とする請求項1に記載のメモリ・デバイス。
  5. 前記コントローラが、前記第1パーティションへのアクセスを要求するコマンドの処理の完了前に前記第2パーティションへのアクセスを要求するコマンドを受け付ける第1モードと、前記第1パーティションへのアクセスを要求するコマンドの処理の完了前に前記第2パーティションへのアクセスを要求するコマンドを拒絶する第2モードと、のいずれかに設定される、
    ことを特徴とする請求項1に記載のメモリ・デバイス。
JP2012024188A 2011-09-16 2012-02-07 メモリ・デバイス Pending JP2013077278A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2012024188A JP2013077278A (ja) 2011-09-16 2012-02-07 メモリ・デバイス
TW101107019A TWI494757B (zh) 2011-09-16 2012-03-02 Memory device
CN201210068500.XA CN102999452B (zh) 2011-09-16 2012-03-15 存储器设备
US13/424,749 US8909854B2 (en) 2011-09-16 2012-03-20 Memory device with specified write data size

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011203777 2011-09-16
JP2011203777 2011-09-16
JP2012024188A JP2013077278A (ja) 2011-09-16 2012-02-07 メモリ・デバイス

Publications (1)

Publication Number Publication Date
JP2013077278A true JP2013077278A (ja) 2013-04-25

Family

ID=47881748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012024188A Pending JP2013077278A (ja) 2011-09-16 2012-02-07 メモリ・デバイス

Country Status (4)

Country Link
US (1) US8909854B2 (ja)
JP (1) JP2013077278A (ja)
CN (1) CN102999452B (ja)
TW (1) TWI494757B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013069059A (ja) * 2011-09-21 2013-04-18 Toshiba Corp メモリ・デバイス
US9176673B2 (en) 2013-02-27 2015-11-03 Kabushiki Kaisha Toshiba Memory device
US10146475B2 (en) 2014-09-09 2018-12-04 Toshiba Memory Corporation Memory device performing control of discarding packet
JP2019106056A (ja) * 2017-12-13 2019-06-27 東芝メモリ株式会社 メモリシステム及びメモリデバイス
JP2020135904A (ja) * 2019-02-14 2020-08-31 キオクシア株式会社 不揮発性半導体記憶装置

Families Citing this family (217)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US11630585B1 (en) 2016-08-25 2023-04-18 Pure Storage, Inc. Processing evacuation events in a storage array that includes a plurality of storage devices
KR20150112075A (ko) * 2014-03-26 2015-10-07 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US9489226B2 (en) * 2014-06-06 2016-11-08 PernixData, Inc. Systems and methods to manage write commands in a cache
US10824335B2 (en) 2014-07-14 2020-11-03 Western Digital Technologies, Inc. Device and method to store predicted data at a host memory
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US9774698B2 (en) * 2014-12-31 2017-09-26 Netapp, Inc. Techniques to transfer large collection containers
US10067688B2 (en) * 2015-01-23 2018-09-04 Qualcomm Incorporated Storage resource management in virtualized environments
JP6271460B2 (ja) * 2015-03-02 2018-01-31 東芝メモリ株式会社 半導体記憶装置
US11102298B1 (en) 2015-05-26 2021-08-24 Pure Storage, Inc. Locally providing cloud storage services for fleet management
US9716755B2 (en) 2015-05-26 2017-07-25 Pure Storage, Inc. Providing cloud storage array services by a local storage array in a data center
US9594678B1 (en) 2015-05-27 2017-03-14 Pure Storage, Inc. Preventing duplicate entries of identical data in a storage device
US9300660B1 (en) 2015-05-29 2016-03-29 Pure Storage, Inc. Providing authorization and authentication in a cloud for a user of a storage array
US11503031B1 (en) 2015-05-29 2022-11-15 Pure Storage, Inc. Storage array access control from cloud-based user authorization and authentication
US9444822B1 (en) 2015-05-29 2016-09-13 Pure Storage, Inc. Storage array access control from cloud-based user authorization and authentication
US10021170B2 (en) 2015-05-29 2018-07-10 Pure Storage, Inc. Managing a storage array using client-side services
US9588691B2 (en) 2015-06-10 2017-03-07 Pure Storage, Inc. Dynamically managing control information in a storage device
US9594512B1 (en) 2015-06-19 2017-03-14 Pure Storage, Inc. Attributing consumed storage capacity among entities storing data in a storage array
US10310740B2 (en) * 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US9547441B1 (en) 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
US10296236B2 (en) 2015-07-01 2019-05-21 Pure Storage, Inc. Offloading device management responsibilities from a storage device in an array of storage devices
US9892071B2 (en) 2015-08-03 2018-02-13 Pure Storage, Inc. Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array
US9851762B1 (en) 2015-08-06 2017-12-26 Pure Storage, Inc. Compliant printed circuit board (‘PCB’) within an enclosure
US11294588B1 (en) 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
US11625181B1 (en) 2015-08-24 2023-04-11 Pure Storage, Inc. Data tiering using snapshots
US10198194B2 (en) 2015-08-24 2019-02-05 Pure Storage, Inc. Placing data within a storage device of a flash array
JP2017045388A (ja) * 2015-08-28 2017-03-02 株式会社東芝 メモリシステム
US10514978B1 (en) 2015-10-23 2019-12-24 Pure Storage, Inc. Automatic deployment of corrective measures for storage arrays
US9384082B1 (en) 2015-10-23 2016-07-05 Pure Storage, Inc. Proactively providing corrective measures for storage arrays
US11360844B1 (en) 2015-10-23 2022-06-14 Pure Storage, Inc. Recovery of a container storage provider
TWI585769B (zh) 2015-10-23 2017-06-01 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體之偵測方法
US10284232B2 (en) 2015-10-28 2019-05-07 Pure Storage, Inc. Dynamic error processing in a storage device
US9740414B2 (en) 2015-10-29 2017-08-22 Pure Storage, Inc. Optimizing copy operations
US10374868B2 (en) 2015-10-29 2019-08-06 Pure Storage, Inc. Distributed command processing in a flash storage system
US10353777B2 (en) 2015-10-30 2019-07-16 Pure Storage, Inc. Ensuring crash-safe forward progress of a system configuration update
US9760479B2 (en) 2015-12-02 2017-09-12 Pure Storage, Inc. Writing data in a storage system that includes a first type of storage device and a second type of storage device
US11762764B1 (en) 2015-12-02 2023-09-19 Pure Storage, Inc. Writing data in a storage system that includes a first type of storage device and a second type of storage device
US10326836B2 (en) 2015-12-08 2019-06-18 Pure Storage, Inc. Partially replicating a snapshot between storage systems
US11616834B2 (en) 2015-12-08 2023-03-28 Pure Storage, Inc. Efficient replication of a dataset to the cloud
US10162835B2 (en) 2015-12-15 2018-12-25 Pure Storage, Inc. Proactive management of a plurality of storage arrays in a multi-array system
US11347697B1 (en) 2015-12-15 2022-05-31 Pure Storage, Inc. Proactively optimizing a storage system
US10346043B2 (en) 2015-12-28 2019-07-09 Pure Storage, Inc. Adaptive computing for data compression
US10096366B2 (en) 2016-01-28 2018-10-09 Toshiba Memory Corporation Memory system including multi-plane flash memory and controller
US9886314B2 (en) 2016-01-28 2018-02-06 Pure Storage, Inc. Placing workloads in a multi-array system
US10572460B2 (en) 2016-02-11 2020-02-25 Pure Storage, Inc. Compressing data in dependence upon characteristics of a storage system
US9760297B2 (en) 2016-02-12 2017-09-12 Pure Storage, Inc. Managing input/output (‘I/O’) queues in a data storage system
US9959043B2 (en) 2016-03-16 2018-05-01 Pure Storage, Inc. Performing a non-disruptive upgrade of data in a storage system
US11995315B2 (en) 2016-03-16 2024-05-28 Pure Storage, Inc. Converting data formats in a storage system
US11809727B1 (en) 2016-04-27 2023-11-07 Pure Storage, Inc. Predicting failures in a storage system that includes a plurality of storage devices
US11112990B1 (en) 2016-04-27 2021-09-07 Pure Storage, Inc. Managing storage device evacuation
US9841921B2 (en) 2016-04-27 2017-12-12 Pure Storage, Inc. Migrating data in a storage array that includes a plurality of storage devices
US9811264B1 (en) 2016-04-28 2017-11-07 Pure Storage, Inc. Deploying client-specific applications in a storage system utilizing redundant system resources
US10303390B1 (en) 2016-05-02 2019-05-28 Pure Storage, Inc. Resolving fingerprint collisions in flash storage system
US11231858B2 (en) 2016-05-19 2022-01-25 Pure Storage, Inc. Dynamically configuring a storage system to facilitate independent scaling of resources
US9507532B1 (en) 2016-05-20 2016-11-29 Pure Storage, Inc. Migrating data in a storage array that includes a plurality of storage devices and a plurality of write buffer devices
US10691567B2 (en) 2016-06-03 2020-06-23 Pure Storage, Inc. Dynamically forming a failure domain in a storage system that includes a plurality of blades
US10452310B1 (en) 2016-07-13 2019-10-22 Pure Storage, Inc. Validating cabling for storage component admission to a storage array
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US10459652B2 (en) 2016-07-27 2019-10-29 Pure Storage, Inc. Evacuating blades in a storage array that includes a plurality of blades
US10474363B1 (en) 2016-07-29 2019-11-12 Pure Storage, Inc. Space reporting in a storage system
US11886922B2 (en) 2016-09-07 2024-01-30 Pure Storage, Inc. Scheduling input/output operations for a storage system
US10908966B1 (en) 2016-09-07 2021-02-02 Pure Storage, Inc. Adapting target service times in a storage system
US10146585B2 (en) 2016-09-07 2018-12-04 Pure Storage, Inc. Ensuring the fair utilization of system resources using workload based, time-independent scheduling
US10235229B1 (en) 2016-09-07 2019-03-19 Pure Storage, Inc. Rehabilitating storage devices in a storage array that includes a plurality of storage devices
US10671439B1 (en) 2016-09-07 2020-06-02 Pure Storage, Inc. Workload planning with quality-of-service (‘QOS’) integration
US11960348B2 (en) 2016-09-07 2024-04-16 Pure Storage, Inc. Cloud-based monitoring of hardware components in a fleet of storage systems
US11531577B1 (en) 2016-09-07 2022-12-20 Pure Storage, Inc. Temporarily limiting access to a storage device
US11481261B1 (en) 2016-09-07 2022-10-25 Pure Storage, Inc. Preventing extended latency in a storage system
US10331588B2 (en) 2016-09-07 2019-06-25 Pure Storage, Inc. Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling
KR20180031412A (ko) 2016-09-20 2018-03-28 삼성전자주식회사 메모리 컨트롤러의 동작 방법과, 이를 포함하는 장치들의 동작 방법들
TWI661352B (zh) * 2016-09-22 2019-06-01 慧榮科技股份有限公司 資料儲存裝置及其資料寫入方法
US10007459B2 (en) 2016-10-20 2018-06-26 Pure Storage, Inc. Performance tuning in a storage system that includes one or more storage devices
US11379132B1 (en) 2016-10-20 2022-07-05 Pure Storage, Inc. Correlating medical sensor data
US11620075B2 (en) 2016-11-22 2023-04-04 Pure Storage, Inc. Providing application aware storage
US10162566B2 (en) 2016-11-22 2018-12-25 Pure Storage, Inc. Accumulating application-level statistics in a storage system
US10198205B1 (en) 2016-12-19 2019-02-05 Pure Storage, Inc. Dynamically adjusting a number of storage devices utilized to simultaneously service write operations
US11461273B1 (en) 2016-12-20 2022-10-04 Pure Storage, Inc. Modifying storage distribution in a storage system that includes one or more storage devices
US10489307B2 (en) 2017-01-05 2019-11-26 Pure Storage, Inc. Periodically re-encrypting user data stored on a storage device
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US10503700B1 (en) 2017-01-19 2019-12-10 Pure Storage, Inc. On-demand content filtering of snapshots within a storage system
US11340800B1 (en) 2017-01-19 2022-05-24 Pure Storage, Inc. Content masking in a storage system
US11163624B2 (en) 2017-01-27 2021-11-02 Pure Storage, Inc. Dynamically adjusting an amount of log data generated for a storage system
US10454810B1 (en) 2017-03-10 2019-10-22 Pure Storage, Inc. Managing host definitions across a plurality of storage systems
US11803453B1 (en) 2017-03-10 2023-10-31 Pure Storage, Inc. Using host connectivity states to avoid queuing I/O requests
US11675520B2 (en) 2017-03-10 2023-06-13 Pure Storage, Inc. Application replication among storage systems synchronously replicating a dataset
US11442825B2 (en) 2017-03-10 2022-09-13 Pure Storage, Inc. Establishing a synchronous replication relationship between two or more storage systems
US11169727B1 (en) 2017-03-10 2021-11-09 Pure Storage, Inc. Synchronous replication between storage systems with virtualized storage
US11089105B1 (en) 2017-12-14 2021-08-10 Pure Storage, Inc. Synchronously replicating datasets in cloud-based storage systems
US10521344B1 (en) 2017-03-10 2019-12-31 Pure Storage, Inc. Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems
US11941279B2 (en) 2017-03-10 2024-03-26 Pure Storage, Inc. Data path virtualization
US10503427B2 (en) 2017-03-10 2019-12-10 Pure Storage, Inc. Synchronously replicating datasets and other managed objects to cloud-based storage systems
US10459664B1 (en) 2017-04-10 2019-10-29 Pure Storage, Inc. Virtualized copy-by-reference
US9910618B1 (en) 2017-04-10 2018-03-06 Pure Storage, Inc. Migrating applications executing on a storage system
US11868629B1 (en) 2017-05-05 2024-01-09 Pure Storage, Inc. Storage system sizing service
KR102349381B1 (ko) * 2017-05-17 2022-01-13 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10417092B2 (en) 2017-09-07 2019-09-17 Pure Storage, Inc. Incremental RAID stripe update parity calculation
US11340939B1 (en) 2017-06-12 2022-05-24 Pure Storage, Inc. Application-aware analytics for storage systems
US10552090B2 (en) 2017-09-07 2020-02-04 Pure Storage, Inc. Solid state drives with multiple types of addressable memory
US10884636B1 (en) 2017-06-12 2021-01-05 Pure Storage, Inc. Presenting workload performance in a storage system
US11593036B2 (en) 2017-06-12 2023-02-28 Pure Storage, Inc. Staging data within a unified storage element
US11016824B1 (en) 2017-06-12 2021-05-25 Pure Storage, Inc. Event identification with out-of-order reporting in a cloud-based environment
US10613791B2 (en) 2017-06-12 2020-04-07 Pure Storage, Inc. Portable snapshot replication between storage systems
US10976962B2 (en) 2018-03-15 2021-04-13 Pure Storage, Inc. Servicing I/O operations in a cloud-based storage system
US11210133B1 (en) 2017-06-12 2021-12-28 Pure Storage, Inc. Workload mobility between disparate execution environments
US11609718B1 (en) 2017-06-12 2023-03-21 Pure Storage, Inc. Identifying valid data after a storage system recovery
US11442669B1 (en) 2018-03-15 2022-09-13 Pure Storage, Inc. Orchestrating a virtual storage system
US11422731B1 (en) 2017-06-12 2022-08-23 Pure Storage, Inc. Metadata-based replication of a dataset
US10853148B1 (en) 2017-06-12 2020-12-01 Pure Storage, Inc. Migrating workloads between a plurality of execution environments
WO2018231350A1 (en) 2017-06-12 2018-12-20 Pure Storage, Inc. Accessible fast durable storage integrated into a bulk storage device
US11989429B1 (en) 2017-06-12 2024-05-21 Pure Storage, Inc. Recommending changes to a storage system
US11592991B2 (en) 2017-09-07 2023-02-28 Pure Storage, Inc. Converting raid data between persistent storage types
US11561714B1 (en) 2017-07-05 2023-01-24 Pure Storage, Inc. Storage efficiency driven migration
US11477280B1 (en) 2017-07-26 2022-10-18 Pure Storage, Inc. Integrating cloud storage services
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10452444B1 (en) 2017-10-19 2019-10-22 Pure Storage, Inc. Storage system with compute resources and shared storage resources
US11494692B1 (en) 2018-03-26 2022-11-08 Pure Storage, Inc. Hyperscale artificial intelligence and machine learning infrastructure
US11455168B1 (en) 2017-10-19 2022-09-27 Pure Storage, Inc. Batch building for deep learning training workloads
US10360214B2 (en) 2017-10-19 2019-07-23 Pure Storage, Inc. Ensuring reproducibility in an artificial intelligence infrastructure
US10671435B1 (en) 2017-10-19 2020-06-02 Pure Storage, Inc. Data transformation caching in an artificial intelligence infrastructure
US11861423B1 (en) 2017-10-19 2024-01-02 Pure Storage, Inc. Accelerating artificial intelligence (‘AI’) workflows
JP7074453B2 (ja) * 2017-10-30 2022-05-24 キオクシア株式会社 メモリシステムおよび制御方法
US10484174B1 (en) 2017-11-01 2019-11-19 Pure Storage, Inc. Protecting an encryption key for data stored in a storage system that includes a plurality of storage devices
US10817392B1 (en) 2017-11-01 2020-10-27 Pure Storage, Inc. Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices
US10467107B1 (en) 2017-11-01 2019-11-05 Pure Storage, Inc. Maintaining metadata resiliency among storage device failures
US10509581B1 (en) 2017-11-01 2019-12-17 Pure Storage, Inc. Maintaining write consistency in a multi-threaded storage system
US10671494B1 (en) 2017-11-01 2020-06-02 Pure Storage, Inc. Consistent selection of replicated datasets during storage system recovery
US10929226B1 (en) 2017-11-21 2021-02-23 Pure Storage, Inc. Providing for increased flexibility for large scale parity
US10990282B1 (en) 2017-11-28 2021-04-27 Pure Storage, Inc. Hybrid data tiering with cloud storage
US10936238B2 (en) 2017-11-28 2021-03-02 Pure Storage, Inc. Hybrid data tiering
US10795598B1 (en) 2017-12-07 2020-10-06 Pure Storage, Inc. Volume migration for storage systems synchronously replicating a dataset
US11036677B1 (en) 2017-12-14 2021-06-15 Pure Storage, Inc. Replicated data integrity
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10992533B1 (en) 2018-01-30 2021-04-27 Pure Storage, Inc. Policy based path management
US11972134B2 (en) 2018-03-05 2024-04-30 Pure Storage, Inc. Resource utilization using normalized input/output (‘I/O’) operations
US11861170B2 (en) 2018-03-05 2024-01-02 Pure Storage, Inc. Sizing resources for a replication target
US11150834B1 (en) 2018-03-05 2021-10-19 Pure Storage, Inc. Determining storage consumption in a storage system
US10521151B1 (en) 2018-03-05 2019-12-31 Pure Storage, Inc. Determining effective space utilization in a storage system
US10942650B1 (en) 2018-03-05 2021-03-09 Pure Storage, Inc. Reporting capacity utilization in a storage system
US10296258B1 (en) 2018-03-09 2019-05-21 Pure Storage, Inc. Offloading data storage to a decentralized storage network
US11288138B1 (en) 2018-03-15 2022-03-29 Pure Storage, Inc. Recovery from a system fault in a cloud-based storage system
US11210009B1 (en) 2018-03-15 2021-12-28 Pure Storage, Inc. Staging data in a cloud-based storage system
US10917471B1 (en) 2018-03-15 2021-02-09 Pure Storage, Inc. Active membership in a cloud-based storage system
US11048590B1 (en) 2018-03-15 2021-06-29 Pure Storage, Inc. Data consistency during recovery in a cloud-based storage system
US10924548B1 (en) 2018-03-15 2021-02-16 Pure Storage, Inc. Symmetric storage using a cloud-based storage system
US11171950B1 (en) 2018-03-21 2021-11-09 Pure Storage, Inc. Secure cloud-based storage system management
US11095706B1 (en) 2018-03-21 2021-08-17 Pure Storage, Inc. Secure cloud-based storage system management
US10838833B1 (en) 2018-03-26 2020-11-17 Pure Storage, Inc. Providing for high availability in a data analytics pipeline without replicas
US11392553B1 (en) 2018-04-24 2022-07-19 Pure Storage, Inc. Remote data management
US11436344B1 (en) 2018-04-24 2022-09-06 Pure Storage, Inc. Secure encryption in deduplication cluster
US11455409B2 (en) 2018-05-21 2022-09-27 Pure Storage, Inc. Storage layer data obfuscation
US10992598B2 (en) 2018-05-21 2021-04-27 Pure Storage, Inc. Synchronously replicating when a mediation service becomes unavailable
US11954220B2 (en) 2018-05-21 2024-04-09 Pure Storage, Inc. Data protection for container storage
US11675503B1 (en) 2018-05-21 2023-06-13 Pure Storage, Inc. Role-based data access
US10871922B2 (en) 2018-05-22 2020-12-22 Pure Storage, Inc. Integrated storage management between storage systems and container orchestrators
US11403000B1 (en) 2018-07-20 2022-08-02 Pure Storage, Inc. Resiliency in a cloud-based storage system
US11416298B1 (en) 2018-07-20 2022-08-16 Pure Storage, Inc. Providing application-specific storage by a storage system
US11146564B1 (en) 2018-07-24 2021-10-12 Pure Storage, Inc. Login authentication in a cloud storage platform
US11954238B1 (en) 2018-07-24 2024-04-09 Pure Storage, Inc. Role-based access control for a storage system
US11632360B1 (en) 2018-07-24 2023-04-18 Pure Storage, Inc. Remote access to a storage device
US11860820B1 (en) 2018-09-11 2024-01-02 Pure Storage, Inc. Processing data through a storage system in a data pipeline
US10671302B1 (en) 2018-10-26 2020-06-02 Pure Storage, Inc. Applying a rate limit across a plurality of storage systems
US11526405B1 (en) 2018-11-18 2022-12-13 Pure Storage, Inc. Cloud-based disaster recovery
US10963189B1 (en) 2018-11-18 2021-03-30 Pure Storage, Inc. Coalescing write operations in a cloud-based storage system
US11340837B1 (en) 2018-11-18 2022-05-24 Pure Storage, Inc. Storage system management via a remote console
US11379254B1 (en) 2018-11-18 2022-07-05 Pure Storage, Inc. Dynamic configuration of a cloud-based storage system
US11650749B1 (en) 2018-12-17 2023-05-16 Pure Storage, Inc. Controlling access to sensitive data in a shared dataset
US11003369B1 (en) 2019-01-14 2021-05-11 Pure Storage, Inc. Performing a tune-up procedure on a storage device during a boot process
US10802750B2 (en) * 2019-02-28 2020-10-13 Silicon Motion Inc. Universal flash storage memory module, controller and electronic device with advanced turbo write buffer and method for operating the memory module
US11042452B1 (en) 2019-03-20 2021-06-22 Pure Storage, Inc. Storage system data recovery using data recovery as a service
US11221778B1 (en) 2019-04-02 2022-01-11 Pure Storage, Inc. Preparing data for deduplication
US11068162B1 (en) 2019-04-09 2021-07-20 Pure Storage, Inc. Storage management in a cloud data store
KR20200129700A (ko) * 2019-05-09 2020-11-18 에스케이하이닉스 주식회사 컨트롤러 및 이를 포함하는 메모리 시스템
US11853266B2 (en) 2019-05-15 2023-12-26 Pure Storage, Inc. Providing a file system in a cloud environment
US11392555B2 (en) 2019-05-15 2022-07-19 Pure Storage, Inc. Cloud-based file services
US11327676B1 (en) 2019-07-18 2022-05-10 Pure Storage, Inc. Predictive data streaming in a virtual storage system
US11126364B2 (en) 2019-07-18 2021-09-21 Pure Storage, Inc. Virtual storage system architecture
US12001355B1 (en) 2019-05-24 2024-06-04 Pure Storage, Inc. Chunked memory efficient storage data transfers
US11093139B1 (en) 2019-07-18 2021-08-17 Pure Storage, Inc. Durably storing data within a virtual storage system
US11526408B2 (en) 2019-07-18 2022-12-13 Pure Storage, Inc. Data recovery in a virtual storage system
US11487715B1 (en) 2019-07-18 2022-11-01 Pure Storage, Inc. Resiliency in a cloud-based storage system
US11861221B1 (en) 2019-07-18 2024-01-02 Pure Storage, Inc. Providing scalable and reliable container-based storage services
US11797197B1 (en) 2019-07-18 2023-10-24 Pure Storage, Inc. Dynamic scaling of a virtual storage system
US11086553B1 (en) 2019-08-28 2021-08-10 Pure Storage, Inc. Tiering duplicated objects in a cloud-based object store
US11693713B1 (en) 2019-09-04 2023-07-04 Pure Storage, Inc. Self-tuning clusters for resilient microservices
US11797569B2 (en) 2019-09-13 2023-10-24 Pure Storage, Inc. Configurable data replication
US11360689B1 (en) 2019-09-13 2022-06-14 Pure Storage, Inc. Cloning a tracking copy of replica data
US11573864B1 (en) 2019-09-16 2023-02-07 Pure Storage, Inc. Automating database management in a storage system
US11669386B1 (en) 2019-10-08 2023-06-06 Pure Storage, Inc. Managing an application's resource stack
US20210173945A1 (en) 2019-12-06 2021-06-10 Pure Storage, Inc. Replicating data to a storage system that has an inferred trust relationship with a client
US11720497B1 (en) 2020-01-13 2023-08-08 Pure Storage, Inc. Inferred nonsequential prefetch based on data access patterns
US11709636B1 (en) 2020-01-13 2023-07-25 Pure Storage, Inc. Non-sequential readahead for deep learning training
US11733901B1 (en) 2020-01-13 2023-08-22 Pure Storage, Inc. Providing persistent storage to transient cloud computing services
US11637896B1 (en) 2020-02-25 2023-04-25 Pure Storage, Inc. Migrating applications to a cloud-computing environment
US11868622B2 (en) 2020-02-25 2024-01-09 Pure Storage, Inc. Application recovery across storage systems
US11321006B1 (en) 2020-03-25 2022-05-03 Pure Storage, Inc. Data loss prevention during transitions from a replication source
US11301152B1 (en) 2020-04-06 2022-04-12 Pure Storage, Inc. Intelligently moving data between storage systems
US11630598B1 (en) 2020-04-06 2023-04-18 Pure Storage, Inc. Scheduling data replication operations
US11494267B2 (en) 2020-04-14 2022-11-08 Pure Storage, Inc. Continuous value data redundancy
US11921670B1 (en) 2020-04-20 2024-03-05 Pure Storage, Inc. Multivariate data backup retention policies
US11431488B1 (en) 2020-06-08 2022-08-30 Pure Storage, Inc. Protecting local key generation using a remote key management service
US11349917B2 (en) 2020-07-23 2022-05-31 Pure Storage, Inc. Replication handling among distinct networks
US11442652B1 (en) 2020-07-23 2022-09-13 Pure Storage, Inc. Replication handling during storage system transportation
KR20220047443A (ko) * 2020-10-08 2022-04-18 삼성전자주식회사 메모리 시스템, 이를 포함하는 전자 기기, 및 메모리 컨트롤러
US11397545B1 (en) 2021-01-20 2022-07-26 Pure Storage, Inc. Emulating persistent reservations in a cloud-based storage system
US11853285B1 (en) 2021-01-22 2023-12-26 Pure Storage, Inc. Blockchain logging of volume-level events in a storage system
US20220365827A1 (en) 2021-05-12 2022-11-17 Pure Storage, Inc. Rebalancing In A Fleet Of Storage Systems Using Data Science
US11816129B2 (en) 2021-06-22 2023-11-14 Pure Storage, Inc. Generating datasets using approximate baselines
US11714723B2 (en) 2021-10-29 2023-08-01 Pure Storage, Inc. Coordinated snapshots for data stored across distinct storage environments
US11893263B2 (en) 2021-10-29 2024-02-06 Pure Storage, Inc. Coordinated checkpoints among storage systems implementing checkpoint-based replication
US11914867B2 (en) 2021-10-29 2024-02-27 Pure Storage, Inc. Coordinated snapshots among storage systems implementing a promotion/demotion model
US11922052B2 (en) 2021-12-15 2024-03-05 Pure Storage, Inc. Managing links between storage objects
US11847071B2 (en) 2021-12-30 2023-12-19 Pure Storage, Inc. Enabling communication between a single-port device and multiple storage system controllers
US12001300B2 (en) 2022-01-04 2024-06-04 Pure Storage, Inc. Assessing protection for storage resources
US11860780B2 (en) 2022-01-28 2024-01-02 Pure Storage, Inc. Storage cache management
US11886295B2 (en) 2022-01-31 2024-01-30 Pure Storage, Inc. Intra-block error correction

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003203490A (ja) 2002-01-08 2003-07-18 Seiko Epson Corp 半導体記憶装置、制御装置、および半導体記憶装置の制御方法
US7149945B2 (en) * 2003-05-09 2006-12-12 Hewlett-Packard Development Company, L.P. Systems and methods for providing error correction code testing functionality
US7427027B2 (en) 2004-07-28 2008-09-23 Sandisk Corporation Optimized non-volatile storage systems
DE102004058528B3 (de) * 2004-12-04 2006-05-04 Hyperstone Ag Speichersystem mit Sektorbuffern
US7502916B2 (en) * 2005-12-02 2009-03-10 Infineon Technologies Flash Gmbh & Co. Kg Processing arrangement, memory card device and method for operating and manufacturing a processing arrangement
JP4672742B2 (ja) * 2008-02-27 2011-04-20 株式会社東芝 メモリコントローラおよびメモリシステム
JP2009211192A (ja) * 2008-02-29 2009-09-17 Toshiba Corp メモリシステム
JP2010020715A (ja) 2008-07-14 2010-01-28 Toshiba Corp 半導体メモリコントローラおよび半導体メモリシステム
TW201102812A (en) * 2009-07-15 2011-01-16 A Data Technology Co Ltd A storage device and data processing method thereof

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013069059A (ja) * 2011-09-21 2013-04-18 Toshiba Corp メモリ・デバイス
US9176673B2 (en) 2013-02-27 2015-11-03 Kabushiki Kaisha Toshiba Memory device
US10146475B2 (en) 2014-09-09 2018-12-04 Toshiba Memory Corporation Memory device performing control of discarding packet
JP2019106056A (ja) * 2017-12-13 2019-06-27 東芝メモリ株式会社 メモリシステム及びメモリデバイス
JP2020135904A (ja) * 2019-02-14 2020-08-31 キオクシア株式会社 不揮発性半導体記憶装置

Also Published As

Publication number Publication date
TW201314446A (zh) 2013-04-01
CN102999452A (zh) 2013-03-27
CN102999452B (zh) 2016-01-20
US8909854B2 (en) 2014-12-09
TWI494757B (zh) 2015-08-01
US20130073793A1 (en) 2013-03-21

Similar Documents

Publication Publication Date Title
JP2013077278A (ja) メモリ・デバイス
JP5677336B2 (ja) メモリ・デバイス
JP5547154B2 (ja) メモリ・デバイス
JP5547148B2 (ja) メモリデバイス
JP5481453B2 (ja) メモリデバイス
US8799605B2 (en) Initializing and writing to a nonvolatile storage device based on a client/server model
US11126602B2 (en) Key-value storage device and operating method thereof
US11204721B2 (en) Input/output size control between a host system and a memory sub-system
US11423961B2 (en) Semiconductor storage device and method of controlling the same
KR20190052884A (ko) 메모리 컨트롤러 및 그것을 포함하는 스토리지 장치
KR102219759B1 (ko) 저장 장치, 그것을 포함하는 데이터 저장 시스템 및 그것의 동작 방법
US20240036768A1 (en) Partial Execution of a Write Command from a Host System
KR102312399B1 (ko) 메모리 시스템 및 이의 동작 방법
JP2021043975A (ja) インターフェース回路並びにメモリ装置及びその動作方法
TW201908958A (zh) 用來於一記憶裝置中進行編程管理之方法以及記憶裝置及其控制器
JP2008027326A (ja) システムコントローラ、該システムコントローラを有するフラッシュメモリシステム、フラッシュメモリモジュールの制御方法
TWI644215B (zh) 用來控制一資料儲存裝置的運作之方法以及資料儲存裝置及其控制器
US9311257B2 (en) Semiconductor memory device, memory system and method of operating the same
TW202318200A (zh) 儲存裝置及其操作方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131205

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131212

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131226

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109