JP2008509493A - プロセッサメモリシステム - Google Patents
プロセッサメモリシステム Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 331
- 238000012545 processing Methods 0.000 claims abstract description 80
- 230000005540 biological transmission Effects 0.000 claims abstract description 29
- 238000012790 confirmation Methods 0.000 claims description 14
- 230000000694 effects Effects 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 6
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000000034 method Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 14
- 230000007246 mechanism Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000013507 mapping Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 102100034187 S-methyl-5'-thioadenosine phosphorylase Human genes 0.000 description 1
- 101710136206 S-methyl-5'-thioadenosine phosphorylase Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005577 local transmission Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3017—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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/8015—One dimensional arrays, e.g. rings, linear arrays, buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual 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
Description
本発明は、拡張された内部通信とメモリ配置を有する(例えば、データプロセッサなどの)プロセッサシステムに関するものである。
共有メモリを有するSIMDアーキテクチャを含む、様々な種類のアーキテクチャが、既に知られている。これらのいくつかについては、http://www.top.org/ORSC/2003/architecture.htmlに概要が示されている。特に、下記の二つの種類がある。
クラスタ化したマイクロアーキテクチャのための効率的な相互接続著者:ホアン・マニュエル パルセリサ(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
・複雑で、拡張性のないクロスバー又はマルチポートのメモリシステムを必要とする。
・メモリアクセスに関して、集中したアービトレーションを用いるため、遅延と複雑度が増す。
・許されるアクセスの種類に制限が加えられることがある。例えば、全てのPEが固定したオフセットでアクセスするなど。
・英国特許番号2348974(ロード/格納)、特許番号2348984(マルチタスク)、特許番号2348973(スコアボード)
・英国特許出願番号0321186.9(クリアコネクト)、出願番号0400893.4(マルチタスク)、出願番号0409815.3(統合SIMD)
好ましい実施例において、上記の問題点に着目し、本発明は、PEの全てのローカルメモリと、グローバル共有メモリとを含む単一の均一なアドレス空間を有する共有PEメモリを提供するものである。
一般論
好ましい実施例にあるように、本発明は、全システムの(外部メモリを含む)全てのメモリ素子に対して、利用可能なメモリ帯域とプロセッサ性能を最大化しながら、自然で一貫性をもつ方法でアクセスできるように、各SIMD処理素子(PE)に付属したメモリ素子を接続するものである。プロセッサアレイ中でPEを接続するネットワークは、新規な考え方ではないが、本発明は、発明を独自なものとするため、いくつかの有利な特徴を有している。
従来のSIMDプロセッサの概略を図1に示す。本図は、各PEにメモリが付属した、PEの配列である。命令をフェッチし、PE配列に命令を発行するコントローラも含まれている。本コントローラは、異なる種類の命令の実行を管理するための複数のユニットに、論理的に分割されている。例えば、アレイ制御ユニットは、演算および論理処理及びプログラム制御、並びに、レジスタ間でデータを交換するための命令など、PE内で全てが実行される命令を発行する。ロード/ストア(LS)ユニットは、PEとそれらのメモリとの間でデータを交換するための命令を発行する。入力/出力(I/O)ユニットは、プロセッサとの間でデータを交換するための命令を発行する。これらのユニットの各々は、PE配列内の異なるハードウェアを用いるため、各ユニットによって制御される操作は、同時に実行される。
図6に示すように、本発明の好ましい実施例では、双方向クリアコネクト“バス”(CCB)を用いる。しかし、単に、言葉の上で“バス”と称されるものよりも、このバスは、実質的に、データパケットを交換する相互接続されたネットワークとなっている。クリアコネクトバスの詳細は、出願人の英国特許出願0321186.9(英国特許番号2348974)に記載されている。“バス”に沿って、ノード2が配置されており、各PE1が、対応したメモリ3のブロックと、他のPEのメモリブロック又は他のメモリブロックによらず、他の各メモリブロックに接続されるようになっている。CCBの最終端のノード4は、外部インターフェース又は他のCCBネットワークに接続している。以上の全体構成を、図6に示す。
・モジュール構成となっており、任意の数のノードに対して拡張可能である。
・アドレスのデコード、ルーティング、アービトレーション、制御の全てが、分散しており、各ノードで、局所的に独立して行われる。
・モジュール構成により、各バスセグメントで発生する複数を並列して伝送することが可能である。
・さらに、各ノード内で、ノードを通る各経路が、並列伝送をサポートしている。
・バスは、ブロックされていない。すなわち、各ノードには、バッファリング機能が備えられており、常に、ノードがデータを受信できることが保証されている。
・データ到達性が保証されている。すなわち、データパケットが送信されたら、送信元に対し、データパケットが(最終的に)宛先に到達することが保証されている。
本セクションでは、いくつかの特定の操作について説明する。
共有書込みは、“送りっぱなし”又は非送りっぱなし(確認付き)操作のいずれかを用いる。送りっぱなし書込みとは、PEが、書込み処理が終了したことを確認する応答を待たないことである。すなわち、一旦、書込み処理がPE処理バッファを離れると、CCB上の活動のみがその処理の進行状態を示すものとなる。CCB上の全ての活動が終了すると、全ての書込みが終了する。
書込みに対して、書込みを確認する必要がある場合には、以下に示すような、読込みと同様の操作を行なう。書込みデータが送信された際でも、PEは、“トランザクション可能”フラグをクリアしない。書込み結果を戻すことができるように、始点となるPEのidが、処理パケット中に含まれている。データがメモリ中に書き込まれた際に、応答パケットが生成される(これは、読込み応答と同様の方法であるが、この読込み応答にはデータは含まれない)。PEは、結果パケットを受け取ると、トランザクション可能フラグを下げる。
PEは、SLSが発行する‘ブロック複写’コマンドを用いて、共有書込みのシーケンスを生成することが可能である。これにより、ベースレジスタとメモリのアドレスと、カウント値が与えられる。その後の操作により、連続したレジスタファイルと連続したメモリアドレスを用いて、ブロック操作を実現する。各PEは、トランザクションが発行される際に、その数をカウントし、所定の要求された数が送信されると、トランザクション可能フラグがクリアされる。ブロック中の全てのPEによる全ての書込みが終了するまで、SLSは動作を継続する。
また、共有書込み機構を用いて、PEからのデータを全てのメモリに書き込むことも可能である。特別な“ブロードキャスト”複数共有書込み処理が、全ての関与可能なPEから発行される。各PEは、異なるデータを、異なるメモリアドレスに対してブロードキャストすることが可能である。CCBは、このモードを検知し、各CCBノードにおいて、ローカルに付属したメモリにパケットを複写し、それを次のノードに伝送することにより、トランザクションを複製する。CCBの終端に到達したトランザクションがあれば、それは棄却されるか、他のプロセッサが接続されている場合には、そこへ伝送される。
共有読込みは、2つに分かれたフェーズからなるトランザクション操作を有している。読込みトランザクションフェーズは、メモリに向けられた要求を生成する。読込みトランザクションが到着すると、その要求の中に組み込まれた返送アドレスを用いて、その始点に返送される。従って、共有読込みの操作は、共有書込みのトランザクションよりも長く続く。
ブロードキャスト書込みと同様に、単一の読込み操作によって、全てのPEの同一のレジスタに、データを戻す。この場合、各CCBノードは、メモリアクセスから戻されたデータを複製し、このデータは全てのPEに複写される。
PEは、SLSによって与えられたブロック書込みコマンドにより、一連の共有読込みを生成する。SLSブロックコマンドは、ベースレジスタファイルとメモリのアドレスと、カウント値を与える。次に、ブロック操作のために、連続したレジスタファイルと連続したメモリアドレスを送出する操作を行う。PEは、全てのトランザクションが終了するまで、動作する。
上記と同一の基本的な機構を拡張することにより、外部メモリへのアクセスが可能となり、あるいは、異なるプロセッサのPE配列間でのアクセスが可能となる。外部装置は、適切なインターフェースを有するバスの終端ノード(CCBEN)を介して接続されている。配列中の任意のPEの指定範囲を超えるようなアドレスがあれば、それが実質的な終端ノードとなる。これらのアクセスは、同一のチップ上のメモリ/プロセッサに対するもの、あるいは、チップ外部の装置に対するものとなる。
上述したように、共有書込みは、“送りっぱなし”の形態で用いられる。すなわち、共有書込みのいずれかが、CCBENに対して送り出されるようにアドレス設定がなされた場合には、トランザクションは、バス上から実質的に消滅し、SLSから見て、書込みトランザクションは終了したと判断するような形態である。共有書込みをプロセッサに送ったならば、それ以降は、その活動についてフィードバックを必要としない形態である。
共有読込みは、2段階のトランザクションから構成されている。
トランザクションが、外部の始点(通常は、他のPE配列)からCCBENに到着すると、トランザクションが開始したことを表す信号が、SISに送られる。SLSは、トランザクションでアドレス指定されたPEメモリの読込み又は書込みに必要となる制御信号を生成する。読込みデータの返送トランザクションは、上述した方法により生成されるが、唯一違う点は、トランザクションの宛先は、配列の外部にあるという点である。バス上の全ての活動が終了すると、SLSは、停止する(すなわち、トランザクション可能PEは存在しなくなる)。
上述した内容は、本発明の主たる特徴を示すものであり、クレームは、本発明の必須要件を定義するものであるが、以下の利点と特徴に関するリストは、好ましい実施様態によって本発明を実現することができる重要な特徴の概要を示すものである。
・MTAPがマルチスレッド固有の特徴を有することにより、共有ロード/ストアの待ち時間を隠蔽できる。
・PEメモリのグローバル化と統一したアドレス方式により、プログラミングモデルを簡単化できる。
・プログラマにとって、全ての種類のメモリへのアクセスが統一的に行える。従って、バルクでオンチップ用途SRAMに対して、トランスペアレントな広帯域のトランザクションが可能となる。
・コンパイラに対して、様々なアドレス範囲と伝送の種類の、待ち時間に関する情報を与えられる。これにより、コンパイラが、(標準的な既知の方法を用いて)データ転送をスケジューリングし、最適化することが可能となる。
・PEメモリを仮想化することができる。すなわち、各PEに搭載された物理的なメモリ容量よりも大きな容量を有するが如くに扱える。
・プロセッサがトランスペアレントであるという性質が、異なるプロセッサのPE配列間のアクセスをサポートする。
・異なるPEとメモリとの間の伝送を(異なるノードの)バス上で同時に行えるため、自動的にメモリのトランザクション帯域を最大に生かすことができる。
・多対一及び一対多の(ブロードキャストのような)トランザクションが可能となる。
・トランザクションは、CCBの待ち行列に自然に入る。
・並列処理される共有ロード/ストア及び‘通常の’複数ロード/ストア並びにALU動作が提供されている。
・共有トランザクションは、多数回のサイクルを必要とするため、コンパイラは、事前にこれらをスケジューリングして、活動を重ね合わすことができる。
・メモリのブロックの、より効率的な区分けと、PEへの割当てが可能となる。
・CCBノードアドレスを変更し、冗長なPEを付加することにより、故障部分を修復することができる。
・メモリはキャッシュ機能を備えることができる。
Claims (43)
- マルチスレッドのコントローラと、複数の処理素子と、前記複数の処理素子の少なくとも一つに対してローカルに設けられたメモリ手段と、前記処理素子と前記メモリとを相互接続するデータパケット交換ネットワークであって、前記処理素子のいずれかをメモリ手段にアクセス可能とするデータパケット交換ネットワークと、スレッド交換が起こっているかもしれないことを、前記ネットワークの活動とは独立してコントローラに通知する手段とを含むことを特徴とするデータプロセッサ。
- 請求項1記載のデータプロセッサにおいて、前記メモリ手段は、前記各処理素子の一つに付属したローカルメモリを含み、ローカルメモリ1つ当たり処理素子1つを割当てたことを特徴とするデータプロセッサ。
- 請求項1又は2記載のデータプロセッサにおいて、各処理素子は、配列プロセッサ中の処理素子の配列の一つであることを特徴とするデータプロセッサ。
- 請求項3記載のデータプロセッサにおいて、前記プロセッサ配列は、単一命令多重データ処理(SIMD)プロセッサであることを特徴とするデータプロセッサ。
- 請求項1記載のデータプロセッサにおいて、前記メモリ手段は、複数の処理素子の間で共有される単一のローカルメモリを含むことを特徴とするデータプロセッサ。
- 請求項1から5のいずれかに記載のデータプロセッサにおいて、さらに、データパケット交換ネットワークにも接続された外部メモリを含み、外部メモリが前記処理素子のどれかから利用できるようになっていることを特徴とするデータプロセッサ。
- 請求項1から6のいずれかに記載のデータプロセッサにおいて、前記パケット交換ネットワークは、複数のノードを含み、各ノードは、各処理素子と、前記メモリ手段に接続された少なくとも一つのノードとに接続されていることを特徴とするデータプロセッサ。
- 請求項7記載のデータプロセッサにおいて、前記ノードは、線形ネットワークで接続されていることを特徴とするデータプロセッサ。
- 請求項7記載のデータプロセッサにおいて、前記ノードは、格子を構成する配列状で接続されていることを特徴とするデータプロセッサ。
- 請求項1から9のいずれかに記載のデータプロセッサにおいて、前記パケット交換ネットワークは、前記処理素子と前記メモリ手段との間の複数の並列伝送をサポートするように構成されていることを特徴とするデータプロセッサ。
- 請求項7記載のデータプロセッサにおいて、前記ノードは、前記コントローラに接続されており、前記処理素子に対して命令を発行し、前記メモリ手段に対してメモリ制御信号を発行するように構成されていることを特徴とするデータプロセッサ。
- 請求項11記載のデータプロセッサにおいて、さらに、前記コントローラへの通信のために、各処理素子からの状態信号を組合せ、各ノードからの状態信号を組み合わせる手段を含むことを特徴とするデータプロセッサ。
- 請求項6に従属した場合の請求項7記載のデータプロセッサにおいて、前記パケット交換ネットワークの前記ノードの一つは、前記ノードのいずれかと前記外部メモリとの間のインターフェース。
- 請求項2記載のデータプロセッサにおいて、前記ローカルメモリ手段は、処理素子のいずれかによるアクセスのために、単一のメモリマップ又はメモリ空間に現れることを特徴とするデータプロセッサ。
- 請求項14及び6記載のデータプロセッサにおいて、前記外部メモリもまた、処理素子のいずれかによるアクセスのために、単一のメモリマップ又はメモリ空間に現れることを特徴とするデータプロセッサ。
- 請求項14又は15記載のデータプロセッサにおいて、さらに、少なくとも一つ別のデータプロセッサを含み、前記別のデータプロセッサの各々は、各メモリ手段を有し、各前記メモリ手段は、前記データプロセッサの前記メモリ手段と同一のメモリマップ又はメモリ空間に現れることを特徴とするデータプロセッサ。
- 請求項14から16のいずれかに記載のデータプロセッサにおいて、前記メモリ手段は、前記メモリマップ又はメモリ空間の連続したアドレス範囲にマッピングされることを特徴とするデータプロセッサ。
- 請求項14から17のいずれかに記載のデータプロセッサにおいて、前記メモリ手段は、各処理素子が、付属している物理的なメモリよりも大容量のローカルメモリを有するかのように見えるように、前記メモリマップ又はメモリ空間の不連続のアドレス範囲にマッピングされることを特徴とし、付加されたメモリは、前記外部メモリの位置に設けられることを特徴とするデータプロセッサ。
- 請求項14から17のいずれかに記載のデータプロセッサにおいて、前記メモリマップ又はメモリ空間内の各アドレスは、少なくとも各処理素子の識別番号と、各ローカルメモリ内のアドレスとを組み合せることにより決定されることを特徴とするデータプロセッサ。
- 請求項16及び19に記載のデータプロセッサにおいて、各アドレスは、さらに、各別のデータプロセッサの識別番号により決定されることを特徴とするデータプロセッサ。
- 請求項1から20のいずれかに記載のデータプロセッサにおいて、前記メモリ手段の少なくとも一部は、さらに、データパケット交換ネットワークにも接続されたキャッシュメモリを含み、キャッシュメモリが前記処理要素のいずれかに利用可能とされていることを特徴とするデータプロセッサ。
- 請求項1から21のいずれかに記載のデータプロセッサにおいて、前記プロセッサは、少なくとも一つの他の命令を実行している間に、一つあるいはそれ以上の数の命令を発行するように構成され、命令の変化する待ち時間がユーザに対して隠蔽されていることを特徴とするデータプロセッサ。
- 請求項1から22のいずれかに記載のデータプロセッサにおいて、前記プロセッサは、少なくとも一つの他の命令を実行している間に、一つあるいはそれ以上の数の命令を発行するように構成され、トランザクションの変化する待ち時間がユーザに対して隠蔽されていることを特徴とするデータプロセッサ。
- 請求項11記載のデータプロセッサにおいて、前記コントローラは、他の操作と独立、並行して、メモリアクセス操作を実行するように構成されていることを特徴とするデータプロセッサ。
- 請求項22記載のデータプロセッサにおいて、前記プロセッサは、前記コントローラから前記メモリ手段に送られた制御信号に応じて、前記メモリ手段に格納されたデータへのメモリアクセスを実行するように構成され、前記アクセスは、対応するノードからトランザクションを受信した前記メモリ手段のブロックに対してのみ可能であることを特徴とするデータプロセッサ。
- 請求項12記載のデータプロセッサにおいて、各処理素子は、処理素子がメモリアクセスに関与していることを示すフラグを設定、保持するように構成され、前記状態信号は、フラグから生成され、コントローラに送られ、フラグは、メモリアクセスが終了した時点で解除されることを特徴とするデータプロセッサ。
- 請求項12又は26に記載のデータプロセッサにおいて、ノードは、ノードがトランザクションに関与していることを示すフラグを設定、保持するように構成され、前記状態信号は、フラグから生成され、コントローラに送られ、フラグは、トランザクションが終了した時点で解除されることを特徴とするデータプロセッサ。
- 請求項25記載のデータプロセッサにおいて、前記プロセッサは、前記制御信号を発行し、システムクロックの1サイクルに一度、前記メモリアクセスを実行するように構成されていることを特徴とするデータプロセッサ。
- 請求項25記載のデータプロセッサにおいて、前記プロセッサは、各トランザクションパケットが、その宛先メモリに到着するまで待機し、その後、メモリ制御信号を一度だけ発行するように構成されていることを特徴とするデータプロセッサ。
- 請求項25記載のデータプロセッサにおいて、前記プロセッサは、全てのトランザクションパケットが、その宛先メモリに到着するまで待機し、その後、メモリ制御信号を一度だけ発行するように構成されていることを特徴とするデータプロセッサ。
- 請求項25記載のデータプロセッサにおいて、前記プロセッサは、複数のメモリアクセスをまとめておき、前記メモリアクセスのまとまりを同時に実行するように構成されていることを特徴とするデータプロセッサ。
- 請求項28から31のいずれかに記載のデータプロセッサにおいて、前記メモリアクセスは、書込みトランザクションが終了したことの確認を処理素子が待たないような、送りっぱなしの書込み操作であることを特徴とするデータプロセッサ。
- 請求項28から31のいずれかに記載のデータプロセッサにおいて、前記メモリアクセスは、書込み操作が終了した際に確認パケットが生成され、それが要求元の処理素子に返送されるような、確認付き書き込み操作であることであることを特徴とするデータプロセッサ。
- 請求項28から31のいずれかに記載のデータプロセッサにおいて、前記メモリアクセスは、トランザクション可能となっている処理素子から読込みトランザクションが起動され、データがメモリ位置から読み出され、各ノードで複製された後に、各処理素子のレジスタファイルに入力されるような、ブロードキャスト読込みであることを特徴とするデータプロセッサ。
- 請求項28から31のいずれかに記載のデータプロセッサにおいて、前記メモリアクセスは、メモリアドレスとカウント値を含むブロック複写コマンドがコントローラにより生成されたことに応じ、各処理素子が書込み操作のシーケンスを生成するように構成され、ブロック内の全ての書込み操作を終了させることが可能となるような、ブロック書込みであることを特徴とするデータプロセッサ。
- 請求項28から31のいずれかに記載のデータプロセッサにおいて、前記メモリアクセスは、メモリアドレスとカウント値を含むブロック読込みコマンドがコントローラにより生成されたことに応じ、各処理素子が読込み操作のシーケンスを生成するように構成され、ブロック内の全ての読込み操作を終了させることが可能となるような、ブロック読込みであることを特徴とするデータプロセッサ。
- 請求項28から31のいずれかに記載のデータプロセッサにおいて、前記メモリアクセスは、トランザクション可能となっている処理素子から書込みトランザクションが起動され、データが各ノードで複製され、各処理素子のローカルメモリに複写されるような、ブロードキャスト書込みであることを特徴とするデータプロセッサ。
- 請求項1記載のデータプロセッサにおいて、コントローラに示す前記手段は、処理素子に共通で、ネットワーク上の活動が停止した際にコントローラに通知するように構成された共有ロード/ストアユニットを含むことを特徴とするデータプロセッサ。
- 請求項38記載のデータプロセッサにおいて、さらに、ネットワークから離れ、ネットワークに戻るトランザクション数を数え続ける計数手段を含むことを特徴とするデータプロセッサ。
- 請求項39記載のデータプロセッサにおいて、計数手段は、前記パケット交換ネットワーク内の終端ノードを含み、前記終端ノードは、ネットワークから離れ、ネットワークに戻るトランザクション数を数え続けるように構成されていることを特徴とするデータプロセッサ。
- 請求項40記載のデータプロセッサにおいて、前記終端ノードは、ネットワークを離れるトランザクション数と、ネットワークに戻るトランザクション数とを比較し、ネットワークから離れ、ネットワークに戻る全てのトランザクションが終了したことを共有ロード/ストアユニットに通知するように構成されていることを特徴とするデータプロセッサ。
- 請求項41記載のデータプロセッサにおいて、前記共有ロード/ストアユニットは、前記終端ノードからの前記通知に応じて、ネットワーク上の活動が終了したことをコントローラに対して通知することを特徴とするデータプロセッサ。
- 添付図面中で実質的に記述されているデータプロセッサ。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012522280A (ja) * | 2009-03-30 | 2012-09-20 | 日本電気株式会社 | リングバスによって相互接続された複数の処理要素を有する単一命令多重データ(simd)プロセッサ |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2417105B (en) * | 2004-08-13 | 2008-04-09 | Clearspeed Technology Plc | Processor memory system |
JP4893621B2 (ja) * | 2005-05-20 | 2012-03-07 | ソニー株式会社 | 信号処理装置 |
JP2008097498A (ja) * | 2006-10-16 | 2008-04-24 | Olympus Corp | プロセッシング・エレメント、コントロール・ユニット、及びこれらを備える処理システム、分散処理方法 |
US20090300324A1 (en) * | 2007-01-19 | 2009-12-03 | Nec Corporation | Array type processor and data processing system |
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型マイクロプロセッサの制御方法 |
WO2009118731A2 (en) | 2008-03-27 | 2009-10-01 | Rocketick Technologies Ltd | Design 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 |
WO2010060243A1 (en) * | 2008-11-28 | 2010-06-03 | Siemens Aktiengesellschaft | Automatic control system and method for executing control program in parallel |
KR101553648B1 (ko) | 2009-02-13 | 2015-09-17 | 삼성전자 주식회사 | 재구성 가능한 구조의 프로세서 |
WO2010113340A1 (en) * | 2009-03-30 | 2010-10-07 | Nec Corporation | Single instruction multiple data (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 | 中兴通讯股份有限公司 | 数据包缓存管理方法和设备 |
JP5829331B2 (ja) * | 2011-09-27 | 2015-12-09 | ルネサスエレクトロニクス株式会社 | Simdプロセッサシステムにおいて複数の対象領域(roi)を同時並列的にデータ転送するための装置 |
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 | 珠海市芯动力科技有限公司 | 可重构并行处理 |
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 |
US10990326B2 (en) | 2017-05-31 | 2021-04-27 | Fmad Engineering Kabushiki Gaisha | High-speed replay of captured data packets |
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 |
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 |
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 |
US11175924B2 (en) | 2017-10-06 | 2021-11-16 | International Business Machines Corporation | Load-store unit with partitioned reorder queues with single cam port |
US10606590B2 (en) | 2017-10-06 | 2020-03-31 | International Business Machines Corporation | Effective address based load store unit in out of order processors |
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 |
US11436143B2 (en) * | 2017-12-22 | 2022-09-06 | Alibaba Group Holding Limited | Unified memory organization for neural network processors |
US10922258B2 (en) * | 2017-12-22 | 2021-02-16 | Alibaba Group Holding Limited | Centralized-distributed mixed organization of shared memory for neural network processing |
US20190228308A1 (en) * | 2018-01-24 | 2019-07-25 | Alibaba Group Holding Limited | 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 |
CN112967172A (zh) * | 2021-02-26 | 2021-06-15 | 成都商汤科技有限公司 | 一种数据处理装置、方法、计算机设备及存储介质 |
US20220318137A1 (en) * | 2021-03-30 | 2022-10-06 | Ati Technologies Ulc | Method and system for sharing memory |
CN116089843B (zh) * | 2023-04-10 | 2023-09-08 | 国网浙江省电力有限公司 | 一种基于数据聚类的新能源结算数据异常检测与预警方法 |
Citations (6)
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)
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 |
GB2391093B (en) | 1999-04-09 | 2004-04-07 | Clearspeed Technology Ltd | Parallel data processing systems |
GB2348974B (en) | 1999-04-09 | 2004-05-12 | Pixelfusion Ltd | Parallel data processing systems |
GB2348984B (en) | 1999-04-09 | 2004-05-12 | Pixelfusion Ltd | Parallel data processing systems |
JP5285828B2 (ja) * | 1999-04-09 | 2013-09-11 | ラムバス・インコーポレーテッド | 並列データ処理装置 |
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 |
US7290162B2 (en) | 2001-02-14 | 2007-10-30 | Clearspeed Solutions Limited | Clock distribution system |
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 |
-
2004
- 2004-08-13 GB GB0418177A patent/GB2417105B/en active Active
-
2005
- 2005-08-11 WO PCT/EP2005/008759 patent/WO2006015868A2/en active Application Filing
- 2005-08-11 CN CNA200580027473XA patent/CN101006437A/zh active Pending
- 2005-08-11 JP JP2007525262A patent/JP2008509493A/ja active Pending
- 2005-08-11 US US11/573,556 patent/US7890733B2/en not_active Expired - Fee Related
-
2011
- 2011-01-11 US US13/004,548 patent/US9037836B2/en active Active
-
2015
- 2015-05-08 US US14/707,166 patent/US9836412B2/en active Active
Patent Citations (6)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012522280A (ja) * | 2009-03-30 | 2012-09-20 | 日本電気株式会社 | リングバスによって相互接続された複数の処理要素を有する単一命令多重データ(simd)プロセッサ |
Also Published As
Publication number | Publication date |
---|---|
US9037836B2 (en) | 2015-05-19 |
WO2006015868A2 (en) | 2006-02-16 |
CN101006437A (zh) | 2007-07-25 |
WO2006015868A3 (en) | 2006-09-28 |
US20150248353A1 (en) | 2015-09-03 |
US9836412B2 (en) | 2017-12-05 |
GB2417105A (en) | 2006-02-15 |
US20110107058A1 (en) | 2011-05-05 |
US20090164752A1 (en) | 2009-06-25 |
GB2417105B (en) | 2008-04-09 |
US7890733B2 (en) | 2011-02-15 |
GB0418177D0 (en) | 2004-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008509493A (ja) | プロセッサメモリシステム | |
US9384165B1 (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) | コア間通信装置及び方法 | |
US6163829A (en) | DSP interrupt control for handling multiple interrupts | |
US10394747B1 (en) | Implementing hierarchical PCI express switch topology over coherent mesh interconnect | |
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) | 分散共有仮想メモリーとその構成方法 | |
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) | マルチスレッド、マルチプロセシングのシステムオンチップ・ネットワーク・プロセッサ・ユニットのために拡張性があり、高機能で、大規模な相互接続スキーム | |
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 | |
US6393530B1 (en) | Paging method for DSP | |
US7073004B2 (en) | Method and data processing system for microprocessor communication in a cluster-based multi-processor network | |
US7788466B2 (en) | Integrated circuit with a plurality of communicating digital signal processors | |
US20020087821A1 (en) | VLIW computer processing architecture with on-chip DRAM usable as physical memory or cache memory | |
Tudruj et al. | Communication on the fly for hierarchical systems of chip multi-processors |
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 |