JP4985452B2 - Vector processing equipment - Google Patents

Vector processing equipment Download PDF

Info

Publication number
JP4985452B2
JP4985452B2 JP2008033787A JP2008033787A JP4985452B2 JP 4985452 B2 JP4985452 B2 JP 4985452B2 JP 2008033787 A JP2008033787 A JP 2008033787A JP 2008033787 A JP2008033787 A JP 2008033787A JP 4985452 B2 JP4985452 B2 JP 4985452B2
Authority
JP
Japan
Prior art keywords
instruction
flag
stage
issue stage
issue
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.)
Expired - Fee Related
Application number
JP2008033787A
Other languages
Japanese (ja)
Other versions
JP2009193378A (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 Computertechno Ltd
Original Assignee
NEC Computertechno 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 Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2008033787A priority Critical patent/JP4985452B2/en
Publication of JP2009193378A publication Critical patent/JP2009193378A/en
Application granted granted Critical
Publication of JP4985452B2 publication Critical patent/JP4985452B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Complex Calculations (AREA)

Description

本発明は、ベクトル処理装置に関する。   The present invention relates to a vector processing device.

図1は、従来のベクトル処理装置の構成を示している。   FIG. 1 shows the configuration of a conventional vector processing apparatus.

図1に示されるように、従来のベクトル処理装置は、コンピュータであり、第1命令デコードステージ101と、命令デコーダ102と、第2命令デコードステージ103と、リソース一致検出回路104と、命令発行ステージ(0系)105、(1系)106を含む複数の命令発行ステージと、BUSYフラグ107を格納する格納部(図示しない)と、発行チェック回路108と、選択部111と、命令実行部(図示しない)と、を具備している。このベクトル処理装置は、クロックにより動作する。   As shown in FIG. 1, the conventional vector processing apparatus is a computer, and includes a first instruction decode stage 101, an instruction decoder 102, a second instruction decode stage 103, a resource match detection circuit 104, and an instruction issue stage. A plurality of instruction issue stages including (0 system) 105 and (1 system) 106, a storage unit (not shown) for storing the BUSY flag 107, an issue check circuit 108, a selection unit 111, and an instruction execution unit (shown) Not). This vector processing device operates with a clock.

第1命令デコードステージ101に命令がセットされ、第1命令デコードステージ101は、この命令を命令デコーダ102に出力する。命令デコーダ102は、この命令をデコードして第2命令デコードステージ103にセットする。   An instruction is set in the first instruction decode stage 101, and the first instruction decode stage 101 outputs this instruction to the instruction decoder 102. The instruction decoder 102 decodes this instruction and sets it to the second instruction decoding stage 103.

発行チェック回路108は、BUSYフラグ107により後続命令の発行を管理する。発行チェック回路108は、命令発行ステージ105、106のうちの一方の命令発行ステージに対する発行指示109を出力し、BUSYフラグ107をセットする。このとき、発行チェック回路108は、上記一方の命令発行ステージを表す選択指示110を出力し、選択部111は、選択指示110に応じて、上記一方の命令発行ステージにセットされた命令を命令実行部に出力する。即ち、命令が発行される。命令実行部は、発行された命令を実行する。   The issue check circuit 108 manages the issue of subsequent instructions by the BUSY flag 107. The issue check circuit 108 outputs an issue instruction 109 for one of the instruction issue stages 105 and 106 and sets a BUSY flag 107. At this time, the issue check circuit 108 outputs the selection instruction 110 representing the one instruction issue stage, and the selection unit 111 executes the instruction set in the one instruction issue stage according to the selection instruction 110. To the output. That is, an instruction is issued. The instruction execution unit executes the issued instruction.

リソース一致検出回路104は、命令発行ステージ105、106のいずれかが空いている場合で、且つ、命令発行ステージ105、106のいずれかとリソースの一致を検出しない場合、第2命令デコードステージ103にセットされた命令を、次クロックで命令発行ステージ105、106のいずれかにセットする。   The resource coincidence detection circuit 104 is set in the second instruction decode stage 103 when either of the instruction issue stages 105 and 106 is free and when no resource coincidence with any of the instruction issue stages 105 and 106 is detected. The issued instruction is set to one of the instruction issue stages 105 and 106 at the next clock.

従来のベクトル処理装置では、命令が命令発行ステージ105、106に並んだ場合、順序保障していないので、以下のような不具合が生じる。例えば、先行命令が何らかの要因(リソースBUSY)で発行できずに待たされている状態を想定する。このとき、従来のベクトル処理装置では、リソース一致検出回路104によってリソースの一致が検出された後続命令は、先行命令を追い越して発行される可能性があるため、命令発行ステージへのセットを抑止する。このような場合、その後に続く後続命令の全てが、上記セットを抑止された後続命令によって止まってしまい、性能が低下してしまう。上記後に続く後続命令の中には先行命令とリソースが一致しない命令が存在する場合がある。この場合、できるだけ命令発行ステージに落とさなければならない。   In the conventional vector processing apparatus, when instructions are arranged in the instruction issue stages 105 and 106, the order is not guaranteed, so the following problems occur. For example, a state is assumed in which a preceding instruction cannot be issued due to some factor (resource BUSY) and is waiting. At this time, in the conventional vector processing apparatus, the succeeding instruction in which the resource match is detected by the resource match detecting circuit 104 may be issued overtaking the preceding instruction, and therefore, setting to the instruction issuing stage is suppressed. . In such a case, all subsequent subsequent instructions are stopped by the subsequent instruction whose set is suppressed, and the performance is degraded. In the subsequent instructions that follow, there may be an instruction whose resource does not match that of the preceding instruction. In this case, it must be dropped to the instruction issue stage as much as possible.

コンピュータに関する技術について紹介する。   Introducing computer technology.

特開平8−305567号公報には、演算命令の並列処理方法が記載されている(特許文献1)。演算命令の並列処理方法は、演算ラテンシの異なる複数の演算命令を記憶し、追越し可能にパイプライン処理する情報処理方法である。この方法では、パイプライン処理中の演算命令とパイプラインへ発行予定の演算命令との競合を競合タイプ毎に調べ、競合のある場合に発行予定の演算命令のパイプラインへの発行を抑止する抑止信号の出力を、競合タイプに応じて制御することを特徴としている。   Japanese Patent Laid-Open No. 8-305567 describes a parallel processing method for arithmetic instructions (Patent Document 1). The parallel processing method for arithmetic instructions is an information processing method for storing a plurality of arithmetic instructions having different arithmetic latencies and performing pipeline processing so that they can be overtaken. In this method, the conflict between the operation instruction being pipelined and the operation instruction scheduled to be issued to the pipeline is checked for each conflict type, and if there is a conflict, the operation instruction scheduled to be issued is suppressed from being issued to the pipeline. The output of the signal is controlled according to the competition type.

特開平6−195313号公報には、コンピュータシステムが記載されている(特許文献2)。コンピュータシステムは、複数のプロセッサと、互いに並列にアクセス可能な複数の部分記憶装置に分割された記憶装置と、該複数のプロセッサから並列に出力される、該記憶装置に対するメモリアクセス要求を、並列に該複数の部分記憶装置へ転送する記憶制御回路とを有している。該複数のプロセッサは、それぞれ複数のリクエスタの一つを含み、各リクエスタは、それが属するプロセッサで実行中の、該記憶装置内の複数の記憶位置に対するアクセスを要求する命令(メモりアクセス命令)に応答して、該複数の記憶位置へのアクセスを要求する複数のアクセス要求を順次発行する。各リクエスタは、そのリクエスタに関する優先順位の切り替えを要求する優先順位切り替え信号を出力する第1の信号生成回路を有している。該記憶制御装置は、それぞれ該複数の部分記憶装置の一つに対応して設けられ、それぞれ該複数のプロセッサから供給された、対応する部分記憶装置に転送されるべき複数のアクセス要求の一つを選択する複数の選択回路と、該複数の選択回路に供給するための、該複数のリクエスタの優先順位に関する、該複数の選択回路に共通に定めた優先順位情報を保持する手段と、該複数のリクエスタのいずれか一つに含まれる該第1の信号生成回路から出力された優先順位切り替え信号に応答して、そのリクエスタに関する優先順位を切り替えするように、該保持手段に保持された優先順位情報を切り替える切り替え回路と、を含んでいる。   JP-A-6-195313 discloses a computer system (Patent Document 2). The computer system includes a plurality of processors, a storage device that is divided into a plurality of partial storage devices that can be accessed in parallel with each other, and memory access requests for the storage devices that are output in parallel from the plurality of processors in parallel. A storage control circuit for transferring to the plurality of partial storage devices. Each of the plurality of processors includes one of a plurality of requesters, and each requester requests access to a plurality of storage locations in the storage device being executed by the processor to which the requester belongs (memory access instruction). In response to this, a plurality of access requests for requesting access to the plurality of storage locations are sequentially issued. Each requester has a first signal generation circuit that outputs a priority switching signal for requesting switching of priority regarding the requester. The storage control device is provided corresponding to one of the plurality of partial storage devices, and is one of a plurality of access requests to be transferred to the corresponding partial storage device respectively supplied from the plurality of processors. A plurality of selection circuits for selecting a plurality of selection circuits, and means for holding priority order information common to the plurality of selection circuits regarding the priority orders of the plurality of requesters to be supplied to the plurality of selection circuits; In response to a priority switching signal output from the first signal generation circuit included in any one of the requesters, the priority stored in the storage means is switched so as to switch the priority regarding the requester. And a switching circuit for switching information.

特開2007−280184号公報には、プロセッサが記載されている(特許文献3)。プロセッサは、命令コードをフェッチするフェッチ部と、並列動作可能な演算ユニットと、レジスタファイル部を含んでいる。レジスタファイル部は、フェッチされたベクトル演算命令をデコードして、ベクトルレジスタに演算ユニットの実行結果データを書き込む制御を行うために必要なベクトルレジスタ制御信号を生成するデコード部と、複数のベクトルレジスタと、ベクトルレジスタ制御信号に基づき、ベクトルレジスタにデータを書き込む制御を行う書き込み制御回路と、を含んでいる。複数のベクトルレジスタは、複数の要素レジスタからなり、同一の要素番号を有する要素レジスタがグループ化され、各グループ毎に書き込みポートを有している。書き込み制御回路は、ベクトルレジスタ制御信号に基づき、書き込み対象となる要素グループ及びベクトルレジスタを選択して、書き込みポートに書き込まれるデータを、選択された要素グループの選択されたベクトルレジスタの要素レジスタに書き込む制御を行うことを特徴としている。   Japanese Unexamined Patent Application Publication No. 2007-280184 describes a processor (Patent Document 3). The processor includes a fetch unit that fetches an instruction code, an arithmetic unit that can operate in parallel, and a register file unit. The register file unit decodes the fetched vector operation instruction and generates a vector register control signal necessary for performing control to write execution result data of the operation unit to the vector register, and a plurality of vector registers A write control circuit for performing control to write data into the vector register based on the vector register control signal. The plurality of vector registers are composed of a plurality of element registers, element registers having the same element number are grouped, and each group has a write port. The write control circuit selects an element group and a vector register to be written based on the vector register control signal, and writes data to be written to the write port to the element register of the selected vector register of the selected element group. It is characterized by performing control.

特公平8−10431号公報には、情報処理装置が記載されている(特許文献4)。情報処理装置は、パイプライン化した、機能の異なる演算器を複数個持つものである。この情報処理装置は、各演算に最低必要なパイプライン段数が異なる場合、各演算器に対してその後段に単に結果の転送のみを行うパイプライン用のレジスタを各演算系パイプラインの段数が等しくなるように必要な段数だけ付加し、付加したパイプライン用のレジスタの任意のレジスタからも演算結果を出力できる切替手段と、全結果出力のうちから1つを選択しようとして異なる演算系間で競合する場合には、結果を早く必要とするものがあればこれを優先し、さもなければ演算に最低必要なパイプライン段数の長い演算器系からの出力を優先させる制御手段と、を含むことを特徴としている。   Japanese Patent Publication No. 8-10431 discloses an information processing apparatus (Patent Document 4). The information processing apparatus has a plurality of pipelined arithmetic units having different functions. In this information processing apparatus, when the minimum number of pipeline stages required for each operation is different, a pipeline register that simply transfers the result to the subsequent stage for each operation unit is set to the same number of stages in each operation system pipeline. The necessary number of stages is added so that the switching means that can output the operation result from any of the added pipeline registers, and competition between different operation systems trying to select one of all the result outputs Control means for giving priority to the result if there is a need for the result earlier, and giving priority to the output from the arithmetic unit system having the longest number of pipeline stages necessary for the operation. It is a feature.

特開平8−305567号公報JP-A-8-305567 特開平6−195313号公報JP-A-6-195313 特開2007−280184号公報JP 2007-280184 A 特公平8−10431号公報Japanese Patent Publication No. 8-10431

本発明の課題は、命令と先行命令とでリソースが競合しても、そのリソースを効率良く使用することができるベクトル処理装置を提供することにある。   An object of the present invention is to provide a vector processing apparatus that can efficiently use resources even if the resources compete between the instruction and the preceding instruction.

本発明のベクトル処理装置は、命令がセットされる命令デコードステージと、複数の命令発行ステージと、それぞれ複数の命令発行ステージに対応する複数のチェック回路と、命令デコードステージにセットされた命令と複数の命令発行ステージにセットされている命令間でリソースの一致があるか否かを検出するリソース一致検出回路と、を具備している。リソース一致検出回路は、命令デコードステージにセットされた命令を、複数の命令発行ステージのうちの、空いている自命令発行ステージにセットするときに、命令デコードステージの命令と複数の命令発行ステージの命令間において、検出の結果として、リソースを競合して順序を守らなければならない場合、自命令発行ステージ以外の命令発行ステージに対応する順序フラグをそれぞれセットする。また、検出の結果として、リソースを競合しても追い越し可能な場合、自命令発行ステージ以外の命令発行ステージに対応する優先フラグをそれぞれセットする。複数のチェック回路は、順序フラグ、優先フラグに従って調停を行い、調停の結果に基づいて、自命令発行ステージにセットされた命令を発行する。   The vector processing apparatus of the present invention includes an instruction decode stage in which an instruction is set, a plurality of instruction issue stages, a plurality of check circuits respectively corresponding to a plurality of instruction issue stages, and an instruction set in the instruction decode stage and a plurality of instructions A resource match detection circuit for detecting whether or not there is a resource match between the instructions set in the instruction issue stage. When the instruction set in the instruction decode stage is set in a free own instruction issue stage among a plurality of instruction issue stages, the resource coincidence detection circuit detects the instruction in the instruction decode stage and the plurality of instruction issue stages. As a result of detection between instructions, if the order must be maintained by competing resources, order flags corresponding to instruction issue stages other than the self instruction issue stage are set. As a result of detection, when overtaking is possible even if resources compete, priority flags corresponding to instruction issue stages other than the self instruction issue stage are set. The plurality of check circuits perform arbitration according to the order flag and the priority flag, and issue an instruction set in the own instruction issue stage based on the result of the arbitration.

以上により、本発明のベクトル処理装置によれば、命令と先行命令とでリソースが競合した場合、競合関係をフラグ化することにより、多くの命令を命令発行ステージにエントリできる。また、命令と先行命令とで調停を行い、優先順序が高く発行可能な命令から発行することにより、リソースを効率良く使用することができる。   As described above, according to the vector processing device of the present invention, when resources compete between an instruction and a preceding instruction, many instructions can be entered in the instruction issue stage by flagging the competition relationship. Further, resources can be efficiently used by performing arbitration between an instruction and a preceding instruction and issuing from an instruction that can be issued with a high priority order.

以下に添付図面を参照して、本発明の実施形態によるベクトル処理装置について詳細に説明する。   Hereinafter, a vector processing apparatus according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

[構成]
図2は、本発明の実施形態によるベクトル処理装置の構成を示している。
[Constitution]
FIG. 2 shows the configuration of the vector processing apparatus according to the embodiment of the present invention.

図2に示されるように、本発明の実施形態によるベクトル処理装置は、コンピュータであり、第1命令デコードステージ1と、命令デコーダ2と、第2命令デコードステージ3と、リソース一致検出回路4と、複数の命令発行ステージと、複数の命令発行ステージに対するフラグ、BUSYフラグ9を格納する格納部(図示しない)と、複数の命令発行チェック回路と、複数の優先チェック回路と、を具備している。   As shown in FIG. 2, the vector processing apparatus according to the embodiment of the present invention is a computer, and includes a first instruction decode stage 1, an instruction decoder 2, a second instruction decode stage 3, and a resource match detection circuit 4. A storage unit (not shown) for storing a plurality of instruction issue stages, flags for the plurality of instruction issue stages, and a BUSY flag 9, a plurality of instruction issue check circuits, and a plurality of priority check circuits. .

複数の命令発行ステージは、A0命令発行ステージ6、A1命令発行ステージ6’(図示しない)、…、M0命令発行ステージ8、M1命令発行ステージ8’(図示しない)、…を表している。   The plurality of instruction issue stages represent an A0 instruction issue stage 6, an A1 instruction issue stage 6 '(not shown), ..., an M0 instruction issue stage 8, an M1 instruction issue stage 8' (not shown),.

複数の命令発行チェック回路は、A0命令発行チェック回路10、A1命令発行チェック回路10’(図示しない)、…、M0命令発行チェック回路11、M1命令発行チェック回路11’(図示しない)、…を表している。   The plurality of instruction issue check circuits include an A0 instruction issue check circuit 10, an A1 instruction issue check circuit 10 ′ (not shown),..., An M0 instruction issue check circuit 11, an M1 instruction issue check circuit 11 ′ (not shown),. Represents.

複数の優先チェック回路は、A0優先チェック回路12、A1優先チェック回路12’(図示しない)、…、M0優先チェック回路13、M1優先チェック回路13’(図示しない)、…を表している。   The plurality of priority check circuits represent an A0 priority check circuit 12, an A1 priority check circuit 12 '(not shown),..., An M0 priority check circuit 13, an M1 priority check circuit 13' (not shown),.

複数の命令発行ステージに対するフラグは、優先フラグとして、A0命令発行ステージ優先フラグ5、A1命令発行ステージ優先フラグ5’(図示しない)、…、M0命令発行ステージ優先フラグ7、M1命令発行ステージ優先フラグ7’(図示しない)、…を含んでいる。更に、順序フラグとして、A0命令発行ステージ順序フラグ16、A1命令発行ステージ順序フラグ16’(図示しない)、…、M0命令発行ステージ順序フラグ17、M1命令発行ステージ順序フラグ17’(図示しない)、…を含んでいる。   Flags for a plurality of instruction issue stages include, as priority flags, A0 instruction issue stage priority flag 5, A1 instruction issue stage priority flag 5 ′ (not shown),..., M0 instruction issue stage priority flag 7, M1 instruction issue stage priority flag. 7 '(not shown),. Further, as order flags, A0 instruction issue stage order flag 16, A1 instruction issue stage order flag 16 ′ (not shown),..., M0 instruction issue stage order flag 17, M1 instruction issue stage order flag 17 ′ (not shown), Includes ...

ここで、上述の順序フラグ16、16’、17、17’、優先フラグ5、5、7、7’について説明する。   Here, the order flags 16, 16 ', 17, 17' and priority flags 5, 5, 7, 7 'will be described.

順序フラグ16、16’、17、17’とは、自命令が命令発行ステージにセットされた時点で他の命令発行ステージにリソースを競合する先行命令が存在し、自命令が先行命令を追い越して発行できないことを示すフラグである。命令発行ステージに自命令をセット時、他の命令発行ステージの先行命令の中にリソース競合を検出した場合、その命令発行ステージに対応した順序フラグがそれぞれセットされる。順序フラグ16、16’、17、17’は、順序フラグ16、16’、17、17’に対応した命令発行ステージの先行命令が発行された時点でリセットされる。順序フラグがセットされている命令発行ステージの自命令の発行を順序フラグに対応した命令発行ステージの先行命令を発行するまで抑止するために使用される。ここで順序を守らなければならない命令間の関係は、実行順序を変えると結果不正を起こす関係、例えば図4に示されるベクトルレジスタ29〜36の番号一致関係やベクトルデータレジスタ21〜28の番号一致関係を示す。   The order flags 16, 16 ′, 17, and 17 ′ indicate that when a self-instruction is set in the instruction issuance stage, there is a predecessor instruction that competes for resources in another instruction issuance stage, and the self-instruction overtakes the predecessor instruction. This flag indicates that it cannot be issued. When a self-instruction is set in the instruction issuance stage, if a resource conflict is detected in a preceding instruction in another instruction issuance stage, an order flag corresponding to that instruction issuance stage is set. The order flags 16, 16 ', 17, 17' are reset when a preceding instruction at the instruction issue stage corresponding to the order flags 16, 16 ', 17, 17' is issued. It is used to suppress the issue of its own instruction at the instruction issue stage for which the order flag is set until the preceding instruction at the instruction issue stage corresponding to the order flag is issued. Here, the relationship between the instructions that must be kept in order is the relationship that results in incorrect results when the execution order is changed, for example, the number matching relationship of the vector registers 29 to 36 shown in FIG. 4 or the number matching of the vector data registers 21 to 28. Show the relationship.

優先フラグ5、5、7、7’とは、自命令を命令発行ステージにセットした時点で他の発行ステージにリソースを競合する先行命令が存在することを示すフラグである。命令発行ステージに自命令をセット時、他の発行ステージの先行命令の中にリソース競合が検出された場合、その発行ステージに対応した優先フラグがそれぞれセットされる。優先フラグ5、5、7、7’は、優先フラグ5、5、7、7’に対応した命令発行ステージの先行命令が発行された時点でリセットされる。優先フラグがセットされている命令発行ステージの自命令は、優先フラグに対応した発行ステージの命令が発行可能な場合は自命令の発行を抑える機能と、優先フラグに対応した発行ステージの先行命令が発行可能でなく自命令が発行可能な場合は先行命令を追い越して発行する機能と、を実現するために使用される。ここで追い越し可能な命令の関係は、命令間で実行順序を変えても結果不正を起こさない、例えば同時に使用できない共有のVDR Write PATH(図4の信号線L1、L2、L3、L4)を使用する関係を示す。   The priority flags 5, 5, 7, and 7 'are flags that indicate that there is a preceding instruction that competes for resources in another issue stage when the self instruction is set in the instruction issue stage. When a self-instruction is set in the instruction issue stage, if a resource conflict is detected in a preceding instruction in another issue stage, a priority flag corresponding to the issue stage is set. The priority flags 5, 5, 7, and 7 'are reset when the preceding instruction of the instruction issue stage corresponding to the priority flags 5, 5, 7, and 7' is issued. The self-instruction of the instruction issue stage with the priority flag set has a function to suppress the issue of the self-instruction when the instruction of the issue stage corresponding to the priority flag can be issued, and the preceding instruction of the issue stage corresponding to the priority flag. This function is used to realize a function of overtaking the preceding instruction when the instruction can be issued instead of being issued. Here, the relationship of instructions that can be overtaken is that the execution order does not change between instructions, and the result does not cause fraud, for example, shared VDR Write PATH (signal lines L1, L2, L3, and L4 in FIG. 4) that cannot be used simultaneously. Shows the relationship.

以下説明を容易にするために、優先フラグと発行ステージの組み合わせとして、A0命令発行ステージ優先フラグ5、A0命令発行ステージ6と、M0命令発行ステージ優先フラグ7、M0命令発行ステージ8との2つを用いて、本発明の実施形態によるベクトル処理装置の動作を簡単に説明する。   In order to facilitate the following description, there are two combinations of priority flag and issue stage: A0 instruction issue stage priority flag 5, A0 instruction issue stage 6, M0 instruction issue stage priority flag 7, and M0 instruction issue stage 8. The operation of the vector processing apparatus according to the embodiment of the present invention will be briefly described with reference to FIG.

第1命令デコードステージ1には、命令がセットされる。命令デコーダ2は、第1命令デコードステージ1にセットされた命令に対して、命令が使用されるリソースのリクエストにデコードし、第2命令デコードステージ3にセットする。リソース一致検出回路4は、第2命令デコードステージ3にセットされた命令と複数の命令発行ステージにセットしている命令間でリソースの一致があるか否かを検出する。この場合、第2命令デコードステージ3にセットされた命令(リクエスト)と命令発行ステージ6、8の先行命令(リクエスト)間でリソースの一致があるか否かを検出する。   An instruction is set in the first instruction decode stage 1. The instruction decoder 2 decodes the instruction set in the first instruction decode stage 1 into a request for a resource in which the instruction is used, and sets it in the second instruction decode stage 3. The resource match detection circuit 4 detects whether or not there is a resource match between the instruction set in the second instruction decode stage 3 and the instructions set in a plurality of instruction issue stages. In this case, it is detected whether or not there is a resource match between the instruction (request) set in the second instruction decode stage 3 and the preceding instruction (request) of the instruction issue stages 6 and 8.

リソース一致検出回路4は、第2命令デコードステージ3にセットされた命令を、命令発行ステージ6、8のうちの、空いている自命令発行ステージ(命令発行ステージ6又は命令発行ステージ8)にセットするときに、上記検出の結果に基づいて、順序、優先フラグを同時にセットする。このとき、リソース一致検出回路4は、第2命令デコードステージ3の命令と命令発行ステージ6、8の命令間において、上記検出の結果として、リソースを競合して順序を守らなければならない場合は、自命令発行ステージ以外の命令発行ステージに対応する順序フラグをそれぞれセットする。一方、上記検出の結果として、リソースを競合しても追い越し可能な場合は、自命令発行ステージ以外の命令発行ステージに対応する優先フラグをそれぞれセットする。   The resource coincidence detection circuit 4 sets the instruction set in the second instruction decode stage 3 to a free own instruction issue stage (instruction issue stage 6 or instruction issue stage 8) of the instruction issue stages 6 and 8. At the same time, the order and priority flags are simultaneously set based on the detection result. At this time, when the resource match detection circuit 4 must keep the order by competing resources between the instruction of the second instruction decode stage 3 and the instructions of the instruction issue stages 6 and 8, as a result of the detection, Order flags corresponding to instruction issue stages other than the self instruction issue stage are set. On the other hand, as a result of the above detection, if overtaking is possible even if resources compete, priority flags corresponding to instruction issue stages other than the self instruction issue stage are set.

よって、順序、優先フラグが多いほど後続の命令となる。一度セットされた順序、優先フラグは新しい命令がセットされない限り再セットされない。順序、優先フラグに対応した命令が実行された時点でリセットされる。よって、順序フラグが全てリセットされないと自命令は実行できない。優先フラグを保持している命令発行ステージの命令は、優先フラグに対応する命令発行ステージの先行命令が他の要因で実行できない場合、先行命令を追い越しての実行を可能にする。   Therefore, the more the order and priority flags are, the more subsequent instructions become. Once set, the priority flag is not reset unless a new instruction is set. It is reset when the instruction corresponding to the order and priority flag is executed. Therefore, the self-instruction cannot be executed unless all the order flags are reset. The instruction at the instruction issue stage holding the priority flag enables execution by overtaking the preceding instruction when the preceding instruction at the instruction issue stage corresponding to the priority flag cannot be executed due to other factors.

また、BUSYフラグ9は、実行中の命令が使用しているリソースを管理する。上述の順序フラグは、発行ステージで実行待ちしている命令間の順序を保障するものであり、実行前のBUSYフラグ9として用いられる。優先フラグは、順序を保障しなくても良いが、同時に実行した場合、リソースを共有してしまうことを回避するためにある。同時に実行するタイミングを回避できれば、実行後はBUSYフラグ9で管理できる。即ち、BUSYフラグ9をセットする時間を確保する。   The BUSY flag 9 manages resources used by the instruction being executed. The order flag described above guarantees the order between instructions waiting for execution at the issue stage, and is used as the BUSY flag 9 before execution. The priority flag need not guarantee the order, but is to avoid sharing resources when executed at the same time. If the timing to execute simultaneously can be avoided, it can be managed by the BUSY flag 9 after execution. That is, a time for setting the BUSY flag 9 is secured.

チェック回路(A0命令発行チェック回路10、A0優先チェック回路12)は、順序フラグ、優先フラグに従って調停を行い、調停の結果に基づいて、命令発行ステージ6にセットされた命令を発行する。これについて説明する。   The check circuits (A0 instruction issue check circuit 10 and A0 priority check circuit 12) perform arbitration according to the order flag and priority flag, and issue the instruction set in the instruction issue stage 6 based on the result of the arbitration. This will be described.

まず、A0命令発行チェック回路10は、A0命令発行ステージ6の命令(リクエスト)に対応するリソースが空いているかをBUSYフラグ9でチェックし、先行命令に順序を保障しなければならない命令があるか否かをA0順序フラグ16でチェックする。BUSYフラグ9がセットされていなく、A0命令発行ステージ6に順序フラグがセットされていない場合、命令を発行可能である旨を表す通知をA0優先チェック回路12に出力する。次に、A0優先チェック回路12は、A0命令発行チェック回路10からの通知を受けて、A0命令発行ステージ6に優先フラグがセットされているか否かをチェックする。A0優先チェック回路12は、A0命令発行ステージ6に優先フラグがセットされていない場合、発行指示14を出力し、自命令発行ステージ(A0命令発行ステージ6)の命令を命令実行部に出力する。この場合、A0優先チェック回路12から命令が発行される。命令実行部は、発行指示14に応じて命令が発行されることを認識し、A0優先チェック回路12から発行された命令を実行する。また、A0優先チェック回路12は、A0命令発行ステージ6の命令を発行するとき、A0命令発行ステージ6の命令(リクエスト)に対応するBUSYフラグ9をセットする。同時に、自命令のリクエストであるA0命令発行ステージ6をリセットする。また、M0命令発行ステージ優先フラグ7のうちの、A0命令発行ステージ6に対応する優先フラグをリセットする。また、M0命令発行ステージ順序フラグ17のうちの、A0命令発行ステージ6に対応する順序フラグをリセットする。A0命令発行ステージ6の命令処理が終了したときに、A0命令発行ステージ6の命令に対応するBUSYフラグ9をリセットする。 First, the A0 instruction issuance check circuit 10 checks whether the resource corresponding to the instruction (request) in the A0 instruction issuance stage 6 is free by using the BUSY flag 9 and determines whether there is an instruction whose order must be guaranteed for the preceding instruction. Whether or not the A0 order flag 16 is checked. If the BUSY flag 9 is not set and the order flag is not set in the A0 instruction issue stage 6, a notification indicating that an instruction can be issued is output to the A0 priority check circuit 12. Next, the A0 priority check circuit 12 receives a notification from the A0 instruction issue check circuit 10 and checks whether or not the priority flag is set in the A0 instruction issue stage 6. When the priority flag is not set in the A0 instruction issue stage 6, the A0 priority check circuit 12 outputs the issue instruction 14, and outputs the instruction in the own instruction issue stage (A0 instruction issue stage 6) to the instruction execution unit. In this case, an instruction is issued from the A0 priority check circuit 12. The instruction execution unit recognizes that an instruction is issued in response to the issue instruction 14, and executes the instruction issued from the A0 priority check circuit 12. The A0 priority check circuit 12 sets the BUSY flag 9 corresponding to the instruction (request) of the A0 instruction issue stage 6 when issuing the instruction of the A0 instruction issue stage 6. At the same time, the A0 instruction issue stage 6 which is a request for the self instruction is reset. Of the M0 instruction issue stage priority flag 7, the priority flag corresponding to the A0 instruction issue stage 6 is reset. The order flag corresponding to the A0 instruction issue stage 6 in the M0 instruction issue stage order flag 17 is reset. When life Ryosho sense of A0 instruction issue stage 6 is completed, and resets the BUSY flag 9 corresponding to the instruction A0 instruction issue stage 6.

一方、A0優先チェック回路12は、A0命令発行ステージ6に優先フラグがセットされている場合、優先フラグに対応する命令発行ステージ(M0命令発行ステージ8)に発行可能な命令があるか否かをチェックする。A0優先チェック回路12は、M0命令発行ステージ8の命令が発行可能ではない場合、発行指示14を出力し、A0命令発行ステージ6の命令を発行する。また、A0優先チェック回路12は、A0命令発行ステージ6の命令を発行するとき、A0命令発行ステージ6の命令(リクエスト)に対応するBUSYフラグ9をセットする。同時に、自命令のリクエストであるA0命令発行ステージ6をリセットする。A0命令発行ステージ6の命令処理が終了したときに、A0命令発行ステージ6の命令に対応するBUSYフラグ9をリセットする。 On the other hand, when the priority flag is set in the A0 instruction issue stage 6, the A0 priority check circuit 12 determines whether there is an instruction that can be issued in the instruction issue stage (M0 instruction issue stage 8) corresponding to the priority flag. To check. When the instruction in the M0 instruction issue stage 8 cannot be issued, the A0 priority check circuit 12 outputs the issue instruction 14 and issues the instruction in the A0 instruction issue stage 6. The A0 priority check circuit 12 sets the BUSY flag 9 corresponding to the instruction (request) of the A0 instruction issue stage 6 when issuing the instruction of the A0 instruction issue stage 6. At the same time, the A0 instruction issue stage 6 which is a request for the self instruction is reset. When life Ryosho sense of A0 instruction issue stage 6 is completed, and resets the BUSY flag 9 corresponding to the instruction A0 instruction issue stage 6.

このように、A0優先チェック回路12は、A0命令発行ステージ6に優先フラグがセットされていない場合、A0命令発行ステージ6の命令を発行するが、A0命令発行ステージ6の優先フラグのうちの、M0命令発行ステージ8に対応する優先フラグがセットされている場合は、M0命令発行ステージ8の命令が発行可能か否かをM0命令発行チェック回路11のチェックの結果により判断する。発行可能ならばA0命令発行ステージ6の命令発行を抑止するが、発行不可ならA0命令発行ステージ6の命令を発行する。   As described above, when the priority flag is not set in the A0 instruction issue stage 6, the A0 priority check circuit 12 issues the instruction of the A0 instruction issue stage 6, but among the priority flags of the A0 instruction issue stage 6, If the priority flag corresponding to the M0 instruction issuance stage 8 is set, whether or not the instruction of the M0 instruction issuance stage 8 can be issued is determined based on the check result of the M0 instruction issuance check circuit 11. If the issuance is possible, the instruction issuance at the A0 instruction issuance stage 6 is suppressed.

同様に、チェック回路(M0命令発行チェック回路11、M0優先チェック回路13)は、順序フラグ、優先フラグに従って調停を行い、調停の結果に基づいて、命令発行ステージ8にセットされた命令を発行する。これについて説明する。   Similarly, the check circuits (M0 instruction issue check circuit 11, M0 priority check circuit 13) perform arbitration according to the order flag and priority flag, and issue the instruction set in the instruction issue stage 8 based on the result of the arbitration. . This will be described.

まず、M0命令発行チェック回路11は、M0命令発行ステージ8の命令(リクエスト)に対応するリソースが空いているかをBUSYフラグ9でチェックし、先行命令に順序を保障しなければならない命令があるか否かをM0順序フラグ17でチェックする。BUSYフラグ9がセットされていなく、M0命令発行ステージ8に順序フラグがセットされていない場合、命令を発行可能である旨を表す通知をM0優先チェック回路13に出力する。次に、M0優先チェック回路13は、M0命令発行チェック回路11からの通知を受けて、M0命令発行ステージ8に優先フラグがセットされているか否かをチェックする。M0優先チェック回路13は、M0命令発行ステージ8に優先フラグがセットされていない場合、発行指示15を出力し、自命令発行ステージ(M0命令発行ステージ8)の命令を命令実行部に出力する。この場合、M0優先チェック回路13から命令が発行される。命令実行部は、発行指示15に応じて命令が発行されることを認識し、M0優先チェック回路13から発行された命令を実行する。また、M0優先チェック回路13は、M0命令発行ステージ8の命令を発行するとき、M0命令発行ステージ8の命令(リクエスト)に対応するBUSYフラグ9をセットする。同時に、自命令のリクエストであるM0命令発行ステージ8をリセットする。また、A0命令発行ステージ優先フラグ5のうちの、M0命令発行ステージ8に対応する優先フラグをリセットする。また、A0命令発行ステージ順序フラグ16のうちの、M0命令発行ステージ8に対応する順序フラグをリセットする。M0命令発行ステージ8の命令処理が終了したときに、M0命令発行ステージ8の命令に対応するBUSYフラグ9をリセットする。 First, the M0 instruction issuance check circuit 11 checks whether the resource corresponding to the instruction (request) in the M0 instruction issuance stage 8 is free by using the BUSY flag 9 and determines whether there is an instruction whose order must be guaranteed for the preceding instruction. It is checked with the M0 order flag 17 whether or not. If the BUSY flag 9 is not set and the order flag is not set in the M0 instruction issue stage 8, a notification indicating that the instruction can be issued is output to the M0 priority check circuit 13. Next, the M0 priority check circuit 13 receives the notification from the M0 instruction issue check circuit 11 and checks whether or not the priority flag is set in the M0 instruction issue stage 8. When the priority flag is not set in the M0 instruction issue stage 8, the M0 priority check circuit 13 outputs the issue instruction 15 and outputs the instruction in the own instruction issue stage (M0 instruction issue stage 8) to the instruction execution unit. In this case, an instruction is issued from the M0 priority check circuit 13. The instruction execution unit recognizes that an instruction is issued in response to the issue instruction 15 and executes the instruction issued from the M0 priority check circuit 13. The M0 priority check circuit 13 sets the BUSY flag 9 corresponding to the instruction (request) of the M0 instruction issue stage 8 when issuing the M0 instruction issue stage 8 instruction. At the same time, the M0 instruction issue stage 8 which is a request for the own instruction is reset. Of the A0 instruction issue stage priority flag 5, the priority flag corresponding to the M0 instruction issue stage 8 is reset. The order flag corresponding to the M0 instruction issue stage 8 in the A0 instruction issue stage order flag 16 is reset. When the life Ryosho sense of M0 instruction issue stage 8 has been completed, and resets the BUSY flag 9 corresponding to the instruction of the M0 instruction issue stage 8.

一方、M0優先チェック回路13は、M0命令発行ステージ8に優先フラグがセットされている場合、優先フラグに対応する命令発行ステージ(A0命令発行ステージ6)に発行可能な命令があるか否かをチェックする。M0優先チェック回路13は、A0命令発行ステージ6の命令が発行可能ではない場合、発行指示15を出力し、M0命令発行ステージ8の命令を発行する。また、M0優先チェック回路13は、M0命令発行ステージ8の命令を発行するとき、M0命令発行ステージ8の命令(リクエスト)に対応するBUSYフラグ9をセットする。同時に、自命令のリクエストであるM0命令発行ステージ8をリセットする。M0命令発行ステージ8の命令処理が終了したときに、M0命令発行ステージ8の命令に対応するBUSYフラグ9をリセットする。 On the other hand, when the priority flag is set in the M0 instruction issue stage 8, the M0 priority check circuit 13 determines whether there is an instruction that can be issued in the instruction issue stage (A0 instruction issue stage 6) corresponding to the priority flag. To check. If the A0 instruction issue stage 6 instruction cannot be issued, the M0 priority check circuit 13 outputs the issue instruction 15 and issues the M0 instruction issue stage 8 instruction. The M0 priority check circuit 13 sets the BUSY flag 9 corresponding to the instruction (request) of the M0 instruction issue stage 8 when issuing the M0 instruction issue stage 8 instruction. At the same time, the M0 instruction issue stage 8 which is a request for the own instruction is reset. When the life Ryosho sense of M0 instruction issue stage 8 has been completed, and resets the BUSY flag 9 corresponding to the instruction of the M0 instruction issue stage 8.

このように、M0優先チェック回路13は、M0命令発行ステージ8に優先フラグがセットされていない場合、M0命令発行ステージ8の命令を発行するが、M0命令発行ステージ8の優先フラグのうちの、A0命令発行ステージ6に対応する優先フラグがセットされている場合は、A0命令発行ステージ6の命令が発行可能か否かをA0命令発行チェック回路10のチェックの結果により判断する。発行可能ならばM0命令発行ステージ8の命令発行を抑止するが、発行不可ならM0命令発行ステージ8の命令を発行する。   As described above, when the priority flag is not set in the M0 instruction issue stage 8, the M0 priority check circuit 13 issues an instruction of the M0 instruction issue stage 8, but among the priority flags of the M0 instruction issue stage 8, If the priority flag corresponding to the A0 instruction issuance stage 6 is set, it is determined from the result of the check of the A0 instruction issuance check circuit 10 whether or not the instruction of the A0 instruction issuance stage 6 can be issued. If issuance is possible, instruction issuance at the M0 instruction issuance stage 8 is suppressed. If issuance is not possible, an instruction at the M0 instruction issuance stage 8 is issued.

これにより、本発明のベクトル処理装置によれば、命令と先行命令とでリソースが競合した場合、競合関係をフラグ化することにより、多くの命令を命令発行ステージにエントリできる。また、命令と先行命令とで調停を行い、優先順序が高く発行可能な命令から発行することにより、リソースを効率良く使用することができる。   Thus, according to the vector processing device of the present invention, when resources compete with each other between the instruction and the preceding instruction, many instructions can be entered in the instruction issuing stage by flagging the competition relationship. Further, resources can be efficiently used by performing arbitration between an instruction and a preceding instruction and issuing from an instruction that can be issued with a high priority order.

[動作]
次に、図3、図4に示される具体例を用いて、本発明の実施形態によるベクトル処理装置の動作を説明する。図3は、従来のベクトル処理装置、及び、本発明の実施形態によるベクトル処理装置の動作を示すタイミングチャートである。図3では、命令間でリソースの競合があるケースについて本発明と従来技術とを比較している。ここで、図3において、
命令X1:VD0/V0<−V0+V1
命令X2:VD4<−V6+V7
命令X3:VD8/V0<−V2*V3
命令X4:VD12<−V4*V5
とする。図4は、ベクトル演算処理装置の概略図である。
[Operation]
Next, the operation of the vector processing apparatus according to the embodiment of the present invention will be described using specific examples shown in FIGS. FIG. 3 is a timing chart showing the operation of the conventional vector processing apparatus and the vector processing apparatus according to the embodiment of the present invention. In FIG. 3, the present invention and the prior art are compared in the case where there is resource contention between instructions. Here, in FIG.
Instruction X1: VD0 / V0 <-V0 + V1
Command X2: VD4 <−V6 + V7
Command X3: VD8 / V0 <-V2 * V3
Command X4: VD12 <−V4 * V5
And FIG. 4 is a schematic diagram of the vector calculation processing device.

リソースの使用管理はBUSYフラグ9により行う。ベクトルデータレジスタ21(VDR)は、容量が大きく、VD0、VD8、VD16・・・と8飛びのVDR番号にベクトルデータを格納する。VDR22は、VD4、VD12、VD20・・・とVD4から8飛びのVDR番号にベクトルデータを格納する。同様に、VDR23〜28は、最若番号から8飛びのVDR番号にベクトルデータを格納する。ベクトルレジスタ29〜35(VAR)でV0からV7まであり演算するベクトルデータを格納する。ベクトル演算器(ADD0、MLT0、MLT1、ADD1)37〜40は、VAR29〜36からベクトルデータを受け取り演算する。X−BARスイッチ41は、ベクトル演算器37〜40で演算した演算結果を受け取り、VAR29〜36又はVDR21〜28にベクトルデータを供給する。信号線L1は、VDR Write PATH0でX−BARスイッチ41からVDR21、22に接続している。信号線L2は、VDR Write PATH1でX−BARスイッチ41からVDR23、24に接続している。信号線L3は、VDR Write PATH2でX−BARスイッチ41からVDR25、26に接続している。信号線L4は、VDR Write PATH3でX−BARスイッチ41からVDR27、28に接続している構成になっている。ここでVD0、VD4、VD8、VD12は同一VDR Write PATH0を使用する競合関係にあたる。また、V0とV0、VD0とVD0はVAR番号、VDR番号が同じ競合関係にあたる。   Resource usage management is performed by the BUSY flag 9. The vector data register 21 (VDR) has a large capacity and stores vector data in VD0, VD8, VD16. The VDR 22 stores vector data in VDR numbers VD4, VD12, VD20,. Similarly, the VDRs 23 to 28 store vector data in VDR numbers that jump 8 from the youngest number. The vector registers 29 to 35 (VAR) store vector data to be calculated from V0 to V7. Vector calculators (ADD0, MLT0, MLT1, ADD1) 37-40 receive vector data from VARs 29-36 and perform calculations. The X-BAR switch 41 receives calculation results calculated by the vector calculators 37 to 40 and supplies vector data to the VARs 29 to 36 or VDRs 21 to 28. The signal line L1 is connected from the X-BAR switch 41 to the VDRs 21 and 22 by VDR Write PATH0. The signal line L2 is connected to the VDRs 23 and 24 from the X-BAR switch 41 by VDR Write PATH1. The signal line L3 is connected to the VDRs 25 and 26 from the X-BAR switch 41 by VDR Write PATH2. The signal line L4 is configured to be connected from the X-BAR switch 41 to the VDRs 27 and 28 by VDR Write PATH3. Here, VD0, VD4, VD8, and VD12 are in a competitive relationship using the same VDR Write PATH0. Also, V0 and V0, and VD0 and VD0 are in a competitive relationship with the same VAR number and VDR number.

1クロック目において、INから上記の命令順で第1命令デコードステージ1に命令X1をセットする。   At the first clock, the instruction X1 is set in the first instruction decode stage 1 in the order of the instructions from IN.

2クロック目において、命令X1は命令デコーダ2により命令が使用するリソースリクエスト、READリクエストV0、V1、WriteリクエストVD0(VDR Write PATH0)、V0 Write、使用演算器A(加算器系)にデコードし、第2命令デコードステージ3にセットすると同時に命令X2を第1命令デコードステージ1にセットする。   At the second clock, the instruction X1 is decoded by the instruction decoder 2 into the resource request used by the instruction, READ request V0, V1, Write request VD0 (VDR Write PATH0), V0 Write, and used arithmetic unit A (adder system). At the same time as setting the second instruction decode stage 3, the instruction X2 is set to the first instruction decode stage 1.

3クロック目において、第2命令デコードステージ3にセットされた命令X1は、加算器系命令なのでA0命令発行ステージ6にセットされる。同時にリソース一致検出回路4は、他の発行ステージにセットしている先行命令との競合を検出し、A0命令発行ステージ優先フラグ5、命令発行ステージ順序フラグ16をセットする。今回は先行命令が発行ステージにないことで何もセットしない。第1命令デコードステージ1の命令X2は、命令デコーダ2により命令が使用するリソースリクエスト、READリクエストV6、V7、WriteリクエストVD4(VDR Write PATH0)、使用演算器A(加算器系)にデコードし、第2命令デコードステージ3にセットすると同時に命令X3を第1命令デコードステージ1にセットする。   At the third clock, the instruction X1 set in the second instruction decode stage 3 is set in the A0 instruction issue stage 6 because it is an adder system instruction. At the same time, the resource match detection circuit 4 detects a conflict with a preceding instruction set in another issue stage, and sets the A0 instruction issue stage priority flag 5 and the instruction issue stage order flag 16. This time, nothing is set because the preceding instruction is not in the issue stage. The instruction X2 of the first instruction decode stage 1 is decoded by the instruction decoder 2 into a resource request used by the instruction, a READ request V6, V7, a Write request VD4 (VDR Write PATH0), and a computing unit A (adder system). At the same time as setting the second instruction decode stage 3, the instruction X3 is set to the first instruction decode stage 1.

4クロック目において、A0命令発行チェック回路10は、A0命令発行ステージ6にセットされた命令X1について、READリクエストV0、V1、WriteリクエストVD0(VDR Write PATH0)、V0 Write、使用演算器A(加算器系)に対応するBUSYフラグ9がセットされてないこと(V0 Write BUSY、VDR Write PATH0 BUSY)をチェックする。A0命令発行チェック回路10は、A0命令発行ステージ順序フラグ16が全てリセットしていることをチェックして発行可能命令となる、A0命令発行ステージ優先フラグ5に対応する他の命令発行ステージに発行可能な命令がないことをA0優先チェック回路12で調停確認後、発行指示14を出力する。本ケースでは先行命令がセットしたV0 Write BUSYフラグ9をリセットするまで発行を待つ。   At the fourth clock, the A0 instruction issuance check circuit 10 reads the READ request V0, V1, Write request VD0 (VDR Write PATH0), V0 Write, and the used computing unit A (addition) for the instruction X1 set in the A0 instruction issuance stage 6. Check that the BUSY flag 9 corresponding to (system) is not set (V0 Write BUSY, VDR Write PATH0 BUSY). The A0 instruction issuance check circuit 10 can issue to other instruction issuance stages corresponding to the A0 instruction issuance stage priority flag 5 which checks that all the A0 instruction issuance stage order flags 16 are reset and becomes an issuable instruction. After the arbitration is confirmed by the A0 priority check circuit 12 that there is no correct instruction, an issue instruction 14 is output. In this case, issuance is waited until the V0 Write BUSY flag 9 set by the preceding instruction is reset.

第2命令デコードステージ3にセットされた命令X2は、加算器系命令なので、空いているA1命令発行ステージ6’にセットされる。同時にリソース一致検出回路4は、他の発行ステージにセットしている先行命令との競合を検出し、A1命令発行ステージ優先フラグ5’、A0命令発行ステージ順序フラグ16’をセットする。本ケースでは先行のA0命令発行ステージ6の命令と信号線L1が競合関係(VDR Write PATH0)にあり、A1発行ステージと先行のA0命令発行ステージ6の関係を優先フラグA1−>A0としてセットする。ここで優先フラグA1−>A0とは、優先フラグ 自命令発行ステージ−>先行命令の命令発行ステージを示す。命令X4は、第1命令デコードステージ1にセットされる。命令デコーダ2は、命令X3に対して、その命令が使用するリソースリクエスト、READリクエストV2、V3、WriteリクエストVD8 (VDR Write PATH0)、V0 Write、使用演算器M(乗算器系)にデコードし、第2命令デコードステージ3にセットする。   Since the instruction X2 set in the second instruction decode stage 3 is an adder system instruction, it is set in the vacant A1 instruction issue stage 6 '. At the same time, the resource match detection circuit 4 detects a conflict with the preceding instruction set in another issue stage, and sets the A1 instruction issue stage priority flag 5 'and the A0 instruction issue stage order flag 16'. In this case, the instruction of the preceding A0 instruction issue stage 6 and the signal line L1 are in a competitive relationship (VDR Write PATH0), and the relationship between the A1 issue stage and the preceding A0 instruction issue stage 6 is set as a priority flag A1-> A0. . Here, the priority flag A1-> A0 indicates the priority flag own instruction issue stage → the instruction issue stage of the preceding instruction. The instruction X4 is set in the first instruction decode stage 1. The instruction decoder 2 decodes the instruction X3 into a resource request used by the instruction, a READ request V2, V3, a write request VD8 (VDR Write PATH0), a V0 Write, and a used calculator M (multiplier system). Set to the second instruction decode stage 3.

5クロック目において、第2命令デコードステージ3にセットされた命令X3は、乗算器系命令なのでM0命令発行ステージ8にセットされる。同時にリソース一致検出回路4は、他の命令発行ステージにセットしている先行命令との競合を検出し、M0命令発行ステージ優先フラグ7、M0命令発行ステージ順序フラグ17をセットする。本ケースでは先行のA0命令発行ステージ6の命令、A1命令発行ステージ6’の両命令と信号線L1が競合関係(VDR Write PATH0)にあり、M0命令発行ステージ優先フラグ7として優先フラグM0−>A0、優先フラグM0−>A1をセットする。また、先行のA0命令発行ステージ6の命令とV0 Writeが同じため、追い越してはいけない関係にあたり、M0命令発行ステージ順序フラグ17として順序フラグM0−>A0をセットする。命令デコーダ2は、命令X4に対して、その命令が使用するリソースのリクエスト、READリクエストV4、V5、WriteリクエストVD12(VDR Write PATH0)、使用演算器M(乗算器系)にデコードし、第2命令デコードステージ3にセットする。   At the fifth clock, the instruction X3 set in the second instruction decode stage 3 is set in the M0 instruction issue stage 8 because it is a multiplier instruction. At the same time, the resource match detection circuit 4 detects a conflict with a preceding instruction set in another instruction issue stage, and sets the M0 instruction issue stage priority flag 7 and the M0 instruction issue stage order flag 17. In this case, both the instruction of the preceding A0 instruction issue stage 6 and the instruction of the A1 instruction issue stage 6 ′ and the signal line L1 are in a competitive relationship (VDR Write PATH0), and the priority flag M0-> as the M0 instruction issue stage priority flag 7 Set A0, priority flag M0-> A1. Since the preceding A0 instruction issuance stage 6 instruction is the same as V0 Write, the order flag M0-> A0 is set as the M0 instruction issuance stage order flag 17 for the relationship that must not be overtaken. The instruction decoder 2 decodes the instruction X4 into a request for resources used by the instruction, a READ request V4, V5, a write request VD12 (VDR Write PATH0), and a used computing unit M (multiplier system). Set to instruction decode stage 3.

A1命令発行チェック回路10’は、A1命令発行ステージ6’にセットされた命令X2に対して、READリクエストV6、V7、WriteリクエストVD4(VDR Write PATH0)、使用演算器A(加算器系)に対応するBUSYフラグ9が点灯してないこと(VDR Write PATH0 BUSY)と、A1命令発行ステージ順序フラグ16’が全てリセットしていることをチェックし、命令X2は、発行可能命令となる。A1命令発行チェック回路10’は、A1命令発行ステージ優先フラグ5’に対応する他の命令発行ステージに発行可能な命令がないかA1優先チェック回路12’で調停確認後、発行指示14’を出力する。本ケースでは先行命令がセットしたV0 Write BUSYフラグ9によりV0 Write BUSYフラグ9をリセットするまで発行を待っているA0命令発行ステージ6にセットした命令X1との関係が優先フラグA1->A0 の点灯により命令X1が発行できないことをA1優先チェック回路12’で調停確認後、命令X1を追い越して命令X2が先に発行指示14’を出力し命令発行する。また、V0 Write BUSYフラグ9は先行命令の処理が終わり、ここでリセットされる。   The A1 instruction issuance check circuit 10 ′ sends READ request V 6, V 7, Write request VD 4 (VDR Write PATH 0), and used arithmetic unit A (adder system) to the instruction X 2 set in the A1 instruction issuance stage 6 ′. It is checked that the corresponding BUSY flag 9 is not lit (VDR Write PATH0 BUSY) and that the A1 instruction issuance stage order flag 16 ′ is all reset, and the instruction X2 becomes an issueable instruction. The A1 instruction issuance check circuit 10 ′ outputs an issuance instruction 14 ′ after confirming arbitration by the A1 priority check circuit 12 ′ for an instruction that can be issued to another instruction issuance stage corresponding to the A1 instruction issuance stage priority flag 5 ′. To do. In this case, the priority flag A1-> A0 is turned on in relation to the instruction X1 set in the A0 instruction issue stage 6 waiting for issuance until the V0 Write BUSY flag 9 is reset by the V0 Write BUSY flag 9 set by the preceding instruction. After confirming that the instruction X1 cannot be issued by the A1 priority check circuit 12 ', the instruction X2 first issues the issue instruction 14' and issues the instruction, overtaking the instruction X1. The V0 Write BUSY flag 9 is reset at this point after the processing of the preceding instruction is completed.

