[go: up one dir, main page]

JP2016091362A - Information processing device, information processing method, and program - Google Patents

Information processing device, information processing method, and program Download PDF

Info

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
Application number
JP2014226144A
Other languages
Japanese (ja)
Inventor
尊博 内田
Takahiro Uchida
尊博 内田
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.)
NEC Platforms Ltd
Original Assignee
NEC Platforms Ltd
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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2014226144A priority Critical patent/JP2016091362A/en
Publication of JP2016091362A publication Critical patent/JP2016091362A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide an information processing device, an information processing method and a program for the purpose which can efficiently execute an instruction with a relatively small amount of hardware even when there are many arithmetic resources.SOLUTION: A first time until timing when the influence of a scheduled instruction with a use resource coinciding therewith on an instruction of an instruction issue standby buffer 210 disappears is calculated, and the first time is stored in an inter-instruction dependence counter 213. Counter set value generation means 232 calculates a second time until timing when a path conflict in a computing element pipeline does not occur, and stores the second time in a path conflict counter 214. Scheduling determination instruction influence reflection means 231 calculates a previous instruction influence reflection value showing an influence which is given by an execution-determined instruction to an instruction selected just after. A conflict arbitration means 221 compares a value of the inter-instruction dependence counter 213, with a value of the path conflict counter, and with the previous instruction influence reflection value to calculate an execution waiting time of the shortest instruction.SELECTED DRAWING: Figure 3

Description

本発明は、情報処理装置、情報処理方法、及び、そのためのプログラムに関する。   The present invention relates to an information processing apparatus, an information processing method, and a program therefor.

特許文献1は、演算リソースおよびレジスタに対応したビジー管理カウンタを設け、発行待ち命令の実行判定にて関連する演算リソースのビジー管理カウンタ値を入力し、その値から最速で発行できるタイミングを算出して発行待ち時間を決定することでR→W(読み出し→書き込み)の関係にある後続命令を最速なタイミングで発行可能にする技術を開示する。   Patent Document 1 provides a busy management counter corresponding to a calculation resource and a register, inputs a busy management counter value of a related calculation resource in an execution waiting instruction execution determination, and calculates a timing at which it can be issued at the fastest speed from the value. A technique is disclosed in which a subsequent instruction having a relation of R → W (read → write) can be issued at the fastest timing by determining the issue waiting time.

特許文献2は、ビジーフラグを用いて、命令の追い越し発行が可能な、ベクトル処理装置について開示している。   Patent Document 2 discloses a vector processing device capable of overtaking and issuing instructions using a busy flag.

特許文献3は、ビジーフラグの更新が遅れる場合でも、パイプライン演算器の使用効率を低下させずに処理できる情報処理装置について開示している。   Patent Document 3 discloses an information processing apparatus that can perform processing without reducing the usage efficiency of a pipeline arithmetic unit even when the update of the busy flag is delayed.

特開2012−173755号公報JP 2012-173755 A 特開2008−269067号公報JP 2008-269067 A 特開2011−060048号公報JP 2011-060048 A

特許文献1は、演算リソース毎のビジー管理カウンタを想定しており、演算リソースが多い場合に必要なハードウェア量が多くなってしまうという問題があった。また、演算リソースが多くなると、対応するビジー管理カウンタから値を選択して比較する機能を実現する際に、高速クロックに対応した実装が難しいという問題があった。   Patent Document 1 assumes a busy management counter for each computing resource, and there is a problem in that the amount of hardware required increases when there are many computing resources. In addition, when the number of computing resources increases, there is a problem that it is difficult to implement a high-speed clock when realizing a function of selecting and comparing values from the corresponding busy management counter.

特許文献2は、ビジーフラグを用いており、特許文献1と同様の課題がある。   Patent Document 2 uses a busy flag and has the same problem as Patent Document 1.

また、特許文献3についても、ビジーフラグを用いており、特許文献1と同様の課題がある。   Also, Patent Document 3 uses a busy flag and has the same problem as Patent Document 1.

このように、上記特許文献では、演算リソースおよびレジスタに対応した数のビジー管理カウンタを設ける必要がある。したがって、管理対象が増えるに従いハードウェア量も増大してしまう。また、管理対象の増加に従い、ビジー管理カウンタも増えるため、命令の実行判定において多数のビジー管理カウンタの値を入力し比較する必要がある。このことから回路遅延が増大し、高速クロックへの対応が難しい、という問題があった。   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.

図1は、第一の実施形態に係る、情報処理装置の構成の一例を示すブロック図である。FIG. 1 is a block diagram illustrating an example of the configuration of the information processing apparatus according to the first embodiment. 図2は、パイプライン処理実行部の構成の一例を示す図である。FIG. 2 is a diagram illustrating an example of the configuration of the pipeline processing execution unit. 図3は、パイプライン制御部の構成の一例を示す図である。FIG. 3 is a diagram illustrating an example of the configuration of the pipeline control unit. 図4は、情報処理装置の動作を示すタイムチャートである。FIG. 4 is a time chart showing the operation of the information processing apparatus. 図5は、カウンタ値のデコードに用いるデコードテーブル(カウンタ値デコード対応表)を示す。FIG. 5 shows a decoding table (counter value decoding correspondence table) used for decoding the counter value. 図6は、図4の動作の詳細をクロック毎に示した図である。FIG. 6 is a diagram showing details of the operation of FIG. 4 for each clock. 図7は、図4の動作の詳細をクロック毎に示した図である。FIG. 7 is a diagram showing details of the operation of FIG. 4 for each clock. 図8は、図4の動作の詳細をクロック毎に示した図である。FIG. 8 is a diagram showing details of the operation of FIG. 4 for each clock. 図9は、図4の動作の詳細をクロック毎に示した図である。FIG. 9 is a diagram showing details of the operation of FIG. 4 for each clock. 図10は、図4の動作の詳細をクロック毎に示した図である。FIG. 10 is a diagram showing details of the operation of FIG. 4 for each clock. 図11は、スケジューリング済命令バッファが4個のみの構成の場合の情報処理装置の動作を示すタイムチャートである。FIG. 11 is a time chart showing the operation of the information processing apparatus in the case of a configuration with only four scheduled instruction buffers. 図12は、異なる命令列を使用した場合の情報処理装置の動作を示すタイムチャートである。FIG. 12 is a time chart showing the operation of the information processing apparatus when different instruction sequences are used. 図13は、第二の実施形態に係る、情報処理装置の構成の一例を示すブロック図である。FIG. 13 is a block diagram illustrating an example of the configuration of the information processing apparatus according to the second embodiment. 図14は、第三の実施形態に係る、情報処理装置の構成の一例を示すブロック図である。FIG. 14 is a block diagram illustrating an example of the configuration of the information processing apparatus according to the third embodiment.

