図面 (/)

技術 CAPIアダプタにブロック・エクステント粒度の許可モデルの処理を実装するための方法、システム、およびコンピュータ・プログラム

出願人 インターナショナル・ビジネス・マシーンズ・コーポレーション
発明者 バッケ、ブライアンゲルハルト、エイドリアンモールテル、ダニエル
出願日 2015年11月12日 (3年10ヶ月経過) 出願番号 2017-524432
公開日 2017年11月30日 (1年9ヶ月経過) 公開番号 2017-535868
状態 特許登録済
技術分野 記憶装置の機密保護
主要キーワード 固体ドライブ ブロック範囲 粒度レベル 二次ストレージ リソース空間 モデル操作 許可済み プロセス要素
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年11月30日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

解決手段

CAPIアダプタは、クライアントにあるエクステント粒度でのデータ・アクセスを許可するため、および、アプリケーションがCAPIアダプタ内未許可のデータにアクセスすることを回避するために、許可テーブルおよびファイル・システム許可機能を含む。各許可テーブル・エントリは、CAPIクライアントのために、CAPIクライアント識別子(ID)、CAPIクライアントにリソース所有権割り当てるCAPIサーバレジスタ空間、および、許容される機能のCAPIセットを規定する。

概要

背景

恒久的な二次ストレージは、実質的にすべてのコンピュータ・システムの構成要素である。このストレージは通常、ハードディスクドライブまたはフラッシュ・ストレージ・デバイスなどのブロック・デバイスである。ホスト・コンピュータ・システムをハード・ディスク・ドライブ、固体ドライブテープ・ドライブ、コンパクト・ディスク・ドライブなどの周辺ストレージI/Oデバイスに接続するために、ストレージ・アダプタが使用されることが多い。

従来のコンピュータ・システムでは、ブロック・デバイスに対してデータの読み出しまたは書き込みを行う必要のあるアプリケーションは、要求されたデータのブロックを読み出すか書き込むためにオペレーティング・システム(OS)またはファイル・システム(FS)あるいはその両方の呼び出しを行う。オペレーティング・システムまたはファイル・システムはコンピュータ・システムの「信頼できる」部分であり、読み出し/書き込みリクエストの一部として、そのアプリケーションが要求されたデータのブロックへのアクセス許容されることを確認または許可する。許可に成功すると、OSは読み出し/書き込みリクエストのコマンドを作成し、そのコマンドをホスト・バス・アダプタ(HBA)に送ってサービスする。HBAが受信することができるのはOSからのコマンドのみなので、HBAには、要求されたブロック範囲許可済みであり、そのコマンドを実行しても安全であることが分かっている。

IBMは、オープンパワーファウンデーション(OpenPOWERFoundation)の一部として、新しいブロック・デバイスI/Oモデルを導入した。この新しいブロック・デバイスI/Oモデルは、コヒーレントアクセラレータプロセッサインタフェースCAPI)技術を使用する。CAPIでは、アプリケーションが入出力アダプタ(IOA)に対する読み出し/書き込みのコマンドを作成し、そのコマンドをOS/FSを迂回して、したがって従来の許可も迂回して、直接IOAに送ることができる。許可が行われなければ、アプリケーションが、そのアプリケーションにアクセスが許容されるべきではないデータを取得できるようになる。例えば、第1の競合者および第2の競合者の専有データが含まれているサーバシステムで、許可が行われなければ、第1の競合者が第2の競合者のデータにアクセスできるようになる。

OS/FSの外部でのブロック・デバイス許可のための現在の技術は、ブロック・デバイスまたは論理ユニット(LUN)の粒度レベルでのゾーニングなどのアウトオブバンド技法を使用する。

概要

コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)アダプタにブロック・エクステント粒度の許可モデルの処理を実装するための方法、システムおよびコンピュータ・プログラム製品を提供する。CAPIアダプタは、クライアントにあるエクステント粒度でのデータ・アクセスを許可するため、および、アプリケーションがCAPIアダプタ内未許可のデータにアクセスすることを回避するために、許可テーブルおよびファイル・システム許可機能を含む。各許可テーブル・エントリは、CAPIクライアントのために、CAPIクライアント識別子(ID)、CAPIクライアントにリソース所有権割り当てるCAPIサーバレジスタ空間、および、許容される機能のCAPIセットを規定する。

目的

本発明の主要な態様は、アプリケーションが未許可データにアクセスすることを回避するために、コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)アダプタにブロック・エクステント粒度の許可を実装するための方法、システムおよびコンピュータ・プログラム製品を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

コンピュータ・システム内にコヒーレントアクセラレータプロセッサインタフェースCAPI)アダプタのためのブロック・エクステント粒度許可モデルの処理を実装するための方法であって、前記CAPIアダプタに許可テーブルおよびファイル・システム許可機能を提供することと、前記ファイル・システム許可機能が、エクステント粒度レベルでのデータ・アクセスを各CAPIクライアントに許可して、アプリケーションが前記CAPIアダプタ内未許可のデータにアクセスすることを回避することと、各許可テーブルが、前記各CAPIクライアントのために、CAPIクライアント識別子(ID)、前記CAPIクライアントにリソース所有権割り当てるCAPIサーバレジスタ空間、および許容される機能のCAPIセットを規定することとを含む、方法。

請求項2

前記CAPIサーバ・レジスタ空間が、初期化機能を行うために使用されるCAPIサーバ・レジスタを含み、前記CAPIクライアントIDがCAPIサーバ・レジスタの特定のコピーへのインデックスを提供する、請求項1に記載の方法。

請求項3

前記ファイル・システム許可機能が、前記各CAPIクライアントのための仮想アドレスを前記CAPIサーバ・レジスタ空間にマッピングすることによって、それぞれのCAPIクライアントに対するそれぞれのCAPIサーバ・レジスタへのアクセスを実施することを含む、請求項1に記載の方法。

請求項4

複数のCAPIクライアントのうち1つまたは複数を主所有者CAPIクライアントとして特定することを含む、請求項1に記載の方法。

請求項5

前記主所有者CAPIクライアントが親CAPIクライアントであり、前記親CAPIクライアントが前記CAPIアダプタに新しい子CAPIクライアントについて通知し、前記新しい子CAPIクライアントのための前記CAPIサーバ・レジスタ空間を特定し、前記新しい子CAPIクライアントのために許容されるCAPI機能を特定することを含む、請求項4に記載の方法。

請求項6

ユーザCAPIクライアントに前記ファイル・システム許可機能が許可ハンドルを返すことを含む、請求項1に記載の方法。

請求項7

前記CAPIアダプタが、CAPIサーバ・レジスタ空間に送られた各コマンドに許容される機能を、前記コマンド内の前記許可ハンドルを使用して実施することを含む、請求項6に記載の方法。

請求項8

前記ユーザCAPIクライアントが前記各コマンド内に前記許可ハンドルを設定することを含む、請求項6に記載の方法。

請求項9

前記CAPIアダプタが、前記許可ハンドルを使用して前記各コマンドを検証することを含む、請求項1に記載の方法。

請求項10

コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)アダプタにブロック・エクステント粒度の許可モデルの処理を実装するためのシステムであって、許可テーブルおよびファイル・システム許可機能を含む前記CAPIアダプタを含み、前記ファイル・システム許可機能が、エクステント粒度でのデータ・アクセスをCAPIクライアントに許可して、アプリケーションが前記CAPIアダプタ内で未許可のデータにアクセスすることを回避し、前記許可テーブルが、前記CAPIクライアントのために、CAPIクライアント識別子(ID)、前記CAPIクライアントにリソース所有権を割り当てるCAPIサーバ・レジスタ空間、および許容される機能のCAPIセットを規定する、システム。

請求項11

コンピュータ可読媒体に記憶された制御コードを含み、前記制御コードが前記ファイル・システム許可機能を含む、請求項10に記載のシステム。

請求項12

前記CAPIサーバ・レジスタ空間が、初期化機能を行うために使用されるCAPIサーバ・レジスタを含み、前記CAPIクライアントIDがCAPIサーバ・レジスタの特定のコピーへのインデックスを提供する、請求項10に記載のシステム。

請求項13

プロセッサ、ファイル・システム、および前記CAPIアダプタに関連する許可機能を管理するハイパーバイザを含む、前記CAPIアダプタに結合されたプロセッサ・コンプレックスを含む、請求項10に記載のシステム。

請求項14

コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)、およびペリフェラルコンポーネントインターコネクトエクスプレスPCIE)を備えるトランスポート機構を含む、請求項13に記載のシステム。

請求項15

前記ファイル・システム許可機能が、前記各CAPIクライアントのための仮想アドレスを前記CAPIサーバ・レジスタ空間にマッピングすることによって、それぞれのCAPIクライアントに対するそれぞれのCAPIサーバ・レジスタへのアクセスを実施する、請求項10に記載のシステム。

請求項16

