JP6274623B2 - 安全なダイレクトメモリアクセス - Google Patents

安全なダイレクトメモリアクセス Download PDF

Info

Publication number
JP6274623B2
JP6274623B2 JP2016060767A JP2016060767A JP6274623B2 JP 6274623 B2 JP6274623 B2 JP 6274623B2 JP 2016060767 A JP2016060767 A JP 2016060767A JP 2016060767 A JP2016060767 A JP 2016060767A JP 6274623 B2 JP6274623 B2 JP 6274623B2
Authority
JP
Japan
Prior art keywords
destination
dma
address
memory
addresses
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.)
Active
Application number
JP2016060767A
Other languages
English (en)
Other versions
JP2016167275A (ja
Inventor
マンガランパッリ、ジャヤント
ゴクルランガン、ヴェンカット、アール.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Priority to JP2016060767A priority Critical patent/JP6274623B2/ja
Publication of JP2016167275A publication Critical patent/JP2016167275A/ja
Application granted granted Critical
Publication of JP6274623B2 publication Critical patent/JP6274623B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Bus Control (AREA)

Description

著作権保護され得るストリーミング映像または音声コンテンツの閲覧および/または傾聴のために演算デバイスの使用が増え続けている。また、解像度の増えた映像/音声コンテンツがストリーミングされるにつれ、演算デバイスは保護されたコンテンツを一時的に記憶する必要があり得る。著作権保護されたコンテンツの所有者は、演算デバイスにストリーミングされたときに、そのコンテンツが著作権侵害されないこと、あるいは自由に複製されないことを確保するために、演算デバイスに要件を置き得る。これらの要件は、保護された再生を実行するように演算デバイスを構成することを含み得る。典型的に、保護された再生は、保護されたコンテンツの復号化と、復号化されたコンテンツを安全なメモリに置いて、演算デバイスのユーザに最終的に出力することを含む。しかしながら、安全なメモリ内にある間、復号化されたコンテンツは、演算デバイスのためのホストアプリケーション(例えば、オペレーティングシステム)にとってアクセス可能ではない。
演算プラットフォーム例を示す。
宛先マネージャの構成例のブロック図を示す。
安全なDMA動作の処理略図例を示す。
別の安全なDMA動作の処理略図例を示す。
安全なDMA動作の動作例の流れ図を示す。
システム例を示す。
本開示において企図されているように、保護された再生は、保護されたコンテンツの復号化と復号化されたコンテンツを安全なメモリへ置くことを含む。いくつかの例では、安全な処理装置(SEP)サブシステムは、安全なダイレクトメモリアクセス(DMA)動作を提供し得る。安全なDMA動作は、「隠れたDMA動作」と称され得る。現在の隠れたDMA動作は、ソースメモリから暗号化されたコンテンツを取得すること、および復号化されたコンテンツを安全な宛先メモリ内へ置くことを含む。これらの現在の隠れたDMA動作については、演算デバイスのためのホストまたはオペレーティングシステムは、復号化されたコンテンツがどの宛先アドレスに置かれるかに関しての制御を典型的に有する。しかしホストまたはオペレーティングシステムは、悪意のあるアプリケーションまたは符号によってハイジャックされ得る。このように、悪意のあるアプリケーションは、オペレーティングシステムをハイジャックし、復号化されたコンテンツを安全でない宛先メモリのための宛先アドレスへ方向転換し得る。悪意のあるアプリケーションまたは可能性としていずれのアプリケーションも、次いで、復号化されたコンテンツを自由に複製し得る。
いくつかの例では、安全なDMA動作のための技法が実装される。これらの例として、DMA動作の開始に応答して、安全な宛先アドレス範囲が確立され得る。DMA動作は、ソースメモリにおいて維持される暗号化されたコンテンツを取得することと、その暗号化されたコンテンツを復号化することと、その復号化されたコンテンツを安全な宛先メモリに置くこととを含み得る。安全な宛先アドレス範囲が確立されると、宛先DMAテーブルが受け取られ得るが、これは安全な宛先メモリと関連する1または複数の宛先アドレスを含むものである。復号化されたコンテンツが安全な宛先メモリに置かれることを許容することは、安全な宛先アドレス範囲内にある1または複数の宛先アドレスに基づき得る。
図1は演算プラットフォーム100の例を示す。図1に示されるように、演算プラットフォーム100は安全な処理(SEP)サブシステム110、オペレーティングシステム120、共有メモリ130、ソースメモリ140、安全な宛先メモリ150、映像/音声サブシステム160、中央処理装置(CPU)170、通信(コム)180、およびアプリケーション190を含む。また、図1に示されるように、いくつかのインターフェースが、演算プラットフォーム100の要素を相互接続および/または通信可能に連結し得る。例えば、ユーザインターフェース115およびインターフェース125は、ユーザ(不図示)および/またはアプリケーション190がオペレーティングシステム120に連結することを許可し得る。また、インターフェース135は、オペレーティングシステム120が、SEPサブシステム110、共有メモリ130、ソースメモリ140、安全な宛先メモリ150、映像/音声サブシステム160、またはコム180等の、演算プラットフォーム100の要素への、少なくとも限定されたアクセスを有することを許可し得る。インターフェース154は、演算プラットフォーム100のハードウェアおよび/またはファームウェア要素が、例えばシステムバスまたは他のタイプの内部通信チャネルを介して、通信可能に互いに連結することを許可し得る。
いくつかの例では、図1に示されるように、SEPサブシステム110は、宛先マネージャ112、隠れたDMAモジュール114、および安全なプロセッサ116を含み得る。宛先マネージャ112、隠れたDMAモジュール114、および安全なプロセッサ116は、隠れたDMA動作を実施するように構成された論理および/または特徴を含み得る。隠れたDMA動作は、ソースメモリ(例えば、ソースメモリ140)において維持される暗号化されたコンテンツを取得することと、暗号化されたコンテンツを復号化することと、復号化されたコンテンツを安全な宛先メモリ(例えば、安全な宛先メモリ150)に置くこととを含み得る。
いくつかの例によれば、オペレーティングシステム120は、SEPサブシステム110と協働して、アプリケーション190が要請した可能性のあるコンテンツの保護された再生を許可し得る。これらの例として、アプリケーション190のユーザは、演算プラットフォーム100に添付または連結された表示装置上で、ストリーミング映像を見る(例えば、ネットワーク資源または媒体サーバーを介して)ことを希望し得る。オペレーティングシステム120は、例えば、アプリケーション190がコム180を活用して、保護されたコンテンツをソースメモリ140に流すことを許可し得る。さらに以下に記述されるが、オペレーティングシステム120および/またはアプリケーション190は、暗号化されたコンテンツストリームの保護された再生を許可するために、SEPサブシステム110の要素によって実装される隠れたDMA動作を開始し得る。
いくつかの例によれば、共有メモリ130は、演算プラットフォーム100のさまざまな要素(例えば、オペレーティングシステム120、SEPサブシステム110、アプリケーション190等)によって活用される多種多様なメモリ媒体を含み得る。これらの実装に関しては、共有メモリ130は、1または複数の揮発性メモリ、非揮発性メモリ、フラッシュメモリ、ランダム・アクセス・メモリ(RAM)、ダイナミック・ランダム・アクセス・メモリ(DRAM)、またはスタティックRAM(SRAM)を含み得るが、これらに限定されない。
いくつかの例では、ソースメモリ140および安全な宛先メモリ150は、1または複数の揮発性メモリ、非揮発性メモリ、フラッシュメモリ、RAM、ROM、または他のスタティックもしくはダイナミック記憶媒体を含むが、これらに限定されない、多種多様なメモリ媒体も含み得る。
いくつかの例によれば、映像/音声サブシステム160は、演算プラットフォーム100を含む演算デバイスのユーザに映像/音声出力を提供するための、演算プラットフォーム100の要素を含み得る。これらの要素は、音声/映像コントローラ、グラフィックプロセッサ等を含み得る。いくつかの例では、映像/音声サブシステム160は、安全な宛先メモリ150に関連する1または複数のメモリアドレスから映像/音声コンテンツを取得するように、オペレーティングシステム120によって指示され得る。
いくつかの例によれば、CPU170は、演算プラットフォーム100のための中央処理装置として実装され得る。CPU170は、1または複数のプロセッサコアを有する、あるいは任意の数のプロセッサコアを有する任意の数のプロセッサを有する、1または複数の処理ユニットを含み得る。CPU170は、例えば、マルチ処理ユニット、縮小命令セットコンピュータ(RISC)、パイプラインを有するプロセッサ、複合命令セットコンピュータ(CISC)、デジタル信号プロセッサ(DSP)等の、任意のタイプの処理ユニットを含み得る。
いくつかの例では、コム180は、演算プラットフォーム100が演算プラットフォーム100に対して遠方にある要素と外部的に通信を行うこと(例えば、ストリーミング保護されたコンテンツを要請および受信すること)を可能とする論理および/または特徴を含み得る。これらの論理および/または特徴は、その1または複数の有線または無線ネットワークを介して、有線および/または無線通信チャネルを介して通信することを含み得る。そのようなネットワークを通じて通信を行うに際し、コム180は、任意のバージョンの1または複数の適用可能な通信またはネットワーク標準に従って動作し得る。
前述のように、インターフェース154は、演算プラットフォーム100のハードウェアおよび/またはファームウェア要素が通信可能に互いに連結することを許可し得る。いくつかの例によれば、通信チャネルインターフェース154は、1または複数のプロトコルまたは標準に従って動作し得る。これらのプロトコルまたは標準は、1または複数の業界標準(後代および異形を含む)において記述され得、例えば、アイ・スクウェア・シー(IC)仕様、システム・マネージメント・バス(SMBus)仕様、アクセラレーテッド・グラフィックス・ポート(AGP)仕様、ペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIエクスプレス)仕様、ユニバーサル・シリアル・バス(USB)仕様、またはシリアル・アドバンスド・テクノロジー・アタッチメント(SATA)仕様に関連するものである。しかしながら、本開示は前述の標準および関連プロトコルのみに限定されない。
いくつかの例では、演算プラットフォーム100は、少なくとも演算デバイスの一部であり得る。演算デバイスの例としては、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトラ・ラップトップ・コンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末(PDA)、携帯電話、携帯電話/PDA組合せ、テレビ、高機能デバイス(例えば、スマートフォン、高機能タブレット、または高機能テレビ)、モバイル・インターネット・デバイス(MID)、メッセージングデバイス、データ通信デバイス等が挙げられ得る。
図2は、宛先マネージャ112に関する体系例のブロック図を示す。図1において演算プラットフォーム100について上述されたように、SEPサブシステム110は、宛先マネージャ112を含み得る。いくつかの例では、宛先マネージャ112は、安全なDMA動作を容易化するために構成または準備された、特徴および/または論理を含む。
図2の宛先マネージャ112の例としては、宛先論理210、制御論理220、メモリ230、および入力/出力(I/O)インターフェース240が挙げられる。図2において示されるように、宛先論理210は制御論理220、メモリ230、およびI/Oインターフェース240と連結され得る。宛先論理210は、1または複数の開始特徴211、範囲特徴213、設定特徴215、検証特徴217、もしくは表示特徴219、またはそれらの任意の妥当な組合せを含み得る。
いくつかの例では、図2に描写される要素は、本開示において記述されるように、宛先マネージャ112を支持または可能化するように構成される。所与の宛先マネージャ112は、図2に描写されるいくつかの、すべての、またはそれより多くの要素を含み得る。例えば、宛先論理210および制御論理220は、宛先マネージャ112の特徴を実装するために、多種多様な論理デバイスまたは実行可能コンテンツを別々にまたは集合的に代表し得る。論理デバイスの例としては、1または複数のマイクロプロセッサ、マイクロコントローラ、プロセッサ回路、安全なプロセッサ、フィールドプログラム式ゲートアレイ(FPGA)、アプリケーション固有集積回路(ASIC)、隠退したスレッドもしくはマルチコア/マルチスレッドマイクロプロセッサのコア、またはそれらの組合せが挙げられ得る。
いくつかの例では、図2に示されるように、宛先論理210は、開始特徴211、範囲特徴213、設定特徴215、検証特徴217、または表示特徴219を含む。宛先論理210は、動作を実施するために1または複数のこれらの特徴を使用するように構成され得る。例えば、開始特徴211は、隠れたDMA動作を始めるために、オペレーティングシステムまたはアプリケーションによる要請の開始に応答し得る。範囲特徴213は、安全な宛先メモリ内への復号化されたコンテンツを置くための安全な宛先アドレス範囲を確立し得る。設定特徴215は、ソースメモリから安全な宛先メモリへの保護されたコンテンツの移動を支援するために、隠れたDMAモジュールにおいてソースおよび宛先レジスタを設定し得る。検証特徴217は、安全な宛先メモリと関連する宛先アドレスが安全な宛先アドレス範囲内にあるかどうかを判定し得る。表示特徴219は、隠れたDMA動作が、安全な宛先アドレスの範囲外にある1または複数の宛先アドレスの理由により停止された場合は、誤った指示をオペレーティングシステムまたはアプリケーションに送り得る。
いくつかの例では、制御論理220は、宛先マネージャ112の全体的動作を制御するように構成され得る。前述のように、制御論理220は、任意の多種多様な論理デバイスまたは実行可能コンテンツを代表し得る。いくつかの例として、制御論理220は、宛先マネージャ112の制御を実装するために、実行可能コンテンツまたは命令と一体で動作するように構成され得る。いくつかの代替例では、制御論理220の特徴および機能性は、宛先論理210内で実装され得る。
いくつかの例によれば、メモリ230は、制御論理220および/または宛先論理210による使用のために実行可能コンテンツまたは命令を記憶するように準備され得る。実行可能コンテンツまたは命令は、宛先マネージャ112の特徴または要素を実装または活動化するために使用され得る。以下にさらに記述されるが、メモリ230はまた、安全な宛先アドレス範囲を確立すること、ならびに隠れたDMAモジュール114等のDMAモジュールにおいてソースおよび宛先レジスタを設定することに関連する情報を少なくとも一時的に維持するようにも準備され得る。メモリ230はまた、安全な宛先メモリと関連する宛先アドレスを検証することに関連する情報を一時的に記憶するようにも準備され得る。
メモリ230は、1または複数の揮発性メモリ、非揮発性メモリ、フラッシュメモリ、プログラム式変数または状態、RAM、ROM、または他のスタティックもしくはダイナミック記憶媒体を含むが、これらに限定されない、多種多様なメモリ媒体を含み得る。
いくつかの例では、I/Oインターフェース240は、ローカル通信媒体、または図1に描かれる宛先マネージャ112と演算プラットフォーム100の要素との間のリンクを介して、インターフェースを提供し得る。I/Oインターフェース240は、ローカル通信媒体またはリンク(例えば、IC、SMBus、AGP、PCIエクスプレス、USB、SATA、等)を介して通信するために、さまざまな通信プロトコルに従って動作するインターフェースを含み得る。
図3は、安全なDMA動作の処理例300を示す。いくつかの例では、図1に示される、または図2に記述される宛先マネージャ112は、処理300を容易化するために論理および/または特徴を含み得る。また、図1に示される、隠れたDMAモジュール114、安全なプロセッサ116、オペレーティングシステム120、共有メモリ130、ソースメモリ140、安全な宛先メモリ150、またはアプリケーション190もまた、処理300の少なくともいくつかの動作を実装するように構成され得る。これらの例は、処理300を実装するために前述の要素だけには限定されない。
処理例3.1(分散/収集リスト)から開始し、オペレーティングシステム120および/またはアプリケーション190は、分散/収集リストを生成または構築するように構成され得る。いくつかの例では、分散/収集リストはそれぞれ暗号化されたおよび復号化されたコンテンツに関してソースおよび宛先アドレスを表示し得る。これらの例として、アプリケーション190のユーザは、演算プラットフォーム100に連結された表示装置上でストリーミング映像を見ることを希望し得る。オペレーティングシステム120は、例えばアプリケーション190が暗号化されたコンテンツをソースメモリ140に向けることを許可し得る。オペレーティングシステム120および/またはアプリケーション190は、次に、ソースメモリ140内にソースアドレスのリストを生成し、暗号化されたコンテンツがどこで維持されているかを表示し得る。オペレーティングシステム120および/またはアプリケーション190は、安全な宛先メモリ150に関連する宛先アドレスのリストを生成し、復号化されたコンテンツがどこに置かれるかも表示し得る。ソースまたは宛先リストは、分散/収集リストとも呼ばれ得、暗号化された/復号化されたコンテンツがソースメモリ140および/または安全な宛先メモリ150の非隣接部分から取得し得る可能性を反映する。また、これらの例として、オペレーティングシステム120および/またはアプリケーション190は、分散/収集リストを共有メモリ130内に少なくとも一時的に置き得る。
処理例3.2(隠れたDMA動作の開始)へと続き、オペレーティングシステム120および/またはアプリケーション190は、隠れたDMA動作を開始し得る。いくつかの例では、SEPサブシステム110における宛先マネージャ112は、隠れたDMA動作を始めるために、開始(例えば、開始特徴211を介して)に応答するために論理および/または特徴を含み得る。これらの例として、共有メモリ130内の分散/収集リストの存在は、オペレーティングシステム120および/またはアプリケーション190の隠れたDMA動作を開始する意図を表示し得る。
処理例3.3(正当な宛先範囲レジスタを設定)へと続き、宛先マネージャ112は隠れたDMA動作の開始に応答して、隠れたDMAモジュール114(例えば、範囲特徴213を介して)において維持される正当な宛先範囲レジスタを設定するために論理および/または特徴を含み得る。いくつかの例では、隠れたDMAモジュール114において維持される正当な宛先範囲レジスタは、復号化されたコンテンツが安全な宛先メモリ150に置かれ得る、安全な宛先アドレス範囲を確立するように設定され得る。これらの例に関し、宛先マネージャ112は隠れたDMAモジュール114において維持される、正当な宛先先頭アドレスレジスタおよび正当な宛先末尾レジスタを設定し得る。例えば、それらのレジスタによって表示される先頭アドレスと終端アドレスとにある、またはその間にある、宛先アドレスは、安全な宛先アドレス範囲内であり、「正当な宛先アドレス」として見なされ得る。
処理例3.4(設定ソースおよび宛先レジスタの設定)へと続き、宛先マネージャ112は、共有メモリ130から分散/収集リストを受け取るため、ならびに分散/収集リストに基づいて隠れたDMAモジュール114において維持されるソースおよび宛先アドレスレジスタを設定する(例えば、設定特徴215を介して)ことを始めるために、論理および/または特徴を含み得る。いくつかの例では、前述のように、分散/収集リストはソースメモリ140において維持される暗号化されたコンテンツに関連するソースアドレスを含み、また復号化されたコンテンツを安全な宛先メモリ150に置くための宛先アドレスも含む。
処理例3.5(検証)へと続き、隠れたDMAモジュール114は、分散/収集リスト内に含まれる宛先アドレスを自動的に検証するように構成される。いくつかの例では、隠れたDMAモジュール114は、宛先マネージャ112が各宛先アドレスレジスタの設定を試みると、個々の宛先アドレスを別個に検証し得る。例えば、隠れたDMAモジュール114は、各宛先アドレスが安全な宛先アドレス範囲内であるかどうかを自動的に確認するように構成され得る。
処理例3.6(不当な宛先アドレスの場合はエラーを表示)へと移動し、隠れたDMAモジュール114は、所与の宛先アドレスは安全な宛先アドレス範囲内ではないことを判定するために構成され得る。いくつかの例では、隠れたDMAモジュール114は、所与の宛先アドレスが不当であると判定し得、そして隠れたDMAモジュール114は、レジスタ設定処理を停止し、エラー信号を宛先マネージャ112へ送り得る。
処理例3.7(エラー/検証されない場合は隠れたDMA動作を停止)へと続き、宛先マネージャ112は、隠れたDMA動作を停止させる(例えば検証特徴217を介して)ように構成される論理および/または特徴を含み得る。いくつかの例では、隠れたDMA動作の停止時に、宛先マネージャ112は、オペレーティングシステム120および/またはアプリケーション190にエラーメッセージまたは表示を送り得る。これらの例として、エラーメッセージは、不当な宛先アドレスが分散/収集リスト内に含まれたことを表示し得る。
処理例3.8(すべての宛先アドレスが検証された場合、隠れたDMA動作を完了させる)へと移動し、隠れたDMAモジュール114は、次に、前述のように設定されたソースアドレスレジスタに基づき、ソースメモリ140から暗号化されたコンテンツの移動を始め得る。いくつかの例では、ソースメモリ140から取得された暗号化されたコンテンツは、安全なプロセッサ116によって復号化され得、次に、やはり前述のように設定され、検証された宛先アドレスレジスタに基づき、隠れたDMAモジュール114によって安全な宛先メモリ150内へ置かれる。
処理例3.9(正当な宛先範囲レジスタを消去)へと続き、宛先マネージャ112は、前述のように、隠れたDMAモジュール114において設定された正当な宛先範囲レジスタを消去し得る。いくつかの例では、正当な宛先範囲レジスタは、隠れたDMA動作の完了に基づいて消去され得る。いくつかの他の例では、正当な宛先範囲レジスタは、エラーメッセージ(例えば、不当な宛先アドレス)に続いて、オペレーティングシステム120および/またはアプリケーション190が隠れたDMA動作を行う努力を断念した場合は、やはり消去され得る。これらの例として、宛先マネージャ112は、新規または修正済み分散/収集リストが時間の所与の期間(例えば、数秒または数分)内に生成されない場合には、オペレーティングシステム120および/またはアプリケーション190は、隠れたDMA動作を行う努力を断念したと想定し得る。
処理例3.10(隠れたDMA動作の成功)へと移動し、宛先マネージャ112は、隠れたDMA動作の成功を表示するために(例えば、表示特徴219を介して)論理および/または特徴を含み得る。いくつかの例では、隠れたDMA動作の成功は、分散/収集リスト内に表示されたソース/宛先アドレスに従い、ソースメモリ140と安全な宛先メモリ150との間の保護されたコンテンツの移動を含み得る。これらの例として、すべての宛先アドレスは、安全な宛先アドレス範囲内であることが判定され、したがって、復号化されたコンテンツが安全な宛先メモリ150内に置かれる前に検証された。
図4は、別の安全なDMA動作の処理例400を示す。いくつかの例では、図1に示される、または図2に記述されるように、宛先マネージャ112は処理400を容易化すために論理および/または特徴を含み得る。また、隠れたDMAモジュール114、安全なプロセッサ116、オペレーティングシステム120、共有メモリ130、ソースメモリ140、図1に示される安全な宛先メモリ150またはアプリケーション190は、処理400の少なくともいくつかの動作を実装するようにも構成され得る。各例は、処理400を実装するための前述の要素にのみは限定されない。
処理例4.1(ソースDMAテーブル)から始めて、オペレーティングシステム120および/またはアプリケーション190は、ソースDMAテーブルを生成または構築するように構成され得る。いくつかの例では、宛先マネージャ112は、処理300のために前述のように分散/収集リストに含められるソース/宛先アドレスを維持するための十分なメモリ資源を有しないかもしれない。したがってこれらの例として、宛先マネージャ112は、共有メモリ130を活用してソース/宛先アドレスを維持し得る。暗号化されたコンテンツに関する1または複数のソースアドレスを表示するソースDMAテーブルのみが、オペレーティングシステム120および/またはアプリケーション190によって構築され、共有メモリ130内に置かれる。宛先アドレスを保護するために、宛先マネージャ112は、以下に記述するように、宛先DMAテーブルを生成または構築し得る。
処理例4.2(隠れたDMA動作の開始)へと続き、オペレーティングシステム120および/またはアプリケーション190は、隠れたDMA動作を開始し得る。いくつかの例では、SEPサブシステム110における宛先マネージャ112は、隠れたDMA動作を始めるための開始に応答して(例えば、開始特徴211を介して)論理および/または特徴を含み得る。これらの例に関して、共有メモリ130内のソースDMAテーブルの存在は、オペレーティングシステム120および/またはアプリケーション190の隠れたDMA動作の開始意図を表示し得る。
処理例4.3(宛先DMAテーブル/共有メモリフラグ)へと続き、宛先マネージャ112は、宛先DMAテーブルを構築し(例えば、開始特徴211を介して)、宛先DMAテーブルを共有メモリ130の一部分に置くように構成される論理および/または特徴を含み得る。また、宛先マネージャ112は、共有メモリ130の部分にフラグを立て、その部分の隠れたDMA動作との関連を表示し得る。いくつかの例では、共有メモリ130の部分にフラグを立てることは、これらの宛先アドレスがこれから検証されることをも表示し得る。
処理例4.4(正当な宛先範囲の設定)へと続き、宛先マネージャ112は、正当な宛先先頭アドレスおよび正当な宛先末尾アドレスを設定するように(例えば、範囲特徴213を介して)構成される論理および/または特徴を含み得る。いくつかの例では、処理300における場合と異なり、宛先マネージャ112は、安全な宛先アドレス範囲を確立するために隠れたDMAモジュール114においてレジスタを設定しない。その代わり、これらの例として、宛先マネージャ112は、それ自身が正当な宛先先頭および終端アドレス、安全なメモリ(例えば、メモリ230)を維持し得る。
処理例4.5(宛先アドレスを安全なメモリに複製)へと続き、宛先マネージャ112は、共有メモリ130内に維持される宛先DMAテーブルから宛先アドレスを複製し得る。いくつかの例では、1または複数の宛先アドレスが宛先マネージャ112の自身のもの、安全なメモリ(例えば、メモリ230)へ複製され得る。
処理例4.6(検証)へと続き、宛先マネージャ112は、その安全なメモリへ複製される宛先アドレス(例えば、検証特徴217を介して)を検証するための論理および/または特徴を含み得る。前述のように、宛先マネージャ112は、宛先アドレスの検証の必要性を表示するために、共有メモリ130の部分にフラグを立てる。いくつかの例では、フラグは、宛先マネージャ112に対して1または複数の複製された宛先アドレスの検証をチェックするように表示する。これらの例として、宛先マネージャ112は、1または複数の複製された宛先アドレスが安全な宛先アドレス範囲内であるかどうかを確認することによって、正当性を判定し得る。
処理例4.7(宛先アドレスが正当でない場合は、隠れたDMA動作を停止する)へと移動し、宛先マネージャ112は、共有メモリ130から複製された少なくとも1つの宛先アドレスが安全な宛先アドレス範囲内ではない場合には、隠れたDMA動作を停止し得る。いくつかの例では、安全な宛先アドレス範囲内ではない少なくとも1つの宛先アドレスは、不当な宛先アドレスとして帰結し得る。これらの例として、宛先マネージャ112はエラーメッセージをオペレーティングシステム120および/またはアプリケーション190に送り(例えば、表示特徴219を介して)、不当な宛先アドレスを表示する、論理および/または特徴を含み得る。
処理例4.8(隠れたDMAレジスタを設定)へと移動して、宛先マネージャ112は、ソースおよび宛先レジスタを隠れたDMAモジュール114においてプログラムまたは設定し得る。いくつかの例では、宛先マネージャ112は、宛先アドレスの検証に続き、これらのレジスタを設定し得る。これらの例として、ソースレジスタは、共有メモリ130内に維持されるソースDMAテーブルに従って設定され得、宛先レジスタは、共有メモリ130内に維持される宛先アドレスに従って設定され得る。
処理例4.9(隠れたDMA動作の成功)に移動して、宛先マネージャ112は、隠れたDMA動作の成功を表示し得る。いくつかの例では、隠れたDMA動作の成功は、ソースおよび宛先DMAテーブル内に表示されるソース/宛先アドレスに従い、ソースメモリ140と安全な宛先メモリ150との間の保護されたコンテンツの移動を含み得る。これらの例として、すべての宛先アドレスは、安全な宛先アドレス範囲内であると判定され、したがって、復号化されたコンテンツが安全な宛先メモリ150内に置かれる前に検証された。
処理例4.10(共有メモリフラグの除去)へと移動し、宛先マネージャ112は、隠れたDMA動作と部分の関連を表示するフラグを、共有メモリ130の部分から除去し得る。いくつかの例では、フラグの除去は、その後の隠れたDMA動作において、メモリの当該部分が新規ソースまたは宛先DMAテーブルで上書きされ得ることを表示し得る。いくつかの他の例では、エラーメッセージ(例えば、不当な宛先アドレス)に従ってオペレーティングシステム120および/またはアプリケーション190が隠れたDMA動作を行う努力を断念した場合は、共有メモリフラグも消去され得る。これらの例として、宛先マネージャ112は、隠れたDMA動作の再試行に対する要請が時間の所与の期間内に(例えば、数秒または数分)受け取れなかった場合は、オペレーティングシステム120および/またはアプリケーション190は隠れたDMA動作を行う努力を断念したと想定し得る。
図5は、安全なDMA動作の動作例の流れ図を示す。いくつかの例では、図1に示されるように演算プラットフォーム100の要素は、図5に描かれる流れ図に関連する動作例を示すように使用され得る。図1および図2に示されるように、宛先マネージャ112は動作例を示すようにも使用され得る。しかし記述された方法は、演算プラットフォーム100上の実装または宛先マネージャ112には限定されない。
開始からブロック510(隠れたDMA動作の開始)へ移動し、オペレーティングシステム120および/またはアプリケーション190は、処理300または処理400に関して前述されたように、隠れたDMA動作を開始し得る。いくつかの例では、SEPサブシステム110における宛先マネージャ112は、隠れたDMA動作を始めるための開始(例えば、開始特徴211を介して)に応答するために論理および/または特徴を含み得る。
ブロック510からブロック520(安全な宛先アドレス範囲の確立)へと移動し、宛先マネージャ112は、安全な宛先アドレス範囲を確立するように(例えば、範囲特徴213を介して)構成された論理および/または特徴を含み得る。いくつかの例では、宛先マネージャ112は隠れたDMAモジュール114において維持される正当な宛先範囲レジスタの設定によって安全な宛先アドレス範囲を確立し得る。これらの例に関して、処理300と類似して、宛先マネージャ112は、隠れたDMAモジュール114において維持される正当な宛先先頭アドレスレジスタおよび正当な宛先末尾アドレスレジスタを設定し得る。他の例では、宛先マネージャ112は範囲レジスタの設定なしで、安全な宛先を確立し得る。これらの例として、処理400と類似して、宛先マネージャ112は正当な宛先先頭アドレスおよび正当な宛先末尾アドレスを設定し、これらのアドレスを自分自身の、安全なメモリ(例えば、メモリ230)、に維持し得る。
ブロック520からブロック530(宛先DMAテーブルを受け取る)に進み、宛先マネージャ112は、宛先DMAテーブルを受け取るように(例えば、検証特徴217を介して)構成された論理および/または特徴を含み得る。いくつかの例では、宛先マネージャ112はオペレーティングシステム120および/またはアプリケーション190によって生成される分散/収集リストを介して宛先DMAテーブルを受け取り得る。他の例では、宛先DMAテーブルは共有メモリ130のフラグが立てられた部分に維持され得る。これらの他の例として、宛先マネージャ112は、宛先DMAテーブルを生成し、共有メモリのその部分にフラグを立てた可能性がある。宛先DMAテーブルは、次に、共有メモリ130のこのフラグを立てた部分から受け取られ得る。
ブロック530から決定ブロック540(宛先アドレス正当?)へ進み、宛先マネージャ112は受け取ったDMAテーブル(例えば、検証特徴217を介して)に含まれる宛先アドレスを検証するように構成された論理および/または特徴を含み得る。いくつかの例では、宛先マネージャは、正当性を、宛先アドレスが前述のように確立された安全な宛先アドレス範囲内であるかどうかに基づき得る。宛先アドレスが安全な宛先アドレス範囲内ではない場合には、宛先アドレスは不当であると見なされ、処理はブロック550に移動する。さもなければ、処理はブロック570に移動する。
決定ブロック540からブロック550(隠れたDMA動作の停止)に移動し、宛先マネージャ112は、隠れたDMA動作を停止したか、または隠れたDMA動作が停止されたかどうかを判定するように構成された論理および/または特徴を含み得る。いくつかの例では、処理300と類似して、隠れたDMAモジュール114はエラー信号を宛先マネージャ112に送って、1または複数の宛先アドレスが不当であることを表示し得る。これらの例として、宛先マネージャ112は、エラー信号に基づいて隠れたDMA動作が停止されたと判定する。他の例では、処理400と類似して、宛先マネージャ112は、1または複数の宛先アドレスが不当であるというそれ自身の判定に基づき、隠れたDMA動作を停止し得る。
ブロック550からブロック560(誤った指示を送る)に進み、宛先マネージャ112は、誤った指示をオペレーティングシステム120および/またはアプリケーション190へ送るように(例えば、表示特徴219を介して)構成された論理および/または特徴を含み得る。いくつかの例では、宛先マネージャ112は、隠れたDMA動作を再開するためにオペレーティングシステム120および/またはアプリケーション190をある時間の期間待ち、そして、隠れたDMA動作が再開始されていない場合には、正当な宛先範囲レジスタを消去するか、共有メモリフラグを除去し得る。処理は次に終了に至る。
決定ブロック540からブロック570(隠れたDMA動作の継続を許可)へと移動し、宛先マネージャ112は、隠れたDMA動作が継続することを許可するように構成された論理および/または特徴を含み得る。いくつかの例では、隠れたDMAモジュール114はここで適用可能ソースおよび宛先アドレスレジスタセットを有し得る。これらの例として、ソースメモリ140から取得された暗号化されたコンテンツを安全なプロセッサ116によって復号化し、そして、設定ソースおよび宛先アドレスレジスタセットに基づき、隠れたDMAモジュール114によって安全な宛先メモリ150内に置かれ得る。
ブロック570から決定ブロック580(隠れたDMA動作完了?)へと続き、宛先マネージャ112は、ソースメモリ140から取得されたすべての暗号化されたコンテンツが安全なプロセッサ116によって復号化され、隠れたDMAモジュール114によって安全な宛先メモリ150内へその後に置かれたと判定するように構成される論理および/または特徴を含み得る。すべての暗号化されたコンテンツが復号化されなかった場合には、処理は決定ブロック540に戻る。さもなければ、正当な宛先範囲レジスタは消去されるか、または共有メモリフラグが除去され、処理は終了に至る。
図6は、演算デバイスに関するシステム例600の図である。図6はシステム600を示す図であり、さまざまな要素を含み得る。例えば、図6は、システム600はプロセッサ602、チップセット604、入力/出力(I/O)デバイス606、ランダム・アクセス・メモリ(RAM)(ダイナミックRAM(DRAM)等)608、および読み取り専用メモリ(ROM)610、およびさまざまなプラットフォーム構成要素614(例えば、扇風機、直交流送風機、ヒートシンク、DTMシステム、冷却システム、筐体、換気口等)を含み得ることを示す。これらの要素は、ハードウェア、ソフトウェア、ファームウェア、または任意のそれらの組合せにより実装され得る。実施形態は、しかしながら、これらの要素に限定されない。
図6に示されるように、I/Oデバイス606、RAM608、およびROM610は、チップセット604を介してプロセッサ602と連結される。チップセット604は、バス612によりプロセッサ602と連結され得る。したがって、バス612は多数のラインを含み得る。さまざまな例では、チップセット604はプロセッサ602と一体化、またはそれと共にパッケージ化され得る。他の例が記述され、請求される。
プロセッサ602は1または複数のプロセッサコアを含む中央処理装置であり得、そして任意の数のプロセッサコアを含む任意の数のプロセッサを有し得る。プロセッサ602は、任意のタイプの処理ユニットを含み得、それらは例えば、CPU、マルチ処理ユニット、縮小命令セットコンピュータ(RISC)、パイプラインを有するプロセッサ、複合命令セットコンピュータ(CISC)、デジタル信号プロセッサ(DSP)、等である。
示されてはいないが、システム600はさまざまなインターフェース回路を含み得、それらは、イーサネット(登録商標)インターフェースおよび/または汎用シリアルバス(USB)インターフェース、等である。いくつかの例示的実施形態では、I/Oデバイス606は、データおよびコマンドをシステム600に入力するためのインターフェース回路と接続された1または複数の入力デバイスを含み得る。例えば、入力デバイスは、キーボード、マウス、タッチスクリーン、トラックパッド、トラックボール、トラックバー、音声認識システム、等を含み得る。同様に、I/Oデバイス606は、情報をオペレータに出力するためのインターフェース回路に接続された1または複数の出力デバイスを含み得る。例えば、出力デバイスは、1または複数の表示装置、印刷機、スピーカ、および/または所望により他の出力デバイスを含み得る。例えば、出力デバイスの1つは表示装置であり得る。表示装置はブラウン管(CRT)、液晶ディスプレー(LCD)、または任意の他のタイプの表示装置であり得る。
システム600はネットワークへの接続を介して、他のデバイスとデータを交換するための有線または無線ネットワークインターフェースをも有し得る。ネットワーク接続は任意のタイプのネットワーク接続であり得、例えば、イーサネット(登録商標)接続、デジタル・サブスクライバ・ライン(DSL)、電話回線、同軸ケーブル、等である。ネットワークは任意のタイプのネットワークであり得、例えば、インターネット、電話ネットワーク、ケーブルネットワーク、無線ネットワーク、パケット交換ネットワーク、回線切替ネットワーク、および/または等である。
さまざまな例は、ハードウェア要素、ソフトウェア要素、または両者の組合せを使用して実装され得る。ハードウェア要素の例は、プロセッサ、マイクロプロセッサ、回路、回路要素(例えば、トランジスタ、抵抗器、コンデンサ、インダクタ、等)、集積回路、アプリケーション固有集積回路(ASIC)、プログラム式論理デバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラム式ゲートアレイ(FPGA)、論理ゲート、レジスタ、セミコンダクタデバイス、チップ、マイクロチップ、チップセット、等を含み得る。ソフトウェアの例は、ソフトウェア構成要素、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティング・システム・ソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、手順、ソフトウェアインターフェース、アプリケーション・プログラム・インターフェース(API)、命令セット、演算コード、コンピュータコード、コードセグメント、コンピュータ・コード・セグメント、ワード、値、符号、または任意のそれらの組合せを含み得る。ある例がハードウェア要素および/またはソフトウェア要素を使用して実装されるかどうかの判定は、任意の数の要因により変わり得、これは例えば、望ましい演算レート、パワーレベル、熱耐久性、処理サイクル予算、入力データレート、出力データレート、メモリ資源、データバス速度および他の設計または性能上の制約である。
少なくとも1つの例の1または複数の態様は、機械可読媒体上に記憶される代表的命令によって実装され得、これはプロセッサ内のさまざまな論理を代表し、そして機械によって読み取られたとき、機械に対してここに記述される技法を実施するために論理を組立てるようにさせる。「IPコア」として知られるそのような代表は、有形の機械可読媒体上に記憶され、そしてさまざまな顧客または製造施設へ供給されて、実際に論理またはプロセッサを形成する組立機械にロードされる。
さまざまな例は、ハードウェア要素、ソフトウェア要素、または両者の組合せを使用して実装され得る。いくつかの例では、ハードウェア要素は、デバイス、構成要素、プロセッサ、マイクロプロセッサ、回路、回路要素(例えば、トランジスタ、抵抗器、コンデンサ、インダクタ、等)、集積回路、アプリケーション固有集積回路(ASIC)、プログラム式論理デバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラム式ゲートアレイ(FPGA)、メモリユニット、論理ゲート、レジスタ、セミコンダクタデバイス、チップ、マイクロチップ、チップセット、等を含み得る。いくつかの例では、ソフトウェア要素は、ソフトウェア構成要素、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティング・システム・ソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、手順、ソフトウェアインターフェース、アプリケーション・プログラム・インターフェース(API)、命令セット、演算コード、コンピュータコード、コードセグメント、コンピュータ・コード・セグメント、ワード、値、符号、または任意のそれらの組合せを含み得る。ある例が、ハードウェア要素および/またはソフトウェア要素を使用して実装されるかどうかの判定は、任意の数の要因に従って変わり得、例えば、望ましい演算レート、パワーレベル、熱耐久性、処理サイクル予算、入力データレート、出力データレート、メモリ資源、データバス速度、および所与の実装に望まれる他の設計または性能制約である。
いくつかの例は、製造の品物を含み得る。製造の品物は、論理を記憶するための非一時的記憶媒体を含み得る。いくつかの例では、非一時的記憶媒体は、電子データを記憶可能な1または複数のタイプのコンピュータ可読記憶媒体を含み得、これには、揮発性メモリまたは非揮発性メモリ、除去可能または非除去可能メモリ、消去可能または非消去可能メモリ、書き換え可能または非書き換え可能メモリ、等が含まれる。いくつかの例では、論理はさまざまなソフトウェア要素を含み得、例えば、ソフトウェア構成要素、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティング・システム・ソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、手順、ソフトウェアインターフェース、アプリケーション・プログラム・インターフェース(API)、命令セット、演算コード、コンピュータコード、コードセグメント、コンピュータ・コード・セグメント、ワード、値、符号、または任意のそれらの組合せである。
いくつかの例に従って、製造の品物は、コンピュータまたはシステムによって実行されたとき、コンピュータまたはシステムに対して記述された例に従って方法および/または動作を実施するようにさせる命令を記憶または維持する非一時的記憶媒体を含み得る。この命令は、任意の好適タイプのコードを含み得、例えば、ソースコード、コンパイル済みコード、解釈済コード、実行可能コード、スタティックコード、ダイナミックコード、等である。命令は、コンピュータに対して一定の機能を実施するように命じるための、事前定義コンピュータ言語、方法、または構文に従って実装され得る。命令は、任意の好適なハイレベル、ローレベル、オブジェクト指向、視覚的、コンパイル済み、および/または解釈済プログラミング言語を使用して実装され得る。
いくつかの例は、派生物と共に、表現「1つの例では」または「ある例」を使用して記述され得る。この用語は、例と共に記述された特定の特徴、構造、または特性は少なくとも1つの例に含まれることを意味する。明細書中のさまざまな場所において「1つの例では」という句の出現は、必ずしもすべてが同一例を参照しているのではない。
いくつかの例は、その派生物と共に、「連結され」および「接続され」という表現を使用して記述され得る。これらの用語は、必ずしも互いの同義語として意図されているのではない。例えば、用語「接続され」および/または「連結され」を使用する記述は、2つ以上の要素が互いに直接的な物理的または電気的接触にあることを表示し得る。用語「連結され」は、しかしながら、2つ以上の要素が互いに直接的には接触していないが、しかし依然として協働しているまたは互いに作用していることも意味し得る。
本開示の要約は、37C.F.R.セクション1.72(b)に従って提供されることが強調されており、これは、読者が技術的開示の本質を素早く確かめることを可能とするための要約を要求している。それは請求項の範囲および意味を解釈または限定するために使用されないという理解の下で提示されている。さらに、先行する発明を実施するための形態において、さまざまな特徴が、開示を合理化する目的で1つの例の中にグループ化されていることを見ることができる。開示のこの方法は、請求された例は、各請求項において明示的に列挙されたよりも多くの特徴を必要とするという意図を反映しているものとして解釈されるべきではない。むしろ、以下の請求項が反映するように、発明の主題的事項は単一の開示例の全特徴より少ないところにある。したがって、以下の請求項はここにおいて発明を実施するための形態に組込まれ、各請求項は別の例として独自に立つ。付属請求項において、用語「含んでいる」および「その中で」は、それぞれ用語「備えている」および「その中における」と同等な平易な英語として使用される。さらに、用語「第1の」、「第2の」、「第3の」等は、単に表示として使用され、その目的物に対する数字的要件を課することは意図されていない。
主題は、構造的特徴および/または方法論的活動特有の言語で記述されてきたが、付属請求項において定義された主題は、必ずしも現実の特定の特徴または作用に限定されないことを理解されるべきである。むしろ、前述の特定の特徴および作用は請求項を実装する形式例として開示され得る。
本明細書によれば、以下の各項目に記載の構成もまた開示される。
[項目1]
ホストコンピューティングデバイスにおいて実装される方法であって、
ソースメモリから暗号化されたコンテンツを取得することと、前記暗号化されたコンテンツを復号化することと、前記復号化されたコンテンツを安全な宛先メモリに置くこととを含む、ダイレクトメモリアクセス(DMA)動作(DMA動作)の開始に応答して、安全な宛先アドレス範囲を確立することと、
前記安全な宛先メモリと関連する1または複数の宛先アドレスを受け取ることと、
前記安全な宛先アドレス範囲内にある前記1または複数の宛先アドレスに基づき、前記安全な宛先メモリに前記復号化されたコンテンツが置かれることを許可することと、を含む、方法。
[項目2]
正当な宛先先頭アドレスレジスタおよび正当な宛先末尾アドレスレジスタの両方を、前記DMA動作を実装するDMAモジュールに設定することによって、前記安全な宛先アドレス範囲を確立することを含む、項目1に記載の方法。
[項目3]
前記DMA動作の完了に応答して、前記正当な宛先先頭アドレスレジスタおよび前記正当な宛先末尾アドレスレジスタを再設定することを含む、項目2に記載の方法。
[項目4]
前記1または複数の宛先アドレスを受け取ることは、前記DMA動作を要請するアプリケーションによって生成される分散/収集リストの一部として宛先DMAテーブルを受け取ることを含み、前記分散/収集リストは前記ソースメモリに関連する1または複数のソースアドレスも含む、項目1に記載の方法。
[項目5]
前記分散/収集リストに基づき、前記DMAモジュールにおいてソースアドレスおよび宛先アドレスレジスタを設定することと、前記DMAモジュールが、前記1または複数の宛先アドレスのうちの少なくとも1つの宛先アドレスが前記安全な宛先アドレス範囲外にあることに基づき、前記ソースアドレスおよび宛先アドレスレジスタの前記設定を停止させることとを含む、項目4に記載の方法。
[項目6]
前記DMAモジュールが前記少なくとも1つの宛先アドレスが不当な宛先アドレスであることを表示するために、前記DMAモジュールが誤った指示をコントローラに送ることを含む、項目5に記載の方法。
[項目7]
前記DMA動作を実装するDMAモジュールに関するコントローラと前記ホストコンピューティングデバイスのオペレーティングシステムとの間で共有されるメモリの一部分から、前記1または複数の宛先アドレスを受け取ることを含み、前記1または複数の宛先アドレスは前記コントローラによって構築され、前記コントローラは前記メモリの前記部分にフラグを立て、前記部分の前記DMA動作との関連を表示し、前記コントローラは、正当な宛先先頭アドレスを設定し、正当な宛先末尾アドレスを設定して、前記安全な宛先アドレス範囲を確立する、項目1に記載の方法。
[項目8]
前記コントローラが前記メモリから1または複数のソースアドレスを受け取ることを含み、前記1または複数のソースアドレスは前記DMA動作を要請するアプリケーションによって構築され、前記コントローラは前記1または複数のソースアドレスおよび前記1または複数の宛先アドレスの両方に基づき、前記DMAモジュールにおいて、ソースアドレスおよび宛先アドレスレジスタを設定し、前記コントローラは、前記1または複数の宛先アドレスのうちの少なくとも1つの宛先アドレスが前記安全な宛先アドレス範囲外にあることに基づき、前記ソースアドレスおよび宛先アドレスレジスタの前記設定を停止させる、項目7に記載の方法。
[項目9]
前記安全な宛先範囲外である前記少なくとも1つの宛先アドレスに応答して、前記コントローラが、前記DMA動作を要請する前記アプリケーションに誤った指示を送ることを含む、項目8に記載の方法。
[項目10]
前記コントローラが前記メモリから1または複数のソースアドレスを受け取ることを含み、前記1または複数のソースアドレスは前記DMA動作を要請するアプリケーションによって構築され、前記コントローラは、前記1または複数のソースアドレスおよび前記1または複数の宛先アドレスの両方に基づき、また前記1または複数の宛先アドレスの中からのすべての前記宛先アドレスが前記安全な宛先アドレス範囲内であるかどうかに基づき、ソースアドレスおよび宛先アドレスレジスタを前記DMAモジュールにおいて設定する、項目7に記載の方法。
[項目11]
プロセッサ回路と、
前記プロセッサ回路に通信可能に連結されるメモリユニットとを備え、前記メモリユニットは、暗号化されたコンテンツをソースメモリから移動させ、前記暗号化されたコンテンツを復号化し、前記復号化されたコンテンツを安全な宛先メモリに置くダイレクトメモリアクセス(DMA)動作(DMA動作)の開始に応答して、安全な宛先アドレス範囲を確立するように、前記プロセッサ回路上で動作可能な宛先マネージャを記憶するように準備され、前記宛先マネージャは、前記安全な宛先メモリに関連する1または複数の宛先アドレスを受け取り、前記復号化されたコンテンツが、前記安全な宛先アドレス範囲内にある前記1または複数の宛先アドレスに基づいて、前記安全な宛先メモリに置かれることを許可するようにも動作可能である、装置。
[項目12]
前記安全な宛先メモリに置かれた前記復号化されたコンテンツの映像コンテンツ部分を視覚的に再生するための表示装置を備える、項目11に記載の装置。
[項目13]
前記安全な宛先アドレス範囲を確立するために、前記DMA動作を実装するDMAモジュールにおいて、正当な宛先先頭アドレスレジスタおよび正当な宛先末尾アドレスレジスタの両方を設定する前記宛先マネージャを備える、項目11に記載の装置。
[項目14]
前記DMA動作を要請するアプリケーションによって生成される分散/収集リストとして宛先DMAテーブル内に前記1または複数の宛先アドレスを受け取る前記宛先マネージャを備え、前記分散/収集リストは前記ソースメモリと関連する1または複数のソースアドレスも含む、項目13に記載の装置。
[項目15]
前記分散/収集リストに基づき前記DMAモジュールにおいてソースアドレスおよび宛先アドレスレジスタを設定し、また前記安全な宛先アドレス範囲の外にある前記1または複数の宛先アドレスの中からの少なくとも1つの宛先アドレスを表示する、前記DMAモジュールからの誤った指示に基づき、前記ソースアドレスおよび宛先アドレスレジスタの前記設定を停止させる、前記宛先マネージャを備える、項目14に記載の装置。
[項目16]
前記宛先マネージャとオペレーティングシステムとの間で共有されるメモリの一部分から前記1または複数の宛先アドレスを受け取り、また前記1または複数の宛先アドレスを構築し、前記DMA動作との前記部分の関連を表示する前記メモリの前記部分にフラグを立てる、前記宛先マネージャを備える、項目11に記載の装置。
[項目17]
前記安全な宛先アドレス範囲を確立するために、正当な宛先先頭アドレスおよび正当な宛先末尾アドレスを設定する、前記宛先マネージャを備える、項目16に記載の装置。
[項目18]
前記DMA動作を実装するDMAモジュールにおいて維持されるレジスタにおいて、正当な宛先先頭アドレスおよび正当な宛先末尾アドレスを設定する、前記宛先マネージャを備える、項目16に記載の装置。
[項目19]
前記メモリから1または複数のソースアドレスを受け取る前記宛先マネージャを備え、前記1または複数のソースアドレスは、前記DMA動作を要請するアプリケーションによって構築され、前記宛先マネージャは、前記1または複数のソースアドレスおよび前記1または複数の宛先アドレスの両方に基づいて、前記DMAモジュールにおいてソースアドレスおよび宛先アドレスレジスタを設定し、前記宛先マネージャはまた、前記1または複数の宛先アドレスのうちの少なくとも1つの宛先アドレスが前記安全な宛先アドレス範囲外にあることに基づいて、前記ソースアドレスおよび宛先アドレスレジスタの前記設定を停止させる、項目17に記載の装置。
[項目20]
不当な宛先アドレスである前記少なくとも1つの宛先アドレスに応答して、前記DMA動作を要請する前記アプリケーションに誤った指示を送る、前記宛先マネージャを備える、項目19に記載の装置。
[項目21]
実行されたときに、ホストコンピューティングデバイスのダイレクトメモリアクセス(DMA)システム(DMAシステム)に、
ソースメモリから暗号化されたコンテンツを取得することと、前記暗号化されたコンテンツを復号化することと、前記復号化されたコンテンツを安全な宛先メモリに置くこととを含む、DMA動作の開始に応答して、安全な宛先アドレス範囲を確立する手順と、
前記安全な宛先メモリと関連する1または複数の宛先アドレスを受け取る手順と、
前記復号化されたコンテンツを、前記安全な宛先アドレス範囲内にある前記1または複数の宛先アドレスに基づき、前記安全な宛先メモリに置く手順と、を実行させる命令を含む記憶媒体を備える製品。
[項目22]
前記DMAシステムに、
前記DMA動作を実装するDMAモジュールにおける正当な宛先先頭アドレスレジスタおよび正当な宛先末尾アドレスレジスタの両方を設定することによって、前記安全な宛先アドレス範囲を確立する手順と、を実行させる前記命令を含む、項目21に記載の製品。
[項目23]
前記DMAシステムに、
前記1または複数の宛先アドレスを、前記DMA動作を要請するアプリケーションによって生成される分散/収集リストの一部としてDMAテーブル内に受け取る手順であって、前記分散/収集リストは前記ソースメモリに関連する1または複数のソースアドレスも含む、手順と、を実行させる前記命令を含む、項目22に記載の製品。
[項目24]
前記DMAシステムに、
前記分散/収集リストに基づき、前記DMAモジュールのソースアドレスおよび宛先アドレスレジスタを設定する手順と、
前記1または複数の宛先アドレスのうち前記安全な宛先アドレス範囲外にある少なくとも1つの宛先アドレスを指示する前記DMAモジュールからの誤った指示に基づき、前記ソースアドレスおよび宛先アドレスレジスタの前記設定を停止する手順と、
を実行させる前記命令を含む、項目23に記載の製品。
[項目25]
前記DMAシステムに、
前記DMAシステムと前記ホストコンピューティングデバイスのオペレーティングシステムとの間で共有されるメモリの一部分から、前記1または複数の宛先アドレスを受け取る手順であって、前記1または複数の宛先アドレスは前記DMAシステムによって構築される、手順と、
前記メモリの前記部分にフラグを立てて、前記部分の前記DMA動作との関連を表示する手順と、
を実行させる前記命令を含む、項目21に記載の製品。
[項目26]
前記DMAシステムに、
正当な宛先末尾アドレスを設定することにより前記安全な宛先アドレス範囲を確立する手順と、を実行させる前記命令を含む、項目25に記載の製品。
[項目27]
前記DMAシステムに、
前記DMA動作を要請するアプリケーションによって構築される1または複数のソースアドレスを前記メモリから受け取る手順と、
前記1または複数のソースアドレスおよび前記1または複数の宛先アドレスの両方に基づき、ソースアドレスおよび宛先アドレスレジスタを設定する手順と、
前記1または複数の宛先アドレスのうちの少なくとも1つの宛先アドレスが前記安全な宛先アドレス範囲外にあることに基づき、前記ソースアドレスおよび宛先アドレスレジスタの前記設定を停止する手順と、
を実行させる前記命令を含む、項目26に記載の製品。
[項目28]
前記DMAシステムに、
前記少なくとも1つの宛先アドレスが前記安全な宛先範囲外であることに基づき、前記DMA動作を要請する前記アプリケーションに誤った指示を送る手順と、
を実行させる前記命令を含む、項目27に記載の製品。

