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
Links
- 238000010586 diagram Methods 0.000 description 16
- 238000000034 method Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000001343 mnemonic effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent 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
る長語命令型の演算処理装置を提供する。 【解決手段】 複数の命令スロットからなる長語命令レ
ジスタ101と、長語命令レジスタの第1の命令スロットと
接続する命令実行手段グループ102と、長語命令レジス
タの第2の命令スロットと接続する命令実行手段グルー
プ103とを備え、命令実行手段グループ102は、命令デコ
ーダ104と、命令デコーダ105と接続するセレクタ106
と、データ転送手段108と、算術演算手段109とを備え、
命令実行手段グループ103は、命令デコーダ105と、命令
デコーダ104と接続するセレクタ107と、算術演算手段11
0と、乗算手段111を備えたことを特徴とする演算処理装
置である。これにより、算術演算手段109と110を用い
て、2つの値に対し、加算と減算を同時に行なう命令が
定義できる。
Description
し、特にVLIW(Very Long Instruction Word)と言わ
れる長語命令型のマイクロプロセッサに関する。
型により、複数の命令を同時に実行するマイクロプロセ
ッサが開発されている。
しては、各命令スロット毎に各種演算手段、データ転送
手段等の複数の命令実行手段のグループを対応させ、実
行時には、各命令は、その命令が格納されている命令ス
ロットに対応したグループの中にある命令実行手段を用
いて実行する方法がある。このような技術として、例え
ば特開平5−11979号公報に記載されたものがあ
る。
を示している。図14において1401は、2つの命令スロ
ットを持つ長語命令の命令レジスタであり、1402、1403
は、それぞれ、命令レジスタ1401の第1命令スロット、
第2命令スロットと接続する命令実行手段グループであ
り、1404、1405はデコードされた命令の出力を、出力x,
yから選択するセレクタであり、1408はデータ転送手段
であり、1409、1410は算術演算手段であり、1411は乗算
手段であり、1412はレジスタファイルである。
置について、以下、その動作を述べる。
令が、命令レジスタ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に格
納する。
うな構成では、任意の命令スロットの命令が他の命令ス
ロットに対応した命令実行手段を用いることができなか
った。
段としてそれぞれ1つずつの算術演算手段を持つ図14
に示されるようなプロセッサを想定して説明する。この
プロセッサでは、2つの同じ変数の和と差の両方を計算
する命令(加減算命令)、すなわち1つの命令スロット
の命令が複数の算術演算手段を用いる命令を定義するこ
とができない。これは、一般にVLIW方式のプロセッ
サでは、命令が使うことができる命令実行手段と命令ス
ロットとが1対1に固定されているからである。そして
その結果、2つの同じ変数の和と差を求める際には、加
算命令と減算命令の2命令を実行する必要があり、命令
数とサイクル数が多くなる、という問題点を有してい
た。
列に処理できる命令が存在する場合には複数の命令スロ
ットに命令が入ることとなるが、存在しない場合には命
令が入らない命令スロットが存在するため、この命令ス
ロットに対する命令実行手段が遊んでしまうことにもな
る。
加減算命令が多用されるため、上記の問題点はこのよう
な処理では極めて顕著になる。
少ないハードウエアで複数の操作を含む命令を1つのス
ロットに定義できる長語命令型の演算処理装置を提供す
ることにある。
めに、本発明の演算処理装置は、少なくとも第1と第2
の2つの命令スロットを含み、それぞれに命令を格納す
る命令レジスタと、前記命令レジスタの前記第1の命令
スロットに格納された命令を解読する第1のデコーダ
と、前記命令レジスタの前記第2の命令スロットに格納
された命令を解読する第2のデコーダと、前記第1のデ
コーダによって制御され、少なくとも第1の単位実行手
段からなる第1の命令実行手段グループと、前記第2の
デコーダによって制御され、少なくとも第2と第3の単
位実行手段からなる第2の命令実行手段グループとを備
えた演算処理装置であって、前記第1のデコーダが前記
第1の命令スロットにある特定命令を検出すると、前記
第1のデコーダは、前記特定命令を解読するとともに、
前記解読結果に基づいて前記第1の単位実行手段と前記
第2の単位実行手段とを同時に制御することを特徴とす
る。
命令スロットにある前記特定命令を解読するとき、前記
第2のデコーダは、前記第2の命令スロットにあって、
前記特定命令と並んで配置される命令を解読するととも
に、前記解読結果に基づいて前記第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の単位実行手段とを
同時に制御することを特徴とする。
命令スロットにある前記特定命令を解読するとき、前記
第2のデコーダは、前記第2の命令スロットにあって、
前記特定命令と並んで配置される命令を解読するととも
に、前記解読結果に基づいて前記第4の単位実行手段を
制御し、前記第2のデコーダが前記第2の命令スロット
にある前記特定命令を解読するとき、前記第1のデコー
ダは、前記第1の命令スロットにあって、前記特定命令
と並んで配置される命令を解読するとともに、前記解読
結果に基づいて前記第1の単位実行手段を制御するとし
てもよい。
令は、2つのオペランドを共通に用いて、前記オペラン
ドに対する加算操作と減算操作とを行う命令であるとし
てもよい。
て、図を用いて説明する。
図を示す。図1において101は、2つの命令スロットを
持つ長語命令の命令レジスタであり、102、103は、それ
ぞれ、命令レジスタ101の第1命令スロット、第2命令ス
ロットと接続する命令実行手段グループであり、104、1
05は、それぞれ、命令レジスタ101の第1命令スロットお
よび第2命令スロットに割り当てられた命令をデコード
するデコーダであり、106、107は出力する命令を、入力
a,bの命令から選択するセレクタであり、108はデータ転
送手段であり、109、110は算術演算手段であり、111は
乗算手段であり、112はレジスタファイルである。
いて、以下、その動作を述べる。まず、1つの長語命令
を構成する2つの命令が、命令レジスタ101の第1命令ス
ロットおよび第2命令スロットに格納される。
においては、図2の6種類の命令が定義されている。図
中、Rn,Rmはいずれも、レジスタファイル112の中にある
1つのレジスタを表す変数である。ニーモニックの項
は、命令スロットに記述される命令の内容を示す。配置
スロットの項は、各命令スロットに、当該命令が配置可
能かどうかを示し、第1、第2はそれぞれ、第1命令スロ
ット、第2命令スロットを示す。例えば、データ転送命
令は、第1命令スロットに配置することはできるが、第2
命令スロットに配置することはできない。また、加減算
命令を第1命令スロットに格納した場合、第2命令スロッ
トには、乗算命令、無動作命令以外の命令を格納するこ
とはできない。同様に、加減算命令を第2命令スロット
に格納した場合、第1命令スロットには、データ転送命
令、無動作命令以外の命令を格納することはできない。
第1命令および第2命令が、それぞれ、命令実行手段グル
ープ102、103に転送され、図3、図4に従い、デコーダ
104、105でデコードされる。
ジスタ2は、操作するデータが格納されているレジスタ
変数を示す。但し、操作が無動作の時は、レジスタ変数
は指定されない。
ーモニックをデコードし、出力x,yのそれぞれに対し
て、操作内容と、操作するデータの2つのレジスタ変数
を出力する。図3、図4に示すように、転送命令、加算
命令、減算命令、乗算命令は、従来の演算処理装置と同
じようにデコードされ、デコーダの属する命令実行手段
グループ内で転送される。これに対し、加減算命令は、
加算と減算の2つの操作にデコードされた後、加算はデ
コーダの属する命令実行手段グループ内で転送され、減
算は、別の命令実行手段グループに転送される。
力aに転送された操作内容およびレジスタ変数と、デコ
ーダ105の出力xからセレクタ106の入力bに転送された操
作内容およびレジスタ変数は、図5に従い、いずれか一
方がセレクタ106で選択され、算術演算手段109に転送さ
れる。セレクタ106は、入力aまたは入力bに、加算操作
または減算操作があれば、それを選択し、出力する。も
し、加算、減算のいずれもない場合、無動作を出力す
る。命令の格納時に、加減算命令を第2命令スロットに
格納した場合、第1命令スロットには、データ転送命
令、無動作命令以外の命令を格納することはできないと
いう制限があるので、入力aと入力bの両方に、同時に加
算操作または減算操作が入力されることはない。
力bに転送された命令と、デコーダ104の出力yからセレ
クタ107の入力aに転送された命令は、図6に従い、いず
れか一方がセレクタ107で選択され、算術演算手段110に
転送される。セレクタ107は、セレクタ106と同様、入力
aまたは入力bに、加算操作または減算操作があれば、そ
れを選択し、出力する。もし、加算操作、減算操作のい
ずれもない場合、無動作を出力する。命令の格納時に、
加減算命令を第1命令スロットに格納した場合、第2命令
スロットには、乗算命令、無動作命令以外の命令を格納
することはできないという制限があるので、入力aと入
力bの両方に、同時に加算操作または減算操作が入力さ
れることはない。
操作内容およびレジスタ変数は、データ転送手段108に
入力される。データ転送手段108は、転送操作が入力さ
れた場合、図7に従い、レジスタファイル112にあり、
レジスタ変数の示すレジスタ間で、データ転送を実行す
る。その他の操作が入力されても、動作しない。
作内容およびレジスタ変数は、それぞれ、算術演算手段
109、110に入力される。算術演算手段109、110は、加算
操作、もしくは減算操作が入力された場合、それぞれ、
図8、図9に従い、レジスタファイル112にあり、レジ
スタ変数の示すレジスタに対して、加算もしくは減算を
実行する。無動作操作が入力されても、動作しない。
操作内容およびレジスタ変数は、乗算手段111に入力さ
れる。乗算手段111は、乗算操作が入力された場合、図
10に従い、レジスタファイル112にあり、レジスタ変
数の示すレジスタに対して、乗算を実行する。その他の
操作が入力されても、動作しない。
は、第1命令スロットもしくは第2命令スロットに加減算
命令が格納された時、デコーダによって、加算と減算に
デコードし、2つの命令実行手段グループにある算術演
算手段を用いて、加算と減算を実行する。
て具体的に説明する。まず、各命令は、図16に示すよ
うに、nop,mov,addなどからなる第1フィールドと、操作
するレジスタを指定する第2、第3フィールドから構成さ
れている。
に、デコード部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にも出力する。
に、デコード部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にも出力する。
加減算命令によって、例えば、離散コサイン変換、逆離
散コサイン変換等のプログラムを高速に実行することが
できる。このことを図11から図13を用いて説明す
る。
グラムを示す。a[0]〜a[3]は変換前のデータ、c[0]〜c
[3]は変換後のデータを示し、f0〜f2は定数を示す。
およびf0、f1-f2、f1+f2、f2の値を、それぞれ、レジス
タR0〜R9に格納しておく。
実施の形態の演算処理装置の長語命令の命令列を示す。
以下、順に説明する。
するa[1],a[2]の値に対して、プログラムの2および3の
処理を同時に行ない、b[1],b[2]の値をそれぞれレジス
タR2,R1に入れる。
と同時に実行できる命令が存在しないので、無動作命令
が挿入されている。
[2]の値をレジスタR8に入れる。
タR0,R3が保持するa[0],a[3]の値に対して、プログラム
の1および4の処理を同時に行ない、b[0],b[3]の値をそ
れぞれレジスタR3,R0に入れる。
[3]の値をレジスタR9に入れる。
1の保持するb[2]の値とレジスタR5の保持する(f1-f2)の
積をレジスタR1に入れる。
[2]の値とレジスタR9の保持するb[3]の値の和をレジス
タR8に入れる。
0の保持するb[3]の値とレジスタR6の保持する(f1+f2)の
積をレジスタR0に入れる。
るb[0]とレジスタR2の保持するb[1]の和と差をそれぞれ
レジスタR2,R3に入れる。
8の保持する(b[2]+b[3])の値とレジスタR7の保持するf2
の積をレジスタR8に入れる。
(b[2]*(f1-f2))の値とレジスタR8の保持する((b[2]+b
[3])*f2)の値の和、すなわち、c[2]の値をレジスタR1に
入れる。
2の保持する(b[0]+b[1])の値とレジスタR4の保持するf0
の積、すなわち、c[0]の値をレジスタR2に入れる。
(b[2]*(f1-f2))の値とレジスタR8の保持する((b[2]+b
[3])*f2)の値の差、すなわち、c[3]の値をレジスタR0に
入れる。
3の保持する(b[0]-b[1])の値とレジスタR4の保持するf0
の積、すなわち、c[1]の値をレジスタR3に入れる。
散コサイン変換のプログラムを実現することができる。
令型の演算処理装置では、加減算命令を定義できないの
で、図15に示すように、同じ処理を実行するのに10個
の長語命令が必要となる。
第2命令スロットのいずれにも置けるとしているが、ど
ちらか一方にしか置けないとしてもよい。
るとしているが、例えばレジスタを上位と下位の2つの
フィールドに分け、それぞれがレジスタの幅の半分の長
さの2つのデータを順序付けて保持する、いわゆるSIMD
(Single Instruction Multiple Data)形式にしてもよ
い。この場合、加算命令、減算命令、加減算命令、およ
び乗算命令は、2つのレジスタの保持する各値につい
て、上位のフィールド同士および下位のフィールド同
士、それぞれ加算、減算、加減算、乗算を行い、結果を
レジスタのもとのフィールドに格納すればよい。加減算
命令については、実施の形態に示したものと同じように
2つのレジスタがともに書き換えられる。レジスタを3
つ以上のフィールドに分けたSIMD形式であってもよいこ
とは言うまでもない。
に実行できる2つの命令を検出し、それぞれを、第1命
令スロット、第2命令スロットに格納した後、各命令を
実行する、いわゆるスーパースケーラ型の形式にしても
よい。
少なくとも第1と第2の2つの命令スロットを含み、そ
れぞれに命令を格納する命令レジスタと、前記命令レジ
スタの前記第1の命令スロットに格納された命令を解読
する第1のデコーダと、前記命令レジスタの前記第2の
命令スロットに格納された命令を解読する第2のデコー
ダと、前記第1のデコーダによって制御され、少なくと
も第1の単位実行手段からなる第1の命令実行手段グル
ープと、前記第2のデコーダによって制御され、少なく
とも第2と第3の単位実行手段からなる第2の命令実行
手段グループとを備えた演算処理装置であって、前記第
1のデコーダが前記第1の命令スロットにある特定命令
を検出すると、前記第1のデコーダは、前記特定命令を
解読するとともに、前記解読結果に基づいて前記第1の
単位実行手段と前記第2の単位実行手段とを同時に制御
することを特徴とする。
定命令を、第1の単位実行手段と、本来第2の命令スロ
ットの命令で使用される第2の単位実行手段とを用いて
実行することができ、ハードウェアの増大を抑えること
ができる。
第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の単位実行手段とを
同時に制御することを特徴とする。
トにある場合は、第2の単位実行手段と、本来第2の命
令スロットの命令で使用される第3の単位実行手段とを
用いて実行することができ、特定命令が第2の命令スロ
ットにある場合は、本来第1の命令スロットの命令で使
用される第2の単位実行手段と、第3の単位実行手段と
を用いて実行することができる。従って、上記の効果に
加えて、特定命令を第1のスロットと第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と第2の2つの命令スロ
ットを含み、それぞれに命令を格納する命令レジスタ
と、 前記命令レジスタの前記第1の命令スロットに格納され
た命令を解読する第1のデコーダと、 前記命令レジスタの前記第2の命令スロットに格納され
た命令を解読する第2のデコーダと、 前記第1のデコーダによって制御され、少なくとも第1
の単位実行手段からなる第1の命令実行手段グループ
と、 前記第2のデコーダによって制御され、少なくとも第2
と第3の単位実行手段からなる第2の命令実行手段グル
ープとを備えた演算処理装置であって、 前記第1のデコーダが前記第1の命令スロットにある特
定命令を検出すると、 前記第1のデコーダは、前記特定命令を解読するととも
に、前記解読結果に基づいて前記第1の単位実行手段と
前記第2の単位実行手段とを同時に制御することを特徴
とする演算処理装置。 - 【請求項2】 前記第1のデコーダが前記第1の命令ス
ロットにある前記特定命令を解読するとき、 前記第2のデコーダは、前記第2の命令スロットにあっ
て、前記特定命令と並んで配置される命令を解読すると
ともに、前記解読結果に基づいて前記第3の単位実行手
段を制御することを特徴とする請求項1記載の演算処理
装置。 - 【請求項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】 前記第1のデコーダが前記第1の命令ス
ロットにある前記特定命令を解読するとき、 前記第2のデコーダは、前記第2の命令スロットにあっ
て、前記特定命令と並んで配置される命令を解読すると
ともに、前記解読結果に基づいて前記第4の単位実行手
段を制御し、 前記第2のデコーダが前記第2の命令スロットにある前
記特定命令を解読するとき、 前記第1のデコーダは、前記第1の命令スロットにあっ
て、前記特定命令と並んで配置される命令を解読すると
ともに、前記解読結果に基づいて前記第1の単位実行手
段を制御することを特徴とする請求項3記載の演算処理
装置。 - 【請求項5】 前記特定命令は、2つのオペランドを共
通に用いて、前記オペランドに対する加算操作と減算操
作とを行う命令であることを特徴とする請求項1から4
のいずれか1項に記載の演算処理装置。
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)
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)
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 |
-
1998
- 1998-03-30 JP JP08336998A patent/JP3541669B2/ja not_active Expired - Lifetime
-
1999
- 1999-03-29 US US09/280,363 patent/US6360312B1/en not_active Expired - Lifetime
-
2001
- 2001-03-14 US US09/808,306 patent/US6966056B2/en not_active Expired - Lifetime
-
2003
- 2003-09-03 US US10/653,786 patent/US6964041B2/en not_active Expired - Lifetime
-
2005
- 2005-06-03 US US11/144,132 patent/US20050223195A1/en not_active Abandoned
-
2008
- 2008-09-09 US US12/207,133 patent/US20090013161A1/en not_active Abandoned
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 |