主所有者CAPIクライアントとして特定された、複数のCAPIクライアントのうち1つまたは複数を含み、前記主所有者CAPIクライアントが親CAPIクライアントであり、前記親CAPIクライアントが前記CAPIアダプタに新しい子CAPIクライアントについて通知し、前記新しい子CAPIクライアントのための前記CAPIサーバ・レジスタ空間を特定し、前記新しい子CAPIクライアントのために許容されるCAPI機能を特定する、請求項10に記載のシステム。

請求項17

ユーザCAPIクライアントに前記ファイル・システム許可機能が許可ハンドルを返す、請求項10に記載のシステム。

請求項18

前記CAPIアダプタが、CAPIサーバ・レジスタ空間に送られた各コマンドに許容される機能を、前記コマンド内の前記許可ハンドルを使用して実施することを含む、請求項10に記載のシステム。

請求項19

前記ユーザCAPIクライアントが前記各コマンド内に前記許可ハンドルを設定する、請求項18に記載のシステム。

請求項20

エクステント粒度でのデータ・アクセスをCAPIクライアントに許可する前記ファイル・システム許可機能が、ブロック・デバイスまたは論理ユニット(LUN)のリソース空間サブセットを含む各エクステントを含む、請求項10に記載のシステム。

請求項21

コンピュータ・システム内にコヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)アダプタのためのブロック・エクステント粒度の許可モデルの処理を実装するためのコンピュータ・プログラム製品であって、プログラム命令具現化されたコンピュータ可読ストレージ媒体を備え、前記プログラム命令が、請求項1ないし9のいずれかの方法を行うようにコンピュータによって実行可能である、コンピュータ・プログラム製品。

技術分野

0001

本発明は一般にデータ処理の分野に関し、より詳細には、コヒーレントアクセラレータプロセッサインタフェースCAPI:Coherent Accelerator Processor Interface)にブロック・エクステント粒度許可モデルの処理を実装するための方法、コンピュータ・システムおよびコンピュータ・プログラムに関する。

背景技術

0002

恒久的な二次ストレージは、実質的にすべてのコンピュータ・システムの構成要素である。このストレージは通常、ハードディスクドライブまたはフラッシュ・ストレージ・デバイスなどのブロック・デバイスである。ホスト・コンピュータ・システムをハード・ディスク・ドライブ、固体ドライブテープ・ドライブ、コンパクト・ディスク・ドライブなどの周辺ストレージI/Oデバイスに接続するために、ストレージ・アダプタが使用されることが多い。

0003

従来のコンピュータ・システムでは、ブロック・デバイスに対してデータの読み出しまたは書き込みを行う必要のあるアプリケーションは、要求されたデータのブロックを読み出すか書き込むためにオペレーティング・システム(OS)またはファイル・システム(FS)あるいはその両方の呼び出しを行う。オペレーティング・システムまたはファイル・システムはコンピュータ・システムの「信頼できる」部分であり、読み出し/書き込みリクエストの一部として、そのアプリケーションが要求されたデータのブロックへのアクセス許容されることを確認または許可する。許可に成功すると、OSは読み出し/書き込みリクエストのコマンドを作成し、そのコマンドをホスト・バス・アダプタ(HBA)に送ってサービスする。HBAが受信することができるのはOSからのコマンドのみなので、HBAには、要求されたブロック範囲許可済みであり、そのコマンドを実行しても安全であることが分かっている。

0004

IBMは、オープンパワーファウンデーション(OpenPOWERFoundation)の一部として、新しいブロック・デバイスI/Oモデルを導入した。この新しいブロック・デバイスI/Oモデルは、コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)技術を使用する。CAPIでは、アプリケーションが入出力アダプタ(IOA)に対する読み出し/書き込みのコマンドを作成し、そのコマンドをOS/FSを迂回して、したがって従来の許可も迂回して、直接IOAに送ることができる。許可が行われなければ、アプリケーションが、そのアプリケーションにアクセスが許容されるべきではないデータを取得できるようになる。例えば、第1の競合者および第2の競合者の専有データが含まれているサーバシステムで、許可が行われなければ、第1の競合者が第2の競合者のデータにアクセスできるようになる。

0005

OS/FSの外部でのブロック・デバイス許可のための現在の技術は、ブロック・デバイスまたは論理ユニット(LUN)の粒度レベルでのゾーニングなどのアウトオブバンド技法を使用する。

発明が解決しようとする課題

0006

コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)アダプタのための許可をコンピュータ・システム内に実装するための実効的な機構への需要が存在する。望ましくは、そのような機構は、IO操作を行うための多くのホストCPU要件を迂回して、実効的で効率的なCPAIアダプタの利用を可能にする。

課題を解決するための手段

0007

本発明の主要な態様は、アプリケーションが未許可データにアクセスすることを回避するために、コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)アダプタにブロック・エクステント粒度の許可を実装するための方法、システムおよびコンピュータ・プログラム製品を提供することである。本発明のその他の重要な態様は、ほとんど負の影響のない、また、従来技術の配置にある多くの短所を克服する、そのような方法、システムおよびコンピュータ・プログラム製品を提供することである。

0008

端的に言えば、コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)アダプタにブロック・エクステント粒度の許可モデルの処理を実装するための方法、システムおよびコンピュータ・プログラム製品が提供される。CAPIアダプタは、クライアントにあるエクステント粒度でのデータ・アクセスを許可するため、および、アプリケーションがCAPIアダプタ内で未許可のデータにアクセスすることを回避するために、許可テーブルおよびファイル・システム許可機能を含む。許可テーブルの各エントリは、そのCAPIクライアントのために、CAPIクライアント識別子(ID)、CAPIクライアントにリソース所有権割り当てるCAPIサーバレジスタ空間、および許容される機能のCAPIセットを規定する。

0009

本発明の特徴によれば、CAPIサーバ・レジスタ空間は、CAPIアダプタ・システム・バス・アドレス空間内の各エクステント、すなわち、ある範囲の論理ブロック・アドレスについて、クライアント許可を定めるCAPIサービス・レジスタを含む。

0010

本発明は、前述およびその他の目的および利点と共に、図面に示される本発明の好ましい実施形態の下記の詳細な説明によって、最もよく理解され得る。

図面の簡単な説明

0011

好ましい実施形態によって、CAPIアダプタにコヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)許可を実装するためのコンピュータの例およびCAPI許可ハンドル配列要素の例を示す図である。
好ましい実施形態によって、CAPIアダプタにコヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)許可を実装するためのコンピュータの例およびCAPI許可ハンドルの配列要素の例を示す図である。
好ましい実施形態によって、CAPIアダプタにコヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)許可を実装するためのコンピュータの例およびCAPI許可ハンドルの配列要素の例を示す図である。
好ましい実施形態による、コマンドを検証するCAPI許可操作の例を示す図である。
好ましい実施形態による、コマンドを検証するCAPI許可操作の例を示す図である。
好ましい実施形態によるCAPI許可モデルおよび許可処理操作を含む、読み出しコマンドの例を示す図である。
好ましい実施形態によるCAPI許可モデルおよび許可処理操作を含む、読み出しコマンドの例を示す図である。
好ましい実施形態によるCAPI許可モデルおよび許可処理操作を含む、読み出しコマンドの例を示す図である。
好ましい実施形態によるCAPI許可モデルおよび許可処理操作を含む、読み出しコマンドの例を示す図である。
好ましい実施形態によるCAPI許可モデルおよび許可処理操作を含む、読み出しコマンドの例を示す図である。
好ましい実施形態によるCAPI許可モデルおよび許可処理操作を含む、読み出しコマンドの例を示す図である。
好ましい実施形態による、CAPI許可モデル処理操作の例を示す図である。
好ましい実施形態による、CAPI許可初期化処理操作の例を示す図である。
好ましい実施形態による、CAPI許可処理操作の例を示す図である。
好ましい実施形態による、CAPI許可コマンドフロー処理操作の例を示す図である。
好ましい実施形態による、CAPI許可実施処理操作の例を示す図である。
好ましい実施形態による、CAPI許可機構および処理操作の例を示す図である。
好ましい実施形態による、CAPI許可削除処理操作の例を示す図である。
好ましい実施形態による、CAPI許可読み出しコマンド処理操作の例を示す図である。
好ましい実施形態による、CAPI許可読み出しコマンド処理操作の例を示す図である。
好ましい実施形態によるコンピュータ・プログラム製品を示すブロック図である。

実施例

0012

下記の、本発明の実施形態の詳細な説明では、添付図面を参照し、その図面には本発明が実践され得るようにする実施形態の例が示される。他の実施形態が利用されてもよく、また本発明の範囲を逸脱することなく構造的変更が加えられてもよいことが理解される。

0013

本明細書で使用される用語は、特定の実施形態のみを説明することを目的とし、本発明を限定することは意図されない。本明細書で使用されるとき、単数形「a」、「an」、および「the」は、文脈によって明確に断りのない限り、複数形も含む。また、用語「備える」または「備えている」あるいはその両方は、本明細書で使用するとき、述べられた特徴、完全体、ステップ、操作、要素、または構成要素あるいはその組合せの存在を明確に示すが、1つまたは複数の他の特徴、完全体、ステップ、操作、要素、構成要素またはそれらのグループあるいはその組合せの存在または追加を除外しない。

0014

本発明の特徴によれば、好ましい実施形態によって、CAPIアダプタにコヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)許可を実装するための方法、システム、およびコンピュータ・プログラム製品が提供される。

0015

図面を参照すると、図1および2に、好ましい実施形態によって、CAPIアダプタ102にコヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)許可を実装するためのコンピュータ・システムの例が、全体として参照文字100で示されている。コンピュータ・システム100は、システム・メモリ106に結合された1つまたは複数のプロセッサ104または中央処理ユニット(CPU)104(1つが示されている)を含み、このプロセッサ104またはCPU104は、I/Oハブまたはコヒーレント・アタッチ・プロセッサ・プロキシCAPP)108およびペリフェラルコンポーネントインターコネクトエクスプレス(Peripheral Component Interconnect Express:PCIエクスプレスまたはPCIE)接続によってCAPIアダプタ102に結合されている。CAPIアダプタ102は許可テーブル112を含み、このテーブルは好ましい実施形態によって許可を実装する複数の許可エントリを含む。

0016

図2に示されるように、好ましい実施例によれば、コンピュータ・システム100はストレージ・スタック120の例を含み、このスタックは、CAPI/PCIEインタフェース・ブロック130によってCAPIアダプタ102に結合された、ユーザCAPIクライアント122、ファイル・システム126を含むオペレーティング・システム124、およびハイパーバイザ128を含み、CAPIアダプタ102はファイル・システム許可機能132を含む。CAPI/PCIEインタフェース・ブロック130はCAPIトランスポート機構を含み、この機構は、システム・トランスポート機構またはPCIEの上に重ねられている。CAPIクライアント122はユニークなシステム・エントリであり、CAPIアダプタ機能にアクセスするための許可の、別途特定されたセットを有する。

0017

また図3を参照すると、許可テーブル112は好ましい実施形態による許可を実装する許可エントリ140を含む。図示された許可エントリ140の例は、好ましい実施形態によれば、CAPIクライアント・ユーザID150、リソースならびにエクステントの情報を含むCAPIサーバ・レジスタ空間152、および、許容されるアクセス・タイプを含めた許容される機能のCAPIセット154を含む。

0018

本発明の特徴によれば、CAPIサーバ・レジスタ空間152は、コマンドを開始させるために使用できるレジスタの複数のコピーを含むCAPIアダプタ・システム・バス・アドレス空間である。各コピーは、CAPIサーバ・レジスタと呼ばれる。各CAPIサーバ・レジスタは、その特定のCAPIサーバ・レジスタに以前から許可されているアダプタ機能にのみアクセスできる。

0019

本発明の特徴によれば、CAPIクライアントIDは、CAPIサーバ・レジスタの特定のコピーへのインデックスである。CAPIクライアントのうち1つまたは複数が、マスタ・クライアントとして特定される。マスタ・クライアントのためのCAPIサーバ・レジスタは、CAPIアダプタの初期化機能を実行するために使用され、これらの特定のCAPIサーバ・レジスタは、すべてのCAPIアダプタ機能にアクセスすることができる。

0020

図4および5を参照すると、好ましい実施形態による、コマンドを検証するCAPI許可操作の例が示されている。図4に、コマンドを検証するCAPI許可操作の例が、全体として参照文字200で示されている。図5のブロック222に示されるように、ホストにより検証が行われ、許可されたコンテキストのみが図4に示される所与のMMIO空間202に書き込んでもよい。図4で、IOアダプタ・リクエスト制御ブロック(IOARCB)206は、許可ハンドル208を含む。図5のブロック222に示されるように、図4の許可エントリ140で示される、信頼できるハンドル・データはCAPIサーバID214ならびにリソースおよび範囲212を含む。ブロック224に示されるように、MMIO空間202が、CAPIサーバID214によってインデクシングされる。ブロック226に示されるように、図4に示されるプロセス要素216がCAPIサーバIDによってインデクシングされる。ブロック228に示されるように、プロセス要素216はホスト実効アドレス物理アドレスに変換するために必要な情報を含む。

0021

図6、7、8、9、10および11を参照すると、好ましい実施形態によるCAPI許可モデルおよび読み出しコマンドのための許可処理操作を含む、読み出しコマンド操作の例が示されている。

0022

