JP5694101B2 - メモリ・デバイス、ホスト・デバイス - Google Patents

メモリ・デバイス、ホスト・デバイス Download PDF

Info

Publication number
JP5694101B2
JP5694101B2 JP2011205193A JP2011205193A JP5694101B2 JP 5694101 B2 JP5694101 B2 JP 5694101B2 JP 2011205193 A JP2011205193 A JP 2011205193A JP 2011205193 A JP2011205193 A JP 2011205193A JP 5694101 B2 JP5694101 B2 JP 5694101B2
Authority
JP
Japan
Prior art keywords
memory
host
memory device
initialization
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011205193A
Other languages
English (en)
Other versions
JP2013068992A (ja
Inventor
操 長谷川
操 長谷川
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 JP2011205193A priority Critical patent/JP5694101B2/ja
Priority to US13/426,872 priority patent/US8799605B2/en
Publication of JP2013068992A publication Critical patent/JP2013068992A/ja
Application granted granted Critical
Publication of JP5694101B2 publication Critical patent/JP5694101B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Description

メモリ・デバイス、ホスト・デバイスに関するものである。
データを保持するメディアとして種々のものが存在する。そのようなメディアとして、例えばクライアント・サーバ・モデルに基づいたメモリ・デバイスがある。クライアント・サーバ・モデルに基づいた、メモリ・デバイスおよびホスト・デバイスからなるメモリ・システムでは、別のメモリ・システムと異なる点がある。例えば、クライアント・サーバ・モデルに基づくメモリ・デバイスおよびホスト・デバイスの役割分担は、クライアント・サーバ・モデルに基づかないメモリ・デバイスおよびホスト・デバイスの役割分担と異なる。したがって、ホスト・デバイスとメモリ・デバイスとの間の通信内容も、クライアント・サーバ・モデルに基づくシステムと基づかないシステムとで異なる。
メモリ・システムは特定の規格に則っていることがある。例えば、クライアント・サーバ・モデルに基づくメモリ・システムとして、例えば、UFS(Universal Flash Storage)メモリ・デバイスおよびホスト・デバイスが挙げられる。規格で定められている点については、メモリ・システムは仕様に則っていなければならない。しかしながら、規格で定められていない点も存在し、このような点については、メモリ・システムの設計者が定めることができる。このように自由度が存在する事項については、メモリ・システムの特性に適する形で好ましい性能が実現されるように、決定されるべきである。このような自由度を伴った事項に対して適切な決定を行なって、より高い性能を実現できるメモリ・デバイスを提供する要望がある。
国際公開第2007/116476号パンフレット
JEDEC SOLID STATE TECHNOLOGY ASSOCIATION、JEDEC STANDARD(JESD220)、2011年2月
ポーリング中の負担を軽減できるメモリ・デバイス、ホスト・デバイスを提供する。
実施形態によれば、一態様に係るメモリ・デバイスは、複数のメモリセルを備える不揮発性のメモリと、前記不揮発性のメモリを制御するコントローラとを具備し、前記コントローラは、ブート動作の際に、デバイスの初期化が要求されると、前記初期化の終了まで前記初期化の要求に対する返信を返さず、初期化が終了したら前記初期化の要求に対する返信を行い、ホスト・デバイスからの論理アドレスを割り当てられた書き込みデータを前記不揮発性のメモリに書き込む要求に対して前記書き込みデータの分割された部分である書き込みデータ部分をそのサイズを指定して送信することを前記ホスト・デバイスに要求し、前記フラグ値は、初期化が終了したら前記初期化の要求に対する返信を行うことを示す。
参考例に係るBootシーケンス例を示すフロー図。 参考例のクライアント・サーバ・モデルに基づくメモリ・デバイスとホスト・デバイスとの間のデータ書き込みの際の通信の例を示すフロー図。 第1の実施形態に係るメモリ・デバイスのハードウェア上の構成を示すブロック図。 第1の実施形態に係るメモリ・デバイスが封止された形態の例を示す図。 第1の実施形態に係るメモリ・デバイス機能ブロックを示す図。 第1の実施形態に係るメモリ・デバイスのパケットの例を示す図。 第1の実施形態に係る論理アドレスと物理ブロックの変換テーブルの例を示す図。 第1の実施形態に係るLUをより詳細に示す機能ブロック図。 第1の実施形態に係るBootシーケンス例を示すフロー図。 第2の実施形態に係るBootシーケンス例を示すフロー図。
[参考例]
実施形態の説明に先立ち、図1および図2を用い、参考例について簡単に説明する。
図1は、Universal Flash Memory (UFS)におけるブート(Boot)シーケンス例を示すフロー図である。
図示するように、ホストおよびデバイスは、ステップSt1〜St2.2において、デバイス初期化に必要な動作を行う。
続いて、ステップSt3の際に、ホストは、デバイスに対してQuery Requestを発行し、初期化開始を指示する。この際、ホストは、UPIUを通じて、フラグ値としてbDeviceInit='1'を設定する。
続いて、ステップSt3.1の際に、デバイスは、デバイス初期化を開始し、ホストに対して、Query Responseを返信する。
続いて、ステップSt4の際に、ホストは、デバイスに対してQuery Request を発行し、UPIUを通じて、デバイスの初期化が終了したかどうかを問い合わせる。
これに対して、ステップSt4.1の際に、デバイスは、ホストに対して、Query Responseを返信し、初期化終了したかどうかの状態を示す。
続いて、ステップSt5の際に、同様に、ホストは、デバイスに対してQuery Request を発行し、UPIUを通じて、デバイスの初期化が終了したかどうかを問い合わせる。
これに対して、ステップSt5.1の際に、同様に、デバイスは、ホストに対して、Query Responseを返信し、初期化終了したかどうかの状態を示す。
続いて、ステップSt6の際に、同様に、ホストは、デバイスに対してQuery Request を発行し、UPIUを通じて、デバイスの初期化が終了したかどうかを問い合わせる。
これに対して、ステップSt6.1の際に、同様に、デバイスは、ホストに対して、Query Responseを返信し、デバイス初期化終了したことを示す。この際、デバイスは、UPIUを通じて、フラグ値としてbDeviceInit='0'を設定する。
これを受けて、ホストは、デバイスの初期化が完了したことを検出し、Boot処理が終了する。
上記のように、参考例では、ホスト側は、デバイスの初期化が完了したかどうかをポーリングして待たなければならない(フラグ値としてのbDeviceInit='1'のポーリング)。より具体的には、この参考例では、ホスト側は、デバイスに対して初期化指示後、Query Requestによる初期化終了の確認を3回行い、3回目でホストが初期化終了を認識する。すなわち、このポーリングをしている間、ホスト側は、デバイス側の監視のためにリソースを割り当てる必要がある。
次に、図2を用い、クライアント・サーバ・モデルに基づくメモリ・デバイスとホスト・デバイスとの間のデータ書き込みの際の通信の例を説明する。
図2に示されているように、ホスト・デバイスは書き込みコマンドを発行することにより、書き込みを開始する。書き込みコマンドは、書き込みの位置を指定する論理アドレスおよび、この書き込みコマンドの対象の書き込みデータのサイズの情報を含んでいる。書き込みコマンドを受け取ると、メモリ・デバイスは、書き込みデータの転送要求の内容を決定する。転送要求には、書き込みデータのうちのメモリ・デバイスがホスト・デバイスからの転送を望む部分の大きさおよびオフセット・アドレスが含まれることになっている。オフセット・アドレスは、メモリ・デバイスが転送を望む部分の位置を特定するためのものである。ホスト・デバイスは、転送要求を受け取ると、要求されたデータ部分をメモリ・デバイスに転送する。メモリ・デバイスは、受け取ったデータ部分をメモリに書き込むことと、別のデータ部分の転送要求を送信することと、を実行する。この書き込みと転送要求は、書き込みデータ全体が書き込まれるまで継続する。書き込みデータ全体の書き込みの成功または失敗に応じて、メモリ・デバイスはホスト・デバイスに相応するレスポンスを送信する。
このように、図2の例では、メモリ・デバイスが書き込みデータ部分を決定し、転送要求を送信する。この書き込みにおいて、規格によって定められている事項と定められていない事項がある。例えば、メモリ・デバイスによる転送要求内のオフセット・アドレスがシーケンシャルであるかランダムであるかはホスト・デバイスにおいて任意に設定され、オフセット・アドレスの選択は、この設定に従わなければならない。一方、例えば、転送要求によって指定されるデータ部分の大きさは、仕様において定められていない場合がある。
なお、クライアント・サーバ・モデルに基づかないメモリ・デバイスとして、SDTMカードおよびeMMCが一例としてある。
以下に、このような知見に基づいて構成された実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、構成部品の材質、形状、構造、配置等を下記のものに特定するものでない。実施形態の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
[第1の実施形態]
次に、第1の実施形態について説明する。
まず、図3は、第1の実施形態に係るメモリ・デバイスを概略的に示している。図3は、メモリ・デバイスのハードウェア上の構成を示している。
図示するように、メモリ・デバイス1は、ホスト・デバイス(以下、単にホストと称する場合がある)2と通信できるように構成されている。メモリ・デバイス1とホスト2は、少なくとも、ホスト2からの書き込み要求に対して、メモリ・デバイス1が書き込みデータの部分のサイズおよび位置を指定できる方式でホスト2と通信する。例えば、メモリ・デバイス1は、ホスト・デバイス2からの論理アドレスを割り当てられた書き込みデータをメモリに書き込む要求に対して、書き込みデータの分割された部分である書き込みデータ部分を、そのサイズを指定して送信することをホスト・デバイス2に要求すること等が可能である。より具体的には、メモリ・デバイス1とホスト2、クライアント・サーバ・モデルに基づいて通信する。メモリ・デバイス1は、ターゲットとして動作し、ホスト2はイニシエータとして動作する。さらに具体的な例として、メモリ・デバイス1はUFSメモリ・デバイスであり、ホスト2はUFSメモリ・デバイスをサポートするホストである。
メモリ・デバイス1は、少なくとも、不揮発性の半導体メモリ11と、メモリ11を制御するためのメモリ・コントローラ12とを含んでいる。メモリ11は、複数ビットからなる特定の書き込み単位でデータの書き込みおよび読み出しを行う。さらに、メモリ11は、複数の書き込み単位からなる消去単位でデータを消去する。
例えば、メモリ11は1つまたは複数のNAND型フラッシュ・メモリからなる。メモリ11がNAND型フラッシュ・メモリである場合、メモリ11は、ページ単位でデータの書き込みおよび読み出しを行う。ページは、複数の接続されたメモリセルの集合のメモリ空間からなり、固有の物理アドレスを割り当てられている。また、メモリ11がNAND型フラッシュ・メモリである場合、メモリ11は、ブロック単位でデータの消去を行う。各ブロックは、連続する物理アドレスを有する複数のページからなる。各メモリセルは、いわゆる積層ゲート構造のMOSFET(metal oxide semiconductor field effect transistor)からなる。各セルトランジスタは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じた情報を記憶する。メモリ11がNAND型フラッシュ・メモリである場合、セルトランジスタが2つ以上の閾値電圧の異なる状態を取り得る、つまりメモリセルが多値(多ビット)を記憶できるように、メモリ11が構成されていてもよい。以下の説明では、便宜上、書き込み単位をページとし、消去単位をブロックとする。しかしながら、メモリ11は、必ずしもNAND型フラッシュ・メモリに限られない。
メモリ・デバイス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およびコア・ロジック部31に供給される電源電圧である。VDDi、VDDi2、VDDi3は、コア・ロジック部31に供給され、コア・ロジック部31内に電圧レギュレータが設けられる際の入力端子である。
コア・ロジック部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/O31は、メモリ・インターフェース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はまた、データ・バッファ24と接続されている。ECC回路36は、ホスト1からの書き込みデータをデータ・バス33を介して受け取り、書き込みデータにエラー訂正符号を付加し、エラー訂正符号を付された書き込みデータをバッファ35に供給する。また、ECC回路36は、メモリ11から供給されたデータをバッファ35を介して受け取り、このデータに対してエラー訂正符号を用いてエラー訂正を行い、エラー訂正されたデータをデータ・バス33に供給する。
データ・バス33は、制御バス41と接続されている。制御バス41には、CPU42、ROM43、RAM45、レジスタ46が接続されている。CPU42、ROM43、RAM45、レジスタ46は、制御バス41を介して相互に通信する。CPU42は、メモリ・デバイス1の全体の動作を司る。CPU42は、ROM43に格納されている制御プログラム(命令)に従ってホスト2から受けたコマンドに従ってメモリ11に対する所定の処理を実行する。CPU42は、制御プログラムに従ってホスト2から受けたコマンドに従ってメモリ11に対する所定の処理を実行したりする。
ROM43は、CPU42により制御される制御プログラムなどを格納する。RAM45は、CPU42の作業エリアとして使用され、CPU42の作業に必要な変数等を一時的に記憶する。レジスタ46は、メモリ・デバイス1の動作に必要な種々の値を保持する。また、レジスタ46は、ホスト2が、メモリ・デバイス2を制御するのに必要な種々の値を保持する。
制御バス41には、ホスト・インターフェース31、バッファ32、メモリ・インターフェース34、バッファ35が接続されている。CPU42は、制御プログラムやホスト2からの指示に基づいて、ホスト・インターフェース31、バッファ32、メモリ・インターフェース34、バッファ35を制御する。メモリ・コントローラ12には、アナログ回路51が設けられていてもよい。
<メモリ・デバイスの封止された形態について>
メモリ・デバイス1は、例えば、プリント基板上に半田実装される埋め込み型でも良いし、ホスト2に設けられたカードスロットに対して脱着可能なリムーバブル型でも良い。
図4は、封止された形態のメモリ・デバイス1の例を示している。図4に示されているように、プリント基板201上にチップ状の複数のメモリ11が積層されている。各メモリ11は、プリント基板201上の配線パターン(図示せず)にワイヤ202により接続されている。チップ状のメモリ・コントローラ12も、プリント基板201上に置かれ、ワイヤ202により配線パターンに接続されている。プリント基板201の裏面には、図示せぬ外部端子(例えば、BGA(ball grid array))が設けられている。外部端子には、図3に示した信号(RESET、REF_CLK、DOUT、DOUT_c、DIN、DIN_c、VCC、VCCQ、VCCQ2、VDDi、VDDi2、VDDi3が含まれる。RESET、REF_CLK、DOUT、DOUT_c、DIN、DIN_c)が割り当てられ、この外部端子を介してメモリ・デバイス1外部のホスト2との間で信号を通信する。BGA(ball grid array)が設けられている。プリント基板201、メモリ11、メモリ・コントローラ12、ワイヤ202は、例えば樹脂製のパッケージ203により封止されている。
<メモリ・デバイスの機能ブロックについて>
次に、図5に、メモリ・デバイス1の構成の別の視点を示す。より具体的には、図5は、メモリ・デバイス1の論理構成、すなわち機能ブロックを示している。各ブロックは、ハードウェア、コンピュータ・ソフトウェアのいずれかまたは両者を組み合わせたものとして実現されることが可能である。各機能ブロックが、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も実施形態の範疇に含まれる。また、各機能ブロックが、以下の具体例のように区別されていることは、必須ではない。例えば、一部の機能が以下の説明において例示されている機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示のブロックがさらに細かい機能サブブロックに分割されていてもよい。どのブロックによって特定されるかによって実施形態が限定されるものではない。
図示するように、メモリ・デバイス1は、ターゲット・ポート61、ルータ62、デバイス・マネージャ63、デスクリプタ64、アトリビュート65、フラグ66、複数のロジカル・ユニット(LU:logical unit)67を含んでいる。
ターゲット・ポート61は、メモリ・デバイス1がホスト1と通信可能に接続されるためのポートであり、例えばホスト・インターフェース31に対応する。ルータ62は、ホスト2から受信された通信(タスク、コマンド、データ、クエリー等)を宛先のLU67にルーティングする。ホスト2は、コマンドの処理またはタスク管理機能を、1つのLU67を宛先とする要求を通じて要求する。
LU67同士は、アドレス(例えばLUN(logial unit number))により相互に識別されることが可能である。LUNは、例えば、図6に示されているように、メモリ・デバイス1とホスト2との間の通信(パケット)に含められることが可能である。図6に示されているように、パケット101は、LUN102と、実体部103とを含んでいる。LUN102は、例えばパケット101のヘッダに含められることが可能である。実体部103は、パケットの機能に固有の内容、例えばコマンド、データ、各種のパラメータ等を含んでいる。各パケットの宛先のLU62は、LUNにより一意に特定される。UFSメモリ・デバイスでは、メモリ・デバイス1とホスト2との間のパケットはいずれもヘッダを含んでおり、ヘッダ内にLUNが記述されている。
ルータ62は、ホスト2から受信された通信(タスク、コマンド、データ、クエリー)を、この通信中のLUN103に基づいて、宛先の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からの処理を実行する。したがって、各LUはメモリ11、インターフェース31、バッファ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は、例えば論理アドレス・物理アドレス変換テーブル(以下、単に変換テーブルと称する場合がある)を保持している。
変換の例として、例えば、図7に示されているように、割り当てをブロックとすることができる。各ブロック中の各ページに対して、固定の論理アドレス・オフセットが割り当てられている。図7は、メモリ11の書き込み単位の大きさが16kBであり、論理アドレスが512Bサイズのデータごとに割り当てられている例を示している。
<通信の時のロジカル・ユニットLU67について>
次に、図8を参照して、通信の際のLU67について説明する。図8は、第1実施形態に係る通信時のロジカル・ユニットLUの詳細を示す機能ブロック図である。複数のLU67のうち、少なくとも1つ、典型的には全てが以下に図8を参照して説明する構成を有している。
図示するように、デバイス・サーバ71は、管理部81と、コマンド解析部82と、転送要求生成部83と、メモリ制御部84を含んでいる。
管理部81は、デバイス・サーバ71の全体を管理する。コマンド解析部82は、ホスト2からルータ62を介してコマンドを受信する。コマンド解析部82は、受信されたコマンドを解析する。コマンド制御部82は、書き込みコマンドを受信すると、転送要求生成部83に、転送要求の決定(生成)を要求する。この転送要求生成部83への要求は、コマンド解析部82が直接行なってもよいし、管理部81により行われてもよい。転送要求生成部83は、要求を受けると、書き込みコマンドに含まれている書き込みデータのサイズおよびアドレスに基づいて転送要求を生成する。メモリ制御部84は、管理部81の指示に従って、メモリ11に対するあらゆる指示の発行を担う。
<ブート動作について>
次に、図9を参照して、第1の実施形態に係るBoot動作について説明する。
図示するように、まず、ステップSt1の際に、ホスト2は、デバイスに対して、Query Request UPIUを発行し、デバイスから起動のための情報(Descriptor)を要求する。
続いて、ステップSt1.1の際に、デバイス1は、情報(Descriptor)を読み出し(READ DESCRIPTOR)、読み出したDescriptorを、UPIUを通じて、ホスト2に送信する。この際、送信される情報(Descriptor)は、パケット101中のLUN102と共に実態部103に含められる。
続いて、ステップSt2の際に、ホスト2は、デバイスに対して、ブートコード(boot code)の読み出しを要求する(SCSI READ (Boot LU))。
続いて、ステップSt2.1の際に、デバイス1は、ブートコード(boot code)を読み出し、ホストに対して、読み出したboot codeを送信する。この際においても、送信される情報boot codeは、パケット101中のLUN102と共に実態部103に含められる。
続いて、ステップSt2.1の際に、デバイス1は、全てのboot code送信後、ホスト2に対して、status信号を送信する。同様に、送信されるstatus信号は、パケット101中のLUN102と共に実態部103に含められる。
このstatus信号を受けたホスト2は、ブートコードの読み出しを完了する。
続いて、ステップSt3の際に、ホスト2は、デバイス1に対して、Query Requestを発行し、初期化開始を指示する。この際、ホストは、UPIUを通じて、フラグ値としてbDeviceInit='1'を設定する。
Query Requestを受信したデバイス1は、デバイス1の初期化を開始する。
続いて、ステップSt3.1の際に、デバイスの初期化が完了すると、デバイス1は、ホスト2に対して、Query Responseを返信し、初期化が完了できる状態であることを示す。
このように、第1の実施形態では、デバイス1の初期化が完了したら、デバイス1がQuery Responseを返信し、ホスト2がデバイス1に対してQuery Request を発行してUPIUを通じてデバイス1の初期化が終了したかどうかを問い合わせることを行わない。そのため、参考例のように、ホストが、デバイスの初期化が完了したかどうかをポーリングして待つ(フラグ値としてのbDeviceInit='1'のポーリング)必要がない。そのため、このポーリングをしている間、ホスト2は、デバイス1の監視のためにリソースを割り当てる必要がない。
換言すると、第1の実施形態は、ホスト2の側は、デバイス1の初期化が完了するまで、ポーリングをするシステムである。しかしながら、ホスト2は、初期化が完了するまでデバイス1がQuery Responseを返信しないため、ホスト2がデバイス1に対して初期化終了を問い合わせることがない。そのため、ホスト2は、デバイス1が初期化完了後に発行するQuery Responseの返信まで、何度もポーリングをする必要がなく、1度の確認のみで済む点で、メリットがある。
また、Query Responseの返信があってから、ホスト2が1度目に問い合わせしたときには、すでに初期化完了が確定しているため、確実に1回の問い合わせで済む点で有利である。加えて、実装を知らない汎用ホストに対しても互換性を損なわない点でも有利である。
続いて、ステップSt4の際に、ホスト2は、デバイス1に対してフラグ値(FLAG bDeviceInit='0')を得るためのQuery Request を発行する。
これに対して、ステップSt4.1の際に、デバイス1は、ホスト2に対して、Query Responseを返信し、フラグ値(bDeviceInit='0')を返信する。この際においても、送信されるフラグ値(bDeviceInit='0')は、パケット101中のLUN102と共に実態部103に含められる。この際、送信されるフラグ値(bDeviceInit='0')は、デバイス1の全体の初期化のために全てのLUN102に一括して送信される。
Query Responseを受信したホスト2は、フラグ値(bDeviceInit='0')により、デバイス1の初期化が完了したことを検出できる。
<作用効果>
第1の実施形態によれば、少なくとも下記(1)の効果が得られる。
(1)ポーリング中の負担を軽減できる。
このように、第1の実施形態では、デバイス1の初期化が完了するまでQuery Responseを返信せず、デバイス1の初期化が完了したらデバイス1がQuery Responseを返信する。そのため、ホスト2は、デバイス1がQuery Responseを返信するまで、デバイス1に対してQuery Request を発行してUPIUを通じてデバイス1の初期化が終了したかどうかを問い合わせることを行わない。
そのため、参考例のように、ホスト2が、デバイスの初期化が完了したかどうかをポーリングして待つ(フラグ値としてのbDeviceInit='1'のポーリング)必要がない。そのため、このポーリングをしている間、ホスト2は、デバイス1の監視のためにリソースを割り当てる必要がない。これにより、ホスト2は、自身の処理に専念することができ、起動時間の短縮につながる。また、ポーリングの機能を削除することができるので、そのための機能を削減(コード量減、消費電力源など)することができる。
より具体的には、第1の実施形態では、ホスト2は、初期化要求のQuery Requestを送信して、そのQuery Responseを受信したら、初期化完了終了確認のためのQuery Requestを1回発行するだけで、デバイス1の初期化が終了したかどうかを認識することができる。
よって、ホスト2は、ポーリングのためのQuery Requestを1回発行するだけで、デバイス1の初期化終了を知ることができる。これにより、デバイス1は、初期化中にホストからのコマンド処理をせずに済むため、初期化中にホスト2のコマンドを処理するための機能(例えば、コード量、消費電力源等)を削減することができる。
このように、第1の実施形態によれば、Boot動作において、メモリ・デバイス1およびホスト・デバイス2のいずれのポーリング中の負担を軽減することができる点で有利である。
また、Query Responseの返信があってから、ホスト2が1度目に問い合わせしたときには、すでに初期化完了が確定しているため、確実に1回の問い合わせで済む点で有利である。
加えて、実装を知らない汎用ホストに対しても互換性を損なわない点でも有利である。
[第2の実施形態]
次に、第2の実施形態について、図10を用いて説明する。第2の実施形態は、ホスト2が、デバイス1が初期化を完了した後に初めてQuery Responseを返すことを認識する場合に関するものである。この説明において、上記第1の実施形態と重複する部分の詳細な説明を省略する。
<ブート動作について>
図10を参照して、第2の実施形態に係るBoot動作について説明する。
図示するように、第2の実施形態では、まず、ステップSt1の際に、ホスト2は、デバイスに対して、Query Request UPIUを発行し、デバイスから起動のための情報(Descriptor)を要求する。
続いて、ステップSt1.1の際に、デバイス1は、情報(Descriptor)を読み出し(READ DESCRIPTOR)、読み出したDescriptorを、UPIUを通じて、ホスト2に送信する。この際、送信される情報(Descriptor)は、パケット101中のLUN102と共に実態部103に含められる。
続いて、ホスト2は、受信したデバイス1からのデバイス情報(Device Descriptor)中のフラグ有無を読み出すことで、ポーリング動作が不要であると判断する点で、上記第1の実施形態と相違する。そのため、第1の実施形態の上記ステップSt4およびSt4.1をさらに省略できる。
その他の構成、動作等に関しては、上記第1の実施形態と実質的に同様であるため、詳細な説明を省略する。
<作用効果>
上記のように、第2の実施形態によれば、少なくとも上記(1)と同様の効果が得られる。
さらに、第2の実施形態では、ステップSt1の際に要求した受信したデバイス1からの情報(Device Descriptor)中のフラグ有無を読み出すことで、ポーリング動作が不要であると判断する点で、上記第1の実施形態と相違する。
そのため、第1の実施形態の上記ステップSt4およびSt4.1をさらに省略でき、さらにブート動作におけるメモリ・デバイス1およびホスト・デバイス2の負担を低減できる点で有利である。
このように、必要に応じて、本例を適用することが可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…メモリ・デバイス、2…ホスト・デバイス、11…メモリ、12…メモリ・コントローラ。

Claims (6)

  1. 複数のメモリセルを備える不揮発性のメモリと、
    前記不揮発性のメモリを制御するコントローラとを具備し、
    前記コントローラは、
    ホスト・デバイスから、ブート動作のための情報を要求された際、アドレス、及びフラグ値を含む返信パケットを前記ホスト・デバイスに返信し、
    前記ブート動作の際に、初期化が要求されると、前記初期化の終了まで前記初期化の要求に対する返信を返さず、初期化が終了したら前記初期化の要求に対する返信を行い、
    前記ホスト・デバイスからの論理アドレスを割り当てられた書き込みデータを前記不揮発性のメモリに書き込む要求に対して前記書き込みデータの分割された部分である書き込みデータ部分をそのサイズを指定して送信することを前記ホスト・デバイスに要求し、
    前記フラグ値は、初期化が終了したら前記初期化の要求に対する返信を行うことを示

    メモリ・デバイス。
  2. 前記フラグ値は、前記メモリ・デバイスが有する前記不揮発性メモリの全てのアドレスに一括して送信される
    請求項1に記載のメモリ・デバイス。
  3. 前記メモリ・デバイスは、UFS(Universal Flash Storage)に基づいたメモリ・デバイスである
    請求項1または2に記載のメモリ・デバイス。
  4. モリ・デバイスに、ブート動作のための情報を要求し、
    前記メモリ・デバイスから前記ブート動作のための情報の要求に対する、アドレスと、初期化が終了したら前記初期化の要求に対する返信を行うことを示すフラグ値とを含む返信パケットを受信し、
    前記フラグ値の有無を読み出すことで、ポーリング動作が不要であるか否かを判断し、
    ポーリング動作が不要であると判断する場合、前記メモリ・デバイスに対して、前記メモリ・デバイスの初期化が終了したかどうかの問い合わせを行わず、
    前記ブート動作の際に、前記メモリ・デバイスに要求したデバイス情報を読み出すことで、前記メモリ・デバイスの初期化を要求したとき、前記メモリ・デバイスからの前記初期化の要求に対する返信を受信した段階で、前記メモリ・デバイスの初期化が完了したと判断し、
    論理アドレスを割り当てた書き込みデータを書き込むことを前記メモリ・デバイスへ要求し、前記書き込みデータの分割された部分である書き込みデータ部分をそのサイズを指定して送信することを前記メモリ・デバイスから要求させるホスト・デバイス。
  5. 前記フラグ値は、前記メモリ・デバイスが有する不揮発性メモリの全てのアドレスに一括して送信される
    請求項4に記載のホスト・デバイス。
  6. 前記メモリ・デバイスはUFS(Universal Flash Storage)に基づいたメモリ・デバイスである
    請求項4または5に記載のホスト・デバイス。
JP2011205193A 2011-09-20 2011-09-20 メモリ・デバイス、ホスト・デバイス Expired - Fee Related JP5694101B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011205193A JP5694101B2 (ja) 2011-09-20 2011-09-20 メモリ・デバイス、ホスト・デバイス
US13/426,872 US8799605B2 (en) 2011-09-20 2012-03-22 Initializing and writing to a nonvolatile storage device based on a client/server model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011205193A JP5694101B2 (ja) 2011-09-20 2011-09-20 メモリ・デバイス、ホスト・デバイス

Publications (2)

Publication Number Publication Date
JP2013068992A JP2013068992A (ja) 2013-04-18
JP5694101B2 true JP5694101B2 (ja) 2015-04-01

Family

ID=47881773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011205193A Expired - Fee Related JP5694101B2 (ja) 2011-09-20 2011-09-20 メモリ・デバイス、ホスト・デバイス

Country Status (2)

Country Link
US (1) US8799605B2 (ja)
JP (1) JP5694101B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9122537B2 (en) * 2009-10-30 2015-09-01 Cisco Technology, Inc. Balancing server load according to availability of physical resources based on the detection of out-of-sequence packets
JP5547154B2 (ja) * 2011-09-21 2014-07-09 株式会社東芝 メモリ・デバイス
US9697147B2 (en) 2012-08-06 2017-07-04 Advanced Micro Devices, Inc. Stacked memory device with metadata management
US9065722B2 (en) 2012-12-23 2015-06-23 Advanced Micro Devices, Inc. Die-stacked device with partitioned multi-hop network
US9286948B2 (en) * 2013-07-15 2016-03-15 Advanced Micro Devices, Inc. Query operations for stacked-die memory device
US9575887B2 (en) 2013-09-06 2017-02-21 Kabushiki Kaisha Toshiba Memory device, information-processing device and information-processing method
KR102156222B1 (ko) * 2013-12-24 2020-09-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것을 포함하는 데이터 처리 시스템
KR20150112075A (ko) * 2014-03-26 2015-10-07 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10067688B2 (en) 2015-01-23 2018-09-04 Qualcomm Incorporated Storage resource management in virtualized environments
US10310580B2 (en) 2015-10-09 2019-06-04 Sandisk Technologies Llc Voltage level detection and analog circuit arrangements for memory systems
KR102498223B1 (ko) 2015-10-13 2023-02-09 삼성전자주식회사 Ufs 장치의 작동 방법, ufs 호스트의 작동 방법, 및 이들을 포함하는 시스템의 작동 방법
US11727997B2 (en) 2017-07-07 2023-08-15 Micron Technology, Inc. RPMB improvements to managed NAND

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7507119B2 (en) * 2000-01-06 2009-03-24 Super Talent Electronics, Inc. USB device with integrated USB plug with USB-substrate supporter inside
JP2001109582A (ja) * 1999-10-06 2001-04-20 Sony Corp 転送方法及び装置、記録方法及び装置、再生方法及び装置、記録媒体
JP4178809B2 (ja) * 2002-02-21 2008-11-12 ソニー株式会社 外部接続機器及びホスト機器
JP2004064665A (ja) * 2002-07-31 2004-02-26 Canon Inc データ転送装置及び送信装置及び受信装置及びそれらの制御方法
JPWO2005045680A1 (ja) * 2003-11-07 2007-11-29 松下電器産業株式会社 情報記録媒体及びその制御方法
US7427027B2 (en) 2004-07-28 2008-09-23 Sandisk Corporation Optimized non-volatile storage systems
US20090307427A1 (en) 2006-03-31 2009-12-10 Hitachi Ulsi Systems Co., Ltd. Memory card and method of writing data
EP2045762B1 (en) * 2006-07-26 2011-11-02 Panasonic Corporation Nonvolatile storage device, access device, and nonvolatile storage system
US20100122017A1 (en) * 2007-03-28 2010-05-13 Masayuki Toyama Memory controller, non-volatile memory system, and host device
KR101573722B1 (ko) * 2009-04-20 2015-12-03 삼성전자주식회사 비휘발성 메모리 장치 및 컨트롤러를 포함하는 메모리 시스템
US9123409B2 (en) * 2009-06-11 2015-09-01 Micron Technology, Inc. Memory device for a hierarchical memory architecture
US7984166B2 (en) * 2009-09-02 2011-07-19 Honeywell International Inc. Trivial file transfer protocol (TFTP) file segment and file address options
JP2011192240A (ja) * 2010-03-17 2011-09-29 Sony Corp 記憶装置および記憶システム

Also Published As

Publication number Publication date
US20130073839A1 (en) 2013-03-21
US8799605B2 (en) 2014-08-05
JP2013068992A (ja) 2013-04-18

Similar Documents

Publication Publication Date Title
JP5694101B2 (ja) メモリ・デバイス、ホスト・デバイス
JP5547154B2 (ja) メモリ・デバイス
JP5677336B2 (ja) メモリ・デバイス
JP5481453B2 (ja) メモリデバイス
JP5547148B2 (ja) メモリデバイス
TWI494757B (zh) Memory device
US20030028733A1 (en) Memory apparatus
KR102532084B1 (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
JP2006092019A (ja) コントローラ、メモリカード及びその制御方法
TW201945928A (zh) 控制儲存裝置之方法
KR20160049200A (ko) 데이터 저장 장치의 작동 방법, 이를 포함하는 모바일 컴퓨팅 장치, 및 이의 작동 방법
KR102527265B1 (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US20190266096A1 (en) Data storage device, method of operating the same, and storage system having the same
JP2007272635A (ja) メモリシステム及びコントローラ
KR20210112548A (ko) 메모리 시스템 내 맵 정보를 제어하는 장치 및 방법
WO2019090493A1 (zh) 内存块回收方法和装置
KR20200060758A (ko) 메모리 어드레싱 방법 및 관련 컨트롤러, 메모리 장치 및 호스트
CN111258918A (zh) 数据存储装置及其操作方法、存储系统
KR102444606B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20200029085A (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
CN103186470B (zh) 存储器储存装置及其存储器控制器与数据写入方法
KR20210060867A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20210063724A (ko) 메모리 시스템
CN113918081B (zh) 计算机可读取存储介质、配置可靠命令的方法及装置
US10606509B2 (en) Data storage device managing write tag, writing operation method thereof, and storage system including the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130904

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

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141027

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150204

LAPS Cancellation because of no payment of annual fees