JP6317365B2 - 同期命令を含む処理システム - Google Patents
同期命令を含む処理システム Download PDFInfo
- Publication number
- JP6317365B2 JP6317365B2 JP2015546462A JP2015546462A JP6317365B2 JP 6317365 B2 JP6317365 B2 JP 6317365B2 JP 2015546462 A JP2015546462 A JP 2015546462A JP 2015546462 A JP2015546462 A JP 2015546462A JP 6317365 B2 JP6317365 B2 JP 6317365B2
- Authority
- JP
- Japan
- Prior art keywords
- synchronization
- controller
- processors
- processor
- adapter
- 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
Images
Classifications
-
- 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
-
- 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
- G06F9/522—Barrier synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
Description
ハードウェア設定プログラム−例えば集積回路などのハードウェアをプログラムするか設定するために使用できるバイナリイメージにコンパイルできるソーステキストからなるプログラム。
並列処理が可能なコンピュータシステムは、複数のデータ処理要素(PE)、支持メモリ(SM)ユニット、および帯域幅の広い相互接続ネットワーク(IN)で設定されて、個々のPE、SM、およびI/Oポートシステムどうしの間でデータを移動させることができる。そのようなシステムの第一IN(またはPIN)は、帯域幅が広く平均配信時間(待ち時間)が短くなるように最適化されてよい。しかしながら、PINは、確実に配信するようには最適化できない(メッセージは、「ビジー」信号になる他のメッセージをブロックできる)。その結果、PINは、PEのグループに対してタスクを同期させるのには適していないことがある。いくつかの実施形態では、同期化のためにコンピュータシステムに追加のネットワークを追加することができる。このようなネットワークにより、メッセージを確実に配信できるが、このネットワークにより、コンピュータシステムに対して複雑さ、電力消費、または物理的なサイズが加わることがある。図面に示し、以下に説明した実施形態は、並列処理要素をコンピュータシステム内で同期させると同時に、コンピュータシステムの複雑さ、電力消費、または物理的なサイズに対する影響を最小にする技術を提供できる。
旧式のマイクロプロセッサおよびデジタル信号プロセッサ(DSP)は、一度に1つのタスクを実行でき、これは一般に、以下のように実行スレッドと呼ばれる。プロセッサのIPUユニットからわかるように、実行スレッドは命令ストリームである。いくつかの実施形態では、命令ストリームに応答して結果の単一のストリームが生成される。この実行方式は一般に、Single Instruction Single Data(単一命令単一データ、SISD)と呼ばれる。他の実施形態では、複数の算術論理ユニット(ALU)を用いて、結果の複数のストリームを可能にすることができる。この実行方式は通常、Single Instruction Multiple Data(単一命令複数データ、SIMD)と呼ばれる。さらに大きいマイクロプロセッサおよびDSPは、SIMDの能力を有することがあり、様々な実施形態では、そのような並列処理を利用して性能を高めるために、ソフトウェアを用いてよい。例えば、SIMDを使用することによって、映像圧縮およびトランスコーディング、コンピュータビジョン、音声認識、および暗号化を加速できる。
マルチプロセッサシステムによってプログラマは、大型のタスクを、並列に実行できる複数の小さなタスクに分割できる。並列実行を利用して、時間を短縮して大型のタスクを完了するか、あるいは(プロセッサのクロック周波数を低減して)電力消費を削減することができる。クロック周波数が低減すれば、電源の電圧も低下してエネルギーを節約できる。
マルチプロセッシングにより、さらに多くのプログラム命令を同時に実行できる可能性があるが、マルチプロセッシングにより、効果的な通信および調整のために、小さいタスクを特定の境界で時間と空間の面で同期させる必要性が生じる可能性あがる。タスクがシステムクロック(クロックサイクルまたは省略して単に「サイクル」とも呼ばれる)の最小ティックで始まる場合、2つ以上のタスクが同期される。タスクの同期は、様々な実施形態では、サイクル数が少ない同期を実施するには困難なことがある。
同期<direction list>
であってよい。
Claims (15)
- 複数のプロセッサであって、前記複数のプロセッサの各プロセッサは、複数のプロセッサポートおよび1つの同期アダプタを備え、前記同期アダプタが複数のアダプタポートを備える、プロセッサと;
複数のコントローラであって、前記複数のコントローラの各コントローラは、複数のコントローラポートを備え、前記複数のコントローラポートの各コントローラポートは、前記複数のプロセッサのうちの隣接するプロセッサのアダプタポートに接続している、コントローラと;
を備えるシステムであって、
前記複数のプロセッサの各プロセッサは、
選択的に、1つ以上のアダプタポートを介して同期信号を前記複数のコントローラのそれぞれの1つ以上のコントローラに送信し;
1つ以上のコントローラからの応答に応じてプログラム命令の実行を停止する;
ように設定され、
前記複数のコントローラの各コントローラは、
前記複数のプロセッサのそれぞれの1つ以上のプロセッサから1つ以上の同期信号を受信し;
前記受信した1つ以上の同期信号に応じて前記複数のプロセッサの前記それぞれの1つ以上のプロセッサの各々に応答を送信するように設定される、システム。 - 前記複数のコントローラの各コントローラは、1つ以上の設定データビットを受信するように設定された設定ポートを備える、請求項1に記載のシステム。
- 前記それぞれの1つ以上のプロセッサの各々に前記応答を送信するために、前記複数のコントローラの各コントローラは、さらに、前記1つ以上の設定データビットに応じて前記それぞれの1つ以上のプロセッサに前記応答を送信するように設定される、請求項2に記載のシステム。
- 前記複数のコントローラの各コントローラは、レジスタを備える、請求項1に記載のシステム。
- 前記複数のコントローラの各コントローラに対する前記1つ以上の設定ビットは、各コントローラの前記レジスタに格納される、請求項4に記載のシステム。
- マルチプロセッサシステムを動作させるための方法であって、前記マルチプロセッサシステムは、複数のプロセッサおよび複数の同期コントローラを備え、前記複数のプロセッサの各プロセッサは、同期アダプタを備え、
1つ以上のグループのプロセッサの各グループは、前記複数のプロセッサのサブセットを備え、
前記方法は:
前記1つ以上のグループのプロセッサの所与のグループを特定し、前記所与のグループの各プロセッサのソフトウェア内に少なくとも1つの場所を特定して、同期バリアを挿入すること;
前記所与のグループの各プロセッサの各同期アダプタに接続している、前記複数の同期コントローラのうちの1つの同期コントローラを特定すること;
前記特定した同期コントローラに接続している各同期アダプタに向かう方向に応じて、前記特定した同期コントローラに対する設定データを決定し、前記設定データは、前記特定した同期コントローラと、前記所与のグループの選択されたプロセッサの前記同期アダプタとの間で複数の同期信号を伝送することを可能にすること;および
前記所与のグループの各プロセッサに対して、前記ソフトウェア内で前記特定した場所の各々に同期バリアを挿入し、各同期バリアは一連の1つ以上の同期命令を含み、各同期命令は1つ以上の引数を含み、前記1つ以上の引数の各引数は、前記所与のグループの各プロセッサの前記同期アダプタから、前記特定した同期コントローラの1つ以上の方向のうちの所与の1つを指定すること;
前記挿入した同期命令の所与の1つを実行している前記所与のグループの各プロセッサに応答して、前記所与のグループの各プロセッサの実行を停止することと;
前記所与のグループが前記挿入した同期命令の1つ1つを全プロセッサが実行したかどうかという判断に応答して、前記所与のグループの各プロセッサの実行を再開することとを含む、方法。 - 前記判断した設定データは、複数の設定データビットを備え、前記複数の設定データビットのそれぞれの組み合わせに対応する各データパターンは、前記特定した同期コントローラに接続しているプロセッサの前記所与のグループの所与のプロセッサの前記同期アダプタへ向かう方向に一致する、請求項6に記載の方法。
- 設定データを前記マルチプロセッサシステムにロードすることは、前記複数の設定データビットを前記特定した同期コントローラのレジスタに格納することを含む、請求項7に記載の方法。
- 前記所与のグループの各プロセッサの実行を再開することは、前記特定した同期コントローラによって停止信号をデアサートすることを含む、請求項6に記載の方法。
- 前記所与のグループの各プロセッサの実行を停止することは、前記所与のグループの各プロセッサの前記同期アダプタによって同期リクエスト信号をアサートすることを含む、請求項6に記載の方法。
- 同期コントローラであって:
複数の設定ビットを格納するように設定されたレジスタであって、前記複数の設定ビットは、複数のデータパターンを符号化し、前記複数のデータパターンの各データパターンは、接続した方向の複数のサブセットのうちの所与の1つに一致する、レジスタと;
1つ以上の論理回路であって、前記1つ以上の論理回路の各論理回路は:
1つ以上の同期リクエスト信号を受信し;
前記受信した1つ以上の同期リクエストおよび前記複数のデータパターンの対応するデータパターンに応じて、少なくとも1つのプロセッサに対する停止信号を生成し、前記少なくとも1つのプロセッサは、前記接続した方向の複数のサブセットのうちの対応する1つの所与の方向で同期コントローラに接続される
ように設定される、論理回路とを備える、同期コントローラ。 - 1つ以上の入力の各入力は、ラッチを含む、請求項11に記載の同期コントローラ。
- 前記受信した1つ以上の同期リクエストおよび前記複数のデータパターンの前記対応するデータパターンに応じて前記停止信号を生成するために、各論理回路は、さらに、接続した方向の前記複数のサブセットのうちの対応する1つの方向に対応する1つ以上の停止信号を生成するように設定される、請求項11に記載の同期コントローラ。
- 前記受信した同期リクエストおよび前記複数のデータパターンの前記対応するデータパターンに応じて前記停止信号を生成するために、各論理回路は、さらに、前記受信した同期信号のうちの選択した1つのアサートに応答して前記停止信号を生成するように設定され、前記受信した同期信号のうちの前記選択した1つは、前記複数のデータパターンの前記対応するデータパターンの方向に対応する、請求項11に記載の同期コントローラ。
- 前記受信した同期リクエストおよび前記複数のデータパターンの前記対応するデータパターンに応じて前記停止信号を生成するために、各論理回路は、さらに、前記受信した同期信号のうちの残りの同期信号がアサートされていないという判断に応答して前記停止信号を生成するように設定される、請求項14に記載の同期コントローラ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261734190P | 2012-12-06 | 2012-12-06 | |
US61/734,190 | 2012-12-06 | ||
PCT/US2013/064366 WO2014088698A2 (en) | 2012-12-06 | 2013-10-10 | Processing system with synchronization instruction |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018063728A Division JP6574865B2 (ja) | 2012-12-06 | 2018-03-29 | 同期命令を含む処理システム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2016501414A JP2016501414A (ja) | 2016-01-18 |
JP2016501414A5 JP2016501414A5 (ja) | 2016-11-17 |
JP6317365B2 true JP6317365B2 (ja) | 2018-04-25 |
Family
ID=49517643
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015546462A Active JP6317365B2 (ja) | 2012-12-06 | 2013-10-10 | 同期命令を含む処理システム |
JP2018063728A Active JP6574865B2 (ja) | 2012-12-06 | 2018-03-29 | 同期命令を含む処理システム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018063728A Active JP6574865B2 (ja) | 2012-12-06 | 2018-03-29 | 同期命令を含む処理システム |
Country Status (5)
Country | Link |
---|---|
US (2) | US9323714B2 (ja) |
EP (1) | EP2929434B1 (ja) |
JP (2) | JP6317365B2 (ja) |
CN (1) | CN104823164B (ja) |
WO (1) | WO2014088698A2 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6341930B2 (ja) | 2012-12-13 | 2018-06-13 | コーヒレント・ロジックス・インコーポレーテッド | 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム |
US9760410B2 (en) * | 2014-12-12 | 2017-09-12 | Intel Corporation | Technologies for fast synchronization barriers for many-core processing |
US20160301634A1 (en) * | 2015-04-11 | 2016-10-13 | International Business Machines Corporation | Controlling a delivery of messages to designated computing devices |
US10216430B2 (en) | 2015-07-01 | 2019-02-26 | Cavium, Llc | Local ordering of instructions in a computing system |
DE102015221064A1 (de) * | 2015-10-28 | 2017-05-04 | Robert Bosch Gmbh | Anordnung aus wenigstens zwei Mikrocontrollern und Verfahren zur Herstellung einer solchen Anordnung |
US9910716B2 (en) * | 2016-03-11 | 2018-03-06 | Knuedge Incorporated | Synchronization in a multi-processor computing system |
US20170364473A1 (en) * | 2016-03-31 | 2017-12-21 | Wave Computing, Inc. | Program counter alignment across a reconfigurable hum fabric |
US10783165B2 (en) | 2017-05-17 | 2020-09-22 | International Business Machines Corporation | Synchronizing multiple devices |
GB201717295D0 (en) * | 2017-10-20 | 2017-12-06 | Graphcore Ltd | Synchronization in a multi-tile processing array |
US11795753B1 (en) * | 2018-04-25 | 2023-10-24 | Gmi Holdings, Inc. | Remote monitoring and control of garage door opener incorporating jackshaft door operator drive assembly |
JP7073580B2 (ja) * | 2019-04-04 | 2022-05-23 | 中科寒武紀科技股▲分▼有限公司 | データ処理方法、装置、及び関連製品 |
CN112306945B (zh) * | 2019-07-30 | 2023-05-12 | 安徽寒武纪信息科技有限公司 | 数据同步方法及装置以及相关产品 |
CN112130898A (zh) * | 2019-06-24 | 2020-12-25 | 华为技术有限公司 | 一种***同步指令的方法及装置 |
GB2597078B (en) * | 2020-07-14 | 2022-07-13 | Graphcore Ltd | Communication between host and accelerator over network |
CN112559054B (zh) * | 2020-12-22 | 2022-02-01 | 上海壁仞智能科技有限公司 | 用于同步指令的方法和计算*** |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0630094B2 (ja) * | 1989-03-13 | 1994-04-20 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチプロセツサ・システム |
JPH02264352A (ja) * | 1989-04-05 | 1990-10-29 | Hitachi Ltd | マルチプロセッサ同期方式 |
US5345578A (en) * | 1989-06-30 | 1994-09-06 | Digital Equipment Corporation | Competitive snoopy caching for large-scale multiprocessors |
EP0485690B1 (en) * | 1990-11-13 | 1999-05-26 | International Business Machines Corporation | Parallel associative processor system |
US5434995A (en) | 1993-12-10 | 1995-07-18 | Cray Research, Inc. | Barrier synchronization for distributed memory massively parallel processing systems |
JP2780623B2 (ja) * | 1993-12-28 | 1998-07-30 | 日本電気株式会社 | 情報処理装置 |
EP0748540A4 (en) * | 1994-03-03 | 1997-10-29 | Proxim Inc | PROTOCOL FOR MEDIUM ACCESS CONTROL IN THE FREQUENCY JUMP PROCESS |
US5721921A (en) | 1995-05-25 | 1998-02-24 | Cray Research, Inc. | Barrier and eureka synchronization architecture for multiprocessors |
US7013454B2 (en) * | 1999-02-22 | 2006-03-14 | Sun Microsystems, Inc. | Thread suspension system and method using trapping instructions |
US6687756B1 (en) * | 2000-05-25 | 2004-02-03 | International Business Machines Corporation | Switched-based time synchronization protocol for a NUMA system |
US7415594B2 (en) | 2002-06-26 | 2008-08-19 | Coherent Logix, Incorporated | Processing system with interspersed stall propagating processors and communication elements |
US20040034858A1 (en) * | 2002-08-14 | 2004-02-19 | Kushlis Robert J. | Programming a multi-threaded processor |
US7810093B2 (en) * | 2003-11-14 | 2010-10-05 | Lawrence Livermore National Security, Llc | Parallel-aware, dedicated job co-scheduling within/across symmetric multiprocessing nodes |
US7398403B2 (en) * | 2004-07-01 | 2008-07-08 | Matsushita Electric Industrial Co., Ltd. | Multiprocessor control apparatus, control method thereof, and integrated circuit |
CN101048739A (zh) * | 2004-10-27 | 2007-10-03 | 松下电器产业株式会社 | 多处理器***、同步控制装置及同步控制方法 |
US7925791B2 (en) * | 2006-07-17 | 2011-04-12 | The Math Works, Inc. | Recoverable error detection for concurrent computing programs |
US20090327354A1 (en) * | 2008-06-26 | 2009-12-31 | Microsoft Corporation | Notification and synchronization of updated data |
CN100568247C (zh) * | 2008-07-22 | 2009-12-09 | 中国科学院计算技术研究所 | 一种满足systemC语法的多核处理器的事件处理单元组 |
CN101634979B (zh) * | 2008-07-22 | 2011-09-07 | 中国科学院计算技术研究所 | 一种满足SystemC语法的多核处理器 |
US8483196B2 (en) * | 2010-03-12 | 2013-07-09 | Qualcomm Incorporated | Methods and apparatus for supporting synchronization between groups of devices |
EP3432152B1 (en) * | 2010-10-15 | 2020-03-18 | Coherent Logix Incorporated | Disabling communication in a multiprocessor system |
CN102200961B (zh) * | 2011-05-27 | 2013-05-22 | 清华大学 | 一种动态可重构处理器内子单元的扩展方法 |
CN104813306B (zh) * | 2012-11-21 | 2017-07-04 | 相干逻辑公司 | 具有散布处理器dma‑fifo的处理*** |
JP2016508258A (ja) * | 2012-12-13 | 2016-03-17 | コーヒレント・ロジックス・インコーポレーテッド | 多重周波数多重プロセッサシステムのためのクロック分配ネットワーク |
-
2013
- 2013-10-10 EP EP13785989.8A patent/EP2929434B1/en active Active
- 2013-10-10 JP JP2015546462A patent/JP6317365B2/ja active Active
- 2013-10-10 CN CN201380063373.7A patent/CN104823164B/zh active Active
- 2013-10-10 WO PCT/US2013/064366 patent/WO2014088698A2/en active Application Filing
- 2013-10-10 US US14/051,140 patent/US9323714B2/en active Active
-
2016
- 2016-03-17 US US15/073,276 patent/US9558150B2/en active Active
-
2018
- 2018-03-29 JP JP2018063728A patent/JP6574865B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
EP2929434B1 (en) | 2019-01-16 |
JP6574865B2 (ja) | 2019-09-11 |
US9558150B2 (en) | 2017-01-31 |
JP2018116735A (ja) | 2018-07-26 |
US20160196234A1 (en) | 2016-07-07 |
EP2929434A2 (en) | 2015-10-14 |
CN104823164B (zh) | 2019-07-16 |
US9323714B2 (en) | 2016-04-26 |
US20140164735A1 (en) | 2014-06-12 |
CN104823164A (zh) | 2015-08-05 |
WO2014088698A2 (en) | 2014-06-12 |
JP2016501414A (ja) | 2016-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6574865B2 (ja) | 同期命令を含む処理システム | |
US11055141B2 (en) | Quiesce reconfigurable data processor | |
US11675734B2 (en) | Loop thread order execution control of a multi-threaded, self-scheduling reconfigurable computing fabric | |
US11573796B2 (en) | Conditional branching control for a multi-threaded, self-scheduling reconfigurable computing fabric | |
US11531543B2 (en) | Backpressure control using a stop signal for a multi-threaded, self-scheduling reconfigurable computing fabric | |
US11868163B2 (en) | Efficient loop execution for a multi-threaded, self-scheduling reconfigurable computing fabric | |
US11567766B2 (en) | Control registers to store thread identifiers for threaded loop execution in a self-scheduling reconfigurable computing fabric | |
US11635959B2 (en) | Execution control of a multi-threaded, self-scheduling reconfigurable computing fabric | |
US20190303165A1 (en) | Loop Execution Control for a Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric Using a Reenter Queue | |
US11586571B2 (en) | Multi-threaded, self-scheduling reconfigurable computing fabric | |
JP4391935B2 (ja) | 散在しているプロセッサと通信要素を備える処理システム | |
Lari et al. | Hierarchical power management for adaptive tightly-coupled processor arrays | |
US20230125149A1 (en) | Fractional Force-Quit for Reconfigurable Processors | |
Suzuki et al. | Instruction rearrangement and path limitation for ALU cascading | |
KR20090016643A (ko) | 비동기적 절전형 컴퓨터 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160927 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160927 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160927 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170823 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170905 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171205 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180109 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180115 |
|
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: 20180227 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180329 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6317365 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |