JP5583849B2 - ポート共有ハードウェアを介した記憶装置への帯域外アクセス - Google Patents

ポート共有ハードウェアを介した記憶装置への帯域外アクセス Download PDF

Info

Publication number
JP5583849B2
JP5583849B2 JP2013518878A JP2013518878A JP5583849B2 JP 5583849 B2 JP5583849 B2 JP 5583849B2 JP 2013518878 A JP2013518878 A JP 2013518878A JP 2013518878 A JP2013518878 A JP 2013518878A JP 5583849 B2 JP5583849 B2 JP 5583849B2
Authority
JP
Japan
Prior art keywords
command
execution
controller interface
host
operating system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013518878A
Other languages
English (en)
Other versions
JP2013535720A (ja
Inventor
エドワーズ,デイヴィッド,エー.
ガン,チャイ,フアト
オーイ,エン,フン
ゴクルランガン,ヴェンカト,アール.
コスラヴィ,ホルムズド,エム.
Original Assignee
インテル コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2013535720A publication Critical patent/JP2013535720A/ja
Application granted granted Critical
Publication of JP5583849B2 publication Critical patent/JP5583849B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

著作権保護を受ける題材がここに含まれる。著作権所有者は、特許商標庁のファイル又はレコードに現れるとき、何れの者による特許開示のファクシミリの複製に対しては異議はないが、そうでない場合には、著作権に対するすべての権利を留保する。
本開示は、一般に企業及びクライアント/サーバ計算環境の管理に関する。
データバックアップ及びリカバリ、アンチウイルススキャン、ディスクリペア、マルウェアの削除などのオンラインストレージサービスが、ストレージツールがインストールされたリモートネットワークサーバとの通信を介しクライアントコンピュータに現在広範に利用可能である。クライアントコンピュータとリモートサーバとの間の通信は、典型的には、クライアントコンピュータにインストールされたソフトウェアエージェントを用いて確立される。しかしながら、このようなソフトウェアエージェントは、常に容易にインストールされるとは限らず、クライアントコンピュータ上のウイルス又はマルウェアによってシャットダウン又は感染する可能性がある。
また、現在のオンラインストレージサービスとソフトウェアエージェントとは、クライアントコンピュータのオペレーティングシステムに依存する。従って、オペレーティングシステムは、オンラインストレージサービスが提供可能になる前にクライアントシステムに供給される必要がある。さらに、オペレーティングシステムが故障又は無効であるとき、リモートサーバは、クライアントコンピュータのマスストレージにアクセスする機会を失い、オンラインストレージサービスをクライアントコンピュータに提供することができない。
図1は、本発明の一実施例によるポート共有ハードウェアを介した記憶装置への帯域外アクセスを可能にするよう構成されるシステムのブロック図である。 図2は、本発明の一実施例による記憶装置への帯域外アクセスを可能にするポート共有ハードウェア及び関連するファームウェアの処理のフローチャートである。
本発明の実施例は、ポート共有ハードウェアを介した記憶装置への帯域外アクセスを可能にする方法、装置、システム及びコンピュータプログラムプロダクトを提供する。記憶装置への帯域外アクセスを提供することは、オペレーティングシステムが機能的でないときと共に、オペレーティングシステムがアクティブであるときにシステム管理機能が実行されることを可能にする。管理サービスから生じるストレージコマンドは、ホストオペレーティングシステムにより発行されるストレージコマンドとインタリーブ可能である。ホストオペレーティングシステムは、それの記憶装置に対するオーナシップ及び制御を維持するが、本発明は、ホストオペレーティングシステムが動作中に管理活動が実行されることを可能にする。
一実施例では、方法は、前記ホストコントローラインタフェースを介し前記記憶装置にアクセスするための第1コマンドを受信するステップと、前記帯域外コントローラインタフェースを介し前記記憶装置にアクセスするための第2コマンドを受信するステップと、前記第1コマンドの実行後に前記記憶装置の予想される状態を決定するステップと、前記第2コマンドの実行が前記予想される状態を妨げるか判断するステップと、前記第2コマンドの実行が前記予想される状態を妨げない場合、前記第2コマンドの実行前に前記第1コマンドを実行するステップであって、前記第2コマンドは、前記ホストオペレーティングシステムの関与なく実行される、前記第1コマンドを実行するステップとを有する。前記第2コマンドの実行が前記予想される状態を妨げる場合、本方法は、前記第2コマンドをキャンセルし、前記第1コマンドを実行するステップ、前記第2コマンドの実行が前記予想される状態を妨げない場合、前記記憶装置の所望の状態が実現されるまで前記第2コマンドを遅延するステップ、前記第1コマンドを実行するステップ、前記記憶装置の所望の状態が実現されると、前記第2コマンドを実行するステップ、及び/又は前記第2コマンドの実行後に前記予想される状態を復元するための第3コマンドを決定し、前記第3コマンドの実行後まで前記第1コマンドの終了の通知を遅延しながら、前記第1コマンド、前記第2コマンド及び第3コマンドを実行するステップをさらに有してもよい。一実施例では、前記ホストオペレーティングシステムは、前記第1及び第2コマンドが受信されると、前記第1及び第2コマンドの実行中はアクティブである。本方法はさらに、前記第1コマンドを前記ホストコントローラインタフェースに関連する第1メモリに配置するステップと、前記帯域外コントローラインタフェースによるアクセスから前記第1メモリをプロテクトするステップと、前記第2コマンドを前記帯域外コントローラインタフェースに関連する第2メモリに配置するステップと、前記ホストオペレーティングシステム及び前記ホストコントローラインタフェースによるアクセスから前記第2メモリをプロテクトするステップとをさらに有してもよい。
明細書における本発明の“一実施例”又は“実施例”という表現は、当該実施例に関連して説明される特定の特徴、構成又は特性が本発明の少なくとも1つの実施例に含まれることを意味する。従って、明細書全体における各所に出現する“一実施例では”、“一実施例によると”などのフレーズの出現は、必ずしもすべてが同一の実施例を参照しているとは限らない。
説明のため、具体的な構成及び詳細が、本発明の完全な理解を提供するために与えられる。しかしながら、本発明の実施例はここに提供される具体的な詳細なしに実現可能であることは、当業者に明らかであろう。さらに、本発明を不明りょうにしないように、周知の特徴は省略又は簡単化されてもよい。本記載を通じて各種具体例が与えられる。これらは単に、本発明の特定の実施例の説明である。本発明の範囲は、与えられた具体例に限定されるものでない。
ここでのストレージサービスは、限定することなく、クライアントコンピュータへのオペレーティングシステムイメージの初期的な提供、データバックアップ及びリカバリ、ディスクリペア、アンチウイルススキャン及びマルウェアの削除、セキュリティシステムのインストール及びシステムパフォーマンスの最適化を含む。
“帯域外”という用語は、クライアント装置のオペレーティングシステム(OS)から独立して実行されるクライアント装置の管理モジュールとサーバ装置との間の通信など、メインストリームから独立した通信を説明するのに利用される。
図1は、本発明の一実施例によるポート共有ハードウェアを介した記憶装置への帯域外アクセスを可能にするよう構成されるシステム100のブロック図である。ミニアドバンストホストコントローラインタフェース(AHCI)110は、ホストAHCI120とポート102(個別にポート0〜ポート5とラベル付けされた)を共有する帯域外コントローラインタフェースを表す。ミニAHCI110は、システム100のホストオペレーティングシステム106によりアクセス不可であり、ホストAHCI120は、ホストオペレーティングシステム106によりアクセス可能である。ミニAHCI110は、リモートストレージ管理サービス108がネットワーク接続109を介しシステム100にストレージサービスを提供することによって、システム100の記憶装置160A〜160Fへのアクセスを提供する。ミニAHCI110により提供されるアクセスは、ホストオペレーティングシステム106の支援から独立して及び支援なしに提供される。ホストAHCI120は、ホストオペレーティングシステム106によるシステム100の記憶装置160A〜160Fへのアクセスを提供する。ホストAHCI120はまた、ホストオペレーティングシステムに不揮発性メモリ136へのアクセスを提供するため、ポート104(個別にポート6,7とラベル付けされた)へのアクセスを提供する。
ストレージコマンドがミニAHCI110を介し発行されると、ミニAHCI110は、管理コマンドを処理するため確保されたメモリME UMA134に格納されているファームウェアテーブル112にコマンド情報を配置する。コマンド情報は、コマンドと、当該コマンドが実行されるデータへのポインタとを含む。これらのデータポインタは、記憶装置160A〜160Fがアクセス可能なページに変換される。ミニAHCI110は、コマンド処理ブロック140にコマンドがメモリに配置されたことを通知するための信号を送信する。メモリME UMA134は、6つの共有されているポート102(個別にポート0〜ポート5にラベル付けされる)のそれぞれについて1つのスロットを有し、これにより、1つの管理コマンドが各ポートについて処理されることを可能にする。メモリME UMA134に格納されているファームウェアテーブル112は、ホストオペレーティングシステム106によりアクセス不可であり、ミニAHCIインタフェース110を介してのみアクセス可能である。
ストレージコマンドがホストAHCI120を介しホストオペレーティングシステムにより発行されると、ホストAHCI120は、ホストメモリ132の位置に格納されているホストテーブル122にコマンド情報を配置する。コマンド情報は、コマンドデータと、当該コマンドが実行されるデータへのポインタとの双方を含む。これらのデータポインタは、記憶装置160A〜160Fがアクセス可能なページに変換される。ホストAHCI120は、コマンドがメモリに配置されていることをコマンド処理ブロック140に通知するための信号を送信する。ホストメモリ132は、8つのポート120及び104(個別に共有ポート0〜5及びNVMポート6,7としてラベル付けされる)のそれぞれについて32個のスロットを有し、これにより、各ポートについて32個までのコマンドが処理されることを可能にする。ホストメモリ132に格納されているホストテーブル122は、ホストAHCI120を介しホストオペレーティングシステム106によりアクセス可能であるが、ミニAHCIインタフェース110を介してアクセス不可である。メモリME UMA134は、チップセットハードウェアを介しホストAHCI120を介したアクセスからプロテクトされ、ホストメモリ132は、同様にチップセットハードウェアを介しミニAHCIインタフェース110を介したアクセスによるアクセスからプロテクトされる。メモリリファレンスアドレスが各インタフェースの範囲外である場合、メモリを参照するリクエストはハードウェアによってドロップされる。
コマンド処理ブロック140は、指定されたメモリ位置(ホストにより開始されたコマンドのためのホストメモリ132と管理により開始されたコマンドのためのME UMA134)からコマンドをフェッチするフェッチシーケンサブロック142を有する。コマンドがメモリ位置に配置されたことを示す信号が受信されると、フェッチシーケンサブロック142は、ホストメモリ132又はME UMAメモリ134の何れからコマンド情報をフェッチする。実行ブロック144はコマンドを実行し、DMAブロック146は、実行用のトランザクション循環バッファ148に直接的なメモリアクセス命令を配置する。
フェッチシーケンサブロック142は、コマンド信号の送信元のコントローラ(ミニAHCI110又はホストAHCI120)に基づき、適切なコマンドテーブルからコマンドをフェッチする。当該情報は、DMAブロック146を介してDMA転送を開始トランザクション循環バッファ148の先頭に転送される(ハードウェアベースキュー)。DMA転送が進捗中、ATAコマンドフィルタブロック170は、テーブル150に従ってフォーマット化され、以下においてさらに説明されるトランザクションバッファエントリのフラグ及びIOタグフィールドを設定するため、コマンド情報を調べる。ATAコマンドフィルタブロック170によるATAコマンドの調査中、ルックアップテーブル180が、一意的なATAコマンド識別子に対して参照される。コマンド識別子のマッチングが、要求されたホストコマンドとルックアップテーブル180のエントリとの間で実行されるとき、トランザクションバッファエントリ150のフラグフィールドは、当該コマンド識別子のルックアップテーブルデータに従って設定される。
エントリがトランザクション循環バッファ148に配置されると、実行ブロック144は、トランザクション循環バッファ148の最後尾からのコマンドを実行するよう通知される。装置160A〜Fの1つにコマンド情報を送信する前、実行ユニット144は、実行しようとしているトランザクション循環バッファ148のエントリのフラグフィールドを調べる。インタラプトネクストコマンドビットが設定されている場合、実行ユニット144は、次のコマンドがトランザクション循環バッファ148から実行されるとき、管理サービス108を中断するための内部的なフラグを設定する。インタラプトビフォアエグゼキューションビットが設定されている場合、実行ユニット144は、決定のため管理サービス108を中断し、実行ユニット144が実行が継続可能であるという信号を受信すると実行を継続し、これにより、管理サービス108に決定をするための時間を可能にする。
実行ユニット144が、装置160A〜Fの1つにコマンドを送信することが許容されていると判断すると、実行ユニット144は、トランザクション循環バッファ148から当該装置にトランザクション循環バッファのエントリ150のCFISフィールドのDMAを通知する。装置がコマンドを完了すると、ホストAHCI120のコントローラに通常は直接向かうすべての状態変更及びレスポンス情報が、トランザクション循環バッファ148に戻る。インタラプトビフォアコンプリーションビットが、コマンドが実行されるトランザクション循環バッファエントリ150のフラグフィールドにおいて設定される場合、実行ブロック144は、完了情報を調べるため、管理サービス108を中断する。管理サービス108が完了情報の調査を終了すると、管理サービス108は実行ユニット144に通知し、実行ユニット144は、完了情報及び状態のホストAHCIコントローラ120へのDMA転送を実行する。
トランザクション循環バッファのエントリは、テーブル150に従って定式化される。図示された実施例では、トランザクション循環バッファの各エントリは、20個のダブルワードを含む。トランザクション循環バッファのトータルのメモリ要求は、従って、6つの共有ポートのトータル1.4キロバイトに対して、各ポートについて240バイトである。他の実施例では、2つの非共有ポートについてメモリがまたトランザクション循環バッファに割り当てられ、これにより、8つすべてのポートのメモリを割り当てる。トランザクション循環バッファのエントリのフォーマットの最初のダブルワードにおいて、ビット00〜07は、コマンドがミニAHCI110を介し管理サービス108によって、又はホストAHCI120を介しホストによって開始されたか示す。ビット08〜15は、特別なフラグのために利用され、例えば、ビット8は、コマンドの実行前にインタラプトが生成されることを示し、ビット9は、コマンドの終了が通知される前にインタラプトが生成されることを示し、ビット10は、次のコマンドの処理前にインタラプトが生成されることを示す。ビット10は、装置の状態に影響を与えうる2以上のコマンドのシーケンスが、装置の状態が変更される前に特定可能となるように、次のコマンドの調査を可能にする。ビット16〜31が確保される。
トランザクション循環バッファのエントリフォーマットの第2ダブルワードは、コマンドパラメータのために利用され、16個のダブルワードが、コマンドファームウェア情報構造(AHCI規格で用いられるCFISと同様のCFIS)のために利用され、2つのダブルワードが、コマンド完了パラメータのために利用される。
ATAコマンドフィルタブロック170は、さらなる管理処理が必要か判断するため、コマンドを調べるのにコマンド処理ブロック140により利用される。コマンド処理ブロック140の処理は、以下の図2を参照してさらに説明される。
図1を再び参照して、プラットフォーム100がフルパワーであるとき、アッパーメモリエリア(UMA)として参照されるメモリの部分が、管理処理及びミニAHCI110による利用のために利用可能である。ホストオペレーティングシステム106は、一般にシステム初期化時にBIOS(Basic Input Output System)により設定されるメモリ隔離機構のため、ME−UMA134にアクセスすることができない。このメモリ隔離機構は、ホストオペレーティングシステム106の実行前、ME−UMAメモリ134へのアクセスをロックする。ホストオペレーティングシステム106から管理サービス108による利用のため当該メモリ部分を隔離することによって、管理処理のインテグリティは、ホストオペレーティングシステム106に影響を与えうるウイルス又は他のマルウェアから保護される。
図2は、本発明の一実施例による記憶装置への帯域外アクセスを可能にするためのポート共有ハードウェア及び関連するファームウェアの処理のフローチャートである。図2のステップは、図1のコマンド処理モジュール140のコンポーネントによって実行されるとしてここでは説明される。“コマンドに関連する信号を受信”ステップ205では、コマンド処理モジュール140は、コマンド情報がホストメモリ132のホストテーブル122又はME UMA134のファームウェアテーブル112の何れかに配置されたという信号をミニAHCI110又はホストAHCI120を介し受信する。制御は、“管理又はホストにより開始されたコマンド?”判定ポイント210に移行し、当該コマンドが管理サービス108またはホストオペレーティングシステム106により開始されたか判断される。コマンドがホストオペレーティングシステム106により開始された場合、制御は、“コマンドを調査”ステップ215に移行し、コマンド情報がホストメモリ132のホストテーブル122から抽出される。コマンドが、さらなる管理処理が必要であるか判断するため調べられる。例えば、記憶装置にデータを格納するためのシンプルなリード/ライトコマンドは、さらなる管理処理を必要とせず、記憶装置をアイドル状態に配置するためのコマンドは、以降の何れの管理コマンドも終了するとアイドル状態に装置を戻すことを補償するため、さらなる管理処理を要求する。制御は、“コマンドを調査”ステップ215から、管理処理が必要か判断するための“管理処理が必要?”判定ポイント215に移行する。管理処理が“管理処理が必要?”判定ポイント220において必要でない場合、シンプルリード/ライトコマンドと同様に、制御は、“ホストコマンドを処理”ステップ230に移行し、ホストコマンドが実行される。ホストコマンドが実行された後、ホストコマンドの処理が終了され、当該処理が終了する。
“管理処理が必要?”判定ポイント220において、管理処理が必要である場合、制御は、“必要とされるさらなる管理処理のタイプを決定”ステップ240に移行する。装置の状態がホストコマンドにより変更される状況では、コマンド処理モジュール140は、さらなる管理処理がホストコマンドの終了により実行する。例えば、コマンド処理モジュール140は、ホストコマンドの処理が完了したことを通知する前にインタラプトが生成されることを補償するため、トランザクション循環バッファ148へのホストコマンドの配置時にフラグを設定してもよい。他の例として、コマンド処理モジュール140は、ホストコマンドが記憶装置をリセットした場合、保留中の管理コマンドをキャンセルしてもよい。
“管理又はホストにより開始されたコマンド?”判定ポイント210において、コマンドがミニAHCI110を介し管理サービス108により開始されている場合、制御は、“発行済みホストコマンド?”判定ポイント250に移行する。ホストコマンドの何れも実行を待機していない場合、制御は、“管理コマンドを処理”判定ポイント265に移行し、管理コマンドが実行される。管理コマンドの実行後、コマンドの処理は終了し、当該処理は終了する。
“発行済みホストコマンド?”判定ポイント250において、ホストコマンドが実行を待機している場合、制御は、“ホストコマンドを終了することを許可”ステップ255に移行する。実行用のキューのすべてのホストコマンドが、管理コマンドのさらなる処理前に終了することが許可される。管理コマンドの実行における当該遅延は、管理サービスが記憶装置に対して実行される前に、記憶装置が安定状態に入ることを可能にする。
“ホストコマンドが終了することを許可”ステップ255から、制御は、“装置状態が与えられると、管理コマンドは依然として有効?”判定ポイント260に移行する。発行済みホストコマンドにより実行される処理は、当該段階における管理コマンドの実行が無効である状態に記憶装置を配置することが可能である。例えば、ホストにより開始されたコマンドは、さらなる管理コマンドがもはや不要となるように、記憶装置をリセットしてもよい。管理コマンドが無効である場合、実行されると、制御は、“必要なさらなる管理処理のタイプを決定”ステップ240に移行する。例えば、異なる管理コマンドを実行用にキューすることが必要であるかもしれない。あるいは、さらなる管理コマンドは不要であるが、保留中の管理コマンドを実行することなくキャンセルすることが必要であるかもしれない。さらに、実行前に次のコマンドを調査するためのフラグ、コマンドの処理の終了が通知される前に中断を要求するためのフラグ、又はコマンドの実行後に中断を要求するためのフラグなど、フラグを設定することによってコマンドの実行のフローを制御する必要があるかもしれない。
“装置状態が与えられると、管理コマンドは依然として有効?”判定ポイント260において、管理コマンドが有効のままである場合、制御は、“管理コマンドを処理”ステップ265に移行する。管理コマンドが実行され、コマンドの処理が終了する。
ここで用いられる“処理システム”及び“データ処理システム”という用語は、単一のマシーン又は一緒に動作する通信接続されたマシーン又は装置のシステムを広範に含むことが意図される。処理システムの具体例は、限定することなく、分散計算システム、スーパーコンピュータ、ハイパフォーマンス計算システム、計算クラスタ、メインフレームコンピュータ、ミニコンピュータ、クライアントサーバシステム、パーソナルコンピュータ、ワークステーション、サーバ、ポータブルコンピュータ、ラップトップコンピュータ、タブレット、電話、PDA(Personal Digital Assistant)、携帯装置、オーディオ及び/又はビデオ装置などのエンタテイメント装置、及び情報を処理又は送信する他の装置を含む。
図1のプラットフォーム100は、キーボード、マウスなどの従来の入力装置からの入力によって、及び/又は他のマシーン、生体フィードバック又は他の入力ソース若しくは信号から受信したコマンドによって、少なくとも部分的に制御されてもよい。プラットフォーム100は、ネットワークインタフェースコントローラ(NIC)、モデム、又は他の通信ポート若しくは結合などを介し、1以上のリモートデータ処理システム(図示せず)との1以上の接続を利用してもよい。
プラットフォーム100は、LAN(Local Area Network)、WAN(Wide Area Network)、イントラネット、インターネットなどの物理的及び/又は論理的ネットワークを介し他の処理システム(図示せず)に相互接続されてもよい。ネットワークに関する通信は、無線周波数(RF)、衛星、マイクロ波、IEEE802.11、ブルートゥース、光、赤外線、ケーブル、レーザなどを含む、各種有線及び/又は無線短距離又は長距離キャリア及びプロトコルを利用してもよい。
ここに開示された機構の実施例は、ハードウェア、ソフトウェア、ファームウェア又はこのような実現形態のアプローチの組み合わせにより実現されてもよい。本発明の実施例は、少なくとも1つのプロセッサ、データ処理システム(揮発性及び不揮発性メモリ及び/又は記憶要素を含む)、少なくとも1つの入力装置及び少なくとも1つの出力装置を有するプログラマブルシステム上で実行されるコンピュータプログラムとして実現されてもよい。
プログラムコードは、ここに記載される機能を実行し、出力情報を生成するため入力データに適用される。本発明の実施例はまた、ここに開示される構成、回路、装置、プロセッサ及び/又はシステムの特徴を規定するHDLなどの設計データを有するか、又は本発明の処理を実行する命令を含むマシーンアクセス可能媒体を含む。このような実施例はまた、プログラムプロダクトと呼ばれてもよい。
このようなマシーンアクセス可能な記憶媒体は、限定することなく、ハードディスク、フロッピー(登録商標)ディスク、光ディスク、CD−ROM(Compact Disk Read−Only Memory)、CD−RW(Compact Disk Rewritable)及び光磁気ディスクを含む他の何れかのタイプのディスク、ROM、DRAM、SRAM、EPROM、FLASH、EEPROMなどのRAMなどの半導体装置、磁気若しくは光カード、又は電子指示を格納するのに適した他の何れかのタイプの媒体などの記憶媒体を含む、マシーン又は装置により構成若しくは製造される有形な粒子の配置を含むものであってもよい。
出力情報は、既知の方法により1以上の出力装置に適用されてもよい。この適用のため、処理システムは、例えば、DSP(Digital Signal Processor)、マイクロコントローラ、ASIC(Application Specific Integrated Circuit)、又はマイクロプロセッサなどのプロセッサを有する何れかのシステムを含む。
プログラムは、処理システムと通信するためのハイレベル手続き型又はオブジェクト指向型プログラミング言語により実現されてもよい。プログラムはまた、所望される場合、アセンブリ又はマシーン言語により実現されてもよい。実際、ここに開示される機構は、何れか特定のプログラミング言語に範囲が制限されるものでない。何れの場合でも、言語はコンパイル又はインタープリットされた言語であってもよい。
ポート共有ハードウェアを用いた記憶装置への帯域外アクセスを可能にする方法及びシステムの実施例が提供される。本発明の特定の実施例が図示及び説明されたが、添付した請求項の範囲から逸脱することなく、多数の変更、変形及び改良が可能であることは、当業者に明らかであろう。従って、本発明から逸脱することなく、それの広範な側面において変更及び改良が可能であることを当業者は認識するであろう。添付した請求項は、本発明の真の範囲及び趣旨に属するすべての変更、変形及び改良をその範囲内に含むものである。

Claims (18)

  1. 処理システムにより実現される方法であって、
    前記処理システムは、
    プロセッサ、
    メモリ、
    記憶装置、
    複数のポート、
    ホストオペレーティングシステム、
    前記ホストオペレーティングシステムによりアクセス可能なホストコントローラインタフェース、及び
    前記ホストオペレーティングシステムによりアクセス不可であって、前記ホストコントローラインタフェースと異なる帯域外コントローラインタフェースを有し、
    前記帯域外コントローラインタフェースは、前記ホストコントローラインタフェースと前記複数のポートの共有ポートを共有し、
    前記処理システムが
    前記ホストコントローラインタフェースを介し前記記憶装置にアクセスするための第1コマンドを受信するステップと、
    前記帯域外コントローラインタフェースを介し前記記憶装置にアクセスするための第2コマンドを受信するステップと、
    前記第1コマンドの実行前に前記第1コマンドの実行により結果となることが予想される前記記憶装置の予想される状態を決定するステップと、
    前記第2コマンドの実行が前記予想される状態を妨げないと判断したことに応答して、前記第2コマンドの実行前に前記第1コマンドを実行するステップであって、前記第2コマンドは、前記ホストオペレーティングシステムの関与なく実行される、前記第1コマンドを実行するステップと、
    含む方法。
  2. 前記第2コマンドの実行が前記予想される状態を妨げる場合、前記第2コマンドをキャンセルし、前記第1コマンドを実行するステップをさらに有する、請求項1記載の方法。
  3. 前記第2コマンドの実行が前記予想される状態を妨げる場合、前記記憶装置の前記予想される状態と異なる所望の状態が実現されるまで前記第2コマンドを遅延するステップと、
    前記第1コマンドを実行するステップと、
    前記記憶装置の所望の状態が実現されると、前記第2コマンドを実行するステップと、
    をさらに有する、請求項1記載の方法。
  4. 前記第2コマンドの実行が前記予想される状態を妨げる場合、前記第2コマンドの実行後に前記予想される状態を復元するための第3コマンドを決定し、前記第3コマンドの実行後まで前記第1コマンドの終了の通知を遅延しながら、前記第1コマンド、前記第2コマンド及び第3コマンドを実行するステップをさらに有する、請求項1記載の方法。
  5. 前記ホストオペレーティングシステムは、前記第1及び第2コマンドが受信されると、前記第1及び第2コマンドの実行中はアクティブである、請求項1記載の方法。
  6. 前記第1コマンドを前記ホストコントローラインタフェースに関連する第1メモリに配置するステップと、
    前記帯域外コントローラインタフェースによるアクセスから前記第1メモリをプロテクトするステップと、
    前記第2コマンドを前記帯域外コントローラインタフェースに関連する第2メモリに配置するステップと、
    前記ホストオペレーティングシステム及び前記ホストコントローラインタフェースによるアクセスから前記第2メモリをプロテクトするステップと、
    をさらに有する、請求項1記載の方法。
  7. プロセッサと、
    記憶装置と、
    複数のポートと、
    ホストオペレーティングシステムと、
    前記ホストオペレーティングシステムによりアクセス可能なホストコントローラインタフェースと、
    前記ホストオペレーティングシステムによりアクセス不可であって、前記ホストコントローラインタフェースと異なる帯域外コントローラインタフェースであって、前記帯域外コントローラインタフェースは、前記ホストコントローラインタフェースと前記複数のポートの共有ポートを共有する、前記帯域外コントローラインタフェースと、
    前記プロセッサに接続されるメモリであって、前記メモリは、
    前記ホストコントローラインタフェースを介し前記記憶装置にアクセスするための第1コマンドを受信し、
    前記帯域外コントローラインタフェースを介し前記記憶装置にアクセスするための第2コマンドを受信し、
    前記第1コマンドの実行前に前記第1コマンドの実行により結果となることが予想される前記記憶装置の予想される状態を決定し、
    前記第2コマンドの実行が前記予想される状態を妨げるか判断し、
    前記第2コマンドの実行が前記予想される状態を妨げないと判断したことに応答して、前記ホストオペレーティングシステムの関与なしに実行される前記第2コマンドの実行前に前記第1コマンドを実行する命令を有する前記メモリと、
    を有するシステム。
  8. 前記命令はさらに、前記第2コマンドの実行が前記予想される状態を妨げる場合、前記第2コマンドをキャンセルし、前記第1コマンドを実行する命令を有する、請求項7記載のシステム。
  9. 前記命令はさらに、前記第2コマンドの実行が前記予想される状態を妨げる場合、
    前記記憶装置の所望の状態が実現されるまで前記第2コマンドを遅延し、
    前記第1コマンドを実行し、
    前記記憶装置の所望の状態が実現されると、前記第2コマンドを実行する命令を有する、請求項7記載のシステム。
  10. 前記命令はさらに、前記第2コマンドの実行が前記予想される状態を妨げる場合、前記第2コマンドの実行後に前記予想される状態を復元するための第3コマンドを決定し、前記第3コマンドの実行後までに前記第1コマンドの終了の通知を遅延しながら、前記第1コマンド、前記第2コマンド及び前記第3コマンドを実行する命令を有する、請求項7記載のシステム。
  11. 前記命令はさらに、前記第1及び第2コマンドが受信されると、前記第1及び第2コマンドの実行中、前記ホストオペレーティングシステムがアクティブである命令を有する、請求項7記載のシステム。
  12. 前記命令はさらに、
    前記第1コマンドを前記ホストコントローラインタフェースに関連する第1メモリに配置し、
    前記帯域外コントローラインタフェースによるアクセスから前記第1メモリをプロテクトし、
    前記第2コマンドを前記帯域外コントローラインタフェースに関連する第2メモリに配置し、
    前記ホストオペレーティングシステム及び前記ホストコントローラインタフェースによるアクセスから前記第2メモリをプロテクトする命令を有する、請求項7記載のシステム。
  13. コンピュータ可読記憶媒体と、
    前記コンピュータ可読記憶媒体の命令と、
    を有するコンピュータプログラムであって、
    前記命令は、処理システムにおいて実行されると、前記処理システムに処理を実行させ、
    前記処理システムは、
    プロセッサ、
    メモリ、
    記憶装置、
    複数のポート、
    ホストオペレーティングシステム、
    前記ホストオペレーティングシステムによりアクセス可能なホストコントローラインタフェース、及び
    前記ホストオペレーティングシステムによりアクセス不可であって、前記ホストコントローラインタフェースと異なる帯域外コントローラインタフェースを有し、
    前記帯域外コントローラインタフェースは、前記ホストコントローラインタフェースと前記複数のポートの共有ポートを共有し、
    前記処理は、
    前記ホストコントローラインタフェースを介し前記記憶装置にアクセスするための第1コマンドを受信し、
    前記帯域外コントローラインタフェースを介し前記記憶装置にアクセスするための第2コマンドを受信し、
    前記第1コマンドの実行前に前記第1コマンドの実行により結果となることが予想される前記記憶装置の予想される状態を決定し、
    前記第2コマンドの実行が前記予想される状態を妨げるか判断し、
    前記第2コマンドの実行が前記予想される状態を妨げないと判断したことに応答して、前記ホストオペレーティングシステムの関与なしに実行される前記第2コマンドの実行前に前記第1コマンドを実行する、
    ことを有するコンピュータプログラム。
  14. 前記命令はさらに、前記処理システムに、前記第2コマンドの実行が前記予想される状態を妨げる場合、前記第2コマンドをキャンセルし、前記第1コマンドを実行する処理を実行させる、請求項13記載のコンピュータプログラム。
  15. 前記命令はさらに、前記処理システムに、前記第2コマンドの実行が前記予想される状態を妨げる場合、
    前記記憶装置の所望の状態が実現されるまで前記第2コマンドを遅延し、
    前記第1コマンドを実行し、
    前記記憶装置の所望の状態が実現されると、前記第2コマンドを実行する、
    処理を実行させる、請求項13記載のコンピュータプログラム。
  16. 前記命令はさらに、前記処理システムに、前記第2コマンドの実行が前記予想される状態を妨げる場合、
    前記第2コマンドの実行後に前記予想される状態を復元するための第3コマンドを決定し、
    前記第3コマンドの実行後まで前記第1コマンドの終了の通知を遅延しながら、前記第1コマンド、前記第2コマンド及び前記第3コマンドを実行する、
    処理を実行させる、請求項13記載のコンピュータプログラム。
  17. 前記命令はさらに、前記処理システムに、前記第1及び第2コマンドが受信されると、前記第1及び第2コマンドの実行中、前記ホストオペレーティングシステムがアクティブである、処理を実行させる、請求項13記載のコンピュータプログラム。
  18. 前記命令はさらに、前記処理システムに、
    前記第1コマンドを前記ホストコントローラインタフェースに関連する第1メモリに配置し、
    前記帯域外コントローラインタフェースによるアクセスから前記第1メモリをプロテクトし、
    前記第2コマンドを前記帯域外コントローラインタフェースに関連する第2メモリに配置し、
    前記ホストオペレーティングシステム及び前記ホストコントローラインタフェースによるアクセスから前記第2メモリをプロテクトする、
    命令を実行させる、請求項13記載のコンピュータプログラム。
JP2013518878A 2010-07-14 2011-07-13 ポート共有ハードウェアを介した記憶装置への帯域外アクセス Expired - Fee Related JP5583849B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/836,341 US8281043B2 (en) 2010-07-14 2010-07-14 Out-of-band access to storage devices through port-sharing hardware
US12/836,341 2010-07-14
PCT/US2011/043850 WO2012009436A2 (en) 2010-07-14 2011-07-13 Out-of-band access to storage devices through port-sharing hardware

Publications (2)

Publication Number Publication Date
JP2013535720A JP2013535720A (ja) 2013-09-12
JP5583849B2 true JP5583849B2 (ja) 2014-09-03

Family

ID=45467783

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013518878A Expired - Fee Related JP5583849B2 (ja) 2010-07-14 2011-07-13 ポート共有ハードウェアを介した記憶装置への帯域外アクセス

Country Status (7)

Country Link
US (1) US8281043B2 (ja)
EP (1) EP2593875B1 (ja)
JP (1) JP5583849B2 (ja)
KR (1) KR101516093B1 (ja)
CN (1) CN102985914B (ja)
TW (1) TWI443580B (ja)
WO (1) WO2012009436A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8713204B2 (en) * 2011-12-27 2014-04-29 Apple Inc. High-performance AHCI interface
US9116694B2 (en) 2012-09-26 2015-08-25 Intel Corporation Efficient low power exit sequence for peripheral devices
CN103885364B (zh) * 2014-03-24 2016-09-28 三和智控(北京)系统集成有限公司 一种通过计划队列实现控制逻辑的动态延时调用的方法
WO2015159929A1 (ja) * 2014-04-16 2015-10-22 三菱化学株式会社 位相差フィルム、円偏光板及び画像表示装置
US9696777B2 (en) * 2014-06-05 2017-07-04 Lenovo (Singapore) Pte. Ltd. Computer port control
US9645954B2 (en) 2014-06-05 2017-05-09 Lenovo (Singapore) Pte. Ltd. Embedded microcontroller and buses
TWI526824B (zh) 2014-07-22 2016-03-21 廣達電腦股份有限公司 網路卡資訊管理方法及網路卡資訊管理系統
US9684457B2 (en) 2015-05-21 2017-06-20 Intel Corporation Gathering sensed data from devices to manage host command transmission and cooling of the devices
US10127184B2 (en) 2016-09-27 2018-11-13 Intel Corporation Low overheard high throughput solution for point-to-point link
US10761319B2 (en) 2017-10-13 2020-09-01 Magna Electronics Inc. Vehicle camera with lens heater
US11169953B2 (en) * 2018-02-28 2021-11-09 SK Hynix Inc. Data processing system accessing shared memory by using mailbox

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351782B1 (en) 1999-03-19 2002-02-26 Unisys Corporation Method of sharing an I/O device between a host operating system and a foreign operating system in a single computer
US6845387B1 (en) * 2000-04-07 2005-01-18 Advanced Digital Information Corporation Creating virtual private connections between end points across a SAN
JP2003085025A (ja) * 2001-09-13 2003-03-20 Seiko Instruments Inc 記憶装置の属性制御方式
JP2003241903A (ja) * 2002-02-14 2003-08-29 Hitachi Ltd 記憶制御装置、ストレージシステム、及びその制御方法
US7480774B2 (en) * 2003-04-01 2009-01-20 International Business Machines Corporation Method for performing a command cancel function in a DRAM
US20050015430A1 (en) * 2003-06-25 2005-01-20 Rothman Michael A. OS agnostic resource sharing across multiple computing platforms
US7707586B2 (en) * 2004-09-08 2010-04-27 Intel Corporation Operating system independent agent
JP4757482B2 (ja) * 2004-11-26 2011-08-24 Necアクセステクニカ株式会社 記憶装置及び記憶装置制御方法
US20060280195A1 (en) * 2005-06-10 2006-12-14 Dell Products L.P. Systems and methods for providing dedicated or shared network interface functionality via a single MAC
US7565685B2 (en) * 2005-11-12 2009-07-21 Intel Corporation Operating system independent data management
JP4486609B2 (ja) * 2006-03-31 2010-06-23 富士通株式会社 ストレージ装置、ストレージ装置のストレージ制御ファームウェアの活性プログラム交換方法及びストレージ制御ファームウェアの活性プログラム交換のためのプログラム
US8131986B2 (en) 2006-09-29 2012-03-06 Lenovo (Singapore) Pte. Ltd. System and method for boot loading of programs within a host operating environment having one or more linked guest operating systems
JP2010512584A (ja) 2006-12-06 2010-04-22 フュージョン マルチシステムズ,インク.(ディービイエイ フュージョン−アイオー) 空データトークン指令を有する要求デバイスからのデータを管理する装置、システムおよび方法
JP2009282834A (ja) * 2008-05-23 2009-12-03 Fujitsu Ltd ディスクアレイ装置,制御ファーム適用方法,及び制御ファーム適用制御部
US9189286B2 (en) * 2010-01-14 2015-11-17 Dell Products L.P. System and method for accessing storage resources
US8489686B2 (en) * 2010-05-21 2013-07-16 Intel Corporation Method and apparatus allowing scan of data storage device from remote server

Also Published As

Publication number Publication date
US8281043B2 (en) 2012-10-02
CN102985914B (zh) 2016-01-27
KR20130031886A (ko) 2013-03-29
WO2012009436A3 (en) 2012-04-26
EP2593875A2 (en) 2013-05-22
EP2593875B1 (en) 2018-05-16
TW201216162A (en) 2012-04-16
WO2012009436A2 (en) 2012-01-19
EP2593875A4 (en) 2014-07-16
JP2013535720A (ja) 2013-09-12
US20120017011A1 (en) 2012-01-19
TWI443580B (zh) 2014-07-01
CN102985914A (zh) 2013-03-20
KR101516093B1 (ko) 2015-05-08

Similar Documents

Publication Publication Date Title
JP5583849B2 (ja) ポート共有ハードウェアを介した記憶装置への帯域外アクセス
KR101403233B1 (ko) 정보 처리 장치 및 부정 액세스 방지 방법
US7774645B1 (en) Techniques for mirroring data within a shared virtual memory system
US20010052054A1 (en) Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
JP2008009982A (ja) メモリ・アドレスの変換およびピン止めのための方法およびシステム
US9529805B2 (en) Systems and methods for providing dynamic file system awareness on storage devices
US20090172806A1 (en) Security management in multi-node, multi-processor platforms
US20040186931A1 (en) Transferring data using direct memory access
US11693777B2 (en) Network interface device supporting multiple interface instances to a common bus
US9003077B2 (en) Sharing IOMMU mappings across devices in a DMA group
US20140096260A1 (en) Systems and methods to provide secure storage
US8745340B2 (en) Reduction of communication and efficient failover processing in distributed shared memory-based application
US11341108B2 (en) System and method for data deduplication in a smart data accelerator interface device
US8321501B2 (en) Secure out-of-band storage control
US8489686B2 (en) Method and apparatus allowing scan of data storage device from remote server
JP2008250386A (ja) アクセス制御装置及びコンピュータシステム
US9836340B2 (en) Safe management of data storage using a volume manager
US10019574B2 (en) Systems and methods for providing dynamic file system awareness on storage devices
JP2009271597A (ja) プロセッサ
JP2006155488A (ja) データ処理装置およびデータ処理方法
JP2008077389A (ja) データ処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140128

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140425

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140508

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140528

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140617

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140716

R150 Certificate of patent or registration of utility model

Ref document number: 5583849

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees