Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7183657B2 - processor, information processing method, program - Google Patents
[go: Go Back, main page]

JP7183657B2 - processor, information processing method, program - Google Patents

processor, information processing method, program Download PDF

Info

Publication number
JP7183657B2
JP7183657B2 JP2018177632A JP2018177632A JP7183657B2 JP 7183657 B2 JP7183657 B2 JP 7183657B2 JP 2018177632 A JP2018177632 A JP 2018177632A JP 2018177632 A JP2018177632 A JP 2018177632A JP 7183657 B2 JP7183657 B2 JP 7183657B2
Authority
JP
Japan
Prior art keywords
instruction
vector
vector operation
processing unit
instructions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018177632A
Other languages
Japanese (ja)
Other versions
JP2020047221A (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 Corp
Original Assignee
NEC Corp
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 Corp filed Critical NEC Corp
Priority to JP2018177632A priority Critical patent/JP7183657B2/en
Publication of JP2020047221A publication Critical patent/JP2020047221A/en
Application granted granted Critical
Publication of JP7183657B2 publication Critical patent/JP7183657B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は、ベクトル命令を実行するプロセッサ、情報処理方法、プログラムに関する。 The present invention relates to a processor, an information processing method, and a program for executing vector instructions.

近年、半導体プロセスの微細化によりLSI(Large Scale Integration)に搭載できる論理回路は飛躍的に増加し、CPU(Central Processing Unit)の演算性能は向上している。この演算性能の向上は、コア数を増加させるマルチコア化による寄与が大きく、単一コア当たりの性能向上は鈍化しつつある。しかしながら、マルチコア化による性能向上を享受するために必要な並列化が困難なプログラムも多数存在するため、単一コアの性能向上は非常に重要である。 2. Description of the Related Art In recent years, due to the miniaturization of semiconductor processes, the number of logic circuits that can be mounted on LSIs (Large Scale Integration) has increased dramatically, and the arithmetic performance of CPUs (Central Processing Units) has improved. This improvement in arithmetic performance is greatly contributed by multi-core, which increases the number of cores, and the improvement in performance per single core is slowing down. However, since there are many programs that are difficult to parallelize in order to enjoy the performance improvement of multi-core, the performance improvement of a single core is very important.

単一コアの性能向上を行う手法として、1命令で複数のデータと複数の演算器を動作可能にするSIMD(Single Instruction Multiple Data)技術やベクトル技術が広く知られている。特に、ベクトル技術を利用するベクトルプロセッサでは、従来からベクトル長が長い場合は処理する要素数が多いため、各命令の発行・実行・終了の処理サイクルが長くなり、各処理時間に十分な余裕ができ、高い性能を出しやすい傾向があった。 SIMD (Single Instruction Multiple Data) technology and vector technology are widely known as techniques for improving the performance of a single core. In particular, in vector processors that use vector technology, conventionally, when the vector length is long, the number of elements to be processed is large, so the processing cycle for issuing, executing, and completing each instruction becomes long, leaving sufficient margin for each processing time. and tended to produce high performance.

特開2012-203544号公報JP 2012-203544 A

しかしながら、ベクトル長が短くなるほど処理する要素数が少なくなり、各命令の発行・実行・終了の処理サイクルが短くなるため、各処理時間に余裕が減り性能を出しにくくなるという課題がある。換言すると、ベクトル命令において1命令で処理する要素数であるベクトル長が短くなるほど、性能向上を図るためには、ベクトル命令の発行レートの向上が極めて重要となる。 However, the shorter the vector length, the smaller the number of elements to be processed, and the shorter the processing cycle for issuing, executing, and terminating each instruction. In other words, the shorter the vector length, which is the number of elements processed by one vector instruction, the more important it is to improve the vector instruction issue rate in order to improve performance.

例えば、図1に示したベクトル演算器の構成を考える。この構成では、1つのVPU(ベクトルプロセッシングユニット)あたりベクトル演算器ユニット32個からなる構成で、1つのベクトル演算器ユニットあたり同時に2命令処理が可能な構成の場合に、持続的なピーク性能を得るための命令発行レートを計算すると、以下のようになる。 For example, consider the configuration of the vector calculator shown in FIG. In this configuration, one VPU (Vector Processing Unit) consists of 32 vector arithmetic unit units, and in the case of a configuration in which two instructions can be processed simultaneously per vector arithmetic unit unit, sustained peak performance is obtained. Calculating the instruction issue rate for

ベクトル長が256の場合:1つのベクトル命令の処理時間=256/32=8クロックになる。また、同時に2命令処理が可能なため、8/2=4クロック毎にベクトル命令を1つ発行することが必須になる。
ベクトル長が128の場合:1つのベクトル命令の処理時間=128/32=4クロックになる。また、同時に2命令処理が可能なため、4/2=2クロック毎にベクトル命令を1つ発行することが必須になる。
ベクトル長が64の場合:1つのベクトル命令の処理時間=64/32=2クロックになる。また、同時に2命令処理が可能なため、2/2=1クロック毎にベクトル命令を1つ発行することが必須になる。
ベクトル長が32の場合:1つのベクトル命令の処理時間=32/32=1クロックになる。また、同時に2命令処理が可能なため、1/2=0.5クロック毎にベクトル命令を1つ発行することが必須になる。つまり、1クロックに2つのベクトル命令発行が必要になる。
If the vector length is 256: Processing time for one vector instruction=256/32=8 clocks. Also, since two instructions can be processed at the same time, it is essential to issue one vector instruction every 8/2=4 clocks.
If the vector length is 128: Processing time for one vector instruction=128/32=4 clocks. Also, since two instructions can be processed at the same time, it is essential to issue one vector instruction every 4/2=2 clocks.
When the vector length is 64: Processing time for one vector instruction=64/32=2 clocks. Also, since two instructions can be processed at the same time, it is essential to issue one vector instruction every 2/2=1 clock.
When the vector length is 32: Processing time for one vector instruction=32/32=1 clock. Also, since two instructions can be processed at the same time, it is essential to issue one vector instruction every 1/2=0.5 clocks. In other words, it is necessary to issue two vector instructions per clock.

上記の例のように、ベクトル長が短くなるほどベクトル命令の発行レートを向上させる必要があることが明らかである。 As in the above example, it is clear that the shorter the vector length, the more the vector instruction issue rate needs to be improved.

ここで、命令発行レートを向上させる技術としては、命令発行パイプラインの複数パイプライン化がある。ところが、各パイプラインに対して先行命令との依存関係を判定して命令発行する機能が必要になり、命令発行制御機能の大幅な複雑化が問題になる。例えば、1つの命令発行パイプライン(パイプ1)で構成される場合、パイプ1の先行命令を確認するのみで良いが、2つの命令発行パイプライン(パイプ1とパイプ2)から構成される場合、パイプ1に存在する命令はパイプ1の先行命令とパイプ2の先行命令を確認する必要があり、パイプ2に存在する命令はパイプ2の先行命令とパイプ1の先行命令を確認する必要がある。そのため、4倍の先行命令との依存関係を判定する必要があるため制御回路の複雑化が避けられない。 Here, as a technique for improving the instruction issue rate, there is a multi-pipelining of the instruction issue pipeline. However, each pipeline requires a function of judging the dependency with the preceding instruction and issuing the instruction, which poses a problem of significant complication of the instruction issuance control function. For example, if it is composed of one instruction issue pipeline (pipe 1), it is sufficient to check the preceding instruction of pipe 1, but if it is composed of two instruction issue pipelines (pipe 1 and pipe 2), An instruction in pipe 1 must see a predecessor in pipe 1 and a predecessor in pipe 2, and an instruction in pipe 2 must see a predecessor in pipe 2 and a predecessor in pipe 1. Therefore, it is necessary to determine the dependency with four times the preceding instruction, which inevitably complicates the control circuit.

その他の命令発行レートを向上させる技術としては、命令発行ユニットの周波数のみ上げる方法があるが、命令発行ユニットの消費電力上昇や高クロック化に伴い遅延設計の難易度が上がるため問題となる。 As another technique for improving the instruction issue rate, there is a method of increasing only the frequency of the instruction issue unit.

また、特許文献1に記載のように、スカラストア命令を対象として命令パケットを結合する技術も開示されている。しかしながら、かかる技術では、ベクトル演算命令に適用できず、依然として上述した問題が残る。 Further, as described in Japanese Patent Laid-Open No. 2002-200010, a technique for combining instruction packets for scalar store instructions is also disclosed. However, this technique cannot be applied to vector operation instructions, and the above-mentioned problem still remains.

このため、本発明の目的は、ベクトル命令の発行レートを向上させること、を実現することができるプロセッサ、情報処理方法、プログラムを提供することにある。 SUMMARY OF THE INVENTION Therefore, an object of the present invention is to provide a processor, an information processing method, and a program capable of improving the issue rate of vector instructions.

本発明の一形態であるプロセッサは、
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
という構成をとる。
One aspect of the present invention is a processor comprising:
A processor comprising a scalar processing unit that performs scalar operations and a vector processing unit that performs vector operations,
The scalar processing unit issues to the vector processing unit an integrated vector operation instruction in which two or more of the simultaneously decoded vector operation instructions are integrated as one instruction,
The vector processing unit restores the integrated vector operation instruction to two or more vector operation instructions before integration, and performs vector operations respectively according to the two or more vector operation instructions.
take the configuration.

また、本発明の一形態である情報処理方法は、
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサによる情報処理方法であって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
という構成をとる。
Further, an information processing method, which is one embodiment of the present invention, comprises:
An information processing method by a processor comprising a scalar processing unit that performs scalar operations and a vector processing unit that performs vector operations,
The scalar processing unit issues to the vector processing unit an integrated vector operation instruction in which two or more of the simultaneously decoded vector operation instructions are integrated as one instruction,
The vector processing unit restores the integrated vector operation instruction to two or more vector operation instructions before integration, and performs vector operations respectively according to the two or more vector operation instructions.
take the configuration.

また、本発明の一形態であるプログラムは、
プロセッサに、
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を実現させると共に、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
ことを実現させる、
という構成をとる。
Further, a program that is one embodiment of the present invention is
to the processor,
Realizing a scalar processing unit that performs scalar operations and a vector processing unit that performs vector operations,
The scalar processing unit issues to the vector processing unit an integrated vector operation instruction in which two or more of the simultaneously decoded vector operation instructions are integrated as one instruction,
The vector processing unit restores the integrated vector operation instruction to two or more vector operation instructions before integration, and performs vector operations respectively according to the two or more vector operation instructions.
make it happen
take the configuration.

本発明は、以上のように構成されることにより、ベクトル命令の発行レートを向上させることができる。 The present invention can improve the issue rate of vector instructions by being configured as described above.

本発明の背景技術を説明するための図である。It is a figure for demonstrating the background technology of this invention. 本発明の実施形態1におけるプロセッサの構成を示すブロック図である。3 is a block diagram showing the configuration of a processor according to Embodiment 1 of the present invention; FIG. 図2に開示したプロセッサによって処理される情報の一例を示す図である。3 illustrates an example of information processed by the processor disclosed in FIG. 2; FIG. 図2に開示したプロセッサによる処理の様子を説明するための図である。FIG. 3 is a diagram for explaining a state of processing by the processor disclosed in FIG. 2; FIG. 図2に開示したプロセッサによる処理の様子を説明するための図である。FIG. 3 is a diagram for explaining a state of processing by the processor disclosed in FIG. 2; FIG. 図2に開示したプロセッサによって処理される情報の一例を示す図である。3 illustrates an example of information processed by the processor disclosed in FIG. 2; FIG. 図2に開示したプロセッサによって処理される情報の一例を示す図である。3 illustrates an example of information processed by the processor disclosed in FIG. 2; FIG. 図2に開示したプロセッサによって処理される情報の一例を示す図である。3 illustrates an example of information processed by the processor disclosed in FIG. 2; FIG. 図2に開示したプロセッサによる処理の様子を説明するための図である。FIG. 3 is a diagram for explaining a state of processing by the processor disclosed in FIG. 2; FIG. 図2に開示したプロセッサによって処理される情報の一例を示す図である。3 illustrates an example of information processed by the processor disclosed in FIG. 2; FIG. 図2に開示したプロセッサによる処理の様子を説明するための図である。FIG. 3 is a diagram for explaining a state of processing by the processor disclosed in FIG. 2; FIG. 図2に開示したプロセッサによる処理の様子を説明するための図である。FIG. 3 is a diagram for explaining a state of processing by the processor disclosed in FIG. 2; FIG. 図2に開示したプロセッサによる処理の様子を示す図である。FIG. 3 is a diagram showing how the processor disclosed in FIG. 2 performs processing; FIG. 図2に開示したプロセッサによる処理の様子を示す図である。FIG. 3 is a diagram showing how the processor disclosed in FIG. 2 performs processing; FIG. 本発明の実施形態2におけるプロセッサの構成を示すブロック図である。FIG. 4 is a block diagram showing the configuration of a processor according to Embodiment 2 of the present invention;

<実施形態1>
本発明の第1の実施形態を、図2乃至図14を参照して説明する。図2は、プロセッサの構成を説明するための図であり、図3乃至図14は、プロセッサによる処理の様子を説明するための図である。
<Embodiment 1>
A first embodiment of the invention will be described with reference to FIGS. FIG. 2 is a diagram for explaining the configuration of the processor, and FIGS. 3 to 14 are diagrams for explaining the state of processing by the processor.

[構成]
図2に示すように、本発明におけるプロセッサは、スカラ演算を行うSPU(スカラプロセッシングユニット)100と、ベクトル演算をVPU(ベクトルプロセッシングユニット)200と、を備え、ベクトル演算命令を実行するものである。特に、本実施形態におけるプロセッサは、複数命令を同時にデコードする機能(4命令同時デコード構成とする)を有し、演算命令の演算例外時にプログラムのデバッグ用途として該当演算命令のインストラクションカウンタIC(演算例外IC)、つまり、当該演算命令の格納場所を表すアドレス情報、を出力する機能を有することとする。そして、本発明のプロセッサは、かかる機能に加えて、後述するよう複数のベクトル命令を1命令に圧縮し復元する機能を提供するものである。
[Constitution]
As shown in FIG. 2, the processor of the present invention includes an SPU (scalar processing unit) 100 for performing scalar operations and a VPU (vector processing unit) 200 for performing vector operations, and executes vector operation instructions. . In particular, the processor in this embodiment has a function of simultaneously decoding a plurality of instructions (it has a four-instruction simultaneous decoding configuration). IC), that is, the function of outputting address information representing the storage location of the operation instruction. In addition to this function, the processor of the present invention provides a function of compressing and decompressing a plurality of vector instructions into one instruction as will be described later.

また、本実施形態におけるプロセッサは、ベクトル命令を実行可能なプロセッサとして、後述する図3で示すような4オペランド形式の命令を実行する。例えば、Fused Multiply ADD(FMA)命令で、VFMA V0←V1+(V2*V3)のような命令を実行可能とする。さらに、VFMA V0←S1+(V2*V3)やVFMA V0←V1+(S1*V3)のようなV1、V2の代わりにS1などのスカラレジスタも指定できる命令を実行可能とする。他には、マスク演算用のマスクレジスタが指定可能とする。ただし、マスク演算に関しては、本発明で実行する命令の圧縮・復元の制御に対して影響を及ぼさないので説明を省略する。なお、ベクトル長は、ベクトル命令において1命令で処理する要素数を設定する値で、図示されていないベクトル長設定レジスタの値を使用する。本実施例では、ベクトル長=0~256の値をとるとする。また、ICは、56ビットアドレスとし、演算例外ICは、256バイト毎に基準のICを設けるとする。 Moreover, the processor in this embodiment executes a four-operand format instruction as shown in FIG. 3, which will be described later, as a processor capable of executing vector instructions. For example, a Fused Multiply ADD(FMA) instruction can execute an instruction such as VFMA V0←V1+(V2*V3). Further, instructions such as VFMA V0←S1+(V2*V3) and VFMA V0←V1+(S1*V3), which can designate scalar registers such as S1 instead of V1 and V2, can be executed. In addition, a mask register for mask operation can be specified. However, the mask operation does not affect the control of compression/decompression of instructions executed in the present invention, so the explanation is omitted. The vector length is a value for setting the number of elements processed by one vector instruction, and uses the value of a vector length setting register (not shown). In this embodiment, the vector length is assumed to be a value from 0 to 256. It is also assumed that the IC is a 56-bit address, and the operation exception IC is provided with a reference IC every 256 bytes.

以下、具体的に、図2を参照して、本実施形態におけるプロセッサの構成について説明する。上記SPU100は、命令キャッシュ101、命令デコーダ121、命令スケジューラ141、スカラレジスタ161、ベクトル命令発行制御部181、を有する。さらに、上記命令デコーダ121は、命令デコーダ制御部122、ベクトル演算命令判定部123、ベクトル演算例外ICレジスタ124、ベクトル演算命令圧縮制御部125、を有する。 Hereinafter, the configuration of the processor in this embodiment will be specifically described with reference to FIG. The SPU 100 has an instruction cache 101 , an instruction decoder 121 , an instruction scheduler 141 , a scalar register 161 and a vector instruction issue controller 181 . Further, the instruction decoder 121 has an instruction decoder control unit 122 , a vector operation instruction determination unit 123 , a vector operation exception IC register 124 and a vector operation instruction compression control unit 125 .

また、上記VPU200は、命令デコーダ201、命令スケジューラ221、ベクトルレジスタ241、ベクトル演算ユニット群261、を有する。そして、命令デコーダ201は、命令デコーダ制御部202、ベクトル演算例外ICレジスタ203、ベクトル演算命令復元制御部204、を有する。 The VPU 200 also has an instruction decoder 201 , an instruction scheduler 221 , a vector register 241 and a vector operation unit group 261 . The instruction decoder 201 has an instruction decoder control unit 202 , a vector operation exception IC register 203 and a vector operation instruction restoration control unit 204 .

また、上記SPU100とVPU200は、各構成要素を接続する信号線110、130、131、132、133、134、135、150、170、190、210、211、212、213、230、250を有する。 The SPU 100 and VPU 200 also have signal lines 110, 130, 131, 132, 133, 134, 135, 150, 170, 190, 210, 211, 212, 213, 230, and 250 that connect the components.

以下、上述したSPU100とVPU200の構成の概略を説明する。なお、各構成の詳細については、動作説明時にさらに詳しく説明する。 An outline of the configurations of the SPU 100 and VPU 200 described above will be described below. The details of each configuration will be explained in more detail when explaining the operation.

上記SPU100の命令デコーダ121は、図3に示したフォーマット(命令長は8バイト)のベクトル演算命令を処理する場合に、2つの条件を判定してベクトル演算命令の圧縮が可能かどうかを判定する。
条件1:図4に示した組み合わせで同時にデコード可能な命令においてベクトル演算命令が命令圧縮対象になるか。つまり、同時にデコード可能な命令のうち、相互に連続する命令であるか。
条件2:図5に示した基準命令の演算例外ICレジスタが有効であり、ベクトル演算命令の演算例外ICが一致しているか。つまり、ベクトル演算命令の演算例外ICのアドレスの一部である上位アドレスが一致するか。
When the instruction decoder 121 of the SPU 100 processes the vector operation instruction of the format (instruction length is 8 bytes) shown in FIG. 3, it determines whether or not the vector operation instruction can be compressed by judging two conditions. .
Condition 1: Whether vector operation instructions are subject to instruction compression among instructions that can be simultaneously decoded in the combinations shown in FIG. In other words, are the instructions consecutive to each other among the instructions that can be decoded at the same time?
Condition 2: Is the operation exception IC register of the reference instruction shown in FIG. 5 valid and does the operation exception IC of the vector operation instruction match? That is, does the upper address, which is part of the address of the operation exception IC of the vector operation instruction, match?

