JP5598114B2 - Arithmetic unit - Google Patents
Arithmetic unit Download PDFInfo
- Publication number
- JP5598114B2 JP5598114B2 JP2010141377A JP2010141377A JP5598114B2 JP 5598114 B2 JP5598114 B2 JP 5598114B2 JP 2010141377 A JP2010141377 A JP 2010141377A JP 2010141377 A JP2010141377 A JP 2010141377A JP 5598114 B2 JP5598114 B2 JP 5598114B2
- Authority
- JP
- Japan
- Prior art keywords
- pipeline
- control information
- arithmetic unit
- processing
- instruction
- 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
Images
Description
本発明は、演算ユニットに関する。 The present invention relates to an arithmetic unit.
スーパーコンピュータに使用されているプロセッサの中には、図8や図9に示したような演算ユニットを備えたものが存在している。 Among processors used in supercomputers, there are processors equipped with arithmetic units as shown in FIGS.
図8に示してある演算ユニットは、ALU系処理、MUL系処理及びLDST系処理を実行可能な4個の演算器p0〜p3を備え、命令バッファに入力された命令毎に、演算器pX(X=0〜3のいずれか)が複数回動作するユニットである。なお、ALU系処理とは、加算処理、論理演算処理等のことである。また、MUL系処理とは、乗算処理等のことであり、LDST系処理とは、ロード処理、ストア処理等のことである。 The arithmetic unit shown in FIG. 8 includes four arithmetic units p0 to p3 capable of executing ALU processing, MUL processing, and LDST processing, and for each instruction input to the instruction buffer, an arithmetic unit pX ( X = 0 to 3) is a unit that operates a plurality of times. Note that the ALU processing is addition processing, logical operation processing, and the like. Further, the MUL system process is a multiplication process or the like, and the LDST system process is a load process or a store process.
より具体的には、この演算ユニットの制御パスは、各種処理を実行実行可能な各演算器pXに、或る特定の処理を、オペランド(読み出し/書き込み対象とするレジスタファイル内のレジスタ)を変更しながら複数回(複数サイクル分)行わせることが出来るユニット(回路)となっている。そして、この演算ユニットのスケジューラは、サイクル毎に、命令バッファ内の命令をフェッチし、処理を実行していない(又は、処理が現サイクルで完了する)演算器pXが複数サイクル分の動作を開始することになるように、制御パスを制御するユニットとなっている。 More specifically, the control path of this arithmetic unit changes a specific process and an operand (register in a register file to be read / written) to each arithmetic unit pX capable of executing and executing various processes. However, it is a unit (circuit) that can be performed a plurality of times (for a plurality of cycles). Then, the scheduler of this arithmetic unit fetches the instruction in the instruction buffer every cycle, and the arithmetic unit pX not executing the processing (or completing the processing in the current cycle) starts the operation for a plurality of cycles. As a result, it is a unit that controls the control path.
図9に示してある演算ユニットも、図8の演算ユニットと同様に、命令バッファに入力された命令毎に、演算器pX(X=0〜7のいずれか)が複数回動作するユニットである。ただし、この演算ユニットは、全処理機能を有する演算器(図8)ではなく、単一の処理機能しか有さない演算器p0〜p7(ALU系処理のみが可能な演算器p0〜p3、MUL系処理のみが可能な演算器p4、p5、及び、LDST系処理のみが可能な演算器p6、p7)を備えたユニットとなっている。 Similarly to the arithmetic unit of FIG. 8, the arithmetic unit shown in FIG. 9 is also a unit in which the arithmetic unit pX (X = 0 to 7) operates a plurality of times for each instruction input to the instruction buffer. . However, this arithmetic unit is not an arithmetic unit having all processing functions (FIG. 8), but arithmetic units p0 to p7 having only a single processing function (operators p0 to p3 capable of only ALU processing, MUL It is a unit including arithmetic units p4 and p5 capable of performing only system processing and arithmetic units p6 and p7) capable of performing only LDST system processing.
各演算器が単一の処理機能しか有していない演算ユニット(図9)のスケジューラに要求される機能は、基本的には、命令の発行先とすることが可能な,空いている(処理を実行中でない/処理が現サイクルで完了する)演算器を特定する機能だけである。そのため、この演算ユニットは、スケジューラの設計・製造が容易なものとなっている。ただし、この演算ユニットは、ポート数が多いレジスタファイルを必要とするという欠点、つまり、回路規模が大きくならざるを得ないという欠点を有するものとなっている。 The functions required of the scheduler of an arithmetic unit (FIG. 9) in which each arithmetic unit has only a single processing function are basically free (processing) that can be an instruction issue destination. Is not being executed / processing is completed in the current cycle). Therefore, this arithmetic unit is easy to design and manufacture a scheduler. However, this arithmetic unit has a disadvantage that a register file with a large number of ports is required, that is, a circuit scale must be increased.
また、各演算器が全処理機能を有している演算ユニット(図8)のスケジューラに要求される機能は、空いている演算器を特定する機能だけである。従って、この演算ユニットも、スケジューラの設計・製造が容易なものとなっている。しかも、この演算ユニットは、そのレジスタファイルに必要とされるポート数が比較的に少ないものであるため、演算ユニットの製造コストや消費電力を下げるという観点からは、図9の構成よりも、この図8の構成を採用した方が良い。 Further, the function required for the scheduler of the arithmetic unit (FIG. 8) in which each arithmetic unit has all the processing functions is only a function for specifying an empty arithmetic unit. Therefore, this arithmetic unit is also easy to design and manufacture the scheduler. In addition, since this arithmetic unit requires a relatively small number of ports in its register file, this arithmetic unit is less than the configuration of FIG. 9 from the viewpoint of reducing the manufacturing cost and power consumption of the arithmetic unit. It is better to adopt the configuration of FIG.
しかしながら、ALU系処理機能の利用頻度の方が他の処理機能の利用頻度よりも通常高いため、図8の構成を採用した場合、或る演算器のLDST系処理機能やMUL系処理機能の利用頻度が低い演算ユニット、つまり、効率的に利用されない回路を有する演算ユニットが得られてしまうことになる。 However, since the usage frequency of the ALU processing function is usually higher than the usage frequency of the other processing functions, when the configuration of FIG. 8 is adopted, the use of the LDST processing function or the MUL processing function of a certain arithmetic unit is used. An arithmetic unit having a low frequency, that is, an arithmetic unit having a circuit that is not efficiently used is obtained.
そして、効率的に利用されない回路を少なくすることが出来れば、演算ユニットの製造コストや消費電力を低減できる。従って、演算ユニットを、図10に示したように、ALU系処理とMUL系処理とを実行可能な演算器p0、p1と、ALU系処理とLDST系処理とを実行可能なp2、p3とを備えたものとすることが考えられる。 If the number of circuits that are not efficiently used can be reduced, the manufacturing cost and power consumption of the arithmetic unit can be reduced. Accordingly, as shown in FIG. 10, the arithmetic unit includes arithmetic units p0 and p1 capable of executing ALU processing and MUL processing, and p2 and p3 capable of executing ALU processing and LDST processing. It is conceivable to be provided.
ただし、この構成を採用した演算ユニットでは、各演算器が全処理機能を有している演算ユニット(図8)では生じない問題が生じることになる。 However, in the arithmetic unit adopting this configuration, there arises a problem that does not occur in the arithmetic unit (FIG. 8) in which each arithmetic unit has all processing functions.
具体的には、図8に示してある構成は、各命令を空いているパイプライン〔演算器とそれを複数回動作させるための,制御パス内の回路とからなる部分〕に対して発行するスケジューラを搭載しておけば、各パイプラインが効率的に機能する(各パイプラインの未利用時間が短い)演算ユニットを実現することが出来るものである。 Specifically, in the configuration shown in FIG. 8, each instruction is issued to an empty pipeline (part consisting of an arithmetic unit and a circuit in a control path for operating it multiple times). If a scheduler is installed, it is possible to realize an arithmetic unit in which each pipeline functions efficiently (the unused time of each pipeline is short).
これに対して、図10に示してある構成は、そのようなレベルの命令発行機能しか有さないスケジューラを用いたのでは、各パイプラインが効率的に機能する演算ユニットを実現できないものとなっている。 On the other hand, the configuration shown in FIG. 10 cannot realize an arithmetic unit in which each pipeline functions efficiently if a scheduler having only such a level of instruction issue function is used. ing.
具体的には、図10の演算ユニットのスケジューラが、命令毎に、その命令を処理(実行)する機能を有する空きパイプラインを予め定められている順に探索し、探索したパイプラインに対して命令を発行するものである共に、ALU系命令については、パイプラインp0、p1、p2、p3の順に空きパイプラインを探索し、MUL系命令については、パイプラインp0、p1の順に空きパイプラインを探索し、LDST系命令については、パイプラインp2、p3の順に空きパイプラインを探索するものであると仮定する。 Specifically, for each instruction, the scheduler of the arithmetic unit in FIG. 10 searches for an empty pipeline having a function to process (execute) the instruction in a predetermined order, and the instruction is searched for the searched pipeline. For ALU instructions, search for empty pipelines in the order of pipelines p0, p1, p2, and p3. For MUL instructions, search for empty pipelines in the order of pipelines p0 and p1. For the LDST instruction, it is assumed that an empty pipeline is searched in the order of pipelines p2 and p3.
そして、そのような構成を有する演算ユニットの命令バッファに、加算処理を8回行うことが必要なALU系命令vadd、乗算処理を8回行うことが必要なMUL系命令vmul、ロード処理を8回行うことが必要なLDST系命令vload、乗算処理を8回行うことが必要なMUL系命令vmulが、この順に、入力された場合を考える。 Then, in the instruction buffer of the arithmetic unit having such a configuration, an ALU instruction vadd that needs to be added eight times, a MUL instruction vmul that needs to be multiplied eight times, and a load process eight times Consider a case where an LDST instruction vload that needs to be executed and a MUL instruction vmul that needs to be multiplied eight times are input in this order.
この場合、図11に示したように、パイプラインp0に対して、最初の命令vaddが発行されてから、パイプラインp1、p2に対して、順次、命令vmul、vloadが発行される。従って、4番目の命令vmulのスケジューラによるフェッチ時には、MUL系命令を処理できないパイプラインp3しか空いていないことになる。そして、MUL系命令を処理できるパイプラインが空くのは9サイクル目であるため、4番目の命令vmulは、9サイクル目にパイプラインp0に対して発行されることになる。 In this case, as shown in FIG. 11, after the first instruction vadd is issued to the pipeline p0, the instructions vmul and vload are sequentially issued to the pipelines p1 and p2. Therefore, when the fourth instruction vmul is fetched by the scheduler, only the pipeline p3 that cannot process the MUL instruction is free. Since the pipeline that can process the MUL instruction is free in the ninth cycle, the fourth instruction vmul is issued to the pipeline p0 in the ninth cycle.
上記した一連の命令がこのような形で処理されるということは、この演算ユニットでは
、各パイプラインが効率的に利用されていないということである。何故ならば、これらの命令は、図12に示したように、まず、パイプラインp3に対して、最初の命令vaddを発行してから、パイプラインp1、p2、p0に対して、順次、命令vmul、vload、vmulを発行するようにすれば、サイクル毎に発行できるものとなっているからである。
That the series of instructions described above are processed in this manner means that each pipeline is not efficiently used in this arithmetic unit. This is because these instructions, as shown in FIG. 12, first issue the first instruction vadd to the pipeline p3, and then sequentially execute the instructions to the pipelines p1, p2, and p0. This is because if vmul, vload, and vmul are issued, they can be issued for each cycle.
このように、図10に示してある構成は、比較的に単純な構成のスケジューラを用いたのでは、各パイプラインが効率的に機能する演算ユニットを実現できないものとなっているのであるが、命令バッファ内の命令が、図11に示したような順番で各パイプラインに発行すべきものであることを判断できるスケジューラを設計することは極めて困難なことである。しかも、そのようなスケジューラは、回路規模が大きなものとならざるを得ない。 As described above, the configuration shown in FIG. 10 cannot realize an arithmetic unit in which each pipeline functions efficiently if a scheduler having a relatively simple configuration is used. It is extremely difficult to design a scheduler that can determine that instructions in the instruction buffer should be issued to each pipeline in the order shown in FIG. Moreover, such a scheduler must be large in circuit scale.
そこで、開示の技術の課題は、マルチサイクル動作をする複数のパイプラインを備えた、安価に製造可能な演算ユニットであって、複雑な構成のスケジューラを搭載しなくても、各パイプラインを効率的に動作させることが出来る演算ユニットを提供することにある。 Therefore, the problem with the disclosed technology is that it is an arithmetic unit that can be manufactured at low cost with multiple pipelines that perform multi-cycle operation, and each pipeline can be efficiently operated without having a scheduler with a complicated configuration. It is to provide an arithmetic unit that can be operated in an automatic manner.
上記課題を解決するために、開示の技術の一態様の演算ユニットは、第1種処理の実行機能と第2種処理の実行機能とを有する1つ以上の第1パイプライン、及び、第1種処理の実行機能と第3種処理の実行機能とを有する1つ以上の第2パイプラインを含む、マルチサイクル動作をする複数のパイプラインと、新たな処理を開始できる状態にある第2パイプラインに、或る第1パイプラインが既に開始している,第1種処理を複数回実行することにより完了する第1種ループ処理を引き継がせる機能を有する制御回路とを備える。 In order to solve the above problems, an arithmetic unit according to an aspect of the disclosed technology includes one or more first pipelines having a first type process execution function and a second type process execution function, and a first type A plurality of pipelines that perform a multi-cycle operation, including one or more second pipelines having a seed processing execution function and a third type processing execution function, and a second pipe that is ready to start a new process And a control circuit having a function of taking over a first type loop process that has already been started by a first pipeline and that is completed by executing the first type process a plurality of times.
上記構成を採用しておけば、マルチサイクル動作をする複数のパイプラインを備えた、安価に製造可能な演算ユニットであって、複雑な構成のスケジューラを搭載しなくても、各パイプラインを効率的に動作させることが出来る演算ユニットを実現することが出来る。 If the above configuration is adopted, it is an arithmetic unit that can be manufactured at low cost with multiple pipelines that perform multi-cycle operation, and each pipeline can be efficiently operated without having a complicated scheduler. It is possible to realize an arithmetic unit that can be operated automatically.
まず、図1及び図2を用いて、実施形態に係る演算ユニット10の概要を説明する。なお、これらの図のうち、図1は、演算ユニット10の概略構成図であり、図2は、演算ユニット10の制御情報レジスタ21X(X=0〜3)に記憶される制御情報の説明図であ
る。
First, the outline of the
図1に示してあるように、実施形態に係る演算ユニット10は、命令バッファ11、スケジューラ12、制御パス13及びデータパス14を備えている。
As shown in FIG. 1, the
データパス14は、データに対する各種処理を実際に行うユニット(機能ブロック、回路)である。このデータパス14は、レジスタファイル25と、4個の演算器p0〜p4とを、備えている。
The
レジスタファイル25は、複数(本実施形態では、8個)のリードポート、及び、複数のライトポート(図示略)を備えた,複数のレジスタ(本実施形態では、32個の64ビットレジスタ)の集合体である。
The
演算器p0、p1は、いずれも、ALU系処理(加算処理、論理演算処理等)とMUL系処理(乗算処理等)とを実行可能なユニット(以下、MUL系演算器とも表記する)である。演算器p2、p3は、いずれも、ALU系処理とLDST系処理(ロード処理、ストア処理等)とを実行可能なユニット(以下、LDST系演算器とも表記する)である。 The arithmetic units p0 and p1 are both units (hereinafter also referred to as MUL type arithmetic units) capable of executing ALU processing (addition processing, logical operation processing, etc.) and MUL processing (multiplication processing, etc.). . The arithmetic units p2 and p3 are both units (hereinafter also referred to as LDST type arithmetic units) capable of executing ALU processing and LDST processing (load processing, store processing, etc.).
データパス14内の各演算器pX(X=0〜3)は、1サイクル(後述するスケジューラ12の命令発行周期)の間に1回分の処理が完了するユニットである。なお、各演算器pXは、1サイクルの間に1処理しか行えないユニット(複数の処理を同時に実行することは出来ないユニット)である。また、図示の都合上、図1には、各演算器pXの演算結果をレジスタファイル25外に示してあるが、データパス14は、各演算器pXの演算結果がレジスタファイル25内の特定のレジスタに格納されるものである。
Each arithmetic unit pX (X = 0 to 3) in the
命令バッファ11は、演算ユニット10が受け付けた命令を時系列的に記憶しておくためのバッファ(一種のFIFOメモリ)である。
The
スケジューラ12は、バッファ11内の先頭の命令(最も過去に受け付けた命令)をサイクル毎に読み出し(フェッチし)、読み出した命令に応じた内容の処理を、データパス14(及び制御パス13)に開始させるユニットである。このスケジューラ12の詳細については後述するが、演算ユニット10が受け付ける命令(スケジューラ12が処理する命令)は、原則として、或る演算器pXを複数回動作させることにより遂行できる命令である。より具体的には、演算ユニット10が受け付ける命令は、原則として、加算処理等(いずれかの演算器pXが実行可能な処理)をそのオペランドを変更しつつ複数回繰り返すことによって遂行できる命令となっている。
The
制御パス13は、スケジューラ12から与えられる制御情報(詳細は後述)に基づきデータパス14を制御するユニットである。この制御パス13は、4つの制御情報レジスタ210〜213、4つの命令更新回路220〜223、4つの2入力マルチプレクサ230〜
233、及び、4つの3入力マルチプレクサ240〜243を、備えている。
The
23 3 , and four three-input multiplexers 24 0 to 24 3 .
制御パス13が備える各制御情報レジスタ21X(X=0〜3)は、図2に示してある
ような構成の制御情報、すなわち、演算器制御情報、オペランド情報、現在のループ回数等からなる制御情報(本実施形態では、32ビットの情報)を記憶しておくためのレジス
タである。
Each control information register 21 X (X = 0 to 3) provided in the
この制御情報は、スケジューラ12が初期値を設定し、命令更新回路22Xが定期的に
(次サイクルへの移行時に)その内容を更新する情報である。
This control information is information in which the
具体的には、制御情報レジスタ21X上の制御情報中の演算器制御情報は、次サイクル
にて行うべき処理(処理の種類)を指定するために、演算器pXに供給される情報(図1参照)である。オペランド情報は、演算器制御情報が指定する種類の処理時に読み出し/書き込み対象とすべき,レジスタファイル25内の幾つかのレジスタの指定情報(図2では、src0, src1, dst)を含む情報である。各制御情報レジスタ21X上のオペランド情報は、図1に模式的に示してあるように、演算器pXにデータを出力するレジスタの指定情報等として(図1には、src0, src1相当のものだけを2本の矢印で示してある)、レジスタファイル25に供給されている。
Specifically, the arithmetic unit control information in the control information on the control information register 21 X is information supplied to the arithmetic unit pX in order to specify the processing (type of processing) to be performed in the next cycle (see FIG. 1). Operand information is information including designation information (src0, src1, dst in FIG. 2) of some registers in the
現在のループ回数(図2)は、制御情報レジスタ21X上の制御情報を更新する必要が
ある(次サイクルも演算器pXを機能させる必要がある)か否かを判断するために命令更新回路22Xが参照する情報である。なお、次サイクルも演算器pXを機能させる必要が
ある場合に命令更新回路22Xが行う処理は、制御情報レジスタ21Xから読み込んだ制御情報を、オペランド情報及び現在のループ回数を変更した上で出力する(制御情報レジスタ21Xに設定し直す)処理である。
The current loop count (FIG. 2) is an instruction update circuit for determining whether or not the control information on the control information register 21 X needs to be updated (it is also necessary to make the arithmetic unit pX function in the next cycle). 22 X is information to be referred to. Note that the processing performed by the instruction update circuit 22 X when the arithmetic unit pX needs to function in the next cycle is performed after changing the operand information and the current loop count for the control information read from the control information register 21 X. This is a process of outputting (resetting to the control information register 21 X ).
制御パス13(図1)内の各2入力マルチプレクサ23Xは、スケジューラ12による
制御情報レジスタ21Xへの制御情報の設定、及び、命令更新回路22Xによる制御情報の更新を可能とするために設けられているマルチプレクサである。
Each 2-input multiplexer 23 X in the control path 13 (FIG. 1) enables the
各3入力マルチプレクサ24Xは、命令更新回路22Xによって制御情報レジスタ21X
に設定される制御情報を、他の制御情報レジスタ21Y(Y≠X;詳細は後述)に設定で
きるようにするために設けられているマルチプレクサである。
Each three-input multiplexer 24 X is controlled by the instruction update circuit 22 X using the control information register 21 X.
Is a multiplexer provided so that the control information set in can be set in another control information register 21 Y (Y ≠ X; details will be described later).
図1に示してある回路構成(他構成要素との接続形態)から明らかなように、3入力マルチプレクサ240は、LDST系演算器p2又はp3に関する更新後の制御情報(つま
り、命令更新回路222、223の出力)を、制御情報レジスタ210に設定できるものと
なっている。3入力マルチプレクサ241も、LDST系演算器p2又はp3に関する更
新後の制御情報を、制御情報レジスタ211に設定できるものとなっている。
And Aru circuit configuration shown in FIG. 1 as apparent from (connection form between the other components), 3-input multiplexer 24 0 is control information updated about LDST ALUs p2 or p3 (i.e., the instruction updating circuit 22 2, 22 3 of the output), which is assumed to be set in the control information register 21 0. The 3-input multiplexer 24 1 can also set updated control information related to the LDST arithmetic unit p2 or p3 in the control information register 21 1 .
そして、3入力マルチプレクサ242、243は、それぞれ、MUL系演算器p0又はp1に関する更新後の制御情報(命令更新回路220、221の出力)を、制御情報レジスタ212、213に設定できるものとなっている。 Then, the three-input multiplexers 24 2 and 24 3 respectively send the updated control information (outputs of the instruction update circuits 22 0 and 22 1 ) related to the MUL arithmetic units p0 or p1 to the control information registers 21 2 and 21 3 . It can be set.
以上のことを前提に、以下、演算ユニット10の構成及び動作をさらに詳細に説明する。なお、以下の説明では、制御情報レジスタ21X、命令更新回路22X、演算器pX等からなる部分〔演算器pXと演算器pXを複数回動作させるための構成とからなる部分〕のことを、パイプラインpXと表記する。また、パイプラインp0、p1(つまり、MUL系演算器p0、p1を含むパイプライン)のことを、MUL系パイプラインp0、p1と表記し、パイプラインp2、p3のことを、LDST系パイプラインp2、p3と表記する。
Based on the above, the configuration and operation of the
図3に、スケジューラ12が、命令バッファ11上の1命令をいずれかのパイプラインpXに対して発行するために実行する命令発行処理の流れ図を示す。なお、この命令発行処理は、スケジューラ12が、原則として(ステップS105が実行された場合が例外)
、サイクル毎に開始する処理である。また、実際の発行制約はレジスタ干渉など他にもいろいろあるが、本処理の流れでは簡単のため資源競合のみ存在するものと仮定する。
FIG. 3 shows a flowchart of instruction issue processing executed by the
This process starts every cycle. Although there are various other issuance restrictions such as register interference, it is assumed that only resource contention exists for the sake of simplicity in this processing flow.
すなわち、所定タイミングとなったため、この命令発行処理を開始したスケジューラ12は、まず、命令バッファ11上の先頭の命令(最も過去に受け付けた命令)を読み出す(ステップS101)。
That is, since the predetermined timing has come, the
次いで、スケジューラ12は、読み出した命令を発行可能なパイプラインpXが空いているか否かを、命令の種類別に各パイプラインpXに予め割り当てられている優先順位順に確認する(ステップS102)。なお、『パイプラインpXが空いている』とは、新たな処理を次サイクルに開始できる状態にある(パイプラインpXが処理を行っていない、又は、パイプラインpXが実行中の処理が現サイクルで終わる)ということである。また、或る命令を発行可能なパイプラインpXとは(図1参照)、ALU系命令(加算命令、論理演算命令等)については、パイプラインp0〜p3のことであり、MUL系命令(乗算命令等)については、パイプラインp0、p1のことであり、LDST系命令(ロード命令、ストア命令等)については、パイプラインp2、p3のことである。
Next, the
読み出した命令を発行可能なパイプラインpXが存在していた場合(ステップS103;YES)、スケジューラ12は、そのパイプラインpXに対して命令を発行する(ステップS108)。より具体的には、スケジューラ12は、ステップS102の処理により空いていることを見出したパイプラインpXの制御情報レジスタ21Xに、読み出した命
令に応じた内容の制御情報(図2参照)を設定する処理を、このステップS108にて行う。
If there is a pipeline pX that can issue the read instruction (step S103; YES), the
そして、ステップS108の処理を終えたスケジューラ12は、この図3の処理を一旦終了し、図3の処理を開始すべきタイミングとなる(1サイクルが経過して命令バッファ11上の次の命令を処理すべきタイミングとなる)のを待機する状態となる。
Then, the
一方、読み出した命令を発行可能なパイプラインpXが存在していなかった場合(ステップS103;NO)、スケジューラ12は、処理引継可能条件が満たされているか否かを判断する(ステップS104)。
On the other hand, when there is no pipeline pX that can issue the read instruction (step S103; NO), the
ここで、処理引継可能条件とは、読み出した命令がMUL系命令である場合には、『空きLDST系パイプライン及びALU系処理を実行中のMUL系パイプラインが存在する』(LDST系パイプラインp2、p3の少なくとも一方が空いており、且つ、MUL系パイプラインp0、p1の少なくとも一方がALU系処理を実行している)という条件のことである。また、読み出した命令がLDST系命令である場合には、『空きMUL系パイプライン及びALU系処理を実行中のLDST系パイプラインが存在する』(MUL系パイプラインp0、p1の少なくとも一方が空いており、且つ、LDST系パイプラインp2、p3の少なくとも一方がALU系処理を実行している』という条件のことである。 Here, the process takeover enabling condition is that when the read instruction is a MUL instruction, “there is an empty LDST pipeline and a MUL pipeline executing ALU processing” (LDST pipeline) at least one of p2 and p3 is free, and at least one of the MUL pipelines p0 and p1 is executing ALU processing). When the read instruction is an LDST instruction, “There is an empty MUL pipeline and an LDST pipeline executing ALU processing” (at least one of the MUL pipelines p0 and p1 is empty). And at least one of the LDST pipelines p2 and p3 is executing ALU processing ”.
スケジューラ12は、処理引継可能条件が満たされていた場合には、ALU系処理を実行している1個のパイプライン(MUL系命令の処理時にはMUL系パイプライン、LDST系命令の処理時にはLDST系パイプライン)を、処理引継元パイプラインとして特定し、空いている1個のパイプライン(MUL系命令の処理時にはLDST系パイプライン、LDST系命令の処理時にはMUL系パイプライン)を、処理引継先パイプラインとして特定する処理も行う。なお、この処理は、処理引継元/処理引継先パイプラインとすることが可能なパイプラインが2個存在した場合、予め設定されているアルゴリズムによりそれらのパイプラインの中から、処理引継元/処理引継先パイプラインとする1個のパイプラインを選択するものとなっている。
If the process takeover condition is satisfied, the
要するに、ステップS104にて、スケジューラ12は、読み出した命令がMUL系命令であり、LDST系パイプラインp2、p3の少なくとも一方が空いており、MUL系パイプラインp0、p1の少なくとも一方がALU系処理を実行していた場合には、処理引継可能条件が満たされていると判断する。また、スケジューラ12は、当該判断時に、ALU系処理を実行していることを見出した1個のMUL系パイプライン、空いていることを見出した1個のLDST系パイプラインを、それぞれ、処理引継元パイプライン、処理引継先パイプラインとして特定する。
In short, in step S104, the
スケジューラ12は、読み出した命令がLDST系命令であり、MUL系パイプラインp0、p1の少なくとも一方が空いており、且つ、LDST系パイプラインp2、p3の少なくとも一方がALU系処理を実行していた場合にも、処理引継可能条件が満たされていると判断する。また、スケジューラ12は、当該判断時に、ALU系処理を実行していることを見出した1個のLDST系パイプライン、空いていることを見出した1個のMUL系パイプラインを、それぞれ、処理引継元パイプライン、処理引継先パイプラインとして特定する。
In the
そして、スケジューラ12は、処理引継可能条件が満たされていると判断した場合(ステップS104;YES)には、処理引継元パイプラインに関する更新後の制御情報を、処理引継先パイプラインに関する制御情報レジスタ21Xに設定する(ステップS106
)。
If the
).
より具体的には、スケジューラ12は、読み出した命令がMUL系命令であった場合には、処理引継元パイプラインpK(K=0or1)の命令更新回路22Kによって更新され
た制御情報が、処理引継先パイプラインpL(L=2or3)に関する制御情報レジスタ21Lに設定されるように、3入力マルチプレクサ24Lを制御する。また、スケジューラ12は、読み出した命令がLDST系命令であった場合には、処理引継元パイプラインpK(K=2or3)の命令更新回路22Kによって更新された制御情報が、処理引継先パイプ
ラインpL(L=0or1)に関する制御情報レジスタ21Lに設定されるように、3入力
マルチプレクサ24Lを制御する。
More specifically, when the read instruction is a MUL instruction, the
次いで、スケジューラ12は、処理引継元パイプラインpKに対して、命令バッファ11から読み出した命令を発行する処理(ステップS107)、すなわち、制御情報レジスタ21Kに制御情報を書き込む処理を行う。
Then, the
そして、スケジューラ12は、この図3の処理を一旦終了して、図3の処理を再び実行すべきタイミングとなるのを待機する状態となる。
Then, the
一方、ステップS104にて、処理引継可能条件が満たされていないと判断した場合(NO)、スケジューラ12は、いずれかのパイプラインの処理が完了する(いずれかのパイプラインが、新たな処理を開始できる状態となる)のを待機する(ステップS105)。
On the other hand, if it is determined in step S104 that the process takeover condition is not satisfied (NO), the
そして、スケジューラ12は、いずれかのパイプラインの処理が完了した場合には、ステップS102以降の処理を再び開始する。なお、流れ図には明示していないが、この場合に、スケジューラ12がステップS102及びS103にて実行する処理は、処理が完了したパイプラインが、命令バッファ11から読み出してある命令(前サイクルで発行できなかった命令)を発行可能なものであるか否かを判断する処理である。
Then, when the processing of any pipeline is completed, the
以上の説明により既に明らかであるとは考えるが、ここで、具体例に基づき、本演算ユ
ニット10の動作(機能)を説明しておくことにする。
Although it is considered to be clear from the above description, the operation (function) of the present
既に説明したものと同じ命令vadd、vmul、vload、vmulが、この順に、演算ユニット10の命令バッファ11に入力された場合を考える。
Consider a case where the same instructions vadd, vmul, vload, vmul as already described are input to the
この場合、vloadまでの各命令の処理時には、図3のステップS103にてYES側への分岐が行われる。そのため、各パイプラインに対する優先順位の設定内容に応じて、例えば、vadd、vmul、vloadが、それぞれ、パイプラインp0、p1、p2に対して発行されることになる。 In this case, when each instruction up to vload is processed, branching to the YES side is performed in step S103 of FIG. Therefore, for example, vadd, vmul, and vload are issued to the pipelines p0, p1, and p2, respectively, according to the priority setting contents for each pipeline.
そして、vadd、vmul、vloadが、それぞれ、パイプラインp0、p1、p2に対して発行されている場合には、4個目の命令vmulの処理時に、MUL系処理を行えないLDST系パイプラインp3だけしか空いていないことになる。従って、この場合、スケジューラ12は、命令を発行可能なパイプラインが存在しないと判断(ステップS103;NO)して、処理引継可能条件が満たされているか否かを判断する(ステップS104)。
If vadd, vmul, and vload are issued to the pipelines p0, p1, and p2, respectively, the LDST pipeline p3 that cannot perform MUL-related processing when the fourth instruction vmul is processed It will only be free. Therefore, in this case, the
そして、vmulがMUL系命令であり、LDST系パイプラインp3が空いており、MUL系パイプラインp0がALU系処理(vadd)を実行中であるため、スケジューラ12は、ステップS104にて、処理引継可能条件が満たされていると判断する。また、スケジューラ12は、ステップS104にて、ALU系処理を実行中のMUL系パイプラインp0を処理引継元パイプラインとして特定し、空いているLDST系パイプラインp3を処理引継先パイプラインとして特定する。
Since vmul is a MUL instruction, the LDST pipeline p3 is free, and the MUL pipeline p0 is executing an ALU process (vadd), the
その後、スケジューラ12は、ステップS106の処理を行う。すなわち、スケジューラ12は、処理引継元パイプラインp0の命令更新回路220によって更新された制御情
報が、処理引継先パイプラインp3に関する制御情報レジスタ213に設定されるように
、3入力マルチプレクサ243を制御する。
Thereafter, the
既に説明したように、本演算ユニット10が備える各パイプラインpXは、サイクル毎に、オペランドのみが異なる処理を繰り返すものである。また、いずれのパイプラインpXもALU系処理を実行可能なものであり、スケジューラ12が処理引継元パイプラインとして特定するパイプラインは、ALU系処理を実行しているパイプラインである。従って、パイプラインp0の次サイクル用の制御情報を、パイプラインp3の次サイクル用の制御情報とすれば、図4に模式的に示したように、処理引継元パイプラインp0がそれまで行っていた処理(図4では、“vadd”)の残りの部分が、その後、処理引継先パイプラインp3によって行われる(〔1〕)ことになる。
As already described, each pipeline pX provided in the present
より具体的には、図5A、図5Bに模式的に示してあるように、パイプラインp3によって、パイプラインp0がそれまで行っていた処理の残りの部分(この場合、加算処理(ALU系処理)を5回繰り返すことが必要な処理)が行われることになる。 More specifically, as schematically shown in FIGS. 5A and 5B, the pipeline p3 causes the remaining part of the processing that the pipeline p0 has performed so far (in this case, addition processing (ALU processing) ) Is required to be repeated five times.
また、ステップS106の処理を終えたスケジューラ12は、図4に模式的に示してあるように、制御情報を移動した処理引継元パイプラインp0に対してvmulを発行する(〔2〕)。従って、図5A、図5Bに示してあるように、4個目の命令vmulに関する処理が、パイプラインp0によって、その命令の読み出し直後の4サイクル目から開始されることになる。
Further, as schematically shown in FIG. 4, the
以上の説明から明らかなように、実施形態に係る演算ユニット10は、図6の演算ユニットに比べて、同時に実行できるMUL系処理、LDST系処理の個数が少ないため多少
性能は劣る。ただ、一般にMUL系処理やLDST系処理はプログラム中の頻度が多くないため、多くのプログラムで同等程度の性能を期待できる。なお、この図6は、既に説明した、全処理機能を有する4つのパイプラインp0〜p3を備えた演算ユニット(図8)の構成を、より詳細に(図1に示した演算ユニット10の構成と同レベルで)示した図である。
As is apparent from the above description, the
また、演算ユニット10のスケジューラ12、制御パス13は、それぞれ、図6の演算ユニットのスケジューラ、制御パスに対して簡単な改良を施せば実現できるものとなっている。そして、演算ユニット10のデータパス14は、図6の演算ユニットのデータパスよりも、製造に要する素子数及び配線数が少なく、MUL系処理やLDST系処理のような利用頻度が低く素子数が大きい回路も少ないユニットとなっている。
Further, the
従って、演算ユニット10に採用されている構成は、従来と同等程度の性能を有し、従来よりも消費電力が少ない演算ユニットを、従来よりも安価に実現できるものとなっていると言うことが出来る。
Therefore, it can be said that the configuration adopted in the
また、演算ユニット10は、図9に示した構成に比べて性能的には多少劣るが、ポート数が比較的に少ないレジスタファイルしか必要としないものである。一方、図9の演算ユニットは、より多くのポート(16個のリードポートと8個のライトポート)を備えたレジスタファイルが必要とされるが故に、面積が非常に大きくなるものである。
The
従って、演算ユニット10に採用されている構成は、この図9の構成よりもコストパフォーマンスの面で優れたものとなっていることにもなる。
Therefore, the configuration employed in the
また、図7に示した構成は、図9に示した構成を、その機能が『データパスに同時期に発行可能な命令数が4個に制限されているスケジューラ(4個以下のパイプラインしか動作させることが出来ないスケジューラ)を備えた演算ユニット』と同機能となるように変形/改良したものである。このように、レジスタファイルと各パイプラインとの間に4入力マルチプレクサを設けておけば、単一の処理機能を有する複数のパイプラインを備えたタイプの演算ユニットに、リードポート数がレジスタファイル25と等しいレジスタファイルを使用できることになる。ただし、データパスにおける情報のビット数(幅)の方が、制御パスにおける情報のビット数よりも大きいし、必要とされるマルチプレクサの数も、図7に示した構成の方が多い。しかも、図7に示した構成の演算ユニットに、レジスタファイル25と全く同一構成のレジスタファイルを使用するためには、各パイプラインの出力側にもマルチプレクサを設けることが必要となる。
The configuration shown in FIG. 7 is the same as the configuration shown in FIG. 9 in that the function is “scheduler in which the number of instructions that can be issued to the data path at the same time is limited to four (only four pipelines or less It is modified / improved so as to have the same function as the “operation unit having a scheduler that cannot be operated”. In this way, if a 4-input multiplexer is provided between the register file and each pipeline, the number of read ports can be set to the
従って、演算ユニット10に採用されている構成は、図7の構成と比しても、優れたものとなっていると言うことが出来る。
Therefore, it can be said that the configuration adopted in the
以上のように、実施形態に係る演算ユニット10に採用されている構成は、他のいずれの構成を採用した場合よりも、製造コストが低く消費電力が少ない演算ユニットを実現できるものとなっている。従って、スーパーコンピュータ用のプロセッサや、一般電子機器用のプロセッサ(DSP等)の演算ユニットを、上記構成のものとしておけば、既存のものよりも製造コストが低く消費電力が少ないプロセッサを実現できることになる。
As described above, the configuration adopted in the
《変形形態》
上記した演算ユニット10は、各種の変形を行うことが出来るものである。例えば、若干、性能が低下することにはなるが、演算ユニット10を、LDST系パイプラインからMUL系パイプラインへの制御情報の移動、又は、MUL系パイプラインからLDST系パイプラインへの制御情報の移動のみが可能なものに変形することが出来る。
<Deformation>
The
スケジューラ12を、制御情報の移動と、処理引継元パイプラインへの命令発行とを別サイクルで行うものに変形することも出来る。また、演算ユニット10を、ベクトルユニットや、SIMD(Single Instruction Multiple Data)のようなユニット(複数個の制御情報レジスタ21Xに、同時に、制御情報が設定されることがあるユニット)に変形する
ことも出来る。さらに、演算ユニット10を、パイプラインの数が上記したものとは異なるユニットや、各パイプライン(実行ステージ)がベクトルユニット/SIMD等であるユニット、各パイプラインの機能(各パイプラインが有する処理機能の組み合わせ)が上記したものとは異なるユニット等に変形することも出来る。
The
また、演算ユニット10は、或るパイプラインが既に開始している処理(ALU系処理を繰り返す処理)を他のパイプラインに引き継がせるための制御が、スケジューラ12と3入力マルチプレクサ240〜243とを主要構成要素とした回路により行われるユニットであったが、当該回路として、他の構成を有する回路を採用することも出来る。
In addition, the
10 演算ユニット
11 命令バッファ
12 スケジューラ
13 制御パス
14 データパス
210〜213 制御情報レジスタ
220〜223 命令更新回路
230〜233 2入力マルチプレクサ
240〜243 3入力マルチプレクサ
25 レジスタファイル
DESCRIPTION OF
Claims (5)
新たな処理を開始できる状態にある第2パイプラインに、或る第1パイプラインが既に開始している,第1種処理を複数回実行することにより完了する第1種ループ処理を引き継がせる機能を有する制御回路と、
を備えることを特徴とする演算ユニット。 One or more first pipelines having an execution function of a first type process and an execution function of a second type process, and one or more having an execution function of a first type process and an execution function of a third type process A plurality of pipelines for multi-cycle operation, including a second pipeline of
A function of taking over the first type loop process completed by executing the first type process a plurality of times, which has already been started by a certain first pipeline, to the second pipeline ready to start a new process. A control circuit having
An arithmetic unit comprising:
新たな処理を開始できる状態にある第1パイプラインに、或る第2パイプラインが既に開始している前記第1種ループ処理を引き継がせる機能を有する
ことを特徴とする請求項1に記載の演算ユニット。 The control circuit further comprises:
The first pipeline in a state in which a new process can be started has a function of taking over the first type loop process already started by a certain second pipeline. Arithmetic unit.
いずれかのパイプラインに開始させるべき処理が、第2種処理を複数回実行することにより完了する第2種ループ処理であり、新たな処理を開始できる状態にある第1パイプラインが存在せず、新たな処理を開始できる状態にある第2パイプライン及び第1種ループ処理を実行している第1パイプラインが存在していた場合に、新たな処理を開始できる状態にある当該第2パイプラインに、或る第1パイプラインが実行中の第1種ループ処理を引き継がせてから、当該第1パイプラインに、いずれかのパイプラインに実行させるべき前記第2種ループ処理を開始させ、
いずれかのパイプラインに開始させるべき処理が、第3種処理を複数回実行することにより完了する第3種ループ処理であり、新たな処理を開始できる状態にある第2パイプラインが存在せず、新たな処理を開始できる状態にある第1パイプライン及び第1種ループ処理を実行している第2パイプラインが存在していた場合に、新たな処理を開始できる状態にある当該第1パイプラインに、或る第2パイプラインが実行中の第1種ループ処理を引き継がせてから、当該第2パイプラインに、いずれかのパイプラインに実行させるべき前記第3種ループ処理を開始させる
ことを特徴とする請求項2に記載の演算ユニット。 The control circuit includes:
The process to be started in any one of the pipelines is a second type loop process that is completed by executing the second type process a plurality of times, and there is no first pipeline that is ready to start a new process. When there is a second pipeline that is ready to start a new process and a first pipeline that is executing the first type loop process, the second pipe that is ready to start a new process Causing the line to take over the first type loop process being executed by a certain first pipeline, and then causing the first pipeline to start the second type loop process to be executed by any of the pipelines;
The process to be started in any one of the pipelines is a third type loop process that is completed by executing the third type process a plurality of times, and there is no second pipeline in a state where a new process can be started. When there is a first pipeline ready to start a new process and a second pipeline executing a first type loop process, the first pipe ready to start a new process Causing the second pipeline to take over the first type loop processing being executed by a certain second pipeline, and then causing the second pipeline to start the third type loop processing to be executed by any one of the pipelines. The arithmetic unit according to claim 2, wherein:
それぞれ、特定のパイプラインに対応づけられた,対応するパイプラインの次サイクルにおける動作内容を規定する制御情報がサイクル毎に設定される複数の制御情報レジスタと、
任意の第1パイプライン用の制御情報レジスタ内の制御情報を任意の第2パイプライン用の制御情報レジスタに移動する機能、及び、任意の第2パイプライン用の制御情報レジスタ内の制御情報を任意の第1パイプライン用の制御情報レジスタに移動する機能を有する制御情報移動回路と、
を含む
ことを特徴とする請求項2に記載の演算ユニット。 The control circuit comprises:
A plurality of control information registers, each of which is associated with a specific pipeline and in which control information defining the operation content in the next cycle of the corresponding pipeline is set for each cycle;
The function of moving control information in the control information register for any first pipeline to the control information register for any second pipeline, and the control information in the control information register for any second pipeline A control information moving circuit having a function of moving to a control information register for an arbitrary first pipeline;
The arithmetic unit according to claim 2, comprising:
いずれかのパイプラインに開始させるべき処理が、第2種処理を複数回実行することにより完了する第2種ループ処理であり、新たな処理を開始できる状態にある第1パイプラインが存在せず、新たな処理を開始できる状態にある第2パイプライン及び第1種ループ処理を実行している第1パイプラインが存在していた場合に、前記制御情報移動回路を制御することにより、第1種ループ処理を実行中の或る第1パイプライン用の制御情報レジスタに設定される制御情報を、新たな処理を開始できる状態にある第2パイプライン用の
制御情報レジスタに移動させてから、当該第1パイプライン用の制御情報レジスタに、いずれかのパイプラインに開始させるべき前記第2種ループ処理に関する制御情報を設定するスケジューラであって、
いずれかのパイプラインに開始させるべき処理が、第3種処理を複数回実行することにより完了する第3種ループ処理であり、新たな処理を開始できる状態にある第2パイプラインが存在せず、新たな処理を開始できる状態にある第1パイプライン及び第1種ループ処理を実行している第2パイプラインが存在していた場合に、前記制御情報移動回路を制御することにより、第1種処理を実行中の或る第2パイプライン用の制御情報レジスタに設定される制御情報を、新たな処理を開始できる状態にある第1パイプライン用の制御情報レジスタに移動させてから、当該第2パイプライン用の制御情報レジスタに、いずれかのパイプラインに開始させるべき前記第3種ループ処理に関する制御情報を設定するスケジューラを含む
ことを特徴とする請求項4に記載の演算ユニット。 The control circuit includes:
The process to be started in any one of the pipelines is a second type loop process that is completed by executing the second type process a plurality of times, and there is no first pipeline that is ready to start a new process. When there is a second pipeline that is ready to start a new process and a first pipeline that is executing the first type loop process, the control information moving circuit is controlled to control the first pipeline. After moving the control information set in the control information register for a certain first pipeline that is executing the seed loop process to the control information register for the second pipeline that is ready to start a new process, A scheduler that sets control information related to the second type loop processing to be started in any pipeline in the control information register for the first pipeline;
The process to be started in any one of the pipelines is a third type loop process that is completed by executing the third type process a plurality of times, and there is no second pipeline in a state where a new process can be started. When there is a first pipeline that is ready to start a new process and a second pipeline that is executing the first type loop process, the control information moving circuit is controlled to control the first pipeline. The control information set in the control information register for a certain second pipeline that is executing the seed process is moved to the control information register for the first pipeline that is ready to start a new process, and then A control information register for the second pipeline includes a scheduler that sets control information related to the third type loop processing to be started in any of the pipelines. The arithmetic unit according to claim 4.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010141377A JP5598114B2 (en) | 2010-06-22 | 2010-06-22 | Arithmetic unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010141377A JP5598114B2 (en) | 2010-06-22 | 2010-06-22 | Arithmetic unit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012008622A JP2012008622A (en) | 2012-01-12 |
JP5598114B2 true JP5598114B2 (en) | 2014-10-01 |
Family
ID=45539126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010141377A Expired - Fee Related JP5598114B2 (en) | 2010-06-22 | 2010-06-22 | Arithmetic unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5598114B2 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0649085B1 (en) * | 1993-10-18 | 1998-03-04 | Cyrix Corporation | Microprocessor pipe control and register translation |
JP2004070692A (en) * | 2002-08-07 | 2004-03-04 | Yaskawa Electric Corp | System for multiprocessing |
JP2005327093A (en) * | 2004-05-14 | 2005-11-24 | Sony Corp | Network system, information processor, master device and processing succession method |
-
2010
- 2010-06-22 JP JP2010141377A patent/JP5598114B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012008622A (en) | 2012-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3449359B1 (en) | Out-of-order block-based processors and instruction schedulers | |
KR101766183B1 (en) | Functional unit having tree structure to support vector sorting algorithm and other algorithms | |
US10514919B2 (en) | Data processing apparatus and method for processing vector operands | |
WO2000033183A9 (en) | Method and structure for local stall control in a microprocessor | |
WO2000033183A1 (en) | Method and structure for local stall control in a microprocessor | |
WO2016100142A2 (en) | Advanced processor architecture | |
GB2553783A (en) | Vector multiply-add instruction | |
US9547493B2 (en) | Self-timed user-extension instructions for a processing device | |
JP2004171573A (en) | Coprocessor extension architecture built by using novel splint-instruction transaction model | |
WO2018169919A1 (en) | Precise exceptions for edge processors | |
JP2013541098A (en) | Vector logical reduction operation implemented on a semiconductor chip. | |
US9690590B2 (en) | Flexible instruction execution in a processor pipeline | |
US9354893B2 (en) | Device for offloading instructions and data from primary to secondary data path | |
US9747109B2 (en) | Flexible instruction execution in a processor pipeline | |
JP5316407B2 (en) | Arithmetic processing device and control method of arithmetic processing device | |
Kiat et al. | A comprehensive analysis on data hazard for RISC32 5-stage pipeline processor | |
JP5598114B2 (en) | Arithmetic unit | |
GB2382422A (en) | Switching delay stages into and out of a pipeline to increase or decrease its effective length | |
JP4444305B2 (en) | Semiconductor device | |
KR20190094195A (en) | Vector generation command | |
KR102379886B1 (en) | Vector instruction processing | |
US20180267803A1 (en) | Computer Processor Employing Phases of Operations Contained in Wide Instructions | |
JP5720111B2 (en) | Information processing device | |
US20230315446A1 (en) | Arithmetic processing apparatus and method for arithmetic processing | |
Duric et al. | Imposing coarse-grained reconfiguration to general purpose processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130507 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140319 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140408 |
|
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: 20140715 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140728 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5598114 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |