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
JP6705473B2 - 演算装置及び演算システム - Google Patents
[go: Go Back, main page]

JP6705473B2 - 演算装置及び演算システム - Google Patents

演算装置及び演算システム Download PDF

Info

Publication number
JP6705473B2
JP6705473B2 JP2018118772A JP2018118772A JP6705473B2 JP 6705473 B2 JP6705473 B2 JP 6705473B2 JP 2018118772 A JP2018118772 A JP 2018118772A JP 2018118772 A JP2018118772 A JP 2018118772A JP 6705473 B2 JP6705473 B2 JP 6705473B2
Authority
JP
Japan
Prior art keywords
register
physical register
physical
stored
information
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
JP2018118772A
Other languages
English (en)
Other versions
JP2019220065A (ja
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 JP2018118772A priority Critical patent/JP6705473B2/ja
Priority to US16/973,961 priority patent/US20210255858A1/en
Priority to PCT/JP2019/024351 priority patent/WO2019244947A1/ja
Publication of JP2019220065A publication Critical patent/JP2019220065A/ja
Application granted granted Critical
Publication of JP6705473B2 publication Critical patent/JP6705473B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は、ベクトル演算を行う装置に関する。
CPU(Central Processing Unit)のコアにおける処理の高速化を図るためには、命令発行レートを上げることが有効である。そして、命令発行レートを上げるための方法としてレジスタリネーミングが広く用いられている(特許文献2乃至4参照)。
レジスタリネーミングを行う場合、コアを動作させるプログラムにより前提とされている個数よりも多くの個数の物理レジスタをコアが備える(特許文献1参照)。そして、同一の物理レジスタに対する複数の命令がプログラムによりなされた場合に、コアは、それらの命令の実行時に、プログラムで規定されている物理レジスタだけでなく、それとは別の物理レジスタを、レジスタ名を書き換えることにより用いる。これにより、WAR(Write−After−Read)依存関係や、WAW(Write−After−Write)依存関係を、解消又は緩和させることができる。ここで、WAR依存関係は、先行命令に係るリードが完了するまで後続命令に係るライトを開始することができないことを表す。また、WAW依存関係は、先行命令に係るライトが完了するまで後続命令に係るライトを開始することができないことを表す。
一般的に行われているレジスタリネーミングでは、演算装置は、ある演算結果を書き込む物理レジスタに別名を与える。例えば、命令Aが論理リソースXに対してデータを読み出している途中で、同一の論理リソースXに対する書き込みを行う後続命令Bに関して、論理リソースXに対して物理リソースX1、X2をそれぞれ命令A、命令Bに割り当てたとする。その場合、命令Aで書かれたデータが命令Bの実行により消されてしまうことを防ぐことが可能となる。これは命令Bの発行制限の緩和を意味する。そのため、上記場合は、命令発行レートの向上が見込める。
しかしながら、ベクトルプロセッサには、一般的に、要素ごとに計算の有無を切り替えるマスク機能が設けられている。そのため、レジスタリネーミングをベクトルプロセッサに適用しようとする場合には、単純にはレジスタリネーミングを実現できない、という課題がある。
この課題を解決し得る方法として、特許文献5は、マスク付き演算を考慮したベクトルレジスタのリネーミング方法を開示する。
特開昭61−241870号公報 特開2007−334819号公報 特開2006−268168号公報 特開2010−205049号公報 特許第6020428号公報
しかしながら、特許文献5が開示する方法は、短ベクトル命令が多く処理されるプログラムによりコアが処理を実行する場合は、レジスタリネーミングの際に、ある物理レジスタから他の物理レジスタへの情報要素のコピーを多く必要とする。当該動作例については発明を実施するための形態の項において後述する。
コピーを行うためには、記憶装置等から情報要素を読み出す必要がある。そのため、コピーを行うためには、ベクトルレジスタの入力ポートが使用される。その間、演算器へのデータ供給のために、ベクトルレジスタの入力ポートを使用することができず、演算器へデータを供給することができない。その結果、演算器を有効に使うことができず、演算器の稼働率が低下するという問題が生じる。
本発明は、物理レジスタのリネーミングの際に発生する情報要素のコピー量を抑え得る演算装置等の提供を目的とする。
本発明の演算装置は、第一論理レジスタに格納される、論理レジスタに格納される情報要素からなる第一要素群、のうちの所定のベクトル長の前記情報要素と、第二論理レジスタに格納される前記情報要素からなる第二要素群のうちの前記ベクトル長の前記情報要素とのベクトル演算の演算結果である前記情報要素を含む第三要素群を第三論理レジスタに格納させる演算装置であって、前記第一要素群のうちの前記ベクトル長の前記情報要素の各々と、前記第二要素群のうちの前記ベクトル長の前記情報要素の各々とを、物理レジスタ群に含まれる、第一の制御情報に基づいて選択した物理レジスタの各々に入力する第一選択部と、前記第一選択部から入力された前記情報要素の各々を保持する前記物理レジスタを含む前記物理レジスタ群と、前記第一選択部から入力された前記情報要素を保持した前記物理レジスタの各々から入力された前記情報要素の各々を演算器群に含まれる演算器の入力部の各々に入力する第二選択部と、前記第二選択部から入力された前記情報要素に係る前記ベクトル演算により前記第三要素群を出力する前記演算器群と、を備え、前記第一の制御情報に基づいて選択された前記物理レジスタが、ベクトル演算前の当該ベクトル演算の対象の前記情報要素の各々を格納する前記物理レジスタと、当該情報要素に係る当該ベクトル演算の演算結果に係る前記情報要素を格納する物理レジスタとで異なる場合があり、前記物理レジスタの各々が備える、前記情報要素を同時に格納し得る領域の数が、二個以下である。
本発明の演算装置等は、物理レジスタのリネーミングの際に発生する情報要素のコピー量を抑え得る。
本実施形態のベクトル演算システムの構成例を表す概念図である。 演算部及び記憶装置の構成例を表す概念図である。 論理レジスタ管理情報の例を表す概念図である。 物理レジスタ管理情報の第一の例を表す概念図である。 物理レジスタ管理情報の第二の例を表す概念図である。 参照数情報の例を表す概念図である。 文献方法による第一の動作例の説明図である。 図7を参照して説明する動作に対応する物理レジスタ管理情報の関連部分を表す図である。 図7を参照して説明する動作に対応する本実施形態の動作例(その1)の説明図である。 図9を参照して説明する動作に対応する前記物理レジスタ管理情報の関連部分を表す図である。 図7を参照して説明する動作に対応する本実施形態の動作例(その2)の説明図である。 図11を参照して説明する動作に対応する前記物理レジスタ管理情報の関連部分を表す図である。 文献方式による第二の動作例の説明図である。 図13を参照して説明する動作に対応する物理レジスタ管理情報の関連部分を表す図である。 図13を参照して説明する動作に相当する本実施形態の動作例(その1)の説明図である。 図15を参照して説明するす動作に対応する前記物理レジスタ管理情報の関連部分を表す図である。 図13を参照して説明する動作に相当する本実施形態の動作例(その2)の説明図である。 図17を参照して説明する動作に対応する前記物理レジスタ管理情報の関連部分を表す図である。 本実施形態におけるベクトル長が6の演算に係る動作例(その1)の説明図である。 図19を参照して説明する動作に対応する前記物理レジスタ管理情報の関連部分を表す図である。 本実施形態におけるベクトル長が6の演算に係る動作例(その2)の説明図である。 図21を参照して説明する動作に対応する前記物理レジスタ管理情報の関連部分を表す図である。 文献方法における論理レジスタ管理情報の関連部分の例を表す図である。 図23に表す論理レジスタに係る、文献方法における物理レジスタ管理情報の関連部分の例を表す図である。 図23に表す論理レジスタ管理情報の部分に対応する、本実施形態の物理レジスタ管理情報の関連部分を表す図である。 文献方法において、所定のベクトル命令において参照されていない物理レジスタに演算後の要素を格納する場合の動作例の説明図である。 図26を参照して説明する動作に対応する前記物理レジスタ管理情報の関連部分を表す図である。 実施形態の演算装置の最小限の構成を表すブロック図である。
本実施形態の演算装置は、各物理レジスタが、二つ以下の、情報要素を同時に格納するための領域を備える。
各物理レジスタが前記領域を二つ備える場合には、前記演算装置が情報要素の維持のためのコピーを実行するのは、後述のように、次の場合である。その場合は、すなわち、物理レジスタが備える二つの領域のうちの一方が演算関係する情報要素を格納し、他方が演算に関係しない要素を格納する場合である。そのため、一回の演算で情報要素の維持のために必要なコピーの数は、一回以下である。また、各物理レジスタが前記領域を一つのみ備える場合は情報要素維持のための、コピーを行う必要がない。
特許文献5に記載された方法では、後述のように、一回の演算で二回以上のコピーが行われ得る。
従い、本実施形態の演算装置は、特許文献5に開示された方法と比較して、一回の演算で情報要素の維持のために必要なコピーの回数を減らすことができる。
[構成と動作]
図1は、本実施形態のベクトル演算システムの例である演算システム500の構成を表す概念図である。図1に実線で表す信号線は、データ信号に係る信号線である。また、図1に破線で表す信号線は、制御信号に係る信号線である。
図1に表す演算システム500の構成の基本部分は、特許文献5に記載された構成と同じものである。従い、図1の説明においては概略部分のみを説明する。なお、図1に表す演算システム500における特許文献5に記載された内容と異なる部分の説明は、図2以降の各図についての説明において行う。
演算システム500は、演算装置310と記憶装置320とを備える。
記憶装置320は、例えば、演算システム500のメインメモリである。記憶装置320は、演算装置310が行うベクトル演算の演算対象の情報要素等を保持する。ここで、情報要素は、論理レジスタに格納される、ベクトル長が1の情報をいうこととする。情報要素には、ベクトル演算に用いられる部分である演算部分と、ベクトル演算には用いられない非演算部分とがある。非演算部には、例えば、ある演算の前に実行された演算の演算結果に係る情報要素が格納される。
以下において、情報要素は、単に「要素」と記述されるものとする。記憶装置320は、また、演算装置310が行ったベクトル演算に係る演算結果に係る前記要素を格納する。
演算装置310は、ベクトルロード、ベクトルストア、ベクトル演算等のベクトル命令を処理するプロセッサ等の装置である。
演算装置310は、外部からのベクトルロード命令の送付を受け、前述の要素を、記憶装置320から読み出す。
そして、演算装置310は、外部からのベクトル演算命令の送付を受け、記憶装置320から読み込んだ各要素を用いてベクトル演算を行う。演算装置310は、また、外部からのベクトルストア命令の送付を受け、演算結果を表す前記要素を、記憶装置320に格納させる。
演算装置310は、制御部100と、演算部200とを備える。
制御部100は、演算部200及び記憶装置320に、ベクトル演算に必要な処理を実行させる。
制御部100は、命令供給部110と、命令発行制御部111と、リネーミング制御部112と、実行制御部113と、記憶部121とを備える。
記憶部121は、図3を参照して後述する論理レジスタ管理情報401と、図4及び図5を参照して後述する物理レジスタ管理情報400と、図6を参照して後述する参照数情報とを保持する。記憶部121は、その他、制御部100の各構成が処理を行うのに必要な情報やプログラムを保持する。記憶部121は、また、制御部100の各構成から指示された情報を格納する。記憶部121は、また、前記各構成から指示に従い、指示された格納情報を送付する。
命令供給部110は、外部からの入力情報を受け、前述のベクトル命令を生成する。命令供給部110は、生成したベクトル命令を命令発行制御部111へ送付する。
命令供給部110は、また、物理レジスタのリネーミングを指示するレジスタリネーミング命令を生成し、リネーミング制御部112へ送付する。
命令発行制御部111は、前述のベクトル命令が命令供給部110から送付されると、ベクトル命令ごとに割り当てられた各論理レジスタについて、それらの論理レジスタが割り当てられる物理レジスタを特定する。
命令発行制御部111は、当該特定をする際に、命令供給部110から送付された前記ベクトル命令に含まれる要素群から、当該要素群が割り当てられた論理レジスタ群を特定する。命令発行制御部111は、当該特定を、前記要素群と図3を参照して後述する論理レジスタ管理情報401とから行う。
命令発行制御部111は、次に、特定した論理レジスタ群に割り当てるべき物理レジスタ群を特定する。命令発行制御部111は、当該特定を、記憶部121が保持する、図4及び図5を参照して後述する物理レジスタ管理情報400により行う。
そして、命令発行制御部111は、特定した各物理レジスタにおいて前記要素の格納準備が整ったかを判定する。命令発行制御部111は、当該判定を、例えば、物理レジスタ群210から送付される、前記要素の格納準備が整ったことを表す通知信号の送付の有無を確認することにより行う。そして、命令発行制御部111は、命令ごとに割り当てられた各物理レジスタにおける前記要素の格納準備が整った旨を判定すると、実行制御部113に通知情報を送付する。
実行制御部113は、命令発行制御部111から前記通知情報の送付を受けると、命令供給部110から送付されたベクトル命令に従い、制御信号を生成する。実行制御部113は、生成した制御信号を、演算部200の各構成要素及び記憶装置320へ送付する。
実行制御部113が生成する前記制御信号には、ライト制御信号と、リード制御信号と、入力制御信号と、出力制御信号と、が含まれる。ライト信号は、ライト選択部213に送付される制御信号である。また、リード信号は、リード選択部211に送付される制御信号である。また、入力制御信号及び出力制御信号は、記憶装置320に送付される制御信号である。
リネーミング制御部112は、実行制御部113がライト選択部213へ送付するライト制御信号を生成する際に、当該ライト制御信号により指定される、ライト選択部213に入力される前記要素の送付先、を表す情報を、実行制御部113へ供給する。当該送付先は、物理レジスタ群210に含まれるいずれかの物理レジスタである。当該供給の際に、リネーミング制御部112は、記憶部121が保持する前述及び後述の、物理レジスタ管理情報を参照する。
一方、記憶装置320へ送付される前記出力制御信号には、記憶装置320に演算部200へ送付させる前記要素を表す情報が含まれる。記憶装置320へ送付される当該出力制御信号には、また、記憶装置320に格納させる、演算部200による演算結果に係る前記要素を表す情報が含まれる。
ライト選択部213へは、記憶装置320又は演算器群212から、演算部200が行うベクトル演算に係る要素の各々が入力される。記憶装置320から入力される前記要素は、例えば、演算装置310による演算処理前のものである。演算器群212から入力される前記要素は、演算器群212に含まれるある演算器による演算結果に関するものである。
ライト選択部213へ送付される前記ライト制御信号は、入力された前記要素の各々の送付先を表すものである。当該送付先は、物理レジスタ群210の各物理レジスタである。ライト選択部213は、入力されたライト制御信号に従い、入力される各要素の送付先の物理レジスタを切り替える。これにより、ライト選択部213に入力された前記要素は、ライト選択部213が選択した送付先の物理レジスタに送付される。
物理レジスタ群210は、図示しない複数の物理レジスタを備える。各物理レジスタは、ライト選択部213から前記要素が送付されると、その要素を保持する。そして、各物理レジスタは、所定のタイミングで、保持している前記要素を、リード選択部211に送付する。
リード選択部211は、実行制御部113から送付されたリード制御信号に従い、各物理レジスタから送付された前記要素の送付先を選択する。当該送付先は、演算器群212が備える図示しない演算器の入力端子及びコピー用の入力端子である。これらの選択により、選択された物理レジスタが保持する各要素は、リード選択部211を介して、演算器群212に含まれる演算器又はコピー用の配線に入力される。
演算器群212の各演算器は、入力された前記要素の演算を行う。そして、各演算器は、演算結果を表す前記要素をライト選択部213及び記憶装置320へ出力する。
記憶装置320は、前記要素からなる要素群を保持する。記憶装置320は、また、前記出力命令により指定された前記要素を、ライト選択部213へ出力する。記憶装置320は、また、演算装置310から入力され、格納を指示された情報を、格納する。
以下の説明においては、特段の説明がない限り、説明の容易さを考慮して、論理レジスタのベクトル長が8の場合についての例を説明する。すなわち、一つの論理レジスタには、8個の前記要素が格納されるものとする。実際の装置においては、通常は、論理レジスタのベクトル長は8より大きな値である。
図2は、図1に表す演算部200及び記憶装置320の構成例を表す概念図である。なお、図1に破線で表す制御信号に係る信号線は、図2では図示を省略する。
図2は、8個以下の要素に係るベクトル演算を実行し得る構成例を表す。すなわち、図2に表す構成例は、ベクトル長が8の論理レジスタのすべてが前述の演算部分であってもベクトル演算が可能であることを想定したものである。
演算部200は、図1の説明において前述したようにライト選択部213と、物理レジスタ群210と、リード選択部211と、演算器群212とを備える。
ライト選択部213は、ポート群291とポート群292とを備える。
ポート群291に属する左から1乃至5番目の各ポートは、演算器群212に係るポート群295に属する各ポートの各々に接続されている。これにより、演算器群212に属する各演算器がポート群295に属するいずれかのポートに演算結果を表す要素を出力した場合は、当該要素は、ポート群291に属する対応するポートに入力される。
ポート群291に属する左から6乃至13番目の各ポートは、記憶装置320のポート群296に属する各ポートに接続されている。これにより、記憶装置320が、前記出力制御信号により、ポート群291に属するいずれかのポートに前記要素を出力した場合には、当該要素は、ポート群291に属する対応するポートに入力される。
ライト選択部213は、図1に表す実行制御部113から送付される前記ライト制御信号に従い、指定されたタイミングに、ポート群291の各ポートから選択した所定のポートを、ポート群292から選択した所定のポートに接続する。ライト選択部213は、当該接続を、一つのタイミングで複数行い得る。
ポート群292の各ポートは、物理レジスタ群210に属する各物理レジスタに接続されている。図2の物理レジスタ群210を表す破線内の長方形の各々は物理レジスタを表す。ポート群292に属する各ポートから出力された要素は、物理レジスタ群210に属する各物理レジスタに格納される。
物理レジスタ群210の各物理レジスタは、同時に格納できる前記要素の数が2以下のものである。当該物理レジスタは、格納する要素が2の場合は物理ベクトルレジスタである。当該物理レジスタが格納する要素を2以下にすることの優位性については後述する。
各物理レジスタは、格納した要素を、図1に表す実行制御部113が指定するタイミングで、ポート群293に属する、対応するポートへ出力する。
リード選択部211は、実行制御部113から送付された前記リード制御信号に従い、ポート群293に属する所定のポートを、ポート群294に属する所定のポートに接続する。リード選択部211は、当該接続を、一つのタイミングに複数行い得る。
演算器群212に属する各演算器は、当該演算器に接続された、ポート群294に属する二つのポートから同じタイミングで入力された二つの前記要素を用いて所定の演算を行う。当該演算の種類は任意である。当該演算器は、当該演算に係る演算結果を表す前記要素を、ポート群295に属する、その演算器に接続されたポートに出力する。
なお、ポート群294に属する最も右側のポートは、ポート群295に属する最も右側のポートに、配線により接続されている。これにより、ポート群294に属する最も右側のポートに入力された要素は、ポート群295に属する最も右側のポートに出力される。前記配線は、ある物理レジスタから出力された要素をある物理レジスタにコピーするためのものである。
ポート群295に属する各ポートは、前述のように、ポート群291に属する左から1乃至5番目の各ポートに接続されている。ポート群295に属する各ポートは、また、記憶装置320のポート群297に属する各ポートに接続されている。
記憶装置320は、ポート群297に入力された要素のうち、実行制御部113が送付された前記入力信号により指定されたものを、格納する。記憶装置320は、ポート群297に入力された要素のうち、実行制御部113から送付された前記入力信号により指定されないものは格納しない。
図3は、前述の論理レジスタ管理情報の例である論理レジスタ管理情報401を表す概念図である。図3は、論理レジスタ管理情報401を表形式で表す。
図3に表す論理レジスタ管理情報は、特許文献5にも記述された、周知のものである。
図3に表す論理レジスタID(Identifier)は、論理レジスタを特定するための情報である。また、第一要素ID乃至第八要素IDの各々は、論理レジスタの当該位置に格納された要素を特定するための情報である。
なお、論理レジスタは、仮想のもので実在しないので、前記要素は実際に格納されることはない。しかしながら、以下においては、記述の簡潔性を考慮し、論理レジスタにおいて要素が格納されることが想定されることを、要素が「格納される」と表記するものとする。なお、物理レジスタにおいては、前記要素は、実際に格納され得る。
論理レジスタ管理情報401においては、各論理レジスタについて、格納される前記要素が、対応付けられている。
図4は、前述の物理レジスタ管理情報の第一の例を表す概念図である。図4は、物理レジスタ管理情報を表形式で表す。
図4に表す物理レジスタ管理情報は本実施形態に固有のものである。ただし、物理レジスタ管理情報を保持して用いること自体は、特許文献5にも記載があり、周知である。
図4に表す第一物理レジスタID乃至第四物理レジスタIDの各々は、論理レジスタの当該位置に格納された要素が実際に格納される物理レジスタを特定するための情報である。
図4において一つの論理レジスタに四つの物理レジスタが対応付けられているのは、ここでは、一つの物理レジスタに、同時に、二つの要素が格納されることを前提としているためである。
物理レジスタ管理情報400においては、各論理レジスタに格納された要素を格納する物理レジスタが特定されている。
図4には、論理レジスタIDに含まれる数字が増えるにつれ、物理レジスタIDに含まれる数字が単純に増加する例を表す。
なお、一つの物理レジスタに、同時に一つの前記要素が格納される場合は、後述のように、各論理レジスタは8個の物理レジスタに対応付けられる。
図5は、前述の物理レジスタ管理情報の第二の例を表す概念図である。
図5に表す物理レジスタ管理情報400は、論理レジスタIDに対応する物理レジスタIDに含まれる数字が順不同になっている点が、図4に表す物理レジスタ管理情報400と異なる。
図6は、前述の参照数情報の例である参照数情報402を表す概念図である。
図6に表す参照数情報は、例えば特許文献5にも記載のある、周知のものである。
図6に表す参照数は、演算される対象要素の物理レジスタへの格納に係るベクトル命令において、各物理レジスタIDが参照されている数である。
参照数がゼロであることは、一連の演算に、係る前記対象要素の格納のためにその物理レジスタが使われないことを表す。そのため、リネーミング制御部112は、論理レジスタIDに物理レジスタIDを割り当てる際に、参照数情報402における参照数がゼロの物理レジスタIDを割り当てることが可能である。
次に、図1に表すリネーミング制御部112が行う動作例を、リネーミング制御部112が特許文献5に記載された方法が行う場合の動作例と比較しつつ、説明する。なお、以下の説明においては、特許文献5に記載された方法は、「文献方法」と記述されることとする。
文献方法においては、一つの論理レジスタに格納された要素は、二個以下の物理レジスタに格納されるとされている。そして、各物理レジスタに格納される前記要素の数は、論理レジスタに格納された前記要素の数と同じである。ここでは、論理レジスタに格納される前記要素の数は、前述のように、8としている。従い、各物理レジスタに格納される前記要素の数は8である。
文献方法においては、また、図1の説明において述べた物理レジスタ管理情報には、各論理レジスタに格納された要素を格納する物理レジスタの物理レジスタIDが格納される。当該物理レジスタ管理情報には、また、一番目の物理レジスタIDの物理レジスタにおいて要素が格納されている数(ベクトル長)が格納される。
図7は、文献方法による第一の動作例を説明するための図である。
論理レジスタL1は、ベクトル演算を行う前の各要素が格納された論理レジスタであるとする。ここで、論理レジスタL1は、論理レジスタIDがL1の論理レジスタをいうこととする。同様にして、以下、論理レジスタの語に続く記号は、その論理レジスタの論理レジスタIDを表すものとする。
論理レジスタL1に格納された要素は、物理レジスタPA1及びPA2に分けて格納されている。ここで、物理レジスタPA1及びPA2は、物理レジスタIDがPA1の物理レジスタ、及び、物理レジスタIDがPA2の物理レジスタである。同様にして、以下、物理レジスタの語に続く記号は、その物理レジスタの物理レジスタIDを表すものとする。
図7における、領域PA11乃至PA18、PA21乃至PA28及びPA31乃至PA38の各々は、要素の各々を格納し得る、物理レジスタにおける格納領域である。
物理レジスタPA1においては、要素は、領域PA11乃至PA15に格納されている。そして、領域PA16乃至PA18は、要素の格納に使用されていない。
領域PA11乃至PA13には、要素のうち、ベクトル演算に使用される部分である、演算部分が格納されている。
領域PA14及びPA15には、要素のうち、ベクトル演算に使用されない部分である、非演算部分が格納されている。領域PA14及びPA15に格納された要素は、演算後にも維持されるべき要素であるとする。
物理レジスタPA2においては、領域PA21乃至PA25は要素の格納に使用されていない。そして、領域PA26乃至PA28に、非演算部分が格納されている。領域PA26乃至PA28に格納された要素は、演算後にも維持されるべき要素であるとする。
ここで、図1に表す演算装置310は、論理レジスタL1に格納された各要素に対して、図示しない他の論理レジスタに格納された要素により、ベクトル長が3の演算を実行したとする。そして、演算装置310は、当該演算の結果を、論理レジスタL3に格納する処理を行ったとする。
その場合、演算装置310は、物理レジスタPA1の領域PA11乃至PA13の各々に格納された要素は、前述の他の論理レジスタに格納された演算部分の三つの異なる要素の各々との間で所定の演算を行う。
そして、演算装置310は、当該演算に係る演算結果を、物理レジスタPA3の領域PA31乃至PA33の各々に格納する。
そして、演算装置310は、物理レジスタPA1の領域PA14及びPA15に格納された要素を、物理レジスタPA3の領域PA34及びPA35にコピーする。演算装置310は、また、物理レジスタPA2の領域PA26乃至PA28に格納された要素を、物理レジスタPA3の領域PA36乃至PA38にコピーする。
図7に表す動作においては、5つの異なる領域に格納された要素のコピーが行われる。
図8は、図7に表す動作に対応する前述の物理レジスタ管理情報の関連部分を表す図である。なお、図7の説明において述べた他の論理レジスタについては、図示を省略してある。
演算装置310は、演算前の要素が格納された論理レジスタに係る論理レジスタL1に、第一の物理レジスタとして物理レジスタPA1が、第二の物理レジスタとして物理レジスタPA2が、各々関連付けている。演算装置310は、論理レジスタL1に、さらに、ベクトル長として、第一の物理レジスタである物理レジスタPA1において要素が格納されている領域の数の5(図7参照)を関連付けている。
また、図8においては、演算装置310は、演算後の要素が格納される論理レジスタL2に、第一の物理レジスタとして物理レジスタPA3を対応付けている。演算装置310は、また、論理レジスタL2に、ベクトル長として、物理レジスタPA3において要素が格納されている数の8(図7参照)を対応付けている。
図7に表す動作は、演算装置310のリネーミング制御部112、が図8に表す物理レジスタ管理情報に基づいて行うものである。
次に、図7に表す動作例の動作に対応する動作を本実施形態の演算装置310が行う場合について説明する。
図9は、図7に表す動作に対応する本実施形態の動作例(その1)を説明するための図である。図9は、一つの物理レジスタに、要素を格納するための前述の領域が二つ含まれる場合の動作例を表す。
物理レジスタ群901は、論理レジスタL1に格納される各要素が格納される物理レジスタからなる。
論理レジスタL1に対応する物理レジスタ群である物理レジスタ群901は、物理レジスタP1乃至P4からなる。各物理レジスタは、その物理レジスタに係る物理レジスタIDの次にaの記号を付与した領域と当該物理レジスタIDの次にbの記号を付与した領域との、二つの領域を備える。それらの領域には、要素が一つずつ格納され得る。
図7において、演算前の各要素が格納される物理レジスタPA1の領域PA11乃至PA13に格納された要素に相当する演算部分の各要素は、図9に表す物理レジスタP1の各領域及び物理レジスタP2の領域P2aに格納される。
また、非演算部分の各要素は、図9に表す、物理レジスタP2の領域P2b、物理レジスタP3の各領域、及び、物理レジスタP4の各領域に格納される。これらの非演算部分の要素は、演算後にも維持されるべき要素であるとする。当該非演算部分の各要素は、図7に表す物理レジスタPA1の領域PA14及びPA15、並びに、物理レジスタPA2の領域PA26乃至PA28に格納された要素に相当する要素である。
図9に表す物理レジスタ群902は、演算後の各要素が格納される論理レジスタL4に対応する。
物理レジスタ群902は、物理レジスタP13、P14、P3及びP4からなる。これらのうち、物理レジスタP3及びP4は演算前の各要素が格納される物理レジスタ群901に含まれる物理レジスタP3及びP4と同じものである。
物理レジスタP13の各領域及び物理レジスタP14の領域P14aには、演算結果の各要素が格納される。当該各要素は、演算前の演算部分の各要素に、図7の説明で述べた他の論理レジスタに格納された演算部分の要素の各々を演算した演算結果を表す各要素である。前記演算前の演算部分の各要素は、物理レジスタ群901においては物理レジスタP1の各領域及び物理レジスタP2の領域P2aの各々に格納されていたものである。
物理レジスタ群902に属する物理レジスタP14の領域P14b、物理レジスタP3の各領域及び物理レジスタP4の各領域には、非演算部分の各要素が格納される。
演算後の非演算部分の各要素を、演算前の非演算部分の各要素と同じにするため、物理レジスタP2の領域P2aに格納された要素は、物理レジスタP14の領域P14bにコピーされる。
また、演算後の非演算部分の各要素を、演算前の非演算部分の各要素と同じにするため、物理レジスタP3の各領域及び物理レジスタP4の各領域に格納された各要素は、物理レジスタから出力されずに、そのまま維持される。
上記動作においては、物理レジスタのある領域から他の物理レジスタの領域へのコピーが一回行われる。しかしながら、上記動作において要素の維持のために必要なコピー数の一回は、図7に表す動作において必要なコピー数の5回より顕著に少ない。
図10は、図9に表す動作に対応する前記物理レジスタ管理情報の関連部分を表す図である。
演算装置310は、演算前の要素が格納される論理レジスタL1に、物理レジスタP1乃至P4を対応付けている。
演算装置310は、また、演算後の要素が格納される論理レジスタL4に、物理レジスタP13及びP14、並びに、物理レジスタP3及びP4を対応付けている。
物理レジスタP13及びP14は、図9を参照して説明したように、演算結果に係る要素が格納されるものである。従い、演算前の要素が格納されていた物理レジスタP1及びP2とは異なる物理レジスタである物理レジスタP13及びP14が確保される。
一方、物理レジスタP3及びP4は、演算前の非演算部分に係る要素が演算後にも格納されるものである。そのため、演算前に非演算部分が格納されていた物理レジスタP3及びP4が、格納する要素を変えないまま、演算前後で維持される。
図11は、図7に表す動作に対応する本実施形態の動作例(その2)を説明するための図である。図11は、一つの物理レジスタに含まれる、要素を格納するための領域が一つの場合の動作例を表す。
物理レジスタ群901は、演算前の各要素が格納される論理レジスタである論理レジスタL1に格納される各要素が格納される物理レジスタ群である。
物理レジスタ群901は、物理レジスタPB1乃至PB8からなる。各物理レジスタは、一つの要素を格納するための領域を一つ備える。
図7において、演算前の各要素が格納される物理レジスタである物理レジスタPA1の領域PA11乃至PA13に格納された各要素に相当する演算部分の各要素は、図11に表す物理レジスタPB1乃至PB3に格納される。
また、非演算部分の各要素は、図11に表す、物理レジスタPB4乃至PB8に格納される。当該非演算部分の各要素は、図7に表す物理レジスタPA1の領域PA14及びPA15、並びに、物理レジスタPA2の領域PA26乃至PA28に格納されたものに相当するものである。
図11に表す物理レジスタ群902は、演算後の各要素が格納される論理レジスタL4に対応する物理レジスタ群である。
物理レジスタ群902は、物理レジスタPB11乃至PB13及びPB4乃至PB8からなる。これらのうち、物理レジスタPB4乃至PB8は演算前の各要素が格納される物理レジスタ群901に含まれる物理レジスタPB4乃至PB8と同じものである。
物理レジスタPB11乃至PB13には、演算結果の各要素が格納される。当該各要素は、物理レジスタ群901においては物理レジスタPB1乃至PB3の各々に格納されている、演算部分の各要素に、図7の説明で述べた他の論理レジスタに格納された演算部分の各要素を演算した演算結果を表す各要素である。
物理レジスタ群902に属する物理レジスタPB4乃至PB8には、非演算部分の各要素が格納される。
演算後の非演算部分の各要素を、演算前の非演算部分の各要素と同じにするため、物理レジスタ群901において物理レジスタPB4乃至PB8に格納された各要素は、各物理レジスタから出力されずにそのまま維持される。
上記動作においては、物理レジスタのある領域から他の物理レジスタの領域への、要素の維持のためのコピーは行われない。
図12は、図11に表す動作に対応する前記物理レジスタ管理情報の関連部分を表す図である。
演算装置310は、演算前の各要素が格納される論理レジスタL1に、物理レジスタPB1乃至PB8を対応付けている。
そして、演算装置310は、演算後の要素が格納される論理レジスタL4に、物理レジスタPB11乃至PB13、及び、物理レジスタPB4乃至PB8を対応付けている。
物理レジスタPB11乃至PB13は、図11を参照して説明したように、演算結果に係る各要素が格納されるものである。従い、演算装置310は、演算前の要素が格納されていた物理レジスタPB1乃至PB3とは異なる物理レジスタである物理レジスタPB11乃至PB13を割り当てる。
一方、物理レジスタPB4乃至PB8は、非演算部分に係る要素を演算後にも格納するものである。そのため、演算装置310は、演算前に非演算部分が格納されていた物理レジスタPB4乃至PB8が、格納する要素を変更せずに、演算前後で維持する。
図13は、文献方式による第二の動作例を説明するための図である。
本例においては、演算前の要素が格納される論理レジスタL1の各要素は、物理レジスタPA1とPA2の各々に分けて格納されている。
本例においては、物理レジスタPA1の、領域PA11乃至PA13には、演算に使用される演算部分の要素が格納されている。物理レジスタPA1の、領域PA14乃至PA18は、要素の格納には使用されない。
本例においては、また、物理レジスタPA2の、領域PA21乃至PA23は、要素の格納には使用されない。物理レジスタPA2の、領域PA24及びPA25には、演算部分の要素が格納されている。そして、物理レジスタPA2の、領域PA26乃至PA28には、非演算部分の要素が格納されている。これらの非演算部分の要素は、演算後にも維持されるべき要素であるとする。
ここで、本例において、論理レジスタL1と、他の論理レジスタとの間で、ベクトル長が5の演算が行われるとする。
当該演算後の各要素は、論理レジスタL3に格納されるとする。そして、本例では、論理レジスタL3の各要素は、物理レジスタPA3及びPA2に格納されるとする。
また、物理レジスタPA3の領域PA31乃至PA35は、演算結果に係る各要素の格納に使用されるとする。そして、領域PA36乃至PA38は、要素の格納には使用されないとする。
一方、物理レジスタPA2が格納する非演算部分の各要素は、演算前後で維持されるとする。すなわち、物理レジスタPA2の領域PA26乃至PA28には、演算前に格納されていた非演算部分の要素が演算後もそのまま維持されるとする。
図13に表す動作例においては、要素の維持のための要素のコピーは行われない。
図14は、図13に表す動作に対応する物理レジスタ管理情報の関連部分を表す図である。
図14は、演算前の各要素が格納される論理レジスタである論理レジスタL1に格納される各要素は、物理レジスタPA1とPA2とに格納されることを表す。図14は、また、物理レジスタPA1において要素が格納されている領域の数を表すベクトル長は3であることを表す。
図14は、また、演算後の各要素が格納されている論理レジスタである論理レジスタL2に格納される各要素は、物理レジスタPA3とPA2とに格納されることを表す。図14は、また、物理レジスタPA3におけるベクトル長は5であることを表す。
図15は、図13に表す動作に相当する本実施形態の演算装置310が行う動作に係る動作例(その1)を説明するための図である。図15は、一つの物理レジスタが要素を格納するための前述の領域を二つ備える場合の動作例を表す。
物理レジスタ群901は、論理レジスタL1に格納される各要素が格納される物理レジスタからなる物理レジスタ群である。
物理レジスタ群901は、物理レジスタP1乃至P4からなる。各物理レジスタは、その物理レジスタに係る物理レジスタIDの次にaの記号を付与した領域と当該物理レジスタIDの次にbの記号を付与した領域との、二つの領域を備える。それらの領域には、要素が一つずつ格納され得る。
図13において、演算前の演算部分の各要素は、図15に表す物理レジスタP1の各領域、物理レジスタP2の各領域、及び、物理レジスタP3の領域P3aに格納される。当該各要素は、演算前に、物理レジスタPA1の領域PA11乃至PA13及び物理レジスタPA2の領域PA24及びPA25に格納されたものに相当する
また、非演算部分の各要素は、図15に表す、物理レジスタP3の領域P3b及び物理レジスタP4の各領域に格納される。当該非演算部分の各要素は、図13に表す物理レジスタPA2の領域PA26乃至PA28に格納されたものに相当する。
図13に表す物理レジスタ群902は、演算後の各要素が格納される論理レジスタL4に対応する。
物理レジスタ群902は、物理レジスタP13乃至P15及びP4からなる。これらのうち、物理レジスタP4は演算前の各要素が格納される物理レジスタ群901に含まれる物理レジスタP4と同じものである。
物理レジスタP13の各領域、物理レジスタP14の各領域、及び、物理レジスタP15の領域P15aには、演算結果の各要素が格納される。当該各要素は、演算前の演算部分の各要素に、図13の説明で述べた他の論理レジスタに格納された演算部分の各要素を演算した演算結果を表す各要素である。当該演算前の演算部分の各要素は、物理レジスタ群901において、物理レジスタP1の各領域、物理レジスタP2の各領域並びに物理レジスタP3の領域P3aの各々に格納されていたものである。
物理レジスタ群902に属する物理レジスタP15の領域P15b及び物理レジスタP4の各領域には、非演算部分の各要素が格納される。
演算後の非演算部分の各要素を、演算前の非演算部分の各要素と同じにするため、物理レジスタP3の領域P3aに格納された要素は、物理レジスタP15の領域P15bにコピーされる。
演算後の非演算部分の各要素を、演算前の非演算部分の各要素と同じにするため、物理レジスタP4の各領域に格納された各要素は、物理レジスタから出力されずにそのまま維持される。
上記動作においては、物理レジスタのある領域から他の物理レジスタの領域へのコピーが一回行われる。従い、コピーの回数は、演算装置310が図13に表す文献方法の動作を行う場合より一回多い。しかしながら、上記動作においては、コピーの回数は最小限の一回に抑えられている。
図16は、図15に表す動作に対応する前記物理レジスタ管理情報の関連部分を表す図である。
演算装置310は、演算前の要素が格納される論理レジスタL1に、物理レジスタP1乃至P4を対応付けている。
そして、演算装置310は、演算後の要素が格納される論理レジスタL4に、物理レジスタP13乃至P15、並びに、物理レジスタP4を対応付けている。
物理レジスタP13乃至P15は、図15を参照して説明したように、演算結果に係る要素が格納されるものである。従い、演算前の要素が格納されていた物理レジスタP1乃至P3とは異なる物理レジスタである物理レジスタP13乃至P15が確保されている。
一方、物理レジスタP4は、非演算部分に係る要素が演算後にも格納されるものである。そのため、演算前に非演算部分が格納されていた物理レジスタP4が、保持する要素を変更せずに、演算前後で維持される。
図17は、図13に表す動作に対応する本実施形態の動作例(その2)を説明するための図である。図17は、一つの物理レジスタに含まれる、要素を格納するための前述の領域が一つの場合の動作例を表す。
物理レジスタ群901は、論理レジスタL1に格納される各要素が格納される物理レジスタからなる物理レジスタ群である。
物理レジスタ群901は、物理レジスタPB1乃至PB8からなる。各物理レジスタは、要素を格納するための前記領域を一つ備える。
図13において、演算前の演算部分の各要素は、物理レジスタ群901の物理レジスタPB1乃至PB5に格納される。前記演算前の演算部分の各要素は、物理レジスタPA1の領域PA11乃至PA13及び物理レジスタPA2の領域PA24及びPA25に格納された各要素に相当するものである。
また、非演算部分の各要素は、物理レジスタ群901の物理レジスタPB6乃至PB8に格納される。当該非演算部分の各要素は、演算前に、図13に表す物理レジスタPA2の領域PA26乃至PA28に格納された要素に相当するものである。
図17に表す物理レジスタ群902は、演算後の各要素が格納される論理レジスタL4に対応する。
物理レジスタ群902は、物理レジスタPB11乃至PB15及びPB6乃至PB8からなる。これらのうち、物理レジスタPB6乃至PB8は演算前の各要素が格納される物理レジスタ群901に含まれる物理レジスタPB6乃至PB8と同じものである。
物理レジスタPB11乃至PB15には、演算結果を表す各要素が格納される。当該各要素は、物理レジスタ群901の物理レジスタPB1乃至PB5の各々に格納されていた、演算前の演算部分の各要素に、図13の説明で述べた他の論理レジスタに格納された演算部分の各要素を演算した演算結果を表す各要素である。
物理レジスタ群902に属する物理レジスタPB6乃至PB8には、非演算部分の各要素が格納される。
演算後の非演算部分の各要素を、演算前の非演算部分の各要素と同じにするため、物理レジスタ群901の物理レジスタPB6乃至PB8に格納された各要素は、物理レジスタから出力されずに、演算後も、そのまま維持される。
上記動作においては、物理レジスタのある領域から他の物理レジスタの領域への、要素の維持のためのコピーは行われない。
図18は、図17に表す動作に対応する前記物理レジスタ管理情報の関連部分を表す図である。
演算装置310は、演算前の要素が格納される論理レジスタL1に、物理レジスタPB1乃至PB8を対応付けている。
そして、演算装置310は、演算後の要素が格納される論理レジスタL4に、物理レジスタPB11乃至PB15、及び、物理レジスタPB6乃至PB8を対応付けている。
物理レジスタPB11乃至PB15は、図17を参照して説明したように、演算結果に係る要素が格納されるものである。従い、演算前の要素が格納されていた物理レジスタPB1乃至PB5とは異なる物理レジスタである物理レジスタPB11乃至PB15が確保される。
一方、物理レジスタPB6乃至PB8は、非演算部分に係る要素を演算後にも格納するものである。そのため、演算前に非演算部分が格納されていた物理レジスタPB6乃至PB8が、格納する要素を変更しないまま、演算前後で維持される。
図19は、本実施形態の演算装置310が、ベクトル長が6の演算を行う場合の、動作例(その1)を説明するための図である。図19は、一つの物理レジスタに含まれる領域が二つの場合の動作例を表す。
物理レジスタ群901は、論理レジスタL1に格納される各要素が格納される物理レジスタからなる。
物理レジスタ群901は、物理レジスタP1乃至P4からなる。各物理レジスタは、その物理レジスタに係る物理レジスタIDの次にaの記号を付与した領域と当該物理レジスタIDの次にbの記号を付与した領域との、二つの領域を備える。それらの領域には、要素が一つずつ格納され得る。
論理レジスタL1に格納される、演算前の演算部分の各要素は、物理レジスタ群901の物理レジスタP1、P2及びP3の各領域に格納される。
また、論理レジスタL1に格納される、非演算部分の各要素は、物理レジスタ群901の物理レジスタP4の各領域に格納される。これらの非演算部分の要素は、演算後にも維持されるべき要素であるとする。
図19に表す物理レジスタ群902は、演算後の各要素が格納される論理レジスタである論理レジスタL4に対応する。
物理レジスタ群902は、物理レジスタP13、P14、P15及びP4からなる。これらのうち、物理レジスタP4は演算前の各要素が格納される物理レジスタ群901に含まれる物理レジスタP4と同じものである。
物理レジスタP13、P14及びP15の各領域には、演算結果である各要素が格納される。当該各要素は、物理レジスタ群901の物理レジスタP1、P2及びP3の各領域に格納されていた、演算部分の各要素にベクトル長が6の他の論理レジスタに格納された演算部分の各要素を演算した演算結果を表す。
物理レジスタ群902に属する物理レジスタP4の各領域には、非演算部分の各要素が格納される。演算後の非演算部分の各要素を、演算前の非演算部分の各要素と同じにするため、物理レジスタP4の各領域に格納された各要素は、物理レジスタから出力されずにそのまま維持される。
上記動作においては、物理レジスタのある領域から他の物理レジスタの領域への、要素の維持のためのコピーは行われない。
図20は、図19に表す動作に対応する前記物理レジスタ管理情報の関連部分を表す図である。
演算装置310は、演算前の要素が格納される論理レジスタL1に、物理レジスタP1乃至P4を対応付けている。
そして、演算装置310は、演算後の要素が格納される論理レジスタL4に、物理レジスタP13乃至P15、並びに、物理レジスタP4を対応付けている。
物理レジスタP13乃至P15は、図19を参照して説明したように、演算結果に係る要素が格納されるものである。従い、演算前の要素が格納されていた物理レジスタP1乃至P3とは異なる物理レジスタである物理レジスタP13乃至P15が確保される。
一方、物理レジスタP4は、非演算部分に係る要素が演算後にも格納されるものである。そのため、演算前に非演算部分が格納されていた物理レジスタP4が、格納する要素を変更することなく、演算前後で維持される。
図21は、ベクトル長が6の演算を行う場合の本実施形態の動作例(その2)を説明するための図である。図21は、一つの物理レジスタに含まれる、要素を格納するための領域が一つの場合の動作例を表す。
物理レジスタ群901は、論理レジスタL1に格納される各要素が格納される物理レジスタからなる。
物理レジスタ群901は、物理レジスタPB1乃至PB8からなる。各物理レジスタは、要素を格納するための領域を一つ備える。
論理レジスタL1に格納される演算部分の各要素は、物理レジスタ群901の物理レジスタPB1乃至PB5に格納される。また、論理レジスタL1に格納される非演算部分の各要素は、物理レジスタ群901の物理レジスタPB6乃至PB8に格納される。これらの非演算部分の要素は、演算後にも維持されるべき要素であるとする。
物理レジスタ群902は、演算後の各要素が格納される論理レジスタL4に対応する。
物理レジスタ群902は、物理レジスタPB11乃至PB16、PB7及びPB8からなる。これらのうち、物理レジスタPB7及びPB8は演算前の各要素が格納される物理レジスタ群901に含まれる物理レジスタPB7及びPB8と同じものである。
物理レジスタPB11乃至PB16には、演算結果の各要素が格納される。当該各要素は、物理レジスタ群901に含まれる物理レジスタPB1乃至PB6の各々に格納されていた、演算前の演算部分の各要素に、他の論理レジスタに格納された演算前の演算部分の各要素を演算した演算結果を表す各要素である。
物理レジスタ群902に属する物理レジスタPB7及びPB8には、非演算部分の各要素が格納される。
演算後の非演算部分の各要素を、演算前の非演算部分の各要素と同じにするため、物理レジスタ群の物理レジスタPB7及びPB8に格納された各要素は、物理レジスタから出力されずにそのまま維持される。
上記動作においては、物理レジスタから他の物理レジスタへの、要素の維持のためのコピーは行われない。
図22は、図21に表す動作に対応する前記物理レジスタ管理情報の関連部分を表す図である。
演算装置310は、演算前の要素が格納される論理レジスタL1に、物理レジスタPB1乃至PB8を対応付けている。
演算装置310は、また、演算後の要素が格納される論理レジスタL4に、物理レジスタPB11乃至PB16、PB7及びPB8を対応付けている。
物理レジスタPB11乃至PB16は、図21を参照して説明したように、演算結果に係る要素が格納されるものである。従い、演算前の要素が格納されていた物理レジスタPB1乃至PB6とは異なる物理レジスタであるPB11乃至PB16が確保されている。
一方、物理レジスタPB7及びPB8は、非演算部分に係る要素を演算後にも格納するものである。そのため、演算前に非演算部分が格納されていた物理レジスタPB7及びPB8が、格納する要素を変更せずに、演算前後で維持される。
次に、本実施形態の動作によると、文献方法の場合と比較して、物理レジスタに属する領域の有効活用が図られることを、図23乃至図25を参照して、説明する。
図23は、文献方法における前述の論理レジスタ管理情報の関連部分の例を表す図である。
図23に表す例では、論理レジスタL1は、格納される要素がe1乃至e3の三個である。
図24は、図23に表す論理レジスタL1についての、文献方法における、前述の物理レジスタ管理情報の関連部分の例を表す図である。
演算装置310は、論理レジスタL1に物理レジスタPA1を対応付けている。演算装置310は、また、物理レジスタPA1において要素が格納されている領域の数であるベクトル長を3としている。
前述のように文献方法においては、一つの物理レジスタの領域数は、論理レジスタに格納される要素数に等しい。そのため、この場合、一つの物理レジスタの領域数は8である。従い、物理レジスタPA1の8つの領域のうち、5つは、要素が格納されない不使用の領域である。物理レジスタPA1における、不使用のこれらの領域は、物理レジスタPA1に含まれる形で論理レジスタL1に割り当てられているので、他の処理に流用することができない。そのため、これらの不使用の領域は、論理レジスタL1に格納された要素を格納するために無駄に確保された領域である。
図25は、図23に表す論理レジスタ管理情報の部分に対応する、本実施形態の物理レジスタ管理情報の関連部分を表す図である。
演算装置310は、論理レジスタL1に、物理レジスタP1及びP2を割り当てている。前述のように物理レジスタは、二つの領域を備える。従い、論理レジスタに割り当てられた物理レジスタの領域のうち、要素の格納に使用されないものは、存在したとしても一つのみである。
従い、本実施形態は、文献方法と比較して、一つの論理レジスタに格納される要素数が少ない(ベクトル長が短い)場合は、文献方法と比較して、物理レジスタが備える領域の有効活用が可能である。
本実施形態の演算装置は、上記のように、無駄に確保される領域の発生を抑え得る。本実施形態の演算装置は、一つの物理レジスタが備える領域の数が二個の場合は、無駄な領域の数は一個か0にすることができる。また、本実施形態の演算装置は、一つの物理レジスタが備える領域の数が一個の場合は、無駄な領域の数は0にすることができる。
このように、本実施形態の演算装置は、要素の維持のためのコピー量を減らすことに加えて、物理レジスタに含まれる領域のより効率的な利用を可能にする。
所定の物理レジスタが、演算の実行に係るベクトル命令において参照されていない場合は、その物理レジスタが演算前の情報が格納されていたものであっても、その演算に係る演算後の情報を格納することができる。そのような処理を行えば、演算前に格納されていた要素を維持することで、当該要素のコピーを行わないことができる。従い、上記処理は、コピーの回数を減らすために、一般に行われているものである。
図26は、文献方法において、演算装置310が演算前の要素の物理レジスタへの格納に係るベクトル命令において参照されていない物理レジスタに演算後の要素を格納する場合の動作例を表す図である。
本例では、演算装置310は、演算前の要素が格納される論理レジスタL1に、物理レジスタPA1及びPA2が割り当てる。
本例では、また、演算装置310は、物理レジスタPA1の、領域PA11乃至PA13に、演算に用いられる演算部分の各要素を格納する。また、演算装置310は、物理レジスタPA1の、領域PA14及びPA15は、演算に用いられない非演算部分の各要素を格納する。これらの非演算部分の要素は、演算後にも維持されるべき要素であるとする。また、演算装置310は、物理レジスタPA1の、領域PA16乃至PA18を、要素の格納に用いない。
本例では、また、演算装置310は、物理レジスタPA2の領域PA21乃至PA25を、要素の格納には用いない。そして演算装置310は、物理レジスタPA2の領域PA26乃至PA28を、非演算部分の要素の格納に使用する。これらの非演算部分の要素は、演算後にも維持されるべき要素であるとする。
本例では、演算装置310は、また、論理レジスタL1に格納された要素にベクトル長3の演算を行った後の各要素を論理レジスタL3に格納する。そして、演算装置310は、論理レジスタL3に、物理レジスタPA2を対応付ける。演算装置310は、当該対応付けを、物理レジスタPA2が、演算に係るベクトル命令において参照されないことが前述の参照数情報に表されているために行う。
演算装置310は、演算後の各要素を物理レジスタPA2の領域PA21乃至PA23に格納する。演算装置310は、また、物理レジスタPA1の領域PA14及びPA15に格納されている非演算部分の要素を、物理レジスタPA2の領域PA24及びPA25にコピーする。演算装置310は、また、物理レジスタPA2の領域PA26乃至PA28に格納された要素を維持する。
上記の動作の場合、物理レジスタPA2の領域PA26乃至PA28に格納された要素は、演算前後で維持されるので、要素の維持のためのこれらの要素のコピーは行われない。そのため、コピーの実行回数は二回に抑えられる。しかしながら、上記方法においても、要素の維持のためのコピーが二回ほど必要になる。
図27は、図26に表す動作に対応する、物理レジスタ管理情報の関連部分を表す図である。
図27は、演算前の要素が格納される論理レジスタL1は、物理レジスタPA1及びPA2に対応付けられている。また、物理レジスタPA1における要素格納に係るベクトル長は5である。
演算後の要素が格納される論理レジスタL2には、物理レジスタPA2が対応付けられている。演算後の物理レジスタPA2における要素格納に係るベクトル長は、8である。
図26に表す動作に相当する動作を本実施形態の演算装置310が行った場合の動作例は、図9に表す前述のものになる。物理レジスタP1及びP2は、演算前の要素を保持しているため、前述の参照数情報において、演算前の要素を物理レジスタに格納するベクトル命令で参照されている。そのため、物理レジスタP1及びP2以外の物理レジスタである、例えば、物理レジスタP13及びP14を、演算後の要素を格納するために用いる必要があるためである。
そして、演算装置310が、図9に表す場合の要素の維持のために必要なコピーの数は、前述のように一つであり、図26に表す動作例の場合の二つよりも少ない。
[効果]
本実施形態の演算装置においては、各物理レジスタが、二つ以下の、情報要素を同時に格納するための領域を備える。
各物理レジスタが前記領域を二つ備える場合には、前記演算装置が情報要素の維持のためのコピーを実行するのは、物理レジスタが備える二つの領域のうちの一方が演算に関係する要素を格納し、他方が演算に関係しない要素を格納する場合である。そのため、前記演算装置は、同場合に、一回の演算で行われる要素維持のためのコピーの数は、一回以内にすることが可能である。
また、各物理レジスタが前記領域を一つのみ備える場合は、要素維持のためのコピーを行う必要がない。
一方、特許文献5に記載された方法では、前述のように、一回の演算で二回以上の情報要素の維持のためのコピーが行われ得る。
つまり、本実施形態の演算装置は、一回の演算で情報要素の維持のために必要なコピーの数を減らすことができる。
ここで、一回の演算で行われ得るコピーの回数が多いと、演算装置において、演算を行うためのポートに加えて、一回の演算で行われ得るコピーの数だけコピーを実行するのためのポートを余分に設置する必要がある。本実施形態の演算装置は、一回の演算で必要な要素の維持のためのコピーの数を減らすことができるので、コピーのためのポート数を減らすことが可能である。
なお、各物理レジスタが前記領域を二つ備える場合は、前記領域を一つ備える場合と比較して、一つの論理レジスタに対応させる物理レジスタの数が半分になる。そのため、上記場合は、物理レジスタ管理情報においても各論理レジスタIDに対応する物理レジスタIDの数が半分になる。従い、上記場合は、物理レジスタ管理情報の規模が小さくなり、リネーミング処理部による物理レジスタ管理情報の参照のための処理が少なくて済むという長所がある。
図28は、実施形態の演算装置の最小限の構成である演算装置310xの構成を表すブロック図である。
演算装置310xは、第一選択部213xと、物理レジスタ群210xと、第二選択部211xと、演算器群212xとを備える。
第一選択部213xは、前記第一要素群のうちの前記ベクトル長の前記情報要素の各々と、前記第二要素群のうちの前記ベクトル長の前記情報要素の各々とを、第一の制御情報に基づいて選択した物理レジスタの各々に入力する。当該物理レジスタは、物理レジスタ群210xに含まれるものである。
物理レジスタ群210xは、第一選択部213xから入力された前記情報要素の各々を保持する前記物理レジスタを含む。
第二選択部211xは、第一選択部213xから入力された前記情報要素を保持した前記物理レジスタの各々から入力された前記情報要素の各々を演算器群212xに含まれる所定の演算器の入力部の各々に入力する。
演算器群212xは、第二選択部211xから入力された前記情報要素に係る前記ベクトル演算により前記第三要素群を出力する。
前記第一の制御情報に基づいて選択された前記物理レジスタは、第一の物理レジスタと第二の物理レジスタとで異なる場合がある。ここで、前記第一の物理レジスタは、所定のベクトル演算前の当該ベクトル演算対象の前記情報要素の各々を格納するものである。また、第二の物理レジスタは、当該情報要素についての当該ベクトル演算の演算結果に係る前記情報要素を格納するものである。
また、前記物理レジスタの各々が備える、前記情報要素を同時に格納し得る領域の数は、二個以下である。
各物理レジスタが前記領域を二つ備える場合には、前記演算装置が情報要素の維持のために必要なコピーを実行するのは、次の場合である。その場合は、すなわち、物理レジスタが備える二つの領域のうちの一方が演算に関係する前記情報要素を格納し、他方が演算に関係しない前記情報要素を格納する場合である。そのため、一回の演算で必要とされる前記情報要素のコピー数は、一回以下である。
また、各物理レジスタが前記領域を一つのみ備える場合は、前記情報要素の維持のためのコピーを行う必要がない。
一方、特許文献5に記載された方法では、前述のように、一回の演算で二回以上のコピーが行われ得る。
従い、演算装置310xは、一回の演算で行われ得る情報要素の維持のためのコピーの回数を減らすことができる。
そのため、演算装置310xは、上記構成を備えることにより、発明の効果の項において説明した効果を奏する。
なお、図28に表す演算装置310xは、例えば、図1又は図2に表す演算装置310である。また、第一選択部213xは、例えば、図1又は図2に表すライト選択部213である。また、物理レジスタ群210xは、例えば、図1又は図2に表す物理レジスタ群210である。また、第二選択部211xは、例えば、図1又は図2に表すリード選択部211である。また、演算器群212xは、例えば、図1又は図2に表す演算器群212である。
以上、本発明の各実施形態を説明したが、本発明は、前記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で更なる変形、置換、調整を加えることができる。例えば、各図面に示した要素の構成は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
100 制御部
110 命令供給部
111 命令発行制御部
112 リネーミング制御部
113 実行制御部
121 記憶部
200 演算部
210、210x 物理レジスタ群
211 リード選択部
211x 第二選択部
212、212x 演算器群
213 ライト選択部
213x 第一選択部
291、292、293、294、295、296、297 ポート群
310、310x 演算装置
320 記憶装置
400 物理レジスタ管理情報
401 論理レジスタ管理情報
402 参照数情報
500 演算システム

Claims (7)

  1. 第一論理レジスタに格納される、論理レジスタに格納される情報要素からなる第一要素群、のうちの所定のベクトル長の前記情報要素と、第二論理レジスタに格納される前記情報要素からなる第二要素群のうちの前記ベクトル長の前記情報要素とのベクトル演算の演算結果である前記情報要素を含む第三要素群を第三論理レジスタに格納させる演算装置であって、
    前記第一要素群のうちの前記ベクトル長の前記情報要素の各々と、前記第二要素群のうちの前記ベクトル長の前記情報要素の各々とを、物理レジスタ群に含まれる、第一の制御情報に基づいて選択した物理レジスタの各々に入力する第一選択部と、
    前記第一選択部から入力された前記情報要素の各々を保持する前記物理レジスタを含む前記物理レジスタ群と、
    前記第一選択部から入力された前記情報要素を保持した前記物理レジスタの各々から入力された前記情報要素の各々を演算器群に含まれる演算器の入力部の各々に入力する第二選択部と、
    前記第二選択部から入力された前記情報要素に係る前記ベクトル演算により、前記第三要素群に含まれるベクトル演算の演算結果である情報要素を出力する前記演算器群と、
    を備え、
    前記第一の制御情報に基づいて選択された前記物理レジスタが、ベクトル演算前の当該ベクトル演算の対象の前記情報要素の各々を格納する前記物理レジスタと、当該情報要素に係る当該ベクトル演算の演算結果に係る前記情報要素を格納する前記物理レジスタとで異なる場合があり、
    対象命令のベクトル長に依存して複数要素単位でリネーミングするしないを判断する、
    演算装置。
  2. 前記第一論理レジスタと、前記第二論理レジスタと、前記第三論理レジスタとの各々に格納され得る前記情報要素の数が、互いに等しい、請求項に記載された演算装置。
  3. 備える前記物理レジスタの数より少ない数の前記情報要素の前記物理レジスタへの入力に係る入力ポートからなる入力ポート群を備え、前記第一選択部は、前記入力ポート群の所定のポートを、所定の前記物理レジスタの入力端子に接続するものである、請求項1又は請求項2に記載された演算装置。
  4. 前記第二選択部は、前記物理レジスタからの出力を、前記演算器群の各演算器又はコピー用の配線の、入力用のポートに接続するものである、請求項1乃至請求項のうちのいずれか一に記載された演算装置。
  5. 前記論理レジスタの各々に格納される前記情報要素を格納する前記物理レジスタを表す情報である物理レジスタ管理情報を保持し、当該物理レジスタ管理情報により、前記情報要素の前記物理レジスタへの格納を行う、請求項1乃至請求項のうちのいずれか一に記載された演算装置。
  6. 請求項に記載された演算装置と、前記各演算器及び前記配線からの出力を格納し得る記憶装置とを備える、演算システム。
  7. 前記第一論理レジスタに格納される前記情報要素のうち前記ベクトル長の前記情報要素でない前記情報要素、及び、前記第二論理レジスタに格納される前記情報要素のうち前記ベクトル長の前記情報要素でない前記情報要素、のうちの少なくともいずれかが、前記第三論理レジスタに格納される、請求項1乃至請求項のうちのいずれか一に記載された、演算装置。
JP2018118772A 2018-06-22 2018-06-22 演算装置及び演算システム Active JP6705473B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018118772A JP6705473B2 (ja) 2018-06-22 2018-06-22 演算装置及び演算システム
US16/973,961 US20210255858A1 (en) 2018-06-22 2019-06-19 Computation device
PCT/JP2019/024351 WO2019244947A1 (ja) 2018-06-22 2019-06-19 演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018118772A JP6705473B2 (ja) 2018-06-22 2018-06-22 演算装置及び演算システム

Publications (2)

Publication Number Publication Date
JP2019220065A JP2019220065A (ja) 2019-12-26
JP6705473B2 true JP6705473B2 (ja) 2020-06-03

Family

ID=68983195

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018118772A Active JP6705473B2 (ja) 2018-06-22 2018-06-22 演算装置及び演算システム

Country Status (3)

Country Link
US (1) US20210255858A1 (ja)
JP (1) JP6705473B2 (ja)
WO (1) WO2019244947A1 (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268168A (ja) * 2005-03-22 2006-10-05 Nec Computertechno Ltd ベクトル命令管理回路、ベクトル処理装置、ベクトル命令管理方法、ベクトル処理方法、ベクトル命令管理プログラム、および、ベクトル処理プログラム
JP5145659B2 (ja) * 2006-06-19 2013-02-20 日本電気株式会社 ベクトルリネーミング方式およびベクトル型計算機
US9069547B2 (en) * 2006-09-22 2015-06-30 Intel Corporation Instruction and logic for processing text strings
JP5000248B2 (ja) * 2006-09-27 2012-08-15 エヌイーシーコンピュータテクノ株式会社 情報処理装置、及び情報処理方法
JP5419134B2 (ja) * 2009-03-04 2014-02-19 エヌイーシーコンピュータテクノ株式会社 ベクトルプロセッサ及びベクトル命令発行方法
JP5423217B2 (ja) * 2009-08-04 2014-02-19 富士通株式会社 演算処理装置、情報処理装置、および演算処理装置の制御方法
JP6020428B2 (ja) * 2013-12-02 2016-11-02 日本電気株式会社 ベクトルレジスタリネーミング制御方式、ベクトルプロセッサ、及びベクトルレジスタリネーミング制御方法
JP6237241B2 (ja) * 2014-01-07 2017-11-29 富士通株式会社 処理装置
JP6891596B2 (ja) * 2017-03-30 2021-06-18 日本電気株式会社 プロセッサ

Also Published As

Publication number Publication date
JP2019220065A (ja) 2019-12-26
US20210255858A1 (en) 2021-08-19
WO2019244947A1 (ja) 2019-12-26

Similar Documents

Publication Publication Date Title
TWI552078B (zh) 使用單一指令多重資料(simd)暫存器而執行函式呼叫之技術
JP3755604B2 (ja) レジスタ・リネーム回路の半導体フロアプランのレイアウト・システム
CN114168271A (zh) 一种任务调度方法、电子设备及存储介质
JP6493088B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP4801605B2 (ja) Simd型マイクロプロセッサ
JP6705473B2 (ja) 演算装置及び演算システム
CN116243976B (zh) 指令执行方法及装置、电子设备和存储介质
JP5419134B2 (ja) ベクトルプロセッサ及びベクトル命令発行方法
JP4444305B2 (ja) 半導体装置
JP6020428B2 (ja) ベクトルレジスタリネーミング制御方式、ベクトルプロセッサ、及びベクトルレジスタリネーミング制御方法
US12360767B2 (en) Data processing apparatus, method and virtual machine
JP6891596B2 (ja) プロセッサ
US9430427B2 (en) Structured block transfer module, system architecture, and method for transferring
CN112579971A (zh) 矩阵运算电路、矩阵运算装置及矩阵运算方法
CN118974699A (zh) 用于处理排序受限制存取操作的技术
JP2006268168A (ja) ベクトル命令管理回路、ベクトル処理装置、ベクトル命令管理方法、ベクトル処理方法、ベクトル命令管理プログラム、および、ベクトル処理プログラム
US11372691B2 (en) Data processing systems comprising grouped execution threads with common data values
WO2004046914A2 (en) Vliw processor with copy register file
EP1251425A2 (en) Very long instruction word information processing device and system
JP5145659B2 (ja) ベクトルリネーミング方式およびベクトル型計算機
JP2007047968A (ja) マルチプロセッサシステム
US7836279B2 (en) Method and system for supporting software pipelining using a shifting register queue
HK40048845A (en) Data processing method, data processing device and computing device
CN110618948B (zh) 数据处理装置和存储器保护方法
JP7331482B2 (ja) 演算処理装置、及び情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191108

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200427

R150 Certificate of patent or registration of utility model

Ref document number: 6705473

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150