具体的に、SPU100の命令デコーダ121の構成についてさらに詳述する。命令デコーダ121は、ベクトル演算命令を検出した場合に、当該ベクトル演算命令のICと、基準命令の演算例外ICレジスタと、の比較を行う。このとき、図5に示すように、基準命令の演算例外ICが「有効bit=0」の場合は、有効なベクトル演算命令ICが登録されていない状態であるため、該当ベクトル演算命令のICを、基準命令の演算例外ICとして登録し、命令圧縮なし、と判定する。ここで、256バイト毎に基準のICを設ける場合は、ICの下位8ビットの省略が可能である。つまり、ベクトル演算命令の格納場所を表すアドレス情報の一部である上位アドレスのみを、基準命令の演算例外ICとして登録する。これにより、連続する32個分のベクトル演算命令の格納場所を表すアドレス情報が、基準命令の演算例外ICとして登録される。 Specifically, the configuration of the instruction decoder 121 of the SPU 100 will be further detailed. When detecting a vector operation instruction, the instruction decoder 121 compares the IC of the vector operation instruction with the operation exception IC register of the reference instruction. At this time, as shown in FIG. 5, if the operation exception IC of the reference instruction is "valid bit=0", the valid vector operation instruction IC is not registered. , is registered as an operation exception IC of the reference instruction, and it is determined that there is no instruction compression. Here, if a reference IC is provided every 256 bytes, the lower 8 bits of the IC can be omitted. That is, only the upper address, which is part of the address information indicating the storage location of the vector operation instruction, is registered as the operation exception IC of the reference instruction. As a result, the address information representing the storage location of 32 consecutive vector operation instructions is registered as the operation exception IC of the reference instruction.

また、命令デコーダ121は、図5に示すように基準命令の演算例外ICが「有効bit=1」の場合は、ベクトル演算例外ICレジスタ124に登録されている基準命令の演算例外ICと、ベクトル演算命令のICの上位アドレスと、を比較する。そして、これらが一致した場合は、命令圧縮あり、不一致の場合は、命令圧縮なし、と判定し、該当ベクトル演算命令のICを基準命令の演算例外ICとして新たに登録する。つまり、先行するベクトル演算命令のICの一部が基準命令の演算例外ICとして登録されているため、先行するベクトル演算命令のICの一部である上位アドレスと、後続のベクトル演算命令のICの一部である上位アドレスと、が一致する場合には、命令圧縮あり、と判定することとなる。 When the operation exception IC of the reference instruction is "effective bit=1" as shown in FIG. It compares the high-order address of the IC of the operation instruction. If they match, it is determined that there is instruction compression, and if they do not match, it is determined that there is no instruction compression, and the IC of the corresponding vector operation instruction is newly registered as the operation exception IC of the reference instruction. In other words, since part of the IC of the preceding vector operation instruction is registered as the operation exception IC of the reference instruction, the upper address, which is part of the IC of the preceding vector operation instruction, and the IC of the subsequent vector operation instruction If the upper address, which is a part, matches, it is determined that there is instruction compression.

命令デコーダ121は、上述したように、命令圧縮なし、と判定した場合は、図6に示すような通常のベクトル演算命令の形式で、SPU100の命令スケジューラ141のエントリに格納する。このとき、命令デコーダ121は、同時に、エントリに該当ベクトル演算命令のICを、演算例外ICとして付加して、エントリに格納する。 As described above, when the instruction decoder 121 determines that the instruction is not to be compressed, the instruction is stored in the entry of the instruction scheduler 141 of the SPU 100 in the form of a normal vector operation instruction as shown in FIG. At this time, the instruction decoder 121 simultaneously adds the IC of the corresponding vector operation instruction to the entry as an operation exception IC and stores it in the entry.

命令デコーダ121は、命令圧縮あり、と判定した場合は、対象となる2つのベクトル演算命令の圧縮を行い、当該2つのベクトル演算命令を、図7に示すような形式で1つの統合ベクトル演算命令として統合し、SPU100の命令スケジューラ141の1エントリに格納する。そして、命令デコーダ121は、命令の圧縮を行った場合は、図7に示すエントリの一部である「byte14」部分を、基準命令の演算例外ICからの相対IC、として利用する。具体的には、「byte14」部分を、図8に示すように、未使用ビット5-7(命令が8バイト固定長のアーキテクチャの場合に下3ビットは未使用になる)に「命令圧縮bit」を設け、かかるbitに「1」を設定する。 When the instruction decoder 121 determines that there is instruction compression, it compresses the target two vector operation instructions, and converts the two vector operation instructions into one unified vector operation instruction in the format shown in FIG. , and stored in one entry of the instruction scheduler 141 of the SPU 100 . When the instruction is compressed, the instruction decoder 121 uses the "byte14" part, which is part of the entry shown in FIG. 7, as the relative IC from the operation exception IC of the reference instruction. Specifically, as shown in FIG. 8, the "byte14" part is set to unused bits 5 to 7 (lower 3 bits are unused in the case of an architecture in which the instruction has a fixed length of 8 bytes) as "instruction compression bit ” is provided, and “1” is set to this bit.

SPU100の命令スケジューラ141は、1エントリ毎に命令の発行が可能か判定し、必要な資源の準備が整えば1エントリ毎に命令を発行する。なお、SPU100では、ベクトル命令はインオーダーで発行する。このとき、命令スケジューラ141は、ベクトル演算命令でない場合と、ベクトル演算命令かつ命令圧縮bit=0の場合は、1命令分の依存関係のあるスカラレジスタ161のデータが準備できたかどうかを確認する。ベクトル演算命令かつ命令圧縮bit=1の場合は、圧縮されて1つの命令に統合されている元となる2命令分の依存関係のあるスカラレジスタ161のデータが準備できたかどうかを確認する。そして、SPU100は、ベクトル演算命令で指定されているスカラレジスタ161からデータを読み出し、ベクトル命令発行制御部181へ送る。 The instruction scheduler 141 of the SPU 100 determines whether an instruction can be issued for each entry, and issues an instruction for each entry when the necessary resources are ready. Note that the SPU 100 issues vector instructions in-order. At this time, the instruction scheduler 141 confirms whether the dependent scalar register 161 data for one instruction has been prepared if the instruction is not a vector operation instruction or if the instruction is a vector operation instruction and the instruction compression bit=0. In the case of the vector operation instruction and the instruction compression bit=1, it is confirmed whether or not the dependent scalar register 161 data for the original two instructions that are compressed and integrated into one instruction have been prepared. The SPU 100 then reads data from the scalar register 161 specified by the vector operation instruction and sends it to the vector instruction issue control unit 181 .

上記ベクトル命令発行制御部181は、ベクトル演算命令でない場合は、1命令分の各種情報とスカラレジスタデータをVPU200へ発行する。命令圧縮bit=0の場合は、図6に示すような1命令分の各種情報と演算例外ICと1つのスカラレジスタデータを、VPU200へ発行する。命令圧縮bit=1の場合は、図8に示すような1つの命令に統合された2命令分の各種情報と演算例外ICの基準命令からの相対ICと2つのスカラレジスタデータをVPU200へ発行する。 The vector instruction issue control unit 181 issues various information and scalar register data for one instruction to the VPU 200 if the instruction is not a vector operation instruction. When the instruction compression bit=0, various information for one instruction, an operation exception IC, and one scalar register data as shown in FIG. 6 are issued to the VPU 200 . In the case of instruction compression bit=1, various information for two instructions integrated into one instruction as shown in FIG. .

上記VPU200の命令デコーダ201は、SPU100から命令を受け取ると、かかる命令に応じて以下のように作動する機能を有する。まず、ベクトル演算命令でない場合は、1命令分の各種情報をVPU200の命令スケジューラ221に格納する。 The instruction decoder 201 of the VPU 200 has the function of operating as follows in response to an instruction received from the SPU 100 . First, if the instruction is not a vector operation instruction, various information for one instruction is stored in the instruction scheduler 221 of the VPU 200 .

また、命令デコーダ201は、命令圧縮bit=0の場合は、1命令分の各種情報と演算例外ICを、VPU200の命令スケジューラ221の1エントリに格納する。同時に、かかる命令に含まれる図9に示した演算例外ICを、基準命令の演算例外ICレジスタに登録して保存する。このとき、1命令に含まれている演算例外ICの上位6バイトを、基準命令の演算例外ICとして登録する。 Also, when the instruction compression bit=0, the instruction decoder 201 stores various information for one instruction and the operation exception IC in one entry of the instruction scheduler 221 of the VPU 200 . At the same time, the operation exception IC shown in FIG. 9 included in this instruction is registered and saved in the operation exception IC register of the reference instruction. At this time, the upper 6 bytes of the operation exception IC included in one instruction are registered as the operation exception IC of the reference instruction.

また、命令デコーダ201は、命令圧縮bit=1の場合は、1つのベクトル演算命令である2命令分の各種情報と演算例外ICを、VPU200の命令スケジューラ221の2エントリに格納して、2つの命令に復元する。このとき、2エントリつまり2つの命令において、演算例外ICについては、図10に示すように、1命令目の演算例外ICの上位6バイトとしては、上述したように登録されている基準命令の演算例外ICを利用し、下位1バイトは、SPU100から受け取った命令のbyte14に位置する「基準命令からの相対IC」を組み合わせ、圧縮前の演算例外ICを復元して格納する。2命令目の演算例外ICは、上位6バイトとしては、登録されている基準命令の演算例外ICを利用し、下位1バイトは、SPU100から受け取った命令のbyte14に位置する「基準命令からの相対IC」+「命令長(8バイト命令の場合は+8)」を計算して、圧縮前の演算例外ICを復元して格納する。 Further, when the instruction compression bit=1, the instruction decoder 201 stores various information and operation exception IC for two instructions, which are one vector operation instruction, in two entries of the instruction scheduler 221 of the VPU 200, and stores two Restore to order. At this time, in two entries, that is, two instructions, as for the operation exception IC, as shown in FIG. 10, as the upper 6 bytes of the operation exception IC of the first instruction, the operation The exception IC is used, and the lower 1 byte is combined with the "relative IC from the reference instruction" located at byte 14 of the instruction received from the SPU 100, and the operation exception IC before compression is restored and stored. The operation exception IC of the second instruction uses the operation exception IC of the registered reference instruction as the upper 6 bytes, and the lower 1 byte is the "relative to reference instruction" located at byte 14 of the instruction received from the SPU 100. IC"+"instruction length (+8 in the case of an 8-byte instruction)" is calculated, and the operation exception IC before compression is restored and stored.

