JP5646125B1 - サービスとしての集積回路 - Google Patents

サービスとしての集積回路 Download PDF

Info

Publication number
JP5646125B1
JP5646125B1 JP2014542293A JP2014542293A JP5646125B1 JP 5646125 B1 JP5646125 B1 JP 5646125B1 JP 2014542293 A JP2014542293 A JP 2014542293A JP 2014542293 A JP2014542293 A JP 2014542293A JP 5646125 B1 JP5646125 B1 JP 5646125B1
Authority
JP
Japan
Prior art keywords
fpga
user
programmable
management
design package
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014542293A
Other languages
English (en)
Other versions
JP2015507234A (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.)
Empire Technology Development LLC
Original Assignee
Empire Technology Development LLC
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 Empire Technology Development LLC filed Critical Empire Technology Development LLC
Application granted granted Critical
Publication of JP5646125B1 publication Critical patent/JP5646125B1/ja
Publication of JP2015507234A publication Critical patent/JP2015507234A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

サービスとしてのFPGAへのアクセスを提供し、かつ管理するための技術が概略的に述べられる。いくつかの例では、共用のFPGA使用のためのプロビジョニング管理、およびユーザ仕様にプログラムされたFPGAにユーザのプロセスがアクセスできるようにするためのアクセス制御を可能にするシステムは、データセンタサーバと通信するFPGAに向けてコンパイルするためのユーザパッケージを受け入れることができる。ユーザパッケージは、付加された管理ペイロードと共にFPGAにイメージコピーすることができ、またドライバおよびユーザキーを使用して、データセンタ仮想マシンに対して、サービスとしてのFPGAへの選択的なアクセスを可能にすることができる。併せて、これらの要素は、データセンタが、レンタル可能なサービスとしての集積回路(ICaaS)を提供できるようにする。請求追跡、プロビジョン管理、およびアクセス制御などのさらなるサービスをユーザに提供することができ、低コストを実現できるようにする一方で、データセンタには、大きな利益が実現される。

Description

