JP5052713B2 - 条件付き命令を備えるベクトルデータプロセッサ - Google Patents

条件付き命令を備えるベクトルデータプロセッサ Download PDF

Info

Publication number
JP5052713B2
JP5052713B2 JP2000576350A JP2000576350A JP5052713B2 JP 5052713 B2 JP5052713 B2 JP 5052713B2 JP 2000576350 A JP2000576350 A JP 2000576350A JP 2000576350 A JP2000576350 A JP 2000576350A JP 5052713 B2 JP5052713 B2 JP 5052713B2
Authority
JP
Japan
Prior art keywords
instruction
data
field
data processor
register
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.)
Expired - Lifetime
Application number
JP2000576350A
Other languages
English (en)
Other versions
JP2002527812A (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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Koninklijke Philips Electronics NV
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 Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2002527812A publication Critical patent/JP2002527812A/ja
Application granted granted Critical
Publication of JP5052713B2 publication Critical patent/JP5052713B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • 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/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards

Description

【0001】
【技術分野】
本発明はベクトルプロセッサに関する。
【0002】
【背景技術】
米国特許番号第5,623,650号はベクトルプロセッサを開示している。ベクトルプロセッサは多くのベクトル成分(vector component)により構成されるオペランドを用いるベクトル命令を実行する。ベクトル命令に応じて、ベクトルプロセッサはオペランドの種々のベクトル成分を用いて並列に多くの回数演算を実行する。
【0003】
一般にデータプロセッサに関して、命令の条件付き実行(conditional execution)の使用は既知である。データプロセッサは条件値(condition value)に依存して条件付き命令(conditional instruction)を実行する。
【0004】
米国特許番号第5,623,650号のベクトルプロセッサは、ベクトル処理のための条件付き実行の概念を改善している。このベクトルプロセッサは、各ベクトル成分に対する条件値の各々を書込むことが出来るベクトル条件レジスタ(vector condition register)を持つ。条件付き命令を実行すると、ベクトルプロセッサは、対応する条件値が真であるオペランドのベクトル成分についてのみ演算を実行する。
【0005】
このことは、互いに独立している条件付き命令の結果の成分を書き戻す機能を必要とする。斯様な機能はデータプロセッサの複雑な設計を必要とする。この機能は、条件的に全成分を書き戻すか又は全く書き戻さないかのいずれかの間で選択することしか出来ないより簡素な設計と一致しない。
【0006】
これは、例えば“通常(normal)”(非ベクトル)演算のための命令及びベクトル演算のための命令の両方を持つプロセッサでの場合である。通常演算のための命令は、該通常演算によりNビット数(例えばN=64)として扱われる、Nビットを各々が記憶する結果レジスタ及びオペランドを参照する。ベクトル演算のための命令は、通常演算と同様に同じオペランド及び結果レジスタを参照するが、ベクトル演算においてはレジスタ中のビットがM(例えばM=4)N/Mビット数として扱われる。通常演算はNビットの結果を全体的に書き戻す。Nビットの一部を選択的に書き戻し、Nビットの他の部分は書込み前のままにするためのなんの備えも必要としない。このことは、レジスタへの簡素なアクセス機構をもたらす。ベクトルの全成分を書き戻すこと又はベクトルの全成分を書き戻さないことのみが可能な未変形のアクセス機構を備えるベクトル演算のためには、このアクセス機構を変形することは望ましくない。
【0007】
【発明の開示】
本発明の第1の特徴によるデータプロセッサは、各フィールドに対して関連のマルチプレクサを有する。当該プロセッサが条件付き割当て命令を実行する場合、マルチプレクサは、好ましくはオペランド以外の何かとして命令中でアドレス指定される記憶装置から取得される当該特定のフィールドに対する条件データにより制御される。斯くして結果の全フィールドを書き戻すことができ、各フィールドの内容は条件データに依存する。
【0008】
一実施例において、条件データは各フィールドに対して3つ以上の値をとることができ、3つ以上の値の間で多重化することを可能にする。
【0009】
本発明によるプロセッサは、比較入力の間で各々小なり(less than)、同一(equal to)、大なり(greater than)の関係を反映する3つ以上の値を仮定することが出来る比較結果を生成する比較命令を持つ。
【0010】
好ましくは、マルチプレクサの入力は、2つの読取りポートにしか接続されない2つ以上の機能ユニットを備えるレジスタファイルへの読取りポートを共用する。
【0011】
VLIWプロセッサ(超長命令語プロセッサ)等の幾つかのプロセッサは並列に異なる命令を実行することが可能な多くの機能ユニットを含む。このプロセッサは読取りポートを備えるマルチポートレジスタファイルを含む。命令は関連の発行スロットにおいて発行され、レジスタのアドレスを含む。該アドレスは発行スロット中の所定のポジションから取得される。各所定のポジションは固定読取りポートと対応付けられる。ポジションから取得されるアドレスは、このポジションと対応付けられた読取りポートに供給される。斯くして、前記命令が更にデコードされる前に該アドレスを供給することが出来る。前記読取りポートは、命令のオペランドを供給する機能ユニットに結合される。
【0012】
通常の機能ユニットは多くて2つのオペランドを必要とする。しかし、多重化演算(multiplex operation)等を実施する機能ユニットはレジスタファイルの少なくとも3つの読取りポートに接続されなければならない。多くの命令サイクルにおいてこの機能ユニットは用いられないだろう。そこで、これらのサイクルにおいてその読取りポートを無駄にしないために、多重化機能ユニットに対する命令を2つ以上の発行スロットに広げる。斯くして、十分な読取りポートが利用可能になり、多重化機能ユニットが用いられない処理サイクル中に、2つ以上の通常の機能ユニットが前記発行スロットを用いることが出来る。
【0013】
本発明のこれらの及び他の特徴を、以下の図を用いて説明する。
【0014】
【本発明を実施するための最良の形態】
図1はデータプロセッサのアーキテクチャを示している。一例としてVLIWプロセッサが示されているが、本発明はVLIWプロセッサに限定されるものではない。このプロセッサは、レジスタファイル10、多数の機能ユニット12a乃至12f及び命令発行ユニット(instruction issue unit)14を含む。命令発行ユニット14は機能ユニット12a乃至12fに対する命令発行接続(instruction issue connections)を持つ。機能ユニット12a乃至12fは読取りポート及び書込みポートを介してレジスタフィルタ10に接続される。
【0015】
演算中、命令発行ユニット14は、命令メモリ(明確には図示せず)から逐次命令語をフェッチする。各命令語は機能ユニット12a乃至12fに対する幾つかの命令を含んでも良い。
【0016】
図2は命令の例を示している。この命令は多数のフィールド、即ち、演算コードのためのフィールドOPC、第1ソースレジスタのアドレスのためのフィールドR1、第2ソースレジスタのアドレスのためのフィールドR2、結果レジスタのアドレスのためのフィールドRdest及び任意に保護レジスタのアドレスのためのフィールドRgを含む。
【0017】
命令発行ユニット14は、機能ユニット12a乃至12fの関連の1つに対して並列に命令語から個別の命令を発行する。該命令に応じて、ソースレジスタのアドレスのためのフィールドR1及びR2においてアドレス指定されたソースレジスタの内容が、レジスタファイル10からフェッチされる。機能ユニット12a乃至12fは、演算コードのためのフィールドからの演算コードに従って命令を処理し、レジスタファイル10に対する処理の結果を、結果レジスタのアドレスのためのフィールドRdest中のアドレスによりアドレス指定されたレジスタに書き戻す。任意に、書き戻しは、保護レジスタのアドレスのためのフィールドRgによりアドレス指定されたレジスタの内容次第とする。
【0018】
多数の機能ユニット12a乃至12fは、アドレス指定されたレジスタの内容をパックデータフォーマット中の数のベクトルとして扱うことが可能である。
【0019】
通常の命令は、ソースレジスタ及び行先レジスタの各々の内容を単一の数として用いる。例えば、レジスタが64ビットの長さである場合、通常の“ADD”命令により機能ユニット12a乃至12fが、レジスタファイル10中のソースレジスタからロードされる2つの64ビットの数を加算し、レジスタファイル10中の行先レジスタ中に64ビットの結果を置く。同様に通常のシフト命令により機能ユニット12a乃至12fが、64ビットレジスタを介してビットをシフトする。斯様な通常の命令の実行は、レジスタファイル10からデータをロードする工程、関連の演算を実行する工程及び結果を書込む工程を必要とする。
【0020】
更に、1つ以上の機能ユニット12a乃至12fが、レジスタの内容をパックデータのベクトルとして用いる命令を実行することが可能である。
【0021】
図3はパックデータフォーマットの例を示している。このデータフォーマットは可能なレジスタの内容を示している。レジスタの内容30は、ビットにおいて等しい長さの4つのフィールド32a乃至32dに細分される。一例として、このレジスタの内容は64ビットから成ることができ、各フィールドは16ビットから成ることが出来る。
【0022】
機能ユニット12a乃至12fがある命令を実行する際、該機能ユニットは当該命令のソースレジスタ及び/又は行先レジスタ中のデータをパックデータとして扱う。例えば、加算命令の場合には、対応するフィールド32a乃至32dのペアが加算され、各ペアは第1ソースレジスタからの1フィールド及び第2ソースレジスタからの1フィールドから成っても良い。この例において、各ペアの加算の結果は行先レジスタ中のフィールド32a乃至32dの関連の1つに書込まれる。一方のフィールドから他方のフィールドへのけた上げ対話(carry interaction)がないので、異なるペアの加算は無関係である。
【0023】
レジスタの内容をパックデータとして扱う命令を実行するために必要とされる工程の数は、同時に複数の演算を行うことが出来るので、通常の命令を実行するために必要とされる工程の数と一般的に同じである。概して、ソースレジスタの内容をロードするために1工程を使う(即ち、単一の数として扱われるレジスタの内容をロードするために使われるのと同じタイムスパンにおける1工程においてパックデータの全てがロードされる)。概して、関連した演算を実行するために1工程を用いる、即ち、1つのレジスタからの種々のパックされた数についての演算が並列に実行される。概して、行先レジスタに書込むために1工程を使う。即ち、単一の数として扱われるレジスタの内容を書込むために使われるのと同じタイムスパンにおける1工程においてパックデータの全てが書込まれる。
【0024】
図4はデータプロセッサにおいて用いる機能ユニットを示している。この機能ユニットは、第1中間レジスタ40及び第2中間レジスタ42、比較ユニット44a乃至44d、出力ポート46、並びに命令デコーダ47を含む。第1及び第2中間レジスタは各々、比較ユニット44a乃至44dの関連の1つに結合される4つの出力セクション41a乃至41d及び43a乃至43dを持つ。比較ユニット44a乃至44dの各々は出力を持つ。比較ユニットの出力は、出力ポート46の関連の入力セクション45a乃至45dに結合される。命令デコーダ47は機能ユニット44a乃至44dに並列に結合される出力を持つ。
【0025】
前記プロセッサのアーキテクチャにおいて、第1中間レジスタ40及び第2中間レジスタ42は、命令によりソースレジスタとしてアドレス指定されるレジスタの内容を受取るために前記レジスタファイルの関連の読取りポートに接続される。命令デコーダ47の入力は、命令の演算コード又はこの演算コードのデリバティブ(derivative)を受取る。前記出力ポートの出力は、命令においてアドレス指定された結果レジスタに結果を書込むために前記レジスタファイルの書込みポートに結合される。
【0026】
演算中、中間レジスタ40及び42は、命令においてアドレス指定されるソースレジスタの内容を受取る。出力セクション41a乃至41d及び43a乃至43dは、この内容から関連のフィールドを比較ユニット44a乃至44dに出力する。各比較ユニット44a乃至44dは関連のポジションにおけるフィールドと対応付けられる。各比較ユニット44a乃至44dは、比較ユニット44a乃至44dが対応付けられるポジションにおける2つのソースレジスタからのフィールドの内容を受取る。比較ユニット44a乃至44dは全てが、2つのフィールドの内容の間で同タイプの比較演算、例えば“同一比較(compare equal)”演算又は“非同一比較(compare not equal)”演算又は“小なり(compare less than)”演算等を行う。命令デコーダ47は前記演算コードから導き出される制御信号で適切な比較演算を選択する。
【0027】
各比較ユニット44a乃至44dは、その特定の入力に対する比較結果を形成し、出力ポート46の関連の入力セクション45a乃至45dにこの結果を供給する。出力ポート46は前記レジスタファイルに結果を送り込む。この結果は前記ソースレジスタと同様にフィールドに細分される。各フィールドはフィールドの関連のペアに対する比較結果を含む。
【0028】
比較ユニット44a乃至44dは、比較命令の実行のみが可能な専用の比較ユニット、又は加算、減算等のような算術演算の結果として生じる数値データを表わす出力を生成することも可能な論理演算装置(ALU’s)であっても良い。これに関連して、 “非同一(not equal)”等の指定された関係が2つのソースフィールドの内容の間で成り立つかどうかを比較結果が表わすことに注意されたい。比較結果は、限定された数の値のうちの1つしかとることが出来ず、関係を成り立つ限り前記内容のとり得る値の全範囲に対して同じである。これは、非常に大きい範囲から値をとることができ、ソースフィールドの内容が変化するに連れ、変動する算術演算からの数値データと対照的である。
【0029】
比較命令は下記のように示され得る。
eql_4 R1, R2, R3
【0030】
ここで、eql_4は2つのソースレジスタ中の4つのフィールドの同一性(equality)に関するテストを参照する演算コードの簡略記号である。R1及びR2はソースレジスタへの参照を、R3は行先レジスタへの参照を示す。これらのレジスタ中のフィールドの内容は、R1[0]、R1[1]、R1[2]及びR1[3](各々レジスタR1の0乃至15ビット、16乃至31ビット、32乃至47ビット及び48乃至63ビット)により示され、R2及びR3に関しても同様に示されるだろう。“eql_4”命令の作用は、
R1[0]=R2[0]の場合R3[0]=1、その他の場合R3[0]=0
R1[1]=R2[1]の場合R3[1]=1、その他の場合R3[1]=0
R1[2]=R2[2]の場合R3[2]=1、その他の場合R3[2]=0
R1[3]=R2[3]の場合R3[3]=1、その他の場合R3[3]=0
である。大なり命令gtr_4は、
gtr_4 R1, R2, R3
により示されても良く、
R1[0]>R2[0]の場合R3[0]=1、その他の場合R3[0]=0
R1[1]>R2[1]の場合R3[1]=1、その他の場合R3[1]=0
R1[2]>R2[2]の場合R3[2]=1、その他の場合R3[2]=0
R1[3]>R2[3]の場合R3[3]=1、その他の場合R3[3]=0
という作用を持つ。
【0031】
eql_4及びgtr_4等の比較演算の数は、ソースフィールド各々の間の指定された関係の真及び偽を表わす2つのとり得る値のうち1つを生成する。本発明によると、比較演算の幾つかは、より多くのとり得る比較の値(数は当該演算に対して固定される)のうち1つを生成し得る。例えば、“小なり/同一/大なり”比較の比較演算は、比較ユニット44a乃至44dにより受取られる第1入力が第2入力より小さいか、等しいか、又は大きいかどうかに依存して選択される3つの結果のうち1つを生成し得る。
【0032】
cmp_4は斯様な命令の例である。この命令cmp_4 R1, R2, R3は、
R1[0]>R2[0]の場合R3[0]=2、R1[0]=R2[0]の場合R3[0]=1、その他の場合R3[0]=0R1[1]>R2[1]の場合R3[1]=2、R1[1]=R2[1]の場合R3[1]=1、その他の場合R3[1]=0R1[2]>R2[2]の場合R3[2]=2、R1[2]=R2[2]の場合R3[2]=1、その他の場合R3[2]=0R1[3]>R2[3]の場合R3[3]=2、R1[3]=R2[3]の場合R3[3]=1、その他の場合R3[3]=0という作用を持つ。
【0033】
図4は、レジスタの内容を4つの独立した数(例えば、64ビットレジスタのうちの4つの16ビットの数)を含む4つのフィールドとして処理する機能ユニットを示しているが、レジスタのフィールドへの他の細分も用いられても良い。例えば、その1つは、
R1[0]=R2[0]の場合R3[0]=1、その他の場合R3[0]=0
R1[1]=R2[1]の場合R3[1]=1、その他の場合R3[1]=0
の作用を備えるeq_2 R1, R2, R3のようなeq_2命令が用いられても良い(この場合、64ビットレジスタの場合にはR1[0]は0乃至31ビットを示し、R1[1]は32乃至64ビットを示す)。
【0034】
好ましくは、前記機能ユニットは、命令デコーダ47により受取られた演算コードに依存してフィールドへの細分を適合させる。これを実現するため、例えば、命令デコーダ47が演算コードにより指定された細分を表わす制御信号を導き出す。この制御信号は、中間レジスタ40及び42の出力セクション41a乃至41d及び43a乃至43dに供給される。応答において、例えば、出力セクション41a乃至41d及び43a乃至43dは、必要な場合に適当なビット数を比較ユニット44a乃至44dに提供するように付加的なビットで拡張される、各々8ビット、16ビット、32ビット又は64ビットのフィールドのいずれかを比較ユニット44a乃至44dに供給する。
【0035】
同様に、出力ポート46の入力セクション45a乃至45dは入力デコーダ47から制御信号を受取り、応答において例えば比較ユニット44a乃至44dの1つ、2つ、4つ又は8つ(4つは図示せず)からの比較結果を取得し、結果レジスタへの結果出力における各々64、32、16又は8ビットの1、2、4又は8フィールド中にこれらの結果を置く。
【0036】
異なる大きさのフィールドを処理するために、比較ユニット44a乃至44dのうちの少なくとも幾つかは、該比較ユニットが中間レジスタ40及び42から受取るフィールドにおいてとり得る最大ビット数を処理することが出来るような大きさにされるべきである。より多くのフィールドのためにより多くの比較ユニット44a乃至44dが必要とされる場合にフィールドはより小さくなるであろうから、比較ユニットの全てがこのビット数を処理することが出来る必要はない。例えば、64ビットレジスタの場合、第1比較ユニット44aは64ビット幅、第2比較ユニット44bは32ビット幅、第3及び第4比較ユニット44c及び44dは16ビット幅、次の4つの比較ユニット(図示せず)は8ビット幅であっても良い。
【0037】
図5は他のプロセッサアーキテクチャを示している。このアーキテクチャは、命令発行ユニット50、マルチポートレジスタファイル51並びに多数の通常の機能ユニット52a乃至52c及び特別な機能ユニット53を含む。命令発行ユニット50は、レジスタファイル51の読取り及び書込みポートのアドレス入力、並びに機能ユニット52a乃至52c及び53の演算コード入力に結合される出力を持つ。レジスタファイル51は、前記機能ユニットに結合される読取りポートデータ出力及び書込みポートデータ入力を持つ。
【0038】
特別な機能ユニット53は、第1、第2、第3及び第4中間レジスタ530及び532a乃至532c、4つのマルチプレクサ534a乃至534d、出力ポート536並びに命令デコーダ538を含む。前記命令デコーダの入力は、通常の機能ユニット52a乃至52cのうちの第1機能ユニットに並列に命令発行ユニット50の演算コード出力に結合される。中間レジスタ530及び532a乃至532cの入力は、通常の機能ユニットのうちの第1機能ユニット52a及び第2機能ユニット52bの第1及び第2入力に並列に接続される。前記特別な機能ユニットの出力は機能ユニットのうちの第1機能ユニット52aの出力と並列に結合される。
【0039】
中間レジスタ532a乃至532c及び530は、マルチプレクサ534a乃至534dの関連のマルチプレクサに結合され、該レジスタの内容が細分される、フィールドの関連の1つの各々に対する出力セクションを持つ。マルチプレクサ534a乃至534dは、出力ポート536の関連の入力セクションに結合される出力を持つ。
【0040】
演算中、前記命令発行ユニットにより発行される命令のソースレジスタのフィールドは、レジスタファイル51の読取りポートに供給される。これら命令の演算コードのフィールドは機能ユニット52a乃至52c及び53に発行される。演算コードのフィールドの内容に依存して、通常の機能ユニット52a、通常の機能ユニット52b又は特別な機能ユニット53のいずれかが、前記レジスタのソースオペランドフィールドからアドレスを受取っている読取りポートからのオペランドデータを用いて命令の実行を開始する。斯くして、(読取りポートを介して読取られる)ソースレジスタの内容が、2つの異なる命令を実行する2つの通常の機能ユニット52a及び52b、又は1つの命令のための1つの特別な機能ユニット53のいずれかにより並列に用いられ得る。一方の通常の機能ユニット52a及び52bと特別な機能ユニット53とは同時に命令の実行を開始することが出来ないが、他方の機能ユニット52cと特別な機能ユニット53とは同時に命令の実行を開始することが出来る。
【0041】
命令発行ユニット50により発行される命令語は通常多くの命令から成り、各命令は関連の所謂“発行スロット(issue slot)”により発行される。発行スロットは2つのソースレジスタアドレス、1つの結果レジスタアドレス及び演算コードを提供する。各発行スロットは、ソースレジスタアドレス及び結果レジスタアドレスを各々に供給するために、2つの読取りポート及び1つの書込みポートのアドレス入力に接続される。発行スロットは、演算コードを供給するために機能ユニットのグループにも接続される。
【0042】
各通常の機能ユニット52a乃至52cは、1つの発行スロットの演算コードのための出力、並びにこの発行スロットのデータ入力及びデータ出力に接続される。従って、通常の機能ユニット52a乃至52cは最大で2つのオペランドを持つことが出来る。特別な機能ユニット53は、2つの斯様な発行スロットの読取りポート及びこれら発行スロットのうち1つの演算コード出力に接続される。命令発行ユニット50により発行される演算コードに依存して、特別な機能ユニット53、同一発行スロットに接続される2つの通常の機能ユニット52a及び52b、若しくはこれら通常の機能ユニット52a及び52bのうち1つが起動されても良く、又はそれらのどれもが起動されなくても良い。
【0043】
命令が特別な機能ユニット53により実行されるべきであるということを演算コードが指示する場合、特別な機能ユニット53はマルチプレクサ534a乃至534dの関連の1つを制御するために第1中間レジスタ530の関連のフィールドからの情報を用いる。応答において、各マルチプレクサは、第2、第3及び第4中間レジスタ532a乃至532cのうち選択された1つからのデータの所定のポジションにおけるフィールドの内容を渡す。出力ポート536は、レジスタファイルに書き戻される結果の関連のフィールドにおいてマルチプレクサにより渡されるフィールドを、命令において行先アドレスによりアドレス指定されたレジスタに置く。
【0044】
特別な機能ユニットのための命令は、例えば、
R1[0]=0の場合R5[0]=R2[0]、R1[0]=1の場合R5[0]=R3[0] 、その他の場合R5[0]=R4[0]
R1[1]=0の場合R5[1]=R2[1]、R1[1]=1の場合R5[1]=R3[1] 、その他の場合R5[1]=R4[1]
R1[2]=0の場合R5[2]=R2[2]、R1[2]=1の場合R5[2]=R3[2] 、その他の場合R5[2]=R4[2]
R1[3]=0の場合R5[3]=R2[3]、R1[3]=1の場合R5[3]=R3[3] 、その他の場合R5[3]=R4[3]
という作用を備える
MUX R1, R2, R3, R4, R5
により示され得る。
【0045】
レジスタファイル51から第1中間レジスタ530がロードされるような該レジスタファイル51からのレジスタR1の内容は、好ましくは、図4のコンテキストにおいて記載されたタイプの比較命令(eq_2、eq_4、cmp_4等)により書込まれている。
【0046】
故に、例えば命令シーケンス
cmp_4 R1, R2, R3
mux_4 R3, R2, R2, R1, R4
が、R1及びR2の対応するフィールドの内容のうち最大のものをR4のフィールドの各々においてロードする。即ち、
R4[0]=max(R1[0],R2[0])
R4[1]=max(R1[1],R2[1])
R4[2]=max(R1[2],R2[2])
R4[3]=max(R1[3],R2[3])
【0047】
これらの命令を他の用途に用いることが出来る。例えば、
cmp_4 R1, R2, R3
mux_4 R3, R5, R6, R7, R8
が、R1及びR2のフィールドの相対値に依存してR5、R6又はR7いずれかのフィールドからの値をR8にロードするために用いられても良い。
【0048】
特別な機能ユニット53は、レジスタが4つのフィールドに細分される例について示されているが、本発明から逸脱することなしに、2つ又は8つのフィールドへの細分等の他の細分が用いられても良い。別個の特別な機能ユニットが、例えば特別な機能ユニット53に並列に、各タイプの細分に対して用いられても良く、又は前記特別な機能ユニットが、命令の演算コードにより指定される細分のタイプに応じて該細分に適合するように設計されても良い。
【0049】
特別な機能ユニット53は、マルチプレクサにより多重化されるフィールドを備える3つの中間レジスタ532a乃至532cを持つように示されているが、特別な機能ユニット53は、とりわけ、2つの値のうち1つの値しか生成しない比較命令との組み合わせにおいては、2つ以下の斯様な中間レジスタを、入力の多重化及びこれら2つのレジスタの内容の間での多重化のために用いても良い。
【0050】
更に、特別な機能ユニット53は1つの出力ポート536を持つように示されているが、特別な機能ユニット53は、例えば、異なるフィールドの内容を一方の出力ポートにおいて対応するフィールド又は他方の出力ポートにおいて対応するフィールドのいずれかに切り換えるために2つの出力ポートを用いても良い。このタイプの命令の例は、
R1[0]=1の場合R4[0]=R2[0]、その他の場合R4[0]=R3[0]
R1[1]=1の場合R4[1]=R2[1]、その他の場合R4[1]=R3[1]
R1[2]=1の場合R4[2]=R2[2]、その他の場合R4[2]=R3[2]
R1[3]=1の場合R4[3]=R2[3]、その他の場合R4[3]=R3[3]
R1[0]=1の場合R5[0]=R3[0]、その他の場合R5[0]=R2[0]
R1[1]=1の場合R5[1]=R3[1]、その他の場合R5[1]=R2[1]
R1[2]=1の場合R5[2]=R3[2]、その他の場合R5[2]=R2[2]
R1[3]=1の場合R5[3]=R3[3]、その他の場合R5[3]=R2[3]
という作用を備える
switch R1, R2, R3, R4, R5
である。これは、例えば、図5に示されている1セットのマルチプレクサ534a乃至534d及び出力ポート536の代わりに、並列に2セットのマルチプレクサ及び(2つの)出力ポートを用いることにより実現されても良い。
【0051】
更に、オペランドにおいて対応するフィールドからの値に対する多重化の間異なるフィールドに割り当てられ得る値を限定することは必要とされない。その代わりに、マルチプレクサの制御信号がある値を持つ場合に所定の一定値を割り当てても良い。例えば、MUX0命令、
MUX0 R1, R2, R3, R4, R5
は、
R1[0]=0の場合R5[0]=R2[0]、R1[0]=1の場合R5[0]=R3[0]、R1[0]=2の場合R5[0]=R4[0]、その他の場合R5[0]=0
R1[1]=0の場合R5[1]=R2[1]、R1[1]=1の場合R5[1]=R3[1]、R1[1]=2の場合R5[1]=R4[1]、その他の場合R5[1]=0
R1[2]=0の場合R5[2]=R2[2]、R1[2]=1の場合R5[2]=R3[2]、R1[2]=2の場合R5[2]=R4[2]、その他の場合R5[2]=0
R1[3]=0の場合R5[3]=R2[3]、R1[3]=1の場合R5[3]=R3[3]、R1[3]=2の場合R5[3]=R4[3]、その他の場合R5[3]=0
というように実施されても良い。これは、より多くの入力を備えるマルチプレクサを装備し、1つの入力を0データ設定に結合することにより実現されても良い。勿論、より少ない又はより多くのソースレジスタR2、R3及びR4の間で多重化する同様の割り当てを適用する命令も、マルチプレクサに対する入力の数を変更することにより実現されても良い。また、レジスタR1における条件値に応じてより多くの所定の選択可能な値(例えば、0、1、-1等)を割り当てることが出来る命令が設けられても良い。
【0052】
マルチプレクサが異なる処理を受けているデータの間で選択することが出来るように、中間レジスタとマルチプレクサの入力との間に付加的な処理回路を挿入されても良い。例えば、中間レジスタの各出力セクションを異なるマルチプレクサの入力に一度直接的に及び一度算術インバータ回路を介して接続することにより、
R1[0]=1の場合R3[0]=R2[0]、その他の場合R3[0]=-R2[0]
R1[1]=1の場合R3[1]=R2[1]、その他の場合R3[1]=-R2[1]
R1[2]=1の場合R3[2]=R2[2]、その他の場合R3[2]=-R2[2]
R1[3]=1の場合R3[3]=R2[3]、その他の場合R3[3]=-R2[3]
の作用を備えるMUX_PLUS_MINUS命令、
MUX_PLUS_MINUS R1, R2, R3
を実現されても良い。この場合には、レジスタファイルに接続される2つの入力及びレジスタファイルに結合される1つの結果出力を備える通常の機能ユニットが用いられても良い。他の演算も挿入されても良い。Eg加算器及び減算器は、
R1[0]=1の場合R4[0]=R2[0]+R3[0] 、その他の場合R4[0]=R2[0]-R3[0]
R1[1]=1の場合R4[1]=R2[1]+R3[1] 、その他の場合R4[1]=R2[1]-R3[1]
R1[2]=1の場合R4[2]=R2[2]+R3[2] 、その他の場合R4[2]=R2[2]-R3[2]
R1[3]=1の場合R4[3]=R2[3]+R3[3] 、その他の場合R4[3]=R2[3]-R3[3]
の作用を備えるMUXAB_PLUS_MINUS命令、
MUXAB_PLUS_MINUS R1, R2, R3, R4
を実現するために挿入されても良い。これらの対策のいずれも、例えば選択可能な定数をレジスタの関連のフィールドに加算するために、組合わせて用いられても良い。
【図面の簡単な説明】
【図1】 データプロセッサのアーキテクチャを示す。
【図2】 命令フォーマットを示す。
【図3】 パックデータフォーマットを示す。
【図4】 データプロセッサにおいて用いる機能ユニットを示す。
【図5】 データプロセッサの別のアーキテクチャを示す
【符号の説明】
50 命令発行ユニット
51 レジスタファイル
52a 通常の機能ユニット
52b 通常の機能ユニット
52c 通常の機能ユニット
53 特別な機能ユニット
530 中間レジスタ
532a 中間レジスタ
532b 中間レジスタ
532c 中間レジスタ
534a マルチプレクサ
534b マルチプレクサ
534c マルチプレクサ
534d マルチプレクサ
536 出力ポート
538 命令デコーダ

Claims (5)

  1. データフィールドの各々一つからの数値をデータプロセッサに別個に処理させる命令を実行するために所定の前記データフィールドに細分され得る記憶装置を用いるデータプロセッサであって、前記データプロセッサの命令セットは、記憶位置をアドレス指定するためのオペランド位置を備える条件付き割当て命令を有し、前記データプロセッサは、各々の前記データフィールドに対する各演算を並列に実行することによって前記条件付き割当て命令に応答するように構成され、各々の特定の前記データフィールドに対する前記各演算は、前記特定のデータフィールドに対する各条件データによって条件付けられる、データプロセッサにおいて、前記データプロセッサは、各々の前記特定のデータフィールドに対して、前記特定のデータフィールドに対する前記条件データによって制御される各マルチプレクサを有し、各々の前記特定のデータフィールドに対する前記マルチプレクサは、
    −前記オペランド位置のうちの第1及び第2オペランド位置によって各々アドレス指定される第1及び第2記憶位置において前記特定のデータフィールドの内容を受取るためのポートに結合される第1及び第2入力部と、
    −前記条件付き割当て命令の結果において多重化出力を前記特定のデータフィールドに供給するための出力部と
    を持ち、
    前記データプロセッサは、前記オペランド位置のうちの第3オペランド位置においてアドレス指定される記憶位置の内容の各データフィールドから前記条件データを取得するように構成され、
    前記データプロセッサは、
    −少なくとも第1、第2、及び第3読取りポートを備えると共に、命令フィールドにおいてアドレス指定された内容をフェッチする出所となるマルチポートレジスタファイルと、
    −前記命令フィールドからの演算コードに従って前記命令を処理し、前記マルチポートレジスタファイルに対する処理の結果を、前記命令フィールド中のアドレスによりアドレス指定された前記レジスタに書き戻すと共に、2つ以下の前記オペランド位置を持つ他の命令を実行するための第1及び第2機能ユニットと、
    −前記命令フィールドからの前記演算コードに従って前記命令を処理し、前記マルチポートレジスタファイルに対する処理の結果を、前記命令フィールド中のアドレスによりアドレス指定された前記レジスタに書き戻すと共に、前記条件付き割当て命令を実行するための第3機能ユニットと
    を有し、前記第1機能ユニットは、常に前記第1読取りポート及び前記第2読取りポートから自身の命令の前記オペランド位置によりアドレス指定された内容を読取り、該第2機能ユニットは、常に少なくとも前記第3読取りポートから自身の命令の前記オペランド位置によりアドレス指定された内容を読取り、前記第3機能ユニットは、各々常に前記第1、第2、及び第3ポートから前記条件付き割当て命令の前記第1、第2、及び第3オペランド位置によりアドレス指定された前記内容を読取ることを特徴とするデータプロセッサ。
  2. 前記命令セットが比較命令を有し、当該データプロセッサは、
    −前記記憶装置において対応するデータフィールドの内容を比較するステップと、
    −前記各データフィールドに対して、
    前記条件データの少なくとも3つの異なる値から選択される、前記データフィールドの各々の間の指定された関係の真及び偽を表わす2つのとり得る値のうち1つを比較結果として生成するステップと、
    −前記記憶装置のうちアドレス指定された1つに該比較結果を書き戻すステップと
    により前記比較命令に応答することを特徴とする請求項1に記載のデータプロセッサ。
  3. 前記比較命令のインスタンス及び前記条件付き割当て命令のインスタンスを含むプログラムでプログラムされ、該条件付き割当て命令の該インスタンスは前記比較命令の結果を前記記憶装置の第3記憶位置としてアドレス指定することを特徴とする請求項2に記載のデータプロセッサ。
  4. 前記命令セットは、前記条件付き割当て命令と同様に前記記憶装置を参照するオペランド位置を持つ他の命令を有し、該他の命令は当該プロセッサに前記データフィールドを一緒に処理させ、各前記記憶装置の内容が単独の数値として処理されることを特徴とする請求項1に記載のデータプロセッサ。
  5. 命令を実行するために所定のデータフィールドに細分可能である記憶装置を用いる請求項1に記載のデータプロセッサで、条件付き割当てを実行する方法であって、該命令が、前記記憶装置内の記憶位置を該命令の命令フィールドでアドレス指定して、該データプロセッサに前記アドレス指定した記憶位置のデータフィールドからの数値を個別に処理させ、当該方法は、
    −該データプロセッサに、各々前記記憶装置のうちの第1及び第2記憶位置内の該特定のデータフィールド中に記憶された数値を個別に比較する、各前記特定のデータフィールドに対する各比較演算を実行させ、
    −該特定のデータフィールドに対する前記各比較演算の各結果を前記記憶装置のうちの第3記憶位置の中の該特定のデータフィールド中に書込ませる
    比較演算を実行し、該結果は少なくとも3つの値から選択されるステップと、前記記憶装置のうちの前記第3記憶位置をアドレス指定すると共に、前記データプロセッサに、
    −第4記憶位置の各前記特定のデータフィールドへ前記記憶装置のうちの第5又は第6記憶位置における該特定のデータフィールドの内容を書込ませる条件付き割当て命令を実行し、前記記憶装置のうちの前記第5記憶位置又は前記第6記憶位置が前記記憶装置の前記第3記憶位置における前記特定のデータフィールドの内容の制御の下で選択されるステップと
    を有することを特徴とする方法。
JP2000576350A 1998-10-09 1999-09-22 条件付き命令を備えるベクトルデータプロセッサ Expired - Lifetime JP5052713B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP98203397 1998-10-09
EP98203397.9 1998-10-09
PCT/EP1999/007037 WO2000022511A1 (en) 1998-10-09 1999-09-22 Vector data processor with conditional instructions

Publications (2)

Publication Number Publication Date
JP2002527812A JP2002527812A (ja) 2002-08-27
JP5052713B2 true JP5052713B2 (ja) 2012-10-17

Family

ID=8234200

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000576350A Expired - Lifetime JP5052713B2 (ja) 1998-10-09 1999-09-22 条件付き命令を備えるベクトルデータプロセッサ

Country Status (4)

Country Link
US (1) US6904510B1 (ja)
EP (1) EP1044407B1 (ja)
JP (1) JP5052713B2 (ja)
WO (1) WO2000022511A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7441104B2 (en) 2002-03-30 2008-10-21 Hewlett-Packard Development Company, L.P. Parallel subword instructions with distributed results
JP3958662B2 (ja) * 2002-09-25 2007-08-15 松下電器産業株式会社 プロセッサ
US7003653B2 (en) 2002-10-21 2006-02-21 Sun Microsystems, Inc. Method for rapid interpretation of results returned by a parallel compare instruction
JP4283131B2 (ja) * 2004-02-12 2009-06-24 パナソニック株式会社 プロセッサ及びコンパイル方法
US9069547B2 (en) 2006-09-22 2015-06-30 Intel Corporation Instruction and logic for processing text strings
WO2009061547A1 (en) * 2007-11-05 2009-05-14 Sandbridge Technologies, Inc. Method of encoding register instruction fields
JP5763472B2 (ja) 2011-08-10 2015-08-12 ルネサスエレクトロニクス株式会社 演算回路及び演算装置
US10678541B2 (en) 2011-12-29 2020-06-09 Intel Corporation Processors having fully-connected interconnects shared by vector conflict instructions and permute instructions
US20140281418A1 (en) * 2013-03-14 2014-09-18 Shihjong J. Kuo Multiple Data Element-To-Multiple Data Element Comparison Processors, Methods, Systems, and Instructions
JP6237241B2 (ja) * 2014-01-07 2017-11-29 富士通株式会社 処理装置
CN107315563B (zh) * 2016-04-26 2020-08-07 中科寒武纪科技股份有限公司 一种用于执行向量比较运算的装置和方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2703884B2 (ja) * 1985-12-27 1998-01-26 日本電気株式会社 データ書込み制御方式
US5623650A (en) 1989-12-29 1997-04-22 Cray Research, Inc. Method of processing a sequence of conditional vector IF statements
CA2045773A1 (en) * 1990-06-29 1991-12-30 Compaq Computer Corporation Byte-compare operation for high-performance processor
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
IL116210A0 (en) * 1994-12-02 1996-01-31 Intel Corp Microprocessor having a compare operation and a method of comparing packed data in a processor
GB9509989D0 (en) * 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Manipulation of data
GB2317466B (en) * 1996-09-23 2000-11-08 Advanced Risc Mach Ltd Data processing condition code flags
GB2317469B (en) * 1996-09-23 2001-02-21 Advanced Risc Mach Ltd Data processing system register control
GB2317465B (en) * 1996-09-23 2000-11-15 Advanced Risc Mach Ltd Data processing apparatus registers.
TW380237B (en) * 1996-09-23 2000-01-21 Advanced Risc Mach Ltd Data processing system register control

Also Published As

Publication number Publication date
EP1044407A1 (en) 2000-10-18
US6904510B1 (en) 2005-06-07
WO2000022511A1 (en) 2000-04-20
EP1044407B1 (en) 2014-02-26
JP2002527812A (ja) 2002-08-27

Similar Documents

Publication Publication Date Title
US5517436A (en) Digital signal processor for audio applications
US6356994B1 (en) Methods and apparatus for instruction addressing in indirect VLIW processors
EP1267256A2 (en) Conditional execution of instructions with multiple destinations
CA2560469A1 (en) Apparatus and method for asymmetric dual path processing
US11960892B2 (en) Conditional execution specification of instructions using conditional extension slots in the same execute packet in a VLIW processor
KR20070026434A (ko) 듀얼 경로 프로세서에서 제어 프로세싱용 장치 및 방법
JP5052713B2 (ja) 条件付き命令を備えるベクトルデータプロセッサ
US20040078554A1 (en) Digital signal processor with cascaded SIMD organization
US6145075A (en) Apparatus and method for executing a single-cycle exchange instruction to exchange contents of two locations in a register file
US20230367598A1 (en) Vector maximum and minimum with indexing
JPH1165844A (ja) パイプラインバイパス機能を有するデータ処理装置
JP3781519B2 (ja) プロセッサの命令制御機構
US8108658B2 (en) Data processing circuit wherein functional units share read ports
US20200380035A1 (en) Look-up table read
US5673410A (en) System for aligning varying width instructions in a computer
EP1188112A2 (en) Digital signal processor computation core
EP1499956B1 (en) Method and apparatus for swapping the contents of address registers
US7793072B2 (en) Vector execution unit to process a vector instruction by executing a first operation on a first set of operands and a second operation on a second set of operands
US8200945B2 (en) Vector unit in a processor enabled to replicate data on a first portion of a data bus to primary and secondary registers
KR100278136B1 (ko) 데이타처리장치 및 데이타처리방법
GB2239535A (en) Accelerating store operations in a RISC computer
WO2022022195A1 (en) Risc processor having specialized datapath for specialized registers
JP2861560B2 (ja) データ処理装置
CN114008603A (zh) 具有用于专用寄存器的专用数据路径的risc处理器
KR20070022239A (ko) 비대칭 듀얼 경로 프로세싱용 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060922

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080814

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081113

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100121

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100421

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100721

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110812

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110817

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120306

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120531

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120725

R150 Certificate of patent or registration of utility model

Ref document number: 5052713

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150803

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term