VPU200の命令スケジューラ221は、1エントリ毎に命令の発行が可能か判定し、必要な資源の準備が整えば1エントリ毎に発行する。VPU200では、アウトオブオーダーでベクトル命令を実行する。そして、VPU200は、命令で指定されているベクトルレジスタ241のデータを読み出しベクトル演算ユニット群261へ送る。ベクトル演算ユニット群261は、ベクトルレジスタ241のデータを入力して、演算を行う。 The instruction scheduler 221 of the VPU 200 determines whether an instruction can be issued for each entry, and issues an instruction for each entry when the necessary resources are ready. The VPU 200 executes vector instructions out of order. The VPU 200 then sends the data of the vector register 241 specified by the instruction to the read vector operation unit group 261 . The vector operation unit group 261 receives data from the vector register 241 and performs operations.

[動作]
次に、上述したプロセッサの動作を説明する。なお、以下では、プロセッサに対する命令が、ベクトル演算命令の場合、ベクトル演算命令でない場合、とに分けて説明する。
[motion]
Next, the operation of the processor described above will be described. In the following description, instructions to the processor are divided into cases where they are vector operation instructions and cases where they are not vector operation instructions.

・ベクトル演算命令の場合
まず、SPU100内の処理について説明する。命令キャッシュ101は、同時に複数命令(本実施例では4命令)を、信号線110を介して命令デコーダ制御部122へ出力する。
• In case of vector operation instruction First, the processing in the SPU 100 will be described. The instruction cache 101 simultaneously outputs a plurality of instructions (four instructions in this embodiment) to the instruction decoder control section 122 via the signal line 110 .

命令デコーダ制御部122は、同時に複数命令デコード(本実施例では4命令)を行い、命令デコード結果と命令に付随する各種情報を、信号線130を介してベクトル演算命令圧縮制御部125へ出力する。また、命令デコーダ制御部122は、命令デコード結果を、信号線131を介してベクトル演算命令判定部123へ出力する。 The instruction decoder control unit 122 simultaneously decodes a plurality of instructions (four instructions in this embodiment), and outputs the result of instruction decoding and various information associated with the instructions to the vector operation instruction compression control unit 125 via the signal line 130 . . The instruction decoder control unit 122 also outputs the instruction decoding result to the vector operation instruction determination unit 123 via the signal line 131 .

ベクトル演算命令判定部123は、命令デコード結果から、同時にデコードした4命令が、図11に示した16通りの命令の組み合わせで、ベクトル演算命令が連続しているかどうかをチェックする。このとき、ベクトル演算命令同士が連続する場合は命令圧縮対象と判定し、そうでない場合は命令圧縮対象外と判定する。そして、ベクトル演算命令判定部123は、命令が命令圧縮対象か否かを判定して、重複ケースを除く7通りの命令の組み合わせを、信号線132を介してベクトル演算命令圧縮制御部125へ出力する。 The vector operation instruction determination unit 123 checks from the instruction decoding result whether or not the four instructions decoded at the same time are consecutive vector operation instructions in the 16 combinations of instructions shown in FIG. At this time, if vector operation instructions are consecutive, it is determined to be subject to instruction compression, and if not, it is determined not to be subject to instruction compression. Then, the vector operation instruction determination unit 123 determines whether or not the instruction is subject to instruction compression, and outputs seven combinations of instructions excluding overlapping cases to the vector operation instruction compression control unit 125 via the signal line 132. do.

続いて、ベクトル演算命令判定部123は、ベクトル演算命令のデコード情報と命令ICを、信号線133を介してベクトル演算例外ICレジスタ124へ出力する。そして、ベクトル演算命令判定部123は、ベクトル演算命令に対して、当該命令のICとベクトル演算例外ICレジスタ124との比較を行う。このとき、同時タイミングで命令デコードを行ったベクトル演算命令の中では、先行する命令からICの比較を行う。 Subsequently, the vector operation instruction determination unit 123 outputs the decode information of the vector operation instruction and the instruction IC to the vector operation exception IC register 124 via the signal line 133 . Then, the vector operation instruction determining unit 123 compares the IC of the vector operation instruction with the vector operation exception IC register 124 . At this time, among the vector operation instructions decoded at the same timing, the ICs are compared from the preceding instruction.

ベクトル演算例外ICレジスタ124と比較した命令のICの一部が一致した場合は、信号線134を介して、ベクトル演算命令圧縮制御部125へIC比較結果を出力する。ICが不一致だった場合(不一致には有効bit=0も含む)は、ベクトル演算例外ICレジスタ124に不一致になったベクトル演算命令のICを、基準命令の演算例外ICとして登録して有効bit=1にする。なお、後続のベクトル演算命令は、先行するベクトル演算命令がベクトル演算例外ICレジスタ124に登録するICと必ず一致するICになるため、IC一致として扱う。このようなIC比較結果を、信号線134を介してベクトル演算命令圧縮制御部125へ出力する。 If part of the IC of the instruction compared with the vector operation exception IC register 124 matches, the IC comparison result is output to the vector operation instruction compression control unit 125 via the signal line 134 . If the ICs do not match (the mismatch includes valid bit=0), the IC of the vector operation instruction that does not match is registered in the vector operation exception IC register 124 as the operation exception IC of the reference instruction, and the valid bit= Make it 1. Note that the succeeding vector operation instruction is treated as an IC match because the preceding vector operation instruction always matches the IC registered in the vector operation exception IC register 124 . Such an IC comparison result is output to the vector operation instruction compression controller 125 via the signal line 134 .

ベクトル演算命令圧縮制御部125は、命令圧縮対象あるいは命令圧縮対象外の判定結果と、IC一致結果と、に基づいて、図12に示した組み合わせで、命令圧縮なし、と、命令圧縮あり、を判定する。つまり、同時にデコードした複数(ここでは4つ)のベクトル演算命令のうち、命令が相互に連続しており、かつ、かかる命令の格納場所を表すアドレス情報であるICの予め設定された上位ビットが一致するベクトル演算命令を、命令圧縮あり、と判定する。 The vector operation instruction compression control unit 125 selects no instruction compression or instruction compression according to the combinations shown in FIG. judge. That is, among a plurality of (here, four) vector operation instructions decoded at the same time, the instructions are consecutive to each other, and the preset high-order bits of the IC, which is the address information representing the storage location of the instructions, are A matching vector operation instruction is determined to have instruction compression.

そして、ベクトル演算命令圧縮制御部125は、「命令圧縮なし」の場合は、命令を信号線135を介して命令スケジューラ141に出力する。命令スケジューラ141は、受け取った命令を、図6に示した命令1の圧縮しない通常のベクトル演算命令の形式で、1エントリに1命令ずつ格納する。同時に、エントリに該当命令のICを演算例外ICとして付加してエントリに格納する。また、図8に示したbyte14で命令圧縮bit=0にする。 Then, the vector operation instruction compression control unit 125 outputs the instruction to the instruction scheduler 141 via the signal line 135 in the case of “no instruction compression”. The instruction scheduler 141 stores the received instructions one by one in one entry in the form of a normal uncompressed vector operation instruction of the instruction 1 shown in FIG. At the same time, the IC of the corresponding instruction is added to the entry as an operation exception IC and stored in the entry. Also, the instruction compression bit is set to 0 at byte 14 shown in FIG.

また、ベクトル演算命令圧縮制御部125は、「命令圧縮あり」の場合は、命令を信号線135を介して命令スケジューラ141に出力する。命令スケジューラ141は、受け取った命令を、図7に示した2つ命令を統合して圧縮した1つのベクトル演算命令の形式で、1エントリに2命令ずつ格納する。同時に、1つのエントリのbyte14に、1命令目の演算例外ICの下位バイトを基準命令からの相対ICとして付加して、エントリに格納する。また、図8に示したbyteバイト14で命令圧縮bit=1にする。 Further, the vector operation instruction compression control unit 125 outputs the instruction to the instruction scheduler 141 via the signal line 135 when "instruction compression is present". The instruction scheduler 141 stores the received instructions in the form of one vector operation instruction in which the two instructions shown in FIG. 7 are integrated and compressed, two instructions per entry. At the same time, the lower byte of the operation exception IC of the first instruction is added to byte 14 of one entry as a relative IC from the reference instruction and stored in the entry. Also, the instruction compression bit is set to 1 at byte 14 shown in FIG.

この後の動作は、SPU100の命令スケジューラ141にエントリとして格納されたベクトル演算命令のbyte14に含まれる上述した「命令圧縮bit」の値により異なる。 The subsequent operation differs depending on the value of the above-described "instruction compression bit" included in byte 14 of the vector operation instruction stored as an entry in the instruction scheduler 141 of the SPU 100. FIG.