Claims (27)

  1. コンピュータにおいて実装される方法であって、
    ソースメモリから暗号化されたコンテンツを取得することと、前記暗号化されたコンテンツを復号化することと、前記復号化されたコンテンツを安全な宛先メモリに置くこととを含む、ダイレクトメモリアクセス(DMA)動作(DMA動作)の開始に応答して、安全な宛先アドレス範囲を確立することと、
    前記DMA動作を実装するDMAモジュールに関するコントローラと前記コンピュータのオペレーティングシステムとの間で共有されるメモリの一部分から、前記安全な宛先メモリと関連する1または複数の宛先アドレスを受け取ることと、
    前記安全な宛先アドレス範囲内にある前記1または複数の宛先アドレスに基づき、前記安全な宛先メモリに前記復号化されたコンテンツが置かれることを許可することと、を含む、方法。
  2. 正当な宛先先頭アドレスレジスタおよび正当な宛先末尾アドレスレジスタの両方を、前記DMA動作を実装するDMAモジュールに設定することによって、前記安全な宛先アドレス範囲を確立することを含む、請求項1に記載の方法。
  3. 前記DMA動作の完了に応答して、前記正当な宛先先頭アドレスレジスタおよび前記正当な宛先末尾アドレスレジスタを再設定することを含む、請求項2に記載の方法。
  4. 前記1または複数の宛先アドレスを受け取ることは、前記DMA動作を要請するアプリケーションによって生成される分散/収集リストの一部として宛先DMAテーブルを受け取ることを含み、前記分散/収集リストは前記ソースメモリに関連する1または複数のソースアドレスも含む、請求項1から3のいずれか一項に記載の方法。
  5. 前記分散/収集リストに基づき、前記DMAモジュールにおいてソースアドレスおよび宛先アドレスレジスタを設定することと、前記DMAモジュールが、前記1または複数の宛先アドレスのうちの少なくとも1つの宛先アドレスが前記安全な宛先アドレス範囲外にあることに基づき、前記ソースアドレスおよび宛先アドレスレジスタの前記設定を停止させることとを含む、請求項4に記載の方法。
  6. 前記DMAモジュールが前記少なくとも1つの宛先アドレスが不当な宛先アドレスであることを表示するために、前記DMAモジュールがエラー信号をコントローラに送ることを含む、請求項5に記載の方法。
  7. 前記コントローラは、正当な宛先先頭アドレスを設定し、正当な宛先末尾アドレスを設定して、前記安全な宛先アドレス範囲を確立する、請求項1に記載の方法。
  8. 前記コントローラが前記メモリから1または複数のソースアドレスを受け取ることを含み、前記1または複数のソースアドレスは前記DMA動作を要請するアプリケーションによって構築され、前記コントローラは前記1または複数のソースアドレスおよび前記1または複数の宛先アドレスの両方に基づき、前記DMAモジュールにおいて、ソースアドレスおよび宛先アドレスレジスタを設定し、前記コントローラは、前記1または複数の宛先アドレスのうちの少なくとも1つの宛先アドレスが前記安全な宛先アドレス範囲外にあることに基づき、前記ソースアドレスおよび宛先アドレスレジスタの前記設定を停止させる、請求項7に記載の方法。
  9. 前記安全な宛先範囲外である前記少なくとも1つの宛先アドレスに応答して、前記コントローラが、前記DMA動作を要請する前記アプリケーションにエラーメッセージを送ることを含む、請求項8に記載の方法。
  10. 前記コントローラが前記メモリから1または複数のソースアドレスを受け取ることを含み、前記1または複数のソースアドレスは前記DMA動作を要請するアプリケーションによって構築され、前記コントローラは、前記1または複数のソースアドレスおよび前記1または複数の宛先アドレスの両方に基づき、また前記1または複数の宛先アドレスの中からのすべての前記宛先アドレスが前記安全な宛先アドレス範囲内であるかどうかに基づき、ソースアドレスおよび宛先アドレスレジスタを前記DMAモジュールにおいて設定する、請求項1、7、8および9のいずれか一項に記載の方法。
  11. プロセッサ回路と、
    前記プロセッサ回路に通信可能に連結されるメモリユニットとを備え、前記メモリユニットは、暗号化されたコンテンツをソースメモリから移動させ、前記暗号化されたコンテンツを復号化し、前記復号化されたコンテンツを安全な宛先メモリに置くダイレクトメモリアクセス(DMA)動作(DMA動作)の開始に応答して、安全な宛先アドレス範囲を確立するように、前記プロセッサ回路上で動作可能な宛先マネージャを記憶するように準備され、前記宛先マネージャは、前記安全な宛先メモリに関連する1または複数の宛先アドレスを受け取り、前記復号化されたコンテンツが、前記安全な宛先アドレス範囲内にある前記1または複数の宛先アドレスに基づいて、前記安全な宛先メモリに置かれることを許可するようにも動作可能であり、
    前記宛先マネージャとオペレーティングシステムとの間で共有されるメモリの一部分から前記1または複数の宛先アドレスを受け取る前記宛先マネージャをさらに備える、装置。
  12. 前記安全な宛先アドレス範囲を確立するために、前記DMA動作を実装するDMAモジュールにおいて、正当な宛先先頭アドレスレジスタおよび正当な宛先末尾アドレスレジスタの両方を設定する前記宛先マネージャを備える、請求項11に記載の装置。
  13. 前記DMA動作を要請するアプリケーションによって生成される分散/収集リストとして宛先DMAテーブル内に前記1または複数の宛先アドレスを受け取る前記宛先マネージャを備え、前記分散/収集リストは前記ソースメモリと関連する1または複数のソースアドレスも含む、請求項12に記載の装置。
  14. 前記分散/収集リストに基づき前記DMAモジュールにおいてソースアドレスおよび宛先アドレスレジスタを設定し、また前記安全な宛先アドレス範囲の外にある前記1または複数の宛先アドレスの中からの少なくとも1つの宛先アドレスを表示する、前記DMAモジュールからのエラー信号に基づき、前記ソースアドレスおよび宛先アドレスレジスタの前記設定を停止させる、前記宛先マネージャを備える、請求項13に記載の装置。
  15. 前記安全な宛先アドレス範囲を確立するために、正当な宛先先頭アドレスおよび正当な宛先末尾アドレスを設定する、前記宛先マネージャを備える、請求項11に記載の装置。
  16. 前記DMA動作を実装するDMAモジュールにおいて維持されるレジスタにおいて、正当な宛先先頭アドレスおよび正当な宛先末尾アドレスを設定する、前記宛先マネージャを備える、請求項11または15に記載の装置。
  17. 前記メモリから1または複数のソースアドレスを受け取る前記宛先マネージャを備え、前記1または複数のソースアドレスは、前記DMA動作を要請するアプリケーションによって構築され、前記宛先マネージャは、前記1または複数のソースアドレスおよび前記1または複数の宛先アドレスの両方に基づいて、前記DMAモジュールにおいてソースアドレスおよび宛先アドレスレジスタを設定し、前記宛先マネージャはまた、前記1または複数の宛先アドレスのうちの少なくとも1つの宛先アドレスが前記安全な宛先アドレス範囲外にあることに基づいて、前記ソースアドレスおよび宛先アドレスレジスタの前記設定を停止させる、請求項16に記載の装置。
  18. 不当な宛先アドレスである前記少なくとも1つの宛先アドレスに応答して、前記DMA動作を要請する前記アプリケーションにエラーメッセージを送る、前記宛先マネージャを備える、請求項17に記載の装置。
  19. 前記安全な宛先メモリに置かれた前記復号化されたコンテンツの映像コンテンツ部分を視覚的に再生するための表示装置を備える、請求項11から18のいずれか一項に記載の装置。
  20. コンピュータのダイレクトメモリアクセス(DMA)システム(DMAシステム)に、
    ソースメモリから暗号化されたコンテンツを取得することと、前記暗号化されたコンテンツを復号化することと、前記復号化されたコンテンツを安全な宛先メモリに置くこととを含む、DMA動作の開始に応答して、安全な宛先アドレス範囲を確立する手順と、
    前記DMAシステムと前記コンピュータのオペレーティングシステムとの間で共有されるメモリの一部分から、前記安全な宛先メモリと関連する1または複数の宛先アドレスを受け取る手順と、
    前記安全な宛先アドレス範囲内にある前記1または複数の宛先アドレスに基づき、前記安全な宛先メモリに前記復号化されたコンテンツを置く手順と、
    を実行させるためのプログラム。
  21. 前記DMAシステムにさらに、
    前記DMA動作を実装するDMAモジュールにおける正当な宛先先頭アドレスレジスタおよび正当な宛先末尾アドレスレジスタの両方を設定することによって、前記安全な宛先アドレス範囲を確立する手順を実行させるための、請求項20に記載のプログラム。
  22. 前記DMAシステムにさらに、
    前記1または複数の宛先アドレスを、前記DMA動作を要請するアプリケーションによって生成される分散/収集リストの一部としてDMAテーブル内に受け取る手順であって、前記分散/収集リストは前記ソースメモリに関連する1または複数のソースアドレスも含む、手順を実行させるための、請求項21に記載のプログラム。
  23. 前記DMAシステムにさらに、
    前記分散/収集リストに基づき、前記DMAモジュールのソースアドレスおよび宛先アドレスレジスタを設定する手順と、
    前記1または複数の宛先アドレスのうち前記安全な宛先アドレス範囲外にある少なくとも1つの宛先アドレスを指示する前記DMAモジュールからのエラー信号に基づき、前記ソースアドレスおよび宛先アドレスレジスタの前記設定を停止する手順と、
    を実行させるための、請求項22に記載のプログラム。
  24. 前記DMAシステムにさらに、
    正当な宛先先頭アドレスおよび正当な宛先末尾アドレスを設定することにより前記安全な宛先アドレス範囲を確立する手順を実行させるための、請求項20に記載のプログラム。
  25. 前記DMAシステムにさらに、
    前記DMA動作を要請するアプリケーションによって構築される1または複数のソースアドレスを前記メモリから受け取る手順と、
    前記1または複数のソースアドレスおよび前記1または複数の宛先アドレスの両方に基づき、ソースアドレスおよび宛先アドレスレジスタを設定する手順と、
    前記1または複数の宛先アドレスのうちの少なくとも1つの宛先アドレスが前記安全な宛先アドレス範囲外にあることに基づき、前記ソースアドレスおよび宛先アドレスレジスタの前記設定を停止する手順と、
    を実行させるための、請求項24に記載のプログラム。
  26. 前記DMAシステムにさらに、
    前記少なくとも1つの宛先アドレスが前記安全な宛先範囲外であることに基づき、前記DMA動作を要請する前記アプリケーションにエラーメッセージを送る手順、
    を実行させるための、請求項25に記載のプログラム。
  27. 請求項20から26のいずれか一項に記載のプログラムを格納するコンピュータ可読記録媒体。
