JP6797879B2 - 命令セット - Google Patents
命令セット Download PDFInfo
- Publication number
- JP6797879B2 JP6797879B2 JP2018197183A JP2018197183A JP6797879B2 JP 6797879 B2 JP6797879 B2 JP 6797879B2 JP 2018197183 A JP2018197183 A JP 2018197183A JP 2018197183 A JP2018197183 A JP 2018197183A JP 6797879 B2 JP6797879 B2 JP 6797879B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- processing unit
- data
- computer program
- tile
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 claims description 138
- 230000006870 function Effects 0.000 claims description 89
- 230000015654 memory Effects 0.000 claims description 73
- 230000005540 biological transmission Effects 0.000 claims description 58
- 238000004364 calculation method Methods 0.000 claims description 39
- 238000004590 computer program Methods 0.000 claims description 38
- 239000004744 fabric Substances 0.000 claims description 34
- 238000013500 data storage Methods 0.000 claims description 16
- 238000000034 method Methods 0.000 description 28
- 230000001360 synchronised effect Effects 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 14
- 230000004888 barrier function Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 238000007562 laser obscuration time method Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000007616 round robin method Methods 0.000 description 1
- 230000013707 sensory perception of sound Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/17306—Intercommunication techniques
- G06F15/17312—Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
-
- 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/17306—Intercommunication techniques
- G06F15/17325—Synchronisation; Hardware support therefor
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/456—Parallelism detection
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition code generation, e.g. Carry, Zero flag
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- 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
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Devices For Executing Special Programs (AREA)
- Multi Processors (AREA)
- Executing Machine-Instructions (AREA)
Description
宛先識別子を持たないが所定の送信時間に送信される受信側処理ユニット宛てのデータパケットを、その処理ユニットに接続された1組の接続ワイヤで送信させる送信機能と、
実行されると、その処理ユニットにスイッチング回路を制御させて、所定の受信時間にデータパケットを受信するために処理ユニットの1組の接続ワイヤをスイッチングファブリックに接続させる切り替え制御機能と、を実装する。
一連の実行可能命令を含む各処理ユニット用のローカルプログラムを生成することと、
各処理ユニットについて、各ローカルプログラムの命令の実行の相対時間を決定することと、を含み、これにより、1つの処理ユニットに割り当てられたローカルプログラムは、宛先識別子はないが受信側処理ユニットに宛てられた少なくとも1つのデータパケットを、同期信号に対して所定の遅延をもって、所定の送信時間に送信するための送信命令を実行するようにスケジュールされ、受信側処理ユニットに割り当てられたローカルプログラムは、受信時にそのデータパケットを受信するために、その処理ユニットワイヤをスイッチングファブリックに接続するようにスイッチング回路を制御するための切り替え制御命令を、所定の切り替え時間に実行するようにスケジュールされる。
このコンパイラは、コンピュータ化機能を表す固定グラフ構造と、コンピュータ化機能を表す固定グラフ構造と、所定の送信時間及び所定の切り替え時間を各処理ユニットについて決定できるようにする遅延を保持するテーブルとを受信するように接続される。
一連の実行可能命令を含む各処理ユニット用のローカルプログラムを生成することと、
各処理ユニットについて、各ローカルプログラムの命令の実行の相対時間を決定することと、を含み、これにより、1つの処理ユニットに割り当てられたローカルプログラムは、宛先識別子はないが受信側処理ユニットに宛てられた少なくとも1つのデータパケットを、同期信号に対して所定の遅延をもって、所定の送信時間に送信するための送信命令を実行するようにスケジュールされ、受信側処理ユニットに割り当てられたローカルプログラムは、受信時にそのデータパケットを受信するために、その処理ユニットワイヤをスイッチングファブリックに接続するようにスイッチング回路を制御するための切り替え制御命令を、所定の切り替え時間に実行するようにスケジュールされる。
RUN task_addr, data_addr
EXIT exit_state
SYNCmode//mode∈{tile,chip,zone_1,zone_2}
選択は交換段階内でサイクルごとに変わる可能性があり、ずっと一定である必要はない。選択されたリンクに応じて、データはチップ上で、又はチップからチップへ、又はチップからホストへと交換され得る。本願は、主にチップ上のタイル間通信に関する。チップ上で同期を実行するために、少数のパイプライン信号がチップ上の同期コントローラ36に供給され、パイプライン同期肯定応答信号が同期コントローラからすべてのタイルにブロードキャスト(broadcast)される。一実施形態では、パイプライン信号は、1ビット幅のデイジーチェーンのAND/OR信号である。タイル間の同期が達成される1つのメカニズムは、上述した又は以下に説明するSYNC命令である。他のメカニズムを利用してもよい。重要なのは、すべてのタイルをチップの計算段階とチップの交換段階の間で同期できることである(図3)。SYNC命令は、タイル4上の専用同期ロジック内及び同期コントローラ36内でトリガされるべき以下の機能をトリガする。同期コントローラ36は、ハードウェア相互接続部34内に、又は図示のように別個のオンチップモジュール内に実装することができる。タイル上同期ロジック(on-tile sync logic)及び同期コントローラ36の両方のこの機能は、SYNCチップが実行されると残りの機能がこれを実行するための追加命令が実行されることなく進むように、専用のハードウェア回路で実装される。
スイッチングファブリック34からタイル4へデータを渡すexinインターフェース224と、
ブロードキャスト交換バス218を介してデータをタイルからスイッチングファブリックに渡すexoutインターフェース226と、
制御マルチプレクサ信号214(mux−select)をタイル4からそのマルチプレクサ210に渡すexmuxインターフェース228と、がある。
TIDは、後述するTILE_IDレジスタに保持されているタイル識別子である。これは、各タイルが最も早い受信タイルに対して同期コントローラ36からack信号をいつ受信するかを示す、常に0個以上の複数のサイクル数である。これは、タイルIDから計算することができ、そのタイルIDはそのタイルのチップ上の特定の位置を示し、したがって物理的距離を反映するものである。 図4は、1つの送信タイル4Tと1つの受信タイル4Rを示す。概略的にのみ示し、縮尺通りではないが、タイル4Tは同期コントローラにより近く示され、タイル4Rはより遠くに示されているので、同期確認遅延(sync acknowledgement delay)はタイル4Rに対するよりもタイル4Tに対してより短くなる。この同期確認遅延について、特定の値が各タイルに紐付けられる。これらの値は、例えば遅延テーブルに保持することができ、あるいはタイルIDに基づいて毎回その場で計算することができる。
これは、タイルの入力マルチプレクサの選択を変更する命令(PUTi−MUXptr)を発行してから、その新たなマルチプレクサの選択の結果としてメモリに格納された交換データのために同じタイルが(仮想)ロード命令を発行することができる最も早い時点までのサイクル数である。図4を見ると、この遅延は、受信側タイル4Rのexmuxインターフェース228Rからそのマルチプレクサ210Rに到達する制御信号の遅延と、マルチプレクサの出力からデータexinインターフェース224までのラインの長さとを含む。
これは、1つのタイルでSEND命令が発行されてから、受信側のタイルがそれ自体のメモリ内の送信値を指す(仮想)ロード命令を発行することができる最も早い時点までのサイクル数である。これは、既に説明したようにテーブルにアクセスすることによって、又は計算によって、送信側タイル及び受信側タイルのタイルIDから決定されている。再び図4を見ると、この遅延は、データが、交換ファブリック218Tに沿ってそのex_outインターフェース226Tからスイッチングファブリック34に、次いで受信タイル4Rのex_inにて入力マルチプレクサ210Rから受信タイルのインターフェース224Rまで、送信タイル4Tから移動するのにかかる時間を含む。
これは、タイルの交換入力トラフィックメモリポインタを変更する命令(PUTi−MEMptr)を発行してから、その新たなポインタの結果としてその同じタイルがメモリに記憶された交換データの(仮想)ロード命令を発行できる最短時点までのサイクル数である。これは、小さな固定数のサイクルである。このメモリポインタを、まだ議論していないが、図2に参照符号232として示す。これは、データメモリ202へのポインタとして機能し、ex_inインターフェース224から入ってくるデータがどこに記憶されるべきかを示す。これについては後で詳しく説明する。
・特定アドレスからの送信
・着信マルチプレクサの更新
・着信アドレスの更新
を許可する。
Claims (18)
- コンピュータプログラムであって、前記コンピュータプログラムを保持する命令ストレージと、前記コンピュータプログラムを実行するための実行装置と、データを保持するためのデータストレージとを有する処理ユニット上で実行するための一連の命令を含み、さらに、実行されると、
宛先識別子を持たずに所定の送信時間に送信される、受信側処理ユニット宛のデータパケットを、前記処理ユニットに接続された1組の接続ワイヤで送信させる送信機能と、
所定の受信時間にデータパケットを受信するために、前記処理ユニットにスイッチング回路を制御させて前記処理ユニットの1組の接続ワイヤをスイッチングファブリックに接続させる切り替え制御機能と、
を実装する1つ又は複数のコンピュータ実行可能命令を含む、コンピュータプログラム。 - 前記1つ又は複数の命令は、切り替え制御命令と、前記データパケットがそこから送信されるべき命令ストレージ内の位置を定義する送信アドレスを定義する送信命令とを含む、請求項1に記載のコンピュータプログラム。
- 前記送信命令は、送信されるべきいくつかのデータパケットを定義し、各パケットは異なる所定の送信時間に紐付けられる、請求項2に記載のコンピュータプログラム。
- 前記送信命令は送信アドレスを明示的には定義しないが、送信アドレスが保持されるレジスタを暗黙的に定義する、請求項2に記載のコンピュータプログラム。
- 暗黙的に定義されたレジスタ内の送信アドレスを更新するためのさらなる命令を含む、請求項4に記載のコンピュータプログラム。
- 少なくとも1つのさらなる命令が、前記処理ユニットで受信された前記データパケットを格納するために前記データストレージ内のメモリ位置を識別するメモリポインタを更新するメモリポインタ更新機能を定義する、請求項1〜5のいずれか1項に記載のコンピュータプログラム。
- 前記1つ又は複数の命令が、単一の実行サイクルで前記送信機能及び前記切り替え制御機能をマージするマージ命令であり、前記処理ユニットは、データパケットを送信し、異なるデータパケットを別の処理ユニットから受信するためにそのスイッチング回路を制御するように動作するように構成される、請求項1に記載のコンピュータプログラム。
- 前記少なくとも1つのさらなる命令が、前記送信機能及び前記メモリポインタ更新機能をマージするマージ命令である、請求項6に記載のコンピュータプログラム。
- 前記マージ命令は一般的フォーマットで構成されており、該フォーマットが送信機能を前記メモリポインタ更新機能又は前記切り替え制御機能とマージするかどうかを指定するオペコード部分を有する、請求項6又は8に記載のコンピュータプログラム。
- 前記1つ又は複数の命令が、単一の実行サイクルで前記送信機能、切り替え制御機能、及びメモリポインタ更新機能をマージする単一命令である、請求項6に記載のコンピュータプログラム。
- 各1つ又は複数の命令が、実行ユニットのフェッチステージのビット幅と一致する第1のビット幅を有する、請求項1〜10のいずれか1項に記載のコンピュータプログラム。
- 各1つ又は複数の命令が、実行ユニットのフェッチステージのビット幅と一致する第1のビット幅を有し、
前記送信機能、切り替え制御機能及びメモリポインタ更新機能をマージする前記命令は、前記実行ユニットの前記フェッチステージの前記ビット幅の2倍である第2のビット幅を有する、請求項10に記載のコンピュータプログラム。 - 各1つ又は複数の命令は、実行ユニットのフェッチステージのビット幅と一致する第1のビット幅を有し、
前記第1のビット幅の命令は、前記第1のビット幅のオペランドを識別し、前記オペランドは前記切り替え制御機能とメモリポインタ更新機能とを実装する、請求項10に記載のコンピュータプログラム。 - 前記処理ユニットの計算段階が完了したときに指示を生成する同期命令を含む、請求項1〜13のいずれか1項に記載のコンピュータプログラム。
- 送信不可能なコンピュータ可読媒体に記録されている、請求項1〜14のいずれか1項に記載のコンピュータプログラム。
- 送信可能な信号の形態である、請求項1〜15のいずれか1項に記載のコンピュータプログラム。
- 命令ストレージと、コンピュータプログラムを実行するように構成された実行ユニットと、データを保持するデータストレージとを含む処理ユニットであって、前記命令ストレージが、1つ又は複数のコンピュータ実行可能命令を含むコンピュータプログラムを保持し、前記命令が、前記実行ユニットによって実行されると、
宛先識別子を持たずに所定の送信時間に送信される、受信側処理ユニット宛のデータパケットを、前記処理ユニットに接続された1組の接続ワイヤで送信させる送信機能と、
所定の受信時間にデータパケットを受信するために、前記処理ユニットにスイッチング回路を制御させて前記処理ユニットの1組の接続ワイヤをスイッチングファブリックに接続させる切り替え制御機能と、
を実装する処理ユニット。 - 1つ又は複数のダイを統合パッケージに含むコンピュータであって、複数の処理ユニットを含み、各処理ユニットは、コンピュータプログラムを保持する命令ストレージと、前記コンピュータプログラムを実行するように構成された実行装置と、データを保持するデータストレージとを含み、 前記各処理ユニット用の命令記憶装置は、1つ又は複数のコンピュータ実行可能命令を含むコンピュータプログラムを保持し、前記命令は実行されると、
宛先識別子を持たずに所定の送信時間に送信される、受信側処理ユニット宛のデータパケットを、前記処理ユニットに接続された1組の接続ワイヤで送信させる送信機能と、
所定の受信時間にデータパケットを受信するために、前記処理ユニットにスイッチング回路を制御させて前記処理ユニットの1組の接続ワイヤをスイッチングファブリックに接続させる切り替え制御機能と、
を実装する、コンピュータ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1717299.0A GB2569275B (en) | 2017-10-20 | 2017-10-20 | Time deterministic exchange |
GB1717299.0 | 2017-10-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019079525A JP2019079525A (ja) | 2019-05-23 |
JP6797879B2 true JP6797879B2 (ja) | 2020-12-09 |
Family
ID=60481878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018197183A Active JP6797879B2 (ja) | 2017-10-20 | 2018-10-19 | 命令セット |
Country Status (8)
Country | Link |
---|---|
US (2) | US11321272B2 (ja) |
EP (1) | EP3474152B1 (ja) |
JP (1) | JP6797879B2 (ja) |
KR (1) | KR102178190B1 (ja) |
CN (1) | CN109697082B (ja) |
CA (1) | CA3021414C (ja) |
GB (1) | GB2569275B (ja) |
TW (1) | TWI713913B (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2580165B (en) | 2018-12-21 | 2021-02-24 | Graphcore Ltd | Data exchange in a computer with predetermined delay |
GB201904263D0 (en) | 2019-03-27 | 2019-05-08 | Graphcore Ltd | A networked computer |
US11704270B2 (en) | 2019-03-27 | 2023-07-18 | Graphcore Limited | Networked computer with multiple embedded rings |
GB201904265D0 (en) | 2019-03-27 | 2019-05-08 | Graphcore Ltd | A partitionable networked computer |
GB201904266D0 (en) | 2019-03-27 | 2019-05-08 | Graphcore Ltd | A networked computer with embedded rings |
GB201904267D0 (en) | 2019-03-27 | 2019-05-08 | Graphcore Ltd | A networked computer with multiple embedded rings |
KR20220006122A (ko) | 2020-03-26 | 2022-01-14 | 그래프코어 리미티드 | 토로이드 컴퓨터 네트워크에 대한 링 임베딩 |
GB202010839D0 (en) * | 2020-07-14 | 2020-08-26 | Graphcore Ltd | Variable allocation |
US11070621B1 (en) * | 2020-07-21 | 2021-07-20 | Cisco Technology, Inc. | Reuse of execution environments while guaranteeing isolation in serverless computing |
CN113254376B (zh) * | 2021-06-09 | 2021-12-17 | 广州朗国电子科技股份有限公司 | 一种一体机兼容集控指令的处理方法、系统、设备、存储介质 |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5434861A (en) | 1989-02-02 | 1995-07-18 | Pritty; David | Deterministic timed bus access method |
US5734826A (en) | 1991-03-29 | 1998-03-31 | International Business Machines Corporation | Variable cyclic redundancy coding method and apparatus for use in a multistage network |
US5408646A (en) * | 1991-03-29 | 1995-04-18 | International Business Machines Corp. | Multipath torus switching apparatus |
KR100304063B1 (ko) | 1993-08-04 | 2001-11-22 | 썬 마이크로시스템즈, 인코포레이티드 | 2지점간상호접속통신유틸리티 |
GB2303274B (en) | 1995-07-11 | 1999-09-08 | Fujitsu Ltd | Switching apparatus |
US6128307A (en) * | 1997-12-01 | 2000-10-03 | Advanced Micro Devices, Inc. | Programmable data flow processor for performing data transfers |
US6876652B1 (en) * | 2000-05-20 | 2005-04-05 | Ciena Corporation | Network device with a distributed switch fabric timing system |
US20040172631A1 (en) | 2001-06-20 | 2004-09-02 | Howard James E | Concurrent-multitasking processor |
US7100021B1 (en) | 2001-10-16 | 2006-08-29 | Cisco Technology, Inc. | Barrier synchronization mechanism for processors of a systolic array |
US9479464B1 (en) * | 2002-08-27 | 2016-10-25 | Hewlett Packard Enterprise Development Lp | Computer system and network interface with hardware based packet filtering and classification |
US7894480B1 (en) * | 2002-08-27 | 2011-02-22 | Hewlett-Packard Company | Computer system and network interface with hardware based rule checking for embedded firewall |
JP2005032018A (ja) | 2003-07-04 | 2005-02-03 | Semiconductor Energy Lab Co Ltd | 遺伝的アルゴリズムを用いたマイクロプロセッサ |
CN1842770A (zh) * | 2003-08-28 | 2006-10-04 | 美普思科技有限公司 | 一种在处理器中挂起和释放执行过程中计算线程的整体机制 |
US7904905B2 (en) | 2003-11-14 | 2011-03-08 | Stmicroelectronics, Inc. | System and method for efficiently executing single program multiple data (SPMD) programs |
JP4204522B2 (ja) * | 2004-07-07 | 2009-01-07 | 株式会社東芝 | マイクロプロセッサ |
US7394288B1 (en) * | 2004-12-13 | 2008-07-01 | Massachusetts Institute Of Technology | Transferring data in a parallel processing environment |
US7818725B1 (en) | 2005-04-28 | 2010-10-19 | Massachusetts Institute Of Technology | Mapping communication in a parallel processing environment |
US7577820B1 (en) | 2006-04-14 | 2009-08-18 | Tilera Corporation | Managing data in a parallel processing environment |
US8194690B1 (en) * | 2006-05-24 | 2012-06-05 | Tilera Corporation | Packet processing in a parallel processing environment |
JP5055942B2 (ja) | 2006-10-16 | 2012-10-24 | 富士通株式会社 | 計算機クラスタ |
US7958333B2 (en) * | 2007-05-30 | 2011-06-07 | XMOS Ltd. | Processor with memory access stage adapted to fetch an instruction of a thread when no memory access operation is detected |
GB2471067B (en) | 2009-06-12 | 2011-11-30 | Graeme Roy Smith | Shared resource multi-thread array processor |
CN101667451B (zh) * | 2009-09-11 | 2012-05-09 | 西安电子科技大学 | 高速数据交换接口的数据缓存器及其数据缓存控制方法 |
GB201001621D0 (en) | 2010-02-01 | 2010-03-17 | Univ Catholique Louvain | A tile-based processor architecture model for high efficiency embedded homogenous multicore platforms |
US20110258421A1 (en) * | 2010-04-19 | 2011-10-20 | International Business Machines Corporation | Architecture Support for Debugging Multithreaded Code |
US8374182B2 (en) * | 2010-08-13 | 2013-02-12 | Juniper Networks, Inc. | Virtual local area network (VLAN)-based membership for multicast VLAN registration |
JP5568048B2 (ja) | 2011-04-04 | 2014-08-06 | 株式会社日立製作所 | 並列計算機システム、およびプログラム |
WO2012138950A2 (en) * | 2011-04-07 | 2012-10-11 | Via Technologies, Inc. | Conditional load instructions in an out-of-order execution microprocessor |
JP2013069189A (ja) | 2011-09-26 | 2013-04-18 | Hitachi Ltd | 並列分散処理方法および並列分散処理システム |
CN103186977B (zh) * | 2011-12-30 | 2016-02-03 | 无锡华润矽科微电子有限公司 | 微处理器中实现遥控信号发射指令控制的电路结构 |
US8990497B2 (en) | 2012-07-02 | 2015-03-24 | Grayskytech, LLC | Efficient memory management for parallel synchronous computing systems |
US9116738B2 (en) * | 2012-11-13 | 2015-08-25 | International Business Machines Corporation | Method and apparatus for efficient execution of concurrent processes on a multithreaded message passing system |
US9733847B2 (en) | 2014-06-02 | 2017-08-15 | Micron Technology, Inc. | Systems and methods for transmitting packets in a scalable memory system protocol |
GB2522290B (en) * | 2014-07-14 | 2015-12-09 | Imagination Tech Ltd | Running a 32-bit operating system on a 64-bit machine |
US20160164943A1 (en) | 2014-12-05 | 2016-06-09 | Qualcomm Incorporated | Transport interface for multimedia and file transport |
TWI580199B (zh) | 2015-12-18 | 2017-04-21 | 瑞昱半導體股份有限公司 | 接收裝置及其封包處理方法 |
JP6450330B2 (ja) | 2016-02-03 | 2019-01-09 | 日本電信電話株式会社 | 並列計算処理装置および並列計算処理方法 |
GB201717295D0 (en) * | 2017-10-20 | 2017-12-06 | Graphcore Ltd | Synchronization in a multi-tile processing array |
US10963003B2 (en) * | 2017-10-20 | 2021-03-30 | Graphcore Limited | Synchronization in a multi-tile processing array |
-
2017
- 2017-10-20 GB GB1717299.0A patent/GB2569275B/en active Active
-
2018
- 2018-02-01 US US15/886,131 patent/US11321272B2/en active Active
- 2018-10-12 EP EP18200107.3A patent/EP3474152B1/en active Active
- 2018-10-19 TW TW107136963A patent/TWI713913B/zh active
- 2018-10-19 CA CA3021414A patent/CA3021414C/en active Active
- 2018-10-19 JP JP2018197183A patent/JP6797879B2/ja active Active
- 2018-10-22 KR KR1020180126038A patent/KR102178190B1/ko active IP Right Grant
- 2018-10-22 CN CN201811228379.6A patent/CN109697082B/zh active Active
-
2022
- 2022-04-06 US US17/658,124 patent/US20220253399A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
GB2569275B (en) | 2020-06-03 |
US20220253399A1 (en) | 2022-08-11 |
CA3021414A1 (en) | 2019-04-20 |
EP3474152B1 (en) | 2024-01-31 |
GB201717299D0 (en) | 2017-12-06 |
US20190121777A1 (en) | 2019-04-25 |
KR102178190B1 (ko) | 2020-11-12 |
TW201923560A (zh) | 2019-06-16 |
CA3021414C (en) | 2021-08-10 |
US11321272B2 (en) | 2022-05-03 |
GB2569275A (en) | 2019-06-19 |
CN109697082B (zh) | 2023-07-14 |
CN109697082A (zh) | 2019-04-30 |
TWI713913B (zh) | 2020-12-21 |
EP3474152A1 (en) | 2019-04-24 |
JP2019079525A (ja) | 2019-05-23 |
KR20190044572A (ko) | 2019-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6797878B2 (ja) | コンパイル方法 | |
JP6797879B2 (ja) | 命令セット | |
JP6722251B2 (ja) | マルチタイル処理アレイにおける同期化 | |
US10963003B2 (en) | Synchronization in a multi-tile processing array | |
US11416440B2 (en) | Controlling timing in computer processing | |
US10817459B2 (en) | Direction indicator | |
US11176066B2 (en) | Scheduling messages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190218 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200218 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200514 |
|
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: 20201027 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201118 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6797879 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |