JP2011145886A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2011145886A
JP2011145886A JP2010006054A JP2010006054A JP2011145886A JP 2011145886 A JP2011145886 A JP 2011145886A JP 2010006054 A JP2010006054 A JP 2010006054A JP 2010006054 A JP2010006054 A JP 2010006054A JP 2011145886 A JP2011145886 A JP 2011145886A
Authority
JP
Japan
Prior art keywords
instruction
instruction word
combination
information processing
processing apparatus
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.)
Pending
Application number
JP2010006054A
Other languages
English (en)
Inventor
Shohei Nomoto
祥平 野本
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 JP2010006054A priority Critical patent/JP2011145886A/ja
Priority to PCT/JP2010/072656 priority patent/WO2011086808A1/ja
Publication of JP2011145886A publication Critical patent/JP2011145886A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

【課題】複数の命令語で構成される超長命令を実行する情報処理装置において、同時実行可能な命令数を低コストで増やすことができるようにすること。
【解決手段】メモリからプログラムをフェッチする命令フェッチ部1と、命令デコーダ部2と、組合せ指示フィールドと命令語グループ内の命令の並びに基づいて演算器の組合せを指示する組合せ制御部3と、命令の指示に基づいて演算器へソースオペランドを供給するレジスタファイル部4と、組合せ制御部3の指示に基づいてレジスタファイル部4からのソースオペランド若しくは命令語グループ内の演算器の演算結果を、命令語グループ内の他の演算器のソースオペランドとして供給する入力セレクタ部5及び入力セレクタ部6と、命令の指示に基づく演算を実施し、該演算結果をレジスタファイル部4と、入力セレクタ部5及び入力セレクタ部6へ供給する演算器A〜Fと、を備えて構成されている。
【選択図】図1

Description

本発明は情報処理装置に係り、特に、同時実行可能な命令数を低コストで増やすことができるVLIW(Very Long Instruction Word)タイプの情報処理装置に関する。
近年、IT技術の進展に伴い、コンピュータが処理するデータ量は増加の一途にある。これらのデータを高速に処理するため、様々なタイプの情報処理装置が提案されている。例えば、VLIW(Very Long Instruction Word)タイプの情報処理装置では、複数の命令語(演算、ロードなど)を1つの超長命令(VLIW)にパックし、同時に実行する。プログラムのコンパイル時に、命令間の順序関係やデータ依存関係を解析し、同時実行可能な命令群を抽出している。これにより、複数の命令を同時に実行することができるので、ロード時間等のランタイムに関するオーバーヘッドが縮小されて、速度性能の向上が可能となる。
当然ながら、VLIWタイプの情報処理装置(以下、「VLIW情報処理装置」と称する)では、同時実行する命令語の個数を増やすことにより、該情報処理装置の性能を一層向上させることができる。しかし、同時実行する命令語数を増やすには、命令語へのオペランドを供給する汎用レジスタファイルの読み出しポート数を、その分増やす必要がある。近年では、この汎用レジスタファイルのビット数やエントリ数は、他の要因からも、より増加する傾向にあるため、更に読み出しポートを増やすためには、その追加コストが大きくなり、このことが、VLIW情報処理装置の性能を向上させる上での課題となっている。
また、VLIWタイプの情報処理装置では、同時実行する命令語毎の処理時間が不均一であるという事実も存在し、このような不利な条件を解決することも課題の1つとなっている。
なお、VLIWタイプの情報処理装置では、回路を制御するクロック周期は、最も処理時間の長い命令語に基づいて決定される。このため、処理時間の短い加算やビット積と、処理時間の長い乗算やロードを同時実行するVLIWタイプの情報処理装置では、乗算やロードの処理時間に基づきクロック周期が決定されている。しかし、これでは、図15に示すように、処理時間の短い加算やビット積の命令語の処理にとっては、クロック周期が長過ぎるため、無駄な時間が費やされることになる。
このような課題を解決するため、例えば、特許文献1では、命令語として、CISC(Complex Instruction Set Computer)命令の選択が可能なVLIW情報処理装置が提案されている。この情報処理装置では、複数の命令語に基づき駆動される複数の演算器を、単一のCISC命令に基づき制御し、CISC命令を実行する場合には、CISC命令が指定する演算器の演算結果を、CISC命令が指定する他の演算器の、オペランドの一部として利用する。例えば、図16に示すように、命令語AがCISC命令である場合には、2つのセレクタを制御することにより、レジスタファイルに対して、新たな読み出しポートを追加することなく、より複雑な命令の実行を可能にしている。また、複数の演算器を組み合わせた実行を可能にして、図15に示すような、無駄な時間の消費を抑えることができるようにしている。
特表2007−519052号公報
ところで、公知の情報処理装置では、例えば、前述の特許文献1に開示されているVLIW情報処理装置の技術の場合、命令語として、CISC命令を選択可能なVLIW情報処理装置を用いることにより、従来のVLIWタイプの情報処理装置における課題を解決している。
しかしなから、この特許文献1に開示されているVLIW情報処理装置の構成では、以下で述べるような問題点が残されている。
第1の問題点は、演算器の組合せパターンが限定されることである。即ち、特許文献1に開示されているVLIW情報処理装置では、演算器の組合せをCISC命令により定義するため、CISC命令として定義した以外の演算器の組合せを実現することができない。
また、この問題点を解消するため、予め、演算器の多数の組合せをCISC命令として実装しておくことも可能ではあるが、その場合は、演算器の多数の組合せを表現するための大きな命令フィールドが必要となる。例えば、10種類の演算器を2つ組み合わせるパターン数は90有り、それを表現するだけでも7bit のフィールドが必要となる。組み込み分野ではメモリのコストが高く、容量及びアクセスバンド幅とも限られてしまう。このため、命令コードのビット幅が大きく増えることは、特許文献1に開示されているVLIW情報処理装置の技術を実施する上で、組み込み分野においての障害となる可能性が有る。
第2の問題点は、レジスタファイルの読み出しポートと書き込みポートの利用効率が低下するといった問題点である。即ち、特許文献1に開示されているVLIW情報処理装置の技術では、CISC命令が指定する演算器Aの演算結果を、CISC命令が指定する他の演算器Bの、オペランドの一部として利用する。このため、演算器BがCISC命令以外の命令で駆動される場合に、演算器Bへオペランドを供給していたレジスタファイルの読み出しポートの1つが利用されないことになる。同様に、演算器AがCISC命令以外の命令で駆動される場合に、演算器Aの演算結果を書き戻していたレジスタファイルの書き込みポートの1つが利用されないことになる。
本発明は、上記従来の問題点に鑑みてなされたものであって、複数の命令語から構成される超長命令を実行する情報処理装置で、特に、複数の命令語の組合せを低コストに実現すると共に、命令語の組合せを行う際に、利用されないレジスタファイルの読み出し及び書き込みポートを有効利用することを可能にして、同時実行が可能な命令の数を低コストで増やすことができるようにすると共に、速度性能を向上させることができる情報処理装置を実現することを目的としている。
上記課題を解決するために、本発明に係る情報処理装置は、M個の命令語(Mは、2以上の整数)から構成される超長命令を実行する情報処理装置であって、N個の命令語(Nは、M以下の整数)から構成されるP個の命令語グループ(Pは、M≧P×Nを満たす整数)を設定すると共に、命令語グループ内の命令語を組み合わせて実行することを指示するための組合せ指示フィールドを、超長命令の命令語内に含むことを特徴とする。
以上説明したように、本発明の情報処理装置によれば、複数の命令語から構成される命令語グループ毎に、命令語の組合せを指示することにより、命令語の自由な組合せを、低コストに実現し、また、命令語の組合せを行う際に、利用されないレジスタファイルの読み出し及び書き込みポートを有効使用することにより、同時実行可能な命令数を増やすことを低コストで実現することができる効果が有る。
本発明の第1の実施形態に係る情報処理装置の全体構成を示す構成図である。 本発明の第1の実施形態に係る情報処理装置で用いられる命令形式の1例を示す説明図である。 入力セレクタ部5の構成を示すブロック構成図である。 図2に例示する命令形式を使用する場合に、組合せ制御部3が、入力セレクタ部5に向けて出力する制御信号の生成ルールを示す説明図である。 本発明の第1の実施形態に係る情報処理装置において用いられる他の命令形式の1例を示す説明図である。 図5に例示する他の命令形式を使用する場合に、組合せ制御部3が、セレクタ部5に向けて出力する制御信号の生成ルールを示す説明図である。 本発明の第2の実施形態に係る情報処理装置の全体構成を示す構成図である。 図7に示す情報処理装置において用いられる命令語形式の1例を示す説明図である。 入力セレクタ部5と出力セレクタ7の詳細構成を示すブロック図である。 組合せ制御部3が、入力セレクタ部5へ生成する制御信号の生成ルールと、出力セレクタ部7へ生成する制御信号の生成ルールとを示す説明図である。 本発明の第3の実施形態に係る情報処理装置が使用する命令語形式の1例を示す説明図である。 図11に示す命令語形式の命令語の命令フィールドの展開方法を示す説明図である。 本発明の第4の実施形態に係る情報処理装置が使用する命令語形式の1例を示す説明図である。 図13に示す命令語形式の命令語のオペコードの割り当て方法を示す説明図である。 周知の情報処理装置において、命令間での遅延の偏りの1例を示すタイミングチャート図である。 周知の情報処理装置において、CISC命令を実行するVLIWタイプの情報処理装置の1構成例を示す構成図である。
本発明に係る情報処理装置は、複数の命令語から構成される命令語グループ毎に、命令語の組合せを指示することにより、命令語の自由な組合せを、低コストに実現する。
また、命令語の組合せを行う際に、利用されないレジスタファイルの読み出し及び書き込みポートを有効利用することにより、低コストに、同時実行が可能な命令数を増やすことができるように構成する。
即ち、本発明に係る情報処理装置は、3つの演算器から構成される2つの命令語グループを備えて、組合せ指示フィールドに基づいて各々の命令語グループ内での命令語の組合せを行って実行する。
以下、本発明の情報処理装置の実施形態について、第1の実施形態〜第4の実施形態の順に、図面を参照して詳細に説明する。
〔第1の実施形態〕
図1は、本発明の第1の実施形態に係る情報処理装置の全体構成を示す構成図である。
同図において、本実施形態の情報処理装置は、メモリからプログラムをフェッチする命令フェッチ部1と、フェッチされた命令をデコードする命令デコーダ部2と、組合せ指示フィールドと命令語グループ内の命令の並びに基づいて後述する演算器の組合せを指示する組合せ制御部3と、デコードされた命令の指示に基づいて演算器へソースオペランドを供給するレジスタファイル部4と、組合せ制御部3の指示に基づいてレジスタファイル部4からのソースオペランド若しくは命令語グループ内の演算器の演算結果を、命令語グループ内の他の演算器のソースオペランドとして供給する入力セレクタ部5及び入力セレクタ部6と、入力セレクタ部5及び入力セレクタ部6が供給するソースオペランドに対して、デコードされた命令の指示に基づく演算を実施し、該演算結果をレジスタファイル部4と、入力セレクタ部5及び入力びセレクタ部6へ供給する演算器A〜Fと、を備える。
上記の構成では、命令語グループを構成する命令語の数を3つとし、命令語グループの数を2つとしているが、本発明に係る情報処理装置の構成は、必ずしも、このような構成に限るものではない。
また、近年の情報処理装置と同様に、動作周波数の向上を実現するために、複数のパイプラインステージから成る構成であっても構わない。
さらに、図1に示す構成では、命令フェッチ部1から演算器A〜Fまでの構成を、一連のサイクルとして図示しているが、これを複数のパイプラインステージに分割した実装としても構わない。
図2は、本発明の第1の実施形態に係る情報処理装置で用いられる命令形式の1例を示す説明図である。
同図に示す命令形式は、3つの命令語からなる2つの命令語グループと、各命令語グループ内の命令語の組合せを指示する組合せ指示フラグ11とから構成される。各命令語は、実行する演算の種類を指定するオペコード(opc)と、演算の対象データを指定するソースオペランド(src1,src2)と、演算結果の保存先を指定するデスティネーション(dst)とから構成される。
なお、図2に例示する命令形式は、2個のソースオペランド(src1,src2) と、1個のデスティネーション(dst)とを有する命令形式としたが、本発明に係る情報処理装置の命令形式は、必ずしもこの例に限るものではない。
ソースオペランドやデスティネーションの数は、0個や3個であっても構わない。また、命令形式に、別のフィールド(即値など)を含めても構わない。さらには、図2の命令形式内における、命令グループと組合せ指示フラグ11の順序は、必ずしもこの限りではなくても構わない。
以下、本実施形態の情報処理装置が有する各構成要素について説明する。
図1に示す情報処理装置の命令フェッチ部1は、図2に示す命令形式の命令をフェッチする。このフェッチされた命令に含まれる各命令語のオペコード(opc)と、組合せ指示フラグ11とは、組合せ制御部3に送られ、この組合せ制御部3において入力セレクタ部5及び入力セレクタ部6への制御信号が生成される。
なお、図1に示す構成では、組合せ制御部3に向けた命令語のオペコード(opc)及び組合せ指示フラグ11の供給を、命令フェッチ部1が行っているが、命令デコード部2が上記と同様の動作を行うように構成しても構わない。
以下、入力セレクタ部5の構成と、組合せ制御部3が生成する入力セレクタ部5への制御信号とについて説明する。
図3は、入力セレクタ部5の構成を示すブロック構成図である。
同図に示すように、入力セレクタ部5は、演算器A〜Cの各々の一方のソースオペランドを選択するためのセレクタ(muxa〜muxc)から構成される。入力セレクタ部5の各セレクタ(muxa〜muxc)は、レジスタファイル部4から供給されるデータと、各セレクタの出力が接続された演算器とは異なる、他の2つの演算器の演算結果を入力とし、組合せ制御部3からの制御信号(ca 〜cc)に基づいて入力データの選択を行う。各セレクタは、制御信号が0である場合に、一番左側のデータを選択し、制御信号が1である場合に、真ん中のデータを選択し、制御信号が2である場合に、一番右側のデータを選択する。
なお、入力セレクタ部6の構成も上記と同様である。
また、入力セレクタ部5の各セレクタ(muxa〜muxc)は、前述の、各セレクタの出力が接続された演算器とは異なる演算器の演算結果を入力とする際に、一旦専用のレジスタに格納した値を用いても構わない。入力セレクタ部5には、図3に示す演算器A〜Cの演算結果を格納するレジスタ(図示は省略)をそれぞれに設け、各セレクタ(muxa〜muxc)は、それらのレジスタからのデータと、レジスタファイル部4から供給されるデータとを入力として、組合せ制御部3からの制御信号(ca〜cc)に基づいて入力データの選択を行う。
組合せ制御部3は、命令語グループ内の各命令語のオペコード(opc)と、組合せ指示フラグ11とを基に、図3に示す入力セレクタ部5のセレクタ(muxa〜muxc)への制御信号(ca〜cc)を生成する。
図4は、図2に例示する命令形式を使用する場合に、組合せ制御部3が、入力セレクタ部5に向けて出力する制御信号の生成ルールを示す説明図である。
同図に示すように、組合せ指示フラグが非アクティブ(0)である場合には、命令グループ内での命令語の並びに関わらず、セレクタへの制御信号(ca〜cc)は0,0,0とし、各命令語を独立に実行する。一方、組合せ指示フラグがアクティブ(1)である場合には、命令グループ内での命令語の並びに基づいてセレクタへの制御信号(ca〜cc)を生成し、図4の「命令語の実行順序」に示す順序で、命令語の組み合わせを行う。但し、「命令語の実行順序」における「X→Y→Z」の表記は、命令語Xの実行結果を命令語Yの入力とし、命令語Yの実行結果を命令語Zの入力とすることを意味する。
なお、入力セレクタ部6への制御信号の生成も上記と同様にして行われる。
図5は、本発明の第1の実施形態に係る情報処理装置において用いられる他の命令形式の1例を示す説明図である。
同図に例示する他の命令形式は、各々3つの命令語から成る2つの命令語グループを備えて構成される。各命令語は、命令語グループ内の直前の命令語との組合せを指示する組合せ指示フラグ12と、実行する演算の種類を指定するオペコード(opc)と、演算の対象データを指定するソースオペランド(src1,src2)と、演算結果の保存先を指定するデスティネーション(dst)とを備えて構成される。
図5に例示する他の命令形式では、2個のソースオペランド(src1,src2) と、1個のデスティネーション(dst)とを有する命令形式の1例を示したが、本発明に係る情報処理装置の命令形式は、必ずしもこのような構成に限るものではなく、例えば、ソースオペランドやデスティネーションの数は、0個や3個であっても構わない。また、命令形式に、別のフィールド( 即値など) を備える構成としても構わない。さらに、図5に示す命令形式でのオペコード(opc)とソースオペランド(src1,src2)とデスティネーション(dst)と組合せ指示フラグ12の順序は、必ずしもこの限りではなくても構わない。
図1に示す情報処理装置では、前述のとおり、図5に示す他の命令形式の命令を、命令フェッチ部1がフェッチする。また、フェッチされた命令に含まれる各命令語のオペコード(opc)と組合せ指示フラグ12は、組合せ制御部3に送られ、組合せ制御部3において、入力セレクタ部5及び入力セレクタ部6への制御信号が生成される。図1に示す構成では、組合せ制御部3に向けた、命令語のオペコード(opc)及び組合せ指示フラグ12の供給を、命令フェッチ部1が行う構成としているが、命令デコード部2が上記と同様の動作をしても構わない。
以下、図5に例示する他の命令形式を使用する場合において、入力セレクタ部5の構成と、組合せ制御部3が生成する入力セレクタ部5への制御信号について説明する。
図5に例示する他の命令形式を使用する場合、図3に示す入力セレクタ部5の構成は、図2に例示する命令形式を使用する場合の構成と同様である。また、各セレクタ(muxa〜muxc)は、各セレクタの出力が接続された演算器とは異なる、他の2つの演算器の演算結果を入力とする際に、一旦専用のレジスタに格納した値を用いても構わない点も、図2に例示する命令形式を使用する場合と同様である。
但し、図5に例示する他の命令形式を使用する場合、組合せ制御部3は、命令語グループ内の各命令語のオペコード(opc)と、各命令語に付与された組合せ指示フラグ12とを基にして、図5のセレクタ(muxa〜muxc)への制御信号(ca〜cc)を生成する。
図6は、図5に例示する他の命令形式を使用する場合に、組合せ制御部3が、セレクタ部5に向けて出力する制御信号の生成ルールを示す説明図である。
同図において、組合せ指示フラグ(x,y,z)の表記は、命令語グループ内における一番左側の命令語の組合せ指示フラグ12をxに、真ん中の組合せ指示フラグ12をyに、一番左側の命令語の組合せ指示フラグ12をzに記載する。
命令語グループ内の各命令語の組合せ指示フラグ12の値が全て非アクティブ(0)である場合には、命令グループ内での命令語の並びに関わらず、セレクタへの制御信号(ca〜cc)は0,0,0とし、各命令を独立に実行する。
また、命令語グループ内で、2番目及び3番目の命令語の組合せ指示フラグ12の値が非アクティブ(1)である場合には、図4に例示する命令語形式を使用する場合と同様となる。
一方、命令語グループ内で、2番目及び3番目の命令語の組合せ指示フラグ12の一方の値がアクティブ(1)である場合には、図6に例示するように、命令語の並びに基づいてセレクタへの制御信号(ca〜cc)を生成し、図6に例示する命令語の実行順序に示す順序で、命令語の組み合わせを行う。但し、図6に例示する命令語の実行順序における「X→Y、Z」の表記は、命令語Xの実行結果を命令語Yの入力とし、命令語Zは独立に実行することを意味する。
この実施形態によれば、命令語グループ内の命令語を組み合わせて実行する際に、命令語グループ内での命令語の組合せ順序を指示するフィールドを設けることなく、命令語グループ内での命令語の組合せ順序を指示することが可能となるので、命令コードのビット幅が大きくなることを防ぐことができる効果が有る。
〔第2の実施形態〕
本実施形態に係る情報処理装置は、3つの演算器から構成される2つの命令語グループを持ち、組合せ指示フィールドに基づき、それぞれの命令語グループ内の命令語の組合せ実行を行う。また、命令語グループに含まれない他の命令語を2つ実行することができる。
図7は、本発明の第2の実施形態に係る情報処理装置の全体構成を示す構成図である。
ここでは、図1に示す本発明の第1の実施形態に係る情報処理装置の全体構成と同じ構成要素には同一の符号を附し、構成上の説明を省略する。
同図に示すように、本実施形態に係る情報処理装置は、前述の図1に示す情報処理装置の構成に加えて、2つの命令語グループに含まれない2つの他の命令語を実行するための演算器X,Yと、演算器A〜F及び演算器X,Yからの演算結果を選択し、選択結果をレジスタファイル部4へ供給する出力セレクタ7及び出力セレクタ8と、を備える。
演算器X,Yを増やした反面、レジスタファイル部4からの読み出しポート数及び書き込みポート数の方は増やしていない。
この実施形態では、命令語グループを構成する演算器の個数を3つ、命令語グループの数を2つ、命令語グループに含まれない命令語の数を2つとしているが、本発明は、一般に、必ずしも、このような構成に限定されるものではない。また、近年の情報処理装置と同様に、動作周波数の向上を実現するために、複数のパイプラインステージから成る構成であっても構わない。さらに、図7では、命令フェッチ部1から演算器までを一連のサイクルとする構成を図示しているが、これを複数のパイプラインステージに分割した実装であっても構わない。
図8は、図7に示す情報処理装置において用いられる命令語形式の1例を示す説明図である。
同図に示す命令語形式は、3つの命令語からなる2つの命令語グループと、命令語グループに含まれない2つの命令語(命令語X,Y)と、各命令語グループ内の命令語の組合せを指示する組合せ指示フラグ13とから構成される。
また、各命令語は、実行する演算の種類を指定するオペコード(opc)、演算の対象データを指定するソースオペランド(src1,src2)、及び演算結果の保存先を指定するデスティネーション(dst)から構成される。
図8では、2個のソースオペランド(src1,src2)、1個のデスティネーション(dst)を持つ命令語形式の1例を示したが、本発明は、一般に、必ずしもこのような命令語形式に限定されるものではない。また、ソースオペランドやデスティネーションの数は、0個や3個であっても構わない。
さらに、この命令語形式には、他のフィールド(即値など)を含めても構わない。また、図8に示す命令語形式内における、命令グループ、組合せ指示フラグ、及び命令グループに含まれない2つの命令語の順序については、本発明では、一般に、この限りではない。
図7に示す情報処理装置では、図8に示す命令語形式の命令を命令フェッチ部1がフェッチする。このフェッチされた命令に含まれる各命令語のオペコード(opc)と、組合せ指示フラグ13とは、組合せ制御部3に送られ、組合せ制御部3において、入力セレクタ部5、入力セレクタ部6、出力セレクタ部7、出力セレクタ部8へ出力する制御信号が生成される。
なお、図7に示す情報処理装置では、組合せ制御部3に向けた、命令語のオペコード(opc)と組合せ指示フラグ13の供給を、命令フェッチ部1が行っているが、命令デコード部2が上記と同様の動作をしても構わない。
以下では、入力セレクタ部5と出力セレクタ部7の構成と、組合せ制御部3が生成する入力セレクタ部5と出力セレクタ7への制御信号とについて説明する。
図9は、入力セレクタ部5と出力セレクタ7の詳細構成を示すブロック図である。
同図に示す入力セレクタ部5は、前述の図3に示す入力セレクタ部1を拡張した構成である。具体的には、前述の図3に示した入力セレクタ部5に対して、2つの追加セレクタ(muxx0,muxx1)を追加している。追加セレクタは、演算器A〜Cのセレクタ(muxa〜muxc)に接続されたソースオペランドを入力とし、組合せ制御部3からの制御信号(cx0〜cx1)に基づいて入力データの選択を行う。この追加したセレクタは、制御信号が0である場合に、一番左側のデータを選択し、制御信号が1である場合に、真ん中のデータを選択し、制御信号が2である場合に、一番右側のデータを選択する。
なお、入力セレクタ部6も上記と同様の構成である。
なお、追加したセレクタ(muxx0,muxx1)は、演算器A〜Cのセレクタ(muxa〜muxc)に接続されたソースオペランドを入力とする際に、一旦専用のレジスタに格納した値を用いても構わない。図9における、演算器A〜Cのセレクタ(muxa〜muxc)に接続されたソースオペランドを格納するレジスタを、各々に設け、追加セレクタ(muxx0,muxx1)は、それらのレジスタからのデータを、組合せ制御部3からの制御信号(cx0,cx1)に基づいて入力データの選択を行うものとする。
組合せ制御部3は、命令語グループ内の各命令語のオペコード(opc)と、組合せ指示フラグ13を基に、図9に示すセレクタ(muxa〜muxc)への制御信号(ca〜cc)と、追加したセレクタ(muxx0,muxx1)への制御信号(cx0,cx1)とを生成する。
図10は、組合せ制御部3が、入力セレクタ部5へ生成する制御信号の生成ルールと、出力セレクタ部7へ生成する制御信号の生成ルールとを示す説明図である。
組合せ指示フラグ13の値が非アクティブ(0)である場合には、命令グループ内での命令語の並びに関わらず、セレクタへの制御信号(ca〜cc)は0,0,0となる。また、追加セレクタへの制御信号(cx0,cx1)は「Don’t care 」となる。一方、組合せ指示フラグ13の値がアクティブ(1)である場合には、命令グループ内での命令語の並びに基づいてセレクタへの制御信号(ca 〜cc)を生成し、図10の命令語の実行順序に示す順序で、命令語の組み合わせを行う。但し、命令語の実行順序における「X→Y→Z」の表記は、命令語Xの実行結果を命令語Yの入力とし、命令語Yの実行結果を命令語Zの入力とすることを意味する。その際、レジスタファイルから演算器A〜Cへ供給されるソースオペランドのうち、命令語の組合せにより、演算器A〜Cの実行に不要となったソースオペランドを、追加セレクタ(muxx0,muxx1)が選択することにより、演算器Xへのソースオペランドの供給を実現する。
なお、入力セレクタ部6への制御信号の生成も上記と同様にして行われる。
一方、図9に示す出力セレクタ部7は、演算器A及び演算器Bにおいて、それらの演算結果と、演算器Xの演算結果とを選択し、レジスタファイル部4へ供給する。組合せ制御部3からの制御信号(cx2,cx3)に基づき、入力データの選択を行う。出力セレクタは、制御信号が0である場合に、一番左側のデータを選択し、制御信号が1である場合に、一番右側のデータを選択する。
なお、出力セレクタ部8の構成についても上記と同様の構成とする。
また、図9では、出力セレクタ部7及び出力セレクタ部8の構成として、演算器A及び演算器Bにおいて、それらの演算結果と、演算器Xの演算結果とを選択する構成としているが、演算器Bや演算器Cにおいて、それらの演算結果と、演算器Xの演算結果を選択するなどの構成にしても構わない。
組合せ指示フラグ13が非アクティブ(0)である場合には、命令グループ内での命令語の並びに関わらず、出力セレクタへの制御信号(cx2,cx3)は0,0となる。一方、組合せ指示フラグ13がアクティブ(1)である場合には、命令グループ内での命令語の並びに基づいて出力セレクタへの制御信号(cx2〜cx3)を生成する。その際に、命令語の組合せにより、演算結果をレジスタファイルへ供給することが不要となった演算器の結果と、演算器Xの演算器結果を出力セレクタへの入力とし、演算器Xの演算器結果を選択することにより、演算器Xの演算結果をレジスタファイルへ供給することを可能とする。
なお、入力セレクタ部6への制御信号の生成も上記と同様である。
この実施形態によれば、命令語グループ内の命令語を組み合わせて実行する際に、命令語グループ内での演算で使用されないレジスタファイルの読み出しポート及び書き込みポートを、命令語グループに含まれない命令語の演算で利用することができる。これにより、新たなレジスタファイルの読み出しポートと書き込みポートを追加することなく、新たな命令語の実行を追加することが可能となる効果が有る。
〔第3の実施形態〕
本発明の第3の実施形態に係る情報処理装置の構成は、本発明の第2の実施形態に係る情報処理装置の構成(図7参照)と同じであり、使用する命令語形式だけが異なるものであるので、以下では、使用する命令語形式を中心に説明する。
図11は、本発明の第3の実施形態に係る情報処理装置が使用する命令語形式の1例を示す説明図である。
同図に示す命令語形式は、3つの命令語からなる2つの命令語グループと、命令語グループに含まれない2つの命令語(命令語X,Y)と、各命令語グループ内の命令語の組合せを指示する組合せ指示フラグ14とから構成される。
命令語グループに含まれる命令語は、実行する演算の種類を指定するオペコード(opc)、演算の対象データを指定するソースオペランド(src1,src2)、及び演算結果の保存先を指定するデスティネーション(dst)から構成される。
一方で、上記の命令語グループに含まれない命令語である2つの命令語(命令語X,Y)は、実行する演算の種類を指定するオペコード(opc)のみから構成される。
図11に示す命令語は、2個のソースオペランド(src1,src2)、1個のデスティネーション(dst)を有する命令語形式の例を示したが、本発明は、必ずしもこれに限るものではない。ソースオペランドやデスティネーションの数は、0個や3個であっても構わない。
また、命令語形式に、別のフィールド(即値など)を含めても構わない。
さらには、図11に示す命令語形式内における、命令グループ、組合せ指示フラグ、及び命令グループに含まれない2つの命令語の順序は、必ずしも、上記の限りではない。
図11に示す命令語を使用する情報処理装置における、入力セレクタ部5及び出力セレクタ7の詳細構成は、前述の第2の実施形態に係る情報処理装置(図7)の入力セレクタ部5及び出力セレクタ7の詳細構成(図9参照)と同様である。また、組合せ制御部3が生成する入力セレクタ部5と出力セレクタ7への制御信号の生成方法を示すルールについても、前述の第2の実施形態に係る情報処理装置の制御信号の生成方法を示すルール(図10)と同様であるため、ここでは、その説明を省略する。
但し、前述の第2の実施形態と同様に、本実施形態では、組合せ指示フラグ14(図11)がアクティブ(1)である場合のみ、命令語グループに含まれない命令語(命令語X,Y)が実行されはするが、その一方で、組合せ指示フラグ14がアクティブ(1)である場合には、命令語の組合せを行う命令語グループ内の命令語において、利用しない命令フィールドが生じることになる。
以下、図11に示す命令語形式において、命令語グループ1内の命令語を、命令語A→命令語B→命令語Cと、組み合わせて実行する場合を1例にして、利用しない命令フィールドについて説明する。
図12は、図11に示す命令語形式の命令語の命令フィールドの展開方法を示す説明図である。
本実施形態に係る情報処理装置では、図12に示すように、命令語グループ1内の命令語の命令フィールドの内で、命令語を組み合わせて実行することにより、4つの命令フィールドを利用しないことが分かる。
そこで、これら4つの命令フィールドを、命令語グループに含まれない命令語(命令語X,Y)の命令フィールドとして利用する。具体的には、命令語グループ1内で、ソースオペランドとして利用しない2つの命令フィールド(src1−B,src1−C)を、命令語グループ1に含まれない命令語(命令語X)の2つのソースオペランドを示す命令フィールド(src1−X,src2−X)として利用する。
また、命令語グループ1内で、デスティネーションとして利用しない2つの命令フィールド(dst−A,dst−B)の一方を、命令語グループ1に含まれない命令語(命令語X)のデスティネーションを示す命令フィールド(dst−X)として利用する。
図12に示す命令フィールドの展開方法では、ソースオペランドとして利用しない2つの命令フィールド(src1−B,src1,c)を、命令語グループ1に含まれない命令語(命令語X)の2つのソースオペランドを示す命令フィールド(src1−X,src2−X)とし、デスティネーションとして利用しない2つの命令フィールド(dst−A,dst−B)の一方を、命令語グループ1に含まれない命令語(命令語X)のデスティネーションを示す命令フィールド(dst−X)として使用しているが、一般に、本発明は、使用しない命令フィールドの使用方法については、この限りではない。
なお、ソースオペランドとして利用しない2つの命令フィールド(src1−B,src1,c)を、命令語グループ1に含まれない命令語(命令語X)のデスティネーションとしても構わないし、デスティネーションとして利用しない2つの命令フィールド(dst−A,dst−B)を、命令語グループ1に含まれない命令語(命令語X)のソースオペランドとしても構わない。
また、命令語グループ1内で、利用しなかった4つの命令フィールドの内、命令語グループ1に含まれない命令語(命令語X)のソースオペランド及びデスティネーションを示す命令フィールドとして利用しなかった1つの命令フィールドを、命令語Xの機能を更に拡張するために利用することも可能である。
さらに、利用しなかった1つの命令フィールドを、命令語Xのオペコードを表現するために利用することも可能である。
この実施形態によれば、命令語グループ内の命令語を組み合わせて実行する際に、命令語グループ内の命令語で利用されない命令フィールドを、命令語グループに含まれない命令語を表現するための命令フィールドとして利用することができるので、新たな命令フィールドを追加することなく、新たな命令語の実行を追加することが可能となる効果が有る。
〔第4の実施形態〕
本発明の第4の実施形態に係る情報処理装置の構成は、本発明の第2の実施形態に係る情報処理装置の構成(図7参照)とほぼ同様であり、使用する命令語形式だけが異なるものであるので、以下では、使用する命令語形式の相違点を主体に説明する。
図13は、本発明の第4の実施形態に係る情報処理装置が使用する命令語形式の1例を示す説明図である。
図13に示す命令語形式では、命令語グループに含まれない命令語(命令語X,Y)のオペコードの一部が、命令語グループ内の命令語の組合せを指示する組合せ指示フラグ15として設けられる。
図14は、図13に示す命令語形式の命令語のオペコードの割り当て方法を示す説明図である。
同図では、前述のとおり、オペコード(Opcode)の最上位ビット(MSB)が、組合せ指示フラグ15として利用されることが示されている。この命令語グループに含まれる命令語のオペコードには、最上ビットが0となるように命令種類の割り当てを行い、命令語グループに含まれない命令語のオペコードには、最上ビットが1となるように命令種類の割り当てを行う。
前述の第3の実施形態と同様に、命令語グループ内の命令語の組合せを行う場合のみ、命令語グループに含まれない命令語の実行を行うことができる。即ち、命令語の組合せを行うことと、命令語グループに含まれない命令語の実行を行うこととは同時に実現させる必要があるため、それらを表現するフィールドを共通化することができる。より具体的には、組合せ指示フラグ15と、命令語グループに含まれない命令語の実行を示すフィールドとを共通化できる。
また、ここでは、組合せ指示フラグ15をオペコードの最上位ビットと共通化しているが、本発明では、一般に、組合せ指示フラグ15と共通化する対象は最下位ビットであったり、オペコードの中間のビットであっても構わない。
この実施形態によれば、命令語グループ内の命令語を組み合わせて実行する際に、命令語の組合せ指示フラグ15と、命令語グループに含まれない命令語の実行を示すオペコードのフィールドとを共通化できる。これにより、組合せ指示フラグ用の命令フィールドを追加することなく、新たな命令語の実行を追加することが可能となる効果が有る。
なお、本発明に係る情報処理装置は、前述の各実施形態に限定されることはなく、本発明の技術的範囲に属する限り、他の様々な実施形態を取ることができる。
本発明によれば、複数の命令語から構成される命令語グループ毎に、命令語の組合せを指示することにより、命令語の自由な組合せを、低コストに実現できる。また、命令語の組合せを行う際に、利用されないレジスタファイルの読み出し及び書き込みポートを有効利用することにより、低コストに、同時実行可能な命令数を増やすことが可能となる。
本発明は、VLIW(Very Long Instruction Word)タイプの情報処理装置の構築に適用可能であり、特に、同時実行可能な命令数を低コストで増やすことができるVLIW(Very Long Instruction Word)タイプの情報処理装置の構築に好適である。
1 命令フェッチ部
2 命令デコーダ部
3 組合せ制御部
4 レジスタファイル部
5,6 入力セレクタ部
7,8 出力セレクタ部
11〜15 組合せ指示フラグ
A〜F,X,Y 演算器