JP2016060767A 2016-03-24 2016-03-24 安全なダイレクトメモリアクセス Active JP6274623B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016060767A JP6274623B2 (ja) 2016-03-24 2016-03-24 安全なダイレクトメモリアクセス

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016060767A JP6274623B2 (ja) 2016-03-24 2016-03-24 安全なダイレクトメモリアクセス

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014548764A Division JP5908991B2 (ja) 2011-12-21 2011-12-21 安全なダイレクトメモリアクセス

Publications (2)

Publication Number Publication Date
JP2016167275A JP2016167275A (ja) 2016-09-15
JP6274623B2 true JP6274623B2 (ja) 2018-02-07

Family

ID=56897610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016060767A Active JP6274623B2 (ja) 2016-03-24 2016-03-24 安全なダイレクトメモリアクセス

Country Status (1)

Country Link
JP (1) JP6274623B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
JP3705354B2 (ja) * 2001-07-24 2005-10-12 日本電気株式会社 情報処理システムのioアクセス制御方法およびプログラム
JP4533713B2 (ja) * 2004-09-30 2010-09-01 株式会社東芝 情報処理装置およびデータ転送制御方法
JP4591163B2 (ja) * 2005-04-07 2010-12-01 パナソニック株式会社 バスアクセス制御装置
US7620749B2 (en) * 2007-01-10 2009-11-17 International Business Machines Corporation Descriptor prefetch mechanism for high latency and out of order DMA device
WO2009138928A1 (en) * 2008-05-13 2009-11-19 Nxp B.V. Secure direct memory access