「命令圧縮bit=0」の場合について説明する。命令スケジューラ141は、格納されている1エントリ毎に命令の発行が可能か判定し、必要な資源の準備が整い命令順序が保証できれば1エントリ毎に命令を、信号線150を介して出力する。ここで、スカラレジスタに関して1命令分の依存関係のあるスカラレジスタのデータが準備できたかを確認する。命令順序保証に関して、SPU100ではベクトル命令はインオーダーで発行する。スカラレジスタ161は、受け取った命令中にスカラレジスタのリード指定が存在する場合に、信号線170を介してスカラレジスタのデータを出力する。ベクトル命令発行制御部181は、1命令分の各種情報とスカラレジスタデータを、信号線190を介してVPU200へ発行する。 A case of "instruction compression bit=0" will be described. The instruction scheduler 141 determines whether an instruction can be issued for each stored entry, and outputs an instruction for each entry via a signal line 150 when the necessary resources are ready and the order of instructions can be guaranteed. Here, it is confirmed whether the data of the scalar register having the dependency for one instruction has been prepared for the scalar register. Regarding instruction order guarantee, the SPU 100 issues vector instructions in-order. The scalar register 161 outputs the data of the scalar register via the signal line 170 when the read instruction of the scalar register exists in the received instruction. The vector instruction issue control unit 181 issues various information and scalar register data for one instruction to the VPU 200 via the signal line 190 .

VPU200内の処理について説明する。命令デコーダ制御部202は、受け取った命令のデコードを行い、命令デコード結果と命令に付随する各種情報を、信号線210を介してベクトル演算命令復元制御部204へ出力する。また、命令デコード結果と演算例外ICを、信号線211を介してベクトル演算例外ICレジスタ203へ出力する。ベクトル演算例外ICレジスタ203は、ベクトル演算命令かつ命令圧縮bit=0の場合に、該当命令のベクトル演算例外ICの上位6バイトを、図9に示した基準命令の演算例外ICとして登録して有効bit=1にする。 Processing within the VPU 200 will be described. The instruction decoder control unit 202 decodes the received instruction and outputs the instruction decoding result and various information accompanying the instruction to the vector operation instruction restoration control unit 204 via the signal line 210 . It also outputs the instruction decode result and the operation exception IC to the vector operation exception IC register 203 via the signal line 211 . The vector operation exception IC register 203 registers the high-order 6 bytes of the vector operation exception IC of the corresponding instruction as the operation exception IC of the reference instruction shown in FIG. Set bit=1.

ベクトル演算命令復元制御部204は、ベクトル演算命令かつ命令圧縮bit=0の場合、命令圧縮なし、と判定して命令を復元せずにそのままの形式で信号線213を介して命令スケジューラ221へ出力する。命令スケジューラ221は、受け取った命令を1エントリに1命令ずつ格納する。命令スケジューラ221は、格納されている1エントリ毎に命令の発行が可能か判定し、必要な資源の準備が整い命令順序が保証できれば1エントリ毎に命令を、信号線230を介して出力する。命令順序保証に関して、VPU200ではベクトル命令はアウトオブオーダーで発行する。ベクトルレジスタ241は、受け取った命令中にベクトルレジスタのリード指定が存在する場合に信号線250を介してベクトルレジスタのデータを出力する。ベクトル演算ユニット群261は、ベクトルレジスタのデータを受け取り命令で指定された演算を行う。 If the vector operation instruction and the instruction compression bit=0, the vector operation instruction restoration control unit 204 determines that the instruction is not compressed, and outputs the instruction as it is to the instruction scheduler 221 via the signal line 213 without restoring the instruction. do. The instruction scheduler 221 stores the received instructions one by one in one entry. The instruction scheduler 221 determines whether an instruction can be issued for each stored entry, and outputs an instruction for each entry via a signal line 230 when the necessary resources are ready and the order of instructions can be guaranteed. Regarding instruction order guarantee, the VPU 200 issues vector instructions out of order. The vector register 241 outputs the data of the vector register via the signal line 250 when there is a vector register read designation in the received instruction. The vector operation unit group 261 receives data in vector registers and performs operations specified by instructions.

次に、「命令圧縮bit=1」の場合について説明する。SPU100の命令スケジューラ141は、格納されている1エントリ毎に命令の発行が可能か判定し、必要な資源の準備が整い命令順序が保証できれば1エントリ毎に命令を、信号線150を介して出力する。ここで、スカラレジスタに関して命令圧縮されているため、2命令分の依存関係のあるスカラレジスタのデータが準備できたかを確認する。命令順序保証に関して、SPU100ではベクトル命令はインオーダーで発行する。スカラレジスタ161は、受け取った命令中にスカラレジスタのリード指定が存在する場合に、信号線170を介してスカラレジスタのデータを出力する。ベクトル命令発行制御部181は、2命令分の各種情報とスカラレジスタデータを、信号線190を介してVPU200へ発行する。 Next, the case of "instruction compression bit=1" will be described. The instruction scheduler 141 of the SPU 100 determines whether or not an instruction can be issued for each stored entry, and outputs an instruction for each entry via a signal line 150 when the necessary resources are ready and the instruction order can be guaranteed. do. Here, since instructions are compressed with respect to the scalar registers, it is confirmed whether the data of the dependent scalar registers for two instructions has been prepared. Regarding instruction order guarantee, the SPU 100 issues vector instructions in-order. The scalar register 161 outputs the data of the scalar register via the signal line 170 when the read instruction of the scalar register exists in the received instruction. The vector instruction issue control unit 181 issues various information and scalar register data for two instructions to the VPU 200 via the signal line 190 .

VPU200内の処理について説明する。命令デコーダ制御部202は、受け取った命令のデコードを行い、命令デコード結果と命令に付随する各種情報を、信号線210を介してベクトル演算命令復元制御部204へ出力する。また、命令デコード結果と演算例外ICを、信号線211を介してベクトル演算例外ICレジスタ203へ出力する。ベクトル演算例外ICレジスタ203は、ベクトル演算命令かつ命令圧縮bit=1の場合には、新たな登録は行わず、登録されている基準命令の演算例外ICを、信号線212を介してベクトル演算命令復元制御部204へ出力する。 Processing within the VPU 200 will be described. The instruction decoder control unit 202 decodes the received instruction and outputs the instruction decoding result and various information accompanying the instruction to the vector operation instruction restoration control unit 204 via the signal line 210 . It also outputs the instruction decode result and the operation exception IC to the vector operation exception IC register 203 via the signal line 211 . The vector operation exception IC register 203 does not newly register the operation exception IC of the registered reference instruction in the case of the vector operation instruction and the instruction compression bit=1. Output to the restoration control unit 204 .

ベクトル演算命令復元制御部204は、ベクトル演算命令かつ命令圧縮bit=1の場合、命令圧縮あり、と判定し、1つの命令から元の2命令を復元した形式で命令スケジューラ221へ出力する。演算例外ICの復元方法に関しては、図10に示したように、1命令目については、上位6バイトを登録されている基準命令の演算例外ICとし、7バイト目はSPU100より受け取った命令のbyte14に含まれる「基準命令からの相対IC」とする。2命令目については、上位6バイトを登録されている基準命令の演算例外ICとし、7バイト目はSPU100より受け取った命令のbyte14に含まれる「基準命令からの相対IC」+「命令圧縮した1命令目の命令長(本発明例では8バイト)」とする。 When the vector operation instruction and the instruction compression bit=1, the vector operation instruction restoration control unit 204 determines that there is instruction compression, and outputs the restored two instructions from one instruction to the instruction scheduler 221 . Regarding the method of restoring the operation exception IC, as shown in FIG. "Relative IC from reference instruction" included in . For the second instruction, the upper 6 bytes are the operation exception IC of the registered reference instruction, and the 7th byte is the "relative IC from the reference instruction" + "instruction compressed 1 The instruction length of the instruction number (8 bytes in the example of the present invention).

命令スケジューラ221は、受け取った命令を1エントリに1命令ずつ格納する。ここでは、2エントリに2命令を格納する。命令スケジューラ221は、格納されている1エントリ毎に命令の発行が可能か判定し、必要な資源の準備が整い命令順序が保証できれば、1エントリ毎に命令を信号線230を介して出力する。命令順序保証に関して、VPU200では、ベクトル命令はアウトオブオーダーで発行する。ベクトルレジスタ241は、受け取った命令中にベクトルレジスタのリード指定が存在する場合に信号線250を介してベクトルレジスタのデータを出力する。ベクトル演算ユニット群261は、ベクトルレジスタのデータを受け取り、命令で指定された演算を行う。 The instruction scheduler 221 stores the received instructions one by one in one entry. Here, two instructions are stored in two entries. The instruction scheduler 221 determines whether an instruction can be issued for each stored entry, and outputs an instruction for each entry via a signal line 230 when the necessary resources are ready and the order of instructions can be guaranteed. Regarding instruction order guarantee, the VPU 200 issues vector instructions out of order. The vector register 241 outputs the data of the vector register via the signal line 250 when there is a vector register read designation in the received instruction. The vector operation unit group 261 receives data in vector registers and performs operations specified by instructions.

・ベクトル演算命令でない場合
次に、プロセッサに対する命令が、ベクトル演算命令でない場合について説明する。SPU100内では、命令キャッシュ101は、同時に複数命令(本実施例では4命令)を信号線110を介して命令デコーダ制御部122へ出力する。命令デコーダ制御部122は、同時に複数命令デコード(本実施例では4命令)を行い、命令デコード結果と命令に付随する各種情報を、信号線130を介してベクトル演算命令圧縮制御部125へ出力する。また、命令デコード結果を、信号線131を介してベクトル演算命令判定部123へ出力する。
Non-Vector Operation Instruction Next, a case where the instruction to the processor is not a vector operation instruction will be described. Within the SPU 100 , the instruction cache 101 simultaneously outputs a plurality of instructions (four instructions in this embodiment) to the instruction decoder control section 122 via the signal line 110 . The instruction decoder control unit 122 simultaneously decodes a plurality of instructions (four instructions in this embodiment), and outputs the result of instruction decoding and various information associated with the instructions to the vector operation instruction compression control unit 125 via the signal line 130 . . Also, the instruction decoding result is output to the vector operation instruction determination unit 123 via the signal line 131 .