発明を実施するための第一の形態について、図面を参照して詳細に説明する。   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 information processing apparatus 1 according to the first embodiment.

情報処理装置1は、パイプライン処理実行部10、及び、パイプライン制御部20を包含する。   The information processing apparatus 1 includes a pipeline processing execution unit 10 and a pipeline control unit 20.

図2は、パイプライン処理実行部10の構成の一例を示す図である。   FIG. 2 is a diagram illustrating an example of the configuration of the pipeline processing execution unit 10.

パイプライン処理実行部10は、本実施形態の制御の対象である演算パイプラインの構成を含む。   The pipeline processing execution unit 10 includes a configuration of an arithmetic pipeline that is a control target of the present embodiment.

演算パイプ制御部160は、ベクトル命令の発行が確定すると、ベクトルパイプ制御信号を送出する。   When the issuance of a vector instruction is confirmed, the arithmetic pipe control unit 160 sends a vector pipe control signal.

演算レジスタ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から指示のあった演算レジスタ出力を選択する。   Operand selectors 110, 111, 112, and 113 exist for each input of the arithmetic unit, and select an operation register output instructed from operation pipe control unit 160 according to an instruction (operand selector instruction) from operation pipe control unit 160. To do.

積和演算器120は、演算パイプ制御部160からの指示(演算実行指示)に従って、VL分の演算を実行する。積和演算器120は、信号線900を介してクロスバ(X−bar)106に演算結果を出力する。   The product-sum operation unit 120 executes a calculation for VL in accordance with an instruction (operation execution instruction) from the operation pipe control unit 160. The product-sum operation unit 120 outputs the operation result to the crossbar (X-bar) 106 via the signal line 900.

論理演算器130は、演算パイプ制御部160からの指示(演算実行指示)に従って、VL分の演算を実行する。論理演算器130は、信号線901を介してクロスバ106に演算結果を出力する。   The logical operation unit 130 executes an operation for VL in accordance with an instruction (operation execution instruction) from the operation pipe control unit 160. The logical operator 130 outputs the operation result to the crossbar 106 via the signal line 901.

クロスバ106は、演算パイプ制御部160の指示(X−barセレクト指示)に従って、演算レジスタ100、101、102、103に書き込むデータを選択してVL分連続して出力する。   The crossbar 106 selects data to be written in the arithmetic registers 100, 101, 102, and 103 according to an instruction (X-bar selection instruction) from the arithmetic pipe control unit 160, and outputs the data continuously for VL.

ストアデータセレクタ105は、演算パイプ制御部160からの指示(Store Select 指示)に従って、演算レジスタ100、101、102、103の読み出しデータを選択し、メインメモリへのストアパスにデータを出力する。   The store data selector 105 selects read data from the operation registers 100, 101, 102, and 103 in accordance with an instruction (Store Select instruction) from the operation pipe control unit 160, and outputs the data to the store path to the main memory.

ロードバッファ150、151は、演算レジスタ100〜103を効率的に利用するため、ロードバッファ読み出し指示に基づくロード命令でメモリから読み出したデータがFill(充填)するまで格納しておき、演算レジスタ100〜103への転送実行の指示に従い、指定された要素数分を連続して転送する。   The load buffers 150 and 151 store the data read from the memory by the load instruction based on the load buffer read instruction until the data is filled (filled) in order to efficiently use the arithmetic registers 100 to 103. According to the transfer execution instruction to 103, the specified number of elements are transferred continuously.

図3は、パイプライン制御部20の構成の一例を示す図である。   FIG. 3 is a diagram illustrating an example of the configuration of the pipeline control unit 20.

命令緩衝バッファ201は、命令をバッファして命令発行待機バッファ210に空きがあれば命令を送出する。   The instruction buffer buffer 201 buffers an instruction and sends out the instruction if the instruction issuance waiting buffer 210 has a free space.

命令間依存関係チェック部202は、命令発行待機バッファ210に格納する予定の命令と、命令発行待機バッファ210およびスケジューリング済命令バッファ240に格納されている先行命令についての依存関係を確認する。そして、命令間依存関係チェック部202は、命令発行待機バッファ210に格納する予定の命令と命令発行待機バッファ210に格納されている命令との間に依存関係がある場合は、命令間依存関係フラグ212に依存関係ありを示す値をセットする。また、命令間依存関係チェック部202は、命令発行待機バッファ210に格納する予定の命令とスケジューリング済命令バッファ240との間に、依存関係およびパス競合関係がある場合、それぞれの関係が解消するタイミングまでの時間(第1の時間と第2の時間)を算出(計数)する。さらに、命令間依存関係チェック部202は、命令間依存関係カウンタ213およびパス競合カウンタ214に、算出された第1の時間と第2の時間に対応する値(カウンタ値とも言う)をセットする。   The inter-instruction dependency check unit 202 checks the dependency between the instruction scheduled to be stored in the instruction issue standby buffer 210 and the preceding instruction stored in the instruction issue standby buffer 210 and the scheduled instruction buffer 240. Then, the inter-instruction dependency check unit 202 determines that there is a dependency between the instruction scheduled to be stored in the instruction issuance standby buffer 210 and the instruction stored in the instruction issuance standby buffer 210. In 212, a value indicating that there is a dependency relationship is set. In addition, the inter-instruction dependency check unit 202, when there is a dependency relation and a path conflict relation between the instruction scheduled to be stored in the instruction issue standby buffer 210 and the scheduled instruction buffer 240, is a timing at which each relation is canceled. Time (first time and second time) is calculated (counted). Furthermore, the inter-instruction dependency check unit 202 sets values (also referred to as counter values) corresponding to the calculated first time and second time in the inter-instruction dependency counter 213 and the path conflict counter 214.