Claims (7)

  1. M個の命令語(Mは、2以上の整数)から構成される超長命令を実行する情報処理装置であって、
    N個の前記命令語(Nは、M以下の整数)から構成されるP個の命令語グループ(Pは、M≧P×Nを満たす整数)を設定すると共に、前記命令語グループ内の前記命令語を組み合わせて実行することを指示するための組合せ指示フィールドを、前記超長命令の命令語内に含むことを特徴とする情報処理装置。
  2. 前記組合せ指示フィールドを、前記超長命令語を構成する、前記命令語グループに属する命令語以外の命令語内に含み、前記組合せ指示フィールドが有効である場合に、前記命令語グループ内の全ての命令語において、N個の前記命令語が配置されている順番でQ番目(1≦Q<N)に配置された命令語の実行結果を、前記順番でQ+1番目に配置された命令語のオペランドの一部とすることを特徴とする請求項1記載の情報処理装置。
  3. 前記組合せ指示フィールドを、前記命令語グループ内の命令語毎に含み、前記順番でQ+1番目に配置された命令語内の組合せ指示フィールドが有効である場合には、前記順番でQ番目(1≦Q<N)に配置された命令語の実行結果を、前記順番でQ+1番目に配置された命令語のオペランドの一部とすることを特徴とする請求項1記載の情報処理装置。
  4. 前記順番でQ番目に配置された命令語の実行結果を専用レジスタに格納し、命令実行の次のサイクルにおいて、前記専用レジスタの値を、Q+1番目に配置された命令語のオペランドの一部とすることを特徴とする請求項2または請求項3に記載の情報処理装置。
  5. 命令語の組合せ実行により、前記命令語グループ内の前記命令語へのオペランド供給が不要となったレジスタファイルの読み出しポートを、前記命令語グループに含まれない他の命令語へのオペランドの供給に使用し、前記命令語の組合せ実行により、前記命令語グループ内の命令語からの書き込みが不要となった前記レジスタファイルの前記書き込みポートを、前記命令語グループに含まれない他の命令語の演算結果の書き込み先として使用することを特徴とする請求項1〜4のいずれか1項記載の情報処理装置。
  6. 命令語の組合せ実行により、前記命令語グループ内の前記命令語が使用しないオペランドフィールドを、前記命令語グループに含まれない他の命令語のオペランドフィールドとして使用することを特徴とする請求項5記載の情報処理装置。
  7. 前記組合せ指示フィールドが、前記命令語グループに含まれない他の命令語のオペコードの一部であることを特徴とする請求項6記載の情報処理装置。
