JPH11282679A - 演算処理装置 - Google Patents

演算処理装置

Info

Publication number
JPH11282679A
JPH11282679A JP10083369A JP8336998A JPH11282679A JP H11282679 A JPH11282679 A JP H11282679A JP 10083369 A JP10083369 A JP 10083369A JP 8336998 A JP8336998 A JP 8336998A JP H11282679 A JPH11282679 A JP H11282679A
Authority
JP
Japan
Prior art keywords
instruction
decoder
slot
register
unit
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.)
Granted
Application number
JP10083369A
Other languages
English (en)
Other versions
JP3541669B2 (ja
Inventor
Kenichi Kawaguchi
謙一 川口
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP08336998A priority Critical patent/JP3541669B2/ja
Priority to US09/280,363 priority patent/US6360312B1/en
Publication of JPH11282679A publication Critical patent/JPH11282679A/ja
Priority to US09/808,306 priority patent/US6966056B2/en
Priority to US10/653,786 priority patent/US6964041B2/en
Application granted granted Critical
Publication of JP3541669B2 publication Critical patent/JP3541669B2/ja
Priority to US11/144,132 priority patent/US20050223195A1/en
Priority to US12/207,133 priority patent/US20090013161A1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic 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/3017Runtime instruction translation, e.g. macros
    • 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 or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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 or 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or 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 Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 複数の命令実行手段を用いる命令を定義でき
る長語命令型の演算処理装置を提供する。 【解決手段】 複数の命令スロットからなる長語命令レ
ジスタ101と、長語命令レジスタの第1の命令スロットと
接続する命令実行手段グループ102と、長語命令レジス
タの第2の命令スロットと接続する命令実行手段グルー
プ103とを備え、命令実行手段グループ102は、命令デコ
ーダ104と、命令デコーダ105と接続するセレクタ106
と、データ転送手段108と、算術演算手段109とを備え、
命令実行手段グループ103は、命令デコーダ105と、命令
デコーダ104と接続するセレクタ107と、算術演算手段11
0と、乗算手段111を備えたことを特徴とする演算処理装
置である。これにより、算術演算手段109と110を用い
て、2つの値に対し、加算と減算を同時に行なう命令が
定義できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は演算処理装置に関
し、特にVLIW(Very Long Instruction Word)と言わ
れる長語命令型のマイクロプロセッサに関する。
【0002】
【従来の技術】近年、高速処理を目的として、長語命令
型により、複数の命令を同時に実行するマイクロプロセ
ッサが開発されている。
【0003】長語命令型のマイクロプロセッサの一例と
しては、各命令スロット毎に各種演算手段、データ転送
手段等の複数の命令実行手段のグループを対応させ、実
行時には、各命令は、その命令が格納されている命令ス
ロットに対応したグループの中にある命令実行手段を用
いて実行する方法がある。このような技術として、例え
ば特開平5−11979号公報に記載されたものがあ
る。
【0004】図14は上記従来の演算処理装置の概念図
を示している。図14において1401は、2つの命令スロ
ットを持つ長語命令の命令レジスタであり、1402、1403
は、それぞれ、命令レジスタ1401の第1命令スロット、
第2命令スロットと接続する命令実行手段グループであ
り、1404、1405はデコードされた命令の出力を、出力x,
yから選択するセレクタであり、1408はデータ転送手段
であり、1409、1410は算術演算手段であり、1411は乗算
手段であり、1412はレジスタファイルである。
【0005】以上のように構成された従来の演算処理装
置について、以下、その動作を述べる。
【0006】まず、1つの長語命令を構成する2つの命
令が、命令レジスタ1401の第1命令スロットおよび第2命
令スロットに格納される。次に、これらの命令スロット
に格納された第1命令および第2命令が、それぞれ、命令
実行手段グループ1402、1403に転送され、デコーダ140
4、1405でデコードされる。デコーダ1404でデコードさ
れた命令は、データ転送手段1408および算術演算手段14
09に転送される。デコーダ1405でデコードされた命令
は、算術演算手段1410および乗算手段1411に転送され
る。データ転送手段1408は、レジスタファイル1412のデ
ータをレジスタ間転送する。算術演算手段1409、1410
は、レジスタファイル1412のデータに対し、加算もしく
は減算を実行し、結果をレジスタファイル1412に格納す
る。乗算手段1411は、レジスタファイル1412のデータに
対し、乗算を実行し、結果をレジスタファイル1412に格
納する。
【0007】
【発明が解決しようとする課題】しかしながら上記のよ
うな構成では、任意の命令スロットの命令が他の命令ス
ロットに対応した命令実行手段を用いることができなか
った。
【0008】具体的に、各命令スロットには命令実行手
段としてそれぞれ1つずつの算術演算手段を持つ図14
に示されるようなプロセッサを想定して説明する。この
プロセッサでは、2つの同じ変数の和と差の両方を計算
する命令(加減算命令)、すなわち1つの命令スロット
の命令が複数の算術演算手段を用いる命令を定義するこ
とができない。これは、一般にVLIW方式のプロセッ
サでは、命令が使うことができる命令実行手段と命令ス
ロットとが1対1に固定されているからである。そして
その結果、2つの同じ変数の和と差を求める際には、加
算命令と減算命令の2命令を実行する必要があり、命令
数とサイクル数が多くなる、という問題点を有してい
た。
【0009】一方、VLIW方式のプロセッサでは、並
列に処理できる命令が存在する場合には複数の命令スロ
ットに命令が入ることとなるが、存在しない場合には命
令が入らない命令スロットが存在するため、この命令ス
ロットに対する命令実行手段が遊んでしまうことにもな
る。
【0010】特に近年のマルチメディア処理においては
加減算命令が多用されるため、上記の問題点はこのよう
な処理では極めて顕著になる。
【0011】本発明は上記問題点に鑑み、その目的は、
少ないハードウエアで複数の操作を含む命令を1つのス
ロットに定義できる長語命令型の演算処理装置を提供す
ることにある。
【0012】
【課題を解決するための手段】上記問題点を解決するた
めに、本発明の演算処理装置は、少なくとも第1と第2
の2つの命令スロットを含み、それぞれに命令を格納す
る命令レジスタと、前記命令レジスタの前記第1の命令
スロットに格納された命令を解読する第1のデコーダ
と、前記命令レジスタの前記第2の命令スロットに格納
された命令を解読する第2のデコーダと、前記第1のデ
コーダによって制御され、少なくとも第1の単位実行手
段からなる第1の命令実行手段グループと、前記第2の
デコーダによって制御され、少なくとも第2と第3の単
位実行手段からなる第2の命令実行手段グループとを備
えた演算処理装置であって、前記第1のデコーダが前記
第1の命令スロットにある特定命令を検出すると、前記
第1のデコーダは、前記特定命令を解読するとともに、
前記解読結果に基づいて前記第1の単位実行手段と前記
第2の単位実行手段とを同時に制御することを特徴とす
る。
【0013】ここで、前記第1のデコーダが前記第1の
命令スロットにある前記特定命令を解読するとき、前記
第2のデコーダは、前記第2の命令スロットにあって、
前記特定命令と並んで配置される命令を解読するととも
に、前記解読結果に基づいて前記第3の単位実行手段を
制御するとしてもよい。
【0014】また本発明の演算処理装置は、少なくとも
第1と第2の2つの命令スロットを含み、それぞれに命
令を格納する命令レジスタと、前記命令レジスタの前記
第1の命令スロットに格納された命令を解読する第1の
デコーダと、前記命令レジスタの前記第2の命令スロッ
トに格納された命令を解読する第2のデコーダと、前記
第1のデコーダによって制御され、少なくとも第1と第
2の単位実行手段からなる第1の命令実行手段グループ
と、前記第2のデコーダによって制御され、少なくとも
第3と第4の単位実行手段からなる第2の命令実行手段
グループとを備えた演算処理装置であって、前記第1の
デコーダが前記第1の命令スロットにある特定命令を検
出すると、前記第1のデコーダは、前記特定命令を解読
するとともに、前記解読結果に基づいて前記第2の単位
実行手段と前記第3の単位実行手段とを同時に制御し、
前記第2のデコーダが前記第2の命令スロットにある前
記特定命令を検出すると、前記第2のデコーダは、前記
特定命令を解読するとともに、前記解読結果に基づいて
前記第2の単位実行手段と前記第3の単位実行手段とを
同時に制御することを特徴とする。
【0015】ここで、前記第1のデコーダが前記第1の
命令スロットにある前記特定命令を解読するとき、前記
第2のデコーダは、前記第2の命令スロットにあって、
前記特定命令と並んで配置される命令を解読するととも
に、前記解読結果に基づいて前記第4の単位実行手段を
制御し、前記第2のデコーダが前記第2の命令スロット
にある前記特定命令を解読するとき、前記第1のデコー
ダは、前記第1の命令スロットにあって、前記特定命令
と並んで配置される命令を解読するとともに、前記解読
結果に基づいて前記第1の単位実行手段を制御するとし
てもよい。
【0016】また上記の各演算処理装置は、前記特定命
令は、2つのオペランドを共通に用いて、前記オペラン
ドに対する加算操作と減算操作とを行う命令であるとし
てもよい。
【0017】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図を用いて説明する。
【0018】図1は本実施の形態の演算処理装置の概念
図を示す。図1において101は、2つの命令スロットを
持つ長語命令の命令レジスタであり、102、103は、それ
ぞれ、命令レジスタ101の第1命令スロット、第2命令ス
ロットと接続する命令実行手段グループであり、104、1
05は、それぞれ、命令レジスタ101の第1命令スロットお
よび第2命令スロットに割り当てられた命令をデコード
するデコーダであり、106、107は出力する命令を、入力
a,bの命令から選択するセレクタであり、108はデータ転
送手段であり、109、110は算術演算手段であり、111は
乗算手段であり、112はレジスタファイルである。
【0019】以上のように構成された演算処理装置につ
いて、以下、その動作を述べる。まず、1つの長語命令
を構成する2つの命令が、命令レジスタ101の第1命令ス
ロットおよび第2命令スロットに格納される。
【0020】命令の種類を、図2に示す。この演算装置
においては、図2の6種類の命令が定義されている。図
中、Rn,Rmはいずれも、レジスタファイル112の中にある
1つのレジスタを表す変数である。ニーモニックの項
は、命令スロットに記述される命令の内容を示す。配置
スロットの項は、各命令スロットに、当該命令が配置可
能かどうかを示し、第1、第2はそれぞれ、第1命令スロ
ット、第2命令スロットを示す。例えば、データ転送命
令は、第1命令スロットに配置することはできるが、第2
命令スロットに配置することはできない。また、加減算
命令を第1命令スロットに格納した場合、第2命令スロッ
トには、乗算命令、無動作命令以外の命令を格納するこ
とはできない。同様に、加減算命令を第2命令スロット
に格納した場合、第1命令スロットには、データ転送命
令、無動作命令以外の命令を格納することはできない。
【0021】次に、これらの命令スロットに格納された
第1命令および第2命令が、それぞれ、命令実行手段グル
ープ102、103に転送され、図3、図4に従い、デコーダ
104、105でデコードされる。
【0022】図3および図4において、レジスタ1、レ
ジスタ2は、操作するデータが格納されているレジスタ
変数を示す。但し、操作が無動作の時は、レジスタ変数
は指定されない。
【0023】デコーダ104、105は、入力された命令のニ
ーモニックをデコードし、出力x,yのそれぞれに対し
て、操作内容と、操作するデータの2つのレジスタ変数
を出力する。図3、図4に示すように、転送命令、加算
命令、減算命令、乗算命令は、従来の演算処理装置と同
じようにデコードされ、デコーダの属する命令実行手段
グループ内で転送される。これに対し、加減算命令は、
加算と減算の2つの操作にデコードされた後、加算はデ
コーダの属する命令実行手段グループ内で転送され、減
算は、別の命令実行手段グループに転送される。
【0024】デコーダ104の出力xからセレクタ106の入
力aに転送された操作内容およびレジスタ変数と、デコ
ーダ105の出力xからセレクタ106の入力bに転送された操
作内容およびレジスタ変数は、図5に従い、いずれか一
方がセレクタ106で選択され、算術演算手段109に転送さ
れる。セレクタ106は、入力aまたは入力bに、加算操作
または減算操作があれば、それを選択し、出力する。も
し、加算、減算のいずれもない場合、無動作を出力す
る。命令の格納時に、加減算命令を第2命令スロットに
格納した場合、第1命令スロットには、データ転送命
令、無動作命令以外の命令を格納することはできないと
いう制限があるので、入力aと入力bの両方に、同時に加
算操作または減算操作が入力されることはない。
【0025】デコーダ105の出力yからセレクタ107の入
力bに転送された命令と、デコーダ104の出力yからセレ
クタ107の入力aに転送された命令は、図6に従い、いず
れか一方がセレクタ107で選択され、算術演算手段110に
転送される。セレクタ107は、セレクタ106と同様、入力
aまたは入力bに、加算操作または減算操作があれば、そ
れを選択し、出力する。もし、加算操作、減算操作のい
ずれもない場合、無動作を出力する。命令の格納時に、
加減算命令を第1命令スロットに格納した場合、第2命令
スロットには、乗算命令、無動作命令以外の命令を格納
することはできないという制限があるので、入力aと入
力bの両方に、同時に加算操作または減算操作が入力さ
れることはない。
【0026】デコーダ104の出力yから出力された命令の
操作内容およびレジスタ変数は、データ転送手段108に
入力される。データ転送手段108は、転送操作が入力さ
れた場合、図7に従い、レジスタファイル112にあり、
レジスタ変数の示すレジスタ間で、データ転送を実行す
る。その他の操作が入力されても、動作しない。
【0027】セレクタ106、107から出力された命令の操
作内容およびレジスタ変数は、それぞれ、算術演算手段
109、110に入力される。算術演算手段109、110は、加算
操作、もしくは減算操作が入力された場合、それぞれ、
図8、図9に従い、レジスタファイル112にあり、レジ
スタ変数の示すレジスタに対して、加算もしくは減算を
実行する。無動作操作が入力されても、動作しない。
【0028】デコーダ105の出力yから出力された命令の
操作内容およびレジスタ変数は、乗算手段111に入力さ
れる。乗算手段111は、乗算操作が入力された場合、図
10に従い、レジスタファイル112にあり、レジスタ変
数の示すレジスタに対して、乗算を実行する。その他の
操作が入力されても、動作しない。
【0029】このように、本実施の形態の演算処理装置
は、第1命令スロットもしくは第2命令スロットに加減算
命令が格納された時、デコーダによって、加算と減算に
デコードし、2つの命令実行手段グループにある算術演
算手段を用いて、加算と減算を実行する。
【0030】次に、デコーダ104及びデコーダ105につい
て具体的に説明する。まず、各命令は、図16に示すよ
うに、nop,mov,addなどからなる第1フィールドと、操作
するレジスタを指定する第2、第3フィールドから構成さ
れている。
【0031】次に、デコーダ104は、図17に示すよう
に、デコード部1041、1042と制御部1043とマルチプレク
サ1044から構成されており、デコード部1041は、命令の
第1フィールドを入力し、データ転送命令、加算命令、
減算命令、無動作命令に対して、それぞれ転送、加算、
減算、無動作の各操作を出力する。デコード部1042は、
命令の第1フィールドを入力し、加減算命令に対して、
マルチプレクサ1044に加算操作を出力し、出力yに減算
操作を出力し、制御部1043に制御信号を送る。マルチプ
レクサ1044は、デコード部1041でデータ転送命令、加算
命令、減算命令、無動作命令のいずれかの命令がデコー
ドされた時は、デコード部1041から出力された操作を出
力xに出力し、デコード部1042で加減算命令がデコード
された時は、加算操作を出力xに出力する。制御部1043
は、デコード部1042から制御信号が送られない時は、第
2、第3フィールドの内容を出力xのそれぞれレジスタ
1、レジスタ2に出力し、制御信号が送られる時は、第
2、第3フィールドの内容を出力xのそれぞれレジスタ
2、レジスタ1に出力するとともに、出力yのそれぞれレ
ジスタ1、レジスタ2にも出力する。
【0032】また、デコーダ105は、図18に示すよう
に、デコード部1051、1052と制御部1053とマルチプレク
サ1054から構成されており、デコード部1051は、命令の
第1フィールドを入力し、加算命令、減算命令、乗算命
令、無動作命令に対して、それぞれ加算、減算、乗算、
無動作の各操作を出力する。デコード部1052は、命令の
第1フィールドを入力し、加減算命令に対して、出力x
に減算操作を出力し、マルチプレクサ1054に加算操作を
出力し、制御部1053に制御信号を送る。マルチプレクサ
1054は、デコード部1051で加算命令、減算命令、乗算命
令、無動作命令のいずれかの命令がデコードされた時
は、デコード部1051から出力された操作を出力yに出力
し、デコード部1052で加減算命令がデコードされた時
は、加算操作を出力yに出力する。制御部1053は、デコ
ード部1052から制御信号が送られない時は、第2、第3フ
ィールドの内容を出力yのそれぞれレジスタ1、レジスタ
2に出力し、制御信号が送られる時は、第2、第3フィー
ルドの内容を出力yのそれぞれレジスタ2、レジスタ1に
出力するとともに、出力xのそれぞれレジスタ1、レジス
タ2にも出力する。
【0033】本実施の形態の演算処理装置を用いれば、
加減算命令によって、例えば、離散コサイン変換、逆離
散コサイン変換等のプログラムを高速に実行することが
できる。このことを図11から図13を用いて説明す
る。
【0034】図11は4×4の離散コサイン変換のプロ
グラムを示す。a[0]〜a[3]は変換前のデータ、c[0]〜c
[3]は変換後のデータを示し、f0〜f2は定数を示す。
【0035】あらかじめ、図12のように、a[0]〜a[3]
およびf0、f1-f2、f1+f2、f2の値を、それぞれ、レジス
タR0〜R9に格納しておく。
【0036】図13は図11のプログラムに対応する本
実施の形態の演算処理装置の長語命令の命令列を示す。
以下、順に説明する。
【0037】(長語命令1) (第1命令スロット:加減算命令)レジスタR1,R2が保持
するa[1],a[2]の値に対して、プログラムの2および3の
処理を同時に行ない、b[1],b[2]の値をそれぞれレジス
タR2,R1に入れる。
【0038】(第2命令スロット:無動作命令)第1命令
と同時に実行できる命令が存在しないので、無動作命令
が挿入されている。
【0039】(長語命令2) (第1命令スロット:転送命令)レジスタR1が保持するb
[2]の値をレジスタR8に入れる。
【0040】(第2命令スロット:加減算命令)レジス
タR0,R3が保持するa[0],a[3]の値に対して、プログラム
の1および4の処理を同時に行ない、b[0],b[3]の値をそ
れぞれレジスタR3,R0に入れる。
【0041】(長語命令3) (第1命令スロット:転送命令)レジスタR0が保持するb
[3]の値をレジスタR9に入れる。
【0042】(第2命令スロット:乗算命令)レジスタR
1の保持するb[2]の値とレジスタR5の保持する(f1-f2)の
積をレジスタR1に入れる。
【0043】(長語命令4) (第1命令スロット:加算命令)レジスタR8の保持するb
[2]の値とレジスタR9の保持するb[3]の値の和をレジス
タR8に入れる。
【0044】(第2命令スロット:乗算命令)レジスタR
0の保持するb[3]の値とレジスタR6の保持する(f1+f2)の
積をレジスタR0に入れる。
【0045】(長語命令5) (第1命令スロット:加減算命令)レジスタR3の保持す
るb[0]とレジスタR2の保持するb[1]の和と差をそれぞれ
レジスタR2,R3に入れる。
【0046】(第2命令スロット:乗算命令)レジスタR
8の保持する(b[2]+b[3])の値とレジスタR7の保持するf2
の積をレジスタR8に入れる。
【0047】(長語命令6) (第1命令スロット:加算命令)レジスタR1の保持する
(b[2]*(f1-f2))の値とレジスタR8の保持する((b[2]+b
[3])*f2)の値の和、すなわち、c[2]の値をレジスタR1に
入れる。
【0048】(第2命令スロット:乗算命令)レジスタR
2の保持する(b[0]+b[1])の値とレジスタR4の保持するf0
の積、すなわち、c[0]の値をレジスタR2に入れる。
【0049】(長語命令7) (第1命令スロット:減算命令)レジスタR0の保持する
(b[2]*(f1-f2))の値とレジスタR8の保持する((b[2]+b
[3])*f2)の値の差、すなわち、c[3]の値をレジスタR0に
入れる。
【0050】(第2命令スロット:乗算命令)レジスタR
3の保持する(b[0]-b[1])の値とレジスタR4の保持するf0
の積、すなわち、c[1]の値をレジスタR3に入れる。
【0051】このように、7個の長語命令で4×4の離
散コサイン変換のプログラムを実現することができる。
【0052】しかし、図14に示すような従来の長語命
令型の演算処理装置では、加減算命令を定義できないの
で、図15に示すように、同じ処理を実行するのに10個
の長語命令が必要となる。
【0053】なお、加減算命令は、第1命令スロット、
第2命令スロットのいずれにも置けるとしているが、ど
ちらか一方にしか置けないとしてもよい。
【0054】また、レジスタには1つのデータを保持す
るとしているが、例えばレジスタを上位と下位の2つの
フィールドに分け、それぞれがレジスタの幅の半分の長
さの2つのデータを順序付けて保持する、いわゆるSIMD
(Single Instruction Multiple Data)形式にしてもよ
い。この場合、加算命令、減算命令、加減算命令、およ
び乗算命令は、2つのレジスタの保持する各値につい
て、上位のフィールド同士および下位のフィールド同
士、それぞれ加算、減算、加減算、乗算を行い、結果を
レジスタのもとのフィールドに格納すればよい。加減算
命令については、実施の形態に示したものと同じように
2つのレジスタがともに書き換えられる。レジスタを3
つ以上のフィールドに分けたSIMD形式であってもよいこ
とは言うまでもない。
【0055】また、直列に並べられた命令列から、同時
に実行できる2つの命令を検出し、それぞれを、第1命
令スロット、第2命令スロットに格納した後、各命令を
実行する、いわゆるスーパースケーラ型の形式にしても
よい。
【0056】
【発明の効果】以上のように本発明の演算処理装置は、
少なくとも第1と第2の2つの命令スロットを含み、そ
れぞれに命令を格納する命令レジスタと、前記命令レジ
スタの前記第1の命令スロットに格納された命令を解読
する第1のデコーダと、前記命令レジスタの前記第2の
命令スロットに格納された命令を解読する第2のデコー
ダと、前記第1のデコーダによって制御され、少なくと
も第1の単位実行手段からなる第1の命令実行手段グル
ープと、前記第2のデコーダによって制御され、少なく
とも第2と第3の単位実行手段からなる第2の命令実行
手段グループとを備えた演算処理装置であって、前記第
1のデコーダが前記第1の命令スロットにある特定命令
を検出すると、前記第1のデコーダは、前記特定命令を
解読するとともに、前記解読結果に基づいて前記第1の
単位実行手段と前記第2の単位実行手段とを同時に制御
することを特徴とする。
【0057】これにより、第1の命令スロットにある特
定命令を、第1の単位実行手段と、本来第2の命令スロ
ットの命令で使用される第2の単位実行手段とを用いて
実行することができ、ハードウェアの増大を抑えること
ができる。
【0058】また本発明の演算処理装置は、少なくとも
第1と第2の2つの命令スロットを含み、それぞれに命
令を格納する命令レジスタと、前記命令レジスタの前記
第1の命令スロットに格納された命令を解読する第1の
デコーダと、前記命令レジスタの前記第2の命令スロッ
トに格納された命令を解読する第2のデコーダと、前記
第1のデコーダによって制御され、少なくとも第1と第
2の単位実行手段からなる第1の命令実行手段グループ
と、前記第2のデコーダによって制御され、少なくとも
第3と第4の単位実行手段からなる第2の命令実行手段
グループとを備えた演算処理装置であって、前記第1の
デコーダが前記第1の命令スロットにある特定命令を検
出すると、前記第1のデコーダは、前記特定命令を解読
するとともに、前記解読結果に基づいて前記第2の単位
実行手段と前記第3の単位実行手段とを同時に制御し、
前記第2のデコーダが前記第2の命令スロットにある前
記特定命令を検出すると、前記第2のデコーダは、前記
特定命令を解読するとともに、前記解読結果に基づいて
前記第2の単位実行手段と前記第3の単位実行手段とを
同時に制御することを特徴とする。
【0059】これにより、特定命令が第1の命令スロッ
トにある場合は、第2の単位実行手段と、本来第2の命
令スロットの命令で使用される第3の単位実行手段とを
用いて実行することができ、特定命令が第2の命令スロ
ットにある場合は、本来第1の命令スロットの命令で使
用される第2の単位実行手段と、第3の単位実行手段と
を用いて実行することができる。従って、上記の効果に
加えて、特定命令を第1のスロットと第2のスロットと
のいずれにも配置できるため命令のスケジューリングの
自由度が増して並列度が増加し、性能が向上するという
効果を有する。
【図面の簡単な説明】
【図1】本発明の実施の形態の演算処理装置の概念図
【図2】同実施の形態の命令スロットに格納される命令
の種類を示す図
【図3】同実施の形態のデコーダ104の動作を示す図
【図4】同実施の形態のデコーダ105の動作を示す図
【図5】同実施の形態のセレクタ106の動作を示す図
【図6】同実施の形態のセレクタ107の動作を示す図
【図7】同実施の形態のデータ転送手段108の動作を示
す図
【図8】同実施の形態の算術演算手段109の動作を示す
【図9】同実施の形態の算術演算手段110の動作を示す
【図10】同実施の形態の乗算手段111の動作を示す図
【図11】同実施の形態の離散コサイン変換のプログラ
ムを示す図
【図12】同実施の形態のレジスタが格納するプログラ
ム変数を示す図
【図13】同実施の形態の離散コサイン変換の変換を実
現する長語命令の命令列を示す図
【図14】従来の演算処理装置の概念図
【図15】同従来の演算処理装置の離散コサイン変換の
変換を実現する長語命令の命令列を示す図
【図16】各命令の構成図
【図17】デコーダ104のブロック図
【図18】デコーダ105のブロック図
【符号の説明】
101 2つの命令スロットを持つ長語命令の命令レジ
スタ 102、103 命令実行手段グループ 104、105 命令デコーダ 106、107 セレクタ 108 データ転送手段 109、110 算術演算手段 111 乗算手段 112 レジスタファイル 1041、1042、1051、1052 デコード部 1043、1053 制御部 1044、1054 マルチプレクサ 1401 2つの命令スロットを持つ長語命令の命令レ
ジスタ 1402、1403 命令実行手段グループ 1404、1405 命令デコーダ 1408 データ転送手段 1409、1410 算術演算手段 1411 乗算手段 1412 レジスタファイル

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも第1と第2の2つの命令スロ
    ットを含み、それぞれに命令を格納する命令レジスタ
    と、 前記命令レジスタの前記第1の命令スロットに格納され
    た命令を解読する第1のデコーダと、 前記命令レジスタの前記第2の命令スロットに格納され
    た命令を解読する第2のデコーダと、 前記第1のデコーダによって制御され、少なくとも第1
    の単位実行手段からなる第1の命令実行手段グループ
    と、 前記第2のデコーダによって制御され、少なくとも第2
    と第3の単位実行手段からなる第2の命令実行手段グル
    ープとを備えた演算処理装置であって、 前記第1のデコーダが前記第1の命令スロットにある特
    定命令を検出すると、 前記第1のデコーダは、前記特定命令を解読するととも
    に、前記解読結果に基づいて前記第1の単位実行手段と
    前記第2の単位実行手段とを同時に制御することを特徴
    とする演算処理装置。
  2. 【請求項2】 前記第1のデコーダが前記第1の命令ス
    ロットにある前記特定命令を解読するとき、 前記第2のデコーダは、前記第2の命令スロットにあっ
    て、前記特定命令と並んで配置される命令を解読すると
    ともに、前記解読結果に基づいて前記第3の単位実行手
    段を制御することを特徴とする請求項1記載の演算処理
    装置。
  3. 【請求項3】 少なくとも第1と第2の2つの命令スロ
    ットを含み、それぞれに命令を格納する命令レジスタ
    と、 前記命令レジスタの前記第1の命令スロットに格納され
    た命令を解読する第1のデコーダと、 前記命令レジスタの前記第2の命令スロットに格納され
    た命令を解読する第2のデコーダと、 前記第1のデコーダによって制御され、少なくとも第1
    と第2の単位実行手段からなる第1の命令実行手段グル
    ープと、 前記第2のデコーダによって制御され、少なくとも第3
    と第4の単位実行手段からなる第2の命令実行手段グル
    ープとを備えた演算処理装置であって、 前記第1のデコーダが前記第1の命令スロットにある特
    定命令を検出すると、 前記第1のデコーダは、前記特定命令を解読するととも
    に、前記解読結果に基づいて前記第2の単位実行手段と
    前記第3の単位実行手段とを同時に制御し、前記第2の
    デコーダが前記第2の命令スロットにある前記特定命令
    を検出すると、 前記第2のデコーダは、前記特定命令を解読するととも
    に、前記解読結果に基づいて前記第2の単位実行手段と
    前記第3の単位実行手段とを同時に制御することを特徴
    とする演算処理装置。
  4. 【請求項4】 前記第1のデコーダが前記第1の命令ス
    ロットにある前記特定命令を解読するとき、 前記第2のデコーダは、前記第2の命令スロットにあっ
    て、前記特定命令と並んで配置される命令を解読すると
    ともに、前記解読結果に基づいて前記第4の単位実行手
    段を制御し、 前記第2のデコーダが前記第2の命令スロットにある前
    記特定命令を解読するとき、 前記第1のデコーダは、前記第1の命令スロットにあっ
    て、前記特定命令と並んで配置される命令を解読すると
    ともに、前記解読結果に基づいて前記第1の単位実行手
    段を制御することを特徴とする請求項3記載の演算処理
    装置。
  5. 【請求項5】 前記特定命令は、2つのオペランドを共
    通に用いて、前記オペランドに対する加算操作と減算操
    作とを行う命令であることを特徴とする請求項1から4
    のいずれか1項に記載の演算処理装置。
JP08336998A 1998-03-30 1998-03-30 演算処理装置 Expired - Lifetime JP3541669B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP08336998A JP3541669B2 (ja) 1998-03-30 1998-03-30 演算処理装置
US09/280,363 US6360312B1 (en) 1998-03-30 1999-03-29 Processor for making more efficient use of idling components and program conversion apparatus for the same
US09/808,306 US6966056B2 (en) 1998-03-30 2001-03-14 Processor for making more efficient use of idling components and program conversion apparatus for the same
US10/653,786 US6964041B2 (en) 1998-03-30 2003-09-03 Processor for making more efficient use of idling components and program conversion apparatus for the same
US11/144,132 US20050223195A1 (en) 1998-03-30 2005-06-03 Processor for making more efficient use of idling components and program conversion apparatus for the same
US12/207,133 US20090013161A1 (en) 1998-03-30 2008-09-09 Processor for making more efficient use of idling components and program conversion apparatus for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08336998A JP3541669B2 (ja) 1998-03-30 1998-03-30 演算処理装置

Publications (2)

Publication Number Publication Date
JPH11282679A true JPH11282679A (ja) 1999-10-15
JP3541669B2 JP3541669B2 (ja) 2004-07-14

Family

ID=13800523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08336998A Expired - Lifetime JP3541669B2 (ja) 1998-03-30 1998-03-30 演算処理装置

Country Status (2)

Country Link
US (5) US6360312B1 (ja)
JP (1) JP3541669B2 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3790607B2 (ja) * 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
JP3541669B2 (ja) * 1998-03-30 2004-07-14 松下電器産業株式会社 演算処理装置
US6446195B1 (en) * 2000-01-31 2002-09-03 Intel Corporation Dyadic operations instruction processor with configurable functional blocks
EP1429244A4 (en) * 2001-09-18 2006-10-04 Asahi Chemical Ind COMPILER
US7200738B2 (en) 2002-04-18 2007-04-03 Micron Technology, Inc. Reducing data hazards in pipelined processors to provide high processor utilization
CN1675619A (zh) * 2002-08-16 2005-09-28 皇家飞利浦电子股份有限公司 允述在超长指令字处理器中处理可变长指令的设备、方法和编译器
JP4487479B2 (ja) * 2002-11-12 2010-06-23 日本電気株式会社 Simd命令シーケンス生成方法および装置ならびにsimd命令シーケンス生成用プログラム
JP4283131B2 (ja) * 2004-02-12 2009-06-24 パナソニック株式会社 プロセッサ及びコンパイル方法
US8743142B1 (en) 2004-05-14 2014-06-03 Nvidia Corporation Unified data fetch graphics processing system and method
US8736628B1 (en) 2004-05-14 2014-05-27 Nvidia Corporation Single thread graphics processing system and method
US8687010B1 (en) 2004-05-14 2014-04-01 Nvidia Corporation Arbitrary size texture palettes for use in graphics systems
US8860722B2 (en) 2004-05-14 2014-10-14 Nvidia Corporation Early Z scoreboard tracking system and method
US8736620B2 (en) 2004-05-14 2014-05-27 Nvidia Corporation Kill bit graphics processing system and method
US7681187B2 (en) * 2005-03-31 2010-03-16 Nvidia Corporation Method and apparatus for register allocation in presence of hardware constraints
US8537168B1 (en) 2006-11-02 2013-09-17 Nvidia Corporation Method and system for deferred coverage mask generation in a raster stage
US8108845B2 (en) * 2007-02-14 2012-01-31 The Mathworks, Inc. Parallel programming computing system to dynamically allocate program portions
US8578387B1 (en) * 2007-07-31 2013-11-05 Nvidia Corporation Dynamic load balancing of instructions for execution by heterogeneous processing engines
US20090046105A1 (en) * 2007-08-15 2009-02-19 Bergland Tyson J Conditional execute bit in a graphics processor unit pipeline
US8521800B1 (en) 2007-08-15 2013-08-27 Nvidia Corporation Interconnected arithmetic logic units
US8314803B2 (en) 2007-08-15 2012-11-20 Nvidia Corporation Buffering deserialized pixel data in a graphics processor unit pipeline
US9183607B1 (en) 2007-08-15 2015-11-10 Nvidia Corporation Scoreboard cache coherence in a graphics pipeline
US8599208B2 (en) * 2007-08-15 2013-12-03 Nvidia Corporation Shared readable and writeable global values in a graphics processor unit pipeline
US8736624B1 (en) 2007-08-15 2014-05-27 Nvidia Corporation Conditional execution flag in graphics applications
US8775777B2 (en) * 2007-08-15 2014-07-08 Nvidia Corporation Techniques for sourcing immediate values from a VLIW
US9304775B1 (en) 2007-11-05 2016-04-05 Nvidia Corporation Dispatching of instructions for execution by heterogeneous processing engines
US20090133022A1 (en) * 2007-11-15 2009-05-21 Karim Faraydon O Multiprocessing apparatus, system and method
US20090292908A1 (en) * 2008-05-23 2009-11-26 On Demand Electronics Method and arrangements for multipath instruction processing
US9411595B2 (en) 2012-05-31 2016-08-09 Nvidia Corporation Multi-threaded transactional memory coherence
US9824009B2 (en) 2012-12-21 2017-11-21 Nvidia Corporation Information coherency maintenance systems and methods
US10102142B2 (en) 2012-12-26 2018-10-16 Nvidia Corporation Virtual address based memory reordering
US9317251B2 (en) 2012-12-31 2016-04-19 Nvidia Corporation Efficient correction of normalizer shift amount errors in fused multiply add operations
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3164915B2 (ja) * 1992-09-21 2001-05-14 株式会社日立製作所 データ処理装置及びそのデータ処理方法
US5579520A (en) * 1994-05-13 1996-11-26 Borland International, Inc. System and methods for optimizing compiled code according to code object participation in program activities
US5758176A (en) * 1994-09-28 1998-05-26 International Business Machines Corporation Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system
US6151618A (en) * 1995-12-04 2000-11-21 Microsoft Corporation Safe general purpose virtual machine computing system
JP3623840B2 (ja) * 1996-01-31 2005-02-23 株式会社ルネサステクノロジ データ処理装置及びマイクロプロセッサ
TW470915B (en) * 1996-03-12 2002-01-01 Matsushita Electric Ind Co Ltd Optimization apparatus which removes transfer instructions by a global analysis of equivalence relations
US5752072A (en) 1996-05-09 1998-05-12 International Business Machines Corporation Sorting scheme without compare and branch instructions
US5850553A (en) * 1996-11-12 1998-12-15 Hewlett-Packard Company Reducing the number of executed branch instructions in a code sequence
US5828897A (en) * 1996-12-19 1998-10-27 Raytheon Company Hybrid processor and method for executing incrementally upgraded software
US5909567A (en) * 1997-02-28 1999-06-01 Advanced Micro Devices, Inc. Apparatus and method for native mode processing in a RISC-based CISC processor
US5941983A (en) * 1997-06-24 1999-08-24 Hewlett-Packard Company Out-of-order execution using encoded dependencies between instructions in queues to determine stall values that control issurance of instructions from the queues
US5922065A (en) * 1997-10-13 1999-07-13 Institute For The Development Of Emerging Architectures, L.L.C. Processor utilizing a template field for encoding instruction sequences in a wide-word format
US5974537A (en) * 1997-12-29 1999-10-26 Philips Electronics North America Corporation Guard bits in a VLIW instruction control routing of operations to functional units allowing two issue slots to specify the same functional unit
US6076154A (en) * 1998-01-16 2000-06-13 U.S. Philips Corporation VLIW processor has different functional units operating on commands of different widths
US6219776B1 (en) 1998-03-10 2001-04-17 Billions Of Operations Per Second Merged array controller and processing element
JP3541669B2 (ja) * 1998-03-30 2004-07-14 松下電器産業株式会社 演算処理装置
US6718457B2 (en) * 1998-12-03 2004-04-06 Sun Microsystems, Inc. Multiple-thread processor for threaded software applications
US6542991B1 (en) * 1999-05-11 2003-04-01 Sun Microsystems, Inc. Multiple-thread processor with single-thread interface shared among threads
US6675376B2 (en) * 2000-12-29 2004-01-06 Intel Corporation System and method for fusing instructions

Also Published As

Publication number Publication date
JP3541669B2 (ja) 2004-07-14
US20010032304A1 (en) 2001-10-18
US6360312B1 (en) 2002-03-19
US20050177704A1 (en) 2005-08-11
US6966056B2 (en) 2005-11-15
US20050223195A1 (en) 2005-10-06
US20090013161A1 (en) 2009-01-08
US6964041B2 (en) 2005-11-08

Similar Documents

Publication Publication Date Title
JP3541669B2 (ja) 演算処理装置
US8521997B2 (en) Conditional execution with multiple destination stores
US7366874B2 (en) Apparatus and method for dispatching very long instruction word having variable length
JP3906003B2 (ja) プロセッサおよびその命令処理方法
EP1735700B1 (en) Apparatus and method for control processing in dual path processor
US20070271325A1 (en) Matrix multiply with reduced bandwidth requirements
JP2002333978A (ja) Vliw型プロセッサ
EP0471191B1 (en) Data processor capable of simultaneous execution of two instructions
US4683547A (en) Special accumulate instruction for multiple floating point arithmetic units which use a putaway bus to enhance performance
EP3329363B1 (en) Vector arithmethic instruction
WO2017021675A1 (en) Element size increasing instruction
JPS61160176A (ja) ベクトル処理装置
JP3578883B2 (ja) データ処理装置
JPH05150979A (ja) 即値オペランド拡張方式
US8055883B2 (en) Pipe scheduling for pipelines based on destination register number
GB2523805A (en) Data processing apparatus and method for performing vector scan operation
JPH0227709B2 (ja) Deetakudoseigyohoshiki
CN112579168B (zh) 指令执行单元、处理器以及信号处理方法
JPH09223009A (ja) データ処理装置と方法
KR20220090379A (ko) 프로세서 및 그 연산 처리 방법
JP3743155B2 (ja) パイプライン制御型計算機
JPH04137169A (ja) 情報処理装置
JPH05298093A (ja) 処理装置
JPH04273529A (ja) 並列演算回路
JPH02140832A (ja) 並列処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20031216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040216

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040322

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080409

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090409

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100409

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110409

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120409

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 10

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term