JP2012063875A - データ記憶装置、コマンド制御装置及び電子機器 - Google Patents
データ記憶装置、コマンド制御装置及び電子機器 Download PDFInfo
- Publication number
- JP2012063875A JP2012063875A JP2010206005A JP2010206005A JP2012063875A JP 2012063875 A JP2012063875 A JP 2012063875A JP 2010206005 A JP2010206005 A JP 2010206005A JP 2010206005 A JP2010206005 A JP 2010206005A JP 2012063875 A JP2012063875 A JP 2012063875A
- Authority
- JP
- Japan
- Prior art keywords
- command
- lba
- data
- frame decoder
- storage 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
Links
Images
Abstract
【課題】LBA重複確認処理の完了までの時間を短縮化するデータ記憶装置を提供することにある。
【解決手段】実施形態によれば、データ記憶装置は、フラッシュメモリと、フレームデコーダと、重複確認モジュールと、コントローラとを有する。フレームデコーダは、ホストから伝送されるフレームデータからコマンド及び論理アドレスを抽出する。重複確認モジュールは、前記フレームデコーダから抽出された論理アドレスと、実行中又は実行待機中の全コマンドに伴う論理アドレスとの重複確認を並列に実行する。コントローラは、前記重複確認結果に基づいて前記フレームデコーダから抽出されたコマンドの発行を制御する。
【選択図】図1
【解決手段】実施形態によれば、データ記憶装置は、フラッシュメモリと、フレームデコーダと、重複確認モジュールと、コントローラとを有する。フレームデコーダは、ホストから伝送されるフレームデータからコマンド及び論理アドレスを抽出する。重複確認モジュールは、前記フレームデコーダから抽出された論理アドレスと、実行中又は実行待機中の全コマンドに伴う論理アドレスとの重複確認を並列に実行する。コントローラは、前記重複確認結果に基づいて前記フレームデコーダから抽出されたコマンドの発行を制御する。
【選択図】図1
Description
本発明の実施形態は、不揮発性メモリを記憶媒体とするデータ記憶装置、コマンド制御装置及び電子機器に関する。
近年、データ記憶装置として、書き換え可能な不揮発性メモリであるNAND型フラッシュメモリ(以下、単にフラッシュメモリと表記する場合がある)を記憶媒体とするSSD(solid state drive)の開発が推進されている。
SSDは、ハードディスクドライブ(HDD)と比較して、ホストからのコマンド受信からメモリアクセス(フラッシュメモリに対するリード/ライト)までの処理の時間(以下、メモリアクセスレイテンシ:memory access latencyと表記する場合がある)が短時間である(処理速度が速い)。
ところで、SSDではHDDと同様に、ホストからデータ転送を伴うコマンド(以下、データコマンドと表記する場合がある)を受信してからメモリアクセスまでの処理の中に、論理アドレス(以下、LBA:logical block addressと表記する場合がある)の重複確認処理(LBA重複確認処理)が行なわれている。データコマンドとは、データ(ユーザデータ)の転送を伴うコマンドである。
LBA重複確認処理は、複数のデータコマンド間で同一のLBAが存在するか否かを確認する処理である。SSDは、ホストからデータコマンドを受信すると、当該データコマンドをメモリコントローラに発行する前に、LBA重複確認処理を実行する。これにより、先行してメモリアクセス中のデータコマンドの中に、重複するLBAが無いことをチェックすることで、データコマンドの発行が可能となる。即ち、SSDは、LBA重複確認処理後に、データコマンドをメモリコントローラに発行するコマンド発行準備に入る。
メモリアクセスレイテンシが短いSSDでは、データコマンドを受信してからシーケンシャルにLBA重複確認処理が実行されると、メモリアクセスレイテンシの時間内に一連のコマンド発行準備が完了せず、メモリアクセスが可能であるにも関わらずに、データコマンドの発行が待たされるという性能的なボトルネックが発生する。
そこで、本発明の目的は、LBA重複確認処理の完了までの時間を短縮化するデータ記憶装置、コマンド制御装置及び電子機器を提供することにある。
実施形態によれば、データ記憶装置は、記憶手段と、フレームデコーダ手段と、重複確認手段と、制御手段とを有する。フレームデコーダ手段は、ホストから伝送されるフレームデータからコマンド及び論理アドレスを抽出する。重複確認手段は、前記フレームデコーダ手段から抽出された論理アドレスと、実行中又は実行待機中の全コマンドに伴う論理アドレスとの重複確認を並列に実行する。制御手段は、前記重複確認結果に基づいて前記フレームデコーダ手段から抽出されたコマンドの発行を制御する。
以下図面を参照して、実施形態を説明する。
[SSDの構成]
図1は、SSD1の要部を説明するためのブロック図である。図1に示すように、SSD1は、記録媒体であるNAND型フラッシュメモリ(フラッシュメモリ)10と、メモリコントローラ11と、バッファコントローラ12と、バッファメモリ13と、ホストインターフェースコントローラ(以下、ホストI/Fコントローラ)14とを有する。
図1は、SSD1の要部を説明するためのブロック図である。図1に示すように、SSD1は、記録媒体であるNAND型フラッシュメモリ(フラッシュメモリ)10と、メモリコントローラ11と、バッファコントローラ12と、バッファメモリ13と、ホストインターフェースコントローラ(以下、ホストI/Fコントローラ)14とを有する。
ホストI/Fコントローラ14は、例えばシリアルSCSI規格(SAS)やシリアルATA規格(SATA)などのインターフェース規格に準拠し、ホストシステム20とのインターフェースを制御する。ホストI/Fコントローラ14は、ホストシステム20から伝送されるフレームデータ(コマンドまたはデータを含むパケット)を受信し、後述するように、コマンド発行処理までの一連の処理を実行する。
ここで、ホストシステム20は、例えばパーソナルコンピュータやデジタルテレビ機器などの電子機器である。ホストシステム20は、図2に示すように、例えば本体内に本実施形態のSSD1及びマイクロプロセッサ(CPU)21を内蔵し、データや映像を表示するディスプレイ22を有する。
バッファコントローラ12は、ホストI/Fコントローラ14またはメモリコントローラ11からのアクセス要求に応じて、バッファメモリ13をアクセスする。バッファコントローラ12は、ホストI/Fコントローラ14からデータを含むフレームデータをバッファメモリ13に格納する。バッファメモリ13は、例えばDDR(double data rate)型DRAM(dynamic random access memory)から構成されている。
メモリコントローラ11は、ホストI/Fコントローラ14から発行されるコマンドに応じて、フラッシュメモリ10のリード/ライトアクセスを制御する。メモリコントローラ11は、ホストI/Fコントローラ14からのコマンドを一時的に保持するレジスタを有する。
[ホストI/Fコントローラの構成]
図3は、本実施形態のホストI/Fコントローラ14の構成を説明するためのブロック図である。
図3は、本実施形態のホストI/Fコントローラ14の構成を説明するためのブロック図である。
図3に示すように、ホストI/Fコントローラ14は、インターフェース(I/F)31と、データバッファ32と、フレームデコーダ33と、コマンドテーブル34を含むコマンド発行制御モジュールと、LBA重複検索モジュール35とを有する。インターフェース31は、インターフェース規格に準拠した信号ケーブル30を介してホストシステム20と接続し、ホストシステム20から伝送される複数のフレームデータを受信する。インターフェース31は、受信したシリアル形式フォーマットから受信データ形式に変換した受信データ300を、データバッファ32に格納する。
データバッファ32は複数の受信データ300を保持し、この受信データ300から1パケット単位のフレームデータ301をフレームデコーダ33に送付する。フレームデータ301は、例えばシリアルSCSI規格(SAS)に準拠していれば、図11に示すようなフォーマットからなる。フレームデコーダ33は、フレームデータ301のInformation Unit部を解析することで、フレームデータ301がデータを含むコマンド(データコマンド)またはデータを含まないコマンドであるかを認識し、かつコマンドに付加されるLBAを認識する。ここで、データコマンドとはデータの転送を伴うコマンドである。また、データとはフラッシュメモリ10に記録するためのユーザデータである。
フレームデコーダ33は、データ送受信を伴うフラッシュメモリへのライトのコマンド(データコマンド)の場合には、当該データ(ユーザデータ)302をバッファコントローラ12に送信する。バッファコントローラ12は、当該データ302をバッファメモリ13に格納する。一方、フレームデコーダ33は、フレームデータ301からコマンドに付加されたLBAを認識すると、当該LBA306をLBA重複検索モジュール35に転送する。また同時に、フレームデコーダ33は、コマンド304をコマンドテーブル34に転送する。
LBA重複検索モジュール35は、LBA306を含むエントリ情報308のエントリ(登録)により、LBA重複確認処理であるLBA重複検索動作を実行する。本実施形態では、コマンド発行制御モジュールは、LBA重複検索モジュール35の検索結果(重複確認結果)に基づいて、コマンドテーブル34からメモリコントローラ11に対するコマンド発行(310)を制御する。
[ホストI/Fコントローラの動作]
さらに図3と共に、図4、図5及び図13のフローチャートを参照して、ホストI/Fコントローラ14の動作を説明する。
さらに図3と共に、図4、図5及び図13のフローチャートを参照して、ホストI/Fコントローラ14の動作を説明する。
まず、ホストI/Fコントローラ14は、ホストシステム20から伝送される複数のフレームデータを受信し、データバッファ32に格納する(ブロック200)。フレームデコーダ33は、前述したように、フレームデータ301のInformation Unit部を解析することで、フレームデータ301がデータを含むコマンド(データコマンド)またはデータを含まないコマンドであるかを認識する(ブロック201)。フレームデコーダ33は、ライトのデータコマンドの場合には、当該データ302をバッファコントローラ12を経由して、バッファメモリ13に格納する(ブロッ202)。
一方、フレームデコーダ33は、コマンド304をコマンドテーブル34に登録する(ブロック201のYES)。即ち、フレームデコーダ33は、コマンド304及び後述するコマンドインデックス(CmdIndex:Command Index)305を含むコマンドエントリ情報303をコマンドテーブル34に転送してコマンドをエントリ(登録)する。
同時に、フレームデコーダ33は、フレームデータ301からコマンドに付加されたLBAを認識すると、当該LBA306を含むLBAエントリ情報308をLBA重複検索モジュール35にエントリ(登録)する(ブロック203)。LBAエントリ情報308は、コマンド処理対象であるLBA306の先頭LBA(Start LBA:SLBA)、最終LBA(End LBA:ELBA)、及びコマンドインデックス(CmdIndex)305を含む。ここで、コマンドインデックス(CmdIndex)305は、コマンドテーブル34のコマンド格納位置を示すインデックス(アドレス)である。
LBA重複検索モジュール35は、フレームデコーダ33からのLBAエントリにより、LBA重複確認処理であるLBA重複検索処理を開始する(ブロック204)。以下、図4及び図5を参照して、LBA重複検索処理を説明する。
図4に示すように、LBA重複検索モジュール35は、レジスタ40と、LBAテーブル41と、周辺ロジック42とを有する。レジスタ40は、フレームデコーダ33から転送されるLBAエントリ情報308を保持する。LBAエントリ情報308の中で、マスク情報CmpMskは、LBAの比較時に下位ビットをマスクし、比較サイズを制御するための情報である。
LBAテーブル41は、フレームデコーダ33によりエントリされて、実行中または実行待機中の全てのLBAエントリ情報を格納している。図6は、LBAテーブル41のエントリ構造を示す図である。図6に示すように、LBAテーブル41は、1エントリとして、コマンド単位で、フラグ情報(Valid)60、マスク情報(CmpMsk)61、先頭LBA(Start LBA:SLBA)62、最終LBA(End LBA:ELBA)63、及びコマンドテーブルインデックス(Cmd Table Index)64を含む。フラグ情報(Valid)60は、LBAエントリが有効であることを示し、コマンドが受理されて実行終了していない状態を示す情報である。先頭LBA62と最終LBA63とにより、コマンドが実行するLBAのサイズが設定される。マスク情報(CmpMsk)61は、マスク情報CmpMskに対応するものであり、先頭LBA62と最終LBA63の範囲内でどの部分を比較するかを示す情報である。コマンドテーブルインデックス(Cmd Table Index)64は、コマンドインデックス(CmdIndex)305に対応するものであり、コマンドテーブル34のコマンド格納位置を示す情報である。
周辺ロジック42は、LBAテーブル41によるLBA重複検索ロジックを構成し、アンドゲート(AND)420、コンパレータ421、エンコーダ422、及びセレクタ423を含む。周辺ロジック42は、図7に示すように、LBAテーブル41のフラグ情報(Valid)60のクリアを制御するためのロジック70を含む。このロジック70は、コマンド実行完了時に、メモリコントローラ11から転送されるメモリアクセス終了通知情報314に含まれるコマンド終了(command finish)信号315及びコマンドインデックス(CmdIndex)316によりLBAテーブル41のフラグ情報(Valid)60をクリアする。
LBA重複検索モジュール35は、図5(A)〜(E)に示すタイミングでLBA重複検索処理を実行する。即ち、図5(B),(C)に示すように、フレームデコーダ33からのエントリにより、今回エントリされた被検索LBA(LBAエントリ情報308)がレジスタ40にセットされる。LBA重複検索処理は、図5(A)に示すように、そのエントリの次のサイクルで開始する。
LBA重複検索処理では、今回エントリされた被検索LBAと、LBAテーブル41に登録されている全LBAとが並列に比較される。即ち、図5(D)に示す検索期間は、今回エントリされた被検索LBAとLBAテーブル41の全LBAとを並列に比較する時間である。即ち、LBA重複検索モジュール35は、フレームデコーダ33からのエントリに応じて、LBAテーブル41の全LBA分の検索を並列かつ同時に実行する。
LBA重複検索ロジック回路42は、図5(E)に示すように、LBA重複検索結果として、ヒットするLBAがある場合に、ヒット信号(HIT信号)312と、コマンドインデックス(CmdIndex)313を出力する。コマンドインデックス(CmdIndex)313は、コマンドテーブル34内の格納場所を示す情報である。
図3に示すように、LBA重複検索モジュール35は、ヒットするLBAがある場合、即ち実行中または実行待機中のコマンドのLBAと重複する場合に、HIT信号312とコマンドインデックス(CmdIndex)313をコマンドテーブル34に出力する。つまり図13に示すように、ホストI/Fコントローラ14は、LBA重複検索モジュール35からの出力に応じて、コマンドテーブル34にエントリされているコマンドを、メモリコントローラ11に対して発行するか否かを制御するコマンド発行制御を実行する(ブロック205)。
以下、図8、図9、及び図10のフローチャートを参照して、ホストI/Fコントローラ14のコマンド発行制御について説明する。
コマンドテーブル34は、図8に示すように、コマンドの実行を管理するためのコマンド実行管理テーブルを有する。コマンド実行管理テーブルは、ファームウェアリード(FW Read)フラグ情報80、コマンド実行(command execute)フラグ情報81、LBA重複(LBA dependency)フラグ情報82、先行コマンドテーブルインデックス値(Depend command table index)83、及びコマンドテーブルインデックス(command table index)84を有する。
ファームウェアReadフラグ情報80は、図示しないファームウェア(firmware)が使用するもので、ファームウェアによりリードされたことを示すフラグである。コマンド実行フラグ情報81は、当該コマンドが実行中であることを示すフラグである。LBA重複フラグ情報82は、LBA重複が発生していることを示すフラグである。先行コマンドテーブルインデックス83は、重複した先行コマンドが格納されているテーブルインデックスを示す情報である。コマンドテーブルインデックス84は、エントリされた当該コマンドのコマンドテーブル内の格納位置を示す情報である。
コマンドテーブル34では、LBA重複検索モジュール35からのHIT信号312とコマンドインデックス(CmdIndex)313により、コマンド実行管理テーブルのLBA重複フラグ情報82及び先行コマンドテーブルインデックス83がそれぞれセットされる。即ち、コマンド実行管理テーブルにおいて、LBA重複フラグ情報82がセットされた当該コマンド(今回エントリされたコマンド)は、LBAが先行コマンドのLBAと重複しているため、メモリコントローラ11に対して発行が制御される(図10を参照)。
ここで、コマンド実行管理テーブルは、コマンド実行完了時に、当該エントリがクリアされる構造のスコアボードである。コマンド発行制御モジュールは、コマンドテーブル34を使用して、メモリコントローラ11との通信によりコマンドの実行状況を監視している。コマンドテーブル34(コマンド発行制御モジュール)は、コマンド処理が完了すると、メモリコントローラ11から転送されるメモリアクセス終了通知情報314に含まれるコマンド終了信号315及びコマンドインデックス(CmdIndex)316を受信し、コマンド実行管理テーブルのLBA重複フラグ情報82をクリアする。図9は、メモリコントローラ11からのコマンド終了信号315及びコマンドインデックス(CmdIndex)316により、LBA重複フラグ情報(LBA Dep)82をクリアするための周辺ロジック90である。
ここで、コマンド処理が完了すると、LBA重複検索モジュール35も、メモリコントローラ11からメモリアクセス終了通知情報314に含まれるコマンド終了信号315及びコマンドインデックス316を受信する。LBA重複検索モジュール35は、当該コマンド終了信号315及びコマンドインデックス316により、LBAテーブル41内の該当するエントリのLBAをクリアする(図7を参照)。
次に、図10のフローチャートを参照して、メモリコントローラ11に対するコマンド発行処理の制御方法を説明する。
前述したように、ホストI/Fコントローラ14は、LBA重複検索モジュール35により、ホストシステム20から受信したコマンドのLBAが先行コマンドのLBAと重複している場合に、メモリコントローラ11に対してコマンド発行制御を実行する。ここで、便宜的に当該コマンドを後発コマンドと表記し、先行コマンドと後発コマンドの種類に基づいて、コマンド発行制御の内容が異なる。
まず、先行コマンドがリードコマンドで、後発コマンドもリードコマンドの場合を想定する(ブロック100のYES,101のYES)。この場合には、ホストI/Fコントローラ14は、発行制御を実行しない(ブロック102)。即ち、ホストI/Fコントローラ14は、LBAが重複した実行中の先行リードコマンドが実行完了するまで、メモリコントローラ11に対して後発リードコマンドは発行しない。この場合、先行リードコマンドが完了した時に、後発リードコマンドも完了とみなす。従って、先行リードコマンドで得られたデータ(フラッシュメモリ10から読み出されたユーザデータ)をホストシステム20に伝送すると共に、後発リードコマンド用のデータとして使用する。
次に、先行コマンドがリードコマンドで、後発コマンドがライトコマンドの場合を想定する(ブロック100のYES,101のNO)。この場合には、ホストI/Fコントローラ14は、先行リードコマンドが完了するまで、メモリコントローラ11に対して後発ライトコマンドを発行しない(ブロック103)。従って、先行リードコマンドが完了した時に、後発ライトコマンドを発行するため、重複したLBAのデータは書き換えられる。
一方、先行コマンドがライトコマンドで、後発コマンドもライトコマンドの場合を想定する(ブロック100のNO,104のYES)。この場合には、ホストI/Fコントローラ14は、発行制御を実行しない(ブロック105)。即ち、ホストI/Fコントローラ14は、LBAが重複した実行中の先行ライトコマンドが実行完了するまで、メモリコントローラ11に対して後発ライトコマンドは発行しない。または、書込みデータサイズが同じ場合、先行するライトコマンドの書込みを途中で停止した後に、後発ライトコマンドを発行してもよい。
また、先行コマンドがライトコマンドで、後発コマンドがリードコマンドの場合を想定する(ブロック100のNO,104のNO)。この場合には、ホストI/Fコントローラ14は、先行ライトコマンドが完了するまで、メモリコントローラ11に対して後発リードコマンドを発行しない(ブロック106)。なお、先行ライトコマンドが完了した後に、後発リードコマンドは完了したとみなし、先行ライトコマンドで使用されたデータを後発リードコマンドにより読み出されたデータとして使用してもよい。但し、先行ライトコマンドで使用された書き込みデータのサイズと、後発リードコマンドにより読み出されるデータのサイズが同一の場合に限る。
以上のようなホストI/Fコントローラ14の作用効果を、図12(A),(B)を参照して具体的に説明する。ここでは、ホストシステム20からのフレームデータを受信してから、リードコマンドをメモリコントローラ11に発行するまでの一連の処理を想定する。
図12(A)は、従来のSSDにおけるホストI/Fコントローラの一連の処理を時系列的に示すものである。一連の処理は、フレームデータをデータバッファから読み出す処理500、フレームデータのInformation Unit部を解析する処理501、リードコマンド及びLBAを抽出する処理502、LBA重複検索処理503、及びLBA重複がない場合のコマンド発行処理504からなる。
この一連の処理を複数回を繰り返すことにより、リードデータ510,511を取得して、ホストシステム20に伝送することになる。ここで、リードコマンドの発行処理504からリードデータ510を読み出すまでに、一定の待ち時間(コマンドデータレイテンシ)CRが発生する。さらに、従来のSSDにおけるホストI/Fコントローラでは、先行のコマンドによりリードデータ510が読み出された後、次のコマンド発行処理504の実行が可能であるが、実際には待ち時間Tが発生する。この待ち時間Tは、ファームウェア(firmware)によるLBA重複確認処理に要する時間である。即ち、従来のSSDにおけるホストI/Fコントローラでは、先行のデータリードが完了しても、次のリードコマンド発行処理準備が完了するまでの待ち時間Tが発生し、結果としてコマンド実行性能が低下する。
これに対して、本実施形態のホストI/Fコントローラ14では、図12(B)に示すように、ファームウェア(firmware)の介在による次のリードコマンド発行処理準備が完了するまでの待ち時間Tは発生しない。これは、本実施形態のホストI/Fコントローラ14は、LBA重複検索モジュール35により、ファームウェア(firmware)が介在せず、LBAテーブル41の全LBAに対する並列同時のLBA重複検索処理を実行するためである。なお、本実施形態の一連の処理には、リードデータ510,511,512の読み出しが完了するまで、次のリードデータの読み出しまでの待機する処理505が含まれる。このため、短時間であるが、一定の待ち時間(コマンドデータレイテンシ)CRが発生する。
以下は、従来のSSDにおけるホストI/Fコントローラの性能を示す参考例である。
LBA重複検索動作回路は、200MHz(1T=5ns)で動作し、LBAテーブルエントリ数が200で、検索クロックが最大で200T(1000ns)である。ファームウェア(firmware)は、コマンドテーブルを5T(25ns)でリードし、100T(500ns)でLBAを解析し、LBA重複被検索レジスタに5T(25ns)で登録する。さらに、ファームウェア(firmware)は、5T(25ns)でLBA重複検索の開始を指示する。従って、合計で1575nsの処理時間が必要となる。
一般的に、SSDの性能規格として、IOPS(1秒間に実行されるIOコマンド数)という表記があるが、100,000 IOPS(100K IOPS)は1usに1つのコマンドを実行する必要がある。従って、従来のSSDではメモリコントローラへのコマンド発行準備に消費している時間が1usを超えてしまうため、ボトルネックになることは明白である。これに対して、本実施形態のホストI/Fコントローラ14であれば、LBA重複検索処理に要する時間を、約10cycle/266MHz(40ns以内)程度にすることが可能である。
以上のように本実施形態のホストI/Fコントローラ14によれば、LBA重複検索モジュール35により並列同時のLBA重複検索処理を実行することにより、LBA重複確認処理の高速化を実現することができる。従って、コマンドメモリアクセスレイテンシの期間内にコマンド発行処理を可能とすることができる。換言すれば、メモリコントローラ11へのコマンド発行間隔を短縮化することが可能となり、SSDのコマンド実行性能を向上させることができる。
なお、本実施形態はSSDに適用する場合について説明したが、例えばハードディスクドライブなどのデータ記憶装置のホストI/Fコントローラにも適用可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…SSD、10…NAND型フラッシュメモリ(フラッシュメモリ)、
11…メモリコントローラ、12…バッファコントローラ、
13…バッファメモリ、14…ホストインターフェースコントローラ、
20…ホストシステム、31…インターフェース(I/F)、32…データバッファ、
33…フレームデコーダ、34…コマンドテーブル(コマンド発行制御モジュール)、
35…LBA重複検索モジュール、40…レジスタ、41…LBAテーブル、
42…周辺ロジック。
11…メモリコントローラ、12…バッファコントローラ、
13…バッファメモリ、14…ホストインターフェースコントローラ、
20…ホストシステム、31…インターフェース(I/F)、32…データバッファ、
33…フレームデコーダ、34…コマンドテーブル(コマンド発行制御モジュール)、
35…LBA重複検索モジュール、40…レジスタ、41…LBAテーブル、
42…周辺ロジック。
実施形態によれば、データ記憶装置は、記憶手段と、フレームデコーダ手段と、重複確認手段と、制御手段とを有する。フレームデコーダ手段は、ホストにより伝送されるフレームデータからコマンド及び論理アドレスを抽出する。重複確認手段は、前記フレームデコーダ手段により前記フレームデータから抽出された論理アドレスと、実行中又は実行待機中のコマンドに伴う論理アドレスとの重複確認を実行する。制御手段は、前記重複確認結果に基づいて前記フレームデータから抽出されたコマンドの発行を制御する。
Claims (10)
- 記憶手段と、
ホストから伝送されるフレームデータからコマンド及び論理アドレスを抽出するフレームデコーダ手段と、
前記フレームデコーダ手段から抽出された論理アドレスと、実行中又は実行待機中の全コマンドに伴う論理アドレスとの重複確認を並列に実行する重複確認手段と、
前記重複確認結果に基づいて前記フレームデコーダ手段から抽出されたコマンドの発行を制御する制御手段と
を具備するデータ記憶装置。 - 前記重複確認手段は、
前記フレームデコーダ手段から抽出された論理アドレスを保持するレジスタ手段と、
前記実行中又は実行待機中の全コマンドに伴う論理アドレスを格納するテーブル手段と、
前記レジスタ手段に保持された論理アドレスと同一のアドレスを前記テーブル手段の全論理アドレスから並列に検索し、前記同一のアドレスを検索した場合にはヒット信号を出力する重複検索手段と
を具備する請求項1に記載のデータ記憶装置。 - 前記制御手段は、
前記フレームデコーダ手段から抽出されたコマンド及び前記実行中又は実行待機中のコマンドを格納するコマンドテーブルを含み、
前記重複確認手段の確認結果に基づいて、前記コマンドテーブルに格納された発行準備中のコマンドの発行を制御するように構成されている請求項1または請求項2のいずれか1項に記載のデータ記憶装置。 - 前記制御手段は、
前記重複確認手段から前記ヒット信号が出力されたときに、前記フレームデコーダ手段から抽出されたコマンドの発行を停止するように構成されている請求項2または請求項3のいずれか1項に記載のデータ記憶装置。 - 前記制御手段は、
前記重複確認手段から前記ヒット信号が出力されたときに、前記実行中又は実行待機中のコマンドの種類に基づいて、前記フレームデコーダ手段から抽出されたコマンドの発行を制御するように構成されている請求項2から請求項4のいずれか1項に記載のデータ記憶装置。 - 前記重複確認手段は
前記フレームデコーダ手段により抽出された論理アドレスの属性情報として前記コマンドテーブルの格納位置を示すコマンドインデックス情報を前記レジスタ手段に保持し、
前記重複検索手段から出力される前記ヒット信号及び前記コマンドインデックス情報を前記制御手段に出力する請求項3から請求項5のいずれか1項に記載のデータ記憶装置。 - データ記憶装置のメモリコントローラとホストとの間でコマンドの転送を制御するコマンド制御装置であって、
前記ホストから伝送されるフレームデータからコマンド及び論理アドレスを抽出するフレームデコーダ手段と、
前記フレームデコーダ手段から抽出された論理アドレスと、実行中又は実行待機中の全コマンドに伴う論理アドレスとの重複確認を並列に実行する重複確認手段と、
前記重複確認結果に基づいて前記フレームデコーダ手段から抽出されたコマンドの発行を制御する制御手段と
を具備するコマンド制御装置。 - 前記重複確認手段は、
前記フレームデコーダ手段から抽出された論理アドレスを保持するレジスタ手段と、
前記実行中又は実行待機中の全コマンドに伴う論理アドレスを格納するテーブル手段と、
前記レジスタ手段に保持された論理アドレスと同一のアドレスを前記テーブル手段の全論理アドレスから並列に検索し、検索した場合にはヒット信号を出力する重複検索手段と
を具備する請求項7に記載のコマンド制御装置。 - 請求項1から請求項6のいずれか1項に記載のデータ記憶装置と、
前記データ記憶装置に対してデータの書き込み又は読み出しを行なうためのコマンドを出力するデータ処理手段と
を具備する電子機器。 - 前記データ記憶装置に含まれる前記重複確認手段は、
前記フレームデコーダ手段から抽出された論理アドレスを保持するレジスタ手段と、
前記実行中又は実行待機中の全コマンドに伴う論理アドレスを格納するテーブル手段と、
前記レジスタ手段に保持された論理アドレスと同一のアドレスを前記テーブル手段の全論理アドレスから並列に検索し、検索した場合にはヒット信号を出力する重複検索手段と
を具備する請求項9に記載の電子機器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010206005A JP2012063875A (ja) | 2010-09-14 | 2010-09-14 | データ記憶装置、コマンド制御装置及び電子機器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010206005A JP2012063875A (ja) | 2010-09-14 | 2010-09-14 | データ記憶装置、コマンド制御装置及び電子機器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012063875A true JP2012063875A (ja) | 2012-03-29 |
Family
ID=46059545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010206005A Pending JP2012063875A (ja) | 2010-09-14 | 2010-09-14 | データ記憶装置、コマンド制御装置及び電子機器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012063875A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446701A (zh) * | 2015-11-09 | 2016-03-30 | 联想(北京)有限公司 | 一种数据处理方法、电子设备及控制器 |
US10761776B2 (en) | 2018-04-13 | 2020-09-01 | Samsung Electronics Co., Ltd. | Method for handling command in conflict scenario in non-volatile memory express (NVMe) based solid-state drive (SSD) controller |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001209500A (ja) * | 2000-01-28 | 2001-08-03 | Fujitsu Ltd | ディスク装置およびディスク装置のリード・ライト処理方法 |
JP2001216092A (ja) * | 2000-01-27 | 2001-08-10 | Internatl Business Mach Corp <Ibm> | データの書き込み方法、データの読み出し方法、ディスクドライブ装置およびディスクドライブ装置のコントローラ |
JP2001312373A (ja) * | 2000-04-21 | 2001-11-09 | Internatl Business Mach Corp <Ibm> | データの書き込み方法およびディスクドライブ装置 |
JP2006268449A (ja) * | 2005-03-24 | 2006-10-05 | Hitachi Ltd | 計算機システム及び記憶装置とコンピュータ・ソフトウエア並びにストレージ制御における管理者の認証方法 |
-
2010
- 2010-09-14 JP JP2010206005A patent/JP2012063875A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001216092A (ja) * | 2000-01-27 | 2001-08-10 | Internatl Business Mach Corp <Ibm> | データの書き込み方法、データの読み出し方法、ディスクドライブ装置およびディスクドライブ装置のコントローラ |
JP2001209500A (ja) * | 2000-01-28 | 2001-08-03 | Fujitsu Ltd | ディスク装置およびディスク装置のリード・ライト処理方法 |
JP2001312373A (ja) * | 2000-04-21 | 2001-11-09 | Internatl Business Mach Corp <Ibm> | データの書き込み方法およびディスクドライブ装置 |
JP2006268449A (ja) * | 2005-03-24 | 2006-10-05 | Hitachi Ltd | 計算機システム及び記憶装置とコンピュータ・ソフトウエア並びにストレージ制御における管理者の認証方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446701A (zh) * | 2015-11-09 | 2016-03-30 | 联想(北京)有限公司 | 一种数据处理方法、电子设备及控制器 |
US10761776B2 (en) | 2018-04-13 | 2020-09-01 | Samsung Electronics Co., Ltd. | Method for handling command in conflict scenario in non-volatile memory express (NVMe) based solid-state drive (SSD) controller |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8380922B1 (en) | Data storage device comprising host interface state machine blocking on target logical block address | |
US8332579B2 (en) | Data storage apparatus and method of writing data | |
JP5344411B2 (ja) | シリアルインターフェースメモリの同時読み出し及び書き込みメモリ動作 | |
US8990462B2 (en) | Storage device, computing system including the same and data transferring method thereof | |
US20180275921A1 (en) | Storage device | |
JP6196447B2 (ja) | 読み取りデータ・ストローブ信号を含む低減ピン・カウント(rpc)メモリ・バス・インターフェースのための装置及び方法 | |
US8825946B2 (en) | Memory system and data writing method | |
US9606928B2 (en) | Memory system | |
KR102168487B1 (ko) | 높은 클럭 속도에서 연속하는 판독 버스트 지원 | |
US20070168605A1 (en) | Information storage device and its control method | |
US20070168603A1 (en) | Information recording apparatus and control method thereof | |
US10423548B2 (en) | Memory controller, control method for the memory controller, and control method for memory | |
TWI626540B (zh) | 一般及垃圾回收的資料存取方法以及使用該方法的裝置 | |
KR102366512B1 (ko) | 논리 블록 어드레싱 범위 충돌 크롤러 | |
US8327043B2 (en) | Buffer management device which manages buffer transfer, storage apparatus comprising the same device, and buffer management method | |
US20160070648A1 (en) | Data storage system and operation method thereof | |
JP4972212B2 (ja) | ブリッジ回路 | |
KR100843199B1 (ko) | 고속 아이.디.이. 인터페이스 장치 및 그 방법 | |
JP2012063875A (ja) | データ記憶装置、コマンド制御装置及び電子機器 | |
KR102583592B1 (ko) | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 | |
US20100262763A1 (en) | Data access method employed in multi-channel flash memory system and data access apparatus thereof | |
WO2016059715A1 (ja) | 計算機システム | |
US20070250661A1 (en) | Data recording apparatus and method of controlling the same | |
US20060277326A1 (en) | Data transfer system and method | |
US10331385B2 (en) | Cooperative write-back cache flushing for storage devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120410 |