6クロック目において、命令X2は、命令発行したことでリソースを使用するためBUSYフラグ9(VDR Write PATH0 BUSY)を点灯し、後続の命令がリソースを使用しないように管理し、後続命令の発行を抑止する。また、A1命令発行ステージ優先フラグ5’(優先フラグM0−>A1)をリセットする。第2命令デコードステージ3にセットされた命令X4は、乗算器系命令なので空いているM1命令発行ステージ8’にセットされる。同時にリソース一致検出回路4は、他の発行ステージにセットしている先行命令との競合を検出し、M1命令発行ステージ優先フラグ7’、M1命令発行ステージ順序フラグ17’をセットする。本ケースでは先行のA0命令発行ステージ6の命令、M0命令発行ステージ8の命令と信号線L1が競合関係(VDR Write PATH0)にあり優先フラグM1−>A0、優先フラグM1−>M0をセットする。先行A1命令発行ステージ6’の命令とも信号線L1が競合関係(VDR Write PATH0)にあったが、命令発行された後でA1発行ステージに命令がないので優先フラグM1−>A1をセットしない。   At the 6th clock, the instruction X2 uses the resource by issuing the instruction, so that the BUSY flag 9 (VDR Write PATH0 BUSY) is turned on, manages that the subsequent instruction does not use the resource, and issues the subsequent instruction. Deter. Also, the A1 instruction issue stage priority flag 5 '(priority flag M0-> A1) is reset. The instruction X4 set in the second instruction decode stage 3 is set in the free M1 instruction issue stage 8 'because it is a multiplier instruction. At the same time, the resource match detection circuit 4 detects a conflict with the preceding instruction set in another issue stage, and sets the M1 instruction issue stage priority flag 7 'and the M1 instruction issue stage order flag 17'. In this case, the instruction in the preceding A0 instruction issue stage 6 and the instruction in the M0 instruction issue stage 8 and the signal line L1 are in a competitive relationship (VDR Write PATH0), and the priority flag M1-> A0 and the priority flag M1-> M0 are set. . The signal line L1 is also in a competitive relationship (VDR Write PATH0) with the instruction in the preceding A1 instruction issue stage 6 ', but since there is no instruction in the A1 issue stage after the instruction is issued, the priority flag M1-> A1 is not set.

7から9クロック目において、残りの命令X1、X3、X4は、信号線L1を管理するBUSYフラグ9の(VDR Write PATH0 BUSY)をリセットするまで発行待ちになる。   In the seventh to ninth clocks, the remaining instructions X1, X3, and X4 are on issue until the (VDR Write PATH0 BUSY) of the BUSY flag 9 that manages the signal line L1 is reset.

10クロック目において、命令X2の処理が終わったため、信号線L1を管理するBUSYフラグ9の(VDR Write PATH0 BUSY)をリセットする。   At the 10th clock, since the processing of the instruction X2 is completed, (VDR Write PATH0 BUSY) of the BUSY flag 9 that manages the signal line L1 is reset.

11クロック目において、優先度が高いのは、A0命令発行ステージ優先フラグ5とA0命令発行ステージ順序フラグ16を持っていないA0命令発行ステージ6で発行待ちしている命令X1である。A0命令発行チェック回路10は、命令X2が発行後セットした(VDR Write PATH0 BUSY)をリセットしたことを確認後、発行指示14を出力する。   At the eleventh clock, the instruction X1 that is waiting for issuance at the A0 instruction issuance stage 6 that does not have the A0 instruction issuance stage priority flag 5 and the A0 instruction issuance stage order flag 16 is high. The A0 instruction issuance check circuit 10 outputs the issuance instruction 14 after confirming that the instruction X2 is reset after issuance (VDR Write PATH0 BUSY).

12クロック目において、命令X1は命令発行されたことで、BUSYフラグ9(V0 Write BUSY、VDR Write PATH0 BUSY)が再セットされる。このBUSYフラグ9は、後続の命令が使用できないように管理し、後続命令の発行を抑止する。また、A1命令発行ステージ優先フラグ5’(優先フラグA1−>A0)、M0命令発行ステージ優先フラグ7(優先フラグM0−>A0)、M1命令発行ステージ優先フラグ7’に(優先フラグM1−>A0)、M0命令発行ステージ順序フラグ17(順序フラグM0−>A0)は、A0命令発行ステージ6の命令X1を発行したことでリセットし、後はBUSYフラグ9(V0 Write BUSY、VDR Write PATH0 BUSY)での管理に変わる。   At the 12th clock, when the instruction X1 is issued, the BUSY flag 9 (V0 Write BUSY, VDR Write PATH0 BUSY) is reset. The BUSY flag 9 is managed so that subsequent instructions cannot be used, and issuance of subsequent instructions is suppressed. Also, the A1 instruction issue stage priority flag 5 ′ (priority flag A1 → A0), the M0 instruction issue stage priority flag 7 (priority flag M0 → A0), and the M1 instruction issue stage priority flag 7 ′ (priority flag M1 →). A0), M0 instruction issue stage order flag 17 (order flag M0-> A0) is reset by issuing instruction X1 of A0 instruction issue stage 6, and then BUSY flag 9 (V0 Write BUSY, VDR Write PATH0 BUSY). ) Change to management.

13から15クロック目において、残りの命令X3、X4は、BUSYフラグ9(VDR Write PATH0 BUSY)をリセットするまで発行を待つ。また、M0命令発行ステージ8にセットした命令X3は、V0 Write命令のため、先行命令X1がセットしたBUSYフラグ9(V0 Write BUSY)をリセットするまで発行を待つ。   In the 13th to 15th clocks, the remaining instructions X3 and X4 wait for issuance until the BUSY flag 9 (VDR Write PATH0 BUSY) is reset. Since the instruction X3 set in the M0 instruction issue stage 8 is a V0 Write instruction, the instruction X3 waits for issuance until the BUSY flag 9 (V0 Write BUSY) set by the preceding instruction X1 is reset.

16クロック目において、命令X1の処理が終わったため、信号線L1を管理するBUSYフラグ9の(VDR Write PATH0 BUSY)をリセットする。   At the 16th clock, since the processing of the instruction X1 is completed, (VDR Write PATH0 BUSY) of the BUSY flag 9 that manages the signal line L1 is reset.

17クロック目において、M0命令発行ステージ8の命令X3は、BUSYフラグ9(V0 Write BUSY)がセットされていて命令発行をできない。このため、M1命令発行チェック回路11’は、M0命令発行ステージ8の命令X3と競合関係(VDR Write PATH0)にあり、優先フラグM1−>M0を持っている優先度の低い命令X4をM1優先チェック回路13’で調停確認後、先行命令X3を追い越して発行指示15’を出力する。仮にBUSYフラグ9(V0 Write BUSY)が競合のリソース(VDR Write PATH0 BUSY)より早くリセットした場合はM0命令発行ステージ優先フラグ7を持っていない命令X3をM0優先チェック回路13にて調停確認後、発行指示15を出力し命令発行する。   At the 17th clock, the instruction X3 in the M0 instruction issue stage 8 cannot issue instructions because the BUSY flag 9 (V0 Write BUSY) is set. For this reason, the M1 instruction issuance check circuit 11 ′ is in competition with the instruction X3 of the M0 instruction issuance stage 8 (VDR Write PATH0), and the low priority instruction X4 having the priority flag M1-> M0 is given M1 priority. After the arbitration is confirmed by the check circuit 13 ′, the issue instruction 15 ′ is output by overtaking the preceding instruction X3. If the BUSY flag 9 (V0 Write BUSY) is reset earlier than the competing resource (VDR Write PATH0 BUSY), the M0 priority check circuit 13 confirms the arbitration of the instruction X3 that does not have the M0 instruction issue stage priority flag 7. An issue instruction 15 is output and an instruction is issued.

18クロック目において、命令X4が発行された後、BUSYフラグ9(VDR Write PATH0 BUSY)が再セットされる。このBUSYフラグ9は、後続の命令が使用できないように管理し、後続命令の発行を抑止する。   At the 18th clock, after the instruction X4 is issued, the BUSY flag 9 (VDR Write PATH0 BUSY) is reset. The BUSY flag 9 is managed so that subsequent instructions cannot be used, and issuance of subsequent instructions is suppressed.

19クロック目において、BUSYフラグ9(V0 Write BUSY)がリセットされるが、BUSYフラグ9(VDR Write PATH0 BUSY)が点灯しているため、命令X3は発行できない。   At the 19th clock, the BUSY flag 9 (V0 Write BUSY) is reset, but the instruction X3 cannot be issued because the BUSY flag 9 (VDR Write PATH0 BUSY) is lit.

20から21クロック目において、残りの命令X3は、BUSYフラグ9(VDR Write PATH0 BUSY)がリセットされるまで発行を待つ。   In the 20th to 21st clocks, the remaining instruction X3 waits for issuance until the BUSY flag 9 (VDR Write PATH0 BUSY) is reset.

22クロック目において、命令X4の処理が終わったため、信号線L1を管理するBUSYフラグ9の(VDR Write PATH0 BUSY)がリセットされる。   Since the processing of the instruction X4 is completed at the 22nd clock, (VDR Write PATH0 BUSY) of the BUSY flag 9 that manages the signal line L1 is reset.

23クロック目において、M0命令発行チェック回路11は、最終に残った命令X3に対して、BUSYフラグ9(V0 Write BUSY、VDR Write PATH0 BUSY)が点灯していないことと、M0命令発行ステージ順序フラグ17が点灯していないことを確認し、命令X3は、発行可能となる。M0優先チェック回路13は、M0命令発行ステージ優先フラグに対応した発行ステージの命令が発行可能であるか確認後、発行指示15を点灯し、命令X3は、命令発行となる。   At the 23rd clock, the M0 instruction issuance check circuit 11 confirms that the BUSY flag 9 (V0 Write BUSY, VDR Write PATH0 BUSY) is not lit and the M0 instruction issuance stage order flag for the last remaining instruction X3. After confirming that 17 is not lit, the instruction X3 can be issued. The M0 priority check circuit 13 turns on the issue instruction 15 after confirming whether the issue stage instruction corresponding to the M0 instruction issue stage priority flag can be issued, and the instruction X3 is issued.

24クロック目において、命令X3は命令発行されたことで、BUSYフラグ9(VDR Write PATH0 BUSY)が再セットされる。このBUSYフラグ9は、後続の命令が使用できないように管理し、後続命令の発行を抑止する。また、M1命令発行ステージ優先フラグ7’(優先フラグM1−>M0)は、M0命令発行ステージ8の命令X3が発行されたことでリセットされ、後はBUSYフラグ9(VDR Write PATH0 BUSY)での管理に変わる。   At the 24th clock, when the instruction X3 is issued, the BUSY flag 9 (VDR Write PATH0 BUSY) is reset. The BUSY flag 9 is managed so that subsequent instructions cannot be used, and issuance of subsequent instructions is suppressed. The M1 instruction issuance stage priority flag 7 '(priority flag M1-> M0) is reset when the instruction X3 of the M0 instruction issuance stage 8 is issued, and then the BUSY flag 9 (VDR Write PATH0 BUSY) is set. Change to management.

28クロック目において、命令X3の処理が終わったため、信号線L1を管理するBUSYフラグ9の(VDR Write PATH0 BUSY)がリセットされる。   Since the processing of the instruction X3 is completed at the 28th clock, the (VDR Write PATH0 BUSY) of the BUSY flag 9 that manages the signal line L1 is reset.

