JP2016091362A - Information processing device, information processing method, and program - Google Patents
Information processing device, information processing method, and program Download PDFInfo
- Publication number
- JP2016091362A JP2016091362A JP2014226144A JP2014226144A JP2016091362A JP 2016091362 A JP2016091362 A JP 2016091362A JP 2014226144 A JP2014226144 A JP 2014226144A JP 2014226144 A JP2014226144 A JP 2014226144A JP 2016091362 A JP2016091362 A JP 2016091362A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- counter
- value
- influence
- inter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 44
- 238000003672 processing method Methods 0.000 title claims abstract description 7
- 239000000872 buffer Substances 0.000 claims abstract description 82
- 238000000034 method Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 7
- 239000012536 storage buffer Substances 0.000 description 22
- 230000000694 effects Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 17
- 238000012790 confirmation Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- Advance Control (AREA)
Abstract
Description
本発明は、情報処理装置、情報処理方法、及び、そのためのプログラムに関する。 The present invention relates to an information processing apparatus, an information processing method, and a program therefor.
特許文献1は、演算リソースおよびレジスタに対応したビジー管理カウンタを設け、発行待ち命令の実行判定にて関連する演算リソースのビジー管理カウンタ値を入力し、その値から最速で発行できるタイミングを算出して発行待ち時間を決定することでR→W(読み出し→書き込み)の関係にある後続命令を最速なタイミングで発行可能にする技術を開示する。
特許文献2は、ビジーフラグを用いて、命令の追い越し発行が可能な、ベクトル処理装置について開示している。
特許文献3は、ビジーフラグの更新が遅れる場合でも、パイプライン演算器の使用効率を低下させずに処理できる情報処理装置について開示している。
特許文献1は、演算リソース毎のビジー管理カウンタを想定しており、演算リソースが多い場合に必要なハードウェア量が多くなってしまうという問題があった。また、演算リソースが多くなると、対応するビジー管理カウンタから値を選択して比較する機能を実現する際に、高速クロックに対応した実装が難しいという問題があった。
特許文献2は、ビジーフラグを用いており、特許文献1と同様の課題がある。
また、特許文献3についても、ビジーフラグを用いており、特許文献1と同様の課題がある。
Also,
このように、上記特許文献では、演算リソースおよびレジスタに対応した数のビジー管理カウンタを設ける必要がある。したがって、管理対象が増えるに従いハードウェア量も増大してしまう。また、管理対象の増加に従い、ビジー管理カウンタも増えるため、命令の実行判定において多数のビジー管理カウンタの値を入力し比較する必要がある。このことから回路遅延が増大し、高速クロックへの対応が難しい、という問題があった。 Thus, in the above-mentioned patent document, it is necessary to provide the number of busy management counters corresponding to the operation resources and registers. Therefore, the amount of hardware increases as the number of management targets increases. Also, as the number of management targets increases, the number of busy management counters also increases. Therefore, it is necessary to input and compare a number of busy management counter values when determining the execution of an instruction. For this reason, there is a problem that the circuit delay increases and it is difficult to cope with a high-speed clock.
このため、本発明の目的は、上述した、管理対象の演算リソースが増えるに従いハードウェア量も増大してしまい、高速クロックへの対応が難しくなるという課題を解決することにある。 Therefore, an object of the present invention is to solve the above-described problem that the amount of hardware increases as the number of computing resources to be managed increases, making it difficult to cope with a high-speed clock.
本発明の情報処理装置は、演算器パイプラインのパイプライン処理を実行するパイプライン処理実行手段を、パイプライン制御手段が制御する情報処理装置であって、前記パイプライン制御手段が、命令発行待機バッファに存在する命令に対して、使用するリソースが一致する、スケジューリング済みの命令の影響が無くなるタイミングまでの第1の時間を算出して命令間依存関係カウンタに前記第1の時間に対応するカウンタ値を格納し、前記演算器パイプラインにおけるパス競合が発生しないタイミングまでの第2の時間を算出してパス競合カウンタに前記第2の時間に対応するカウンタ値を格納するカウンタセット値生成手段と、実行確定した命令が、直後に選択された命令に与える影響を示す、直前命令影響反映値を算出するスケジューリング確定命令影響反映手段と、前記命令間依存関係カウンタのカウンタ値、前記パス競合カウンタのカウンタ値、及び、前記直前命令影響反映値を比較して、最短となる命令の実行待ち時間を算出する、競合調停手段と、を包含する。 An information processing apparatus according to the present invention is an information processing apparatus in which pipeline processing means controls pipeline processing execution means for executing pipeline processing of an arithmetic unit pipeline, wherein the pipeline control means is configured to wait for issuing an instruction. A counter corresponding to the first time is calculated in the inter-instruction dependency counter by calculating a first time until an instruction existing in the buffer matches a resource to be used and when the influence of the scheduled instruction is eliminated. Counter set value generation means for storing a value, calculating a second time until a timing at which no path contention occurs in the computing unit pipeline, and storing a counter value corresponding to the second time in a path contention counter; A schedule to calculate the value that reflects the effect of the immediately preceding instruction, indicating the effect that the confirmed instruction has on the instruction selected immediately after The calculation instruction waiting time of the shortest instruction is calculated by comparing the counter value of the instruction for determining the influence of the ringing instruction, the counter value of the inter-instruction dependency counter, the counter value of the path conflict counter, and the reflection value of the immediately preceding instruction influence. Competing mediation means.
本発明の情報処理方法は、命令発行待機バッファに存在する命令に対して、使用するリソースが一致する、スケジューリング済みの命令の影響が無くなるタイミングまでの第1の時間を算出して命令間依存関係カウンタに前記第1の時間に対応するカウンタ値を格納し、前記演算器パイプラインにおけるパス競合が発生しないタイミングまでの第2の時間を算出してパス競合カウンタに前記第2の時間に対応するカウンタ値を格納し、実行確定した命令が、直後に選択された命令に与える影響を示す、直前命令影響反映値を算出し、前記命令間依存関係カウンタのカウンタ値、前記パス競合カウンタのカウンタ値、及び、前記直前命令影響反映値を比較して、最短となる命令の実行待ち時間を算出する。 The information processing method of the present invention calculates the first time until the timing at which the influence of the scheduled instruction that the resource to be used matches with the instruction existing in the instruction issue waiting buffer is eliminated, and the inter-instruction dependency The counter value corresponding to the first time is stored in the counter, the second time until the timing at which no path contention occurs in the computing unit pipeline is calculated, and the path contention counter corresponds to the second time. The counter value is stored, and the immediately preceding instruction influence reflection value indicating the influence of the instruction that has been confirmed to be executed on the immediately selected instruction is calculated, and the counter value of the inter-instruction dependency counter and the counter value of the path conflict counter are calculated. And the previous instruction influence reflection value is compared to calculate the execution waiting time of the shortest instruction.
本発明のコンピュータプログラムは、命令発行待機バッファに存在する命令に対して、使用するリソースが一致する、スケジューリング済みの命令の影響が無くなるタイミングまでの第1の時間を算出して命令間依存関係カウンタに前記第1の時間に対応するカウンタ値を格納し、前記演算器パイプラインにおけるパス競合が発生しないタイミングまでの第2の時間を算出してパス競合カウンタに前記第2の時間に対応するカウンタ値を格納する処理と、実行確定した命令が、直後に選択された命令に与える影響を示す、直前命令影響反映値を算出する処理と、前記命令間依存関係カウンタのカウンタ値、前記パス競合カウンタのカウンタ値、及び、前記直前命令影響反映値を比較して、最短となる命令の実行待ち時間を算出する処理と、をコンピュータに実行させる。 The computer program according to the present invention calculates a first time until a timing at which the influence of a scheduled instruction that matches resources used for an instruction existing in an instruction issuance waiting buffer is eliminated, and an inter-instruction dependency counter A counter value corresponding to the first time is stored, a second time until a timing at which no path contention occurs in the computing unit pipeline is calculated, and a counter corresponding to the second time is calculated in a path contention counter A process of storing a value, a process of calculating an immediately preceding instruction influence reflecting value indicating an influence of an instruction whose execution has been confirmed on an immediately selected instruction, a counter value of the inter-instruction dependency counter, and the path contention counter And a process of calculating the execution waiting time of the shortest instruction by comparing the counter value of To be executed by a computer.
本発明は、演算リソースが多い場合でも比較的少ないハードウェア量で効率的に命令を実行することが可能である。 The present invention can efficiently execute instructions with a relatively small amount of hardware even when there are many computing resources.
発明を実施するための第一の形態について、図面を参照して詳細に説明する。 A first embodiment for carrying out the invention will be described in detail with reference to the drawings.
図1は、第一の実施形態に係る、情報処理装置1の構成の一例を示すブロック図である。
FIG. 1 is a block diagram illustrating an example of the configuration of the
情報処理装置1は、パイプライン処理実行部10、及び、パイプライン制御部20を包含する。
The
図2は、パイプライン処理実行部10の構成の一例を示す図である。
FIG. 2 is a diagram illustrating an example of the configuration of the pipeline
パイプライン処理実行部10は、本実施形態の制御の対象である演算パイプラインの構成を含む。
The pipeline
演算パイプ制御部160は、ベクトル命令の発行が確定すると、ベクトルパイプ制御信号を送出する。
When the issuance of a vector instruction is confirmed, the arithmetic
演算レジスタV0〜V3:100〜103は、演算パイプ制御部160からの指示(レジスタ読み出し指示、及び、レジスタ格納指示)に従って、命令で指定されたVL(Vector Length:命令毎に指定可能なベクトル長)分を連続して、データの読み出し、及び、書き込み動作を行う。また、演算レジスタV0〜V3:100〜103は、連続したデータ読み出しに対応していて、本例では最大4要素を、4サイクルに渡って連続して読み出し、または、書き込むことができる。なお、連続する要素数は、命令毎に指定可能である。 The arithmetic registers V0 to V3: 100 to 103 are VL (Vector Length: vector length that can be specified for each instruction) in accordance with instructions (register reading instruction and register storing instruction) from the arithmetic pipe control unit 160. ) Continuously, data reading and writing operations are performed. The arithmetic registers V0 to V3: 100 to 103 correspond to continuous data reading, and in this example, a maximum of 4 elements can be read or written continuously over 4 cycles. The number of consecutive elements can be specified for each instruction.
オペランドセレクタ110、111、112、113は、演算器の入力毎に存在し、演算パイプ制御部160からの指示(オペランドセレクタ指示)に従って、演算パイプ制御部160から指示のあった演算レジスタ出力を選択する。
積和演算器120は、演算パイプ制御部160からの指示(演算実行指示)に従って、VL分の演算を実行する。積和演算器120は、信号線900を介してクロスバ(X−bar)106に演算結果を出力する。
The product-
論理演算器130は、演算パイプ制御部160からの指示(演算実行指示)に従って、VL分の演算を実行する。論理演算器130は、信号線901を介してクロスバ106に演算結果を出力する。
The
クロスバ106は、演算パイプ制御部160の指示(X−barセレクト指示)に従って、演算レジスタ100、101、102、103に書き込むデータを選択してVL分連続して出力する。
The
ストアデータセレクタ105は、演算パイプ制御部160からの指示(Store Select 指示)に従って、演算レジスタ100、101、102、103の読み出しデータを選択し、メインメモリへのストアパスにデータを出力する。
The
ロードバッファ150、151は、演算レジスタ100〜103を効率的に利用するため、ロードバッファ読み出し指示に基づくロード命令でメモリから読み出したデータがFill(充填)するまで格納しておき、演算レジスタ100〜103への転送実行の指示に従い、指定された要素数分を連続して転送する。
The
図3は、パイプライン制御部20の構成の一例を示す図である。
FIG. 3 is a diagram illustrating an example of the configuration of the
命令緩衝バッファ201は、命令をバッファして命令発行待機バッファ210に空きがあれば命令を送出する。
The
命令間依存関係チェック部202は、命令発行待機バッファ210に格納する予定の命令と、命令発行待機バッファ210およびスケジューリング済命令バッファ240に格納されている先行命令についての依存関係を確認する。そして、命令間依存関係チェック部202は、命令発行待機バッファ210に格納する予定の命令と命令発行待機バッファ210に格納されている命令との間に依存関係がある場合は、命令間依存関係フラグ212に依存関係ありを示す値をセットする。また、命令間依存関係チェック部202は、命令発行待機バッファ210に格納する予定の命令とスケジューリング済命令バッファ240との間に、依存関係およびパス競合関係がある場合、それぞれの関係が解消するタイミングまでの時間(第1の時間と第2の時間)を算出(計数)する。さらに、命令間依存関係チェック部202は、命令間依存関係カウンタ213およびパス競合カウンタ214に、算出された第1の時間と第2の時間に対応する値(カウンタ値とも言う)をセットする。
The inter-instruction
ロードバッファFill判定部203は、ロードバッファ204にロード命令で指定された数の要素がメモリからロードされたことを確認して、ロード命令を実行するための要素が全て揃った場合にFilledフラグ215に所定のフラグ値をセットする機能を持つ。
The load buffer
命令発行待機バッファ210は、命令格納バッファ211、命令間依存関係フラグ212、命令間依存関係カウンタ213、パス競合カウンタ214、及び、Filledフラグ215から構成される。図3では、図の下側にある各バッファ及びカウンタに格納される命令及びカウンタ値が、最も古い命令及びカウンタ値となるよう順次格納される。なお、命令間依存関係フラグ212は、一番下に位置するバッファを用意していないが、これは、この位置の命令格納バッファ211に格納される命令は最も古い命令で、最優先であることが決定されているためである。
The instruction
命令格納バッファ211は、命令発行待機バッファ210内で命令本体を格納するバッファである。
The
命令間依存関係フラグ212は、命令格納バッファ211に格納されている命令間の依存関係を示し、この格納値が「1」である場合は、2つの命令に依存関係があって命令スケジュール順番を守る必要性を示し、格納値が「0」である場合は、依存関係が無いため、状況によっては先行して受けた命令を追い越してスケジューリングされる。なお、命令格納バッファ211のより下側のバッファに格納されている古い命令は、それよりも上側に格納されている新しい命令の制約を受けずにスケジューリングされるべきものである。すなわち、古い命令の新しい命令に対する依存関係は、保持不要である。言い換えれば、図3に示すように、新しい命令ほどより多くの古い命令に対する依存関係をもっており、その結果、命令間依存関係フラグ212のビット幅が命令毎に異なっている。
The
命令間依存関係カウンタ213は、発行がスケジューリングされた命令に対する依存関係が解消するタイミングまでの第1の時間に対応する値を保持する。その値は、命令間依存関係チェック部202によって算出され格納された値である。命令格納バッファ211に命令を格納するタイミングまたは先行命令の発行が確定したタイミングで、命令間依存関係カウンタ213は、W→R、W→W、R→Wの関係全てを満たす最も小さい値を選択してセットする(ただし、W:書き込み、R:読み出しを表すものとする)。最も小さい値を選択する方法としては、値の大小を比較する回路を使う方法、値をビット並びに展開して論理積を取る方法、または、それらを混在させる方法のいずれを選択しても良い。命令間依存関係カウンタ213は、1サイクル毎に1ずつ減算し、0となったら減算を止める。
The
パス競合カウンタ214は、発行がスケジューリングされた命令に対し、演算器やストアパス等のデータ転送経路による競合を起さないタイミングまでの第2の時間に対応する値を保持する。その値は、命令間依存関係チェック部202によって算出され格納された値である。また、パス競合カウンタ214は、命令格納バッファ211に命令を格納するタイミング、または先行命令の発行が確定したタイミングで、値をセットする。演算パイプラインの構成によっては、データ転送経路の複数のポイントで競合が発生する場合があり、その場合、パス競合カウンタ214は、競合を回避する最も小さい値を選択してセットする。最も小さい値を選択する方法として、パス競合カウンタ214は、値の大小を比較する回路を使う方法、値をビット並びに展開して論理積を取る方法、または、それらを混在させる方法を用いても良い。パス競合カウンタ214は、1サイクル毎に1ずつ減算し、0となったら減算を止める。なお、高速クロックで動作させる装置において、競合確認ポイントが多く、大小比較する回路遅延が問題となるような場合は、パス競合カウンタ214を複数設ける構成も想定される。
The path conflict counter 214 holds a value corresponding to the second time until a timing at which no conflict occurs due to a data transfer path such as an arithmetic unit or a store path for an instruction scheduled to be issued. The value is a value calculated and stored by the inter-instruction
Filledフラグ215は、ロード命令を実行するための要素が全て揃ったことを示すフラグである。ロードに関係無い演算命令やストア命令などが命令格納バッファ211にセットされる場合、Filledフラグ215は、「1」をセットする。
The
命令実行スケジューリング部220は、命令格納バッファ211に保持された命令の中からスケジューリング可能な命令を選択し、命令間の整合性を保った上で最も早く実行可能なタイミングを算出する。
The instruction
スケジューリング可能な命令となる条件は、例えば、(1)命令間依存関係フラグ212が全て0、(2)命令間依存関係カウンタ213の値が7以下、(3)パス競合カウンタ214の値が7以下、(4)Filledフラグ215の値が1、である。
For example, (1) the
なお、(2)、(3)の値は、本実施形態の値であり、別の閾値を採ることも可能である。命令実行スケジューリング部220は、これらの条件を全て満たした命令の中で最も古い命令を選択し、その命令に対応する命令間依存関係カウンタ213、及び、パス競合カウンタ214のカウンタ値を、命令発行待機バッファ210から読み出す。そして、命令実行スケジューリング部220は、読み出したカウンタ値を図5の表に基づいてデコード値に変換する。さらに、命令実行スケジューリング部220は、選択された命令とその命令の直前に発行が確定した命令(直前の命令)との依存関係を加味して、最速となる実行待ちタイミングを決定する。なお、直前の命令との依存関係やパス競合関係でスケジューリング不可となった場合(デコード後のbitパタン中に「1」が存在しない場合)、命令実行スケジューリング部220は、スケジューリングを中止し、有効な命令を出力しない。
Note that the values of (2) and (3) are the values of the present embodiment, and other threshold values can be taken. The instruction
競合調停部221は、命令間依存関係カウンタ213のカウンタ値、パス競合カウンタ214のカウンタ値、及び、直前命令影響反映値(後出)を比較して、最短となる命令の実行待ち時間を算出する。競合調停部221は、例えば、最若番優先の固定順位アービタ回路である。
The
スケジューリング確定命令影響反映部231は、スケジューリング確定した命令が直後に選択された命令に与える影響を計算して、その影響が無くなる最も早いタイミングを決定し、デコードを行い命令実行スケジューリング部220に送出する(直前命令影響反映値)。
The scheduling confirmed instruction
カウンタセット値生成部232は、スケジューリング確定した命令が使用するリソースと命令発行待機バッファ210に存在する命令の使用リソースが一致して影響を受ける場合に、その影響が無くなる最も早いタイミングまでの時間を算出して、その時間に対応する値を命令発行待機バッファ210のカウンタ(命令間依存関係カウンタ213)にセットする。例えば、W→Rの関係とR→Wの関係の両方が存在するような場合には、カウンタセット値生成部232は、両方の影響が無くなる最も早いタイミングを算出する。また、パス競合カウンタ214においても、複数の経路で影響がある場合、カウンタセット値生成部232は、全ての経路で影響が無くなる最も早いタイミングまでの時間を算出して、命令発行待機バッファ210のカウンタ(パス競合カウンタ214)にセットする。
The counter set
スケジューリング済命令バッファ240は、命令実行スケジューリング部220にてスケジューリングが確定した命令を、後続命令に対して影響が無くなるまで保持する機能を持つ。スケジューリング済命令格納レジスタ241は、スケジューリングが確定した命令を格納する。カウンタ(エントリ期間カウンタ)242は、スケジューリング済命令格納レジスタ241に対応するカウンタで、このカウンタに後続命令に対する影響が無くなるタイミングまでの時間に対応する値がセットされる。カウンタ242は、サイクル毎に減算して、後続命令に影響を与えない値(本例では「1」)となったらリセットする。
The scheduled
実行待機バッファ250は、命令実行スケジューリング部220にてスケジューリングが確定した命令を格納し、指示された時間経過後に命令を実行する指示を出す。実行待機命令格納レジスタ251は、実行を待機する命令を格納する。実行待機命令カウンタ252は、命令を実行するタイミングを格納し、所定の値、例えばカウンタの値が「0」になったら、対応する命令の命令実行指示を演算パイプ制御部160に出力する。なお、複数命令のカウンタ値が同時に「0」になった場合は、実行待機命令カウンタ252は、同時に実行を開始するものとする。
The
ここで、ストアデータセレクタ105、クロスバ106、オペランドセレクタ110、111、112、113、積和演算器120、論理演算器130、演算パイプ制御部160、命令間依存関係チェック部202、ロードバッファFill判定部203、競合調停部221、スケジューリング確定命令影響反映部231、及び、カウンタセット値生成部232は、例えば、論理回路等のハードウェア回路で構成される。
Here, the
また、演算レジスタ100、101、102、103、ロードバッファ150、151、命令緩衝バッファ201、命令発行待機バッファ210、命令格納バッファ211、命令間依存関係フラグ212、命令間依存関係カウンタ213、パス競合カウンタ214、Filledフラグ215、実行確定命令レジスタ222、実行待ち時間223、スケジューリング済命令バッファ240、スケジューリング済命令格納レジスタ241、カウンタ242、実行待機バッファ250、実行待機命令格納レジスタ251、実行待機命令カウンタ252は、例えば、半導体メモリ等の記憶装置で構成される。 また、情報処理装置1は、コンピュータ装置によって実現されてもよい。この場合、ストアデータセレクタ105、クロスバ106、オペランドセレクタ110、111、112、113、積和演算器120、論理演算器130、演算パイプ制御部160、命令間依存関係チェック部202、ロードバッファFill判定部203、競合調停部221、スケジューリング確定命令影響反映部231、及び、カウンタセット値生成部232は、コンピュータである情報処理装置1のプロセッサが、図示されないメモリ上のプログラムを実行することで実現されてもよい。プログラムは、不揮発性メモリに格納されてもよい。
Also,
図4は、情報処理装置1の動作を示すタイムチャートである。
FIG. 4 is a time chart showing the operation of the
また、図6〜10は、図4の動作の詳細をクロック毎に示した図である。 6 to 10 show details of the operation of FIG. 4 for each clock.
なお、ここでは、下記の命令列が実行されるケースを想定している。いずれも、ベクトル長=4(VL=4)の命令であるとする。命令1)乃至命令5)は、次のとおりである。
1) ADD V0 ← V0 + V3
2) AND V3 ← V0 & V1
3) LD V0 ← M
4) LD V1 ← M
5) AND V2 ← V0 & V1
ここで、
ADD、+:加算
AND、&:論理積
LD、M:ロード
V0〜V3:パイプライン処理実行部10の演算レジスタ100、101、102、103を示す。また矢印「←」は、図4中の命令列の枠内では「<−」で示されている。
Here, it is assumed that the following instruction sequence is executed. In either case, it is assumed that the instruction is vector length = 4 (VL = 4). Instructions 1) to 5) are as follows.
1) ADD V0 ← V0 + V3
2) AND V3 ← V0 & V1
3) LD V0 ← M
4) LD V1 ← M
5) AND V2 ← V0 & V1
here,
ADD, +: addition AND, &: logical product LD, M: load V0 to V3: operation registers 100, 101, 102, 103 of the pipeline
なお、命令列においては、矢印を挟んだ右辺と左辺が対になり、各命令の動作を記述している。例えば、命令1)では、「+」と「ADD」、同様に、命令3)及び命令4)では、「M(「メモリアクセス」等を意味する)」と「LD」である。 In the instruction sequence, the right side and the left side across the arrow are paired to describe the operation of each instruction. For example, in the instruction 1), “+” and “ADD”, and in the instructions 3) and 4), “M (means“ memory access ”)” and “LD”.
図5は、カウンタ値のデコードに用いるデコードテーブル(カウンタ値デコード対応表)を示す。 FIG. 5 shows a decoding table (counter value decoding correspondence table) used for decoding the counter value.
デコードテーブルは、左側のカウンタ値に対応するデコード値を示す。そして、デコード値に「1」がある箇所が発行スケジューリング可能であることを示している。また、本例では、カウンタ値「8」以上の場合はスケジューリング不可、等とする。なお、図5のデコードテーブルは、以下の説明の中で用いる。 The decode table indicates a decode value corresponding to the counter value on the left side. A portion having a decode value of “1” indicates that issue scheduling is possible. In this example, scheduling is impossible when the counter value is “8” or more, and so on. The decode table in FIG. 5 is used in the following description.
以下、図4のタイムチャート、及び、図6〜10を用いて、時間の経過に沿ってクロックのカウント順に、情報処理装置1の動作を説明する。
Hereinafter, the operation of the
Clock1:
命令緩衝バッファ201に、命令1)が格納される。この時、命令発行待機バッファ210(命令格納バッファ211)には命令が格納されていないので、命令間依存関係チェック部202の出力(以下、単に出力と記載)は、先行命令との依存関係が全く無いことを示す「000000」を出力する。
Clock1:
Instruction 1) is stored in the
なお、出力は、命令緩衝バッファ201に格納された命令と、命令格納バッファ211の各命令との依存関係の有無を1/0で示すもので、例えば、左端から順に、211#0、211#1、211#2(以下、省略)との依存関係を、順次、示すものとする。
The output indicates the presence / absence of the dependency relationship between the instruction stored in the
Clock2:
命令1)が命令格納バッファ211#0に格納され、命令緩衝バッファ201には、命令2)が入る。命令1)と命令2)の間にはW→Rの関係があるので、出力202は、「100000」となる。
Clock2:
Instruction 1) is stored in
命令格納バッファ211に命令が格納される際、ロード命令以外は条件が揃ったとしてFilledフラグ215には「1」がセットされる。
When an instruction is stored in the
命令格納バッファ211#0に格納された命令1)は、最優先でスケジュール可能として選択される。そして、対応する、命令間依存関係カウンタ213、及び、パス競合カウンタ214のカウンタ値から、どちらも「0」の値が読み出されてデコードされる。この時、図5のデコードテーブルに従い、「11111111」を得る。
The instruction 1) stored in the
直前にスケジュールが確定した命令は存在しないため、命令実行スケジューリング部220は、スケジューリング確定命令影響反映部231から、影響が無い意味の「11111111」(直前命令影響反映値)を受け取り、全て論理積した「11111111」をleading0回路(リーディング0回路)に供給し待ち時間を算出し、「10000000」(待ち時間)を生成する。「10000000」は、一番左のbitが「1」となっており、0サイクル後に発行可能であることを示している。
Since there is no instruction for which the schedule has been confirmed immediately before, the instruction
Clock3:
命令1)が実行確定となり、待ち時間が「0」であったため、減算を行わず待ち時間「0」となり、実行確定命令レジスタ222に格納される。命令2)が命令格納バッファ211#1に格納され、命令緩衝バッファ201には命令3)が入る。命令3)と命令1)の間には、W→Wの関係とR→Wの関係があり、命令3)と命令2)の間には、R→Wの関係があるため、出力は、どちらとも依存関係があることを示す「110000」となる。
Clock3:
Since the instruction 1) is determined to be executed and the waiting time is “0”, the subtraction is not performed and the waiting time becomes “0” and is stored in the execution determined
命令2)もロード命令では無いため、Filledフラグ215には、「1」がセットされる。
Since the instruction 2) is not a load instruction, the
命令実行スケジューリング部220は、命令1)の実行が確定しているため、命令1)を除いた命令格納バッファ211から最優先の命令2)を選択して、スケジューリングを行う。
Since the execution of the instruction 1) is confirmed, the instruction
カウンタ値は、命令間依存関係カウンタ213、及び、パス競合カウンタ214どちらも「0」なので、図5に従い、どちらも「11111111」が出力される。
The counter value is “0” for both the
次に、直前に命令1)の実行が確定しているので、スケジューリング確定命令影響反映部231が、命令1)が直後に選択された命令2)に与える影響を計算する。命令1)と命令2)は、使う演算器が異なるので、関係するのは、V0レジスタについてのW→Rの関係と、V3レジスタのR→Wの関係の2つである。W→Rの関係の場合、待ち時間+先行命令TATの式で計算できるので、0+5=5となる。また、R→Wの関係の場合、待ち時間−後続命令TAT+1の式で計算できるので、0−3+1=−2となるが、0以下は0とする。2つの関係から得られた「5」と「0」を考慮すると、データ一貫性を満たして最も早い実行時間である「5」が選出される(すなわち、「5」がある以上、他が「0」であっても、「5」のカウントが完了するのを待たなければならない。)。スケジューリング確定命令影響反映部231は、この「5」を図5に従ってデコードして「00000111」を得る。そして、命令実行スケジューリング部220(競合調停部221)は、「11111111」、「11111111」、「00000111」の3つの値を論理積して得られた「00000111」をleading0回路に入力して「00000100」を得る。これは、実行待ち時間が5で、5サイクル後に発行可能であることを意味している。
Next, since the execution of the instruction 1) is confirmed immediately before, the scheduling confirmed instruction
Clock4:
Clock3で実行待ち時間を算出した命令2)が実行確定命令レジスタ222に格納され、実行待ち時間として5−1=4を意味する「00001000」が格納される。
Clock4:
The instruction 2) for which the execution waiting time is calculated in
また、Clock3で実行確定命令レジスタ222に格納されていた命令1)は、実行待機バッファ250(詳しくは、実行待機命令格納レジスタ251であるが、以下、このように記載する)に移動する。実行待ち時間についてもエンコード後「0」が実行待機命令カウンタ252にセットされる。実行待機命令カウンタ252の値が「0」なので、対応する命令1)は、次にClock5で実行開始される。
In addition, the instruction 1) stored in the execution fixed
命令1)は、スケジューリング済命令バッファ240(詳しくは、スケジューリング済命令格納レジスタ241であるが、以下、このように記載する)にも格納される。この時、対応するカウンタ242にも、実行待ち時間+演算TAT(ADD)+VLで計算される0+5+4=9がセットされる。
The instruction 1) is also stored in the scheduled instruction buffer 240 (specifically, the scheduled
命令格納バッファ211には、命令3)が格納されるが、命令2)に対してR→Wの依存関係があることから、対応するbitに「1」をセットするところ、命令2)が実行確定命令レジスタ222に格納されたことを受けキャンセルされて、命令間依存関係フラグ212には「0」がセットされる。
Instruction 3) is stored in the
命令1)が実行確定したのを受け、命令2)に対応する命令間依存関係カウンタ213には、0+5=5で計算される「5」からサイクル毎の減算を考慮した「4」がセットされる。
After the execution of the instruction 1) is confirmed, the
命令3)が命令格納バッファ210に格納されるが、命令3)はロード命令で、本来メモリからのロードデータ要素が全て揃わないとFilledフラグ215には「1」がセットされないが、本動作説明では説明簡略化のため全ロードデータ要素がロードバッファに存在する前提としているため、Filledフラグ215には「1」がセットされる。
The instruction 3) is stored in the
このため、命令3)は、依存関係が無いためスケジューリング可能として選択される。 For this reason, the instruction 3) is selected as schedulable because there is no dependency.
命令3)は、直前に実行確定命令レジスタ222に格納された命令2)とはV0レジスタについてR→Wの依存関係があることから、R→W:待ち時間−後続命令TAT+1の計算を行い4−3+1=2をデコードして「00111111」を得る(直前命令影響反映値)。競合調停部221は、カウンタ値(命令間依存関係カウンタ213の値:「11111111」、及び、パス競合カウンタ214の値:「11111111」)からデコードされた値と論理積を取ってleading0回路に入力し、「00100000」を得る。
Since the instruction 3) has an R → W dependency on the V0 register with the instruction 2) stored in the execution
以降、特徴的な動作について説明する。 Hereinafter, characteristic operations will be described.
Clock5:
命令1)が実行されて実行待機バッファ250から削除されると同時に、命令2)が実行待ち時間「4」としてセットされる。
Clock5:
At the same time that the instruction 1) is executed and deleted from the
同時に、命令2)は、スケジューリング済命令バッファ240に、実行待ち時間+演算TAT(ANDの)+VL=4+3+4=11の値と共にセットされる。
At the same time, instruction 2) is set in the scheduled
命令3)は、算出された「1」と共に実行確定命令レジスタ222に格納される。
The instruction 3) is stored in the execution fixed
命令4)が命令格納バッファ210に格納される際、実行が確定している命令2)との依存関係から算出された「1」が命令間依存関係カウンタ213にセットされる。
When the instruction 4) is stored in the
直前実行確定命令222の命令3)は、命令4)に対してロードバッファからの転送パスも異なる(パス競合カウンタ214のカウンタデコード値:「11111111」である)など依存関係等の影響は無いので「11111111」(直前命令反映値)が得られ、命令間依存関係カウンタ213から読み出した値の「1」を示す「01111111」と論理積を取って、leading0に入力すると「01000000」が得られる。命令3)は、実行確定命令レジスタ222に減算後の「1」と共に格納される。
The instruction 3) of the immediately-preceding
Clock6(格納データ図は省略):
図4に示すように、命令3)が実行待機バッファ250に値「1」と共に格納される。また、命令4)は、確定命令レジスタ222に、減算後の「0」と共に格納される。
Clock 6 (stored data diagram is omitted):
As shown in FIG. 4, the instruction 3) is stored in the
Clock7(格納データ図は省略):
命令3)に対応する実行待機命令カウンタ252のカウンタ値が減算されて「0」となる。命令4)は、実行待機バッファ250に実行待機命令カウンタ252のカウンタ値「0」と共に格納される。命令3)および命令4)は、どちらも実行待機命令カウンタ252のカウンタ値が「0」となったので、次のサイクルで同時に実行可能である。
Clock 7 (stored data diagram is omitted):
The counter value of the execution
以降の説明は省略するが、このように本実施形態の命令発行制御方式においては、複数の命令を同時に発行するスケジューリングを行うことが可能である。 Although the following description is omitted, in this way, in the instruction issue control system of this embodiment, it is possible to perform scheduling for issuing a plurality of instructions simultaneously.
次に、スケジューリング済命令バッファ240が4個のみの構成を想定した場合に、図4と同じ命令列を実行した場合の動作を、図11を用いて説明する。 Next, an operation when the same instruction sequence as that in FIG. 4 is executed when a configuration with only four scheduled instruction buffers 240 is assumed will be described with reference to FIG.
図11は、スケジューリング済命令バッファ240が4個のみの構成の場合の情報処理装置1の動作を示すタイムチャートである。
FIG. 11 is a time chart showing the operation of the
以下、図4の動作と異なる特徴的な箇所を中心に説明する。 In the following, a description will be given focusing on characteristic points different from the operation of FIG.
Clock6で、命令格納バッファ210から命令5)が読み出される。この時、スケジューリング済命令バッファ240は、4個中3個を使用しており、実行確定命令レジスタ222に命令4)が格納されているので、合計4個を使うことが確定している。このため、次のClock7で、実行確定命令レジスタ222に命令5)は、格納されない。
At
Clock8〜Clock10までは、スケジューリング済命令バッファ240を4個全て使用している状況は変わらない。
From
Clock11において、スケジューリング済命令バッファ240に格納されている命令1)に対応するカウンタ242が「2」を示す(詳細図は省略)。このカウンタ値が「1」の時、次のサイクルでリセットされることが判っているため、次のサイクルで命令5)が実行確定命令レジスタ222に格納される。
In
Clock12において、命令5)が実行確定命令レジスタ222に格納される。
In
Clock13において、命令5)が実行待機バッファ250に値「0」と共に格納され、次のClock14で命令の実行が開始される。
In
このように、情報処理装置1は、バッファ数に制限があった場合にもレジスタ一貫性を保って命令発行することが可能である。
As described above, the
次に、図12を用いて、前述の命令とは異なる命令列をスケジューリングする動作を説明する。 Next, an operation for scheduling an instruction sequence different from the above-described instruction will be described with reference to FIG.
図12は、異なる命令列を使用した場合の情報処理装置1の動作を示すタイムチャートである。
FIG. 12 is a time chart showing the operation of the
ここでは、下記の命令列が実行されるケースを想定している。なお、いずれもベクトル長=4(VL=4)の命令である。命令1)乃至命令4)は、次のとおりである。
1) LD V1 ← M
2) MPY V2 ← V0 * V1
3) LD V0 ← M
4) AND V1 ← V0 & V3
ここで、
MPY、*:乗算
を示す。また矢印「←」は、図12中の命令列の枠内では「<−」で示されている。なお、前述の命令列と同じ記号は説明を省略する。
Here, it is assumed that the following instruction sequence is executed. Both instructions are vector length = 4 (VL = 4). The instructions 1) to 4) are as follows.
1) LD V1 ← M
2) MPY V2 ← V0 * V1
3) LD V0 ← M
4) AND V1 ← V0 & V3
here,
MPY, *: indicates multiplication. The arrow “←” is indicated by “<−” in the frame of the instruction sequence in FIG. The description of the same symbols as those in the above instruction sequence is omitted.
この命令列で特徴的なのは、命令2)で読み出されたレジスタを命令3)でロードデータ書き込みに再利用して、命令4)でAND命令に使っている点である。従って、この例のように、命令2)と命令3)の間で、V0レジスタについてR→Wの依存関係がある場合にも、命令3)を命令2)の前に実行開始して演算器を効率的に使用できるようスケジューリング可能である。 What is characteristic about this instruction sequence is that the register read in the instruction 2) is reused for writing the load data in the instruction 3) and used in the AND instruction in the instruction 4). Therefore, as in this example, even when there is an R → W dependency on the V0 register between the instruction 2) and the instruction 3), the execution of the instruction 3) is started before the instruction 2). Can be scheduled to be used efficiently.
図12において、命令2)はClock8で実行開始しているのに対して、命令3)は1サイクル前のClock7で実行開始しているのが上の動作を示している。 In FIG. 12, the instruction 2) starts executing at Clock8, while the instruction 3) starts executing at Clock7 one cycle before.
上記のように、本実施形態では、発行待機命令毎に、用意したカウンタ213および214を設ける。これにより、例えば、演算レジスタ数が32個で発行待機命令バッファ数が16個の構成の場合に、通常は、少なくともレジスタ一貫性を保つためのビジー管理、リードパス、およびライトパスについてビジーを管理する必要があるため少なくとも32個*3=96個のビジーを管理するカウンタが必要であった。しかし、本実施形態では、16個*2=32個のカウンタで済むので、64個のカウンタ分のハードウェア量が削減できる。
As described above, in the present embodiment, the
また、カウンタの値をデコード表に従ってデコードし、論理積後のビット列をleading0回路に入力してデータ一貫性に矛盾無い最短の待ち時間を算出する方法を取ることで、高クロックに対応した高効率な発行制御を行うことが可能である。本実施形態は、
論理積とleading0回路を使用可能なビット列を実現するデコード表が特徴的で、主に、命令実行スケジューリング部220、競合調停回路221、スケジューリング確定命令影響反映部231、カウンタセット値生成部232が連携して実現している。
In addition, by decoding the counter value according to the decoding table, and inputting the bit string after the logical product to the leading 0 circuit to calculate the shortest waiting time that is consistent with the data consistency, high efficiency corresponding to the high clock can be obtained. Issuance control. This embodiment
The decoding table that realizes the bit string that can use the logical product and the leading0 circuit is characteristic, and mainly the instruction
本実施形態に係る情報処理装置1は、以下に記載するような効果を奏する。
The
その効果は、演算リソースが多い場合でも比較的少ないハードウェア量で効率的に命令を実行することが可能である。 The effect is that instructions can be executed efficiently with a relatively small amount of hardware even when there are many computing resources.
その理由は、先行命令に対する発行抑止期間を管理するカウンタを発行待機命令毎に用意する方式とし、命令間の依存関係を時間的に管理する命令間依存関係カウンタと、演算器パイプラインのビジーを管理するパス競合カウンタと、直前に実行確定した命令に対する影響も考慮して待ち時間を算出し、これら3つの値を比較して最速で実行できるタイミングを算出する機構を設ける、からである。
<第二の実施形態>
次に、本発明を実施するための最良の第二の形態について図面を参照して詳細に説明する。
The reason is that a counter that manages the issue suppression period for the preceding instruction is prepared for each issue waiting instruction, the inter-instruction dependency counter that temporally manages the inter-instruction dependency, and the busy of the arithmetic pipeline. This is because a waiting time is calculated in consideration of the path contention counter to be managed and the effect on the instruction that has been confirmed immediately before execution, and a mechanism is provided for calculating the timing that can be executed at the fastest speed by comparing these three values.
<Second Embodiment>
Next, the second best mode for carrying out the present invention will be described in detail with reference to the drawings.
図13は、第二の実施形態に係る、情報処理装置30の構成の一例を示すブロック図である。 FIG. 13 is a block diagram illustrating an example of the configuration of the information processing apparatus 30 according to the second embodiment.
情報処理装置30は、第一の実施形態の情報処理装置1と同じ構成で、ロードバッファ150、151に格納されるデータの配置が異なる。
The information processing apparatus 30 has the same configuration as the
ロードバッファ150、151にロードデータを格納する際に、性能向上のため、図13のように、格納するデータ配置を変更する場合がある。図13のようにロードデータを配置した場合には、ロードバッファ150とロードバッファ151から交互にデータを読み出す形となる。
When load data is stored in the load buffers 150 and 151, the data arrangement to be stored may be changed as shown in FIG. When load data is arranged as shown in FIG. 13, data is read alternately from the
この時、あるタイミングでL0−0〜L0−3のロードがスケジューリングされた状態で、L1−0〜L1−3の命令をスケジューリングする際のビット列を「00010101」というようにデコードすることで、演算レジスタ100〜103(クロスバ106)が、交互読み出しにも対応可能である(「1」が立っている箇所が空いているタイミングを示している)。
At this time, with the load of L0-0 to L0-3 scheduled at a certain timing, the bit string used when scheduling the instructions of L1-0 to L1-3 is decoded as “00010101”, thereby calculating The
ところで、上記は、複数のロードバッファ150、151にロードデータを格納する際の性能向上であったが、複数の演算器を用いる場合においても、同様に、性能向上を行うことができる。
By the way, the above is the performance improvement when the load data is stored in the plurality of
例えば、同一機能の演算器が2つ存在し、どちらか空いている方を選ぶ構成の場合には、それぞれの演算器のビット列の論理和を取って表現することで対応可能である。 For example, when there are two arithmetic units having the same function and one of the two units is selected, it can be handled by expressing the logical sum of the bit strings of the respective arithmetic units.
例えば、「00111111」と「00001111」の論理和から、「00111111」が得られる。これは、早くリソースが空く演算器をスケジューリング可能であることを示す。 For example, “00111111” is obtained from the logical sum of “00111111” and “00001111”. This indicates that it is possible to schedule a computing unit that has a fast resource availability.
本実施形態に係る情報処理装置30は、以下に記載するような効果を奏する。 The information processing apparatus 30 according to the present embodiment has the following effects.
その効果は、パイプライン処理の性能を向上することができる。 The effect can improve the performance of pipeline processing.
その理由は、2つのロードバッファから交互にデータを読み出すからである。
<第三の実施形態>
図14は、第三の実施形態に係る、情報処理装置40の構成の一例を示すブロック図である。
The reason is that data is read alternately from the two load buffers.
<Third embodiment>
FIG. 14 is a block diagram illustrating an example of the configuration of the information processing apparatus 40 according to the third embodiment.
情報処理装置40は、パイプライン制御部50、及び、パイプライン処理実行部60を備える。
The information processing apparatus 40 includes a
パイプライン制御部50は、パイプライン処理実行部60を制御する。
The
パイプライン処理実行部60は、演算器パイプラインのパイプライン処理を実行する。
The pipeline
パイプライン制御部50が、命令発行待機バッファに存在する命令に対して、使用するリソースが一致する、スケジューリング済みの命令の影響が無くなるタイミングまでの第1の時間を算出して命令間依存関係カウンタに第1の時間に対応するカウンタ値を格納し、演算器パイプラインにおけるパス競合が発生しないタイミングまでの第2の時間を算出してパス競合カウンタに第2の時間に対応するカウンタ値を格納する、カウンタセット値生成部51と、実行確定した命令が、直後に選択された命令に与える影響を示す、直前命令影響反映値を算出する、スケジューリング確定命令影響反映部52と、命令間依存関係カウンタのカウンタ値、パス競合カウンタのカウンタ値、及び、直前命令影響反映値を比較して、最短となる命令の実行待ち時間を算出する、競合調停部53と、を包含する。
The
本実施形態に係る情報処理装置40は、以下に記載するような効果を奏する。 The information processing apparatus 40 according to the present embodiment has the following effects.
その効果は、演算リソースが多い場合でも比較的少ないハードウェア量で効率的に命令を実行することが可能である。 The effect is that instructions can be executed efficiently with a relatively small amount of hardware even when there are many computing resources.
その理由は、先行命令に対する発行抑止期間を管理するカウンタを発行待機命令毎に用意する方式とし、命令間の依存関係を時間的に管理する命令間依存関係カウンタと、演算器パイプラインのビジーを管理するパス競合カウンタと、直前に実行確定した命令に対する影響も考慮して待ち時間を算出し、これら3つの値を比較して最速で実行できるタイミングを算出する機構を設ける、からである。 The reason is that a counter that manages the issue suppression period for the preceding instruction is prepared for each issue waiting instruction, the inter-instruction dependency counter that temporally manages the inter-instruction dependency, and the busy of the arithmetic pipeline. This is because a waiting time is calculated in consideration of the path contention counter to be managed and the effect on the instruction that has been confirmed immediately before execution, and a mechanism is provided for calculating the timing that can be executed at the fastest speed by comparing these three values.
以上、図面を参照して本発明の実施形態を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 As mentioned above, although embodiment of this invention was described with reference to drawings, this invention is not limited to the said embodiment. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
1 情報処理装置
10 パイプライン処理実行部
100、101、102、103 演算レジスタ
105 ストアデータセレクタ
106 クロスバ
110、111、112、113 オペランドセレクタ
120 積和演算器
130 論理演算器
150、151 ロードバッファ
160 演算パイプ制御部
20 パイプライン制御部
201 命令緩衝バッファ
202 命令間依存関係チェック部
203 ロードバッファFill判定部
210 命令発行待機バッファ
211 命令格納バッファ
212 命令間依存関係フラグ
213 命令間依存関係カウンタ
214 パス競合カウンタ
215 Filledフラグ
220 命令実行スケジューリング部
221 競合調停部
222 実行確定命令レジスタ
223 実行待ち時間
231 スケジューリング確定命令影響反映部
232 カウンタセット値生成部
240 スケジューリング済命令バッファ
241 スケジューリング済命令格納レジスタ
242 カウンタ
250 実行待機バッファ
251 実行待機命令格納レジスタ
252 実行待機命令カウンタ
30 情報処理装置
40 情報処理装置
50 パイプライン制御部
51 カウンタセット値生成部
52 スケジューリング確定命令影響反映部
53 競合調停部
60 パイプライン処理実行部
DESCRIPTION OF
Claims (10)
前記パイプライン制御手段が、
命令発行待機バッファに存在する命令に対して、使用するリソースが一致する、スケジューリング済みの命令の影響が無くなるタイミングまでの第1の時間を算出して命令間依存関係カウンタに前記第1の時間に対応するカウンタ値を格納し、前記演算器パイプラインにおけるパス競合が発生しないタイミングまでの第2の時間を算出してパス競合カウンタに前記第2の時間に対応するカウンタ値を格納するカウンタセット値生成手段と、
実行確定した命令が、直後に選択された命令に与える影響を示す、直前命令影響反映値を算出するスケジューリング確定命令影響反映手段と、
前記命令間依存関係カウンタのカウンタ値、前記パス競合カウンタのカウンタ値、及び、前記直前命令影響反映値を比較して、最短となる命令の実行待ち時間を算出する、競合調停手段と、を包含する情報処理装置。 An information processing apparatus in which pipeline processing means controls pipeline processing execution means for executing pipeline processing of an arithmetic unit pipeline,
The pipeline control means comprises:
A first time until the timing at which the influence of the scheduled instruction is eliminated and the influence of the scheduled instruction is eliminated with respect to the instruction existing in the instruction issue waiting buffer is calculated, and the inter-instruction dependency counter is set to the first time. A counter set value for storing a corresponding counter value, calculating a second time until a timing at which no path contention occurs in the arithmetic unit pipeline, and storing a counter value corresponding to the second time in a path contention counter Generating means;
A scheduling fixed instruction influence reflecting means for calculating an immediately preceding instruction influence reflecting value indicating an influence of an instruction determined to be executed on an instruction selected immediately after;
Competing arbitration means for comparing the counter value of the inter-instruction dependency counter, the counter value of the path contention counter, and the immediately preceding instruction influence reflection value to calculate the execution waiting time of the shortest instruction Information processing apparatus.
実行確定した命令が、直後に選択された命令に与える影響を示す、直前命令影響反映値を算出し、
前記命令間依存関係カウンタのカウンタ値、前記パス競合カウンタのカウンタ値、及び、前記直前命令影響反映値を比較して、最短となる命令の実行待ち時間を算出する、情報処理方法。 A first time until the timing at which the influence of the scheduled instruction is eliminated and the influence of the scheduled instruction is eliminated with respect to the instruction existing in the instruction issue waiting buffer is calculated, and the inter-instruction dependency counter is set to the first time. Storing a corresponding counter value, calculating a second time until a timing at which no path contention occurs in the computing unit pipeline, and storing a counter value corresponding to the second time in a path contention counter;
Calculate the previous instruction influence reflection value indicating the influence of the instruction that has been confirmed to be executed on the instruction selected immediately after,
An information processing method of calculating a shortest instruction execution waiting time by comparing a counter value of the inter-instruction dependency counter, a counter value of the path contention counter, and the immediately preceding instruction influence reflection value.
実行確定した命令が、直後に選択された命令に与える影響を示す、直前命令影響反映値を算出する処理と、
前記命令間依存関係カウンタのカウンタ値、前記パス競合カウンタのカウンタ値、及び、前記直前命令影響反映値を比較して、最短となる命令の実行待ち時間を算出する処理と、をコンピュータに実行させるプログラム。 A first time until the timing at which the influence of the scheduled instruction is eliminated and the influence of the scheduled instruction is eliminated with respect to the instruction existing in the instruction issue waiting buffer is calculated, and the inter-instruction dependency counter is set to the first time. A process of storing a corresponding counter value, calculating a second time until a timing at which no path contention occurs in the arithmetic unit pipeline, and storing a counter value corresponding to the second time in a path contention counter;
A process for calculating the immediately preceding instruction influence reflection value indicating the influence of the instruction that has been confirmed to be executed on the instruction selected immediately after;
Comparing the counter value of the inter-instruction dependency counter, the counter value of the path contention counter, and the immediately preceding instruction influence reflection value, and causing the computer to execute the process of calculating the shortest instruction execution waiting time program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014226144A JP2016091362A (en) | 2014-11-06 | 2014-11-06 | Information processing device, information processing method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014226144A JP2016091362A (en) | 2014-11-06 | 2014-11-06 | Information processing device, information processing method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016091362A true JP2016091362A (en) | 2016-05-23 |
Family
ID=56016217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014226144A Pending JP2016091362A (en) | 2014-11-06 | 2014-11-06 | Information processing device, information processing method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016091362A (en) |
-
2014
- 2014-11-06 JP JP2014226144A patent/JP2016091362A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109145353B (en) | Method and system for pipeline-to-pipeline data hazard avoidance | |
GB2503438A (en) | Method and system for pipelining out of order instructions by combining short latency instructions to match long latency instructions | |
JP2018005488A (en) | Arithmetic processing unit and control method for arithmetic processing unit | |
CN102934076A (en) | Instruction issuance control device and method | |
US10007524B2 (en) | Managing history information for branch prediction | |
JP6428488B2 (en) | Adder / Subtractor and Control Method of Adder / Subtractor | |
US20130262725A1 (en) | Data processing device and method for controlling data processing device | |
JP2014044509A (en) | Arithmetic processing unit and control method of the same | |
JP7032647B2 (en) | Arithmetic processing unit and control method of arithmetic processing unit | |
JP2016091362A (en) | Information processing device, information processing method, and program | |
JP4444305B2 (en) | Semiconductor device | |
US9417882B2 (en) | Load synchronization with streaming thread cohorts | |
JP6381019B2 (en) | Information processing apparatus and control method | |
JP6819166B2 (en) | Arithmetic processing unit and control method of arithmetic processing unit | |
US10996954B2 (en) | Calculation processing apparatus and method for controlling calculation processing apparatus | |
CN107003855B (en) | Atomic addition instruction with carry | |
JP5788920B2 (en) | Vector processing apparatus and vector processing method | |
JP5871298B2 (en) | Information processing apparatus, information processing method, and information processing program | |
JP6256088B2 (en) | Vector processor, information processing apparatus, and overtaking control method | |
JP6225554B2 (en) | Arithmetic processing device and control method of arithmetic processing device | |
JP2014238832A (en) | Operand generation in at least one processing pipeline | |
JP6473023B2 (en) | Performance evaluation module and semiconductor integrated circuit incorporating the same | |
JP2012173755A (en) | Information processor and information processing method | |
JP2002318689A (en) | VLIW processor for executing instruction with delay specification of resource use cycle and method of generating instruction with delay specification | |
JP2007293814A (en) | Processor device and processing method therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161115 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171012 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171024 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171222 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20180206 |