(57)【特許請求の範囲】
【請求項１】
複数のプロセッサノードの複数のコマンド送信キューと共に使用するためのソリッドステートストレージドライブであって、
複数のストレージ空間領域を有する不揮発性ストレージと、共通のコマンドキューを有するストレージコントローラとを備え、前記ストレージコントローラは、
前記複数のコマンド送信キューからの複数の書き込みコマンドを前記共通のコマンドキューにおいてキュー処理し、
前記共通のコマンドキューにおいてキュー処理された書き込みコマンドを実行し、
前記ストレージコントローラは、前記書き込みコマンドの第１のシーケンシャル書き込みストリームおよび第２のシーケンシャル書き込みストリームを検出するシーケンシャル書き込みストリーム検出ハードウェアロジックを含むシーケンシャル書き込みストリーム識別ハードウェアロジックを有し、
前記シーケンシャル書き込みストリーム識別ハードウェアロジックは、検出された前記第１のシーケンシャル書き込みストリームおよび前記第２のシーケンシャル書き込みストリームを、検出された前記第１のシーケンシャル書き込みストリームおよび前記第２のシーケンシャル書き込みストリームの特性のファンクションに基づいて、第１の識別シーケンシャル書き込みストリームおよび第２の識別シーケンシャル書き込みストリームとして、それぞれ識別し、
前記ストレージコントローラはさらに、前記書き込みストリーム識別のファンクションに基づいて、前記ソリッドステートストレージドライブの異なるシーケンシャル書き込みストリーム領域へと実行中のコマンドの書き込みデータを書き込むシーケンシャル書き込みストリーム集約ハードウェアロジックを有し、
前記ソリッドステートストレージドライブの第１のシーケンシャル書き込みストリームストレージ領域に前記第１の識別シーケンシャル書き込みストリームの書き込みデータを集約することと、
前記ソリッドステートストレージドライブの第２のシーケンシャル書き込みストリームストレージ領域に前記第２の識別シーケンシャル書き込みストリームの書き込みデータを集約することと
を含み、
前記シーケンシャル書き込みストリーム識別ハードウェアロジックは、書き込み速度特性が第１の範囲に含まれる複数のシーケンシャル書き込みストリームを前記第１の識別シーケンシャル書き込みストリームとして識別し、
前記シーケンシャル書き込みストリーム集約ハードウェアロジックは、前記ソリッドステートストレージドライブの第１の領域に前記複数のシーケンシャル書き込みストリームを配置し、前記複数のシーケンシャル書き込みストリームの送信キュー元情報または書き込みデータ宛先に基づいて、前記複数のシーケンシャル書き込みストリームを再オーダおよびパックする
ソリッドステートストレージドライブ。
【請求項２】
複数のプロセッサノードの複数のコマンド送信キューと共に使用するためのソリッドステートストレージドライブであって、
複数のストレージ空間領域を有する不揮発性ストレージと、共通のコマンドキューを有するストレージコントローラとを備え、前記ストレージコントローラは、
前記複数のコマンド送信キューからの複数の書き込みコマンドを前記共通のコマンドキューにおいてキュー処理し、
前記共通のコマンドキューにおいてキュー処理された書き込みコマンドを実行し、
前記ストレージコントローラは、前記書き込みコマンドの第１のシーケンシャル書き込みストリームおよび第２のシーケンシャル書き込みストリームを検出するシーケンシャル書き込みストリーム検出ハードウェアロジックを含むシーケンシャル書き込みストリーム識別ハードウェアロジックを有し、
前記シーケンシャル書き込みストリーム識別ハードウェアロジックは、検出された前記第１のシーケンシャル書き込みストリームおよび前記第２のシーケンシャル書き込みストリームを、検出された前記第１のシーケンシャル書き込みストリームおよび前記第２のシーケンシャル書き込みストリームの特性のファンクションに基づいて、第１の識別シーケンシャル書き込みストリームおよび第２の識別シーケンシャル書き込みストリームとして、それぞれ識別し、
前記ストレージコントローラはさらに、前記書き込みストリーム識別のファンクションに基づいて、前記ソリッドステートストレージドライブの異なるシーケンシャル書き込みストリーム領域へと実行中のコマンドの書き込みデータを書き込むシーケンシャル書き込みストリーム集約ハードウェアロジックを有し、
前記ソリッドステートストレージドライブの第１のシーケンシャル書き込みストリームストレージ領域に前記第１の識別シーケンシャル書き込みストリームの書き込みデータを集約することと、
前記ソリッドステートストレージドライブの第２のシーケンシャル書き込みストリームストレージ領域に前記第２の識別シーケンシャル書き込みストリームの書き込みデータを集約することと
を含み、
前記シーケンシャル書き込みストリーム検出ハードウェアロジックはさらに、前記書き込みコマンドの第３のシーケンシャル書き込みストリームを検出し、
前記シーケンシャル書き込みストリーム識別ハードウェアロジックはさらに、検出された前記第１のシーケンシャル書き込みストリームおよび検出された前記第３のシーケンシャル書き込みストリームの特性のファンクションに基づいて、検出された前記第３のシーケンシャル書き込みストリームを前記第１の識別シーケンシャル書き込みストリームとして識別し、
前記ストレージコントローラはさらに、前記書き込みストリーム識別のファンクションに基づいて、前記ソリッドステートストレージドライブの異なる領域へと実行中のコマンドの書き込みデータを前記書き込むことは、前記ソリッドステートストレージドライブの第１の領域エリアにおける検出された前記第３のシーケンシャル書き込みストリームの書き込みデータを集約することを含むように構成される、
前記シーケンシャル書き込みストリーム識別ハードウェアロジックはさらに、検出シーケンシャル書き込みストリームごとに書き込み速度特性を決定するシーケンシャル書き込みストリーム書き込み速度検出ハードウェアロジックを含み、
前記シーケンシャル書き込みストリーム識別ハードウェアロジックはさらに、前記第１の識別シーケンシャル書き込みストリームとして、検出された前記第１のシーケンシャル書き込みストリームおよび前記第３のシーケンシャル書き込みストリームを前記識別すること、および、検出された前記第２のシーケンシャル書き込みストリームを前記第２の識別シーケンシャル書き込みストリームとして前記識別することが、第１の範囲に検出された書き込み速度特性を有する検出された前記第１のシーケンシャル書き込みストリームおよび前記第３のシーケンシャル書き込みストリーム、および、第２の範囲に検出された書き込み速度特性を有する検出された前記第２のシーケンシャル書き込みストリームのファンクションであるように構成される、
ソリッドステートストレージドライブ。
【請求項３】
前記ソリッドステートストレージドライブはさらに、シーケンシャル書き込みストリームバッファパーティションを有する転送バッファストレージを含み、
前記ストレージコントローラはさらに、前記シーケンシャル書き込みストリーム識別ハードウェアロジックによる前記書き込みストリーム識別のファンクションに基づいて、前記転送バッファストレージの異なるシーケンシャル書き込みストリームバッファパーティションへと実行中のコマンドの書き込みデータを書き込む転送バッファパーティション書き込みストリームデータ集約ハードウェアロジックを有し、前記転送バッファパーティション書き込みストリームデータ集約ハードウェアロジックは、
前記転送バッファストレージの第１のシーケンシャル書き込みストリームバッファパーティションにおける前記第１の識別シーケンシャル書き込みストリームの書き込みデータを集約することと、
前記転送バッファストレージの第２のシーケンシャル書き込みストリームバッファパーティションに前記第２の識別シーケンシャル書き込みストリームの書き込みデータを集約することと
を含む、
請求項１または２に記載のソリッドステートストレージドライブ。
【請求項４】
前記シーケンシャル書き込みストリーム検出ハードウェアロジックはさらに、前記書き込みコマンドの第３のシーケンシャル書き込みストリームを検出し、
前記シーケンシャル書き込みストリーム識別ハードウェアロジックはさらに、検出された前記第１のシーケンシャル書き込みストリームおよび検出された前記第３のシーケンシャル書き込みストリームの特性のファンクションに基づいて、検出された前記第３のシーケンシャル書き込みストリームを前記第１の識別シーケンシャル書き込みストリームとして識別し、
前記ストレージコントローラはさらに、前記書き込みストリーム識別のファンクションに基づいて、前記ソリッドステートストレージドライブの異なる領域へと実行中のコマンドの書き込みデータを前記書き込むことは、前記ソリッドステートストレージドライブの第１の領域エリアにおける検出された前記第３のシーケンシャル書き込みストリームの書き込みデータを集約することを含むように構成される、
請求項１に記載のソリッドステートストレージドライブ。
【請求項５】
前記シーケンシャル書き込みストリーム検出ハードウェアロジックはさらに、
前記書き込みコマンドの第１のシーケンシャル書き込みストリームおよび第２のシーケンシャル書き込みストリームを前記検出することは、前記共通のコマンドキューの前記書き込みコマンドのパラメータを確認することであって、前記パラメータは書き込みデータ宛先パラメータを含む、確認することと、
２つの書き込みコマンドの前記書き込みデータ宛先パラメータが、シーケンシャル書き込みストリームに対する一連の書き込みコマンドの２つの書き込みコマンドのパラメータと一致するかどうかを判定することと
を含むように構成される、
請求項１から４のいずれか一項に記載のソリッドステートストレージドライブ。
【請求項６】
前記パラメータは、前記共通のコマンドキューの書き込みコマンドごとにコマンド送信キュー元パラメータを含む、
請求項５に記載のソリッドステートストレージドライブ。
【請求項７】
前記シーケンシャル書き込みストリーム集約ハードウェアロジックはさらに、前記ソリッドステートストレージドライブの第１の領域に前記第１の識別シーケンシャル書き込みストリームの前記書き込みデータを前記集約することは、
前記第１のシーケンシャル書き込みストリームの書き込み宛先アドレス特性を含む前記第１の識別シーケンシャル書き込みストリームの特性のファンクションに基づいて、前記第１の領域内に隣接して前記第１の識別シーケンシャル書き込みストリームの書き込みデータをシーケンシャルに再オーダおよびパックすることを含むように構成される、
請求項３に記載のソリッドステートストレージドライブ。
【請求項８】
複数のコマンド送信キューを有する複数のプロセッサノードと、
複数のストレージ空間領域を有する不揮発性ストレージと、共通のコマンドキューを有するストレージコントローラとを含むソリッドステートストレージドライブと、
前記不揮発性ストレージに格納されるデータを表すデータを表示するためのビデオコントローラと
を備えるディスプレイと共に使用するためのシステムであって、
前記ストレージコントローラは、
前記複数のコマンド送信キューからの複数の書き込みコマンドを前記共通のコマンドキューにおいてキュー処理し、
前記共通のコマンドキューにおいてキュー処理された書き込みコマンドを実行し、
前記ストレージコントローラは、前記書き込みコマンドの第１のシーケンシャル書き込みストリームおよび第２のシーケンシャル書き込みストリームを検出するシーケンシャル書き込みストリーム検出ハードウェアロジックを含むシーケンシャル書き込みストリーム識別ハードウェアロジックを有し、
前記シーケンシャル書き込みストリーム識別ハードウェアロジックは、検出された前記第１のシーケンシャル書き込みストリームおよび前記第２のシーケンシャル書き込みストリームを、検出された前記第１のシーケンシャル書き込みストリームおよび前記第２のシーケンシャル書き込みストリームの特性のファンクションに基づいて、第１の識別シーケンシャル書き込みストリームおよび第２の識別シーケンシャル書き込みストリームとして、それぞれ識別し、
前記ストレージコントローラはさらに、前記書き込みストリーム識別のファンクションに基づいて、前記ソリッドステートストレージドライブの異なるシーケンシャル書き込みストリーム領域へと実行中のコマンドの書き込みデータを書き込むシーケンシャル書き込みストリーム集約ハードウェアロジックを有し、
前記ソリッドステートストレージドライブの第１のシーケンシャル書き込みストリームストレージ領域に前記第１の識別シーケンシャル書き込みストリームの書き込みデータを集約することと、
前記ソリッドステートストレージドライブの第２のシーケンシャル書き込みストリームストレージ領域に前記第２の識別シーケンシャル書き込みストリームの書き込みデータを集約することと
を含み、
前記シーケンシャル書き込みストリーム識別ハードウェアロジックは、書き込み速度特性が第１の範囲に含まれる複数のシーケンシャル書き込みストリームを前記第１の識別シーケンシャル書き込みストリームとして識別し、
前記シーケンシャル書き込みストリーム集約ハードウェアロジックは、前記ソリッドステートストレージドライブの第１の領域に前記複数のシーケンシャル書き込みストリームを配置し、前記複数のシーケンシャル書き込みストリームの送信キュー元情報または書き込みデータ宛先に基づいて、前記複数のシーケンシャル書き込みストリームを再オーダおよびパックする
システム。
【請求項９】
複数のコマンド送信キューを有する複数のプロセッサノードと、
複数のストレージ空間領域を有する不揮発性ストレージと、共通のコマンドキューを有するストレージコントローラとを含むソリッドステートストレージドライブと、
前記不揮発性ストレージに格納されるデータを表すデータを表示するためのビデオコントローラと
を備えるディスプレイと共に使用するためのシステムであって、
前記ストレージコントローラは、
前記複数のコマンド送信キューからの複数の書き込みコマンドを前記共通のコマンドキューにおいてキュー処理し、
前記共通のコマンドキューにおいてキュー処理された書き込みコマンドを実行し、
前記ストレージコントローラは、前記書き込みコマンドの第１のシーケンシャル書き込みストリームおよび第２のシーケンシャル書き込みストリームを検出するシーケンシャル書き込みストリーム検出ハードウェアロジックを含むシーケンシャル書き込みストリーム識別ハードウェアロジックを有し、
前記シーケンシャル書き込みストリーム識別ハードウェアロジックは、検出された前記第１のシーケンシャル書き込みストリームおよび前記第２のシーケンシャル書き込みストリームを、検出された前記第１のシーケンシャル書き込みストリームおよび前記第２のシーケンシャル書き込みストリームの特性のファンクションに基づいて、第１の識別シーケンシャル書き込みストリームおよび第２の識別シーケンシャル書き込みストリームとして、それぞれ識別し、
前記ストレージコントローラはさらに、前記書き込みストリーム識別のファンクションに基づいて、前記ソリッドステートストレージドライブの異なるシーケンシャル書き込みストリーム領域へと実行中のコマンドの書き込みデータを書き込むシーケンシャル書き込みストリーム集約ハードウェアロジックを有し、
前記ソリッドステートストレージドライブの第１のシーケンシャル書き込みストリームストレージ領域に前記第１の識別シーケンシャル書き込みストリームの書き込みデータを集約することと、
前記ソリッドステートストレージドライブの第２のシーケンシャル書き込みストリームストレージ領域に前記第２の識別シーケンシャル書き込みストリームの書き込みデータを集約することと
を含み、
前記シーケンシャル書き込みストリーム検出ハードウェアロジックはさらに、前記書き込みコマンドの第３のシーケンシャル書き込みストリームを検出し、
前記シーケンシャル書き込みストリーム識別ハードウェアロジックはさらに、検出された前記第１のシーケンシャル書き込みストリームおよび検出された前記第３のシーケンシャル書き込みストリームの特性のファンクションに基づいて、検出された前記第３のシーケンシャル書き込みストリームを前記第１の識別シーケンシャル書き込みストリームと識別し、
前記ストレージコントローラはさらに、前記書き込みストリーム識別のファンクションに基づいて、前記ソリッドステートストレージドライブの異なる領域へと実行中のコマンドの書き込みデータを前記書き込むことは、前記ソリッドステートストレージドライブの第１の領域エリアにおける検出された前記第３のシーケンシャル書き込みストリームの書き込みデータを集約することを含むように構成され、
前記シーケンシャル書き込みストリーム識別ハードウェアロジックはさらに、検出シーケンシャル書き込みストリームごとに書き込み速度特性を決定するシーケンシャル書き込みストリーム書き込み速度検出ハードウェアロジックを含み、
前記シーケンシャル書き込みストリーム識別ハードウェアロジックはさらに、前記第１の識別シーケンシャル書き込みストリームとして、検出された前記第１のシーケンシャル書き込みストリームおよび前記第３のシーケンシャル書き込みストリームを前記識別すること、および、検出された前記第２のシーケンシャル書き込みストリームを前記第２の識別シーケンシャル書き込みストリームとして前記識別することが、第１の範囲に検出された書き込み速度特性を有する検出された前記第１のシーケンシャル書き込みストリームおよび前記第３のシーケンシャル書き込みストリーム、および、第２の範囲に検出された書き込み速度特性を有する検出された前記第２のシーケンシャル書き込みストリームのファンクションであるように構成される、
システム。
【請求項１０】
前記ソリッドステートストレージドライブはさらに、シーケンシャル書き込みストリームバッファパーティションを有する転送バッファストレージを有する転送バッファストレージを含み、
前記ストレージコントローラはさらに、前記シーケンシャル書き込みストリーム識別ハードウェアロジックによる前記書き込みストリーム識別のファンクションに基づいて、前記転送バッファストレージの異なるシーケンシャル書き込みストリームバッファパーティションへと実行中のコマンドの書き込みデータを書き込む転送バッファパーティション書き込みストリームデータ集約ハードウェアロジックを有し、前記転送バッファパーティション書き込みストリームデータ集約ハードウェアロジックは、
前記転送バッファストレージの第１のシーケンシャル書き込みストリームバッファパーティションにおける前記第１の識別シーケンシャル書き込みストリームの書き込みデータを集約することと、
前記転送バッファストレージの第２のシーケンシャル書き込みストリームバッファパーティションにおける前記第２の識別シーケンシャル書き込みストリームの書き込みデータを集約することと
を含む、
請求項８または９に記載のシステム。
【請求項１１】
前記シーケンシャル書き込みストリーム検出ハードウェアロジックはさらに、前記書き込みコマンドの第３のシーケンシャル書き込みストリームを検出し、
前記シーケンシャル書き込みストリーム識別ハードウェアロジックはさらに、検出された前記第１のシーケンシャル書き込みストリームおよび検出された前記第３のシーケンシャル書き込みストリームの特性のファンクションに基づいて、検出された前記第３のシーケンシャル書き込みストリームを前記第１の識別シーケンシャル書き込みストリームと識別し、
前記ストレージコントローラはさらに、前記書き込みストリーム識別のファンクションに基づいて、前記ソリッドステートストレージドライブの異なる領域へと実行中のコマンドの書き込みデータを前記書き込むことは、前記ソリッドステートストレージドライブの第１の領域エリアにおける検出された前記第３のシーケンシャル書き込みストリームの書き込みデータを集約することを含むように構成される、
請求項８に記載のシステム。
【請求項１２】
前記シーケンシャル書き込みストリーム検出ハードウェアロジックはさらに、
前記書き込みコマンドの第１のシーケンシャル書き込みストリームおよび第２のシーケンシャル書き込みストリームを前記検出することは、前記共通のコマンドキューの前記書き込みコマンドのパラメータを確認することであって、前記パラメータは書き込みデータ宛先パラメータを含む、確認することと、
２つの書き込みコマンドの前記書き込みデータ宛先パラメータが、シーケンシャル書き込みストリームに対する一連の書き込みコマンドの２つの書き込みコマンドのパラメータと一致するかどうかを判定すること
とを含むように構成される、
請求項８から１１のいずれか一項に記載のシステム。
【請求項１３】
前記パラメータは、前記共通のコマンドキューの書き込みコマンドごとにコマンド送信キュー元パラメータを含む、
請求項１２に記載のシステム。
【請求項１４】
前記シーケンシャル書き込みストリーム集約ハードウェアロジックはさらに、前記ソリッドステートストレージドライブの第１の領域に前記第１の識別シーケンシャル書き込みストリームの前記書き込みデータを前記集約することは、
前記第１のシーケンシャル書き込みストリームの書き込み宛先アドレス特性を含む前記第１の識別シーケンシャル書き込みストリームの特性のファンクションに基づいて、前記第１の領域内に隣接して前記第１の識別シーケンシャル書き込みストリームの書き込みデータをシーケンシャルに再オーダおよびパックすることを含むように構成される、
請求項１１に記載のシステム。
【請求項１５】
共通のコマンドキューの複数のコマンド送信キューからの複数の書き込みコマンドをコンピュータがキュー処理する段階と、
前記共通のコマンドキューにおいてキュー処理される書き込みコマンドを前記コンピュータが実行する段階と
前記書き込みコマンドの第１のシーケンシャル書き込みストリームおよび第２のシーケンシャル書き込みストリームを前記コンピュータが検出する段階と、
検出された前記第１のシーケンシャル書き込みストリームおよび前記第２のシーケンシャル書き込みストリームを、検出された前記第１のシーケンシャル書き込みストリームおよび前記第２のシーケンシャル書き込みストリームの特性のファンクションに基づいて、第１の識別シーケンシャル書き込みストリームおよび第２の識別シーケンシャル書き込みストリームとして、それぞれ前記コンピュータが識別する段階と、
前記書き込みストリーム識別のファンクションに基づいて、ソリッドステートストレージの異なるシーケンシャル書き込みストリーム領域へと実行中のコマンドの書き込みデータを前記コンピュータが書き込む段階と
を備える、前記コンピュータにより実行される方法であって、
前記書き込みデータを書き込む段階は、
前記ソリッドステートストレージの第１のシーケンシャル書き込みストリームストレージ領域に前記第１の識別シーケンシャル書き込みストリームの書き込みデータを前記コンピュータが集約する段階と、
前記ソリッドステートストレージの第２のシーケンシャル書き込みストリームストレージ領域に前記第２の識別シーケンシャル書き込みストリームの書き込みデータを前記コンピュータが集約する段階と
を有し、
前記識別する段階は、書き込み速度特性が第１の範囲に含まれる複数のシーケンシャル書き込みストリームを前記第１の識別シーケンシャル書き込みストリームとして前記コンピュータが識別する段階を含み、
前記集約する段階は、前記ソリッドステートストレージの第１の領域に前記複数のシーケンシャル書き込みストリームを前記コンピュータが配置し、前記複数のシーケンシャル書き込みストリームの送信キュー元情報または書き込みデータ宛先に基づいて、前記複数のシーケンシャル書き込みストリームを前記コンピュータが再オーダおよびパックする段階を含む
方法。
【請求項１６】
共通のコマンドキューの複数のコマンド送信キューからの複数の書き込みコマンドをコンピュータがキュー処理する段階と、
前記共通のコマンドキューにおいてキュー処理される書き込みコマンドを前記コンピュータが実行する段階と
前記書き込みコマンドの第１のシーケンシャル書き込みストリームおよび第２のシーケンシャル書き込みストリームを前記コンピュータが検出する段階と、
検出された前記第１のシーケンシャル書き込みストリームおよび前記第２のシーケンシャル書き込みストリームを、検出された前記第１のシーケンシャル書き込みストリームおよび前記第２のシーケンシャル書き込みストリームの特性のファンクションに基づいて、第１の識別シーケンシャル書き込みストリームおよび第２の識別シーケンシャル書き込みストリームとして、それぞれ前記コンピュータが識別する段階と、
前記書き込みストリーム識別のファンクションに基づいて、ソリッドステートストレージの異なるシーケンシャル書き込みストリーム領域へと実行中のコマンドの書き込みデータを前記コンピュータが書き込む段階と
を備える、前記コンピュータにより実行される方法であって、
前記書き込みデータを書き込む段階は、
前記ソリッドステートストレージの第１のシーケンシャル書き込みストリームストレージ領域に前記第１の識別シーケンシャル書き込みストリームの書き込みデータを前記コンピュータが集約する段階と、
前記ソリッドステートストレージの第２のシーケンシャル書き込みストリームストレージ領域に前記第２の識別シーケンシャル書き込みストリームの書き込みデータを前記コンピュータが集約する段階と
を有し、
前記方法は、
前記書き込みコマンドの第３のシーケンシャル書き込みストリームを前記コンピュータが検出する段階と、
検出された前記第１のシーケンシャル書き込みストリームおよび前記第３のシーケンシャル書き込みストリームの特性のファンクションに基づいて、検出された前記第３のシーケンシャル書き込みストリームを前記第１の識別シーケンシャル書き込みストリームとして前記コンピュータが識別する段階と
をさらに備え、
前記書き込みストリーム識別のファンクションに基づいて、ソリッドステートストレージの異なる領域へと実行中のコマンドの書き込みデータを前記コンピュータが前記書き込む段階は、
前記ソリッドステートストレージの第１の領域のエリアにおける検出された前記第３のシーケンシャル書き込みストリームの書き込みデータを前記コンピュータが集約する段階をさらに有し、
前記方法は、
検出シーケンシャル書き込みストリームごとに書き込み速度特性を前記コンピュータが決定する段階をさらに備え、
前記第１の識別シーケンシャル書き込みストリームとして、検出された前記第１のシーケンシャル書き込みストリームおよび前記第３のシーケンシャル書き込みストリームを前記コンピュータが前記識別する段階、および、検出された前記第２のシーケンシャル書き込みストリームを前記第２の識別シーケンシャル書き込みストリームとして前記コンピュータが前記識別する段階が、第１の範囲に検出された書き込み速度特性を有する検出された前記第１のシーケンシャル書き込みストリームおよび前記第３のシーケンシャル書き込みストリーム、および、第２の範囲に検出された書き込み速度特性を有する検出された前記第２のシーケンシャル書き込みストリームのファンクションである、
方法。
【請求項１７】
前記書き込みストリーム識別のファンクションに基づいて、転送バッファストレージの異なるシーケンシャル書き込みストリームバッファパーティションへと実行中のコマンドの書き込みデータを前記コンピュータが書き込む段階をさらに備え、前記転送バッファストレージの前記書き込む段階は、
前記転送バッファストレージの第１のシーケンシャル書き込みストリームバッファパーティションにおける前記第１の識別シーケンシャル書き込みストリームの書き込みデータを前記コンピュータが集約する段階と、
前記転送バッファストレージの第２のシーケンシャル書き込みストリームバッファパーティションにおける前記第２の識別シーケンシャル書き込みストリームの書き込みデータを前記コンピュータが集約する段階と
を有する、
請求項１５または１６に記載の方法。
【請求項１８】
前記書き込みコマンドの第３のシーケンシャル書き込みストリームを前記コンピュータが検出する段階と、
検出された前記第１のシーケンシャル書き込みストリームおよび前記第３のシーケンシャル書き込みストリームの特性のファンクションに基づいて、検出された前記第３のシーケンシャル書き込みストリームを前記第１の識別シーケンシャル書き込みストリームとして前記コンピュータが識別する段階と
をさらに備え、
前記書き込みストリーム識別のファンクションに基づいて、ソリッドステートストレージの異なる領域へと実行中のコマンドの書き込みデータを前記コンピュータが前記書き込む段階は、
前記ソリッドステートストレージの第１の領域のエリアにおける検出された前記第３のシーケンシャル書き込みストリームの書き込みデータを前記コンピュータが集約する段階をさらに有する、
請求項１５に記載の方法。
【請求項１９】
前記書き込みコマンドの第１のシーケンシャル書き込みストリームおよび第２のシーケンシャル書き込みストリームを前記検出する段階は、前記共通のコマンドキューの前記書き込みコマンドのパラメータを前記コンピュータが確認する段階であって、前記パラメータは書き込みデータ宛先パラメータを含む、段階と、
２つの書き込みコマンドの前記書き込みデータ宛先パラメータが、シーケンシャル書き込みストリームに対する一連の書き込みコマンドの２つの書き込みコマンドのパラメータと一致するかどうかを前記コンピュータが判定する段階と
を有する、請求項１５から１７のいずれか一項に記載の方法。
【請求項２０】
前記パラメータは、前記共通のコマンドキューの書き込みコマンドごとにコマンド送信キュー元パラメータを含む、
請求項１９に記載の方法。
【請求項２１】
前記ソリッドステートストレージの前記第１の領域に前記第１の識別シーケンシャル書き込みストリームの前記書き込みデータを前記コンピュータが前記集約する段階は、
前記第１のシーケンシャル書き込みストリームの書き込み宛先アドレス特性を含む前記第１の識別シーケンシャル書き込みストリームの特性のファンクションに基づいて、前記第１の領域内に隣接して前記第１の識別シーケンシャル書き込みストリームの書き込みデータをシーケンシャルに前記コンピュータが再オーダおよびパックする段階を含む、
請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の特定の実施形態は、概して、シーケンシャル書き込みストリーム用の書き込みデータが格納されるストレージに関する。
【背景技術】
【０００２】
コンピューティングシステムは、１または複数のプロセッサノードを有する場合があり、各ノードは、１または複数の中央処理装置、マイクロプロセッサ、マイクロプロセッサのコア、または特定のコンピューティングシステムのエミュレーションである仮想マシン（ＶＭ）の共有処理リソースによって提供される処理リソースを有する。コンピューティングシステムのプロセッサノードは、例えば、ストレージなどのリソースを共有し得る。ブロックストレージと呼ばれる１つのタイプのストレージにおいて、データは、例えば、５１２バイトの倍数などの倍数にて受け入れられる。共有ストレージに関して、各プロセッサノードは、プロセッサノードから共有ストレージに読み出しコマンド、書き込みコマンドおよび他のストレージコマンドを提供すべく、１または複数のストレージコマンド送信キューを有し得る。
【０００３】
いくつかの共有ストレージデザインにおいて、共有ストレージは、様々なプロセッサノードのストレージコマンド送信キューの各々によって発行されるストレージコマンドを受信し、共有ストレージによる実行を待つ共通の未決ストレージコマンドキューのストレージコマンドを統一するコントローラを有する。プロセッサノード間の共有ストレージへのアクセスを分配すべく、ブロックストレージコントローラは、例えば、「ラウンドロビン」配信プロセスなどのアクセス分配プロセスを利用し得る。そのようなアクセス分配プロセスにおいて、ブロックストレージコントローラは、１つのコマンド送信キューからストレージコマンドを受け入れ、それを１ターンで共通の未決ストレージコマンドキューに配置し、次のコマンド送信キューからストレージコマンドを受け入れ、それを次のターンで共通の未決ストレージコマンドキューに配置するなどである。共有ストレージアクセス分配プロセスの結果として、特定のプロセッサノードの特定のコマンド送信キューによって発行されるストレージコマンドは、同じまたは他のプロセッサノードの他のストレージコマンド送信キューによって発行されるストレージコマンドと混合状態になる場合がある。 
【０００４】
多くの場合、１または複数のプロセッサノードによって共有されるブロックストレージの１つの例は、ソリッドステートドライブ（ＳＳＤ）である。ＳＳＤは、データを永続的に格納すべく、集積回路アセンブリを不揮発性ストレージとして使用するデータストレージデバイスである。ＳＳＤは通常、可動機械コンポーネントを有せず、これは、ＳＳＤを、回転ディスクおよび移動可能な読み出し／書き込みヘッドを含む、ハードディスクドライブ（ＨＤＤ）またはフロッピー（登録商標）ディスク等の従来の電気機械磁気ディスクと区別する。電気機械ディスクと比較して、ＳＳＤは通常、物理的衝撃により耐性があり、静かに実行し、アクセス時間が短く、およびレイテンシが少ない。多くのタイプのＳＳＤは、電源なくデータを保持するＮＡＮＤベースのフラッシュメモリセルを使用し、不揮発性ストレージ技術のタイプである。 
【０００５】
ＳＳＤのブロックストレージコントローラは、書き込みコマンドに応答して書き込みデータを共有ストレージの１または複数のストレージバンド（ｂａｎｄ）へと書き込むことができる。ストレージバンド内で、ＳＳＤブロックストレージコントローラは頻繁に、１度にストレージブロック全体を動作する。例えば、ＳＳＤのメモリセルブロック内のメモリセルに書き込む前に、ストレージブロック全体が、メモリセルブロックのメモリセルに１度で大電圧を印加することによって、通常１度で消去される。しかしながら、保存されるべきデータを含むデータブロックを消去する前に、不変のままであるべきデータが通常読み出され、セーブされる。消去が一度完了すると、新しいデータおよび保存データは両方が、新たに消去されたブロックに書き込まれるか、または場合によっては、前に消去されたブロックに書き込まれる。 
【０００６】
結果として、新しいデータをＳＳＤへと書き込むべく、新しいデータの書き込みを実現するために実際に書き込まれるデータ量は、多くの場合に新しいデータ量を超える場合がある。この現象は、「ライトアンプリフィケーション（ｗｒｉｔｅ  ａｍｐｌｉｆｉｃａｔｉｏｎ）」と呼ばれることがあり、ＳＳＤ性能に悪影響を与える場合がある。
【図面の簡単な説明】
【０００７】
本開示の実施形態は限定のためではなく、例として示され、添付の図面の図において、同様の参照番号は同様の構成要素を指す。
【図１】本開示の実施形態によるシーケンシャル書き込みストリーム管理を採用する、コンピューティングシステムの選択態様を示す上位ブロック図を示す。
【図２】図１のコンピューティングシステムの複数の送信キューから受信されたストレージコマンドをキュー処理するためのストレージキューの例を示す。
【図３】本開示の実施形態によるシーケンシャル書き込みストリーム管理を採用する、図１のコンピューティングシステムのための書き込みストリーム管理ロジックの例の概略図を示す。
【図４】本開示の実施形態によるシーケンシャル書き込みストリーム管理を採用する、図１のコンピューティングシステムのためのソリッドステートドライブのストレージのストレージ領域を示す。
【図５】本開示の実施形態によるシーケンシャル書き込みストリーム管理のための動作例を示す。
【図６】本開示の実施形態によるシーケンシャル書き込みストリーム管理のための動作例を示す。
【図７】図３の本開示の書き込みストリーム管理ロジックによって検出されるシーケンシャル書き込みストリームの例を示す。
【図８】本開示の実施形態によるシーケンシャル書き込みストリーム管理を採用する、のコンピューティングシステムの別の例を示す。
【発明を実施するための形態】
【０００８】
以下の説明では、同様の構成要素には、それらが異なる実施形態中に示されるかどうかに拘わらず、同じ参照番号を付することとする。本開示の実施形態を明瞭かつ簡潔なやり方で示すために、図面は必ずしも縮尺どおりとは限らず、特定の特性は多少概略的な形態で示され得る。１つの実施形態に関連して説明される、および／または図示される特性は、１または複数の他の実施形態にて同じまたは類似の方法にて、および／または他の実施形態の特性と組み合わせて、またはそれらの代わりに使用され得る。
【０００９】
本明細書の１つの実施形態は、様々なコマンド送信キューからの複数の書き込みコマンドは、共通のコマンドキューにおいてキュー処理され、共通のコマンドキューから実行されるコンピューティングシステムに向けられる。本明細書の１つの態様において、キュー処理書き込みコマンド内のシーケンシャル書き込みストリームは、特定のシーケンシャル書き込みストリームとして検出および識別される。従って、識別シーケンシャル書き込みストリームは、例えば、異なる識別（ＩＤ）名または番号に割り当てられ得、割り当てシーケンシャル書き込みストリーム識別のファンクション（ｆｕｎｃｔｉｏｎ）として特定のストレージエリアまたは領域に割り当てられ得る。
【００１０】
１つの実施形態において、転送バッファストレージは、データをストレージに書き込む前に、一時的にデータを格納するために提供される。実行中のコマンドの書き込みデータは、シーケンシャル書き込みストリームの識別のファンクションとしてそのような転送バッファストレージの異なるシーケンシャル書き込みストリームバッファパーティションへと書き込まれ得る。例えば、１つの識別シーケンシャル書き込みストリームの書き込みデータは、転送バッファストレージの１つのシーケンシャル書き込みストリームバッファパーティションに集約され得、別の識別シーケンシャル書き込みストリームの書き込みデータは、転送バッファストレージの異なるシーケンシャル書き込みストリームバッファパーティションに集約され得る。以下により詳細]に説明されるように、シーケンシャル書き込みストリーム識別のファンクションとしての転送バッファにおけるそのような書き込みデータのパーティション化により、ソリッドステートストレージデバイスのライトアンプリフィケーションを低減し得る。
【００１１】
本明細書の別の態様において、実行中のコマンドの書き込みデータは、識別シーケンシャル書き込みストリームのファンクションとして、ソリッドステートストレージの異なるシーケンシャル書き込みストリームストレージエリアまたは領域へと書き込まれ得る。例えば、１つの識別シーケンシャル書き込みストリームの書き込みデータは、ソリッドステートストレージの１つのシーケンシャル書き込みストリームストレージ領域に集約され得、別の識別シーケンシャル書き込みストリームの書き込みデータは、ソリッドステートストレージの異なるシーケンシャル書き込みストリームストレージ領域に集約され得る。以下により詳細に説明されるように、シーケンシャル書き込みストリーム識別のファンクションとしての異なる隔離シーケンシャル書き込みストリームストレージ領域におけるそのような書き込みデータの集約化によりまた、ソリッドステートストレージデバイスのライトアンプリフィケーションを低減し得る。 
【００１２】
本明細書の別の態様において、検出シーケンシャル書き込みストリームは、検出シーケンシャル書き込みストリームの様々な特性のファンクションとして特定のシーケンシャル書き込みストリームと識別され得る。１つの実施形態において、書き込みストリームのそのような１つの特性は、シーケンシャル書き込みストリームがストレージに更新または上書きされるレートの基準である「書き込み速度」と本明細書において呼ばれる。１つの例において、シーケンシャル書き込みストリームは、循環バッファにわたってデータ書き込みがラップアラウンドまたはループバックされる循環バッファとしてモデル化され得る。データ更新レートが低い小型循環バッファは、２つの循環バッファが同じレートでラップアラウンドまたはループバックされた場合、データ更新レートが高い大型循環バッファと同じ書き込み速度を有することができる。
【００１３】
１つの実施形態において、検出シーケンシャル書き込みストリームのための書き込み速度特性が、検出され得、当該検出シーケンシャル書き込みストリームに割り当てられる識別は、検出シーケンシャル書き込みストリームのための検出書き込み速度のファンクションであり得る。従って、１つの例において、同じまたは同様の書き込み速度特性を有する（例えば、同じ範囲内の）２つの異なる検出シーケンシャル書き込みストリームは、同じシーケンシャル書き込みストリーム識別に割り当てられ得る。本明細書による書き込み速度検出は、データ更新レートの他の基準を有する他のデータ書き込み実施形態に適用され得ることが理解される。 
【００１４】
１つの実施形態において、同じまたは同様の書き込み速度特性と、同じ割り当てシーケンシャル書き込みストリーム識別とを有する２つの異なる検出シーケンシャル書き込みストリームのための書き込みデータは、異なる検出シーケンシャル書き込みストリームのために１または複数のシーケンシャル書き込みストリームストレージエリアを含み得る共通のストリーム速度ストレージ領域に書き込まれ得る。その結果、ソリッドステートストレージの異なるシーケンシャルストリームストレージエリアは、共通のストレージ領域内のストレージエリアに割り当てられる検出シーケンシャル書き込みストリームの書き込み速度が同じまたは同様であると決定されている共通のストリーム速度ストレージ領域に集約され得る。以下により詳細に説明されるように、共通のストリーム速度ストレージ領域に同じまたは同様の書き込み速度を有する異なる検出シーケンシャル書き込みストリームのそのような書き込みデータの集約化によりまた、ソリッドステートストレージデバイスのライトアンプリフィケーションを低減し得る。
【００１５】
他の実施形態において、検出シーケンシャル書き込みストリームは、書き込み速度以外の特性のファンクションとして識別され得ることが理解される。従って、いくつかの検出シーケンシャル書き込みストリームは、例えば、書き込み速度特性に加えて、またはそれの代わりに、特性のファンクションとしてシーケンシャル書き込みストリーム識別に割り当てられ得る。
【００１６】
図１は、本明細書の１つの実施形態によるシーケンシャル書き込みストリーム管理を採用するコンピューティングシステム１００のブロック図を示す。この実施形態において、コンピューティングシステム１００は、ソリッドステートドライブ１０６へのアクセスを共有する複数のプロセッサノード１０４ａ、１０４ｂ、...１０４ｎを含む。各プロセッサノードは、１つまたは複数の中央処理装置（ＣＰＵ）、マイクロプロセッサ、処理コア、仮想マシンまたは他の処理リソースを有し得る。プロセッサノード１０４ａ、１０４ｂ...１０４ｎおよびソリッドステートドライブ１０６は、システムオンチップ（ＳｏＣ）などの単一のコンポーネントとして製造され得、あるいは半導体パッケージにもしくは１または複数の回路基板上に、またはデバイスハウジングに共に結合される別個のコンポーネントとして製造され得、あるいは別な方法で共に電気的に結合され得る。 
【００１７】
ソリッドステートドライブ１０６は、ブロックストレージコントローラ１１０と、ＮＡＮＤストレージ、ＮＯＲストレージまたは他の適切な不揮発性ストレージなどの不揮発性ストレージ１２０とから成り得る。コンピューティングシステム１００と同様に、ブロックストレージコントローラ１１０および不揮発性ストレージ１２０は、システムオンチップ（ＳｏＣ）などの単一のコンポーネントとして製造され得、あるいは半導体パッケージにもしくは１または複数の回路基板上に、またはデバイスハウジングに共に結合される別個のコンポーネントとして製造され得、あるいは別な方法で共に電気的に結合され得る。 
【００１８】
特定の実施形態において、ソリッドステートドライブ１０６は、特定の用途に応じて、数テラバイトデータ以上または以下を格納することが可能となり得る。特定の実施形態は、他のタイプの不揮発性ストレージまたはメモリ、相変化メモリ（ＰＣＭ）、３次元クロスポイントメモリ、抵抗メモリ、ナノワイヤメモリ、強誘電体トランジスタランダムアクセスメモリ（ＦｅＴＲＡＭ）、 メモリスタ技術を組み入れる磁気抵抗トランジスタランダムアクセスメモリ（ＭＲＡＭ）、スピントランスファトルク（ＳＴＴ）ＭＲＡＭ、バイトアドレス指定可能ランダムアクセス不揮発性メモリなどに適用され得る。 
【００１９】
特定の実施形態において、コンピューティングシステム１００は、例えば、パーソナルコンピュータ、メインフレーム、テレフォニデバイス、スマートフォン、ストレージコントローラ、ブレードコンピュータ、ストレージ付きのプロセッサなどの任意の適切な計算デバイスを含み得る。コンピューティングシステム１００の各プロセッサノード１０４ａ、１０４ｂ...１０４ｎは、例えば、周辺構成要素相互接続（ＰＣＩｅ）リンクなどの１または複数の通信リンクまたはバスを通じて、関連プロセッサノードによってＳＳＤ１０６に発行される読み出し、書き込みまたは他のストレージコマンドのために１または複数のストレージコマンド送信キュー１２４ａ、１２４ｂ...１２４ｎを有する。プロセッサノード１０４ｂなどのプロセッサノードは、キュー１２４ｂ、１２４ｃによって表される１より多い送信キューを有し得る。他のタイプの通信リンクまたはバスは、シリアル・アドバンスド・テクノロジ・アタッチメント（ＳＡＴＡ）、シリアル・アタッチド・スモール・コンピュータシステム（ＳＡＳ）バス、または、例えば、インターネット、ストレージエリアネットワーク（ＳＡＮ）、ローカルエリアネットワーク（ＬＡＮ）などのネットワークを含む。ＳＡＴＡ仕様のさらなる詳細は、ＳＡＴＡインターナショナル機構（ＳＡＴＡ−ＩＯ）、ビーバートン（オレゴン州）によって２０１３年８月に公表された「シリアルＡＴＡ仕様、リビジョン３．２」と題した出版物に見いだされ得る。別の例において、インターフェースおよび／または相互接続プロトコルは、ＮＶＭｅ（不揮発性メモリ・ホスト・コントローラ・インターフェース・エクスプレス）と適合し得、および／または互換性があり得る。ＮＶＭｅのさらなる詳細は、ＮＶＭエクスプレス（登録商標）ワークグループによって２０１４年１１月3日に公表された「ＮＶＭエクスプレス（登録商標）、リビジョン１．２」と題した刊行物、および／またはこの仕様の早期および／または最近のバージョン（ＮＶＭエクスプレスは、ＮＶＭエクスプレス社の登録商標である）に見いだされ得る。ＳＡＴＡおよびＳＡＳ規格などの規格を採用する実施形態は、複数のコマンドインターフェースまたは他の送信キューを有しない場合があることが理解される。しかしながら、本明細書によるシーケンシャル書き込みストリーム管理はまた、そのような実施形態、特に、ストレージ動作が混合状態となる、例えば、ブロックストレージを共有する複数の仮想マシンを採用するそのような実施形態に適用され得る。 
【００２０】
プロセッサノード１０４ａ、１０４ｂ...１０４ｎの様々なストレージコマンド送信キュー１２４ａ、１２４ｂ...１２４ｎからブロックストレージコントローラ１１０によって受信された書き込みストレージコマンドのストリームは、この実施形態において、未決の書き込みコマンドキュー１３２である１または複数の共通のキューにおいてキュー処理され、未決の書き込みコマンドキュー１３２の例は、図２に概略的に示される。本明細書の１つの態様によれば、ブロックストレージコントローラ１１０は、未決の書き込みコマンドキュー１３２から得られたデータを利用する書き込みストリーム管理ロジック１３６を含み、より効率的なデータ書き込み動作を促進するような態様で転送バッファ１４０および不揮発性ストレージ１２０の１または複数のエリアの書き込みデータの配置を制御する。例えば、この実施形態の転送バッファ１４０は、シーケンシャルストリームバッファパーティション１５０ａ、１５０ｂ、１５０ｃ...１５０ｎを含み、バッファパーティションの各々は、割り当てられたシーケンシャル書き込みストリームまたはそれの複数の書き込みデータを集約するために、１または複数の識別シーケンシャル書き込みストリームに割り当てられ得る。同様に、不揮発性ストレージ１２０は、ストレージ領域１６０ａ、１６０ｂ、１６０ｃ...１６０ｎを含み、ストレージ領域の各々は、割り当てられたシーケンシャル書き込みストリームまたはそれの複数の書き込みデータを集約するために、１または複数の識別シーケンシャル書き込みストリームに割り当てられ得る。書き込みストリーム管理ロジック１３６は、データ書き込み動作を改善すべく、コンピューティングシステム１００のブロックストレージコントローラ１１０、不揮発性ストレージ１２０、１または複数のプロセッサノード１０４ａ−１０４ｎ、または任意の他のコンポーネント内に位置付けられ得、ハードウェア、ソフトウェア、ファームウェアまたはそれらの任意の組み合わせに実装され得る。
【００２１】
例えば、ＣＰＵコアまたは他の処理ノードから共有ＳＳＤに直接コマンドストリームを送信すべく、複数の送信キューを利用する多くのシステムは通常、様々なＣＰＵコアからのストレージコマンドの送信をシリアルに変換せず、別な方法で調整することが認められる。その結果、１つのＣＰＵコアから論理的に隣接するストレージエリアへの書き込みコマンドのシーケンシャル書き込みストリームは、ソリッドステートドライブ１０６のブロックストレージコントローラインターフェースにて、システムの他のＣＰＵコアからのストレージコマンドと最終的に混合され得る。その結果、従来のシステムにおいて、本明細書による書き込みストリーム管理ロジック１３６がないときは、組み合わされるコマンドストリームからＳＳＤに書き込まれるデータは、任意の元のシーケンシャル書き込みストリームのシーケンシャル性を失う場合がある。元のシーケンシャル書き込みストリームのシーケンシャル性の喪失の程度は、コマンドが様々な送信キューにてより深くキュー処理されるほど、悪化され得る。その結果、本明細書による書き込みストリーム管理ロジック１３６がないときは、ＳＳＤのシーケンシャル書き込み性能は、異なるストリームからのキュー深度およびコマンド混合が増加するにつれて低下し得る。たとえ単一のスレッド化されたシナリオにて動作する場合でさえ、オペレーティングシステムは、異なるハイパースレッド化されたＣＰＵコア上の特定のスレッドを起動させる傾向があるので、スレッドのコマンドストリームは、異なるコマンド送信キューに移動し得、それによりコマンドのさらなる混合という結果になり得る。
【００２２】
図３は、本明細書による書き込みストリーム管理ロジック１３６の１つの例を示す。この実施形態において、書き込みストリーム管理ロジック１３６のシーケンシャル書き込みストリーム識別ロジック３００は、シーケンシャル書き込みストリーム検出ロジック３０２に発見的方法を採用し、ＳＳＤ１０６によって受信される書き込みコマンドにシーケンシャル書き込みストリームが存在することを検出する。検出シーケンシャル書き込みストリームごとに、１つの実施形態において、シーケンシャル書き込みストリームの書き込み速度は、シーケンシャル書き込みストリーム書き込み速度検出ロジック３１０によって検出される。前述のように、本明細書において使用される用語「書き込み速度」は、データがホストの用途によって更新されるレートを指す。いくつかの実施形態において、書き込み速度検出は、検出シーケンシャル書き込みストリームのために省略され得ることが理解される。
【００２３】
１つの実施形態において、検出シーケンシャル書き込みストリームに割り当てられるアイデンティティは、検出シーケンシャル書き込みストリームの特性のファンクションである。１つの実施形態において、検出シーケンシャル書き込みストリームに割り当てられるアイデンティティは、特定の検出シーケンシャル書き込みストリームに対して検出される書き込み速度特性のファンクションである。共通または同様の書き込み速度を有する検出シーケンシャル書き込みストリームに関して、それらのシーケンシャル書き込みストリームは、シーケンシャル書き込みストリーム識別ロジック３００によって共通の、または関連するシーケンシャル書き込みストリーム識別名または番号に割り当てられ得る。従って、１つの実施形態において、特定の識別シーケンシャル書き込みストリームは、例えば、共通または同様の書き込み速度を有する１または複数の検出シーケンシャル書き込みストリームの組み合わせであり得る。他の実施形態において、各検出シーケンシャル書き込みストリームは、一意のシーケンシャル書き込みストリーム識別に割り当てられ得る。別の実施形態において、共通または同様の書き込み速度を有する検出書き込みストリームは、グループの各シーケンシャル書き込みストリームが同じまたは同様の書き込み速度を有するシーケンシャル書き込みストリーム識別のグループ化を示すデータ構造に示され得る。シーケンシャル書き込みストリーム識別は、特定の用途に応じて、様々な技術に割り当てられ得ることが予想される。例えば、検出シーケンシャル書き込みストリームは、特定の用途に応じて、ロジカルブロックアドレッシング（ＬＢＡ）書き込みストリームの宛先、シーケンシャル書き込みストリームの送信キュー元、または他の特性などの書き込み速度以外の、またはそれに加えて書き込みストリーム特性のファンクションとして識別され得る。
【００２４】
シーケンシャル書き込みストリームを識別すると、当該特定の識別シーケンシャル書き込みストリームのための書き込みデータは、当該識別シーケンシャル書き込みストリームのために隔離されるストレージエリアに集約され得る。例えば、識別シーケンシャル書き込みストリームのための書き込みデータは、識別シーケンシャル書き込みストリームに割り当てられる特定のシーケンシャル書き込みストリーム転送バッファパーティション１５０ａ、１５０ｂ、...１５０ｎ（図１）の転送バッファパーティション書き込みストリームデータ集約ロジック３０４によって集約され得る。以下により詳細に説明されるように、割り当てシーケンシャル書き込みストリーム転送バッファパーティションにおいて識別シーケンシャル書き込みストリームの書き込みデータを内部で再組立てすべく、識別シーケンシャル書き込みストリームによってそのような書き込みデータを集約することにより、ＳＳＤ１０６の書き込み性能を改善し得ることが考えられる。例えば、識別シーケンシャル書き込みストリームの書き込みデータのシーケンシャル性は、ブロックストレージコントローラの共通の未決書き込みキューにおける様々なコマンド送信キューからの書き込みコマンドの混合にかかわらず、割り当てシーケンシャルストリーム転送バッファパーティションにおける識別シーケンシャル書き込みストリームの書き込みデータの集約によって、ある程度は復元され得ることが考えられる。
【００２５】
１または複数の識別シーケンシャル書き込みストリームのための書き込みデータはまた、それぞれの識別シーケンシャル書き込みストリームに割り当てられる特定の不揮発性ストレージ領域１６０ａ、１６０ｂ、...１６０ｎ（図１）におけるストレージ領域書き込み速度データ集約ロジック３２０によって集約され得る。１つの実施形態において、特定のストレージ領域に割り当てられる識別シーケンシャル書き込みストリームの検出シーケンシャル書き込みストリームまたはその複数は、同じまたは同様の書き込み速度を有する。以下、より詳細に説明されるように、割り当て不揮発性ストレージ領域１６０ａ、１６０ｂ...１６０ｎ（図１）の検出シーケンシャル書き込みストリームの書き込みデータを内部で再組立て（ｒｅａｓｓｅｍｂｌｅ）すべく、同じまたは同様の書き込み速度を有する検出シーケンシャル書き込みストリームによってそのような書き込みデータを集約することにより、また、ＳＳＤ１０６の書き込み性能を改善し得ることが考えられる。例えば、同じまたは同様の書き込み速度を有する検出シーケンシャル書き込みストリームに割り当てられるストレージ領域の書き込みデータを集約することにより、領域の識別シーケンシャル書き込みストリームの集約書き込みデータは、同時または同様の時間で更新され得、それによりガベージコレクションを促進し、データ再配置およびライトアンプリフィケーションを低減し得ることが考えられる。
【００２６】
前述のように、いくつかの実施形態において、検出シーケンシャル書き込みストリームは、例えば、書き込み速度特性に加えて、またはそれの代わりに、特性のファンクションとしてシーケンシャル書き込みストリーム識別に割り当てられ得る。従って、様々な要因に起因して、書き込み速度が等しくないシーケンシャル書き込みストリームを格納するストレージ領域において、シーケンシャル書き込みストリームが領域内に隣接して格納される事実により、異なる書き込み速度にかかわらず、データを消去すべき時である場合にバルクなデータ無効化が促進され得ることが理解される。その結果、ライトアンプリフィケーションが、改善され得る。
【００２７】
本明細書のさらなる別の態様において、割り当て不揮発性ストレージ領域１６０ａ、１６０ｂ...１６０ｎ（図１）の識別シーケンシャル書き込みストリームによって書き込みデータを集約するストレージ領域書き込みストリームデータ集約ロジック３２０はさらに、共通のシーケンシャル書き込みストリーム識別によって識別される検出シーケンシャル書き込みストリームの様々な特性のファンクションとして、ストレージ領域１６０ａ、１６０ｂ...１６０ｎ（図１）内の異なるストレージエリアの識別シーケンシャル書き込みストリームの書き込みデータを再オーダして、パックし得る。
【００２８】
例えば、図４は、書き込みデータ集約ストレージエリア４００ａおよび書き込みデータ集約ストレージエリア４００ｂによって表わされる複数のストレージエリアを含む書き込み速度データ集約ストレージ領域１６０ａを示す。書き込み速度データ集約ストレージ領域１６０ａは、例えば、識別シーケンシャルストリーム＿ＩＤ０の書き込みデータを受信すべく割り当てられ得る。同様に、書き込み速度データ集約ストレージ領域１６０ｂは、書き込みデータ集約ストレージエリア４００ｃおよび書き込みデータ集約ストレージエリア４００ｄによって表される複数のストレージエリアを含む。書き込み速度データ集約ストレージ領域１６０ｂは、例えば、識別シーケンシャルストリーム＿ＩＤ１の書き込みデータを受信すべく割り当てられ得る。
【００２９】
１つの例において、検出シーケンシャル書き込みストリームのストリーム−０、ストリーム−１、ストリーム−２、ストリーム−３は、例えば、同じシーケンシャル書き込みストリーム識別ストリーム＿ＩＤ０を有し、検出書き込み速度の特定の範囲内に書き込みデータを有する。従って、検出シーケンシャル書き込みストリームのストリーム−０、ストリーム−１、ストリーム−２、ストリーム−３の書き込みデータは、例えば、同じ書き込み速度データ集約ストレージ領域１６０ａに集約される。しかしながら、ストレージ領域１６０ａの集約書き込みデータ内にて、シーケンシャル書き込みストリーム識別ストリーム＿ＩＤ０によって識別される検出シーケンシャル書き込みストリームのストリーム−０、ストリーム−１、ストリーム−２、ストリーム−３の書き込みデータは、識別シーケンシャル書き込みストリームの検出シーケンシャル書き込みストリームの様々な特性のファンクションとして、書き込み速度データ集約ストレージ領域１６０ａのストレージエリア４００ａ、４００ｂの１または複数に隣接してシーケンシャルに再オーダおよびパックされ得る。従って、この例において、シーケンシャル書き込みストリーム識別ストリーム＿ＩＤ０によって識別される検出シーケンシャル書き込みストリームのストリーム−０、ストリーム−１の書き込みデータは、書き込み速度データ集約ストレージ領域１６０ａの、例えば、ストレージエリア４００ａに隣接してシーケンシャルに再オーダおよびパックされ得る。同様に、シーケンシャル書き込みストリーム識別ストリーム＿ＩＤ０によっても識別される検出シーケンシャル書き込みストリームのストリーム−２、ストリーム−３の書き込みデータは、書き込み速度データ集約ストレージ領域１６０ａの、例えば、ストレージエリア４００ｂに隣接してシーケンシャルに再オーダされ、パックされ得る。
【００３０】
識別速度ストリームを有するシーケンシャル書き込みストリーム内にシーケンシャル書き込みデータをシーケンシャルに再パックすることにより、ガベージコレクションが促進されることが考えられる。従って、たとえ検出シーケンシャル書き込みストリームの１または複数の書き込み速度が誤って検出されたとしても、ガベージコレクションは促進されることが考えられる。例えば、ブロックを消去する前に、データがストレージ領域内のブロックから読み出される場合、シーケンシャルコンテンツの読み出しは、ランダムコンテンツと比較して実質的により速く、より効率的であり得る。いくつかの実施形態において、シーケンシャルにオーダされたデータのそのような読み出しは、特定の用途に応じて、４倍から１６倍高速であり得る。例えば、システムオンチップ（ＳｏＣ）チャネルによって発生されるボトルネックは、データをシーケンシャルにオーダすることにより実現される利得を希釈する場合がある。
【００３１】
１つの実施形態において、ストレージ領域１６０ａの、例えば、ストレージエリア４００ａは、例えば、ロジカルブロックアドレッシング（ＬＢＡ）によって示される書き込みストリームのストリーム−０の書き込みデータ宛先アドレスなどの特定の検出書き込みストリームの様々な特性のファンクションとして、または、当該書き込みデータストリームに対する書き込みコマンドが発した送信キューのファンクションとして、例えば、書き込みストリームのストリーム−０などの検出シーケンシャル書き込みストリーム書き込みの再オーダされた隣接する書き込みデータを格納すべく割り当てられ得る。ここでまた、検出シーケンシャル書き込みストリームの書き込みデータのシーケンシャル性は、ブロックストレージコントローラの共通のコマンドキュー内で、様々なコマンド送信キューからの書き込みコマンドの混合にかかわらず、割り当てシーケンシャルストリームストレージエリアの検出シーケンシャル書き込みストリームの書き込みデータの集約によってある程度は復元され得ることが考えられる。シーケンシャル書き込みストリーム識別＿ＩＤ１によって識別される、検出シーケンシャル書き込みストリームのストリーム−４、ストリーム−５、ストリーム−６、ストリーム−７の書き込みデータが、検出シーケンシャル書き込みストリームの特性のファンクションとして、書き込み速度データ集約ストレージ領域１６０ｂのために示されるストレージエリア４００ｃ、４００ｄに隣接して、同様に再オーダおよびパックされ得る。
【００３２】
前述のように、書き込みストリーム管理ロジック１３６は、データ書き込み動作を改善すべく、コンピューティングシステム１００のブロックストレージコントローラ１１０、不揮発性ストレージ１２０、１または複数のプロセッサノード１０４ａ−１０４ｎ、または任意の他のコンポーネント内に位置付けられ得、ハードウェア、ソフトウェア、ファームウェアまたはそれらの任意の組み合わせに実装され得る。しかしながら、いくつかの実施形態において、ＳＳＤ１０６内に書き込みストリーム管理ロジック１３６の主要コンポーネントを配置することにより、例えば、プロセッサノード１０４ａ−１０４ｎのプロセッサノードにおいて主に動作するソフトウェアと比較して、機能強化をもたらし得ることが理解される。例えば、シーケンシャル書き込みストリームとランダム書き込み動作との混合を回避すべく、単一の送信キューにおいて、シリアルかつシーケンシャルなやり方にて書き込みコマンドを配置するホストソフトウェアは、ＳＳＤ１０６内の書き込みストリーム管理ロジック１３６と比較して、入出力動作に影響を及ぼす場合がある。その上、そのようなホストレベルコマンドの再オーダは、他のプロセッサノードのための相互に排他的なイベント（ｍｕｔｅｘ）処理、キャッシュコヒーレンシおよび遅延プロシージャコールに悪影響を与える場合がある。
【００３３】
１つの共有ストレージデザインにおいて、ブロックストレージコントローラは、共有ストレージ内の１または複数のストレージ空間「バンド」を保留し得、そこで、各保留バンドは、仮想マシンなどの特定のプロセッサノードに割り当てられる。従って、特定の保留ストレージバンドに書き込まれる書き込みデータは、共有ストレージにデータを書き込む他の仮想マシンによって発行される書き込みデータの除外に対して、当該保留ストレージバンドに割り当てられる特定の仮想マシンに限定され得る。
【００３４】
比較して、本明細書の１つの実施形態によるシーケンシャル書き込みストリーム管理において、ストレージバンドなどの特定のストレージエリアに書き込まれる書き込みデータは、単に書き込みコマンドのソースのプロセッサアイデンティティというよりもむしろ、識別シーケンシャル書き込みストリームのファンクションとして保留され得る。識別シーケンシャル書き込みストリームの書き込みデータは、例えば、シーケンシャルかつランダムな書き込みコマンドが混合された書き込みコマンドのストリームから、または、例えば、異なる書き込み速度を有するシーケンシャル書き込みストリームの書き込みコマンドが混合されたストリームから、抽出され得る。
【００３５】
識別シーケンシャルストリームの抽出書き込みデータは、識別シーケンシャル書き込みストリームの書き込みコマンドが１つより多いプロセッサノードから発した場合があるにもかかわらず、当該識別シーケンシャルストリームに割り当てられたストレージエリアまたは領域に集約され得る。しかしながら、いくつかの実施形態において、書き込みコマンドのソースのプロセッサアイデンティティまたは送信キューアイデンティティは、当該検出シーケンシャル書き込みストリームまたは同様な特性を有する他の検出シーケンシャル書き込みストリームに対して保留されるストレージエリアに、識別シーケンシャル書き込みストリームの書き込みデータを集約する検出シーケンシャル書き込みストリームの他の特性と関連して、使用され得ることが理解される。
【００３６】
図５は、本明細書によるシーケンシャル書き込みストリーム管理を採用するコンピューティングシステムの動作の１つの例を示す。１つの動作において、例えば、コマンド送信キュー１２４ａ、１２４ｂ...１２４ｎ（図１）などの複数の異なるコマンド送信キューからの書き込みコマンドが、例えば、ブロックストレージコントローラ１１０の未決の書き込みコマンドキュー１３２（図１）などの共通のキューに様々な書き込みコマンドを混合する場合がある共通のキューにおいてキュー処理される（ブロック５１０、図５）。書き込みコマンド内のシーケンシャル書き込みストリームは、例えば、図３の書き込みストリーム管理ロジック１３６のシーケンシャル書き込みストリーム識別ロジック３００などの適切なロジックによって識別される（ブロック５１４）。
【００３７】
識別シーケンシャル書き込みストリームに関して、当該識別書き込みストリームの書き込みデータは、当該識別シーケンシャル書き込みストリームに割り当てられるストレージエリアまたは領域に抽出または集約される（ブロック５１８）。１つの実施形態において、識別シーケンシャル書き込みストリームの書き込みデータは、例えば、図３の書き込みストリーム管理ロジック１３６の転送バッファパーティション書き込みストリームデータ集約ロジック３０４などのロジックによって抽出および集約され得る。前述のように、転送バッファパーティション書き込みストリームデータ集約ロジック３０４は、識別シーケンシャル書き込みストリームに割り当てられる特定のシーケンシャルストリーム転送バッファパーティション１５０ａ、１５０ｂ、１５０ｎ（図１）などのストレージエリアに、識別シーケンシャル書き込みストリームの書き込みデータを集約することができる。
【００３８】
１つの実施形態において、識別シーケンシャル書き込みストリームの書き込みデータは、当該識別シーケンシャル書き込みストリームに割り当てられる特定のシーケンシャルストリーム転送バッファパーティション１５０ａ、１５０ｂ、...１５０ｎ内に１または複数の書き込みデータのページとして集約される。一度、割り当てシーケンシャルストリーム転送バッファパーティション１５０ａ、１５０ｂ、...１５０ｎに集約およびバッファされると、シーケンシャル書き込みストリームの集約書き込みデータは、不揮発性ストレージ領域１６０ａ、１６０ｂ、...１６０ｎ（図１、４）などの当該識別シーケンシャル書き込みストリームに割り当てられる不揮発性ストレージ１２０内の特定のストレージエリアまたは領域に、１または複数の書き込みデータのページとして書き込まれる。書き込みデータが、転送バッファストレージ１４０および不揮発性ストレージ１２０に集約およびバッファされる粒度は、特定の用途に応じて変化し得ることが理解される。
【００３９】
本明細書の１つの態様において、シーケンシャルストリーム転送バッファパーティション１５０ａ、１５０ｂ、...１５０ｎの数は、特定の用途に応じて、転送バッファストレージ１４０のサイズ、入出力ワークロードのサイズおよび他の要因などの様々な要因のファンクションとして数が制限され得る。従って、１つの例において、サイズが１ＭＢ（メガバイト）の転送バッファストレージにおいて、例えば、１２０〜７２０ＫＢなどの転送バッファストレージ空間の範囲は、識別されているシーケンシャル書き込みストリームからの書き込みデータをバッファするために割り当てられ得る。従って、シーケンシャル書き込みストリームのストリーム＿ＩＤ０、ストリーム＿ＩＤ１、ストリーム＿ＩＤ２などの３つのシーケンシャル書き込みストリームが識別された例において、７２０ＫＢ転送バッファ空間は、例えば、３つの識別シーケンシャル書き込みストリームのストリーム＿ＩＤ０、ストリーム＿ＩＤ１、ストリーム＿ＩＤ２の抽出および集約書き込みデータに対して、それぞれ３つのシーケンシャルストリーム転送バッファパーティション１５０ａ、１５０ｂ、１５０ｃへとパーティション化され得る。
【００４０】
１つの実施形態において、３つのシーケンシャルストリーム転送バッファパーティション１５０ａ、１５０ｂ、１５０ｃは、サイズが固定され得る。別の実施形態において、シーケンシャルストリーム転送バッファパーティション１５０ａ、１５０ｂ、１５０ｃのサイズは、割り当てられた識別シーケンシャル書き込みストリームのサイズと、他の識別シーケンシャル書き込みストリームの数とに応じて変化し得る。
【００４１】
バッファパーティション５３０（図１）として表される残りの転送バッファ空間は、この例ではサイズが１０００ＫＢマイナス７２０ＫＢ、または２８０ＫＢであり、不揮発性ストレージ１２０からの読み出しデータをバッファする、またはシーケンシャル書き込みストリームの一部と識別されない書き込みコマンドからの書き込みデータなどの残りの書き込みデータをバッファする未割り当て空間であり得る。例えば、不揮発性ストレージ１２０に対するランダム、非シーケンシャルデータ書き込み、ガベージコレクションおよび他のデータ再配置と関連する転送バッファ１４０にバッファされるべき書き込みデータは、データバッファパーティション５３０にバッファされ得る。転送バッファ１４０内のパーティションの数およびサイズは、特定の用途に応じて変化し得ることが理解される。
【００４２】
１つの実施形態において、シーケンシャルストリーム転送バッファパーティション１５０ａ、１５０ｂ、１５０ｃにバッファされたシーケンシャル書き込みストリームの書き込みデータが一度、不揮発性ストレージ１２０（図１）に転送されたなら、当該特定のシーケンシャルストリーム転送バッファパーティションの転送バッファストレージ空間は、バッファパーティション５３０の未割り当て空間に解放および付加され得る。別のシーケンシャル書き込みストリームの識別時に、未割り当てパーティション５３０の一部は、新たなシーケンシャル書き込みストリームパーティションとして再割り当てされ、新たに識別されたシーケンシャル書き込みストリームに割り当てられ得る。別の実施形態において、シーケンシャルストリーム転送バッファパーティション１５０ａ、１５０ｂ、１５０ｃにバッファされるシーケンシャル書き込みストリームの書き込みデータは一度、不揮発性ストレージ１２０（図１）に転送されたら、当該シーケンシャルストリーム転送バッファパーティションのストレージ空間は、別の識別シーケンシャル書き込みストリームへの割り当てを待つべく、保留にされ得る。
【００４３】
前述のように、本明細書の１つの実施形態において、１回でアクティブとなる同時シーケンシャルストリーム転送バッファパーティション１５０ａ、１５０ｂ、...１５０ｎの数は、特定の用途に応じて、転送バッファストレージ１４０のサイズ、入出力ワークロードのサイズおよび他の要因などの様々な要因のファンクションとして数が制限され得る。従って、同時シーケンシャルストリーム転送バッファパーティション１５０ａ、１５０ｂ、...１５０ｎの数は、例えば、１度に、最大限で３つの識別シーケンシャル書き込みストリームパーティションなどに制限され得る。
【００４４】
１つの実施形態において、この例において３つの同時シーケンシャルストリーム転送バッファパーティションの各々は、それに割り当てられる１つのアクティブ識別シーケンシャル書き込みストリームを有する。従って、別のアクティブシーケンシャル書き込みストリームが、同時アクティブ識別シーケンシャル書き込みストリームの最大数（この例においてそのような３つの識別同時アクティブシーケンシャル書き込みストリームである）を超えて識別された場合、シーケンシャルストリーム転送バッファパーティションは、付加的な識別シーケンシャル書き込みストリームへの割り当てには利用できないだろう。
【００４５】
そのような場合には、本明細書の別の態様によれば、最大数の同時アクティブ識別シーケンシャル書き込みストリームを超える識別シーケンシャル書き込みストリームの書き込みデータの処理は、ある期間一時停止され得る。既存のシーケンシャルストリーム転送バッファパーティションと、当該ストレージ空間の解放との１つからの書き込みデータの転送の完了時に、シーケンシャルストリーム転送バッファパーティションは、新たに識別および前に一時停止されたシーケンシャル書き込みストリームに対して割り当てられ得、書き込みデータの処理が、新たに識別されたシーケンシャル書き込みストリームに対して再開され得る。一時停止期間の満了時に、シーケンシャルストリーム転送バッファパーティションは、新たに識別されたシーケンシャル書き込みストリームに配分および割り当てられていない場合、当該ストリームに対する書き込みデータの処理が再開され得、処理された書き込みデータは、未割り当て転送バッファパーティション５３０にバッファされ得る。未割り当て転送バッファパーティション５３０にバッファされるシーケンシャルデータは、非シーケンシャルデータと混合され得ることが認められる。
【００４６】
いくつかの実施形態において、１つより多い識別シーケンシャル書き込みストリームが、特定のシーケンシャルストリーム転送バッファパーティションに割り当てられ得ることが理解される。そうだとしたら、シーケンシャルストリーム転送バッファパーティションにバッファされ得る同時アクティブ識別アクティブシーケンシャル書き込みストリームの最大数は、それに応じて増加し得る。以下により詳細]に説明されるように、共通のエリア領域またはパーティションにバッファまたは別な方法で格納され得るシーケンシャル書き込みストリームのタイプは、１つの実施形態において、検出シーケンシャル書き込みストリームの特性のファンクションであり得る。
【００４７】
いくつかの実施形態は、転送バッファストレージ１４０などの転送バッファストレージを欠き得るか、または特定の識別シーケンシャル書き込みストリームに割り当てられる転送バッファのパーティションを欠き得ることが理解される。従って、１つの実施形態において、識別書き込みストリームの書き込みデータは、例えば、図３の書き込みストリーム管理ロジック１３６のストレージ領域書き込みストリームデータ集約ロジック３２０などのロジックによって、不揮発性ストレージのストレージエリアまたは領域へと直接抽出および集約され得る（ブロック５１８）。このように、割り当て転送バッファパーティションの識別シーケンシャルストリーム書き込みデータの集約はバイパスされ得、識別シーケンシャル書き込みストリームのために抽出される書き込みデータは、割り当て転送バッファパーティションで最初にバッファされないで、上述のように、割り当てストレージ領域１６０ａ、１６０ｂまたはストレージエリア４００ａ、４００ｂへと直接集約および格納され得る。 
【００４８】
図６は、例えば、図３の書き込みストリーム管理ロジック１３６のシーケンシャル書き込みストリーム識別ロジック３００のシーケンシャル書き込みストリーム検出ロジック３０２の動作例を示す。１つの動作において、シーケンシャル書き込みストリーム検出処理は、ブロックストレージコントローラ１１０の未決の書き込みコマンドキュー１３２（図１、２）などの共通のコマンドキューの書き込みコマンドに対して開始される（ブロック７１０）。前述のように、未決の書き込みコマンドキュー１３２は、ブロックストレージコントローラ１１０による書き込み処理を待機する書き込みコマンドキューであり、そこで、書き込みコマンドは、複数のプロセッサノード１０４ａ、１０４ｂ...１０４ｎからの複数の送信キュー１２４ａ、１２４ｂ、...１２４ｎから受信されている。その結果、シーケンシャル書き込みストリームの書き込みコマンドは、他のシーケンシャル書き込みストリームの書き込みコマンド、ならびにランダム、非シーケンシャル書き込みコマンドと混合される。
【００４９】
図２において最も良く分かるように、未決の書き込みコマンドキュー１３２は、エントリ７１２ａ−７１２ｈによって表されるキュー１３２の書き込みコマンドごとにエントリを有する。この例において、シーケンシャル書き込みストリーム検出処理が開始される（ブロック７１０）次の書き込みコマンドは、「ヘッド」矢印によって示されるキューのヘッドに現在あるエントリ７１２ｃの書き込みコマンドである。キューのエントリの数は、特定の用途に応じて変化し得ることが理解される。 
【００５０】
キュー１３２の各エントリ７１２ａ−７１２ｈは、例えば、キューエントリフィールド７１４ａ−７１４ｄで表わされる複数のキューエントリフィールドを有する。第１のキューエントリフィールド７１４ａは、ブロックストレージコントローラ１１０（図１）による書き込み処理を待機するエントリの書き込みコマンドそれ自体を含む。この実施形態において、キューエントリフィールド７１４ｂ−７１４ｄは、エントリの書き込みコマンドと関連した様々なパラメータを識別する。従って、第２のキューエントリフィールド７１４ｂは、エントリのコマンドが得られた特定の送信キューを書き込みコマンドパラメータとして識別する。第３のキューエントリフィールド７１４ｃは、エントリの書き込みコマンドのターゲットまたは宛先アドレスを識別する。例示された実施形態において、書き込みコマンドのターゲットアドレスは、不揮発性ストレージ１２０の物理的アドレスにブロックストレージコントローラ１１０によって変換されるロジカルブロックアドレッシング（ＬＢＡ）フォーマットにて規定される。第４のキューエントリフィールド７１４ｃは、エントリの書き込みコマンドの書き込み動作の書き込みデータによって占有されるべきストレージ空間の長さを識別する。長さは、ＬＢＡアドレスの範囲、または例えば、バイト、ページ、ブロックなどの物理的ストレージ空間量に換算して表現され得る。 
【００５１】
例えば、図７は、各ＬＢＡ範囲  ＬＢＡ０、ＬＢＡ１...ＬＢＡｎの長さまたはサイズＬが、範囲ごとに変化するシーケンシャルで隣接するＬＢＡ範囲  ＬＢＡ０、ＬＢＡ１...ＬＢＡｎによって表わされる不揮発性ストレージ１２０のストレージ空間の部分７８０を示す。この例において、不揮発性ストレージ１２０に格納される場合、シーケンシャル書き込みストリーム指定ストリーム＿０の書き込みデータが、４つのシーケンシャルで隣接するＬＢＡ範囲ＬＢＡ１、ＬＢＡ２、ＬＢＡ３およびＬＢＡ４によって表される論理的に隣接するアドレス空間に書き込まれるだろう。４つのＬＢＡ範囲ＬＢＡ１、ＬＢＡ２、ＬＢＡ３およびＬＢＡ４は、シーケンシャルで隣接するので、各ＬＢＡ範囲の始めのＬＢＡアドレスは、前のＬＢＡ範囲の終わりのＬＢＡアドレスから連続して続く。従って、ＬＢＡ範囲ＬＢＡ２の始めのＬＢＡアドレスは、この例では、ＬＢＡ範囲ＬＢＡ１である前のＬＢＡ範囲の終わりのＬＢＡアドレスから連続して続く。同様にして、他のシーケンシャル書き込みストリームのストリーム１、ストリーム２の各ＬＢＡ範囲の始めのＬＢＡアドレスは、特定のシーケンシャル書き込みストリームの一連のＬＢＡ範囲について、前のＬＢＡ範囲の終わりのＬＢＡアドレスから連続して続く。 
【００５２】
キュー１３２のヘッドでのエントリ７１２ｃの書き込みコマンドに対するシーケンシャル書き込みストリーム検出処理の開始（ブロック７１０）時に、ヘッドエントリ７１２ｃのキューエントリフィールド７１４ｂ−ｄに格納される書き込みコマンドパラメータが、確認され得（ブロック７１６）、図２の「履歴」矢印によって示されるように、この例ではエントリ７１２ｂである前の履歴エントリのキューエントリフィールド７１４ｂ−ｄに格納される対応書き込みコマンドパラメータと比較される（ブロック７１８）。従って、ヘッドエントリ７１２ｃの書き込みコマンドが、書き込みデータを図７の書き込み宛先ＬＢＡ範囲ＬＢＡ２に書き込む書き込みコマンドである場合であり、前の履歴エントリ７１２ｂの書き込みコマンドが、その書き込みデータを図７の書き込み宛先ＬＢＡ範囲ＬＢＡ１に書き込む書き込みコマンドである場合、それらの２つのコマンドエントリのＬＢＡおよび長さパラメータは、一致を示すことになる。すなわち、ヘッドエントリ７１２ｃのキューエントリフィールド７１４ｃ、７１４ｄによって定義されるＬＢＡ範囲ＬＢＡ２の始めのＬＢＡアドレスは、前の履歴エントリ７１２ｂのキューエントリフィールド７１４ｃ、７１４ｄによって定義されるＬＢＡ範囲ＬＢＡ１である前のＬＢＡ範囲の終わりのＬＢＡアドレスから連続して続くことになる。従って、ヘッドエントリおよび前の履歴エントリの書き込みコマンドのパラメータは、それらの２つのエントリの書き込みコマンドは、シーケンシャル書き込みストリームの可能性の高い書き込みコマンドであることを示す。
【００５３】
比較パラメータは、シーケンシャル書き込みストリームの一連の書き込みコマンドのうちの２つの書き込みコマンドの予期されるそれらと一致する場合（ブロック７２２）、「ヒット」が、図３の検出履歴データ構造７２４のデータ構造などの適切なデータ構造に記録される。ブロック７２２の動作と関連して記録される「ヒット」が３つの連続ヒットの３番目と判定された（ブロック７２６）場合、シーケンシャル書き込みストリームの正検出は戻され（ブロック７３０）、検出履歴データ構造７２４に記録される（図３）。
【００５４】
シーケンシャル書き込みストリームが一度検出されたなら、シーケンシャル書き込みストリーム識別ロジック３００（図３）によってシーケンシャルストリーム識別に割り当てられる。検出書き込みストリームに割り当てられる特定のシーケンシャル書き込みストリーム識別は、以下により詳細に説明されるように、検出シーケンシャル書き込みストリームに対して検出される書き込み速度といった、検出シーケンシャル書き込みストリームの特性などの付加的な要因に依存し得る。 
【００５５】
さらに、キューのヘッドにおけるエントリ７１４ｃの書き込みコマンドの書き込み処理は、本明細書において述べられるように、シーケンシャルストリーム識別を使用して開始され得る。キューのヘッドは、次のエントリ７１４ｄにインクリメントされ得、キューの履歴マーカは、次のエントリ７１４ｃにインクリメントされ得る。シーケンシャル書き込みストリーム検出処理は、エントリ７１４ｄの次の書き込みコマンドに対して開始され得る（ブロック７１０）。
【００５６】
比較パラメータが、シーケンシャル書き込みストリームの一連の書き込みコマンドの２つの書き込みコマンドのうち予期されるそれらと一致しない場合（ブロック７２２）、ヘッドエントリ７１２ｃの書き込みコマンドがおそらくシーケンシャル書き込みストリームの書き込みコマンドではない、すなわち、「ヒット無」であることを示す場合、検出履歴データ構造７２４（図３）に記録される検出履歴が確認され（ブロック７４０）、シーケンシャル書き込みストリームの前の検出を示す、パラメータ一致に対する３連続ヒットが以前に記録されているかどうかを判定する（ブロック７４４）。そうだとしたら、キュー１３２のヘッドエントリ７１２ｃ後に次のエントリ７１２ｄの書き込みコマンドのキューエントリフィールド７１４ｂ−ｄに格納される書き込みコマンドパラメータが確認され得（ブロック７５０）、この例では、エントリ７１２ｂである前の履歴エントリのキューエントリフィールド７１４ｂ−ｄに格納される対応書き込みコマンドパラメータと比較され得る（ブロック７５４）。従って、次のエントリ７１２ｄの書き込みコマンドが、書き込みデータを図７の書き込み宛先ＬＢＡ範囲ＬＢＡ２に書き込む書き込みコマンドである場合であり、前の履歴エントリ７１２ｂの書き込みコマンドが、その書き込みデータを図７の書き込み宛先ＬＢＡ範囲ＬＢＡ１に書き込む書き込みコマンドである場合、それらの２つのコマンドエントリのＬＢＡおよび長さパラメータは、一致を示すことになる。
すなわち、ヘッドエントリ７１２ｃのキューエントリフィールド７１４ｃ、７１４ｄによって定義されるＬＢＡ範囲ＬＢＡ２の始めのＬＢＡアドレスは、前の履歴エントリ７１２ｂのキューエントリフィールド７１４ｃ、７１４ｄによって定義されるＬＢＡ範囲ＬＢＡ１である前のＬＢＡ範囲の終わりのＬＢＡアドレスから連続して続くことになる。従って、次のエントリ７１２ｄおよび前の履歴エントリ７１２ｂの書き込みコマンドのパラメータは、それらの２つのエントリの書き込みコマンドは、シーケンシャル書き込みストリームの可能性の高い書き込みコマンドであることを示し、シーケンシャル書き込みストリーム「ヒット」が示される（ブロック７６０）。
【００５７】
比較パラメータが、シーケンシャル書き込みストリームの一連の書き込みコマンドの２つの書き込みコマンドのうち予期されるそれらと一致する、「ヒット」を示す場合（ブロック７６０）、シーケンシャル書き込みストリームの正検出が戻され（ブロック７６６）、共通のキュー１３２が再オーダされ、それにより、この例では、エントリ７１４ｄの書き込みコマンドであるヒットの書き込みコマンドがキューのヘッドにあることになり、その結果、書き込み処理が、エントリ７１４ｃの書き込みコマンドに対して上述のように、エントリ７１４ｄの書き込みコマンドに対して開始され得る。
【００５８】
シーケンシャル書き込みストリームの正検出の戻り（ブロック７６６）は、検出履歴データ構造７２４に記録される。シーケンシャル書き込みストリームが一度検出されたら、上述のように、書き込み処理のために、シーケンシャル書き込みストリーム識別ロジック３００（図３）によってシーケンシャルストリーム識別に割り当てられる。
【００５９】
比較パラメータが、シーケンシャル書き込みストリームの一連の書き込みコマンドの２つの書き込みコマンドのうち予期されるそれらと一致しない場合（ブロック７６０）、次のエントリ７１２ｄの書き込みコマンドが、履歴エントリ７１２ｂに対して、おそらくシーケンシャル書き込みストリームの書き込みコマンドではない、すなわち、「ヒット無」であることを示す場合、この例では上述のようにして、キュー１３２のエントリ７１２ｄ後の次のエントリ７１２ｅの書き込みコマンドのキューエントリフィールド７１４ａ−ｄに格納される書き込みコマンドパラメータが確認され（ブロック７５０）、エントリ７１２ｂである前の履歴エントリのキューエントリフィールド７１４ａ−ｄに格納される対応書き込みコマンドパラメータと比較され得る（ブロック７５４）。付加的なヒットに対する未決の書き込みキュー１３２の検索が一度、付加的なヒットなく完了したとすると、キュー１３２のヘッドにおける書き込みコマンドが書き込み処理され得、ヘッドエントリインジケータが次のキューエントリ７１２ｄに移動され得、履歴インジケータが次のキューエントリ７１２ｃに移動され得、図７のシーケンシャル書き込みストリーム検出プロセスは、未決の書き込みコマンドキューの書き込みコマンド全てが、シーケンシャル書き込みストリームの検出および処理される書き込みに対して検査されてしまうまで、繰り返され得る。
【００６０】
前述のように、識別シーケンシャル書き込みストリームの数が、最大数の同時アクティブ識別シーケンシャル書き込みストリームを超える場合、付加的なシーケンシャル書き込みストリームの処理は、ある期間一時停止され得る。既存のシーケンシャルストリーム転送バッファパーティションと、当該ストレージ空間の解放との１つからの書き込みデータの転送の完了時に、シーケンシャルストリーム転送バッファパーティションが、新たに識別されたシーケンシャル書き込みストリームに対して割り当てられ得、書き込みデータの処理が、再開され得る。一時停止期間の満了時に、シーケンシャルストリーム転送バッファパーティションは、新たに識別されたシーケンシャル書き込みストリームに配分および割り当てられていない場合、当該ストリームに対する書き込みデータの処理が再開され得、処理された書き込みデータは、未割り当て転送バッファパーティション５３０にバッファされ得る。
【００６１】
例示された実施形態において、シーケンシャル書き込みストリーム書き込み速度検出ロジック３１０（図３）は、検出シーケンシャル書き込みストリームの書き込み速度を、検出シーケンシャル書き込みストリームの書き込みコマンド間の時差のファンクションとして決定する。１つの例において、時差は、共通の未決書き込みバッファ１３２（図１）における特定の検出シーケンシャル書き込みストリームのシーケンシャル書き込みコマンドの到達の間で決定され得る。シーケンシャル書き込みストリームのシーケンシャル書き込みコマンド間の到達時間差は、検出履歴データ構造７２４などのデータ構造に記録され得る。１つの実施形態において、シーケンシャル書き込みストリームのシーケンシャル書き込みコマンド間の到達時間差の平均は、検出シーケンシャル書き込みストリームの書き込み速度の基準を提供すべく決定され得る。特定の用途に応じて、検出シーケンシャル書き込みストリームのための書き込み速度を測定すべく他の技術が使用され得ることが理解される。
【００６２】
本明細書の１つの態様において、検出シーケンシャル書き込みストリームの書き込み速度は、いくつかの例において、例えば、１．０のライトアンプリフィケーション程度に低減すべく採用され得る。前述のように、多くのソリッドステートドライブにおいて、不揮発性ストレージは通常、１度にストレージブロックが消去される。従って、消去ブロック、すなわち、消去されるブロックのコンテンツ全体は、同時に消去される。
【００６３】
ブロックのコンテンツの全てが１回で消去され得るように、ホストが１回で当該ブロックのコンテンツの全てを更新した場合、ライトアンプリフィケーションは、１．０程度に低減され得る。逆に、特定のブロックのコンテンツのいくつかのみが更新され、更新される用意ができていないブロックの残りのコンテンツがそれにもかかわらず有効である場合、現在データ、残りの非更新の有効な現在データは、ブロックが消去され得る前に、非更新データを保存すべくガベージコレクションプロセスによって再配置される。データ再配置の結果とて、ライトアンプリフィケーションは１．０を超えて上昇する。
【００６４】
データ再配置に起因してライトアンプリフィケーションが１．０より上に上昇する例においてさえ、データ再配置プロセスそれ自体は、本明細書によるシーケンシャル書き込みストリーム管理によって促進され得ることが理解される。例えば、再配置されるデータが大きな部分においてシーケンシャルに再パックされた場合、データ読み出し動作の効率は、例えば、再配置データが、読み出し動作ごとに複数の４Ｋブロックなどの大きな部分にてシーケンシャルに配置されることに起因して、改善され得る。
【００６５】
本明細書の１つの態様によれば、検出シーケンシャル書き込みストリームは、シーケンシャル書き込みストリーム書き込み速度検出ロジック３１０によって、検出シーケンシャル書き込みストリームのために測定される書き込み速度のファンクションとして、シーケンシャル書き込みストリーム識別ロジック３００によって識別され得る。同じまたは同様の書き込み速度を有する検出シーケンシャル書き込みストリームの書き込みデータは、同時または同様の時間で更新される傾向があることが理解される。従って、同じまたは同様の書き込み速度を有する検出シーケンシャル書き込みストリームに対する書き込みデータは、ガベージコレクションデータ再配置を低減することによってライトアンプリフィケーションの低減を促進すべく、同じストレージエリアまたは領域に配置され得る。
【００６６】
従って、例えば、シーケンシャル書き込みストリームのストリーム−０およびストリーム−１例えば、図４）などの２つの異なる検出シーケンシャル書き込みストリームに対する書き込み速度が、同じまたは同様（例えば、特定の書き込み速度範囲内など）と測定された場合、２つの異なるシーケンシャル書き込みストリームは、例えば、ストリーム＿ＩＤ０などの同じシーケンシャル書き込みストリーム識別名または番号によって識別され得る。従って、図４のストリームのストリーム−０およびストリーム−１などの２つの異なる検出シーケンシャル書き込みストリームのための書き込みデータは、シーケンシャル書き込みストリーム識別、この例においてストリーム＿ＩＤ０に割り当てられている、例えば、同じ書き込み速度データ集約ストレージ領域１６０ａに配置され得る。前述のように、同じシーケンシャル書き込みストリーム識別を有するシーケンシャルストリームの書き込みデータは、検出シーケンシャル書き込みストリームに対して、書き込みデータ宛先アドレス指定（例えば、ＬＢＡなど）および送信キュー元情報に基づいて、ストレージ領域１６０ａのエリア４００ａ、４００ｂなどの書き込みデータ集約ストレージエリアに隣接して、再オーダおよびパックされ得る。
【００６７】
シーケンシャル書き込みストリーム管理が、ソリッドステートドライブの効率を改善し得る１つの例は、ソリッドステートドライブに対して、複数の仮想マシンおよび複数のコマンド送信キューを有すべく、多くの場合仮想化されるエンタープライズシステムにおいてである。様々な送信キューのキュー深度が比較的低い状況においてさえ、複数の仮想マシンからの入出力動作の混合に起因して、シーケンシャル書き込み性能が著しく低下され得ることが本明細書において理解される。そのような動作の混合は、ソリッドステートドライブに備えられているシーケンシャル書き込みストリームのシーケンシャル性を難読化する場合がある。 
【００６８】
例えば、多くのエンタープライズレベルシステムにて動作するエンタープライズソフトウェアは、多くの場合、仮想マシンをホストするサーバまたは他のコンピューティングデバイスの予期しない電源故障の場合におけるデータ損失回復のためになんらかの形式のジャーナリング技術を利用する。シーケンシャル書き込みストリームに対するそのようなデータ損失回復プロセスは、保存されるべきシーケンシャル書き込みデータが、バッファが満たされるまで循環バッファへとシーケンシャルに書き込まれる循環バッファ技術を頻繁に採用する。バッファが一度バッファの終わりまで満たされると、書き込み動作はバッファの始めまでループバックする。その結果、保存されるべき付加的な書き込みデータは、循環バッファの始めに最も古いシーケンシャル書き込みデータをシーケンシャルに上書きする。このようにして、最も新しいシーケンシャル書き込みデータが、予期しない電源故障の場合に保存されている。１回で保存されるシーケンシャル書き込みデータの量は、循環バッファのサイズのファンクションである。
【００６９】
しかしながら、様々な仮想マシンからの書き込みコマンドの混合に起因して、様々な循環バッファの書き込みデータは、ソリッドステートストレージにおいて、互いに、およびランダムかつ非シーケンシャルな書き込みデータと混合され得る。従って、ソリッドステートストレージブロックのコンテンツは、同時に更新されない場合があり、それによりガベージコレクションデータ再配置およびライトアンプリフィケーションを増大する場合がある。結果として、ソリッドステートドライブ性能は、低下され得る。
【００７０】
本明細書のシーケンシャル書き込みストリーム管理の１つの実施形態によれば、シーケンシャル書き込みストリームに対するより速いストレージ応答が提供され得るが、一方ランダム書き込みは、ライトアンプリフィケーションに起因してより低い性能を受け得る。多くのホスト用途において、ホストは、データ回復ジャーナル更新を優先度の高い書き込み動作として処理し、その上、サービスされないままである（または低バンド幅でサービスされた）場合、ホストは非ジャーナル書き込み動作を阻止し得る。
【００７１】
本明細書の１つの態様において、書き込みストリームが、各循環バッファタイプのストレージエリアのより古い書き込みデータを上書きすべくループバックするレートが同じである限り、著しい性能の低下なく、ストレージの循環タイプバッファに対する２つの異なるシーケンシャル書き込みストリームが混合され得ることが認められる。１つの実施形態において、シーケンシャルストリームの書き込み速度は、データが循環タイプのバッファに更新されるループバックレートである。その結果、同じまたは同様の書き込み速度を有する２つの異なるシーケンシャル書き込みストリームの書き込みデータの混合にかかわらず、ライトアンプリフィケーションは、１．０程度に低減され得る。
【００７２】
例えば、第１のシーケンシャル書き込みストリーム＿０（図７）は、例えば、１０ＭＢなどの第１のサイズを有する循環バッファと実際には視覚化され得る。同様に、第２のシーケンシャル書き込みストリーム＿０は、例えば、２０ＭＢなどの第２の異なるサイズを有する循環バッファと実際には視覚化され得る。本明細書によれば、２つの異なるシーケンシャル書き込みストリームの書き込みデータは共に混合され、例えば、ストレージ領域１６０ａなどの同じストレージバンドへと配置され、２つのシーケンシャル書き込みストリームのループバックレート、すなわち、書き込み速度が同じである場合、例えば１．０などの低ライトアンプリフィケーションを維持することが認められる。
【００７３】
従って、２つの異なる検出シーケンシャル書き込みストリームは、例えばストリーム＿ＩＤ０などの単一の識別シーケンシャル書き込みストリームと識別され得、２つの検出シーケンシャル書き込みストリームは、同じまたは同様のループバックレートの形式で同じまたは同様の書き込み速度を有するので、例えば、１．０などの低ライトアンプリフィケーションを保持し得る。それらのループバックレートは同じであるので、シーケンシャル書き込みストリームのストリーム＿０およびストリーム＿１に対するストレージエリア４００ａは、シーケンシャル書き込みストリームのストリーム＿０およびストリーム＿１の混合書き込みデータから成り、それらのそれぞれのサイズまたは書き込みレートに比例して１：２（１０：２０ＭＢ）の比率にて混合されるだろう。従って、シーケンシャル書き込みストリームのストリーム＿０およびストリーム＿１を発行するホストソフトウェアは、ストレージエリア４００ａが一度満たされるとぐるりとループバックする場合、ガベージコレクションプロセスは、ストレージエリア４００ａ内の無効化ストレージブロックを十分に発見することになり、これらのストリームに対して低ライトアンプリフィケーションという結果になるだろう。
【００７４】
シーケンシャル書き込みストリーム書き込み速度検出ロジック３１０による書き込み速度検出の精度を改善すべく、ソリッドステートドライブ１０６に対するプロセッサノード１０４ａ−１０４ｎ内のホストソフトウェアのドライバソフトウェアは、シーケンシャル書き込みストリームがソリッドステートドライブ１０６に向けられることを特徴付けるデータを提供し得る。例えば、ホストのソリッドステートドライブドライバソフトウェアは、検出シーケンシャル書き込みストリームごとの書き込み速度決定を促進すべく、各シーケンシャル書き込みストリームのサイズを識別するデータを提供し得る。シーケンシャル書き込みストリームサイズデータおよび他のシーケンシャル書き込みストリーム特性データは、例えば、適切な書き込みコマンドを使用して、ドライバソフトウェアによってブロックストレージコントローラ１１０に渡され得る。シーケンシャル書き込みストリーム特性データは、特定の用途に応じて、他の技術およびフォーマットを用いてホストからソリッドステートドライブ１０６に渡され得ることが理解される。
【００７５】
前述のように、１つの実施形態において、ライトアンプリフィケーションを低減すべく、異なる書き込み速度を有する識別シーケンシャル書き込みストリームの書き込みデータは、例えば、上述のように、異なる転送バッファパーティション、または不揮発性ストレージの異なるストレージエリアもしくは領域であり得る別個のストレージバンドに書き込まれ得る。複数の識別シーケンシャル書き込みストリームを調整すべく複数のオープンバンドを有することにより、書き込みデータ更新の完了前の予期しない電源故障の場合に、データを回復するためのデータ損失回復技術に複雑さを付加する場合があることが理解される。１つの実施形態において、そのようなデータ損失回復は、書き込みデータが識別シーケンシャル書き込みストリームごとに、割り当てストレージバンドに安全に集約および格納される前に、様々な識別シーケンシャル書き込みストリームに対して抽出されている書き込みデータを記録する適切なジャーナルを提供することによって促進され得る。例えば、データ損失回復のための１つの既知の技術は、ストレージの更新プロセスを完了する前に電源が不意に喪失される場合に、書き込み更新データを記録する「間接更新ジャーナル」の使用を含む。そのような間接更新ジャーナルは通常、適切な間接更新ジャーナル用の不揮発性ストレージについてＧＢにつき付加的な１ＭＢを利用している。 
【００７６】
本明細書の１つの態様におけるシーケンシャル書き込みストリーム管理は、たとえ書き込みコマンドがキュー処理されず、別な方法でシーケンシャルに処理されたとしても、例えば、転送バッファなどのストレージエリアのコンテンツをシーケンシャルになるようにオーダすることできることが上記から分かる。いくつかの実施形態において、これは、例えば、元の直接メモリーアクセス（ＤＭＡ）シーケンスとは異なるオーダとなる不揮発性ストレージのデータの再オーダ化という結果になり得る。そのような再オーダ化は、例えば、特に０．５ＫＢ粒度でのデータ書き込みなどのより大きいホストデータ書き込みに対して、データ損失回復技術に複雑さを付加する場合があることが理解される。前述のように、そのようなデータ損失回復は、書き込みデータが識別シーケンシャル書き込みストリームごとに、割り当てストレージバンドに安全に集約および格納される前に、様々な識別シーケンシャル書き込みストリームに対して抽出されている書き込みデータを記録する適切なジャーナルを提供することによって促進され得る。 
【００７７】
シーケンシャル書き込みストリーム検出および書き込み速度検出は、検出動作を調整すべく付加的な処理およびメモリリソースを利用し得ることが、さらに理解される。しかしながら、そのような変形は、ストレージ効率の改善と、ホストレベルの入出力ボトルネックを低減または回避することとによりオフセットされるだろうことが考えられる。 
【００７８】
図８は、本明細書によるシーケンシャル書き込みストリーム管理を採用する、コンピューティングシステム８００の別の例の選択態様を示す上位ブロック図である。システム８００は、メモリまたはストレージデバイスを含み得る複数の電子デバイスおよび／またはコンピューティングデバイスのいずれかを表し得る。そのような電子デバイスおよび／またはコンピューティングデバイスは、メインフレーム、サーバ、パーソナルコンピュータ、ワークステーション、テレフォニデバイス、ネットワーク機器、仮想化デバイス、ストレージコントローラ、可搬または携帯デバイス（例えば、ラップトップ、ネットブック、タブレットコンピュータ、携帯情報端末（ＰＤＡ）、可搬型メディアプレーヤ、可搬型ゲームデバイス、デジタルカメラ、携帯電話、スマートフォン、フィーチャーフォンなど）、または構成要素（例えば、システムオンチップ、プロセッサ、ブリッジ、ブロックストレージコントローラ、ストレージなど）等のコンピューティングデバイスを含み得る。代替的な実施形態では、システム８００は、より多数の構成要素、より少数の構成要素、および／または異なる構成要素を含み得る。その上、システム８００は別個の構成要素を含むように図示され得るが、そのような構成要素は１つのプラットフォーム、例えば、システムオンチップ（ＳｏＣ）等、に統合され得ることが理解されよう。例示の実施例では、システム８００は、マイクロプロセッサ８２０、ブロックストレージコントローラ８３０、メモリまたはストレージ８４０および周辺構成要素８５０を含み、周辺構成要素８５０は、例えば、ビデオコントローラ、入力デバイス、出力デバイス、ストレージ、ネットワークアダプタなどを含み得る。マイクロプロセッサ８２０は、命令およびデータを格納するメモリ階層の一部であり得る処理ロジック８２７およびキャッシュ８２５を含み、システムメモリまたはストレージ８４０は、メモリまたはストレージ階層の一部でもあり得る。マイクロプロセッサ８２０とメモリまたはストレージ８４０との間の通信はブロックストレージコントローラ（またはチップセット）８３０により容易にされ得、それにより周辺構成要素８５０との通信もまた容易となり得る。
【００７９】
周辺構成要素８５０のストレージは、例えば、ソリッドステートドライブ、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、フラッシュメモリなどの、不揮発性ストレージであり得る。ストレージは、内部ストレージデバイスもしくは取付け型またはネットワークアクセス可能なストレージを備え得る。マイクロプロセッサ８２０は、メモリまたはストレージ８４０にデータを書き込み、それからデータを読み出すように構成される。ストレージ中のプログラムは、メモリへとロードされ、プロセッサにより実行される。ネットワークコントローラまたはネットワークアダプタは、イーサネット（登録商標）、ファイバ・チャネル調停ループなどの、ネットワークとの通信を可能にする。さらに、アーキテクチャは、特定の実施形態では、ディスプレイモニタで情報をレンダリングするように構成されたビデオコントローラを含み得、ビデオコントローラは、ビデオカード上に具体化されるか、またはマザーボードまたは他の基板に搭載された集積回路構成要素に統合され得る。入力デバイスは、ユーザ入力をプロセッサに提供するために使用され、キーボード、マウス、ペンスタイラス、マイクロフォン、タッチ感応型ディスプレイスクリーン、入力ピン、ソケット、もしくは当該技術分野で既知の任意の他の起動または入力手段を含み得る。出力デバイスは、プロセッサ、または、表示モニタ、プリンタ、ストレージ、出力ピン、ソケットなどの、他の構成要素から送信された情報をレンダリングできる。ネットワークアダプタは、周辺構成要素相互接続（ＰＣＩ）カード、ＰＣＩエクスプレス、または何か他のＩ／Ｏカード等の、ネットワークカード上に、もしくはマザーボードまたは他の基板に搭載された集積回路構成要素上に具体化され得る。
【００８０】
特定の用途に応じて、デバイス８００のコンポーネントの１または複数は、省略され得る。例えば、ネットワークルータは、例えば、ビデオコントローラを欠き得る。メモリデバイス８２５、８４０、および他のデバイス８００、８３０、８５０の任意の１または複数は、本明細書によるシーケンシャル書き込みストリーム管理を含み得る。  ［例］  以下の例はさらなる実施形態に関係する。
【００８１】
例１は、複数のプロセッサノードの複数のコマンド送信キューと共に使用するための装置であり、
複数のストレージ空間領域を有する不揮発性ストレージと、共通のコマンドキューを有するストレージコントローラとを含むソリッドステートストレージドライブを備え、コントローラは、
複数のコマンド送信キューからの複数の書き込みコマンドを共通のコマンドキューにおいてキュー処理し、
共通のコマンドキューにおいてキュー処理された書き込みコマンドを実行するように構成され、
コントローラは、書き込みコマンドの第１および第２のシーケンシャル書き込みストリームを検出するように構成されるシーケンシャル書き込みストリーム検出ロジックを含むシーケンシャル書き込みストリーム識別ロジックを有し、
シーケンシャル書き込みストリーム識別ロジックは、検出された第１および第２のシーケンシャル書き込みストリームを、検出された第１および第２のシーケンシャル書き込みストリームの特性のファンクションとして、第１および第２の識別シーケンシャル書き込みストリームとそれぞれ識別するように構成され、
コントローラはさらに、書き込みストリーム識別のファンクションとして、ソリッドステートストレージの異なるシーケンシャル書き込みストリーム領域へと実行中のコマンドの書き込みデータを書き込むように構成されるシーケンシャル書き込みストリーム集約ロジックを有し、
ソリッドステートストレージの第１のシーケンシャル書き込みストリームストレージ領域に第１の識別シーケンシャル書き込みストリームの書き込みデータを集約することと、
ソリッドステートストレージの第２のシーケンシャル書き込みストリームストレージ領域に第２の識別シーケンシャル書き込みストリームの書き込みデータを集約することと
を含む。 
【００８２】
例２において、例１−７（本例を除く）の主題は、ソリッドステートストレージドライブはさらに、シーケンシャル書き込みストリームバッファパーティションを有する転送バッファストレージを含み、
コントローラはさらに、シーケンシャル書き込みストリーム識別ロジックによる書き込みストリーム識別のファンクションとして、転送バッファストレージの異なるシーケンシャル書き込みストリームバッファパーティションへと実行中のコマンドの書き込みデータを書き込むように構成される転送バッファパーティション書き込みストリームデータ集約ロジックを有し、転送バッファパーティション書き込みストリームデータ集約ロジックは、
転送バッファストレージの第１のシーケンシャル書き込みストリームバッファパーティションにおける第１の識別シーケンシャル書き込みストリームの書き込みデータを集約することと、
転送バッファストレージの第２のシーケンシャル書き込みストリームバッファパーティションに第２の識別シーケンシャル書き込みストリームの書き込みデータを集約することと
を含むことを任意に含むことができる。
【００８３】
例３において、例１−７（本例を除く）の主題は、シーケンシャル書き込みストリーム検出ロジックはさらに、書き込みコマンドの第３のシーケンシャル書き込みストリームを検出するように構成され、
シーケンシャル書き込みストリーム識別ロジックはさらに、第１および第３の検出シーケンシャル書き込みストリームの特性のファンクションとして、検出された第３のシーケンシャル書き込みストリームを第１の識別シーケンシャル書き込みストリームと識別するように構成され、
ストレージコントローラはさらに、書き込みストリーム識別のファンクションとして、ソリッドステートストレージの異なる領域へと実行中のコマンドの書き込みデータを書き込むことは、ソリッドステートストレージの第１の領域エリアにおける第３の検出シーケンシャル書き込みストリームの書き込みデータを集約することを含むように構成される、
ことを任意に含むことができる。
【００８４】
例４において、例１−７（本例を除く）の主題は、シーケンシャル書き込みストリーム識別ロジックはさらに、検出シーケンシャル書き込みストリームごとに書き込み速度特性を決定するように構成されるシーケンシャル書き込みストリーム書き込み速度検出ロジックを含み、
シーケンシャル書き込みストリーム識別ロジックはさらに、第１の識別シーケンシャル書き込みストリームとして検出された第１および第３のシーケンシャル書き込みストリームを識別すること、および、検出された第２のシーケンシャル書き込みストリームを第２の識別シーケンシャル書き込みストリームとして識別することが、第１の範囲に検出された書き込み速度特性を有する検出された第１および第３のシーケンシャル書き込みストリーム、および、第２の範囲に検出された書き込み速度特性を有する検出された第２のシーケンシャル書き込みストリームのファンクションであるように構成される、
ことを任意に含むことができる。
【００８５】
例５において、例１−７（本例を除く）の主題は、シーケンシャル書き込みストリーム検出ロジックはさらに、
書き込みコマンドの第１および第２のシーケンシャル書き込みストリームを検出することは、共通のコマンドキューの書き込みコマンドのパラメータを確認することであって、パラメータは書き込みデータ宛先パラメータを含む、確認することと、２つの書き込みコマンドの書き込みデータ宛先パラメータが、シーケンシャル書き込みストリームに対する一連の書き込みコマンドの２つの書き込みコマンドのパラメータと一致するかどうかを判定すること
とを含むように構成されることを任意に含むことができる。
【００８６】
例６において、例１−７（本例を除く）の主題は、パラメータは、共通のコマンドキューの書き込みコマンドごとにコマンド送信キュー元パラメータを含むことを任意に含むことができることを任意に含むことができる。
【００８７】
例７において、例１−７（本例を除く）の主題は、シーケンシャル書き込みストリーム集約ロジックはさらに、ソリッドステートストレージの第１の領域に第１の識別シーケンシャル書き込みストリームの書き込みデータを集約することは、
第１のシーケンシャル書き込みストリームの書き込み宛先アドレス特性を含む第１の識別シーケンシャル書き込みストリームの特性のファンクションとして、第１の領域内に隣接して第１の識別シーケンシャル書き込みストリームの書き込みデータをシーケンシャルに再オーダおよびパックすることを含むように構成される、
ことを任意に含むことができる。
【００８８】
例８は、複数のコマンド送信キューを有する複数のプロセッサノードと、
複数のストレージ空間領域を有する不揮発性ストレージと、共通のコマンドキューを有するストレージコントローラとを含むソリッドステートストレージドライブと、
ストレージに格納されるデータを表すデータを表示するためのビデオコントローラと
を備えるディスプレイと共に使用するためのシステムであり、
ストレージコントローラは、
複数のコマンド送信キューからの複数の書き込みコマンドを共通のコマンドキューにおいてキュー処理し、
共通のコマンドキューにおいてキューされた書き込みコマンドを実行するように構成され、
ストレージコントローラは、書き込みコマンドの第１および第２のシーケンシャル書き込みストリームを検出するように構成されるシーケンシャル書き込みストリーム検出ロジックを含むシーケンシャル書き込みストリーム識別ロジックを有し、
シーケンシャル書き込みストリーム識別ロジックは、検出された第１および第２のシーケンシャル書き込みストリームを、検出された第１および第２の検出シーケンシャル書き込みストリームの特性のファンクションとして、第１および第２の識別シーケンシャル書き込みストリームとそれぞれ識別するように構成され、
ストレージコントローラはさらに、書き込みストリーム識別のファンクションとして、ソリッドステートストレージの異なるシーケンシャル書き込みストリーム領域へと実行中のコマンドの書き込みデータを書き込むように構成されるシーケンシャル書き込みストリーム集約ロジックを有し、
ソリッドステートストレージの第１のシーケンシャル書き込みストリームストレージ領域に第１の識別シーケンシャル書き込みストリームの書き込みデータを集約することと、ソリッドステートストレージの第２のシーケンシャル書き込みストリームストレージ領域に第２の識別シーケンシャル書き込みストリームの書き込みデータを集約することと
を含む。
【００８９】
例９において、例８−１４（本例を除く）の主題は、ソリッドステートストレージドライブはさらに、シーケンシャル書き込みストリームバッファパーティションを有する転送バッファストレージを有する転送バッファストレージを含み、
ストレージコントローラはさらに、シーケンシャル書き込みストリーム識別ロジックによる書き込みストリーム識別のファンクションとして、転送バッファストレージの異なるシーケンシャル書き込みストリームバッファパーティションへと実行中のコマンドの書き込みデータを書き込むように構成される転送バッファパーティション書き込みストリームデータ集約ロジックを有し、転送バッファパーティション書き込みストリームデータ集約ロジックは、
転送バッファストレージの第１のシーケンシャル書き込みストリームバッファパーティションにおける第１の識別シーケンシャル書き込みストリームの書き込みデータを集約することと、
転送バッファストレージの第２のシーケンシャル書き込みストリームバッファパーティションにおける第２の識別シーケンシャル書き込みストリームの書き込みデータを集約することと
を含むことを任意に含むことができる。 
【００９０】
例１０において、例８−１４（本例を除く）の主題は、シーケンシャル書き込みストリーム検出ロジックはさらに、書き込みコマンドの第３のシーケンシャル書き込みストリームを検出するように構成され、
シーケンシャル書き込みストリーム識別ロジックはさらに、第１および第３の検出シーケンシャル書き込みストリームの特性のファンクションとして、検出された第３のシーケンシャル書き込みストリームを第１の識別シーケンシャル書き込みストリームと識別するように構成され、
メモリストレージコントローラはさらに、書き込みストリーム識別のファンクションとして、ソリッドステートストレージの異なる領域へと実行中のコマンドの書き込みデータを書き込むことは、ソリッドステートストレージの第１の領域エリアにおける第３の検出シーケンシャル書き込みストリームの書き込みデータを集約することを含むように構成される、
ことを任意に含むことができる。 
【００９１】
例１１において、例８−１４（本例を除く）の主題は、シーケンシャル書き込みストリーム識別ロジックはさらに、検出シーケンシャル書き込みストリームごとに書き込み速度特性を決定するように構成されるシーケンシャル書き込みストリーム書き込み速度検出ロジックを含み、
シーケンシャル書き込みストリーム識別ロジックはさらに、第１の識別シーケンシャル書き込みストリームとして検出された第１および第３のシーケンシャル書き込みストリームを識別すること、および、検出された第２のシーケンシャル書き込みストリームを第２の識別シーケンシャル書き込みストリームとして識別することが、第１の範囲に検出された書き込み速度特性を有する検出された第１および第３のシーケンシャル書き込みストリーム、および、第２の範囲に検出された書き込み速度特性を有する検出された第２のシーケンシャル書き込みストリームのファンクションであるように構成される、
ことを任意に含むことができる。
【００９２】
例１２において、例８−１４（本例を除く）の主題は、シーケンシャル書き込みストリーム検出ロジックはさらに、
書き込みコマンドの第１および第２のシーケンシャル書き込みストリームを検出することは、共通のコマンドキューの書き込みコマンドのパラメータを確認することであって、パラメータは書き込みデータ宛先パラメータを含む、確認することと、
２つの書き込みコマンドの書き込みデータ宛先パラメータが、シーケンシャル書き込みストリームに対する一連の書き込みコマンドの２つの書き込みコマンドのパラメータと一致するかどうかを判定すること
とを含むように構成されることを任意に含むことができる。
【００９３】
例１３において、例８−１４（本例を除く）の主題は、パラメータは、共通のコマンドキューの書き込みコマンドごとにコマンド送信キュー元パラメータを含むことを任意に含むことができる。
【００９４】
例１４において、例８−１４（本例を除く）の主題は、シーケンシャル書き込みストリーム集約ロジックはさらに、ソリッドステートストレージの第１の領域に第１の識別シーケンシャル書き込みストリームの書き込みデータを集約することは、
第１のシーケンシャル書き込みストリームの書き込み宛先アドレス特性を含む第１の識別シーケンシャル書き込みストリームの特性のファンクションとして、第１の領域内に隣接して第１の識別シーケンシャル書き込みストリームの書き込みデータをシーケンシャルに再オーダおよびパックすることを含むように構成される、
ことを任意に含むことができる。
【００９５】
例１５は、共通のコマンドキューの複数のコマンド送信キューからの複数の書き込みコマンドをキュー処理する工程と、
共通のコマンドキューにキュー処理された書き込みコマンドを実行する工程と
書き込みコマンドの第１および第２のシーケンシャル書き込みストリームを検出する工程と、
検出された第１および第２のシーケンシャル書き込みストリームを、検出された第１および第２の検出シーケンシャル書き込みストリームの特性のファンクションとして、第１および第２の識別シーケンシャル書き込みストリームとそれぞれ識別する工程と、
書き込みストリーム識別のファンクションとして、ソリッドステートストレージの異なるシーケンシャル書き込みストリーム領域へと実行中のコマンドの書き込みデータを書き込む工程と
を備える方法であって、
書き込みデータを書き込む工程は、
ソリッドステートストレージの第１のシーケンシャル書き込みストリームストレージ領域に第１の識別シーケンシャル書き込みストリームの書き込みデータを集約する工程と、
ソリッドステートストレージの第２のシーケンシャル書き込みストリームストレージ領域に第２の識別シーケンシャル書き込みストリームの書き込みデータを集約する工程と
を有する。
【００９６】
例１６において、例１５−２１（本例を除く）の主題は、書き込みストリーム識別のファンクションとして、転送バッファストレージの異なるシーケンシャル書き込みストリームバッファパーティションへと実行中のコマンドの書き込みデータを書き込む工程をさらに含み、転送バッファストレージの書き込みデータを書き込む工程は、
転送バッファストレージの第１のシーケンシャル書き込みストリームバッファパーティションにおける第１の識別シーケンシャル書き込みストリームの書き込みデータを集約する工程と、
転送バッファストレージの第２のシーケンシャル書き込みストリームバッファパーティションにおける第２の識別シーケンシャル書き込みストリームの書き込みデータを集約する工程と
を有する、
ことを任意に含むことができる。
【００９７】
例１７において、例１５−２１（本例を除く）の主題は、書き込みコマンドの第３のシーケンシャル書き込みストリームを検出する工程と、
第１および第３の検出シーケンシャル書き込みストリームの特性のファンクションとして、検出された第３のシーケンシャル書き込みストリームを第１の識別シーケンシャル書き込みストリームと識別する工程と
をさらに含み、
書き込みストリーム識別のファンクションとして、ソリッドステートストレージの異なる領域へと実行中のコマンドの書き込みデータを書き込む工程は、
ソリッドステートストレージの第１の領域エリアにおける第３の検出シーケンシャル書き込みストリームの書き込みデータを集約する工程をさらに有する、
ことを任意に含むことができる。
【００９８】
例１８において、例１５−２１（本例を除く）の主題は、検出シーケンシャル書き込みストリームごとに書き込み速度特性を決定する工程をさらに含み、
第１の識別シーケンシャル書き込みストリームとして検出された第１および第３のシーケンシャル書き込みストリームを識別する工程、および、検出された第２のシーケンシャル書き込みストリームを第２の識別シーケンシャル書き込みストリームとして識別する工程が、第１の範囲に検出された書き込み速度特性を有する検出された第１および第３のシーケンシャル書き込みストリーム、および、第２の範囲に検出された書き込み速度特性を有する検出された第２のシーケンシャル書き込みストリームのファンクションである、
ことを任意に含むことができる。
【００９９】
例１９において、例１５−２１（本例を除く）の主題は、書き込みコマンドの第１および第２のシーケンシャル書き込みストリームを検出する工程は、共通のコマンドキューの書き込みコマンドのパラメータを確認する工程であって、パラメータは書き込みデータ宛先パラメータを含む、工程と、
２つの書き込みコマンドの書き込みデータ宛先パラメータが、シーケンシャル書き込みストリームに対する一連の書き込みコマンドの２つの書き込みコマンドのパラメータと一致するかどうかを判定する工程
とを有することを任意に含むことができる。
【０１００】
例２０において、例１５−２１（本例を除く）の主題は、パラメータは、共通のコマンドキューの書き込みコマンドごとにコマンド送信キュー元パラメータを含むことを任意に含むことができることを任意に含むことができる。
【０１０１】
例２１において、例１５−２１（本例を除く）の主題は、ソリッドステートストレージの第１の領域に第１の識別シーケンシャル書き込みストリームの書き込みデータを集約する工程は、
第１のシーケンシャル書き込みストリームの書き込み宛先アドレス特性を含む第１の識別シーケンシャル書き込みストリームの特性のファンクションとして、第１の領域内に隣接して第１の識別シーケンシャル書き込みストリームの書き込みデータをシーケンシャルに再オーダおよびパックする工程を含む、
ことを任意に含むことができる。
【０１０２】
例２２において、例１−７の主題は、ディスプレイと共に使用するためのシステムを任意に含むことができ、システムは、複数のコマンド送信キューを有する複数のプロセッサノードと、ソリッドステートストレージドライブと、ストレージに格納されるデータを示すデータを表示するビデオコントローラとを有する。
【０１０３】
例２３は、任意の前述の例に記載される方法を実行する手段を含む装置である。
【０１０４】
説明される動作は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを生産する標準プログラミングおよび／または工学技法を用いて、方法、装置、またはコンピュータプログラム製品として実装され得る。説明される動作は、プロセッサによるコンピュータ可読記憶媒体からコードの読み出しおよび実行し得る「コンピュータ可読記憶媒体」に維持されたコンピュータプログラムコードとして実装され得る。コンピュータ可読記憶媒体は、電子回路部、ストレージ材料、無機材料、有機材料、生物材料、ケース類、筐体、被覆物、およびハードウェアのうちの少なくとも１つを含む。コンピュータ可読記憶媒体は限定されないが、磁気記憶媒体（例えば、ハードディスクドライブ、フロッピー（登録商標）ディスク、テープなど）、光ストレージ（ＣＤ―ＲＯＭ、ＤＶＤ、光ディスクなど）、揮発性および不揮発性メモリデバイス（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、フラッシュメモリ、ファームウェア、プログラム可能ロジックなど）、ソリッドステートデバイス（ＳＳＤ）などを含み得る。説明される動作を実装するコードは、ハードウェアデバイス（例えば、集積回路チップ、プログラム可能ゲートアレイ（ＰＧＡ）、特定用途向集積回路（ＡＳＩＣ）など）に実装されたハードウェアロジック回路にさらに実装され得る。さらに、説明される動作を実装するコードは、「送信信号」中にも実装され得、このような送信信号は空間を介して、または光ファイバ、銅電線などの、送信媒体を通って伝搬し得る。コードまたは論理が符号化された送信信号は、無線信号、衛星送信、電波、赤外線信号、ブルートゥース（登録商標）などをさらに含み得る。コンピュータ可読記憶媒体に埋め込まれたプログラムコードは、送信局またはコンピュータから受信局またはコンピュータに送信信号として送信され得る。コンピュータ可読記憶媒体は、送信信号のみで構成されるものではない。当業者であれば、本明細書の適用範囲から逸脱することなくこの構成に多くの修正がなされ得、製造物品には当該技術分野で既知の適切な情報保持媒体を含み得ることを認識するだろう。もちろん、当業者は、本明細書の範囲から逸脱することなく、多くの修正が本構成に対しなされ得、製造物品は、当該技術分野で既知の任意の有形情報保持媒体を含み得ることを認識するだろう。
【０１０５】
特定の用途では、本明細書によるデバイスは、モニタまたはコンピュータシステムに結合された他のディスプレイに表示する情報をレンダリングするビデオコントローラ、デバイスドライバ、およびネットワークコントローラを含むコンピュータシステム、例えば、デスクトップ、ワークステーション、サーバ、メインフレーム、ラップトップ、手持ち型コンピュータなどを備えたコンピュータシステムに具体化され得る。あるいは、デバイスとしての実施形態は、例えば、スイッチ、ルータなどの、ビデオコントローラを含まない、または、例えば、ネットワークコントローラを含まない、コンピューティングデバイスに具体化され得る。
【０１０６】
説明される図のロジックは、特定の順序で起こるある特定のイベントを示し得る。代替的な実施形態では、特定の動作は異なる順序で実行され、修正され、または除去され得る。その上、上記に説明されるロジックには動作を付加し得るが、それらもやはり説明される実施形態に従い得る。さらに、本明細書において説明された動作は、シーケンシャル発生し得るか、またはある特定の動作は並列に処理され得る。また、動作は単一の処理ユニットにより、または分散型処理ユニットにより実行され得る。 
【０１０７】
様々な実施形態に関する以上の説明は、図解および説明の目的で提示されたものである。それらは包括的に意図されたものではなく、または開示した厳密な形態に限定するように意図されたものでもない。上記の教示に鑑みて多くの修正例および変形例が可能である。 
【図１】
0006729914.tif 000002
【図２】
0006729914.tif 000003
【図３】
0006729914.tif 000004
【図４】
0006729914.tif 000005
【図５】
0006729914.tif 000006
【図６】
0006729914.tif 000007
【図７】
0006729914.tif 000008
【図８】
0006729914.tif 000009