Also Published As

Publication number Publication date
JP2016167275A (ja) 2016-09-15

Similar Documents

Publication Publication Date Title
JP5908991B2 (ja) 安全なダイレクトメモリアクセス
TWI590096B (zh) 來自程序的返回目標限制返回指令、處理器、方法、及系統
US8769295B2 (en) Computing system feature activation mechanism
US9811676B1 (en) Systems and methods for securely providing information external to documents
WO2014121713A1 (zh) 一种网址拦截处理的方法、装置和系统
US7966465B2 (en) Method and system for secure code encryption for PC-slave devices
US20180248898A1 (en) Method and apparatus for identifying malicious website, and computer storage medium
JP2014523046A5 (ja)
US20200342110A1 (en) Firmware retrieval and analysis
US20140337637A1 (en) Methods and systems for executing protected content
WO2022078366A1 (zh) 应用保护方法、装置、设备及介质
EP3221814B1 (en) Transparent execution of secret content
CN111177664A (zh) 水印信息添加方法、服务器及系统
TW201346621A (zh) 使用可信賴的連接服務後端基礎結構而將置入儲存子系統之特性啟動及塑造的技術
CN114189553B (zh) 一种流量回放方法、系统及计算设备
JP2017500668A (ja) 悪意あるマルチメディアファイルを検出するシステム及び方法
US9996702B2 (en) System for and method of data processing in a computer-implemented system
JP6274623B2 (ja) 安全なダイレクトメモリアクセス
US11283604B2 (en) Sharing encrypted data with enhanced security by removing unencrypted metadata
EP3279826A1 (en) Sequence verification
WO2023065985A1 (zh) 热水器烟道风险预测方法、装置、计算机设备及介质
US10248567B2 (en) Cache coherency for direct memory access operations
US11822663B2 (en) Supervisor-based firmware hardening
US20230237161A1 (en) Detection of and protection against cross-site scripting vulnerabilities in web application code
KR20190119413A (ko) 인터넷 오브 미디어 정보 생성 방법 및 장치

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170328

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170605

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: 20171114

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20171212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180104

R150 Certificate of patent or registration of utility model

Ref document number: 6274623

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250