JP6381019B2 - Information processing apparatus and control method - Google Patents

Information processing apparatus and control method Download PDF

Info

Publication number
JP6381019B2
JP6381019B2 JP2014071860A JP2014071860A JP6381019B2 JP 6381019 B2 JP6381019 B2 JP 6381019B2 JP 2014071860 A JP2014071860 A JP 2014071860A JP 2014071860 A JP2014071860 A JP 2014071860A JP 6381019 B2 JP6381019 B2 JP 6381019B2
Authority
JP
Japan
Prior art keywords
instruction
tat
unit
operation instruction
subsequent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014071860A
Other languages
Japanese (ja)
Other versions
JP2015194844A (en
Inventor
尊博 内田
尊博 内田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2014071860A priority Critical patent/JP6381019B2/en
Publication of JP2015194844A publication Critical patent/JP2015194844A/en
Application granted granted Critical
Publication of JP6381019B2 publication Critical patent/JP6381019B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理装置及び制御方法に関する。   The present invention relates to an information processing apparatus and a control method.

情報処理装置において演算性能の向上は長年の課題である。演算性能の向上方法として演算器の数を増やした並列動作化や、演算レジスタ読み出しから演算レジスタ書き込みまでの時間である演算ターンアラウンドタイム(以下、演算TATと称する)を短縮するなどの方法が採られてきた。しかし、演算種類によって演算TATに差が生じた場合に演算性能が発揮できない場合があるという問題点があった。   Improvement of calculation performance in an information processing apparatus has been a problem for many years. As a method for improving the computation performance, parallel operation with an increased number of computing units or a method of shortening a computation turnaround time (hereinafter referred to as computation TAT), which is a time from computation register read to computation register write, is adopted. Has been. However, when there is a difference in the calculation TAT depending on the calculation type, there is a problem that the calculation performance may not be exhibited.

例えば、異なる演算TATを持つ演算器を有する演算装置において、異なった演算器からの結果の出力は、各演算器への演算命令の投入タイミングや各演算器の演算TATの違いにより、同一タイミングで競合する可能性がある。これを避ける為、各演算器の演算TATから逆算して、結果の出力タイミングが競合する場合には、後続の演算命令の投入タイミングを遅らせていた。例えば、ある1つの演算レジスタに書込みを行う演算命令が連続する場合、先行する演算命令による書き込みが完了してから後続の演算命令による書込みを行わなければならない。このような場面で後続の演算命令の演算TATが先行する演算命令の演算TATよりも小さい場合、後続の演算命令の投入は、先行する演算処理の進行を待ってから行わなければならない。これにより、それ以降の演算命令の投入も順次遅れることになり,性能の低下を招いていた。   For example, in an arithmetic unit having arithmetic units having different arithmetic TATs, output of results from different arithmetic units is performed at the same timing depending on the input timing of arithmetic instructions to each arithmetic unit and the arithmetic TAT of each arithmetic unit. There is a possibility of conflict. In order to avoid this, if the output timing of the result conflicts from the operation TAT of each operation unit, the input timing of the subsequent operation instruction is delayed. For example, when operation instructions for writing to a certain operation register are consecutive, writing by a subsequent operation instruction must be performed after writing by the preceding operation instruction is completed. In such a situation, when the operation TAT of the subsequent operation instruction is smaller than the operation TAT of the preceding operation instruction, the subsequent operation instruction must be input after waiting for the progress of the preceding operation processing. As a result, the subsequent input of operation instructions is also sequentially delayed, leading to performance degradation.

この問題に対し、例えば特許文献1では演算TATの異なる複数の演算器において演算TATが小さい演算器に対してはその後段に単に結果の転送のみを行なうレジスタを付加し演算TATを調整することで後続の演算命令の投入タイミングを早めることができる技術が開示されている。   To deal with this problem, for example, in Patent Document 1, in a plurality of arithmetic units having different arithmetic TATs, an arithmetic unit having a small arithmetic TAT is added with a register for simply transferring the result at the subsequent stage to adjust the arithmetic TAT. A technique capable of advancing the input timing of subsequent operation instructions is disclosed.

特許第2503983号公報Japanese Patent No. 2503983

また、例えば、ある演算レジスタAに書込みを行う演算命令aと、当該演算命令aによって演算レジスタAに書込まれた値を使用して行う演算命令bとが連続する場合、後続の演算命令bは、演算命令aが演算レジスタAに値を書き込んだ後に演算命令bが演算レジスタAに格納された値を読み取ることができるようなタイミングで実行されなければならない。特許文献1に開示された技術は、異なる演算TATを有する演算命令間の出力タイミングの競合を防ぎつつ処理を高速化する技術については開示があったが、このような演算命令間の演算レジスタの依存関係については考慮されていなかった。   Further, for example, when an operation instruction a that writes to a certain operation register A and an operation instruction b that uses a value written to the operation register A by the operation instruction a are consecutive, the subsequent operation instruction b Must be executed at a timing such that the operation instruction b can read the value stored in the operation register A after the operation instruction a writes the value in the operation register A. The technique disclosed in Patent Document 1 has disclosed a technique for speeding up processing while preventing contention of output timing between arithmetic instructions having different arithmetic TATs. Dependencies were not considered.

そこでこの発明は、上述の課題を解決することのできる情報処理装置及び制御方法を提供することを目的としている。   Accordingly, an object of the present invention is to provide an information processing apparatus and a control method that can solve the above-described problems.

本発明は、複数の演算レジスタと、複数の演算器と、演算命令の発行が決定すると、当該演算命令に関係する演算レジスタ及び演算器について、当該演算命令の実行のために使用する期間を表すビジー期間情報をセットし、前記発行が決定した演算命令の進行に応じて前記ビジー期間情報を減算するビジー期間情報管理部と、前記ビジー期間情報と後続の演算命令の実行に要する時間である演算TAT(TURN AROUND TIME)とに基づいて、前記後続の演算命令を逐次的に実行したときの演算結果を確保できる前記後続の演算命令の発行タイミングを決定するチェック部と、発行が決定した前記後続の演算命令の演算TATを、当該後続の演算命令に関係する演算器に応じて決定する決定部と、前記決定部が決定した演算TATに基づいて、発行が決定した前記後続の演算命令の演算結果を前記演算レジスタに格納するタイミングを調整する制御部と、を備え、前記チェック部は、前記後続の演算命令の演算TATについて、当該演算命令について定められた所定の演算TATに基づく前記後続の演算命令の発行タイミングよりも早いタイミングで当該後続の演算命令を発行する場合に、先行する演算命令の演算結果の確保に必要な前記時間を前記後続の演算命令の演算TATとして、前記発行タイミングを決定する、ことを特徴とする情報処理装置である。 The present invention, when a plurality of arithmetic registers, a plurality of arithmetic units, and the issuing of an arithmetic instruction are determined, represents a period used for execution of the arithmetic instruction for the arithmetic register and the arithmetic unit related to the arithmetic instruction. A busy period information management unit that sets busy period information and subtracts the busy period information according to the progress of the operation instruction determined to be issued, and an operation that is the time required to execute the busy period information and a subsequent operation instruction Based on TAT (TURN AROUND TIME), a check unit that determines the issue timing of the subsequent operation instruction that can secure an operation result when the subsequent operation instruction is sequentially executed, and the subsequent determined by the issue A determination unit that determines an operation TAT of the operation instruction according to an operation unit related to the subsequent operation instruction, and an operation TAT determined by the determination unit Based on a control unit for adjusting the timing of storing the operation result of said succeeding operation instruction issued is determined in the arithmetic register, Bei example, said checking unit, for calculating TAT of the subsequent operation instruction, the The time required for securing the operation result of the preceding operation instruction when the subsequent operation instruction is issued at a timing earlier than the issue timing of the subsequent operation instruction based on the predetermined operation TAT defined for the operation instruction Is determined as the operation TAT of the subsequent operation instruction .

また本発明は、複数の演算レジスタと、複数の演算器とを有する情報処理装置において、演算命令の発行が決定すると、当該演算命令に関係する演算レジスタ及び演算器について、当該演算命令の実行のために使用する期間を表すビジー期間情報をセットし、前記発行が決定した演算命令の進行に応じて前記ビジー期間情報を減算し、前記ビジー期間情報と後続の演算命令の実行に要する時間である演算TATとに基づいて、前記後続の演算命令を逐次的に実行したときの演算結果を確保できる前記後続の演算命令の発行タイミングを決定し、発行が決定した前記後続の演算命令の演算TATを、当該後続の演算命令に関係する演算器に応じて決定し、前記決定した演算TATに基づいて、発行が決定した前記後続の演算命令の演算結果を前記演算レジスタに格納するタイミングを調整し、前記発行タイミングを決定するときは、前記後続の演算命令の演算TATについて、当該演算命令について定められた所定の演算TATに基づく前記後続の演算命令の発行タイミングよりも早いタイミングで当該後続の演算命令を発行する場合に、先行する演算命令の演算結果の確保に必要な前記時間を前記後続の演算命令の演算TATとして、前記発行タイミングを決定する、ことを特徴とする制御方法である。 In addition, in the information processing apparatus having a plurality of arithmetic registers and a plurality of arithmetic units, the present invention may execute execution of the arithmetic instruction for the arithmetic registers and arithmetic units related to the arithmetic instruction when the issuance of the arithmetic instruction is determined. This is the time required to execute busy instruction information and the subsequent operation instruction by setting busy period information indicating a period to be used for the operation, subtracting the busy period information in accordance with the progress of the operation instruction determined to be issued. Based on the operation TAT, the issue timing of the subsequent operation instruction that can secure the operation result when the subsequent operation instruction is sequentially executed is determined, and the operation TAT of the subsequent operation instruction determined to be issued is determined. , determined according to the arithmetic unit relating to the subsequent operation instruction, based on the calculated TAT which the determined, before the calculation result of the subsequent operation instructions issued decides And adjusting the timing to be stored in the arithmetic register, when determining the issuance timing, for calculating TAT of the subsequent operation instructions, issue timings of the subsequent operation instruction based on a predetermined calculation TAT defined for the arithmetic instruction Determining the issuance timing when the subsequent calculation instruction is issued at an earlier timing, with the time required for securing the calculation result of the preceding calculation instruction as the calculation TAT of the subsequent calculation instruction ; This is a characteristic control method.

本発明によれば、演算レジスタの一貫性を確保しつつ、情報処理装置の性能を向上させることができるという効果が得られる。   According to the present invention, it is possible to improve the performance of the information processing device while ensuring the consistency of the arithmetic registers.

本発明の第一の実施形態による情報処理装置の具体的な構成を示す第一の図である。It is a 1st figure which shows the specific structure of the information processing apparatus by 1st embodiment of this invention. 本発明の第一の実施形態による情報処理装置の具体的な構成を示す第二の図である。It is a 2nd figure which shows the specific structure of the information processing apparatus by 1st embodiment of this invention. 関連する情報処理装置による演算処理のタイムチャートを示す第一の図である。It is a 1st figure which shows the time chart of the arithmetic processing by the related information processing apparatus. 関連する情報処理装置による演算処理のタイムチャートを示す第二の図である。It is a 2nd figure which shows the time chart of the arithmetic processing by the related information processing apparatus. 本発明の第一の実施形態による情報処理装置のタイムチャートを示す第一の図である。It is a 1st figure which shows the time chart of the information processing apparatus by 1st embodiment of this invention. 関連する情報処理装置による演算処理のタイムチャートを示す第三の図である。It is a 3rd figure which shows the time chart of the arithmetic processing by the related information processing apparatus. 関連する情報処理装置による演算処理のタイムチャートを示す第四の図である。It is a 4th figure which shows the time chart of the arithmetic processing by the related information processing apparatus. 本発明の第一の実施形態による情報処理装置のタイムチャートを示す第二の図である。It is a 2nd figure which shows the time chart of the information processing apparatus by 1st embodiment of this invention. 本発明の第一の実施形態による情報処理装置のタイムチャートを示す第三の図である。It is a 3rd figure which shows the time chart of the information processing apparatus by 1st embodiment of this invention. 本発明の第一の実施形態による情報処理装置のタイムチャートを示す第四の図である。It is a 4th figure which shows the time chart of the information processing apparatus by 1st embodiment of this invention. 本発明の第一の実施形態による情報処理装置のタイムチャートを示す第五の図である。It is a 5th figure which shows the time chart of the information processing apparatus by 1st embodiment of this invention. 本発明の第二の実施形態による情報処理装置の具体的な構成を示す図である。It is a figure which shows the specific structure of the information processing apparatus by 2nd embodiment of this invention. 本発明の第二の実施形態による情報処理装置のタイムチャートを示す図である。It is a figure which shows the time chart of the information processing apparatus by 2nd embodiment of this invention. 本発明の第三の実施形態による情報処理装置の具体的な構成を示す図である。It is a figure which shows the specific structure of the information processing apparatus by 3rd embodiment of this invention.

<第一の実施形態>
以下、本発明の一実施形態による情報処理装置を図1〜図11を参照して説明する。
図1は第一の実施形態による情報処理装置の具体的な構成を示す第一の図である。図1は情報処理装置のプロセッサの概略ブロック図である。
この図において、符号20は演算パイプ制御部を表している。演算パイプ制御部20は、メモリから読み込んだ命令列をデコードして適切なタイミングで演算レジスタ、演算器等の演算リソースに指示を行い、読み込んだ命令列を実行する。
<First embodiment>
Hereinafter, an information processing apparatus according to an embodiment of the present invention will be described with reference to FIGS.
FIG. 1 is a first diagram showing a specific configuration of the information processing apparatus according to the first embodiment. FIG. 1 is a schematic block diagram of a processor of the information processing apparatus.
In this figure, reference numeral 20 represents an arithmetic pipe control unit. The calculation pipe control unit 20 decodes the instruction sequence read from the memory, instructs the calculation resources such as calculation registers and calculators at appropriate timing, and executes the read instruction sequence.

符号100、101、102、103は演算レジスタV0、V1、V2,V3である。演算パイプ制御部20は演算レジスタに対して指定されたベクトル長(以下、VLと称する)分連続してデータの読み込み又は書込みを行う。通常は複数のベクトルパイプを用いて並列してベクトル長分の演算を処理するが、本実施形態ではベクトルパイプは1本とする。従って1つのベクトル命令が発行されると演算パイプ制御部20はそのベクトル命令の処理をベクトル長分連続で行う。
なお、図1の演算レジスタV0はV0−0,1,2,3の4つの要素を持ちベクトル長が4の演算に対応することができる。
Reference numerals 100, 101, 102, and 103 denote operation registers V0, V1, V2, and V3. The calculation pipe control unit 20 reads or writes data continuously for the vector length (hereinafter referred to as VL) specified for the calculation register. Usually, a plurality of vector pipes are used in parallel to calculate the vector length, but in this embodiment, there is one vector pipe. Accordingly, when one vector instruction is issued, the arithmetic pipe control unit 20 continuously processes the vector instruction for the vector length.
Note that the arithmetic register V0 in FIG. 1 has four elements V0-0, 1, 2, and 3 and can handle an operation with a vector length of 4.

符号110、111、112、113はオペランドセレクタで、各演算器の入力側に接続されている。また、オペランドセレクタ110〜113は、演算レジスタ100〜103に接続されている。そして演算パイプ制御部20から指示のあった演算レジスタからの出力を選択して演算器に出力する。
符号120は積和演算器で、演算パイプ制御部20からの指示に従ってベクトル長分の積和演算を実行する。積和演算器120は演算結果を伝送路900を介してクロスバー106へ出力する。
符号130は論理演算器で、演算パイプ制御部20からの指示に従ってベクトル長分の論理演算を実行する。論理演算器130は、演算結果をタイミング調整レジスタ131及びセレクタ133へ出力する。
符号131、132はタイミング調整レジスタである。タイミング調整レジスタ131は、論理演算器130の演算結果を取得すると1クロック後にタイミング調整レジスタ132に出力する。タイミング調整レジスタ132は演算結果を取得すると1クロック後にセレクタ133へ出力する。セレクタ133は、演算パイプ制御部20からの指示に従って論理演算器130、タイミング調整レジスタ131、132の出力を選択して伝送路900を介してクロスバー106へ出力する。
Reference numerals 110, 111, 112, and 113 are operand selectors connected to the input side of each arithmetic unit. Operand selectors 110-113 are connected to arithmetic registers 100-103. Then, the output from the arithmetic register instructed by the arithmetic pipe control unit 20 is selected and output to the arithmetic unit.
Reference numeral 120 denotes a product-sum operation unit, which executes a product-sum operation for the vector length in accordance with an instruction from the operation pipe control unit 20. The product-sum calculator 120 outputs the calculation result to the crossbar 106 via the transmission path 900.
Reference numeral 130 denotes a logical operation unit, which executes a logical operation for a vector length in accordance with an instruction from the operation pipe control unit 20. The logical operator 130 outputs the operation result to the timing adjustment register 131 and the selector 133.
Reference numerals 131 and 132 are timing adjustment registers. When the timing adjustment register 131 acquires the calculation result of the logical operation unit 130, the timing adjustment register 131 outputs it to the timing adjustment register 132 after one clock. When the timing adjustment register 132 acquires the calculation result, it outputs it to the selector 133 after one clock. The selector 133 selects the outputs of the logic operation unit 130 and the timing adjustment registers 131 and 132 in accordance with instructions from the operation pipe control unit 20 and outputs them to the crossbar 106 via the transmission line 900.

図2は第一の実施形態による情報処理装置の具体的な構成を示す第二の図である。図2は、図1における演算パイプ制御部20をより詳細に示した図である。
符号201は、命令バッファ部でメモリから読み込んだ命令列を格納するバッファ部である。
符号202は、命令デコーダで命令バッファ部201から読み出した命令をデコードして命令発行キュー203へ出力する。
FIG. 2 is a second diagram showing a specific configuration of the information processing apparatus according to the first embodiment. FIG. 2 is a diagram showing the operation pipe control unit 20 in FIG. 1 in more detail.
Reference numeral 201 denotes a buffer unit that stores an instruction sequence read from a memory by the instruction buffer unit.
Reference numeral 202 decodes an instruction read from the instruction buffer unit 201 by the instruction decoder and outputs the decoded instruction to the instruction issue queue 203.

符号203は、命令デコーダ202が解読した命令を格納する命令発行キューである。発行が決定された命令は命令発行キュー203から削除され、命令発行キュー203は新しい命令を命令デコーダ202から取得する。なお、情報処理装置によっては発行キュー内の命令が複数発行可能なものもあるが、本明細書においては発行キュー内の命令配置方法や競合調停方法については考えないものとし、命令がキューに格納された順に1つずつ発行されるものとする。   Reference numeral 203 denotes an instruction issue queue that stores instructions decoded by the instruction decoder 202. The instruction determined to be issued is deleted from the instruction issue queue 203, and the instruction issue queue 203 acquires a new instruction from the instruction decoder 202. Note that some information processing devices can issue multiple instructions in the issue queue. However, in this specification, the instruction placement method and contention arbitration method in the issue queue are not considered, and instructions are stored in the queue. It is assumed that they are issued one by one in the order in which they are made.

符号204は、W→W発行チェック部である。W→W(「Write→Write」)とは、同一の演算レジスタについて連続して書き込み処理が行われる関係を示している。W→W発行チェック部204は、命令発行キュー203の命令情報および後述するW→Wビジー情報管理部210のビジー値を受け取り、個々の命令についてW→Wの関係について一貫性を確保できる場合は、命令発行チェック部208に命令発行可能であることを通知する。一貫性を確保できるとは、W→Wの関係にある連続する演算命令をこの順番で逐次的に実行したときと同じ結果が得られることをいう。特に、W→W発行チェック部204は、命令が論理演算器130を使用する命令であった場合は、積和演算器120の演算TAT(TURN AROUND TIME)と後述するW→Wビジー情報管理部210のビジー値とを比較し、一貫性を確保できる場合にはTAT決定部207にW→Wビジー情報管理部210から受け取ったビジー値を送出する。なお、ビジー値とは、各演算レジスタや演算器の使用状況を管理するために用いる値である。ビジー値が0以外のときは対応する演算レジスタ等が使用されていることを示し、また、この値はカウンタとなっていて演算命令の進行に応じて減算される。また、演算TATとは、ある演算器を用いて演算を実行した際の演算レジスタ読み出しから演算レジスタ格納までの時間である。   Reference numeral 204 denotes a W → W issuance check unit. W → W (“Write → Write”) indicates a relationship in which write processing is continuously performed on the same arithmetic register. The W → W issuance check unit 204 receives the instruction information in the instruction issuance queue 203 and the busy value of the W → W busy information management unit 210, which will be described later, and can ensure consistency in the relationship of W → W for each instruction. The instruction issue check unit 208 is notified that an instruction can be issued. The phrase “consistency can be ensured” means that the same result can be obtained as when consecutive arithmetic instructions having a relationship of W → W are sequentially executed in this order. In particular, the W → W issuance check unit 204, when the instruction is an instruction using the logical operation unit 130, performs an operation TAT (TURN AROUND TIME) of the product-sum operation unit 120 and a W → W busy information management unit described later. The busy value of 210 is compared, and if the consistency can be ensured, the busy value received from the W → W busy information management unit 210 is sent to the TAT determination unit 207. The busy value is a value used to manage the usage status of each arithmetic register and arithmetic unit. When the busy value is other than 0, it indicates that the corresponding operation register or the like is being used, and this value is a counter and is subtracted in accordance with the progress of the operation instruction. The operation TAT is the time from operation register reading to operation register storage when an operation is performed using a certain arithmetic unit.

符号205は、R→W発行チェック部である。R→W(「Read→Write」)とは、同一の演算レジスタについて連続して読み取り処理と書き込み処理が行われる関係を示している。R→W発行チェック部205は、命令発行キュー203の命令情報および後述するR→Wビジー情報管理部220のビジー値を受け取り、個々の命令についてR→Wの関係について一貫性を確保できる場合は、命令発行チェック部208に命令発行可能であることを通知する。特に、R→W発行チェック部205は、命令が論理演算器130を使用する命令であった場合は、積和演算器120の演算TATとR→Wビジー情報管理部220の情報を比較し、一貫性を確保できる場合にはTAT決定部207にR→Wビジー情報管理部220から受け取ったビジー値を送出する。   Reference numeral 205 denotes an R → W issuance check unit. R → W (“Read → Write”) indicates a relationship in which read processing and write processing are continuously performed on the same arithmetic register. When the R → W issuance check unit 205 receives the instruction information in the instruction issuance queue 203 and the busy value of the R → W busy information management unit 220 (to be described later), the consistency of the R → W relationship can be ensured for each instruction. The instruction issue check unit 208 is notified that an instruction can be issued. In particular, the R → W issuance check unit 205 compares the operation TAT of the product-sum operation unit 120 with the information of the R → W busy information management unit 220 when the instruction is an instruction using the logical operation unit 130. If consistency can be ensured, the busy value received from the R → W busy information management unit 220 is sent to the TAT determination unit 207.

符号206は、ビジーチェック部である。ビジーチェック部206は、命令発行キュー203およびW→Rビジー情報管理部230および演算器ビジー情報管理部240の情報を受け取り、個々の命令についてW→Rの関係および演算器のビジー状態を確認し、一貫性を確保できる場合は命令発行チェック部208に命令発行可能であることを通知する。なお、W→R(「Write→Read」)とは、同一の演算レジスタについて連続して書き込み処理と読み取り処理が行われる関係を示している。   Reference numeral 206 denotes a busy check unit. The busy check unit 206 receives the information of the instruction issue queue 203, the W → R busy information management unit 230, and the arithmetic unit busy information management unit 240, and confirms the relationship of W → R and the busy state of the arithmetic unit for each instruction. When the consistency can be ensured, the instruction issue check unit 208 is notified that the instruction can be issued. Note that W → R (“Write → Read”) indicates a relationship in which write processing and read processing are continuously performed on the same arithmetic register.

符号207は、TAT決定部である。TAT決定部207は、論理演算器130以外を使用する命令の場合は、命令本来の演算TATを出力し、論理演算器130を使用する場合にはW→W発行チェック部204およびR→W発行チェック部205の出力値を比較して、大きい値を出力する。   Reference numeral 207 denotes a TAT determination unit. The TAT determination unit 207 outputs the instruction's original operation TAT in the case of an instruction using something other than the logical operator 130, and the W → W issue check unit 204 and the R → W issue in the case of using the logical operator 130. The output value of the check unit 205 is compared, and a large value is output.

符号208は命令発行チェック部で、命令発行キュー203に有効な命令が存在し且つW→W発行チェック部204およびR→W発行チェック部205およびビジーチェック部206の全てから命令発行可能である通知を受け取った場合に命令発行決定を命令発行キュー203および命令発行確定情報レジスタ270およびW→Wビジー情報生成部260,R→Wビジー情報生成部261,W→Rビジー情報生成部262,演算器ビジー情報生成部263に通知する。   Reference numeral 208 denotes an instruction issuance check unit, which indicates that a valid instruction exists in the instruction issuance queue 203 and that instructions can be issued from all of the W → W issuance check unit 204, the R → W issuance check unit 205, and the busy check unit 206. Instruction issue decision 203, instruction issue confirmation information register 270, W → W busy information generation unit 260, R → W busy information generation unit 261, W → R busy information generation unit 262, arithmetic unit The busy information generation unit 263 is notified.

符号210はW→Wビジー情報管理部である。W→Wビジー情報管理部210は、演算レジスタのW→Wとなる命令間におけるデータ一貫性を保証するためのビジー情報を管理する機能を持つ。演算レジスタV0〜V3に対応したW→Wビジー情報管理部211〜214が設けられている。   Reference numeral 210 denotes a W → W busy information management unit. The W → W busy information management unit 210 has a function of managing busy information for assuring data consistency between W → W instructions of the operation register. W → W busy information management units 211 to 214 corresponding to the arithmetic registers V0 to V3 are provided.

符号220はR→Wビジー情報管理部である。R→Wビジー情報管理部220は、演算レジスタのR→Wとなる命令間におけるデータ一貫性を保証するためのビジー値を管理する機能を持つ。演算レジスタV0〜V3に対応したR→Wビジー情報管理部221〜224が設けられている。   Reference numeral 220 denotes an R → W busy information management unit. The R → W busy information management unit 220 has a function of managing a busy value for guaranteeing data consistency between R → W instructions of the arithmetic register. R → W busy information management units 221 to 224 corresponding to the arithmetic registers V0 to V3 are provided.

符号230はW→Rビジー情報管理部である。W→Rビジー情報管理部230は、演算レジスタのW→Rとなる命令間におけるデータ一貫性を保証するためのビジー値を管理する機能を持つ。演算レジスタV0〜V3に対応したW→Rビジー情報管理部231〜234が設けられている。   Reference numeral 230 denotes a W → R busy information management unit. The W → R busy information management unit 230 has a function of managing a busy value for guaranteeing data consistency between instructions of W → R in the operation register. W → R busy information management units 231 to 234 corresponding to the arithmetic registers V0 to V3 are provided.

符号240は演算器ビジー情報管理部である。演算器ビジー情報管理部240は、演算器のビジー値を管理する機能を持つ。積和演算器120、論理演算器130に対応した演算器ビジー情報管理部241〜242が設けられている。   Reference numeral 240 denotes an arithmetic unit busy information management unit. The arithmetic unit busy information management unit 240 has a function of managing the busy value of the arithmetic unit. Operation unit busy information management units 241 to 242 corresponding to the product-sum operation unit 120 and the logic operation unit 130 are provided.

符号260は、W→Wビジー情報生成部である。W→Wビジー情報生成部260は、命令発行キュー203およびTAT決定部207および命令発行チェック部208からの信号を取得し、演算レジスタV0〜V3に書き込みを行う命令の発行確定の通知を受けた場合は、書き込み先演算レジスタ情報および演算TAT情報をW→Wビジー情報管理部210に送出する。   Reference numeral 260 denotes a W → W busy information generation unit. The W → W busy information generation unit 260 acquires signals from the instruction issuance queue 203, the TAT determination unit 207, and the instruction issuance check unit 208, and has received notification of the issuance of the instruction for writing to the arithmetic registers V0 to V3. In this case, write destination calculation register information and calculation TAT information are sent to the W → W busy information management unit 210.

符号261は、R→Wビジー情報生成部である。R→Wビジー情報生成部261は、命令発行キュー203およびTAT決定部207および命令発行チェック部208からの信号を取得し、演算レジスタV0〜V3から読み出しを行う命令の発行確定の通知を受けた場合は、読み出し先演算レジスタ情報および読み出しパターン情報をR→Wビジー情報管理部220に送出する。読み出しパターン情報とは、例えば、「1サイクルに1要素を読み出す」、「1サイクルに全要素を読み出す」、「何サイクルかごとに1要素ずつ読み出す」等である。   Reference numeral 261 denotes an R → W busy information generation unit. The R → W busy information generation unit 261 obtains signals from the instruction issue queue 203, the TAT determination unit 207, and the instruction issue check unit 208, and has received notification of issuance of instructions to be read from the arithmetic registers V0 to V3. In this case, the read destination calculation register information and the read pattern information are sent to the R → W busy information management unit 220. The read pattern information includes, for example, “read one element in one cycle”, “read all elements in one cycle”, “read one element every several cycles”, and the like.

符号262はW→Rビジー情報生成部である。W→Rビジー情報生成部262は、命令発行キュー203およびTAT決定部207および命令発行チェック部208からの信号を取得し、演算レジスタV0〜V3に書き込みを行う命令の発行確定の通知を受けた場合は、書き込み先演算レジスタ情報および演算TAT情報をW→Rビジー情報管理部230に送出する。   Reference numeral 262 denotes a W → R busy information generation unit. The W → R busy information generation unit 262 obtains signals from the instruction issue queue 203, the TAT determination unit 207, and the instruction issue check unit 208, and has received notification of the issuance of instructions to be written to the arithmetic registers V0 to V3. In this case, write destination calculation register information and calculation TAT information are sent to the W → R busy information management unit 230.

符号263は演算器ビジー情報生成部で、命令発行キュー203およびTAT決定部207および命令発行チェック部208からの信号を取得し、演算器を使う命令の発行確定の通知を受けた場合は、使用する演算器を示す情報およびVLを示す情報を演算器ビジー情報管理部240に送出する。   Reference numeral 263 denotes an arithmetic unit busy information generation unit that obtains signals from the instruction issue queue 203, the TAT determination unit 207, and the instruction issue check unit 208, and is used when notification of the issue of an instruction using the arithmetic unit is received. The information indicating the arithmetic unit to perform and the information indicating VL are sent to the arithmetic unit busy information management unit 240.

符号270は命令発行確定情報レジスタで、命令発行チェック部208から命令発行決定の通知を受け1サイクル間保持する。
符号271は発行確定命令情報レジスタで、命令発行キュー203から発行決定した命令の情報を受け1サイクル間保持する。
符号272は発行確定TAT情報レジスタで、TAT決定部207からのTAT情報を受け1T間保持する。
Reference numeral 270 denotes an instruction issuance confirmation information register which receives an instruction issuance decision notification from the instruction issuance check unit 208 and holds it for one cycle.
Reference numeral 271 denotes an issue fixed instruction information register which receives information on an instruction determined to be issued from the instruction issue queue 203 and holds it for one cycle.
Reference numeral 272 denotes an issue confirmation TAT information register which receives TAT information from the TAT determination unit 207 and holds it for 1T.

符号273〜278は制御タイミング調整レジスタで、図1に示す演算リソースをデータの流れるタイミングに合わせて制御する。
符号282〜287はデコーダで、図1の各機能部に発行確定した命令の必要箇所をデコードして動作指示を伝える機能を持つ。特にデコーダ285〜287は命令本来の最短TATと207で決定されたTAT情報を比較し、差分値から判断してレジスタ格納指示を出す機能を持つ。例えば、デコーダ285は、差分値が0だったらレジスタに格納するタイミングであると識別して、レジスタ格納指示を出す機能を持つ。同様にデコーダ286は差分値が1だったらレジスタ格納指示を出し、デコーダ287は差分値が2の場合にレジスタ格納指示を出す。
Reference numerals 273 to 278 denote control timing adjustment registers, which control the arithmetic resources shown in FIG. 1 in accordance with the timing of data flow.
Reference numerals 282 to 287 denote decoders, which have a function of transmitting operation instructions by decoding necessary portions of the issued and confirmed instructions to the respective functional units in FIG. In particular, the decoders 285 to 287 have a function of comparing the instruction's original shortest TAT with the TAT information determined in 207 and issuing a register storage instruction based on the difference value. For example, the decoder 285 has a function of issuing a register storage instruction by identifying that it is the timing to store in the register if the difference value is zero. Similarly, when the difference value is 1, the decoder 286 issues a register storage instruction, and when the difference value is 2, the decoder 287 issues a register storage instruction.

以下において、いくつかの命令列を例に関連する情報処理装置及び本実施形態による情報処理装置の動作を説明する。
前提としてVADD命令、VMPY命令は、積和演算器120によって実行され、演算TATは、5サイクルであるとする。また、VAND命令は、論理演算器130によって実行され、演算TATは3サイクルであるとする。
Hereinafter, an operation of the information processing apparatus and the information processing apparatus according to the present embodiment related to some instruction sequences will be described.
It is assumed that the VADD instruction and the VMPY instruction are executed by the product-sum operation unit 120, and the operation TAT is 5 cycles. Further, it is assumed that the VAND instruction is executed by the logical operation unit 130 and the operation TAT is 3 cycles.

図3は、関連する情報処理装置による演算処理のタイムチャートを示す第一の図である。
図3を用いて以下の命令列「I1」、「I2」を例に関連する情報処理装置による動作を説明する。
命令「I1」 VAND V3 ← V0 & V1 VL=2
命令「I2」 VMPY V0 ← V2 × V3 VL=2
命令「I1」は、論理演算器130が、演算レジスタV0とV1の値を入力し、論理積を演算して結果を演算レジスタV3へ格納することを示している。命令「I2」は、積和演算器120が、演算レジスタV2とV3の値を入力し、これらの値を乗算して演算結果を演算レジスタV0へ格納することを示している。
命令「I1」と「I2」の関係における特徴は演算レジスタV3についてWrite→Readの関係になることである。ここで演算レジスタV3についてWrite→Readの関係になるということは演算レジスタV3に対してWrite処理が完了する前にReadが完了してはならないことを意味する。
なお、関連する情報処理装置には図1におけるタイミング調整レジスタ131、132及びセレクタ133が備えられていない。また、図3において、「L−x」(x=0,1)は、論理演算器130の出力値を示し、「M−x」(x=0,1)は、積和演算器120の出力値を示している。
FIG. 3 is a first diagram illustrating a time chart of arithmetic processing by the related information processing apparatus.
The operation of the information processing apparatus related to the following instruction sequences “I1” and “I2” will be described with reference to FIG.
Command “I1” VAND V3 ← V0 & V1 VL = 2
Command “I2” VMPY V0 ← V2 × V3 VL = 2
The instruction “I1” indicates that the logical operation unit 130 inputs the values of the operation registers V0 and V1, calculates a logical product, and stores the result in the operation register V3. The instruction “I2” indicates that the product-sum operation unit 120 inputs the values of the operation registers V2 and V3, multiplies these values, and stores the operation result in the operation register V0.
A feature of the relationship between the instructions “I1” and “I2” is that the operation register V3 has a write → read relationship. Here, the relation of Write → Read with respect to the arithmetic register V3 means that the Read must not be completed before the Write process for the arithmetic register V3 is completed.
The related information processing apparatus does not include the timing adjustment registers 131 and 132 and the selector 133 in FIG. In FIG. 3, “L−x” (x = 0, 1) indicates the output value of the logical operation unit 130, and “Mx” (x = 0, 1) indicates the product-sum operation unit 120. The output value is shown.

まず、クロック1において命令「I1」の発行が決定する(図3中、「Dispatch」)。するとクロック2〜3において演算レジスタV0、V1からデータが読み出される。さらに演算パイプ制御部20からの制御信号によってオペランドセレクタ112,113が演算レジスタV0、V1のデータを論理演算器130に出力する。ここでクロック2〜3の2サイクルに渡ってこれらの処理が連続して行われるのはVL=2だからである。クロック3〜4で論理演算器130は演算を行い(図3中、「演算ステージ1))、クロック4〜5で論理演算器130は演算結果をクロスバー106へ出力する。さらに演算パイプ制御部20からの制御信号によって演算レジスタV3に演算結果が格納される。クロック5で命令「I1」の最初のデータが確定し、クロック6で命令「I1」の2番目のデータが確定する。   First, the issue of the instruction “I1” is determined at clock 1 (“Dispatch” in FIG. 3). Then, data is read from the arithmetic registers V0 and V1 at clocks 2 to 3. Further, the operand selectors 112 and 113 output the data of the operation registers V0 and V1 to the logical operation unit 130 in response to a control signal from the operation pipe control unit 20. Here, the reason why these processes are continuously performed over two cycles of clocks 2 to 3 is that VL = 2. The logical operation unit 130 performs an operation at clocks 3 to 4 (“operation stage 1” in FIG. 3), and the logical operation unit 130 outputs an operation result to the crossbar 106 at clocks 4 to 5. Further, an operation pipe control unit. The operation result is stored in the operation register V3 by the control signal from 20. The first data of the instruction “I1” is determined at clock 5, and the second data of the instruction “I1” is determined at clock 6.

命令「I2」についても同様にして演算が行われる。命令「I1」によって演算レジスタV3への書き込み処理が完了する前に命令「I2」による演算レジスタV3からのデータ読込が行われないように一般的な演算パイプライン制御では後続の命令「I2」はクロック4で命令の発行が決定する。クロック4で命令「I2」の発行が決定すると、命令「I1」の演算結果が演算レジスタV3に格納された(図3中、クロック5の「V3レジスタ」)直後に命令「I2」で読み出される(図3中クロック5の「V3レジスタReadData」)動作となる。このように命令が最速で動作することをチェイニングという。命令「I2」のVMPY命令は、積和演算器120を使用するので演算TATは5サイクルである。従って演算レジスタ読み出しから演算レジスタ書き込みまで5サイクルかかる。よってV0レジスタでの最初の値が確定するのがクロック10である。   The operation is similarly performed for the instruction “I2”. In general arithmetic pipeline control, the subsequent instruction “I2” is not read from the arithmetic register V3 by the instruction “I2” before the write processing to the arithmetic register V3 is completed by the instruction “I1”. The issue of an instruction is determined at clock 4. When the issue of the instruction “I2” is determined at the clock 4, the operation result of the instruction “I1” is stored in the operation register V3 (“V3 register” of the clock 5 in FIG. 3), and is read out by the instruction “I2”. ("V3 register ReadData" of clock 5 in FIG. 3) operation. That the instruction operates at the fastest speed is called chaining. Since the VMPY instruction of the instruction “I2” uses the product-sum operation unit 120, the operation TAT is 5 cycles. Therefore, it takes 5 cycles from operation register read to operation register write. Therefore, the clock 10 determines the first value in the V0 register.