本明細書で別段の指示がない限り、このセクションで述べられる内容は、本出願における特許請求の範囲に対する従来技術ではなく、またこのセクションに含めることによって従来技術であるとは認められないものとする。
フィールドプログラマブルゲートアレイ(FPGA)は、特定用途向けハードウェアを提供するためにハードウェアレベルで繰り返し再構成することができるゲートの大規模なプログラム可能なアレイである。FPGAシステムは、特にデータセンタの業務でますます一般的になっているデータベースのソートまたは経営分析などの大量のデータ機能を実施するものに対して、効果的で、スループット当たり低価格な解決策を提供することができる。例えば、金融機関、保険会社、および他のビジネスエンティティに対するリスク管理計算は、大量のコンピューティング資源を消費する可能性があるが、それは、汎用のコンピューティングシステムに代えてFPGAを使用することにより低減することができる。
FPGAを使用することにより、計算コストが低減され、かつ効率が増加されうるが、より小規模の業務にとって初期投資が非常に大きくなるおそれがある。より大きな組織体の場合であっても、FPGAベースのシステムは、フルタイムで利用されない可能性があり、全体的な効率と投資価値を低下させることになる。同様の例は、データセンタの業務を含む。データ記憶装置、サーバ、ファイアウォール、および他の特殊な機器を備えた包括的なデータセンタは、多くの必要なデータストレージ、アクセス可能性、およびセキュリティを提供することができる。しかし、大規模なデータセンタを構築するのを正当化できる必要性を有する潜在的ユーザの数はむしろ限られている。またこのような潜在的ユーザであっても、大規模なデータセンタの機能をいつも十分に使用しない可能性がある。
したがって、大規模なデータ業務において、FPGAベース技術の効率および費用効果は高く評価されるが、広範囲にわたるユーザに対するその有効性は、初期投資および運用維持の問題を考慮すると、限られたものとなる。
本開示は、概して、データセンタ仮想マシンに対するサービスとしてのフィールドプログラマブルゲートアレイ(FPGA)などプログラム可能な集積回路に対して選択的なアクセスを可能にする技術を述べる。いくつかの例によれば、サービスとしてプログラム可能な集積回路(IC)を提供するための方法は、データセンタで、プログラム可能な集積回路設計パッケージを受け取ること、IC設計パッケージに管理ペイロードを付加すること、IC設計パッケージに関連付けられた、管理ペイロードに適合するユーザキーを作成すること、およびユーザキーを用いて、1つまたは複数の仮想マシンを介してプログラム可能なICへの選択的なアクセスを提供することを含むことができる。
他の例によれば、サービスとしてプログラム可能な集積回路(IC)を提供するデータセンタは、管理サーバを含むことができ、管理サーバは、データセンタで、プログラム可能な集積回路設計パッケージを受け取り、IC設計パッケージに管理ペイロードを付加し、IC設計パッケージに関連付けられた、管理ペイロードに適合するユーザキーを作成し、かつユーザキーを用いて、1つまたは複数の仮想マシンを介してプログラム可能なICへの選択的なアクセスを提供することができる。
他の例によれば、コンピュータ可読記憶媒体は、サービスとしてプログラム可能な集積回路(IC)を提供するための記憶した命令を含むことができる。命令は、データセンタで、プログラム可能な集積回路設計パッケージを受け取ること、IC設計パッケージに管理ペイロードを付加すること、IC設計パッケージに関連付けられた、管理ペイロードに適合するユーザキーを作成すること、およびユーザキーを用いて、1つまたは複数の仮想マシンを介してプログラム可能なICへの選択的アクセスを提供することを含むことができる。
前述の要約は、例示的なものに過ぎず、何らかの意味で限定することを意図していない。上記で述べた例示的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴が、図面および以下の詳細な記述を参照すれば明らかになろう。
本開示の前述のおよび他の特徴は、添付の図面と併せて以下の記述および添付の特許請求の範囲からより完全に明らかになろう。これらの図面は、本開示によるいくつかの実施形態を示しているに過ぎないこと、したがって、その範囲を限定するものと見なされるべきではないことを理解した上で、本開示は、添付の図面を使用することにより、さらなる特殊性および詳細を用いて述べるものとする。
サービスとして使用できる例示的なフィールドプログラマブルゲートアレイの構造を示す図である。 サービスとしての集積回路(IC)を提供するためのシステムを概念的に示す図である。 サービスとしてのICを提供するシステムの主要コンポーネント間の対話を示す図である。 サービスとしてのICを提供するシステムを管理するために使用できる汎用コンピューティングデバイスを示す図である。 図4のデバイスなどのコンピューティングデバイスにより行うことができるサービスとしてのICを提供するための例示的な方法を示す流れ図である。 本明細書で述べた少なくともいくつかの実施形態に従ってすべて構成された、例示的なコンピュータプログラム製品のブロック図である。
以下の詳細な説明では、その一部を形成する添付図面に対して参照が行われる。図面中、文脈がその他の形を規定しない限り、同様の記号は、通常、同様のコンポーネントを識別する。詳細な説明、図面、および特許請求の範囲で述べられる例示的な実施形態は、限定することを意味していない。本明細書で提示される主題の趣旨または範囲から逸脱することなく、他の実施形態を使用することができ、かつ他の変更を行うことができる。本明細書で概略的に述べられ、かつ図で示された本開示の諸態様は、広範囲な様々な構成で配置され、置換され、組み合わされ、分離され、かつ設計されうるが、そのすべてが、本明細書で明示的に企図されていることが容易に理解されよう。
本開示は、概して、サービスとしてのFPGAまたは他のプログラム可能な回路へのアクセスを提供し、かつ管理することに関連する特に方法、装置、システム、デバイス、および/またはコンピュータプログラム製品に関する。
簡単に述べると、共用のFPGA使用のためのプロビジョニング管理、およびユーザ仕様にプログラムされたFPGAにユーザのプロセスがアクセスできるようにするためのアクセス制御を可能にするシステムは、データセンタサーバと通信するFPGAに向けてコンパイルするためのユーザパッケージを受け入れることができる。ユーザパッケージは、付加された管理ペイロードと共にFPGAにイメージコピーする(image)ことができ、またドライバおよびユーザキーを使用して、データセンタ仮想マシンに対するサービスとしてのFPGAへの選択的なアクセスを可能にすることができる。併せて、これらの要素は、データセンタが、レンタルできるサービスとしての集積回路(ICaaS:integrated circuits as a service)を提供できるようにする。請求追跡、プロビジョン管理、およびアクセス制御などのさらなるサービスをユーザに提供することが可能となり低コストを実現できるようになる一方で、データセンタにはより大きな利益が実現される。
図1は、本明細書で述べる少なくともいくつかの実施形態により構成された、サービスとして使用できる例示的なフィールドプログラマブルゲートアレイの構造を示している。
フィールドプログラマブルゲートアレイ(FPGA)100は、製作後に構成される(フィールドでプログラム可能な)ように設計された集積回路である。FPGAは、任意の論理関数を実施するために使用することができ、その構成は、一般にハードウェア記述言語(HDL)を用いて指定することができる。
図1で示すFPGA100などのFPGAは、構成可能な論理ブロック110と呼ばれるプログラム可能な論理コンポーネントと、ブロックを数多くの様々な構成で論理ゲートに接続できるようにする再構成可能な相互接続106の階層とを含むことができる。構成可能な論理ブロック110は、複雑な組合せ関数、または単にANDおよびXORなどの簡単な論理ゲートを行うように構成することができる。いくつかのFPGAでは、構成可能な論理ブロック110は、いくつかのスライス112を含むことができ、各スライスは、1つまたは複数の論理セル114(例えば、論理ゲートなど)を含む。構成可能な論理ブロック110はまた、メモリ要素を含むことができ、それは、簡単なフリップフロップ、またはメモリのより完全なブロックとすることができる。
FPGA100は、デジタルおよび/またはアナログ機能を有することができる。アナログ機能の例は、差動シグナリングチャンネルに接続されるように設計された入力ピン102に対する差動比較器を含む。したがって、FPGAの基本的な構造は、アレイベースであり、各集積回路は、水平および垂直のルーティングチャンネルを介して相互に接続されうる構成可能なブロック110の2次元アレイを備える。入力ピン102は、典型的なFPGA設計では、入力バッファ104を介して論理ブロックに入力を提供することができる。
図2は、本明細書で述べる少なくともいくつかの実施形態により構成された、サービスとしての集積回路(IC)を提供するためのシステムを概念的に示している。
データセンタは、データおよび情報の記憶、管理、処理、および配布のための中心化されたリポジトリである。データセンタは、組織体の施設内に存在することができるが、あるいは特殊化された施設として維持することができる。いくつかのデータセンタは、サーバ活動、ウェブトラフィック、管理データ、およびネットワーク性能を監視する自動化
されたシステムを含むネットワークオペレーションセンタ(NOC)と同義とすることができる。他のデータセンタは、収集データを管理すること、および解析もしくは同様の計算などのデータ関連サービスを提供することに専用化することもできる。データセンタは、通常、物理的なエンティティ(例えば、サーバルーム、サーバファームなど)に関連付けられるが、データセンタは、仮想データセンタ(VDC)としても同様に構成することができ、その場合、管理されたデータは、仮想サーバおよびデータ記憶装置により、サイズ、所有者、または他の態様に基づいてコンパートメント化される。
いくつかの実施形態によるシステムは、データセンタサーバと通信するFPGAに向けてコンパイルするためのユーザパッケージを受け入れることにより、サービスとしての共用FPGA使用のためのプロビジョニング管理を可能にし、かつユーザ仕様にプログラムされたFPGAにユーザのプロセスがアクセスできるようにするアクセス制御を可能にする。管理ペイロードをユーザパッケージに追加することができ、またドライバおよびユーザキーを用いて、データセンタ仮想マシンを介してサービスとしてのFPGAへの選択的かつ管理されたアクセスを可能にする。
図2の図表200を参照すると、データセンタ226は、データを記憶し、かつユーザ222などの複数のユーザ(クライアント)に対して1つまたは複数のFPGA244への共用アクセスなどのサービスを提供することができる。ユーザ222は、1つまたは複数のネットワーク246を介してデータセンタ226と対話することができる(例えば、クラウドベースの対話)。請求追跡228、プロビジョン管理230、およびアクセス制御232などのさらなるサービスに関して、データセンタ226は、統合された、または別個のアプリケーションもしくはモジュールを使用することができ、それは、個々のサーバ上で実行することができるが、またはいくつかのサーバにわたり分散させることもできる。
例えば、ユーザ222から設計パッケージ224を受け取ると、データセンタ226は、識別、追跡、請求、および/または互換性のために、コンパイルする前に管理ペイロードをユーザ設計パッケージに付加することができる。管理ペイロード234に適合するユーザキー238もまた作成することができ、ユーザ222が、1つまたは複数のFPGA244を管理するコントローラ242と通信する仮想マシンおよび/または準仮想化ドライバを開始できるようにする。FPGA設計236および管理ペイロード234と共にアップロードされたデータはまた、ユーザ仕様のハードウェアアクセラレータ240を含むことができる。
図3は、本明細書で述べる少なくともいくつかの実施形態により構成された、サービスとしてのICを提供するシステムの主要コンポーネント間の対話を示している。
図3の図表300で示された例示的なシナリオによれば、ユーザ322は、FPGA設計336をサービスとしての集積回路(ICaaS)マネジャ356に送達する。ICaaSマネジャ356は、FPGAへのアクセスをユーザに有効にレンタルするデータセンタの1つまたは複数のアプリケーションもしくはサービスとすることができる。ICaaSマネジャ356は、FPGA設計336に管理ペイロード334を付加することができる。管理ペイロード334は、ユーザ識別を保証し、かつ請求およびプロビジョニングのために望ましい適切なメトリック(複数可)を用いて、FPGAモジュールの使用量を追跡するために、メッセージインターフェースを管理することができる。例えば、展開された時間および消費電力の組合せを、請求メトリックとして使用することができる。ICaaSマネジャ356はまた、管理ペイロード334に適合できるICaaSユーザキー338を生成することができる。ユーザ322は、次いで、ICaaSユーザキー338のコピーを用いて、準仮想化ドライバ340を備えるデータセンタの仮想マシン352を開始することができ、したがって、ユーザの仮想マシンは、複数のFPGAを管理するFPGAボード354と通信することができ、かつユーザ仕様のアップロードされたハードウェアアクセラレータを使用することができる。仮想マシンおよび準仮想化ドライバ、ネットワーク接続、メッセージング、または他のFPGA相互接続手段は、データセンタにおける仮想マシンホスト350によりホストされうる。
ペイロードをFPGA中にイメージコピーすることは、コンパイルするステップを含む。ICaaSサービスを管理するために、管理ペイロード334は、コンパイルする前にペイロードに追加され、最終設計に存在する回路を有効に追加する。ペイロードは、コンパイル前レイヤに追加されるので、広くアクセスすることができるが、FPGAコンパイルのゲートレベルの性質のため、適正に設計された管理ペイロードは、データを損なうプログラム実行可能な空間も、混乱させる共同メモリ操作もないので、ユーザ設計機能と干渉する危険を冒すことはない。管理ペイロードは固定された数のゲートを消費し、それをユーザ322に利用可能な容量から除くことができる。
いくつかの例では、管理ペイロード334は、単に、コンパイルの後に全体のペイロードが開始されると直ちに時間を記録するクロックとすることができる。このようなクロックは、次いで、ユーザがFPGAの使用を終了したとき、管理メッセージに応じて、経過時間を報告することができる。他の例では、管理ペイロード334は、入力/出力I/Oポートに常駐し、フォーマットに従っていること、および/またはアクセスがICaaSユーザキー338を用いて行われていることを保証することができる。機能をハードウェアで実施することにより、このような監視任務に対するどんな潜在的な遅延も実質的に回避することができる。さらなる例では、管理ペイロード334は、請求のためにポートを監視することができる。例えば、FPGAが、ストレージバスに直接アクセスすることができる場合、バスを監視して、その活動を請求のために集計することができる。
準仮想化ドライバ340は、ハードウェアアクセスを仮想マシンへと抽象化するために使用することができる。いくつかの実施形態によるシステムでは、準仮想化ドライバ340は、例えば、FPGAボード354に接続されたPCIバスへの所有権が検証されたアクセスを提供することができる。いくつかの実施形態では、FPGAボード354は、ネットワークアクセスに対して、直接接続された仮想マシンを介するように要求することにより、セキュリティのために、ネットワークに直接接続されないようにする。他の実施形態では、FPGAボード354は、適切なセキュリティ手段を有するネットワークに直接接続することができる。例えば、データセンタは、信頼できる顧客または証明されたペイロードに対して、あるいは顧客が他のものに影響を与えることのできないハードウェアベースの仮想プライベートデータセンタ内で、直接アクセスを可能にすることを選択できる。
図1から図3における特定の例、コンポーネント、および構成を用いて、諸実施形態を上記で論じてきたが、それらは、サービスとしての集積回路を提供するために使用される概略的なガイドラインを提供するように意図されている。これらの例は、実施形態に対する限定を構成するものではなく、本明細書で述べた原理を使用し、他のコンポーネント、モジュール、および構成を用いて実施することができる。例えば、FPGAだけではなく、任意の適切な集積回路へのアクセスを、サービスとして提供することができる。他の例によれば、管理ペイロードを、FPGA(複数可)と、アクセスサービスを提供するデータセンタの残りの部分との間のファイアウォールで実施することができる。管理ペイロードを実施するファイアウォール、または任意の同等コンポーネントは、ハードウェア、ソフトウェア、またはその2つの組合せとして実現することができる。さらに、上記で論じたアクションは、様々な順序で、特に飛び越して行うことができる。
図4は、本明細書で述べる少なくともいくつかの実施形態に従って構成された、サービスとしてのICを提供するシステムを管理するために使用できる汎用コンピューティングデバイスを示している。非常に基本的な構成402では、コンピューティングデバイス400は、通常、1つまたは複数のプロセッサ404、およびシステムメモリ406を含む。メモリバス408は、プロセッサ404とシステムメモリ406の間を通信するために使用することができる。
望ましい構成に応じて、プロセッサ404は、これだけに限らないが、マイクロプロセッサ(μP)、マイクロコントローラ(μC)、デジタルシグナルプロセッサ(DSP)、またはそれらの任意の組合せを含む任意のタイプとすることができる。プロセッサ404は、レベルキャッシュメモリ412など、1つまたは複数レベルのキャッシング、プロセッサコア414、およびレジスタ416を含むことができる。例示的なプロセッサコア414は、論理演算装置(ALU)、浮動少数点演算ユニット(FPU)、デジタルシグナル処理コア(DSPコア)、またはそれらの任意の組合せを含むことができる。例示的なメモリコントローラ418はまた、プロセッサ404と共に使用することができるが、あるいはいくつかの実装形態では、メモリコントローラ418は、プロセッサ404の内側部分とすることができる。
望ましい構成に応じて、システムメモリ406は、これだけに限らないが、揮発性メモリ(RAMなど)、不揮発性メモリ(ROM、フラッシュメモリなど)、またはそれらの任意の組合せを含む任意のタイプとすることができる。システムメモリ406は、オペレーティングシステム420、1つまたは複数のアプリケーション422、およびプログラムデータ424を含むことができる。アプリケーション422は、データセンタ管理モジュール423、追加のサービスモジュール425、およびFPGA制御モジュール427を含むことができ、それは、共用のFPGA使用のためのプロビジョニング管理、およびユーザ仕様にプログラムされたFPGAにユーザのプロセスがアクセスできるようにするためのアクセス制御を可能にすることができ、本明細書で述べるデータセンタサーバと通信するFPGAに向けてコンパイルするためのユーザパッケージを受け取ることができる。プログラムデータ424は、データの中でも特に、クライアントにサービスとしての集積回路の使用を提供することに関連付けられた制御パラメータ428を含むことができる。ここで述べた基本構成402は、内側の破線内のコンポーネントにより図4で示されている。
コンピューティングデバイス400は、基本構成402と任意の必要なデバイスおよびインターフェースとの間の通信を容易にするためのさらなる特徴または機能、およびさらなるインターフェースを有することができる。例えば、バス/インターフェースコントローラ430は、ストレージインターフェースバス434を介して、基本構成402と、1つまたは複数のデータ記憶装置432との間の通信を容易にするために使用することができる。データ記憶装置432は、取外し式記憶装置436、非取外し式記憶装置438、またはそれらの組合せとすることができる。取外し式記憶装置および非取外し式記憶装置の例は、そのいくつかを挙げると、フレキシブルなディスクドライブおよびハードディスクドライブ(HDD)などの磁気ディスク装置、コンパクトディスク(CD)ドライブまたはデジタル多用途ディスク(DVD)ドライブなどの光ディスクドライブ、半導体ドライブ(SSD)、およびテープドライブを含む。例示的なコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなど、情報を記憶するための任意の方法または技術で実装される揮発性および不揮発性、取外し式および非取外し式媒体を含むことができる。
システムメモリ406、取外し式記憶装置436、および非取外し式記憶装置438は、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、これだけに限らないが、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気記憶装置、あるいは所望の情報を記憶するために使用でき、かつコンピューティングデバイス400がアクセスできる任意の他の媒体を含む。このようなコンピュータ記憶媒体はどれも、コンピューティングデバイス400の一部とすることができる。
コンピューティングデバイス400はまた、バス/インターフェースコントローラ430を介して、様々なインターフェースデバイス(例えば、出力装置442、周辺インターフェース444、および通信装置446)から、基本構成402への通信を容易にするためのインターフェースバス440を含むことができる。いくつかの例示的な出力装置442は、グラフィック処理ユニット448およびオーディオ処理ユニット450を含み、それは、1つまたは複数のA/Vポート452を介してディスプレイまたはスピーカなどの様々な外部装置に伝達するように構成することができる。例示的な周辺インターフェース444は、シリアルインターフェースコントローラ454またはパラレルインターフェースコントローラ456を含み、それは、1つまたは複数のI/Oポート458を介して、入力装置(例えば、キーボード、マウス、ペン、音声入力装置、タッチ入力装置など)または他の周辺装置(例えば、プリンタ、スキャナなど)などの外部装置と通信するように構成することができる。例示的な通信装置446は、ネットワークコントローラ460を含み、それは、1つまたは複数の通信ポート464を経由し、ネットワーク通信リンクを介して、1つまたは複数の他のコンピューティングデバイス462との通信を容易にするように構成することができる。
ネットワーク通信リンクは、通信媒体の一例とすることができる。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波もしくは他のトランスポート機構などの変調されたデータ信号における他のデータにより実施することができ、また任意の情報送達媒体を含むことができる。「変調されたデータ信号」とは、情報を信号中で符号化するようにその特性の1つまたは複数が設定または変更された信号とすることができる。例として、限定するものではないが、通信媒体は、有線ネットワークもしくは直接の有線接続などの有線媒体、ならびに音響、高周波(RF)、マイクロ波、赤外線(IR)などの無線媒体、および他の無線媒体を含むことができる。本明細書で使用される場合、コンピュータ可読媒体という用語は、記憶媒体と通信媒体を共に含むことができる。
コンピューティングデバイス400は、汎用もしくは専用サーバ、メインフレーム、または上記の機能のいずれかを含む同様のコンピュータの一部として実装することができる。コンピューティングデバイス400はまた、ラップトップコンピュータと非ラップトップコンピュータ構成を共に含むパーソナルコンピュータとして実施することもできる。
例示的な実施形態はまた、方法を含むことができる。これらの方法は、本明細書で述べられた構造を含む任意の数の方法で実施することができる。1つのこのような方法は、本開示で述べたタイプのデバイスのマシン操作によるものである。他の任意選択の方法は、1人または複数の人間の操作者が操作のうちのいくつかを実施し、他の操作は、マシンにより実施されることに関連して、方法の個々の操作の1つまたは複数が実施されることである。これらの人間の操作者は、互いに並べて配置される必要はなく、それぞれは、プログラムの一部を実施するマシンと共にいるだけでよい。他の例では、人との対話は、マシンで自動化された事前選択される基準などにより自動化することができる。
図5は、本明細書で述べる少なくともいくつかの実施形態により構成された、図4の装置などのコンピューティングデバイスにより実施できるサービスとしてのICを提供するための例示的な方法を示す流れ図である。例示的な方法は、ブロック522、524、526、528、および/または530のうちの1つまたは複数のものにより示された1つまたは複数の操作、機能、またはアクションを含むことができる。ブロック522から530に記載の操作はまた、コンピューティングデバイス510のコンピュータ可読媒体520など、コンピュータ可読媒体に、コンピュータ実行可能命令として記憶することができる。
サービスとしての集積回路(FPGA)にアクセスを提供する、またはそのためのプロセスは、ブロック522で「FPGA設計を受け取る」を開始することができる。ブロック522で、データセンタ管理サーバは、図2のユーザ222から、設計パッケージ224などユーザからのFPGA設計パッケージを受け取ることができる。データセンタ管理サーバは、ユーザ222の認証、請求追跡の初期化、複数のユーザ間のプロビジョン管理など、さらなるタスクをさらに行うことができる。
ブロック522の後に、ブロック524の「管理ペイロードを付加する」を行うことができる。ブロック524で、図2の管理ペイロード234は、FPGAに向けてコンパイルする前に、設計パッケージ224に追加することができる。管理ペイロード234は、FPGAへのユーザアクセス、請求追跡、および互換性(例えば、適切なフォーマットに従っていることを確認するなど)を監視するために必要な機能を提供することができる。ブロック524の後に、ブロック526の「ユーザキーを作成する」を行うことができる。ブロック526で、図2のユーザキー238などのユーザキーを作成することができる。ユーザキー238は、管理ペイロード234に適合しており、かつユーザに、FPGAにアクセスするために仮想マシン(複数可)を開始できるようにする。
ブロック526の後に、ブロック528の「ユーザに仮想マシン/準仮想化ドライバを開始できるようにする」を行うことができる。ブロック528で、図3の1つまたは複数の仮想マシン352などの仮想マシンおよび準仮想化ドライバ340をユーザキーで開始して、ユーザの設計をFPGAに伝達することができる。準仮想化ドライバ340は、ハードウェアアクセスを仮想マシン352へと抽象化するために使用することができる。ブロック528の後に、ブロック530の「ユーザ設計をFPGAにアップロードできるようにする」を行うことができる。ブロック530で、ユーザの設計パッケージは、仮想マシンを介してFPGAにアップロードすることができ、計算結果がユーザに返される。
上記で述べたプロセス中のブロックで行われる機能は例示目的のものである。サービスとしての集積回路を提供することは、より少ない機能、またはさらなる機能を有する同様のプロセスで実施することができる。いくつかの例では、機能は、異なる順序で実施することができる。いくつかの他の例では、様々な機能を除くことができる。さらに他の例では、様々な機能をさらなる機能に分割することができ、あるいは、より少ない機能へと共に組み合わせることもできる。
図6は、本明細書で述べる少なくともいくつかの実施形態により構成された、例示的なコンピュータプログラム製品のブロック図を示す。いくつかの例では、図6で示すようにコンピュータプログラム製品600は、例えば、プロセッサにより実行されたとき、図4に関して上記で述べた機能を提供できるマシン可読命令604も含むことのできる信号伝達媒体602を含むことができる。したがって、例えば、プロセッサ404、データセンタ管理モジュール423、追加のサービスモジュール425、およびFPGA制御モジュール427を参照することは、媒体602によりプロセッサ504に伝達された命令604に応じて、図6で示すタスクのうちの1つまたは複数のものを行うことができ、ユーザのFPGA設計を受け取ること、管理ペイロードを付加してユーザキーを作成すること、ユーザに仮想マシンを開始できるようにすること、および仮想マシンに、設計をFPGAにアップロードできるようにすることに関連するアクションを実施する。
いくつかの実施形態では、図6で示す信号伝達媒体602は、これだけに限らないが、ハードディスクドライブ、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、デジタルテープ、メモリなど、コンピュータ可読媒体606を含むことができる。いくつかの実施形態では、信号伝達媒体602は、これだけに限らないが、メモリ、読取り/書込み(R/W)CD、R/W DVDなどの記録可能な媒体608を含むことができる。いくつかの実施形態では、信号伝達媒体602は、これだけに限らないが、デジタル通信媒体および/またはアナログ通信媒体(例えば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンク)など、通信媒体610を含むことができる。したがって、例えば、プログラム製品600を、RF信号伝達媒体によりプロセッサ404の1つまたは複数のモジュールに伝達することができ、その場合、信号伝達媒体602は、無線通信媒体610(例えば、IEEE802.11規格に準拠する無線通信媒体)により伝達される。
いくつかの例によれば、サービスとしてプログラム可能な集積回路(IC)を提供するための方法は、データセンタで、プログラム可能な集積回路設計パッケージを受け取ること、IC設計パッケージに管理ペイロードを付加すること、IC設計パッケージに関連付けられた、管理ペイロードに適合するユーザキーを作成すること、およびユーザキーを用いて、1つまたは複数の仮想マシンを介してプログラム可能なICへの選択的なアクセスを提供することを含むことができる。
プログラム可能なICは、フィールドプログラマブルゲートアレイ(FPGA)とすることができ、また方法は、設計パッケージをコンパイルする前に、管理ペイロードを付加することをさらに含むことができ、コンパイルは、最終設計のために回路を追加する。方法はまた、メッセージングインターフェースを介して、サーバ機能をデータセンタからFPGAに接続することを含む。メッセージングインターフェースは、ネットワークインターフェース、または周辺コンピュータ相互接続(PCI)インターフェースとすることができる。方法はまた、ユーザキーのコピーを用いて、1つまたは複数の準仮想化ドライバを備える1つまたは複数の仮想マシンを開始できるようにし、その場合、準仮想化ドライバは、FPGAへの所有権が検証されたアクセスを提供する。
方法は、FPGAにおける受け取った設計パッケージの実行に関連する請求追跡サービス、プロビジョニング管理サービス、およびアクセス制御サービスの組から、少なくとも1つを提供することをさらに含むことができる。FPGAへの直接ネットワークアクセスが、信頼できるユーザ、証明されたペイロードを有するユーザ、およびハードウェアベースの仮想プライベートデータセンタ内のユーザのうちの1つに提供されうる。設計パッケージは、付加された管理ペイロードと共にFPGAにイメージコピーされうる。管理ペイロードは、ユーザ識別を保証するためにFPGAに対するメッセージングインターフェースを管理することができ、かつ事前に規定された請求メトリックに基づいてFPGAの使用量を追跡するが、請求メトリックは、展開された時間および/または消費電力の1つまたは複数のものに基づくことができる。
1つまたは複数の仮想マシンは、ユーザキーを用いてFPGAと通信し、かつIC設計パッケージに関連するユーザによりアップロードされたユーザ仕様のハードウェアアクセラレータを使用することができる。さらに、設計パッケージを処理するマネジャは、固定された数のゲートを消費することができ、それらのゲートは、ユーザにとって利用可能な容量から除外することができる。いくつかの例では、管理ペイロードは、ペイロード全体のコンパイルの開始以降の時間を記録し、かつユーザがFPGAの使用を終了したとき、管理メッセージに応じて経過時間を報告するクロックとすることができる。他の例では、管理ペイロードは、I/Oポートに常駐し、フォーマットに従っていること、および/またはアクセス制御が、ユーザキーを用いて行われていることを保証することができる。管理ペイロードはまた、確実にポートが監視され、かつ接続活動が請求のために集計されるようにすることができる。
他の例によれば、サービスとしてプログラム可能な集積回路(IC)を提供するデータセンタは、管理サーバを含むことができ、管理サーバは、データセンタで、プログラム可能な集積回路設計パッケージを受け取り、IC設計パッケージに管理ペイロードを付加し、IC設計パッケージに関連付けられた、管理ペイロードに適合するユーザキーを作成し、かつユーザキーを用いて、1つまたは複数の仮想マシンを介してプログラム可能なICへの選択的なアクセスを提供することができる。
プログラム可能なICは、フィールドプログラマブルゲートアレイ(FPGA)とすることができ、また管理サーバは、設計パッケージをコンパイルする前に、管理ペイロードをさらに付加することができ、コンパイルは、最終設計のために回路を追加する。管理サーバはまた、メッセージングインターフェースを介して、サーバ機能をデータセンタからFPGAに接続することができる。メッセージングインターフェースは、ネットワークインターフェース、または周辺コンピュータ相互接続(PCI)インターフェースとすることができる。管理サーバはまた、ユーザキーのコピーを用いて、1つまたは複数の準仮想化ドライバを備える1つまたは複数の仮想マシンを開始できるようにし、その場合、準仮想化ドライバは、FPGAへの所有権が検証されたアクセスを提供する。
管理サーバは、FPGAにおいて受け取った設計パッケージの実行に関連する請求追跡サービス、プロビジョニング管理サービス、およびアクセス制御サービスの組から、少なくとも1つをさらに提供することができる。FPGAへの直接ネットワークアクセスが、信頼できるユーザ、証明されたペイロードを有するユーザ、およびハードウェアベースの仮想プライベートデータセンタ内のユーザのうちの1つに提供されうる。設計パッケージは、付加された管理ペイロードと共にFPGAにイメージコピーされうる。管理ペイロードは、ユーザ識別を保証するためにFPGAに対するメッセージングインターフェースを管理することができ、かつ事前に規定された請求メトリックに基づいてFPGAの使用量を追跡するが、請求メトリックは、展開された時間および/または消費電力の1つまたは複数のものに基づくことができる。
1つまたは複数の仮想マシンは、ユーザキーを用いてFPGAと通信し、かつIC設計パッケージに関連するユーザによりアップロードされたユーザ仕様のハードウェアアクセラレータを使用することができる。さらに、設計パッケージを処理するマネジャは、固定された数のゲートを消費することができ、それらのゲートは、ユーザにとって利用可能な容量から除外することができる。いくつかの例では、管理ペイロードは、ペイロード全体のコンパイルの開始以降の時間を記録し、かつユーザがFPGAの使用を終了したとき、管理メッセージに応じて経過時間を報告するクロックとすることができる。他の例では、管理ペイロードは、I/Oポートに常駐し、フォーマットに従っていること、および/またはアクセス制御が、ユーザキーを用いて行われていることを保証することができる。管理ペイロードはまた、確実にポートが監視され、かつ接続活動が請求のために集計されるようにすることができる。
他の例によれば、コンピュータ可読記憶媒体は、サービスとしてプログラム可能な集積回路(IC)を提供するための記憶された命令を含むことができる。命令は、データセンタで、プログラム可能な集積回路設計パッケージを受け取ること、IC設計パッケージに管理ペイロードを付加すること、IC設計パッケージに関連付けられた、管理ペイロードに適合するユーザキーを作成すること、およびユーザキーを用いて、1つまたは複数の仮想マシンを介してプログラム可能なICへの選択的なアクセスを提供することを含むことができる。
プログラム可能なICは、フィールドプログラマブルゲートアレイ(FPGA)とすることができ、また命令は、設計パッケージをコンパイルする前に管理ペイロードを付加することをさらに含むことができ、コンパイルは、最終設計のために回路を追加する。命令はまた、メッセージングインターフェースを介して、サーバ機能をデータセンタからFPGAに接続することを含むことができる。メッセージングインターフェースは、ネットワークインターフェース、または周辺コンピュータ相互接続(PCI)インターフェースとすることができる。命令はまた、ユーザキーのコピーを用いて、1つまたは複数の準仮想化ドライバを備える1つまたは複数の仮想マシンを開始できるようにすることを含むことができ、その場合、準仮想化ドライバは、FPGAへの所有権が検証されたアクセスを提供する。
命令は、FPGAおいて受け取った設計パッケージの実行に関連する請求追跡サービス、プロビジョニング管理サービス、およびアクセス制御サービスの組から、少なくとも1つを提供することをさらに含むことができる。FPGAへの通信アクセスが、信頼できるユーザ、証明されたペイロードを有するユーザ、およびハードウェアベースの仮想プライベートデータセンタ内のユーザのうちの1つに提供されうる。設計パッケージは、付加された管理ペイロードと共にFPGAにイメージコピーされうる。管理ペイロードは、ユーザ識別を保証するためにFPGAに対するメッセージングインターフェースを管理することができ、かつ事前に規定された請求メトリックに基づいてFPGAの使用量を追跡するが、請求メトリックは、展開された時間および/または消費電力の1つまたは複数のものに基づくことができる。
1つまたは複数の仮想マシンは、ユーザキーを用いてFPGAと通信し、かつIC設計パッケージに関連するユーザによりアップロードされたユーザ仕様のハードウェアアクセラレータを使用することができる。さらに、設計パッケージを処理するマネジャは、固定された数のゲートを消費することができ、それらのゲートは、ユーザにとって利用可能な容量から除外することができる。いくつかの例では、管理ペイロードは、ペイロード全体のコンパイルの開始以降の時間を記録し、かつユーザがFPGAの使用を終了したとき、管理メッセージに応じて経過時間を報告するクロックとすることができる。他の例では、管理ペイロードは、I/Oポートに常駐し、フォーマットに従っていること、および/またはアクセス制御が、ユーザキーを用いて行われていることを保証することができる。管理ペイロードはまた、確実にポートが監視され、かつ接続活動が請求のために集計されるようにすることができる。
システムの側面でのハードウェアの実装形態とソフトウェアの実装形態との間には、ほとんど相違が残されていない。ハードウェアまたはソフトウェアの使用は、一般に(いつもそうではないが、ある状況ではハードウェアとソフトウェアの間の選択が重要になり得るという点で)コスト対効果のトレードオフを表す設計上の選択である。本明細書に記載された、プロセスおよび/またはシステムおよび/または他の技術をもたらすことができる様々な達成手段があり(例えば、ハードウェア、ソフトウェア、および/またはファームウェア)、好ましい達成手段は、プロセスおよび/またはシステムおよび/または他の技術が導入される状況によって異なる。例えば、実装者が速度と正確性が最も重要であると決定すると、実装者は主にハードウェアおよび/またはファームウェアの達成手段を選択することができる。フレキシビリティが最も重要なら、実装者は主にソフトウェアの実装形態を選択することができる。または、さらに別の代替案として、実装者は、ハードウェア、ソフトウェア、および/またはファームウェアのなんらかの組合せを選択することができる。
前述の詳細な説明では、ブロック図、フローチャート、および/または例の使用によって、装置および/またはプロセスの様々な実施形態を説明してきた。そのようなブロック図、フローチャート、および/または例が1つまたは複数の機能および/または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および/または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらのすべての組合せにより、個別におよび/または集合的に実装可能であることが、当業者には理解されるであろう。ある実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、1つまたは複数のコンピュータ上で動作する1つまたは複数のコンピュータプログラムとして(例えば、1つまたは複数のコンピュータシステム上で動作する1つまたは複数のプログラムとして)、1つまたは複数のプロセッサ上で動作する1つまたは複数のプログラムとして(例えば、1つまたは複数のマイクロプロセッサ上で動作する1つまたは複数のプログラムとして)、ファームウェアとして、あるいは実質上それらの任意の組合せとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに/またはソフトウェアおよび/もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。
本開示は、様々な態様を例示するように意図された、本出願で述べられた特定の実施形態によって限定されない。当業者には明らかであろうが、本出願の趣旨および範囲から逸脱することなく、多くの変更および変形を行うことが可能である。本明細書で列挙されたものに加えて、本開示の範囲に含まれる機能的に均等な方法および装置は、前述の記述から、当業者には明らかであろう。このような変更および変形は、添付の特許請求の範囲に含まれるように意図されている。本開示は、このような特許請求の範囲が権利を有する均等な形態の全範囲と併せて、添付の特許請求の範囲によってのみ限定されるべきである。本開示は、当然であるが変化しうる特定の方法、試薬、化合物の組成、または生体系に限定されないことを理解されたい。本明細書で使用される専門用語は、特定の実施形態だけを記述するためのものであり、限定することを意図していないこともまた理解されたい。
さらに、本明細書に記載された主題のメカニズムを様々な形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号伝達媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号伝達媒体の例には、フロッピーディスク、ハードディスクドライブ、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、デジタルテープ、コンピュータメモリ、などの記録可能なタイプの媒体、ならびに、デジタル通信媒体および/またはアナログ通信媒体(例えば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど)の通信タイプの媒体が含まれるが、それらには限定されない。
本明細書で説明したやり方で装置および/またはプロセスを記載し、その後そのように記載された装置および/またはプロセスを、データ処理システムに統合するためにエンジニアリング方式を使用することは、当技術分野で一般的であることを当業者は認識するであろう。すなわち、本明細書に記載された装置および/またはプロセスの少なくとも一部を、妥当な数の実験によってデータ処理システムに統合することができる。通常のデータ処理システムは、一般に、システムユニットハウジング、ビデオディスプレイ装置、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算実体、ドライバ、グラフィカルユーザインタフェース、およびアプリケーションプログラムのうちの1つもしくは複数、タッチパッドもしくはスクリーンなどの1つもしくは複数の相互作用装置、ならびに/またはフィードバックループおよびコントロールモータを含むコントロールシステム(例えば、ガントリーシステムの位置検知用および/もしくは速度検知用フィードバック、コンポーネントの移動用および/もしくは数量の調整用コントロールモータ)を含むことを、当業者は理解するであろう。
通常のデータ処理システムは、データコンピューティング/通信システムおよび/またはネットワークコンピューティング/通信システムの中に通常見られるコンポーネントなどの、市販の適切なコンポーネントを利用して実装することができる。本明細書に記載された主題は、様々なコンポーネントをしばしば例示しており、これらのコンポーネントは、他の様々なコンポーネントに包含されるか、または他の様々なコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例示に過ぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」される。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の2つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに「関連付け」されていると見ることができる。同様に、そのように関連付けされた任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に接続」または「動作可能に結合」されていると見なすこともでき、そのように関連付け可能な任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に結合できる」と見なすこともできる。動作可能に結合できる場合の具体例には、物理的にかみ合わせ可能な、および/もしくは物理的に相互作用するコンポーネント、ならびに/またはワイヤレスに相互作用可能な、および/もしくはワイヤレスに相互作用するコンポーネント、ならびに/または論理的に相互作用する、および/もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。
本明細書における実質的にすべての複数形および/または単数形の用語の使用に対して、当業者は、状況および/または用途に適切なように、複数形から単数形に、および/または単数形から複数形に変換することができる。様々な単数形/複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
通常、本明細書において、特に添付の特許請求の範囲(たとえば、添付の特許請求の範囲の本体部)において使用される用語は、全体を通じて「オープンな(open)」用語として意図されていることが、当業者には理解されよう(例えば、用語「含む(including)」は、「含むがそれに限定されない(including but not limited to)」と解釈されるべきであり、用語「有する(having)」は、「少なくとも有する(having at least)」と解釈されるべきであり、用語「含む(includes)」は、「含むがそれに限定されない(includes but is not limited to)」と解釈されるべきである、など)。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。例えば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも1つの(at least one)」および「1つまたは複数の(one or more)」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「1つまたは複数の」または「少なくとも1つの」および「a」または「an」などの不定冠詞を含む場合であっても、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に1つのそのような記載を含む実施形態に限定する、ということを示唆していると解釈されるべきではない(例えば、「a」および/または「an」は、「少なくとも1つの」または「1つまたは複数の」を意味すると解釈されるべきである)。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう(例えば、他の修飾語なしでの「2つの記載(two recitations)」の単なる記載は、少なくとも2つの記載、または2つ以上の記載を意味する)。
さらに、「A、BおよびC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(例えば、「A、B、およびCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。2つ以上の代替用語を提示する事実上いかなる離接する語および/または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方(one of the terms)、当該用語のいずれか(either of the terms)、または両方の用語(both terms)を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。例えば、句「AまたはB」は、「A」または「B」あるいは「AおよびB」の可能性を含むことが理解されよう。
さらに、本開示の特徴または態様が、マーカッシュ群に関して記述される場合、当業者であれば、本開示はまた、それにより、マーカッシュ群の任意の個々の構成要素、または構成要素の下位の群により記述されることが理解されよう。
当業者であれば理解されるように、記述を提供することなど、任意のかつすべての目的に関して、本明細書で開示されるすべての範囲はまた、任意の、かつすべての可能な下位の範囲、およびその下位の範囲の組合せを包含する。いずれの列挙された範囲も十分に説明されており、かつその範囲が少なくとも等しい半分、3分の1、4分の1、5分の1、10分の1などへと分解可能であることが容易に理解できるはずである。非限定的な例として、本明細書で論ずる各範囲は、下側3分の1、中央3分の1、および上側3分の1などへと容易に分解することができる。当業者であればまた理解されるように、「最高で〜まで」、「少なくとも」、「を超える」、「より少ない」などのすべての言語は、記載された数を含み、その後に続いて、上記で論じた下位の範囲へと分解できる範囲を指す。最後に、当業者であれば理解されるように、範囲は個々の構成要素を含む。したがって、例えば、1〜3個のセルを有する群は、1、2、または3個のセルを有する群を指す。同様に、1〜5個のセルを有する群は、1、2、3、4、または5個のセルを有する群を指し、以下同様である。
様々な態様および実施形態が本明細書で開示されてきたが、他の態様および実施形態も当業者には明らかであろう。本明細書で開示された様々な態様および実施形態は、例示のためのものであり、限定することは意図されておらず、真の範囲および趣旨は、添付の特許請求の範囲によって示される。

Claims (18)

  1. サービスとしてプログラム可能な集積回路(IC)を提供するための方法であって、
    データセンタで、プログラム可能なIC設計パッケージを受け取ること、
    前記IC設計パッケージに管理ペイロードを付加すること、
    前記IC設計パッケージに関連付けられた、前記管理ペイロードに適合するユーザキーを作成すること
    前記ユーザキーを用いて、前記データセンタの1つまたは複数の仮想マシンであって、前記ユーザキーを用いて前記プログラム可能なICと通信し、かつ前記IC設計パッケージに関連するユーザによりアップロードされたユーザ仕様のハードウェアアクセラレータを使用する前記1つまたは複数の仮想マシンを介して前記プログラム可能なICへの選択的なアクセスを提供すること、
    前記プログラム可能なICを管理するコントローラを介して、前記プログラム可能なICと通信する前記1つまたは複数の仮想マシンを開始できるようにすること、
    前記プログラム可能なICで前記IC設計パッケージを実行すること、
    前記プログラム可能なICでの前記IC設計パッケージの実行に関連する請求追跡サービスおよびプロビジョニング管理サービスのうち少なくとも1つを提供すること、および
    展開された時間および消費電力を含む請求メトリックに基づいて、前記プログラム可能なICの使用量を追跡すること
    を含む方法。
  2. 前記プログラム可能なICが、フィールドプログラマブルゲートアレイ(FPGA)である、請求項1に記載の方法。
  3. 前記設計パッケージをコンパイルする前に、前記管理ペイロードを付加することをさらに含み、前記コンパイルが、最終設計のために回路を追加する、請求項2に記載の方法。
  4. メッセージングインターフェースを介して、サーバ機能を前記データセンタから前記FPGAに接続することをさらに含む、請求項2に記載の方法。
  5. 前記メッセージングインターフェースが、ネットワークインターフェース、および周辺コンピュータ相互接続(PCI)インターフェースの一方を使用する、請求項4に記載の方法。
  6. 前記ユーザキーのコピーを使用して、1つまたは複数の準仮想化ドライバを備えた1つまたは複数の仮想マシンを開始できるようにすることをさらに含み、前記準仮想化ドライバが、前記FPGAへの所有権が検証されたアクセスを提供する、請求項2に記載の方法。
  7. 前設計パッケージが、前記付加された管理ペイロードと共に前記FPGAにイメージコピーされる、請求項2に記載の方法。
  8. 前記管理ペイロードが、ユーザ識別を保証するために、前記FPGAに対するメッセージングインターフェースを管理し、かつ事前に規定された請求メトリックに基づいて前記FPGAの使用量を追跡する、請求項に記載の方法。
  9. サービスとしてプログラム可能な集積回路(IC)を提供するコンピューティングデバイスであって、メモリと、当該メモリに接続されたプロセッサであって、アプリケーションを実行するように構成されたプロセッサとを備え、前記アプリケーションが、
    データセンタで、プログラム可能なIC設計パッケージを受け取り、
    前記IC設計パッケージに管理ペイロードを付加し、
    前記IC設計パッケージに関連付けられた、前記管理ペイロードに適合するユーザキーを作成し
    前記ユーザキーを用いて、前記データセンタの1つまたは複数の仮想マシンであって、前記ユーザキーを用いて前記プログラム可能なICと通信し、かつ前記IC設計パッケージに関連するユーザによりアップロードされたユーザ仕様のハードウェアアクセラレータを使用する前記1つまたは複数の仮想マシンを介して前記プログラム可能なICへの選択的なアクセスを提供し、
    前記プログラム可能なICを管理するコントローラを介して、前記プログラム可能なICと通信する前記1つまたは複数の仮想マシンを開始できるようにし、
    前記プログラム可能なICで前記IC設計パッケージを実行し、
    前記プログラム可能なICでの前記IC設計パッケージの実行に関連する請求追跡サービスおよびプロビジョニング管理サービスのうち少なくとも1つを提供し、かつ
    展開された時間および消費電力を含む請求メトリックに基づいて、前記プログラム可能なICの使用量を追跡する
    ように構成される、コンピューティングデバイス
  10. 前記プログラム可能なICが、フィールドプログラマブルゲートアレイ(FPGA)である、請求項に記載のコンピューティングデバイス
  11. 前記アプリケーションが、
    信頼できるユーザ、証明されたペイロードを有するユーザ、およびハードウェアベースの仮想プライベートデータセンタ内のユーザの1つに対して、前記FPGAに対する直接ネットワークアクセスを可能にするようにさらに構成される、請求項10に記載のコンピューティングデバイス
  12. 前記設計パッケージが、前記付加された管理ペイロードと共に前記FPGAにイメージコピーされる、請求項10に記載のコンピューティングデバイス
  13. 前記管理ペイロードが、ユーザ識別を保証するために、前記FPGAに対するメッセージングインターフェースを管理し、かつ事前に規定された請求メトリックに基づいて前記FPGAの使用量を追跡する、請求項12に記載のコンピューティングデバイス
  14. 前記設計パッケージを処理するマネジャが、固定された数のゲートを消費し、前記ゲートは前記ユーザにとって利用可能な容量から除外される、請求項10に記載のコンピューティングデバイス
  15. サービスとしてフィールドプログラマブルゲートアレイ(FPGA)を提供するための命令を記憶したコンピュータ可読記憶装置であって、前記命令が、
    データセンタで、プログラム可能な集積回路(IC)設計パッケージを受け取ること、
    前記IC設計パッケージに管理ペイロードを付加すること、
    前記IC設計パッケージに関連付けられた、前記管理ペイロードに適合するユーザキーを作成すること
    前記ユーザキーを用いて、前記データセンタの1つまたは複数の仮想マシンであって、前記ユーザキーを用いて前記FPGAと通信し、かつ前記IC設計パッケージに関連するユーザによりアップロードされたユーザ仕様のハードウェアアクセラレータを使用する前記1つまたは複数の仮想マシンを介して前記FPGAへの選択的なアクセスを提供すること
    前記FPGAを管理するコントローラを介して、前記FPGAと通信する前記1つまたは複数の仮想マシンを開始できるようにすること、
    前記FPGAで前記IC設計パッケージを実行すること、
    前記FPGAでの前記IC設計パッケージの実行に関連する請求追跡サービスおよびプロビジョニング管理サービスのうち少なくとも1つを提供すること、および
    展開された時間および消費電力を含む請求メトリックに基づいて、前記FPGAの使用量を追跡すること
    を含む、コンピュータ可読記憶装置
  16. 前記管理ペイロードが、ペイロード全体のコンパイルを開始した後の時間を記録し、かつ前記ユーザがFPGAの使用を終了したとき、管理メッセージに応じて経過時間を報告するクロックである、請求項15に記載のコンピュータ可読記憶装置
  17. 前記管理ペイロードが、I/Oポートに常駐しており、かつフォーマットに従っていること、および/またはアクセス制御が、前記ユーザキーを使用して行われていることを保証する、請求項15に記載のコンピュータ可読記憶装置
  18. 前記管理ペイロードは、確実にポートが監視され、かつ接続活動が請求のために集計されるようにする、請求項15に記載のコンピュータ可読記憶装置
JP2014542293A 2011-12-02 2011-12-02 サービスとしての集積回路 Expired - Fee Related JP5646125B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/063059 WO2013081629A1 (en) 2011-12-02 2011-12-02 Integrated circuits as a service

Publications (2)

Publication Number Publication Date
JP5646125B1 true JP5646125B1 (ja) 2014-12-24
JP2015507234A JP2015507234A (ja) 2015-03-05

Family

ID=48524992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014542293A Expired - Fee Related JP5646125B1 (ja) 2011-12-02 2011-12-02 サービスとしての集積回路

Country Status (5)

Country Link
US (1) US8635675B2 (ja)
JP (1) JP5646125B1 (ja)
KR (1) KR101614859B1 (ja)
CN (1) CN103959245B (ja)
WO (1) WO2013081629A1 (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8789065B2 (en) 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
US9448847B2 (en) 2011-07-15 2016-09-20 Throughputer, Inc. Concurrent program execution optimization
US10270709B2 (en) 2015-06-26 2019-04-23 Microsoft Technology Licensing, Llc Allocating acceleration component functionality for supporting services
US9766910B1 (en) * 2013-03-07 2017-09-19 Amazon Technologies, Inc. Providing field-programmable devices in a distributed execution environment
US9298484B2 (en) 2013-03-14 2016-03-29 International Business Machines Corporation Encapsulation of an application for virtualization
US10140639B2 (en) 2013-08-23 2018-11-27 Empire Technology Development Llc Datacenter-based hardware accelerator integration
CN105335148B (zh) * 2014-08-11 2021-08-24 京微雅格(北京)科技有限公司 具有可配置应用平台cap的集成电路
CN104657330A (zh) * 2015-03-05 2015-05-27 浪潮电子信息产业股份有限公司 一种基于x86架构处理器和FPGA的高性能异构计算平台
US9983938B2 (en) * 2015-04-17 2018-05-29 Microsoft Technology Licensing, Llc Locally restoring functionality at acceleration components
US9652327B2 (en) * 2015-04-17 2017-05-16 Microsoft Technology Licensing, Llc Restoring service acceleration
US10296392B2 (en) 2015-04-17 2019-05-21 Microsoft Technology Licensing, Llc Implementing a multi-component service using plural hardware acceleration components
US10511478B2 (en) 2015-04-17 2019-12-17 Microsoft Technology Licensing, Llc Changing between different roles at acceleration components
US10198294B2 (en) 2015-04-17 2019-02-05 Microsoft Licensing Technology, LLC Handling tenant requests in a system that uses hardware acceleration components
US9792154B2 (en) 2015-04-17 2017-10-17 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
US9819542B2 (en) 2015-06-26 2017-11-14 Microsoft Technology Licensing, Llc Configuring acceleration components over a network
US10216555B2 (en) 2015-06-26 2019-02-26 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
US10013212B2 (en) * 2015-11-30 2018-07-03 Samsung Electronics Co., Ltd. System architecture with memory channel DRAM FPGA module
JP6589698B2 (ja) 2016-03-08 2019-10-16 富士通株式会社 情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラム
US11099894B2 (en) 2016-09-28 2021-08-24 Amazon Technologies, Inc. Intermediate host integrated circuit between virtual machine instance and customer programmable logic
US10338135B2 (en) 2016-09-28 2019-07-02 Amazon Technologies, Inc. Extracting debug information from FPGAs in multi-tenant environments
US10162921B2 (en) 2016-09-29 2018-12-25 Amazon Technologies, Inc. Logic repository service
US10250572B2 (en) 2016-09-29 2019-04-02 Amazon Technologies, Inc. Logic repository service using encrypted configuration data
US10282330B2 (en) 2016-09-29 2019-05-07 Amazon Technologies, Inc. Configurable logic platform with multiple reconfigurable regions
US10423438B2 (en) 2016-09-30 2019-09-24 Amazon Technologies, Inc. Virtual machines controlling separate subsets of programmable hardware
US10642492B2 (en) 2016-09-30 2020-05-05 Amazon Technologies, Inc. Controlling access to previously-stored logic in a reconfigurable logic device
US11115293B2 (en) * 2016-11-17 2021-09-07 Amazon Technologies, Inc. Networked programmable logic service provider
US10540506B2 (en) 2017-01-12 2020-01-21 Microsoft Technology Licensing, Llc Field-programmable gate array virtualization
US10404470B2 (en) * 2017-01-13 2019-09-03 Microsoft Technology Licensing, Llc Signature verification of field-programmable gate array programs
US10764129B2 (en) * 2017-04-18 2020-09-01 Amazon Technologies, Inc. Logic repository service supporting adaptable host logic
WO2019217925A1 (en) 2018-05-11 2019-11-14 Lattice Semiconductor Corporation Key provisioning systems and methods for programmable logic devices
CN111435394B (zh) * 2019-01-15 2021-05-14 创新先进技术有限公司 基于fpga硬件的安全计算方法和装置
US11120188B2 (en) * 2019-01-28 2021-09-14 King Fahd University Of Petroleum And Minerals FPGA virtualization
CN112491887B (zh) * 2019-09-25 2023-06-30 支付宝(杭州)信息技术有限公司 基于fpga实现虚拟机运算的方法及装置
KR20220071182A (ko) * 2019-09-27 2022-05-31 인텔 코포레이션 소프트웨어 정의된 실리콘 구현 및 관리
US11579897B2 (en) 2019-09-27 2023-02-14 Intel Corporation Systems, methods, and apparatus for software defined silicon security
US11977612B2 (en) 2020-07-07 2024-05-07 Intel Corporation Software defined silicon guardianship
US20220321403A1 (en) * 2021-04-02 2022-10-06 Nokia Solutions And Networks Oy Programmable network segmentation for multi-tenant fpgas in cloud infrastructures

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240218B2 (en) * 2000-02-08 2007-07-03 Algotronix, Ltd. Method of using a mask programmed key to securely configure a field programmable gate array
US7150011B2 (en) * 2000-06-20 2006-12-12 Interuniversitair Microelektronica Centrum (Imec) Virtual hardware machine, methods, and devices
GB0114317D0 (en) 2001-06-13 2001-08-01 Kean Thomas A Method of protecting intellectual property cores on field programmable gate array
GB0304628D0 (en) * 2003-02-28 2003-04-02 Imec Inter Uni Micro Electr Method for hardware-software multitasking on a reconfigurable computing platform
GB2424557A (en) * 2005-03-24 2006-09-27 Sony Uk Ltd FPGA with hardware decryptor for configuration programme which adds second key to itself before re-encrypting and overwriting itself in memory when run
JP2009512096A (ja) * 2005-10-18 2009-03-19 インタートラスト テクノロジーズ コーポレイション デジタル著作権管理エンジンのシステムおよび方法
US7640528B1 (en) * 2006-08-04 2009-12-29 Altera Corporation Hardware acceleration of functional factoring
GB0617697D0 (en) * 2006-09-08 2006-10-18 Algotronix Ltd Method of actively tagging electronic designs and intellectual property cores
US9112808B2 (en) * 2007-02-06 2015-08-18 At&T Intellectual Property Ii, L.P. Devices, systems, and methods for providing data
US7991909B1 (en) * 2007-03-27 2011-08-02 Xilinx, Inc. Method and apparatus for communication between a processor and processing elements in an integrated circuit
US8839236B2 (en) * 2007-04-04 2014-09-16 Microsoft Corp. Virtual machine support for metered computer usage
US9137316B2 (en) * 2007-09-26 2015-09-15 Cisco Technology, Inc. Controlling receipt of electronic advertising
US8239340B2 (en) * 2008-04-11 2012-08-07 Trevor Hanson Message conduit systems with algorithmic data stream control and methods for processing thereof
US8689292B2 (en) * 2008-04-21 2014-04-01 Api Technologies Corp. Method and systems for dynamically providing communities of interest on an end user workstation
US8296590B2 (en) * 2008-06-09 2012-10-23 International Business Machines Corporation Budget-based power consumption for application execution on a plurality of compute nodes
JP5235764B2 (ja) * 2009-04-16 2013-07-10 株式会社日立製作所 Icチップおよびこれを搭載した情報処理装置
US8751844B2 (en) * 2009-09-24 2014-06-10 Citrix Systems, Inc. Systems and methods for attributing an amount of power consumption to a workload
US8082359B2 (en) * 2009-12-23 2011-12-20 Citrix Systems, Inc. Systems and methods for determining a good RSS key
US20110246627A1 (en) * 2010-04-01 2011-10-06 International Business Machines Corporation Data Center Affinity Of Virtual Machines In A Cloud Computing Environment
US9367362B2 (en) * 2010-04-01 2016-06-14 International Business Machines Corporation Administration of virtual machine affinity in a cloud computing environment
US8572612B2 (en) * 2010-04-14 2013-10-29 International Business Machines Corporation Autonomic scaling of virtual machines in a cloud computing environment
US8732310B2 (en) * 2010-04-22 2014-05-20 International Business Machines Corporation Policy-driven capacity management in resource provisioning environments
US8527761B2 (en) * 2010-05-28 2013-09-03 Dell Products, Lp System and method for fuse enablement of a secure client hosted virtualization in an information handling system
US8812285B2 (en) * 2010-08-31 2014-08-19 The Regents Of The University Of California Designing digital processors using a flexibility metric
JP2012088901A (ja) * 2010-10-19 2012-05-10 Fujitsu Ltd ソフトウェア管理装置、ソフトウェア管理方法およびソフトウェア管理プログラム

Also Published As

Publication number Publication date
WO2013081629A1 (en) 2013-06-06
KR101614859B1 (ko) 2016-04-22
KR20140093734A (ko) 2014-07-28
CN103959245B (zh) 2016-08-24
CN103959245A (zh) 2014-07-30
US8635675B2 (en) 2014-01-21
JP2015507234A (ja) 2015-03-05
US20130145431A1 (en) 2013-06-06

Similar Documents

Publication Publication Date Title
JP5646125B1 (ja) サービスとしての集積回路
JP6244309B2 (ja) クラウドマイグレーション用パラメータ化動的モデル
Kambatla et al. Trends in big data analytics
US9003502B2 (en) Hybrid multi-tenancy cloud platform
US10140639B2 (en) Datacenter-based hardware accelerator integration
US9531813B2 (en) Sandboxed application data redirection to datacenters
Chauhan et al. Architecting cloud‐enabled systems: a systematic survey of challenges and solutions
Mazumder Big data tools and platforms
US20130151484A1 (en) Storage discounts for allowing cross-user deduplication
Zhang et al. SaC‐FRAPP: a scalable and cost‐effective framework for privacy preservation over big data on cloud
Xia et al. An efficient MapReduce‐based parallel clustering algorithm for distributed traffic subarea division
JP6042454B2 (ja) ユーザ生成によるデータセンターの省電力
WO2013191673A1 (en) Virtual machine migration in a cloud fabric
Schmidt et al. Hwpmi: an extensible performance monitoring infrastructure for improving hardware design and productivity on fpgas
US20140258291A1 (en) Processing control in a streaming application
Reali et al. Genomics as a service: A joint computing and networking perspective
Sarbazi-Azad et al. Large Scale Network-Centric Distributed Systems
JP6537598B2 (ja) 複数のカウンタのためのサービス命令を実施する方法、システム及びコンピュータ・プログラム
Gschwind Blue Gene/Q: Design for sustained multi-petaflop computing
US20160026681A1 (en) Virtual datacenter private sublets for quarantined access to data
Ali et al. RASSD: A dynamically reconfigurable active storage device for energy efficient data analytics
Qiang et al. CloudAC: A cloud‐oriented multilayer access control system for logic virtual domain
Zhang et al. Engaging heterogeneous FPGAs in the cloud
Du et al. Software-defined fpga-based accelerator for deep convolutional neural networks
Nia et al. A novel datatype architecture support for programming languages

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20140925

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141104

R150 Certificate of patent or registration of utility model

Ref document number: 5646125

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees