JP4985452B2 - Vector processing equipment - Google Patents
Vector processing equipment Download PDFInfo
- 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
Links
- 238000001514 detection method Methods 0.000 claims description 23
- 238000003672 processing method Methods 0.000 claims description 6
- 238000000034 method Methods 0.000 claims description 2
- 230000002860 competitive effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 102100034033 Alpha-adducin Human genes 0.000 description 2
- 101000799076 Homo sapiens Alpha-adducin Proteins 0.000 description 2
- 101001033699 Homo sapiens Insulinoma-associated protein 2 Proteins 0.000 description 2
- 102100039093 Insulinoma-associated protein 2 Human genes 0.000 description 2
- 101000629598 Rattus norvegicus Sterol regulatory element-binding protein 1 Proteins 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- 208000029589 multifocal lymphangioendotheliomatosis-thrombocytopenia syndrome Diseases 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
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
第1命令デコードステージ101に命令がセットされ、第1命令デコードステージ101は、この命令を命令デコーダ102に出力する。命令デコーダ102は、この命令をデコードして第2命令デコードステージ103にセットする。
An instruction is set in the first
発行チェック回路108は、BUSYフラグ107により後続命令の発行を管理する。発行チェック回路108は、命令発行ステージ105、106のうちの一方の命令発行ステージに対する発行指示109を出力し、BUSYフラグ107をセットする。このとき、発行チェック回路108は、上記一方の命令発行ステージを表す選択指示110を出力し、選択部111は、選択指示110に応じて、上記一方の命令発行ステージにセットされた命令を命令実行部に出力する。即ち、命令が発行される。命令実行部は、発行された命令を実行する。
The
リソース一致検出回路104は、命令発行ステージ105、106のいずれかが空いている場合で、且つ、命令発行ステージ105、106のいずれかとリソースの一致を検出しない場合、第2命令デコードステージ103にセットされた命令を、次クロックで命令発行ステージ105、106のいずれかにセットする。
The resource
従来のベクトル処理装置では、命令が命令発行ステージ105、106に並んだ場合、順序保障していないので、以下のような不具合が生じる。例えば、先行命令が何らかの要因(リソースBUSY)で発行できずに待たされている状態を想定する。このとき、従来のベクトル処理装置では、リソース一致検出回路104によってリソースの一致が検出された後続命令は、先行命令を追い越して発行される可能性があるため、命令発行ステージへのセットを抑止する。このような場合、その後に続く後続命令の全てが、上記セットを抑止された後続命令によって止まってしまい、性能が低下してしまう。上記後に続く後続命令の中には先行命令とリソースが一致しない命令が存在する場合がある。この場合、できるだけ命令発行ステージに落とさなければならない。
In the conventional vector processing apparatus, when instructions are arranged in the
コンピュータに関する技術について紹介する。 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.
本発明の課題は、命令と先行命令とでリソースが競合しても、そのリソースを効率良く使用することができるベクトル処理装置を提供することにある。 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
複数の命令発行ステージは、A0命令発行ステージ6、A1命令発行ステージ6’(図示しない)、…、M0命令発行ステージ8、M1命令発行ステージ8’(図示しない)、…を表している。
The plurality of instruction issue stages represent an A0
複数の命令発行チェック回路は、A0命令発行チェック回路10、A1命令発行チェック回路10’(図示しない)、…、M0命令発行チェック回路11、M1命令発行チェック回路11’(図示しない)、…を表している。
The plurality of instruction issue check circuits include an A0 instruction
複数の優先チェック回路は、A0優先チェック回路12、A1優先チェック回路12’(図示しない)、…、M0優先チェック回路13、M1優先チェック回路13’(図示しない)、…を表している。
The plurality of priority check circuits represent an A0
複数の命令発行ステージに対するフラグは、優先フラグとして、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
ここで、上述の順序フラグ16、16’、17、17’、優先フラグ5、5、7、7’について説明する。
Here, the order flags 16, 16 ', 17, 17' and
順序フラグ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
以下説明を容易にするために、優先フラグと発行ステージの組み合わせとして、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
第1命令デコードステージ1には、命令がセットされる。命令デコーダ2は、第1命令デコードステージ1にセットされた命令に対して、命令が使用されるリソースのリクエストにデコードし、第2命令デコードステージ3にセットする。リソース一致検出回路4は、第2命令デコードステージ3にセットされた命令と複数の命令発行ステージにセットしている命令間でリソースの一致があるか否かを検出する。この場合、第2命令デコードステージ3にセットされた命令(リクエスト)と命令発行ステージ6、8の先行命令(リクエスト)間でリソースの一致があるか否かを検出する。
An instruction is set in the first
リソース一致検出回路4は、第2命令デコードステージ3にセットされた命令を、命令発行ステージ6、8のうちの、空いている自命令発行ステージ(命令発行ステージ6又は命令発行ステージ8)にセットするときに、上記検出の結果に基づいて、順序、優先フラグを同時にセットする。このとき、リソース一致検出回路4は、第2命令デコードステージ3の命令と命令発行ステージ6、8の命令間において、上記検出の結果として、リソースを競合して順序を守らなければならない場合は、自命令発行ステージ以外の命令発行ステージに対応する順序フラグをそれぞれセットする。一方、上記検出の結果として、リソースを競合しても追い越し可能な場合は、自命令発行ステージ以外の命令発行ステージに対応する優先フラグをそれぞれセットする。
The resource
よって、順序、優先フラグが多いほど後続の命令となる。一度セットされた順序、優先フラグは新しい命令がセットされない限り再セットされない。順序、優先フラグに対応した命令が実行された時点でリセットされる。よって、順序フラグが全てリセットされないと自命令は実行できない。優先フラグを保持している命令発行ステージの命令は、優先フラグに対応する命令発行ステージの先行命令が他の要因で実行できない場合、先行命令を追い越しての実行を可能にする。 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
チェック回路(A0命令発行チェック回路10、A0優先チェック回路12)は、順序フラグ、優先フラグに従って調停を行い、調停の結果に基づいて、命令発行ステージ6にセットされた命令を発行する。これについて説明する。
The check circuits (A0 instruction
まず、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
一方、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
このように、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
同様に、チェック回路(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
まず、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
一方、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
このように、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
これにより、本発明のベクトル処理装置によれば、命令と先行命令とでリソースが競合した場合、競合関係をフラグ化することにより、多くの命令を命令発行ステージにエントリできる。また、命令と先行命令とで調停を行い、優先順序が高く発行可能な命令から発行することにより、リソースを効率良く使用することができる。 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
1クロック目において、INから上記の命令順で第1命令デコードステージ1に命令X1をセットする。
At the first clock, the instruction X1 is set in the first
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
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
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
第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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
ここで、図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
[効果]
以上の説明により、本発明のベクトル処理装置によれば、命令と先行命令とでリソースが競合した場合、競合関係をフラグ化することにより、多くの命令を命令発行ステージにエントリできる。また、命令と先行命令とで調停を行い、優先順序が高く発行可能な命令から発行することにより、リソースを効率良く使用することができる。
[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 第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
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命令デコードステージにセットされた前記命令をデコードする命令デコーダと、
前記命令デコードステージであり、前記命令デコーダによりデコードされた前記命令がセットされる第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:
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)
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)
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 |
-
2008
- 2008-02-14 JP JP2008033787A patent/JP4985452B2/en not_active Expired - Fee Related
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 |