ロードバッファFill判定部203は、ロードバッファ204にロード命令で指定された数の要素がメモリからロードされたことを確認して、ロード命令を実行するための要素が全て揃った場合にFilledフラグ215に所定のフラグ値をセットする機能を持つ。   The load buffer fill determination unit 203 confirms that the number of elements designated by the load instruction has been loaded from the memory into the load buffer 204, and when all the elements for executing the load instruction have been prepared, the filled flag 215 Has a function of setting a predetermined flag value.

命令発行待機バッファ210は、命令格納バッファ211、命令間依存関係フラグ212、命令間依存関係カウンタ213、パス競合カウンタ214、及び、Filledフラグ215から構成される。図3では、図の下側にある各バッファ及びカウンタに格納される命令及びカウンタ値が、最も古い命令及びカウンタ値となるよう順次格納される。なお、命令間依存関係フラグ212は、一番下に位置するバッファを用意していないが、これは、この位置の命令格納バッファ211に格納される命令は最も古い命令で、最優先であることが決定されているためである。   The instruction issue standby buffer 210 includes an instruction storage buffer 211, an inter-instruction dependency flag 212, an inter-instruction dependency counter 213, a path contention counter 214, and a filled flag 215. In FIG. 3, the instruction and counter value stored in each buffer and counter at the lower side of the figure are sequentially stored so as to be the oldest instruction and counter value. The inter-instruction dependency flag 212 does not have a buffer located at the bottom, but this is because the instruction stored in the instruction storage buffer 211 at this position is the oldest instruction and has the highest priority. This is because it has been determined.

命令格納バッファ211は、命令発行待機バッファ210内で命令本体を格納するバッファである。   The instruction storage buffer 211 is a buffer that stores an instruction body in the instruction issue standby buffer 210.

命令間依存関係フラグ212は、命令格納バッファ211に格納されている命令間の依存関係を示し、この格納値が「1」である場合は、2つの命令に依存関係があって命令スケジュール順番を守る必要性を示し、格納値が「0」である場合は、依存関係が無いため、状況によっては先行して受けた命令を追い越してスケジューリングされる。なお、命令格納バッファ211のより下側のバッファに格納されている古い命令は、それよりも上側に格納されている新しい命令の制約を受けずにスケジューリングされるべきものである。すなわち、古い命令の新しい命令に対する依存関係は、保持不要である。言い換えれば、図3に示すように、新しい命令ほどより多くの古い命令に対する依存関係をもっており、その結果、命令間依存関係フラグ212のビット幅が命令毎に異なっている。   The inter-instruction dependency flag 212 indicates the inter-instruction dependency stored in the instruction storage buffer 211. When the stored value is “1”, there is a dependency between two instructions and the instruction schedule order is changed. If the stored value is “0”, there is no dependency relationship, so that the instruction received in advance is overtaken depending on the situation. It should be noted that the old instruction stored in the lower buffer of the instruction storage buffer 211 should be scheduled without being restricted by the new instruction stored above it. That is, it is not necessary to maintain the dependency relationship between the old instruction and the new instruction. In other words, as shown in FIG. 3, the new instruction has a dependency on more old instructions, and as a result, the bit width of the inter-instruction dependency flag 212 is different for each instruction.

命令間依存関係カウンタ213は、発行がスケジューリングされた命令に対する依存関係が解消するタイミングまでの第1の時間に対応する値を保持する。その値は、命令間依存関係チェック部202によって算出され格納された値である。命令格納バッファ211に命令を格納するタイミングまたは先行命令の発行が確定したタイミングで、命令間依存関係カウンタ213は、W→R、W→W、R→Wの関係全てを満たす最も小さい値を選択してセットする(ただし、W:書き込み、R:読み出しを表すものとする)。最も小さい値を選択する方法としては、値の大小を比較する回路を使う方法、値をビット並びに展開して論理積を取る方法、または、それらを混在させる方法のいずれを選択しても良い。命令間依存関係カウンタ213は、1サイクル毎に1ずつ減算し、0となったら減算を止める。   The inter-instruction dependency counter 213 holds a value corresponding to the first time until the timing at which the dependency for the instruction scheduled to be issued is resolved. The value is a value calculated and stored by the inter-instruction dependency check unit 202. The inter-instruction dependency counter 213 selects the smallest value that satisfies all of the relations W → R, W → W, and R → W at the timing when the instruction is stored in the instruction storage buffer 211 or when the issue of the preceding instruction is confirmed. (W: write, R: read). As a method for selecting the smallest value, any one of a method using a circuit for comparing the magnitudes of values, a method of taking a logical product by expanding values into bits, and a method of mixing them may be selected. The inter-instruction dependency counter 213 subtracts 1 every cycle and stops subtraction when it becomes 0.

パス競合カウンタ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 dependency check unit 202. The path contention counter 214 sets a value at the timing when the instruction is stored in the instruction storage buffer 211 or when the preceding instruction is issued. Depending on the configuration of the arithmetic pipeline, there may be a conflict at a plurality of points in the data transfer path. In this case, the path conflict counter 214 selects and sets the smallest value that avoids the conflict. As a method for selecting the smallest value, the path contention counter 214 may be a method using a circuit for comparing the magnitudes of values, a method of taking a logical product by expanding values into bits, or a method of mixing them. good. The path contention counter 214 decrements by 1 every cycle and stops subtraction when it becomes 0. In a device that operates with a high-speed clock, a configuration in which a plurality of path contention counters 214 are provided may be considered when there are many contention confirmation points and a circuit delay to be compared becomes a problem.

Filledフラグ215は、ロード命令を実行するための要素が全て揃ったことを示すフラグである。ロードに関係無い演算命令やストア命令などが命令格納バッファ211にセットされる場合、Filledフラグ215は、「1」をセットする。   The Filled flag 215 is a flag indicating that all elements for executing the load instruction are prepared. When an operation instruction or a store instruction not related to load is set in the instruction storage buffer 211, the Filled flag 215 sets “1”.

命令実行スケジューリング部220は、命令格納バッファ211に保持された命令の中からスケジューリング可能な命令を選択し、命令間の整合性を保った上で最も早く実行可能なタイミングを算出する。   The instruction execution scheduling unit 220 selects an instruction that can be scheduled from the instructions held in the instruction storage buffer 211, and calculates the earliest execution timing while maintaining consistency between instructions.

スケジューリング可能な命令となる条件は、例えば、(1)命令間依存関係フラグ212が全て0、(2)命令間依存関係カウンタ213の値が7以下、(3)パス競合カウンタ214の値が7以下、(4)Filledフラグ215の値が1、である。   For example, (1) the inter-instruction dependency flag 212 is 0, (2) the inter-instruction dependency counter 213 is 7 or less, and (3) the path contention counter 214 is 7 Hereinafter, (4) the value of the Filled flag 215 is 1.

なお、(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 execution scheduling unit 220 selects the oldest instruction among the instructions satisfying all of these conditions, and issues the counter values of the inter-instruction dependency counter 213 and the path contention counter 214 corresponding to the instruction to issue instructions. Read from standby buffer 210. Then, the instruction execution scheduling unit 220 converts the read counter value into a decoded value based on the table of FIG. Further, the instruction execution scheduling unit 220 determines the fastest execution waiting timing in consideration of the dependency relationship between the selected instruction and the instruction that has been issued immediately before that instruction (immediately preceding instruction). Note that if scheduling becomes impossible due to dependency with the immediately preceding instruction or path conflict (when “1” does not exist in the decoded bit pattern), the instruction execution scheduling unit 220 cancels the scheduling and is effective. Does not output strict instructions.

競合調停部221は、命令間依存関係カウンタ213のカウンタ値、パス競合カウンタ214のカウンタ値、及び、直前命令影響反映値(後出)を比較して、最短となる命令の実行待ち時間を算出する。競合調停部221は、例えば、最若番優先の固定順位アービタ回路である。   The contention arbitration unit 221 compares the counter value of the inter-instruction dependency counter 213, the counter value of the path contention counter 214, and the immediately preceding instruction influence reflection value (described later), and calculates the instruction execution waiting time that is the shortest. To do. The contention arbitration unit 221 is, for example, a fixed priority arbiter circuit with the lowest priority.

スケジューリング確定命令影響反映部231は、スケジューリング確定した命令が直後に選択された命令に与える影響を計算して、その影響が無くなる最も早いタイミングを決定し、デコードを行い命令実行スケジューリング部220に送出する(直前命令影響反映値)。   The scheduling confirmed instruction influence reflecting unit 231 calculates the influence of the instruction that has been confirmed on the instruction selected immediately thereafter, determines the earliest timing at which the influence is eliminated, performs decoding, and sends it to the instruction execution scheduling unit 220. (Influence value reflecting the effect of the previous instruction).

カウンタセット値生成部232は、スケジューリング確定した命令が使用するリソースと命令発行待機バッファ210に存在する命令の使用リソースが一致して影響を受ける場合に、その影響が無くなる最も早いタイミングまでの時間を算出して、その時間に対応する値を命令発行待機バッファ210のカウンタ(命令間依存関係カウンタ213)にセットする。例えば、W→Rの関係とR→Wの関係の両方が存在するような場合には、カウンタセット値生成部232は、両方の影響が無くなる最も早いタイミングを算出する。また、パス競合カウンタ214においても、複数の経路で影響がある場合、カウンタセット値生成部232は、全ての経路で影響が無くなる最も早いタイミングまでの時間を算出して、命令発行待機バッファ210のカウンタ(パス競合カウンタ214)にセットする。   The counter set value generation unit 232 determines the time until the earliest timing when the resource used by the instruction whose scheduling has been confirmed and the resource used by the instruction existing in the instruction issuance standby buffer 210 are affected. The value corresponding to that time is calculated and set in the counter (inter-instruction dependency counter 213) of the instruction issuance standby buffer 210. For example, when both the relationship of W → R and the relationship of R → W exist, the counter set value generation unit 232 calculates the earliest timing at which both effects are eliminated. Also, in the path contention counter 214, if there is an influence on a plurality of paths, the counter set value generation unit 232 calculates the time until the earliest timing at which the influence does not occur in all the paths, and the instruction issue waiting buffer 210 Set to the counter (path conflict counter 214).

スケジューリング済命令バッファ240は、命令実行スケジューリング部220にてスケジューリングが確定した命令を、後続命令に対して影響が無くなるまで保持する機能を持つ。スケジューリング済命令格納レジスタ241は、スケジューリングが確定した命令を格納する。カウンタ(エントリ期間カウンタ)242は、スケジューリング済命令格納レジスタ241に対応するカウンタで、このカウンタに後続命令に対する影響が無くなるタイミングまでの時間に対応する値がセットされる。カウンタ242は、サイクル毎に減算して、後続命令に影響を与えない値(本例では「1」)となったらリセットする。   The scheduled instruction buffer 240 has a function of holding an instruction whose scheduling is determined by the instruction execution scheduling unit 220 until there is no influence on subsequent instructions. The scheduled instruction storage register 241 stores an instruction for which scheduling has been determined. The counter (entry period counter) 242 is a counter corresponding to the scheduled instruction storage register 241, and a value corresponding to the time until the timing at which the influence on the subsequent instruction is eliminated is set in this counter. The counter 242 is subtracted for each cycle, and is reset when it reaches a value that does not affect subsequent instructions (in this example, “1”).

実行待機バッファ250は、命令実行スケジューリング部220にてスケジューリングが確定した命令を格納し、指示された時間経過後に命令を実行する指示を出す。実行待機命令格納レジスタ251は、実行を待機する命令を格納する。実行待機命令カウンタ252は、命令を実行するタイミングを格納し、所定の値、例えばカウンタの値が「0」になったら、対応する命令の命令実行指示を演算パイプ制御部160に出力する。なお、複数命令のカウンタ値が同時に「0」になった場合は、実行待機命令カウンタ252は、同時に実行を開始するものとする。   The execution standby buffer 250 stores the instruction whose scheduling is fixed by the instruction execution scheduling unit 220, and issues an instruction to execute the instruction after the designated time has elapsed. The execution waiting instruction storage register 251 stores an instruction waiting for execution. The execution standby instruction counter 252 stores the instruction execution timing, and outputs an instruction execution instruction of the corresponding instruction to the operation pipe control unit 160 when a predetermined value, for example, the counter value becomes “0”. When the counter values of a plurality of instructions simultaneously become “0”, the execution standby instruction counter 252 starts executing at the same time.

ここで、ストアデータセレクタ105、クロスバ106、オペランドセレクタ110、111、112、113、積和演算器120、論理演算器130、演算パイプ制御部160、命令間依存関係チェック部202、ロードバッファFill判定部203、競合調停部221、スケジューリング確定命令影響反映部231、及び、カウンタセット値生成部232は、例えば、論理回路等のハードウェア回路で構成される。   Here, the store data selector 105, the crossbar 106, the operand selectors 110, 111, 112, 113, the sum-of-products calculator 120, the logic calculator 130, the calculation pipe control unit 160, the inter-instruction dependency check unit 202, and the load buffer Fill determination The unit 203, the contention arbitration unit 221, the scheduling confirmed instruction influence reflection unit 231, and the counter set value generation unit 232 are configured by hardware circuits such as logic circuits, for example.

また、演算レジスタ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, arithmetic registers 100, 101, 102, 103, load buffers 150, 151, instruction buffer buffer 201, instruction issue standby buffer 210, instruction storage buffer 211, inter-instruction dependency flag 212, inter-instruction dependency counter 213, path contention Counter 214, Filled flag 215, execution fixed instruction register 222, execution waiting time 223, scheduled instruction buffer 240, scheduled instruction storage register 241, counter 242, execution standby buffer 250, execution standby instruction storage register 251, execution standby instruction counter 252 is configured by a storage device such as a semiconductor memory, for example. Further, the information processing apparatus 1 may be realized by a computer apparatus. In this case, the store data selector 105, the crossbar 106, the operand selectors 110, 111, 112, 113, the product-sum calculator 120, the logic calculator 130, the calculation pipe control unit 160, the inter-instruction dependency check unit 202, and the load buffer Fill determination The unit 203, the contention arbitration unit 221, the scheduling confirmation instruction influence reflection unit 231, and the counter set value generation unit 232 are realized by the processor of the information processing apparatus 1 being a computer executing a program on a memory (not shown). May be. The program may be stored in a nonvolatile memory.

図4は、情報処理装置1の動作を示すタイムチャートである。   FIG. 4 is a time chart showing the operation of the information processing apparatus 1.

また、図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 processing execution unit 10 are shown. The arrow “←” is indicated by “<−” in the frame of the instruction sequence in FIG.

なお、命令列においては、矢印を挟んだ右辺と左辺が対になり、各命令の動作を記述している。例えば、命令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 information processing apparatus 1 will be described in the order of clock counts with the passage of time, using the time chart of FIG. 4 and FIGS.

Clock1:
命令緩衝バッファ201に、命令1)が格納される。この時、命令発行待機バッファ210(命令格納バッファ211)には命令が格納されていないので、命令間依存関係チェック部202の出力(以下、単に出力と記載)は、先行命令との依存関係が全く無いことを示す「000000」を出力する。
Clock1:
Instruction 1) is stored in the instruction buffer buffer 201. At this time, since no instruction is stored in the instruction issue standby buffer 210 (instruction storage buffer 211), the output of the inter-instruction dependency check unit 202 (hereinafter simply referred to as output) has a dependency with the preceding instruction. “000000” indicating that there is no output is output.

なお、出力は、命令緩衝バッファ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 instruction buffer buffer 201 and each instruction in the instruction storage buffer 211 by 1/0. For example, 211 # 0, 211 # in order from the left end. Dependencies with 1, 211 # 2 (hereinafter omitted) are sequentially shown.

Clock2:
命令1)が命令格納バッファ211#0に格納され、命令緩衝バッファ201には、命令2)が入る。命令1)と命令2)の間にはW→Rの関係があるので、出力202は、「100000」となる。
Clock2:
Instruction 1) is stored in instruction storage buffer 211 # 0, and instruction buffer buffer 201 receives instruction 2). Since there is a relationship of W → R between the instruction 1) and the instruction 2), the output 202 is “100000”.

命令格納バッファ211に命令が格納される際、ロード命令以外は条件が揃ったとしてFilledフラグ215には「1」がセットされる。   When an instruction is stored in the instruction storage buffer 211, “1” is set in the Filled flag 215 on the assumption that conditions other than the load instruction are met.

命令格納バッファ211#0に格納された命令1)は、最優先でスケジュール可能として選択される。そして、対応する、命令間依存関係カウンタ213、及び、パス競合カウンタ214のカウンタ値から、どちらも「0」の値が読み出されてデコードされる。この時、図5のデコードテーブルに従い、「11111111」を得る。   The instruction 1) stored in the instruction storage buffer 211 # 0 is selected as the schedule with the highest priority. Then, from the corresponding counter values of the inter-instruction dependency counter 213 and the path conflict counter 214, a value of “0” is read out and decoded. At this time, “11111111” is obtained according to the decoding table of FIG.

直前にスケジュールが確定した命令は存在しないため、命令実行スケジューリング部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 execution scheduling unit 220 receives “11111111” (immediate instruction effect reflection value) having no effect from the scheduling confirmation instruction effect reflection unit 231 and logically ANDs them all. “11111111” is supplied to the leading 0 circuit (leading 0 circuit), the waiting time is calculated, and “10000000” (waiting time) is generated. “10000000” indicates that the leftmost bit is “1” and can be issued after 0 cycles.

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 instruction register 222. Instruction 2) is stored in instruction storage buffer 211 # 1, and instruction buffer buffer 201 receives instruction 3). There is a relationship of W → W and a relationship of R → W between the instruction 3) and the instruction 1), and there is a relationship of R → W between the instruction 3) and the instruction 2). Both are “110000” indicating that there is a dependency.

命令2)もロード命令では無いため、Filledフラグ215には、「1」がセットされる。   Since the instruction 2) is not a load instruction, the Filled flag 215 is set to “1”.

命令実行スケジューリング部220は、命令1)の実行が確定しているため、命令1)を除いた命令格納バッファ211から最優先の命令2)を選択して、スケジューリングを行う。   Since the execution of the instruction 1) is confirmed, the instruction execution scheduling unit 220 selects the instruction 2) having the highest priority from the instruction storage buffer 211 excluding the instruction 1) and performs scheduling.

カウンタ値は、命令間依存関係カウンタ213、及び、パス競合カウンタ214どちらも「0」なので、図5に従い、どちらも「11111111」が出力される。   The counter value is “0” for both the inter-instruction dependency counter 213 and the path conflict counter 214, and therefore “11111111” is output according to FIG. 5.

次に、直前に命令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 influence reflection unit 231 calculates the influence of the instruction 1) on the instruction 2) selected immediately after. The instruction 1) and the instruction 2) are different in the arithmetic unit to be used. Therefore, there are two relations, that is, the relation W → R for the V0 register and the relation R → W for the V3 register. In the case of the relationship of W → R, since it can be calculated by the equation of waiting time + preceding instruction TAT, 0 + 5 = 5. In the case of the relationship of R → W, since it can be calculated by the equation of waiting time−following instruction TAT + 1, 0−3 + 1 = −2, but 0 or less is 0. Considering “5” and “0” obtained from the two relationships, “5”, which is the earliest execution time satisfying the data consistency, is selected (that is, as long as “5” exists, other “ Even if it is “0”, it is necessary to wait for the count of “5” to be completed). The scheduling confirmation instruction influence reflection unit 231 decodes “5” according to FIG. 5 to obtain “00000111”. Then, the instruction execution scheduling unit 220 (contention arbitration unit 221) inputs “00000111” obtained by ANDing the three values “11111111”, “11111111”, and “00000111” to the leading 0 circuit, and outputs “00000100”. Get. This means that the execution waiting time is 5 and can be issued after 5 cycles.

Clock4:
Clock3で実行待ち時間を算出した命令2)が実行確定命令レジスタ222に格納され、実行待ち時間として5−1=4を意味する「00001000」が格納される。
Clock4:
The instruction 2) for which the execution waiting time is calculated in Clock 3 is stored in the execution fixed instruction register 222, and “00001000” meaning 5-1 = 4 is stored as the execution waiting time.

また、Clock3で実行確定命令レジスタ222に格納されていた命令1)は、実行待機バッファ250(詳しくは、実行待機命令格納レジスタ251であるが、以下、このように記載する)に移動する。実行待ち時間についてもエンコード後「0」が実行待機命令カウンタ252にセットされる。実行待機命令カウンタ252の値が「0」なので、対応する命令1)は、次にClock5で実行開始される。   In addition, the instruction 1) stored in the execution fixed instruction register 222 at Clock3 moves to the execution standby buffer 250 (specifically, the execution standby instruction storage register 251 is described below). As for the execution waiting time, “0” after encoding is set in the execution waiting instruction counter 252. Since the value of the execution standby instruction counter 252 is “0”, execution of the corresponding instruction 1) is next started at Clock 5.

命令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 instruction storage register 241, which will be described below). At this time, 0 + 5 + 4 = 9 calculated by the execution waiting time + operation TAT (ADD) + VL is also set in the corresponding counter 242.

命令格納バッファ211には、命令3)が格納されるが、命令2)に対してR→Wの依存関係があることから、対応するbitに「1」をセットするところ、命令2)が実行確定命令レジスタ222に格納されたことを受けキャンセルされて、命令間依存関係フラグ212には「0」がセットされる。   Instruction 3) is stored in the instruction storage buffer 211. Since there is a dependency of R → W on the instruction 2), the instruction 2) is executed when the corresponding bit is set to “1”. In response to being stored in the fixed instruction register 222, it is canceled, and the inter-instruction dependency flag 212 is set to “0”.

命令1)が実行確定したのを受け、命令2)に対応する命令間依存関係カウンタ213には、0+5=5で計算される「5」からサイクル毎の減算を考慮した「4」がセットされる。   After the execution of the instruction 1) is confirmed, the inter-instruction dependency counter 213 corresponding to the instruction 2) is set to “4” in consideration of subtraction for each cycle from “5” calculated by 0 + 5 = 5. The

命令3)が命令格納バッファ210に格納されるが、命令3)はロード命令で、本来メモリからのロードデータ要素が全て揃わないとFilledフラグ215には「1」がセットされないが、本動作説明では説明簡略化のため全ロードデータ要素がロードバッファに存在する前提としているため、Filledフラグ215には「1」がセットされる。   The instruction 3) is stored in the instruction storage buffer 210. The instruction 3) is a load instruction. If all the load data elements from the original memory are not prepared, the Filled flag 215 is not set to "1". However, since it is assumed that all load data elements exist in the load buffer for the sake of simplification of description, “1” is set in the Filled flag 215.

このため、命令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 confirmation instruction register 222 immediately before, the calculation of R → W: waiting time−following instruction TAT + 1 is performed. -3 + 1 = 2 is decoded to obtain “00111111” (immediate instruction effect reflection value). The contention arbitration unit 221 takes the logical product of the values decoded from the counter values (the value of the inter-instruction dependency counter 213: “11111111” and the value of the path contention counter 214: “11111111”) and inputs the logical product to the leading0 circuit. And “00100000” is obtained.

以降、特徴的な動作について説明する。   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 execution waiting buffer 250, the instruction 2) is set as the execution waiting time “4”.

同時に、命令2)は、スケジューリング済命令バッファ240に、実行待ち時間+演算TAT(ANDの)+VL=4+3+4=11の値と共にセットされる。   At the same time, instruction 2) is set in the scheduled instruction buffer 240 with a value of execution latency + operation TAT (AND) + VL = 4 + 3 + 4 = 11.

命令3)は、算出された「1」と共に実行確定命令レジスタ222に格納される。   The instruction 3) is stored in the execution fixed instruction register 222 together with the calculated “1”.

命令4)が命令格納バッファ210に格納される際、実行が確定している命令2)との依存関係から算出された「1」が命令間依存関係カウンタ213にセットされる。   When the instruction 4) is stored in the instruction storage buffer 210, “1” calculated from the dependency relationship with the instruction 2) whose execution is confirmed is set in the inter-instruction dependency counter 213.

直前実行確定命令222の命令3)は、命令4)に対してロードバッファからの転送パスも異なる(パス競合カウンタ214のカウンタデコード値:「11111111」である)など依存関係等の影響は無いので「11111111」(直前命令反映値)が得られ、命令間依存関係カウンタ213から読み出した値の「1」を示す「01111111」と論理積を取って、leading0に入力すると「01000000」が得られる。命令3)は、実行確定命令レジスタ222に減算後の「1」と共に格納される。   The instruction 3) of the immediately-preceding execution confirmation instruction 222 is not affected by the dependency relationship such as the transfer path from the load buffer is different from the instruction 4) (the counter decode value of the path conflict counter 214 is “11111111”). "11111111" (immediate instruction reflected value) is obtained, and "01111111" indicating "1" of the value read from the inter-instruction dependency relation counter 213 is ANDed and input to reading0, "01000000" is obtained. The instruction 3) is stored in the execution confirmation instruction register 222 together with “1” after subtraction.

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 execution standby buffer 250 together with the value “1”. The instruction 4) is stored in the fixed instruction register 222 together with “0” after subtraction.

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 standby instruction counter 252 corresponding to the instruction 3) is subtracted to “0”. The instruction 4) is stored in the execution standby buffer 250 together with the counter value “0” of the execution standby instruction counter 252. Since both the instruction 3) and the instruction 4) have the counter value of the execution standby instruction counter 252 being “0”, they can be executed simultaneously in the next cycle.

以降の説明は省略するが、このように本実施形態の命令発行制御方式においては、複数の命令を同時に発行するスケジューリングを行うことが可能である。   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 information processing apparatus 1 when the number of scheduled instruction buffers 240 is only four.

以下、図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 Clock 6, the instruction 5) is read from the instruction storage buffer 210. At this time, three of the four scheduled instruction buffers 240 are used, and since the instruction 4) is stored in the execution fixed instruction register 222, it is determined that a total of four are used. Therefore, the instruction 5) is not stored in the execution confirmation instruction register 222 at the next Clock7.

Clock8〜Clock10までは、スケジューリング済命令バッファ240を4個全て使用している状況は変わらない。   From Clock 8 to Clock 10, the situation where all four scheduled instruction buffers 240 are used remains the same.

Clock11において、スケジューリング済命令バッファ240に格納されている命令1)に対応するカウンタ242が「2」を示す(詳細図は省略)。このカウンタ値が「1」の時、次のサイクルでリセットされることが判っているため、次のサイクルで命令5)が実行確定命令レジスタ222に格納される。   In Clock 11, the counter 242 corresponding to the instruction 1) stored in the scheduled instruction buffer 240 indicates “2” (details are omitted). Since it is known that the counter value is reset in the next cycle when the counter value is “1”, the instruction 5) is stored in the execution confirmation instruction register 222 in the next cycle.

Clock12において、命令5)が実行確定命令レジスタ222に格納される。   In Clock 12, the instruction 5) is stored in the execution confirmation instruction register 222.

Clock13において、命令5)が実行待機バッファ250に値「0」と共に格納され、次のClock14で命令の実行が開始される。   In Clock 13, the instruction 5) is stored in the execution standby buffer 250 together with the value “0”, and the execution of the instruction is started in the next Clock 14.

このように、情報処理装置1は、バッファ数に制限があった場合にもレジスタ一貫性を保って命令発行することが可能である。   As described above, the information processing apparatus 1 can issue instructions while maintaining register consistency even when the number of buffers is limited.

次に、図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 information processing apparatus 1 when different instruction sequences are used.

ここでは、下記の命令列が実行されるケースを想定している。なお、いずれもベクトル長=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 prepared counters 213 and 214 are provided for each issue waiting instruction. Thus, for example, when the number of operation registers is 32 and the number of issued standby instruction buffers is 16, normally, busy management for at least register consistency, read path, and write path are managed. Because it is necessary, a counter that manages at least 32 * 3 = 96 busys is necessary. However, in the present embodiment, since 16 * 2 = 32 counters are sufficient, the amount of hardware for 64 counters can be reduced.

また、カウンタの値をデコード表に従ってデコードし、論理積後のビット列を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 execution scheduling unit 220, the contention arbitration circuit 221, the scheduling fixed instruction influence reflection unit 231, and the counter set value generation unit 232 cooperate. And realized.

本実施形態に係る情報処理装置1は、以下に記載するような効果を奏する。   The information processing apparatus 1 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.
<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 information processing apparatus 1 of the first embodiment, and the arrangement of data stored in the load buffers 150 and 151 is different.

ロードバッファ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 load buffer 150 and the load buffer 151.

この時、あるタイミングで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 registers 100 to 103 (crossbar 106) can also cope with alternate reading (showing the timing when the place where “1” stands is empty).

ところで、上記は、複数のロードバッファ150、151にロードデータを格納する際の性能向上であったが、複数の演算器を用いる場合においても、同様に、性能向上を行うことができる。   By the way, the above is the performance improvement when the load data is stored in the plurality of load buffers 150 and 151. However, even when a plurality of arithmetic units are used, the performance improvement can be similarly performed.

例えば、同一機能の演算器が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 pipeline control unit 50 and a pipeline processing execution unit 60.

パイプライン制御部50は、パイプライン処理実行部60を制御する。   The pipeline control unit 50 controls the pipeline processing execution unit 60.

パイプライン処理実行部60は、演算器パイプラインのパイプライン処理を実行する。   The pipeline processing execution unit 60 executes pipeline processing of the arithmetic unit pipeline.

パイプライン制御部50が、命令発行待機バッファに存在する命令に対して、使用するリソースが一致する、スケジューリング済みの命令の影響が無くなるタイミングまでの第1の時間を算出して命令間依存関係カウンタに第1の時間に対応するカウンタ値を格納し、演算器パイプラインにおけるパス競合が発生しないタイミングまでの第2の時間を算出してパス競合カウンタに第2の時間に対応するカウンタ値を格納する、カウンタセット値生成部51と、実行確定した命令が、直後に選択された命令に与える影響を示す、直前命令影響反映値を算出する、スケジューリング確定命令影響反映部52と、命令間依存関係カウンタのカウンタ値、パス競合カウンタのカウンタ値、及び、直前命令影響反映値を比較して、最短となる命令の実行待ち時間を算出する、競合調停部53と、を包含する。   The pipeline control unit 50 calculates the first time until the timing at which the influence of the scheduled instruction that matches the resource used for the instruction existing in the instruction issue waiting buffer is eliminated, and the inter-instruction dependency counter The counter value corresponding to the first time is stored, the second time until the timing at which the path contention does not occur in the arithmetic unit pipeline is calculated, and the counter value corresponding to the second time is stored in the path contention counter A counter set value generation unit 51, a scheduling fixed instruction influence reflection unit 52 that calculates the influence of the instruction that has been confirmed to be executed on the instruction selected immediately after that, and the inter-instruction dependency Compare the counter value of the counter, the counter value of the path contention counter, and the value that reflects the effect of the immediately preceding instruction, and execute the shortest instruction Chi calculates the time, including a conflict arbitration unit 53.

本実施形態に係る情報処理装置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 SYMBOLS 1 Information processing apparatus 10 Pipeline process execution part 100, 101, 102, 103 Operation register 105 Store data selector 106 Crossbar 110, 111, 112, 113 Operand selector 120 Multiply-add operation unit 130 Logical operation unit 150, 151 Load buffer 160 Operation Pipe control unit 20 Pipeline control unit 201 Instruction buffer buffer 202 Inter-instruction dependency check unit 203 Load buffer Fill determination unit 210 Instruction issue waiting buffer 211 Instruction storage buffer 212 Inter-instruction dependency flag 213 Inter-instruction dependency counter 214 Path contention counter 215 Filled flag 220 Instruction execution scheduling unit 221 Contention arbitration unit 222 Execution fixed instruction register 223 Execution waiting time 231 Effect of scheduling fixed instruction Reflection unit 232 Counter set value generation unit 240 Scheduled instruction buffer 241 Scheduled instruction storage register 242 Counter 250 Execution standby buffer 251 Execution standby instruction storage register 252 Execution standby instruction counter 30 Information processing device 40 Information processing device 50 Pipeline control unit 51 Counter set value generation unit 52 Scheduling confirmation instruction effect reflection unit 53 Contention arbitration unit 60 Pipeline processing execution unit

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.
前記命令間依存関係カウンタのカウンタ値、前記パス競合カウンタのカウンタ値、及び、前記直前命令影響反映値をデコードした値を用いて、前記競合調停手段が、前記最短となる命令の待ち時間を算出する請求項1に記載の情報処理装置。   Using the counter value of the inter-instruction dependency counter, the counter value of the path contention counter, and a value obtained by decoding the immediately preceding instruction influence reflection value, the contention arbitration unit calculates the shortest instruction waiting time. The information processing apparatus according to claim 1. 前記競合調停手段が、前記命令間依存関係カウンタのカウンタ値、前記パス競合カウンタのカウンタ値、及び、前記直前命令影響反映値の論理積を算出して、前記最短となる命令の実行待ち時間を算出する請求項1または2に記載の情報処理装置。   The contention arbitration means calculates a logical product of 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 sets the execution waiting time of the shortest instruction. The information processing apparatus according to claim 1 or 2 to calculate. 前記デコードした値が、leading0である請求項2または3に記載の情報処理装置。   The information processing apparatus according to claim 2, wherein the decoded value is leading0. 命令発行待機バッファに存在する命令に対して、使用するリソースが一致する、スケジューリング済みの命令の影響が無くなるタイミングまでの第1の時間を算出して命令間依存関係カウンタに前記第1の時間に対応するカウンタ値を格納し、前記演算器パイプラインにおけるパス競合が発生しないタイミングまでの第2の時間を算出してパス競合カウンタに前記第2の時間に対応するカウンタ値を格納し、
実行確定した命令が、直後に選択された命令に与える影響を示す、直前命令影響反映値を算出し、
前記命令間依存関係カウンタのカウンタ値、前記パス競合カウンタのカウンタ値、及び、前記直前命令影響反映値を比較して、最短となる命令の実行待ち時間を算出する、情報処理方法。
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.
前記命令間依存関係カウンタのカウンタ値、前記パス競合カウンタのカウンタ値、及び、前記直前命令影響反映値をデコードした値を用いて、前記最短となる命令の待ち時間を算出する、請求項5に記載の情報処理方法。   6. The waiting time of the shortest instruction is calculated by using a counter value of the inter-instruction dependency counter, a counter value of the path contention counter, and a value obtained by decoding the immediately preceding instruction influence reflection value. The information processing method described. 前記命令間依存関係カウンタのカウンタ値、前記パス競合カウンタのカウンタ値、及び、前記直前命令影響反映値の論理積を算出して、前記最短となる命令の実行待ち時間を算出する、請求項5または6に記載の情報処理方法。   6. The execution waiting time of the shortest instruction is calculated by calculating a logical product of 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. Or the information processing method of 6. 命令発行待機バッファに存在する命令に対して、使用するリソースが一致する、スケジューリング済みの命令の影響が無くなるタイミングまでの第1の時間を算出して命令間依存関係カウンタに前記第1の時間に対応するカウンタ値を格納し、前記演算器パイプラインにおけるパス競合が発生しないタイミングまでの第2の時間を算出してパス競合カウンタに前記第2の時間に対応するカウンタ値を格納する処理と、
実行確定した命令が、直後に選択された命令に与える影響を示す、直前命令影響反映値を算出する処理と、
前記命令間依存関係カウンタのカウンタ値、前記パス競合カウンタのカウンタ値、及び、前記直前命令影響反映値を比較して、最短となる命令の実行待ち時間を算出する処理と、をコンピュータに実行させるプログラム。
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.
前記命令間依存関係カウンタのカウンタ値、前記パス競合カウンタのカウンタ値、及び、前記直前命令影響反映値をデコードした値を用いて、前記最短となる命令の待ち時間を算出する処理を前記コンピュータに実行させる請求項8に記載のプログラム。   Processing for calculating the waiting time of the shortest instruction using the counter value of the inter-instruction dependency counter, the counter value of the path contention counter, and a value obtained by decoding the immediately preceding instruction influence reflection value in the computer The program according to claim 8 to be executed. 前記命令間依存関係カウンタのカウンタ値、前記パス競合カウンタのカウンタ値、及び、前記直前命令影響反映値の論理積を算出して、前記最短となる命令の実行待ち時間を算出する処理を前記コンピュータに実行させる請求項8または9に記載のプログラム。   Processing to calculate the execution waiting time of the shortest instruction by calculating a logical product of 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; The program according to claim 8 or 9, wherein the program is executed.
JP2014226144A 2014-11-06 2014-11-06 Information processing device, information processing method, and program Pending JP2016091362A (en)

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)

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