ベクトル演算命令判定部123は、図11に示した16通りの命令の組み合わせでベクトル演算命令が連続しているかをチェックし、命令圧縮対象あるいは命令圧縮対象外かを判定し、重複ケースを除く7通りの命令組み合わせを、信号線132を介してベクトル演算命令圧縮制御部125へ出力する。本ケースでは、ベクトル演算命令が含まれていないので、全て圧縮対象外になる。 The vector operation instruction determination unit 123 checks whether the vector operation instructions are consecutive in the 16 combinations of instructions shown in FIG. The correct combination of instructions is output to the vector operation instruction compression controller 125 via the signal line 132 . In this case, since no vector operation instruction is included, all of them are excluded from the compression target.

ベクトル演算命令圧縮制御部125は、命令を信号線135を介して命令スケジューラ141に命令を出力する。命令スケジューラ141は、受け取った命令を圧縮せずに、通常命令の形式で1エントリに1命令ずつ格納する。命令スケジューラ141は、格納されている1エントリ毎に命令の発行が可能か判定し、必要な資源の準備が整い命令順序が保証できれば、1エントリ毎に命令を信号線150を介して出力する。命令順序保証に関して、SPU100では、ベクトル命令はインオーダーで発行する。スカラレジスタ161は、受け取った命令中にスカラレジスタのリード指定が存在する場合に信号線170を介してスカラレジスタのデータを出力する。ベクトル命令発行制御部181は、1命令分の各種情報とスカラレジスタデータを、信号線190を介してVPU200へ発行する。 The vector operation instruction compression control unit 125 outputs instructions to the instruction scheduler 141 via the signal line 135 . The instruction scheduler 141 stores one instruction per entry in the form of a normal instruction without compressing the received instruction. The instruction scheduler 141 determines whether an instruction can be issued for each stored entry, and outputs an instruction for each entry via a signal line 150 when the necessary resources are ready and the order of instructions can be guaranteed. Regarding instruction order guarantee, the SPU 100 issues vector instructions in-order. The scalar register 161 outputs the data of the scalar register via the signal line 170 when the read instruction of the scalar register exists in the received instruction. The vector instruction issue control unit 181 issues various information and scalar register data for one instruction to the VPU 200 via the signal line 190 .

VPU200内では、命令デコーダ制御部202は、受け取った命令のデコードを行い、命令デコード結果と命令に付随する各種情報を、信号線210を介してベクトル演算命令復元制御部204へ出力する。ベクトル演算命令復元制御部204は、ベクトル演算命令でない場合、命令圧縮なしと判定し命令を復元せずにそのままの形式で信号線213を介して命令スケジューラ221へ出力する。 Within the VPU 200 , the instruction decoder control unit 202 decodes the received instruction and outputs the instruction decoding result and various information associated with the instruction to the vector operation instruction restoration control unit 204 via the signal line 210 . If the vector operation instruction is not a vector operation instruction, the vector operation instruction restoration control unit 204 determines that the instruction is not compressed, and outputs the instruction as it is to the instruction scheduler 221 via the signal line 213 without restoring the instruction.

命令スケジューラ221は、受け取った命令を1エントリに1命令ずつ格納する。命令スケジューラ221は、格納されている1エントリ毎に命令の発行が可能か判定し必要な資源の準備が整い命令順序が保証できれば1エントリ毎に命令を、信号線230を介して出力する。命令順序保証に関して、VPUではベクトル命令はアウトオブオーダーで発行する。ベクトルレジスタ241は、受け取った命令中にベクトルレジスタのリード指定が存在する場合に信号線250を介してベクトルレジスタのデータを出力する。ベクトル演算ユニット群261は、ベクトルレジスタのデータを受け取り命令で指定された演算を行う。 The instruction scheduler 221 stores the received instructions one by one in one entry. The instruction scheduler 221 determines whether an instruction can be issued for each stored entry, and outputs an instruction for each entry via a signal line 230 when the necessary resources are ready and the order of instructions can be guaranteed. Regarding the instruction order guarantee, the VPU issues vector instructions out of order. The vector register 241 outputs the data of the vector register via the signal line 250 when there is a vector register read designation in the received instruction. The vector operation unit group 261 receives data in vector registers and performs operations specified by instructions.

[効果]
以上に説明したように、本発明においては、以下に記載するような効果を持つ。まず、ベクトル命令を実行するプロセッサにおいて、SPU100の命令デコーダ121による命令圧縮制御と、VPU200の命令デコーダ201による命令復元制御により、SPU100から1クロックに複数のベクトル演算命令を発行することが可能になる。これにより、SPU-VPUのユニット間のベクトル演算命令の発行レートの向上が可能になる。また、ハードウェアのみの機能で実現可能なため、これまでのソフトウェアを変更せずにベクトル演算命令発行レートの向上を享受できる。
[effect]
As explained above, the present invention has the following effects. First, in a processor that executes vector instructions, instruction compression control by the instruction decoder 121 of the SPU 100 and instruction decompression control by the instruction decoder 201 of the VPU 200 enable the SPU 100 to issue a plurality of vector operation instructions in one clock. . This makes it possible to improve the issue rate of vector operation instructions between SPU-VPU units. In addition, since it can be realized only by hardware functions, it is possible to enjoy an improvement in the vector operation instruction issue rate without changing existing software.

また、演算例外ICのフィールドを活用することで、命令スケジューラの回路量を最小限の増加で圧縮した命令を格納することが可能である。また、命令圧縮を行うことで、これまでの技術の命令スケジューラと同一エントリ数の構成でも、格納する命令数を増加させることができるため性能向上が見込める。 Further, by utilizing the field of the operation exception IC, it is possible to store the compressed instruction with the minimum increase in the circuit amount of the instruction scheduler. In addition, by compressing instructions, even with a configuration having the same number of entries as the conventional instruction scheduler, the number of instructions to be stored can be increased, so performance improvement can be expected.

ここで、具体的なベクトル命令の発行レート向上の効果を計算する。まず、命令列としてベクトルロード命令とベクトル演算命令の割合を1バイト/Flopsと仮定し、計算結果をベクトルストア命令で出力する命令列を考える。計算の入力データとしてVLD命令×3命令の合計8バイト×3=24バイトに対して、VFMA命令は2Flops/命令になるので、24/2=12命令の組み合わせになる。最後に、計算結果の出力としてベクトルストア命令を入れた命令列になるので、図13に示した命令圧縮がない場合は、ベクトル命令の発行に16クロック必要だが、本発明の命令圧縮により11クロックに削減できる。また、ベクトル演算命令としてVFMA命令ではなくVFMP(浮動小数点乗算)命令とVFAD(浮動小数点加算)命令を利用する場合は、図14に示した命令圧縮がない場合はベクトル命令の発行に28クロック必要だが、本発明の命令圧縮により17クロックに削減できる。 Here, the effect of improving the issue rate of specific vector instructions is calculated. First, assuming that the ratio of vector load instructions and vector operation instructions is 1 byte/Flops as an instruction string, consider an instruction string that outputs the calculation result with a vector store instruction. As input data for calculation, a total of 8 bytes×3=24 bytes (VLD instruction×3 instructions) and VFMA instruction is 2 flops/instruction, resulting in a combination of 24/2=12 instructions. Finally, since the output of the calculation result is an instruction sequence containing a vector store instruction, 16 clocks are required to issue a vector instruction without the instruction compression shown in FIG. can be reduced to Also, when using VFMP (floating point multiplication) instructions and VFAD (floating point addition) instructions instead of VFMA instructions as vector operation instructions, 28 clocks are required to issue vector instructions if there is no instruction compression shown in FIG. However, it can be reduced to 17 clocks by the instruction compression of the present invention.

このように、ベクトル演算命令数が多いほど本発明の効果は大きくなる。また、SPUの命令スケジューラへの命令格納効率も同様に向上する。例えば、図13の例では命令圧縮なしでは16エントリ必要になるが、命令圧縮ありでは11エントリに削減される。同様に、図14の例では命令圧縮なしでは28エントリ必要になるが、命令圧縮ありでは17エントリに削減される。 In this way, the greater the number of vector operation instructions, the greater the effect of the present invention. Also, the efficiency of storing instructions in the instruction scheduler of the SPU is similarly improved. For example, in the example of FIG. 13, 16 entries are required without instruction compression, but this is reduced to 11 entries with instruction compression. Similarly, in the example of FIG. 14, 28 entries are required without instruction compression, but this is reduced to 17 entries with instruction compression.

なお、上記では、命令デコーダは複数命令を同時にデコードする機能として4命令同時デコード構成としたが、2命令以上であれば何命令同時デコードでもよい。また、上記では、2命令を1つに統合する場合を例示しているが、3つ以上の命令を1つに統合してもよい。 In the above description, the instruction decoder has a 4-instruction simultaneous decoding configuration as a function of decoding a plurality of instructions at the same time. Moreover, although the above example illustrates the case where two instructions are integrated into one, three or more instructions may be integrated into one.

また、ベクトル命令の発行パイプラインは1パイプライン構成としたが、2パイプライン構成以上でも良い。また、命令長を8バイトとしたが何バイトでも良い。ベクトル演算命令として、4オペランド形式の命令で説明を行ったが、他のオペランド形式でも良い。例えば、ベクトル浮動小数点加算命令でVFAD V0←V1+V2を行う3オペランド形式でも良い。同時に2命令のベクトル演算命令を圧縮・復元する例を示したが、圧縮・復元の対象命令数は何命令でも良い。 Further, although the pipeline for issuing vector instructions is configured with one pipeline, it may be configured with two or more pipelines. Also, although the instruction length is 8 bytes, any number of bytes may be used. As a vector operation instruction, an instruction in a 4-operand format has been described, but other operand formats may be used. For example, a 3-operand format that performs VFAD V0←V1+V2 with a vector floating point addition instruction may be used. Although an example of compressing and decompressing two vector operation instructions at the same time has been shown, any number of instructions may be compressed and decompressed.

また、ICは56ビットアドレスとしたが、何ビットでも良い。演算例外ICは256バイト毎に基準のICを設けるとしたが、何バイト毎に基準を設けてもよい。基準となるICのサイズを大きくすることで命令圧縮可能な範囲が広がるが、相対ICの表現に必要なビット数が増加する。 Also, although the IC has a 56-bit address, any number of bits may be used. Although the reference IC is provided for every 256 bytes as the operation exception IC, the reference may be provided for any number of bytes. By increasing the size of the standard IC, the range of instruction compression is widened, but the number of bits required to express the relative IC increases.

また、上記では、ハードウェアで構成されたSPU100とVPU200を備えるプロセッサを例示しているが、プロセッサにソフトウェアであるプログラムが組み込まれることで、SPU100及びVPU200と同等の機能を実現してもよい。 In the above, a processor including the SPU 100 and VPU 200 configured by hardware is exemplified, but functions equivalent to those of the SPU 100 and VPU 200 may be realized by incorporating a software program into the processor.

<実施形態2>
次に、本発明の第2の実施形態を、図15を参照して説明する。図15は、実施形態2におけるプロセッサの構成を示すブロック図である。なお、本実施形態では、実施形態1で説明したプロセッサの構成の概略を示している。
<Embodiment 2>
A second embodiment of the present invention will now be described with reference to FIG. FIG. 15 is a block diagram showing a configuration of a processor according to the second embodiment; Note that the present embodiment shows an outline of the configuration of the processor described in the first embodiment.

図15に示すように、本実施形態におけるプロセッサ300は、
スカラ演算を行うスカラプロセッシングユニット310と、ベクトル演算を行うベクトルプロセッシングユニット320と、を備える。
そして、上記スカラプロセッシングユニット310は、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニット320に発行し、
上記ベクトルプロセッシングユニット320は、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
という構成をとる。
As shown in FIG. 15, the processor 300 in this embodiment
It comprises a scalar processing unit 310 that performs scalar operations and a vector processing unit 320 that performs vector operations.
Then, the scalar processing unit 310 issues to the vector processing unit 320 an integrated vector operation instruction in which two or more of the simultaneously decoded vector operation instructions are integrated as one instruction,
The vector processing unit 320 restores the integrated vector operation instruction to two or more vector operation instructions before integration, and performs vector operations respectively according to the two or more vector operation instructions.
take the configuration.

なお、上記スカラプロセッシングユニット310と、ベクトルプロセッシングユニット320とは、プロセッサ300がプログラムを実行することで実現されてもよい。 Note that the scalar processing unit 310 and the vector processing unit 320 may be implemented by the processor 300 executing a program.

上記発明によると、スカラプロセッシングユニット310の命令デコード後に複数のベクトル命令を1命令に圧縮して、命令スケジューラに格納し命令を圧縮した形式のままでベクトルプロセッシングユニット320へベクトル命令を発行する。そして、ベクトルプロセッシングユニット320では、圧縮された命令を復元する機能を提供する。これにより、ベクトルプロセッサとしての通常の機能を損なうことなく、スカラプロセッシングユニット310とベクトルプロセッシングユニット320との間のベクトル命令発行レートを向上することができる。 According to the above invention, multiple vector instructions are compressed into one instruction after instruction decoding by the scalar processing unit 310, stored in the instruction scheduler, and the vector instruction is issued to the vector processing unit 320 in the compressed format. The vector processing unit 320 then provides the function of decompressing the compressed instructions. As a result, the vector instruction issue rate between the scalar processing unit 310 and the vector processing unit 320 can be improved without impairing the normal functions of the vector processor.

<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるプロセッサ、情報処理方法、プログラムの構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
<Appendix>
Some or all of the above embodiments may also be described as the following appendices. The outline of the configuration of the processor, the information processing method, and the program according to the present invention will be described below. However, the present invention is not limited to the following configurations.

(付記1)
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
プロセッサ。
(Appendix 1)
A processor comprising a scalar processing unit that performs scalar operations and a vector processing unit that performs vector operations,
The scalar processing unit issues to the vector processing unit an integrated vector operation instruction in which two or more of the simultaneously decoded vector operation instructions are integrated as one instruction,
The vector processing unit restores the integrated vector operation instruction to two or more vector operation instructions before integration, and performs vector operations respectively according to the two or more vector operation instructions.
processor.

(付記2)
付記1に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち相互に連続する2以上のベクトル演算命令を1つの命令として統合する、
プロセッサ。
(Appendix 2)
1. The processor of Clause 1,
wherein the scalar processing unit integrates two or more consecutive vector operation instructions among a plurality of simultaneously decoded vector operation instructions into one instruction;
processor.

(付記3)
付記1又は2に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報に基づいて2以上のベクトル演算命令を1つの命令として統合する、
プロセッサ。
(Appendix 3)
The processor according to Appendix 1 or 2,
The scalar processing unit integrates two or more vector operation instructions out of a plurality of simultaneously decoded vector operation instructions into one instruction based on address information representing the respective storage locations of the vector operation instructions.
processor.

(付記4)
付記3に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報の一部が一致する2以上のベクトル演算命令を1つの命令として統合する、
プロセッサ。
(Appendix 4)
3. The processor of Appendix 3,
The scalar processing unit integrates, among a plurality of vector operation instructions decoded at the same time, two or more vector operation instructions whose address information representing the respective storage locations of the vector operation instructions is partially identical as one instruction.
processor.

(付記5)
付記1乃至4のいずれかに記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、相互に連続すると共に、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報の一部である予め設定された上位アドレスが一致する2以上のベクトル演算命令を1つの命令として統合する、
プロセッサ。
(Appendix 5)
The processor according to any one of Appendices 1 to 4,
In the scalar processing unit, of the plurality of vector operation instructions decoded at the same time, the predetermined high-order addresses that are successive to each other and are part of the address information representing the storage locations of the respective vector operation instructions match. Integrating two or more vector operation instructions as one instruction,
processor.

(付記6)
付記1乃至5のいずれかに記載のプロセッサであって、
前記スカラプロセッシングユニットは、統合しないベクトル演算命令に、当該ベクトル演算命令の格納場所を表すアドレス情報を含めて前記ベクトルプロセッシングユニットに送信し、前記統合ベクトル演算命令に、統合前の2以上のベクトル演算命令の少なくとも1つの格納場所を表すアドレス情報の一部を含めて前記ベクトルプロセッシングユニットに送信する、
プロセッサ。
(Appendix 6)
The processor according to any one of Appendices 1 to 5,
The scalar processing unit transmits a non-integrated vector operation instruction including address information representing a storage location of the vector operation instruction to the vector processing unit, and stores two or more vector operations before integration in the integrated vector operation instruction. transmitting to the vector processing unit including a portion of address information representing at least one storage location of instructions;
processor.

(付記7)
付記6に記載のプロセッサであって、
前記スカラプロセッシングユニットは、前記統合ベクトル演算命令に、統合前の1つのベクトル演算命令の格納場所を表すアドレス情報の予め設定された下位アドレスを含めて前記ベクトルプロセッシングユニットに送信し、
前記ベクトルプロセッシングユニットは、前記統合しないベクトル演算命令に含められたアドレス情報と、前記統合ベクトル演算命令に含められた前記下位アドレスに基づいて、当該統合ベクトル演算命令の統合前の2以上のベクトル演算命令の格納場所を表すアドレス情報を取得する、
プロセッサ。
(Appendix 7)
6. The processor of clause 6,
The scalar processing unit transmits to the vector processing unit the integrated vector operation instruction including a preset lower address of address information representing a storage location of one vector operation instruction before integration,
The vector processing unit performs two or more vector operations before integration of the integrated vector operation instruction based on the address information included in the non-integrated vector operation instruction and the lower address included in the integrated vector operation instruction. Acquire address information representing the storage location of instructions,
processor.

(付記8)
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサによる情報処理方法であって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
情報処理方法。
(Appendix 8)
An information processing method by a processor comprising a scalar processing unit that performs scalar operations and a vector processing unit that performs vector operations,
The scalar processing unit issues to the vector processing unit an integrated vector operation instruction in which two or more of the simultaneously decoded vector operation instructions are integrated as one instruction,
The vector processing unit restores the integrated vector operation instruction to two or more vector operation instructions before integration, and performs vector operations respectively according to the two or more vector operation instructions.
Information processing methods.

(付記9)
プロセッサに、
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を実現させると共に、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
ことを実現させるためのプログラム。。
(Appendix 9)
to the processor,
Realizing a scalar processing unit that performs scalar operations and a vector processing unit that performs vector operations,
The scalar processing unit issues to the vector processing unit an integrated vector operation instruction in which two or more of the simultaneously decoded vector operation instructions are integrated as one instruction,
The vector processing unit restores the integrated vector operation instruction to two or more vector operation instructions before integration, and performs vector operations respectively according to the two or more vector operation instructions.
program to make it happen. .

なお、上記プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。 It should be noted that the above program can be stored and supplied to the computer using various types of non-transitory computer readable media. Non-transitory computer-readable media include various types of tangible storage media. Examples of non-transitory computer-readable media include magnetic recording media (eg, flexible discs, magnetic tapes, hard disk drives), magneto-optical recording media (eg, magneto-optical discs), CD-ROMs (Read Only Memory), CD-Rs, CD-R/W, semiconductor memory (eg, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM (Random Access Memory)). The program may also be delivered to the computer on various types of transitory computer readable medium. Examples of transitory computer-readable media include electrical signals, optical signals, and electromagnetic waves. Transitory computer-readable media can deliver the program to the computer via wired channels, such as wires and optical fibers, or wireless channels.

以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。 Although the present invention has been described with reference to the above-described embodiments and the like, the present invention is not limited to the above-described embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.

100 SPU(スカラプロセッシングユニット)
101 命令キャッシュ
121 命令デコーダ
122 命令デコーダ制御部
123 ベクトル演算命令判定部
124 ベクトル演算例外ICレジスタ
125 ベクトル演算命令圧縮制御部
141 命令スケジューラ
161 スカラレジスタ
181 ベクトル命令発行制御部
200 VPU(ベクトルプロセッシングユニット)
201 命令デコーダ
202 命令デコーダ制御部
203 ベクトル演算例外ICレジスタ
204 ベクトル演算命令復元制御部
221 命令スケジューラ
241 ベクトルレジスタ
261 ベクトル演算ユニット群
300 プロセッサ
310 スカラプロセッシングユニット
320 ベクトルプロセッシングユニット
100 SPU (scalar processing unit)
101 Instruction cache 121 Instruction decoder 122 Instruction decoder control unit 123 Vector operation instruction determination unit 124 Vector operation exception IC register 125 Vector operation instruction compression control unit 141 Instruction scheduler 161 Scalar register 181 Vector instruction issue control unit 200 VPU (Vector Processing Unit)
201 instruction decoder 202 instruction decoder control unit 203 vector operation exception IC register 204 vector operation instruction restoration control unit 221 instruction scheduler 241 vector register 261 vector operation unit group 300 processor 310 scalar processing unit 320 vector processing unit

Claims (8)

スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行い、
プロセッサ。
さらに、前記スカラプロセッシングユニットは、統合しないベクトル演算命令に、当該ベクトル演算命令の格納場所を表すアドレス情報を含めて前記ベクトルプロセッシングユニットに送信し、前記統合ベクトル演算命令に、統合前の2以上のベクトル演算命令の少なくとも1つの格納場所を表すアドレス情報の一部を含めて前記ベクトルプロセッシングユニットに送信する、
プロセッサ。
A processor comprising a scalar processing unit that performs scalar operations and a vector processing unit that performs vector operations,
The scalar processing unit issues to the vector processing unit an integrated vector operation instruction in which two or more of the simultaneously decoded vector operation instructions are integrated as one instruction,
The vector processing unit restores the integrated vector operation instruction to two or more vector operation instructions before integration, and performs vector operations respectively according to the two or more vector operation instructions,
processor.
Further, the scalar processing unit transmits the non-integrated vector operation instruction including address information representing the storage location of the vector operation instruction to the vector processing unit, and the integrated vector operation instruction includes the two or more pre-integrated vector operation instructions. transmitting to the vector processing unit including a portion of address information representing at least one storage location of a vector operation instruction;
processor.
請求項1に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち相互に連続する2以上のベクトル演算命令を1つの命令として統合する、
プロセッサ。
2. The processor of claim 1, comprising:
wherein the scalar processing unit integrates two or more consecutive vector operation instructions among a plurality of simultaneously decoded vector operation instructions into one instruction;
processor.
請求項1又は2に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報に基づいて2以上のベクトル演算命令を1つの命令として統合する、
プロセッサ。
3. A processor according to claim 1 or 2, comprising:
The scalar processing unit integrates two or more vector operation instructions out of the simultaneously decoded vector operation instructions into one instruction based on address information representing the respective storage locations of the vector operation instructions.
processor.
請求項3に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報の一部が一致する2以上のベクトル演算命令を1つの命令として統合する、
プロセッサ。
4. The processor of claim 3, comprising:
The scalar processing unit integrates, among a plurality of vector operation instructions decoded at the same time, two or more vector operation instructions whose address information representing the respective storage locations of the vector operation instructions is partially identical as one instruction.
processor.
請求項1乃至4のいずれかに記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、相互に連続すると共に、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報の一部である予め設定された上位アドレスが一致する2以上のベクトル演算命令を1つの命令として統合する、
プロセッサ。
A processor according to any one of claims 1 to 4,
In the scalar processing unit, of the plurality of vector operation instructions decoded at the same time, the predetermined high-order addresses that are successive to each other and are part of the address information representing the storage locations of the respective vector operation instructions match. Integrating two or more vector operation instructions as one instruction,
processor.
請求項1乃至5のいずれかに記載のプロセッサであって、
前記スカラプロセッシングユニットは、前記統合ベクトル演算命令に、統合前の1つのベクトル演算命令の格納場所を表すアドレス情報の予め設定された下位アドレスを含めて前記ベクトルプロセッシングユニットに送信し、
前記ベクトルプロセッシングユニットは、前記統合しないベクトル演算命令に含められたアドレス情報と、前記統合ベクトル演算命令に含められた前記下位アドレスに基づいて、当該統合ベクトル演算命令の統合前の2以上のベクトル演算命令の格納場所を表すアドレス情報を取得する、
プロセッサ。
A processor according to any one of claims 1 to 5 ,
The scalar processing unit transmits to the vector processing unit the integrated vector operation instruction including a preset lower address of address information representing a storage location of one vector operation instruction before integration,
The vector processing unit performs two or more vector operations before integration of the integrated vector operation instruction based on the address information included in the non-integrated vector operation instruction and the lower address included in the integrated vector operation instruction. Acquire address information representing the storage location of instructions,
processor.
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサによる情報処理方法であって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行い、
さらに、前記スカラプロセッシングユニットは、統合しないベクトル演算命令に、当該ベクトル演算命令の格納場所を表すアドレス情報を含めて前記ベクトルプロセッシングユニットに送信し、前記統合ベクトル演算命令に、統合前の2以上のベクトル演算命令の少なくとも1つの格納場所を表すアドレス情報の一部を含めて前記ベクトルプロセッシングユニットに送信する、
情報処理方法。
An information processing method by a processor comprising a scalar processing unit that performs scalar operations and a vector processing unit that performs vector operations,
The scalar processing unit issues to the vector processing unit an integrated vector operation instruction in which two or more of the simultaneously decoded vector operation instructions are integrated as one instruction,
The vector processing unit restores the integrated vector operation instruction to two or more vector operation instructions before integration, and performs vector operations respectively according to the two or more vector operation instructions,
Further, the scalar processing unit transmits the non-integrated vector operation instruction including address information representing the storage location of the vector operation instruction to the vector processing unit, and the integrated vector operation instruction includes the two or more pre-integrated vector operation instructions. transmitting to the vector processing unit including a portion of address information representing at least one storage location of a vector operation instruction;
Information processing methods.
プロセッサに、
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を実現させると共に、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行い、
さらに、前記スカラプロセッシングユニットは、統合しないベクトル演算命令に、当該ベクトル演算命令の格納場所を表すアドレス情報を含めて前記ベクトルプロセッシングユニットに送信し、前記統合ベクトル演算命令に、統合前の2以上のベクトル演算命令の少なくとも1つの格納場所を表すアドレス情報の一部を含めて前記ベクトルプロセッシングユニットに送信する、
ことを実現させるためのプログラム。
to the processor,
Realizing a scalar processing unit that performs scalar operations and a vector processing unit that performs vector operations,
The scalar processing unit issues to the vector processing unit an integrated vector operation instruction in which two or more of the simultaneously decoded vector operation instructions are integrated as one instruction,
The vector processing unit restores the integrated vector operation instruction to two or more vector operation instructions before integration, and performs vector operations respectively according to the two or more vector operation instructions,
Further, the scalar processing unit transmits the non-integrated vector operation instruction including address information representing the storage location of the vector operation instruction to the vector processing unit, and the integrated vector operation instruction includes the two or more pre-integrated vector operation instructions. transmitting to the vector processing unit including a portion of address information representing at least one storage location of a vector operation instruction;
program to make it happen.
JP2018177632A 2018-09-21 2018-09-21 processor, information processing method, program Active JP7183657B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018177632A JP7183657B2 (en) 2018-09-21 2018-09-21 processor, information processing method, program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018177632A JP7183657B2 (en) 2018-09-21 2018-09-21 processor, information processing method, program

Publications (2)

Publication Number Publication Date
JP2020047221A JP2020047221A (en) 2020-03-26
JP7183657B2 true JP7183657B2 (en) 2022-12-06

Family

ID=69899785

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018177632A Active JP7183657B2 (en) 2018-09-21 2018-09-21 processor, information processing method, program

Country Status (1)

Country Link
JP (1) JP7183657B2 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017064456A1 (en) 2015-10-14 2017-04-20 Arm Limited Move prefix instruction

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3144918B2 (en) * 1992-11-20 2001-03-12 株式会社日立製作所 Vector processing equipment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017064456A1 (en) 2015-10-14 2017-04-20 Arm Limited Move prefix instruction

Also Published As

Publication number Publication date
JP2020047221A (en) 2020-03-26

Similar Documents

Publication Publication Date Title
US8832166B2 (en) Floating point multiplier circuit with optimized rounding calculation
KR100875836B1 (en) Instruction instruction compression apparatus and method for parallel processing BLU computer
US10666288B2 (en) Systems, methods, and apparatuses for decompression using hardware and software
JP2009026106A (en) Instruction code compression method and instruction fetch circuit
CN105264779A (en) Data compression and decompression using simd instructions
US20140047221A1 (en) Fusing flag-producing and flag-consuming instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media
US8949575B2 (en) Reversing processing order in half-pumped SIMD execution units to achieve K cycle issue-to-issue latency
CN118733115A (en) Instruction processing device, method, processor, electronic device and storage medium
US9419646B2 (en) Hardware compression to find backward references with multi-level hashes
TW201712534A (en) Decoding information about a group of instructions including a size of the group of instructions
JP7183657B2 (en) processor, information processing method, program
CN112540795A (en) Instruction processing apparatus and instruction processing method
CN113407351B (en) Method, device, chip, equipment, medium and program product for performing calculations
US9455742B2 (en) Compression ratio for a compression engine
JPS5826584B2 (en) data processing equipment
Tomari et al. Compressing floating-point number stream for numerical applications
US20250156110A1 (en) Transmitting method, receiving method, transmitting apparatus, receiving apparatus, and recording medium
US8898433B2 (en) Efficient extraction of execution sets from fetch sets
US11269651B2 (en) Reusing adjacent SIMD unit for fast wide result generation
US20020087834A1 (en) System and method for encoding constant operands in a wide issue processor
US20230205530A1 (en) Graph Instruction Processing Method and Apparatus
US7454601B2 (en) N-wide add-compare-select instruction
JP2010086321A (en) Memory control system
JPH10161873A (en) Processor
US20230075534A1 (en) Masked shifted add operation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221017

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221107

R151 Written notification of patent or utility model registration

Ref document number: 7183657

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151