JP2004252990A - コンピュータ・プロセッサ及び処理装置 - Google Patents

コンピュータ・プロセッサ及び処理装置 Download PDF

Info

Publication number
JP2004252990A
JP2004252990A JP2004063697A JP2004063697A JP2004252990A JP 2004252990 A JP2004252990 A JP 2004252990A JP 2004063697 A JP2004063697 A JP 2004063697A JP 2004063697 A JP2004063697 A JP 2004063697A JP 2004252990 A JP2004252990 A JP 2004252990A
Authority
JP
Japan
Prior art keywords
memory
processor
processing
data
program
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
JP2004063697A
Other languages
English (en)
Other versions
JP2004252990A5 (ja
JP4597553B2 (ja
Inventor
Masakazu Suzuoki
雅一 鈴置
Takeshi Yamazaki
剛 山崎
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of JP2004252990A publication Critical patent/JP2004252990A/ja
Publication of JP2004252990A5 publication Critical patent/JP2004252990A5/ja
Application granted granted Critical
Publication of JP4597553B2 publication Critical patent/JP4597553B2/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/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Abstract

【課題】 広帯域ネットワークを介する高速処理用コンピュータ・アーキテクチャとプログラミング・モデルが提供される。
【解決手段】 上記アーキテクチャは、均一なモジュラー構造と、共通のコンピューティング・モジュールと、均一なソフトウェア・セルとを用いる。共通のコンピューティング・モジュールの中には、制御装置と、複数の処理ユニットと、処理ユニットがプログラムを処理する元となる複数のローカルメモリと、ダイレクト・メモリ・アクセスと、コントローラと、共用メイン・メモリとが含まれる。共用メイン・メモリからのデータの調整された読み出しと書き込みを処理ユニットによって行うための同期システムと方法とが提供される。
【選択図】 図4

Description

本発明はコンピュータ・プロセッサ用アーキテクチャとコンピュータ・ネットワークとに関し、広帯域環境におけるコンピュータ・プロセッサおよびコンピュータ・ネットワーク用アーキテクチャに関する。さらに、本発明は、このようなアーキテクチャのためのプログラミング・モデルに関する。
コンピュータおよび現今のコンピュータ・ネットワーク(オフィスのネットワークで使用されるローカル・エリア・ネットワーク(LAN)やインターネットのようなグローバルネットワークなど)の計算用装置は、スタンド・アローン型の計算用として主として設計されてきた。コンピュータ・ネットワークを介するデータとアプリケーション・プログラム(“アプリケーション”)の共用は、これらのコンピュータおよびコンピューティング・デバイスの主要な設計目標ではなかった。これらのコンピュータとコンピューティング・デバイスは、また、様々な異なるメーカー(モトローラ、インテル、テキサス・インスツルメント、ソニーなど)によって製造された広範囲の異なるタイプのプロセッサを用いて一般に設計されたものである。これらのプロセッサの各々は、それ自身の特定の命令セットと命令セット・アーキテクチャ(ISA)とを持っている。すなわち、それ自身の特定のセットのアセンブリ言語命令と、これらの命令を実行する主演算装置と記憶装置のための構造とを有する。プログラマは、各プロセッサの命令セットとISAとを理解してこれらのプロセッサ用のアプリケーションを書くことを要求される。今日のコンピュータ・ネットワーク上でのコンピュータとコンピューティング・デバイスには異なった種類が混在していることから、データとアプリケーションの共用及びその処理は複雑になっている。さらに、この複数種が混在する環境に対する調整を行うために、多くの場合、同じアプリケーションであっても複数のバージョンを用意することが必要となっている。
グローバルネットワーク、特にインターネットと接続されたタイプのコンピュータやコンピューティング・デバイスは広範囲に及ぶ。パーソナル・コンピュータ(PC)とサーバーに加えて、これらのコンピューティング・デバイスの中にはセルラー電話、移動用コンピュータ、個人用情報機器(PDA)、セット・トップ・ボックス、デジタルテレビ並びにその他の装置が含まれる。コンピュータやコンピューティング・デバイスにおいて異種製品が混在する中でのデータやアプリケーションを共用することに起因して、大きな問題が生じている。
これらの問題を解決するためのいくつかの手法が試みられてきた。これらの手法の中には、特に、優れたインターフェースと複雑なプログラミング手法が含まれる。これらの解決方法では、処理パワーの実質的増加の実現がしばしば要求される。また、これらの解決方法では、アプリケーションの処理に必要な時間と、ネットワークを介するデータ伝送に必要な時間とが実質的に増加してしまうという結果がしばしば生じる。
一般に、データは、対応するアプリケーションとは別個に、インターネットを介して伝送される。このアプローチでは、アプリケーションに対応した各セットの伝送データにアプリケーション自体をも送る必要はなくなっている。従って、このアプローチによって、必要とされる帯域幅の量は最少化されるものの、ユーザーには不満の原因となることも多々ある。つまり、クライアント側のコンピュータでは、この伝送データを利用するための適正なアプリケーション、あるいは最新のアプリケーションを入手できない事態も生じ得る。また、このアプローチでは、ネットワーク上のプロセッサによって用いられている複数の異種ISAと命令セットに対応して、各アプリケーション毎にバージョンの異なる複数のアプリケーションを用意することが要求される。
Java(登録商標)モデルでは、この問題の解決が試みられている。このモデルでは、厳しいセキュリティ・プロトコルに準拠する小さなアプリケーション(“アプレット(applet)”)が用いられている。アプレットは、ネットワークを介してサーバー側コンピュータから送信されてクライアント側コンピュータ(“クライアント”)によって実行される。異なるISAを使用しているクライアント毎に、同じアプレットであっても異なるバージョンを送信するという事態を避ける必要があるため、すべてのJavaアプレットは、クライアント側のJava仮想マシーン上で実行される。Java仮想マシーンとは、JavaISAと命令セットとを備えたコンピュータをエミュレートするソフトウェアである。しかし、このソフトウェアは、クライアント側のISAとクライアント側の命令セットにより実行される。クライアント側ではISAと命令セットが各々異なるが、与えられるJavaの仮想マシーンのバージョンは一つである。したがって、複数の各アプレットごとに異なるバージョンを用意する必要はない。各クライアントでは、当該クライアントにおけるISAと命令セットに対応した適正なJava仮想マシーンだけをダウンロードすれば、javaアプレットを実行できる。
各々の異なるISAと命令セットに対して異なるバージョンのアプリケーションを書かなければならないという課題は解決されているものの、Javaの処理モデルでは、クライアント側のコンピュータに対してソフトウェアの追加層が要求される。ソフトウェアのこの追加層のためにプロセッサの処理速度は著しく低下する。この速度の低下は、リアルタイムのマルチメディア・アプリケーションについて特に著しい。また、ダウンロードされたJavaアプレットの中にはウィルス、処理上の誤動作などが含まれている可能性がある。これらのウィルスと誤動作はクライアントのデータベースの破損やその他の損害の原因となる可能性がある。Javaモデルで用いられているセキュリティ用プロトコルでは、“サンドボックス(sandbox)”(Javaアプレットがそれ以上はデータを書き込むことができない、クライアント側のメモリ内のスペース)というソフトウェアを設けることにより、この問題の解決が試みられているとはいえ、このソフトウェア駆動型セキュリティ・モデルはその実行時に頻繁に不安定になり、より多くの処理が必要となる。
リアルタイムの、マルチメディア・ネットワーク用アプリケーションがますます重要なものになりつつある。これらのネットワーク用アプリケーションでは非常に高速な処理が要求される。将来、そのようなアプリケーション用として毎秒何千メガビットものデータが必要となるかもしれない。ネットワークの現今のアーキテクチャ、および、特にインターネットのアーキテクチャ、並びに、Javaモデルなどで現在実施されているプログラミング・モデルでこのような処理速度に到達することは非常に難しい。
したがって、新しいコンピュータ・アーキテクチャと、コンピュータ・ネットワーク用の新しいアーキテクチャと、新しいプログラミング・モデルとが求められている。この新しいアーキテクチャとプログラミング・モデルとによって、計算上の負担が付加されることなく、ネットワークの様々なメンバー間でのデータとアプリケーションの共用という問題が解決されることが望ましい。また、この新しいコンピュータ・アーキテクチャと、プログラミング・モデルとによって、ネットワークのメンバー間でのアプリケーションとデータの共用時に生じる、固有のセキュリティ上の問題も解決されることが望ましい。
本発明の一実施形態においては、コンピュータと、コンピューティング・デバイスと、コンピュータ・ネットワーク(あるいはコンピュータ・ネットワークに代えて、コンピュータ・ネットワーク・システムや複数のコンピュータを備えたコンピュータ・システムというカテゴリーや形態とすることもできる)とのための新しいアーキテクチャが提供される。他の実施形態では、本発明は、これらのコンピュータ、コンピューティング・デバイスおよびコンピュータ・ネットワークのための新しいプログラミング・モデルを提供するものである。
本発明によれば、コンピュータ・ネットワークのすべてのメンバー(ネットワーク上のすべてのコンピュータとコンピューティング・デバイス)は共通のコンピューティング・モジュールから構成される。この共通のコンピューティング・モジュールは均一な構造を有し、好適には同じISAが使用される。ネットワークのメンバーとして、クライアント、サーバー、PC、移動用コンピュータ、ゲーム用マシーン、PDA、セット・トップ・ボックス、電気機器、デジタルテレビ、および、コンピュータ・プロセッサを用いるその他の装置が挙げられる。均一なモジュラー構造によって、ネットワークのメンバーによるアプリケーションとデータの効率的高速処理と、ネットワークを介するアプリケーションとデータの高速伝送とが可能となる。またこの構造によって、様々なサイズと処理パワーを持つネットワークのメンバーの構成が単純化され、これらのメンバーによる処理用アプリケーションの作成が単純化される。
また、本発明によれば、コンピュータ・ネットワークにおいて、前記ネットワークと接続された複数のプロセッサを有し、前記プロセッサの各々が、同じ命令セット・アーキテクチャを有する複数の第1の処理ユニットと、前記第1の処理ユニットを制御するための第2の処理ユニットとを有し、前記第1の処理ユニットが、前記ネットワークを介して伝送されるソフトウェア・セルを処理するために作動可能であり、前記ソフトウェア・セルの各々が、前記命令セット・アーキテクチャと互換性のあるプログラムと、前記プログラムと関連付けられたデータと、前記ネットワークを介して伝送される前記ソフトウェア・セルのすべての間で前記ソフトウェア・セルを一意的に識別するための識別子(例えばセルの識別番号)と、を有することを特徴とするコンピュータ・ネットワークも提供される。
なお、本発明によれば、コンピュータ・ネットワークと接続される複数のプロセッサを有するコンピュータ・システムであって、前記プロセッサの各々が、同じ命令セット・アーキテクチャを有する複数の第1の処理ユニットと、前記第1の処理ユニットを制御するための第2の処理ユニットとを有し、前記第1の処理ユニットが、前記ネットワークを介して伝送されるソフトウェア・セルを処理するために作動可能であり、前記ソフトウェア・セルの各々が、前記命令セット・アーキテクチャと互換性のあるプログラムと、前記プログラムと関連付けられたデータと、前記ネットワークを介して伝送される前記ソフトウェア・セルのすべての間で前記ソフトウェア・セルを一意的に識別するための識別子(例えばセルの識別番号)と、を有することを特徴とするコンピュータ・システムも提供される。
加えて、本発明によれば、コンピュータ・ネットワークを介する伝送用ソフトウェア・セルのデータ・ストリームにおいて、前記コンピュータ・ネットワークが、複数のプロセッサを有し、前記ソフトウェア・セルの各々が、前記プロセッサの中の1以上によって処理するためのプログラムと、前記プログラムと関連付けられたデータと、前記ネットワークを介して伝送されるすべてのソフトウェア・セルの中で前記ソフトウェア・セルを一意的に識別するグローバルな識別子と、を有することを特徴とするデータ・ストリームも提供される。なお、上記構成において、「データ・ストリーム」という形態に代えて、「データ構造」という形態、あるいは「上述のような構造を有するデータ」という形態で本発明を提供することも可能である。
他の実施形態では、本発明は、ネットワークを介してデータとアプリケーションを伝送するための、また、ネットワークのメンバー間でデータとアプリケーションを処理するための新しいプログラミング・モデルを提供する。このプログラミング・モデルでは、ネットワークのいずれのメンバーでも処理できる、ネットワークを介して伝送されるソフトウェア・セルが使用される。各ソフトウェア・セルは同じ構造を有し、アプリケーションとデータの双方を含むことが可能である。モジュラー型コンピュータ・アーキテクチャによって提供される高速処理と伝送速度の結果、これらのセルの高速処理が可能となる。アプリケーション用コードは同じ共通の命令セットとISAに好適に基づくものである。各ソフトウェア・セルは、グローバルな識別子(グローバルID)と、セルの処理に必要な計算用リソースの量について説明する情報とを好適に含むことが望ましい。すべての計算用リソースは同じ基本構造を有し、同じISAが用いられているので、このセルの処理を実行する特定のリソースは、ネットワーク上のどこにでも配置が可能となり、動的に割り当てることができる。
基本となる処理用モジュールはプロセッサ・エレメント(PE)である。PEは、好適には、処理ユニット(PU)、ダイレクト・メモリ・アクセス・コントローラ(DMAC)および複数の付加処理ユニット(APU)を具備することが望ましい。好ましい実施形態では、1つのPEは8つのAPUを具備する。PUとAPUとは、クロスバ・アーキテクチャを好適に備えている共用ダイナミック・ランダム・アクセス・メモリ(DRAM)を用いてリアルタイムで通信を行う。PUは、APUによるデータとアプリケーションの処理のスケジュール管理と全般的管理とを行う。APUは並列的かつ独立にこの処理を実行する。DMACは、共用DRAMに格納されているデータとアプリケーションへのアクセス制御をPUとAPUとによって行う。
このモジュラー構造によれば、ネットワークのメンバーによって用いられるPEの数は、そのメンバーが必要とする処理パワーに基づく。例えば、1台のサーバーは4つのPEを用いることができ、1台のワークステーションは2つのPEを用いることができ、1つのPDAは1つのPEを用いることができる。特定のソフトウェア・セルの処理に割り当てられるPEのAPUの数は、そのセル内のプログラムとデータの複雑さと大きさとによって決まる。
好ましい実施形態では、複数のPEが1つの共用DRAMと関連付けられる。好適には、DRAMは複数のセクションに分割され、これらのセクションの各々は複数のメモリ・バンクに分割される。特に好ましい実施形態では、DRAMは64個のメモリ・バンクを有し、各バンクは1メガバイトの記憶容量を有する。DRAMの各セクションは、好適には、バンク・コントローラによって制御されることが望ましく、PEの各DMACは、好適には、各バンク・コントローラにアクセスすることが望ましい。したがって、この実施形態の各PEのDMACは、共用DRAMの任意の部分へのアクセスが可能となる。
別の態様では、本発明は、共用DRAMからのAPUのデータの読み出しと、共用DRAMへのデータの書き込みのための同期システムと方法とを提供する。このシステムによって、DRAMを共用している複数のAPUと複数のPEとの間のコンフリクトが防止される。このシステムと方法とによれば、DRAM領域が指定され、複数のフル−エンプティ・ビットが格納される。これらのフル−エンプティ・ビットの各々は、DRAMの指定領域に対応する。この同期システムはDRAMのハードウェアの中に統合化されるので、ソフトウェアの中で実行されるデータ同期方式の計算上のオーバーヘッドはこのシステムによって防止される。
また本発明によって、DRAM内にサンドボックスが設けられ、1つのAPUのプログラム処理用データから生じる、別のAPUのプログラム処理用データの破損に対するセキュリティが与えられる。各サンドボックスによって、データの読み出しや書き込みが不可能となる共用DRAM領域が画定される。
別の態様では、本発明は、PUがAPUへコマンドを出して、アプリケーションとデータのAPUによる処理を開始するためのシステムと方法とを提供するものである。これらのコマンドは、APU遠隔処理命令(ARPC)と呼ばれ、このコマンドによって、APUがコプロセッサの役割を演じることなく、アプリケーションとデータのAPUによる並列処理のPUによる全般的管理と調整が可能となる。
本発明の一形態においては、コンピュータ・プロセッサにおいて、複数の第1処理ユニットを有し、各々の前記第1処理ユニットが、前記第1処理ユニットに関連づけられたローカル・メモリを含み、前記第1処理ユニットによるプログラムと前記プログラムと関連づけられたデータの処理を制御する第2処理ユニットを有し、前記第2処理ユニットが、前記プログラムと前記プログラムに関連付けられたデータを前記第1処理ユニットの前記ローカル・メモリへ転送指示し、前記第1処理ユニットで、前記第1処理ユニットの前記ローカル・メモリの前記プログラムと前記プログラムに関連付けられたデータを処理するように作動可能であることを特徴とするコンピュータ・プロセッサも提供される。
また、コンピュータ・プロセッサにおいて、複数の第1処理ユニットを有し、各々の前記第1処理ユニットが、前記第1処理ユニットに関連づけられたローカル・メモリを含み、前記第1処理ユニットによるプログラムと前記プログラムと関連づけられたデータとを含んだソフトウェア・セルの処理を制御する第2処理ユニットを有し、前記第2処理ユニットが、前記ソフトウェア・セル自体に記録された情報を読み出し、読み出された情報に応じて、前記複数の第1の処理ユニットのうちから、前記ソフトウェア・セルの処理を行う処理ユニットを指定するとともに、前記プログラムと前記プログラムに関連付けられたデータを前記第1処理ユニットの前記ローカル・メモリへ転送指示し、前記第1処理ユニットで、前記第1処理ユニットの前記ローカル・メモリの前記プログラムと前記プログラムに関連付けられたデータを処理するように作動可能であることを特徴とするコンピュータ・プロセッサも提供される。
本発明の他の形態においては、処理装置において、複数の第1処理ユニットを有して成る1つ以上のプロセッサ・モジュールを有し、前記第1処理ユニットのそれぞれは当該第1メモリに関連づけられたローカル・メモリを備え、前記第1処理ユニットによる前記プログラムと前記プログラムに関連付けられたデータの処理を制御する第2処理ユニットを有し、前記第2処理ユニットが、前記プログラムと前記プログラムに関連付けられたデータを前記第1処理ユニットのローカル・メモリへ転送指示し、その後、前記第1処理ユニットが、前記ローカル・メモリから前記プログラムと前記プログラムと関連付けられたデータを処理するように作動可能であることを特徴とする処理装置も提供される。
また、処理装置において、複数の第1処理ユニットを有して成る1つ以上のプロセッサ・モジュールを有し、前記第1処理ユニットのそれぞれは当該第1メモリに関連づけられたローカル・メモリを備え、前記第1処理ユニットによる前記プログラムと前記プログラムに関連付けられたデータとを含んだソフトウェア・セルの処理を制御する第2処理ユニットを有し、前記第2処理ユニットが、前記ソフトウェア・セル自体に記録された情報を読み出し、読み出された情報に応じて、前記複数の第1の処理ユニットのうちから、前記ソフトウェア・セルの処理を行う処理ユニットを指定するとともに、前記プログラムと前記プログラムに関連付けられたデータを前記第1処理ユニットのローカル・メモリへ転送指示し、その後、前記第1処理ユニットが、前記ローカル・メモリから前記プログラムと前記プログラムと関連付けられたデータを処理するように作動可能である処理装置も提供される。
他の実施形態では、本発明によって、ストリーミング・データ処理用の専用パイプライン構造を設定するシステムと方法とが提供される。このシステムと方法によれば、PUによってこれらのストリーミング・データの処理を行うために、APUの調整グループと、これらのAPUと関連するメモリサンドボックスの調整グループとが設定される。パイプ・ラインの専用APUとメモリサンドボックスとは、データ処理が行われない時間中もパイプ・ライン専用のままである。言い換えれば、専用APU及びこれらの専用APUと関連するサンドボックスとは、この期間中は予約状態となる。
他の実施形態では、本発明はタスク処理用の絶対タイマーを提供する。この絶対タイマーは、アプリケーションとデータの処理用としてAPUが使用するクロック周波数に依存しない。アプリケーションは、絶対タイマーによって定義される、タスク用の時間に基づいて書かれる。APUが使用しているクロック周波数が、APUの機能の改善などに起因して増加しても、絶対タイマーによって定義される所定のタスク用の時間はそのまま同じである。この方式によれば、古いAPUにおける遅い処理時間を前提として書かれた古いアプリケーションの処理を、これらの新しいAPUでは行わせないこととする必要がなく、かつ、新しいバージョンのAPUによる処理時間の向上を実現することが可能になる。
また本発明は、より処理速度が高速な新しいAPUを、古いAPUにおける遅い処理速度を前提として書かれた古いアプリケーションの処理に用いることを可能にする、他の方式をも提供するものである。この方式では、速度の改善によって生じるAPUの並列処理の調整における問題の処理の間に、これらの古いアプリケーションの処理時にAPUが使用している命令(マイクロコード)が分析される。APUによる処理の順番がプログラムが予期する順番どおりに維持されるよう、“オペレーションなし”(“NOOP”)命令が、これらのAPUのいくつかによって実行される命令の中へ挿入される。これらの命令の中へこれらの“NOOP”を挿入することにより、APUによるすべての命令を実行するための正しいタイミングが維持される。
他の実施形態では、本発明は、光導波路が統合化される集積回路を含むチップ・パッケージを提供するものである。
図1に、本発明によるコンピュータ・システム101のアーキテクチャ全体を示す。
この図に例示されているように、システム101にはネットワーク104が含まれ、複数のコンピュータとコンピューティング・デバイスがこのネットワークと接続されている。ネットワーク104の例として、LAN、インターネットのようなグローバルネットワーク、あるいは他のコンピュータ・ネットワークが挙げられる。
ネットワーク104と接続されたコンピュータとコンピューティング・デバイス(ネットワークの“メンバー”)の中には、クライアント側コンピュータ106、サーバーコンピュータ108、個人用情報機器(PDA)110、デジタルテレビ(DTV)112およびその他の有線または無線コンピュータとコンピューティング・デバイスなどが含まれる。ネットワーク104のメンバーによって用いられるプロセッサは、同じ共通のコンピューティング・モジュールから構成される。またこれらのプロセッサは、好適には、ISAがすべて同じで、好適には同じ命令セットに従って処理を実行する。個々のプロセッサ内に含まれるモジュールの数は、そのプロセッサが必要とする処理パワーによって決められる。
例えば、システム101のサーバー108は、クライアント106より多いデータ処理およびアプリケーション処理を実行するので、クライアント106より多いコンピューティング・モジュールを含むことになる。一方、PDA110では最低量の処理しか実行されない。したがって、PDA110には最少の数のコンピューティング・モジュールしか含まれない。DTV112はクライアント106とサーバー108の間の処理レベルを実行する。したがって、DTV112にはクライアント106とサーバー108の間のいくつかのコンピューティング・モジュールが含まれる。以下に説明するように、各コンピューティング・モジュールの中には、処理用コントローラと、ネットワーク104を介して伝送されるデータおよびアプリケーションの並列処理を実行する複数の同一処理ユニットとが含まれる。
システム101がこのように均質な構成を有することから、アダプタビリティ、処理速度および処理効率が改善される。システム101の各メンバーが、同じコンピューティング・モジュールのうち1つまたはそれ以上(またはコンピューティング・モジュールの一部) を用いて処理を実行するので、データとアプリケーションの実際の処理をどのコンピュータまたはコンピューティング・デバイスで実行するかは重要ではなくなる。さらに、個々のアプリケーションとデータの処理は、ネットワークのメンバーの間で分担することができる。システム全体を通じて、システム101が処理したデータとアプリケーションを含むセルを一意的に識別することにより、この処理がどこで行われたかにかかわらず、処理を要求したコンピュータまたはコンピューティング・デバイスへその処理結果を伝送することが可能となる。この処理を実行するモジュールが共通の構造と共通のISAとを有するので、プロセッサ間の互換性を達成するためのソフトウェアの追加層の計算上の負担が回避される。このアーキテクチャとプログラミング・モデルによって、リアルタイムのマルチメディア・アプリケーションなどの実行に必要な処理速度が改善される。
システム101によって改善される処理速度と効率というさらなる利点を利用するために、このシステムによって処理されるデータとアプリケーションとは、一意的に識別される、それぞれフォーマットが同じであるソフトウェア・セル102へとパッケージ化される。各ソフトウェア・セル102は、アプリケーションとデータの双方を含むあるいは含み得る。また各ソフトウェア・セルには、ネットワーク104とシステム101全体の中でセルを識別するためのセル識別子が含まれ、その一例としては、ソフトウェア・セルをグローバルに識別するIDが含まれる。ソフトウェア・セルのこの構造的均一性と、ネットワークの中でのソフトウェア・セルの一意的識別とによって、ネットワークの任意のコンピュータまたはコンピューティング・デバイスでのアプリケーションとデータの処理が改善される。例えば、クライアント106は、ソフトウェア・セル102の作成を行うこともできるが、クライアント106側の処理能力は限られていることから、このソフトウェア・セルをサーバー108へ伝送して処理してもらうこともできる。したがって、ソフトウェア・セルは、ネットワーク104全体を移動してネットワーク上での処理用リソースの可用性に基づく処理を行うことが可能となる。
また、システム101のプロセッサとソフトウェア・セルが均質な構造を有することで、今日の異質なネットワークの混在という問題の多くを防ぐことができる。例えば任意の命令セットを用いる任意のどのISA上でもアプリケーションの処理を許容しようとする非効率的なプログラミング・モデル(Javaのバーチャル・マシーンのような仮想マシーンなど)が回避される。したがって、システム101は、今日のネットワークよりもはるかに効率的、かつ、はるかに効果的に広帯域処理の実現が可能となる。
ネットワーク104のすべてのメンバーのための基本となる処理用モジュールはプロセッサ・エレメント(PE)である。図2にPEの構造が例示されている。この図に示すように、PE201は、処理ユニット(PU)203、DMAC205、複数の付加処理ユニット(APU)、すなわち、APU207、APU209、APU211、APU213、APU215、APU217、APU219、APU221を具備する。ローカルPEバス223は、APUと、DMAC205と、PU203との間でデータとアプリケーションとを伝送する。ローカルPEバス223は、従来型のアーキテクチャなどを備えていてもよいし、あるいは、パケット交換式ネットワークとして実現されてもよい。パケット交換式ネットワークとして実現される場合、より多くのハードウェアが必要となり、その一方で、利用可能な帯域幅が増加する。
PE201は、デジタル論理回路を実現する様々な方法を用いて構成可能である。しかし、PE201は、好適には、シリコン基板上の単一の集積回路として構成されることが望ましい。基板用代替材料の中には、ガリウム砒素、ガリウム・アルミニウム砒素、砒素および多種多様のドーパントを用いるその他のいわゆるIII−B化合物が含まれる。またPE201は、超伝導材料(高速単一磁束量子(RSFQ)論理処理など)を用いて実現することもできる。
PE201は、高帯域メモリ接続部227を介してダイナミック・ランダム・アクセス・メモリ(DRAM)225と密接に関連する。DRAM225はPE201用メイン・メモリとして機能する。DRAM225は好適には、ダイナミック・ランダム・アクセス・メモリであることが望ましいとはいえ、他の手段、例えばスタティック・ランダム・アクセス・メモリ(SRAM)として、磁気ランダム・アクセス・メモリ(MRAM)、光メモリまたはホログラフィ・メモリなどを用いてDRAM225を実現することもできる。DMAC205によって、DRAM225と、PE201のAPUとPUとの間のデータ転送が改善される。以下さらに説明するように、DMAC205によって、各APUに対するDRAM225内の排他的領域が指定されるが、この排他的領域の中へはAPUだけしかデータの書き込みができず、また、APUだけしかこの排他的領域からのデータ読み出しを行うことができない。この排他的領域は“サンドボックス”と呼ばれる。
PU203は、データとアプリケーションのスタンド・アローン型処理が可能な標準的プロセッサなどであってもよい。作動時に、PUは、APUによるデータとアプリケーションの処理のスケジュール管理と全般的管理とを行う。APUは好適には、単一命令、複数データ(SIMD)プロセッサであることが望ましい。PU203の制御によって、APUは、並列的かつ独立にこれらのデータとアプリケーションの処理を実行する。DMAC205は、共用DRAM225に格納されているデータとアプリケーションへのPU203とAPUによるアクセス制御を行う。PE201は、好適には8個のAPUを含むことが望ましいとはいえ、必要とする処理パワーに応じて、PE内でこの数より多少上下する個数のAPUを用いてもよい。また、PE201のようないくつかのPEを結合(まとめてパッケージ化)して処理パワーの改善を図ることもできる。
例えば、図3に示すように、1以上のチップ・パッケージなどの中に4つのPEをパッケージ化(まとめて結合)してネットワーク104のメンバー用の単一プロセッサを形成してもよい。この構成は広帯域エンジン(BE)と呼ばれる。図3に示すように、BE301には4つのPE(PE303、PE305、PE307、PE309)が含まれる。これらのPE間の通信はBEバス311を介して行われる。広帯域メモリ接続部313によって共用DRAM315とこれらのPE間の通信が行われる。BEバス311の代わりに、BE301のPE間の通信は、DRAM315とこのメモリ接続部とを介して行うことができる。
入力/出力(I/O)インターフェース317と外部バス319とは、広帯域エンジン301とネットワーク104のその他のメンバー間で通信を行う。BE301の各PEは、PEのAPUによって行われるアプリケーションとデータの並列的かつ独立した処理と同様の並列的かつ独立した方法で、データとアプリケーションの処理を実行する。
図4はAPUの構造を例示する図である。APU402には、ローカル・メモリ406、レジスタ410、4つの浮動小数点演算ユニット412および4つの整数演算ユニット414が含まれる。しかし、ここでもまた、必要とする処理パワーに応じて、4個より多少上下する個数の浮動小数点演算ユニット412と整数演算ユニット414を用いてもよい。1つの好ましい実施形態では、ローカル・メモリ406には128キロバイトの記憶容量が含まれ、レジスタ410の容量は128×128ビットである。浮動小数点演算ユニット412は、毎秒320億浮動小数点演算(32GLOPS)の速度で好適に作動し、整数演算ユニット414は、毎秒320億回の演算速度(32GOP)で好適に作動する。
ローカル・メモリ406はキャッシュ・メモリではない。ローカル・メモリ406は、好適にはSRAMとして構成されることが望ましい。APUに対するキャッシュ・コヒーレンシー、つまりキャッシュの整合性のサポートは不要である。PUでは、当該PUで開始されるダイレクト・メモリー・アクセス(DMA)をサポートするためにキャッシュの整合性が要求される場合もある。しかし、APUによって開始されるDMAに対する、あるいは、外部装置からのおよび外部装置へのアクセスに対するキャッシュの整合性のサポートは不要である。
APU402にはさらに、APUへおよびAPUからアプリケーションとデータとを伝送するためのバス404が含まれる。1つの好ましい実施形態ではこのバスは1024ビットの幅を持つ。APU402にはさらに内部バス408、420、418が含まれる。1つの好ましい実施形態では、バス408は256ビットの幅を持ち、ローカル・メモリ406とレジスタ410間で通信を行う。バス420と418とは、それぞれ、レジスタ410と浮動小数点演算ユニット412との間、および、レジスタ410と整数演算ユニット414間で通信を行う。ある好ましい実施形態では、レジスタ410から浮動小数点演算ユニット412または整数演算ユニット414へのバス418と420の幅は、384ビットであり、浮動小数点演算ユニット412または整数演算ユニット414からレジスタ410へのバス418と420の幅は128ビットである。浮動小数点演算ユニット412または整数演算ユニット414からレジスタ410への幅より広い、レジスタ410から浮動小数点演算ユニットまたは整数演算ユニットへの上記バスの広い幅によって、レジスタ410からのより広いデータ・フローが処理中に許容される。最大3ワードが各計算には必要となる。しかし、各計算の結果は、一般に、ただ1ワードだけである。
図5〜10は、ネットワーク104のメンバーのプロセッサのモジュラー構造をさらに例示する図である。例えば、図5に示すように、1つのプロセッサには単一のPE502を含むことができる。上述のように、このPEには、一般に、PU、DMACおよび8個のAPUが含まれる。各APUにはローカル・ストレージ(LS)が含まれる。一方、プロセッサは、ビジュアライザ(VS)505の構造を有する場合もある。図5に示すように、VS505はPU512、DMAC514および4つのAPU(APU516、APU518、APU520、APU522)を有する。PEのその他の4つのAPUによって通常占有されるチップ・パッケージ内のスペースは、この場合、ピクセル・エンジン508、画像用キャッシュ510およびブラウン管コントローラ(CRTC)504によって占有される。PE502またはVS505に求められる通信速度に応じて、チップ・パッケージの中に光インターフェース506が含まれる場合もある。
この標準化されたモジュラー構造を用いて、多数の他のプロセッサの変更例を容易にかつ効率的に構成することが可能となる。例えば、図6に示すプロセッサは、2つのチップ・パッケージ(BEを備えるチップ・パッケージ602と、4つのVSを含むチップ・パッケージ604)を有する。入出力部(I/O)606によって、チップ・パッケージ602のBEとネットワーク104との間にインターフェースが設けられる。バス608はチップ・パッケージ602とチップ・パッケージ604との間の通信を行う。入出用プロセッサ(IOP)610によってデータ・フローが制御され、I/O606へのまたはI/O606からの入出力が行われる。I/O606はASIC(Application Specific Integrated Circit)として製造が可能である。VSからの出力はビデオ信号612である。
図7は、ネットワーク104のその他のメンバーへ超高速通信を行う2つの光インターフェース704と706とを備えたBE702用のチップ・パッケージ(またはローカルに接続された他のチップ・パッケージ)を例示する。BE702は、ネットワーク104上でサーバーなどとして機能することができる。
図8のチップ・パッケージは、2つのPE802及び804および2つのVS806及び808を有する。I/O810は、チップ・パッケージとネットワーク104との間にインターフェースを与える。チップ・パッケージからの出力はビデオ信号である。この構成は画像処理用ワークステーションなどとして機能することができる。
図9はさらに別の構成を例示する。この構成は、図8に例示されている構成の処理パワーの1/2を含む。2つのPEの代わりに1つのPE902が設けられ、2つのVSの代わりに1つのVS904が設けられる。I/O906は、図8に例示されているI/Oの帯域幅の1/2の帯域幅を有する。またこのようなプロセッサは、画像処理用ワークステーションとして機能することができる。
最後の構成が図10に図示されている。このプロセッサは、単一のVS1002とI/O1004だけから構成される。この構成はPDAなどとして機能することができる。
図11は、ネットワーク104のプロセッサのチップ・パッケージの中への光インターフェースの統合を例示する図である。これらの光インターフェースによって、光信号は電気信号に変換され、電気信号は光信号に変換される。また、これらの光インターフェースは、ガリウム砒素、アルミニウム・ガリウム砒素、ゲルマニウムその他の元素や化合物などを含む様々な材料から構成することができる。この図に示すように、光インターフェース1104と1106とはBE1102のチップ・パッケージの上に組み立てられる。BEバス1108はBE1102のPE、すなわち、PE1110、PE1112、PE1114、PE1116およびこれらの光インターフェースとの間での通信を行う。光インターフェース1104には2つのポート(ポート1118とポート1120)が含まれ、また光インターフェース1106には2つのポート(ポート1122とポート1124)が含まれる。ポート1118、1120、1122、1124は、光導波路1126、1128、1130、1132とそれぞれ接続される。光信号は、光インターフェース1104と1106のポートを介して、これらの光導波路の中を通り、BE1102へおよびBE1102から伝送される。
このような光導波路と各BEの4つの光ポートとを用いて様々な構成において複数のBEをまとめて接続してもよい。例えば、図12に示すように、このような光ポートを介して2つまたはそれ以上のBE(BE1152、BE1154、BE1156など)を直列に接続することができる。この例では、BE1152の光インターフェース1166は、その光ポートを介しBE1154の光インターフェース1160の光ポートと接続される。同様に、BE1154の光インターフェース1162の光ポートは、BE1156の光インターフェース1164の光ポートと接続される。
図13にマトリクス構成が例示される。この構成では、各BEの光インターフェースは2つの他のBEと接続される。この図に示すように、BE1172の光インターフェース1188の光ポートの中の1つが、BE1176の光インターフェース1182の光ポートと接続される。光インターフェース1188のもう一方の光ポートは、BE1178の光インターフェース1184の光ポートと接続される。同様に、BE1174の光インターフェース1190の1つの光ポートはBE1178の光インターフェース1184のもう一方の光ポートと接続される。光インターフェース1190のもう一方の光ポートは、BE1180の光インターフェース1186の光ポートと接続される。このマトリックス構成は他のBEに対しても同様に拡張することができる。
シリアル構成かマトリックス構成のいずれかを用いて、任意の所望のサイズとパワーから成るネットワーク104用プロセッサの構成が可能となる。言うまでもなく、BEの光インターフェースに対して、または、BEよりPE数の少ないプロセッサに対して追加ポートを加えて、他の構成を形成してもよい。
図14はBEのDRAMに対する制御システムと構造を例示する図である。同様の制御システムと構造が、別のサイズを持ち、多少異なる数のPEを含むプロセッサの中で用いられる。この図に示すように、クロスバ交換機によって、BE1201を備える4つのPEからなる各DMAC1210が8つのバンク・コントロール1206と接続される。各バンク・コントロール1206によって、DRAM1204の8つのバンク1208(4つだけしか図示されていない)が制御される。したがって、DRAM1204は、合計64のバンクを具備することになる。好ましい実施形態では、DRAM1204は64メガバイトの容量を持ち、各バンクは1メガバイトの容量を持っている。各バンク内の最小のアドレス指定可能単位は、この好ましい実施形態では1024ビットのブロックである。
BE1201にはスイッチ・ユニット1212も含まれる。スイッチ・ユニット1212によって、BE1201と密接に接続されているBEの他のAPUのDRAM1204へのアクセスが可能となる。したがって、第2のBEを第1のBEと密接に接続することが可能となり、さらに、各BEの各APUは、APUが通常アクセス可能なメモリ・ロケーションの数の2倍のアドレス指定を行うことが可能となる。スイッチ・ユニット1212のようなスイッチ・ユニットを介して、第1のBEのDRAMから第2のBEのDRAMへのデータの直接読み出し、または、第2のBEのDRAMから第1のBEのDRAMへのデータの直接書き込みを行うことが可能となる。
例えば、図15に示すように、このような書き込みを行うために、第1のBEのAPU(BE1222のAPU1220など)によって、第2のBEのDRAM(通常の場合のようなBE1222のDRAM1224ではなく、BE1226のDRAM1228など)のメモリ・ロケーションへの書き込みコマンドが出される。BE1222のDMAC1230は、クロスバ交換機1221を介して、バンク・コントロール1234へ書き込みコマンドを送り、バンク・コントロール1234は、バンク・コントロール1234と接続された外部ポート1232へコマンドを伝送する。BE1226のDMAC1238は書き込みコマンドを受け取り、BE1226のスイッチ・ユニット1240へこのコマンドを転送する。スイッチ・ユニット1240は書き込みコマンドの中に含まれるDRAMアドレスを識別し、BE1226のバンク・コントロール1242を介して、DRAM1228のバンク1244へ、DRAMアドレス内に格納するデータを送る。したがって、スイッチ・ユニット1240によって、DRAM1224とDRAM1228の双方は、BE1222のAPU用の単一メモリ空間として機能することが可能になる。
図16はDRAMの64個のバンク構成を図示する。これらのバンクは、8つの行(1302、1304、1306、1308、1310、1312、1314、1316)と8つの列(1320、1322、1324、1326、1328、1330、1332、1334)とで構成されている。各行は1つのバンク・コントローラによって制御される。したがって、各バンク・コントローラは8メガバイトのメモリを制御する。
図17と18は、最小のアドレス指定可能な格納単位(1024ビットのブロックなど) でのDRAMの格納とアクセスを行うための異なる構成を例示する。図17で、DMAC1402は単一のバンク1404の中に8つの1024ビット・ブロック1406を格納する。図18では、DMAC1412によって、1024ビットを含むデータ・ブロックの読み出しと書き込みが行われるものの、これらのブロックは、2つのバンク(バンク1414とバンク1416)の間で分配される。したがって、これらのバンクの各々には16個のデータ・ブロックが含まれ、データの各ブロックには512ビットが含まれる。この分配によって、DRAMのアクセスをさらに高速なものに改善することが可能となり、ある種のアプリケーションの処理に役立つ。
図19はPE内のDMAC1506のアーキテクチャを例示する。この図に例示されているように、各APU1502がDMAC1506の構造上のノード1504へ直接アクセスを行うように、DMAC1506を含む構造上のハードウェアは全てのPEを通じて配設される。各ノードは、ノードが直接アクセスを行う対象のAPUによるメモリ・アクセスに適した論理処理を実行する。
図20はDMACの他の実施形態、すなわち、非分配型アーキテクチャを図示する。この場合、DMAC1606の構造上のハードウェアは集中型である。APU1602とPU1604は、ローカルPEバス1607を介してDMAC1606を用いて通信を行う。DMAC1606はクロスバー・スイッチを介してバス1608と接続される。バス1608はDRAM1610と接続されている。
上述のように1つのPEの複数のAPUのすべては、独立に、共用DRAM内のデータへのアクセスが可能である。その結果、第1のAPUがあるデータをそのローカル・ストレージで処理しているときに、第2のAPUがこれらのデータを要求する場合もある。その時点で共用DRAMから第2のAPUへ当該データが出力された場合、データの値を変化させ得る第1のAPUの進行中の処理に起因して、そのデータが無効になる場合がある。したがって、その時点で第2のプロセッサが共用DRAMからデータを受け取った場合、第2のプロセッサでエラー結果が生じるおそれがある。例えば、このようなデータとしては、グローバル変数用の具体的な値が挙げられる。第1のプロセッサがその処理中その値を変えた場合、第2のプロセッサはもう使用されていない値を受け取ることになる。したがって、共用DRAMの範囲内でメモリ・ロケーションからのおよびメモリ・ロケーションへのAPUによるデータの読み出しと書き込みを同期させる何らかの方式が必要となる。この方式では、別のAPUがそのローカル・ストレージで現在働きかけている対象データであって、したがって最新のものではないデータのメモリ・ロケーションからの読み出しと、最新のデータを格納するメモリ・ロケーションの中へのデータの書き込みと、を行わないようにする必要がある。
これらの問題を解決するために、DRAMの各アドレス指定が可能なメモリ・ロケーションに対して、そのメモリ・ロケーションの中に格納されているデータに関連する状態情報を格納するために、DRAMの中でメモリの追加セグメントの割り振りが行われる。この状態情報の中には、フル/エンプティ(F/E)ビットと、メモリ・ロケーションからデータを要求するAPUの識別子(APU ID)と、要求されたデータを読み出す読み出し先となるAPUのローカル・ストレージのアドレス(LSアドレス)とが含まれる。DRAMのアドレス指定が可能なメモリ・ロケーションは任意のサイズとすることができる。ある好ましい実施形態ではこのサイズは1024ビットである。
F/Eビットの1への設定は、メモリ・ロケーションに格納されているデータが最新のものであることを示す。一方、F/Eビットの0への設定は、関連するメモリ・ロケーションに格納されたデータが最新のものではないことを示す。このビットが0に設定されているとき、APUがそのデータを要求しても、APUによってそのデータの即時読み出しは妨げられる。この場合、そのデータを要求しているAPUを識別するAPU IDと、データが最新のものになっているとき、そのデータを読み出す読み出し先となるこのAPUのローカル・ストレージ内のメモリ・ロケーションを識別するLSアドレスとが、追加メモリ・セグメントの中へ入力される。
また追加メモリ・セグメントは、APUのローカル・ストレージ内の各メモリ・ロケーションに対して割り振られる。この追加メモリ・セグメントは、“ビジー・ビット”と呼ばれる1ビットを格納する。このビジー・ビットは、DRAMから検索される固有データの格納用として関連するLSメモリ・ロケーションの予約を行うために使用される。ローカル・ストレージ内の特定のメモリ・ロケーションに対してビジー・ビットが1に設定されている場合、これらの固有データの書き込み用としてのみAPUはこのメモリ・ロケーションを使用することができる。一方、ビジー・ビットが、ローカル・ストレージ内の特定のメモリ・ロケーションに対して0に設定されている場合、APUは、任意のデータの書き込み用としてこのメモリ・ロケーションを使用することができる。
F/Eビット、APU ID、LSアドレスおよびビジー・ビットが、PEの共用DRAMからの、および、PEの共用DRAMへのデータの読み出しと書き込みを同期させるために使用される方法を示す例が図21−35に例示されている。
図21に示すように、1以上のPE(PE1720など)がDRAM1702を使用する。PE1720にはAPU1722とAPU1740とが含まれる。APU1722には制御論理回路1724が含まれ、APU1740には制御論理回路1742が含まれる。APU1722にはローカル・ストレージ1726も含まれる。このローカル・ストレージには複数のアドレス可能なメモリ・ロケーション1728が含まれる。APU1740にはローカル・ストレージ1744が含まれ、このローカル・ストレージにも複数のアドレス可能なメモリ・ロケーション1746が含まれる。これらのアドレス可能なメモリ・ロケーションのすべては好適にはサイズが1024ビットであることが望ましい。
メモリの追加セグメントは各LSのアドレス可能なメモリ・ロケーションと関連付けられる。例えば、メモリ・セグメント1729と1734とはそれぞれ、ローカルなメモリ・ロケーション1731と1732とに関連付けられ、メモリ・セグメント1752はローカルなメモリ・ロケーション1750と関連付けられる。上述のような“ビジー・ビット” はこれらの追加メモリ・セグメントの各々の中に格納される。ローカルなメモリ・ロケーション1732は、このメモリ・ロケーションがデータを含むことを示すいくつかの×印を用いて示されている。
DRAM1702には、メモリ・ロケーション1706と1708とを含む複数のアドレス可能なメモリ・ロケーション1704が含まれる。これらのメモリ・ロケーションは、好適にはサイズが1024ビットであることが望ましい。メモリの追加セグメントはまたこれらのメモリ・ロケーションの各々とも関連付けられる。例えば、追加メモリ・セグメント1760はメモリ・ロケーション1706と関連し、追加メモリ・セグメント1762はメモリ・ロケーション1708と関連付けられる。各メモリ・ロケーションに格納されるデータに関連する状態情報は、メモリ・ロケーションと関連付けられたメモリ・セグメントに格納される。この状態情報の中には、上述のように、F/Eビット、APU IDおよびLSアドレスが含まれる。例えば、メモリ・ロケーション1708については、この状態情報にはF/Eビット1712、APU ID1714およびLSアドレス1716が含まれる。
この状態情報とビジー・ビットとを用いて、PEのAPU、または1グループのPE間での、共用DRAMからの、および、同期した共用DRAMからの読み出しと、同期した共用DRAMへのデータの書き込みを行うことができる。
図22はAPU1722のLSメモリ・ロケーション1732から、DRAM1702のメモリ・ロケーション1708へのデータの同期書き込みの開始を例示する図である。APU1722の制御論理回路1724によってこれらのデータの同期書き込みが開始される。メモリ・ロケーション1708がエンプティであるため、F/Eビット1712は0に設定される。その結果、メモリ・ロケーション1708の中へLSメモリ・ロケーション1732内のデータを書き込むことが可能となる。一方、このビットが1に設定されていて、メモリ・ロケーション1708がフル状態であり、最新の有効データを含むことが示されている場合、制御回路1722はエラー・メッセージを受け取ることになり、このメモリ・ロケーションへのデータの書き込みは禁止される。
メモリ・ロケーション1708への成功したデータの同期書き込みの結果が図23に示されている。この書き込まれたデータはメモリ・ロケーション1708の中に格納され、F/Eビット1712は1に設定される。この設定によって、メモリ・ロケーション1708がフル状態であること、および、このメモリ・ロケーションの中のデータが最新の有効データであることが示される。
図24は、DRAM1702のメモリ・ロケーション1708からローカル・ストレージ1744のLSメモリ・ロケーション1750へのデータの同期読み出しの開始を例示する図である。この読み出しを開始するために、LSメモリ・ロケーション1750のメモリ・セグメント1752の中のビジー・ビットが1に設定されて、上記データ用としてこのメモリ・ロケーションが予約される。このビジー・ビットを1に設定することによって、APU1740がこのメモリ・ロケーションに他のデータを格納することはなくなっている。
図25に示すように、制御論理回路1742は次にDRAM1702のメモリ・ロケーション1708に対して同期読取りコマンドを出す。このメモリ・ロケーションと関連付けられるF/Eビット1712は1に設定されているので、メモリ・ロケーション1708の中に格納されたデータは最新の、有効データであると見なされる。その結果、メモリ・ロケーション1708からLSメモリ・ロケーション1750へのデータ転送の準備の際に、F/Eビット1712は0に設定される。この設定が図26に示されている。このビットを0に設定されているということは、これらのデータの読み出しの後に、メモリ・ロケーション1708のデータは無効になることを示す。
図27に示すように、メモリ・ロケーション1708内のデータは、次に、メモリ・ロケーション1708からLSメモリ・ロケーション1750へ読み出される。図28は最終状態を示す図である。メモリ・ロケーション1708のデータのコピーはLSメモリ・ロケーション1750に格納される。F/Eビット1712は0に設定され、メモリ・ロケーション1708のデータが無効であることが示される。この無効は、APU1740によって行われた上記データの変更の結果である。メモリ・セグメント1752内のビジー・ビットもまた0に設定される。この設定によって、APU1740がLSメモリ・ロケーション1750を任意の目的に利用できること、すなわち、このLSメモリ・ロケーションがもはや固有データの受信を待機している予約状態ではないことが示される。したがって、任意の目的のためにAPU1740によるLSメモリ・ロケーション1750へのアクセスが可能となる。
図29〜図35には、DRAM1702のメモリ・ロケーション用のF/Eビットが、0に設定されていて、このメモリ・ロケーションのデータが最新のものでもなく有効なものでもないことが示されている場合の、DRAM1702(メモリ・ロケーション1708など)のメモリ・ロケーションから、APUのローカル・ストレージ(ローカル・ストレージ1744のLSメモリ・ロケーション1752など)のLSメモリ・ロケーションへのデータの同期読み出しが例示されている。図29に示すように、この転送を開始するために、LSメモリ・ロケーション1750のメモリ・セグメント1752内のビジー・ビットは1に設定され、このデータ転送用としてこのLSメモリ・ロケーションが予約される。図30に示すように、制御論理回路1742は、次に、DRAM1702のメモリ・ロケーション1708に対して同期読取りコマンドを出す。このメモリ・ロケーションと関連付けられたF/Eビット(F/Eビット1712)は0に設定されているので、メモリ・ロケーション1708に格納されているデータは無効である。その結果、信号は制御論理回路1742へ伝送され、このメモリ・ロケーションからのデータの即時読み出しが阻止される。
図31に示すように、APU ID1714とこの読取りコマンド用のLSアドレス1716とはメモリ・セグメント1762の中へ書き込まれる。この場合、APU1740用のAPU IDと、LSメモリ・ロケーション1750用のLSメモリ・ロケーションとはメモリ・セグメント1762の中へ書き込まれる。したがって、メモリ・ロケーション1708の範囲内のデータが最新のものになっているとき、このAPU IDとLSメモリ・ロケーションは、最新のデータを伝送する伝送先のメモリ・ロケーションを決定するために使用される。
メモリ・ロケーション1708内のデータは、APUがこのメモリ・ロケーションの中へデータを書き込むと、有効で最新のデータとなる。APU1722のメモリ・ロケーション1732などからメモリ・ロケーション1708の中へのデータの同期書き込みが図29に例示されている。このメモリ・ロケーション用のF/Eビット1712が0に設定されているため、これらのデータのこの同期書き込みは許される。
図33に示すように、この書き込み後、メモリ・ロケーション1708の中のデータは最新の有効データになる。したがって、メモリ・セグメント1762から得られるAPUID1714とLSアドレス1716とは、メモリ・セグメント1762から即座に読み出され、次いでこの情報はこのセグメントから削除される。メモリ・ロケーション1708の中のデータの即時読み出しを予期して、F/Eビット1712もまた0に設定される。図34に示すように、APU ID1714とLSアドレス1716とを読み出すと、APU1740のLSメモリ・ロケーション1750へメモリ・ロケーション1708内の有効データを読み出すためにこの情報は直ちに使用される。最終状態が図35に図示されている。この図は、メモリ・ロケーション1708からメモリ・ロケーション1750へコピーされた有効データと、0に設定されたメモリ・セグメント1752内のビジー・ビットと、0に設定されたメモリ・セグメント1762内のF/Eビット1712とを図示する。このビジー・ビットの0への設定によって、任意の目的のためにAPU1740がLSメモリ・ロケーション1750のアクセスを行うことが可能になる。このF/Eビットの0への設定によって、メモリ・ロケーション1708内のデータがもはや最新のものでもなく、有効なものでもないことが示される。
図36は、上述のオペレーションと、DRAMのメモリ・ロケーションの様々な状態とを要約する図であり、この状態は、F/Eビットの状態と、APU IDと、メモリ・ロケーションに対応するメモリ・セグメントの中に格納されたLSアドレスとに基づく。このメモリ・ロケーションは、3つの状態を持つことが可能である。これらの3つの状態として、F/Eビットが0に設定され、APU IDまたはLSアドレスに対して情報が提供されないエンプティ状態1880と、F/Eビットが1に設定され、APU IDまたはLSアドレスに対して情報が提供されないフル状態1882と、F/Eビットが0に設定され、APU IDとLSアドレスに対して情報が提供されるブロッキング状態1884とがある。
この図に示すように、エンプティ状態1880では、同期書き込みオペレーションが許され、フル状態1882への遷移という結果が得られる。しかし、メモリ・ロケーションがエンプティ状態であるときはメモリ・ロケーション内のデータが最新のものではないので、同期読み出しオペレーションに対しては、ブロッキング状態1884へ遷移するという結果となる。
フル状態1882では、同期読み出しオペレーションが許され、エンプティ状態1880への遷移という結果が得られる。一方、有効データの上書きを避けるために、フル状態1882の同期書き込みオペレーションは禁止される。このような書き込みオペレーションがこの状態で試みられる場合、状態の変化は生じず、エラー・メッセージがAPUの対応する制御論理回路へ伝送される。
ブロッキング状態1884では、メモリ・ロケーションの中へのデータの同期書き込みが許され、エンプティ状態1880への遷移という結果が得られる。一方、ブロッキング状態1884での同期読み出しオペレーションは禁止される。このブロッキング状態を生じさせることとなった前回同期読み出しオペレーションとのコンフリクトを阻止するためである。同期読み出しオペレーションが、ブロッキング状態1884で試みられた場合、状態変化は生じないでAPUの対応する制御論理回路へエラー・メッセージが伝送される。
共用DRAMからのデータの同期読み出しと、共用DRAMへのデータの同期書き込みを行う上述の方式は、外部装置からのデータ読み出しと外部装置へのデータ書き込み用プロセッサとして通常専用の計算用リソースを取り除くためにも利用が可能である。この入出力(I/O)機能はPUによって行うこともできる。しかし、この同期方式の変更を利用して、適切なプログラムを実行するAPUがこの機能を実行してもよい。例えば、この方式を利用して、外部装置によって開始された、I/Oインターフェースからのデータ伝送を求める割込み要求を受け取るPUは、このAPUにこの要求の処理を委任してもよい。次いで、APUはI/Oインターフェースに対して同期書き込みコマンドを出す。今度はこのインターフェースによって、現在DRAMの中へデータを書き込むことができる旨の信号が外部装置へ送られる。次にAPUはDRAMに対して同期読取りコマンドを出し、DRAMの関連するメモリ空間をブロッキング状態に設定する。APUはまた、データを受け取る必要があるAPUのローカル・ストレージのメモリ・ロケーションに対してビジー・ビットを1に設定する。ブロッキング状態では、DRAMの関連するメモリ空間と関連付けられた追加メモリ・セグメントの中に、APUのIDとAPUのローカル・ストレージの関連するメモリ・ロケーションのアドレスが含まれる。次に外部装置は同期書き込みコマンドを出し、DRAMの関連するメモリ空間へデータが直接書き込まれる。このメモリ空間はブロッキング状態にあるので、データは、このスペースの中から、追加メモリ・セグメントの中で識別されたAPUのローカル・ストレージのメモリ・ロケーションの中へ直ちに読み出される。次いで、これらのメモリ・ロケーション用のビジー・ビットは0に設定される。外部装置がデータの書き込みを完了したとき、APUは、伝送が完了した旨を示す信号をPUへ出す。
したがって、この方式を用いて、PUに対する最小の計算上の負荷で、外部装置からのデータ転送処理を行うことができる。しかし、この機能を委任されたAPUはPUに対して割込み要求を出せることが望ましく、外部装置がDRAMに対して直接アクセスを行うことが望ましい。
各PEのDRAMには複数の“サンドボックス”が含まれる。サンドボックスによって共用DRAM領域が画定され、この領域を越えて、特定のAPUまたは1組のAPUがデータの読み出しや書き込みを行うことはできない。これらのサンドボックスによって、1つのAPUが処理するデータに起因する、別のAPUによって処理されるデータの破損に対するセキュリティが与えられる。またこれらのサンドボックスによって、ソフトウェア・セルが全DRAMの中でデータの破損を生じる可能性なく、ネットワーク104から特定のサンドボックスの中へソフトウェア・セルのダウンロードを行うことが許される。本発明では、サンドボックスは、DRAMとDMACとから成るハードウェアの中に設けられる。ソフトウェアの代わりに、このハードウェア内にこれらのサンドボックスを設けることにより、速度とセキュリティという利点が得られる。
PEのPUはAPUへ割り当てられるサンドボックスの制御を行う。PUは、オペレーティング・システムのような信頼のおけるプログラムだけしか通常作動させないので、本方式によってセキュリティが危険にさらされることはない。本方式に従って、PUはキー管理テーブルの構築と維持とを行う。図37にこのキー管理テーブルが例示されている。この図に示すように、キー管理テーブル1902内の各エントリには、APU用の識別子 (ID)1904と、そのAPU用のAPUキー1906と、キー・マスク1908とが含まれる。このキー・マスクの用途について以下説明する。キー管理テーブル1902は、スタティック・ランダム・アクセス・メモリ(SRA)のような比較的高速のメモリに好適に格納され,DMACと関連付けられる。キー管理テーブル1902へのエントリはPUによって制御される。APUが、DRAMの特定の格納位置(ストレージロケーション)へのデータの書き込みあるいはDRAMの特定の格納位置からのデータの読み出しを要求すると、DMACは、その格納位置と関連付けられたメモリ・アクセス・キーに対して、キー管理テーブル1902内のそのAPUへ割り当てられたAPUキー1906の評価を行う。
図38に示すように、DRAM2002の各アドレス可能な格納位置2006に対して専用メモリ・セグメント2010が割り当てられる。この格納位置用のメモリ・アクセス・キー2012はこの専用メモリ・セグメントの中に格納される。上述のように、やはり各アドレス可能な格納位置2006と関連付けられたさらなる追加専用メモリ・セグメント2008によって、格納位置へのデータ書き込みと、格納位置からのデータの読み出しを行うための同期情報が格納される。
作動時に、APUはDMACへDMAコマンドを出す。このコマンドには、DRAM2002の格納位置2006のアドレスが含まれる。このコマンドを実行する前に、DMACは、キー管理テーブル1902におけるAPUのID1904を用いて要求を行っているAPUのキー1906を調べる。次いで、DMACは、APUがアクセスを求める対象先であるDRAMの格納位置と関連付けられた専用メモリ・セグメント2010内に格納されているメモリ・アクセス・キー2012と、要求を行っているAPUのAPUキー1906との比較を行う。2つのキーが一致しない場合、DMAコマンドは実行されない。一方、2つのキーが一致した場合、DMAコマンドは進行し、要求されたメモリ・アクセスが実行される。
図39に他の実施形態の一例を示す。この例では、PUはメモリ・アクセス管理テーブル2102の維持も行う。メモリ・アクセス管理テーブル2102にはDRAM内にある各サンドボックス用のエントリが含まれる。図39の特定の例では、DRAMには64個のサンドボックスが含まれる。メモリ・アクセス管理テーブル2102内の各エントリには、サンドボックス用識別子(ID)2104と、ベース・メモリ・アドレス2106と、サンドボックス・サイズ2108と、メモリ・アクセス・キー2110と、アクセス・キーマスク2110とが含まれる。ベース・メモリ・アドレス2106によって、DRAM内にアドレスが設けられ、このアドレスによって特定のメモリ・サンドボックスの最初の部分が示される。サンドボックス・サイズ2108によってサンドボックスのサイズが与えられ、したがって、このサイズによって特定のサンドボックスのエンドポイントが与えられる。
図40は、キー管理テーブル1902とメモリ・アクセス管理テーブル2102とを用いてDMAコマンドを実行するためのステップを示すフロー・チャートである。ステップ2202では、APUによって、サンドボックス内の特定の一つあるいは複数のメモリ・ロケーションに対するアクセス用DMAコマンドがDMACへ出される。このコマンドには、アクセス要求を行う対象先である特定のサンドボックスの識別を行うサンドボックスID2104が含まれる。ステップ2204では、DMACは、APUのID1904を利用して、キー管理テーブル1902内の要求を行っているAPUのキー1906を調べる。ステップ2206で、DMACは、メモリ・アクセス管理テーブル2102で、サンドボックスと関連付けられたメモリ・アクセス・キー2110を調べるコマンドで、サンドボックスID2104を利用する。ステップ2208で、DMACは、要求を行っているAPUへ割り当てられているAPUキー1906をサンドボックスと関連付けられたアクセス・キー2110と比較する。ステップ2210で、この2つのキーが一致するかどうかの決定が行われる。この2つのキーが一致しない場合、処理はステップ2212へ移行し、そこでDMAコマンドは先へ進まず、要求を行っているAPUとPUのいずれかまたはその双方へエラー・メッセージが送信される。一方、ステップ2210で、2つのキーの一致が得られた場合、処理はステップ2214へ進み、そこでDMACはDMAコマンドを実行する。
APUキー用およびメモリ・アクセス・キー用のキー・マスクによってこのシステムに大きな柔軟性が与えられる。キー用のキー・マスクによって、マスクされたビットはワイルド・カードに変換される。例えば、APUキー1906と関連付けられたキー・マスク1908が、キー・マスク1908内のこれらのビットを1に設定することなどにより、その最後の2ビットが“マスク”に設定されている場合、APUキーは1または0のいずれかになることができ、そのままメモリ・アクセス・キーに一致することになる。例えば、APUキーが1010であるとする。通常、このAPUキーによって1010のアクセス・キーを持つサンドボックスへのアクセスだけが可能になる。しかし、このAPUキー用のAPUキー・マスクが0001に設定されている場合、このAPUキーを用いて1010または1011のいずれかのアクセス・キーを持つサンドボックスへのアクセスを行うことが可能となる。同様に、1010または1011のいずれかのAPUキーを持つAPUによって、0001に設定されたマスクを持つアクセス・キー1010のアクセスを行うことが可能である。APUキー・マスクとメモリ・キー・マスクの双方を同時に使用することができるので、多数のバリエーションのサンドボックスに対するAPUによるアクセシビリティの設定が可能となる。
また本発明はシステム101のプロセッサ用の新しいプログラミング・モデルも提供するものである。このプログラミング・モデルではソフトウェア・セル102が用いられる。ネットワーク104上の任意のプロセッサへ処理用としてこれらのセルの伝送を行うことが可能である。またこの新しいプログラミング・モデルでは、システム101のユニークなモジュラー形アーキテクチャと、システム101のプロセッサとが利用される。
ソフトウェア・セルはAPUのローカル・ストレージからAPUによって直接処理される。APUは、DRAM内のいずれのデータまたはプログラムに対しても直接働きかけることは行わない。DRAM内のデータとプログラムは、APUがこれらのデータとプログラムの処理を行う前に、APUのローカル・ストレージの中に読み込まれる。したがって、APUのローカル・ストレージには、プログラム・カウンタと、スタックと、これらのプログラムを実行するための他のソフトウェア・エレメントとが含まれることになる。PUは、DMACに対してDMAコマンドを出すことによりAPUの制御を行う。
ソフトウェア・セル102の構造が図41に例示されている。この図に示すように、ソフトウェア・セル2302などのソフトウェア・セルの中には、ルート選定情報セクション2304と本体部分2306とが含まれる。ルート選定情報セクション2304に含まれる情報は、ネットワーク104のプロトコルに依って決められる。ルート選定情報セクション2304の中には、ヘッダ2308、宛先ID2310、ソースID2312および応答ID2314が含まれる。宛先IDにはネットワーク・アドレスが含まれる。TCP/IPプロトコルの下で、例えば、ネットワーク・アドレスはインターネット・プロトコル(IP)アドレスである。さらに宛先ID2310には、処理のためにセルを伝送すべき伝送先のPE及びAPUの識別子が含まれる。ソースID2314にはネットワーク・アドレスが含まれ、このソースIDによってPEとAPUとが識別され、このPEとAPUとからセルが起動し、必要な場合に、宛先PEとAPUとがセルに関する追加情報を得ることが可能となる。応答ID2314にはネットワーク・アドレスが含まれ、この応答ID2314によって、セルに関するクエリとセルの処理の結果とを送る送り先のPEとAPUとが識別される。
セルの本体部分2306にはネットワークのプロトコルとは無関係の情報が含まれる。図41の分解部分はセルの本体部分2306の細部を図示する。セルの本体部分2306のヘッダ2320によってセル本体の開始部が識別される。セル・インターフェース2322にはセルの利用に必要な情報が含まれる。この情報の中には、グローバルな一意的ID2324と、要求されるAPU2326と、サンドボックス・サイズ2328と、前回のセルのID2330とが含まれる。
グローバルな一意的ID2324によって、ネットワーク104全体を通じてソフトウェア・セル2302が一意的に識別される。グローバルな一意的ID2324が、ソースID2312(ソースID2312内のPEまたはAPUの一意的識別子など)と、ソフトウェア・セル2302の作成または伝送の時刻と日付とに基づいて作成される。必要なAPU2326によってセルの実行に必要な最低数のAPUが与えられる。サンドボックス・サイズ2328によって、セルの実行に必要なDRAMと関連する必要なAPU内に、保護されたメモリ量が与えられる。前回のセルID2330によって、シーケンシャルな実行を要求する1グループのセル(ストリーミング・データなど)内の前回のセルの識別子が提供される。
実行セクション2332の中にはセルのコア情報が含まれる。この情報の中にはDMAコマンド・リスト2334と、プログラム2336と、データ2338とが含まれる。プログラム2336には、APUプログラム2360と2362などのAPUによって実行されるプログラム(“アプレット” と呼ばれる)が含まれ、データ2338にはこれらのプログラムを用いて処理されるデータが含まれる。DMAコマンド・リスト2334には、プログラムの起動に必要な一連のDMAコマンドが含まれる。これらのDMAコマンドにはDMAコマンド 2340、2350、2355、2358が含まれる。PUはDMACへこれらのDMAコマンドを出す。
DMAコマンド2340にはVID2342が含まれる。VID2342は、DMAコマンドが出されたとき物理IDに対して対応づけられるAPUのバーチャルIDである。DMAコマンド2340にはロード・コマンド2344とアドレス2346も含まれる。ロード・コマンド2344は、APUにDRAMから特定の情報を読み出しローカル・ストレージの中へ入れるように命令する。アドレス2346によってこの特定情報を含むDRAM内のバーチャル・アドレスが与えられる。この特定情報は、プログラム・セクション2336からのプログラムや、データ・セクション2338からのデータや、あるいはその他のデータなどであってもよい。最終的に、DMAコマンド2340にはローカル・ストレージのアドレス2348が含まれる。このアドレスによって、情報をロードできそうなローカル・ストレージのアドレスが識別される。DMAコマンド2350には類似の情報が含まれる。その他のDMAコマンドも使用可能である。
DMAコマンド・リスト2334には一連のキック・コマンド(キック・コマンド2355と2358など)も含まれる。キック・コマンドとは、PUによってAPUへ出されるセルの処理を開始するコマンドである。DMAキック・コマンド2355には、バーチャルAPU ID2352と、キック・コマンド2354と、プログラム・カウンタ2356とが含まれる。バーチャルAPU ID2352はキックすべき対象APUを識別し、キック・コマンド2354は関連するキック・コマンドを与え、プログラム・カウンタ2356は、プログラムの実行用プログラム・カウンタのためのアドレスを与える。DMAキック・コマンド2358は、同じAPUまたは別のAPUに対して同様の情報を与える。
上述したように、PUは独立したプロセッサとしてAPUを扱い、コプロセッサとして扱うものではない。したがって、APUによる処理を制御するために、PUは、遠隔手順呼出しに類似したコマンドを使用する。これらのコマンドは“APU遠隔手順呼出し(ARPC)”と呼ばれる。PUは、一連のDMAコマンドをDMACへ出すことによりARPCを実行する。DMACは、APUプログラムとそれと関連するスタック・フレームとをAPUのローカル・ストレージの中へロードする。次いで、PUはAPUへ最初のキックを出し、APUプログラムを実行する。
図42は、アプレットを実行するためのARPCのステップを例示する。指定APUによるアプレットの処理の開始時にPUが実行するこれらのステップが、図42の第1の部分2402に示され、指定APUが実行するステップが、図42の第2の部分2404に示されている。
ステップ2410で、PUはアプレットを評価し、次いで、アプレットの処理用APUを指定する。ステップ2412で、PUは、必要な単複のサンドボックス用のメモリ・アクセス・キーの設定を行うDMAコマンドをDMACへ出すことにより、アプレットの実行用スペースをDRAM内に割り振る。ステップ2414で、PUは、指定APUへの割込み要求による、アプレットの完了信号の伝送を可能にする。ステップ2418で、PUは、DRAMからAPUのローカル・ストレージへアプレットをロードするDMAコマンドをDMACへ出す。ステップ2420で、DMAコマンドが実行され、アプレットがDRAMからローカル・ストレージへ読み出される。ステップ2422で、PUは、アプレットと関連付けられたスタック・フレームをDRAMからAPUのローカル・ストレージへロードするDMAコマンドをDMACへ出す。ステップ2423で、DMAコマンドが実行され、スタック・フレームがDRAMからAPUのローカル・ストレージへ読み出される。ステップ2424で、PUは、DMACがAPUへキーを割り当てて、ステップ2412で指定された、一又は複数のハードウェア・サンドボックスからのデータ読み出しと、その一又は複数のハードウェア・サンドボックスへのデータ書き込みを行うことをAPUに許可するDMAコマンドを出す。ステップ2426で、DMACは、APUへ割り当てられたキーを用いてキー管理テーブル(KTAB)の更新を行う。ステップ2428で、PUは、プログラムの処理を開始するDMAコマンド“キック”をAPUへ出す。特定のアプレットに応じて、特定のARPCの実行時にPUによって他のDMAコマンドを出してもよい。
上記のように、図42の第2の部分2404は、アプレットの実行時にAPUによって行われるステップを例示するものである。ステップ2430で、APUは、ステップ2428で出されるキック・コマンドに応じてアプレットの実行を開始する。ステップ2432で、アプレットの指示で、APUは、アプレットの関連スタック・フレームの評価を行う。ステップ2434で、APUは、DMACへ複数のDMAコマンドを出し、スタック・フレームが必要に応じてDRAMからAPUのローカル・ストレージへ指定するデータのロードを行う。ステップ2436で、これらのDMAコマンドが実行され、データは、DRAMからAPUのローカル・ストレージへ読み出される。ステップ2438でAPUはアプレットを実行し、ある結果を出力する。ステップ2440で、APUはDMACへDMAコマンドを出し、DRAMにその結果を格納する。ステップ2442で、DMAコマンドが実行され、アプレットの結果がAPUのローカル・ストレージからDRAMへ書き込まれる。ステップ2444で、APUはPUへ割込み要求を出し、ARPCが完了したことを示す信号伝送を行う。
PUの指示の下で独立にタスクを実行するAPUの能力によって、1グループのAPUと、1グループのAPUと関連付けられたメモリ・リソースとを拡張タスクの実行専用にすることが可能になる。例えば、1つのPUは、1以上のAPUと、これらの1以上のAPUと関連付けられた1グループのメモリサンドボックスとを、拡張された時間中ネットワーク104を介して伝送されてくるデータの受信専用とし、また、1以上の他のAPUとそれらと関連付けられたメモリ・サンドボックスへ、この時間中受信したデータのさらなる処理を行うための送信専用とすることができる。この能力は、ネットワーク104を介して伝送されるストリーミング・データ(ストリーミングMPEGまたはストリーミングATRACオーディオまたはビデオ・データなど)の処理にとって特に好適である。PUは、1以上のAPUおよびそれらと関連付けられたメモリ・サンドボックスをこれらのデータの受信専用とし、1以上の他のAPUおよびそれらと関連付けられたメモリ・サンドボックスをこれらのデータの解凍と処理専用とすることができる。言い換えれば、PUは、APUのグループとそれらと関連付けられたメモリ・サンドボックスとの間でこのようなデータ処理を行うための専用パイプライン関係の確立を行うことができる。
しかし、このような処理を効率的に実行するためには、パイプ・ラインの専用APUとメモリサンドボックスとが、データ・ストリームを含むアプレットの処理が行われない時間中もパイプ・ライン専用のままであることが望ましい。言い換えれば、専用APUおよびそれらと関連するサンドボックスが、これらの時間中予約状態のままに置かれることが望ましい。アプレットの処理の完了時における、APUとその関連付けられた一又は複数のメモリ・サンドボックスを予約、即ちリザーブ状態としておくことは、“常駐終了”と呼ばれる。常駐終了はPUからの命令に応じて行われる。
図43、44、45は、1グループのAPUおよびそれらと関連するサンドボックスを含む、ストリーミング・データ(ストリーミングMPEGデータなど)を処理するための専用パイプライン構造の設定を例示する。図43に示すように、このパイプライン構造の構成要素にはPE2502とDRAM2518とが含まれる。PE2502の中には、PU2504、DMAC2506およびAPU2508、APU2510、APU2512を含む複数のAPUが含まれる。PU2504、DMAC2506およびこれらのAPU間の通信はPEバス2514を介して行われる。広帯域幅のバス2516によってDMAC2506はDRAM2518と接続される。DRAM2518の中には、複数のサンドボックス(サンドボックス2520、サンドボックス2522、サンドボックス2524、サンドボックス2526など)が含まれる。
図44に、専用パイプラインを設定するためのステップを例示する。ステップ2610で、PU2504は、ネットワーク・アプレットを処理するようにAPU2508を割り当てる。ネットワーク・アプレットは、ネットワーク104のネットワーク・プロトコルの処理用プログラムを有する。この場合、このプロトコルは 伝送制御プロトコル/インターネット用プロトコル(TCP/IP)である。このプロトコルに従うTCP/IPデータ・パケットはネットワーク104を介して伝送される。受信時に、APU2508はこれらのパケットを処理し、パケット内のデータを組み立て、ソフトウェア・セル102の中へ入れる。ステップ2612で、PU2504は、ネットワーク・アプレットの処理の完了時に常駐終了を実行するようにAPU2508に指示する。ステップ2614で、PU2504は、APU2510及び2512がMPEGアプレットの処理を行うように割り当てる。ステップ2615で、PU2504は、MPEGアプレットの処理の完了時に常駐終了を実行するようにAPU2510及び2512に指示する。ステップ2616で、PU2504は、APU2510によるアクセス用ソース・サンドボックス及びAPU2508によるアクセス用宛先サンドボックスとしてサンドボックス2520を指定する。ステップ2618で、PU2504は、APU2510によるアクセス用宛先サンドボックス及びAPU2512によるアクセス用ソースサンドボックスとしてサンドボックス2522を指定する。ステップ2620で、PU2504は、APU2512によるアクセス用宛先サンドボックス及びパイプライン内の後段のAPUによるアクセス用ソースサンドボックスとしてサンドボックス2524を指定する。ステップ2622で、PU2504は、パイプライン内の後段のAPUによるアクセス用宛先サンドボックス及びアクセス用ソースサンドボックスとしてサンドボックス2526を指定する。ステップ2624で、APU2510とAPU2512とは、それぞれ、ソース・サンドボックス2520とソース・サンドボックス2522の範囲内のメモリ・ブロックへ同期読取りコマンドを送り、これらのメモリ・ブロックをブロッキング状態に設定する。最後に、処理はステップ2628へ移り、そこで、専用パイプラインの設定が完了し、パイプ・ライン専用のリソースが予約される。このようにして、APU2508、2510、2512等およびそれらと関連するサンドボックス2520、2522、2524および2526は予約状態に入る。
図45に、この専用パイプラインによるストリーミングMPEGデータの処理ステップを例示する。ステップ2630で、APU2508は、ネットワーク・アプレットを処理し、そのローカル・ストレージの中で、TCP/IPデータ・パケットをネットワーク104から受信する。ステップ2632で、APU2508は、これらのTCP/IPデータ・パケットを処理し、これらのパケット内のデータをアセンブルし、ソフトウェア・セル102の中へ入れる。ステップ2634で、APU2508はソフトウェア・セルのヘッダ2320(図23)をチェックし、セルがMPEGデータを含むかどうかの判定を行う。セルがMPEGデータを含まない場合、ステップ2636で、APU2508は、専用パイプライン内に含まれない他のAPUによって他のデータを処理するために、DRAM2518内に指定される汎用サンドボックスへそのセルを伝送する。またAPU2508はこの伝送についてPU2504に通知する。
一方、ソフトウェア・セルがMPEGデータを含む場合、ステップ2638で、APU2508はそのセルの前のセルのID2330(図23)をチェックし、そのセルが属するMPEGデータ・ストリームを識別する。ステップ2640で、APU2508はセルの処理用の専用パイプラインのAPUを選択する。この場合、APU2508は、これらのデータを処理するAPU2510を選択する。この選択は前回のセルID2330とロード・バランシング・ファクタ(負荷平衡係数)とに基づく。例えば、そのソフトウェア・セルが属するMPEGデータ・ストリームの前回のソフトウェア・セルが処理用としてAPU2510へ送られたことが前のセルID2330によって示されている場合、現在のソフトウェア・セルも通常の処理用としてAPU2510へ送られる。ステップ2642で、APU2508は、サンドボックス2520へMPEGデータを書き込む同期書き込みコマンドを出す。このサンドボックスは予めブロッキング状態に設定されているので、ステップ2644で、MPEGデータは、サンドボックス2520からAPU2510のローカル・ストレージへ自動的に読み出される。ステップ2646で、APU2510はそのローカル・ストレージでMPEGデータを処理してビデオ・データを生成する。ステップ2648で、APU2510はサンドボックス2522へビデオ・データを書き込む。ステップ2650で、APU2510はサンドボックス2520へ同期読取りコマンドを出し、このサンドボックスに追加MPEGデータの受信を準備させる。ステップ2652で、APU2510は常駐終了処理を行う。この処理によってこのAPUは予約状態に入り、この予約状態の間APUは、MPEGデータ・ストリームの中で追加MPEGデータの処理を行うべく待機する。
他のタイプのデータ処理用として1グループのAPUおよびそれらと関連するサンドボックス間でその他の専用構造の設定が可能である。例えば、図46に示すように、APUの専用グループ(APU2702、2708、2714など)を設定し、3次元オブジェクトに対して幾何学的変換を実行して2次元ディスプレイ・リストの生成を行うことが可能となる。これらの2次元ディスプレイ・リストを他のAPUによってさらに処理(レンダー) し画素データの生成を行うようにすることが可能である。この処理を実行するために、3次元オブジェクトと、これらのオブジェクト処理から結果として生じるディスプレイ・リストの格納用として、サンドボックスが、APU2702、2708、2414の専用となる。例えば、ソース・サンドボックス2704、2710、2716は、それぞれ、APU2702、APU2708、APU2714によって処理された3次元オブジェクトの格納専用となる。同様に、宛先サンドボックス2706、2712、2718は、それぞれ、APU2702、APU2708、APU2714によるこれらの3次元オブジェクトの処理から結果として生じるディスプレイ・リストの格納専用となる。
調整用APU2720は、そのローカル・ストレージにおける、宛先サンドボックス2706、2712、2718からのディスプレイ・リストの受信専用である。APU2720は、これらのディスプレイ・リスト間での調整を行い、画素データのレンダリングのためにこれらのディスプレイ・リストを他のAPUへ送る。
システム101のプロセッサは絶対タイマーも使用する。この絶対タイマーはAPUとPEの他のエレメントへクロック信号を出力する。このクロック信号はこれらのエレメントを駆動するクロック信号に依存せず、かつ、このクロック信号より高速である。この絶対タイマーの利用が図28に例示されている。
この図に示すように、この絶対タイマーによってAPUによるタスク・パフォーマンスのためのタイム・バジェット(割り当て時間)が決定される。このタイム・バジェットによって、これらのタスクの完了時間が設定されるが、この時間はAPUによるタスク処理に必要な時間より長い時間になる。その結果、各タスクについて、タイム・バジェットの範囲内に、ビジーな時間とスタンバイ時間とが存在することになる。すべてのアプレットは、APUの実際の処理時間にかかわらず、このタイム・バジェットに基づいて処理を行うように書かれる。
例えば、PEの特定のAPU用として、タイム・バジェット2804のビジー時間2802中に特定のタスクを行うことができる。ビジー時間2802がタイム・バジェット2804未満であるため、スタンバイ時間2806がタイム・バジェット中に生じる。このスタンバイ時間中、APUは、APUが消費するパワーが少なくなるスリープモードに入る。
タイム・バジェット2804が満了するまでまで、他のAPUまたはPEの他のエレメントがタスク処理の結果を予想することはない。したがって、APUの実際の処理速度にかかわらず、絶対タイマーによって決定されるタイム・バジェットを用いてAPUの処理結果が常時調整される。
将来、APUによる処理速度はさらに高速になる。しかし、絶対タイマーによって設定されるタイム・バジェットは同じままである。例えば、図28に示すように、将来のAPUは、さらに短時間でタスクを実行することになり、したがって、スタンバイ時間はさらに長くなるであろう。したがって、ビジー時間2808はビジー時間2802より短くなり、スタンバイ時間2810はスタンバイ時間2806より長くなる。しかし、絶対タイマーによって設定された同じタイム・バジェットに基づいて処理を行うようにプログラムが書かれているので、APU間での処理結果の調整が維持される。その結果、さらに高速のAPUが、その処理の結果が予想される時点でコンフリクトを生じることなく、低速のAPU用として書かれたプログラムの処理を行うことが可能となる。
動作速度の向上や動作速度が異なることに起因するAPUの並列処理の調整問題に対しては、APU間での調整を決定する絶対タイマーに代えて、PUまたは1以上の指定APUにおいて、APUが実行している特定の命令(マイクロコード)の分析をアプレットの処理時に行うようにすることもできる。“オペレーションなし”(“NOOP”)命令を命令の中へ挿入し、APUのいくつかによってこの命令を実行して、アプレットによって予想されるAPUによる処理を1ステップずつ適切に行うことが可能となる。命令の中へこれらのNOOPを挿入することにより、すべての命令のAPUによる実行を行うための正しいタイミングの維持が可能となる。
以上特定の実施形態に関して本明細書で本発明について説明したが、これらの実施形態は本発明の原理と適用を示す単に例示的なものであると理解すべきである。したがって、添付の請求項によって画定されているような本発明の精神と範囲から逸脱することなく、以上の例示の実施形態に対して多数の改変を行うことが可能であり、また、他の構成を考案することが可能である。
本発明によるコンピュータ・ネットワークのアーキテクチャ全体を例示する。 本発明によるプロセッサ・エレメント(PE)の構造を例示する図である。 本発明による広帯域エンジン(BE)の構造を例示する図である。 本発明による付加処理ユニット(APU)の構造を例示する図である。 本発明によるプロセッサ・エレメントと、ビジュアライザ(VS)と、光インターフェースとの構造を例示する図である。 本発明によるプロセッサ・エレメントの1つの組合せを例示する図である。 本発明によるプロセッサ・エレメントの別の組合せを例示する図である。 本発明によるプロセッサ・エレメントのさらに別の組合せを例示する図である。 本発明によるプロセッサ・エレメントのさらに別の組合せを例示する図である。 本発明によるプロセッサ・エレメントのさらに別の組合せを例示する図である。 本発明によるチップ・パッケージ内での光インターフェースの統合化を例示する図である。 図11の光インターフェースを用いるプロセッサの1つの構成を示す図である。 図11の光インターフェースを用いるプロセッサの別の構成を示す図である。 本発明によるメモリ・システムの構造を例示する図である。 本発明による第1の広帯域エンジンから第2の広帯域エンジンへのデータの書き込みを例示する図である。 本発明によるプロセッサ・エレメントための共用メモリの構造を示す図である。 図16に示すメモリ・バンク用の1つの構造を例示する図である。 図16に示すメモリ・バンク用の別の構造を例示する図である。 本発明によるDMACのための構造を例示する図である。 本発明によるDMACのための代替の構造を例示する図である。 本発明によるデータ同期オペレーションを例示する図である。 本発明によるデータ同期オペレーションを例示する図である。 本発明によるデータ同期オペレーションを例示する図である。 本発明によるデータ同期オペレーションを例示する図である。 本発明によるデータ同期オペレーションを例示する図である。 本発明によるデータ同期オペレーションを例示する図である。 本発明によるデータ同期オペレーションを例示する図である。 本発明によるデータ同期オペレーションを例示する図である。 本発明によるデータ同期オペレーションを例示する図である。 本発明によるデータ同期オペレーションを例示する図である。 本発明によるデータ同期オペレーションを例示する図である。 本発明によるデータ同期オペレーションを例示する図である。 本発明によるデータ同期オペレーションを例示する図である。 本発明によるデータ同期オペレーションを例示する図である。 本発明によるデータ同期オペレーションを例示する図である。 本発明のデータ同期方式によるメモリ・ロケーションの様々な状態を例示する3つの状態のメモリ図である。 本発明によるハードウェア・サンドボックス用のキー管理テーブルの構造を例示する図である。 本発明によるハードウェア・サンドボックス用メモリ・アクセス・キーの格納方式を例示する図である。 本発明によるハードウェア・サンドボックス用メモリ・アクセス管理テーブルの構造を例示する図である。 図37のキー管理テーブルと図39のメモリ・アクセス管理テーブルとを用いてメモリ・サンドボックスにアクセスするステップを示すフロー・チャートである。 本発明によるソフトウェア・セルの構造を例示する図である。 本発明による、APUへ遠隔処理命令を出すステップを示すフロー・チャートである。 本発明による、ストリーミング・データ処理用専用パイプラインの構造を例示する図である。 本発明によるストリーミング・データの処理時の図43の専用パイプラインによって実行されるステップを示すフロー・チャートである。 本発明によるストリーミング・データの処理時の図43の専用パイプラインによって実行されるステップを示すフロー・チャートである。 本発明によるストリーミング・データ処理用の専用パイプラインの他の構造を例示する図である。 本発明によるAPUによるアプリケーションとデータの並列処理を調整するための絶対タイマー方式を例示する図である。
符号の説明
101 システム
1010 キー
102 セル
104 ネットワーク
106 クライアント
108 サーバーコンピュータ
1104 光インターフェース
1108 バス
1118 ポート
1122 ポート
1126 光導波路
1160 光インターフェース
1162 光インターフェース
1164 光インターフェース
1166 光インターフェース
1182 光インターフェース
1184 光インターフェース
1186 光インターフェース
1188 光インターフェース
1188 光インターフェース
1190 光インターフェース
1190 光インターフェース
1206 コントロール
1212 ユニット
1221 クロスバ交換機
1232 外部ポート
1234 コントロール
1240 ユニット
1242 コントロール
1244 バンク
1406 ブロック
1414 バンク
1416 バンク
1504 ノード
1607 バス
1608 バス
1722 制御回路
1724 制御論理回路
1726 ストレージ
1728 ロケーション
1729 セグメント
1731 ロケーション
1732 ロケーション
1742 制御論理回路
1746 ロケーション
1750 ロケーション
1752 セグメント
1760 セグメント
1762 セグメント
1880 エンプティ状態
1882 フル状態
1884 ブロッキング状態
1902 キー管理テーブル
1906 キー
1908 マスク
2006 格納位置
2008 セグメント
2010 セグメント
2012 キー
2102 アクセス管理テーブル
2106 アドレス
2110 キー
2110 キーマスク
223 バス
227 高帯域メモリ接続部
2302 セル
2308 ヘッダ
2320 ヘッダ
2322 インターフェース
2332 実行セクション
2334 リスト
2520 サンドボックス
2522 サンドボックス
2524 サンドボックス
2526 サンドボックス
2704 サンドボックス
2706 宛先サンドボックス
301 広帯域エンジン
311 バス
313 広帯域メモリ接続部
317 インターフェース
319 外部バス
406 メモリ
408 内部バス
410 レジスタ
412 浮動小数点演算ユニット
414 整数演算ユニット
420 バス
506 パッケージの中に光インターフェース
508 エンジン
510 画像用キャッシュ

Claims (40)

  1. コンピュータ・プロセッサにおいて、
    複数の第1処理ユニットを有し、各々の前記第1処理ユニットが、前記第1処理ユニットに関連づけられたローカル・メモリを含み、
    前記第1処理ユニットによるプログラムと前記プログラムと関連づけられたデータの処理を制御する第2処理ユニットを有し、
    前記第2処理ユニットが、前記プログラムと前記プログラムに関連付けられたデータを前記第1処理ユニットの前記ローカル・メモリへ転送指示し、前記第1処理ユニットで、前記第1処理ユニットの前記ローカル・メモリの前記プログラムと前記プログラムに関連付けられたデータを処理するように作動可能であることを特徴とするコンピュータ・プロセッサ。
  2. 請求項1に記載のプロセッサにおいて、前記第1処理ユニットは、前記プログラムと前記プログラムと関連づけられたデータとが格納されたメイン・メモリにアクセスが可能であり、
    前記第2処理ユニットは、前記メイン・メモリに格納されたプログラムと前記プログラムと関連付けられたデータを前記第1処理ユニットの前記ローカル・メモリへ転送指示することを特徴とするプロセッサ。
  3. 請求項2に記載のプロセッサにおいて、前記メイン・メモリがダイナミック・ランダム・アクセス・メモリであることを特徴とするプロセッサ。
  4. 請求項2に記載のプロセッサにおいて、前記メイン・メモリが、複数のメモリ・ロケーションを含み、各々の前記メモリ・ロケーションが当該メモリ・ロケーションに関連付けられたメモリ・セグメントを含むことを特徴とするプロセッサ。
  5. 請求項4に記載のプロセッサにおいて、前記各々のメモリ・セグメントの中に、前記メモリ・セグメントと関連付けられたメモリ・ロケーションに格納されたデータの状態を示す状態情報と、第1処理ユニットの識別子と、メモリ・アドレスとを格納することを特徴とするプロセッサ。
  6. 請求項5に記載のプロセッサにおいて、前記状態情報が、前記メモリ・セグメントと関連付けられたメモリ・ロケーションに格納された前記データが最新のものであるか否かを示し、前記識別子が、前記第1処理ユニットの中の特定の処理ユニットの識別子を示し、前記メモリ・アドレスが、前記特定の第1処理ユニットと関連付けられたローカル・メモリの内の記憶位置を示すことを特徴とするプロセッサ。
  7. 請求項1に記載のプロセッサにおいて、前記第1処理ユニットの各々が単一命令、複数データ・プロセッサであることを特徴とするプロセッサ。
  8. 請求項1に記載のプロセッサにおいて、前記第1処理ユニットの各々が、1組のレジスタと、複数の浮動小数点演算ユニットと、前記1組のレジスタと前記複数の浮動小数点演算ユニットとを接続する1以上のバスとを含むことを特徴とするプロセッサ。
  9. 請求項8に記載のプロセッサにおいて、前記第1処理ユニットの各々が、複数の整数演算ユニットと、前記複数の整数演算ユニットと前記1組のレジスタとを接続する1以上のバスとをさらに含むことを特徴とするプロセッサ。
  10. 請求項1に記載のプロセッサにおいて、光インターフェースと、光導波路とをさらに有し、前記光インターフェースが、前記プロセッサによって生成された電気信号を、前記プロセッサから伝送するための光信号に変換するとともに、前記プロセッサまで伝送された光信号を電気信号に変換することが可能で、前記光導波路が前記光信号を伝送するために前記光インターフェースと接続されていることを特徴とするプロセッサ。
  11. 請求項1に記載のプロセッサにおいて、前記ローカル・メモリがスタティック・ランダム・アクセス・メモリであることを特徴とするプロセッサ。
  12. 請求項1に記載のプロセッサにおいて、画素データを生成するレンダリング・エンジンと、前記画素データを一時的に格納するフレーム・バッファと、前記画素データをビデオ信号に変換する表示制御装置と、をさらに有することを特徴とするプロセッサ。
  13. 請求項1に記載のプロセッサにおいて、前記プログラムと関連付けられた前記データがスタック・フレームを含むことを特徴とするプロセッサ。
  14. 請求項2に記載のプロセッサにおいて、前記各々の第1処理ユニットが、制御装置を有し、前記プログラムと前記関連付けられたデータの前記処理時、前記メイン・メモリから前記第1処理ユニットに関連付けられたローカル・メモリへ前記データの転送を指示することを特徴とするプロセッサ。
  15. 請求項2に記載のプロセッサにおいて、前記メイン・メモリが、複数のメモリ・バンク・コントローラと、前記第1処理ユニットの各々と前記メイン・メモリとの間で接続を行うためのクロス・バー・スイッチとを有することを特徴とするプロセッサ。
  16. 請求項4に記載のプロセッサにおいて、前記各々の第1処理ユニットが、前記メモリ・ロケーションからのデータの読み出し、あるいは、前記メモリ・ロケーションへのデータの書き込みを禁止する手段をさらに有することを特徴とするプロセッサ。
  17. 請求項2に記載のプロセッサにおいて、ダイレクト・メモリ・アクセス・コントローラをさらに有することを特徴とするプロセッサ。
  18. 請求項17に記載のプロセッサにおいて、前記第2処理ユニットが、前記ダイレクト・メモリ・アクセス・コントローラにコマンドを出すことによって、前記プログラムと、前記プログラムと関連付けられた前記データとを、前記第1処理ユニットに関連付けられたローカル・メモリへ転送を命令することと、前記コマンドに応答して、前記ダイレクト・メモリ・アクセス・コントローラが、前記プログラムを前記第1処理ユニットに関連付けられたローカル・メモリへ転送することを特徴とするプロセッサ。
  19. 請求項18に記載のプロセッサにおいて、前記第1処理ユニットが、前記ダイレクト・メモリ・アクセス・コントローラにコマンドを出すことによって、前記プログラムを処理するために、前記メイン・メモリから、前記第1処理ユニットに関連付けられたローカル・メモリへ前記データを転送を命令することと、前記コマンドに応答して、前記ダイレクト・メモリ・アクセス・コントローラが、前記第1処理ユニットに関連付けられたローカル・メモリへ前記データを転送することを特徴とするプロセッサ。
  20. 請求項19に記載のプロセッサにおいて、前記第1処理ユニットが、前記ダイレクト・メモリ・アクセス・コントローラにコマンドを出すことによって、前記第1処理ユニットに関連付けられたローカル・メモリから、前記プログラムの前記処理の結果データを、前記メイン・メモリへ転送する命令を出すことと、前記コマンドに応答して、前記ダイレクト・メモリ・アクセス・コントローラが、前記第1処理ユニットに関連付けられたローカル・メモリから、前記メイン・メモリへ前記結果データを転送することを特徴とするプロセッサ。
  21. 処理装置において、
    複数の第1処理ユニットを有して成る1つ以上のプロセッサ・モジュールを有し、前記第1処理ユニットのそれぞれは当該第1メモリに関連づけられたローカル・メモリを備え、
    前記第1処理ユニットによる前記プログラムと前記プログラムに関連付けられたデータの処理を制御する第2処理ユニットを有し、
    前記第2処理ユニットが、前記プログラムと前記プログラムに関連付けられたデータを前記第1処理ユニットのローカル・メモリへ転送指示し、その後、前記第1処理ユニットが、前記ローカル・メモリから前記プログラムと前記プログラムと関連付けられたデータを処理するように作動可能であることを特徴とする処理装置。
  22. 請求項21に記載の処理装置において、前記プログラムと前記プログラムに関連付けられたデータを格納するためのメイン・メモリを更に有し、
    前記第2処理ユニットは、前記プログラムと前記プログラムに関連付けられたデータを前記メイン・メモリから前記ローカル・メモリへ転送指示することによって、前記第1処理ユニットに前記プログラムを処理する指示を出すことを特徴とする処理装置。
  23. 請求項21に記載の処理装置において、少なくとも1つの前記プロセッサ・モジュール用の前記複数の第1処理ユニットの数が8つであることを特徴とする処理装置。
  24. 請求項21に記載の処理装置において、最低1つの前記プロセッサ・モジュール用の前記第1処理ユニットの数が4つであることを特徴とする処理装置。
  25. 請求項21に記載の処理装置において、前記プロセッサ・モジュールの各々が、ただ1つの前記第2処理ユニットを有することを特徴とする処理装置。
  26. 請求項22に記載の処理装置において、前記プロセッサ・モジュールの各々が、ダイレクト・メモリ・アクセス・コントローラをさらに有し、前記ダイレクト・メモリ・アクセス・コントローラが、前記第1処理ユニットおよび前記第2処理ユニットから出力されるコマンドに応答して、前記プログラムと前記関連付けられたデータを前記メイン・メモリと前記ローカル・メモリとの間で転送することを特徴とする処理装置。
  27. 請求項21に記載の処理装置において、前記プロセッサ・モジュールの各々が、前記第1処理ユニットと前記第2処理ユニットとの通信のため1つのローカル・バスを、さらに有することを特徴とする処理装置。
  28. 請求項21に記載の処理装置において、前記プロセッサ・モジュール間の通信を行うためのモジュール・バスをさらに有することを特徴とする処理装置。
  29. 請求項22に記載の処理装置において、前記プロセッサ・モジュールの各々と前記メイン・メモリとの通信を行うためのメモリ・バスをさらに有することを特徴とする処理装置。
  30. 請求項21に記載の処理装置において、前記各々の第1処理ユニットが、複数の浮動演算ユニットと複数の整数演算ユニットを有することを特徴とする処理装置。
  31. 請求項21に記載の処理装置において、1つ以上の光インターフェースをさらに有し、前記各々の光インターフェースが、前記処理装置からの伝送のために前記プロセッサ・モジュールの電気信号を光信号に変換し、また、前記処理装置へ伝送された光信号を電気信号に変換することが可能であることを特徴とする処理装置。
  32. 請求項21に記載の処理装置において、前記の少なくとも1つのプロセッサ・モジュールが、画素データを生成するレンダリング・エンジンと、前記画素データを一時的に格納するフレーム・バッファと、前記画素データをビデオ信号に変換する表示制御装置と、をさらに有することを特徴とする処理装置。
  33. 請求項29に記載の処理装置において、前記メモリ・バスが、複数のメモリ・バンク・コントローラと、前記各々のプロセッサ・モジュールと前記メイン・メモリとの間で接続を行うためのクロスバ交換機とを有することを特徴とする処理装置。
  34. 請求項33に記載の処理装置において、前記メイン・メモリと前記処理装置の外部デバイスとの間で接続を行うための第2クロスバ交換機をさらに有することを特徴とする処理装置。
  35. 請求項33に記載の処理装置において、前記メイン・メモリが、複数のメモリ・バンクを有し、前記各々のメモリ・バンク・コントローラが、異なるグループの前記バンクを制御することを特徴とする処理装置。
  36. 請求項35に記載の処理装置において、前記バンクの数が64であることを特徴とする処理装置。
  37. 請求項21に記載の処理装置において、前記プロセッサ・モジュールの数が1であることを特徴とする処理装置。
  38. 請求項21に記載の処理装置において、前記プロセッサ・モジュールの数が2であることを特徴とする処理装置。
  39. 請求項21に記載の処理装置において、前記プロセッサ・モジュールの数が4であることを特徴とする処理装置。
  40. 請求項21に記載の処理装置において、前記プロセッサ・モジュールの数が8であることを特徴とする処理装置。
JP2004063697A 2001-03-22 2004-03-08 コンピュータ・プロセッサ及び処理装置 Expired - Lifetime JP4597553B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/816,752 US7093104B2 (en) 2001-03-22 2001-03-22 Processing modules for computer architecture for broadband networks

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002079360A Division JP3696563B2 (ja) 2001-03-22 2002-03-20 コンピュータ・プロセッサ及び処理装置

Publications (3)

Publication Number Publication Date
JP2004252990A true JP2004252990A (ja) 2004-09-09
JP2004252990A5 JP2004252990A5 (ja) 2005-08-11
JP4597553B2 JP4597553B2 (ja) 2010-12-15

Family

ID=25221519

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2002079360A Expired - Lifetime JP3696563B2 (ja) 2001-03-22 2002-03-20 コンピュータ・プロセッサ及び処理装置
JP2004063697A Expired - Lifetime JP4597553B2 (ja) 2001-03-22 2004-03-08 コンピュータ・プロセッサ及び処理装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2002079360A Expired - Lifetime JP3696563B2 (ja) 2001-03-22 2002-03-20 コンピュータ・プロセッサ及び処理装置

Country Status (7)

Country Link
US (1) US7093104B2 (ja)
EP (1) EP1370971B1 (ja)
JP (2) JP3696563B2 (ja)
KR (1) KR100840113B1 (ja)
CN (1) CN1279470C (ja)
TW (1) TW574653B (ja)
WO (1) WO2002077848A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007041781A (ja) * 2005-08-02 2007-02-15 Fujitsu Ltd リコンフィグ可能な集積回路装置
JP2008521097A (ja) * 2004-11-15 2008-06-19 エヌヴィディア コーポレイション ビデオ処理
JP2011154534A (ja) * 2010-01-27 2011-08-11 Fujitsu Semiconductor Ltd リコンフィギュラブル回路および半導体集積回路
US8838949B2 (en) 2010-03-22 2014-09-16 Qualcomm Incorporated Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system
US9058191B2 (en) 2010-03-22 2015-06-16 Qualcomm Incorporated Direct transfer of executable software image to memory allocated by target processor based on transferred image header
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US6826662B2 (en) * 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US7225301B2 (en) * 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
US7088371B2 (en) * 2003-06-27 2006-08-08 Intel Corporation Memory command handler for use in an image signal processor having a data driven architecture
JP4624732B2 (ja) * 2003-07-16 2011-02-02 パナソニック株式会社 アクセス方法
US7389508B2 (en) * 2003-09-25 2008-06-17 International Business Machines Corporation System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment
US20050071828A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation System and method for compiling source code for multi-processor environments
US7478390B2 (en) * 2003-09-25 2009-01-13 International Business Machines Corporation Task queue management of virtual devices using a plurality of processors
US7496917B2 (en) * 2003-09-25 2009-02-24 International Business Machines Corporation Virtual devices using a pluarlity of processors
US7146529B2 (en) * 2003-09-25 2006-12-05 International Business Machines Corporation System and method for processor thread acting as a system service processor
US7549145B2 (en) * 2003-09-25 2009-06-16 International Business Machines Corporation Processor dedicated code handling in a multi-processor environment
US7415703B2 (en) * 2003-09-25 2008-08-19 International Business Machines Corporation Loading software on a plurality of processors
US7236998B2 (en) * 2003-09-25 2007-06-26 International Business Machines Corporation System and method for solving a large system of dense linear equations
US7523157B2 (en) * 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
US7516456B2 (en) * 2003-09-25 2009-04-07 International Business Machines Corporation Asymmetric heterogeneous multi-threaded operating system
US7318218B2 (en) * 2003-09-25 2008-01-08 International Business Machines Corporation System and method for processor thread for software debugging
US7475257B2 (en) * 2003-09-25 2009-01-06 International Business Machines Corporation System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data
US20050071578A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation System and method for manipulating data with a plurality of processors
US7444632B2 (en) * 2003-09-25 2008-10-28 International Business Machines Corporation Balancing computational load across a plurality of processors
US20050086040A1 (en) * 2003-10-02 2005-04-21 Curtis Davis System incorporating physics processing unit
US7093080B2 (en) * 2003-10-09 2006-08-15 International Business Machines Corporation Method and apparatus for coherent memory structure of heterogeneous processor systems
JP4641151B2 (ja) * 2004-01-19 2011-03-02 株式会社リコー Simd型プロセッサ及び画像処理プロセッサ
TW200532466A (en) 2004-02-03 2005-10-01 Sony Corp Information processing device, information processing method, information processing system and information processing program of accessible media
JP2005235019A (ja) 2004-02-20 2005-09-02 Sony Corp ネットワークシステム、分散処理方法、情報処理装置
JP2005242598A (ja) * 2004-02-26 2005-09-08 Sony Corp 情報処理システム及び情報処理方法、並びにコンピュータ・プログラム
JP4586526B2 (ja) 2004-02-27 2010-11-24 ソニー株式会社 情報処理装置、情報処理方法、情報処理システムおよび情報処理用プログラム
JP4325438B2 (ja) 2004-03-01 2009-09-02 ソニー株式会社 情報処理システム及び情報処理方法、並びにコンピュータ・プログラム
US7430592B2 (en) * 2004-04-21 2008-09-30 Dell Products L.P. Method for heterogeneous system configuration
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
JP4465598B2 (ja) 2004-07-05 2010-05-19 ソニー株式会社 集積回路およびその処理制御方法、並びに、プログラム
JP4599923B2 (ja) * 2004-07-16 2010-12-15 ソニー株式会社 情報処理システム及び情報処理方法、並びにコンピュータプログラム
JP2006031480A (ja) * 2004-07-16 2006-02-02 Sony Corp 情報処理システム及び情報処理方法、並びにコンピュータプログラム
JP2006031525A (ja) 2004-07-20 2006-02-02 Sony Corp 情報処理装置および情報処理方法、並びに、プログラム
JP2006033646A (ja) 2004-07-20 2006-02-02 Sony Corp 情報処理システム及び情報処理方法、並びにコンピュータプログラム
US7363397B2 (en) * 2004-08-26 2008-04-22 International Business Machines Corporation System and method for DMA controller with multi-dimensional line-walking functionality
US7240137B2 (en) * 2004-08-26 2007-07-03 International Business Machines Corporation System and method for message delivery across a plurality of processors
WO2006025322A1 (ja) * 2004-08-30 2006-03-09 Matsushita Electric Industrial Co., Ltd. 記録装置
WO2006025255A1 (ja) * 2004-08-30 2006-03-09 Matsushita Electric Industrial Co., Ltd. 多人数参加型アプリケーションを実行するクライアント端末装置、グループ形成方法及びグループ形成プログラム
JP2006079280A (ja) 2004-09-08 2006-03-23 Sony Corp 情報処理システムおよび方法、情報処理装置および方法、並びにプログラム
US7240182B2 (en) * 2004-09-16 2007-07-03 International Business Machines Corporation System and method for providing a persistent function server
US8624906B2 (en) 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US7290112B2 (en) * 2004-09-30 2007-10-30 International Business Machines Corporation System and method for virtualization of processor resources
US20060070069A1 (en) * 2004-09-30 2006-03-30 International Business Machines Corporation System and method for sharing resources between real-time and virtualizing operating systems
JP2007334379A (ja) 2004-10-05 2007-12-27 Matsushita Electric Ind Co Ltd 処理装置
US7506325B2 (en) 2004-10-07 2009-03-17 International Business Machines Corporation Partitioning processor resources based on memory usage
US20060080661A1 (en) * 2004-10-07 2006-04-13 International Business Machines Corporation System and method for hiding memory latency
US7512699B2 (en) * 2004-11-12 2009-03-31 International Business Machines Corporation Managing position independent code using a software framework
US8416251B2 (en) 2004-11-15 2013-04-09 Nvidia Corporation Stream processing in a video processor
US7644255B2 (en) * 2005-01-13 2010-01-05 Sony Computer Entertainment Inc. Method and apparatus for enable/disable control of SIMD processor slices
WO2006082985A2 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for providing a secure booting sequence in a processor
US20060184296A1 (en) * 2005-02-17 2006-08-17 Hunter Engineering Company Machine vision vehicle wheel alignment systems
US7650266B2 (en) * 2005-05-09 2010-01-19 Nvidia Corporation Method of simulating deformable object using geometrically motivated model
US7398482B2 (en) * 2005-07-28 2008-07-08 International Business Machines Corporation Modular design method and apparatus
US20070030280A1 (en) * 2005-08-08 2007-02-08 Via Technologies, Inc. Global spreader and method for a parallel graphics processor
US7659899B2 (en) * 2005-08-08 2010-02-09 Via Technologies, Inc. System and method to manage data processing stages of a logical graphics pipeline
US20070030277A1 (en) * 2005-08-08 2007-02-08 Via Technologies, Inc. Method for processing vertex, triangle, and pixel graphics data packets
US7659898B2 (en) * 2005-08-08 2010-02-09 Via Technologies, Inc. Multi-execution resource graphics processor
JP4728083B2 (ja) * 2005-10-14 2011-07-20 パナソニック株式会社 メディア処理装置
US7529849B2 (en) * 2006-07-27 2009-05-05 International Business Machines Corporation Reduction of message flow between bus-connected consumers and producers
US7627744B2 (en) * 2007-05-10 2009-12-01 Nvidia Corporation External memory accessing DMA request scheduling in IC of parallel processing engines according to completion notification queue occupancy level
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
CN103020002B (zh) * 2012-11-27 2015-11-18 中国人民解放军信息工程大学 可重构多处理器系统
US20160224098A1 (en) * 2015-01-30 2016-08-04 Alexander Gendler Communicating via a mailbox interface of a processor
US10620266B2 (en) 2017-11-29 2020-04-14 Intel Corporation System, apparatus and method for in-field self testing in a diagnostic sleep state
CN111413557B (zh) * 2020-02-25 2024-02-06 中国南方航空股份有限公司 一种辅助动力装置便携式id模块读取测试装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56123051A (en) * 1980-03-03 1981-09-26 Omron Tateisi Electronics Co Data transfer system in master slave system
JPS57176456A (en) * 1981-04-22 1982-10-29 Fanuc Ltd Data processing system
JPS6319058A (ja) * 1986-07-11 1988-01-26 Fujitsu Ltd メモリ装置
JPH05151183A (ja) * 1991-11-29 1993-06-18 Hitachi Ltd 並列演算装置
JPH05242057A (ja) * 1992-02-27 1993-09-21 Sanyo Electric Co Ltd マルチプロセッサシステムの起動方式
JPH08161283A (ja) * 1994-12-07 1996-06-21 Sony Corp 複数プロセツサシステム
JPH08180018A (ja) * 1994-12-26 1996-07-12 Toshiba Corp 分散処理システム及び分散処理方法
JPH08235143A (ja) * 1995-02-28 1996-09-13 Kofu Nippon Denki Kk クラスタ構成の並列計算機
JPH10269165A (ja) * 1997-03-27 1998-10-09 Sony Computer Entertainment:Kk 情報処理装置および方法

Family Cites Families (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3576544A (en) * 1968-10-18 1971-04-27 Ibm Storage protection system
US4037214A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
JPS5412643A (en) 1977-06-30 1979-01-30 Hitachi Ltd Main memory protective device
JPS54146555A (en) 1978-05-09 1979-11-15 Nec Corp Data transfer system between processors
US4332009A (en) * 1980-01-21 1982-05-25 Mostek Corporation Memory protection system
JPS5812613B2 (ja) 1980-02-08 1983-03-09 工業技術院長 並列デ−タ処理装置
US4430705A (en) * 1980-05-23 1984-02-07 International Business Machines Corp. Authorization mechanism for establishing addressability to information in another address space
JPS576952A (en) 1980-06-16 1982-01-13 Nippon Telegr & Teleph Corp <Ntt> Storage protecting system
EP0063626B1 (en) * 1981-04-28 1985-07-17 International Business Machines Corporation Bus arrangement for interconnectiong circuit chips
AU542447B2 (en) * 1982-02-27 1985-02-21 Fujitsu Limited System for controlling key storage unit
JPS5958700A (ja) * 1982-09-29 1984-04-04 Fujitsu Ltd 記憶保護判定方式
US4545016A (en) * 1983-01-07 1985-10-01 Tandy Corporation Memory management system
US5159700A (en) * 1984-01-16 1992-10-27 Texas Instruments Incorporated Substrate with optical communication systems between chips mounted thereon and monolithic integration of optical I/O on silicon substrates
JPS61180352A (ja) 1984-12-30 1986-08-13 Fujitsu Ltd プログラムダウンロ−ド方式
US4732446A (en) * 1985-10-02 1988-03-22 Lamar Gipson Electrical circuit and optical data buss
CA1280829C (en) * 1985-11-13 1991-02-26 Toshio Matsumoto Main storage access control system for virtual computing function system
JP2960415B2 (ja) * 1987-05-22 1999-10-06 株式会社日立製作所 記憶保護方法および装置
JPS6412364A (en) 1987-07-06 1989-01-17 Nippon Telegraph & Telephone System constitution control system
JPS6423342A (en) 1987-07-20 1989-01-26 Mitsubishi Electric Corp Programmable controller
US4862407A (en) 1987-10-05 1989-08-29 Motorola, Inc. Digital signal processing apparatus
JP2677589B2 (ja) 1988-02-26 1997-11-17 株式会社東芝 携帯可能電子装置およびicチップ
US5056000A (en) * 1988-06-21 1991-10-08 International Parallel Machines, Inc. Synchronized parallel processing with shared memory
JPH0212361A (ja) 1988-06-29 1990-01-17 Fujitsu Ltd 階層化バスによる並列計算機システム
US4939682A (en) * 1988-07-15 1990-07-03 The Boeing Company Integrated electro-optic arithmetic/logic unit and method for making the same
JP2837413B2 (ja) 1988-08-24 1998-12-16 株式会社日立メディコ 複数端末cpuを有するct装置
EP0369052A1 (en) * 1988-11-17 1990-05-23 International Business Machines Corporation Data base access system
JPH02210542A (ja) 1989-02-10 1990-08-21 Fujitsu Ltd 仮想計算機システムにおける実行制御方式
EP0424618A3 (en) * 1989-10-24 1992-11-19 International Business Machines Corporation Input/output system
US5037173A (en) * 1989-11-22 1991-08-06 Texas Instruments Incorporated Optical interconnection network
AU645785B2 (en) * 1990-01-05 1994-01-27 Maspar Computer Corporation Parallel processor memory system
ATE170642T1 (de) 1990-06-15 1998-09-15 Compaq Computer Corp Mehrstufeneinschluss in mehrstufigen cache- speicherhierarchien
US5093879A (en) * 1990-06-22 1992-03-03 International Business Machines Corporation Electro-optical connectors
US5144691A (en) * 1990-07-20 1992-09-01 Cray Research, Inc. Computer signal interconnect apparatus
EP0481735A3 (en) * 1990-10-19 1993-01-13 Array Technology Corporation Address protection circuit
US5630162A (en) * 1990-11-13 1997-05-13 International Business Machines Corporation Array processor dotted communication network based on H-DOTs
KR940004404B1 (ko) * 1990-11-30 1994-05-25 삼성전자 주식회사 불휘발성 반도체 메모리장치
US5131054A (en) * 1991-01-09 1992-07-14 Thinking Machines Corporation Character recognition system using massively parallel computer that identifies a query character using degree of similarity with plurality of training characters of known identity
JPH04284754A (ja) * 1991-03-14 1992-10-09 Fujitsu Ltd Atm交換装置
JPH04288643A (ja) 1991-03-18 1992-10-13 Nec Corp マルチプロセッサシステムのメモリマッピング方式
US5519875A (en) * 1991-08-08 1996-05-21 Hitachi, Ltd. Distributed processing system for modules, each having modularized objects
JPH0554009A (ja) 1991-08-29 1993-03-05 Nec Eng Ltd プログラムロード方式
US5268973A (en) * 1992-01-21 1993-12-07 The University Of Texas System Wafer-scale optical bus
JPH05324589A (ja) * 1992-03-25 1993-12-07 Nippon Sheet Glass Co Ltd 並列コンピュータ装置および光結合装置
JPH0612333A (ja) 1992-06-25 1994-01-21 Hitachi Ltd 情報処理装置の記憶保護方式
EP0610583A1 (en) * 1993-02-08 1994-08-17 International Business Machines Corporation Multizone relocation facility computer memory system
US5619671A (en) * 1993-04-19 1997-04-08 International Business Machines Corporation Method and apparatus for providing token controlled access to protected pages of memory
US5487146A (en) * 1994-03-08 1996-01-23 Texas Instruments Incorporated Plural memory access address generation employing guide table entries forming linked list
JPH07287064A (ja) 1994-04-20 1995-10-31 Mitsubishi Electric Corp レーダ信号処理装置
US5513337A (en) * 1994-05-25 1996-04-30 Intel Corporation System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type
JPH08212178A (ja) 1995-02-08 1996-08-20 Hitachi Ltd 並列計算機
CA2170468A1 (en) 1995-02-28 1996-08-29 Noriyuki Ando Multi-processor system with virtually addressable communication registers and controlling method thereof
JPH08249261A (ja) 1995-03-08 1996-09-27 Mitsubishi Electric Corp メッセージ管理システム
DE19508723A1 (de) * 1995-03-10 1996-09-12 Siemens Ag Mehrbenutzerdatenverarbeitungsanlage mit Speicherschutz
US5850534A (en) * 1995-06-05 1998-12-15 Advanced Micro Devices, Inc. Method and apparatus for reducing cache snooping overhead in a multilevel cache system
JP3786993B2 (ja) * 1995-12-14 2006-06-21 株式会社日立製作所 データ記憶ユニット及び該ユニットを用いたデータ記憶装置
US6886167B1 (en) * 1995-12-27 2005-04-26 International Business Machines Corporation Method and system for migrating an object between a split status and a merged status
JPH09198361A (ja) 1996-01-23 1997-07-31 Kofu Nippon Denki Kk マルチプロセッサシステム
US5729712A (en) * 1996-01-26 1998-03-17 Unisys Corporation Smart fill system for multiple cache network
JPH09311839A (ja) * 1996-05-21 1997-12-02 Hitachi Ltd データ共用方式
US5940870A (en) * 1996-05-21 1999-08-17 Industrial Technology Research Institute Address translation for shared-memory multiprocessor clustering
US5724551A (en) * 1996-05-23 1998-03-03 International Business Machines Corporation Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers
US5787309A (en) * 1996-05-23 1998-07-28 International Business Machines Corporation Apparatus for protecting storage blocks from being accessed by unwanted I/O programs using I/O program keys and I/O storage keys having M number of bits
US5900019A (en) * 1996-05-23 1999-05-04 International Business Machines Corporation Apparatus for protecting memory storage blocks from I/O accesses
AT1751U1 (de) * 1996-09-30 1997-10-27 Kuehn Eva Koordinations-system
JPH10126771A (ja) 1996-10-15 1998-05-15 Toshiba Corp 画像データ転送システムにおける画像データ送出レート制御方法および画像データ転送方法
JP3421526B2 (ja) * 1997-02-14 2003-06-30 モトローラ株式会社 デ−タ処理装置
US6424988B2 (en) * 1997-02-19 2002-07-23 Unisys Corporation Multicomputer system
US6192514B1 (en) * 1997-02-19 2001-02-20 Unisys Corporation Multicomputer system
US6289434B1 (en) * 1997-02-28 2001-09-11 Cognigine Corporation Apparatus and method of implementing systems on silicon using dynamic-adaptive run-time reconfigurable circuits for processing multiple, independent data and control streams of varying rates
US6212605B1 (en) * 1997-03-31 2001-04-03 International Business Machines Corporation Eviction override for larx-reserved addresses
JPH1139215A (ja) 1997-05-22 1999-02-12 Matsushita Electric Ind Co Ltd キャッシュメモリおよびキャッシュメモリを制御する方法
JPH10334055A (ja) 1997-06-03 1998-12-18 Sony Corp マルチプロセッサ・システム
JP3490256B2 (ja) 1997-06-12 2004-01-26 三菱電機株式会社 エージェント方式
US5892966A (en) * 1997-06-27 1999-04-06 Sun Microsystems, Inc. Processor complex for executing multimedia functions
JPH1165989A (ja) * 1997-08-22 1999-03-09 Sony Computer Entertainment:Kk 情報処理装置
US6360303B1 (en) * 1997-09-30 2002-03-19 Compaq Computer Corporation Partitioning memory shared by multiple processors of a distributed processing system
US6567839B1 (en) * 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6209065B1 (en) * 1997-10-24 2001-03-27 Compaq Computer Corporation Mechanism for optimizing generation of commit-signals in a distributed shared-memory system
US6542926B2 (en) * 1998-06-10 2003-04-01 Compaq Information Technologies Group, L.P. Software partitioned multi-processor system with flexible resource sharing levels
US6965974B1 (en) * 1997-11-14 2005-11-15 Agere Systems Inc. Dynamic partitioning of memory banks among multiple agents
US6173389B1 (en) * 1997-12-04 2001-01-09 Billions Of Operations Per Second, Inc. Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor
JPH11232247A (ja) 1998-02-10 1999-08-27 Hitachi Ltd データフロー計算機およびデータフロー制御方法
US6167430A (en) * 1998-05-12 2000-12-26 Unisys Corporation Multicomputer with distributed directory and operating system
JPH11338833A (ja) 1998-05-22 1999-12-10 Hitachi Ltd マルチプロセッサ型コントローラ及びスケーラブルコントローラシステム
US6336187B1 (en) * 1998-06-12 2002-01-01 International Business Machines Corp. Storage system with data-dependent security
JP2000010913A (ja) 1998-06-26 2000-01-14 Sony Computer Entertainment Inc 情報処理装置および方法、並びに提供媒体
US6209066B1 (en) * 1998-06-30 2001-03-27 Sun Microsystems, Inc. Method and apparatus for memory allocation in a multi-threaded virtual machine
JP3224782B2 (ja) 1998-08-03 2001-11-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 処理分担動的変更方法及びコンピュータ
US6643708B1 (en) * 1998-10-29 2003-11-04 International Business Machines Corporation Systems, methods and computer program products for chaining Java servlets across networks
JP3790060B2 (ja) 1999-01-29 2006-06-28 株式会社山武 演算処理装置
US6341338B1 (en) * 1999-02-04 2002-01-22 Sun Microsystems, Inc. Protocol for coordinating the distribution of shared memory
JP4123621B2 (ja) * 1999-02-16 2008-07-23 株式会社日立製作所 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法
US6480941B1 (en) * 1999-02-23 2002-11-12 International Business Machines Corporation Secure partitioning of shared memory based multiprocessor system
US6647208B1 (en) * 1999-03-18 2003-11-11 Massachusetts Institute Of Technology Hybrid electronic/optical switch system
US6477170B1 (en) * 1999-05-21 2002-11-05 Advanced Micro Devices, Inc. Method and apparatus for interfacing between systems operating under different clock regimes with interlocking to prevent overwriting of data
US6424986B1 (en) * 1999-05-28 2002-07-23 Winbond Electronics (H.K.) Ltd. Architecture of discrete wavelet transformation
DE60039554D1 (de) * 1999-06-25 2008-09-04 Canon Res Ct France S A Verteilte Verwaltung von Datenobjekten in einem Kommunikations-Netzwerk
US6467012B1 (en) * 1999-07-08 2002-10-15 International Business Machines Corporation Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors
US6668317B1 (en) * 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
US6694380B1 (en) * 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6694336B1 (en) * 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
US6799207B1 (en) * 2000-04-10 2004-09-28 International Business Machines Corporation Method and system for downloading software managed trees in a network processing system
JP4640880B2 (ja) 2000-07-14 2011-03-02 国立大学法人東京工業大学 マイクロプロセッサシステム
US7681018B2 (en) * 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US6865631B2 (en) * 2000-12-14 2005-03-08 International Business Machines Corporation Reduction of interrupts in remote procedure calls
US6779049B2 (en) * 2000-12-14 2004-08-17 International Business Machines Corporation Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism
US7020871B2 (en) * 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
US6748501B2 (en) * 2000-12-30 2004-06-08 International Business Machines Corporation Microprocessor reservation mechanism for a hashed address system
JP2004103347A (ja) * 2002-09-09 2004-04-02 Sumitomo Wiring Syst Ltd コネクタ

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56123051A (en) * 1980-03-03 1981-09-26 Omron Tateisi Electronics Co Data transfer system in master slave system
JPS57176456A (en) * 1981-04-22 1982-10-29 Fanuc Ltd Data processing system
JPS6319058A (ja) * 1986-07-11 1988-01-26 Fujitsu Ltd メモリ装置
JPH05151183A (ja) * 1991-11-29 1993-06-18 Hitachi Ltd 並列演算装置
JPH05242057A (ja) * 1992-02-27 1993-09-21 Sanyo Electric Co Ltd マルチプロセッサシステムの起動方式
JPH08161283A (ja) * 1994-12-07 1996-06-21 Sony Corp 複数プロセツサシステム
JPH08180018A (ja) * 1994-12-26 1996-07-12 Toshiba Corp 分散処理システム及び分散処理方法
JPH08235143A (ja) * 1995-02-28 1996-09-13 Kofu Nippon Denki Kk クラスタ構成の並列計算機
JPH10269165A (ja) * 1997-03-27 1998-10-09 Sony Computer Entertainment:Kk 情報処理装置および方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008521097A (ja) * 2004-11-15 2008-06-19 エヌヴィディア コーポレイション ビデオ処理
JP4906734B2 (ja) * 2004-11-15 2012-03-28 エヌヴィディア コーポレイション ビデオ処理
JP2007041781A (ja) * 2005-08-02 2007-02-15 Fujitsu Ltd リコンフィグ可能な集積回路装置
JP4536618B2 (ja) * 2005-08-02 2010-09-01 富士通セミコンダクター株式会社 リコンフィグ可能な集積回路装置
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
JP2011154534A (ja) * 2010-01-27 2011-08-11 Fujitsu Semiconductor Ltd リコンフィギュラブル回路および半導体集積回路
US8838949B2 (en) 2010-03-22 2014-09-16 Qualcomm Incorporated Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system
US9058191B2 (en) 2010-03-22 2015-06-16 Qualcomm Incorporated Direct transfer of executable software image to memory allocated by target processor based on transferred image header

Also Published As

Publication number Publication date
JP3696563B2 (ja) 2005-09-21
KR20030081532A (ko) 2003-10-17
JP2002366534A (ja) 2002-12-20
US7093104B2 (en) 2006-08-15
KR100840113B1 (ko) 2008-06-20
JP4597553B2 (ja) 2010-12-15
US20020156993A1 (en) 2002-10-24
TW574653B (en) 2004-02-01
EP1370971A4 (en) 2009-02-25
CN1279470C (zh) 2006-10-11
CN1496518A (zh) 2004-05-12
WO2002077848A1 (en) 2002-10-03
EP1370971A1 (en) 2003-12-17
EP1370971B1 (en) 2013-06-05

Similar Documents

Publication Publication Date Title
JP4597553B2 (ja) コンピュータ・プロセッサ及び処理装置
JP4455822B2 (ja) データ処理方法
JP4489399B2 (ja) プロセッサでのデータ処理方法及びデータ処理システム
JP4334901B2 (ja) コンピュータ処理システム及びコンピュータで実行される処理方法
JP3515985B2 (ja) プロセッサ装置内で一時的に専用パイプラインを設定する方法及びシステム
JP4768386B2 (ja) 外部デバイスとデータ通信可能なインターフェイスデバイスを有するシステム及び装置
US20080162877A1 (en) Non-Homogeneous Multi-Processor System With Shared Memory

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050128

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050128

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20050128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050322

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050322

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081104

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090204

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100811

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100818

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4597553

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

Year of fee payment: 3

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

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