JP2010006054A 2010-01-14 2010-01-14 情報処理装置 Pending JP2011145886A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010006054A JP2011145886A (ja) 2010-01-14 2010-01-14 情報処理装置
PCT/JP2010/072656 WO2011086808A1 (ja) 2010-01-14 2010-12-16 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010006054A JP2011145886A (ja) 2010-01-14 2010-01-14 情報処理装置

Publications (1)

Publication Number Publication Date
JP2011145886A true JP2011145886A (ja) 2011-07-28

Family

ID=44304099

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010006054A Pending JP2011145886A (ja) 2010-01-14 2010-01-14 情報処理装置

Country Status (2)

Country Link
JP (1) JP2011145886A (ja)
WO (1) WO2011086808A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013114608A (ja) * 2011-11-30 2013-06-10 Renesas Electronics Corp Vliwプロセッサと命令構造と命令実行方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0926878A (ja) * 1995-07-12 1997-01-28 Mitsubishi Electric Corp データ処理装置
JPH1185513A (ja) * 1997-09-03 1999-03-30 Hitachi Ltd プロセッサ
JP2002333978A (ja) * 2001-05-08 2002-11-22 Nec Corp Vliw型プロセッサ
JP2008015589A (ja) * 2006-07-03 2008-01-24 Nec Corp Vliw型プロセッサおよび命令発行方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0926878A (ja) * 1995-07-12 1997-01-28 Mitsubishi Electric Corp データ処理装置
JPH1185513A (ja) * 1997-09-03 1999-03-30 Hitachi Ltd プロセッサ
JP2002333978A (ja) * 2001-05-08 2002-11-22 Nec Corp Vliw型プロセッサ
JP2008015589A (ja) * 2006-07-03 2008-01-24 Nec Corp Vliw型プロセッサおよび命令発行方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013114608A (ja) * 2011-11-30 2013-06-10 Renesas Electronics Corp Vliwプロセッサと命令構造と命令実行方法

Also Published As

Publication number Publication date
WO2011086808A1 (ja) 2011-07-21

Similar Documents

Publication Publication Date Title
KR102413832B1 (ko) 벡터 곱셈 덧셈 명령
KR101703743B1 (ko) 가속된 레인 간 벡터 감축 명령어들
JP2816248B2 (ja) データプロセッサ
US7769982B2 (en) Data processing apparatus and method for accelerating execution of subgraphs
US9965275B2 (en) Element size increasing instruction
US20190347099A1 (en) Arithmetic operation with shift
JP2005227942A (ja) プロセッサ及びコンパイラ
WO2015114305A1 (en) A data processing apparatus and method for executing a vector scan instruction
JP2019511056A (ja) 複素数乗算命令
US9354893B2 (en) Device for offloading instructions and data from primary to secondary data path
US6999985B2 (en) Single instruction multiple data processing
US10754652B2 (en) Processor and control method of processor for address generating and address displacement
US20240004663A1 (en) Processing device with vector transformation execution
EP1634163B1 (en) Result partitioning within simd data processing systems
US10846056B2 (en) Configurable SIMD multiplication circuit
WO2010067522A1 (ja) 演算ユニット、プロセッサ及び並列演算方法
JP3753991B2 (ja) プロセッサ、該プロセッサにおける演算命令処理方法及び演算制御方法
JP2011145886A (ja) 情報処理装置
KR102365306B1 (ko) 데이터 처리장치 및 벡터 스캔 연산의 수행방법
KR100636596B1 (ko) 고에너지 효율 병렬 처리 데이터 패스 구조
JP2020502669A (ja) ベクトル生成命令
US11385897B2 (en) Merge execution unit for microinstructions
US20090031117A1 (en) Same instruction different operation (sido) computer with short instruction and provision of sending instruction code through data
JP2006053830A (ja) 分岐予測装置および分岐予測方法
JP2008242947A (ja) 半導体装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110315

A02 Decision of refusal

Effective date: 20110816

Free format text: JAPANESE INTERMEDIATE CODE: A02