JP2009080799A - 単一のオペレーティングシステムイメージ下で動作する再構成可能なプロセッサを用いるウェブサーバのためのシステムおよび方法 - Google Patents

単一のオペレーティングシステムイメージ下で動作する再構成可能なプロセッサを用いるウェブサーバのためのシステムおよび方法 Download PDF

Info

Publication number
JP2009080799A
JP2009080799A JP2008212482A JP2008212482A JP2009080799A JP 2009080799 A JP2009080799 A JP 2009080799A JP 2008212482 A JP2008212482 A JP 2008212482A JP 2008212482 A JP2008212482 A JP 2008212482A JP 2009080799 A JP2009080799 A JP 2009080799A
Authority
JP
Japan
Prior art keywords
data elements
processing
data
reconfigurable
user
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.)
Granted
Application number
JP2008212482A
Other languages
English (en)
Other versions
JP4990244B2 (ja
Inventor
Jon M Huppenthal
フッペンサル,ジョン・エム
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.)
SRC Computers LLC
Original Assignee
SRC Computers 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25392899&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2009080799(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by SRC Computers LLC filed Critical SRC Computers LLC
Publication of JP2009080799A publication Critical patent/JP2009080799A/ja
Application granted granted Critical
Publication of JP4990244B2 publication Critical patent/JP4990244B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Abstract

【課題】再構成可能マイクロプロセッサを組込むマルチプロセッサコンピュータシステムを利用して、ウェブサイトアクセスおよび処理を加速化させるためのシステムおよび方法を提供する。
【解決手段】マルチプロセッサコンピュータ10は、メモリ相互接続構造14に双方向に結合されるN個のプロセッサ120〜12Nの他に、N個のマルチアダプティブプロセッサ(「MAPTM」)1120〜112Nが結合される。
【効果】サイト訪問者の人口統計データ処理、リアルタイムでのウェブサイト内容の更新、データベース検索、およびe−コマースのアプリケーションに関する他の処理を加速させるのに利用できる。再構成可能かつ標準のマイクロプロセッサはすべて、単一のOSイメージにより制御されるが、ユーザにはマイクロプロセッサのクラスタがオペレーティングシステムの単一のコピーとして見える。
【選択図】図1

Description

発明の背景
この発明は、一般的に、マルチアダプティブプロセッサ(「MAPTM」、左記は、コロラド州、コロラドスプリングスのエス・アール・シィ・コンピューターズ・インコーポレイテッド(SRC Computers, Inc.)の商標)等の複数の処理素子を組込むコンピュータアーキテクチャの分野に関する。より特定的には、この発明は、単一のオペレーティングシステムイメージ下で動作する再構成可能なプロセッサを組込むコンピュータシステムを利用して、ウェブサイトアクセスおよび処理を加速させるためのシステムおよび方法に関する。
現在、多くの種々の形態の電子的なビジネス取引が、インターネットに結合された個々のコンピュータを用いて行なわれる。そのコンピュータベースの性質のおかげで、多くの電子商取引(「e−コマース」)のウェブサイトは種々の方法を用いることにより、特定のユーザの人口統計に基づいてその内容を変えることができる。
この人口統計情報はさまざまな方法で得ることができ、いくつかのサイトでは単に、そのサイトの訪問者に1つ以上の質問に回答するよう要求するだけであるのに対し、他のサイトでは、「クリックストリーム」処理等のより高度な技術を用い得る。この後者の場合、サイトの訪問者が将来興味を持ちそうなものは、たとえば訪問者が以前に訪問したサイトを判断および分析することにより推測される。しかしながら、いずれの場合も、このデータは、最終的にはサイトの収入を最大にすることを目指してその特定のサイト訪問者に最大限にアピールするようウェブページの内容を変更し得るように、そのサイトによって処理されなければならない。
標準的なインターネットユーザは、ウェブページが更新されるのに最高で20秒ほどしか待たないということが調査により分かっているので、ページ内容の更新を可能な限り迅速に完了させることが極めて重要である。したがって、ユーザの人口統計データを処理するアルゴリズムのソフトウェア性能を最大限に活用するべく多大な努力が払われている。現在、この処理を達成する公知のウェブサーバはすべて、業界標準のマイクロプロセッサベースのサーバを使用し、結果としてこれにより、その最高性能は、標準のマイクロプロセッサ「ロード/記憶」アーキテクチャに固有の制約によって制限される。
発明の概要
この発明の譲受人である、SRC Computers, Inc.は、たとえば、プログラマブルMAP素子として機能するフィールドプログラマブルゲートアレイを利用するマルチアダプティブプロセッサ(「MAPTM」)とともに業界標準のプロセッサを用いるシステムを含む、マルチプロセッサコンピュータシステムの設計および開発における業界のリーダーである。
特に、単一のオペレーティングシステムイメージ下で動作する1つ以上のマイクロプロセッサと複数の再構成可能なプロセッサとを組込むマルチプロセッサコンピュータシステムを利用して、ウェブサイトアクセスおよび処理を加速させるためのシステムおよび方法が、この明細書中に開示される。具体的な実施例では、ウェブサイトは、すべてのシステムのリソースを共有し、かつ単一のオペレーティングシステムイメージ下で動作する、業界標準のマイクロプロセッサおよび1つ以上の再構成可能なプロセッサをともに含むハイブリッドマルチプロセッサコンピュータシステムでもってサービスしてもよい(が、代替的な実施例では、クラスタ管理ソフトウェアを用いて、ユーザにはマイクロプロセッサのクラスタがオペレーティングシステムの単一のコピーとして見えるようにし得る)。このようなシステムでは、人口統計データ処理アルゴリズムは、特別に適応されたフィールドプログラマブルゲートアレイ(「FPGA」)の形で設けることのできる再構成可能なプロセッサにロードされ得る。この態様では、適切なアルゴリズムは、標準のマイクロプロセッサベースのサーバより最大1000倍まで速くデータを処理することのできる、(ソフトウェアとは反対に)ハードウェアゲートで実現され得る。
具体的な実現例として、1つの特に効果的なハイブリッド計算システムには、マルチアダプティブプロセッサ(MAP)を組込む、SRC Computers, Inc.のSRC−6がある。このようなシステムでは、MAP素子にロードされてデータを処理するアルゴリズムを、100msec以内に完全に変更することができる。これにより、サイト訪問者をさほど足止めすることなく、処理アルゴリズムでさえも迅速に変更することが可能となり得る。アルゴリズムを変更するこの能力は、非常に加速された処理時間と結合されることで、より複雑なアルゴリズムを用いることを可能にし、これにより、さらに一層改善されたウェブページ内容の調整に繋がり得る。
単一のオペレーティングシステムイメージ下で動作するこのようなハイブリッドシステムを用いることにより、ソラリスTM(SolarisTM、左記は、カリフォルニア州、パロアル トのサン・マイクロシステムズ・インコーポレイテッド(Sun Microsystems, Inc.)の商標)を利用し得、かつ容易に管理することができる。この特徴は、このようなe−コマースベースのアプリケーションにおいて重要である。MAP素子は、本来システムに密結合され、たとえば入出力(「I/O」)ポート上に配置される取付けられたプロセッサではないので、これらの有効性および使いやすさは最大限に活用される。
人口統計データ処理は、このような再構成可能な処理システムの固有の能力を利用してe−コマースをいかに加速させることができるかの単なる一例であり、「セキュアソケット」動作は、さらに別の実現可能な適用例である。この場合、このような動作は、しばしば、典型的な、従来のサイトサーバマイクロプロセッササイクルの80%までも費やすことがある。SRC Computers, Inc.は、SRC−6等の再構成可能なプロセッサベースのシステムが従来のマイクロプロセッサよりも最大で1000倍まで速く解読アルゴリズムを実行することができ、これにより、より高速のウェブサイトアクセスも可能となるが、同時に、よりロバストなデータ暗号化技術を用いることも可能となることを証明している。同様に、重要な速度の利点は、たとえば、検索アルゴリズムが再構成可能なシステムのハードウェアにおいて直接実現されて従来のマイクロプロセッサベースのソリューションよりも2〜3桁の実行時間の改善をもたらし得るデータベース検索を実行することで実現され得る。
一般的に、ウェブサイトホスティングのためのオペレーティングシステムの単一のシステムイメージを備えたハイブリッドコンピュータシステムを用いることにより、多様なe−コマース関連の機能において現在実現される、ユーザにより選択されたハードウェア加速バージョンのソフトウェアアルゴリズムをサイトに使用させることが可能となる。これにより、結果として、サイト訪問者の待ち時間をより短くする、極めて高速な処理能力を備えた使いやすいシステムとなる。
添付の図面と関連して好ましい実施例の以下の説明を参照することにより、この発明の上述および他の特徴ならびに目的、およびそれらを達成する方法がより明らかとなり、この発明自体が最もよく理解されるだろう。
図1では、この発明の一実施例に従ったマルチプロセッサコンピュータ10アーキテクチャが示される。このマルチプロセッサコンピュータ10は、メモリ相互接続構造14に双方向に結合されるN個のプロセッサ120から12Nを組込む。次いで、このメモリ相互接続構造14はまた、メモリバンクサブシステム160(バンク0)から16(バンクM)を含むM個のメモリバンクに結合される。N個のマルチアダプティブプロセッサ(「MAPTM」)1120から112Nはまた、後にさらに詳しく説明されるように、メモリ相互接続構造14に結合される。
図2では、この発明に従った複数のマルチアダプティブプロセッサを組込むマルチプロセッサコンピュータアーキテクチャ100に対する代表的なアプリケーションプログラム分解処理(decomposition)が示される。コンピュータアーキテクチャ100は、分解処理の低精細部分では、(単に例示のために)4つの並列領域1021から1024までのうち1つに対して選択的に向けられるユーザ命令およびデータに応答して動作する。並列領域1021から1024の各々から出力される命令およびデータは、それぞれ、データ領域1041から1044、および命令領域1061から1064に分けられた並列領域に入力される。データ領域1041から1044に維持されるデータと、命令領域1061から1064に維持される命令は、次いで、図示のとおり、たとえば、対応する対のプロセッサ1081、1082(P1およびP2)、1083、1084(P3およびP4)、1085、1086(P5およびP6)、ならびに1087、1088(P7およびP8)に与えられる。この時点で、命令およびデータの中精細の分解処理が達成されている。
高精細の分解処理または並列処理は、さらなるアルゴリズムの分解処理により実行され、プロセッサ1081から1088の各々の出力は、たとえば、図示のとおり、複数の基本的アルゴリズム1101A、1101B、1102A、1102Bから1108Bに分割される。次いで、アルゴリズムの各々は、コンピュータアーキテクチャ100のメモリ空間において、後により詳しく説明されるように、そこでの実行のために、配置され得るMAP素子1121A、1121B、1122A、1122Bから1128Bのうち対応する素子に供給される。
さらに図3では、この発明のMAPシステムコンピュータアーキテクチャ100におけるメモリバンク120の具体的な実現例が、前出の図に示されたMAP素子112のうち代表的なものについて示される。各メモリバンク120は、コンピュータシステムトランクライン、たとえば72ラインのバス124に双方向に結合されるバンク制御論理ブロック122を含む。バンク制御論理ブロック122は、双方向データバス126(たとえば256ライン)に結合され、アドレスバス128(たとえば17ライン)上にアドレスを与えてメモリアレイ130内の特定された場所のデータにアクセスするようにする。
データバス126およびアドレスバス128はまた、MAP素子112に結合される。MAP素子112は、アドレスバス128に結合される制御ブロック132を含む。制御ブロック132はまた、複数の信号ライン136によってユーザフィールドプログラマブルゲートアレイ(「FPGA」)134に双方向に結合される。ユーザFPGA134はデータバス126に直接結合される。特定の実施例では、FPGA134は、ルーセント・テクノロジーズ(Lucent Technologies)OR3T80装置として提供され得る。
コンピュータアーキテクチャ100は、メモリサブシステムまたはメモリ空間に位置し得る1つ以上のMAP素子112を備えた共通の共有メモリにわたって均一なメモリアクセスを用いるマルチプロセッサシステムを含む。前述のように、各MAP素子112は、再構成可能な機能ユニットとして用いられる少なくとも1つの比較的大きなFPGA134を含む。加えて、制御ブロック132と、予めプログラムされたまたは動的にプログラム可能な構成ROMと(後により詳細に述べる)は、再構成可能なMAP素子112が必要とする情報を含み、これにより、特定のアルゴリズムを実行することが可能となる。また、ユーザがプログラム制御下で新しい構成をFPGA134に直接ダウンロードすることも可能であるが、場合によっては、これは複数のメモリアクセスを消費することがあり、アルゴリズムが短命である場合システム性能を全体的に低下させるおそれがある。
FPGAは、いくつかの理由で、図示されるアプリケーションにおいて特定の利点を有する。第一に、市販されているFPGAは、現在、意味のある計算機能を実行するために十分な内部論理セルを含む。第二に、これらはマイクロプロセッサと同等の速度で動作することができるので、速度整合バッファの必要性がなくなる。さらに、FPGAの内部プログラマブルルーティングリソースは、現在十分に広範なものであるので、入出力(「I/O」)ピンの位置を再割当てする必要なしに、意味のあるアルゴリズムをプログラミングすることができる。
たとえば、メモリサブシステムまたはメモリ空間にMAP素子112を配置することにより、これは、メモリ読出および書込コマンドを使用することによって容易にアクセスすることができ、これにより、さまざまな標準オペレーティングシステムを用いることが可能となる。対照的に、他の従来の実現例は、プロセッサの中または近くにいずれの再構成可能な論理をも配置することを提案し得るが、これらの従来の実現例は、マルチプロセッサ環境においては一般的にそれほど効果的ではない。というのも、この発明のシステムおよび方法とは異なり、1つのプロセッサしかそれに高速アクセスしないからである。したがって、再構成可能な論理は、マルチプロセッサシステム内のすべてのプロセッサのそばに配置されなければならず、これによりシステム全体の費用が増す。加えて、MAP素子112は、ダイレクトメモリアクセス(「DMA」)と称されるメモリアレイ130自体にアクセスすることができ、これによりプロセッサから独立しかつ非同期的にタスクを実行することが可能となる。これに比べて、これをプロセッサの近くに配置した場合、メモリにアクセスするためにシステムルーティングリソースについてプロセッサと競合しなければならず、プロセッサ性能に悪影響を与える。MAP素子112がDMA能力を有する(これによりメモリへの書込が可能となる)ので、かつ、メモリへの書込を介してそのオペランドを受取るので、MAP素子112が別のMAP素子112へ結果を送ることが可能となる。これは、大きなタスクの非常に広範なパイプライン処理および並列処理を可能にする非常に強力な特徴であり、これらのタスクのより迅速な完了を可能にする。
実現され得るアルゴリズムの多くは、オペランドを受取り、結果を生成するのに多くのクロックサイクルを必要とする。1つのこのような例は、64クロックサイクルをとる乗算であり得る。この同じ乗算は、また、何千ものオペランドで実行されなければならない場合もある。このような状況では、入来するオペランドは順次提示され、このため、第1のオペランドは出力において結果を生成するのに64クロックサイクルを必要とするが、第2のオペランドは、入力において1クロックサイクル後に到達し、出力において1クロック後に結果を示すこととなる。したがって、64クロックサイクルの初めの遅延の後、新しい出力データは、最後のオペランドの結果が現われるまで、連続するクロックサイクルごとに現われることとなる。これは「パイプライン処理」と呼ばれる。
マルチプロセッサシステムでは、オペレーティングシステムがタスクの途中でプロセッサを止め、これを優先順位のより高いタスクに再割当てし、次いでこれまたは別のものを戻して最初のタスクを完了させることは極めて一般的である。これがパイプライン処理されたアルゴリズムと組合された場合、(プロセッサがリストの途中でオペランドの発行を止め、結果の受入れを止めた場合)、既に発行されているが、まだパイプラインを通過していないオペランドに関して問題が生じる。この問題に対処するために、ソフトウェアとハードウェアとの組合せを含む解決法がこの明細書中に開示される。
いかなるタイプの従来の再構成可能なハードウェアをも利用するために、プログラマは、自身のアプリケーションプログラムコードに必要なコマンドを埋込み得る。この方策の欠点は、そのような場合、プログラムを、MAPハードウェアに特有なものとなるよう合わせなければならないことである。この発明のシステムによりこの問題が解消される。マルチプロセッサコンピュータは、しばしば、パラレライザ(parallelizer)と称されるソフトウェアを用いる。このソフトウェアの目的は、ユーザのアプリケーションコードを分析し、これをプロセッサ間でいかにして最良に分割するかを決定することである。この発明は、従来のパラレライザに勝る顕著な利点を提供し、そのシステムのためにMAP素子112に存在するアルゴリズムを表わすユーザコードの部分を認識し、次いで、MAP素子112を別の計算素子として扱うことを可能にする。次いで、パラレライザは、MAP素子112を利用するのに必要なコードを自動的に生成する。これにより、ユーザが自身のコードに直接アルゴリズムを書込むことが可能となるので、それはより携帯可能となり得、ユーザがMAP素子112を利用するために有する必要があるシステムハードウェアの知識を軽減する。
さらに図4では、MAP制御ブロック132のブロック図がより詳細に示される。制御ブロック132は、アドレスバス128から複数のコマンドビット(たとえば、17)をコマンドデコーダ150で受取るよう結合される。次いで、コマンドデコーダ150は、8ビットのバス154上で、ステータスレジスタiS2の群へ複数のレジスタ制御ビットを与える。コマンドデコーダ150はまた、ライン156上で、単一ビットの最終オペランドフラグをパイプラインカウンタ158に与える。パイプラインカウンタ158は、バス162上で等化コンパレータ160へ8ビットの出力を与える。等化コンパレータ160はまた、バス136上で、FPGA134から、パイプラインの深さを示す8ビットの信号を受取る。等化コンパレータ160は、パイプラインが空であると判断すると、ステータスレジスタ152への入力のために、ライン164上で単一ビットのパイプライン空フラグを与える。ステータスレジスタ152はまた、バス136上でFPGA134から8ビットのステータス信号を受取るよう結合され、バス136および154ならびにライン164上の信号に応答して、バス166上で64ビットのステータスワード出力を生成する。
コマンドデコーダ150はまた、図示のとおり、ライン168上で、構成マルチプレクサ(「MUX」)170に5ビットの制御信号を与える。構成MUX170は、ライン176上で、256ビットのパラレル−シリアル変換器172の単一ビットの出力を受取る。256ビットのパラレル−シリアル変換器172の入力は、256ビットのユーザ構成パターンバス174に結合される。構成MUX170はまた、バス178上で、(ROM182と示される)構成ROMから16の単一ビット入力を受取り、コマンドデコーダ150からのバス168上の制御信号により選択されるように、ライン180上で、ユーザFPGA134に単一ビットの構成ファイル信号を与える。
動作において、プロセッサ108がオペレーティングシステムによって停止されると、このオペレーティングシステムは、バス128上で、アドレスフィールドに埋込まれたコマンドビットを用いることにより、MAP素子112へ最終オペランドコマンドを発行するだろう。このコマンドは、制御ブロック132のコマンドデコーダ150によって認識され、ハードウェアパイプラインカウンタ158を開始させる。アルゴリズムがFPGA134に最初にロードされた場合、制御ブロック132に接続されるいくつかの出力ビットは、等化コンパレータ160に入力されるバス136上に、そのパイプラインを通過するのに必要とされるクロックサイクルの数(すなわち、パイプラインの「深さ」)のバイナリ表現を表示するよう構成された。最終オペランドコマンドを受取った後、制御ブロック132内のパイプラインカウンタ158は、そのカウントがその特定のアルゴリズムに対するパイプラインの深さと等しくなるまでクロックサイクルを数える。その時点で、制御ブロック132内の等化コンパレータ160は、ステータスレジスタ152の内部の群におけるライン164上でビジービットをデアサートする。最終オペランド信号を発行した後、プロセッサ108は、ステータスレジスタ152を繰返し読出し、バス166上のいかなる出力データも受入れるだろう。ビジーフラグがデアサートされると、このタスクを停止させ、MAP素子112を別のタスクのために利用することができる。MAP素子112を構成されたままにし、プログラムを異なるプロセッサ108に転送し、タスクを中断されたところから再開させることも可能であることに留意されたい。
所与の適用例におけるMAP素子112の使用の効果を評価するために、使用に対して何らかの形のフィールドバックが必要とされる。したがって、MAP素子112は、出力データに対する入力オペランドの数、時間に対するアイドルサイクルの数、および時間にわたって受取られたシステムモニタ割込の数などの効率に関する要因を監視することができるように、制御ブロック132内に内部レジスタを備え得る。MAP素子112が有する利点の1つは、その再構成可能な性質のために、監視される実際の機能および機能のタイプもまた、アルゴリズムの変化に従って変化し得ることである。これにより、常にすべての要因を監視する必要なしに、監視される可能性のあるほぼ無数の要因がユーザに与えられる。
さらに図5には、この発明に従ったコンピュータシステム20の代替的な実施例の一部の機能ブロック図が示される。図示されるコンピュータシステム20では、個々のMAP素子112A、112Bなどは、各々、個々のプロセッサボード22Aおよび22Bにそれぞれ密接に関連付けられる。図示されるように、MAP素子112の各々は、MAP素子112を互いに直接結合するための独立したチェーンポート24を含む。
MAP素子112の個々の要素は、チェーンポート24によって互いに結合されることに加えて、各プロセッサボード22のプロセッサボード22書込トランク26と読出トランク28との間に結合される。スイッチは、いずれの所与のプロセッサボードの書込トランク26と読出トランク28とを、他のいずれのメモリサブシステムバンク16A、16Bなどに結合する。概略的に示されるように、メモリサブシステムバンク16の各々は、制御ブロック112および1つ以上のメモリアレイ130を含む。
さらに図6には、個々のMAP素子112の機能ブロック図が示され、ここで、各MAP素子112は、共通のメモリDMA能力を提供するオンボードメモリ40と制御ブロック46とを含む。簡潔に述べると、書込トランク26および読出トランク28は、共通のメモリスイッチから制御ブロック46に結合され、この制御ブロック46は、アドレスライン48上で、メモリ40にアドレスを与え、ユーザアレイ42からアドレスを受取る。書込トランク26上で供給されるデータは、制御ブロック46によりデータライン44上でメモリ40へ与えられ、メモリ40から読出されるデータは、これらの同じライン上で、ユーザアレイ42および制御ブロック46の両方に与えられ、その後、読出トランク28上に提示される。示されるように、チェーンポート24は、読出および書込データが他のMAP素子112と直接通信するように、ユーザアレイ42に結合される。
さらに図7には、個々のMAP素子112のさらなる機能ブロック図が示され、特に、その入力バッファ40および出力FIFO74部分として機能する前出の図のメモリ40が示される。この図では、図6のMAP素子112の代替的な図が示され、ライン50(または書込トランク26)上のメモリ入力データは、入力バッファ(メモリ40)と、チェーンポート24に結合される再構成可能なユーザアレイ42とに供給される。再構成可能なアレイ42の出力は、出力FIFO74に供給されて、メモリ出力データをライン94(または読出トランク28)上およびチェーンポート24に与える。入力バッファ40、再構成可能なアレイ42および出力FIFO74は、制御ブロック46の制御下で動作する。
上述の図面に関して、各MAP素子112は、入力オペランド記憶部(すなわち、メモリ/入力バッファ40)と、ユーザアレイ42と、インテリジェントアドレス生成部制御ブロック46と、出力結果記憶部FIFO74と、I/Oポートとを含むプリント回路基板からなり、チェーンポート24およびホストシステムメモリアレイを介して他のMAP素子112との接続を可能にし得る。
入力オペランド記憶部
入力記憶部は、ホストシステムにおけるマイクロプロセッサ12のうち1つからのメモリ書込により、またはMAP DMAにより最初にロードされるメモリチップからなる。バッファ40は、特定の実施例では、72ビット幅および2Mエントリの深さであり得る。これにより、必要な場合、64のビットオペランドとデータ修正のための8つのエラー修正コード(「ECC」)ビットとの記憶が可能となる。ユーザアレイ42により、このバッファ40からオペランドまたは参照データを読出すことができる。データは使用後も破損されず、このためMAP素子112がオペランドを再利用することが可能となる。バッファ40がロードされた後にだけオペランドを読出すことにより、オペランドが時間順にMAP素子112に到達する必要がなくなる。MAP素子112が要求するのは、記憶順序を維持することだけであり、これにより、入力バッファ40に記憶される前にオペランドがばらばらの順序で到達することが可能となる。これはキャッシュライン転送を意味する。キャッシュライン転送とは、典型的には時間による順序で実行することはできないが、未キャッシュ転送の4倍の帯域幅を有し得るものであり、これを用いて入力バッファ40をロードすることができる。
インテリジェントアドレス生成部
入力バッファ40の内容は、これに対して、制御ブロック46からアドレスおよび読出イネーブル信号を与えることによりアクセスされる。これらのアドレスは、2つの方法のうち1つで生成され得る。第一に、プログラマブルユーザアレイ42によりアドレスビットをアドレス生成部制御ブロック46へ与えることができ、そこで、このアドレスビットは他の制御信号と組合わされ、入力バッファ40へ発行される。これにより、参照データへのアクセスに必要とされるような、バッファ40への極めてランダムなアクセスが可能となる。別のアドレスモードは、スタートアドレス、ストップアドレスおよびストライドを含むスタートコマンドを発行するようユーザに要求する。アドレス生成部制御ブロック46は、次いで、スタートアドレスにおいて入力バッファ40へのアクセスを開始し、ストップアドレスに到達するまで、送り出される最後のアドレスにストライド値を加えることにより、これにアクセスし続けるだろう。これは、同様の要素がアレイから抽出される、ベクトル処理を行なう場合に非常に有用な技術となる可能性がある。ストライドはスタートアドレスとストップアドレスとの間のデルタ未満のいかなる数字でもあり得るので、MAP素子112は、高性能の計算市場において非常に有用なデータ収集機能を極めて容易に行なうことができる。
ユーザアレイ
アレイ42は、MAP素子112の実際の計算機能を実行する。これは、MAP素子112の他の要素に相互接続された1つ以上の高性能フィールドプログラマブルゲートアレイ(「FPGA」)を含み得る。後により詳細に開示されるこの発明の特定の実現例は、500,000を超える使用可能なゲートをもたらす4つのこのような装置を用い得る。これらの構成要素は、選択された構成ROMの内容をFPGAにロードするユーザコマンドにより構成される。構成後、ユーザアレイ42は、これが行うようプログラミングされたいかなる機能も実行することができる。ベクトル処理に対してその性能を最大限にするために、アレイ42は、2つのオペランドのストリームに同時にアクセス可能であるべきである。これは、1つの72ビット幅の入力ポートを入力オペランド記憶部に接続し、第2の72ビット幅のポートをチェーン入力コネクタポート24に接続することにより達成される。このコネクタにより、MAP素子112が、先のMAP素子112によって与えられたデータを用いることが可能となる。チェーンポート24により、単一のMAP素子112アセンブリの能力をはるかに超えるであろう機能を実現することが可能となる。加えて、示される特定の実現例では、オペランドのみがチェーンポート24を介して転送されるので、帯域幅はメインメモリの帯域幅を超え、結果として、固定命令マイクロプロセッサベースのプロセッサ12より性能が優れたものとなり得る。
FPGAは、回路が何倍または何分の1のシステムクロック周波数で実行するかをユーザが特定することを可能にするオンボード位相ロックループ(「PLL」)も含み得る。これは、ある複雑な機能が、システムクロック周波数より遅いクロックを必要とする可能性があるので重要である。また、ユーザが、結果として性能は低いがより早く市場に出ることとなる機能を統合することを望む場合もある。PLLを用いることにより、これらの制約にともに対処することができる。PLLを利用する可能性における別の利点は、現在のシステムクロック速度より速く動作し得る次世代のFPGAをより低速のシステムに後付けすることができ、PLL周波数乗算特徴を用いることにより、MAP素子112をシステムの残りの部分よりも速く実行させることができるという点である。これは、結果として、より高性能のMAP素子112となる。
出力結果の記憶
ユーザアレイ42が結果を生成すると、これを72ビット幅の経路を介して出力結果記憶素子(たとえば、出力FIFO74)へ送り、次にこの出力結果記憶素子が、72ビット幅の読出ポートまたは72ビット幅のチェーンポート24へこのデータを送り、さらに次のMAP素子112に送ることができる。この記憶装置は複数の異なったメモリタイプから作られ得る。FIFO74記憶装置を用いることにより、直ちにホストマイクロプロセッサが読出すことのできない、または出力チェーンポート24を介して次の段階へ送ることのできない結果が一時的に保持されることとなる。この特徴により、チェーンにおけるMAP素子112は異なる周波数で実行することが可能となる。この場合、出力FIFO74は速度整合バッファと同様に機能する。非連鎖動作では、この結果を読出しているマイクロプロセッサを遅延し得る。この場合、FIFO74は、結果が読出されるのを待機する間にMAP素子112が「ストール」する(stalling)ことを防ぐ。この発明の特定の実施例では、72ビット幅および512Kエントリの深さであるFIFO74を用いてもよい。上述の特許出願に開示されるように、出力記憶部はまた、共通メモリに見出されるような真のメモリ装置であり得る。この場合、書込アドレスは、ユーザアレイ42またはアドレス生成部により与えられる必要があり、読出アドレスは、メモリから結果を読出すエンティティにより与えられる必要がある。これはいくらか電気的に複雑である可能性があるが、いかなる順序でも結果にアクセスし得るという利点を有する。
DMAの向上
上述の特許出願では、共通メモリに対してDMAを実行するMAP素子112の能力が開示された。この能力を、主にオペランドの動きおよび結果に関して述べたが、同じ概念をコマンドに適用することも可能である。通常一連のコマンドを直接MAP素子112に書込むとされるマイクロプロセッサはまた、同じコマンドを共通メモリにも書込み得る。一連のコマンドの書込の後、マイクロプロセッサはMAP素子112に割込を送ることができる。次いで、MAP素子112は共通メモリからコマンドを読出し、企図されたとおりにこれらを実行し得る。このコマンドリストは、前述の特許出願において特定されるDMA命令を含み得るので、MAP素子112は、さらなるプロセッサ12のいかなる介入もなしに、その入力オペランドをすべて検索し、その結果をすべて記憶し得る。MAP素子112の処理が完了すると、MAP素子112はマイクロプロセッサに割込んで、共通メモリにおいて結果が入手可能であるという信号を送り得る。この態様での動作により、MAP素子112とマイクロプロセッサとの間で要求される相互作用が減じられる。
オンボードライブラリ
当初開示されたように、電気的に消去可能なプログラマブルROM(「EEPROM」)または類似の装置を用いて、ユーザアレイ42のための機能のライブラリを保持することができる。MAP素子112自体のROMにこれらのアルゴリズムを配置することにより、ユーザアレイ42の機能を迅速に変更することができる。この態様では、ユーザプログラムは、ボードROMのうち1つに新しい機能をダウンロードし、これによりその内容を更新し、MAP素子112が新しい機能を実行できるようにし得る。特定の実現例では、これは、ライブラリ機能のうちの1つを予約して、EEPROMプログラマの機能を実行することにより達成され得る。ROMを更新するためのコマンドを受取ると、ユーザアレイ42はこの特別の機能を備えるよう構成され、データがMAP素子112入力記憶部(たとえば、入力バッファ40)から読出され、次いで、ROMにロードされて更新処理を完了し得る。
さらに図8では、個々のMAP素子112のより詳細な機能ブロック図が、図6および図7において先に示されるのと同様に示される。この図では、MAP素子112は、メモリまたは入力バッファ40として機能する拡張同期ダイナミックランダムアクセスメモリ(ESDRAMTM、コロラド州、コロラドスプリングスのエンハスト・メモリ・システムズ・インコーポレイテッド(Enhanced Memory Systems, Inc.)の商標)を含む。ESDRAMメモリは、オンチップスタティックランダムアクセスメモリ(「SRAM」)行レジスタで増強して装置の読出動作を速めるダイナミックランダムアクセスメモリ(「DRAM」)アレイを組込む超高速メモリ装置である。
この図では、前述と同様の構造には同様の参照番号が付され、これについては、上述の記載で十分であるだろう。ライン50上のメモリ入力データは、伝送ゲート52を介してデータライン44に供給されて、メモリ40およびユーザアレイ42に与えられる。同様に、アドレス入力はライン54上で受取られて、伝送ゲート56を介して、メモリ40および制御ブロック46に結合されるアドレスライン48に与えられる。制御ブロック46は、伝送ゲート52および56を動作的に制御し、ライン60上でFS11信号を受取り、ライン62上でLOCKOUT信号を与える。
ユーザアレイ42は、図示のとおり、チェーンポート24に結合され得、ライン64上でユーザアドレス信号を、かつライン66上で次のアドレス信号を制御ブロック46に与える。制御ブロック46は、ライン68上で、入力がユーザアレイ42に対して有効であるか否かを示す。ユーザアレイ42の出力は、ライン70上で、ライン72上の書込クロック(「WRTCLK」)信号とともに、FIFO74または他の出力記憶装置に与えられる。FIFO74は、ライン78上で、制御ブロック46から読出クロック(「RDCLK」)信号を受取る。FIFO74または制御ブロック46からの出力は、ライン80上で、伝送ゲート76を介してチェーンポート24へ選択的に供給され、および/または伝送ゲート82を介してライン94上でメモリデータを与え得る。制御ブロック46はまた、ライン90上でチェーン読出信号を受取り、ライン92上でチェーン有効出力を戻す。制御ブロック46は、ライン88上でエラー修正コード(「ECC」)出力信号を与える役割を果たす伝送ゲート86に加えて、伝送ゲート76および82を動作的に制御する。
前述のように、MAP素子112は、1つ以上の回路基板を含み得、たとえば、制御ブロック46として機能する1つのルーセント・オルカTM(Lucent OrcaTM)OR3T80 FPGAと、ユーザアレイ42を形成する4つのOR3T125 FPGAとを利用し得る。ユーザは、それに書込まれるデータを変更し、MAP素子112が読出されるとこの変更されたデータを与えるこれらのFPGAにおいて、アルゴリズムを実現することができる。加えて、各MAP素子112はまた、ボード上に4個の構成ROMを8組含み得る。これらのROMはユーザにより予めプログラミングされ、プログラム制御下でユーザアレイ42の4つのユーザFPGAを構成する。これらのROMは、外部で、またはシステム内に位置するMAP素子112上にある間のどちらかで、再プログラミングされ得る。
MAP素子112は、通常のメモリ読出(READ)および書込(WRITE)コマンドを用いることによりアクセスされる。図示および説明される代表的な実施例では、ユーザは、128ビットのパケット(すなわち、2つの64ビットワードの形式)をユーザアレイ42チップに直接書込むか、または256ビットのパケット(4つの64ビットワードの形式)を専用の16MB ESDRAMメモリ入力データバッファ40に書込むことにより、MAP素子112にオペランドを与えることができる。MAP素子112からの読出は、常に、2ワードのパケットを戻し、この戻されたパケットの部分はステータス情報を含む。これについては後により十分に記載する。加えて、入来するアドレスはコマンドにデコードされる。これも同様に後に規定する。
MAP素子112はまた、ハードウェアを介して連鎖させる能力も有する。これにより、プロセッサ12の介入なしに、1つのMAP素子112からの出力データを、次のMAP素子112のユーザアレイ42チップへ直接移すことが可能となる。チェーンの長さは、システム全体におけるMAP素子112の数により制限される。MAP素子112の総数はまた、いくつかのより小さな独立したチェーンに分けることができる。動作の連鎖モードでは、MAP素子112は、依然として、その入力バッファ40から読出して、相互概算表などの参照情報にアクセスすることができる。
論理規則
この明細書中に開示されるこの発明のコンピュータシステムの代表的な実現例では、プロセッサ12は、ペンティアム(R)(PentiumTM)(カリフォルニア州、サンタクララ、インテル・コーポレーション(Intel Corporation)の商標)プロセッサを含み得、これらの装置は、戻されたステータスワードを含むMAP素子112に対して送受信されるすべてのアドレスビットおよびデータワードに適用するアクティブな「ロー」論理規則を利用する。
さらに図9には、ユーザアレイ相互接続200の図が示され、これは、たとえば、水平、垂直および斜めのバスを介して相互接続される4つのユーザFPGAを利用することにより、単一のFPGAの容量を超えるおそれのある設計において拡張を可能にする。この点に関して、相互接続図200は前出の図のユーザアレイ42に対応し、入力データバス210はデータライン44に対応し、チェーン入力バス212はチェーンポート24に対応し、出力バス214は図8のライン70に対応する。ユーザアレイ42を含む4つのFPGA202、204、206および208は、各々、入力データバス210、チェーン入力バス212および出力バス214に結合され、ならびに、上側のバス216、右側のバス218、下側のバス220、左側のバス222および斜めのバス224と226とによって、互いに結合される。
ユーザアレイ相互接続
前述のように、4つのユーザFPGA(202、204、206および208)は、一連の水平、垂直および斜めのバスを介して相互接続され、これにより、ユーザアレイ42のための単一のFPGAの容量を超える設計に対して、既存の対称的な内部チップルーティングを最も容易に拡張することが可能となる。示される具体例では、バスのサイズは、少なくとも64ビットのバス幅を維持しつつ、可能な限り多くのピンを利用するよう選択された。
アドレス構造
MAPはシステムのメモリアレイに配置され得、アドレスフィールドの一部をデコードするので、プロセッサ12により生成されるアドレスは正確にアセンブルされなければならない。以下の表1は、プロセッサ12およびMAP素子112ボードで見られるアドレスビットの割当を示す。プロセッサボードブリッジ素子は、システムの大きさに基づきMAP素子112に実際に伝送されるビット位置を再割当するだろう。
フィールド選択ビット
フィールド選択ビットは、ブリッジ素子から出る2つの最上位アドレスビットであり、これを用いて、メモリスタックにおける4つの可能なメザニン(mezzanine)カードのいずれがアクセスされているかを選択する。すべてのメザニンカードに対するフィールド選択ビットは、P6バスビットA[21:20]の状態により決定される。ビットA21がセットされる場合、MAP素子112動作は進行中であり、フィールド選択ビットは11にセットされる。MAP素子112は、1つのMAP素子112が各セグメントのバンク0になるまで、第1のMAP素子112はセグメント0バンク0にあり、第2の素子はセグメント1バンク0にあり、などとなるように、セマフォ(semaphore)レジスタのちょうど上方に常に配置される。これらは、次いで、セグメント0バンク1に配置され、すべてが配置されるまで同じパターンが続けられる。これにより、これら素子は連続したアドレスブロックに保持される。
チップ選択ビット
次の3つの最上位ビットは、チップ選択ビットである。これらは、通常、メザニンボード上の8つの行のメモリチップのうちいずれが活性化されるかを選択する。MAP素子112については、チップ選択0および1が用いられる。チップ選択0を用いてESDRAMメモリ入力バッファ40に書込み、チップ選択1を用いて制御ブロック46とユーザアレイ42のユーザチップとにアクセスする。
メモリアドレスビット
P6バス上の次の19個の最上位ビットは、通常、使用の際にキャッシュラインのメモリチップ内の実際の位置を選択するメモリアドレスビットである。これらのビットのうち5つが、MAP素子112によって、後により詳細に述べられる種々のコマンドにデコードされる。
バンク選択ビット
次の4つの最上位ビットはバンク選択ビットである。これらのビットを用いて、所望のメモリまたはMAP素子112が配置されるセグメント内の特定のバンクを選択する。
トランク選択ビット
次の4つの最上位ビットはトランク選択ビットである。これらのビットの数は、システムにおけるセグメントの数に応じて0から4の範囲にわたる。これらのビットを用いて、所望のメモリまたはMAPを含むセグメントを選択する。未使用のビットは0にセットされる。
Figure 2009080799
ワード選択ビット
次の2つの最上位ビットはワード選択ビットである。これらのビットは、4ワードキャッシュラインの各ワードが用いられている順序を決定する。CS[1:0]が01にセットされる場合、これらのビットはデコードされたコマンドの一部である。
MAPコマンドデコード
CMD[3:0]は、以下の表2に示されるように、CS[1:0]が01である場合、MAP制御ブロック46チップにより以下のコマンドへデコードされる。このデコードは、トランザクションがREADまたはWRITEのどちらであるかにも依存する。加えて、SEL[2:0]を、後に記載されるRECONおよびLDROMコマンドとともに用いて、8つのROMのいずれが用いられるかを選択する。
Figure 2009080799
ヌル(Null)コマンド記述
MAP素子112がコマンドを能動的に受取らない場合、すべての入力が1にセットされ、すべての内部回路はスタティックに保持される。したがって、「1111」という入来コマンドをどんなものとしてもデコードすることができず、使用することができない。
RMB
書込トランザクション中に発行されるこのコマンドにより、制御ブロック46チップがユーザアレイ42のユーザチップに対してグローバルセットリセット(「GSR」)を生成し、制御チップが再プログラミングされる。すべての内部ラッチはリセットされるが、ユーザチップの構成は変更されない。読出されるのを待機していたデータがすべて失われることとなる。
RUC
書込トランザクション中に発行されるこのコマンドにより、制御チップが、ユーザアレイ42の4つのユーザFPGAすべてに対するGSR信号を生成する。すべての内部ラッチがリセットされるが、構成は変更されない。いずれのオペランドも失われるが、制御ブロック46チップにおいて読出されるのを待機しているデータは失われることはない。
RECON
書込トランザクション中に発行されるこのコマンドにより、制御チップが、ユーザアレイ42の4つのユーザFPGAを、SEL[2:0]により選択されるROMとともに再構成する。依然として処理中のいずれのオペランドも失われるが、制御チップにおいて読出されるのを待機しているデータは失われることはない。
LASTOP
このコマンドは書込トランザクション中に発行されて、MAP素子112制御ブロック46チップに、これ以上オペランドを送らないこととパイプラインをフラッシュ(flush)すべきであることとを知らせる。制御チップはパイプラインカウンタを開始し、パイプラインの深さに達するまで読出データを与え続ける。
WRTOP
このコマンドは書込トランザクション中に発行されて、MAP素子112制御ブロック46チップに、それがユーザ回路に直接送られる有効オペランドを受取っていることを知らせる。
DONE
このコマンドは書込トランザクション中に発行されて、MAP素子112制御ブロック46チップに、プロセッサ12がMAP素子112の使用を終えたことを知らせる。制御チップはステータスワードにおけるビジービットをリセットし、新しいユーザを待つ。ユーザ回路に現在ロードされている構成は変更されない。
LDROM
このコマンドは書込トランザクション中に発行されて、MAP素子112制御ブロック46チップに、SEL[2:0]により特定されるROMがアドレス0で開始する入力バッファ40の内容を再ロードされるべきことを知らせる。これにより、8つのオンボードアルゴリズムのうち1つに不揮発性変化がもたらされることとなる。
START
このコマンドは書込トランザクション中に発行され、スタートアドレス、ストップアドレス、自動/ユーザ選択およびストライドを入力コントローラに送る。次いで、この入力コントローラが入力バッファ40を制御し、ストップアドレスがヒットされるまで、これらのパラメータを用いてユーザアレイ42のユーザチップにオペランドを転送し始める。この命令に伴うデータワード0は、ビット0から20にスタートアドレス、ビット23から43にストップアドレス、ビット46から51にストライド、および、ビット位置54にユーザ/自動ビットを含む。すべての場合、各ビット群の最下位ビット(「LSB」)は、その値のLSBを含む。
RDSTAT
このコマンドは読出トランザクション中に発行されて、ステータスワードをプロセッサ12に戻すようにする。このトランザクションは、LASTOPコマンドの後に続く場合、パイプラインカウンタを増分することはない。ステータスワードの詳細は、後の表4に示される。
RDDAT
このコマンドは読出トランザクション中に発行されて、2つのデータワードをプロセッサ12に戻すようにする。このトランザクションは、LASTOPコマンドの後に続く場合、パイプラインカウンタを増分することとなる。ステータスワードの詳細も表4に示される。
RDDAST
このコマンドは読出トランザクション中に発行されて、ステータスワードおよびデータワードをプロセッサ12に戻すようにする。
SEL[2:0]デコード
SEL[2:0]ビットは2つの目的のために用いられる。RECONまたはLDROMコマンドとともに用いられる場合、これらは、8つのオンボードROMセットのうちいずれがその命令に対して用いられるのかを決定する。これは以下の表3に規定される。
Figure 2009080799
ステータスワード構造
読出トランザクションが発生するたびに、その読出を発行するプロセッサ12にステータスワードを戻す。この64ビットワードの構造は以下のとおりである。
Figure 2009080799
単一MAP素子動作
MAP素子112の通常の動作は以下のとおりである。電源投入後、MAP素子112制御ブロック46チップは、それ自体を自動的に構成およびリセットする。ユーザアレイ42の4つのユーザチップにはいかなる構成も存在しない。MAP素子112を用いることを欲するプロセッサ12は、まず、RDSTATコマンドをMAP素子112に送る。
MAP素子112が現在使用中でない場合、ステータスワードはビット63「0」(ビジーでない)とともに戻され、このビジービットは、次いで、MAP素子112上で1にセットされる。さらなるRDSTATまたはRDDASTコマンドはいずれも、MAP素子112がビジーであることを示す。
ビジービットを評価し、それが「ロー」であることを観察した後、プロセッサ12は、セットされた適切な構成ROM選択ビットとともにRECONコマンドを発行する。これにより、MAP素子112がユーザアレイ42のユーザチップを構成する。これが起こっている間、ステータスビット60は「ロー」である。プロセッサ12はRDSTATを発行し、ビット60をそれが「ハイ」に戻るまで評価する。この時点では、構成が完了し、ユーザアレイ42のユーザチップはそれら自体をリセットして、内部レジスタをすべてクリアしている。次いで、ユーザはRUCコマンドを発行して、ユーザアレイ42または制御ブロック46回路に残された先のデータがいずれも確実にクリアされるようにする。
ここで、ユーザは、MAP素子112に対してデータを提示するのに利用可能な2つの方法を有する。それは、2つのクワッドワードを一度にユーザアレイ42のユーザチップに直接書込み得るか、または入力バッファ40をロードし得るかのどちらかであり得る。
クワッドワードの書込は、少数の基準値をユーザアレイ42に与えるのには有用であるが、未キャッシュの書込に対する各転送につき128ビットの制限のせいで、入力バッファ40を用いるよりも低い帯域幅を有する。このモードを用いるために、WRTOPコマンドが送られ、これがユーザ回路に2つの64ビットワードを引き渡す。アルゴリズムの以前の知識に基づいて、プログラムは、RDDASTを実行し得る前にオペランドをいくつ発行し得るか知っているはずである。構成後にステータスビット0から7を評価することにより、この計算に対するパイプラインの深さもまた示される。
大きなデータセットが演算される場合、または大量のオペランドが再利用される場合、入力データバッファ40を用いるべきである。この発明の特定の実施例では、このバッファは、ESDRAMメモリ記憶部の2Mクワッドワードを含み得る。このメモリはMAP素子112上に位置し、キャッシュライン書込の実行によりアクセスされる。これにより、トランザクションごとに4つの64ビットワードをロードすることが可能となる。データセットがロードされると、STARTコマンドが発行される。
制御ブロック46チップは、ロックアウトビットをアサートして、入力バッファ40にアクセスしないようにメモリコントローラに信号を送ることとなる。これはまた、先に規定されたフィールドに従って、このトランザクションのデータワード「0」を評価することとなる。
自動/ユーザビットが「1」である場合、アドレスは制御ブロック46チップにより自動的に生成される。第1のアドレスは、転送されたスタートアドレスである。次いで、このアドレスは、ストップアドレスがヒットされるまでストライド値ずつ増分される。このアドレスはアクセスされる最後のアドレスである。
この時点で、ロックアウトビットが解除され、メモリコントローラは入力バッファ40にアクセスできる。入力制御チップは、ロックアウトビットがセットされている間ESDRAMメモリを維持するために、メモリコントローラにより与えられるリフレッシュ信号でもって入力バッファ40へのアクセスをインタリーブしなければならないことに注目されたい。
自動/ユーザビットが「0」であった場合、アドレスがユーザアルゴリズムにより入力制御ブロック46チップに与えられることを除いて、動作は同じである。
STARTコマンドが発行されると、プロセッサ12は出力データの読出を開始することができる。ユーザはまずRDDASTを発行しなければならず、これにより、ステータスワードおよびデータワードが戻されることになる。ステータスワードのビット61が1である場合、データワードは有効である。ユーザは、ステータスワードビット62が1となるまでこの処理を続ける。この時点で、ユーザは、MAP素子112上の出力FIFO74が少なくとも128の有効データワードを含み、次の64回の読出のためにRDDATコマンドを用い得ることを知っている。このコマンドは、いずれのステータスもなしに2つの有効データワードを戻す。64のRDDATコマンドの後、ユーザは再びRDDASTコマンドならびにチェックビット61および62を発行しなければならない。いずれもセットされない場合、FIFO74がこれ以上有するデータはない。61のみがセットされる場合、プログラムはRDDASTコマンドを発行し続けて、FIFO74を空にすべきである。61および62がセットされる場合、プログラムは、別の組の64のRDDATコマンドで再開することができ、すべての結果を受取るまでこの処理を繰返すことができる。
すべてのデータが読出され、ユーザがMAP素子112に対する要求を満たした後、DONEコマンドが発行される。これによりビジーフラグがクリアされ、他のプロセッサ12がこれを用いることが可能となる。入力バッファ40におけるデータは使用の際には破損されず、したがって、DONEが発行されるまで再利用され得ることに留意されたい。
連鎖したMAP動作
MAP素子112は、ベクトル化されたモードまたはVMAPTMのモード(VMAPはこの発明の譲受人である、SRC Computers, Inc.の商標)で実行する能力を有する。このモードにより、プロセッサ12の介入なしに、1つのMAP素子112からの出力データを、次のMAP素子112のユーザアレイ42におけるユーザチップに直接送ることが可能となる。代表的な実施例では、このリンクまたはチェーンポート24は、最大で800MB/秒で動作し、システムにおけるすべてのMAP素子112を連鎖して接続する。1本のチェーンは、少なくとも2つの、および最大ではこのシステムが含む限りのMAP素子112の連続した群で構成されなければならない。複数の重なり合わないチェーンは共存し得る。
このモードを用いるために、ユーザは、単に、チェーンイン[00:63]ピンから入力データを受けるようアルゴリズムを設計する。出力データ経路は変更されず、常にメモリデータバスとチェーンアウト[00:63]ピンとの両方へ向かう。
VMAPモード動作は、そのチェーンにおける第1のMAP素子112上のデータバッファ40にデータがロードされ、すべての結果が最後のMAP素子112から読出されることを除いては、単一のMAP素子112動作と同一である。連鎖したMAP素子112はそれらの入力バッファ40から同時に読出され、これと同時にチェーンインポートからオペランドを受取る。これにより、用いられるバッファ40が、連鎖動作中に基準を供給することが可能となる。これを行なうために、入力バッファ40を最初にロードしなければならず、次いで、チェーンにおけるMAP素子すべてにSTARTコマンドを送らなければならない。チェーンにおける第1のMAP素子112は、STARTコマンドを受取る最後の素子でなければならない。チェーンにおける第1の素子以外のすべてのMAP素子112は、ユーザアドレスモードが選択されているSTARTコマンドを受取らなければならない。
LDROM動作
MAP素子112は、システムの動作中にオンボードROMの内容を外部から再ロードし、これによりアルゴリズムを変更することを可能にする能力を有する。ユーザアレイ42における4つのユーザチップすべてに対して同じROMが同時に更新されることに留意されたい。
これを達成するために、所与の組の4つのROMの構成ファイルが、シリアルストリームから16ビットワードに変換される。次いで、各ROMファイルの第1のワードが組合されて、64ビットワードを形成する。ユーザアレイ42ファイルのユーザチップ0はビット0から15を満たし、チップ1は16から31、チップ2は31から47、チップ3は48から64である。この処理は、4つの個々のファイルすべてが消費されるまで繰返される。これにより結果として、64ビット幅および51,935エントリの深さのファイルとなる。
この組における特定のROMの内容が変更されない場合、そのエントリはすべて0でなくてはならない。このファイルの最上部には、その組における更新すべきすべてのROMに対するすべてのビット位置においてすべて1を含むヘッダワードが追加される。変更されないROMはこのワードにゼロを含むこととなる。次いで、このファイルはMAP素子112入力バッファ40へロードされ、そのヘッダはアドレス0へロードされる。
LDROMコマンドを受取ると、入力コントローラは、ユーザアレイ42のユーザチップに、これらをROMプログラマに変える特別なアルゴリズムをロードする。次いで、これらのチップは、入力バッファ40におけるデータにアクセスし始め、ワード0を評価することとなる。
これが0である場合、そのチップによるさらなる動作は行われない。それが1である場合、このチップはデータを抽出し続け、これを順番に並べ、これをLDROMコマンド中にSELラインの状態により選択されたROMへロードする。これが起きている間、ステータスワードのビット60は0である。完了すると、ビット60は1に戻ることとなる。
ユーザは、有効なユーザアルゴリズムをロードしてユーザアレイ42へ戻し、ROMプログラマアルゴリズムを上書きするために、LDROMコマンドの後に常にRECONコマンドを発行しなければならない。
さらに図10には、この発明の別の代替的な実施例230の機能ブロック図が示され、ここでは、個々のMAP素子112は個々のメモリアレイと密接に関連付けられ、MAP素子112の各々は、MAP素子112を互いに直接連結するための独立したチェーンポート24を含む。図示されるシステムはプロセッサアセンブリを含み、このプロセッサアセンブリは、(FPGAを含み得る)プロセッサスイッチを介して書込トランク26および読出トランク28に双方向に結合される1つ以上のプロセッサ12を含む。
図示される例では、複数のMAP素子112は、(同様にFPGAを含み得る)メモリコントローラ238の制御下で、特定のメモリアレイ246と関連付けられる。図示のとおり、メモリコントローラ238Aおよび238Bの各々は、プロセッサスイッチ234を介して、書込トランク26および読出トランク28によってプロセッサアセンブリ232に結合される。メモリコントローラの各々は、複数のMAP素子112および関連するメモリアレイ246に結合され得、さらに、前述のチェーンポート24によって追加のMAP素子112に結合され得る。図示される実施例では、メモリコントローラ238Aは、1対のMAP素子、すなわち、メモリアレイ246A1に関連付けられる第1の構成バッファ240A1、ユーザアレイ242A1およびFIFO244A1、ならびに、メモリアレイ246A2に関連付けられる第2の構成バッファ240A2、ユーザアレイ242A2およびFIFO244A2と関連して動作する。同様に、メモリコントローラ238Bは、1対のMAP素子、すなわち、メモリアレイ246B1に関連付けられる第1の構成バッファ240B1、ユーザアレイ242B1およびFIFO244B1、ならびに、メモリアレイ246B2に関連付けられる第2の構成バッファ240B2、ユーザアレイ242B2およびFIFO244B2と関連して動作する。
さらに図11Aおよび図11Bでは、別個のタイミング図が示され、システムクロック(「Sysclk」)信号に関連する入力および出力タイミングがそれぞれ表わされる。
インターフェイスタイミング
MAP素子112ユーザアレイ42は、入力メモリバス、入力バッファ40またはチェーンポート24からデータを受けることができる。先に説明および図示されたこの発明の実施例では、これらのいずれかのソースからの64ビットすべてが、制御ブロック46から送られユーザアレイ42のユーザチップにおける入力クロックをイネーブルにする、ライン68上のVALID IN信号(図8)とともに、4つのユーザチップ(図9の202、204、206および208)すべてに送られる。
この信号は、1つ、2つまたは4つのワードが転送されているかどうかに応じて、10、20または40ナノ秒間、ハイに保たれる。ライン68上のこのVALID IN信号は、ユーザアレイ42のユーザチップにおける入力ラッチのクロックイネーブルピンに接続する。次いで、これらのラッチはMAP素子112にユーザ回路を送る。種々の書込動作に対するタイミングが、図11Aに詳細に示される。
入力タイミング
アルゴリズム動作が完了した後、出力データは、DOUT[00:63]ネットに接続されるピン上でユーザアレイ42のユーザチップにおける64ビットワードに形成される。これらのネットは、最終的にはメモリコントローラまたはチェーンにおける次のMAP素子112に読出データを与える、出力FIFO74(図8)に接続する。64ビットの結果を形成した後、ユーザ回路は「FULL」信号が確実に「ロー」であるようにしなければならない。信号が「ロー」である場合、ユーザアレイ42から制御ブロック46とFIFO74上のFIFO♯WE入力とに「ロー」を与えることにより転送を開始する。
同時に、有効データはデータアウト(「DOUT」)ネット上に現われなければならない。このデータは10ナノ秒間有効なままでなければならず、FIFO♯WEは、この10ナノ秒期間が終わるまで「ロー」のままでなければならない。複数のワードが同時に転送される場合、FIFO♯WE入力は、図11Bに詳細に示されるように、この10ナノ秒期間が終わるまで「ロー」のままでなければならない。
出力タイミング
「読出」が発生して「読出」帯域幅を最大限にする前に、3つの結果ワードをユーザアレイ42から転送することができる。出力FIFO74(図8)は、図示される実施例では512kワードを保持することができる。3つのワードが制御ブロック46に保持されると、ステータスワードにおけるワードカウンタはバイナリ「11」を示すこととなる。
パイプライン深さ
システムレベル動作を補助するために、ユーザアレイ42はまた、制御ブロック46にアルゴリズムのパイプライン深さを与えなければならない。この発明の特定の実施例では、これは、データ入力ワードを受取り、このデータを処理し、この結果をFIFO74へ転送し始めるのに必要な100MHzクロックサイクルの数と等しくなるだろう。
初期化パラメータまたは参照番号が実際のオペランドより前に送られるようなアルゴリズムである場合、パイプライン深さは、オペランドを処理するのに必要なクロックサイクルの数にのみ等しくなる。この深さは、FPGA202および/または204(図9)から、ネットDOUT[64:71]上のスタティック8ビット番号として与えられる。これら8ビットの各々は一般的にユーザアレイ42のFPGAのみから出力されるが、これら8ビットは両方のチップにわたって分散され得る。
この発明の特定の実施例では、MAP素子112上で用いられるROMは、20ピンPLCCパッケージにおいてATMELTMAT17LV010として都合よく設けられ得る
。各ROMは、ユーザアレイ42の4つのユーザFPGAのうちの1つに対する構成情報を含む。ユーザアレイ42のユーザチップの各々に8つ以上のROMソケットを割当てることにより、最大8つ以上の固有のアルゴリズムを選択できるようにし得る。8つのROMを利用する実施例では、4つのユーザチップの各々に対してリストにされる第1のROMは、構成0hを選ぶことにより選択され得、最後のROMは構成8hを選ぶことにより選択され得る。
ユーザアレイ42の4つのユーザチップすべてがアルゴリズムにとって必要ではない場合、未使用のチップはそれらのROMソケットの設置を必要としない。しかしながら、ユーザチップのうち少なくとも1つは、たとえアルゴリズムにおいて用いられないとしても正確にプログラミングされたROMを常に含んでいなければならない。というのも、構成タイミングサイクルに関する信号が制御ブロックにより監視されるからである。DINおよびDOUT信号の両方に直接接続するユーザFPGAは、アルゴリズム回路を配置するときには常に最初に用いられるべきである。
さらに図12には、この発明のシステムおよび方法のための代表的な動作環境300の略図が示され、これは、(たとえば、前出の図のマルチプロセッサコンピュータ10またはコンピュータシステム20を含む)たとえば、SRC−6再構成可能なサーバ308に置換され得る典型的なウェブサイトサーバ306、または、オペレーティングシステムの単一のシステムイメージによりすべてのプロセッサが制御される1つ以上の再構成可能なプロセッサとともに1つ以上の業界標準のプロセッサを組込む他のコンピュータシステムを含む。この略図では、複数のパーソナルコンピュータ302または他の計算装置は、インターネット304を介して、(先行技術の実現例における)典型的なウェブサイトサーバ306、または(この発明のシステムおよび方法に従った)再構成可能なサーバ308に結合される。
さらに図13には、前出の図に示される典型的なウェブサイトサーバ306の従来の適用例における従来のデータ処理シーケンス310を例示するフローチャートが示される。シーケンス310は、典型的なウェブサイトサーバ306による処理のために、人口統計データ要素の数「N」の入力から開始する。次いで、これらのN個のデータ要素は、データ要素の最後が決定されるまでステップ314で連続して処理され、決定ステップ316で処理される。したがって、入力データ要素の処理を完了するのに、典型的なウェブサイトサーバ306のマイクロプロセッサによるN回の繰返しが必要とされる。
この長期のデータ処理期間の後、典型的なウェブサイトサーバ306は、ステップ318で、特定のウェブサイト訪問者に特別に適応された新たなウェブページ内容を選択し始めることができ、これにより、更新されたサイト内容がステップ320で表示される。
さらに図14には、極めて高速のデータ処理シーケンス330において、図12の再構成可能なサーバ308を利用する人口統計または他のデータの処理を例示する、対応するフローチャートが示される。処理シーケンス330が再び、入力ステップ332でサイトサーバによって処理するために、N個の人口統計データ要素もしくは他のセキュアソケット、データベースまたは他のデータの入力から開始する。重要なことには、再構成可能なサーバ308は、(MAP素子などの)単一の再構成可能なプロセッサを用いることにより、その能力のおかげで、並行して個々のデータ要素を処理することができる。この能力とは、マイクロプロセッサ内に位置する1つ以上の処理ユニットを再利用することとは対照的に、このジョブのために特化された1つ以上の処理ユニットをインスタンス生成する能力である。示される具体的な実施例では、再構成可能なプロセッサのすべてはシステムのリソースすべてを共有し得、オペレーティングシステムの単一のシステムイメージにより制御され得るが、代替的な実施例では、クラスタ管理ソフトウェアを利用して、有効に、ユーザにはマイクロプロセッサのクラスタがオペレーティングシステムのただ単一のコピーとして見えるようにし得る。いずれにしても、ステップ336で新たな内容を選択し、ステップ338でこれを表示するべくこのサイトを準備するのに、ステップ3341から334Nの完了を1回繰返すだけでよい。
この発明の1つ以上の特定の実施例およびMAP素子に関連してこの発明の原理を以上に記載したが、前述の記載は例示のためだけになされたものであり、この発明の範囲を限定するものではないことは明らかである。特に、前述の開示の教示により、関連技術の当業者には、ウェブサイトで異なる種類のデータを処理するのに用いるための他の変形例が提案されることがわかる。このような変形例は、それ自体が既に公知であり、かつ、この明細書中に既に記載された特徴の代わりにまたはそれに加えて用いることのできる他の特徴を含み得る。特許請求の範囲は、本願では特定の特徴の組合せに対して作成されているが、この明細書中に開示の範囲もまた、関連技術の当業者には明らかであろういかなる新規な特徴、または明示的もしくは暗示的に開示される特徴のいかなる新規な組合せ、またはこれらのいかなる一般化もしくは変形例も、これらがいずれかの請求項において現在クレームされるのと同じ発明に関連しているか否か、および、この発明が直面するのと同じ技術的な問題のいずれかもしくはすべてを緩和するか否かにかかわらず、包含するものであることを理解されたい。本出願人はこれにより、本願またはこれより発生するさらなる出願すべての審査手続期間中にそのような特徴および/またはそのような特徴の組合せに対し、新しい請求項を作成する権利を留保する。
データに加えてコマンドをMAP素子に送るためにダイレクトメモリアクセス(「DMA」)技術を用い得る代替的な実施例における上述の特許出願の開示に従って、マルチアダプティブプロセッサ(「MAPTM」)を用いるマルチプロセッサコンピュータアーキテクチャを示す簡略化された高度な機能ブロック図である。 この発明の特定の実施例に従って、たとえばコンピュータシステムメモリ空間に位置する複数のMAP素子を利用するマルチプロセッサコンピュータアーキテクチャとともに用いるための、可能なコンピュータアプリケーションプログラム分解処理シーケンスを示す簡略化された論理ブロック図である。 前出の図のMAP素子のうち具体的な個々の素子を示すより詳細な機能ブロック図であり、バンク制御論理、メモリアレイおよびそのMAPアセンブリを示す図である。 前出の図のMAPアセンブリの制御ブロックを示すより詳細な機能ブロック図であり、特定の実施例におけるそのユーザFPGAへの相互接続を示す図である。 個々のMAP素子が個々のプロセッサボードと密接に関連付けられ、MAP素子の各々がMAP素子を互いに直接結合させるための独立したチェーンポートを含む、この発明の代替的な実施例を示す機能ブロック図である。 各々が、共通のメモリDMA能力をもたらすオンボードメモリと制御ブロックとを含む、個々のMAP素子を示す機能ブロック図である。 オンボードメモリ機能をその入力バッファおよび出力FIFO部分として示す、個々のMAP素子を示すさらなる機能ブロック図である。 図6および図7に示された個々のMAP素子を示すより詳細な機能ブロック図である。 たとえば、水平、垂直および斜めのバスを介して相互接続されて、単一のFPGAの容量を超える設計において拡張を可能にする4つのユーザFPGAを示すユーザアレイ相互接続図である。 個々のMAP素子が個々のメモリアレイと密接に関連付けられ、MAP素子の各々が、MAP素子を互いに直接結合させるための独立したチェーンポートを含む、この発明の別の代替的な実施例を示す機能ブロック図である。 システムクロック(「Sysclk」)信号に関連する入力および出力タイミングをそれぞれ示すタイミング図である。 システムクロック(「Sysclk」)信号に関連する入力および出力タイミングをそれぞれ示すタイミング図である。 SRC−6再構成可能なサーバと置換され得る典型的なウェブサイトサーバを含む、この発明のシステムおよび方法のための代表的な動作環境を示す略図である。 前出の図に示される典型的なウェブサイトサーバの従来の適用例における従来のデータ処理シーケンスを示すフローチャートである。 アクセスおよびデータ処理時間を大いに改善する、この発明のシステムおよび方法を実現するための再構成可能なサーバを利用する人口統計または他のデータの処理を示す、対応するフローチャートである。

Claims (25)

  1. インターネットサイトでデータを処理するための方法であって、
    前記サイトで、少なくとも1つのマイクロプロセッサおよび少なくとも1つの再構成可能な処理素子を組込む再構成可能なサーバを設けるステップと、
    前記サイトで、前記サイトに結合されるリモートコンピュータに関するN個のデータ要素を受取るステップと、
    前記再構成可能なサーバで、N個の前記再構成可能な処理素子に対しインスタンス生成を行なうステップと、
    前記N個の再構成可能な処理素子のうち対応する要素でもって、前記N個のデータ要素を処理するステップとを含む、方法。
  2. 前記処理されたN個のデータ要素に応答して前記サイトの内容を選択するステップをさらに含む、請求項1に記載の方法。
  3. 前記リモートコンピュータに前記内容を伝送するステップをさらに含む、請求項2に記載の方法。
  4. 前記リモートコンピュータに前記内容を表示するステップをさらに含む、請求項3に記載の方法。
  5. 前記N個のデータ要素は、前記リモートコンピュータに関する人口統計データを含む、請求項1に記載の方法。
  6. 前記N個のデータ要素は、前記リモートコンピュータにより前記サイトに伝送されるN個の暗号化されたデータ要素を含む、請求項1に記載の方法。
  7. 前記N個のデータ要素を処理する前記ステップは、前記N個の暗号化されたデータ要素を解読するステップを含む、請求項6に記載の方法。
  8. 前記N個のデータ要素はN個のデータベースクエリ要素を含む、請求項1に記載の方法。
  9. 前記N個のデータ要素を処理する前記ステップは、前記N個のデータベースクエリ要素を処理するステップを含む、請求項8に記載の方法。
  10. オペレーティングシステムの単一のシステムイメージにより、前記少なくとも1つのマイクロプロセッサと、前記少なくとも1つの再構成可能な処理素子のうち少なくとも一部分とを制御するステップをさらに含む、請求項1に記載の方法。
  11. インターネット処理加速サービスであって、
    前記インターネットに結合される再構成可能なサーバを含み、前記サーバは、少なくとも1つのマイクロプロセッサおよび少なくとも1つの再構成可能なプロセッサを含み、前記インターネット処理加速サービスはさらに、
    前記少なくとも1つのマイクロプロセッサと前記少なくとも1つの再構成可能なプロセッサのうち少なくとも一部分とを制御するオペレーティングシステムの単一のシステムイメージと、
    前記サーバにより受取られるN個のデータ要素を実質的に並列処理するために、前記少なくとも1つの再構成可能なプロセッサのうち前記少なくとも一部分をN個に対しインスタンス生成を行なう前記サービスとを含む、インターネット処理加速サービス。
  12. 前記N個のデータ要素は、前記インターネットにより前記サーバに結合されるコンピュータに関する人口統計データを含む、請求項11に記載のサービス。
  13. 前記サーバは、前記人口統計データに基づき、前記インターネットにより前記コンピュータへ伝送するための内容を選択する、請求項12に記載のサービス。
  14. 前記N個のデータ要素は、前記インターネットに結合されるコンピュータにより前記サーバに伝送される暗号化されたデータ要素を含む、請求項11に記載のサービス。
  15. 前記サーバは前記暗号化されたデータ要素を解読するよう動作する、請求項14に記載のサービス。
  16. 前記N個のデータ要素はデータベースクエリ要素を含む、請求項11に記載のサービス。
  17. 前記サーバは前記データベースクエリを処理するよう動作する、請求項16に記載のサービス。
  18. リモートコンピュータのインターネットサイトへのアクセス時間を加速させる処理であって、
    前記サイトで、少なくとも1つのマイクロプロセッサおよび少なくとも1つの再構成可能なプロセッサを組込む再構成可能なサーバを設けるステップと、
    前記リモートコンピュータから前記サーバにN個のデータ要素を伝送するステップと、
    前記少なくとも1つの再構成可能なプロセッサのうちのN個でもって、前記N個のデータ要素を実質的に並行して処理するステップと、
    前記N個のデータ要素に応答して前記インターネットサイトの内容を選択するステップと、
    前記リモートコンピュータに前記内容を伝送するステップとを含む、処理。
  19. 前記N個のデータ要素は、前記リモートコンピュータに関する人口統計データを含む、請求項18に記載の処理。
  20. 前記N個のデータ要素はN個の暗号化されたデータ要素を含む、請求項18に記載の処理。
  21. 前記N個のデータ要素を実質的に並行して処理する前記ステップは、前記N個の暗号化されたデータ要素を解読するステップを含む、請求項20に記載の処理。
  22. 前記N個のデータ要素はN個のデータベースクエリ要素を含む、請求項18に記載の処理。
  23. 前記N個のデータ要素を実質的に並行して処理する前記ステップは、前記N個のデータベースクエリ要素を処理するステップを含む、請求項22に記載の処理。
  24. オペレーティングシステムの単一のシステムイメージにより、前記少なくとも1つのマイクロプロセッサと、前記少なくとも1つの再構成可能なプロセッサのうち少なくとも一部分とを制御するステップをさらに含む、請求項18に記載の処理。
  25. 前記リモートコンピュータに前記内容を表示するステップをさらに含む、請求項18に記載の処理。
JP2008212482A 2001-06-22 2008-08-21 インターネット処理加速システムおよびデータを処理するための方法 Expired - Lifetime JP4990244B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/888,276 US6434687B1 (en) 1997-12-17 2001-06-22 System and method for accelerating web site access and processing utilizing a computer system incorporating reconfigurable processors operating under a single operating system image
US09/888,276 2001-06-22

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003507716A Division JP4713080B2 (ja) 2001-06-22 2002-05-06 単一のオペレーティングシステムイメージ下で動作する再構成可能なプロセッサを用いるウェブサーバのためのシステムおよび方法

Publications (2)

Publication Number Publication Date
JP2009080799A true JP2009080799A (ja) 2009-04-16
JP4990244B2 JP4990244B2 (ja) 2012-08-01

Family

ID=25392899

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003507716A Expired - Lifetime JP4713080B2 (ja) 2001-06-22 2002-05-06 単一のオペレーティングシステムイメージ下で動作する再構成可能なプロセッサを用いるウェブサーバのためのシステムおよび方法
JP2008212482A Expired - Lifetime JP4990244B2 (ja) 2001-06-22 2008-08-21 インターネット処理加速システムおよびデータを処理するための方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2003507716A Expired - Lifetime JP4713080B2 (ja) 2001-06-22 2002-05-06 単一のオペレーティングシステムイメージ下で動作する再構成可能なプロセッサを用いるウェブサーバのためのシステムおよび方法

Country Status (6)

Country Link
US (1) US6434687B1 (ja)
EP (1) EP1402392B1 (ja)
JP (2) JP4713080B2 (ja)
AU (1) AU2002303661B2 (ja)
CA (1) CA2448223C (ja)
WO (1) WO2003001396A1 (ja)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996656B2 (en) * 2002-10-31 2006-02-07 Src Computers, Inc. System and method for providing an arbitrated memory bus in a hybrid computing system
US8060926B1 (en) 1999-03-16 2011-11-15 Novell, Inc. Techniques for securely managing and accelerating data delivery
US7904951B1 (en) 1999-03-16 2011-03-08 Novell, Inc. Techniques for securely accelerating external domains locally
US6621804B1 (en) * 1999-10-07 2003-09-16 Qualcomm Incorporated Method and apparatus for predicting favored supplemental channel transmission slots using transmission power measurements of a fundamental channel
AU2001270067A1 (en) * 2000-06-23 2002-01-08 Citerra Technologies, L.L.C. User services and information management system and method
US7155602B2 (en) * 2001-04-30 2006-12-26 Src Computers, Inc. Interface for integrating reconfigurable processors into a general purpose computing system
US7908472B2 (en) * 2001-07-06 2011-03-15 Juniper Networks, Inc. Secure sockets layer cut through architecture
US7149892B2 (en) * 2001-07-06 2006-12-12 Juniper Networks, Inc. Secure sockets layer proxy architecture
US7228412B2 (en) * 2001-07-06 2007-06-05 Juniper Networks, Inc. Bufferless secure sockets layer architecture
US7853781B2 (en) * 2001-07-06 2010-12-14 Juniper Networks, Inc. Load balancing secure sockets layer accelerator
US8065720B1 (en) 2004-01-06 2011-11-22 Novell, Inc. Techniques for managing secure communications
US7580837B2 (en) 2004-08-12 2009-08-25 At&T Intellectual Property I, L.P. System and method for targeted tuning module of a speech recognition system
US7299339B2 (en) 2004-08-30 2007-11-20 The Boeing Company Super-reconfigurable fabric architecture (SURFA): a multi-FPGA parallel processing architecture for COTS hybrid computing framework
US7472576B1 (en) 2004-11-17 2009-01-06 State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Portland State University Nanometrology device standards for scanning probe microscopes and processes for their fabrication and use
US7242751B2 (en) 2004-12-06 2007-07-10 Sbc Knowledge Ventures, L.P. System and method for speech recognition-enabled automatic call routing
US7751551B2 (en) 2005-01-10 2010-07-06 At&T Intellectual Property I, L.P. System and method for speech-enabled call routing
US7991984B2 (en) * 2005-02-17 2011-08-02 Samsung Electronics Co., Ltd. System and method for executing loops in a processor
US20070011019A1 (en) * 2005-07-05 2007-01-11 Netfire1 Pty Ltd Managed e-commerce trading
US20070011055A1 (en) * 2005-07-05 2007-01-11 Netfire 1 Pty Ltd E-commerce with direct access to real-time inventory
US8526577B2 (en) * 2005-08-25 2013-09-03 At&T Intellectual Property I, L.P. System and method to access content from a speech-enabled automated system
US7716100B2 (en) * 2005-12-02 2010-05-11 Kuberre Systems, Inc. Methods and systems for computing platform
US8561037B2 (en) * 2007-08-29 2013-10-15 Convey Computer Compiler for generating an executable comprising instructions for a plurality of different instruction sets
US8122229B2 (en) * 2007-09-12 2012-02-21 Convey Computer Dispatch mechanism for dispatching instructions from a host processor to a co-processor
US8156307B2 (en) * 2007-08-20 2012-04-10 Convey Computer Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
US9015399B2 (en) 2007-08-20 2015-04-21 Convey Computer Multiple data channel memory module architecture
US9710384B2 (en) 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US8095735B2 (en) 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
US8145749B2 (en) * 2008-08-11 2012-03-27 International Business Machines Corporation Data processing in a hybrid computing environment
US8141102B2 (en) * 2008-09-04 2012-03-20 International Business Machines Corporation Data processing in a hybrid computing environment
US7984267B2 (en) * 2008-09-04 2011-07-19 International Business Machines Corporation Message passing module in hybrid computing system starting and sending operation information to service program for accelerator to execute application program
US8230442B2 (en) 2008-09-05 2012-07-24 International Business Machines Corporation Executing an accelerator application program in a hybrid computing environment
US8205066B2 (en) 2008-10-31 2012-06-19 Convey Computer Dynamically configured coprocessor for different extended instruction set personality specific to application program with shared memory storing instructions invisibly dispatched from host processor
US20100115233A1 (en) * 2008-10-31 2010-05-06 Convey Computer Dynamically-selectable vector register partitioning
US8527734B2 (en) * 2009-01-23 2013-09-03 International Business Machines Corporation Administering registered virtual addresses in a hybrid computing environment including maintaining a watch list of currently registered virtual addresses by an operating system
US9286232B2 (en) * 2009-01-26 2016-03-15 International Business Machines Corporation Administering registered virtual addresses in a hybrid computing environment including maintaining a cache of ranges of currently registered virtual addresses
US8843880B2 (en) * 2009-01-27 2014-09-23 International Business Machines Corporation Software development for a hybrid computing environment
US8255909B2 (en) * 2009-01-28 2012-08-28 International Business Machines Corporation Synchronizing access to resources in a hybrid computing environment
US20100191923A1 (en) * 2009-01-29 2010-07-29 International Business Machines Corporation Data Processing In A Computing Environment
US8001206B2 (en) * 2009-01-29 2011-08-16 International Business Machines Corporation Broadcasting data in a hybrid computing environment
US9170864B2 (en) * 2009-01-29 2015-10-27 International Business Machines Corporation Data processing in a hybrid computing environment
US8010718B2 (en) * 2009-02-03 2011-08-30 International Business Machines Corporation Direct memory access in a hybrid computing environment
US8037217B2 (en) * 2009-04-23 2011-10-11 International Business Machines Corporation Direct memory access in a hybrid computing environment
US8180972B2 (en) * 2009-08-07 2012-05-15 International Business Machines Corporation Reducing remote reads of memory in a hybrid computing environment by maintaining remote memory values locally
US8423745B1 (en) 2009-11-16 2013-04-16 Convey Computer Systems and methods for mapping a neighborhood of data to general registers of a processing element
US9417905B2 (en) * 2010-02-03 2016-08-16 International Business Machines Corporation Terminating an accelerator application program in a hybrid computing environment
US8578132B2 (en) * 2010-03-29 2013-11-05 International Business Machines Corporation Direct injection of data to be transferred in a hybrid computing environment
US9015443B2 (en) 2010-04-30 2015-04-21 International Business Machines Corporation Reducing remote reads of memory in a hybrid computing environment
US8789065B2 (en) 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
US20130117168A1 (en) 2011-11-04 2013-05-09 Mark Henrik Sandstrom Maximizing Throughput of Multi-user Parallel Data Processing Systems
WO2012154612A1 (en) 2011-05-06 2012-11-15 Xcelemor, Inc. Computing system with hardware scheduled reconfiguration mechanism and method of operation thereof
US9448847B2 (en) 2011-07-15 2016-09-20 Throughputer, Inc. Concurrent program execution optimization
US8745626B1 (en) 2012-12-17 2014-06-03 Throughputer, Inc. Scheduling application instances to configurable processing cores based on application requirements and resource specification
US20130157639A1 (en) 2011-12-16 2013-06-20 SRC Computers, LLC Mobile electronic devices utilizing reconfigurable processing techniques to enable higher speed applications with lowered power consumption
GB2499885B (en) * 2012-01-17 2014-03-05 Mark Henrik Sandstrom Application load and type adaptive manycore processor architecture
US10430190B2 (en) 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
US9842001B2 (en) 2012-06-27 2017-12-12 International Business Machines Corporation System level acceleration server
US9530483B2 (en) 2014-05-27 2016-12-27 Src Labs, Llc System and method for retaining dram data when reprogramming reconfigurable devices with DRAM memory controllers incorporating a data maintenance block colocated with a memory module or subsystem
US9153311B1 (en) 2014-05-27 2015-10-06 SRC Computers, LLC System and method for retaining DRAM data when reprogramming reconfigurable devices with DRAM memory controllers
US9411528B1 (en) 2015-04-22 2016-08-09 Ryft Systems, Inc. Storage management systems and methods
US9411613B1 (en) 2015-04-22 2016-08-09 Ryft Systems, Inc. Systems and methods for managing execution of specialized processors
US9542244B2 (en) 2015-04-22 2017-01-10 Ryft Systems, Inc. Systems and methods for performing primitive tasks using specialized processors

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0281258A (ja) * 1988-09-19 1990-03-22 Fujitsu Ltd 並列計算機
WO1999031617A2 (en) * 1997-12-17 1999-06-24 Src Computers, Inc. Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem
WO2000029981A2 (en) * 1998-11-13 2000-05-25 Fast Search & Transfer Asa A processing circuit and a search processor circuit
JP2001068993A (ja) * 1999-08-25 2001-03-16 Fuji Xerox Co Ltd 情報処理システム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5671377A (en) * 1994-07-19 1997-09-23 David Sarnoff Research Center, Inc. System for supplying streams of data to multiple users by distributing a data stream to multiple processors and enabling each user to manipulate supplied data stream
GB2309558A (en) * 1996-01-26 1997-07-30 Ibm Load balancing across the processors of a server computer
US5715453A (en) * 1996-05-31 1998-02-03 International Business Machines Corporation Web server mechanism for processing function calls for dynamic data queries in a web page
US5860146A (en) * 1996-06-25 1999-01-12 Sun Microsystems, Inc. Auxiliary translation lookaside buffer for assisting in accessing data in remote address spaces
US5987480A (en) * 1996-07-25 1999-11-16 Donohue; Michael Method and system for delivering documents customized for a particular user over the internet using imbedded dynamic content
US6128663A (en) * 1997-02-11 2000-10-03 Invention Depot, Inc. Method and apparatus for customization of information content provided to a requestor over a network using demographic information yet the user remains anonymous to the server
US6009410A (en) * 1997-10-16 1999-12-28 At&T Corporation Method and system for presenting customized advertising to a user on the world wide web
DE69737750T2 (de) * 1997-12-17 2008-03-06 Hewlett-Packard Development Co., L.P., Houston Erst- und Zweitprozessoren verwendetes Verfahren
US6185612B1 (en) * 1998-10-29 2001-02-06 Novell, Inc. Secure distribution and use of weighted network topology information

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0281258A (ja) * 1988-09-19 1990-03-22 Fujitsu Ltd 並列計算機
WO1999031617A2 (en) * 1997-12-17 1999-06-24 Src Computers, Inc. Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem
JP2002509302A (ja) * 1997-12-17 2002-03-26 エス・アール・シィ・コンピューターズ・インコーポレイテッド メモリサブシステムに複数のメモリアルゴリズムプロセッサを組込むマルチプロセッサコンピュータアーキテクチャ
WO2000029981A2 (en) * 1998-11-13 2000-05-25 Fast Search & Transfer Asa A processing circuit and a search processor circuit
JP2002530747A (ja) * 1998-11-13 2002-09-17 ファースト サーチ アンド トランスファー エイエスエイ 処理回路及び検索プロセッサ回路
JP2001068993A (ja) * 1999-08-25 2001-03-16 Fuji Xerox Co Ltd 情報処理システム

Also Published As

Publication number Publication date
EP1402392A1 (en) 2004-03-31
CA2448223C (en) 2007-06-12
US6434687B1 (en) 2002-08-13
US20020056033A1 (en) 2002-05-09
CA2448223A1 (en) 2003-01-03
JP4713080B2 (ja) 2011-06-29
JP4990244B2 (ja) 2012-08-01
EP1402392B1 (en) 2020-12-02
JP2004537106A (ja) 2004-12-09
WO2003001396A1 (en) 2003-01-03
AU2002303661B2 (en) 2008-04-03
EP1402392A4 (en) 2008-05-07

Similar Documents

Publication Publication Date Title
JP4990244B2 (ja) インターネット処理加速システムおよびデータを処理するための方法
AU2002303661A1 (en) System and method for web server with a reconfigurable processor operating under single operation system image
US6339819B1 (en) Multiprocessor with each processor element accessing operands in loaded input buffer and forwarding results to FIFO output buffer
JP5364543B2 (ja) メモリサブシステムに複数のメモリアルゴリズムプロセッサを組込むマルチプロセッサコンピュータアーキテクチャ
US7209996B2 (en) Multi-core multi-thread processor
US7421524B2 (en) Switch/network adapter port for clustered computers employing a chain of multi-adaptive processors in a dual in-line memory module format
AU2001245761A1 (en) Enhanced memory algorithmic processor architecture for multiprocessor computer systems
US20220044123A1 (en) Embedded Programmable Logic Device for Acceleration in Deep Learning-Focused Processors
Lant Enabling Independent Communication for FPGAs in High Performance Computing
CA2515283C (en) Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem
AU2002356010A1 (en) Switch/network adapter port for clustered computers employing a chain of multi-adaptive processors in a dual in-line memory module format

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110920

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120501

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4990244

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

EXPY Cancellation because of completion of term