図6に、読み出しコマンドのためのCAPI許可操作の例が、全体として参照文字300で示されている。CAPI許可操作300の例は、ユーザ302、OS304、ハイパーバイザ306、およびCAPIアダプタ102で示されている。図7のブロック310に示されるように、OSが「所有者」コンテキストであると仮定する。ブロック312に示されるように、ユーザが、ファイル/hdiskを「開く」ためにシステムコールを行う。ブロック314に示されるように、OSが、ユーザのコンテキストをコンテキスト・リストに追加するためにハイパーコールを行う。ブロック316に示されるように、ハイパーバイザが、ユーザのコンテキストをコンテキスト・リストに追加する。ブロック318に示されるように、ハイパーバイザが、そのコンテキストをアダプタに追加するためにCAPI処理を行う。

0023

図8に、読み出しコマンドのためのCAPI許可操作の例が、全体として参照文字320で示されている。CAPI許可操作320の例は、ユーザ302、OS304、ハイパーバイザ306、およびCAPIアダプタ102で示されている。図9で、ブロック322に示されるように、ハイパーバイザがユーザのCAPI IDを返す。ブロック324に示されるように、許可を追加するために、OSがアダプタに対して「許可作成」のリクエストを行い、OSがユーザCAPI IDを提供し、次に、リソースおよびエクステントを提供する。ブロック326に示されるように、アダプタが各エクステントに許可ハンドルを割り当て、CAPI IDおよびエクステント情報を記入する。ブロック328に示されるように、アダプタがオペレーティング・システムに新しいユーザ許可ハンドルを返す。

0024

図10に、読み出しコマンドのためのCAPI許可操作の例が、全体として参照文字330で示されている。CAPI許可操作330の例は、ユーザ302、OS304、ハイパーバイザ306、およびCAPIアダプタ102で示されている。図11で、ブロック334に示されるように、OSがユーザに許可ハンドルを返す。ブロック334に示されるように、ユーザがアダプタに、読み出しを発行するよう求めるリクエストを送る。ブロック336に示されるように、アダプタがCAPI IDを使用して、どのコンテキストを使用するか特定する。ブロック340に示されるように、アダプタがそのコンテキストを使用して、ホスト・リクエスト・アドレスを変換する。

0025

ブロック342に示されるように、アダプタがIOアダプタ・リクエスト制御ブロック(IOARCB)をフェッチする。ブロック344に示されるように、アダプタがIOARCBから許可ハンドルを取得する。ブロック346に示されるように、アダプタが、その許可ハンドルが現行バージョンであるか(全ビットが一致するか)確認する。

0026

ブロック348に示されるように、アダプタが、その許可ハンドルが使用されたCAPI IDのためのものであるか確認する。ブロック350に示されるように、アダプタが、そのリクエストの範囲が許容されている(許可ハンドル・データ内のデータ)か確認する。ブロック352に示されるように、アダプタが読み出しを行う。ブロック354に示されるように、アダプタがアドレスを変換して、データをホストへ(ユーザのメモリ内へ)送る。ブロック356に示されるように、アダプタはキューを書き込むか、メモリ位置を書き込むか、割り込みを生成するか、または何らかの所望の完了通知を行う。

0027

本発明の特徴によって、図12に関して示され、記載されるように、CAPI許可モデルは、権利の分割実施に基づく。

0028

図12を参照すると、好ましい実施形態によるCAPI許可モデル操作の例が示され、ブロック400で開始する。ブロック402に示されるように、信頼できるOSが、どのCAPIサーバ・レジスタがどのクライアントによってアクセス可能であるかを実施する。これは、例えば、クライアントの仮想アドレスをCAPIサーバ・レジスタ空間にマッピングすることによって実現される。ブロック404に示されるように、親クライアント初期には主所有者クライアント(Master Owning Client))がCAPIアダプタ102に、どの機能が子のCAPIサーバに許容されるかを通知する。ブロック406に示されるように、親クライアントが、新しい子のCAPIサーバ・レジスタ空間に送ることを許容される機能、コマンド、エクステントを特定する1つまたは複数のコマンドを、以前から許可されているCAPIサーバ・レジスタ空間に送る。ブロック408に示されるように、アダプタが、要求されたそれぞれの許可要素に適した不透明の許可ハンドル・トークンを生成して返す。許可ハンドルは、実装ごとに固有の方法で、読み出し/書き込みコマンドの許可パフォーマンスを最適化するように符号化される。ブロック410に示されるように、アダプタは、CAPIサーバ・レジスタ空間に送られた各コマンドで許容される機能を実施する。ブロック410で、クライアントは適切な「許可ハンドル」をコマンド内にセットし、アダプタはその「許可ハンドル」を使用して、そのコマンドが受信側CAPIサーバ・レジスタ空間による実行を許容されていることを検証する。

0029

図13を参照すると、好ましい実施形態によるCAPI許可初期化処理操作の例が示され、ブロック500で開始する。ブロック502に示されるように、アダプタのリセットが完了し、信頼できるOSのブート・プロセスがアダプタをCAPIモード移行させ、主所有者クライアント・コンポーネント、および、その主所有者クライアントに割り当てられたアダプタCAPIサーバ・レジスタ空間を特定する。ブロック504に示されるように、主所有者クライアントは、アダプタの制御下で、すべてのデバイスおよび機能に対してデフォルトで許可される。ブロック506に示されるように、主所有者クライアントは信頼できるとして特定される。ブロック508に示されるように、信頼できるOSは、主所有者クライアントが、その所有者クライアントに割り当てられたCAPIサーバ・レジスタ空間にアクセスするためのアドレス・マッピングを作成する。このアドレス・マッピングは、他のどのようなクライアントまたはアプリケーションにも与えられない。

0030

ブロック510に示されるように、これで、主所有者クライアントがアダプタにコマンドを送れるようになる。ブロック512に示されるように、他のクライアントまたはアプリケーションは、主所有者クライアントのサーバ・レジスタ空間へのアドレス・マッピングをもたないので、それらのレジスタを介してアダプタにコマンドを送ることはできない。

0031

図14を参照すると、好ましい実施形態によるCAPI許可処理操作の例が示され、ブロック600で開始する。ブロック602に示されるように、アプリケーション・クライアントは、ファイル・システムからのファイルに対する許可を要求する。ブロック604に示されるように、ファイル・システムはリクエストを検証して、ファイルを含む各エクステントの位置を判断し、システムCAPI許可マネージャからの各エクステントに対する許可を要求する。ブロック606に示されるように、システムCAPI許可マネージャは、どのCAPIアダプタが各エクステントにサービスを行う必要があるか判断し、要求元アプリケーション・クライアントに(子)クライアントIDおよびCAPIサーバ・レジスタ範囲を割り当てるようにCAPIクライアント・マネージャに要求し、以前から許可されているCAPI親クライアント(初期にはマスタ・クライアント)に、子IDおよびエクステントのリストを許可するように要求する。ブロック608に示されるように、CAPI親クライアントは親のCAPIサーバ・レジスタを介して「許可作成」コマンドをCAPIアダプタに送る。パラメータは、CAPI子クライアントID、エクステントのリスト、および他のコマンド/アダプタ・リソースのリストであり、エクステントのリストは各エクステントについてCAPI親許可ハンドル、エクステント開始LBAおよびブロック数を含み、他のコマンド/アダプタ・リソースのリストは各コマンド/リソースについてCAPI親許可ハンドルを含む。ブロック610に示されるように、CAPIアダプタは、親許可ハンドルおよびCAPIサーバ・レジスタ範囲が特定のエクステント/コマンド/リソースに対して有効であることを検証し、要求された、それぞれの検証済みエクステント/コマンド/リソースに新しい子許可ハンドルを割り当てることによって許可リストを作成し、その許可リストを親クライアントに返す。ブロック612に示されるように、親クライアントは許可リストを許可マネージャに返す。ブロック614に示されるように、許可マネージャは許可リストおよび子クライアントIDをファイル・システムに返し、ファイル・システムは許可リストおよび子クライアントIDをアプリケーション・クライアントに返す。

0032

図15を参照すると、好ましい実施形態によるCAPI許可コマンド・フロー処理操作の例が示され、ブロック700で開始する。ブロック702に示されるように、アプリケーション・クライアントがコマンドを作成する。パラメータは、開始LBAおよびLBAの数、ならびに子の許可ハンドルを含む。ブロック704に示されるように、アプリケーション・クライアントはそのコマンドを、そのアプリケーション・クライアントのCAPIサーバ・レジスタを介して直接CAPIアダプタに送る。ブロック706に示されるように、CAPIアダプタは、許可ハンドルおよび受信側CAPIサーバ・レジスタ・アドレスを使用して、要求側クライアントがコマンドの実行を許可されていることを検証する。ブロック708に示されるように、CAPIアダプタはコマンドを実行し、完了通知をアプリケーション・クライアントに送る。

0033

図16を参照すると、好ましい実施形態によるCAPI許可実施処理操作の例が示され、ブロック800で開始する。ブロック802に示されるように、個々のクライアント/アプリケーションのためにアドレス空間マッピングを作成する、信頼できるOSによって、CAPIアダプタ・サーバ・レジスタ空間へのアクセスが実施される。ブロック804に示されるように、アダプタは、各コマンドで渡された許可ハンドルが要求側クライアントに属すること、および、そのクライアントが要求されたコマンド/機能/エクステントに対して許可されていることを検証することによって、そのコマンドにアクセス権を実施する。

0034

図17を参照すると、好ましい実施形態によるCAPI許可機構および処理操作の例が示され、ブロック900で開始する。ブロック902に示されるように、許可ハンドルを、ルックアップ・テーブル・インデックスを含む複数のフィールドとして符号化する。ルックアップ・テーブル・インデックス・フィールドのサイズは、有効となる可能性のある許可ハンドルの数を最大化するように、実装によって選択されるべきである。許可ハンドルは実装固有の符号化を含み、このフィールドのサイズは失効した証明書の検出が可能である最小のサイズにすべきである。ブロック904に示されるように、複数の許可エントリを含む許可テーブルを作成する。各許可エントリは許可ハンドル、CAPIサーバ・レジスタID、エクステントの論理開始ブロック・アドレス、エクステントの論理ブロック・アドレスの範囲を含む。ブロック906に示されるように、コマンドを受信したときの許可処理は、受信したコマンドに含まれる許可ハンドルからルックアップ・テーブル・インデックスを抽出することを含む。そのルックアップ・テーブル・インデックスを使用して、許可エントリの場所を特定する。許可エントリのCAPIサーバ・レジスタIDを受信側のCAPIサーバ・レジスタIDと比較する。許可エントリの許可ハンドルを、受信したコマンドに含まれる許可ハンドルと比較する。いずれかが一致しない場合には、その結果、コマンドが拒絶される。

0035

図18を参照すると、好ましい実施形態によるCAPI許可削除処理操作の例が示され、ブロック1000で開始する。ブロック1002に示されるように、アプリケーション子クライアント(または、その系列の親、祖母など)が、「許可削除」コマンドをクライアントのCAPIサーバ・レジスタを介してCAPIアダプタに送る。パラメータは、CAPI子クライアントID、およびエクステントのリストである。各エクステントについて、CAPI子許可ハンドル、エクステントの開始LBAおよびブロック数、ならびに、他のコマンド/アダプタ・リソースのリストを含む。各コマンド/リソースについて、CAPI子許可ハンドルを含む。ブロック1004に示されるように、CAPIアダプタは、要求元が系列内の親または子のいずれかであることを検証し、リスト内の許可を削除する。

0036

図19および図20を参照すると、好ましい実施形態によるCAPI許可読み出しコマンド処理操作の例が示されている。図19に、読み出しコマンドのためのCAPI許可操作が、全体として参照文字1100で示されている。CAPI許可操作1100の例は、ユーザ1102、OS1104、ファイル・システム1106、ハイパーバイザ1108、およびCAPIアダプタ102で示される。図20のブロック1102に示されるように、OSがファイル・システムおよびハイパーバイザに指示してファイルを開く。ブロック1104に示されるように、ハイパーバイザがCAPI IDを提供し、ファイル・システムが許可チェックを行って許可情報およびファイル・ハンドル(FH)を返す。ブロック1106に示されるように、OSが(ファイル・システムの指示により)許可作成リクエストを発行する。ブロック1108に示されるように、Lseekはユーザのファイル・システムのみを取り扱う。ブロック1110に示されるように、読み出しは、直接CAPIアダプタに対して行われる。ブロック1112に示されるように、CAPIアダプタは、CAPI ID、許可ハンドル(AH)、エクステント(ファイル・システム許可)を検証する。ブロック1114に示されるように、CAPIアダプタがその操作を行い、応答する。

0037

図21を参照すると、本発明の工業製品またはコンピュータ・プログラム製品1200が示されている。コンピュータ・プログラム製品1200は、フロッピー(R)・ディスク、光学読み取り可能なコンパクト・ディスクもしくはCD−ROMの形での大容量読み出し専用メモリ、テープ、または別の同様のコンピュータ・プログラム製品などの記録媒体1202を含む、非一時的コンピュータ可読ストレージ媒体有形具現化されている。記録媒体1202は、図1および2のシステム100内の好ましい実施形態のCAPIアダプタ102にコヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)許可を実装するための方法を行うために、媒体1202上にプログラム手段1204、1206、1208、および1210を記憶する。

0038

記録されたプログラム手段1204、1206、1208および1210により定められた一連プログラム命令または1つもしくは複数の相互に関係するモジュール論理アセンブリが、コンピュータ・システム100に、コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)許可を好ましい実施形態のCAPIアダプタ102に実装するように命じる。

0039

本発明について、図面に示される本発明の実施形態の詳細を参照しながら説明してきた。それらの詳細は、添付の特許請求の範囲で請求される本発明の範囲を限定することを意図しない。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