JP2008509493A - プロセッサメモリシステム - Google Patents

プロセッサメモリシステム Download PDF

Info

Publication number
JP2008509493A
JP2008509493A JP2007525262A JP2007525262A JP2008509493A JP 2008509493 A JP2008509493 A JP 2008509493A JP 2007525262 A JP2007525262 A JP 2007525262A JP 2007525262 A JP2007525262 A JP 2007525262A JP 2008509493 A JP2008509493 A JP 2008509493A
Authority
JP
Japan
Prior art keywords
memory
data processor
data
network
processor according
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.)
Pending
Application number
JP2007525262A
Other languages
English (en)
Inventor
マクコネル、レイ
Original Assignee
クリアスピード テクノロジー パブリック リミテッド カンパニー
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 クリアスピード テクノロジー パブリック リミテッド カンパニー filed Critical クリアスピード テクノロジー パブリック リミテッド カンパニー
Publication of JP2008509493A publication Critical patent/JP2008509493A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • 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/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

データプロセッサは、処理素子の少なくとも一つに対してローカルに設けられたメモリ3を有する、複数の処理素子(PE)1と、処理素子とメモリとを相互接続し、任意のPEからのメモリへのアクセスを可能とするデータパケット交換ネットワークを含んでいる。PEとそれらのローカルメモリを共通コントローラ10に接続するために、ネットワークは、線形状又はSIMD配列などの格子状に配置されたノード2から構成されている。トランザクション可能なPEとノードは、フラグ“E”又は“T”を設定し、それらの値は、トランザクションが終了するまで保持され、例えば、一連のORゲート13を経由して、コントローラに対して状態を通知する。プロセッサは、コントローラからメモリに送られた制御信号に応じて、メモリに格納されたデータに対してメモリアクセスを実行する。ローカルメモリは、同一のメモリマップ又はメモリ空間を共有する。例えば、キャッシュを設けるために、ネットワークとの接続を行なう外部メモリを、“終端”ノードに接続することも可能である。全てのプロセッサからのPEメモリが同一のメモリマップ又はメモリ空間を共有できるように、一つあるいはそれ以上の数の別のプロセッサを、同様に、ネットワークに接続してもよい。パケット交換ネットワークは、PEとメモリとの間の、複数の並列伝送を提供する。メモリアクセスには、ブロック及び/又はブロードキャストによる読込み/書込み操作が含まれており、その操作では、データがノード内で複製され、操作に応じて、共有メモリあるいはローカルPEメモリに書き込まれる。

Description

発明の背景
本発明は、拡張された内部通信とメモリ配置を有する(例えば、データプロセッサなどの)プロセッサシステムに関するものである。
従来のSIMDプロセッサの実装では、各処理素子(PE)に対して、ローカルメモリが設けられている。このメモリは、通常、各PEに対して個別のものである。データを共有するためには、共通の共有メモリ中のデータにアクセスしなければならないか、PE間で何らかの通信手段を用いる必要がある。このような異なる種類のメモリを用いると、プログラムモデルが複雑化する。共有メモリへのデータの移動や、PE間でのデータの移動が必要になることは、性能上のオーバーヘッドとなる。
本発明の目的は、これらの問題又は他の問題を解決することにある。
従来技術
共有メモリを有するSIMDアーキテクチャを含む、様々な種類のアーキテクチャが、既に知られている。これらのいくつかについては、http://www.top.org/ORSC/2003/architecture.htmlに概要が示されている。特に、下記の二つの種類がある。
分散メモリシステム:この場合、各PEは、それ自身に付属したメモリを有している。PE間は、なんらかのネットワークによって接続され、必要に応じて、それらの各メモリ間でデータを交換する。(下記の)共有メモリシステムと比較すると、ユーザは、ローカルメモリ中でのデータの位置を意識する必要があり、必要に応じて、これらのデータの移動あるいは分配を明示的に行う必要がある。発明者の従来のアーキテクチャ(および、多くのSIMDアーキテクチャ)は、この種類のものである。
共有メモリシステム:共有メモリシステムは、複数のPEを有し、それら全てが、同一のアドレス空間を共有する。すなわち、全てのPEが同一のバイアスの元で一つだけのメモリにアクセスするため、データがどこに格納されているかを知ることは、ユーザにとって必要がなくなる。単一CPUのベクトルプロセッサは、このようなシステムの一例である。
以下の論文は、ルーティングを行なうALU間ネットワークに関して記載したものである。このネットワークは、分散したALUに命令を配布し、レジスタファイルとの間でデータを交換するための相互接続を行うものである。
クラスタ化したマイクロアーキテクチャのための効率的な相互接続著者:ホアン・マニュエル パルセリサ(Joan−Manual Parcerisa)、ユリオ サウキロ(Julio Sahuquillo)、アントニオ ゴンザレ(Antonio Gonzalez)、ホセ ディアト(Jose Duoato) ILP拡張性と性能のための経路をもつALU間ネットワーク著者:カルシケイアン サンカラリンガム(Karthikeyan Sankaralingam)、ビンセント アジェイ シン(Vincent Ajay Singh)、ステファン W.ケックラー(Stephen W. Keckler)、デゥグ バーガー(Doug Burger)所属:テキサス大学オースチン校 電気及び計算機工学科 コンピュータ科学学科 コンピュータアーキテクチャ技術研究室 多様なTRIPSアーキテクチャを有するILP,TLP及びDLPの開発著者:カルシケイアン サンカラリンガム(Karthikeyan Sankaralingam)、ラマダス ナガラヤン(Ramadass Nagarajan、ハイミン リウ(Haiming Liu)、チャンギュ キム(Changkyu Kim)、ジェイユク フウ(Jaehyuk Huh)、デゥグ バーガー(Doug Burger)、ステファン W.ケックラー(Stephen W. Keckler)、チャールズ R.ムーア(Charles R. Moore)所属:テキサス大学オースチン校 電気及び計算機工学科 コンピュータ科学学科 コンピュータアーキテクチャ技術研究室cart@cs.utexas.edu − www.cs.utexas.edu/users/cart
これらのネットワークは、分散したレジスタファイルを介して、複数のファンクションユニットを接続する。ファンクションユニットとレジスタファイル間の操作は、このネットワークを用いて、命令コマンドによって、データの始点と宛先にたどり着けるようになっている。したがって、ネットワークは、クラスタ化されたALUプロセッサのファンクションユニットをまとめて、ファンクションユニットをレジスタファイルに接続する。
このアプローチは、本明細書で説明するものとは異なり、出願人のクリアコネクトバス(CCB)によって、命令の配布や、ファンクションユニットのレジスタファイルへの接続は行わない。また、始点および宛先アドレスは、SLUによって駆動されるが、命令ストリームによって静的に扱われることはない。
共有メモリSIMDの従来の実装方法では、以下のような問題が発生する。
・複雑で、拡張性のないクロスバー又はマルチポートのメモリシステムを必要とする。
・メモリアクセスに関して、集中したアービトレーションを用いるため、遅延と複雑度が増す。
・許されるアクセスの種類に制限が加えられることがある。例えば、全てのPEが固定したオフセットでアクセスするなど。
本発明の特徴に関する背景と情報に関連した、出願人の過去の特許と特許出願のいくつかを引用する。
・英国特許番号2348974(ロード/格納)、特許番号2348984(マルチタスク)、特許番号2348973(スコアボード)
・英国特許出願番号0321186.9(クリアコネクト)、出願番号0400893.4(マルチタスク)、出願番号0409815.3(統合SIMD)
発明の概要
好ましい実施例において、上記の問題点に着目し、本発明は、PEの全てのローカルメモリと、グローバル共有メモリとを含む単一の均一なアドレス空間を有する共有PEメモリを提供するものである。
本発明は、SIMDアレイ内のプロセッサ間通信を簡素化し、さらに、単一メモリと複数メモリとを、単一のアドレス空間に統合するものである。これにより、プログラマにとってのメモリ利用を簡素化し、コンパイラ最適化の能力を向上させる。また、本発明は、ローカルPEメモリの性能が得られるという利点と、共有メモリの使い勝手とを併せて実現するものである。さらに、本発明は、プログラムの中にPE間通信と処理とが混在する場合に、SIMDプロセッサの処理効率を向上させるものである。
本発明は、複数の処理素子と、前記複数の処理素子の少なくとも一つに対して限定されたメモリ手段と、前記処理素子と前記メモリとを相互接続するデータパケット交換ネットワークとを含み、前記処理素子のいずれかがメモリ手段にアクセス可能となるデータプロセッサを提供する。
本発明の好ましい実施例に関しては、以下の構成が考えられる。
メモリ手段は、前記処理素子の各々の一つに対応したローカルメモリを含み、一つの処理素子は一つのローカルメモリに対応している。
各処理素子は、アレイプロセッサの処理素子の配列の一つとして構成されている。
プロセッサアレイは、単一命令多重データ処理(SIMD)プロセッサとして構成されている。
メモリ手段は、複数の処理素子の間で共有される、単一のローカルメモリを含んでいる。
外部メモリが、前記処理素子のいずれかに利用可能となるように、外部メモリは、データパケット交換ネットワークに接続されている。
パケット交換ネットワークは、好ましくは、複数のノードを含み、各ノードは、各処理素子に接続され、少なくとも一つのノードは、前記メモリ手段に接続されている。
ノードは、線形のネットワーク状又は格子を構成する配列状に接続されている。
パケット交換ネットワークは、好ましくは、前記処理素子と前記メモリ手段との間の複数の同時伝送をサポートするように構成されている。
ノードは、好ましくは、前記処理素子に命令を発行し、前記メモリ手段にメモリ制御信号を発行するように構成された共通コントローラに接続されており、この場合、共通制御への通信のために、各ORゲートなどの他の手段が、各処理素子からの状態信号を組み合わせ、各ノードからの状態信号を組み合わせる。
前記パケット交換ネットワーク中の前記ノードの一つは、前記ノードのいずれかと前記外部メモリとの間のインターフェースとして動作するように構成されている。
メモリ手段は、前記ローカルメモリの複数のインスタンスを含み、前記インスタンスの全ては、処理素子のいずれかによるアクセスのために、単一のメモリマップ又はメモリ空間に現れる。
また、外部メモリは、処理素子のいずれかによるアクセスのために、前記単一のメモリマップ又はメモリ空間に現れる。
さらに、少なくとも一つの別のデータプロセッサを含み、前記別のデータプロセッサの各々は、各メモリ手段を有し、前記各メモリ手段の各々は、前記データプロセッサの前記メモリ手段として、同一のメモリマップ又はメモリ空間に現れる。
各処理素子が、物理的に割り当てられたローカルメモリよりも多くのメモリを有し、追加されたメモリが、前記外部メモリ中のアドレスによって設けられるように見えるように、メモリ手段は、好ましくは、前記メモリマップ又はメモリ空間内の連続したアドレス範囲にマッピングされるか、前記メモリマップ又はメモリ空間内の不連続なアドレス範囲にマッピングされる。
前記メモリマップ又はメモリ空間内の各アドレスは、好ましくは、少なくとも、各処理素子の識別番号と、各ローカルメモリ内のアドレスとを組み合わせることにより決定される。データプロセッサが、一つあるいはそれ以上の数の別のデータプロセッサに付属する場合には、このアドレスは、好ましくは、プロセッサの識別番号を含んでいる。
好ましくは、前記メモリ手段の少なくとも一部は、データパケット交換ネットワークに接続されたキャッシュメモリを含んでおり、キャッシュメモリは、前記処理素子のいずれかに対して利用可能となるように構成されている。
プロセッサは、好ましくは、少なくとも一つの他の命令が終了するまでの間に、一つあるいはそれ以上の数の命令を実行するように構成され、これにより、メモリアクセスの変動する待ち時間が出ないようになる。
共通コントローラは、他の動作と独立、並行して、メモリアクセス操作を行うように構成されている。
プロセッサは、前記共通コントローラから前記メモリ手段に送られた制御信号に応じて、前記メモリ手段に格納されたデータへのメモリアクセスを実行するが、前記メモリアクセスは、対応したノードからのトランザクションを受信した前記メモリ手段のブロックに対してのみ可能となっている。
各処理素子は、処理素子がメモリアクセスに関与している状態を示すフラグを設定しその値を維持する。前記状態信号は、このフラグにより生成され、共通コントローラに送られる。このフラグは、メモリアクセスが終了した時点でクリアされる。
同様に、各ノードは、ノードがトランザクションに関与している状態を示すフラグを設定しその値を維持する。前記状態信号は、このフラグにより生成され、共通コントローラに送られる。このフラグは、トランザクションが終了した時点でクリアされる。
データプロセッサは、前記制御信号を発行し、システムクロックの1サイクルに一度、前記メモリアクセスを行う。
プロセッサは、各トランザクションパケットが、その宛先となるメモリに到着するまで待機し、その後、1サイクル分の前記メモリ制御信号を発行するか、全てのトランザクションパケットが、その宛先となるメモリに到着するまで待機し、その後、1サイクル分の前記メモリ制御信号を発行する。
プロセッサは、複数のメモリアクセスをまとめて実施し、前記メモリアクセスのバッチ処理を同時に行うことも可能である。
メモリアクセスは、処理素子が、書込みトランザクションの終了確認を待つことのない、確認なし書込み操作であってもよい。
メモリアクセスは、書込み操作の終了に応じて確認パケットが発行され、要求元の処理素子に返送されるような、確認付き書込み操作であってもよい。
メモリアクセスは、トランザクション可能な処理素子により読込みトランザクションが起動され、メモリ位置からデータが読み込まれ、各ノードで複製され、各処理素子のレジスタに入力されるような、ブロードキャスト読込み操作であってもよい。
メモリアクセスは、メモリアドレスとカウント値を含むブロック複写コマンドを共通コントローラが生成することに応じて、各処理素子が、書込み操作のシーケンスを生成するように構成され、これにより、ブロック内の全ての書込み操作を終了させることが可能となるような、ブロック書込み操作であってよい。
また、メモリアクセスは、メモリアドレスとカウント値を含むブロック読込みコマンドを共通コントローラが生成することに応じて、各処理素子が、読込み操作のシーケンスを生成するように構成され、これにより、ブロック内の全ての読込み操作を終了させることが可能となるような、ブロック読込み操作であってもよい。
さらに、メモリアクセスは、トランザクション可能な処理素子により書込みトランザクションが起動され、データが各ノードで複製され、各処理素子のローカルメモリに複写されるような、ブロードキャスト書込み操作であってもよい。
実施例の詳細な説明
一般論
好ましい実施例にあるように、本発明は、全システムの(外部メモリを含む)全てのメモリ素子に対して、利用可能なメモリ帯域とプロセッサ性能を最大化しながら、自然で一貫性をもつ方法でアクセスできるように、各SIMD処理素子(PE)に付属したメモリ素子を接続するものである。プロセッサアレイ中でPEを接続するネットワークは、新規な考え方ではないが、本発明は、発明を独自なものとするため、いくつかの有利な特徴を有している。
ロード/ストアメモリコントローラと、双方向パケット伝送ネットワークとを緊密に組合わせることにより、従来のレジスタ/ファイルプロセッサモデルを有するメモリに対して、プログラマからは見えない、PE間、さらにプロセッサ間の通信を行なうための複雑な機構が提供される。これらのデータ伝送が潜在的に長い待ち時間を伴うという計算処理上の非効率性は、マルチスレッドで動作可能なプロセッサを用いることにより解消される。このように、本発明は、従来のレジスタ/ファイルプロセッサモデルを有するメモリによって、コンパイラが、アプリケーションを最適化することが容易となるようにする。従って、プログラマは、システムでデータ移動を明示に行なうという責任から解放される。
本発明は、ハードウェアで利用可能となるような並行処理と帯域を最大限利用する。交換ネットワークの分割構造と非ブロック化構造とを利用し、並列して行なう多数のメモリ操作が実行可能となる。
本発明は、内部リソースの枠組みを越えて、メモリシステムを拡張することを可能とするものである。また、ネットワーク内でのトランザクションを扱うために用いられるアドレスは、グローバルメモリマップで用いられるアドレスと同一である。
本発明の単純さと、以下で説明する特徴により、本発明は、ソフトウェアアプリケーションが、直接、リソースを効率的に活用できるようにするものである。
この特徴は、任意のSIMDプロセッサに適用可能であり、任意の種類の処理素子(あるいはプロセッサ)の配列に対して、潜在的に適用できる可能性がある。
詳細
従来のSIMDプロセッサの概略を図1に示す。本図は、各PEにメモリが付属した、PEの配列である。命令をフェッチし、PE配列に命令を発行するコントローラも含まれている。本コントローラは、異なる種類の命令の実行を管理するための複数のユニットに、論理的に分割されている。例えば、アレイ制御ユニットは、演算および論理処理及びプログラム制御、並びに、レジスタ間でデータを交換するための命令など、PE内で全てが実行される命令を発行する。ロード/ストア(LS)ユニットは、PEとそれらのメモリとの間でデータを交換するための命令を発行する。入力/出力(I/O)ユニットは、プロセッサとの間でデータを交換するための命令を発行する。これらのユニットの各々は、PE配列内の異なるハードウェアを用いるため、各ユニットによって制御される操作は、同時に実行される。
図1に概略を示すように、通常、従来のSIMDアーキテクチャは、各PEに付属したメモリを備えている。すなわち、外部/共有メモリ(“単一”メモリ)と、PEメモリ(“複数”メモリ)に対して、分離したアドレス空間を備えている。この構成を、図2のメモリマップに示す。
従来例の構成では、もし、データが、他のPEで共有されている場合や、外部メモリとの間で転送されている場合には、PEに付属したローカルメモリを、プログラマが直接管理する必要がある。データは、各PEに付属したメモリ内の作業空間位置との間で直接伝送する必要がある。このメモリマップは、PEによって個別に保持され、他からは見えないものとなっている。この状況により、プログラマは、これらの分離したメモリ空間の間でなされるデータ交換を、明示的に管理する必要が生じる。
本発明は、図3に示すように、全てのPEのメモリを、一意的にアドレス指定可能な範囲をもつ単一のアドレス空間にマッピングすることにより、他のPEのメモリへのアクセスを可能とするものである。データを、配列内のPE間で転送する必要がある場合には、直接メモリ複写を行なう操作が用いられる。
最も簡単な場合では、PEメモリへのアクセスに用いられるメモリアドレスは、データを格納したPE(図4の左側)のid番号と、そのPEのメモリ(図4の右側)のアドレスとを連結したものである。図示したように、これは、全てのPEメモリを、アドレス空間内の連続したブロックにマッピングするものである。しかし、この簡単なモデルは、PEメモリのサイズが、10の二乗のオーダであることを前提としている。従って、コンパイラは、データ効果命令を直接実行することなく、PEと外部メモリとの間で自然にデータを交換することができる。これらの処理は、従来のC言語を用いて実装することが可能である。プログラマは、この機構が実際に存在していることや、それがどのように実装されているかを知ることなく、これらの特徴を利用できる。
さらに複雑なメモリマッピングを用いて、PEメモリのブロックが不連続である場合に対応したり、10の二乗のオーダでないメモリサイズのものを扱うことができる。これにより、各PEの物理的なローカルメモリの範囲を越えて、それらのアドレスにアクセスすることにより、PEメモリを効率的に“可視化”することが可能である。図5に示すように、このアクセスは、グローバルメモリに対するものであるが、各PEにローカルに付属したものであるかのように扱われるメモリ領域に対するものである。各PEへのアクセスと異なる唯一の点は、PEのローカルなメモリに対応したアドレスへのアクセスの方が高速になるという点である。
他のアドレスマッピングを用いることも可能である。例えば、各PEのメモリからワードをインターリーブすることが、ベクトル処理では有用となる。N個のPEがあり、個々のPEにメモリが付属する場合には、メモリマップ中の最初のNワードが、各PEの最初のワードに対応し、次のN個のワードは、各PEの次のワードに対応する。この考え方の変形は、特に、マッピングが動的に変更され、例えば、FFTの“蝶”アドレスを生成する場合のような、DSPや画像処理のアプリケーションで有用である。
実装
図6に示すように、本発明の好ましい実施例では、双方向クリアコネクト“バス”(CCB)を用いる。しかし、単に、言葉の上で“バス”と称されるものよりも、このバスは、実質的に、データパケットを交換する相互接続されたネットワークとなっている。クリアコネクトバスの詳細は、出願人の英国特許出願0321186.9(英国特許番号2348974)に記載されている。“バス”に沿って、ノード2が配置されており、各PE1が、対応したメモリ3のブロックと、他のPEのメモリブロック又は他のメモリブロックによらず、他の各メモリブロックに接続されるようになっている。CCBの最終端のノード4は、外部インターフェース又は他のCCBネットワークに接続している。以上の全体構成を、図6に示す。
本例に好適となるように構成されたクリアコネクトの特徴を、以下に列挙する。
・モジュール構成となっており、任意の数のノードに対して拡張可能である。
・アドレスのデコード、ルーティング、アービトレーション、制御の全てが、分散しており、各ノードで、局所的に独立して行われる。
・モジュール構成により、各バスセグメントで発生する複数を並列して伝送することが可能である。
・さらに、各ノード内で、ノードを通る各経路が、並列伝送をサポートしている。
・バスは、ブロックされていない。すなわち、各ノードには、バッファリング機能が備えられており、常に、ノードがデータを受信できることが保証されている。
・データ到達性が保証されている。すなわち、データパケットが送信されたら、送信元に対し、データパケットが(最終的に)宛先に到達することが保証されている。
CCBがモジュラー構成となっており、独立した複数の同時伝送をサポートしていることから、全てのPEは、他のものと競合せずに、それら自身のメモリにアクセスすることが可能である。しかし、このアーキテクチャは、長い待ち時間があるとはいえ、いずれのPE1からも、他のPEのメモリ3にアクセスを可能とする。図7に概略を示すように、メモリアクセスは、適切なPEの適切な位置と要求元のPEユニットのレジスタファイル5とを始点、終点としてルーティングされる。レジスタアドレスフィールドは、処理結果のデータの宛先を指定するために用いられ、PEidフィールドは、要求元のPEに処理結果を返送するために用いられる。これらの2つのフィールドは、ともに、図7において符号6で記されている。同様に、PEidフィールドは、トランザクションを宛先メモリにルーティングするために用いられ、メモリアドレスフィールドは、データの読込み、書込みに応じて、それらの位置を指定するために用いられる。これは、図7において、符号8でまとめて記されている。図7では、PE間のトランザクションの代表例として、3つのノード2を経由して、上列左側のPEから下列右側のメモリを結ぶものを、破線によって示している。
クリアコネクトバスを利用する他の利点として、図8に概略を示すように、バスの並列性により、PEメモリとレジスタファイル間の伝送帯域を最大化できることがあげられる。図8では、PEとPEメモリ間の様々なトランザクションの例を示すために、破線と一点鎖線を用いている。
メモリ3にデータを書き込む前に、データは、クリアコネクトノード2に一時的に保存される。ここで、十分な一時保存容量を持たせることにより、複数のトランザクションが、単一のメモリへアクセスした際に、バスが渋滞することがないことを保証する。この一時的なデータ保存は、各ノードでのメモリ間データ伝送の同期にも用いられる。これにより、各ノードがデータ書込みを行う際に、多数サイクルでメモリ間データ伝送を行う代わりに、メモリ間データ伝送を単一サイクルで行うことが可能となる。メモリ間データ伝送は、“サイクルスチール”を行なうことが可能となる。すなわち、メモリがアイドル状態以外の時に、メモリ間伝送を行なわれるようになっている。データがPEレジスタに返送される際にも、同様のことが行なわれる。説明を簡単化するために、この詳細は、以下の説明では省略する。
連鎖状にカスケード接続されたノード配置に代えて、格子状にノードを配置することも可能である。ここでは、ノードが、カスケード接続された配置に関して説明したような方法で動作可能となっている場合には、物理的なノード配置がどうのようになっているかは、プロセッサにとって問題にはならない。
離れた位置にあるメモリブロックへの伝送では、待ち時間が長くなるため、他のPE動作と独立、並行して、これらの伝送を扱うために、変更されたロード/ストアユニット、すなわち、共有ロード/ストア(SLS)ユニットを設ける。これにより、メモリ動作が進行している間に、PEメモリへのアクセス競合を調停するSLSユニットにより、PEの動作を継続させることが可能となる。なお、この機構は、各PEのそのローカルメモリに対する、既存のロード/ストア機構と置き換えることが可能であり、あるいは、既存の機構に付加することも可能である。後者の場合は、両者のロード/ストア機構を並行して用いることが可能となる。
PE間の伝送と他の非ローカルな伝送が続いている間に、プロセッサは、他のスレッドからの命令を実行することが可能である。マルチタスクが実装されている構成では、伝送が続いている間に、新たなスレッドに切替えることは、効率的ではない。しかし、スレッドからの命令が実行されている間に、それと同一のスレッドからの命令が実行可能となるように、コンパイラは、伝送をスケジューリングすることが可能である。SMT実装構成では、伝送が続いている間に、任意の利用可能なスレッドからの命令を実行することが可能である。
PEとメモリブロックとの間には、一対一のマッピングを行なう必要はない。図9に示すように、2つのPEがある場合、複数のPEによって共有された1つのメモリブロックが存在する。1つの大きなメモリブロックのほうが、複数の小さなブロックよりも、より効率的であるため、このようにするほうが好ましい。しかし、複数の小さなブロックを用いるほうが、より高速なアクセスを実現できる。本発明がもたらす柔軟性により、メモリ容量と性能との間の最適なトレードオフが可能となる。
図9のノード9のような、いわゆる“終端ノード”は、配列中の任意の位置に設けることができ、これにより、アクセスの待ち時間を最適化できる。終端ノードは、外部メモリ又は他の小さなプロセッサに対するインターフェースとして用いられる。二つあるいはそれ以上の数の終端ノードを設けることにより、複数のプロセッサを接続し、マルチプロセッサシステムを構成することができる。共通アドレス方式を用いることにより、PEメモリであるか外部メモリであるかにかかわらず、システム内の全てのメモリは、任意のPEからアクセス可能となる。マルチプロセッサシステムでは、グローバルメモリアドレスは、宛先メモリの物理位置と、PE識別番号と、プロセッサ識別番号とによって構成されている。
バスに付属するいくつかのメモリブロックは、データキャッシュとして実装することが可能である。キャッシュが、データを掃き出し又は取り出す際には、SLSユニットのみが停止し、他のPEの動作は継続する。この時点で、スレッドの切替えが行なわれ、配列がビジー状態に保持される。
大きな配列では、一端から他端へのデータ伝送の待ち時間は、ノード間に余分にコネクションを付加することにより、減少させることができる。格子状、ツリー状又はハイパーキューブ状のネットワークで、ルーティングを行なうための様々な既知の方法がある。
冗長なCCBノード、PE及びメモリを付加する方法は、効率を向上させるために用いられる。各アドレスを、近隣のノードに再割当し、故障したPEの修復されていないCCBノードを通る全てのトラヒックをルーティングすることにより、損傷したPE又はメモリ、あるいは両者を回避することが可能となる。
SLS(共有ロード/ストアユニット)
従来は、標準的なロード/ストア(LS)ユニットは、命令シーケンスを制御することにより、メモリと各PEのレジスタファイルとの間のデータ転送を扱う。
LSユニットは、制御信号と、レジスタファイルアドレスと、メモリアドレスとを、全てのPEに対して発行する。出願人の標準的なロード/ストアコントローラの詳細については、出願人の英国特許番号2348974に記載されている。
共有ロード/ストア(SLS)ユニットは、共有メモリ処理を管理する機能を有するものと同様である。図10は、SLS10が、PE1と“バス”CCノード2とやりとりする方法を、概略的に示したものである。共有ロード/ストアコントローラ10は、“トランザクション可能”(E)フラグ値11を各PEから受け取り、“トランザクション進行中”(T)フラグ値12を各バスノード2から受け取る。共有ロード/ストアコントローラは、(メモリ及びレジスタアドレスを含む)制御信号を全てのPEに送る。一実装例では、共有ロード/ストアコントローラは、メモリ制御信号をメモリブロック3に送る。また、他の実装例では、メモリ制御信号は、各バスノード2によって生成される。各メモリ(及び書込みのためのデータ)により用いられるアドレスは、バスノードから得られる。ORゲート13の連鎖により、各PE2及び各ノード2は、それらの状態値を、SLS10に返送することが可能となっている。
SLSが従来のロード/ストアユニットと異なる特徴は、共有処理のための所要時間が、始点PEと終点PEとの間の距離に依存している点にある。この値は、変動し、多分に未知の値である。また、この値は、各PEによって異なる。従って、共有ロード又はストア処理が終了するまでの時間は、事前に知ることはできない。
データパケットは、各サイクルで、メモリの1つに到着するため、SLSユニットに関して可能となる実装の1つとしては、制御信号を送出して、各サイクルでのメモリアクセス(読込み又は書込み)を実行するものがある。対応するCCノードからの処理を受信したメモリのみが、実際にメモリ処理を実行する。この方法の利点は、簡単な点にある。一方、その欠点は、メモリ書込みが、複数のサイクルにまたがってしまい、メモリアクセスを行なっている他のメモリと干渉を起す可能性があるという点にある。SLSに関して、より効率的な方法は、全ての処理パケットがそれらの宛先メモリに到着するまで待機し、到着した時点でメモリ制御信号を一度だけ発行することである。さらに、これら二つの方法を組合わせることも可能であり、その場合は、所定の回数のメモリアクセスを“まとめて”おき、同時に一括実行する。
SLSは、トランザクションが発生したかどうか、あるいは未処理のトランザクションがあるかどうかを判定するために、PEとバスノードのグローバル状態に関する情報を受信する必要がある。全てのPEが、トランザクションに関与するものとして判定された際には、SLSは、共有ロード/ストア処理を停止する。この動作は、全てのPEの“トランザクション可能”フラグとCCB活動フラグとによって判定する。グローバル状態は、任意の構成をもつ論理ネットワークを介して収集され、バス構成自身によって返信するか、又は、状態信号をOR演算する独立したネットワークを介して返信する。各PEは、共有メモリ処理に関与することを希望するかどうか示すローカルトランザクション可能フラグを設定する。
SLSユニットは、アレイコントローラ内の、レジスタ・インタロックなど他の制御機構や、他のロード/ストアユニット及び標準のLSユニットと同様のセマフォ機構とやりとりする必要がある。共通資源へのアクセスをサイクル毎に調停することにより、SLSユニットとLSユニットは、同時に動作することが可能となる。
トランザクションを制御するため、SLSは、全てのトランザクションが終了するまで、グローバルレジスタファイルとメモリに対する制御信号を継続して発行する。
通常、SLSユニットは、トランザクションのためのレジスタファイルアドレスを提供し、メモリアドレスは、各PEでローカルに生成される。いくつかの伝送については、PEが、レジスタアドレスをローカルに発行するか、メモリアドレスについては、SLSユニットにより発行されることが好ましい。
メモリアドレスは、標準のアドレス指定方法のいくつかを用いて、PEにより提供することが可能である。これらのアドレスは、(上記のアドレスマッピングに依存し)暗示的に他のPEを指す。一方、プログラマが、明示的にPE番号を引用してもよく、この場合は、idとメモリアドレスは、共有メモリアドレスを構成するためにローカルに組み合せられる。また、SLSが、PEにより提供されたメモリアドレスに付加される基準アドレス又はオフセットを提供することも可能である。生成された共有メモリアドレスは、CCBを介して、データとして伝送され、CCBから宛先PEへのトランザクションを実行するために用いられる。宛先PEにおいて、メモリアドレスフィールドが抽出され、メモリに対するデータの読取り、書込みを制御することに用いられる。
特定の操作
本セクションでは、いくつかの特定の操作について説明する。
共有書込み
共有書込みは、“送りっぱなし”又は非送りっぱなし(確認付き)操作のいずれかを用いる。送りっぱなし書込みとは、PEが、書込み処理が終了したことを確認する応答を待たないことである。すなわち、一旦、書込み処理がPE処理バッファを離れると、CCB上の活動のみがその処理の進行状態を示すものとなる。CCB上の全ての活動が終了すると、全ての書込みが終了する。
送りっぱなし書込みについて、以下、詳細する。書込み操作を起動するために、SLSユニットは、全てのPEに対して、レジスタファイルアドレスをブロードキャストする。トランザクション可能なPEのみが、書込み処理に関与することができる。次に、SLSユニットは、アドレスと書き込まれるデータとを、トランザクション可能な各PEからCCBインターフェースに伝送する。CCBの“トランザクション進行中”信号が発行され、PEは他の処理のために停止する。
CCBは、宛先PEへのアドレスとデータとを含むパケットを、そのアドレスのidフィールドを用いて回送する。データがCCBを介して送られる距離に依存して、この伝送に要するサイクル数は、可変となる。CCBは、自律的に動作し、PE配列内でトランザクションをルーティングする。全てのPEは、同時にトランザクションを活動させることが可能であり、これにより、CCBの並列伝送機能が活用できる。
データがその宛先に到着すると、そのデータは、パケットから抽出されたメモリアドレスを用いて、PEメモリに書き込まれる。各サイクルで、パケットは宛先PEのメモリに到着し、これにより、CCB上の全ての活動が停止するまで、SLSユニットは、継続してSRAM制御を行なう。そして、SLSユニットは、書込み終了信号を、命令/スレッドシーケンサユニットに発行する。同一のPEメモリに対して複数の書込みが行なわれる場合には、その書込み順序はあらかじめ保証されてはいないが、書込み終了まで、その処理は続く。
確認付き書込み
書込みに対して、書込みを確認する必要がある場合には、以下に示すような、読込みと同様の操作を行なう。書込みデータが送信された際でも、PEは、“トランザクション可能”フラグをクリアしない。書込み結果を戻すことができるように、始点となるPEのidが、処理パケット中に含まれている。データがメモリ中に書き込まれた際に、応答パケットが生成される(これは、読込み応答と同様の方法であるが、この読込み応答にはデータは含まれない)。PEは、結果パケットを受け取ると、トランザクション可能フラグを下げる。
共有読込み処理と同様に、プロセッサは、確認を行う書込みを待ちながら、他のスレッドからの命令を実行する。
ブロック書込み
PEは、SLSが発行する‘ブロック複写’コマンドを用いて、共有書込みのシーケンスを生成することが可能である。これにより、ベースレジスタとメモリのアドレスと、カウント値が与えられる。その後の操作により、連続したレジスタファイルと連続したメモリアドレスを用いて、ブロック操作を実現する。各PEは、トランザクションが発行される際に、その数をカウントし、所定の要求された数が送信されると、トランザクション可能フラグがクリアされる。ブロック中の全てのPEによる全ての書込みが終了するまで、SLSは動作を継続する。
ブロードキャスト書込み
また、共有書込み機構を用いて、PEからのデータを全てのメモリに書き込むことも可能である。特別な“ブロードキャスト”複数共有書込み処理が、全ての関与可能なPEから発行される。各PEは、異なるデータを、異なるメモリアドレスに対してブロードキャストすることが可能である。CCBは、このモードを検知し、各CCBノードにおいて、ローカルに付属したメモリにパケットを複写し、それを次のノードに伝送することにより、トランザクションを複製する。CCBの終端に到達したトランザクションがあれば、それは棄却されるか、他のプロセッサが接続されている場合には、そこへ伝送される。
以上の操作の間、SLSは、全てのCCB活動が停止するまで待機し、ブロードキャストが終了したことを判定する。全てのPEが動作可能状態である場合、すなわち、全てのPEが全てのメモリに書込み中である場合には、相当数のトランザクションが発行されることになる。
共有読込み
共有読込みは、2つに分かれたフェーズからなるトランザクション操作を有している。読込みトランザクションフェーズは、メモリに向けられた要求を生成する。読込みトランザクションが到着すると、その要求の中に組み込まれた返送アドレスを用いて、その始点に返送される。従って、共有読込みの操作は、共有書込みのトランザクションよりも長く続く。
読込み操作を開始させるために、LSユニットは、レジスタファイルアドレスを全てのPEに対してブロードキャストする。トランザクション可能なPEのみが、読込み操作に関与することになる。次に、SLSユニットが、共有メモリアドレスと、要求元のPEのidと宛先レジスタアドレスとを、トランザクション可能な各PEからCCBインターフェースに送る。CCB“トランザクション進行中”信号が、オン状態になる。PEのidとレジスタアドレスが、読込みデータの返送先アドレスとして利用されるために、バス上のパケットに格納される。
CCBは、共有メモリアドレス中の宛先のPEのidを用いて、パケットを宛先のPEに回送する。これには、データがCCBを介して到達する距離に応じて変化するサイクル数を要する。CCBは、自律的に動作し、PE配列内でトランザクションを配信する。全てのPEは、トランザクションを活性化することが可能であり、これにより、CCBの並列伝送機能が実現されることとなる。
パケットが宛先PEに到着すると、パケットから抽出したメモリアドレスを参照して、データがメモリから読み込まれる。データと、返送先のPEのidとレジスタアドレスとが、CCBパケットに搭載される。返送CCBトランザクションが生成され、データがその始点に向けて送られる。パケットが始点のPEに戻ると、パケット中に含まれたレジスタアドレスを参照して、データがPEレジスタファイルに書き込まれる。そして、PEが動作不可状態となり、次のトランザクションに備える。
CCB上の全ての活動が終了し、全てのトランザクション可能フラグがオフとなるまで、SLSユニットは、SRAMとレジスタの書込み制御信号を継続して送り出す。そして、読込み終了信号をシーケンサユニットに送る。
単一のPEメモリから複数の読込みが発生した場合には、その読込み順序は保証されないが、それらの読込みは全てが終了するまで続けられる。
ブロードキャスト読込み
ブロードキャスト書込みと同様に、単一の読込み操作によって、全てのPEの同一のレジスタに、データを戻す。この場合、各CCBノードは、メモリアクセスから戻されたデータを複製し、このデータは全てのPEに複写される。
ブロック読込み
PEは、SLSによって与えられたブロック書込みコマンドにより、一連の共有読込みを生成する。SLSブロックコマンドは、ベースレジスタファイルとメモリのアドレスと、カウント値を与える。次に、ブロック操作のために、連続したレジスタファイルと連続したメモリアドレスを送出する操作を行う。PEは、全てのトランザクションが終了するまで、動作する。
外部トランザクション
上記と同一の基本的な機構を拡張することにより、外部メモリへのアクセスが可能となり、あるいは、異なるプロセッサのPE配列間でのアクセスが可能となる。外部装置は、適切なインターフェースを有するバスの終端ノード(CCBEN)を介して接続されている。配列中の任意のPEの指定範囲を超えるようなアドレスがあれば、それが実質的な終端ノードとなる。これらのアクセスは、同一のチップ上のメモリ/プロセッサに対するもの、あるいは、チップ外部の装置に対するものとなる。
外部書込み
上述したように、共有書込みは、“送りっぱなし”の形態で用いられる。すなわち、共有書込みのいずれかが、CCBENに対して送り出されるようにアドレス設定がなされた場合には、トランザクションは、バス上から実質的に消滅し、SLSから見て、書込みトランザクションは終了したと判断するような形態である。共有書込みをプロセッサに送ったならば、それ以降は、その活動についてフィードバックを必要としない形態である。
しかし、分離した複数のプロセッサを同期化させたり、データの健全性を保証するためには、書込み確認を待つことが望ましい場合もある。書込み確認は、書込みトランザクションと確認トランザクションの、2段階のトランザクションから構成されている。書込みトランザクションの段階では、データアドレスフィールドを用いて、それらの宛先まで送達される書込み要求を生成する。書込み要求が、その宛先に到着すると、受信側は、確認トランザクションパケットを生成し、要求に埋め込まれていた返送アドレスフィールドを参照して、その始点、本例ではCCBENに返送する。
CCBENは、トランザクションの送信/返信時にカウントすることにより、このように変換された全てのトランザクションを数える。全ての確認が受信されると、SLSに対して、全ての確認付き書き込みトランザクションが終了したこと示す信号が発行される。個々のPEは、このプロセスには関与しない。
プロセッサは、全ての書込みに対して確認が得られるのを待つ間に、他のスレッドからの命令を実行することが可能である。
外部読込み
共有読込みは、2段階のトランザクションから構成されている。
共有読込みが、CCBENを介して、外部装置へアドレス設定されている場合には、SLSユニットは活動を継続して、通常の共有読込み操作が起こったかのように見せかけるが、外部に送られたトランザクションは、ローカルの共有読込みよりも多くの回数のサイクルを経て終了する。このように、CCBの活動がなくなったとしても、いくつかのトランザクション可能フラグの数はリセットされることはない。SLSユニットは、この状態を用いて、配列コントローラに対して、スレッド切替えが今起こっていることを示すことができる。
その後に、返送トランザクションが、CCBENに現れる。その時は、スレッド切替えが必要である状態を示す信号が、配列コントローラに送られ、全てのPEがその状態に復帰する。スレッド状態が復帰すると、SLSユニットは、再活性化され、トランザクションは進行可能となる。その後、動作は、通常の共有書込みとして継続する。
到着トランザクション
トランザクションが、外部の始点(通常は、他のPE配列)からCCBENに到着すると、トランザクションが開始したことを表す信号が、SISに送られる。SLSは、トランザクションでアドレス指定されたPEメモリの読込み又は書込みに必要となる制御信号を生成する。読込みデータの返送トランザクションは、上述した方法により生成されるが、唯一違う点は、トランザクションの宛先は、配列の外部にあるという点である。バス上の全ての活動が終了すると、SLSは、停止する(すなわち、トランザクション可能PEは存在しなくなる)。
もし、ローカルの共有メモリアクセスが起こっている間に、外部トランザクションが到着した場合には、ローカルトランザクションが終了するまで、到着したトランザクションは停止する。同一の機構により、(ホスト/デバッグプロセッサなどの)任意の外部装置がPEメモリにアクセス可能となる。
結論
上述した内容は、本発明の主たる特徴を示すものであり、クレームは、本発明の必須要件を定義するものであるが、以下の利点と特徴に関するリストは、好ましい実施様態によって本発明を実現することができる重要な特徴の概要を示すものである。
・MTAPがマルチスレッド固有の特徴を有することにより、共有ロード/ストアの待ち時間を隠蔽できる。
・PEメモリのグローバル化と統一したアドレス方式により、プログラミングモデルを簡単化できる。
・プログラマにとって、全ての種類のメモリへのアクセスが統一的に行える。従って、バルクでオンチップ用途SRAMに対して、トランスペアレントな広帯域のトランザクションが可能となる。
・コンパイラに対して、様々なアドレス範囲と伝送の種類の、待ち時間に関する情報を与えられる。これにより、コンパイラが、(標準的な既知の方法を用いて)データ転送をスケジューリングし、最適化することが可能となる。
・PEメモリを仮想化することができる。すなわち、各PEに搭載された物理的なメモリ容量よりも大きな容量を有するが如くに扱える。
・プロセッサがトランスペアレントであるという性質が、異なるプロセッサのPE配列間のアクセスをサポートする。
・異なるPEとメモリとの間の伝送を(異なるノードの)バス上で同時に行えるため、自動的にメモリのトランザクション帯域を最大に生かすことができる。
・多対一及び一対多の(ブロードキャストのような)トランザクションが可能となる。
・トランザクションは、CCBの待ち行列に自然に入る。
・並列処理される共有ロード/ストア及び‘通常の’複数ロード/ストア並びにALU動作が提供されている。
・共有トランザクションは、多数回のサイクルを必要とするため、コンパイラは、事前にこれらをスケジューリングして、活動を重ね合わすことができる。
・メモリのブロックの、より効率的な区分けと、PEへの割当てが可能となる。
・CCBノードアドレスを変更し、冗長なPEを付加することにより、故障部分を修復することができる。
・メモリはキャッシュ機能を備えることができる。
本発明を、以下の図面を引用して説明する。
図1は、従来のSIMDアーキテクチャを示す図である。 図2は、単一及び複数メモリマップの概略図である。 図3は、2Kワードメモリ(11ビットアドレス)と64個のPE(6ビットPE数)を例にとり、PEidとメモリアドレスから共有メモリアドレスを生成する方法を示す、統合メモリのアドレスマップの概略図である。 図4は、PEIDとメモリアドレスとから、共有メモリアドレスを生成する方法を示す図。 図5は、仮想化されたPEメモリのアドレスマップを示す図。 図6は、CCB相互接続PEメモリの概略図。 図7は、PEレジスタとメモリの間で要求を配送するPE間伝送の動作を示す図。 図8は、同時伝送の動作を示す図。 図9は、中間終端ノードを利用する本発明の一例を示す図。 図10は、本発明によるメモリ配置で用いられる共有ロード/ストアユニットを示す図。

Claims (43)

  1. マルチスレッドのコントローラと、複数の処理素子と、前記複数の処理素子の少なくとも一つに対してローカルに設けられたメモリ手段と、前記処理素子と前記メモリとを相互接続するデータパケット交換ネットワークであって、前記処理素子のいずれかをメモリ手段にアクセス可能とするデータパケット交換ネットワークと、スレッド交換が起こっているかもしれないことを、前記ネットワークの活動とは独立してコントローラに通知する手段とを含むことを特徴とするデータプロセッサ。
  2. 請求項1記載のデータプロセッサにおいて、前記メモリ手段は、前記各処理素子の一つに付属したローカルメモリを含み、ローカルメモリ1つ当たり処理素子1つを割当てたことを特徴とするデータプロセッサ。
  3. 請求項1又は2記載のデータプロセッサにおいて、各処理素子は、配列プロセッサ中の処理素子の配列の一つであることを特徴とするデータプロセッサ。
  4. 請求項3記載のデータプロセッサにおいて、前記プロセッサ配列は、単一命令多重データ処理(SIMD)プロセッサであることを特徴とするデータプロセッサ。
  5. 請求項1記載のデータプロセッサにおいて、前記メモリ手段は、複数の処理素子の間で共有される単一のローカルメモリを含むことを特徴とするデータプロセッサ。
  6. 請求項1から5のいずれかに記載のデータプロセッサにおいて、さらに、データパケット交換ネットワークにも接続された外部メモリを含み、外部メモリが前記処理素子のどれかから利用できるようになっていることを特徴とするデータプロセッサ。
  7. 請求項1から6のいずれかに記載のデータプロセッサにおいて、前記パケット交換ネットワークは、複数のノードを含み、各ノードは、各処理素子と、前記メモリ手段に接続された少なくとも一つのノードとに接続されていることを特徴とするデータプロセッサ。
  8. 請求項7記載のデータプロセッサにおいて、前記ノードは、線形ネットワークで接続されていることを特徴とするデータプロセッサ。
  9. 請求項7記載のデータプロセッサにおいて、前記ノードは、格子を構成する配列状で接続されていることを特徴とするデータプロセッサ。
  10. 請求項1から9のいずれかに記載のデータプロセッサにおいて、前記パケット交換ネットワークは、前記処理素子と前記メモリ手段との間の複数の並列伝送をサポートするように構成されていることを特徴とするデータプロセッサ。
  11. 請求項7記載のデータプロセッサにおいて、前記ノードは、前記コントローラに接続されており、前記処理素子に対して命令を発行し、前記メモリ手段に対してメモリ制御信号を発行するように構成されていることを特徴とするデータプロセッサ。
  12. 請求項11記載のデータプロセッサにおいて、さらに、前記コントローラへの通信のために、各処理素子からの状態信号を組合せ、各ノードからの状態信号を組み合わせる手段を含むことを特徴とするデータプロセッサ。
  13. 請求項6に従属した場合の請求項7記載のデータプロセッサにおいて、前記パケット交換ネットワークの前記ノードの一つは、前記ノードのいずれかと前記外部メモリとの間のインターフェース。
  14. 請求項2記載のデータプロセッサにおいて、前記ローカルメモリ手段は、処理素子のいずれかによるアクセスのために、単一のメモリマップ又はメモリ空間に現れることを特徴とするデータプロセッサ。
  15. 請求項14及び6記載のデータプロセッサにおいて、前記外部メモリもまた、処理素子のいずれかによるアクセスのために、単一のメモリマップ又はメモリ空間に現れることを特徴とするデータプロセッサ。
  16. 請求項14又は15記載のデータプロセッサにおいて、さらに、少なくとも一つ別のデータプロセッサを含み、前記別のデータプロセッサの各々は、各メモリ手段を有し、各前記メモリ手段は、前記データプロセッサの前記メモリ手段と同一のメモリマップ又はメモリ空間に現れることを特徴とするデータプロセッサ。
  17. 請求項14から16のいずれかに記載のデータプロセッサにおいて、前記メモリ手段は、前記メモリマップ又はメモリ空間の連続したアドレス範囲にマッピングされることを特徴とするデータプロセッサ。
  18. 請求項14から17のいずれかに記載のデータプロセッサにおいて、前記メモリ手段は、各処理素子が、付属している物理的なメモリよりも大容量のローカルメモリを有するかのように見えるように、前記メモリマップ又はメモリ空間の不連続のアドレス範囲にマッピングされることを特徴とし、付加されたメモリは、前記外部メモリの位置に設けられることを特徴とするデータプロセッサ。
  19. 請求項14から17のいずれかに記載のデータプロセッサにおいて、前記メモリマップ又はメモリ空間内の各アドレスは、少なくとも各処理素子の識別番号と、各ローカルメモリ内のアドレスとを組み合せることにより決定されることを特徴とするデータプロセッサ。
  20. 請求項16及び19に記載のデータプロセッサにおいて、各アドレスは、さらに、各別のデータプロセッサの識別番号により決定されることを特徴とするデータプロセッサ。
  21. 請求項1から20のいずれかに記載のデータプロセッサにおいて、前記メモリ手段の少なくとも一部は、さらに、データパケット交換ネットワークにも接続されたキャッシュメモリを含み、キャッシュメモリが前記処理要素のいずれかに利用可能とされていることを特徴とするデータプロセッサ。
  22. 請求項1から21のいずれかに記載のデータプロセッサにおいて、前記プロセッサは、少なくとも一つの他の命令を実行している間に、一つあるいはそれ以上の数の命令を発行するように構成され、命令の変化する待ち時間がユーザに対して隠蔽されていることを特徴とするデータプロセッサ。
  23. 請求項1から22のいずれかに記載のデータプロセッサにおいて、前記プロセッサは、少なくとも一つの他の命令を実行している間に、一つあるいはそれ以上の数の命令を発行するように構成され、トランザクションの変化する待ち時間がユーザに対して隠蔽されていることを特徴とするデータプロセッサ。
  24. 請求項11記載のデータプロセッサにおいて、前記コントローラは、他の操作と独立、並行して、メモリアクセス操作を実行するように構成されていることを特徴とするデータプロセッサ。
  25. 請求項22記載のデータプロセッサにおいて、前記プロセッサは、前記コントローラから前記メモリ手段に送られた制御信号に応じて、前記メモリ手段に格納されたデータへのメモリアクセスを実行するように構成され、前記アクセスは、対応するノードからトランザクションを受信した前記メモリ手段のブロックに対してのみ可能であることを特徴とするデータプロセッサ。
  26. 請求項12記載のデータプロセッサにおいて、各処理素子は、処理素子がメモリアクセスに関与していることを示すフラグを設定、保持するように構成され、前記状態信号は、フラグから生成され、コントローラに送られ、フラグは、メモリアクセスが終了した時点で解除されることを特徴とするデータプロセッサ。
  27. 請求項12又は26に記載のデータプロセッサにおいて、ノードは、ノードがトランザクションに関与していることを示すフラグを設定、保持するように構成され、前記状態信号は、フラグから生成され、コントローラに送られ、フラグは、トランザクションが終了した時点で解除されることを特徴とするデータプロセッサ。
  28. 請求項25記載のデータプロセッサにおいて、前記プロセッサは、前記制御信号を発行し、システムクロックの1サイクルに一度、前記メモリアクセスを実行するように構成されていることを特徴とするデータプロセッサ。
  29. 請求項25記載のデータプロセッサにおいて、前記プロセッサは、各トランザクションパケットが、その宛先メモリに到着するまで待機し、その後、メモリ制御信号を一度だけ発行するように構成されていることを特徴とするデータプロセッサ。
  30. 請求項25記載のデータプロセッサにおいて、前記プロセッサは、全てのトランザクションパケットが、その宛先メモリに到着するまで待機し、その後、メモリ制御信号を一度だけ発行するように構成されていることを特徴とするデータプロセッサ。
  31. 請求項25記載のデータプロセッサにおいて、前記プロセッサは、複数のメモリアクセスをまとめておき、前記メモリアクセスのまとまりを同時に実行するように構成されていることを特徴とするデータプロセッサ。
  32. 請求項28から31のいずれかに記載のデータプロセッサにおいて、前記メモリアクセスは、書込みトランザクションが終了したことの確認を処理素子が待たないような、送りっぱなしの書込み操作であることを特徴とするデータプロセッサ。
  33. 請求項28から31のいずれかに記載のデータプロセッサにおいて、前記メモリアクセスは、書込み操作が終了した際に確認パケットが生成され、それが要求元の処理素子に返送されるような、確認付き書き込み操作であることであることを特徴とするデータプロセッサ。
  34. 請求項28から31のいずれかに記載のデータプロセッサにおいて、前記メモリアクセスは、トランザクション可能となっている処理素子から読込みトランザクションが起動され、データがメモリ位置から読み出され、各ノードで複製された後に、各処理素子のレジスタファイルに入力されるような、ブロードキャスト読込みであることを特徴とするデータプロセッサ。
  35. 請求項28から31のいずれかに記載のデータプロセッサにおいて、前記メモリアクセスは、メモリアドレスとカウント値を含むブロック複写コマンドがコントローラにより生成されたことに応じ、各処理素子が書込み操作のシーケンスを生成するように構成され、ブロック内の全ての書込み操作を終了させることが可能となるような、ブロック書込みであることを特徴とするデータプロセッサ。
  36. 請求項28から31のいずれかに記載のデータプロセッサにおいて、前記メモリアクセスは、メモリアドレスとカウント値を含むブロック読込みコマンドがコントローラにより生成されたことに応じ、各処理素子が読込み操作のシーケンスを生成するように構成され、ブロック内の全ての読込み操作を終了させることが可能となるような、ブロック読込みであることを特徴とするデータプロセッサ。
  37. 請求項28から31のいずれかに記載のデータプロセッサにおいて、前記メモリアクセスは、トランザクション可能となっている処理素子から書込みトランザクションが起動され、データが各ノードで複製され、各処理素子のローカルメモリに複写されるような、ブロードキャスト書込みであることを特徴とするデータプロセッサ。
  38. 請求項1記載のデータプロセッサにおいて、コントローラに示す前記手段は、処理素子に共通で、ネットワーク上の活動が停止した際にコントローラに通知するように構成された共有ロード/ストアユニットを含むことを特徴とするデータプロセッサ。
  39. 請求項38記載のデータプロセッサにおいて、さらに、ネットワークから離れ、ネットワークに戻るトランザクション数を数え続ける計数手段を含むことを特徴とするデータプロセッサ。
  40. 請求項39記載のデータプロセッサにおいて、計数手段は、前記パケット交換ネットワーク内の終端ノードを含み、前記終端ノードは、ネットワークから離れ、ネットワークに戻るトランザクション数を数え続けるように構成されていることを特徴とするデータプロセッサ。
  41. 請求項40記載のデータプロセッサにおいて、前記終端ノードは、ネットワークを離れるトランザクション数と、ネットワークに戻るトランザクション数とを比較し、ネットワークから離れ、ネットワークに戻る全てのトランザクションが終了したことを共有ロード/ストアユニットに通知するように構成されていることを特徴とするデータプロセッサ。
  42. 請求項41記載のデータプロセッサにおいて、前記共有ロード/ストアユニットは、前記終端ノードからの前記通知に応じて、ネットワーク上の活動が終了したことをコントローラに対して通知することを特徴とするデータプロセッサ。
  43. 添付図面中で実質的に記述されているデータプロセッサ。
JP2007525262A 2004-08-13 2005-08-11 プロセッサメモリシステム Pending JP2008509493A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0418177A GB2417105B (en) 2004-08-13 2004-08-13 Processor memory system
PCT/EP2005/008759 WO2006015868A2 (en) 2004-08-13 2005-08-11 Global memory system for a data processor comprising a plurality of processing elements

Publications (1)

Publication Number Publication Date
JP2008509493A true JP2008509493A (ja) 2008-03-27

Family

ID=33017526

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007525262A Pending JP2008509493A (ja) 2004-08-13 2005-08-11 プロセッサメモリシステム

Country Status (5)

Country Link
US (3) US7890733B2 (ja)
JP (1) JP2008509493A (ja)
CN (1) CN101006437A (ja)
GB (1) GB2417105B (ja)
WO (1) WO2006015868A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012522280A (ja) * 2009-03-30 2012-09-20 日本電気株式会社 リングバスによって相互接続された複数の処理要素を有する単一命令多重データ(simd)プロセッサ

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2417105B (en) * 2004-08-13 2008-04-09 Clearspeed Technology Plc Processor memory system
KR101270925B1 (ko) * 2005-05-20 2013-06-07 소니 주식회사 신호 처리 장치
JP2008097498A (ja) * 2006-10-16 2008-04-24 Olympus Corp プロセッシング・エレメント、コントロール・ユニット、及びこれらを備える処理システム、分散処理方法
JPWO2008087779A1 (ja) * 2007-01-19 2010-05-06 日本電気株式会社 アレイ型プロセッサおよびデータ処理システム
KR100895298B1 (ko) 2007-04-30 2009-05-07 한국전자통신연구원 멀티미디어 데이터의 효율적인 병렬 처리를 위한 장치,방법, 데이터 처리 엘리먼트
US8068114B2 (en) * 2007-04-30 2011-11-29 Advanced Micro Devices, Inc. Mechanism for granting controlled access to a shared resource
WO2008155798A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited ユニット間設定同期装置
FR2918190B1 (fr) * 2007-06-26 2009-09-18 Thales Sa Dispositif d'adressage pour processeur parallele.
JP4913685B2 (ja) * 2007-07-04 2012-04-11 株式会社リコー Simd型マイクロプロセッサおよびsimd型マイクロプロセッサの制御方法
US8751211B2 (en) 2008-03-27 2014-06-10 Rocketick Technologies Ltd. Simulation using parallel processors
EP2289001B1 (en) * 2008-05-30 2018-07-25 Advanced Micro Devices, Inc. Local and global data share
JP2010033555A (ja) * 2008-06-30 2010-02-12 Olympus Corp コントロール・ユニット、分散処理システム及び分散処理方法
US9032377B2 (en) * 2008-07-10 2015-05-12 Rocketick Technologies Ltd. Efficient parallel computation of dependency problems
CN102227710A (zh) * 2008-11-28 2011-10-26 西门子公司 自动控制系统和用于并行执行控制程序的方法
KR101553648B1 (ko) 2009-02-13 2015-09-17 삼성전자 주식회사 재구성 가능한 구조의 프로세서
US20120030448A1 (en) * 2009-03-30 2012-02-02 Nec Corporation Single instruction multiple date (simd) processor having a plurality of processing elements interconnected by a ring bus
CN101630155B (zh) * 2009-08-21 2011-04-20 上海奈凯电子科技有限公司 数控机床系统中实现指令交互的方法
US20120001925A1 (en) 2010-06-30 2012-01-05 Ati Technologies, Ulc Dynamic Feedback Load Balancing
US20120001905A1 (en) * 2010-06-30 2012-01-05 Ati Technologies, Ulc Seamless Integration of Multi-GPU Rendering
CN102025634B (zh) * 2010-12-16 2015-06-03 中兴通讯股份有限公司 数据包缓存管理方法和设备
US9996500B2 (en) * 2011-09-27 2018-06-12 Renesas Electronics Corporation Apparatus and method of a concurrent data transfer of multiple regions of interest (ROI) in an SIMD processor system
WO2013063484A1 (en) 2011-10-28 2013-05-02 The Regents Of The University Of California Multiple-core computer processor
US9373182B2 (en) * 2012-08-17 2016-06-21 Intel Corporation Memory sharing via a unified memory architecture
US9317472B2 (en) 2013-06-07 2016-04-19 International Business Machines Corporation Processing element data sharing
CN106095730B (zh) * 2016-06-23 2018-10-23 中国科学技术大学 一种基于指令级并行ilp和数据级并行dlp的fft浮点优化方法
CN106380610B (zh) * 2016-09-23 2018-08-21 江西师范大学 激光烧结成形3d打印用聚醚砜粉末耗材的制备方法
CN114168525B (zh) * 2017-03-14 2023-12-19 珠海市芯动力科技有限公司 可重构并行处理
US10990326B2 (en) 2017-05-31 2021-04-27 Fmad Engineering Kabushiki Gaisha High-speed replay of captured data packets
US11036438B2 (en) * 2017-05-31 2021-06-15 Fmad Engineering Kabushiki Gaisha Efficient storage architecture for high speed packet capture
US11392317B2 (en) 2017-05-31 2022-07-19 Fmad Engineering Kabushiki Gaisha High speed data packet flow processing
US10417002B2 (en) 2017-10-06 2019-09-17 International Business Machines Corporation Hazard detection of out-of-order execution of load and store instructions in processors without using real addresses
US10572256B2 (en) 2017-10-06 2020-02-25 International Business Machines Corporation Handling effective address synonyms in a load-store unit that operates without address translation
US11175924B2 (en) 2017-10-06 2021-11-16 International Business Machines Corporation Load-store unit with partitioned reorder queues with single cam port
US10606591B2 (en) 2017-10-06 2020-03-31 International Business Machines Corporation Handling effective address synonyms in a load-store unit that operates without address translation
US10606590B2 (en) 2017-10-06 2020-03-31 International Business Machines Corporation Effective address based load store unit in out of order processors
US10394558B2 (en) 2017-10-06 2019-08-27 International Business Machines Corporation Executing load-store operations without address translation hardware per load-store unit port
US10922258B2 (en) * 2017-12-22 2021-02-16 Alibaba Group Holding Limited Centralized-distributed mixed organization of shared memory for neural network processing
US11436143B2 (en) 2017-12-22 2022-09-06 Alibaba Group Holding Limited Unified memory organization for neural network processors
WO2019147708A1 (en) * 2018-01-24 2019-08-01 Alibaba Group Holding Limited A deep learning accelerator system and methods thereof
GB2575293B (en) * 2018-07-04 2020-09-16 Graphcore Ltd Data Through Gateway
US11275632B2 (en) * 2018-09-14 2022-03-15 Advanced Micro Devices, Inc. Broadcast command and response
CN113010173A (zh) 2019-12-19 2021-06-22 超威半导体(上海)有限公司 并行处理中矩阵数据广播的方法
CN113094099A (zh) 2019-12-23 2021-07-09 超威半导体(上海)有限公司 矩阵数据广播架构
US11922292B2 (en) 2020-01-27 2024-03-05 Google Llc Shared scratchpad memory with parallel load-store
US11403221B2 (en) 2020-09-24 2022-08-02 Advanced Micro Devices, Inc. Memory access response merging in a memory hierarchy
CN112967172B (zh) * 2021-02-26 2024-09-17 成都商汤科技有限公司 一种数据处理装置、方法、计算机设备及存储介质
US12117934B2 (en) * 2021-03-30 2024-10-15 Ati Technologies Ulc Method and system for sharing memory between processors by updating shared memory space including funtionality to place processors into idle state
CN117075571B (zh) * 2023-03-06 2024-08-06 昆易电子科技(上海)有限公司 测试方法及系统、设备以及可读存储介质
CN116089843B (zh) * 2023-04-10 2023-09-08 国网浙江省电力有限公司 一种基于数据聚类的新能源结算数据异常检测与预警方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5945527A (ja) * 1982-09-07 1984-03-14 Hitachi Ltd バス制御方法
JPS63168761A (ja) * 1987-01-07 1988-07-12 Fujitsu Ltd 並列処理系構成方式
JPH01134656A (ja) * 1987-11-20 1989-05-26 Nippon Telegr & Teleph Corp <Ntt> 主記憶分散構成をもつ情報処理装置
JPH11110215A (ja) * 1997-10-03 1999-04-23 Keisuke Shindo マルチスレッドプログラムを使用する情報処理装置
JP2002268942A (ja) * 2001-03-13 2002-09-20 Toshiba Corp マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法
JP2003122729A (ja) * 2001-10-17 2003-04-25 Hitachi Ltd マルチノードシステム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2203574A (en) * 1987-04-03 1988-10-19 Univ Southampton Parallel processor arrays
WO1992002884A1 (en) * 1990-08-03 1992-02-20 Du Pont Pixel Systems Limited Data-array processing systems
US6088370A (en) * 1997-09-22 2000-07-11 Intel Corporation Fast 16 bit, split transaction I/O bus
GB2348984B (en) 1999-04-09 2004-05-12 Pixelfusion Ltd Parallel data processing systems
GB2348973B (en) 1999-04-09 2004-03-10 Pixelfusion Ltd Parallel data processing systems
GB2348974B (en) 1999-04-09 2004-05-12 Pixelfusion Ltd Parallel data processing systems
EP1181648A1 (en) * 1999-04-09 2002-02-27 Clearspeed Technology Limited Parallel data processing apparatus
US6606704B1 (en) * 1999-08-31 2003-08-12 Intel Corporation Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
US6557096B1 (en) * 1999-10-25 2003-04-29 Intel Corporation Processors with data typer and aligner selectively coupling data bits of data buses to adder and multiplier functional blocks to execute instructions with flexible data types
US6925547B2 (en) * 2000-12-14 2005-08-02 Silicon Graphics, Inc. Remote address translation in a multiprocessor system
JP2004524617A (ja) 2001-02-14 2004-08-12 クリアスピード・テクノロジー・リミテッド クロック分配システム
US6922766B2 (en) * 2002-09-04 2005-07-26 Cray Inc. Remote translation mechanism for a multi-node system
US7334102B1 (en) * 2003-05-09 2008-02-19 Advanced Micro Devices, Inc. Apparatus and method for balanced spinlock support in NUMA systems
GB0323950D0 (en) 2003-10-13 2003-11-12 Clearspeed Technology Ltd Unified simid processor
US7668165B2 (en) * 2004-03-31 2010-02-23 Intel Corporation Hardware-based multi-threading for packet processing
GB2417105B (en) * 2004-08-13 2008-04-09 Clearspeed Technology Plc Processor memory system
US20060069579A1 (en) * 2004-09-29 2006-03-30 Siemens Aktiengesellschaft Method of monitoring a facility
US7613886B2 (en) * 2005-02-08 2009-11-03 Sony Computer Entertainment Inc. Methods and apparatus for synchronizing data access to a local memory in a multi-processor system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5945527A (ja) * 1982-09-07 1984-03-14 Hitachi Ltd バス制御方法
JPS63168761A (ja) * 1987-01-07 1988-07-12 Fujitsu Ltd 並列処理系構成方式
JPH01134656A (ja) * 1987-11-20 1989-05-26 Nippon Telegr & Teleph Corp <Ntt> 主記憶分散構成をもつ情報処理装置
JPH11110215A (ja) * 1997-10-03 1999-04-23 Keisuke Shindo マルチスレッドプログラムを使用する情報処理装置
JP2002268942A (ja) * 2001-03-13 2002-09-20 Toshiba Corp マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法
JP2003122729A (ja) * 2001-10-17 2003-04-25 Hitachi Ltd マルチノードシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012522280A (ja) * 2009-03-30 2012-09-20 日本電気株式会社 リングバスによって相互接続された複数の処理要素を有する単一命令多重データ(simd)プロセッサ

Also Published As

Publication number Publication date
US20150248353A1 (en) 2015-09-03
GB0418177D0 (en) 2004-09-15
US9836412B2 (en) 2017-12-05
US7890733B2 (en) 2011-02-15
US20110107058A1 (en) 2011-05-05
CN101006437A (zh) 2007-07-25
GB2417105B (en) 2008-04-09
US20090164752A1 (en) 2009-06-25
WO2006015868A3 (en) 2006-09-28
US9037836B2 (en) 2015-05-19
GB2417105A (en) 2006-02-15
WO2006015868A2 (en) 2006-02-16

Similar Documents

Publication Publication Date Title
JP2008509493A (ja) プロセッサメモリシステム
US10282338B1 (en) Configuring routing in mesh networks
US8050256B1 (en) Configuring routing in mesh networks
US8151088B1 (en) Configuring routing in mesh networks
US9934010B1 (en) Programming in a multiprocessor environment
US6363453B1 (en) Parallel processor with redundancy of processor pairs
JP6475625B2 (ja) コア間通信装置及び方法
US10394747B1 (en) Implementing hierarchical PCI express switch topology over coherent mesh interconnect
US6163829A (en) DSP interrupt control for handling multiple interrupts
US7958341B1 (en) Processing stream instruction in IC of mesh connected matrix of processors containing pipeline coupled switch transferring messages over consecutive cycles from one link to another link or memory
US7802025B2 (en) DMA engine for repeating communication patterns
US6678801B1 (en) DSP with distributed RAM structure
US9280513B1 (en) Matrix processor proxy systems and methods
JP2003178039A (ja) 分散共有仮想メモリーとその構成方法
US11036546B1 (en) Multi-threaded shared memory functional simulation of dataflow graph
EP1650667B1 (en) Apparatus for controlling a multi-processor system, scalable node, scalable multi-processor system, and method of controlling a multi-processor system
JP2008521131A (ja) マルチスレッド、マルチプロセシングのシステムオンチップ・ネットワーク・プロセッサ・ユニットのために拡張性があり、高機能で、大規模な相互接続スキーム
JP5158091B2 (ja) 自律または共通制御されるpeアレイを有するシステムのためのデータ転送ネットワークおよび制御装置
JPH0668053A (ja) 並列計算機
US7484052B2 (en) Distributed address arbitration scheme for symmetrical multiprocessor system
US8131975B1 (en) Matrix processor initialization systems and methods
US7870365B1 (en) Matrix of processors with data stream instruction execution pipeline coupled to data switch linking to neighbor units by non-contentious command channel / data channel
Tudruj et al. Dynamic SMP clusters with communication on the fly in NoC technology for very fine grain computations
US6393530B1 (en) Paging method for DSP
US7073004B2 (en) Method and data processing system for microprocessor communication in a cluster-based multi-processor network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091030

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100126

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100226

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100305

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100330

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100406

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100625