図4は、関連する情報処理装置による演算処理のタイムチャートを示す第二の図である。
図4を用いて関連する情報処理装置による演算処理の問題点を説明する。図4では以下の命令列を例に関連する情報処理装置による動作を説明する。
命令「I0」 VADD* V3 ← V0 + V1 VL=2
命令「I1」 VAND* V3 ← V0 & V1 VL=2
命令「I2」 VMPY V0 ← V1 × V2 VL=2
命令「I0」は、積和演算器120が、演算レジスタV0とV1の値を入力し、これらの値を加算して演算結果を演算レジスタV3へ格納することを示している。命令「I1」は、論理演算器130が、演算レジスタV0とV1の値を入力し、論理積を演算して結果を演算レジスタV3へ格納することを示している。命令「I2」は、積和演算器120が、演算レジスタV1とV2の値を入力し、これらの値を乗算して演算結果を演算レジスタV0へ格納することを示している。
命令「I0」と「I1」の関係における特徴は演算レジスタV3についてWrite→Writeの関係になることであり、これは演算レジスタV3について命令「I0」におけるWrite処理が完了する前に命令「I0」におけるWrite処理が完了してはならないことを意味する。
また、命令「I1」と「I2」の関係における特徴は演算レジスタV0についてRead→Writeの関係になることである。演算レジスタV0について命令「I1」におけるRead処理が完了する前に命令「I2」におけるWrite処理が完了してはならないことを意味する。
FIG. 4 is a second diagram illustrating a time chart of the arithmetic processing by the related information processing apparatus.
The problem of the arithmetic processing by the related information processing apparatus will be described with reference to FIG. In FIG. 4, the operation of the information processing apparatus related to the following instruction sequence will be described.
Command “I0” VADD * V3 ← V0 + V1 VL = 2
Command “I1” VAND * V3 ← V0 & V1 VL = 2
Command “I2” VMPY V0 ← V1 × V2 VL = 2
The instruction “I0” indicates that the product-sum operation unit 120 inputs the values of the operation registers V0 and V1, adds these values, and stores the operation result in the operation register V3. The instruction “I1” indicates that the logical operation unit 130 inputs the values of the operation registers V0 and V1, calculates a logical product, and stores the result in the operation register V3. The instruction “I2” indicates that the product-sum operation unit 120 inputs the values of the operation registers V1 and V2, multiplies these values, and stores the operation result in the operation register V0.
A characteristic of the relationship between the instructions “I0” and “I1” is that the relation “Write → Write” is set for the arithmetic register V3. This means that the instruction “I0” is completed before the write processing in the instruction “I0” is completed for the arithmetic register V3. This means that the write processing in the process must not be completed.
A feature of the relationship between the instructions “I1” and “I2” is that the operation register V0 has a relationship of Read → Write. This means that the write process in the instruction “I2” must not be completed before the read process in the instruction “I1” is completed for the arithmetic register V0.

このため命令「I0」がクロック1で発行決定後、命令「I0」によって演算レジスタV3への書き込み処理が完了する前に命令「I1」による演算レジスタV3への書き込み処理が行われないように一般的な演算パイプライン制御では後続の命令「I1」の発行の決定はクロック4となる。命令「I1」の発行決定が「I0」より2サイクル遅れるのは「I0」で使用する積和演算器120の演算TAT(=5)と「I1」で使用する論理演算器130の演算TAT(=3)の差が2サイクルだからである。
このため、命令「I1」と「I2」についても演算レジスタV0について読み取りが完了する前に、書き込みが行われないように命令「I2」の発行の決定は、必ず命令「I1」が発行された後でなければならない。従って命令「I2」の発行はクロック5に決定し、本命令による最後のデータ「M−1」の演算レジスタV0への書き込みが完了し値が確定するのはクロック12である。このように、一般的な動作では、後続の演算命令の投入タイミングを遅らせることによって演算レジスタ間の一貫性を確保していた。その為、さらに後に予定されている演算命令についても次々と投入タイミングが遅れるという問題があった。
Therefore, after the instruction “I0” is determined to be issued at the clock 1, the instruction “I1” is generally not written to the arithmetic register V3 before the writing process to the arithmetic register V3 is completed by the instruction “I0”. In general arithmetic pipeline control, the decision to issue the subsequent instruction “I1” is clock 4. The issue determination of the instruction “I1” is delayed by two cycles from “I0” because the operation TAT (= 5) of the product-sum operation unit 120 used in “I0” and the operation TAT of the logical operation unit 130 used in “I1” ( This is because the difference of = 3) is two cycles.
Therefore, the instruction “I1” is always issued to determine whether to issue the instruction “I2” so that the instructions “I1” and “I2” are not written before the operation register V0 is read. Must be later. Accordingly, the issue of the instruction “I2” is determined at the clock 5, and the writing of the last data “M−1” to the arithmetic register V0 by this instruction is completed and the value is determined at the clock 12. As described above, in a general operation, consistency between operation registers is ensured by delaying the timing of the subsequent operation instruction. For this reason, there has been a problem that the input timing is delayed one after another for the operation instructions scheduled later.

図5は、本実施形態による情報処理装置のタイムチャートを示す第一の図である。
図5を用いて本実施形態における動作を説明する。本実施形態では演算器毎の演算TATは積和演算器120が5サイクルであり、論理演算器130は3〜5サイクルと可変である。また図5で説明した命令列は図4のときと同じであるものとする。
本実施形態ではこの命令列のように後続の演算命令の書込み先演算レジスタV3でWrite→Writeの関係にあるときは、演算パイプ制御部20が後続の演算命令の演算TATを先行する演算命令の演算TATに合わせて動作させる。図5の例では命令「I0」に後続する命令「I1」のVAND命令の演算TATを5サイクルにするということである。このように、演算TATを長い方に合わせることで、後続の命令は、1サイクル遅れて投入すればV3レジスタへの書き込みタイミングの競合を防ぐことができる。図5の場合、クロック1で命令「I0」の発行を決定した後、命令「I1」の発行をクロック2で決定することができる。さらに命令「I2」の発行はクロック3で決定することができ、演算レジスタV0への書き込みが完了し値が確定するのはクロック10である。
このように本実施形態の情報処理装置によれば、図4の方法に比べ2サイクル早く命令列の演算を完了することができる。
なお、本実施形態による演算TATの決定動作については後に図8を用いて説明する。
FIG. 5 is a first diagram illustrating a time chart of the information processing apparatus according to the present embodiment.
The operation in this embodiment will be described with reference to FIG. In the present embodiment, the calculation TAT for each computing unit is variable in 5 cycles for the product-sum computing unit 120 and 3 to 5 cycles for the logical computing unit 130. The instruction sequence described in FIG. 5 is the same as that in FIG.
In this embodiment, when the write operation register V3 of the subsequent operation instruction is in a write-to-write relationship as in this instruction sequence, the operation pipe control unit 20 sets the operation instruction preceding the operation TAT of the subsequent operation instruction. Operate according to the operation TAT. In the example of FIG. 5, the operation TAT of the VAND instruction of the instruction “I1” following the instruction “I0” is set to 5 cycles. In this way, by adjusting the operation TAT to the longer one, it is possible to prevent contention of the write timing to the V3 register if the subsequent instruction is input with a delay of one cycle. In the case of FIG. 5, after the issue of the instruction “I0” is determined at the clock 1, the issue of the instruction “I1” can be determined at the clock 2. Further, the issue of the instruction “I2” can be determined by the clock 3, and it is the clock 10 that completes the writing to the arithmetic register V0 and determines the value.
As described above, according to the information processing apparatus of this embodiment, the operation of the instruction sequence can be completed two cycles earlier than the method of FIG.
The operation for determining the calculation TAT according to the present embodiment will be described later with reference to FIG.

図6は、関連する情報処理装置による演算処理のタイムチャートを示す第三の図である。
図6及び図2を用いて演算パイプ制御部20内部のビジー管理の動作について説明する。説明に用いるのは図3でも用いた以下の命令列である。
命令「I1」 VAND V3 ← V0 & V1 VL=2
命令「I2」 VMPY V0 ← V2 × V3 VL=2
ビジー管理は、命令を発行するにあたりその命令で使用する演算レジスタや演算器が先行する命令の実行により使用中であるかどうかや、何サイクル後に使用中でなくなるかなどを把握し、命令の発行タイミングを調整するために行う。本明細書ではカウンタを用いてビジー管理を行う方法で説明するがこれに限定されない。例えばレジスタで符号を持ちまわる方法などでもよい。本実施形態においてカウンタによるビジー管理を行うのはW→Wビジー情報管理部211〜214、R→Wビジー情報管理部221〜224、W→Rビジー情報管理部231〜234、演算器ビジー情報管理部241〜242である。これらの管理部のカウンタの初期値は0であるものとする。
FIG. 6 is a third diagram illustrating a time chart of the arithmetic processing by the related information processing apparatus.
The busy management operation inside the arithmetic pipe control unit 20 will be described with reference to FIGS. The following instruction sequence used in FIG. 3 is used for the description.
Command “I1” VAND V3 ← V0 & V1 VL = 2
Command “I2” VMPY V0 ← V2 × V3 VL = 2
In busy management, when issuing an instruction, it is possible to determine whether the operation register or arithmetic unit used in the instruction is in use by executing the preceding instruction, and how many cycles it is not in use, and issue the instruction. This is done to adjust the timing. In this specification, a method of performing busy management using a counter will be described, but the present invention is not limited to this. For example, a method of holding a sign in a register may be used. In this embodiment, the busy management by the counter is performed by the W → W busy information management units 211 to 214, the R → W busy information management units 221 to 224, the W → R busy information management units 231 to 234, and the arithmetic unit busy information management. Parts 241 to 242. Assume that the initial values of the counters of these management units are zero.

まず、クロック1で命令「I1」の発行が決定すると、クロック2でW→Wビジー情報管理部214及びW→Rビジー情報管理部234にVAND命令の演算TAT(=3)がセットされる。演算器ビジー情報管理部242には命令「I1」の演算器使用時間である2がセットされる。演算器使用時間は、論理演算器130において演算ステージは1回(「130演算ステージ1」)で演算データがVL=2であることから2となる。これらの値がセットされたビジー情報管理部は対応する演算レジスタや演算器がビジー状態であることを示している。そして1クロックが経過するごとに各値は1ずつ減算される。以下において各ビジー情報管理部211〜214、221〜224、231〜234、241〜242が保持する値をビジー値という。ビジー値はビジー管理を行うためのカウンタである。
後続の命令「I2」は関連する演算レジスタのビジー状態を確認し、発行条件が整ったら発行を決定する。具体的には命令「I2」は「V0 ← V2 × V3」なのでReadを行う演算レジスタV2、V3についてはW→Rビジー情報管理部233、234のビジー状況を確認する。Writeを行う演算レジスタV0についてはW→Wビジー情報管理部211、R→Wビジー情報管理部221のビジー状況を確認する。そして積和演算器120を使用するので演算器ビジー情報管理部241のビジー状況を確認する。
First, when the issue of the instruction “I1” is determined at clock 1, the VAND instruction operation TAT (= 3) is set in the W → W busy information management unit 214 and the W → R busy information management unit 234 at clock 2. The computing unit busy information management unit 242 is set to 2 which is the computing unit usage time of the instruction “I1”. The operation unit use time is 2 because the operation stage is once (“130 operation stage 1”) and the operation data is VL = 2 in the logic operation unit 130. The busy information management unit in which these values are set indicates that the corresponding arithmetic register or arithmetic unit is busy. Each time one clock elapses, each value is decremented by one. Hereinafter, values held by the busy information management units 211 to 214, 221 to 224, 231 to 234, and 241 to 242 are referred to as busy values. The busy value is a counter for performing busy management.
Subsequent instruction “I2” confirms the busy state of the related arithmetic register, and determines the issue if the issue condition is satisfied. Specifically, since the instruction “I2” is “V0 ← V2 × V3”, the busy status of the W → R busy information management units 233 and 234 is confirmed for the arithmetic registers V2 and V3 that perform the read. For the operation register V0 that performs Write, the busy status of the W → W busy information management unit 211 and the R → W busy information management unit 221 is confirmed. Since the product-sum calculator 120 is used, the busy status of the calculator busy information management unit 241 is confirmed.

まず、クロック2におけるビジー状況を確認する。W→Rビジー情報管理部233については、先行する命令「I1」後に値をセットとしていないのでビジー状態を示すカウンタ値は初期値の0である。これはReadを行う演算レジスタV2については、命令「I2」を発行するにあたり問題が無いことを示している。また、Writeを行う演算レジスタV0については、W→Wビジー情報管理部211、R→Wビジー情報管理部221についても同様にビジー状態を示すカウンタ値が0なのでビジーではない。また、演算器ビジー情報管理部241についてもビジー状態を示すカウンタ値は0である。次に演算レジスタV3について確認すると、クロック2においてW→Rビジー情報管理部234の値は3である。これは演算レジスタV3がビジー状態なので命令「I2」の発行ができないことを示している。   First, the busy status of the clock 2 is confirmed. As for the W → R busy information management unit 233, since no value is set after the preceding instruction “I1”, the counter value indicating the busy state is 0 as an initial value. This indicates that there is no problem in issuing the instruction “I2” for the operation register V2 that performs the read. In addition, regarding the operation register V0 that performs Write, the W → W busy information management unit 211 and the R → W busy information management unit 221 are similarly not busy because the counter value indicating the busy state is 0. In addition, the counter value indicating the busy state is also 0 for the arithmetic unit busy information management unit 241. Next, when the operation register V3 is confirmed, the value of the W → R busy information management unit 234 is 3 in the clock 2. This indicates that the instruction “I2” cannot be issued because the arithmetic register V3 is busy.

ここで、W→Wビジー情報管理部211〜214はW→W発行チェック部204に1クロックごとにビジー値を出力する。同様に、R→Wビジー情報管理部221〜224はR→W発行チェック部205に、W→Wビジー情報管理部231〜234、演算器ビジー情報管理部241〜242はビジーチェック部206にビジー値を出力する。そして各チェック部204、205、206は取得したビジー値に基づいて後続の命令を発行するかどうかの判定を行う。判定の方法は自分が管理する対象である演算リソースの全てのビジー値が1以下となるかどうかで判定する。各チェック部204、205、206は、全てのビジー値が1以下であれば「1」を、そうでなければ「0」を命令発行チェック部208に出力する。そして命令発行チェック部208は、これらの取得した値が全て「1」であれば命令の発行が可能であると判定する。   Here, the W → W busy information management units 211 to 214 output a busy value to the W → W issue check unit 204 every clock. Similarly, the R → W busy information management units 221 to 224 are busy with the R → W issue check unit 205, the W → W busy information management units 231 to 234, and the computing unit busy information management units 241 to 242 are busy with the busy check unit 206. Output the value. Each check unit 204, 205, 206 determines whether to issue a subsequent command based on the acquired busy value. The determination method is based on whether or not all the busy values of the computation resources that are the objects of management are 1 or less. Each of the check units 204, 205, and 206 outputs “1” to the instruction issue check unit 208 if all busy values are 1 or less, and “0” otherwise. The instruction issuance check unit 208 determines that an instruction can be issued if all of the acquired values are “1”.

図6のクロック2及び3においてW→W発行チェック部204及びR→W発行チェック部205の出力値が1であるが、ビジーチェック部206の出力値が0であるので命令発行チェック部208は後続命令の発行を決定できない。ビジーチェック部206の出力値が0であるのは、ビジーチェック部206が、W→Rビジー情報管理部234から取得したビジー値によって演算レジスタV3がビジー状態であると判断するためである。
クロック4ではW→Rビジー情報管理部234のビジー値は1となる。従って上述の判定方法によりビジーチェック部206は「1」を命令発行チェック部208に出力する。命令発行チェック部208は、各チェック部204〜206から取得した値が全て「1」となったので命令発行可能と判断して、その旨を示す「1」を伝送路999に出力する。この伝送路999に命令発行決定が伝わることをDispatchという。
このようにしてクロック4に後続の命令「I2」の発行が決定し演算レジスタV3の読み出し動作がクロック5から開始する。先行命令「I1」による最後のデータが演算レジスタV3に格納されて確定するのはクロック5である。演算レジスタV3の値はデータ確定後すぐに読み出される(チェイニング動作)。
In clocks 2 and 3 in FIG. 6, the output values of the W → W issue check unit 204 and the R → W issue check unit 205 are 1, but the output value of the busy check unit 206 is 0, so the instruction issue check unit 208 Cannot decide to issue subsequent instructions. The output value of the busy check unit 206 is 0 because the busy check unit 206 determines that the arithmetic register V3 is busy based on the busy value acquired from the W → R busy information management unit 234.
At clock 4, the busy value of the W → R busy information management unit 234 is 1. Therefore, the busy check unit 206 outputs “1” to the instruction issue check unit 208 by the above-described determination method. The command issuance check unit 208 determines that the command can be issued because all the values acquired from the check units 204 to 206 are “1”, and outputs “1” indicating that to the transmission path 999. Transmission of an instruction issue decision to this transmission line 999 is called “Dispatch”.
In this way, it is determined that the subsequent instruction “I2” is issued in the clock 4, and the read operation of the arithmetic register V3 starts from the clock 5. The last data by the preceding instruction “I1” is stored in the operation register V3 and is determined by the clock 5. The value of the operation register V3 is read immediately after the data is determined (chaining operation).

クロック4で命令「I2」の発行が決定されると、命令「I2」は積和演算器120を使用するのでTAT決定部207は命令本来の演算TAT値である「5」を、W→Wビジー情報生成部260に出力する。そしてW→Wビジー情報生成部260は演算TATの値「5」を、命令「I2」の書き込み先演算レジスタ番号情報「V0」とともにW→Wビジー情報管理部210に出力する。同様にW→Rビジー情報生成部262は命令「I2」の演算TATの値「5」を、演算結果格納先の演算レジスタ情報「V0」とともにW→Rビジー情報管理部230に送出する。図6ではクロック5でW→Wビジー情報管理部211およびW→Rビジー情報管理部231に値「5」がセットされ、サイクル毎に減算されていくことが示されている。
なお、R→Wビジー情報生成部261は演算レジスタから特殊な読み出しが行われる際に使用される。図6の命令列は特殊な読み出しは行わないため、有意な値とはならないが、ストアパススループットの関係から演算レジスタから4サイクル周期で読み出すようなストア命令の場合など、最後のデータが読み出される前に後続命令の書き込みが行われないよう管理している。
When the issue of the instruction “I2” is determined at the clock 4, the instruction “I2” uses the product-sum operation unit 120, so that the TAT determination unit 207 sets “5” which is the original operation TAT value of the instruction to W → W The data is output to the busy information generation unit 260. Then, the W → W busy information generation unit 260 outputs the value “5” of the operation TAT to the W → W busy information management unit 210 together with the write destination operation register number information “V0” of the instruction “I2”. Similarly, the W → R busy information generation unit 262 sends the operation TAT value “5” of the instruction “I2” to the W → R busy information management unit 230 together with the operation register information “V0” of the operation result storage destination. FIG. 6 shows that the value “5” is set in the W → W busy information management unit 211 and the W → R busy information management unit 231 at clock 5 and is subtracted every cycle.
The R → W busy information generation unit 261 is used when special reading is performed from the arithmetic register. The instruction sequence in FIG. 6 does not perform a special read and therefore does not have a significant value. However, the last data is read in the case of a store instruction that is read from the operation register at a cycle of four cycles due to the store path throughput. Management is performed so that subsequent instructions are not written before.

図7は、関連する情報処理装置による演算処理のタイムチャートを示す第四の図である。
図7を用いて関連する情報処理装置によるビジー値と命令発行決定について説明する。図7は図4に、ビジー情報管理部210〜及びチェック部204〜206等の情報を加えた図である。図7でも図4と同様に以下の命令列を例に動作を説明する。
命令「I0」 VADD* V3 ← V0 + V1 VL=2
命令「I1」 VAND* V3 ← V0 & V1 VL=2
命令「I2」 VMPY V0 ← V1 × V2 VL=2
図4で説明したとおり、命令「I1」の演算レジスタV3への書き込みは命令「I0」による演算レジスタV3への書き込みの後でなければならない。また、演算レジスタV0についても命令「I1」による読込みの後に命令「I2」の書き込みが行われるようにしなければならない。図6と同様に命令「I0」の発行決定後のクロック2で「VADD」の演算TATである「5」が、W→Wビジー情報管理部214及びW→Rビジー情報管理部234にセットされる。そして1クロックごとにビジー値が減算されていく。その間、R→W発行チェック部205は、R→Wビジー情報管理部220のビジー値は全て0なので命令発行可能を示す1を命令発行チェック部208へ出力する。ビジーチェック部206は、後続命令「I1」で使用する論理演算器130のビジー値は0なので命令発行可能を示す1を命令発行チェック部208へ出力する。W→W発行チェック部204は、W→Wビジー情報管理部210のビジー値のうち「I1」で書込みを行う演算レジスタV3のビジー値であるW→Wビジー情報管理部214のビジー値に注目して命令発行が可能かどうか判定する。図7に示すようにW→Wビジー情報管理部214のビジー値はクロック2〜6までの間は0ではない。この間W→W発行チェック部204は、以下の式を用いて後続命令の発行が可能かどうかを判定する。
W→Wビジー情報管理部214のビジー値 − VAND命令の演算TAT値 ≦0
例えばクロック2においてはW→Wビジー情報管理部214のビジー値は5である。また、VAND命令の演算TAT値は3である。従ってクロック2では上の式は満たさない。同様にクロック3においても「4−3=1」となるので上の式は満たさない。クロック4では「3−3=0」となり上の式を満たす。W→W発行チェック部204は、クロック4において命令発行可能を示す1を命令発行チェック部208へ出力する。命令発行チェック部208は、各チェック部204〜206から取得した値が全て1となったので命令発行可能と判断して、その旨を示す「1」を伝送路999に出力し、命令「I1」の発行が決定する。このようにして命令「I1」の発行が決定するのはクロック4となる。同様にして、命令「I2」の発行が決定するのは命令「I1」の発行決定後のクロック5となる。命令「I2」の最後のデータが確定するのは図7に示すとおりクロック12である。
FIG. 7 is a fourth diagram illustrating a time chart of arithmetic processing by the related information processing apparatus.
The busy value and instruction issue determination by the related information processing apparatus will be described with reference to FIG. FIG. 7 is a diagram in which information such as the busy information management unit 210 and the check units 204 to 206 is added to FIG. In FIG. 7, as in FIG. 4, the operation will be described using the following instruction sequence as an example.
Command “I0” VADD * V3 ← V0 + V1 VL = 2
Command “I1” VAND * V3 ← V0 & V1 VL = 2
Command “I2” VMPY V0 ← V1 × V2 VL = 2
As described with reference to FIG. 4, the instruction “I1” must be written to the arithmetic register V3 after the instruction “I0” is written to the arithmetic register V3. Also, the instruction register “I2” must be written to the operation register V0 after the instruction “I1” is read. As in FIG. 6, “VADD” operation TAT “5” is set in the W → W busy information management unit 214 and the W → R busy information management unit 234 in the clock 2 after the issue of the instruction “I0” is determined. The Then, the busy value is subtracted every clock. Meanwhile, the R → W issuance check unit 205 outputs 1 indicating that an instruction can be issued to the instruction issuance check unit 208 because the busy values of the R → W busy information management unit 220 are all 0. The busy check unit 206 outputs 1 indicating that the instruction can be issued to the instruction issuance check unit 208 because the busy value of the logical operation unit 130 used in the subsequent instruction “I1” is 0. The W → W issuance check unit 204 pays attention to the busy value of the W → W busy information management unit 214 that is the busy value of the operation register V3 that writes “I1” among the busy values of the W → W busy information management unit 210. It is then determined whether an instruction can be issued. As shown in FIG. 7, the busy value of the W → W busy information management unit 214 is not 0 between the clocks 2 to 6. During this time, the W → W issuance check unit 204 determines whether the subsequent instruction can be issued using the following expression.
Busy value of W → W busy information management unit 214 − operation TAT value of VAND instruction ≦ 0
For example, in clock 2, the busy value of the W → W busy information management unit 214 is 5. The operation TAT value of the VAND instruction is 3. Therefore, clock 2 does not satisfy the above equation. Similarly, since “4-3 = 1” in clock 3, the above equation is not satisfied. At clock 4, “3-3 = 0”, which satisfies the above formula. The W → W issue check unit 204 outputs 1 indicating that an instruction can be issued in the clock 4 to the instruction issue check unit 208. The command issuance check unit 208 determines that the command can be issued because all the values acquired from the check units 204 to 206 are 1, outputs “1” indicating that to the transmission line 999, and outputs the command “I1 Is issued. In this way, the issue of the instruction “I1” is determined by the clock 4. Similarly, the issue of the instruction “I2” is determined by the clock 5 after the issue of the instruction “I1” is decided. The final data of the instruction “I2” is determined by the clock 12 as shown in FIG.

図8は、本発明の第一の実施形態による情報処理装置のタイムチャートを示す第二の図である。
図8を用いて本実施形態によるビジー値と命令発行決定について説明する。図8においても図4、5、7と同じ命令列を発行するものとする。
図7と同様に命令「I0」の発行決定後のクロック2で「VADD」の演算TATである「5」が、W→Wビジー情報管理部214及びW→Rビジー情報管理部234にセットされ、R→W発行チェック部205及びビジーチェック部206は、後続命令の発行可能を示す1を命令発行チェック部208へ出力する。
ここで本実施形態においてはW→W発行チェック部204は、以下のような動作を行う。まず、W→W発行チェック部204は、命令発行キュー203から後続の命令の情報(「VAND」)を取得し、後続の命令が論理演算器130を使用することを検出する。すると、W→W発行チェック部204は、演算TAT値の大きい積和演算器120の演算TAT値を用いて命令発行可否の判定を行うことを決定する。判定式は以下である。
W→Wビジー情報管理部214のビジー値 − VADD命令の演算TAT値 ≦0
VAND命令の演算TAT値(=3)ではなく、VADD命令の演算TAT値(=5)を用いる点が図7の判定式とは異なる。このように本実施形態においてはW→W発行チェック部204において命令の発行条件を判定する際に演算器本来の演算TAT値ではなく、他の演算器の演算TAT値のうち最大の値を用いて判定を行うところに特徴がある。上記の式を用いるとクロック2において「5−5=0」となり、上の式を満たす。従ってクロック2において、W→W発行チェック部204は、「1」を命令発行チェック部208へ出力する。命令発行チェック部208は、命令「I1」の発行可能を決定し、命令発行の決定を伝送路999、W→Wビジー情報生成部260、R→Wビジー情報生成部261、W→Rビジー情報生成部262、演算器ビジー情報生成部263へ出力する。また、W→W発行チェック部204は、TAT決定部207にW→Wビジー情報管理部214のビジー値(クロック2では「5」)を出力する。そしてTAT決定部207はそのビジー値をW→Wビジー情報生成部260、W→Rビジー情報生成部262、発行確定TAT情報レジスタ272へ出力する。W→Wビジー情報生成部260、W→Rビジー情報生成部262は、命令発行チェック部208から命令発行の決定を示す情報を取得すると、TAT決定部207から取得した演算TAT値、命令発行キュー203から取得した発行が決定した命令「I1」で書込み先となる演算レジスタV3を示す情報をそれぞれW→Wビジー情報管理部210、W→Rビジー情報管理部230へ出力する。同様にR→Wビジー情報生成部261は、0をR→Wビジー情報管理部220へ出力する。また、演算器ビジー情報生成部263は命令「I1」で使用する演算器(論理演算器130)を示す情報とVLの情報(=2)を演算器ビジー情報管理部240へ出力する。
FIG. 8 is a second diagram showing a time chart of the information processing apparatus according to the first embodiment of the present invention.
The busy value and instruction issue determination according to the present embodiment will be described with reference to FIG. Also in FIG. 8, the same instruction sequence as in FIGS.
As in FIG. 7, “5” which is the operation TAT of “VADD” is set in the W → W busy information management unit 214 and the W → R busy information management unit 234 in the clock 2 after the issue of the instruction “I0” is determined. The R → W issuance check unit 205 and the busy check unit 206 output 1 indicating that the subsequent instruction can be issued to the instruction issuance check unit 208.
In this embodiment, the W → W issuance check unit 204 performs the following operation. First, the W → W issuance check unit 204 acquires information on the subsequent instruction (“VAND”) from the instruction issuance queue 203 and detects that the subsequent instruction uses the logical operation unit 130. Then, the W → W issuance check unit 204 determines to determine whether or not an instruction can be issued using the operation TAT value of the product-sum operation unit 120 having a large operation TAT value. The judgment formula is as follows.
Busy value of W → W busy information management unit 214 − operation TAT value of VADD instruction ≦ 0
7 is different from the determination formula of FIG. 7 in that the operation TAT value (= 5) of the VADD instruction is used instead of the operation TAT value (= 3) of the VAND instruction. As described above, in the present embodiment, when the instruction issue condition is determined by the W → W issuance check unit 204, the maximum value of the arithmetic TAT values of other arithmetic units is used instead of the arithmetic TAT value inherent to the arithmetic unit. The characteristic is that the judgment is performed. If the above equation is used, “5-5 = 0” in clock 2, which satisfies the above equation. Accordingly, at clock 2, the W → W issuance check unit 204 outputs “1” to the instruction issuance check unit 208. The instruction issuance check unit 208 determines whether the instruction “I1” can be issued, and determines the issuance of the instruction to the transmission path 999, the W → W busy information generation unit 260, the R → W busy information generation unit 261, and the W → R busy information. The data is output to the generation unit 262 and the arithmetic unit busy information generation unit 263. The W → W issuance check unit 204 outputs the busy value (“5” in clock 2) of the W → W busy information management unit 214 to the TAT determination unit 207. Then, the TAT determination unit 207 outputs the busy value to the W → W busy information generation unit 260, the W → R busy information generation unit 262, and the issue confirmation TAT information register 272. When the W → W busy information generation unit 260 and the W → R busy information generation unit 262 acquire information indicating instruction issue determination from the instruction issue check unit 208, the operation TAT value and instruction issue queue acquired from the TAT determination unit 207 are obtained. Information indicating the operation register V3 which is the write destination is output to the W → W busy information management unit 210 and the W → R busy information management unit 230, respectively, with the instruction “I1” issued from 203 determined to be issued. Similarly, the R → W busy information generation unit 261 outputs 0 to the R → W busy information management unit 220. Further, the arithmetic unit busy information generation unit 263 outputs information indicating the arithmetic unit (logical arithmetic unit 130) used in the instruction “I1” and VL information (= 2) to the arithmetic unit busy information management unit 240.

W→Wビジー情報管理部210、W→Rビジー情報管理部230は取得した情報に基づいてW→Wビジー情報管理部214及びW→Rビジー情報管理部234に「5」をセットする。R→Wビジー情報生成部220は、R→Wビジー情報生成部221、222に「0」をセットする。演算器ビジー情報管理部240は演算器ビジー情報管理部242に「2」をセットする。図8のクロック3におけるビジー情報管理部214、221、222、234、242の値はこのようにしてセットされたものである。その後、各ビジー値は1クロックごとに1ずつ減算されていく。
なお、命令「I2」の発行はクロック3に確定し、命令「I2」の最後のデータが確定するのは図8に示すとおりクロック10である。
The W → W busy information management unit 210 and the W → R busy information management unit 230 set “5” in the W → W busy information management unit 214 and the W → R busy information management unit 234 based on the acquired information. The R → W busy information generation unit 220 sets “0” in the R → W busy information generation units 221 and 222. The computing unit busy information management unit 240 sets “2” in the computing unit busy information management unit 242. The values of the busy information management units 214, 221, 222, 234, and 242 in the clock 3 of FIG. 8 are set in this way. Thereafter, each busy value is decremented by 1 every clock.
It should be noted that the issue of the instruction “I2” is decided at clock 3, and the last data of the instruction “I2” is decided at clock 10 as shown in FIG.

以上で本実施形態において演算パイプ制御部20の各機能部でビジー管理と演算TAT値を決定する方法について記載した。以下において決定した演算TAT値に基づいて命令を実行する動作について簡単に説明する。
命令の発行が決定すると、命令発行チェック部208は、命令発行の決定を命令発行確定情報レジスタ270に通知する。命令発行キュー203は発行が決定した命令の情報を発行確定命令情報レジスタ271へ出力する。TAT決定部207は発行が決定した命令の演算TAT値を発行確定TAT情報レジスタ272へ出力する。
例えば命令「I1」(VAND* V3 ← V0 & V1 )を例に説明すると、デコーダ282は、発行確定命令情報レジスタ271から命令情報を取得してそして演算レジスタV0、V1から値をVL=2だけ連続して読み出す指示をセレクタ112、113に与える。制御タイミングレジスタ273は、命令情報を1クロック保持し、デコーダ283に出力する。次にデコーダ283は演算処理の実行を論理演算器130に指示する。制御タイミングレジスタ274は、命令情報を1クロック保持し、デコーダ284に出力する。演算が終了すると図8の例では演算器本来の演算TAT値を2増加させているので、それに合わせて論理演算器130の演算結果を1クロックずつタイミング調整レジスタ131、タイミング調整レジスタ132を経由させることで演算レジスタV3に格納するタイミングを調整する。つまりデコーダ284は、演算結果をタイミング調整レジスタ131(図1)に出力するように論理演算器130に指示する。制御タイミングレジスタ275は、命令情報を1クロック保持し、デコーダ285に出力する。デコーダ285は、演算結果をタイミング調整レジスタ132(図1)に出力するようにタイミング調整レジスタ131に指示する。制御タイミングレジスタ276は命令情報を1クロック保持し、デコーダ286に出力する。デコーダ286は、演算結果をタイミング調整レジスタ132から取得するようにセレクタ133に指示し、伝送路901を介してクロスバー106に出力する。続いて制御タイミングレジスタ277は、命令情報を1クロック保持し、デコーダ287に出力する。デコーダ287は、クロスバー106に演算結果を演算レジスタV3へ出力するよう指示を行う。
The method for determining the busy management and the calculation TAT value in each functional unit of the calculation pipe control unit 20 has been described above. An operation for executing an instruction based on the calculated TAT value will be briefly described below.
When the instruction issuance is determined, the instruction issuance check unit 208 notifies the instruction issuance confirmation information register 270 of the instruction issuance determination. The instruction issue queue 203 outputs information on the instruction determined to be issued to the issue fixed instruction information register 271. The TAT determination unit 207 outputs the operation TAT value of the instruction determined to be issued to the issue fixed TAT information register 272.
For example, the instruction “I1” (VAND * V3 ← V0 & V1) will be described as an example. The decoder 282 acquires the instruction information from the issue fixed instruction information register 271 and sets the value from the operation registers V0 and V1 by VL = 2. An instruction to read continuously is given to the selectors 112 and 113. The control timing register 273 holds the instruction information for one clock and outputs it to the decoder 283. Next, the decoder 283 instructs the logical operator 130 to execute the arithmetic processing. The control timing register 274 holds instruction information for one clock and outputs it to the decoder 284. When the computation is completed, the computation unit's original computation TAT value is increased by 2 in the example of FIG. 8, and accordingly, the computation result of the logical computation unit 130 is passed through the timing adjustment register 131 and the timing adjustment register 132 by one clock accordingly. As a result, the timing of storage in the arithmetic register V3 is adjusted. That is, the decoder 284 instructs the logical operation unit 130 to output the operation result to the timing adjustment register 131 (FIG. 1). The control timing register 275 holds one clock of instruction information and outputs it to the decoder 285. The decoder 285 instructs the timing adjustment register 131 to output the calculation result to the timing adjustment register 132 (FIG. 1). The control timing register 276 holds the instruction information for one clock and outputs it to the decoder 286. The decoder 286 instructs the selector 133 to obtain the calculation result from the timing adjustment register 132, and outputs it to the crossbar 106 via the transmission path 901. Subsequently, the control timing register 277 holds the instruction information for one clock and outputs it to the decoder 287. The decoder 287 instructs the crossbar 106 to output the calculation result to the calculation register V3.

このように本実施形態によれば、演算命令で使用する演算器の本来の演算TAT値に代わって、他の演算器の演算TAT値のうち最大の値を用いることで、後続の命令を早く発行することができ、結果として命令列の演算を早く完了させることができる。
なお、図8の例では、他の演算器の演算TAT値をそのまま使用しているが、W→W発行チェック部204、R→W発行チェック部205、ビジーチェック部206の発行チェック条件と合わせてビジー期間が管理できれば、任意の値を使用可能である。この具体例については、後に図11を用いて説明する。
As described above, according to the present embodiment, instead of the original arithmetic TAT value of the arithmetic unit used in the arithmetic instruction, the maximum value among the arithmetic TAT values of other arithmetic units is used, so that the subsequent instruction can be made faster. As a result, the operation of the instruction sequence can be completed quickly.
In the example of FIG. 8, the operation TAT value of another arithmetic unit is used as it is, but it is matched with the issue check conditions of the W → W issue check unit 204, the R → W issue check unit 205, and the busy check unit 206. Any value can be used if the busy period can be managed. This specific example will be described later with reference to FIG.

図9は、本発明の第一の実施形態による情報処理装置のタイムチャートを示す第三の図である。
図9を用いて本実施形態によるTAT決定部207が、論理演算器130を使用する場合にW→W発行チェック部204およびR→W発行チェック部205の出力値を比較して、値の大きい方を演算TATとして出力する動作の一例を説明する。図9では以下の命令列を例に本実施形態の情報処理装置による動作を説明する。
命令「Ist」 VST Mem ← V3 VL=2
命令「I0」 VADD* V3 ← V0 + V1 VL=2
命令「I1」 VAND* V3 ← V0 & V1 VL=2
命令「I2」 VMPY V0 ← V1 × V2 VL=2
VSTはストア命令のことで命令「Ist」は、演算レジスタV3の値をメモリに書き込む処理である。本実施形態においては4サイクルに1回レジスタからデータを読み出す設定になっているものとする。VST命令における命令TATは次の式で算出するものとする。
(VST命令のVL値 − 1)×(4 − 1) ・・・ 式2
式の2項目の「4」は4サイクルに1回レジスタからデータを読み出すことによる。図9の場合、VL=2であるから式2の値は「3」となる。
命令「Ist」と「I0」、「I1」の関係における特徴は演算レジスタV3についてRead→Writeの関係になることである。また、命令「I0」と「I1」の関係における特徴は演算レジスタV3についてWrite→Writeの関係になることである。
命令「Ist」と「I0」、「I1」の関係に注目するとクロック0で命令「Ist」の発行が決定すると、クロック1で演算レジスタV3の1つ目の要素をメモリにストアする。そして4サイクル後の5クロックで2つ目の要素をメモリにストアする。命令「I0」、「I1」の演算レジスタV3への書き込みは5サイクル後に行わなければならない。命令「I0」と「I1」の関係については、図7、図8と同様である。
まず、クロック0で命令「Ist」の発行が決定すると、クロック1でR→Wビジー情報管理部224に式2で求めた値「3」がセットされる。ここでR→W発行チェック部205は、命令「I0」の発行の判定を次式で行う。
R→Wビジー情報管理部224のビジー値 − VADD命令の演算TAT値 ≦0
この例の場合、「3−5」となるので上の式は満たされる。従って命令「I0」の発行がクロック1で決定する。命令「I0」の発行が完了するとクロック2において図8と同様に「5」が、W→Wビジー情報管理部214にセットされ、クロック1で「3」だったR→Wビジー情報管理部224の値は「2」となる。
このときW→W発行チェック部204は、「I0」と「I1」におけるV3へのW→Wの関係を、
W→Wビジー情報管理部214のビジー値 − VAND命令の演算TAT値 ≦0
で判定する。ここでVAND命令の演算TAT値は、命令「I0」のVADD命令の演算TATである「5」として計算するので、この式の左辺は「5−5」となりこの式を満たす。従ってR→W発行チェック部204は、命令発行可能を示す「1」を命令発行チェック部208へ出力する。
R→W発行チェック部205は、「Ist」と「I1」におけるV3へのR→Wの関係を、
R→Wビジー情報管理部224のビジー値 − VAND命令の演算TAT値 ≦0
で判定する。ここでVAND命令の演算TAT値は、命令「Ist」の演算TATと「VAND」本来の演算TATのうち大きい方の値となるが共に「3」であるので、この式の左辺は「2−3」となり、この式を満たす。従ってR→W発行チェック部205は、命令発行可能を示す「1」を命令発行チェック部208へ出力する。これによりクロック2で命令「I1」の発行が決定する。
一方、クロック2においてTAT決定部207は、W→Wビジー情報管理部214の値「5」をW→W発行チェック部204を介して取得する。また、TAT決定部207は、R→Wビジー情報管理部224の値「2」をR→W発行チェック部205を介して取得する。そしてTAT決定部207は、命令「I1」の「VAND」の演算TATを、これらの値を比較して大きい方の値である「5」と決定する。以降の処理は図8と同じである。このようにW→Wビジー情報管理部とR→Wビジー情報管理部とに有意なビジー値を持つ場合であっても、TAT決定部207は、それらのうち大きい方の値を次の命令における演算TATの値と定める。それにより後続の命令を早く発行することができ、結果として命令列の演算を早く完了させることができる。
FIG. 9 is a third diagram showing a time chart of the information processing apparatus according to the first embodiment of the present invention.
The TAT determination unit 207 according to the present embodiment uses FIG. 9 to compare the output values of the W → W issuance check unit 204 and the R → W issuance check unit 205 when the logical operation unit 130 is used. An example of the operation of outputting the one as the operation TAT will be described. In FIG. 9, the operation by the information processing apparatus of the present embodiment will be described using the following instruction sequence as an example.
Command “Ist” VST Mem ← V3 VL = 2
Command “I0” VADD * V3 ← V0 + V1 VL = 2
Command “I1” VAND * V3 ← V0 & V1 VL = 2
Command “I2” VMPY V0 ← V1 × V2 VL = 2
VST is a store instruction, and instruction “Ist” is a process of writing the value of the arithmetic register V3 into the memory. In the present embodiment, it is assumed that data is set to be read from the register once every four cycles. The instruction TAT in the VST instruction is calculated by the following formula.
(VL value of VST instruction −1) × (4-1) Equation 2
“4” in the two items of the formula is obtained by reading data from the register once every four cycles. In the case of FIG. 9, since VL = 2, the value of Expression 2 is “3”.
A feature of the relationship between the instructions “Ist”, “I0”, and “I1” is that the operation register V3 has a relationship of Read → Write. A feature of the relationship between the instructions “I0” and “I1” is that the operation register V3 has a write → write relationship.
When attention is paid to the relationship between the instruction “Ist”, “I0”, and “I1”, when the issue of the instruction “Ist” is determined at the clock 0, the first element of the arithmetic register V3 is stored in the memory at the clock 1. Then, the second element is stored in the memory in 5 clocks after 4 cycles. The instructions “I0” and “I1” must be written to the arithmetic register V3 after five cycles. The relationship between the instructions “I0” and “I1” is the same as in FIGS.
First, when the issue of the instruction “Ist” is determined at clock 0, the value “3” obtained by Expression 2 is set in the R → W busy information management unit 224 at clock 1. Here, the R → W issuance check unit 205 determines whether to issue the instruction “I0” by the following equation.
R → W busy information management unit 224 busy value-operation TAT value of VADD instruction ≤ 0
In this example, “3-5” is satisfied, so the above equation is satisfied. Therefore, the issue of the instruction “I0” is determined by the clock 1. When issuance of the instruction “I0” is completed, “5” is set in the W → W busy information management unit 214 in the clock 2 as in FIG. 8, and the R → W busy information management unit 224 which is “3” in the clock 1. The value of is “2”.
At this time, the W → W issuance check unit 204 determines the relationship of W → W to V3 in “I0” and “I1”.
Busy value of W → W busy information management unit 214 − operation TAT value of VAND instruction ≦ 0
Judge with. Here, since the operation TAT value of the VAND instruction is calculated as “5” which is the operation TAT of the VADD instruction of the instruction “I0”, the left side of this expression is “5-5” and satisfies this expression. Therefore, the R → W issuance check unit 204 outputs “1” indicating that an instruction can be issued to the instruction issuance check unit 208.
The R → W issuance check unit 205 determines the relationship of R → W to V3 in “Ist” and “I1”.
R → W busy information management unit 224 busy value − operation TAT value of VAND instruction ≦ 0
Judge with. Here, the operation TAT value of the VAND instruction is “3”, which is the larger value of the operation TAT of the instruction “Ist” and the original operation TAT of “VAND”. 3 ", which satisfies this equation. Accordingly, the R → W issuance check unit 205 outputs “1” indicating that the instruction issuance is possible to the instruction issuance check unit 208. As a result, the issue of the instruction “I1” is determined at clock 2.
On the other hand, in clock 2, the TAT determination unit 207 acquires the value “5” of the W → W busy information management unit 214 via the W → W issue check unit 204. In addition, the TAT determination unit 207 acquires the value “2” of the R → W busy information management unit 224 via the R → W issue check unit 205. Then, the TAT determination unit 207 determines the operation TAT of “VAND” of the instruction “I1” as “5” which is a larger value by comparing these values. The subsequent processing is the same as in FIG. In this way, even when the W → W busy information management unit and the R → W busy information management unit have significant busy values, the TAT determination unit 207 determines the larger value of them in the next instruction. Determined as the value of the operation TAT. As a result, subsequent instructions can be issued quickly, and as a result, the operation of the instruction sequence can be completed quickly.

図10は、本発明の第一の実施形態による情報処理装置のタイムチャートを示す第四の図である。
図10を用いて本実施形態によるTAT決定部207が、他の演算器の最大演算TATだけではなく、本来の演算TAT値と他の演算器の最大演算TAT値との中間的な値を取り得る例について説明する。図10の説明で使用する命令列は図8と同じである。
この図における前提としてクロック1の時点でこの命令列以前に実行されたある演算命令によって例えばVL=4のAND命令が発行され、この図のクロック1において演算器ビジー情報管理部242のビジー値が「3」であるものとする。また、この先行する命令による演算レジスタの干渉は考えないものとする。また、先行するAND命令と干渉しない命令「I0」はクロック1で発行が決定しているものとする。するとこの図においては図8と異なり命令「I1」の発行に対して演算器ビジー情報管理部242のビジー値がネックとなる。命令「I1」もAND命令であり、論理演算器130を使用するからである。クロック3までは、演算器ビジー情報管理部242のビジー値が示すように論理演算器130がビジー状態である。そのためビジーチェック部206の値は、クロック3まで次命令の発行可能を示す「1」にはならない。クロック3においてR→W発行チェック部204、W→W発行チェック部205、ビジーチェック部206全ての値が1となり命令「I1」の発行が可能になる。そのとき命令発行チェック部208は、「1」を伝送路999に出力する。一方、TAT決定部207は、クロック3においてR→Wビジー情報管理部214の値「4」をR→W発行チェック部204を介して取得する。そしてTAT決定部207は命令「I1」の「VADD」の演算TATを「4」と決定する。命令「I1」においては、図8と異なり演算TATを4にセットしたため、タイミング調整レジスタ131からクロスバー106へ出力する。従って図8と比べの命令「I1」の全サイクルが1クロック短くなっている。その為、仮に命令「I2」が命令「I1」と演算レジスタV3についてR→W関係にある場合など、図8の例のように命令「I1」の演算TATを「5」と設定する場合に比べ1クロック早く命令発行を決定できることになる。
このように本実施形態によれば演算TATとして本来の演算TAT値と他の演算器の最大演算TAT値との中間的な値を状況に応じて柔軟に取り得ることにより計算リソースの効率的な活用、処理の高速化が可能になる。
FIG. 10 is a fourth diagram showing a time chart of the information processing apparatus according to the first embodiment of the present invention.
10, the TAT determination unit 207 according to the present embodiment takes not only the maximum calculation TAT of other arithmetic units but also an intermediate value between the original arithmetic TAT value and the maximum arithmetic TAT value of other arithmetic units. An example to be obtained will be described. The instruction sequence used in the description of FIG. 10 is the same as that in FIG.
As an assumption in this figure, for example, an AND instruction of VL = 4 is issued by a certain arithmetic instruction executed before this instruction sequence at the time of clock 1, and the busy value of the arithmetic unit busy information management unit 242 is set at clock 1 in this figure. It shall be “3”. Further, it is assumed that the operation register interference due to the preceding instruction is not considered. Further, it is assumed that the instruction “I0” that does not interfere with the preceding AND instruction is determined to be issued at clock 1. Then, in this figure, unlike FIG. 8, the busy value of the arithmetic unit busy information management unit 242 becomes a bottleneck for the issue of the instruction “I1”. This is because the instruction “I1” is also an AND instruction and uses the logical operator 130. Until the clock 3, the logical operation unit 130 is busy as indicated by the busy value of the operation unit busy information management unit 242. Therefore, the value of the busy check unit 206 does not become “1” indicating that the next instruction can be issued until the clock 3. At clock 3, all the values of the R → W issuance check unit 204, the W → W issuance check unit 205, and the busy check unit 206 become 1, and the instruction “I1” can be issued. At that time, the command issuance check unit 208 outputs “1” to the transmission line 999. On the other hand, the TAT determination unit 207 acquires the value “4” of the R → W busy information management unit 214 in the clock 3 via the R → W issue check unit 204. Then, the TAT determination unit 207 determines the operation TAT of “VADD” of the instruction “I1” as “4”. In the instruction “I1”, since the operation TAT is set to 4 unlike FIG. 8, it is output from the timing adjustment register 131 to the crossbar 106. Therefore, the entire cycle of the instruction “I1” compared with FIG. 8 is shortened by one clock. Therefore, when the instruction T12 of the instruction “I1” is set to “5” as in the example of FIG. 8, for example, when the instruction “I2” has an R → W relationship with respect to the instruction “I1” and the operation register V3. In comparison with this, it is possible to determine instruction issue one clock earlier.
As described above, according to the present embodiment, as the calculation TAT, an intermediate value between the original calculation TAT value and the maximum calculation TAT value of other calculators can be flexibly taken according to the situation, thereby efficiently calculating resources. Utilization and speeding up of processing become possible.

図11は、本発明の第一の実施形態による情報処理装置のタイムチャートを示す第五の図である。
図11を用いて本実施形態が、読み出される要素が連続では無く、何サイクルか空いて飛び飛びに読み出す読み出しパターンにも対応できることを説明する。説明に用いるのは以下の命令列である。
命令「I1」 VST Mem ← V0 VL=4
命令「I2」 VAND V0 ← V2 & V3 VL=4
この命令列は、「I1」と「I2」が演算レジスタV0についてR→Wの関係になっていることが特徴である。
この例においても4サイクルに1回レジスタからデータを読み出す設定になっているものとする。図9で説明したとおりVSTの演算TATは、式2で計算する。すると図11のVSTの演算TATは「9」である。クロック1でR→Wビジー情報管理部221に「9」がセットされる。R→W発行チェック部205の判定条件は、
R→Wビジー情報管理部221 − VAND命令TAT ≦ 0
である。
本実施形態の論理演算器130の演算TATは3〜5の値を可変的にとり得る。この例では、VAND命令TATを5として判定する。するとクロック6においてこの式が満たされ、命令「I2」の発行が決定する。するとクロック14において演算レジスタV0の4要素目がメモリにストアされてから、クロック15において演算レジスタV0の4要素目に書き込みが行われデータの一貫性が保たれ、最短のタイミングでこの命令列の実行が完了する。
このように本実施形態によれば、演算レジスタから特殊な読み出しが行われる際にR→Wビジー情報生成部261を使用して図11で示した例のようにストアパススループットの関係から演算レジスタから4サイクル周期で読み出すようなストア命令の場合など、最後のデータが読み出される前に後続命令の書き込みが行われないよう管理しながら最速のタイミングで処理を実行することができる。
FIG. 11 is a fifth diagram showing a time chart of the information processing apparatus according to the first embodiment of the present invention.
With reference to FIG. 11, it will be described that the present embodiment can cope with a read pattern in which the elements to be read are not continuous, but are read several times after skipping. The following instruction sequence is used for explanation.
Command “I1” VST Mem ← V0 VL = 4
Command “I2” VAND V0 ← V2 & V3 VL = 4
This instruction sequence is characterized in that “I1” and “I2” have a relation of R → W with respect to the arithmetic register V0.
Also in this example, it is assumed that data is set to be read from the register once every four cycles. As described with reference to FIG. 9, the calculation TAT of VST is calculated by Equation 2. Then, the calculation TAT of VST in FIG. 11 is “9”. At clock 1, “9” is set in the R → W busy information management unit 221. The determination condition of the R → W issuance check unit 205 is:
R → W busy information management unit 221 −VAND instruction TAT ≦ 0
It is.
The operation TAT of the logical operation unit 130 of the present embodiment can take a value of 3 to 5 variably. In this example, the VAND instruction TAT is determined as 5. Then, this expression is satisfied in the clock 6, and the issue of the instruction “I2” is determined. Then, after the fourth element of the operation register V0 is stored in the memory at the clock 14, the data is written to the fourth element of the operation register V0 at the clock 15 to maintain the consistency of the data. Execution is complete.
As described above, according to the present embodiment, when special reading is performed from the operation register, the operation register is calculated from the relationship of the store path throughput using the R → W busy information generation unit 261 as shown in FIG. For example, in the case of a store instruction that is read in a cycle of 4 cycles, the processing can be executed at the fastest timing while managing so that subsequent instructions are not written before the last data is read.

<第二の実施の形態>
以下、本発明の第二の実施形態による情報処理装置の動作を図12〜図13を参照して説明する。
図12に示すとおり第一の実施形態においては命令動作効率向上のためにW→Wビジー情報管理部、W→Wビジーチェック部など情報処理装置1のハードウェアによって演算TATを決定していたが、第二の実施形態において演算TATは、予めシミュレーションや実測などによって性能の良い演算TAT値を決定しておき、その決定した値を演算パイプ制御部20の外部から制御信号によってW→W発行チェック部204などに与える。例えば、図12の信号980に値「5」が含まれており、W→W発行チェック部204、演算TAT決定部207はこの信号980に含まれる値「5」を各命令の演算TAT値とする。
図13は第二実施形態におけるタームチャートである。この図における命令列は図7と同じである。図13に示す通りクロック1以降、信号980によって値「5」が与えられる。
本実施形態によると予めジョブ毎に実行性能が良い値を決定しておき、信号980を介して演算TAT値を受け取ることでより柔軟に効率の良い演算を行うことが出来る。
<Second Embodiment>
The operation of the information processing apparatus according to the second embodiment of the present invention will be described below with reference to FIGS.
As shown in FIG. 12, in the first embodiment, the calculation TAT is determined by the hardware of the information processing apparatus 1 such as the W → W busy information management unit and the W → W busy check unit in order to improve the instruction operation efficiency. In the second embodiment, the calculation TAT is determined in advance as a calculation TAT value having good performance by simulation or actual measurement, and the determined value is checked from the outside of the calculation pipe control unit 20 by a control signal as a W → W issue check. This is given to the unit 204. For example, the value “5” is included in the signal 980 in FIG. 12, and the W → W issuance check unit 204 and the operation TAT determination unit 207 use the value “5” included in this signal 980 as the operation TAT value of each instruction. To do.
FIG. 13 is a term chart in the second embodiment. The instruction sequence in this figure is the same as in FIG. As shown in FIG. 13, the value “5” is given by the signal 980 after the clock 1.
According to the present embodiment, a value with good execution performance is determined in advance for each job, and the calculation TAT value is received via the signal 980, so that more flexible and efficient calculation can be performed.

<第三の実施の形態>
以下、本発明の第三の実施形態による情報処理装置の動作を図14を参照して説明する。
図14に示すとおり第三の実施形態においては、状態カウント部800を備えている。状態カウント部800は、命令発行チェック部208が「1」を出力したときにおけるTAT決定部207が決定した演算TATの値を取得する。そして、状態カウント部800は、演算TATの分布をカウントする。そして、例えば、演算TAT=5が2455回、演算TAT=4が1244回などのように演算TAT値の最大値をカウントした回数が、他と比較して群を抜いて多い場合は、演算TAT=5と固定することを決定し、その決定した演算TATをW→W発行チェック部204などに与える。
これにより、論理回路の信号変化を抑止して省電力化を図ることができる。
<Third embodiment>
The operation of the information processing apparatus according to the third embodiment of the present invention will be described below with reference to FIG.
As shown in FIG. 14, the third embodiment includes a state count unit 800. The state count unit 800 acquires the value of the operation TAT determined by the TAT determination unit 207 when the instruction issuance check unit 208 outputs “1”. Then, the state counting unit 800 counts the distribution of the calculation TAT. And, for example, when the number of times that the maximum value of the calculation TAT value is counted such that the calculation TAT = 5 is 2455 times, the calculation TAT = 4 is 1244 times, etc. = 5 is fixed, and the determined operation TAT is given to the W → W issue check unit 204 and the like.
As a result, it is possible to save power by suppressing signal changes in the logic circuit.

また、命令発行決定時は命令本来の演算TATで命令の発行を決定し、例えばR→Wにある後続命令の発行決定時に、制御タイミングレジスタ274以降の演算TATの値を変更する構成も考えられる。   In addition, when issuing an instruction is determined, the instruction issuance is determined based on the instruction's original operation TAT. For example, when the subsequent instruction in R → W is determined to be issued, the value of the operation TAT after the control timing register 274 is changed. .

なお、W→Wビジー情報管理部210、R→Wビジー情報管理部220、W→Rビジー情報管理部230、演算器ビジー情報管理部240は、ビジー期間情報管理部の一例である。また、ビジー値は、ビジー期間情報の一例である。また、チェック部は、例えば、W→W発行チェック部204、R→W発行チェック部205、ビジーチェック部206、命令発行チェック部208で構成される。また、TAT決定部207は、決定部の一例である。また、制御部は、例えば、命令発行確定情報レジスタ270、発行確定命令情報レジスタ271、発行確定TAT情報レジスタ272、デコーダ273〜278、タイミング調整レジスタ131〜132、セレクタ133で構成される。   The W → W busy information management unit 210, the R → W busy information management unit 220, the W → R busy information management unit 230, and the computing unit busy information management unit 240 are examples of the busy period information management unit. The busy value is an example of busy period information. The check unit includes, for example, a W → W issue check unit 204, an R → W issue check unit 205, a busy check unit 206, and an instruction issue check unit 208. The TAT determination unit 207 is an example of a determination unit. The control unit includes, for example, an instruction issuance confirmation information register 270, an issuance confirmation instruction information register 271, an issuance confirmation TAT information register 272, decoders 273 to 278, timing adjustment registers 131 to 132, and a selector 133.

その他、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。   In addition, it is possible to appropriately replace the components in the above-described embodiments with known components without departing from the spirit of the present invention. The technical scope of the present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the spirit of the present invention.

100・・・演算レジスタV0
101・・・演算レジスタV1
102・・・演算レジスタV2
103・・・演算レジスタV3
106・・・クロスバー
110、111、112、113・・・オペランドセレクタ
120・・・積和演算器
130・・・論理演算器
131、132・・・タイミング調整レジスタ
133・・・セレクタ
20・・・演算パイプ制御部
201・・・命令バッファ部
202・・・命令デコーダ
203・・・命令発行キュー
204・・・W→W発行チェック部
205・・・R→W発行チェック部
206・・・ビジーチェック部
207・・・TAT決定部
208・・・命令発行チェック部
210・・・W→Wビジー情報管理部
220・・・R→Wビジー情報管理部
230・・・W→Rビジー情報管理部
240・・・演算器ビジー情報管理部
260・・・W→Wビジー情報生成部
261・・・R→Wビジー情報生成部
262・・・W→Rビジー情報生成部
263・・・演算器ビジー情報生成部
270・・・命令発行確定情報レジスタ
271・・・発行確定命令情報レジスタ
272・・・発行確定TAT情報レジスタ
273、274、275、276、277、278・・・デコーダ
100: arithmetic register V0
101: Operation register V1
102: Operation register V2
103: arithmetic register V3
106... Crossbar 110, 111, 112, 113... Operand selector 120... Multiply-add calculator 130. Operation pipe control unit 201: instruction buffer unit 202 ... instruction decoder 203 ... instruction issue queue 204 ... W → W issue check unit 205 ... R → W issue check unit 206 ... busy Check unit 207 ... TAT determination unit 208 ... Instruction issue check unit 210 ... W → W busy information management unit 220 ... R → W busy information management unit 230 ... W → R busy information management unit 240 ... arithmetic unit busy information management part 260 ... W → W busy information generation part 261 ... R → W busy information generation part 262 ... W → R busy information generation 263... Arithmetic unit busy information generation unit 270... Instruction issue fixed information register 271... Issue fixed instruction information register 272... Issue fixed TAT information register 273 274 275 276 277 278. ·decoder

Claims (8)

複数の演算レジスタと、
複数の演算器と、
演算命令の発行が決定すると、当該演算命令に関係する演算レジスタ及び演算器について、当該演算命令の実行のために使用する期間を表すビジー期間情報をセットし、前記発行が決定した演算命令の進行に応じて前記ビジー期間情報を減算するビジー期間情報管理部と、
前記ビジー期間情報と後続の演算命令の実行に要する時間である演算TAT(TURN AROUND TIME)とに基づいて、前記後続の演算命令を逐次的に実行したときの演算結果を確保できる前記後続の演算命令の発行タイミングを決定するチェック部と、
発行が決定した前記後続の演算命令の演算TATを、当該後続の演算命令に関係する演算器に応じて決定する決定部と、
前記決定部が決定した演算TATに基づいて、発行が決定した前記後続の演算命令の演算結果を前記演算レジスタに格納するタイミングを調整する制御部と、
を備え、
前記チェック部は、前記後続の演算命令の演算TATについて、当該演算命令について定められた所定の演算TATに基づく前記後続の演算命令の発行タイミングよりも早いタイミングで当該後続の演算命令を発行する場合に、先行する演算命令の演算結果の確保に必要な前記時間を前記後続の演算命令の演算TATとして、前記発行タイミングを決定する、ことを特徴とする情報処理装置。
Multiple arithmetic registers;
A plurality of arithmetic units;
When it is determined that the operation instruction is issued, busy period information indicating a period used for execution of the operation instruction is set for the operation register and the arithmetic unit related to the operation instruction, and the operation instruction determined by the issue is progressed. A busy period information management unit for subtracting the busy period information according to
Based on the busy period information and a calculation TAT (TURN AROUND TIME) that is a time required for execution of the subsequent calculation instruction, the subsequent calculation that can secure a calculation result when the subsequent calculation instruction is sequentially executed. A check unit that determines the timing of issuing instructions;
A determination unit that determines an operation TAT of the subsequent operation instruction determined to be issued according to an arithmetic unit related to the subsequent operation instruction;
A control unit that adjusts the timing of storing the calculation result of the subsequent calculation instruction determined to be issued in the calculation register based on the calculation TAT determined by the determination unit;
Bei to give a,
When the check unit issues the subsequent operation instruction for the operation TAT of the subsequent operation instruction at a timing earlier than the issue timing of the subsequent operation instruction based on a predetermined operation TAT determined for the operation instruction. And determining the issuance timing using the time required to secure the operation result of the preceding operation instruction as the operation TAT of the subsequent operation instruction .
複数の演算レジスタと、
複数の演算器と、
演算命令の発行が決定すると、当該演算命令に関係する演算レジスタ及び演算器について、当該演算命令の実行のために使用する期間を表すビジー期間情報をセットし、前記発行が決定した演算命令の進行に応じて前記ビジー期間情報を減算するビジー期間情報管理部と、
前記ビジー期間情報と後続の演算命令の実行に要する時間である演算TAT(TURN AROUND TIME)とに基づいて、前記後続の演算命令を逐次的に実行したときの演算結果を確保できる前記後続の演算命令の発行タイミングを決定するチェック部と、
発行が決定した前記後続の演算命令の演算TATを、当該後続の演算命令に関係する演算器に応じて決定する決定部と、
前記決定部が決定した演算TATに基づいて、発行が決定した前記後続の演算命令の演算結果を前記演算レジスタに格納するタイミングを調整する制御部と、
を備え、
前記チェック部は、後続の演算命令の演算TATが、先行する演算命令の演算TATよりも小さい場合、後続の演算命令の演算TATに代えて前記複数の演算器について定められた演算TATのうち最大の値を用いて前記後続の演算命令の発行タイミングを決定し、
前記決定部は、後続の演算命令の演算TATが、先行する演算命令の演算TATよりも小さい場合、発行が決定した前記後続の演算命令の演算TATを、前記発行タイミングにおける前記ビジー期間情報に基づいて決定する
ことを特徴とする情報処理装置。
Multiple arithmetic registers;
A plurality of arithmetic units;
When it is determined that the operation instruction is issued, busy period information indicating a period used for execution of the operation instruction is set for the operation register and the arithmetic unit related to the operation instruction, and the operation instruction determined by the issue is progressed. A busy period information management unit for subtracting the busy period information according to
Based on the busy period information and a calculation TAT (TURN AROUND TIME) that is a time required for execution of the subsequent calculation instruction, the subsequent calculation that can secure a calculation result when the subsequent calculation instruction is sequentially executed. A check unit that determines the timing of issuing instructions;
A determination unit that determines an operation TAT of the subsequent operation instruction determined to be issued according to an arithmetic unit related to the subsequent operation instruction;
A control unit that adjusts the timing of storing the calculation result of the subsequent calculation instruction determined to be issued in the calculation register based on the calculation TAT determined by the determination unit;
With
When the operation TAT of the subsequent operation instruction is smaller than the operation TAT of the preceding operation instruction, the check unit replaces the operation TAT of the subsequent operation instruction with the maximum of the operation TATs defined for the plurality of operation units. Determine the timing of issuing the subsequent operation instruction using the value of
When the operation TAT of the subsequent operation instruction is smaller than the operation TAT of the preceding operation instruction, the determination unit determines the operation TAT of the subsequent operation instruction determined to be issued based on the busy period information at the issue timing. determining Te information processing apparatus it said.
前記決定部は、後続の演算命令の演算TAT以上且つ先行する演算命令の演算TAT以下である値を可変的に決定する
ことを特徴とする請求項2に記載の情報処理装置。
The information processing apparatus according to claim 2, wherein the determination unit variably determines a value that is greater than or equal to an operation TAT of a subsequent operation instruction and less than or equal to an operation TAT of a preceding operation instruction.
前記ビジー期間情報管理部は、演算レジスタに対して連続して行われる書き込み処理又は読み取り処理の組み合わせ別にビジー期間情報をセットし、
前記決定部は、前記発行タイミングにおける前記組み合わせ別にセットされた前記ビジー期間情報のうち、最大の値を前記後続の演算命令の演算TATとして決定する。
ことを特徴とする請求項2又は請求項3に記載の情報処理装置。
The busy period information management unit sets busy period information for each combination of write processing or read processing that is continuously performed on the arithmetic register,
The determination unit determines a maximum value among the busy period information set for each combination at the issue timing as an operation TAT of the subsequent operation instruction.
The information processing apparatus according to claim 2, wherein the information processing apparatus is an information processing apparatus.
前記ビジー期間情報管理部は、演算レジスタに対して連続して行われる書き込み処理又は読み取り処理の組み合わせ別にビジー期間情報をセットし、
前記チェック部は、前記組み合わせ別にセットされた前記ビジー期間情報に基づいて前記後続の演算命令の発行タイミングを決定する
ことを特徴とする請求項1から請求項4の何れか1項に記載の情報処理装置。
The busy period information management unit sets busy period information for each combination of write processing or read processing that is continuously performed on the arithmetic register,
The information according to any one of claims 1 to 4, wherein the check unit determines a timing for issuing the subsequent operation instruction based on the busy period information set for each combination. Processing equipment.
前記チェック部は、前記後続の演算命令の演算TATとして用いる予め定められた値を外部から取得し、前記ビジー期間情報と前記取得した値とに基づいて、前記後続の演算命令の発行タイミングを決定する
ことを特徴とする請求項1から請求項5の何れか1項に記載の情報処理装置。
The check unit obtains a predetermined value used as an operation TAT of the subsequent operation instruction from the outside, and determines an issue timing of the subsequent operation instruction based on the busy period information and the acquired value. The information processing apparatus according to any one of claims 1 to 5, wherein:
前記決定部が選択した演算TATを取得して、演算TATの値ごとに前記決定部が決定した回数をカウントする状態カウント部を備え、
前記状態カウント部は、カウントした回数が最も多い演算TATの値が前記複数の演算器の演算TATにおける最大値である場合、その演算TATを前記チェック部に出力し、
前記チェック部は、前記ビジー期間情報と前記状態カウント部から取得した演算TATとに基づいて、前記後続の演算命令の発行タイミングを決定する
ことを特徴とする請求項1から請求項6の何れか1項に記載の情報処理装置。
A state counting unit that obtains the calculation TAT selected by the determination unit and counts the number of times determined by the determination unit for each value of the calculation TAT,
The state count unit outputs the calculation TAT to the check unit when the value of the calculation TAT with the largest number of counts is the maximum value in the calculation TAT of the plurality of calculators,
7. The check unit according to claim 1, wherein the check unit determines an issue timing of the subsequent operation instruction based on the busy period information and the operation TAT acquired from the state count unit. The information processing apparatus according to item 1.
複数の演算レジスタと、複数の演算器とを有する情報処理装置において、
演算命令の発行が決定すると、当該演算命令に関係する演算レジスタ及び演算器について、当該演算命令の実行のために使用する期間を表すビジー期間情報をセットし、前記発行が決定した演算命令の進行に応じて前記ビジー期間情報を減算し、
前記ビジー期間情報と後続の演算命令の実行に要する時間である演算TATとに基づいて、前記後続の演算命令を逐次的に実行したときの演算結果を確保できる前記後続の演算命令の発行タイミングを決定し、
発行が決定した前記後続の演算命令の演算TATを、当該後続の演算命令に関係する演算器に応じて決定し、
前記決定した演算TATに基づいて、発行が決定した前記後続の演算命令の演算結果を前記演算レジスタに格納するタイミングを調整し、
前記発行タイミングを決定するときは、前記後続の演算命令の演算TATについて、当該演算命令について定められた所定の演算TATに基づく前記後続の演算命令の発行タイミングよりも早いタイミングで当該後続の演算命令を発行する場合に、先行する演算命令の演算結果の確保に必要な前記時間を前記後続の演算命令の演算TATとして、前記発行タイミングを決定する、ことを特徴とする制御方法。
In an information processing apparatus having a plurality of arithmetic registers and a plurality of arithmetic units,
When it is determined that the operation instruction is issued, busy period information indicating a period used for execution of the operation instruction is set for the operation register and the arithmetic unit related to the operation instruction, and the operation instruction determined by the issue is progressed. Subtract the busy period information according to
Based on the busy period information and an operation TAT that is a time required for execution of the subsequent operation instruction, an issue timing of the subsequent operation instruction that can secure an operation result when the subsequent operation instruction is sequentially executed is determined. Decide
An operation TAT of the subsequent operation instruction determined to be issued is determined according to an arithmetic unit related to the subsequent operation instruction;
Based on the determined operation TAT, adjust the timing of storing the operation result of the subsequent operation instruction determined to be issued in the operation register ,
When determining the issuance timing, for the operation TAT of the subsequent operation instruction, the subsequent operation instruction is earlier than the issuance timing of the subsequent operation instruction based on a predetermined operation TAT determined for the operation instruction. , The issuance timing is determined using the time required for securing the operation result of the preceding operation instruction as the operation TAT of the subsequent operation instruction .
JP2014071860A 2014-03-31 2014-03-31 Information processing apparatus and control method Active JP6381019B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014071860A JP6381019B2 (en) 2014-03-31 2014-03-31 Information processing apparatus and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014071860A JP6381019B2 (en) 2014-03-31 2014-03-31 Information processing apparatus and control method

Publications (2)

Publication Number Publication Date
JP2015194844A JP2015194844A (en) 2015-11-05
JP6381019B2 true JP6381019B2 (en) 2018-08-29

Family

ID=54433813

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014071860A Active JP6381019B2 (en) 2014-03-31 2014-03-31 Information processing apparatus and control method

Country Status (1)

Country Link
JP (1) JP6381019B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2553783B (en) * 2016-09-13 2020-11-04 Advanced Risc Mach Ltd Vector multiply-add instruction

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000276352A (en) * 1999-03-08 2000-10-06 Texas Instr Inc <Ti> Pipeline protection
JP5871298B2 (en) * 2009-09-10 2016-03-01 Necプラットフォームズ株式会社 Information processing apparatus, information processing method, and information processing program

Also Published As

Publication number Publication date
JP2015194844A (en) 2015-11-05

Similar Documents

Publication Publication Date Title
US9733945B2 (en) Pipelining out-of-order instructions
CN108089883B (en) Allocating resources to threads based on speculation metrics
WO2017124648A1 (en) Vector computing device
JP5548037B2 (en) Command issuing control device and method
JPH01309178A (en) Processor switching system for multi-processor
JP6381019B2 (en) Information processing apparatus and control method
JP2013206095A (en) Data processor and control method for data processor
US11481223B2 (en) Reducing operations of sum-of-multiply-accumulate (SOMAC) instructions
JPWO2008155801A1 (en) Information processing apparatus and register control method
CN112074810A (en) Parallel processing apparatus
JP5871298B2 (en) Information processing apparatus, information processing method, and information processing program
JP2004038751A (en) Processor and instruction control method
KR101293700B1 (en) Method and apparatus of generating code for coarse-grained reconfigurable architecture
JP5788920B2 (en) Vector processing apparatus and vector processing method
CN103970510B (en) For the Compilation Method and equipment being scheduled to the block in assembly line
CN112579168B (en) Instruction execution unit, processor and signal processing method
JP5786719B2 (en) Vector processor
US11416261B2 (en) Group load register of a graph streaming processor
JP6225554B2 (en) Arithmetic processing device and control method of arithmetic processing device
JP2016091362A (en) Information processing device, information processing method, and program
JP2002318689A (en) Vliw processor for executing instruction with delay specification of resource use cycle and method for generating delay specification instruction
US10884738B2 (en) Arithmetic processing device and method of controlling arithmetic processing device
JP6477248B2 (en) Arithmetic processing device and processing method of arithmetic processing device
JP2010198439A (en) Vector inter-instruction passing determining device and method
JP6340887B2 (en) Arithmetic processing device and control method of arithmetic processing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180501

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180726

R150 Certificate of patent or registration of utility model

Ref document number: 6381019

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150