(57)【特許請求の範囲】
【請求項１】
ストレージ装置を含む電子システムであって、
前記ストレージ装置は、調節コマンド、論理ブロックアドレスコマンド、又はキー値（ｋｅｙ−ｖａｌｕｅ）コマンドのいずれかを含むインタフェイスコマンドを受信するように構成され、
インタフェイス制御ユニットと、
前記インタフェイス制御ユニットに連結され、前記調節コマンドに基づいて論理ブロックアドレスコマンドを実行するように構成された第１中央処理装置と、
前記インタフェイス制御ユニットに連結され、前記調節コマンドに基づいてキー値（ｋｅｙ−ｖａｌｕｅ）コマンドを実行するように構成された第２中央処理装置と、
揮発性メモリ、前記第１中央処理装置、及び前記第２中央処理装置に連結され、前記論理ブロックアドレスコマンド及び前記キー値コマンドを前記第１中央処理装置及び前記第２中央処理装置が独立的に且つ同時に処理するために利用されるように構成された不揮発性ストレージと、を含み、
前記論理ブロックアドレスコマンド又は前記キー値コマンドを完了した後に、前記第１中央処理装置又は前記第２中央処理装置は、細部状態（ａ  ｄｅｔａｉｌｅｄ  ｓｔａｔｕｓ）をコンパイル（ｃｏｍｐｉｌｅ）するように構成され、
前記インタフェイス制御ユニットは、装置連結構造体に連結され、前記細部状態を装置ドライバに伝達することによって、前記インタフェイスコマンドに応答するように構成された、ことを特徴とする電子システム。
【請求項２】
前記インタフェイス制御ユニットは、前記論理ブロックアドレスコマンドを分析するように構成された第１コマンドプロセッサを含む、ことを特徴とする請求項１に記載の電子システム。
【請求項３】
前記インタフェイス制御ユニットは、前記キー値コマンドを分析するように構成された第２コマンドプロセッサを含む、ことを特徴とする請求項１に記載の電子システム。
【請求項４】
前記インタフェイス制御ユニットは、前記ストレージ装置のファームウェア及びハードウェアを再構成するための調節コマンドを分析するように構成された第１コマンドプロセッサを含む、ことを特徴とする請求項１に記載の電子システム。
【請求項５】
前記インタフェイスコマンドのフォーマットを分析し、前記インタフェイスコマンドのＤＷＯＲＤ１５に基づいて、前記インタフェイスコマンドの要請を抽出する第１コマンドプロセッサ又は第２コマンドプロセッサに、前記インタフェイスコマンドを伝送（ｒｏｕｔｅ）するように構成されたコマンドマルチプレクサをさらに含む、ことを特徴とする請求項１に記載の電子システム。
【請求項６】
前記ストレージ装置は、前記論理ブロックアドレスコマンドを実行するように構成された前記第１中央処理装置によってアクセスされる前記不揮発性ストレージに連結された前記揮発性メモリをさらに含む、ことを特徴とする請求項１に記載の電子システム。
【請求項７】
前記ストレージ装置は、前記キー値コマンドを実行するように構成された第２中央処理装置によってアクセスされる前記不揮発性ストレージに連結された前記揮発性メモリをさらに含む、ことを特徴とする請求項１に記載の電子システム。
【請求項８】
複数の中央処理装置から前記第１中央処理装置を選択するために、前記インタフェイス制御ユニットは、前記インタフェイスコマンドを分析するように構成される、ことを特徴とする請求項１に記載の電子システム。
【請求項９】
調節コマンドを実行し、前記論理ブロックアドレスコマンド、前記キー値コマンド、又はこれらの組合せを実行する前記複数の中央処理装置の中の１つ以上を再構成するように構成された第１コマンドプロセッサをさらに含む、ことを特徴とする請求項８に記載の電子システム。
【請求項１０】
前記インタフェイス制御ユニットは、ホストプロセッサにロードされたキー値アプリケーションプログラムインタフェイス（ＡＰＩ）又は論理ブロックアドレスアプリケーションプログラムインタフェイス（ＡＰＩ）に応答して、前記装置ドライバによって生成された前記インタフェイスコマンドを受信するように構成された、ことを特徴とする請求項１に記載の電子システム。
【請求項１１】
電子システムの動作方法であって、
ストレージ装置によって、調節コマンド、論理ブロックアドレスコマンド、又はキー値（ｋｅｙ−ｖａｌｕｅ）コマンドのいずれかを含むインタフェイスコマンドを受信する段階と、
論理ブロックアドレスコマンド又はキー値コマンドを完了した後、第１中央処理装置又は第２中央処理装置によって細部状態をコンパイルする段階と、
前記細部状態を装置連結構造体を通じて装置ドライバに伝達することで、前記インタフェイスコマンドに応答する段階と、を含み、
前記ストレージ装置によって、前記インタフェイスコマンドを受信する段階は、
インタフェイス制御ユニットで前記インタフェイスコマンドを分析する段階と、
前記調節コマンドに基づいて前記論理ブロックアドレスコマンドを実行するように構成された前記第１中央処理装置を選択するか、又は前記調節コマンドに基づいて前記キー値コマンドを実行するように構成された前記第２中央処理装置を選択する段階と、
不揮発性ストレージにアクセスする前記論理ブロックアドレスコマンド又は前記キー値コマンドを処理する段階と、を含み、
前記論理ブロックアドレスコマンド又は前記キー値コマンドを処理する段階は、
前記論理ブロックアドレスコマンドが前記第１中央処理装置で処理される場合、他のインタフェイスコマンドを受信したことに応じて、前記キー値コマンドが前記第２中央処理装置で前記論理ブロックアドレスコマンドとは独立的に且つ同時に処理され、
前記キー値コマンドが前記第２中央処理装置で処理される場合、他のインタフェイスコマンドを受信したことに応じて、前記論理ブロックアドレスコマンドが前記第１中央処理装置で前記キー値コマンドとは独立的に且つ同時に処理されることを特徴とする電子システムの動作方法。
【請求項１２】
前記インタフェイス制御ユニットで前記インタフェイスコマンドを分析する段階は、
前記インタフェイス制御ユニット内のコマンドマルチプレクサによって選択された第１コマンドプロセッサによって、前記インタフェイスコマンドを分析して前記論理ブロックアドレスコマンドを識別する段階をさらに含む、ことを特徴とする請求項１１に記載の電子システムの動作方法。
【請求項１３】
前記インタフェイス制御ユニットで前記インタフェイスコマンドを分析する段階は、
前記インタフェイス制御ユニット内のコマンドマルチプレクサによって選択された第２コマンドプロセッサによって、前記インタフェイスコマンドを分析して前記キー値コマンドを識別する段階をさらに含む、ことを特徴とする請求項１１に記載の電子システムの動作方法。
【請求項１４】
前記インタフェイス制御ユニットで前記インタフェイスコマンドを分析する段階は、
前記インタフェイス制御ユニット内のコマンドマルチプレクサによって選択された第１コマンドプロセッサによって、前記インタフェイスコマンドを分析して前記ストレージ装置のファームウェア及びハードウェアを再構成するための調節コマンドを識別する段階をさらに含む、ことを特徴とする請求項１１に記載の電子システムの動作方法。
【請求項１５】
前記インタフェイス制御ユニットで前記インタフェイスコマンドを分析する段階は、
前記インタフェイス制御ユニット内のコマンドマルチプレクサによって前記インタフェイスコマンドのフォーマットを分析し、前記インタフェイスコマンドのＤＷＯＲＤ１５に基づいて、前記インタフェイスコマンドの要請を抽出する第１コマンドプロセッサ又は第２コマンドプロセッサに、前記インタフェイスコマンドを伝送（ｒｏｕｔｅ）する段階をさらに含む、ことを特徴とする請求項１１に記載の電子システムの動作方法。
【請求項１６】
前記論理ブロックアドレスコマンドを実行するように構成された前記第１中央処理装置によって、揮発性メモリにアクセスする段階をさらに含む、ことを特徴とする請求項１１に記載の電子システムの動作方法。
【請求項１７】
前記キー値コマンドを実行するように構成された前記第２中央処理装置によって、揮発性メモリにアクセスする段階をさらに含む、ことを特徴とする請求項１１に記載の電子システムの動作方法。
【請求項１８】
前記インタフェイス制御ユニットで前記インタフェイスコマンドを分析する段階は、
複数の中央処理装置の中から前記第１中央処理装置を選択するために前記インタフェイスコマンドを分析する段階をさらに含む、ことを特徴とする請求項１１に記載の電子システムの動作方法。
【請求項１９】
前記論理ブロックアドレスコマンド、前記キー値コマンド、又はこれらの組合せを実行する１つ以上の中央処理装置を再構成する前記調節コマンドを実行する段階をさらに含む、ことを特徴とする請求項１１に記載の電子システムの動作方法。
【請求項２０】
前記ストレージ装置によって、前記インタフェイスコマンドを受信する段階は、
ホストプロセッサにロードされたキー値アプリケーションプログラムインタフェイス又は論理ブロックアドレスアプリケーションプログラムインタフェイスに応答して、前記装置ドライバによって生成された前記インタフェイスコマンドを受信する段階をさらに含む、ことを特徴とする請求項１１に記載の電子システムの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的に電子システムに関し、さらに具体的にはデータストレージ機能を備えた電子システム及びそれの動作方法に関する。
【背景技術】
【０００２】
現代のソリッドステートディスク（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｉｓｋ、ソリッドステートドライブともいう、以下、ＳＳＤと略す）は、データ操作）の際の高速応答能力の故にデータストレージ戰略上、急成長セグメントを表している。
多数のＳＳＤは、磁気ディスクドライブ（ｍａｇｎｅｔｉｃ  ｄｉｓｋ  ｄｒｉｖｅｓ）よりも大容量、低電力消費、及び高性能のデータセンタに提供できるが、ＳＳＤへの移行（ｍｉｇｒａｔｉｏｎ）が強勢になるに連れて、データブロックのサイズが何故５１２バイト（ｂｙｔｅｓ）に制限されなければならないのかを巡る疑問が生じている。
歴史的に見ると従来の５１２バイトブロックは、往時の磁気記録媒体の信頼性問題を処理するのに適したサイズであった。それ故に最近でも、殆どのＯＳ（ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍｓ、以下、ＯＳと略す）は、この固定ブロックサイズに束縛されている。
【０００３】
特に大容量データベースの操作（ｍａｎｉｐｕｌａｔｉｏｎ）に係る業務の計画・実行（ロジスティクス、ｌｏｇｉｓｔｉｃｓ）となると、このＯＳの技術的な弱点が露出される。そこで固定ブロックサイズを増加させるため、いくつかの取組み方法が企てられ、その内、一部のストレージ製造メーカは５１２エミュレーションモードを実行することによって内部データブロックサイズを隠す手段に訴えている。このようにすることで、該、ストレージ製造メーカは、典型的には１〜４キロバイトという、５１２バイトよりも大きい内部データブロックを使用していることをユーザに見えないようにしながら、固定ブロックインタフェイスによるデータ転送（ｔｒａｎｓｆｅｒ）の非効率性に対処して来た。しかし、このような戰略は複雑なエラー復旧プロセスを必要とするので、小規模且つ単一のブロック更新でさえも、「読出し−変更−書込み」動作（ｒｅａｄ−ｍｏｄｉｆｙ−ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎｓ）として実行されなければならず、深刻な性能低下を惹起する。
【０００４】
従って、インタフェイス制御メカニズムを備えた電子システムについて、特にクラスタコンピュータ環境における動作の際の信頼性と性能を向上する必要性の問題が残っている。
持続的に増加する商業的競争と、増大する消費者の期待と、市場における製品の意味ある差別化の機会の減少と、に鑑みると、このような問題に対する回答を発見することが益々重要になっている。その上、生産費用を削減し、製品の効率性及び性能を向上し、そして商業的競争圧力を凌ぐという要請が重なるので、上記の問題に対する回答の発見は緊急を要する。
【０００５】
このような問題の解決策は長らく求められてきたが、これまでの研究開発状況では、このような問題に対する解決策は到底、当業者に届けられていない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許公開第２０１３／０２７５６５６号明細書
【特許文献２】米国特許公開第２０１３／００８６３１１号明細書
【特許文献３】米国特許公開第２０１４／０３０４５２５号明細書
【特許文献４】米国特許公開第２０１４／０３３１００１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は向上された性能のデータストレージ機能を備えた電子システム及びそれの動作方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一実施形態によるストレージ装置を含む電子システムにおいて、前記ストレージ装置は、調節コマンド、論理ブロックアドレスコマンド、又はキー値（ｋｅｙ−ｖａｌｕｅ）コマンドのいずれかを含むインタフェイスコマンドを受信するように構成され、インタフェイス制御ユニットと、前記インタフェイス制御ユニットに連結され、前記調節コマンドに基づいて論理ブロックアドレス（ＬＢＡ）コマンドを実行するように構成された第１中央処理装置と、前記インタフェイス制御ユニットに連結され、前記調節コマンドに基づいてキー値（ｋｅｙ−ｖａｌｕｅ）コマンドを実行するように構成された第２中央処理装置と、揮発性メモリ、前記第１中央処理装置、及び前記第２中央処理装置に連結され、前記論理ブロックアドレスコマンド及び前記キー値コマンドを前記第１中央処理装置及び前記第２中央処理装置が独立的に且つ同時に処理するために利用されるように構成された不揮発性ストレージと、を含み、前記論理ブロックアドレスコマンド又は前記キー値コマンドを完了した後に、前記第１中央処理装置又は前記第２中央処理装置は、細部状態（ａ  ｄｅｔａｉｌｅｄ  ｓｔａｔｕｓ）をコンパイル（ｃｏｍｐｉｌｅ）するように構成され、前記インタフェイス制御ユニットは、装置連結構造体に連結され、前記細部状態を装置ドライバに伝達することによって、前記インタフェイスコマンドに応答するように構成される。
【０００９】
本発明の一実施形態によるストレージ装置を含む電子システムの動作方法において、ストレージ装置によって、調節コマンド、論理ブロックアドレスコマンド、又はキー値（ｋｅｙ−ｖａｌｕｅ）コマンドのいずれかを含むインタフェイスコマンドを受信する段階と、論理ブロックアドレスコマンド又はキー値コマンドを完了した後、第１中央処理装置又は第２中央処理装置によって細部状態をコンパイルする段階と、前記細部状態を装置連結構造体を通じて装置ドライバに伝達することで、前記インタフェイスコマンドに応答する段階と、を含み、前記ストレージ装置によって、前記インタフェイスコマンドを受信する段階は、インタフェイス制御ユニットで前記インタフェイスコマンドを分析する段階と、前記調節コマンドに基づいて前記論理ブロックアドレスコマンドを実行するように構成された前記第１中央処理装置を選択するか、又は前記調節コマンドに基づいて前記キー値コマンドを実行するように構成された前記第２中央処理装置を選択する段階と、不揮発性ストレージにアクセスする前記論理ブロックアドレスコマンド又は前記キー値コマンドを処理する段階と、を含み、前記論理ブロックアドレスコマンド又は前記キー値コマンドを処理する段階は、前記論理ブロックアドレスコマンドが前記第１中央処理装置で処理される場合、他のインタフェイスコマンドを受信したことに応じて、前記キー値コマンドが前記第２中央処理装置で前記論理ブロックアドレスコマンドとは独立的に且つ同時に処理され、前記キー値コマンドが前記第２中央処理装置で処理される場合、他のインタフェイスコマンドを受信したことに応じて、前記論理ブロックアドレスコマンドが前記第１中央処理装置で前記キー値コマンドとは独立的に且つ同時に処理される。
【発明の効果】
【００１０】
本発明の実施形態によれば、向上された性能のデータストレージ機能を備えた電子システム及びそれの動作方法が提供される。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態によるインタフェイス制御メカニズムを有する電子システムの構造を示すブロック図である。
【図２】本発明の実施形態のストレージ装置の調節コマンドのフローチャートを示す。
【図３】本発明の一実施形態による電子システムによるコマンド解析のフローチャートを示す。
【図４】本発明の他の実施形態による電子システムの動作方法のフローチャートを示す。
【発明を実施するための形態】
【００１２】
本願の多様な実施形態は、より軽負担の入出力構造（ａｒｃｈｉｔｅｃｔｕｒｅ）を構築することで、大容量のデータベースに対するインタフェイス制御メカニズムを提供する。この場合、該インタフェイス制御メカニズムは分散入出力インタフェイスを単純化し、電子システムの実行効率を最大化する。該インタフェイス制御メカニズムは、入出力ストレージのスタック構造を利用せずにユーザプログラムで使用されるデータを即席で（ｏｎ−ｔｈｅ−ｆｌｙ）処理するように構成されるか、或いはＯＳの固定ブロック構造を支援するように構成される。
ストレージ装置に効率的なアクセスを提供し、最大のプログラム実行効率を提供するため、インタフェイス制御メカニズムの実行はユーザプログラムレベルで構成される。
【００１３】
多様な実施形態は、通常の入出力ストレージスタックの外部における大容量転送（ｔｒａｎｓｆｅｒｓ）を許容するか、或いはＯＳ構造（ＯＳ  ａｒｃｈｉｔｅｃｔｕｒｅ）によって提供された標準固定ブロック転送を許容することによって、大容量データベースに対するインタフェイス制御メカニズムを提供する。
また、本、インタフェイス制御メカニズムはデータ又は論理ブロックアドレス（ＬＢＡ）に割当てられたキー値（ｋｅｙ−ｖａｌｕｅ）に基づいてデータの操作を可能にする。
データ管理メカニズムは、ＯＳを通じた入出力呼出しを生成することなくホストの中央処理装置（ＣＰＵ）及びシステムメモリ内で動作する。
このように、システムメモリ内のユーザが定義した領域からインタフェイス制御メカニズムを実行できると、キー値ストレージ装置の動作特性を管理する一方で優先順位の高い動作を提供できる。
また、この電子システムは最近のＯＳにおいて一般的な固定ブロック構造をも支援する。このような組合せはデータ管理メカニズムの効率と動作性能とを増大させる。
【００１４】
下記の実施形態は、当業者が本発明を遂行し利用するのに十分な程度に詳細に記述される。現在の開示に基づいて他の実施形態が明らかになり、本発明の実施形態の範囲を逸脱しないシステム、プロセス、又は機械的な変形が遂行できることが理解されるであろう。
【００１５】
下記の記述において本発明の完全な理解のために多数の特定細部内容が提供される。しかし、このような特定細部事項が無くとも本発明が遂行できることは明白であろう。本発明の実施形態を却って曖昧にしないために、幾つかの広く公知された回路、システム構成、及びプロセス段階の詳細は開示しない。
【００１６】
システムの実施形態を示す図面は半図式的（ｓｅｍｉ−ｄｉａｇｒａｍｍａｔｉｃ）であり、寸法は厳密ではない。特に、システムの実施形態を示す図面の寸法の一部は本発明を明確に提示するために図面上で誇張して示される。同様に、記述を簡単にするため図面の視点は一般的に類似な方向で示すが、図面中のこのような表現は大部分任意である。一般的に本発明は任意の視点方向で動作できる。
【００１７】
本明細書で言及される“モジュール”という用語はこのような用語が使用される文脈に従ってソフトウェア、ハードウェア、又は本発明の実施形態におけるこれらの組合せを含む。例えば、ソフトウェアはマシンコード、ファームウェア、組込み型コード（ｅｍｂｅｄｄｅｄ  ｃｏｄｅ）及びアプリケーションソフトウェア（ａｐｐｌｉｃａｔｉｏｎ  ｓｏｆｔｗａｒｅ）の何れかである。また、例えばハードウェアは回路、プロセッサ、コンピュータ、集積回路、集積回路コア、圧力センサ、慣性センサ、マイクロ電子機械システムＭＥＭＳ（ｍｉｃｒｏｅｌｅｃｔｒｏｍｅｃｈａｎｉｃａｌ  ｓｙｓｔｅｍ）、受動素子）、又はこれらの組合せである。さらに、モジュールが下記の装置請求項に作成される場合、モジュールは装置請求項の目的と範囲に関するハードウェア回路を含むこととして看做される。
【００１８】
本明細書で、言及される“ユニット”という用語は特定の機能のために使用されるハードウェア部品又はハードウェア状態マシン（ｓｔａｔｅ  ｍａｃｈｉｎｅｓ）から構成された回路である。“ユニット”はタイミングクリティカルな機能を具現するために設けられ、ソフトウェア機能又はソフトウェア支援を必ずしも含まない。
本明細書で言及される“通常の入出力ストレージスタック”という用語はホストシステムメモリ内の特定のメモリセグメントであって、該メモリセグメントは、ＯＳによって遂行される入出力動作に対するアドレスポインタとインタラプトフラッグ（ｉｎｔｅｒｒｕｐｔ  ｆｌａｇ）を保持するために使用される。インタラプトポインタを有するメモリをロードするために、通常の入出力ストレージスタックは、入出力（Ｉ／Ｏ）にレイテンシ（ｌａｔｅｎｃｙ）を挿入する。この場合、インタラプトポインタは固定サイズのブロックデータの転送と関連されたインタラプトサービスに基き入出力装置に対する（又は入出力装置からの）データ転送をサービスする。
【００１９】
キー値ストレージ・ソリューションを要求するデータ・ソリューションは、改良されたストレージ技術を支援する使用可能なストレージ装置を識別し決定するのに苦労している。他の難問は、キー値コマンド構造を支援するストレージ装置は、論理ブロックアドレス（ＬＢＡ）構造のみを支援するレガシシステム（ｌｅｇａｃｙ  ｓｙｓｔｅｍｓ）上では、即ち旧来のシステム上では、使用できないことである。ＬＢＡインタフェイスのストレージ装置において、キー値コマンドを支援するためには、２つの問題がある。
第１の問題は、２つのマッピング層が要求されることである。マッピング層の中で１つは、キーをインデクスとして使用してキー値の位置情報（即ち、ＬＢＡ）を取り戻すために当てられる。そして、その他の１つはブロック入出力要請（ｂｌｏｃｋ  Ｉ／Ｏ  ｒｅｑｕｅｓｔｓ）の発行に先立ってキー値の位置情報を利用して値（ｖａｌｕｅ）を取り戻すために当てられる。
第２の問題は、このような２層マッピングシステムは大規模なデータ転送オーバヘッドを必要とすることである。
しかし、データ転送の単位が固定されたサイズ（例えば、５１２バイト（ｂｙｔｅｓ）又は４キロバイト（Ｋｂｙｔｅｓ））のブロックという事実によってオーバヘッドがさらに悪化する。データのサイズがブロックのサイズと一致しない場合、固定されたサイズのブロックは不必要なデータの転送を誘発する。
【００２０】
図１を参照すれば、本発明の一実施形態によるインタフェイス制御メカニズムを有する電子システム１００の構造を示すブロック図である。電子システム１００はストレージ装置１０２を含み、該ストレージ装置１０２は、ソリッドステートドライブ（ＳＳＳＤ）と、ファイル構造（ｆｉｌｅ  ｓｔｒｕｃｔｕｒｅｓ）を識別するためのキー値によりアドレスされるキー値ストレージアダプタ（ｋｅｙ  ｖａｌｕｅ  ｓｔｏｒａｇｅ  ａｄａｐｔｅｒｓ）と、を含む。
ここで、該ソリッドステートドライブ（ＳＳＳＤ）は、フラッシュメモリ、磁気ランダムアクセスメモリ（ＭＲＡＭ）、抵抗メモリ（ＲＲＡＭ（登録商標））、相変化メモリＰＣＭ（ｐｈａｓｅ  ｃｈａｎｇｅ  ｍｅｍｏｒｙ）、及びハイブリッドディスクストレージ装置（ｈｙｂｒｉｄ  ｄｉｓｋ  ｓｔｏｒａｇｅ  ｄｅｖｉｃｅｓ）を含む。
ストレージ装置１０２は不揮発性のデータストレージメカニズム（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｄａｔａ  ｓｔｏｒａｇｅ  ｍｅｃｈａｎｉｓｍ）であって、キー値アドレッシング方式又はＬＢＡアドレッシング方式の何れかの方式によって互換的にユーザデータ（ｕｓｅｒ  ｄａｔａ）を格納及びアクセスする。
ストレージ装置１０２は、ＯＳ管理下からの通常の固定ブロックの転送（ｎｏｒｍａｌ  ｆｉｘｅｄ  ｂｌｏｃｋ  ｔｒａｎｓｆｅｒｓ）のみではなく、大容量のデータベースを管理するコンピューティング環境におけるデータ処理のために使用される。
【００２１】
装置結合構造体１０４はストレージ装置１０２をホストプロセッサ１０６と連結する。装置結合構造体１０４はホストプロセッサ１０６とストレージ装置１０２との間に連結された入出力インタフェイス構造体である。装置結合構造体１０４はＰＣＩｅ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｕｔｅｒ  ｉｎｔｅｒｆａｃｅ  ｅｘｐｒｅｓｓ）、ＦＣ（ｆｉｂｅｒ  ｃｈａｎｎｅｌ）、ＳＣＳＩ（ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ）、ＳＡＳ（ｓｅｒｉａｌ  ａｔｔａｃｈｅｄ  ＳＣＳＩ）、及びホストのメモリチャンネルインタフェイスを含む。
装置結合構造体１０４は電子システム１００に対するホスト内部アプリケーションのメモリバスとして具現される。装置結合構造体１０４はホストプロセッサ１０６及びストレージ装置１０２の間のローカル又は遠隔の接続を提供する。ストレージ装置１０２とホストプロセッサ１０６との間の装置結合構造体１０４の連結は装置結合構造体１０４の仕様（ｓｐｅｃｉｆｉｃａｔｉｏｎ）を満足させる方式により遂行される。
【００２２】
装置結合構造体１０４は、ＬＢＡ転送又はキー値転送のために、ストレージ装置１０２に対する直接連結又は通信を提供する。ＬＢＡの転送を用いる通信はＯＳによって提供された入出力呼出しを要求し、ＬＢＡ構造を利用できることが理解されよう。ストレージ装置１０２がＬＢＡ構造及び線型（ｌｉｎｅａｒ）ストレージ構造に基づいたキー値を使用できるので、ホストプロセッサ１０６からの通信は単純化できる。
【００２３】
プロセッサ１０６は一般的な目的のコンピュータ、コンピュータネットワーク、サーバー、ストレージプロセッサ、ＧＰＵ、ＡＳＩＣ、ＦＰＧＡ、ＰＬＤ、又はこれと類似なものである。ホストプロセッサ１０６はキー値装置用アプリケーションプログラムインタフェイス（ＡＰＩ、ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍ  ｉｎｔｅｒｆａｃｅ）１０８、ＬＢＡ用ＡＰＩ（１０９）、及び装置ドライバ１１０を実行する。
【００２４】
キー値装置用ＡＰＩ（１０８）はストレージ装置１０２の動作特性（ｏｐｅｒａｔｉｏｎａｌ  ｃｈａｒａｃｔｅｒｉｓｔｉｃｓ）の記述に立ち入ること無くユーザのアプリケーションがストレージ装置１０２をアクセスすることを許容するアプリケーションインタフェイスを提供する。
キー値装置用ＡＰＩ（１０８）は標準的なアプリケーションインストラクション（ｓｔａｎｄａｒｄ  ａｐｐｌｉｃａｔｉｏｎ  ｉｎｓｔｒｕｃｔｉｏｎｓ）を装置ドライバ１１０が認識可能な形式に翻訳するプログラムである。
ＬＢＡ用ＡＰＩ（１０９）は、ストレージ装置１０２が認識できるインタフェイスコマンド１１１に変換するためのアプリケーション要求（ｒｅｑｕｉｒｅｍｅｎｔｓ）を装置ドライバ１１０に伝達する。装置ドライバ１１０はＬＢＡ構造及び線型ストレージ構造に基づいたキー値の双方を支援するインタフェイスコマンド１１１を処理する。インタフェイスコマンド１１１は調節コマンド（ｃｏｎｄｉｔｉｏｎｉｎｇ  ｃｏｍｍａｎｄｓ）とデータ処理コマンド（ｄａｔａ  ｐｒｏｃｅｓｓｉｎｇ  ｃｏｍｍａｎｄｓ）とを含む。
【００２５】
装置ドライバ１１０は装置結合構造体１０４を通じて製造メーカ固有仕様版のＮＶＭｅ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ＿Ｍｅｍｏｒｙ＿Ｅｘｐｒｅｓｓ、不揮発性メモリ急行）と通信する。ストレージ装置１０２の実施形態はＬＢＡ構造を支援する基本（ｄｅｆａｕｌｔ）構成を含み、更に、キー値構造を支援できるようにストレージ装置１０２の資源の一部又は全部を変換する能力を含む。ＬＢＡ構造、キー値構造、又はこれらの組合せを支援するハードウェア及びファームウェア資源を構成するために、装置ドライバ１１０はストレージ装置１０２に調節コマンド（ｃｏｎｄｉｔｉｏｎｉｎｇ  ｃｏｍｍａｎｄ）を転送する。
【００２６】
装置ドライバ１１０は装置結合構造体１０４を通じてストレージ装置１０２内のインタフェイス制御ユニット１１２と通信する。インタフェイス制御ユニット１１２はコマンドマルチプレクサ１１４を含む。例えば、コマンドマルチプレクサ１１４は入ってくるコマンドが調節コマンド（インタフェイスコマンド１１１の一部）、ＬＢＡコマンド１１５、又はキー値コマンド１１６の中でどれかを探知する。コマンドマルチプレクサ１１４はインタフェイス制御ユニット１１２に入ってくる情報を第１コマンドプロセッサ１１７又は第２コマンドプロセッサ１１８に伝達する。ストレージ装置１０２は、装置ドライバ１１０からの調節コマンドを支援するようにインタフェイス制御ユニット１１２のハードウェア及びファームウェアを構成する。
【００２７】
一実施形態で、インタフェイス制御ユニット１１２はプロセッサ上で実行されるファームウェアから構成されるモジュール、又は、コマンド構造を復号化（ｄｅｃｏｄｉｎｇ）し、復号化されたコマンドを第１コマンドプロセッサ１１７又は第２コマンドプロセッサ１１８に伝達する専用ハードウェアを有するユニットとして具現される。該モジュールと該ユニットの何れの具現化も、電子システム１００の活用（ｕｔｉｌｉｔｙ）を支援する。
【００２８】
第１コマンドプロセッサ１１７は、電子システム１００内で直ちに利用可能な任意のコマンド処理ユニット（ＣＰＵ、ｃｏｍｍａｎｄ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）資源である。連続的なコマンドシークェンスにおいて、第１コマンドプロセッサ１１７は相異なるコマンド処理ユニット（ＣＰＵ）である。さらに、第２コマンドプロセッサ１１８は第１コマンドプロセッサ１１７のファームウェアを実行していない他の利用可能なコマンド処理ユニット（ＣＰＵ）資源であることが理解されよう。
一実施形態として、第１コマンドプロセッサ１１７はＬＢＡコマンドを支援するファームウェアを実行する単一のコマンド処理ユニット（ＣＰＵ）から構成され、第２コマンドプロセッサ１１８はキー値コマンド１１６を支援するファームウェアを実行する同一のコマンド処理ユニットであり得る。
【００２９】
ＬＢＡコマンド１１５はセクタベースのＯＳ標準コマンドであって、０から１５の番号を有する１６個のダブルワード（ＤＷＯＲＤ、ＤＷＯＲＤ当たり３２ｂｉｔ）から構成されるレジスタベースのコマンド構造によって、ホストプロセッサ１０６とストレージ装置１０２との間で転送される。
ＬＢＡコマンド１１５において、ＤＷＯＲＤ０は動作コードであり、ＤＷＯＲＤ１はシステム識別子（ＮＳＩＤ）である。ＬＢＡコマンド１１５において、ＤＷＯＲＤ２乃至ＤＷＯＲＤ１１は一般的なコマンド情報のために予約されるか、或いは使用される。ＤＷＯＲＤ１２はＬＢＡコマンド１１５に従って処理されるセクタの数を示すために使用される。ＤＷＯＲＤ１２乃至ＤＷＯＲＤ１５はキー値コマンド１１６と関連される。ＬＢＡコマンド１１５はセクタごとにのみデータを転送でき、各セクタはＬＢＡと関連された論理ブロックとして扱われる。
【００３０】
キー値コマンド１１６は０から１５の番号を有する１６個のダブルワード（ＤＷＯＲＤ、ＤＷＯＲＤ当たり３２ｂｉｔ）から構成されるレジスタベースのコマンドである。キー値コマンド１１６において、ＤＷＯＲＤ０は動作コードであり、ＤＷＯＲＤ１はシステム識別子（ＮＳＩＤ）である。キー値コマンド１１６において、ＤＷＯＲＤ２乃至ＤＷＯＲＤ１４は一般的なコマンド情報のために予約されるか、或いは使用される。ＤＷＯＲＤ１５はキー値コマンド１１６の中でキー（ｋｅｙ）の大きさに対する具体的なコンテンツである。キー値コマンド１１６はキー（データファイルの識別子）と関連されたデータの任意のバイト（ｂｙｔｅｓ）数のデータを転送する。
【００３１】
一実施形態で、第１コマンドプロセッサ１１７と第２コマンドプロセッサ１１８とはＬＢＡコマンド１１５のみを支援する基本（ｄｅｆａｕｌｔ）構成を含む。装置ドライバ１１０から発せられた調節コマンドは、第１コマンドプロセッサ１１７と第２コマンドプロセッサ１１８との中で１つのプロセッサがキー値コマンド１１６を処理するための再構成（ｒｅｃｏｎｆｉｇｕｒａｔｉｏｎ）を誘発する。第１コマンドプロセッサ１１７と第２コマンドプロセッサ１１８との中で１つのプロセッサがキー値コマンド１１６を処理するために再構成される場合のみに、ストレージ装置１０２はＬＢＡコマンド１１５とキー値コマンド１１６とを同時に処理する。
【００３２】
ＬＢＡコマンド１１５のみを支援するストレージ装置１０２の基本構成は例示的なことは理解されるべきである。また、ストレージ装置１０２の基本構成はＬＢＡコマンド１１５とキー値コマンド１１６との組合せを支援するか、或いはただ、キー値コマンド１１６のみを支援する基本構成であってもよい。ストレージ装置１０２の特定の基本構成は１つの実施形態に限定されない。さらに、ストレージ装置１０２の資源の一部はただＬＢＡコマンド１１５を実行するように割当てられ、ストレージ装置１０２の資源の残る一部はキー値コマンド１１６のみを実行するように割当てることができるので、ストレージ装置１０２はＬＢＡコマンド１１５とキー値コマンド１１６とを独立的に又は同時に実行することもできる。ストレージ装置１０２は専用資源を通じて同時に２つのコマンド種類を実行するか、或いは互いに独立的に１つのコマンドを実行する。
【００３３】
第１コマンドプロセッサ１１７又は第２コマンドプロセッサ１１８は読出し、書込み、又は消去のようなデータ処理コマンド（インタフェイスコマンド１１１の一部）を受信する。そして、第１コマンドプロセッサ１１７又は第２コマンドプロセッサ１１８は実際コマンドの処理を複数の中央処理装置１２０（ＣＰＵｓ、ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔｓ）の中で１つの中央処理装置に割当てる。例えば、複数の中央処理装置１２０は第１中央処理装置１２２と第２中央処理装置１２４とを含む。本実施形態では４つの中央処理装置を含む場合を示したが、任意の数の中央処理装置を含み得る。複数の中央処理装置１２０はビットスライスプロセッサ（ｂｉｔ−ｓｌｉｃｅ  ｐｒｏｃｅｓｓｏｒ）、マイクロプロセッサ、プログラム可能な状態マシン（ｐｒｏｇｒａｍｍａｂｌｅ  ｓｔａｔｅ  ｍａｃｈｉｎｅ）、プログラムシークェンサー（ｐｒｏｇｒａｍ  ｓｅｑｕｅｎｃｅｒ）、マイクロコンピュータ、又はこれと類似なものである。
第１コマンドプロセッサ１１７又は第２コマンドプロセッサ１１８は調節コマンドに基づいて、キー値コマンド１１６又はＬＢＡコマンド１１５を処理できるように複数の中央処理装置１２０を構成する。データ処理コマンドの実行の間に、複数の中央処理装置１２０の各々は割当てられた特定なコマンド種類を含む。そして、複数の中央処理装置１２０の各々が再構成される時まで、複数の中央処理装置１２０の各々はただ、ＬＢＡＬＢＡコマンド又はキー値コマンドのような特定種類のコマンドのみを遂行する。
【００３４】
例として、第１中央処理装置１２２は処理されるデータに対して、一時記憶、即ちキャッシュとして揮発性メモリ１２６を利用し長期ストレージ装置（ｌｏｎｇ−ｔｅｒｍ  ｓｔｏｒａｇｅ  ｍａｃｈａｎｉｓｍ）として不揮発性メモリ１２８を利用してＬＢＡコマンド１１５を実行する。
第１中央処理装置１２２はＬＢＡコマンド１１５を実行するように構成されるので、論理−物理変換テーブルは揮発性メモリ１２６に維持される。そして、論理−物理変換テーブルは電力ダウン（ｐｏｗｅｒ  ｄｏｗｎ）の前に不揮発性ストレージ１２８内の予約位置（ｒｅｓｅｒｖｅｄ  ｌｏｃａｔｉｏｎ）にコピーされる。
論理−物理変換テーブルは、ＬＢＡの各々の、不揮発性ストレージ１２８中において該ＬＢＡのデータが格納されている物理的位置への位置ポインタを維持する。
【００３５】
ＬＢＡコマンド１１５を実行する第１中央処理装置１２２と同時に、第２中央処理装置１２４はキー値コマンド１１６を実行する。第２中央処理装置１２４は処理されるデータに対して一時記憶、即ちキャッシュとして揮発性メモリ１２６を利用し、長期ストレージ装置として不揮発性メモリ１２８を利用する。
第２中央処理装置１２４はキー値コマンド１１６を実行するように構成されるので、キー値インデクスリストは揮発性メモリ１２６に維持される。そして、キー値インデクスリストは電力ダウン（ｐｏｗｅｒ  ｄｏｗｎ）の前に不揮発性ストレージ１２８内の予約位置（ｒｅｓｅｒｖｅｄ  ｌｏｃａｔｉｏｎ）にコピーされる。キー物理変換テーブルはキー（ｋｅｙ）の各々の、不揮発性ストレージ１２８中において該キーに連関する値に対するデータが格納されている物理的位置への位置ポインタを維持する。
【００３６】
不揮発性ストレージ１２８は、ハイブリッドディスクストレージ装置とキー値ストレージアダプタのみではなく、フラッシュメモリ、磁気ランダムアクセスメモリ（ＭＲＡＭ）、抵抗ランダムアクセスメモリ（ＲＲＡＭ（登録商標））、及び相変化メモリ（ＰＣＭ）を含む。不揮発性ストレージ１２８は物理的にストレージ装置１０２の上に配置されているように示したが、これは１つの実施形態であり、他の実施形態が可能であることは理解されよう。一実施形態で、不揮発性メモリ１２８はネットワーク又はケーブルに連結された格納装置であってもよく、複数の中央処理装置１２０は、ＬＢＡコマンド１１５又はキー値コマンド１１６からデータを格納するための後続コマンド（ｓｕｂｓｅｑｕｅｎｔ  ｃｏｍｍａｎｄｓ）を生成できる。
【００３７】
ＬＢＡコマンド１１５又はキー値コマンド１１６の実行が完了されれば、インタフェイスコマンド１１１（調節コマンド及びデータ処理コマンド）を完了した第１中央処理装置１２２又は第２中央処理装置１２４によって細部状態１３０（ｄｅｔａｉｌｅｄ  ｓｔａｔｕｓ）が揮発性メモリ１２６にコンパイル（ｃｏｍｐｉｌｅｄ）される。インタフェイスコマンド１１１を複数の中央処理装置１２０の中の何れか１つに割当てた第１コマンドプロセッサ１１７又は第２コマンドプロセッサ１１８によって、細部状態１３０は装置連結構造体１０４を通じて装置ドライバ１１０に転送される。
【００３８】
ストレージ装置１０２で同時にＬＢＡコマンド１１５及びキー値コマンド１１６を実行することを許容することによって、電子システム１００がホストプロセッサ１０６の性能を向上できることが確認された。キー値インデクスリスト、論理−物理変換テーブル、又はこれらの組合せを維持するために、第１コマンドプロセッサ１１７と第２コマンドプロセッサ１１８とは複数の中央処理装置１２０を構成する。この場合、キー値インデクスリスト、論理−物理テーブル又はこれらの組合せはストレージ装置１０２の読出し／書込みアクセスを可能にする。
【００３９】
図２を参照すれば、本発明の実施形態のストレージ装置の調節コマンドのフローチャート２０１を示す。
Ｓ２０２段階で、調節コマンドのフローチャートは何らかの装置ドライバが１つの装置を具現する要請を受信する過程を表現する。図１のホストプロセッサ１０６からの要請を支援するために図１の装置ドライバ１１０は、図１のキー値装置用ＡＰＩ（１０８）及びＬＢＡ用ＡＰＩ（１０９）によって図１のストレージ装置１０２を具現するように指示（ｉｎｓｔｒｕｃｔ）される。
【００４０】
ホストプロセッサ１０６は、図１のストレージ装置１０２上のＬＢＡコマンド１１５及びキー値コマンド１１６のミックス（ｍｉｘ）を支援する。要請はストレージ装置１０２との通信のために装置ドライバ１１０にロードされる。
Ｓ２０４段階で、要請は装置ドライバ１１０によって実行される。この場合、装置ドライバ１１０は調節コマンドをストレージ装置１０２に転送する。装置ドライバ１１０は図１の装置連結構造体１０４を通じて調節コマンドを図１のインタフェイス制御ユニット１１２に転送する。
【００４１】
Ｓ２０６段階で、ストレージ装置１０２は調節コマンドに応答してファームウェア又はハードウェア構成を変更する。図１の第１コマンドプロセッサ１１７は調節コマンドを受信し、該調節コマンドを満足させるために第１コマンドプロセッサ１１７はファームウェア、ハードウェア又はこれらの組合せに任意の構成の変更を発生する。
第１コマンドプロセッサ１１７は図１のストレージ装置１０２の再構成を助けるように例えば図１の第１中央処理装置１２２を構成する。ストレージ装置１０２の再構成は、複数の中央処理装置１２０に対する相異なるファームウェアのマッピングと、ＬＢＡコマンド１１５及びキー値コマンド１１６の間におけるメモリポインタを区分するためのハードウェアの構成とを含む。
【００４２】
他の構成が要請されて、ハードウェア及びファームウェアの構成の変更がなされる、引き続き追加的な調節コマンドが順次的に発生できることは理解されよう。調節コマンドは現在のシステム活動によって要求される複数の中央処理装置１２０の任意の比率におけるＬＢＡコマンド１１５及びキー値コマンド１１６に対する支援のミックス（ｍｉｘ）構成を具現する。
【００４３】
Ｓ２０８段階で、再構成が完了すると、ストレージ装置１０２はその状態（ｓｔａｔｕｓ）を装置ドライバ１１０に返信する。第１中央処理装置１２２は揮発性メモリ１２６に図１の細部状態１３０を準備する。この場合、細部状態１３０は調節コマンドによって要請された構成変更の各々の成功又は失敗を示す。第１コマンドプロセッサ１１７はホストプロセッサ１０６に応答して装置連結構造体１０４を通じて細部状態１３０を装置ドライバ１１０に伝達する。
【００４４】
ストレージ装置１０２の本実施形態は単一の調節コマンド内でストレージ装置の構成を調節することによって、装置連結構造体１０４の混雑を削減できることが判明した。ストレージ装置１０２は任意の比率を有するＬＢＡコマンド１１５及びキー値コマンド１１６ミックス（ｍｉｘ）を支援するように具現される。
【００４５】
図３は本発明の一実施形態による電子システムによるコマンド解析（ｉｎｔｅｒｐｒｅｔａｔｉｏｎ）のフローチャート３０１を示す。
Ｓ３０２段階で、コマンド解釈のフローチャートはキー値／ＬＢＡがミックスされた（ｍｉｘｅｄ）インタフェイスに対するコマンドを構成する装置ドライバを表現する。図１の装置ドライバは読出しコマンドとして“ＧＥＴ”、書込みコマンドとして“ＰＵＴ”そして、消去として“ＤＥＬＥＴＥ”を含む図１のデータ処理コマンド（インタフェイスコマンド１１１の一部）を構成する。ＮＶＭｅレジスタ・コマンドセットのフォーマットを使用することによって、ＬＢＡコマンド１１５及びキー値コマンド１１６の双方が同一のコマンドフォーマットにマッピングされる。
【００４６】
Ｓ３０４段階で、装置ドライバ１１０は装置連結構造体１０４を通じてインタフェイスコマンド１１１をストレージ装置１０２に転送する。インタフェイスコマンド１１１は調節コマンド又はデータ処理コマンドであり得る。
ＬＢＡコマンド１１５及びキー値コマンド１１６の双方をインタフェイスコマンド１１１にマッピングすることによって、図１の電子システム１１０はＬＢＡコマンド１１５の５１２バイト又は４キロバイト（Ｋｂｙｔｅ）の限界に制限されることなく、インタフェイスコマンド１１１の実際のバイトカウントを転送する。
【００４７】
Ｓ３０６段階に進むと、ストレージ装置１０２はインタフェイスコマンド１１１を受信する。続いて、ストレージ装置１０２は受信したインタフェイスコマンド１１１を図１のインタフェイス制御ユニット１１２内のコマンドマルチプレクサ１１４に伝達する。インタフェイス制御ユニット１１２はインタフェイスコマンド１１１を受信し、装置連結構造体１０４と関連された転送プロトコル（ｔｒａｎｓｆｅｒ  ｐｒｏｔｏｃｏｌ）を処理する。
【００４８】
Ｓ３０８段階で、コマンドマルチプレクサ１１４はインタフェイスコマンド１１１を解析する。即ち、インタフェイスコマンド１１１が調節コマンド、ＬＢＡコマンド１１５又はキー値コマンド１１６の何れであるかを決定するためにコマンドマルチプレクサ１１４はインタフェイスコマンド１１１のフォーマットを分析する。
コマンドマルチプレクサ１１４は例えばＮＷＭｅフォーマットのＤＷＯＲＤ１２の下位１６ビットのコンテンツに基づいてＬＢＡコマンド１１５又はキー値コマンド１１６の間の決定を調整（ｋｅｙ）する。この場合、ＮＷＭｅフォーマットはＬＢＡコマンド１１５に対するセクタカウント（ｓｅｃｔｏｒ  ｃｏｕｎｔ）を含む。ＤＷＯＲＤ１２が０を含む場合、コマンドマルチプレクサ１１４はＮＶＭｅフォーマットのＤＷＯＲＤ１５を調査する。そして、ＤＷＯＲＤ１５はキー値コマンド１１６を識別するためにバイト（ｂｙｔｅｓ）単位の“キー”サイズを含む。仮に、ＤＷＯＲＤ１２及びＤＷＯＲＤ１５の全てが０を含む場合、インタフェイスコマンド１１１は調節コマンドとして識別される。
【００４９】
Ｓ３１０段階で、コマンドマルチプレクサ１１４はインタフェイスコマンド１１１がキー値コマンド１１６であるか否かを決定する。仮に、インタフェイスコマンド１１１がキー値コマンド１１６ではない場合、Ｓ３１２段階が遂行される。Ｓ３１２段階で、コマンドマルチプレクサ１１４はインタフェイスコマンド１１１を第１コマンドプロセッサ１１７のようなＬＢＡコマンドプロセッサに伝送（ｒｏｕｔｅ）する。
さらに第１コマンドプロセッサ１１７は、インタフェイスコマンド１１１を分析してその要請を抽出し、インタフェイスコマンド１１１を遂行するために要請された情報を用いて不揮発性メモリ１２６をセットアップする。それから、フローチャートはＳ３１４段階に進入する。
【００５０】
仮に、Ｓ３１０段階でインタフェイスコマンド１１１がキー値コマンド１１６であると判断された場合、フローチャートはＳ３１６段階に進入する。Ｓ３１６段階で、コマンドマルチプレクサ１１４はインタフェイスコマンド１１１を第２コマンドプロセッサ１１８のようなキー値コマンドプロセッサに伝送（ｒｏｕｔｅ）する。
さらに第２コマンドプロセッサ１１８は、インタフェイスコマンド１１１を分析してその要請を抽出し、インタフェイスコマンド１１１を遂行するために要請された情報を用いて不揮発性メモリ１２６をセットアップする。それから、フローチャートはＳ３１４段階に進入する。
【００５１】
電子システム１００が単一プロセッサ環境にある場合、Ｓ３１０段階は、ＬＢＡコマンド又はキー値コマンドに対する準備（ｐｒｅｐａｒａｔｉｏｎ）を実行できる実行ストリング（ｅｘｅｃｕｔｉｏｎ  ｓｔｒｉｎｇ）へのファームウェア内のブランチ（ｂｒａｎｃｈ）である。
このコマンド実行準備は、実際の、データ転送及びコマンドからのクリ−ンアップ（ｃｌｅａｎ−ｕｐ）の遂行に先立って、バイトカウント転送（ｂｙｔｅ  ｃｏｕｎｔｓ  ｔｒａｎｓｆｅｒ）、データデスティネーション（ｄａｔａ  ｄｅｓｔｉｎａｔｉｏｎ）、及び状態準備（ｓｔａｔｕｓ  ｐｒｅｐａｒａｔｉｏｎ）を構成する。
次にフローは、Ｓ３１２段階又はＳ３１６段階で先行してセットアップされたコマンドを遂行するＳ３１４段階に進入する。
【００５２】
Ｓ３１４段階で、第１コマンドプロセッサ１１７又は第２コマンドプロセッサ１１８は、複数の中央処理装置１２０の中で１つの中央処理装置がインタフェイスコマンド１１１を実行することを識別する。例として、インタフェイスコマンド１１１が調節コマンド又はＬＢＡコマンド１１５であるかを、第１コマンドプロセッサ１１７が決定した場合、第１中央処理装置１２２がインタフェイスコマンド１１１を実行するように選択される。これと反対に、インタフェイスコマンド１１１がキー値コマンド１１６であることを、第２コマンドプロセッサ１１８が感知した場合、第２中央処理装置１２４はインタフェイスコマンド１１１を実行するために選択される。
【００５３】
複数の中央処理装置１２０の中で選択された上記１つの中央処理装置は、インタフェイスコマンド１１１を実行するために揮発性メモリ１２６から情報を持ってくるように構成される。仮に、データ転送のような追加的なインタフェイス交換が要請されると、複数の中央処理装置１２０の中で選択された上記中央処理装置は、データ転送を遂行するために該中央処理装置を選択した第１コマンドプロセッサ１１７又は第２コマンドプロセッサ１１８を活性化する。複数の中央処理装置１２０の中で選択された上記中央処理装置は、揮発性メモリ１２６と不揮発性メモリ１２８との間でデータを転送する。
即ち、インタフェイスコマンド１１１に基づく読み出しの場合、上記中央処理装置は、データ転送を遂行するために該中央処理装置を選択した第１コマンドプロセッサ１１７又は第２コマンドプロセッサ１１８の活性化に先立って、不揮発性ストレージ１２８から揮発性メモリ１２６にデータを転送する。
インタフェイスコマンド１１１に基づく書込みの場合、データは不揮発性メモリ１２８への転送に先立って揮発性メモリ１２６に転送される。何れの場合にも、データはストレージ装置１０２のセットアップに適切なキャッシュ（ｃａｃｈｅ）としての揮発性メモリ１２６に維持される。
【００５４】
それから、フローはＳ３１８段階に進入する。この場合、ストレージ装置１０２は完了メッセージを装置ドライバ１１０に転送する。インタフェイスコマンド１１１の完了時、複数の中央処理装置１２０の中で上記選択された中央処理装置は、細部状態１３０（ｄｅｔａｉｌｅｄ  ｓｔａｔｕｓ）及び揮発性メモリ１２６のセットアップ完了メッセージを決定する。そして、複数の中央処理装置１２０の中で上記選択された中央処理装置は、第１コマンドプロセッサ１１７又は第２コマンドプロセッサ１１８が図１の細部状態１３０を装置ドライバ１１０に転送することを可能にする。エラーの場合、エラー詳細（ｅｒｒｏｒ  ｄｅｔａｉｌｓ）が細部状態の一部として転送される。
【００５５】
ＬＢＡコマンド１１５に対する第１コマンドプロセッサ１１７とキー値コマンド１１６に対する第２コマンドプロセッサ１１８とによって初期分析（ｉｎｉｔｉａｌ  ａｎａｎｌｙｓｉｓ）と構造分析（ｐａｒｓｉｎｇ）とが遂行される間に、インタフェイスコマンド１１１を実行するために複数の中央処理装置１２０を活用することによって電子システム１００がユーザデータ３０６の転送レイテンシ（ｌａｔｅｎｃｙ  ｏｆ  ｔｒａｎｓｆｅｒ）を削減できることが明らかになった。
例えばＮＶＭｅコマンドフォーマットが、オンザフライ（即席、ｏｎ−ｔｈｅ−ｆｌｙ）で調節コマンド１１１Ｌを遂行するに当たり、ＢＡコマンド１１５とキー値コマンド１１６とを同等の効率性と処理能力とに扱うことができる。
このことは、ホストプロセッサ１０６がＬＢＡコマンド１１５とキー値コマンド１１６との各々に適用される資源量をカスタマイズする能力を許容するため、
【００５６】
図４は本発明の他の実施形態による電子システムの動作方法のフローチャート４００を示す。電子システムの動作方法はＳ４０２段階で、ストレージ装置１０２によってインタフェイスコマンド１１１を受信する段階、インタフェイスコマンド１１１のＤＷＯＲＤ１５のコンテンツを調査することによって、ストレージ装置１０２に属するインタフェイス制御ユニット１１２でインタフェイスコマンド１１１を分析する段階、仮に、ＤＷＯＲＤ１５が０であれば、ＬＢＡコマンド１１５を実行するために第１中央処理装置１２２を選択する段階、仮にＤＷＯＲＤ１５が０ではない場合、キー値コマンド１１６を実行するために第２中央処理装置を選択する段階、及び不揮発性ストレージ１２８をアクセスするためにＬＢＡコマンド１１５及びキー値コマンド１１６を独立的に及び同時に処理する段階を含む。そして、電子システムの動作方法４００は、Ｓ４０４段階で、ＬＢＡ又はキー値コマンドを完了した後に、第１中央処理装置１２２又は第２中央処理装置１２４によって細部状態１３０をコンパイルする段階を含む。そして、電子システムの動作方法４００はＳ４０６段階で、装置連結構造体１０４を通じて装置ドライバ１１０に細部状態１３０を転送することによってインタフェイスコマンド１１１に応答する段階を含む。
【００５７】
本発明を実施した結果得られた生成方法、プロセス、装備装置、素子、製品及び／又はシステムは、直截であり、価格競争力があり、簡明であり、非常に多様に適用でき（ｈｉｇｈｌｙ  ｖｅｒｓａｔｉｌｅ）、正確、敏感効率的である。そして、それらは良く準備され、効率的で、経済的な製造方式を有する広く公知された構成要素を適用することによって具現される。本発明の一実施形態の他の重要な側面は費用節減の歴史的なトレンド、システムの単純化、及び性能向上（を大切に支援し、サービスするということである。
【００５８】
本発明の一実施形態のその他の重要な側面は、技術の状態を少なくとも次の段階まで推進することである。
【００５９】
本発明の詳細な説明では具体的な実施形態に関して説明したが、本発明の範囲で逸脱しない限度内で様々な変形が可能である。従って、本発明の範囲は上述した実施形態に限定されて定まれてはいけなく、後述する特許請求範囲のみではなくこの発明の特許請求範囲と均等なことによって定めまれるべきである。
【符号の説明】
【００６０】
１００      電子システム
１０２      ストレージ装置
１０４      装置結合構造体
１０６      ホストプロセッサ
１０８      キー値（ＫＶ）装置用ＡＰＩ（アプリケーションプログラムインタフェイス）
１０９      ＬＢＡ用ＡＰＩ（アプリケーションプログラムインタフェイス）
１１０      装置ドライバ
１１１      インタフェイスコマンド
１１２      インタフェイス制御ユニット
１１４      コマンドマルチプレクサ
１１６      キー値コマンド
１１７      第１コマンドプロセッサ
１１８      第２コマンドプロセッサ
１２０      複数の中央処理装置
１２２      第１中央処理装置
１２４      第２中央処理装置
１２６      揮発性メモリ
１２８      不揮発性メモリ
１３０      細部状態
３０６      ユーザデータ
【図１】
0006734751.tif 000002
【図２】
0006734751.tif 000003
【図３】
0006734751.tif 000004
【図４】
0006734751.tif 000005