ここで、図3に示されるように、従来動作では第1命令デコードステージ101、命令デコーダ102、第2命令デコードステージ103までの動作は変わらないが、リソース一致検出回路104は先行命令を格納している命令発行ステージ105、106の命令と第2命令デコードステージ103に格納している後続命令間のリソース一致を検出し、一致を検出すると第2命令デコードステージ103の命令は命令発行ステージ105、106の命令が命令発行するまでセットすることができない。よって今回の命令列では命令発行ステージ105、106に命令X1〜X4が並ぶことがなく、先行命令を命令発行してリソース一致検出回路104でリソースの一致が検出された命令発行ステージが空けば後続命令をセットできる。命令は命令受け取り順に発行し、競合の信号線L1(VDR Write PATH0)以外のリソース要因により命令発行が遅れた場合は信号線L1(VDR Write PATH0)を有効に使用できない。   Here, as shown in FIG. 3, the operations up to the first instruction decode stage 101, the instruction decoder 102, and the second instruction decode stage 103 do not change in the conventional operation, but the resource match detection circuit 104 stores the preceding instruction. The resource coincidence between the instruction at the instruction issue stage 105 and 106 and the subsequent instruction stored in the second instruction decode stage 103 is detected, and when a match is detected, the instruction at the second instruction decode stage 103 is It cannot be set until 106 instructions issue instructions. Therefore, in the current instruction sequence, the instructions X1 to X4 are not arranged in the instruction issue stages 105 and 106. If the instruction issue stage in which the resource match is detected by the resource match detection circuit 104 is issued after the preceding instruction is issued, the subsequent instruction is issued. An instruction can be set. Instructions are issued in the order in which the instructions are received. If the instruction issue is delayed due to a resource factor other than the competing signal line L1 (VDR Write PATH0), the signal line L1 (VDR Write PATH0) cannot be used effectively.

[効果]
以上の説明により、本発明のベクトル処理装置によれば、命令と先行命令とでリソースが競合した場合、競合関係をフラグ化することにより、多くの命令を命令発行ステージにエントリできる。また、命令と先行命令とで調停を行い、優先順序が高く発行可能な命令から発行することにより、リソースを効率良く使用することができる。
[effect]
As described above, according to the vector processing device of the present invention, when resources compete between an instruction and a preceding instruction, many instructions can be entered in the instruction issue stage by flagging the competition relationship. Further, resources can be efficiently used by performing arbitration between an instruction and a preceding instruction and issuing from an instruction that can be issued with a high priority order.

図1は、従来のベクトル処理装置の構成を示している。FIG. 1 shows the configuration of a conventional vector processing apparatus. 図2は、本発明の実施形態によるベクトル処理装置の構成を示している。FIG. 2 shows the configuration of the vector processing apparatus according to the embodiment of the present invention. 図3は、従来のベクトル処理装置、及び、本発明の実施形態によるベクトル処理装置の動作を示すタイミングチャートである。FIG. 3 is a timing chart showing the operation of the conventional vector processing apparatus and the vector processing apparatus according to the embodiment of the present invention. 図4は、ベクトル演算処理装置の概略図である。FIG. 4 is a schematic diagram of the vector calculation processing device.

符号の説明Explanation of symbols

1 第1命令デコードステージ、
2 命令デコーダ、
3 第2命令デコードステージ、
4 リソース一致検出回路、
5 A0命令発行ステージ優先フラグ、
6 A0命令発行ステージ、
7 M0命令発行ステージ優先フラグ、
8 M0命令発行ステージ、
9 BUSYフラグ、
10 A0命令発行チェック回路、
11 M0命令発行チェック回路、
12 A0優先チェック回路、
13 M0優先チェック回路、
14 発行指示、
15 発行指示、
16 A0命令発行ステージ順序フラグ、
17 M0命令発行ステージ順序フラグ、
21〜28 ベクトルデータレジスタ(VDR)、
29〜36 ベクトルレジスタ(VAR)、
37 ベクトル演算器(ADD0)、
38 ベクトル演算器(MLT0)、
39 ベクトル演算器(MLT1)、
40 ベクトル演算器(ADD1)、
41 X−BARスイッチ、
101 第1命令デコードステージ、
102 命令デコーダ、
103 第2命令デコードステージ、
104 リソース一致検出回路
105 命令発行ステージ(0系)、
106 命令発行ステージ(1系)、
107 BUSYフラグ、
108 発行チェック回路、
109 発行指示、
110 選択指示、
111 選択部、
1 first instruction decode stage,
2 instruction decoder,
3 Second instruction decode stage,
4 resource match detection circuit,
5 A0 instruction issue stage priority flag,
6 A0 instruction issue stage,
7 M0 instruction issue stage priority flag,
8 M0 instruction issue stage,
9 BUSY flag,
10 A0 instruction issue check circuit,
11 M0 instruction issue check circuit,
12 A0 priority check circuit,
13 M0 priority check circuit,
14 Issuing instructions,
15 Issuing instructions,
16 A0 instruction issue stage order flag,
17 M0 instruction issue stage order flag,
21-28 vector data register (VDR),
29-36 vector register (VAR),
37 Vector calculator (ADD0),
38 vector calculator (MLT0),
39 Vector calculator (MLT1),
40 vector computing unit (ADD1),
41 X-BAR switch,
101 first instruction decode stage;
102 instruction decoder,
103 second instruction decode stage;
104 resource match detection circuit 105 instruction issue stage (system 0),
106 Instruction issue stage (system 1),
107 BUSY flag,
108 Issue check circuit,
109 Issuing instructions,
110 selection instructions,
111 selector,

Claims (7)

命令がセットされる命令デコードステージと、
複数の命令発行ステージと、
それぞれ前記複数の命令発行ステージに対応する複数のチェック回路と、
前記命令デコードステージにセットされた命令と前記複数の命令発行ステージにセットされている命令間でリソースの一致があるか否かを検出するリソース一致検出回路と、
を具備し、
前記リソース一致検出回路は、
前記命令デコードステージにセットされた命令を、前記複数の命令発行ステージのうちの、空いている自命令発行ステージにセットするときに、
前記複数の命令発行ステージにセットされた命令のうち、前記自命令発行ステージにセットされる命令と使用する前記リソースが一致し、かつ、実行順序が変更できない命令に対応するフラグを、前記自命令発行ステージの順序フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にセットし、
前記複数の命令発行ステージにセットされた命令のうち、前記自命令発行ステージにセットされる命令と使用する前記リソースが一致し、かつ、実行順序が変更できる命令に対応するフラグを、前記自命令発行ステージの優先度フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にセットし、
前記複数のチェック回路は、前記自命令発行ステージの順序フラグ、前記自命令発行ステージの優先フラグに従って調停を行い、前記調停の結果に基づいて、前記自命令発行ステージにセットされた命令を発行する、
ベクトル処理装置。
An instruction decode stage where the instruction is set;
Multiple instruction issue stages;
A plurality of check circuits each corresponding to the plurality of instruction issue stages;
A resource match detection circuit that detects whether there is a resource match between the instruction set in the instruction decode stage and the instructions set in the plurality of instruction issue stages;
Comprising
The resource match detection circuit includes:
When the instruction set in the instruction decode stage is set in a free own instruction issue stage of the plurality of instruction issue stages,
Among the instructions set in the plurality of instruction issue stages, a flag corresponding to an instruction that matches the instruction used in the instruction issue stage and the resource to be used and whose execution order cannot be changed, Set in the flag storage area for each instruction issue stage included in the issue flag of the issue stage,
Among the instructions set in the plurality of instruction issue stages, a flag corresponding to an instruction that matches the instruction used in the instruction issue stage and the resource to be used and whose execution order can be changed, Set in the flag storage area for each instruction issue stage included in the priority flag of the issue stage,
The plurality of check circuits perform arbitration according to the order flag of the own instruction issue stage and the priority flag of the own instruction issue stage, and issue an instruction set in the own instruction issue stage based on the result of the arbitration ,
Vector processing device.
前記複数のチェック回路は、
前記自命令発行ステージにセットされた命令が使用するリソースが空いているかをBUSYフラグでチェックし、先行命令に順序を保障しなければならない命令があるか否かを前記自命令発行ステージの順序フラグでチェックする命令発行チェック回路と、
前記命令発行チェック回路によるチェックの結果、前記BUSYフラグがセットされていなく、前記自命令発行ステージの順序フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にフラグがセットされていない場合、前記自命令発行ステージの優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にフラグがセットされているか否かをチェックする優先チェック回路と、
を備え、
前記優先チェック回路は、
前記自命令発行ステージの前記優先フラグにフラグがセットされていない場合、
前記自命令発行ステージの命令を発行し、
前記自命令発行ステージにセットされた命令が使用するリソースの前記BUSYフラグをセットし、
前記自命令発行ステージをリセットし、
前記複数の命令発行ステージの優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域のうちの、前記自命令発行ステージのフラグをリセットし、
前記複数の命令発行ステージの順序フラグに含まれる前記命令発行ステージ毎のフラグ格納領域のうちの、前記自命令発行ステージのフラグをリセットし、
前記自命令発行ステージの命令処理が終了したときに、前記自命令発行ステージにセットされた命令が使用するリソースの前記BUSYフラグをリセットする、
請求項1に記載のベクトル処理装置。
The plurality of check circuits include:
The BUSY flag is used to check whether resources used by the instruction set in the self instruction issue stage are free, and whether there is an instruction whose order must be guaranteed in the predecessor instruction issue stage. Instruction issue check circuit to check with
As a result of the check by the instruction issue check circuit, if the BUSY flag is not set and the flag storage area for each instruction issue stage included in the order flag of the own instruction issue stage is not set, A priority check circuit that checks whether or not a flag is set in a flag storage area for each instruction issue stage included in the priority flag of the instruction issue stage;
With
The priority check circuit includes:
If the flag is not set in the priority flag of the self instruction issue stage,
Issuing an instruction of the self-command issuing stage;
Set the BUSY flag of the resource used by the instruction set in the self-issued instruction issue stage;
Reset the self-issued issue stage,
Of the flag storage area for each instruction issue stage included in the priority flags of the plurality of instruction issue stages, reset the flag of the own instruction issue stage,
Of the flag storage area for each instruction issue stage included in the order flag of the plurality of instruction issue stages, reset the flag of the own instruction issue stage,
When the instruction processing of the self-instruction issue stage has ended, it resets the BUSY flag of resources the set in the self-instruction issue stage instruction uses,
The vector processing apparatus according to claim 1.
前記優先チェック回路は、
前記自命令発行ステージの前記優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域のフラグに対応する命令発行ステージの命令が発行可能であるか否かをチェックし、
前記優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域のフラグに対応する命令発行ステージの命令が発行可能ではない場合、
前記自命令発行ステージの命令を発行し、
前記自命令発行ステージにセットされた命令が使用するリソースの前記BUSYフラグをセットし、
前記自命令発行ステージをリセットし、
前記自命令発行ステージの命令処理が終了したときに、前記自命令発行ステージにセットされた命令が使用するリソースの前記BUSYフラグをリセットする、
請求項2に記載のベクトル処理装置。
The priority check circuit includes:
Check whether it is possible to issue an instruction in the instruction issue stage corresponding to the flag in the flag storage area for each instruction issue stage included in the priority flag of the own instruction issue stage,
If the instruction in the instruction issue stage corresponding to the flag in the flag storage area for each instruction issue stage included in the priority flag is not issueable,
Issuing an instruction of the self-command issuing stage;
It sets the BUSY flag of resources the set in the self-instruction issue stage instruction uses,
Reset the self-issued issue stage,
When the instruction processing of the self-instruction issue stage has ended, it resets the BUSY flag of resources the set in the self-instruction issue stage instruction uses,
The vector processing apparatus according to claim 2.
前記命令がセットされる第1命令デコードステージと、
前記第1命令デコードステージにセットされた前記命令をデコードする命令デコーダと、
前記命令デコードステージであり、前記命令デコーダによりデコードされた前記命令がセットされる第2命令デコードステージと、
を更に具備する請求項1〜3のいずれかに記載のベクトル処理装置。
A first instruction decode stage in which the instruction is set;
An instruction decoder for decoding the instruction set in the first instruction decoding stage;
A second instruction decode stage, wherein the instruction decode stage is set with the instruction decoded by the instruction decoder;
The vector processing apparatus according to claim 1, further comprising:
命令デコードステージと複数の命令発行ステージとを具備するコンピュータを用いる方法であって、
命令を前記命令デコードステージにセットするステップと、
前記命令デコードステージにセットされた命令と前記複数の命令発行ステージにセットされている命令間でリソースの一致があるか否かを検出するステップと、
前記命令デコードステージにセットされた命令を、前記複数の命令発行ステージのうちの、空いている自命令発行ステージにセットするときに、
前記複数の命令発行ステージにセットされた命令のうち、前記自命令発行ステージにセットされる命令と使用する前記リソースが一致し、かつ、実行順序が変更できない命令に対応するフラグを、前記自命令発行ステージの順序フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にセットするステップと、
前記複数の命令発行ステージにセットされた命令のうち、前記自命令発行ステージにセットされる命令と使用する前記リソースが一致し、かつ、実行順序が変更できる命令に対応するフラグを、前記自命令発行ステージの優先度フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にセットするステップと、
前記自命令発行ステージの順序フラグ、前記自命令発行ステージの優先フラグに従って調停を行い、前記調停の結果に基づいて、前記自命令発行ステージにセットされた命令を発行するステップと、
を具備するベクトル処理方法。
A method using a computer having an instruction decode stage and a plurality of instruction issue stages,
Setting an instruction to the instruction decode stage;
Detecting whether there is a resource match between the instruction set in the instruction decode stage and the instructions set in the plurality of instruction issue stages;
When the instruction set in the instruction decode stage is set in a free own instruction issue stage of the plurality of instruction issue stages,
Among the instructions set in the plurality of instruction issue stages, a flag corresponding to an instruction that matches the instruction used in the instruction issue stage and the resource to be used and whose execution order cannot be changed, Setting in the flag storage area for each instruction issue stage included in the issue flag of the issue stage;
Among the instructions set in the plurality of instruction issue stages, a flag corresponding to an instruction that matches the instruction used in the instruction issue stage and the resource to be used and whose execution order can be changed, Setting a flag storage area for each instruction issue stage included in the priority flag of the issue stage;
Performing arbitration according to the order flag of the self-command issue stage, the priority flag of the self-command issue stage, and issuing an instruction set in the self-command issue stage based on the result of the arbitration;
A vector processing method comprising:
前記命令を発行するステップは、
前記自命令発行ステージにセットされた命令が使用するリソースが空いているかをBUSYフラグでチェックし、先行命令に順序を保障しなければならない命令があるか否かを前記自命令発行ステージの順序フラグでチェックするステップと、
前記チェックするステップによるチェックの結果、前記BUSYフラグがセットされていなく、前記自命令発行ステージの順序フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にフラグがセットされていない場合、前記自命令発行ステージの優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にフラグがセットされているか否かをチェックするステップと、
を備え、
前記自命令発行ステージの優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にフラグがセットされているか否かをチェックするステップは、
前記自命令発行ステージの前記優先フラグにフラグがセットされていない場合、
前記自命令発行ステージの命令を発行するステップと、
前記自命令発行ステージにセットされた命令が使用するリソースの前記BUSYフラグをセットするステップと、
前記自命令発行ステージをリセットするステップと、
前記複数の命令発行ステージの優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域のうちの、前記自命令発行ステージのフラグをリセットするステップと、
前記複数の命令発行ステージの順序フラグに含まれる前記命令発行ステージ毎のフラグ格納領域のうちの、前記自命令発行ステージのフラグをリセットするステップと、
前記自命令発行ステージの命令処理が終了したときに、前記自命令発行ステージにセットされた命令が使用するリソースの前記BUSYフラグをリセットするステップと、
を備える請求項5に記載のベクトル処理方法。
Issuing the instructions comprises:
The BUSY flag is used to check whether resources used by the instruction set in the self instruction issue stage are free, and whether there is an instruction whose order must be guaranteed in the predecessor instruction issue stage. Step to check in,
As a result of checking by the checking step, when the BUSY flag is not set and the flag is not set in the flag storage area for each instruction issue stage included in the order flag of the own instruction issue stage, the self instruction Checking whether a flag is set in a flag storage area for each instruction issue stage included in the priority flag of the issue stage;
With
The step of checking whether or not a flag is set in the flag storage area for each instruction issue stage included in the priority flag of the own instruction issue stage,
If the flag is not set in the priority flag of the self instruction issue stage,
Issuing a command of the self-command issuing stage;
Setting the BUSY flag of the resource used by the instruction set in the self-command issue stage;
Resetting the instruction issuing stage;
Resetting the flag of the own instruction issue stage in the flag storage area for each instruction issue stage included in the priority flags of the plurality of instruction issue stages;
Resetting the flag of its own instruction issue stage in the flag storage area for each instruction issue stage included in the order flag of the plurality of instruction issue stages;
When the instruction processing of the self-instruction issue stage has been completed, and resetting the BUSY flag of resources the set in the self-instruction issue stage instruction uses,
The vector processing method according to claim 5.
前記自命令発行ステージの優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にフラグがセットされているか否かをチェックするステップは、
前記自命令発行ステージの前記優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域のフラグに対応する命令発行ステージの命令が発行可能であるか否かをチェックするステップと、
前記優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域のフラグに対応する命令発行ステージの命令が発行可能ではない場合、
前記自命令発行ステージの命令を発行するステップと、
前記自命令発行ステージにセットされた命令が使用するリソースの前記BUSYフラグをセットするステップと、
前記自命令発行ステージをリセットするステップと、
前記自命令発行ステージの命令処理が終了したときに、前記自命令発行ステージにセットされた命令が使用するリソースの前記BUSYフラグをリセットするステップと、
を更に備える請求項6に記載のベクトル処理方法。
The step of checking whether or not a flag is set in the flag storage area for each instruction issue stage included in the priority flag of the own instruction issue stage,
Checking whether an instruction of an instruction issue stage corresponding to a flag in a flag storage area for each instruction issue stage included in the priority flag of the instruction issue stage can be issued;
If the instruction in the instruction issue stage corresponding to the flag in the flag storage area for each instruction issue stage included in the priority flag is not issueable,
Issuing a command of the self-command issuing stage;
A step of setting the BUSY flag resources that the use self instruction issue is set in stage instruction,
Resetting the instruction issuing stage;
When the instruction processing of the self-instruction issue stage has been completed, and resetting the BUSY flag of resources the set in the self-instruction issue stage instruction uses,
The vector processing method according to claim 6, further comprising:
JP2008033787A 2008-02-14 2008-02-14 Vector processing equipment Expired - Fee Related JP4985452B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008033787A JP4985452B2 (en) 2008-02-14 2008-02-14 Vector processing equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008033787A JP4985452B2 (en) 2008-02-14 2008-02-14 Vector processing equipment

Publications (2)

Publication Number Publication Date
JP2009193378A JP2009193378A (en) 2009-08-27
JP4985452B2 true JP4985452B2 (en) 2012-07-25

Family

ID=41075325

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008033787A Expired - Fee Related JP4985452B2 (en) 2008-02-14 2008-02-14 Vector processing equipment

Country Status (1)

Country Link
JP (1) JP4985452B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5871298B2 (en) * 2009-09-10 2016-03-01 Necプラットフォームズ株式会社 Information processing apparatus, information processing method, and information processing program
JP5834997B2 (en) 2012-02-23 2015-12-24 株式会社ソシオネクスト Vector processor, vector processor processing method
JP6105307B2 (en) * 2013-02-07 2017-03-29 Necプラットフォームズ株式会社 Instruction execution control device, instruction execution control system, instruction execution control method, and instruction execution control program
JP6926681B2 (en) 2017-05-31 2021-08-25 富士通株式会社 Arithmetic processing unit and control method of arithmetic processing unit
JP7115203B2 (en) 2018-10-10 2022-08-09 富士通株式会社 Arithmetic processing device and method of controlling arithmetic processing device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61180370A (en) * 1986-01-10 1986-08-13 Hitachi Ltd Data processor
JPH03263265A (en) * 1990-03-14 1991-11-22 Koufu Nippon Denki Kk Vector processor
JP3473506B2 (en) * 1999-07-05 2003-12-08 日本電気株式会社 Pipeline processing equipment
US6643767B1 (en) * 2000-01-27 2003-11-04 Kabushiki Kaisha Toshiba Instruction scheduling system of a processor
JP5007860B2 (en) * 2007-04-17 2012-08-22 エヌイーシーコンピュータテクノ株式会社 Vector processing equipment

Also Published As

Publication number Publication date
JP2009193378A (en) 2009-08-27

Similar Documents

Publication Publication Date Title
JP3547482B2 (en) Information processing equipment
JP5850774B2 (en) Semiconductor integrated circuit device and system using the same
JP4996654B2 (en) Processor
WO1994016385A1 (en) System and method for assigning tags to instructions to control instruction execution
JP2011118743A (en) Vector computer and instruction control method therefor
JP3242508B2 (en) Microcomputer
US20130036426A1 (en) Information processing device and task switching method
JP4985452B2 (en) Vector processing equipment
JP2006185348A (en) Multiprocessor system and method for operating lock flag
EP2159691B1 (en) Simultaneous multithreaded instruction completion controller
JP5316407B2 (en) Arithmetic processing device and control method of arithmetic processing device
JP2007109057A (en) Processor
JP7225745B2 (en) Arithmetic processing device and method of controlling arithmetic processing device
JP5382113B2 (en) Storage control device and control method thereof
JPH0916409A (en) Microcomputer
JPH0461390B2 (en)
JP7032647B2 (en) Arithmetic processing unit and control method of arithmetic processing unit
JP5007860B2 (en) Vector processing equipment
US20150052307A1 (en) Processor and control method of processor
WO2018138975A1 (en) Computation processing device and information processing system
JP6344022B2 (en) Arithmetic processing device and control method of arithmetic processing device
US7124288B2 (en) Programmable unit with a stack buffer storage device configurable into discrete shadow storage elements accessible by a plurality of command execution units
US11720498B2 (en) Arithmetic processing device and arithmetic processing method
JP6340887B2 (en) Arithmetic processing device and control method of arithmetic processing device
JP2006195705A (en) Processor

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120316

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120416

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4985452

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees