WO2021182222A1 - 演算装置及び演算方法 - Google Patents
演算装置及び演算方法 Download PDFInfo
- Publication number
- WO2021182222A1 WO2021182222A1 PCT/JP2021/008131 JP2021008131W WO2021182222A1 WO 2021182222 A1 WO2021182222 A1 WO 2021182222A1 JP 2021008131 W JP2021008131 W JP 2021008131W WO 2021182222 A1 WO2021182222 A1 WO 2021182222A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- instruction
- unit
- executing
- functional
- pipeline
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
Definitions
- This disclosure relates to an arithmetic unit and an arithmetic method.
- an arithmetic unit having a plurality of functional units that are arithmetic units that process instructions, and performing pipeline processing (hereinafter, also referred to as "multi-stage arithmetic pipeline") with a plurality of functional units for a series of input instructions. Is used.
- the computing device of one aspect of the present disclosure is a computing device that includes a pipeline including a plurality of functional units having the same function and performs calculations by chaining, and determines the presence or absence of the functional unit that is not executing an instruction.
- the determination unit and any of the functional units are executing an instruction
- the functional unit that is not executing the instruction can be executed in parallel with the execution of the instruction by any of the functional units.
- a control unit for executing the command is provided.
- a vector arithmetic unit composed of four stages of a pipeline (hereinafter referred to as "the number of stages of a pipeline") and five functional units (LD, ST, ADD, MUL, DIV). 20 is assumed.
- the hardware state of the vector arithmetic unit 20 having four pipeline stages is referred to as a default mode.
- the mask register 30 is provided corresponding to the vector register length, and "0" is rewritten to "1" according to the progress of the operation.
- all the mask registers 30 are set to "1".
- the overhead time required for the start-up and down-down of the pipeline is achieved. Can be reduced and the efficiency of calculation can be improved.
- the control unit 24 causes the functional unit 12 that is not executing the instruction to execute an executable instruction.
- the control unit 24 of the present embodiment when any of the functional units 12 is executing an instruction, for the functional unit 12 that is not executing the instruction, in parallel with executing the instruction by any of the functional units 12. Execute an executable instruction.
- the arithmetic unit 10 controls according to the number of stages of the pipeline, in other words, according to the mode. For example, in a four-stage pipeline (default mode), the Out-of-Order function is not executed, and in a two-stage or one-stage pipeline (mode 1 or mode 2), the Out-of-Order function is executed. In other words, the Out-of-Order function is performed on a pipeline having a plurality of functional units 12 having the same function.
- the mode is appropriately selected according to a series of operations to be executed by the vector arithmetic unit 20.
- the Out-of-Order function may be executed even in the default mode. That is, not only the functional units 12 having the same function but also the functional units 12 having no dependency in all the different functional units 12 (LD, ST, MUL, ADD, DIV) may be able to be executed at the same time.
- the Out-of-Order function can be performed by checking the mode register before executing the chaining operation process. It is determined whether or not the mode is executable. If the mode is not such that the Out-of-Order function can be executed, the normal chaining operation processing that does not execute the Out-of-Order function is executed. Alternatively, the Out-of-Order function is reconfigured into a feasible mode.
- step S102 if there is a functional unit 12 that is not executing the instruction, the process proceeds to step S106, while if there is no functional unit 12 that does not execute the instruction, the process proceeds to step S104.
- step S106 the control unit 24 assigns an instruction to the functional unit 12 that is not executing the instruction.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Complex Calculations (AREA)
- Logic Circuits (AREA)
Abstract
演算装置(10)は、同じ機能を有する複数の機能ユニット(12)を含むパイプラインを具備し、チェイニングによって演算を行う。この演算装置(10)は、命令を実行中でない機能ユニット(12)の有無を判定する実行判定部(22)と、何れかの機能ユニット(12)が命令を実行している際に、命令を実行中でない機能ユニット(12)に対して、何れかの機能ユニット(12)による命令実行と並行して実行可能な命令を実行させる制御部(24)と、を備える。
Description
本出願は、2020年3月11日に出願された特許出願番号2020-042169号に基づくものであって、その優先権の利益を主張するものであり、その特許出願のすべての内容が、参照により本明細書に組み入れられる。
本開示は、演算装置及び演算方法に関する。
従来から、命令を処理する演算器である機能ユニットを複数備え、入力される一連の命令に対して複数の機能ユニットでパイプライン処理(以下「多段演算パイプライン」ともいう。)を行なう演算装置が用いられている。
例えば特許文献1には、乗算器MULと加算機ADD等の複数の機能ユニットによってパイプライン処理を行う構成が開示されている。特許文献1に記載の構成は、乗算器MULは同時に入力された値「a」「b」の対応する要素の組の各データを乗算して加算器ADDに順次出力し、加算器ADDは出力された乗算値と、前回の加算器ADDの出力とを順次加算している。
ここで、多段演算パイプラインを用いたチェイニングによって命令(演算)を行う演算装置は、パイプラインの立ち上げや立ち下がりのオーバーヘッドを要し、加算や乗算等が組み合わさった複雑な演算を実行する際に、パイプラインの立ち上げ立ち下げを複数回行う場合があった。また、複雑な演算を実行する場合には、他の機能ユニットによる演算の終了を待ってから演算を行う機能ユニットが存在する場合があった。すなわち、パイプラインを用いたチェイニングでは効率的な演算を行えない場合があった。
本開示は、パイプラインを用いたチェイニングによる演算をより効率的に行える、演算装置及び演算方法を提供することを目的とする。
本開示の一態様の演算装置は、同じ機能を有する複数の機能ユニットを含むパイプラインを具備し、チェイニングによって演算を行う演算装置であって、命令を実行中でない前記機能ユニットの有無を判定する判定部と、前記何れかの機能ユニットが命令を実行している際に、前記命令を実行中でない前記機能ユニットに対して、前記何れかの機能ユニットによる命令実行と並行して実行可能な前記命令を実行させる制御部と、を備える。
本発明によれば、パイプラインを用いたチェイニングによる演算をより効率的に行える。
本開示についての上記目的およびその他の目的、特徴や利点は、添付の図面を参照しながら下記の詳細な記述により、より明確になる。その図面は、
図1は、実施形態の演算装置の概略構成図である。
図2は、実施形態のチェイニングを示す模式図である。
図3は、実施形態のチェイニングを示す模式図である。
図4は、実施形態のチェイニング演算処理の流れを示すフローチャートである。
以下、図面を参照して本開示の実施形態を説明する。なお、以下に説明する実施形態は、本開示を実施する場合の一例を示すものであって、本開示を以下に説明する具体的構成に限定するものではない。本開示の実施にあたっては、実施形態に応じた具体的構成が適宜採用されてよい。
図1は、本実施形態の演算装置10の概略構成図である。本実施形態の演算装置10は、複数の機能ユニット12を含むパイプラインを具備し、チェイニングによって演算を行うものである。
機能ユニット12は、例えば、メモリからレジスタへデータをコピーするLD、レジスタからメモリにデータをコピーするST、加算機能を有するADD(加算器)、乗算機能を有するMUL(乗算器)、除算機能を有するDIV(除算器)等の演算器である。これら複数の機能ユニット12は、パイプライン処理を実行するマルチパイプベクトル演算器(以下「ベクトル演算器」という。)20に備えられる。
次に、本実施形態の演算装置10によるパイプライン処理について説明する。
まず、一例として、パイプラインの段数(以下「パイプライン段数」という。)を4段とし、機能ユニット12の数を5つ(LD、ST、ADD、MUL、DIV)で構成されるベクトル演算器20を想定する。以下の説明では、パイプライン段数を4段とするベクトル演算器20のハードウエア状態をディフォルトモードという。
このディフォルトモードは、パイプライン段数をより少なくしたモード1とモード2に再構成することが可能である。モード1は、パイプライン段数が2段であり、機能ユニット12の数が8つ(LD、ST、2つのADD、2つのMUL、2つのDIV)である。モード2は、パイプライン段数が1段であり、機能ユニット12の数が14個(LD、ST、4つのADD、4つのMUL、4つのDIV)である。このように、ディフォルトモードよりも段数を少なくしたモード1やモード2では、ADD、MUL、DIV等の同じ機能を有する機能ユニット12が複数存在する。
なお、本実施形態の演算装置10は、一例として、ハードウエアのモード(パイプライン段数と機能ユニット12の数の組み合わせ)の全バリエーションが予め定義されており、現在のハードウエアのモードはフラグ値として専用のレジスタ(モードレジスタ)に保持される。そして、ハードウエアのモードは専用の制御命令により設定される。
このように、本実施形態の演算装置10は、ディフォルトモードから、同じ機能を有する複数の機能ユニット12を含んでパイプラインを再構成可能とされている。そして、本実施形態の演算装置10は、機能ユニット12が命令を実行している場合に、命令を実行中でない他の機能ユニット12に対して並行して実行可能な命令を実行させる。このため、本実施形態の演算装置10は、ある機能ユニット12が命令を実行している場合に、他の機能ユニット12が命令を実行しているか否かを判定する機能(Out-of-Order機能)を有している。
Out-of-Order機能を実現するために、本実施形態の機能ユニット12は、命令の実行中であるか否かを識別する識別子を保持するステートレジスタを有している。演算装置10は、このステートレジスタに基づいて、命令を実行中でない機能ユニット12を判定し、機能ユニット12毎に命令の割り当てを行う。本実施形態では、一例として、命令を実行中である機能ユニット12のステートレジスタは“1”であり、命令を実行中でない機能ユニット12のステートレジスタは“0”である。
なお、演算に寄与する機能ユニット12の総数(パイプライン段数と対応する機能ユニット12の数との積)が一定であるので、ステートレジスタは、機能ユニット12の総数を保持するために十分なbit数があればよい。上記例では、パイプライン段数が最大で4段であり、同じ機能を有する機能ユニット12が3種類(ADD、MUL、DIV)であるので、ステートレジスタは3×4=12bitでよい。なお、Out-of-Order機能を実行するためには、LD及びSTの機能ユニット12が実行中か否かを判定する必要があるのでLD及びSTも1bitずつのステートレジスタを有する。但し、LD及びSTのステートレジスタは、パイプライン段数には関係なく1bitずつであればよい。
次に、一例として、図2を参照して、モード1で“((A+B)+C)×D”という演算をチェイニングする場合について説明する。モード1では、上述のように、ADD、MUL、DIVの機能ユニット12の数は各々2つである。なお、図2及び後述の図3における各値(A,B,C,D)に対応するベクトルレジスタ幅は固定されており、例えば64bitや32bitである。
モード1では、まず“A+B”の演算結果をレジスタ(中間レジスタ)へ書き出す処理(ADD命令)が発行される。ADD命令の発行時点では、何れの機能ユニット12も未だ命令を実行中でないので、全ての機能ユニット12のステートレジスタは“0”である。ここでADD命令を発行することにより、1つ目のADDに対応する機能ユニット12のステートレジスタを“1”に設定する。
そして、次の命令サイクルでは、最初のADD命令の完了を待たず、最初のADD命令の結果に対して“C”を加算するADD命令が発行される。2つ目のADDのステートレジスタは“0”なので、命令を実行中でないADDがあると判断され、2つ目のADDのステートレジスタを“1”に設定し、最初のADD命令とのチェイニングが行われる。
さらに、次の命令サイクルでは先行の2つのADD命令の終了を待たずに、“(A+B)+C”に対する“D”の乗算命令が発行される。このときMULのステートレジスタは“0”なので、1つ目のMULのステートレジスタを“1”に設定し、先行の2つのADD命令とのチェイニングが行われる。
次に、図3を参照して“(A+B)×(C+D)”という演算をモード1でチェイニングする場合について説明する。まず“(A+B)”と“(C+D)”との演算は各々独立して実行が可能である。このため“(A+B)”の演算を一つのADDが行うと共に、“(C+D)”の演算命令は、もう他のADDによって演算が行われる。すなわち、これらの2つのADD命令は互いの終了を待つことなく同時に発行される。従って、モード1の場合にはハードウエアのリソースとしてこれら2つのADD命令を同時に割り当て可能である。
図3の例では、MULの機能ユニット12が一つ空きとなる。ここで次の命令(後続命令)に上記のチェイニング演算とは依存関係のないMUL命令がある場合には、そのMUL命令を同時実行できる。結果として演算機能ユニットの稼働率をディフォルトモードよりも高くすることができ、従来と同じハードウエアリソース(演算器の数)でもより高い実効性能を発揮することが可能となる。
また、本実施形態の機能ユニット12は、命令の実行状態を示すマスクレジスタ30(図2,3参照)を備える。そして、複数の他の機能ユニット12による演算結果を用いて次の命令を実行する機能ユニット12は、複数の他の機能ユニット12のマスクレジスタ30が命令の実行終了を示した後に次の命令を実行する。
より具体的にはマスクレジスタ30は、ベクトルレジスタ長に対応して設けられており、演算の進行度合いに応じて“0”が“1”に書き換えられる。各機能ユニット12における演算が完了すると、マスクレジスタ30は全て“1”とされる。そして、先の命令を実行した複数の機能ユニット12のマスクレジスタ30のAND(論理積)によって、当該複数の機能ユニット12による演算が完了したか否かが判定される。すなわち、先の命令を実行する複数の機能ユニット12による演算が終了するまで、次の命令を実行する機能ユニット12は演算を行わない。
すなわち、図3の例では、“A+B”の演算が完了するとレジスタ領域が全て“1”となり、“C+D”の演算が完了するとレジスタ領域が全て“1”となる。そして、“A+B”の演算及び“C+D”の演算が完了した場合に、“(A+B)×(C+D)”の演算が開始される。
これにより、複数の機能ユニット12が先の命令を非同期で行っても、次の命令を実行する機能ユニット12は、複数の機能ユニット12による命令の実行完了を待って演算を行うことになるので、エラーを生じさせることなく次の命令の実行が可能となる。
なお、先の命令を実行するパイプラインの段数よりも次の命令を実行するパイプラインの段数が多い場合、例えば先のパイプラインが2段であり、後のパイプラインが4段の場合にも、上述と同様にマスクレジスタ30によって先のパイプラインによる命令(演算)の進行度合いが判定される。このため、異なる段数のパイプラインの組み合わせによってチェイニングによる演算が行われる場合であっても、エラーを生じさせることなく命令の実行が可能となる。
このように、本実施形態の演算装置10は、4段のパイプラインをそれよりも段数の小さいパイプライン(2段のパイプライン)に再構成することによって、パイプラインの立ち上げ、立ち下がりのオーバーヘッドを少なくできる。このとき、2段のパイプラインでは、同じ機能を有する機能ユニット12を複数(少なくとも2つ)備えることになる。
具体的には、上述の4段のパイプラインによって“((A+B)+C)×D”という演算を行う場合、“A+B=E”の演算をチェイニングで行った後に、“(E+C)×D”を新たなチェイニングで行う必要がある。このため、4段のパイプラインでは、パイプラインの立ち上げと立ち下がりとを2度行う必要があり、オーバーヘッドが2回分必要となる。また、“A+B=E”の演算結果を一旦メモリに記憶(ストア)させ、“(E+C)×D”の演算を行う場合に、演算結果である“E”をメモリから読み出す必要があり、処理が非効率であった。
一方、2段のパイプラインでは、同じ機能を有する機能ユニット12(ADD、MUL、DIV)を2つずつ有することとなる。そして、ある機能ユニット12が命令を実行している際に、命令を実行中でない他の機能ユニット12の有無を判定し(Out-of-Order機能)、命令を実行中でない他の機能ユニット12に対して、ある機能ユニット12による命令実行と並行して実行可能な命令を実行させる。
これにより、2段のパイプラインでは、“((A+B)+C)×D”の演算を一度のチェイニングによって行うことができ、パイプラインの立ち上げと立ち下がりと(オーバーヘッド)が1度で済む。また、2段のパイプラインでは、4段のパイプラインで行ったような演算結果を一旦メモリに記憶させるという処理は不要なため、より効率的な処理が可能となる。
このことから、本実施形態のようにパイプラインの段数を少なくし、同じ機能を有する複数の機能ユニット12を含むパイプラインとすることで、パイプラインの立ち上げと立ち下がりとに要するオーバーヘッドの時間を削減でき、演算の効率化が可能となる。
このようなパイプラインによるチェイニングを実行するために、図1に示されるように本実施形態の演算装置10は、実行判定部22と制御部24とを備える。
実行判定部22は、Out-of-Order機能を実行する構成要素であり、命令を実行中でない機能ユニット12の有無を判定する。なお、実行判定部22は、ステートレジスタに基づいて、命令を実行中でない機能ユニット12を判定する。
制御部24は、命令を実行中でない機能ユニット12に対して実行可能な命令を実行させる。本実施形態の制御部24は、何れかの機能ユニット12が命令を実行している際に、命令を実行中でない機能ユニット12に対して、何れかの機能ユニット12による命令実行と並行して実行可能な命令を実行させる。
なお、演算装置10は、パイプラインの段数に応じた、換言するとモードに応じた制御を行う。例えば、4段のパイプライン(ディフォルトモード)では、Out-of-Order機能を実行せずに、2段又は1段のパイプラン(モード1又はモード2)ではOut-of-Order機能を実行する。換言すると、Out-of-Order機能は、同じ機能を有する複数の機能ユニット12を備えるパイプラインに対して実行される。なお、モードは、ベクトル演算器20に実行させる一連の演算に応じて適宜選択される。
また、これに限らず、ディフォルトモードであってもOut-of-Order機能を実行するとしてもよい。すなわち、同じ機能を有する機能ユニット12だけでなく、異なる機能ユニット12(LD、ST、MUL、ADD、DIV)全てにおいて依存関係にない機能ユニット12は同時に実行可能としてもよい。
なお、本実施形態の演算装置10は、機能ユニット12による実行待ちの命令を命令待機バッファ14に記憶させる。そして、命令待機バッファ14に記憶された命令を実行可能な機能ユニット12が有った場合に、命令待機バッファ14から命令が順次読み出されて機能ユニット12によって実行される。これにより、命令を実行中でない機能ユニット12へ命令を効率的に割り当てることを可能とする。
図4は、Out-of-Order機能を実行するチェイニング演算処理の流れを示すフローチャートである。このチェイニング演算処理は、演算装置10が備える記録媒体に格納されたプログラムによって実行される。このプログラムが実行されることで、プログラムに対応する方法が実行される。
なお、図4に示されるチェイニング演算処理はOut-of-Order機能を実行するものであるため、このチェイニング演算処理の実行前にモードレジスタを確認することで、Out-of-Order機能を実行可能なモードであるか否かが判定される。Out-of-Order機能を実行可能なモードでない場合は、Out-of-Order機能を実行しない通常のチェイニング演算処理が実行される。または、Out-of-Order機能を実行可能なモードに再構成される。
まず、ステップS100では、実行判定部22が各機能ユニット12のステートレジスタを確認し、命令を実行中でない機能ユニット12の有無を判定する(Out-of-Order機能)。なお、ここでいう機能ユニット12の有無とは、与えられた命令を実行可能な機能ユニット12である。例えば与えられた命令がADD命令である場合には、このADD命令を実行可能な機能ユニット12の有無が実行判定部22によって判定される。
次のステップS102では、命令を実行中でない機能ユニット12が有る場合は、ステップS106へ移行する一方、命令を実行しないない機能ユニット12が無い場合は、ステップS104へ移行する。
ステップS104では、命令を実行できる機能ユニット12が無いため、当該命令を実行待ちの命令として命令待機バッファ14へキューイングし、ステップS100へ戻る。
ステップS106では、制御部24が、命令を実行中でない機能ユニット12へ命令の割り当てを行う。
次のステップS108では、制御部24が、命令が割り当てられた機能ユニット12のステートレジスタを“1”に設定する。
次のステップS110では、機能ユニット12が割り当てられた命令を実行する。
次のステップS112では、制御部24が、割り当てられた命令の実行を機能ユニット12が完了したか否かを判定し、肯定判定の場合はステップS114へ移行し、否定判定の場合はステップS116へ移行する。なお、命令を実行している機能ユニット12が複数有る場合、ステップS112では各々の機能ユニット12毎に命令の実行が完了したか否かを判定する。
ステップS114では、制御部24が、命令を完了した機能ユニット12のステートレジスタを“0”に設定し、ステップS116へ移行する。
ステップS116では、次の命令の有無を制御部24が判定し、次の命令がある場合にはステップS100へ戻り、次の命令に対応させて各ステップを実行する。
一方、ステップS116において次の命令がないと判定された場合には、入力された一連の演算命令の全てが完了したことになるので、本チェイニングを終了する。
このように、本実施形態の演算装置10は、何れかの機能ユニット12が命令を実行している際に、命令を実行中でない機能ユニット12に対して、何れかの機能ユニット12による命令実行と並行して実行可能な命令を実行させる。これにより、本実施形態の演算装置10は、パイプラインを用いたチェイニングによる演算をより効率的に行える。
以上、本開示を、上記実施形態を用いて説明したが、本開示の技術的範囲は上記実施形態に記載の範囲には限定されない。開示の要旨を逸脱しない範囲で上記実施形態に多様な変更又は改良を加えることができ、該変更又は改良を加えた形態も本開示の技術的範囲に含まれる。
例えば、上記実施形態では、4段のパイプラインを2段のパイプラインや1段のパイプラインに再構成する形態について説明したが、本開示は、これに限定されるものではない。例えば、5段やそれ以上の段数のパイプラインをより少ない段数のパイプラインに再構成してもよい。また、パイプラインの再構成という概念を有さず、ベクトル演算器20は、例えば、2段で固定されたパイプラインで構成されてもよい。
Claims (5)
- 同じ機能を有する複数の機能ユニット(12)を含むパイプラインを具備し、チェイニングによって演算を行う演算装置(10)であって、
命令を実行中でない前記機能ユニットの有無を判定する判定部(22)と、
前記何れかの機能ユニットが命令を実行している際に、前記命令を実行中でない前記機能ユニットに対して、前記何れかの機能ユニットによる命令実行と並行して実行可能な前記命令を実行させる制御部(24)と、
を備える、演算装置。 - 前記機能ユニットは、前記命令の実行状態を示すマスクレジスタ(30)を備え、
複数の他の前記機能ユニットによる演算結果を用いて次の前記命令を実行する前記機能ユニットは、複数の他の前記機能ユニットのマスクレジスタが前記命令の実行終了を示した後に次の前記命令を実行する、請求項1記載の演算装置。 - 前記機能ユニットは、前記命令の実行中であるか否かを識別する識別子が設定され、
前記判定部は、前記識別子に基づいて、前記命令を実行中でない前記機能ユニットを判定する、
請求項1又は請求項2記載の演算装置。 - 前記機能ユニットによる実行待ちの前記命令は記憶媒体(14)へ記憶され、
前記記憶媒体に記憶された前記命令を実行可能な前記機能ユニットが有った場合に、前記記憶媒体から前記命令が順次読み出されて前記機能ユニットによって実行される、
請求項1から請求項3記載の演算装置。 - 同じ機能を有する複数の機能ユニットを含むパイプラインを用いたチェイニングによる演算方法であって、
命令を実行中でない前記機能ユニットの有無を判定する第1工程と、
前記何れかの機能ユニットが命令を実行している際に、前記命令を実行中でない前記機能ユニットに対して、前記何れかの機能ユニットによる命令実行と並行して実行可能な前記命令を実行させる第2工程と、
を有する、演算方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022505966A JP7393519B2 (ja) | 2020-03-11 | 2021-03-03 | 演算装置及び演算方法 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020-042169 | 2020-03-11 | ||
| JP2020042169 | 2020-03-11 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2021182222A1 true WO2021182222A1 (ja) | 2021-09-16 |
Family
ID=77671646
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2021/008131 Ceased WO2021182222A1 (ja) | 2020-03-11 | 2021-03-03 | 演算装置及び演算方法 |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP7393519B2 (ja) |
| WO (1) | WO2021182222A1 (ja) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH11259290A (ja) * | 1998-03-12 | 1999-09-24 | Fujitsu Ltd | マイクロプロセッサ、演算処理実行方法及び記憶媒体 |
| JP2006040254A (ja) * | 2004-06-21 | 2006-02-09 | Sanyo Electric Co Ltd | リコンフィギュラブル回路および処理装置 |
| JP2007166535A (ja) * | 2005-12-16 | 2007-06-28 | Matsushita Electric Ind Co Ltd | デジタルフィルタ |
| JP2016103240A (ja) * | 2014-11-28 | 2016-06-02 | キヤノン株式会社 | データ処理装置とデータ処理方法 |
-
2021
- 2021-03-03 JP JP2022505966A patent/JP7393519B2/ja active Active
- 2021-03-03 WO PCT/JP2021/008131 patent/WO2021182222A1/ja not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH11259290A (ja) * | 1998-03-12 | 1999-09-24 | Fujitsu Ltd | マイクロプロセッサ、演算処理実行方法及び記憶媒体 |
| JP2006040254A (ja) * | 2004-06-21 | 2006-02-09 | Sanyo Electric Co Ltd | リコンフィギュラブル回路および処理装置 |
| JP2007166535A (ja) * | 2005-12-16 | 2007-06-28 | Matsushita Electric Ind Co Ltd | デジタルフィルタ |
| JP2016103240A (ja) * | 2014-11-28 | 2016-06-02 | キヤノン株式会社 | データ処理装置とデータ処理方法 |
Non-Patent Citations (1)
| Title |
|---|
| YOSHIMA MASATO ET AL.: "FPGA-based stochastic biochemical simulator", TRANSACTIONS OF INFORMATION PROCESSING SOCIETY OF JAPAN, vol. 4 8, no. SIG3, 15 February 2007 (2007-02-15), pages 45 - 58, ISSN: 0387-5806 * |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2021182222A1 (ja) | 2021-09-16 |
| JP7393519B2 (ja) | 2023-12-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4339907B2 (ja) | マルチプロセッサ向け最適コード生成方法及びコンパイル装置 | |
| KR102413832B1 (ko) | 벡터 곱셈 덧셈 명령 | |
| US9355061B2 (en) | Data processing apparatus and method for performing scan operations | |
| US8572586B2 (en) | Optimized scalar promotion with load and splat SIMD instructions | |
| JP3442225B2 (ja) | 演算処理装置 | |
| US9164763B2 (en) | Single instruction group information processing apparatus for dynamically performing transient processing associated with a repeat instruction | |
| JP2010532063A (ja) | 条件命令を無条件命令および選択命令へと拡張する方法およびシステム | |
| JP2004234642A (ja) | 命令実行ユニットのための統合化構造のレイアウト | |
| JP2002333978A (ja) | Vliw型プロセッサ | |
| JPH04172533A (ja) | 電子計算機 | |
| JP2006338616A (ja) | コンパイラ装置 | |
| JP2009037302A (ja) | 分岐予測装置、ハイブリッド分岐予測装置、プロセッサ、分岐予測方法、及び分岐予測制御プログラム | |
| JPWO2012105593A1 (ja) | データフローグラフ処理装置、データフローグラフ処理方法およびデータフローグラフ処理プログラム | |
| JP2004529405A (ja) | 依存性を決定するためのコンテンツ・アドレス指定可能メモリを実装したスーパースケーラ・プロセッサ | |
| Wittenburg et al. | HiPAR-DSP: A parallel VLIW RISC processor for real time image processing applications | |
| JP5786719B2 (ja) | ベクトルプロセッサ | |
| EP3690639B1 (en) | Information processing apparatus, program, and information processing method | |
| JP7393519B2 (ja) | 演算装置及び演算方法 | |
| CN119861969A (zh) | 向量指令处理方法、装置、电子设备及存储介质 | |
| CN119025123A (zh) | 编译优化方法、装置、编译器、编译设备、介质及程序 | |
| US10606602B2 (en) | Electronic apparatus, processor and control method including a compiler scheduling instructions to reduce unused input ports | |
| TWI807927B (zh) | 具有向量歸約方法與元素歸約方法的向量處理器 | |
| JP7383390B2 (ja) | 情報処理ユニット、情報処理装置、情報処理方法及びプログラム | |
| JP2023002165A (ja) | コンパイラ及びコンパイル方法 | |
| US20210271488A1 (en) | Processor memory access |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21767219 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2022505966 Country of ref document: JP Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 21767219 Country of ref document: EP Kind code of ref document: A1 |