JP6046140B2 - デバイス通信チャネルパケットのためのデータ変更 - Google Patents

デバイス通信チャネルパケットのためのデータ変更 Download PDF

Info

Publication number
JP6046140B2
JP6046140B2 JP2014527442A JP2014527442A JP6046140B2 JP 6046140 B2 JP6046140 B2 JP 6046140B2 JP 2014527442 A JP2014527442 A JP 2014527442A JP 2014527442 A JP2014527442 A JP 2014527442A JP 6046140 B2 JP6046140 B2 JP 6046140B2
Authority
JP
Japan
Prior art keywords
data
packets
algorithm
payload data
communication channel
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
JP2014527442A
Other languages
English (en)
Other versions
JP2014529807A5 (ja
JP2014529807A (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.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
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 ATI Technologies ULC filed Critical ATI Technologies ULC
Publication of JP2014529807A publication Critical patent/JP2014529807A/ja
Publication of JP2014529807A5 publication Critical patent/JP2014529807A5/ja
Application granted granted Critical
Publication of JP6046140B2 publication Critical patent/JP6046140B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Storage Device Security (AREA)

Description

本開示は、デバイス通信チャネルを介したデータパケットの送信に関し、より詳細には、それらのデータパケットに処理アルゴリズムを適用することに関する。
コンピューティングデバイスの動作中、データパケットは、通信リンク及び/又はバスに接続されたデバイス間において送信され得る。コンピュータプロセッサは、例えばハードドライブ又は他のストレージユニットにデータを送信(又はこれらからデータを受信)し得る。デバイスに送信され、又はデバイスから送信されるデータは、例えばPCI−エクスプレス仕様において定義されているTLP(トランザクションレイヤパケット)等の特定のフォーマットに従って送信され得る。搬送されるデータは、生の又は処理されていない形態であり得る。すなわち、送信目的のデータが通信リンク及び/又はバスにわたって送信される前には、送信目的のデータに対して何の動作も実行されていない。
従って、特定のフォーマットにおいてデータを搬送するように構成されたバス及び通信リンクは、そのフォーマットのために存在する任意の欠点に限定され得る。例えば、特定の通信リンク及び/又はバスにわたり最大帯域幅を達成又は超過することは不可能であろうし、特定のフォーマットにおいてパケットを送信及び受信するように構成されたデバイスは、パケットデータを取り扱うという点で性能が非効率であろう。
パケットデータの変更を処理要素に可能にさせる方法及び構造の様々な実施形態が、本明細書において開示される。
説明される一実施形態では、通信リンクに結合するように構成された処理要素を備える装置が開示されており、前記処理要素は、通信リンクに結合されたデバイスに向けられたペイロードデータを受信することに応じて、1つ以上の特定の処理アルゴリズムに従って受信したペイロードデータを変更し、1つ以上のパケットを作成するように構成されており、前記1つ以上のパケットは、デバイスに宛てられ、変更されたペイロードデータと、1つ以上の特定の処理アルゴリズムを示す情報とを含み、処理要素は、1つ以上のパケットを、通信リンクを介してデバイスに送信するように構成されている。
他の実施形態は、コンピュータ可読記憶媒体を含み、前記媒体は、コンピューティングデバイスのプロセッサによって実行可能な命令を記憶し、前記命令は、コンピューティングデバイスの通信リンクに結合された周辺デバイスにアプリケーションデータを転送するための要求を受信することであって、通信リンクは第1の通信プロトコルに従ってパケットを転送するように構成されていることと、周辺デバイスが、特定のアルゴリズムに従って処理されたデータパケットを、通信リンクを介して受信するように構成されているとの指標に基づいて、アプリケーションデータを、前記特定のアルゴリズムに従って変更することと、変更されたアプリケーションデータを、1つ以上のパケットにおいて、通信リンクを介して周辺デバイスに送信することであって、1つ以上のパケットは第1の通信プロトコルと互換性があることとを備える動作を、コンピューティングデバイスに実行させる。
さらなる他の実施形態は、処理要素が、前記処理要素に結合された通信リンクに結合されたデバイスに向けられたデータを受信することに応じて、変更されたペイロードデータを含む1つ以上のデータパケットを作成することであって、変更されたペイロードデータは、1つ以上の特定の処理アルゴリズムに従って前記受信したデータを処理した結果であり、1つ以上のパケットはデバイスに宛てられていることと、1つ以上のパケットと、1つ以上の特定の処理アルゴリズムを示す情報とが、通信リンクを介してデバイスに送信されるようにすることとを備える方法である。
さらなる他の実施形態は、集積回路を製造するための処理の一部を実行するためにコンピュータシステム上で実行可能なプログラムによって使用可能なデータ構造を備える非一時的なコンピュータ可読記憶媒体を備え、集積回路は、データ構造によって記述された回路素子を含み、データ構造において記述された回路素子は、通信リンクに結合するように構成された処理要素を含み、処理要素は、通信リンクに結合されたデバイスに向けられたペイロードデータを受信することに応じて、1つ以上の特定の処理アルゴリズムに従って前記受信したペイロードデータを変更し、1つ以上のパケットを作成し、1つ以上のパケットは、デバイスに宛てられ、変更されたペイロードデータと、1つ以上の特定の処理アルゴリズムを示す情報とを含み、1つ以上のパケットを、通信リンクを介してデバイスに送信するように構成されている。
コンピュータシステムの一実施形態を示すブロック図である。 いくつかの可能なデータパケットのブロック図である。 コンピュータ可読記憶媒体のブロック図を示すブロック図である。 変更されたペイロードデータを含む1つ以上のデータパケットが作成され、デバイスに送信される方法の一実施形態を示すフローチャートである。 コンピュータシステムの他の実施形態を示すブロック図である。
本明細書は、「一実施形態」又は「実施形態」への言及を含む。「一実施形態において」又は「実施形態において」という句が出てきても、それは必ずしも同一の実施形態のことを言っているわけではない。特定の特徴、構造又は特性を、本開示と一致する任意の適切な手法で組み合わせることが可能である。
専門用語。以下の段落では、本開示(添付の請求項を含む)に見出される用語のための定義及び/又はコンテキストを提供する。
「備える」又は「含む」。これらの用語は、オープンエンドである。添付の請求項において使用される場合には、これらの用語は、追加の構造又はステップを排除しない。「1つ以上の処理要素を備える装置・・・」と記載した請求項を考える。このような請求項は、追加の構成要素(例えば、ネットワークインターフェースユニット、グラフィクス回路素子、等)を装置に含ませないようにするものではない。
「ように構成される」。様々なユニット、回路又は他の構成要素が、1つのタスク又は複数のタスクを実行する「ように構成される」ものとして説明又は特許請求され得る。そのようなコンテキストにおいて、「ように構成される」とは、ユニット/回路/構成要素が、動作中にそれらの1つのタスク又は複数のタスクを実行する構造(例えば、回路素子)を含む、ということを示すことによって、構造を暗示するために使用される。従って、ユニット/回路/構成要素は、特定のユニット/回路/構成要素が現在動作可能でない(例えば、オンでない)場合であっても、タスクを実行するように構成されていると言うことができる。「ように構成される」という語とともに使用されるユニット/回路/構成要素は、ハードウェア(例えば、回路や、動作を実現するために実行可能なプログラム命令を記憶したメモリ等)を含む。ユニット/回路/構成要素が1つ以上のタスクを実行する「ように構成される」という記載は、そのユニット/回路/構成要素に関して、35U.S.C.§112の第6段落を行使しないことを明確に意図している。加えて、「ように構成される」とは、問題のタスクを実行できるように動作するように、ソフトウェア及び/又はファームウェア(例えば、FPGA、又はソフトウェアを実行する汎用プロセッサ)によって操作される一般的な構造(例えば、一般的な回路素子)を含み得る。さらに、「ように構成される」とは、1つ以上のタスクを実現又は実行するように適合したデバイス(例えば、集積回路)を製造するように製造処理(例えば、半導体製造設備)を適合させることを含み得る。
「処理要素」。この用語は、当該技術分野におけるその一般的な受け入れられている意味を有し、コンピュータ命令を実行できるデバイス(例えば、回路素子)又はデバイスの組み合わせを含む。処理要素は、様々な実施形態において、シングルコアプロセッサ、マルチコアプロセッサのコア、又はマルチコアプロセッサの2つ以上のコアのグループのことを言うことができるが、これらに限定されない。
「プロセッサ」。この用語は、当該技術分野におけるその一般的な受け入れられている意味を有し、1つ以上の処理要素を含むデバイスを含む。プロセッサは、中央処理装置(CPU)、コプロセッサ、演算処理装置、グラフィクスプロセッシングユニット、デジタルシグナルプロセッサ(DSP)等のことを言うことができるが、これらに限定されない。
「コンピュータ可読媒体」。本明細書において使用される場合、この用語は、コンピュータ又はコンピュータシステムによって読み取り可能であり、ハードドライブ、光学ディスク、DVD、揮発性若しくは不揮発性RAMデバイス、ホログラフィックストレージ、プログラム可能なメモリ等といった、磁気、光学、及びソリッドステート記憶媒体を含む、(非一時的な、有形の)媒体のことを言う。本明細書においてコンピュータ可読媒体に適用される「非一時的」という用語は、一時的(無形)媒体(例えば、搬送波)のような、35U.S.C§101の下で不適格であるとみなされる任意の主題を特許請求の範囲から排除することを意図しているに過ぎず、そうでなく法令によるものとみなされる任意の主題を排除することを意図したものではない。
ここで図1を参照すると、システム100の一実施形態が示されている。この実施形態において、プロセッサ110は、処理要素125と、1つ以上のデータアルゴリズム126とを含む通信チャネルコントローラ120に接続されている。図示されているように、通信チャネルコントローラ120は、バス140を介してデバイス150に接続されている。デバイス150Aは、図1の実施形態では、処理要素152と、1つ以上のデータアルゴリズム153とを含む。
なお、いくつかの実施形態では、通信チャネルコントローラ120は、1つ以上のデバイス通信チャネルを制御し、使用し、及び/又は管理するように構成されてもよい。「通信チャネル」という用語は、本明細書において使用される場合、2つ以上のデバイス間の通信を可能にするように構成された共有バス、又は、2つのみの(デバイス)ポイント間の通信を可能にするように構成されたポイントツーポイント通信リンク、のことを言い得る。従って、様々な実施形態において、通信チャネルコントローラ120は、広く共有されたバス及び/又は1つ以上の非共有(ポイントツーポイント)通信リンクを制御し、使用し、及び/又は管理するように構成されてもよい。なお、少なくとも1つの実施形態において、通信チャネルコントローラは、複数の通信リンクを介して複数のデバイスにアクセス可能であってもよいが、複数のデバイスは、互いに直接アクセスすることが不可能であってもよい。(従って、様々な実施形態において、チャネルコントローラ120は、複数の通信リンクの各々を介してチャネルコントローラに接続された2つ以上のデバイス間の通信を容易にするように構成されてもよい。)
プロセッサ110は、任意のプロセッサであってよく、一実施形態では、プロセッサ110は、図5のプロセッササブシステム580に関連して説明されるプロセッサである。プロセッサ110は、様々な実施形態において、1つ以上の処理コアを含むことができ、複数のスレッドの実行をサポートすることができる。図示されているように、プロセッサ110は、通信チャネルコントローラ120に接続されている。この接続は、140のようなバス接続であってもよいし、任意の他の適切な接続であってもよい。従って、プロセッサ110は、通信チャネルコントローラ120にデータを送信し、又は、通信チャネルコントローラ120からデータを受信するように構成され得る。プロセッサ110によって通信チャネルコントローラ120に送信されるデータは、いくつかの実施形態において、複数のデバイス150のうちの1つのデバイス、何れかのデバイス、又は全てのデバイスに向けられ得る。従って、プロセッサ110は、データが向けられた特定のデバイス150の指標(indication)を通信チャネルコントローラ120に送信し得る。この指標は、様々な実施形態において、アドレス、割込み、他の識別情報(例えば、論理番号又はハードウェアデバイス番号)、又はそれらの任意の組み合わせであってもよい。
データは、様々な手法で、及び当業者にとって周知であり得る技法に従って、通信チャネルコントローラ120に送信されてもよい。一実施形態では、プロセッサ110は、通信チャネルコントローラ120に直接データを送信する(すなわち、プロセッサ110に既に記憶されているデータを、通信チャネルコントローラ120に送信する)ように構成されている。他の実施形態では、プロセッサ110は、その代わりに、データのロケーションを通信チャネルコントローラ120に通信すること、例えば、メモリロケーション又は他のポインタを通信チャネルコントローラに送信することによって、データが送信されるようにしてもよい。そして、通信チャネルコントローラは、例えば、RAM等のシステムメモリに記憶されているデータにアクセスするために、ポインタを使用してもよい。実際に、様々な実施形態において、通信チャネルコントローラ120は、任意の数のソースから、任意の数の技法を使用して、データを獲得することができる。例えば、150Aのようなデバイスは、通信チャネルコントローラ120を介して、プロセッサ110に対して、別のデバイス150に対して、及び/又はコンピュータシステム若しくはコンピューティングデバイス内の他の構造に対してデータを送信するために、通信チャネルコントローラ120の機能の一部又は全部を使用することができる。
デバイス150は、ハードドライブ、フラッシュメモリドライブ、ストレージアレイ、SAN、他のストレージデバイス若しくはそれらに関連づけられたコントローラや、(例えば、ローカル若しくは広域ネットワークへの)ネットワークインターフェースデバイスや、DVD−ROMドライブ若しくは他の光学ドライブや、他のデバイス(例えば、グラフィクスプロセッシングデバイス、ユーザインターフェースデバイス等)といった任意の周辺デバイスであってよい。従って、いくつかの実施形態において、デバイス150は、図5に関して以下に説明されるI/Oデバイス550及び/又はI/Oインターフェース540の機能の何れか又は全てを有し得る。
図1の実施形態では、通信チャネルコントローラ120は、データを受信するとともに、バス140を介して1つ以上のパケットを送信するために当該パケットを作成するように構成されている。特に、データパケットは、図1の実施形態では、処理要素125を使用して作成されてもよい。処理要素125は、スタンドアロンプロセッサ、マルチコアプロセッサのコア、又は他のハードウェア論理であってもよい。いくつかの実施形態において、処理要素125の全部または一部は、プログラム可能なハードウェア(例えば、EEPROM、等)である。処理要素125の全部または一部は、いくつかの実施形態において、カスタムASICチップであってもよい。処理要素125は、以下に説明されるように、いくつかの実施形態においてアルゴリズム126を含むように構成されてもよく、これらの実施形態では、新たなアルゴリズムによって再プログラム又は更新されてもよい。
処理要素125は、様々な実施形態において、1つ以上の通信プロトコルに従ってデータパケットを定式化するように構成されている。図1に示されているように、処理要素125は、PCI−エクスプレス仕様バージョン2.1に従ってデータパケットを定式化するように構成されている。他の実施形態において、処理要素125は、PCI−エクスプレス仕様の他のバージョンに従ってデータパケットを定式化するように構成される。さらなる他の実施形態では、他の通信プロトコルが、データをパケット化するために処理要素125によって使用されることができ、いくつかの実施形態では、処理要素125は、2つ以上の異なるプロトコル及び/又は同一のプロトコルの2つ以上のバージョンに従って、データのパケット化をサポートすることができる。様々な実施形態において使用され得るプロトコルは、USB、イーサネット(登録商標)、DisplayPort、TCP、UDP、又はパケットに基づいたデータの送信を使用する任意の他の通信プロトコルを含む。処理要素125によって定式化されたデータパケットは、様々な実施形態において、データペイロードだけでなく、図2に関して以下に説明される任意の他のデータパケットフィールド、又はデータパケットの特徴を含み得る。
1つ以上のデータ処理アルゴリズム126が、データパケットを定式化するために処理要素125によって使用されてもよい。従って、一実施形態では、データ処理アルゴリズムが、バス140(又は図示されていない他のバス若しくはリンク)に結合されたデバイス150に通信されるペイロードデータに対して、処理要素125によって実行される。一実施形態では、処理要素125は、デバイス150がアルゴリズム126のうちの1つ以上に従って変更されたデータを処理するように構成されているとの指標に基づいて、パケットペイロードデータを変更するように構成されている。
図1の実施形態では、アルゴリズム126は、通信チャネルコントローラ120内にプログラムされたハードウェア論理内に記憶されている(すなわち、アルゴリズム126は、回路素子/回路構造内にハードウェア実装され得る)。一実施形態では、アルゴリズムは、処理要素125内にプログラムされた論理として記憶される。従って、様々な実施形態において、1つ以上のデータ処理アルゴリズム126の実行は、特定のアルゴリズムを作り出す1つ以上の動作を実行するように構成された回路素子によって遂行され得る。他の実施形態では、アルゴリズム126は、命令としてコンピュータ可読記憶媒体に記憶されてもよい。命令は、125のような処理要素、プロセッサ110のようなプロセッサの1つ以上のコア等によって実行可能であり得る。従って、1つ以上のデータ処理アルゴリズム126の実行は、いくつかの実施形態では、命令が汎用処理要素又は他の処理要素(GPU、GPUコア、他のコプロセッサ、カスタマイズされたチップ又は専用チップ等)によって実行されることにより、遂行され得る。一実施形態では、プロセッサ110の1つ以上のコアは、アルゴリズム126のための命令を実行することができる。
データ処理アルゴリズム126は、実行されると様々な手法でデータ(例えば、パケットペイロードデータ)を変更する任意の数のアルゴリズムを含み得る。いくつかの実施形態では、損失のないデータ圧縮のための1つ以上のアルゴリズムが、アルゴリズム126に含まれる。そのような損失のない圧縮アルゴリズムは、Lempel−Ziv−Welch(LZW)圧縮、ランレングス符号化、バイトペア符号化、及び/又は辞書ベースの符号化スキームを含み得る。いくつかの実施形態では、観察されたデータに基づくカスタマイズされた損失のない圧縮スキーム(例えば、ヒューリスティックに基づいたスキーム)を使用することができる。例えば、1つ以上の特定の環境又はコンピュータデバイスにおけるバストラヒックを経験的にサンプルすることができ、次にこのデータに基づいて、1つ以上の有利なスキーム(又はスキームの組み合わせ)を使用することができる。例えば、1つ以上の値の特定のパターンが頻繁に送信されることが観察された場合、損失のない圧縮スキームは、それらのパターンを組み込み得る。任意のパブリックドメインのスキーム又は製造者に固有のスキームが、様々な実施形態における損失のない圧縮のために使用されることができ、データを圧縮するために使用され得る符号化/復号スキームの数は、上述されたものに限定されない。いくつかの実施形態では、損失の大きい圧縮スキームが、(以下に説明されるように、特にファイルフォーマット変換アルゴリズムに関連して)使用され得る。
一実施形態において、使用される圧縮アルゴリズムのタイプは、圧縮されているデータの種類の指標に依存し得る。バス140にわたって送信されているテキストベースのファイル(マイクロソフトワード(登録商標)、プレーンテキスト、リッチテキストフォーマット(RTF)等)は、例えば、バス140にわたって送信されている画像ベースのファイル(JPEG、MPEG等)に適用されるであろうものとは異なる圧縮スキーム又はアルゴリズムを有し得る。バスを介して送信されるデータの種類の指標は、一実施形態において、通信チャネルコントローラ120の外部の構造により(例えば、プロセッサ110又はデバイス150により)明示的に生成又は提供されることができる。他の実施形態において、処理要素125が、データの種類を決定するために、送信されるデータを調べることにより、指標を生成することができる。データの種類の指標は、通信チャネルコントローラ120における1つ以上の他の構成要素(図示せず)によって提供されることもできる。従って、一実施形態では、処理要素125は、バス140に結合されたデバイスが特定の圧縮アルゴリズムに従ってデータを圧縮解除するように構成されているとの指標に基づいて、ペイロードデータを変更するように構成されている。
バス140(又は他のバス若しくはリンク)にわたって送信されるデータパケットのために圧縮を使用することの1つの利点は、より高効率の帯域幅が達成され得ることである。例えば、PCI−エクスプレス2.1仕様などの所与の通信プロトコルは、PCI−エクスプレスリンクのための達成可能なスループットに上限を設け得る。その達成可能なスループットは、TLPペイロードのサイズ、PCI−エクスプレスリンクの構成、及びリンクにわたって送信される一般的なトラヒック、の組み合わせによって制限され得る。しかしながら、圧縮技法が、バス又はリンクにわたって転送されている実際のバイト量を減じるために使用され得る場合には、より大量の「有用な」データが同一の長さの時間で送信され得る。しかしながら、バス140にわたってデータを送信するための圧縮技法の使用は、様々な実施形態において、デバイス150又はデータパケットの他の宛先が、圧縮されたデータを圧縮解除して、データをその変更されていない形態に回復させることが可能であることを要求し得る。
圧縮は、パケットデータに使用され得るデータ処理アルゴリズム(例えば、符号化/復号アルゴリズム)の1つの応用例に過ぎない。他のアルゴリズム126は、暗号化及びフォーマット変換を含み得る。データパケットのための暗号化がサポートされる一実施形態では、パケットデータの全部又は一部が、1つ以上の暗号化スキームに従って暗号化され得る。そのようなスキームは、デジタル署名アルゴリズム(DSA)、RSA(PKCS#1)、PGP、パスワード認証鍵合意、楕円曲線技法、又は当業者が想起し得る他の暗号技法の使用を含み得る。従って、いくつかの実施形態では、通信チャネルコントローラ120及び/若しくは処理要素125(又はデータを暗号化するように構成された別の構造)は、1つ以上の特定の鍵を使用してデータを暗号化するように構成され得る。通信チャネルコントローラ120は、デバイス150と、及び/又はバス140を介して送信されるデータの他の宛先と、鍵を交換するように構成され得る。パケットペイロードデータを符号化するための暗号技法の使用は、いくつかの実施形態において、ペイロードデータがバス140(又は別のデータ搬送構造)にわたって伝わる際に「傍受」されることを防ぐことができる。暗号化は、感知可能なデータ若しくは分類されたデータ、デジタル著作権管理(DRM)によって保護されているメディアファイルを保護するために、又は任意の他の目的のために、使用されることができる。暗号化ポリシーが、パケットデータを暗号化するための根拠として、いくつかの実施形態において使用され得る。そのようなポリシーは、一部若しくは全部のデータ、又は、一部若しくは全部のタイプのデータが、1つ以上のアルゴリズムに従って暗号化されるべきであることを指定し得る。暗号化ポリシーは、データが暗号化されるべきか否かを決定する際に、様々なファクター(例えば、コンピュータシステムにログオンされたユーザの識別、ソース又は宛先デバイスによって提供された指標(及び/又はそのようなデバイスの能力)等)を考慮し得る。しかしながら、以下に説明されるように、さらなる他のアルゴリズムが、暗号化及び圧縮に加えて使用され得る。
データフォーマット変換アルゴリズムは、バス140を介して送信されるデータを変更するために、いくつかの実施形態において使用され得る。これらのアルゴリズムは、例えば、1つのファイルフォーマットから他のものに(例えば、GIF画像ファイルからJPEG画像ファイルに、フラッシュ映像フォーマット(.FLV)からMPEG映像フォーマットに)変換し、リッチテキストフォーマット(RTF)又はポストスクリプト(PDF)といった1つのドキュメントフォーマットからマイクロソフトワード(TM)といった他のドキュメントフォーマットに変換し、又は、1つのオーディオフォーマットから他のものに変換することができる。多くのタイプのデータフォーマット変換が可能であり、上記の例に限定されない。いくつかの実施形態において、フォーマット変換は、バイトレベル又は文字レベルといった、より低いレベルで行われ得る(例えば、データは、ASCII及びEBCDIC文字コード間で、又は様々なISO文字コード間で、変換され得る)。一実施形態において、処理要素125は、デバイス150のうち1つが第2のフォーマットにおけるデータを要求している(又は、例えば、プロセッサ110が、デバイス150から転送されているデータのために、第2のフォーマットにおけるデータを要求している)との指標に基づいて、第1のフォーマットから第2のフォーマットにデータを変換し得る。例えば、プロセッサ110の1つ以上のコアで実行中のアプリケーションプログラムは、1つ以上の画像ファイルが特定のフォーマット(例えば、JPEG画像)においてストレージデバイス150(例えば、ハードドライブ)から検索されることを要求し得る。デバイス150内の処理要素は、データを、要求者(例えば、プロセッサ110)に送信する前にJPEGフォーマットに変換し得る。従って、データフォーマット変換アルゴリズムが使用されるいくつかの実施形態では、1つ以上のメモリバッファが、変換処理のためのテンポラリストレージとして使用され得る。
アルゴリズム126に含まれ得るアルゴリズムは、圧縮、暗号化及びデータフォーマット変換に関し上述されたものに限定されない。バス140を介して送信されるデータ(例えば、ペイロードデータ)に影響を及ぼし得ない他のデータ処理アルゴリズムもまた、様々な実施形態において存在し得る。一実施形態において、処理要素125は、デバイス150のうち1つに向けられたペイロードデータを受信することに応じて、アルゴリズム126のうち少なくとも1つに従って、受信したペイロードデータを変更し、そのデバイスに宛てられ、変更されたペイロードデータ、並びにデータを変更するために使用されたアルゴリズム126のうち少なくとも1つを示す情報を含む、1つ以上のパケットを作成し、1つ以上の作成されたパケットがバス140を介してデバイス150に送信されるようにするように構成されている。いくつかの実施形態では、2つ以上のアルゴリズムが、所与のデータパケットペイロードに対し使用され得る。
アルゴリズムによって変更されたペイロードデータを有するバスパケットの作成を含む様々な実施形態が、図1に示された処理要素125、アルゴリズム126及び通信チャネルコントローラ120に関して説明されている。しかしながら、異なる実施形態では、処理要素及び/又はアルゴリズムは、異なる構造(例えば、通信チャネルコントローラ120ではない構造)内に配置され、異なるバス又はリンク(例えば、バス140ではない接続)を介して送信されるパケットデータに影響を及ぼし得る。例えば、図1の実施形態では、デバイス150Aは、処理要素152及びデータ処理アルゴリズム153を含む。処理要素152は、処理要素125の様々な実施形態に関し上述された機能の何れか又は全てを有することができ、アルゴリズム153も同様に、上述されたアルゴリズム126の機能若しくは特性の何れか又は全てを有することができる。デバイス150Aは、データパケットを、バス140を介して任意の他のデバイス150に、通信チャネルコントローラ120を介してプロセッサ110に、又はバス140(又は図示されていない他のバス又はリンク)を介して他の宛先に送信し得る。別の実施形態では、125などの処理要素と、126などのアルゴリズムとは、メモリコントローラ内に配置されることができ、バス140、又は図示されていない1つ以上の他のバス若しくは、の何れかによって、プロセッサ110、通信チャネルコントローラ120、及び/又はデバイス150と通信するように構成され得る。CPUの処理コアは、一実施形態において処理要素125と同様又は同等に構成され得るが、別の実施形態では、グラフィクスプロセッシングユニット(GPU)の処理コアが、処理要素125と同様又は同等に構成されてもよい。そのような処理要素を含むように構成された任意のデバイス、構造又は装置は、アルゴリズム126を含み得る(又は、そのようなアルゴリズムにアクセス可能であり得る)。
ここで図2を参照すると、いくつかのデータパケットのブロック図200が示されている。示されているように、図2は、データパケット201,211,221,231を含む。この実施形態では、これらのパケットの各々は、ベースライン(「レギュラー」)パケット、圧縮されたペイロードデータパケット、暗号化されたペイロードデータパケット、及びペイロードデータがフォーマット変換されているパケットに対応する。様々な実施形態において、これらのパケットは、125又は152などの処理要素によって定式化され、140などのバスを介して送信され得る。いくつかの実施形態において、これらのパケットは、PCI−エクスプレス仕様2.1の規則(及び/又はPCI−エクスプレスの他のバージョン)に準拠したトランザクションレイヤパケット(TLP)である。いくつかの実施形態では、図示されているパケットフィールドの全てが存在し得るわけでないが、他の実施形態では、図示されていない追加のパケットフィールドが使用され得る。いくつかの実施形態では、図示されている特定のフィールドが、いくつかのパケットに存在し、他のパケットでは存在しない場合もある。例えば、一実施形態では、プレフィックスフィールドが、第1のデバイスに向けられた第1のパケットに存在し得るが、後に送信される他のパケットでは省略され得る。受信デバイスは、「欠けている」プレフィックスが何であるべきかを、コンテキスト又は他のパケット情報から算出可能であり得る。従って、プレフィックス及び/又はヘッダーの圧縮又は省略がいくつかの実施形態において実行され得る。上記によると、様々な実施形態におけるパケットは、パケット201,211,221,231に関し説明されたフィールド及び機能のうちの一部又は全部の任意の組み合わせを含み得る。いくつかの実施形態では、パケットフィールドは、図2に示されている順序とは異なる順序で現れ得る。
パケット201は、示されているように、プレフィックス202、ヘッダー204、ペイロード206及びCRCフィールド208を含む。プレフィックス202は、様々な実施形態において、PCI−エクスプレス仕様のバージョン2.1において指定されているTLPプレフィックス、又は他の通信プロトコルのための任意の他のプレフィックス仕様に準拠し得る。ヘッダー204は、様々な実施形態において、PCI−エクスプレス仕様の任意のバージョンにおいて指定されているTLPヘッダー、又は他の通信プロトコルのための任意の他のヘッダー仕様に準拠し得る。様々な実施形態において、プレフィックス202及び/又はヘッダー204は、データパケットが発生したソース(デバイス)と、データパケットが向けられている宛先(デバイス)と、データパケットの通信プロトコル(又はフォーマット)と、パケットの1つ以上のフィールドの長さ(例えば、プレフィックスの長さ、ヘッダーの長さ、ペイロードの長さ、CRCの長さ等)と、パケットのために使用される符号化のタイプを示す情報と、パケットのためのルーティング又は経路情報と、他の情報とを含み得る。CRCフィールド208は、任意のエラーチェックコードを含むことができ、図2の実施形態では、パケット201の全部又は一部(例えば、ペイロード206)に対応するサイクリック冗長検査(CRC)値を含む。この値は、パケットが誤りなく送信されたことを保証するために使用され得る。いくつかの実施形態では、CRC値ではない他のエラーチェックコードが使用され得る。
いくつかの点で、パケット211,221,231は、パケット201と異なり得る。しかしながら、パケット211,221,231のプレフィックス、ヘッダー及びペイロードフィールドは、プレフィックス202、ヘッダー204及びペイロード206に関し上述された機能の何れか又は全てを含むことができ、パケット211,221,231は、CRC値又は他のエラーチェックコードを含むことができる。パケット211,221,231のフォーマットを有するパケットが、様々な実施形態において、パケット201のフォーマットを有するパケットの代わりに使用され得る。特に、1つ以上の特定のデータ処理アルゴリズム(例えば、アルゴリズム126)を適用した後、データパケットは、211,221,231などの形態を有し得る。
パケットデータを変更するために使用されたアルゴリズムを示す情報は、パケット内の様々なロケーションに記憶され得る。いくつかの実施形態において、この情報は、プレフィックス及び/又はヘッダーに記憶され得る。他の実施形態では、この情報は、ペイロードデータフィールド内に記憶され得る(が、それは、ペイロードデータ自体の実際の一部を形成し得ない)。他のパケットフィールド又はロケーションは、データ処理アルゴリズムを示す情報を記憶するために使用されることができ、実施形態によって、及びバス又はリンクによって使用される特定の通信プロトコルに従って、様々であり得る。いくつかの実施形態では、TLPペイロードのためのアルゴリズムの符号化は、TLPフォーマットに従って作られたプレフィックスにおける特定のビットを設定することによって指定され得る。これらの実施形態において、使用されるビットは、「未使用の」又は「予約された」ビット(仕様において定義されていない、又は、未だTLPプロトコルの一部ではないビット)であってよく、すなわち、それらは、エンドユーザによって定義されるか、又は、TLP若しくは他のプロトコルに従って特定の製造者のために予約され得る、「カスタム」又は「製造者」ビットであってよい。一実施形態では、パケットデータを変更するために使用された、又は使用されるアルゴリズムを示す情報は、変更されたデータパケットではないメカニズムを介して送信されてもよい(例えば、指標は、別個のチャネル又は通信経路を介して送信されてもよいし、データパケットに特に含まれない制御情報として送信されてもよい)。
パケット211は、図2の実施形態においてデータ圧縮のために使用される。示されているように、パケット211は、プレフィックス212、ヘッダー214、圧縮されたペイロード216、ペイロードCRCフィールド218及びパケットCRCフィールド219を含む。圧縮されたペイロード216は、少なくとも1つの圧縮アルゴリズムに従って圧縮されたパケットペイロードデータを表す。従って、圧縮されたペイロード216は、パケット201のペイロード206のような圧縮されていないペイロードよりも小さいサイズのものであり得る(そして、パケット211は、パケット201よりも小さい合計サイズのものであり得る)。ペイロード216を圧縮するために使用されるアルゴリズムの指標は、プレフィックス、ヘッダー、ペイロード等を含むパケット211内に記憶され得る。
パケットCRCフィールド219は、CRCフィールド208の機能の何れか又は全てを含み得る。例えば、パケットCRCフィールド219は、パケット211の全部又は一部のためのエラーチェックコードを含み得る。他の誤り検査フィールド、ペイロードCRCフィールド218は、パケット211に含まれ得る。フィールド218は、図2の実施形態において、フィールド219とは異なる目的を果たし得る。特に、フィールド218は、変更されていない(圧縮されていない)ペイロードデータに対応するエラーチェックコードであってよい。パケット211が受信されると、デバイスは、フィールド216におけるペイロードデータを圧縮解除し、それをフィールド218における誤り符号値と比較し得る。従って、ペイロードCRCフィールド218は、処理要素によって作成され、変更されていないペイロードデータに対応する値を含むことができ、フィールド218における値は、任意の誤りが、1つ以上の特定のアルゴリズムに従ってペイロードデータを変更する際に生じたか否かを決定するために、そのパケットを受信するデバイスによって使用可能である。また、パケット221及び231は、(特に図2には示されていないが、)フィールド218と同様のペイロード誤り検査フィールド及びフィールド219と同様のパケット誤り検査フィールドを有し得る。
パケット221は、図2の実施形態においてデータ暗号化のために使用される。示されているように、パケット221は、プレフィックス222、ヘッダー224及び暗号化されたペイロード226を含む。暗号化されたペイロード226は、少なくとも1つの特定の暗号化アルゴリズムに従って暗号化されたパケットペイロードデータを表す。暗号化されたペイロード226は、ペイロード206などの変更されていないペイロードよりも大きい又は小さいサイズのものであってよい。ペイロード226を暗号化するために使用されたアルゴリズムの指標は、プレフィックス、ヘッダー、ペイロード等を含む、パケット221内に記憶され得る。また、パケットを暗号化するように構成された処理要素は、受信デバイスが、暗号化されたパケットを復号することを許可されること及び/又は復号できることを保証するために、暗号鍵を交換又は使用し、他の技法を使用するように構成されてもよい。
パケット231は、図2の実施形態においてフォーマット変換のために使用される。示されているように、パケット231は、プレフィックス232、ヘッダー234及びフォーマットが変換されたペイロード236を含む。フォーマットが変換されたペイロード236は、少なくとも1つの特定のフォーマット変換アルゴリズムに従って異なるフォーマットに(例えば、TIFF画像からJPEG画像に)変換されたパケットペイロードデータを表す。フォーマットが変換されたペイロード236は、ペイロード206などの変更されていないペイロードよりも大きい又は小さいサイズのものであり得る。ペイロード236を変換するために使用されたアルゴリズムの指標(例えば、元のデータフォーマット及び/又は新たに変換されたデータフォーマットの指標)は、プレフィックス、ヘッダー、ペイロード等を含むパケット231内に記憶され得る。データを1つのフォーマットから別のものに変換するように構成された処理要素は、受信デバイスからの要求に応じて、当該変換を行うように構成され得る。
ここで図3を参照すると、コンピュータ可読記憶媒体300のブロック図が示されている。図3のコンピュータ可読記憶媒体は、コンピュータに命令及び/又はデータを提供するためにコンピュータによって読み取り可能な任意の非一時的な/有形の記憶媒体を含み得る。例えば、コンピュータ可読記憶媒体は、磁気又は光学媒体などの記憶媒体、例えば、ディスク(固定若しくはリムーバブル)、テープ、CD−ROM、DVD−ROM、CD−R、CD−RW、DVD−R、DVD−RW、又はBlu−ray(登録商標)を含み得る。さらに、記憶媒体は、ユニバーサルシリアルバス(USB)インターフェースなどの周辺インターフェースを介してアクセス可能なRAM(例えば、シンクロナスダイナミックRAM(SDRAM)、ダブルデータレート(DDR、DDR2、DDR3等)SDRAM、低電力DDR(LPDDR2等)SDRAM、ラムバスDRAM(RDRAM)、スタティックRAM(SRAM)等)、ROM、フラッシュメモリ、不揮発性メモリ(例えば、フラッシュメモリ)等といった揮発性又は不揮発性のメモリ媒体を含み得る。記憶媒体は、微小電気機械システム(MEMS)、ホログラフィックストレージ、並びに、ネットワーク及び/又はワイヤレスリンクといった通信媒体を介してアクセス可能な記憶媒体を含み得る。
図3のコンピュータ可読記憶媒体は、図示されているように、モジュール320,340を含む。これらのモジュールは、任意の数のライブラリ、ソースファイル、実行ファイル、GUI、スクリプトコード、バッチファイル、構成設定及び/又は構成ファイル、並びに他のファイル、及び/又はコンピュータプログラム関連のオブジェクトを含み得る。これらのコードモジュールは、1つ以上の異なるコンピュータ関連のプログラミング言語、例えば、C、C++、Java(登録商標)、VHDL等を含み、これらから解釈され、及び/又は、これらからコンパイルされ得る。いくつかの実施形態では、コードモジュールの一部は、オペレーティングシステム又は他のソフトウェア(例えば、ドライバ、データフォーマットトランスレータ等)の一部であり得る。なお、いくつかの実施形態では、モジュール320の全部又は一部を組み合わせてモジュール340にすることができ、その逆も可能である。モジュール320及び/又はモジュール340は、いくつかの実施形態において、125などの処理要素に関し上述された動作の何れかを引き起こすために実行されることができる。
図3の実施形態において、変更モジュール320は、1つ以上の特定のアルゴリズム(例えば、アルゴリズム126)に従ってパケットペイロードデータが変更されるようにするために、プロセッサによって実行可能な命令を含む。従って、いくつかの実施形態では、変更モジュール320は、実行されると1つ以上の圧縮、暗号化、フォーマット変換、及び/又は他のタイプのアルゴリズムに従ってデータを変更する命令を含む。パケット動作モジュール340は、1つ以上の特定のバス又はリンク通信プロトコル(例えば、PCI−エクスプレス等)のためのパケットをフォーマットに従って作ること、送信すること、及び/又は受信することに関連する命令を含み得る。従って、パケット動作モジュール340は、パケットの送信のために1つ以上のパケットフィールド(例えば、図2に関し説明されたもの)を定式化し、1つ以上のパケットフィールドから情報を抽出し(例えば、変更されているか変更されていないかの何れかであるペイロードデータを抽出し、データを変更するためにどのアルゴリズムが使用され得たかを示す情報を抽出する等)、データパケットを作成及び送信するように構成されてもよい。
従って、一実施形態では、モジュール320及び/又はモジュール340は、コンピューティングデバイスに、コンピューティングデバイスのバスに結合された周辺デバイスにアプリケーションデータを転送するための要求を受信することを含む動作を実行させるために、コンピューティングデバイスのプロセッサによって実行可能である。要求は、プロセッサ110の1つ以上のコアで実行中のアプリケーションから、又は他のソースから受信されることができ、転送される特定のアプリケーションデータを指定することができる。このアプリケーションデータは、グラフィカル、テキスト等であってよく、任意の数のフォーマットにおけるものであってよい。アプリケーションデータは、プロセッサで実行中のアプリケーションによって、又は別のソースによって生成され得る。データは、様々な実施形態において、システムメモリ(例えば、RAM及び/又は1つ以上のストレージデバイス)内に存在することができる。アプリケーションデータを転送するための要求は、デバイス150のうち1つのデバイスなどの周辺デバイスの識別を指定することができ、周辺デバイスが結合されるバスは、第1の通信プロトコルに従ってパケットを転送するように構成され得る。
モジュール320及び/又はモジュール340は、一実施形態において、アプリケーションデータが特定のアルゴリズムに従って変更されるようにすることを含む動作と、変更されたアプリケーションデータがバスを介して周辺デバイスに1つ以上のパケットにおいて送信されるようにすることを含む動作とをコンピューティングデバイスに実行させるために、コンピューティングデバイスのプロセッサによって実行可能である。1つ以上のパケットは、1つ以上の通信プロトコルと互換性があり得る(すなわち、その通信プロトコルのための1つ以上の仕様又は規格に準拠し得る)。アプリケーションデータが変更されるようにすることと、変更されたアプリケーションデータが送信されるようにすることとは、周辺デバイスが、特定のアルゴリズムに従って処理されたデータパケットを、バスを介して受信するように構成されているとの指標に基づいて、実行され得る。いくつかの実施形態において、動作は、1つ以上の特定のアルゴリズムに従ってアプリケーションデータを変更するように構成されたコントローラにアプリケーションデータを送信することを含み得る。アプリケーションデータが送信されるコントローラは、通信チャネルコントローラ120、メモリコントローラ(例えば、125などの処理要素を含むもの)、又は任意のタイプのデータコントローラであってよい。
一実施形態では、モジュール320及び/又はモジュール340は、特定のデータ処理アルゴリズムを示す(指標する)情報をコントローラに送信することを含む、上記段落において説明したような動作をコンピューティングデバイスに実行させるために、コンピューティングデバイスのプロセッサによって実行可能である。従って、この実施形態において、コントローラは、そのような指標を受信し、ペイロードデータを適切に処理する(それを圧縮する、それを暗号化する等)ように構成され得る。いくつかの実施形態では、コントローラが、プロセッサ110から特定のアルゴリズムを示す情報を受信することができるが、他の実施形態では、プロセッサが、データパケットがバスを介して送信される宛先デバイスからこの情報を受信することができる。例えば、コンピューティングデバイス内のハードドライブ又は他の周辺デバイスが、コントローラに、1つ以上のアルゴリズムに従って圧縮されたペイロードデータを受信できることを示し得る。このケースでは、コントローラは、プロセッサ110などのデータの送信者からの明示的な要求を受信する必要なく、圧縮を使用してそのハードドライブにデータを自動的に送信し得る。
一実施形態では、コントローラにアプリケーションデータを送信することは、アプリケーションデータの少なくとも一部が記憶されているメモリロケーションの指標をコントローラに送信することを備え得る。例えば、コントローラ又は処理要素は、アプリケーションデータを直接送信するのではなく、メモリロケーションと、そのロケーションから検索されるデータ量とを受信することができる。
ここで図4を参照すると、方法400の一実施形態のフローチャートが示される。なお、以下に説明される方法の様々な実施形態において、説明される要素のうち1つ以上が、同時に実行されてもよく、図示されているのと異なる順序で実行されてもよく、全てが省略されてもよい。他の追加の要素が、所望の場合に実行されてもよい。さらに、いくつかの方法ステップのうちいくつかの部分のみが、いくつかの実施形態において実行されてもよい。方法400のステップの全部又は一部が、いくつかの実施形態において処理要素125及び/又は通信チャネルコントローラ120の任意の組み合わせによって実行され得る。他の実施形態では、プロセッサ110又はデバイス150が方法400のステップの全部又は一部を実行することができるが、方法400は、そのように限定されるものではない。
ステップ410において、変更されたペイロードデータを含む1つ以上のデータパケットが作成される。これらのパケットは、要素125などの処理要素によって作成され得る。変更されたペイロードデータは、1つ以上の特定の処理アルゴリズム(例えば、アルゴリズム126)に従って受信されたデータを処理した結果であってよく、1つ以上のパケットは、宛先デバイスに宛てられ得る。ステップ420において、処理要素は、1つ以上の作成されたパケットと、1つ以上の特定の処理アルゴリズムを示す情報とが、バスを介して宛先デバイスに送信されるようにする。1つ以上の特定のアルゴリズムを示す情報は、1つ以上のデータパケットのうち少なくとも1つに含まれるパケットプレフィックスに記憶され得る。他の実施形態では、この情報は、作成された1つ以上のデータパケットとは別個に送信又は伝達され得る。一実施形態では、1つ以上の特定の処理アルゴリズムは、暗号化アルゴリズムを含み、本方法はさらに、暗号化ポリシーに基づいてペイロードデータを変更することを備える。しかしながら、方法400の多くの他の実施形態が、本明細書に開示される構造及び技法によって可能であり、意図される。
(例示的なコンピュータシステム)
ここで図5を参照すると、例示的なコンピュータシステム500の一実施形態が示されている。コンピュータシステム500の全部又は一部は、図1に示されたシステムの何れか又は全ての部分を実現するために使用され得る。
コンピュータシステム500は、インターコネクト560(例えば、システムバス)を介してシステムメモリ520及びI/Oインターフェース540に結合されたプロセッササブシステム580を含む。I/Oインターフェース540は、1つ以上のI/Oデバイス550に結合されている。コンピュータシステム500は、サーバシステム、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップ若しくはノートブックコンピュータ、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、消費者デバイス(例えば、モバイルフォン、ポケットベル若しくは携帯情報端末(PDA))を含むが、これらに限定されない、様々なタイプのデバイスの何れかであってよい。コンピュータシステム500は、ストレージデバイス、スイッチ、モデム、ルータなどのネットワーク接続された任意のタイプの周辺デバイスであってよい。単一のコンピュータシステム500が便宜的に示されているが、システム500は、共に動作する2つ以上のコンピュータシステムとして実現され得る。
プロセッササブシステム580は、1つ以上のプロセッサ又は処理ユニットを含み得る。例えば、プロセッササブシステム580は、1つ以上のリソース制御処理要素に結合された1つ以上の処理ユニット(各々が複数の処理要素又はコアを有し得る)を含み得る。コンピュータシステム500の様々な実施形態において、プロセッササブシステム580の複数のインスタンスがインターコネクト560に結合され得る。様々な実施形態において、プロセッササブシステム580(又は580内の各プロセッサユニット若しくは処理要素)は、キャッシュ又は他の形態のオンボードメモリを含み得る。
システムメモリ520は、プロセッササブシステム580によって使用可能であり、様々な実施形態において1つ以上のメモリ要素を備える。システムメモリ520は、ハードディスクストレージ、フロッピー(登録商標)ディスクストレージ、リムーバブルディスクストレージ、フラッシュメモリ、ランダムアクセスメモリ(RAM−スタティックRAM(SRAM)、拡張データ出力(EDO)RAM、シンクロナスダイナミックRAM(SDRAM)、ダブルデータレート(DDR)SDRAM、RAMBUS RAM、等)、読み出し専用メモリ(ROM−プログラム可能なROM(PROM)、電気的に消去可能なプログラム可能なROM(EEPROM)等)等の種々の物理メモリ媒体を使用して実現され得る。コンピュータシステム500におけるメモリは、メモリ520などのプライマリストレージに限定されるものではない。むしろ、コンピュータシステム500は、プロセッササブシステム580におけるキャッシュメモリ、I/Oデバイス550におけるセカンダリストレージ(例えば、ハードドライブ、ストレージアレイ等)のような他の形態のストレージをも含み得る。いくつかの実施形態では、これらの他の形態のストレージは、プロセッササブシステム580によって実行可能なプログラム命令を記憶し得る。
I/Oインターフェース540は、様々な実施形態に係る、他のデバイスに結合し、他のデバイスと通信するように構成された様々なタイプのインターフェースのうち何れかであってよい。一実施形態では、I/Oインターフェース540は、フロントサイドバスから1つ以上のバックサイドバスへのブリッジチップ(例えば、サウスブリッジ)である。I/Oインターフェース540は、1つ以上の対応するバス又は他のインターフェースを介して1つ以上のI/Oデバイス550に結合され得る。I/Oデバイスの例は、ストレージデバイス(ハードドライブ、光学ドライブ、リムーバブルフラッシュドライブ、ストレージアレイ、SAN若しくはそれらの関連づけられたコントローラ)、(例えば、ローカル若しくは広域ネットワークへの)ネットワークインターフェースデバイス、又は他のデバイス(例えば、グラフィクス、ユーザインターフェースデバイス等)を含む。一実施形態では、コンピュータシステム500は、ネットワークインターフェースデバイスを介してネットワークに結合されている。
コンピュータシステム(例えば、コンピュータシステム500)によって実行されるプログラム命令は、様々な形態のコンピュータ可読記憶媒体に記憶され得る。一般的に、コンピュータ可読記憶媒体は、コンピュータに命令及び/又はデータを提供するためにコンピュータによって読み取り可能な任意の非一時的な/有形の記憶媒体を含み得る。例えば、コンピュータ可読記憶媒体は、磁気若しくは光学媒体などの記憶媒体、例えば、ディスク(固定若しくはリムーバブル)、テープ、CD−ROM、DVD−ROM、CD−R、CD−RW、DVD−R、DVD−RW、若しくはブルーレイを含み得る。さらに、記憶媒体は、ユニバーサルシリアルバス(USB)インターフェースなどの周辺インターフェースを介してアクセス可能な、RAM(例えば、シンクロナスダイナミックRAM(SDRAM)、ダブルデータレート(DDR、DDR2、DDR3等)SDRAM、低電力DDR(LPDDR2等)SDRAM、ラムバスDRAM(RDRAM)、スタティックRAM(SRAM)等)、ROM、フラッシュメモリ、不揮発性メモリ(例えば、フラッシュメモリ)等といった揮発性又は不揮発性のメモリ媒体を含み得る。記憶媒体は、微小電気機械システム(MEMS)、ホログラフィックストレージ、並びに、ネットワーク及び/又はワイヤレスリンクといった通信媒体を介してアクセス可能な記憶媒体を含み得る。
ハードウェアの実施形態が、いくつかの実施形態においてハードウェア生成命令を使用して生成され得る。例えば、ハードウェア生成命令は、ヴェリログ又はVHDLなどのハイレベル設計言語(HDL)において、ハードウェア機能の挙動レベル又はレジスタ転送レベル(RTL)の記述を記述する1つ以上のデータ構造を略述し得る。記述は、合成ツールによって読み出されることができ、それは、記述を合成してネットリストを生み出すことができる。ネットリストは、ゲートのセット(例えば、合成ライブラリにおいて定義された)を備えることができ、それは、パケットの変更及び/又は処理を実現するように構成された(125及び/又は152などの)処理要素の機能を表す。そして、ネットリストは、マスクに適用されるジオメトリック形状を記述するデータセットを生み出すように配置及び配線され得る。そして、マスクは、1つ以上の処理要素及び/又は通信チャネルコントローラ120、又はメモリコントローラのようなコントローラに対応する1つの半導体回路若しくは複数の半導体回路を生み出すために、様々な半導体製造ステップにおいて使用され得る。また、データベースは、所望の場合には、(合成ライブラリを有する、又は有しない)ネットリスト又はデータセットであってよい。従って、ハードウェア生成命令は、上述した方法及び技法を実現するプロセッサ及び/又は処理要素が、製造の当業者にとって周知の技法に従って生成又は作成されるようにするために、実行され得る。加えて、そのようなハードウェア生成命令は、任意の適切なコンピュータ可読媒体に記憶され得る。
従って、一実施形態では、データ構造によって記述される回路素子を含む集積回路を製造するための処理の一部を実行するためにコンピュータシステム上で実行可能なプログラムによって使用可能なデータ構造を備える非一時的なコンピュータ可読記憶媒体が開示され、データ構造において記述される回路素子は、バスに結合するように構成された処理要素を含み、処理要素は、バスに結合されたデバイスに向けられたペイロードデータを受信することに応じて、1つ以上の特定の処理アルゴリズムに従って受信されたペイロードデータを変更し、1つ以上のパケットを作成するように構成されており、1つ以上のパケットは、デバイスに宛てられ、変更されたペイロードデータと、1つ以上の特定の処理アルゴリズムを示す情報とを含み、処理要素は、1つ以上のパケットがバスを介してデバイスに送信されるように構成されている。さらなる実施形態では、非一時的なコンピュータ可読記憶媒体は、HDL、ヴェリログ又はGDSIIデータのうち少なくとも1つを記憶する。これらの実施形態において製造され得る回路素子は、本明細書において説明された任意又は全ての機能を含むことができ、上記段落に限定されない。
特定の実施形態が上述されたが、これらの実施形態は、例えば1つの実施形態のみが特定の機能に関し説明されていたとしても、本開示の範囲を限定することを意図しているわけではない。本開示において提供される機能の例は、そうでないとの記載がない限り、限定的ではなく例示的であることを意図している。上記説明は、本開示の利点を有する当業者にとって明らかであろう代替例、変更及び均等物をカバーすることを意図する。
本開示の範囲は、それが本明細書において対処される問題の何れか又は全てを軽減するか否かにかかかわらず、(明示又は暗示の何れかによって)本明細書に開示された任意の機能若しくは機能の組み合わせ、又は、その任意の一般化を含む。従って、新たな請求項が、本願(又はその優先権を主張する出願)の係属中に、任意のそのような機能の組み合わせに定式化され得る。特に、添付の請求項に関し、従属請求項からの機能は、独立請求項の機能と組み合わせることができ、それぞれの独立請求項からの機能は、任意の適切な手法において組み合わせることができ、添付の請求項において列挙される特定の組み合わせにおけるものだけではない。

Claims (18)

  1. 通信チャネルを介して通信するように構成された処理要素を備え、
    前記処理要素は、第1のフォーマットのペイロードデータであって、前記通信チャネルを介して通信するように構成されたデバイスに向けられたペイロードデータをプロセッサから受信したことに応じて、
    データフォーマット変換アルゴリズムを用いて前記ペイロードデータを前記第1のフォーマットから第2のフォーマットに変換することを含む1つ以上の特定の処理アルゴリズムに従って、前記受信したペイロードデータを変更し、
    前記デバイスに向けられた1つ以上のパケットであって、前記変更されたペイロードデータと、前記ペイロードデータを変更するのに用いられる、前記データフォーマット変換アルゴリズムを含む前記1つ以上の特定の処理アルゴリズムを示す情報と、を含む1つ以上のパケットを作成し、
    前記1つ以上のパケットを、前記通信チャネルを介して前記デバイスに送信する、
    ように構成されており、
    前記1つ以上の特定の処理アルゴリズムを示す情報が、前記1つ以上のパケットのプレフィックス、前記1つ以上のパケットのヘッダー、又は、これらの両方に含まれている、装置。
  2. 前記デバイスは、前記変更されたペイロードデータを前記ペイロードデータの原形に戻すように、前記変更されたペイロードデータに対する動作を実行するように構成されている、請求項1に記載の装置。
  3. 前記1つ以上の特定の処理アルゴリズムは、損失のない圧縮アルゴリズムを含み、前記処理要素は、前記デバイスが、前記損失のない圧縮アルゴリズムに従ってデータを復元するように構成されているとの指標に基づいて、前記ペイロードデータを変更するように構成されている、請求項1に記載の装置。
  4. 前記1つ以上の特定の処理アルゴリズムは、暗号化アルゴリズムを含み、前記処理要素は、暗号化ポリシーに基づいて前記ペイロードデータを暗号化するように構成されている、請求項1に記載の装置。
  5. 前記処理要素は、前記受信したペイロードデータに対応するエラーチェックコードを作成するように構成されており、前記エラーチェックコードは、前記ペイロードデータを変更することが誤りなく実行されたか否かを決定するために前記デバイスによって使用可能である、請求項1に記載の装置。
  6. 前記1つ以上のパケットに対応するパケットプレフィックスは、前記1つ以上の特定の処理アルゴリズムを示す情報を含む、請求項1に記載の装置。
  7. 前記装置は、1つ以上のコンピュータ可読記憶媒体にアクセスすることによって前記ペイロードデータを受信するように構成された周辺デバイスである、請求項1に記載の装置。
  8. 前記装置は、第1の通信プロトコルに従って、前記通信チャネルにわたってパケットを送信及び受信するように構成された通信チャネルコントローラである、請求項1に記載の装置。
  9. 前記処理要素の少なくとも一部は、プログラム可能なハードウェアを含み、
    前記プログラム可能なハードウェアは、複数のデータフォーマット変換アルゴリズムのための論理を含む、請求項8に記載の装置。
  10. コンピューティングデバイスのプロセッサによって実行可能な命令が記憶されたコンピュータ可読記憶媒体であって、前記命令は、前記コンピューティングデバイスに、
    前記コンピューティングデバイスの通信チャネルを介して第1のフォーマットのアプリケーションデータを周辺デバイスに転送するための要求を受信することであって、前記通信チャネルは、第1の通信プロトコルに従ってパケットを転送するように構成されていることと、
    前記アプリケーションデータを転送するための要求に応じて、
    前記アプリケーションデータを、第1のファイルフォーマットから第2のファイルフォーマットに変換するように構成されたデータフォーマット変換アルゴリズムを含む特定のアルゴリズムに従って変更することと、
    前記変更されたアプリケーションデータを、1つ以上のパケットで、前記通信チャネルを介して前記周辺デバイスに送信することであって、前記1つ以上のパケットは、前記第1の通信プロトコルと互換性があり、前記特定のアルゴリズムを示す情報が、前記1つ以上のパケットのプレフィックス、前記1つ以上のパケットのヘッダー、又は、これらの両方に含まれている、ことと、
    を備える動作を実行させる、コンピュータ可読記憶媒体。
  11. 前記動作は、前記特定のアルゴリズムに従って前記アプリケーションデータを変更するように構成されたコントローラに、前記アプリケーションデータを送信することを備える、請求項10に記載のコンピュータ可読記憶媒体。
  12. 前記動作は、前記特定のアルゴリズムを示す情報を、前記コントローラに送信することを備える、請求項11に記載のコンピュータ可読記憶媒体。
  13. 前記アプリケーションデータを前記コントローラに送信することは、前記アプリケーションデータの少なくとも一部が記憶されているメモリロケーションの指標を送信することを備える、請求項11に記載のコンピュータ可読記憶媒体。
  14. 前記特定のアルゴリズムは損失のない圧縮アルゴリズムであり、前記第1の通信プロトコルはPCI−エクスプレスである、請求項10に記載のコンピュータ可読記憶媒体。
  15. 処理要素が、前記処理要素に結合された通信チャネルに結合されたデバイスが、第1のファイルフォーマットから第2のファイルフォーマットに変換するように構成されたデータフォーマット変換アルゴリズムを含む1つ以上の特定の処理アルゴリズムに従って変更された、受信したペイロードデータに対して、1つ以上の特定の動作を行うように構成されていることを示す情報を受信したことと、前記デバイスに向けられたデータを受信したことと、に応じて、
    変更されたペイロードデータを含む1つ以上のデータパケットを作成することであって、前記変更されたペイロードデータは、前記1つ以上の特定の処理アルゴリズムに従って前記受信したデータを処理した結果であり、前記1つ以上のパケットは前記デバイスに向けられていることと、
    前記1つ以上のパケットと、前記データフォーマット変換アルゴリズムを含む前記1つ以上の特定の処理アルゴリズムを示す情報とを、前記通信チャネルを介して前記デバイスに送信することであって、前記1つ以上の特定の処理アルゴリズムを示す情報が、前記1つ以上のパケットのプレフィックス、前記1つ以上のパケットのヘッダー、又は、これらの両方に含まれている、ことと、
    を備える、方法。
  16. 前記1つ以上の特定の処理アルゴリズムは暗号化アルゴリズムを含み、前記方法は、暗号化ポリシーに基づいて前記ペイロードデータを変更することを備える、請求項15に記載の方法。
  17. 集積回路を製造するための処理の一部を実行するためにコンピュータシステム上で実行可能なプログラムによって使用可能なデータ構造を備える非一時的なコンピュータ可読記憶媒体であって、前記集積回路は、前記データ構造によって記述された回路素子を含み、前記データ構造において記述された前記回路素子は、
    通信チャネルに結合するように構成された処理要素を含み、
    前記処理要素は、第1のフォーマットのペイロードデータであって、前記通信チャネルを介して通信するように構成されたデバイスに向けられたペイロードデータをプロセッサから受信したことに応じて、
    データフォーマット変換アルゴリズムを用いて前記ペイロードデータを前記第1のフォーマットから第2のフォーマットに変換することを含む1つ以上の特定の処理アルゴリズムに従って、前記受信したペイロードデータを変更し、
    前記デバイスに向けられた1つ以上のパケットであって、前記変更されたペイロードデータと、前記ペイロードデータを変更するのに用いられる、前記データフォーマット変換アルゴリズムを含む前記1つ以上の特定の処理アルゴリズムを示す情報と、を含む1つ以上のパケットを作成し、
    前記1つ以上のパケットを、前記通信チャネルを介して前記デバイスに送信する、
    ように構成されており、
    前記1つ以上の特定の処理アルゴリズムを示す情報が、前記1つ以上のパケットのプレフィックス、前記1つ以上のパケットのヘッダー、又は、これらの両方に含まれている、非一時的なコンピュータ可読記憶媒体。
  18. 前記記憶媒体は、HDL、ヴェリログ又はGDSIIデータのうち少なくとも1つを記憶する、請求項17に記載の非一時的なコンピュータ可読記憶媒体。
JP2014527442A 2011-08-29 2012-08-28 デバイス通信チャネルパケットのためのデータ変更 Active JP6046140B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/220,326 2011-08-29
US13/220,326 US8832331B2 (en) 2011-08-29 2011-08-29 Data modification for device communication channel packets
PCT/CA2012/000786 WO2013029151A1 (en) 2011-08-29 2012-08-28 Data modification for device communication channel packets

Publications (3)

Publication Number Publication Date
JP2014529807A JP2014529807A (ja) 2014-11-13
JP2014529807A5 JP2014529807A5 (ja) 2015-10-01
JP6046140B2 true JP6046140B2 (ja) 2016-12-14

Family

ID=47745325

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014527442A Active JP6046140B2 (ja) 2011-08-29 2012-08-28 デバイス通信チャネルパケットのためのデータ変更

Country Status (6)

Country Link
US (1) US8832331B2 (ja)
EP (1) EP2751961A4 (ja)
JP (1) JP6046140B2 (ja)
KR (1) KR101875100B1 (ja)
CN (1) CN103765853A (ja)
WO (1) WO2013029151A1 (ja)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9564920B2 (en) * 2012-02-23 2017-02-07 Qualcomm Incorporated Method and apparatus for mitigation of false packet decodes due to early decoding
EP2909769A4 (en) * 2012-10-16 2016-03-23 Truedata Systems Inc SECURE COMMUNICATION ARCHITECTURE
WO2014155762A1 (ja) * 2013-03-25 2014-10-02 日本電気通信システム株式会社 送信機において実行されるプログラム、受信機および受信機において実行されるプログラム
CN103281183B (zh) * 2013-04-27 2016-04-13 天地融科技股份有限公司 转换装置和显示系统
US10049026B2 (en) * 2013-12-18 2018-08-14 Qorvo Us, Inc. Group write technique for a bus interface system
US10579580B2 (en) 2013-12-18 2020-03-03 Qorvo Us, Inc. Start of sequence detection for one wire bus
US10185683B2 (en) 2013-12-18 2019-01-22 Qorvo Us, Inc. Bus interface system
US10528502B2 (en) 2013-12-18 2020-01-07 Qorvo Us, Inc. Power management system for a bus interface system
US10282269B2 (en) 2013-12-18 2019-05-07 Qorvo Us, Inc. Read technique for a bus interface system
US10540226B2 (en) * 2013-12-18 2020-01-21 Qorvo Us, Inc. Write technique for a bus interface system
US9605706B2 (en) 2014-05-07 2017-03-28 Sungwoo Hitech Co., Ltd. Rivet nut unit and mounting method thereof
US20150349919A1 (en) * 2014-05-29 2015-12-03 Nordic Semiconductor Asa Radio data packets
US9733847B2 (en) * 2014-06-02 2017-08-15 Micron Technology, Inc. Systems and methods for transmitting packets in a scalable memory system protocol
US9830289B2 (en) 2014-09-16 2017-11-28 Apple Inc. Methods and apparatus for aggregating packet transfer over a virtual bus interface
GB2526636B (en) * 2014-09-19 2016-10-26 Gurulogic Microsystems Oy Encoder, decoder and methods employing partial data encryption
US9971397B2 (en) 2014-10-08 2018-05-15 Apple Inc. Methods and apparatus for managing power with an inter-processor communication link between independently operable processors
US10042794B2 (en) 2015-06-12 2018-08-07 Apple Inc. Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
US20170034184A1 (en) * 2015-07-31 2017-02-02 International Business Machines Corporation Proxying data access requests
US9898483B2 (en) * 2015-08-10 2018-02-20 American Express Travel Related Services Company, Inc. Systems, methods, and apparatuses for creating a shared file system between a mainframe and distributed systems
US10085214B2 (en) 2016-01-27 2018-09-25 Apple Inc. Apparatus and methods for wake-limiting with an inter-device communication link
US10157153B2 (en) 2016-02-03 2018-12-18 Qualcomm Incorporated Inline cryptographic engine (ICE) for peripheral component interconnect express (PCIe) systems
US10572390B2 (en) 2016-02-29 2020-02-25 Apple Inc. Methods and apparatus for loading firmware on demand
US10579128B2 (en) 2016-03-01 2020-03-03 Qorvo Us, Inc. Switching power supply for subus slaves
US10198384B2 (en) * 2016-03-01 2019-02-05 Qorvo Us, Inc. One wire bus to RFFE translation system
US10437772B2 (en) 2016-03-24 2019-10-08 Qorvo Us, Inc. Addressing of slave devices on a single wire communications bus through register map address selection
US10176130B2 (en) 2016-03-30 2019-01-08 Qorvo Us, Inc. Slave device identification on a single wire communications bus
US10191859B2 (en) 2016-03-31 2019-01-29 Apple Inc. Memory access protection apparatus and methods for memory mapped access between independently operable processors
US10551902B2 (en) 2016-11-10 2020-02-04 Apple Inc. Methods and apparatus for providing access to peripheral sub-system registers
US10775871B2 (en) 2016-11-10 2020-09-15 Apple Inc. Methods and apparatus for providing individualized power control for peripheral sub-systems
EP3365884B1 (en) * 2016-11-14 2019-10-09 Istanbul Teknik Universitesi An efficient encryption method to secure data with reduced number of encryption operations
US10558607B2 (en) 2017-02-01 2020-02-11 Qorvo Us, Inc. Bus interface system for power extraction
US10346226B2 (en) 2017-08-07 2019-07-09 Time Warner Cable Enterprises Llc Methods and apparatus for transmitting time sensitive data over a tunneled bus interface
US10331612B1 (en) * 2018-01-09 2019-06-25 Apple Inc. Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors
US11381514B2 (en) 2018-05-07 2022-07-05 Apple Inc. Methods and apparatus for early delivery of data link layer packets
US10430352B1 (en) 2018-05-18 2019-10-01 Apple Inc. Methods and apparatus for reduced overhead data transfer with a shared ring buffer
US10585699B2 (en) 2018-07-30 2020-03-10 Apple Inc. Methods and apparatus for verifying completion of groups of data transactions between processors
US10719376B2 (en) 2018-08-24 2020-07-21 Apple Inc. Methods and apparatus for multiplexing data flows via a single data structure
US20200089645A1 (en) * 2018-09-14 2020-03-19 Qualcomm Incorporated Security techniques for a peripheral component interconnect (pci) express (pcie) system
US10789110B2 (en) 2018-09-28 2020-09-29 Apple Inc. Methods and apparatus for correcting out-of-order data transactions between processors
US10838450B2 (en) 2018-09-28 2020-11-17 Apple Inc. Methods and apparatus for synchronization of time between independently operable processors
KR102161805B1 (ko) * 2018-11-23 2020-10-05 (주)성일이노텍 사물인터넷 게이트웨이 및 이의 동작 방법
US10599601B1 (en) 2019-01-16 2020-03-24 Qorvo Us, Inc. Single-wire bus (SuBUS) slave circuit and related apparatus
US11119958B2 (en) 2019-04-18 2021-09-14 Qorvo Us, Inc. Hybrid bus apparatus
US11226924B2 (en) 2019-04-24 2022-01-18 Qorvo Us, Inc. Single-wire bus apparatus supporting slave-initiated operation in a master circuit
US10983942B1 (en) 2019-12-11 2021-04-20 Qorvo Us, Inc. Multi-master hybrid bus apparatus
US11687548B2 (en) 2020-02-28 2023-06-27 Clumio, Inc. Storage of backup data using a time-series data lake
CN117527499A (zh) * 2020-09-22 2024-02-06 展讯通信(上海)有限公司 一种符号应用方法及通信装置
US11409677B2 (en) 2020-11-11 2022-08-09 Qorvo Us, Inc. Bus slave circuit and related single-wire bus apparatus
US11489695B2 (en) 2020-11-24 2022-11-01 Qorvo Us, Inc. Full-duplex communications over a single-wire bus
US12092689B2 (en) 2021-12-08 2024-09-17 Qorvo Us, Inc. Scan test in a single-wire bus circuit
US11706048B1 (en) 2021-12-16 2023-07-18 Qorvo Us, Inc. Multi-protocol bus circuit
WO2023215960A1 (en) * 2022-05-09 2023-11-16 Eidetic Communications Inc. System and method for performing data processing

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974471A (en) * 1996-07-19 1999-10-26 Advanced Micro Devices, Inc. Computer system having distributed compression and decompression logic for compressed data movement
US5946467A (en) * 1996-09-20 1999-08-31 Novell, Inc. Application-level, persistent packeting apparatus and method
JPH10224424A (ja) * 1997-02-12 1998-08-21 Matsushita Electric Ind Co Ltd データ送信装置、データ受信装置、及び媒体
US6061794A (en) * 1997-09-30 2000-05-09 Compaq Computer Corp. System and method for performing secure device communications in a peer-to-peer bus architecture
US7457897B1 (en) 2004-03-17 2008-11-25 Suoer Talent Electronics, Inc. PCI express-compatible controller and interface for flash memory
JP2001285399A (ja) * 2000-04-03 2001-10-12 Matsushita Electric Ind Co Ltd データ通信システム
US6922785B1 (en) * 2000-05-11 2005-07-26 International Business Machines Corporation Apparatus and a method for secure communications for network computers
KR100620628B1 (ko) * 2000-12-30 2006-09-13 주식회사 비즈모델라인 무선 통신 장치를 이용한 홍채인식시스템 및홍채인증시스템
DE10163310B4 (de) 2001-12-21 2005-12-15 Infineon Technologies Ag Verfahren und Router zur Multiprotokoll-Übertragung
US7965843B1 (en) 2001-12-27 2011-06-21 Cisco Technology, Inc. Methods and apparatus for security over fibre channel
JP4447197B2 (ja) * 2002-01-07 2010-04-07 三菱電機株式会社 動画像符号化装置および動画像復号装置
US7290134B2 (en) 2002-12-31 2007-10-30 Broadcom Corporation Encapsulation mechanism for packet processing
US7333612B2 (en) * 2004-03-19 2008-02-19 Cisco Technology, Inc. Methods and apparatus for confidentiality protection for Fibre Channel Common Transport
US7255659B2 (en) * 2004-08-21 2007-08-14 Brandon Chad Jones Formulation for blood clot inhibitor for use with bow hunting broadheads and method for using same
JP2008521326A (ja) 2004-11-18 2008-06-19 エヌエックスピー ビー ヴィ Pciエクスプレスバスにおけるパフォーマンスベースのパケット順序付け
US7765357B2 (en) 2005-03-24 2010-07-27 Fujitsu Limited PCI-express communications system
US7710969B2 (en) 2005-05-13 2010-05-04 Texas Instruments Incorporated Rapid I/O traffic system
JP4629775B2 (ja) 2005-06-21 2011-02-09 エヌエックスピー ビー ヴィ PCIExpressデバイスのデータ完全性の並列検査方法
CA2514039A1 (en) 2005-07-28 2007-01-28 Third Brigade Inc. Tcp normalization engine
TWI290284B (en) 2005-10-13 2007-11-21 Via Tech Inc Method and electronic device of packet error detection on PCI express bus link
US7957294B2 (en) 2005-12-01 2011-06-07 Electronics And Telecommunications Research Institute PCI express packet filter including descrambler
JP4670676B2 (ja) 2006-02-17 2011-04-13 日本電気株式会社 スイッチ及びネットワークブリッジ装置
JP2007300370A (ja) * 2006-04-28 2007-11-15 Toshiba Corp 情報処理装置及びその制御方法
US20070255659A1 (en) * 2006-05-01 2007-11-01 Wei Yen System and method for DRM translation
JP2008010956A (ja) * 2006-06-27 2008-01-17 Toshiba Corp 情報処理装置及びその制御方法
US20090003335A1 (en) * 2007-06-29 2009-01-01 International Business Machines Corporation Device, System and Method of Fragmentation of PCI Express Packets
US7702827B2 (en) 2007-06-29 2010-04-20 International Business Machines Corporation System and method for a credit based flow device that utilizes PCI express packets having modified headers wherein ID fields includes non-ID data
US20100011146A1 (en) 2008-07-11 2010-01-14 Lsi Corporation Conveying Information With a PCI Express Tag Field
US9213662B2 (en) 2008-11-13 2015-12-15 Nec Corporation I/O bus system
KR101021914B1 (ko) * 2008-12-18 2011-03-18 재단법인대구경북과학기술원 플렉스레이 통신 전송/수신 방법 및 장치
US20100169892A1 (en) * 2008-12-29 2010-07-01 Advanced Micro Devices, Inc. Processing Acceleration on Multi-Core Processor Platforms
JP5267943B2 (ja) 2009-03-30 2013-08-21 日本電気株式会社 PCI−Express通信システム、及びPCI−Express通信方法
JP5374268B2 (ja) 2009-07-28 2013-12-25 ラピスセミコンダクタ株式会社 情報処理装置
US9767070B2 (en) * 2009-11-06 2017-09-19 Hewlett Packard Enterprise Development Lp Storage system with a memory blade that generates a computational result for a storage device
KR101283482B1 (ko) 2009-12-11 2013-07-12 한국전자통신연구원 Pci 익스프레스 프로토콜 처리 장치

Also Published As

Publication number Publication date
US8832331B2 (en) 2014-09-09
KR20140054345A (ko) 2014-05-08
JP2014529807A (ja) 2014-11-13
EP2751961A1 (en) 2014-07-09
US20130054850A1 (en) 2013-02-28
CN103765853A (zh) 2014-04-30
EP2751961A4 (en) 2015-04-29
KR101875100B1 (ko) 2018-07-06
WO2013029151A1 (en) 2013-03-07

Similar Documents

Publication Publication Date Title
JP6046140B2 (ja) デバイス通信チャネルパケットのためのデータ変更
EP3779762B1 (en) Secure communications over computer buses
US10868743B2 (en) System and method for providing fast platform telemetry data
US8001278B2 (en) Network packet payload compression
US9558146B2 (en) IWARP RDMA read extensions
US9594718B2 (en) Hardware accelerated communications over a chip-to-chip interface
CN112612734B (zh) 文件传输方法、装置、计算机设备及存储介质
CN105740195B (zh) Or链式总线的增强数据总线反转编码的方法和装置
WO2017114091A1 (zh) 一种nas数据访问的方法、系统及相关设备
TW202242693A (zh) 用於總儲存加密之系統、方法及設備
WO2019129167A1 (zh) 一种处理数据报文的方法和网卡
JP2008197578A (ja) データ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ転送制御装置
US11201838B2 (en) System, apparatus and method for increasing efficiency of link communications
CN101827072A (zh) 虚拟内存协议分段卸载
EP3270322B1 (en) Encrypting system level data structures
WO2022143536A1 (zh) 基于APSoC的国密计算方法、系统、设备及介质
US11818235B1 (en) Systems, devices and methods for hardware accelerated universal routing interface
NL2029742A (en) Stream routing and ide enhancements for pcie
US20240128982A1 (en) Hardware acceleration of data reduction operations
TWI637267B (zh) 具近資料端處理引擎的晶片組
US20240113728A1 (en) System and method for data compaction and security with extended functionality
CN116529721A (zh) 按需可编程原子内核加载
WO2019233118A1 (zh) 一种数据处理装置及方法
JP2010147572A (ja) 情報処理装置、情報処理プログラム、及び情報通信システム
KR20230063170A (ko) 스토리지 컨트롤러를 포함하는 스토리지 장치 및 이의 동작 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150812

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150812

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20150812

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20150901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160824

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161116

R150 Certificate of patent or registration of utility model

Ref document number: 6046140

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250