[go: up one dir, main page]

JP2019521454A - Control the operating speed of asynchronous pipeline stages - Google Patents

Control the operating speed of asynchronous pipeline stages Download PDF

Info

Publication number
JP2019521454A
JP2019521454A JP2019503302A JP2019503302A JP2019521454A JP 2019521454 A JP2019521454 A JP 2019521454A JP 2019503302 A JP2019503302 A JP 2019503302A JP 2019503302 A JP2019503302 A JP 2019503302A JP 2019521454 A JP2019521454 A JP 2019521454A
Authority
JP
Japan
Prior art keywords
stage
completion status
change
critical path
stages
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019503302A
Other languages
Japanese (ja)
Other versions
JP6893971B2 (en
JP2019521454A5 (en
Inventor
サドウスキー グレッグ
サドウスキー グレッグ
カラマティアノス ジョン
カラマティアノス ジョン
エヌ. ダス ショーミ
エヌ. ダス ショーミ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2019521454A publication Critical patent/JP2019521454A/en
Publication of JP2019521454A5 publication Critical patent/JP2019521454A5/ja
Priority to JP2021092900A priority Critical patent/JP7465848B2/en
Application granted granted Critical
Publication of JP6893971B2 publication Critical patent/JP6893971B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3871Asynchronous instruction pipeline, e.g. using handshake signals between stages
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Power Sources (AREA)
  • Image Processing (AREA)
  • Information Transfer Systems (AREA)
  • Pipeline Systems (AREA)

Abstract

非同期パイプライン(105)は、第1ステージ(112)と、1つ以上の第2ステージ(111,113)と、を含む。コントローラ(162)は、第1ステージの動作速度の変更を示す制御信号を第1ステージに提供する。変更は、第1ステージの完了ステータスと、1つ以上の第2ステージの1つ以上の完了ステータスと、の比較に基づいて決定される。場合によっては、コントローラは、第1ステージに印加される動作電圧及び第1ステージ内のバッファ(226)のドライブ強度に対する変更を示す制御信号を提供する。【選択図】図1The asynchronous pipeline (105) includes a first stage (112) and one or more second stages (111, 113). The controller (162) provides a control signal to the first stage indicating a change in the operating speed of the first stage. The change is determined based on a comparison of the completion status of the first stage and one or more completion statuses of one or more second stages. In some cases, the controller provides a control signal indicative of a change to the operating voltage applied to the first stage and the drive strength of the buffer (226) in the first stage. [Selection] Figure 1

Description

(政府のライセンス権)
本発明は、エネルギー省(DOE)により発注された主契約番号DE−AC52−07NA27344、外注番号B609201の下で政府の支援を受けてなされた。政府は本発明において一定の権利を有する。
(Government license right)
This invention was made with government support under main contract number DE-AC 52-07NA 27344, outsourced number B 609 201, ordered by the Department of Energy (DOE). The government has certain rights in the invention.

処理システムは、通常、命令を処理する一連のステージを含むパイプラインアーキテクチャを実装する。各ステージは、入力データを演算して出力データを生成するタスクを実行する。データは、フリップフロップ又はラッチとして実装することができるレジスタによってステージ間で通信される。ステージは、入力レジスタからの入力データにアクセスし、出力データを出力レジスタに提供する。パイプラインのステージの入力レジスタは、パイプラインの前段のステージによって対応する出力レジスタに提供された出力データを、入力データとして受信することができ、当該ステージの出力レジスタは、後段のステージの入力データとすることができる。パイプライン内のステージは、場合によっては複数の入力データのセットを同時に演算する。例えば、単一命令複数データ(SIMD)演算を実施するパイプラインアーキテクチャは、「ウェーブ」又は「計算ウェーブ」と呼ばれる同一の命令複数入力データのセットを同時に実行することができる。ウェーブは、異なる入力データのセットに対応する複数のワークアイテムで構成されている。ワークアイテムの実行時間は、通常、入力データによって異なるため、各ウェーブのワークアイテムは、異なる時間に完了することがある。   Processing systems typically implement a pipelined architecture that includes a series of stages for processing instructions. Each stage performs the task of computing input data and generating output data. Data is communicated between stages by registers that can be implemented as flip flops or latches. The stage accesses input data from the input register and provides output data to the output register. The input register of the stage of the pipeline can receive as output data the output data provided to the corresponding output register by the previous stage of the pipeline, and the output register of the stage is the input data of the subsequent stage It can be done. The stages in the pipeline sometimes operate on multiple sets of input data simultaneously. For example, a pipelined architecture implementing single instruction multiple data (SIMD) operations can simultaneously execute a set of identical instruction multiple input data called "waves" or "computed waves". A wave is composed of a plurality of work items corresponding to different sets of input data. Work item execution times for each wave may be completed at different times, as the execution time of the work item usually varies depending on the input data.

添付図面を参照することによって、本開示は当業者により良く理解され、その多数の特徴及び利点が明らかになるであろう。異なる図面での同じ参照記号の使用は、類似又は同一のアイテムを示す。   The present disclosure may be better understood by those of ordinary skill in the art by reference to the accompanying drawings, and its numerous features and advantages will be apparent. The use of the same reference symbols in different drawings indicates similar or identical items.

いくつかの実施形態による、非同期パイプラインを含む処理システムのブロック図である。FIG. 1 is a block diagram of a processing system that includes an asynchronous pipeline, according to some embodiments. いくつかの実施形態による、非同期パイプラインの一部のブロック図である。FIG. 6 is a block diagram of a portion of an asynchronous pipeline, according to some embodiments. いくつかの実施形態による、レプリカクリティカルパスを含む非同期パイプラインの一部のブロック図である。FIG. 7 is a block diagram of a portion of an asynchronous pipeline that includes replica critical paths, according to some embodiments. いくつかの実施形態による、非同期パイプラインの一部のブロック図である。FIG. 6 is a block diagram of a portion of an asynchronous pipeline, according to some embodiments. いくつかの実施形態による、レプリカクリティカルパスにおいて中間完了ステータス検出を実施する非同期パイプラインの一部のブロック図である。FIG. 7 is a block diagram of a portion of an asynchronous pipeline that implements intermediate completion status detection in a replica critical path, according to some embodiments. いくつかの実施形態による、中間完了ステータス検出を実施する非同期パイプラインの一部のブロック図である。FIG. 7 is a block diagram of a portion of an asynchronous pipeline that implements intermediate completion status detection, according to some embodiments. いくつかの実施形態による、並列処理を実施する非同期パイプラインの一部のブロック図である。FIG. 7 is a block diagram of a portion of an asynchronous pipeline that implements parallel processing, according to some embodiments. いくつかの実施形態による、非同期パイプライン内のステージの動作速度を変更する方法のフロー図である。FIG. 7 is a flow diagram of a method of changing the operating speed of a stage in an asynchronous pipeline, according to some embodiments.

実行パイプラインのステージが同期的である場合であって、ステージ間のレジスタが同じクロック信号を使用してクロックされるか非同期である場合には、パイプラインの各ステージはセルフタイム式であり、これにより、異なるステージが、他のステージから独立して、入力データを読み出し、命令を実行し、出力データを書き込むことができる。何れの場合も、ステージは、当該ステージによって実行される演算のタイプ、当該ステージによって演算されるデータ、及び、当該ステージによって演算される一連のデータ値に応じた様々なレイテンシでタスクを完了する。他のステージよりも早くタスクを完了したステージは、他のステージの完了を待つ間アイドル状態に留まるため、パイプラインの全体的なスループットが低下し、アイドル状態のステージで消費される静的電力を浪費する。同期パイプラインのタイミングは、通常、同期パイプラインの動作周波数を最大限に高めようとするために、論理合成中の同期パイプラインの全ステージに亘るクリティカルパスのレイテンシ、及び、同期パイプラインのハードウェアの物理レイアウトに基づいて調整される。しかしながら、同期パイプラインは、通常、同期パイプラインの設計中に使用されるクリティカルパスのレイテンシとは異なるレイテンシを有する様々な異なる演算を実行する。その結果、同期パイプラインのパフォーマンスは、常に最適であるとは限らず、期待される程エネルギー効率が良いとは限らない。   If the stages of the execution pipeline are synchronous, and if the registers between the stages are clocked or asynchronous using the same clock signal, then each stage of the pipeline is self-timed, This allows different stages to read input data, execute instructions, and write output data independently of other stages. In any case, the stage completes the task with different latencies depending on the type of operation performed by the stage, the data operated on by the stage, and the series of data values operated by the stage. Stages that complete tasks earlier than other stages remain idle while waiting for other stages to complete, which reduces the overall throughput of the pipeline and reduces static power consumed by idle stages. waste. The timing of the synchronization pipeline is usually the latency of the critical path across all stages of the synchronization pipeline during logic synthesis and the hardware of the synchronization pipeline in order to try to maximize the operating frequency of the synchronization pipeline. It is adjusted based on the physical layout of the wear. However, synchronization pipelines typically perform a variety of different operations that have different latencies than the critical path latency used during synchronization pipeline design. As a result, the performance of the synchronous pipeline is not always optimal and not always as energy efficient as expected.

非同期パイプラインのパフォーマンス及びエネルギー効率は、非同期パイプライン内の第1ステージの完了ステータスと、少なくとも1つの他の(第2)ステージの完了ステータスと、の比較に基づいて、非同期パイプラインの(第1)ステージの動作速度を変更することによって向上することができる。いくつかの実施形態では、非同期パイプラインの第1ステージの動作速度を変更することは、第1ステージ(若しくは、その一部)に印加される動作電圧を変更すること、又は、第1ステージ内の1つ以上のドライブバッファに印加されるバッファドライブ強度を変更することを含む。例えば、第1ステージの完了ステータスが「完了」に設定された場合には、第1ステージが入力データに対する演算を完了して、その出力データを生成したことを示す。同時に、第1ステージに入力データを提供する隣接ステージと、第1ステージからの出力データを受信する別の隣接ステージと、の完了ステータスが両方とも「処理中」に設定された場合には、両ステージが入力データに対する演算を完了していないことを示す。この場合、第1ステージに対するバッファドライブ強度又は電圧供給は、隣接ステージが処理を完了する間の第1ステージのエネルギーを節約するために減らすことができる。別の例では、第1ステージの完了ステータスが「処理中」である一方で、第1ステージに入力データを提供する隣接ステージと、第1ステージからの出力データを受信する別の隣接ステージと、の完了ステータスが両方とも「完了」である場合には、第1ステージによる処理を加速させてそのレイテンシを短縮し、第2ステージにおけるアイドル時間を短縮するために、第1ステージに対するバッファドライブ強度又は電圧供給を増大することができる。   The performance and energy efficiency of the asynchronous pipeline is based on the comparison of the completion status of the first stage in the asynchronous pipeline with the completion status of at least one other (second) stage. 1) It can be improved by changing the operating speed of the stage. In some embodiments, changing the operating speed of the first stage of the asynchronous pipeline changes the operating voltage applied to the first stage (or a portion thereof) or within the first stage Changing the buffer drive strength applied to one or more of the drive buffers. For example, when the completion status of the first stage is set to "complete", it indicates that the first stage has completed the operation on the input data and generated the output data. At the same time, if both the completion status of an adjacent stage providing input data to the first stage and another adjacent stage receiving the output data from the first stage are both set to “in process” Indicates that the stage has not completed the operation on the input data. In this case, the buffer drive strength or voltage supply to the first stage can be reduced to save energy in the first stage while the adjacent stages complete processing. In another example, an adjacent stage providing input data to the first stage, and another adjacent stage receiving output data from the first stage, while the completion status of the first stage is "in process". Buffer drive strength for the first stage to accelerate processing by the first stage to reduce its latency and reduce idle time in the second stage, if both completion statuses of the The voltage supply can be increased.

第1ステージ及び第2ステージによる計算ウェーブの実行開始に応じて第1ステージ及び第2ステージによって生成される出力信号を監視することにより、第1ステージ及び第2ステージの完了ステータスを決定することができる。いくつかの変形例では、第1ステージ及び第2ステージの完了ステータスは、第1ステージ及び第2ステージにおける計算ウェーブの実行開始と同時に入力信号を第1ステージ及び第2ステージのレプリカクリティカルパスに適用し、次いで、レプリカクリティカルパスの出力において出力信号を検出したことに応じて第1ステージ及び第2ステージが完了したことを判別することによって、決定される。レプリカクリティカルパスは、ステージの回路シミュレーションに基づいて定義される。いくつかの実施形態では、ステージの完了ステータスは、ステージ又はステージの一部についての推定完了時間を示す。例えば、命令のタイプ(命令のオペコードによって示される)及び入力データの特性に基づいて完了時間の推定値を提供するルックアップテーブルを使用して、第1ステージ及び第2ステージの完了ステータスを決定することができる。他の実施形態では、ステージの完了ステータスは、ステージの論理クラウド内の監視信号、又は、アクティビティの出力信号に基づいて決定される。例えば、ステージからの全ての出力信号が暫く変わらない場合、当該ステージがタスクを完了した可能性がある。別の例では、ステージの論理クラウド内の所定の位置における1つ以上の信号が変わらない場合、ステージが特定の割合の演算(例えば、50%の演算等)を完了した可能性がある。   Determining the completion status of the first stage and the second stage by monitoring the output signals generated by the first stage and the second stage in response to the start of execution of the calculation wave by the first stage and the second stage it can. In some variations, the completion status of the first stage and the second stage apply the input signal to the replica critical path of the first stage and the second stage simultaneously with the start of the execution of the calculation wave in the first stage and the second stage Then, it is determined by determining that the first stage and the second stage have been completed in response to the detection of the output signal at the output of the replica critical path. The replica critical path is defined based on circuit simulation of the stage. In some embodiments, the stage completion status indicates an estimated completion time for the stage or part of the stage. For example, determine the completion status of the first and second stages using a look-up table that provides an estimate of completion time based on the type of instruction (as indicated by the opcode of the instruction) and the characteristics of the input data be able to. In other embodiments, the completion status of the stage is determined based on the monitoring signal in the logical cloud of the stage or the output signal of the activity. For example, if all output signals from a stage do not change for a while, the stage may have completed the task. In another example, the stage may have completed a certain percentage of operations (e.g., 50% of operations, etc.) if one or more signals at predetermined locations within the stage's logic cloud have not changed.

図1は、いくつかの実施形態による、非同期パイプライン105を含む処理システム100のブロック図である。本明細書で使用される「非同期パイプライン」という用語は、非同期パイプラインのステージが、処理システム100内の非同期パイプラインの外部のエンティティによって使用されるグローバルクロック又はタイミング基準と同期しないクロック又はタイミング基準に従って動作することを示す。さらに、非同期パイプライン内の個々のステージは、必ずしも互いに同期しているとは限らず、場合によっては各々の内部クロックに従って動作することができる。非同期パイプライン内のステージは、「セルフタイム式」ステージと呼ばれることもある。よって、本明細書で説明するように、非同期パイプライン内のステージの動作速度は、非同期パイプライン内の他のステージの動作速度とは無関係に変動することができる。   FIG. 1 is a block diagram of a processing system 100 that includes an asynchronous pipeline 105, according to some embodiments. As used herein, the term "asynchronous pipeline" refers to a clock or timing at which the stages of the asynchronous pipeline are not synchronized with the global clock or timing reference used by an entity external to the asynchronous pipeline within processing system 100. Indicates to operate according to the standard. Furthermore, the individual stages in the asynchronous pipeline are not necessarily synchronized with one another, and in some cases can operate according to their own internal clock. Stages within an asynchronous pipeline are sometimes referred to as "self-timed" stages. Thus, as described herein, the operating speed of a stage in an asynchronous pipeline can vary independently of the operating speeds of other stages in the asynchronous pipeline.

非同期パイプライン105は、本明細書ではまとめて「ステージ110〜114」と呼ばれる複数のステージ110,111,112,113,114を含む。データは、フリップフロップ、ラッチ又は他の記憶装置を用いて実装することができるパイプラインレジスタ120,121,122,123,124,125(本明細書ではまとめて「レジスタ120〜125」と呼ばれる)を使用して、非同期パイプライン105内の様々な箇所に記憶される。図示した実施形態では、ステージ110は、フリップフロップとして実施することができるレジスタ120に記憶された入力データに対して論理演算を実行する。ステージ110は、ラッチとして実施することができるレジスタ121に記憶される出力データを生成する。ステージ111は、レジスタ121に記憶された入力データに対して乗算演算を実行し、ラッチとして実施することができるレジスタ122に記憶される出力データを生成する。ステージ112は、レジスタ122に記憶された入力データに対して加算演算を実行し、ラッチとして実施することができるレジスタ123に記憶される出力データを生成する。ステージ113は、レジスタ123に記憶された入力データに対して正規化演算を実行し、ラッチとして実施することができるレジスタ124に記憶される出力データを生成する。ステージ114は、レジスタ124に記憶された入力データに対して丸め演算を実行し、フリップフロップとして実施することができるレジスタ125に記憶される出力データを生成する。非同期パイプライン105には、5つのステージ及び対応する数のパイプラインレジスタが示されているが、非同期パイプライン105のいくつかの実施形態は、同じ又は異なる演算を実行するより多い又はより少ないステージとともに、より多い又はより少ないパイプラインレジスタを含む。   The asynchronous pipeline 105 includes a plurality of stages 110, 111, 112, 113, 114, collectively referred to herein as "stages 110-114." Data may be implemented using flip-flops, latches or other storage devices pipeline registers 120, 121, 122, 123, 124, 125 (collectively referred to herein as "registers 120-125") Are stored at various places in the asynchronous pipeline 105. In the illustrated embodiment, stage 110 performs a logical operation on input data stored in register 120, which may be implemented as a flip flop. Stage 110 generates output data that is stored in register 121, which may be implemented as a latch. Stage 111 performs a multiplication operation on the input data stored in register 121 and generates output data stored in register 122, which can be implemented as a latch. Stage 112 performs an addition operation on the input data stored in register 122 and produces output data stored in register 123 which may be implemented as a latch. Stage 113 performs a normalization operation on the input data stored in register 123 and produces output data stored in register 124 which may be implemented as a latch. Stage 114 performs rounding operations on the input data stored in register 124 and produces output data stored in register 125, which may be implemented as a flip flop. Although five stages and a corresponding number of pipeline registers are shown in asynchronous pipeline 105, some embodiments of asynchronous pipeline 105 may have more or fewer stages performing the same or different operations. And include more or less pipeline registers.

入力コントローラ130は、クロック信号131及び有効信号132を、レジスタ120及びモジュール135に提供する。クロック信号131は、データをレジスタ120に提供する同期ドメインで使用される外部クロック信号と同期している。よって、モジュール135は、例えば、同期ドメインからの信号をパイプライン105の非同期ドメインに変換することによって、同期ドメインと非同期パイプライン105との間の境界として機能する。モジュール135は、非同期パイプライン105が追加データを処理する準備ができているか否かを示すフィードバック133を提供する。例えば、フィードバック133は、論理110が追加データを処理する準備ができていることを示すことができ、次いで、入力コントローラ130によってレジスタ120にクロックされる。モジュール140は、非同期パイプライン105から出力される信号を制御するために使用される。モジュール140のいくつかの実施形態は、非同期パイプライン105の非同期ドメインと、処理システム100内の同期ドメインと、の間の境界として機能する。例えば、モジュール140は、有効データがレジスタ125にクロックされる準備ができていることを示す有効信号141を提供することができる。また、モジュール140及びレジスタ125は、同期ドメインで使用される外部クロック信号に同期しているクロック信号145を受信することができる。   Input controller 130 provides clock signal 131 and enable signal 132 to register 120 and module 135. Clock signal 131 is synchronized with an external clock signal used in a synchronous domain to provide data to register 120. Thus, module 135 acts as a boundary between the synchronization domain and asynchronous pipeline 105, eg, by converting signals from the synchronous domain into the asynchronous domain of pipeline 105. Module 135 provides feedback 133 indicating whether asynchronous pipeline 105 is ready to process additional data. For example, feedback 133 can indicate that logic 110 is ready to process additional data, which is then clocked into register 120 by input controller 130. Module 140 is used to control the signal output from asynchronous pipeline 105. Some embodiments of module 140 serve as a boundary between an asynchronous domain of asynchronous pipeline 105 and a synchronous domain within processing system 100. For example, module 140 may provide a valid signal 141 indicating that valid data is ready to be clocked into register 125. Also, module 140 and register 125 may receive clock signal 145 synchronized to an external clock signal used in the synchronization domain.

モジュール150,151,152(本明細書ではまとめて「モジュール150〜152」と呼ばれる)は、モジュール135,140と共に動作して、ステージ110〜114の動作を調整する。例えば、モジュール150は、ステージ111の完了ステータスを示す完了ステータス信号155をステージ111から受信し、レジスタ121に記憶された入力データに対するタスクの実行がステージ111によって開始されたことを示す開始信号156をモジュール135から受信する。モジュール150は、次のステージ112が次のデータセットに対するタスクの実行を開始する準備ができていることを示すフィードバック157と、ステージ111によって提供されるデータのレジスタ122へのラッチを制御するラッチ制御信号158と、レジスタ122からのデータへのステージ112によるアクセスと、を提供する。また、モジュール150は、レジスタ122に記憶されたデータを演算するタスクの実行を開始し、実行が開始されたことを後続のモジュール151に示す開始信号159を提供する。説明を明確にするために、モジュール135,140,151,152は、対応する信号(対応する参照番号によって示されていない)を提供し受信する。   Modules 150, 151, 152 (collectively referred to herein as "modules 150-152") operate in conjunction with modules 135, 140 to coordinate the operation of stages 110-114. For example, module 150 may receive a completion status signal 155 from stage 111 indicating the completion status of stage 111, and may indicate start signal 156 indicating that execution of the task on the input data stored in register 121 has been initiated by stage 111. Received from module 135. Module 150 controls feedback to indicate that the next stage 112 is ready to begin performing the task on the next data set, and latch control to control the latching of data provided by stage 111 into register 122. Provides signal 158 and access by stage 112 to data from register 122. Also, module 150 initiates execution of the task of computing the data stored in register 122 and provides an initiation signal 159 that indicates to subsequent module 151 that execution has begun. For clarity of explanation, modules 135, 140, 151, 152 provide and receive corresponding signals (not indicated by corresponding reference numbers).

ステージコントローラ161,162,163,164(本明細書ではまとめて「ステージコントローラ161〜164」と呼ばれる)は、非同期パイプライン105内のステージ111〜114の動作を制御するために使用される。ステージコントローラ162のいくつかの実施形態は、ステージ111の完了ステータス情報を示すためにモジュール150によって提供されることを示す信号165と、ステージ113の完了ステータス情報を示すためにモジュール151によって提供される信号166と、に基づいて、ステージ112を制御するように構成されている。ステージコントローラ162は、ステージ112の動作速度を設定又は変更するために使用される制御信号167を提供する。ステージコントローラ162は、ステージ111の完了ステータス、ステージ112の完了ステータス、ステージ113の完了ステータス、又は、これらの組み合わせに基づいて、ステージ112の動作速度(又は、その変更)を決定する。本明細書で説明するように、ステージコントローラ161,163,164は、1つ以上の他のステージの完了ステータスに基づいて、対応するステージ111,113,114の動作速度を制御することができる。説明を明確にするために、ステージ111,113,114によって提供又は受信される全ての対応する信号伝達を示す参照番号は、提供されていない。   Stage controllers 161, 162, 163, 164 (collectively referred to herein as “stage controllers 161-164”) are used to control the operation of stages 111-114 in asynchronous pipeline 105. Some embodiments of stage controller 162 are provided by signal 165 indicating that it is provided by module 150 to indicate completion status information of stage 111 and by module 151 to indicate completion status information of stage 113. The stage 112 is configured to be controlled based on the signal 166. Stage controller 162 provides control signals 167 that are used to set or change the operating speed of stage 112. The stage controller 162 determines the operating speed of the stage 112 (or its change) based on the completion status of the stage 111, the completion status of the stage 112, the completion status of the stage 113, or a combination thereof. As described herein, stage controllers 161, 163, 164 may control the operating speed of corresponding stages 111, 113, 114 based on the completion status of one or more other stages. For the sake of clarity, reference numbers indicating all corresponding signaling provided or received by stages 111, 113, 114 are not provided.

いくつかの実施形態では、ステージ111〜114の動作速度は、ステージ111〜114に実装される1つ以上のバッファのドライブ強度、ステージ111〜114の動作電圧、又は、これらの組み合わせによって決定される。例えば、ステージコントローラ162は、表1に従って、ステージ111〜113の完了ステータスに基づいて、ステージ112の動作速度に対する変更を決定することができる。

Figure 2019521454
In some embodiments, the operating speed of stages 111-114 is determined by the drive strength of one or more buffers implemented in stages 111-114, the operating voltage of stages 111-114, or a combination thereof . For example, stage controller 162 may determine changes to the speed of operation of stage 112 based on the completion status of stages 111-113 according to Table 1.
Figure 2019521454

表1の完了ステータスは、対応するステージが現在のタスクを実行中(処理中)であること、又は、対応ステージが現在のタスクの実行を完了しており(完了)、これにより新たなタスクの実行を受け付ける準備ができていることを示す。動作速度は、エネルギーを節約するため又はステージ112による処理を加速するために変更することができる。例えば、ステージ111の完了ステータスが処理中であり、ステージ112の完了ステータスが完了であり、ステージ113の完了ステータスが処理中である場合、ステージコントローラ162は、ステージ112によるエネルギー消費を低減するために、ステージ112に提供されるバッファドライブ強度及び電圧供給を減少させる。別の例では、ステージ111の完了ステータスが完了であり、ステージ112の完了ステータスが処理中であり、ステージ113の完了ステータスが完了である場合、ステージコントローラ162は、ステージ112による処理を加速させるために、ステージ112に提供されるバッファドライブ強度及び電圧供給を増大させる。本明細書で説明するように、表1のいくつかの実施形態は、ルックアップテーブルに記憶することができる。   The completion status in Table 1 indicates that the corresponding stage is executing (processing) the current task, or the corresponding stage has completed the execution of the current task (completion), whereby the new task is performed. Indicates that it is ready to accept execution. The operating speed can be changed to save energy or to accelerate processing by stage 112. For example, if the completion status of stage 111 is in progress, the completion status of stage 112 is complete, and the completion status of stage 113 is in progress, then stage controller 162 may reduce energy consumption by stage 112. , Reduce the buffer drive strength and voltage supply provided to stage 112. In another example, if the completion status of stage 111 is complete, the completion status of stage 112 is in progress, and the completion status of stage 113 is complete, then stage controller 162 may accelerate processing by stage 112. To increase the buffer drive strength and voltage supply provided to the stage 112. As described herein, some embodiments of Table 1 can be stored in a look-up table.

ステージ111〜114への電圧供給を変更することは、ステージ111〜114内の全てのロジックの動作速度に影響を与える。しかしながら、本明細書で説明するように、いくつかの実施形態では、ステージ111〜114の一部又は領域に供給される電圧は、別々の一部又は領域の動作速度を制御するために、ステージ111〜114の他の一部又は領域とは別に変更される。ステージ111〜114内のバッファのドライブ強度を変更することは、バッファの上流にあるステージ111〜114の一部又は領域に影響を与える。例えば、各ステージ111〜114の始め、中間、終わりにおけるバッファのドライブ強度を変更することは、ステージ111〜114の対応する部分におけるパスの動作速度を変更するために使用することができる。ルーティング遅延を制御するために、構成可能な駆動バッファを、ステージ111〜114のロジック内の長い配線上に配置することもできる。バッファのドライブ強度を増大させることは、通常、ステージ111〜114内のパスに沿った信号の伝播時間を短縮させ、これにより、パスに沿った計算時間を短縮させることができる。いくつかの実施形態では、相互接続ロジックを供給するために、別個の電圧源を使用して信号伝播速度が制御される。別個の電圧源は、ステージ111〜114内のロジックの他の部分に供給するのに使用される他の電圧源とは無関係に制御される。いくつかの変形例では、きめ細かい電圧制御(例えば、1ナノ秒程度の短い電圧状態間遷移時間で10ミリボルト(mV)ステップ)で電圧を変更することができる。ステージ111〜114のロジックの一部の電力ゲーティング又は電圧制御のために、フットトランジスタを使用することができる。   Changing the voltage supply to stages 111-114 affects the operating speed of all the logic in stages 111-114. However, as described herein, in some embodiments, the voltages supplied to portions or regions of stages 111-114 may be stages to control the speed of operation of the separate portions or regions. It is changed separately from the other part or area | region of 111-114. Changing the drive strength of the buffer in stages 111-114 affects the part or area of stages 111-114 upstream of the buffer. For example, changing the drive strength of the buffer at the beginning, middle and end of each stage 111-114 can be used to change the operating speed of the path in the corresponding part of stages 111-114. Configurable drive buffers can also be placed on long wires in the logic of stages 111-114 to control routing delays. Increasing the drive strength of the buffer can typically reduce the propagation time of the signal along the path in stages 111-114, which can reduce the computation time along the path. In some embodiments, separate voltage sources are used to control the signal propagation rate to provide interconnect logic. The separate voltage sources are controlled independently of the other voltage sources used to supply the other parts of the logic in stages 111-114. In some variations, the voltage can be changed in fine voltage control (e.g., in 10 millivolt (mV) steps with transition times between voltage states as short as 1 nanosecond). Foot transistors can be used for power gating or voltage control of part of the logic of stages 111-114.

処理システム100のいくつかの実施形態は、入力コントローラ130又はステージコントローラ161〜164に接続されたパイプラインコントローラ170を含む。パイプラインコントローラ170は、パイプラインステージ110〜114の完了時間を決定する。ステージコントローラ161〜164は、非同期パイプライン105の全体の完了時間に基づいて、対応するステージ110〜114の完了時間を調整しようと試みることができる。本明細書で説明するように、調整には、ステージ110〜114のロジックコーンにおける供給電圧の変更及びバッファのドライブ強度の変更が含まれる。例えば、パイプラインコントローラ170は、コンピュータユニットによって実施される非同期の単一命令複数データ(SIMD)パイプラインのレーンにおける命令の非同期実行を制御することができる。コンピュータユニット内の他の回路又はパイプラインは、同期的に動作し、専用バッファを介して非同期SIMDパイプラインと通信することができる。パイプラインコントローラ170は、非同期SIMDパイプラインの複数のレーンに亘る単一命令の実行の進行を監視して、タスク完了の速度を(複雑さを最小限に抑えるためにおそらく最後のパイプラインステージ114において)再調整することによって、レーンの相違(すなわち、ウェーブ内の全てのSIMDレーンに亘る命令の完了時間の差異)を排除するのをサポートすることができ、これにより、全てのレーンが同じ命令に対するタスクをほぼ同時に完了する。パイプラインコントローラ170を使用してレーンの相違を制御することによって、(a)SIMDパイプライン内を進むコンシューマ命令にデータをバイパスするロジック、及び、(B)同期ドメイン内のVRFに結果を書き戻すロジックを単純化することができる。いくつかの変形例では、個々のステージコントローラ161〜164は、より短い全体時間で命令の実行を完了することによって、タイミングを改善し、エネルギー消費を減らすことを試みる。   Some embodiments of the processing system 100 include a pipeline controller 170 connected to an input controller 130 or stage controllers 161-164. Pipeline controller 170 determines the completion time of pipeline stages 110-114. Stage controllers 161-164 may attempt to adjust the completion time of corresponding stages 110-114 based on the overall completion time of asynchronous pipeline 105. As described herein, tuning includes changing the supply voltage at the logic cones of stages 110-114 and changing the drive strength of the buffer. For example, pipeline controller 170 may control asynchronous execution of instructions in the lanes of an asynchronous single instruction multiple data (SIMD) pipeline implemented by a computer unit. Other circuits or pipelines within the computer unit can operate synchronously and communicate with the asynchronous SIMD pipeline through dedicated buffers. The pipeline controller 170 monitors the progress of execution of a single instruction across multiple lanes of an asynchronous SIMD pipeline, and perhaps the last pipeline stage 114 to minimize the speed of task completion. Can be supported to eliminate lane differences (ie, differences in instruction completion time across all SIMD lanes in a wave), so that all lanes have the same instruction Complete tasks against at almost the same time. Write results back to (a) logic that bypasses data to consumer instructions traveling in the SIMD pipeline by controlling lane differences using the pipeline controller 170 and (B) VRF in the synchronization domain You can simplify the logic. In some variations, the individual stage controllers 161-164 attempt to improve timing and reduce energy consumption by completing instruction execution in less overall time.

図2は、いくつかの実施形態による、非同期パイプラインの一部200のブロック図である。一部200は、入力レジスタ210からの入力データにアクセスし、出力データを出力レジスタ215に提供するステージ205を含む。一部200は、図1に示す非同期パイプライン105のいくつかの実施形態において使用される。いくつかの変形例では、入力レジスタ210及び出力レジスタ215は、図1に示すレジスタ121〜124のうち1つ以上のレジスタを実装するために使用され、ステージ205は、図1に示すステージ110〜114のうち対応するステージを実装するために使用される。ステージ205は、ステージ205に割り当てられたタスクの一部を実行するためのロジックを実装するロジック領域220,221,222(本明細書ではまとめて「ロジック領域220〜222」と呼ばれる)を含む。ロジック領域220〜222は、一部200内のロジックの上流領域に駆動電流を提供するバッファ225,226,227(本明細書ではまとめて「バッファ225〜227」と呼ばれる)を含む相互接続ネットワークによって接続されている。バッファ225〜227は、バッファ225〜227によって受信された制御信号に基づいて決定された可変ドライブ強度で動作することができる構成可能なバッファである。   FIG. 2 is a block diagram of a portion 200 of an asynchronous pipeline in accordance with some embodiments. Portion 200 includes stage 205 that accesses input data from input register 210 and provides output data to output register 215. Portion 200 is used in some embodiments of asynchronous pipeline 105 shown in FIG. In some variations, the input register 210 and the output register 215 are used to implement one or more of the registers 121-124 shown in FIG. 1, and the stage 205 is shown in FIG. Used to implement the corresponding stage of 114. Stage 205 includes logic regions 220, 221, 222 (collectively referred to herein as "logic regions 220-222") that implement logic to perform some of the tasks assigned to stage 205. Logic regions 220-222 are interconnected by an interconnect network including buffers 225, 226, 227 (collectively referred to herein as "buffers 225-227") that provide drive current to regions upstream of the logic in portion 200. It is connected. Buffers 225-227 are configurable buffers that can operate with variable drive strengths determined based on control signals received by buffers 225-227.

また、一部200は、非同期パイプライン内の他のステージ(図示省略)の完了ステータスに基づいてステージ205(又は、その一部)の動作速度を設定又は変更することができるステージコントローラ230を含む。いくつかの変形例では、ステージコントローラ230は、図1に示すステージコントローラ161〜164の何れかに対応する。ステージコントローラ230のいくつかの実施形態は、ステージ205の動作電圧を変更して、ステージ205の動作速度を変更する。ステージ205全体に印加される動作電圧を変更して、ロジック領域220〜222の動作速度を変更することができ、又は、ロジック領域220〜222に印加される動作電圧を個別に変更して、ロジック領域220〜222のうち1つ以上のロジック領域の1つ以上の動作速度を変更することができる。ステージコントローラ230のいくつかの実施形態は、バッファ225〜227のうち1つ以上のバッファのドライブ強度を変更して、対応するバッファ225〜227の下流にあるロジックの動作速度を変更する。例えば、ステージコントローラ230は、バッファ225のドライブ強度を変更して、ロジック領域222及びロジック領域221等の下流ロジックの動作速度を変更することができる。   Also, the portion 200 includes a stage controller 230 that can set or change the operation speed of the stage 205 (or a portion thereof) based on the completion status of other stages (not shown) in the asynchronous pipeline. . In some variations, stage controller 230 may correspond to any of stage controllers 161-164 shown in FIG. Some embodiments of stage controller 230 change the operating voltage of stage 205 to change the operating speed of stage 205. The operating voltage applied to the entire stage 205 can be changed to change the operating speed of the logic regions 220-222, or the operating voltage applied to the logic regions 220-222 can be changed individually to The operating speed of one or more of the one or more logic regions of regions 220-222 can be changed. Some embodiments of the stage controller 230 change the drive strength of one or more of the buffers 225-227 to change the operating speed of the logic downstream of the corresponding buffer 225-227. For example, the stage controller 230 can change the drive strength of the buffer 225 to change the operating speed of downstream logic such as the logic area 222 and the logic area 221.

一部200のいくつかの実施形態は、ステージコントローラ230に組み込まれるか、ステージコントローラ230がアクセス可能なメモリに記憶されるルックアップテーブル(LUT)235を含む。ルックアップテーブル235は、ステージ205によって実行可能な異なるタイプの命令の完了時間の推定値を含むエントリを含む。例えば、ルックアップテーブル235内の各エントリは、命令オペコード、命令タイプ、入力データ値等によってインデックスされる完了時間の推定値を含む。いくつかの変形例では、完了時間の推定値は、ステージ205の対象となる回路シミュレーション又はランダムな回路シミュレーションを使用して決定される。次に、ステージコントローラ230は、ステージ205によって実行されている命令のオペコード若しくはタイプ、又は、命令によって演算されているデータの値(例えば、入力レジスタ210に記憶されたデータの値)に基づいて、ステージ205の完了ステータスを推定することができる。例えば、ステージコントローラ230は、ステージ205が命令を含むタスクを実行開始する開始時間を示す信号を、モジュール(例えば、図1に示すモジュール135,140,150〜152の何れか等)から受信することができる。ステージコントローラ230は、現在の時間と、ルックアップテーブル235内のエントリに基づいて決定された推定完了時間を開始時間に加えた時間と、を比較することによって、ステージ205の完了ステータスを推定する。ステージコントローラ230のいくつかの実施形態は、ルックアップテーブル235に記憶された情報に基づいて、他のステージ(入力データを入力レジスタ210に提供するステージ、又は、出力レジスタ215からの出力データにアクセスするステージ等)の完了時間を推定する。   Some embodiments of the portion 200 include a look-up table (LUT) 235 incorporated into the stage controller 230 or stored in a memory accessible to the stage controller 230. Look-up table 235 includes an entry that contains estimates of completion times of different types of instructions that can be executed by stage 205. For example, each entry in look-up table 235 includes an estimate of completion time indexed by instruction opcode, instruction type, input data value, etc. In some variations, the estimate of completion time is determined using circuit simulation or random circuit simulation for stage 205. Next, the stage controller 230 determines, based on the opcode or type of the instruction being executed by the stage 205 or the value of the data being operated on by the instruction (eg, the value of the data stored in the input register 210) The completion status of stage 205 can be estimated. For example, the stage controller 230 receives a signal indicating a start time at which the stage 205 starts executing the task including the instruction from a module (for example, any of the modules 135, 140, 150 to 152 shown in FIG. 1). Can. The stage controller 230 estimates the completion status of the stage 205 by comparing the current time with the start time plus the estimated completion time determined based on the entries in the look-up table 235. Some embodiments of stage controller 230 may access other stages (providing input data to input register 210, or output data from output register 215) based on the information stored in look-up table 235 Estimate the completion time of the

図3は、いくつかの実施形態による、レプリカクリティカルパスを含む非同期パイプラインの一部300のブロック図である。一部300は、入力レジスタ310からの入力データにアクセスし、出力データを出力レジスタ315に提供するステージ305を含む。一部300は、図1に示す非同期パイプライン105のいくつかの実施形態において使用される。いくつかの変形形態では、入力レジスタ310及び出力レジスタ315は、図1に示すレジスタ121〜124のうち1つ以上のレジスタを実装するために使用され、ステージ305は、図1に示すステージ110〜114のうち対応するステージを実装するために使用される。   FIG. 3 is a block diagram of a portion 300 of an asynchronous pipeline that includes replica critical paths, according to some embodiments. Portion 300 includes a stage 305 that accesses input data from input register 310 and provides output data to output register 315. Portion 300 is used in some embodiments of asynchronous pipeline 105 shown in FIG. In some variations, input register 310 and output register 315 are used to implement one or more of registers 121-124 shown in FIG. 1, and stage 305 is shown in stages 110-110 of FIG. Used to implement the corresponding stage of 114.

ステージ305は、ステージ305内の1つ以上のクリティカルパスのタイミングを複製するように構成されたロジックを含むレプリカクリティカルパス320に関連しており、これにより、ステージ305内のクリティカルパスが入力データの処理を完了するのに必要な時間に対応する時間間隔の後に、レプリカクリティカルパス320が入力データの処理を完了する。例えば、レプリカクリティカルパス320は、ステージ305のクリティカルパスに沿って実装されたゲートの数と一致する数のゲートを含むことができる。また、レプリカクリティカルパス320は、ステージ305のクリティカルパスに沿うゲートのファンイン及びファンアウト値と一致するように構成することができる。レプリカクリティカルパス320のいくつかの実施形態は、ステージ305内のクリティカルパスのロジックと必ずしも同一ではないロジックを含む。代わりに、レプリカクリティカルパス320のロジックは、レプリカクリティカルパス320に沿った信号のフローの監視を容易にするために、入力信号がレプリカクリティカルパス320のゲートを通ると入力信号の値が変わるように構成されている。レプリカクリティカルパス320と実際のクリティカルパスとの間のレイテンシは、回路シミュレーションを用いて決定することができる。   Stage 305 is associated with a replica critical path 320 that includes logic configured to replicate the timing of one or more critical paths in stage 305, such that the critical paths in stage 305 are input data. After a time interval corresponding to the time required to complete the process, replica critical path 320 completes the processing of the input data. For example, replica critical path 320 can include a number of gates that matches the number of gates implemented along the critical path of stage 305. Also, replica critical path 320 may be configured to match the fan-in and fan-out values of the gate along the critical path of stage 305. Some embodiments of replica critical path 320 include logic that is not necessarily identical to the logic of the critical path in stage 305. Instead, the logic of replica critical path 320 causes the value of the input signal to change as it passes through the gate of replica critical path 320 to facilitate monitoring of the flow of signals along replica critical path 320. It is configured. The latency between the replica critical path 320 and the actual critical path can be determined using circuit simulation.

また、一部300は、ステージ305の完了ステータスを推定するのに使用される信号を提供及び受信するモジュール325,330を含む。モジュール325,330は、図1に示すモジュール120,125,150〜152のいくつかの実施形態を実装するために使用される。モジュール325のいくつかの実施形態は、入力データの処理をレプリカクリティカルパス320に開始させるための開始信号335を提供する。開始信号335は、ステージ305が入力レジスタ310に記憶された入力データの処理を開始するのに使用される開始信号と同時に提供される。モジュール330は、開始信号335に応じてレプリカクリティカルパス320によって生成される出力信号340を監視して、レプリカクリティカルパス320の完了ステータスを決定する。いくつかの変形例では、モジュール330は、出力信号340の特定のパターンを検出することによって、又は、レプリカクリティカルパス320に関連する出力レジスタに記憶されたデータが定常状態に達したと判別することによって、レプリカクリティカルパス320が入力データに対する演算を完了したと判別する。レプリカクリティカルパス320に関してモジュール330が決定した完了時間にレイテンシを加算又は減算して、ステージ305の推定完了時間と実際の完了時間との差を補償することができる。   Also, portion 300 includes modules 325, 330 that provide and receive signals that are used to estimate the completion status of stage 305. Modules 325, 330 are used to implement some embodiments of modules 120, 125, 150-152 shown in FIG. Some embodiments of module 325 provide an initiation signal 335 for causing replica critical path 320 to begin processing input data. The start signal 335 is provided at the same time as the start signal used by the stage 305 to start processing the input data stored in the input register 310. Module 330 monitors the output signal 340 generated by replica critical path 320 in response to start signal 335 to determine the completion status of replica critical path 320. In some variations, module 330 may detect the particular pattern of output signal 340 or determine that the data stored in the output register associated with replica critical path 320 has reached steady state. Thus, it is determined that the replica critical path 320 has completed the operation on the input data. Latency may be added to or subtracted from the completion time determined by module 330 for replica critical path 320 to compensate for the difference between the estimated completion time of stage 305 and the actual completion time.

図4は、いくつかの実施形態による、非同期パイプラインの一部400のブロック図である。一部400は、入力レジスタ410からの入力データにアクセスし、出力データを出力レジスタ415に提供するステージ405を含む。一部400は、図1に示す非同期パイプライン105のいくつかの実施形態において使用される。いくつかの変形例では、入力レジスタ410及び出力レジスタ415は、図1に示すレジスタ121〜124のうち1つ以上のレジスタを実装するために使用され、ステージ405は、図1に示すステージ110〜114のうち対応するステージを実装するために使用される。   FIG. 4 is a block diagram of a portion 400 of an asynchronous pipeline in accordance with some embodiments. Portion 400 includes stage 405 that accesses input data from input register 410 and provides output data to output register 415. Portion 400 is used in some embodiments of asynchronous pipeline 105 shown in FIG. In some variations, the input register 410 and the output register 415 are used to implement one or more of the registers 121-124 shown in FIG. 1, and stage 405 is the stage 110-110 shown in FIG. 1. Used to implement the corresponding stage of 114.

ステータスモジュール420は、ステージ405によって提供された出力信号を監視するように構成されている。ステータスモジュール420は、出力信号の特性を使用してステージ405の完了ステータスを決定する。例えば、ステータスモジュール420は、ステージ405によって生成された出力信号の変化を監視することができる。ステータスモジュール420は、出力信号の値が変化している場合に、ステージ405が現在のタスクを処理していると判別する。いくつかの変形例では、ステータスモジュール420は、出力信号の値が定常状態である又は閾値未満のレートで変化している場合に、ステージ405が現在のタスクの処理を完了したと判別する。   Status module 420 is configured to monitor the output signal provided by stage 405. Status module 420 uses the characteristics of the output signal to determine the completion status of stage 405. For example, status module 420 can monitor changes in the output signal generated by stage 405. The status module 420 determines that the stage 405 is processing the current task if the value of the output signal is changing. In some variations, status module 420 determines that stage 405 has completed processing of the current task if the value of the output signal is steady state or changing at a rate below the threshold.

また、一部400は、ステージ405の完了ステータスを推定するのに使用される信号を提供及び受信するモジュール425,430を含む。モジュール425,430は、図1に示すモジュール120,125,150〜152のいくつかの実施形態を実装するために使用される。モジュール425のいくつかの実施形態は、ステージ405が入力レジスタ410に記憶された入力データを使用してタスクの処理を開始したことを示す開始信号435を、ステータスモジュール420に提供する。開始信号435は、ステージ405が入力レジスタ410に記憶された入力データの処理を開始するのに使用される開始信号と同時に提供される。上述したように、モジュール430は、開始信号435に応じてステージ405によって生成された出力信号の監視を開始して、ステージ405の完了ステータスを決定する。ステータスモジュール420は、ステージ405の完了ステータスを示す信号をモジュール430に提供する。例えば、ステータスモジュール420は、ステージ405の完了ステータスが「処理中」である間に論理ロー信号を論理モジュール430にアサートし、次に、ステージ405の完了ステータスが「完了」に移行したことに応じて、論理ハイ信号をモジュール430にアサートすることができる。   Portion 400 also includes modules 425 and 430 that provide and receive signals that are used to estimate the completion status of stage 405. Modules 425 and 430 are used to implement some embodiments of the modules 120, 125 and 150 to 152 shown in FIG. Some embodiments of module 425 provide status module 420 with a start signal 435 indicating that stage 405 has begun processing of the task using the input data stored in input register 410. The start signal 435 is provided at the same time as the start signal used by the stage 405 to start processing the input data stored in the input register 410. As described above, module 430 initiates monitoring of the output signal generated by stage 405 in response to start signal 435 to determine the completion status of stage 405. Status module 420 provides a signal to module 430 indicating the completion status of stage 405. For example, status module 420 asserts a logic low signal to logic module 430 while the completion status of stage 405 is "in process", and then in response to the completion status of stage 405 transitioning to "complete". And a logic high signal may be asserted to module 430.

図5は、いくつかの実施形態による、レプリカクリティカルパスにおいて中間完了ステータス検出を実施する非同期パイプラインの一部500のブロック図である。一部500は、入力レジスタ510からの入力データにアクセスし、出力データを出力レジスタ515に提供するステージ505を含む。一部500は、図1に示す非同期パイプライン105のいくつかの実施形態において使用される。いくつかの変形例では、入力レジスタ510及び出力レジスタ515は、図1に示すレジスタ121〜124のうち1つ以上のレジスタを実装するために使用され、ステージ505は、図1に示すステージ110〜114のうち対応するステージを実装するために使用される。   FIG. 5 is a block diagram of a portion 500 of an asynchronous pipeline that implements intermediate completion status detection in a replica critical path, according to some embodiments. Portion 500 includes stage 505 that accesses input data from input register 510 and provides output data to output register 515. Portion 500 is used in some embodiments of asynchronous pipeline 105 shown in FIG. In some variations, input register 510 and output register 515 are used to implement one or more of registers 121-124 shown in FIG. 1, and stage 505 is shown in stages 110-110 of FIG. 1. Used to implement the corresponding stage of 114.

ステージ505は、ステージ505内の1つ以上のクリティカルパスのタイミングを複製するように構成されたロジックを含むレプリカクリティカルパス520に関連しており、これにより、レプリカクリティカルパス520は、ステージ505内のクリティカルパスが入力データの処理を完了するのに必要な時間に対応する時間間隔の後に入力データの処理を完了する。レプリカクリティカルパス520は、図3に示すレプリカクリティカルパス320といくつかの特徴を共有する。しかしながら、レプリカクリティカルパス520は、レプリカクリティカルパス520の始めと終わりの間の位置での中間完了ステータスを決定するのに使用されるロジック525(レジスタ、フリップフロップ、ラッチ又は他の回路等)を含むことから、レプリカクリティカルパス320とは異なる。例えば、ロジック525は、レプリカクリティカルパス520における処理の実行中の時点でレプリカクリティカルパス520によって生成された結果を記憶するレジスタを含むことができる。   Stage 505 is associated with a replica critical path 520 that includes logic configured to replicate the timing of one or more critical paths within stage 505, such that replica critical path 520 is within stage 505. The processing of the input data is completed after an interval of time corresponding to the time required for the critical path to complete the processing of the input data. The replica critical path 520 shares some features with the replica critical path 320 shown in FIG. However, replica critical path 520 includes logic 525 (such as a register, flip flop, latch or other circuit) used to determine an intermediate completion status at a location between the beginning and the end of replica critical path 520. Therefore, it is different from the replica critical path 320. For example, logic 525 may include a register that stores the results generated by replica critical path 520 at a point during execution of processing on replica critical path 520.

また、一部500は、ステージ505の完了ステータスを推定するのに使用される信号を提供及び受信するモジュール530,535を含む。モジュール530,535は、図1に示すモジュール120,125,150〜152のいくつかの実施形態を実装するために使用することができる。モジュール530のいくつかの実施形態は、入力データの処理をレプリカクリティカルパス520に開始させるための開始信号540を提供する。開始信号540もロジック525に提供される。開始信号540は、ステージ505が入力レジスタ510に記憶された入力データの処理を開始するのに使用される開始信号と同時に提供される。ロジック525は、例えば、レプリカクリティカルパス520によってロジック525で生成された信号の特性を監視することによって、開始信号540に応じて、レプリカクリティカルパス520の中間完了ステータスを決定することができる。例えば、ロジック525は、ロジック525が受信した信号の特定パターンを検出することによって、又は、ロジック525に関連するレジスタに記憶されたデータが定常状態に達したと判別することによって、レプリカクリティカルパス520が入力データに対する演算を完了したと判別することができる。ロジック525は、レプリカクリティカルパス520の中間完了ステータスを示す信号をモジュール535に提供することができる。本明細書で説明するように、ステージ505の推定中間完了時間と実際の中間完了時間との差を補償するために、レプリカクリティカルパス520に関してロジック525が決定した中間完了時間に対してレイテンシを加算又は減算することができる。   Portion 500 also includes modules 530 and 535 that provide and receive signals used to estimate the completion status of stage 505. Modules 530, 535 can be used to implement some embodiments of modules 120, 125, 150-152 shown in FIG. Some embodiments of module 530 provide start signal 540 to cause replica critical path 520 to begin processing input data. A start signal 540 is also provided to the logic 525. The start signal 540 is provided at the same time as the start signal used by the stage 505 to start processing the input data stored in the input register 510. The logic 525 may determine the intermediate completion status of the replica critical path 520 in response to the initiation signal 540, for example, by monitoring the characteristics of the signal generated in the logic 525 by the replica critical path 520. For example, the logic 525 may detect the particular pattern of the signal received by the logic 525 or may determine that the data stored in the register associated with the logic 525 has reached steady state. Can be determined that the operation on the input data has been completed. Logic 525 may provide a signal to module 535 indicating an intermediate completion status of replica critical path 520. Add latency to the intermediate completion time determined by logic 525 for replica critical path 520 to compensate for the difference between the estimated intermediate completion time of stage 505 and the actual intermediate completion time, as described herein Or can be subtracted.

中間完了ステータスは、ステージ505の一部の動作速度を変更するためにステージコントローラ(ステージコントローラ161〜164等)によって使用される。例えば、ステージコントローラは、ロジック525によって生成された完了ステータスを使用して、ロジック525に先行するステージ505の一部(例えばロジック525の上流にある回路)、又は、ロジック525の後続のステージ505の一部(例えばロジック525の下流にある回路)の動作速度を変更することができる。図5には単一のロジック525が示されているが、レプリカクリティカルパス520のいくつかの実施形態は、レプリカクリティカルパス520内の異なる場所に配置することができる追加の完了ステータスロジックを含む。さらに、いくつかの実施形態では、レプリカクリティカルパス520の1つ以上の中間完了ステータスを検出するロジックは、図3に示すモジュール330に実装されるロジック等のように、レプリカクリティカルパス520の全体の完了ステータスを検出するロジックと組み合わされる。   The intermediate completion status is used by a stage controller (such as stage controllers 161-164) to change the operating speed of a portion of stage 505. For example, the stage controller may use a completion status generated by logic 525 to cause a portion of stage 505 that precedes logic 525 (eg, a circuit upstream of logic 525) or a subsequent stage 505 of logic 525. The speed of operation of some (eg, circuitry downstream of logic 525) can be changed. Although a single logic 525 is shown in FIG. 5, some embodiments of replica critical path 520 include additional completion status logic that can be located at different locations within replica critical path 520. Further, in some embodiments, the logic for detecting one or more intermediate completion status of replica critical path 520 may be the entire replica critical path 520, such as the logic implemented in module 330 shown in FIG. Combined with logic to detect completion status.

図6は、いくつかの実施形態による、中間完了ステータス検出を実施する非同期パイプラインの一部600のブロック図である。一部600は、入力レジスタ610からの入力データにアクセスし、出力データを出力レジスタ615に提供するステージ605を含む。一部600は、図1に示す非同期パイプライン105のいくつかの実施形態において使用される。いくつかの変形例では、入力レジスタ610及び出力レジスタ615は、図1に示すレジスタ121〜124のうち1つ以上のレジスタを実装するために使用され、ステージ605は、図1に示すステージ110〜114のうち対応するステージを実装するために使用される。   FIG. 6 is a block diagram of a portion 600 of an asynchronous pipeline that implements intermediate completion status detection in accordance with some embodiments. Portion 600 includes a stage 605 that accesses input data from input register 610 and provides output data to output register 615. Portion 600 is used in some embodiments of asynchronous pipeline 105 shown in FIG. In some variations, the input register 610 and the output register 615 are used to implement one or more of the registers 121-124 shown in FIG. 1, and the stage 605 is the stage 110-110 shown in FIG. Used to implement the corresponding stage of 114.

ステージ605は、ステージ605に割り当てられたタスクの一部を実行する回路の領域620と、ステージ605に割り当てられたタスクの別の部分を実行する回路の領域625と、を含む。レジスタ630のセットが領域620,625の間に実装されている。レジスタ630は、領域620によって実行された処理の結果を記憶し、ステージ605における追加の処理のために結果を領域625に提供するように構成されている。レジスタ630は、領域620によってレジスタ630に提供される出力信号を監視するように構成されたステータスモニタ635に接続されている。ステータスモジュール635は、レジスタ630に記憶された値の特性を使用して、領域620の完了ステータスを決定する。例えば、ステータスモジュール635は、領域620によって生成された出力信号の変化を監視し、レジスタ630に記憶された出力信号の値が変化している場合に、領域620が現在のタスクを処理中であると判別することができる。また、ステータスモジュール635のいくつかの変形例は、レジスタ630に記憶された値が定常状態である又は閾値未満の速度で変化している場合に、領域620が現在のタスクの処理を完了したと判別することができる。   Stage 605 includes an area 620 of the circuit that performs part of the tasks assigned to stage 605 and an area 625 of the circuit that performs another part of the tasks assigned to stage 605. A set of registers 630 is implemented between regions 620 and 625. Register 630 is configured to store the results of the processing performed by region 620 and provide the results to region 625 for additional processing at stage 605. The register 630 is connected to a status monitor 635 configured to monitor the output signal provided to the register 630 by the area 620. Status module 635 uses the characteristics of the values stored in register 630 to determine the completion status of area 620. For example, status module 635 monitors for changes in the output signal generated by area 620, and area 620 is processing the current task if the value of the output signal stored in register 630 is changing. It can be determined that Also, some variations of status module 635 may assume that region 620 has completed processing of the current task if the value stored in register 630 is steady state or changing at a rate below a threshold. It can be determined.

また、一部600は、ステージ605の中間完了ステータスを推定するのに使用される信号を提供及び受信するモジュール640,645を含む。モジュール640,645は、図1に示すモジュール120,125,150〜152のいくつかの実施形態を実装するために使用される。モジュール640のいくつかの実施形態は、ステージ605が入力レジスタ610に記憶された入力データを使用してタスクの処理を開始したことを示す開始信号650を、ステータスモジュール635に提供する。開始信号650は、ステージ605が入力レジスタ610に記憶された入力データの処理を開始するのに使用される開始信号と同時に提供される。上述したように、ステータスモジュール635は、開始信号650に応じてレジスタ630に提供された出力信号の監視を開始し、領域620の完了ステータスを決定する。次に、ステータスモジュール635は、領域620の完了ステータスを示す信号655をモジュール645に提供する。例えば、ステータスモジュール635は、領域620の完了ステータスが「処理中」である間に論理ロー信号をモジュール645にアサートし、次に、領域620の完了ステータスが「完了」に移行したことに応じて論理ハイ信号をモジュール645にアサートすることができる。   Also, portion 600 includes modules 640 and 645 that provide and receive signals used to estimate the intermediate completion status of stage 605. Modules 640 and 645 are used to implement some of the embodiments of modules 120, 125 and 150-152 shown in FIG. Some embodiments of module 640 provide start signal 650 to status module 635 indicating that stage 605 has begun processing the task using the input data stored in input register 610. The start signal 650 is provided at the same time as the start signal used by the stage 605 to start processing the input data stored in the input register 610. As described above, status module 635 initiates monitoring of the output signal provided to register 630 in response to start signal 650 to determine the completion status of region 620. Status module 635 then provides signal 655 to module 645 indicating the completion status of region 620. For example, status module 635 asserts a logic low signal to module 645 while the completion status of region 620 is "in process", and then in response to the completion status of region 620 transitioning to "complete". A logic high signal can be asserted to module 645.

中間完了ステータスは、ステージ605の領域620,625の動作速度を変更するためにステージコントローラ(図1に示すステージコントローラ161〜164等)によって使用される。例えば、ステージコントローラは、ステータスモジュール635によって生成された完了ステータスを使用して、領域620,領域625又はこれらの組み合わせの動作速度を変更することができる。図6にはレジスタ630の単一のセット及び単一のステータスモジュール635が示されているが、一部600のいくつかの実施形態は、ステージ605内の異なる場所に配置された追加の完了ステータスロジックを含む。さらに、いくつかの実施形態では、領域620,625の1つ以上の中間完了ステータスを検出するロジックは、図4に示すモジュール420内で実装されるロジック等のように、ステージ605の全体の完了ステータスを検出するロジックと組み合わされる。   The intermediate completion status is used by the stage controller (such as stage controllers 161-164 shown in FIG. 1) to change the speed of operation of regions 620, 625 of stage 605. For example, the stage controller can use the completion status generated by status module 635 to change the operating speed of region 620, region 625, or a combination thereof. Although a single set of registers 630 and a single status module 635 are shown in FIG. 6, some embodiments of the portion 600 may have additional completion status located at different locations within the stage 605. Include logic Further, in some embodiments, the logic for detecting one or more intermediate completion status of regions 620, 625 may be complete for stage 605, such as the logic implemented in module 420 shown in FIG. Combined with logic to detect status.

図7は、いくつかの実施形態による、並列処理を実施する非同期パイプラインの一部700のブロック図である。一部700は、比較的高いレート又は速度でタスクを完了する高速ステージ705と、比較的低いレート又は速度でタスクを完了する低速ステージ710と、を含む。一部700は、図1に示す非同期パイプライン105のいくつかの実施形態において実装される。いくつかの変形例では、図1に示すステージ110〜114の各々は、並列に動作している複数のステージを表す。例えば、ステージ111は、異なる入力データに対する乗算演算を並列に実行するように構成された少なくとも一対のステージを表す。1つのステージは、比較的高いレート又は速度でタスクを完了することができ、1つの他のステージは、比較的低いレート又は速度でタスクを完了することができる。   FIG. 7 is a block diagram of a portion 700 of an asynchronous pipeline that implements parallel processing, according to some embodiments. Portion 700 includes a high speed stage 705 that completes the task at a relatively high rate or speed, and a low speed stage 710 that completes the task at a relatively low rate or speed. Portion 700 is implemented in some embodiments of asynchronous pipeline 105 shown in FIG. In some variations, each of stages 110-114 shown in FIG. 1 represents multiple stages operating in parallel. For example, stages 111 represent at least one pair of stages configured to perform multiplication operations on different input data in parallel. One stage can complete the task at a relatively high rate or rate, and one other stage can complete the task at a relatively low rate or rate.

非同期パイプラインは、フォーク715で並列ステージ705,710の実行を開始し、並列ステージ705,710の演算結果がジョイン720で組み合わされる。並列分岐は、並列ステージ705,710によるタスクの実行が両方とも完了するまでジョイン720を完了することができない。したがって、1つ以上のステージコントローラ(図1に示すステージコントローラ161〜164等)は、ステージ705,710の動作を、これらの完了ステータスに基づいて調整する。例えば、ステージコントローラは、比較的速いステージ705の動作速度を下げること、比較的遅いステージ710の動作速度を上げること、又は、これらの変更の組み合わせを実行することができ、これにより、両ステージ705,710は、並列ステージ705,710の目標完了時間とほぼ等しい時間に完了する。   The asynchronous pipeline starts execution of parallel stages 705 and 710 at fork 715, and the operation results of parallel stages 705 and 710 are combined at join 720. Parallel branches can not complete join 720 until both execution of tasks by parallel stages 705 and 710 are complete. Thus, one or more stage controllers (such as stage controllers 161-164 shown in FIG. 1) coordinate the operation of stages 705, 710 based on their completion status. For example, the stage controller can perform the operation of the relatively fast stage 705, slow down the operation of the relatively slow stage 710, or a combination of these modifications, thereby causing both stages 705 to operate. , 710 complete in a time approximately equal to the goal completion time of the parallel stages 705, 710.

図8は、いくつかの実施形態による、非同期パイプライン内のステージの動作速度を変更する方法800のフロー図である。方法800は、図1に示す処理システム100のいくつかの実施形態において実施される。ステージは、左側の隣接ステージによって生成された入力データを受信し、右側の隣接ステージに入力データとして提供される出力データを生成する。ステージのいくつかの実施形態は、図1に示すステージ112に対応する。この場合、左側の隣接ステージは図1に示すステージ111に対応し、右側の隣接ステージはステージ113に対応する。   FIG. 8 is a flow diagram of a method 800 of changing the operating speed of stages in an asynchronous pipeline, according to some embodiments. Method 800 is implemented in some embodiments of the processing system 100 shown in FIG. The stages receive input data generated by the left adjacent stage and generate output data to be provided as input data to the right adjacent stage. Some embodiments of the stage correspond to the stage 112 shown in FIG. In this case, the left adjacent stage corresponds to the stage 111 shown in FIG. 1 and the right adjacent stage corresponds to the stage 113.

ブロック805において、ステージコントローラ(図1に示すテージコントローラ162等)は、ステージの完了ステータスを示す情報にアクセスする。完了ステータスは、ステージが実行中のタスクを未だ完了していないことを示す情報を含むことができ、この場合、ステージの完了ステータスは「処理中」である。また、完了ステータスは、ステージがタスクを完了したことを示す情報を含むことができ、この場合、ステージの完了ステータスは「完了」である。さらに、完了ステータスは、本明細書で説明するように、ステージの一部又は領域に関連する中間完了ステータスを示す情報を含むことができる。   At block 805, the stage controller (such as the stage controller 162 shown in FIG. 1) accesses information indicating the completion status of the stage. The completion status may include information indicating that the stage has not completed the task being executed, in which case the completion status of the stage is "in process". Also, the completion status may include information indicating that the stage has completed the task, in which case the completion status of the stage is "done". Additionally, the completion status may include information indicating an intermediate completion status associated with a portion or region of the stage, as described herein.

ブロック810において、ステージコントローラは、左側の隣接ステージの完了ステータスを示す情報にアクセスする。完了ステータスは、左側の隣接ステージが実行中のタスクを未だ完了していないことを示す情報を含むことができ、この場合、左側の隣接ステージの完了ステータスは「処理中」である。また、完了ステータスは、左側の隣接ステージがタスクを完了したことを示す情報を含むことができ、この場合、左側の隣接ステージの完了ステータスは「完了」である。さらに、完了ステータスは、本明細書で説明するように、左側の隣接ステージの一部又は領域に関連する中間完了ステータスを示す情報を含むことができる。ステージのいくつかの実施形態は、非同期パイプラインの左側の隣接ステージに関連付けられていない。例えば、図1に示すステージ110は、左側の隣接ステージに関連付けられておらず、この場合、ブロック810をバイパスすることができる。   At block 810, the stage controller accesses information indicating the completion status of the left adjacent stage. The completion status may include information indicating that the left adjacent stage has not yet completed the task being executed, in which case the completion status of the left adjacent stage is “in process”. Also, the completion status may include information indicating that the left adjacent stage has completed the task, in which case the completion status of the left adjacent stage is “Done”. Additionally, the completion status may include information indicating an intermediate completion status associated with a portion or region of the left adjacent stage, as described herein. Some embodiments of the stage are not associated with the left adjacent stage of the asynchronous pipeline. For example, the stage 110 shown in FIG. 1 is not associated with the left adjacent stage, and in this case, block 810 can be bypassed.

ブロック815において、ステージコントローラは、右側の隣接ステージの完了ステータスを示す情報にアクセスする。完了ステータスは、右側の隣接ステージが実行中のタスクを未だ完了していないことを示す情報を含むことができ、この場合、右側の隣接ステージの完了ステータスは「処理中」である。また、完了ステータスは、右側の隣接ステージがタスクを完了したことを示す情報を含むことができ、この場合、右側の隣接ステージの完了ステータスは「完了」である。さらに、完了ステータスは、本明細書で説明するように、右側の隣接ステージの一部又は領域に関連する中間完了ステータスを示す情報を含むことができる。ステージのいくつかの実施形態は、非同期パイプラインの右側の隣接ステージに関連付けられていない。例えば、図1に示すステージ114は、右側の隣接ステージに関連付けられておらず、この場合、ブロック815をバイパスすることができる。   At block 815, the stage controller accesses information indicating the completion status of the right adjacent stage. The completion status may include information indicating that the right adjacent stage has not yet completed the task being executed, in which case the completion status of the right adjacent stage is "in process". Also, the completion status may include information indicating that the right adjacent stage has completed the task, in which case the completion status of the right adjacent stage is "completed". Additionally, the completion status may include information indicating an intermediate completion status associated with a portion or region of the right adjacent stage, as described herein. Some embodiments of the stage are not associated with the right adjacent stage of the asynchronous pipeline. For example, the stage 114 shown in FIG. 1 is not associated with the right adjacent stage, which may bypass block 815 in this case.

ブロック820において、ステージコントローラは、ステージの完了ステータスと、左側の隣接ステージの完了ステータス(利用可能な場合)と、右側の隣接ステージの完了ステータス(利用可能な場合)と、に基づいて、ステージの動作速度を変更する。本明細書で説明するように、ステージ又はステージの一部に印加されるバッファドライブ強度又は電圧を変更することによって、動作速度を変更することができる。   At block 820, the stage controller is based on the stage's completion status, the completion status of the left adjacent stage (if available), and the completion status of the right adjacent stage (if available). Change the operating speed. As described herein, the speed of operation can be changed by changing the buffer drive strength or voltage applied to the stage or a portion of the stage.

いくつかの実施形態では、図1〜図8を参照して上述した非同期パイプライン等の上述した装置及び技術は、1つ以上の集積回路(IC)デバイス(集積回路パッケージ又はマイクロチップとも呼ばれる)を備えるシステムで実施される。これらのICデバイスの設計及び製造には、通常、電子設計自動化(EDA)及びコンピュータ支援設計(CAD)ソフトウェアツールが使用される。これらの設計ツールは、通常、1つ以上のソフトウェアプログラムとして表される。1つ以上のソフトウェアプログラムは、回路を製造するための製造システムを設計又は適合するための処理の少なくとも一部を実行するように1つ以上のICデバイスの回路を表すコードで動作するようにコンピュータシステムを操作する、コンピュータシステムによって実行可能なコードを含む。このコードは、命令、データ、又は、命令及びデータの組み合わせを含むことができる。設計ツール又は製造ツールを表すソフトウェア命令は、通常、コンピューティングシステムがアクセス可能なコンピュータ可読記憶媒体に記憶される。同様に、ICデバイスの設計又は製造の1つ以上のフェーズを表すコードは、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体に記憶されてもよく、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体からアクセスされてもよい。   In some embodiments, the above-described apparatus and techniques, such as the asynchronous pipeline described above with reference to FIGS. 1-8, comprise one or more integrated circuit (IC) devices (also referred to as integrated circuit packages or microchips) In a system comprising Electronic design automation (EDA) and computer aided design (CAD) software tools are typically used to design and manufacture these IC devices. These design tools are usually represented as one or more software programs. One or more software programs are computer configured to operate with code representing a circuit of one or more IC devices to perform at least a portion of a process for designing or adapting a manufacturing system for manufacturing a circuit. Contains code that is executable by a computer system to operate the system. The code can include instructions, data, or a combination of instructions and data. Software instructions representative of design tools or manufacturing tools are typically stored on a computer readable storage medium accessible by a computing system. Similarly, code representing one or more phases of IC device design or manufacture may be stored on the same computer readable storage medium or different computer readable storage medium, from the same computer readable storage medium or from different computer readable storage medium It may be accessed.

コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の記憶媒体、又は、記憶媒体の組み合わせを含むことができる。かかる記憶媒体には、限定されないが、光媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)、キャッシュ)、不揮発性メモリ(例えば、読み出し専用メモリ(ROM)、フラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体は、コンピュータシステム(例えば、システムRAM又はROM)に内蔵されてもよいし、コンピュータシステム(例えば、磁気ハードドライブ)に固定的に取り付けられてもよいし、コンピュータシステム(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)に着脱可能に取り付けられてもよいし、有線又は無線のネットワークを介してコンピュータシステム(例えば、ネットワークアクセス可能なストレージ(NAS))に接続されてもよい。   Computer readable storage media may include any storage media or combination of storage media accessible by a computer system in use to provide instructions and / or data to the computer system. Such storage media include, but are not limited to, optical media (e.g., compact discs (CDs), digital versatile discs (DVDs), Blu-ray (R) discs), magnetic media (e.g., floppy discs, magnetic) Tape, magnetic hard drive) volatile memory (eg random access memory (RAM), cache) non-volatile memory (eg read only memory (ROM) flash memory) or micro electromechanical system (MEMS) based Storage media may be included. The computer readable storage medium may be embedded in a computer system (e.g. system RAM or ROM) or fixedly attached to the computer system (e.g. magnetic hard drive) or may be a computer system (e.g. optical) It may be removably attached to a disk or universal serial bus (USB) based flash memory, or connected to a computer system (eg network accessible storage (NAS)) via a wired or wireless network It is also good.

いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行されると、上記の技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ等のソリッドステート記憶デバイス、キャッシュ、ランダムアクセスメモリ(RAM)、又は、他の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。   In some embodiments, some aspects of the above techniques may be implemented by one or more processors of a processing system executing software. The software is stored in non-transitory computer readable storage medium or includes one or more sets of executable instructions tangibly embodied on non-transitory computer readable storage medium. The software may include instructions and specific data that, when executed by the one or more processors, operate the one or more processors to perform one or more aspects of the above techniques. Non-transitory computer readable storage media may include, for example, magnetic or optical disk storage devices, solid state storage devices such as flash memory, cache, random access memory (RAM), or other non-volatile memory devices etc. it can. Executable instructions stored in a non-transitory computer readable storage medium may be source code, assembly language code, object code, or other instruction format interpretable or executable by one or more processors.

上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。   In addition to the ones described above, not all activities or elements described in the summary description may be required, and part of a particular activity or device may not be required, and one or more additional activities It should be noted that it may be implemented and one or more additional elements may be included. Furthermore, the order in which activities are listed is not necessarily the order in which they are performed. Also, the concepts have been described with reference to specific embodiments. However, one of ordinary skill in the art will understand that various changes and modifications can be made without departing from the scope of the present invention as set forth in the claims. Accordingly, the specification and drawings are to be considered in an illustrative rather than a restrictive sense, and all of these variations are intended to be included within the scope of the present invention.

利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。   Benefits, other advantages and solutions to problems have been described above with regard to specific embodiments. However, benefits, advantages, solutions to problems, and features that may benefit or manifest any benefits, advantages, or solutions are essential, essential, or important to any or all of the claims. It is not interpreted as an essential feature. Further, the disclosed invention is a method apparent to those skilled in the art having the benefit of the teachings herein, and can be modified and practiced in a different but similar manner, and thus the specific embodiments described above. Is merely an example. The details of the arrangements or designs presented herein, other than as described in the claims below, are not limiting. Thus, it is apparent that the particular embodiments described above may be altered or modified and that all such variations are considered to be within the scope of the disclosed invention. Accordingly, the protection sought herein is as set forth in the claims below.

Claims (15)

第1ステージ(112)と、少なくとも1つの第2ステージ(111)と、を備える非同期パイプライン(105)と、
前記第1ステージの動作速度の変更を示す制御信号を前記第1ステージに提供するコントローラ(162)であって、前記変更は、前記第1ステージの完了ステータスと、前記少なくとも1つの第2ステージの少なくとも1つの完了ステータスと、の比較に基づいて決定される、コントローラ(162)と、を備える、
装置(100)。
An asynchronous pipeline (105) comprising a first stage (112) and at least one second stage (111);
A controller (162) for providing a control signal to the first stage indicating a change in the operating speed of the first stage, the change being a completion status of the first stage and the at least one second stage. And (d) a controller (162) determined based on the comparison with the at least one completion status.
Device (100).
前記少なくとも1つの第2ステージは、前記第1ステージに対する入力データを生成する左側ステージ(111)と、前記第1ステージによって生成された出力データを受信する右側ステージ(113)と、のうち少なくとも1つを備える、
請求項1の装置。
The at least one second stage comprises at least one of a left stage (111) generating input data for the first stage and a right stage (113) receiving output data generated by the first stage. Have one,
The device of claim 1.
前記コントローラは、前記第1ステージに印加される動作電圧の変更を示す制御信号を前記第1ステージに提供するように構成されており、前記動作電圧の変更は、前記第1ステージと前記少なくとも1つの第2ステージとの完了ステータスの比較に基づいて決定される、
請求項1の装置。
The controller is configured to provide the first stage with a control signal indicating a change in operating voltage applied to the first stage, wherein the changing of the operating voltage is performed by the first stage and the at least one. Determined based on the comparison of completion status with two second stages,
The device of claim 1.
前記第1ステージの部分間で信号をドライブするための少なくとも1つのバッファ(226)であって、前記コントローラは、前記少なくとも1つのバッファの少なくとも1つのドライブ強度の少なくとも1つの変更を示す制御信号を提供するように構成されており、前記少なくとも1つのドライブ強度の少なくとも1つの変更は、前記第1ステージと前記少なくとも1つの第2ステージとの完了ステータスの比較に基づいて決定される、少なくとも1つのバッファ(226)をさらに備える、
請求項1の装置。
At least one buffer (226) for driving signals between portions of the first stage, the controller controlling signals indicating at least one change in at least one drive strength of the at least one buffer; And / or at least one change in the at least one drive strength is determined based on a comparison of completion status of the first stage and the at least one second stage. Further comprising a buffer (226),
The device of claim 1.
前記第1ステージ及び前記少なくとも1つの第2ステージの完了ステータスを決定する複数のモジュール(150,151)をさらに備える、
請求項1の装置。
The plurality of modules (150, 151) for determining the completion status of the first stage and the at least one second stage,
The device of claim 1.
前記複数のモジュールは、前記第1ステージ及び前記少なくとも1つの第2ステージによるタスクの実行の開始に応じて、前記第1ステージ及び前記少なくとも1つの第2ステージによって生成された出力信号を監視することによって、前記第1ステージ及び前記少なくとも1つの第2ステージの完了ステータスを決定する、
請求項5の装置。
The plurality of modules monitor output signals generated by the first stage and the at least one second stage in response to initiation of execution of a task by the first stage and the at least one second stage. Determine the completion status of the first stage and the at least one second stage by
The device of claim 5.
前記第1ステージのクリティカルパスに対応する第1レプリカクリティカルパス(320)と、
前記少なくとも1つの第2ステージに関連する少なくとも1つの第2レプリカクリティカルパスであって、前記複数のモジュールは、前記第1ステージ及び前記少なくとも1つの第2ステージによるタスクの実行の開始と同時に前記第1レプリカクリティカルパス及び前記少なくとも1つの第2レプリカクリティカルパスに提供された入力信号に応じて、前記第1レプリカクリティカルパス及び前記少なくとも1つの第2レプリカクリティカルパスによって生成された出力信号に基づいて、前記第1ステージ及び前記少なくとも1つの第2ステージの完了ステータスを決定する、少なくとも1つの第2レプリカクリティカルパスと、をさらに備える、
請求項5の装置。
A first replica critical path (320) corresponding to the first stage critical path;
At least one second replica critical path associated with the at least one second stage, the plurality of modules simultaneously with the start of execution of a task by the first stage and the at least one second stage According to one replica critical path and an input signal provided to the at least one second replica critical path, based on an output signal generated by the first replica critical path and the at least one second replica critical path At least one second replica critical path determining the completion status of the first stage and the at least one second stage;
The device of claim 5.
異なる命令のタイプ、命令オペコード又は入力データの特性に関する推定完了時間を示す少なくとも1つのルックアップテーブル(235)であって、前記第1ステージ及び前記少なくとも1つの第2ステージの完了ステータスは、前記第1ステージ及び前記少なくとも1つの第2ステージによって実行されたタスクに関連する命令のタイプ、命令オペコード又は入力データの特性のうち少なくとも1つによって示される完了時間に基づいて決定される、少なくとも1つのルックアップテーブル(235)をさらに備える、
請求項1の装置。
At least one look-up table (235) indicating estimated completion times for different instruction types, instruction opcodes or characteristics of the input data, the completion status of the first stage and the at least one second stage being: At least one look determined based on a completion time indicated by at least one of a type of an instruction associated with a task performed by one stage and the at least one second stage, an instruction opcode or a characteristic of input data Further comprising an up table (235),
The device of claim 1.
前記変更は、前記第1ステージ及び前記少なくとも1つの第2ステージ内の所定の位置で決定された部分的な完了ステータスに基づいて決定される、
請求項1の装置。
The change is determined based on a partial completion status determined at a predetermined position in the first stage and the at least one second stage.
The device of claim 1.
非同期パイプライン(105)の第1ステージ(112)の完了ステータスと、前記非同期パイプラインの少なくとも1つの第2ステージ(111)の少なくとも1つの完了ステータスと、を比較することと、
前記第1ステージの動作速度の変更を示す制御信号を前記第1ステージに提供すること(820)であって、前記変更は前記比較に基づいて決定される、ことと、を含む、
方法。
Comparing the completion status of the first stage (112) of the asynchronous pipeline (105) with the completion status of at least one second stage (111) of the asynchronous pipeline;
Providing (820) a control signal to the first stage indicating a change in the operating speed of the first stage, wherein the change is determined based on the comparison.
Method.
前記少なくとも1つの第2ステージは、前記第1ステージに対する入力データを生成する左側ステージ(111)と、前記第1ステージによって生成された出力データを受信する右側ステージ(113)と、のうち少なくとも1つを備える、
請求項10の方法。
The at least one second stage comprises at least one of a left stage (111) generating input data for the first stage and a right stage (113) receiving output data generated by the first stage. Have one,
11. The method of claim 10.
前記比較に基づいて、前記第1ステージに印加される動作電圧の変更を決定することをさらに含み、
前記制御信号を提供することは、前記第1ステージに印加される動作電圧の変更を示す制御信号を前記第1ステージに提供することを含む、
請求項10の方法。
Further comprising determining a change in operating voltage applied to the first stage based on the comparison;
Providing the control signal may include providing a control signal to the first stage indicating a change in operating voltage applied to the first stage.
11. The method of claim 10.
前記第1ステージの部分間で信号をドライブするための少なくとも1つのバッファによって使用される少なくとも1つのドライブ強度の少なくとも1つの変更を決定することであって、前記少なくとも1つのドライブ強度の少なくとも1つの変更は、前記比較に基づいて決定される、ことをさらに含み、
前記制御信号を提供することは、前記少なくとも1つのバッファの少なくとも1つのドライブ強度の少なくとも1つの変更を示す制御信号を提供することを含む、
請求項10の方法。
Determining at least one change in at least one drive strength used by at least one buffer to drive a signal between portions of the first stage, the at least one drive strength at least one Further including that the change is determined based on the comparison;
Providing the control signal includes providing a control signal indicative of at least one change in drive strength of at least one of the at least one buffer.
11. The method of claim 10.
前記第1ステージ及び前記少なくとも1つの第2ステージに関連する複数のモジュールを使用して、前記第1のスージ及び前記少なくとも1つの第2ステージの完了ステータスを決定することをさらに含む、
請求項10の方法。
Further comprising determining a completion status of the first swage and the at least one second stage using a plurality of modules associated with the first stage and the at least one second stage,
11. The method of claim 10.
前記完了ステータスを決定することは、前記第1ステージ及び前記少なくとも1つの第2ステージによるタスクの実行の開始に応じて、前記第1ステージ及び前記少なくとも1つの第2ステージによって生成された出力信号を監視することを含む、
請求項14の方法。
Determining the completion status may include outputting an output signal generated by the first stage and the at least one second stage in response to initiation of execution of a task by the first stage and the at least one second stage. Including monitoring,
The method of claim 14.
JP2019503302A 2016-07-21 2017-07-20 Controlling the operating speed of stages in an asynchronous pipeline Active JP6893971B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021092900A JP7465848B2 (en) 2016-07-21 2021-06-02 Controlling the operating speed of stages in an asynchronous pipeline

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/216,094 2016-07-21
US15/216,094 US10698692B2 (en) 2016-07-21 2016-07-21 Controlling the operating speed of stages of an asynchronous pipeline
PCT/US2017/042981 WO2018017785A2 (en) 2016-07-21 2017-07-20 Controlling the operating speed of stages of an asynchronous pipeline

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2021092900A Division JP7465848B2 (en) 2016-07-21 2021-06-02 Controlling the operating speed of stages in an asynchronous pipeline

Publications (3)

Publication Number Publication Date
JP2019521454A true JP2019521454A (en) 2019-07-25
JP2019521454A5 JP2019521454A5 (en) 2020-08-27
JP6893971B2 JP6893971B2 (en) 2021-06-23

Family

ID=60988654

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019503302A Active JP6893971B2 (en) 2016-07-21 2017-07-20 Controlling the operating speed of stages in an asynchronous pipeline
JP2021092900A Active JP7465848B2 (en) 2016-07-21 2021-06-02 Controlling the operating speed of stages in an asynchronous pipeline

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2021092900A Active JP7465848B2 (en) 2016-07-21 2021-06-02 Controlling the operating speed of stages in an asynchronous pipeline

Country Status (6)

Country Link
US (2) US10698692B2 (en)
EP (1) EP3488340B1 (en)
JP (2) JP6893971B2 (en)
KR (2) KR102663653B1 (en)
CN (1) CN109478141B (en)
WO (1) WO2018017785A2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10503544B2 (en) * 2016-10-17 2019-12-10 Toyota Jidosha Kabushiki Kaisha Efficient mapping from task graphs to dynamic system platforms
KR102309429B1 (en) * 2017-03-20 2021-10-07 현대자동차주식회사 Vehicle And Control Method Thereof
US10326452B2 (en) * 2017-09-23 2019-06-18 Eta Compute, Inc. Synchronizing a self-timed processor with an external event
US11334696B2 (en) * 2017-09-28 2022-05-17 Intel Corporation Systems and methods for dynamic voltage and frequency scaling in programmable logic devices
JP2020165713A (en) * 2019-03-28 2020-10-08 株式会社デンソーテン Inspection data output device, display system and inspection data output method
US11467845B2 (en) * 2020-10-20 2022-10-11 Micron Technology, Inc. Asynchronous pipeline merging using long vector arbitration

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04314161A (en) * 1991-04-11 1992-11-05 Mitsubishi Electric Corp information processing equipment
US20020002664A1 (en) * 1999-01-11 2002-01-03 International Business Machines Corporation System and method for power optimization in parallel units
JP2002229690A (en) * 2001-01-30 2002-08-16 Hitachi Ltd Semiconductor device
US6502202B1 (en) * 2000-10-06 2002-12-31 Elan Research Self-adjusting multi-speed pipeline
JP2005310100A (en) * 2004-03-22 2005-11-04 Sharp Corp Data processing device
JP2006500813A (en) * 2002-09-20 2006-01-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Adaptive data processing scheme based on delay prediction
WO2007089014A1 (en) * 2006-02-03 2007-08-09 National University Corporation Kobe University Digital vlsi circuit and image processing device into which the same is assembled
JP2010020598A (en) * 2008-07-11 2010-01-28 Univ Of Tsukuba Network system and power control method in network system
JP2010141641A (en) * 2008-12-12 2010-06-24 Ricoh Co Ltd Semiconductor circuit, output buffer waveform adjusting method for semiconductor circuit
US20140253189A1 (en) * 2013-03-08 2014-09-11 Advanced Micro Devices, Inc. Control Circuits for Asynchronous Circuits

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100239749B1 (en) * 1997-04-11 2000-01-15 윤종용 Tft fabrication method structure of lcd, test apparatus and method for gross test
US6182233B1 (en) * 1998-11-20 2001-01-30 International Business Machines Corporation Interlocked pipelined CMOS
CA2407491A1 (en) * 2000-04-25 2001-11-01 The Trustees Of Columbia University In The City Of New York Circuits and methods for high-capacity asynchronous pipeline processing
US6369614B1 (en) 2000-05-25 2002-04-09 Sun Microsystems, Inc. Asynchronous completion prediction
US6590424B2 (en) * 2000-07-12 2003-07-08 The Trustees Of Columbia University In The City Of New York High-throughput asynchronous dynamic pipelines
JP2006039754A (en) * 2004-07-23 2006-02-09 Canon Inc Image processing apparatus and method
JP4261453B2 (en) 2004-09-30 2009-04-30 京セラミタ株式会社 Memory control device
US8677103B1 (en) 2004-10-20 2014-03-18 Marvell Isreal (M.I.S.L) Ltd. Asynchronous pipelined data path with data transition
GB2459652B (en) 2008-04-28 2010-09-22 Imagination Tech Ltd Controlling instruction scheduling based on the space in a trace buffer
JP5720243B2 (en) 2010-12-28 2015-05-20 富士通セミコンダクター株式会社 Processor verification program
US20150341032A1 (en) 2014-05-23 2015-11-26 Advanced Micro Devices, Inc. Locally asynchronous logic circuit and method therefor

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04314161A (en) * 1991-04-11 1992-11-05 Mitsubishi Electric Corp information processing equipment
US20020002664A1 (en) * 1999-01-11 2002-01-03 International Business Machines Corporation System and method for power optimization in parallel units
US6502202B1 (en) * 2000-10-06 2002-12-31 Elan Research Self-adjusting multi-speed pipeline
JP2002229690A (en) * 2001-01-30 2002-08-16 Hitachi Ltd Semiconductor device
JP2006500813A (en) * 2002-09-20 2006-01-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Adaptive data processing scheme based on delay prediction
JP2005310100A (en) * 2004-03-22 2005-11-04 Sharp Corp Data processing device
WO2007089014A1 (en) * 2006-02-03 2007-08-09 National University Corporation Kobe University Digital vlsi circuit and image processing device into which the same is assembled
JP2010020598A (en) * 2008-07-11 2010-01-28 Univ Of Tsukuba Network system and power control method in network system
JP2010141641A (en) * 2008-12-12 2010-06-24 Ricoh Co Ltd Semiconductor circuit, output buffer waveform adjusting method for semiconductor circuit
US20140253189A1 (en) * 2013-03-08 2014-09-11 Advanced Micro Devices, Inc. Control Circuits for Asynchronous Circuits

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
IK JOON CHANG, SANG PHILL PARK, KAUSHIK ROY: "Exploring Asynchronous Design Techniques for Process-Tolerant and Energy-Efficient Subthreshold Oper", IEEE JOURNAL OF SOLID-STATE CIRCUITS, vol. 45, no. 2, JPN6020048021, 2 February 2010 (2010-02-02), pages 401 - 410, XP011301265, ISSN: 0004406573, DOI: 10.1109/JSSC.2009.2036764 *
JAYARAM NATARAJAN, SAHIL KAPOOR, DEBESH BHATTA, ABHIJIT CHATTERJEE, ADIT SINGH: ""Timing Variation Adaptive Pipeline Design : Using Probabilistic Activity Completion Sensing With Ba", PROCEEDINGS OF 27TH INTERNATIONAL CONFERENCE ON VLSI DESIGN AND 13TH INTERNATIONAL CONFERENCE ON EMB, JPN6020048018, 5 January 2014 (2014-01-05), pages 122 - 127, XP032563286, ISSN: 0004406571, DOI: 10.1109/VLSID.2014.28 *
JOSEP CARMONA, JORDI CORTADELLA, MIKE KINSHINEVSKY, ALEXANDER TAUBIN: "Elastic Circuits", IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, vol. 28, no. 10, JPN6020048024, 18 September 2009 (2009-09-18), pages 1437 - 1455, ISSN: 0004406572 *
清水雅一,阿部公輝: "局所同期型非同期式回路におけるローカルタイミング信号生成回路の低消費電力設計", 電子情報通信学会技術研究報告, vol. Vol.103,No.480,(DC2003-34〜77), JPN6020048016, 21 November 2003 (2003-11-21), JP, pages 259 - 264, ISSN: 0004406570 *

Also Published As

Publication number Publication date
US11842199B2 (en) 2023-12-12
CN109478141B (en) 2024-06-04
US20180024837A1 (en) 2018-01-25
EP3488340A2 (en) 2019-05-29
KR102663653B1 (en) 2024-05-10
EP3488340B1 (en) 2023-09-06
KR20210074411A (en) 2021-06-21
US20210089324A1 (en) 2021-03-25
JP6893971B2 (en) 2021-06-23
JP2021166053A (en) 2021-10-14
JP7465848B2 (en) 2024-04-11
EP3488340A4 (en) 2020-08-19
KR102266303B1 (en) 2021-06-17
KR20190022858A (en) 2019-03-06
CN109478141A (en) 2019-03-15
US10698692B2 (en) 2020-06-30
WO2018017785A3 (en) 2018-03-08
WO2018017785A2 (en) 2018-01-25

Similar Documents

Publication Publication Date Title
JP7465848B2 (en) Controlling the operating speed of stages in an asynchronous pipeline
JP6561172B2 (en) Reciprocal quantum logic (RQL) circuit synthesis
US8739101B1 (en) Systems and methods for reducing logic switching noise in parallel pipelined hardware
US8701069B1 (en) Systems and methods for optimizing allocation of hardware resources to control logic in parallel pipelined hardware
US9367286B2 (en) Crossing pipelined data between circuitry in different clock domains
US9110689B2 (en) Automatic pipeline stage insertion
CN204790975U (en) Data path assembly line
Zhang et al. Automatic Register Transfer level CAD tool design for advanced clock gating and low power schemes
US20150341032A1 (en) Locally asynchronous logic circuit and method therefor
JP5023652B2 (en) Circuit generation system, circuit generation method, and circuit generation program
Nag et al. An autonomous clock gating technique in finite state machines based on registers partitioning
Liu et al. Clock domain crossing aware sequential clock gating
Sharmaa Implementation of an RTL synthesizable asynchronous FIFO for conveying data by avoiding actual data movement via FIFO
US20230060111A1 (en) System and method for electronic circuit simulation
JP2009301192A (en) Simulation device and simulation method
JP2008181170A (en) Control circuit for asynchronous circuit
Suzuki et al. Instruction rearrangement and path limitation for ALU cascading
Jain et al. Design of Globally Asynchronous Locally Synchronous (GALS) System using FPGA
Naresh et al. Power Reduction with FlipFlop Grouping in Data Driven Clock Gating
Golani et al. Area-efficient asynchronous multilevel single-track pipeline template
Ramachandran et al. High Speed ALU for High Speed Processor Using C-Element
JP2010113405A (en) Device for synthesizing semiconductor integrated circuit
Taylor Null Convention Logic Asynchronous Register Full Path Completion Feedback Loop Using Two Stage Voltage Divider.
JPH09160665A (en) Processor unit
JP2013140884A (en) Lsi design method

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200714

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200714

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200714

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201120

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20201207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210312

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210602

R150 Certificate of patent or registration of utility model

Ref document number: 6893971

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