JP5346467B2 - 機能単位が読み出しポートを共有するデータ処理回路 - Google Patents

機能単位が読み出しポートを共有するデータ処理回路 Download PDF

Info

Publication number
JP5346467B2
JP5346467B2 JP2007531946A JP2007531946A JP5346467B2 JP 5346467 B2 JP5346467 B2 JP 5346467B2 JP 2007531946 A JP2007531946 A JP 2007531946A JP 2007531946 A JP2007531946 A JP 2007531946A JP 5346467 B2 JP5346467 B2 JP 5346467B2
Authority
JP
Japan
Prior art keywords
functional unit
register
operation code
write
functional units
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007531946A
Other languages
English (en)
Other versions
JP2008513878A (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 JP2008513878A publication Critical patent/JP2008513878A/ja
Application granted granted Critical
Publication of JP5346467B2 publication Critical patent/JP5346467B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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

Description

本発明は、データ処理回路に関し、前述のデータ処理回路を用いてプログラムを実行する方法に関する。
米国特許第6076154号明細書から、複数の発行スロットを有するVLIWデータ処理回路を提供することが知られている。VLIW(長大命令語)プロセッサは、複数の動作を備える命令を複数の機能単位に向けて並列に発行する命令発行回路を用いる。それぞれの動作を規定する情報は、命令発行装置のそれぞれの発行スロットにおいて発行される。各発行スロットは、動作コード(動作を識別する)、及び複数のレジスタ選択コード(そこから、規定された動作のオペランドをロードしなければならない、かつ/又は、規定された動作の結果を書き込まなければならない、レジスタ・ファイル内のレジスタの場所を規定する)を供給する。レジスタ・ファイルは、独立した1つ又は複数のレジスタ・ファイル部分(それぞれ自体がレジスタ・ファイルである)を備え得る。オペランドのレジスタ選択コードは、レジスタ・ファイルの読み出しポートに供給される。お返しに、読み出しポートはオペランドを供給する。動作コードは機能単位に供給される。機能単位は、指定された動作をオペランドに施し、動作の結果をレジスタ・ファイルの書き込みポートに供給する。発行スロットからのレジスタ選択コードを書き込みポートに供給して、結果が書き込まれるレジスタを制御する。
多くの実用的なVLIWプロセッサでは、それぞれの機能単位群は、それぞれの発行スロットに結合される。群内の機能単位は、レジスタ・ファイルの同じ読み出しポートをオペランド入力に結合させており、レジスタ・ファイルの同じ書き込みポートに結果出力を結合させている。機能単位群が発行スロットに取り付けられている場合、動作コードは、上記群からの機能単位のどれが、動作を行い、その動作の結果を動作コ―ドに応じて書き込むかを定める。適切な機能単位が、別々の動作を実行することができる場合、動作コードは、機能単位内の動作も選択する。
VLIWプロセッサを用いることは、命令を並列に実行することが可能である(それによって、プログラムを実行するのに必要な時間が削減される)という利点を有する。しかし、このことは、例えば、複数の発行スロットを実現するために、単一の命令発行プロセッサにおいてハードウェアがより多く必要になることを犠牲とする。特定のタスクを行うプログラムの実行にVLIWプロセッサが消費する合計電力量は一般に、単一命令発行プロセッサによって同じタスクを実行するために消費される電力と少なくとも同じである。一般にプログラム毎電力は高くなる。多くの命令の場合、発行スロットの一部は、未使用状態に留まるからである。更に、特定のタスクを行う、VLIWプログラムによって占有されるメモリ空間は一般に、単一命令発行プロセッサの場合の同じタスクのためのプログラムのメモリ空間と少なくとも同じである。一般に、所要メモリ空間は、未使用コード空間によって、より大きくなる。
本発明の目的はとりわけ、プログラム可能なプロセッサ回路に特定タスクを行わせるプログラムを記憶するのに必要なメモリ空間量を削減することである。
本発明の目的はとりわけ、プログラム可能なプロセッサ回路に特定タスクを行わせるのに必要な合計電力量を削減することである。
本発明のデータ処理回路は、請求項1に記載している。本発明によれば、1つの発行スロットに対応する複数の機能単位は、レジスタ・ファイルの1つ又は複数の共有読み出しポートから少なくとも1つの、好ましくは2つ以上のオペランドを受け取る。複数の機能単位は、別々の書き込みポートにおけるそれぞれの結果をレジスタ・ファイルに向けて生成する。複数の機能単位に向けて発行される動作コードは、1つ又は複数の共有読み出しポートからの1つ又は複数のオペランドを用いた、複数の機能単位による動作が同時に行われるか否か、及び/又は、その動作の組み合わせを制御する。よって、単一に発行されるコマンドが、別々の機能単位の少なくとも1つの、好ましくは2つ以上の共有オペランドの共有レジスタ・アドレスを用いて複数の機能単位を同時に制御する。このようにして、データ処理回路のプログラムにおいて必要なコマンドは少なくなる。それによって、プログラムを記憶するのに必要なメモリ量、及び命令の組み合わせを実行するのに必要な電力消費が共に削減される。コマンドは、動作コード及びその対応するレジスタ・アドレス(1つ又は複数のオペランド及び1つ又は複数の結果に対して)を備える。
好ましくは、更なる機能単位が、発行スロットに、複数の機能単位と並列に結合される。よって、同じオペランドを用いた別々の動作の同時実行を伴う動作に加えて、他の動作も選択することが可能である。好ましくは、動作コードの別々の値は、機能単位群からの、それぞれの別々の、必ずしも重なっていない複数を選択する(同じオペランドを用いた別々の動作の同時実行を伴う)。これによって、別々の機能単位のオペランドの共有レジスタ・アドレスを用いてプログラム内の複数の機能単位を制御するコマンドを用いる機会が増える。これによって、プログラム内のコマンドが少なくなる。
好ましくは、1つ又は複数の読み出しポートからのオペランドを用いて一度に一動作を機能単位のうちの1つのみに行わせる一次動作コード、及び、1つ又は複数の読み出しポートからの共有オペランドを用いて動作を同時に複数の機能単位に行わせる二次動作コードがサポートされる。このことによって、機能単位の1つのみからの結果がプログラム内で必要な場合に複数の機能単位を伴う動作を用いることを回避することが可能になる。このことによって、必要に応じて単独で何れかの動作を実行する可能性を犠牲にすることなく、共有オペランドを用いた複数の機能単位による同時実行をもたらす動作コードの数を制限することも可能になる。このようにして、最も頻繁に生起する組み合わせについてのみ同時実行をもたらす動作コードを導入することによって合計命令数が少ない状態に維持することが可能である。
一実施例では、書き込みポートは、それぞれ別々の結果語長を有する。よって、同じオペランドから別々の語長をもたらす別々の動作(乗算や加算など)を、同じオペランドを用いて同時に実行することが可能である。好ましくは、レジスタ・ファイルは、書き込みポートのそれぞれに結合された複数の部分を備えており、各部分は、別々の結果を受け取るための、個別の語長のレジスタを有している。
別の実施例では、更なる機能単位が、第1のビット・サイズ及び第2のビット・サイズを有する同じ結果を表すバージョンを第1の書き込みポート及び第2の書き込みポートそれぞれに書き込むために、互いに異なる語長を有するレジスタ・ファイル部分の書き込みポートに結合される。これによって、変換のための更なる命令を必要とすることなく動作の結果を用いることが可能になる。これによって、プログラム内の命令の数が削減される。更なる実施例では、結果の最上位部分及び最下位部分が別々の書き込みポートに書き込まれ、より大きな語長を有するレジスタ・ファイル部分の第3の書き込みポートに、完全な結果が書き込まれる。これによって、変換のための更なる命令を必要とすることなく動作の結果を用いることが可能になる。
前述並びにその他の本発明の目的及び利点は、非限定的な例によって図を用いて説明する。
図1は、命令発行回路10、機能単位群12及びレジスタ・ファイル14を備えるデータ処理回路を示す。命令発行回路10は、複数の発行スロットを有する。各発行スロットは機能単位群12の個別のものに結合され、レジスタ・ファイル14に結合されるコマンド・ライン群11を有している。
レジスタ・ファイル14は、複数のレジスタ(別個に図示せず)を有している。レジスタ・ファイル14は、複数の読み出しポート及び複数の書き込みポート(詳細に図示せず)を有している。各読み出しポートは、レジスタ・アドレスを受け取るための接続、及び、アドレス指定されたレジスタに記憶されたデータのビットを返すための接続を有している。各書き込みポートは、レジスタ・アドレスを受け取るための接続、及び、アドレス指定されたレジスタに記憶しなければならないデータのビットを受け取るための接続を有している。明確にするために、単一のラインを発行スロット11において個別のレジスタ・ファイル14に向けて示しているが、単一のラインそれぞれは、複数のレジスタをアドレス指定するための、それぞれの読み出しポート及び/又は書き込みポートへの複数の接続を表す。
機能単位群12それぞれは、発行スロット及びオペランド入力の個別のものに結合されたコマンド入力、及びレジスタ・ファイル14に結合された結果出力を有する。2つの機能単位群12(個別の発行スロットにそれぞれが結合される)を明示的に示しているが、更に多くの機能単位群が存在し得る。明確にするために、単一のラインを、個別のレジスタ・ファイル14と機能単位12との間のポート毎に示しているが、単一のラインそれぞれは、アドレス指定されたレジスタにビットを供給し、かつ/又は、前述のレジスタからビットを受け取るための、個別の読み出しポート及び書き込みポートとの間の複数の接続を表す。
命令発行回路は、本質的に知られている。命令発行回路10は、通常、命令メモリ(図示せず)に結合され、通常、命令メモリ内に命令アドレスを生成するプログラム・カウンタ(図示せず)を有する。命令発行回路10は、前述の命令を受け取り、複数のコマンドを命令から得る。命令発行回路10はコマンドを並列に、それぞれの発行スロット11において発行する。各コマンドは、動作コード(機能単位群12に供給される)、及びいくつかのレジスタ選択コード(レジスタ・ファイル14に供給される)を有している。各レジスタ選択コードは、レジスタ選択コードが供給されるレジスタ・ファイル内の、選択されたレジスタを示す。発行スロットからのレジスタ選択コードは、動作のための入力として必要なオペランドのレジスタ場所、及び動作の結果が記憶されるレジスタのレジスタ場所を選択するのに役立つ。前述のレジスタ選択コードは概念的には単一のコマンドに属するが、実際には、コマンドの別々のレジスタ選択コードは、コマンドの実行中の別々の段階で必要であり得るので、時間上互いにオフセットして発行することができる。このことは、パイプライン処理中(例えば、同じコマンドの別々の部分を別々の命令サイクル内に発行され得る時点)に行われる。
図2aは機能単位群12の例を示す。群12は2つの機能単位21a、21bを有している。レジスタ・ファイル(図示せず)からのそれぞれのオペランドを受け取るための2つの入力接続20を示す。入力接続20は、機能単位21a及び機能単位21b共に結合される。第1のレジスタ・ファイル(図示せず)に結果を供給するための2つの出力接続26を示す。各出力接続は、機能単位21a及び機能単位21bのそれぞれの機能単位の出力から結合される。単一のラインを用いて接続を表しているが、各接続は通常、個別の複数の導体(個別ビットに対するそれぞれの導体)を有している。よって、レジスタ・ファイルへの各接続は、例えば32個の導体を有している。
動作中、図2の群に対する各コマンドは、2つのオペランドのレジスタ・アドレス及び2つの結果のレジスタ・アドレスを有している。命令発行回路10は、コマンドを有する命令を受けると、このコマンドの動作コードを機能単位群12に向けて発行し、2つのオペランド・レジスタ・アドレスをレジスタ・ファイル14の読み出しポートに向けて発行し、2つの結果レジスタ・アドレスをレジスタ・ファイル14の書き込みポートに向けて発行する。これに応じて、レジスタ・ファイル14は2つのオペランドを取り出す。レジスタ・ファイル14はその読み出しポートからの前述のオペランドを機能単位21a、21b何れにも供給する。
コマンドの動作コードは、別々の動作を選択する別々の値を呈し得る。少なくとも1つの値によって、レジスタ・ファイル14から受け取られた同じオペランドに対して機能単位21a、21b両方によって個別の動作が実行される。動作コードのこの値に応じて、機能単位21a、21bは、それぞれの書き込みポートへの接続26に結果を書き込む。
一実施例では、第1の機能単位21aは加算器回路を有しており、第2の機能単位21bは減算器回路を有している。よって、オペランドの和及び差が、それぞれの結果として出力される。加算器回路及び減算器回路は、それぞれの機能単位内のそれぞれのプログラム可能な算術演算装置(又は算術論理演算装置)の一部であり得る。この場合、機能単位21a、21bは、同じオペランド上の動作コードに応じて行われるそれぞれの算術演算を選択するよう構成することができる。
別の実施例では、第1の機能単位21aは両方のオペランドで最も小さい数を表すオペランドのうちの1つを選択し、出力する回路を有しており、第2の機能単位21bは両方のオペランドで最も大きな数を表すオペランドを選択し、出力する回路を有している。よって、オペランドの最小値及び最大値が、それぞれの結果として出力される。更に別の実施例では、第1の機能単位21aは加算器回路を有しており、第2の機能単位21bはシフト回路を有している。よって、オペランドの和、及びオペランドの1つのシフトされたバージョンが、それぞれの結果として出力される。
当然、本発明は、図に示される特定タイプの機能単位群に限定されるものでない。例えば、3つ以上の読み出しポートは、機能単位群12に結合し、その群内の機能単位21a、21bそれぞれに結合することができる。このようにして、機能単位は、動作コードの特定値に応じて、より複雑な動作を実行するよう構成することが可能である。
図2bは、3つのそれぞれの機能単位21a乃至21cが結合される(レジスタ・ファイル(図示せず)の読み出しポートへの同じ接続20にそれぞれが結合される)別の実施例を示す。この群は、レジスタ・ファイル(図示せず)のそれぞれの書き込みポートへの3つの接続26を有する。3つの機能単位21a乃至21cは全て、動作コードを受け取るために、発行スロットに結合される。この実施例では、機能単位に対するコマンドそれぞれは、3つの結果レジスタ・アドレスを有している。結果レジスタ・アドレスは、発行スロット11を介して、レジスタ・ファイルの3つのそれぞれの書き込みポートに向けて発行される。機能単位21a乃至21cは、接続20からの同じオペランドを用いてそれぞれの動作を実行することによって動作コードの少なくとも1つの値に応答する。如何に多い数の機能単位も、同じ読み出しポート、及び個別の書き込みポートに結合させて、動作コードに応じてそれぞれの動作を実行することが可能である。
図2cは、機能単位21a乃至21cの結果出力間に3対2多重化回路27が加えられた実施例を示す。この実施例では、群12は、レジスタ・ファイル(図示せず)のそれぞれの書き込みポートに結合された2つの出力26を有する。この実施例では、機能単位に対する各コマンドは、2つの結果レジスタ・アドレスを有する。動作コードは、機能単位21a乃至21cのどれから結果がレジスタ・ファイルに書き込まれるかについて制御する。動作コードは、選択された機能単位21a乃至cからの結果を、書き込みポートへの接続26に供給するよう多重化回路27を制御する。機能単位21a乃至21cそれぞれは、その機能単位21a乃至21cの結果が書き込みポートに供給されない旨を動作コードが示す場合、動作コードに応じてそれ自体をディセーブルするよう構成することができる。このようにして、N(3より大きな数)個の機能単位21a乃至21cを組み合わせることができる。それぞれの書き込みポートへのM(1よりも大きく、Nよりも小さな何れかの数)個の接続を用いることができる。多重化回路は、その入力及び出力間の任意の接続を実現するよう構成することができる。しかし、実施例では、多重化回路は、(例えば、1つの機能単位21aを一方の出力26に常に接続することによって、かつ、動作コードによって選択された他の機能単位21b乃至21cのうちの1つを他方の出力26に接続することによって)部分的な接続のみを設けるよう構成することができる。
この実施例では、N個の機能単位21a乃至21c(例えば、N=3)から別々の複数のM個の機能単位(例えば、M=2)を選択して、同じ読み出しポートからのオペランドを少なくとも部分的に用いてM個の結果をもたらすよう、別々の動作コードを用いることができる。
複数の読み出しポートに(例えば、3つ以上の読み出しポートに)群12が結合される特定の実施例では、全ての機能単位21a及び21bが、動作コードの特定値に応じて読み出しポート全てからのオペランドを用いることは必要でない。例えば、動作コードの特定値に応じて、読み出しポートからのいくつかのコア・オペランドのみを機能単位全てによって用いることができる。残りのオペランドは、選択された機能単位のみによって用いられる。
更に、結果をもたらすよう複数の機能単位が動作するという効果を動作コード値全てが有することは必要でない。結果をもたらすためにオペランドを用いるよう、群12の機能単位21a乃至21cのうちの1つのみ、又は、結果を並列に書き込むことができるM未満の個数の機能単位21a乃至21cを起動させるという効果を少なくとも動作コード値の一部が有し得る。この目的で、ダミー機能単位を群内に備えることができる。ダミー機能単位は、前述の動作コード値に応じて、未使用書き込みポートにおいて標準的な結果を出力するよう設計されている。
図は、動作コードに対する群12の入力が、別々の機能単位21a乃至21cに直接接続している実施例を示す。この実施例では、機能単位21a乃至21c(、及び、任意的には、マルチプレクサ27)それぞれは、オペランドを処理する機能単位21a乃至21cの動作回路(図示せず)に対する制御信号に動作コードを変換する復号器回路(図示せず)を有している。別の実施例では、複数の機能単位21a乃至21cの動作回路(図示せず)に対する制御信号に動作コードを変換する通常の復号器回路を提供することができる。
一実施例では、群の別々の機能単位21a乃至21cはそれぞれプログラム可能である(すなわち、それぞれは、選択可能な別々の動作を実行することができる)。前述の実施例では、コマンドの動作コードは別々のフィールドを備え得る。各フィールドは、群内の機能単位21a乃至21cのそれぞれの機能単位の選択可能な動作の何れか1つを選択することができる動作コードを備える。しかし、このことは、かなりのサイズの動作コードにつながり得る。したがって、好ましくは、利用可能な動作コードは、個々の機能単位21a乃至21cの選択可能な動作の考えられる組合せ全てのうちの選択されたものだけを利用可能にするよう選択される。例えば、一次動作コード値は、個々の機能単位に、その選択可能な動作の何れかを、他の機能単位21a乃至21cをパッシブ状態に留めて行わせるものに、同じオペランドを用いて別々の動作を行うよう機能単位21a乃至21cの組み合わせを各値が起動させるいくつかの二次動作コード値を加えたものであり得る。この場合、別々の二次動作コード値の数は、考えられる組み合わせの合計数よりもかなり少ないことがあり得る。動作コードは、例えば、通常のプログラムにおいて頻繁に生起する組み合わせの場合にのみ利用可能である。
本発明は、同じサイズの語をレジスタ全てが記憶するレジスタ・ファイルを有する実施例について説明したが、これは必要でない。別の実施形態では、レジスタ・ファイル14は、複数の部分(それぞれは、それ自体がレジスタ・ファイル(読み出しポート及び書き込みポートを有する)を構成する)を備え得る。個別の部分それぞれは、個別の語長のレジスタを有している。別々の部分のそれぞれの語長は異なり得る。
図3は、命令発行回路10、群機能単位12、並びに第1のレジスタ・ファイル14a及び第2のレジスタ・ファイル14bを備えるデータ処理回路を示す。レジスタ・ファイル14a及び14bそれぞれは、複数のレジスタ(別個に図示せず)を有している。第1のレジスタ・ファイル14a内の各レジスタは、第1数のビット(例えば、32ビット)を記憶する。第2のレジスタ・ファイル14b内の各レジスタは、第2数のビット(第1数よりも大きい(例えば、64ビット))を記憶する。
レジスタ・ファイル14a及び14bそれぞれは、複数の読み出しポート及び複数の書き込みポート(詳細に図示せず)を有する。各読み出しポートは、レジスタ・アドレスを受け取るための接続、及びアドレス指定されたレジスタに記憶されたデータのビットを返すための接続を有している。各書き込みポートは、レジスタ・アドレスを受け取るための接続、及びアドレス指定されたレジスタに記憶されなければならないデータのビットを受け取るための接続を有している。
単一のラインは、明確にするため、発行スロット11においてそれぞれのレジスタ・ファイル14a、14bに向けて示しているが、複数のレジスタをアドレス指定するための、それぞれの読出しポート及び/又は書込みポートとの複数の接続を表す。各機能単位群12は、発行スロット及びオペランド入力の個別の1つに結合されたコマンド入力、並びにレジスタ・ファイル14a、14bに結合された結果出力を有する。2つの機能単位群12を明示しているが、より多くの数の機能単位群(それぞれが、個別の発行スロットに結合される)が存在し得る。明確にするため、それぞれのレジスタ・ファイル14a、14b及び機能単位12の間に単一のラインを示しているが、単一のラインそれぞれは、複数のレジスタにビットを供給し、かつ/又は複数のレジスタからビットを受け取るための、それぞれの読み出しポート及び書き込みポートとの間の複数の接続を表す。
図2a乃至図2cのタイプの群12が図3の回路において用いられる場合、機能単位21a乃至21cの別々のものを、互いに異なる語長を有する結果をもたらすよう構成することができる。例えば、1つの機能単位は、nビットのオペランド語を有しており、nビットの結果語をもたらす算術演算装置であり得る一方、機能単位21a乃至21cの別のものは、nビットのオペランド語を有しており、2nビット(例えば、n=32)の結果語をもたらす乗算器であり得る。
図4は、機能単位群12の実施例を示す。レジスタ・ファイル14a、14b(図示せず)の読み出しポートからそれぞれのオペランドを供給するための接続は別に示す。オペランドを受け取るための4つの入力接続20、24を示す。3つの第1の入力接続20が、第1のレジスタ・ファイル14a(図示せず)に結合されており、1つの第2の入力接続が、第2のレジスタ・ファイル14bに結合されている。2つの第1の出力接続が、第1のレジスタ・ファイル14aに結合されており、1つの第2の出力接続が、第2のレジスタ・ファイル14bに結合されている。単一のラインを用いて接続を表しているが、各接続は通常、個別の複数の導体を有しており、各導体は、別個のビットに対するものであり、よって、第1のレジスタ・ファイル14aへの各接続は例えば、32個の導体を有しており、第2のレジスタ・ファイル14bへの各接続は例えば、64個の導体を有している。
通常、群12は、同じオペランド入力20に少なくとも部分的に結合されており、それぞれの結果をもたらす(図2a乃至図2cに関して説明したように)よう構成される複数の機能単位を有している。
図5は、群12内の機能単位のうちの少なくとも1つが機能単位のうちの別のものによってもたらされる結果を用いる実施例を示す。機能単位は、乗算器30、加算器32、及び結果分割器34を有している。第1のレジスタ・ファイル14a(図示せず)の第1の読み出しポート及び第2の読み出しポートのデータ部分20は、乗算器30のそれぞれの入力に結合される。入力それぞれは、第1の複数のN(例えば、N=32)ビットを並列に供給するための導体を有している。乗算器30の出力、及び第2のレジスタ・ファイル14b(図示せず)からの読み出しポートのデータ部分24は、加算器32の入力に結合される。加算器32の入力それぞれは、第1の複数の2*N(例えば、2*N=64)ビットを並列に供給するための導体を有している。加算器32の出力は、加算結果の2*N(例えば、2*N=32)ビットに並列に供給するための導体を有している。加算器32の出力は、第2のレジスタ・ファイル14b(図示せず)への書き込みポートのデータ部分26に結合される。結果分割器34は、乗算器30からの出力の導体の分岐を(それぞれ、N個の最上位ビット及びN個の最下位ビットの)2つの群に分割する。このMADD命令のコマンドは、
MADD R1、R2、R3、R4、R5、R6
によって表すことができる。
ここで、MADDは動作コードを象徴し、R1、R2は、第1のレジスタ・ファイル14aの読み出しポートに供給されるレジスタ・アドレスを象徴し、R3は、第2のレジスタ・ファイル14bの読み出しポートに供給されるレジスタ・アドレスを象徴し、R4、R5は、第1のレジスタ・ファイル14aの書き込みポートに供給されるレジスタ・アドレスを象徴し、R6は、第2のレジスタ・ファイル14bの書き込みポートに供給されるレジスタ・アドレスを象徴する。命令発行回路10によって取り出されるコマンドは好ましくは、動作コードおよびそれぞれのレジスタ・アドレスを表すそれぞれのフィールドに分割することが可能な複数のビットを有している。
MADDコマンドには、発行された命令内のレジスタ・アドレスによって全て別個に選択された3つの結果レジスタが関係する。別々の結果レジスタは、結果(の一部)を用いるために後の命令によって別個にアドレス指定することが可能である。別の実施例では、2つのNビット出力は、2*N個のビット語を有するレジスタ・ファイル14bに結合された単一の2*N出力に合成することができる。
更なる機能単位が、複数の結果を別々の書き込みポートに書き込む群に存在し得る。この場合、同じオペランドを処理する複数の別々の機能単位がそれぞれの書き込みポートに結合されるか否か、又は、複数の結果をもたらす1つの機能単位が、別々の書き込みポートに結合されるか否かを選択するようマルチプレクサを設けることができる。当然、前述の更なる機能単位を、それ自体(すなわち、同じオペランドを共有する、別々の機能単位が結合される同じ書き込みポートに結合されない)によって用いることができる。同じオペランドを共有する、別々の機能単位が結合される同じ書き込みポートに結果出力が結合された、前述の更なる機能単位の組み合わせは、書き込みポートをより効率的に用いることが可能であるという利点を有する。
図6は、別のタイプのMADD(乗算加算)命令に応じて起動させられる機能単位の一部を示す。機能単位は、乗算器30、加算器32及び結果分離器34を有している。第1のレジスタ・ファイル14a(図示せず)の第1の読み出しポート及び第2の読み出しポートのデータ部分20は、乗算器30のそれぞれの入力に結合される。各入力は、第1の複数のN(例えば、N=32)ビットを並列に供給するための導体を有している。乗算器30の出力、及び第2のレジスタ・ファイル14b(図示せず)からの読み出しポートのデータ部分24は、加算器32の入力に結合される。加算器32の入力それぞれは、第1の複数の2*N(例えば、2*N=64)ビットを並列に供給するための導体を有している。加算器32の出力は、加算結果の2*N(例えば、2*N=32)ビットを並列に供給するための導体を有している。加算器32の出力は、第2のレジスタ・ファイル14b(図示せず)への書き込みポートのデータ部分26に結合され、第2のレジスタ・ファイル14bのそれぞれのデータ部分22に結合される(結果のN個の最上位ビット及び結果のN個の最下位ビットそれぞれを受け取る)。結果分割器34は、加算器22からの出力の導体の分岐を2つの群(N個の最上位ビット群、及びN個の最下位ビット群)に分割するにすぎない。このMADD命令のコマンドは
MADD R1、R2、R3、R4、R5、R6
によって表すことができる。
ここで、MADDは動作コードを象徴し、R1、R2は、第1のレジスタ・ファイル14aの読み出しポートに供給されるレジスタ・アドレスを象徴し、R3は、第2のレジスタ・ファイル14bの読み出しポートに供給されるレジスタ・アドレスを象徴し、R4、R5は、第1のレジスタ・ファイル14aの書き込みポートに供給されるレジスタ・アドレスを象徴し、R6は、第2のレジスタ・ファイル14bの書き込みポートに供給されるレジスタ・アドレスを象徴する。命令発行回路10によって取り出されるコマンドは好ましくは、動作コードおよびそれぞれのレジスタ・アドレスを表すそれぞれのフィールドに分割することが可能な複数のビットを有している。
MADDコマンドは、同じ結果が二回(第2のレジスタ・ファイル14b内のレジスタに全体として一回、第1のレジスタ・ファイル14b内のそれぞれのレジスタに2つの部分で一回)書き込まれるという効果を有する。このことには、発行される命令内のレジスタ・アドレスによって全て別個に選択される3つの結果レジスタが関係する。これは、処理回路に対する命令のプログラムをコンパイルするコンパイラに、レジスタ使用を最適化するうえでの完全な自由度を与える。別々の結果レジスタは、事前の変換を必要とすることなく、結果(の一部)を用いるよう後の命令によって別個にアドレス指定することが可能である。Nビットの結果レジスタを例えば、1つの機能単位群に用いることができ、2*Nビットの結果を例えば、別の機能単位群に用いることができる。
MADDコマンドは、発行スロットに供給することができるコマンドの一例にすぎない。別々のコマンドも利用可能であり得る。別々のコマンドは、コマンド(MADDコマンドの例におけるMADDによって象徴される)の動作コード部分によって識別される。規定されたコマンドに応じて、機能単位の別々の回路(図3に示していない)を起動させることができるか、又は、同じ発行スロットに接続された機能単位群からの別々の機能単位を起動させることができる。通常、機能単位(または機能単位群)は、機能単位の出力に、かつ/又は、機能単位内の他の回路に回路出力のどれから出力が供給されるかを判定するためのマルチプレクサ(図示せず)を有している。図は、MADDコマンドと関係している回路を示しているにすぎない。他のコマンドは、オペランド・レジスタと同程度多くであるか、より少ないか、若しくは、より多くのレジスタを用いることができ、かつ/又は、結果レジスタと同程度多くであるか、より少ないか、若しくは、より多くのレジスタを用いることができる。より少ないレジスタが用いられる場合、デフォルト・レジスタ選択コードを発行することができ、レジスタ・ファイル14a、14bは、前述の選択コードに応じてデフォルト・データを供給するか、又は、デフォルト選択コードに応じて何れかのレジスタの内容の修正を阻止するよう構成することができる。
図7は、MSHADD命令(乗算・シフト・加算)に応じて起動される機能単位の別の一部を示す。この機能単位は、第1のレジスタ・ファイル14aの読み出しポートのデータ部分20からの更なるオペランドによって制御されるいくつかのビット位置だけ積をシフトさせるためのバレル・シフタ36を乗算器30と加算器32との間に有している。MSHADD命令は、発行スロットによって許容される最大数の入力及び出力を用いる。
本発明は、特定の実施例を参照することによって説明したが、前述の実施例に限定されるものでない。例えば、2つのレジスタ・ファイル14a、14bの代わりに、より多数のレジスタ・ファイル(例えば、Nビットのレジスタを有するレジスタ・ファイル群、及び2*Nビット・レジスタを有するレジスタ・ファイル群)を用いることができる。この場合、別々の機能単位(機能単位群)及びそれらの対応する発行スロットは、それぞれの別々のレジスタ・ファイルに結合することができる。単一の機能単位群は、Nビットまたは2*Nビットのレジスタを有する複数のレジスタ・ファイルにも接続することができる。
好ましくは、発行スロットは全て、同じ幅を有する。それぞれは、同じ数のオペランド・レジスタ(それぞれの別々のオペランド・サイズを有する)、及び同じ数の結果レジスタ(それぞれの別々のオペランド・サイズを有する)をサポートする。これは、コンパイルの間、別々の発行スロットへの命令の割り当てを自由に用いてプロセッサ速度を最適化することが可能であるという効果がある。好ましくは、各発行スロットは、3つの結果レジスタをサポートしている(そのうち、2つは幅がNビットであり、1つは幅が2*Nビット(例えば、N=32)である)。このことは、複数の結果と関係しているオーバヘッドと、複数の発行スロット内の同数の結果レジスタによるプログラム可能性との間の好適な妥協策を備えることが明らかになった。好ましくは4つのオペランド・レジスタを用いる。そのうち、3つは、幅がNビットであり、1つは、幅が2*Nビットである。このことは、複数のオペランドと関係しているオーバヘッドと、複数の発行スロット内の同数の結果レジスタによるプログラム可能性との間の好適な妥協策を備えることが明らかになった。
別の実施例では、3つ以上の別々のマルチビットのオペランド、及び/又は結果サイズを発行スロットにおいて用いることができる。例えば、32ビット・レジスタを有するレジスタ・ファイル及び64ビット・レジスタを有するレジスタ・ファイルに加えて、8ビット・レジスタを有するレジスタ・ファイルを、発行スロットにおいて供給し、アドレス指定することができる。
好ましくは、同じ機能単位に接続されており、同じ発行スロットから制御される同じ少なくとも2つのレジスタ・ファイルを用いる。一方のレジスタ・ファイル内のレジスタ毎のビット数Nは、他方内のレジスタ毎のビット数2Nの半分である。これによって、1つの命令の結果として、結果の倍精度バージョン、及び、互いに同じサイズを有する結果の2つの単精度部分を書き込むことが可能になる。しかし、本発明から逸脱することなく、レジスタ・サイズが2倍違わないレジスタ・ファイルを用いることができる。例えば、レジスタそれぞれにおけるオーバフローを表すことができるために、第1のレジスタ・ファイル内のレジスタのサイズはN+1ビットであり得るものであり、第2のレジスタ・ファイル内のレジスタのサイズは2*N+1ビットであり得る。
データ処理回路を示す図である。 機能単位群を示す図である。 機能単位群を示す図である。 機能単位群を示す図である。 データ処理回路を示す図である。 機能単位の部分を示す図である。 機能単位の部分を示す図である。 機能単位の部分を示す図である。 機能単位の部分を示す図である。

Claims (10)

  1. レジスタ・ファイルと、複数の機能単位群と、少なくとも1つの命令発行スロットとを備えるデータ処理回路であって、
    前記レジスタ・ファイルは、複数の読み出しポート及び複数の書き込みポートを有し、
    前記複数の機能単位群それぞれは、複数の機能単位、及び多重化回路を有し、各機能単位群内のそれぞれの機能単位は、少なくとも1つの前記読み出しポートを共有し、個々の前記書き込みポートに結合され、少なくとも1つの共有オペランドを用いてそれぞれの処理結果を前記書き込みポートに書き込むものであり、
    前記多重化回路は、N個の機能単位を有している前記機能単位群内の機能単位間に結合され、M個の書き込みポートに接続されて、動作コードのそれぞれの値によって選択された機能単位から、前記書き込みポートのうちの前記個々の前記書き込みポートにM個の結果を供給するよう構成されるものであって、前記Nが3以上の整数かつ前記Mが2以上のNよりも小さな整数であり、
    前記少なくとも1つの命令発行スロットは、レジスタ選択情報を前記複数の読み出しポートと前記複数の書き込みポートに供給し、また、機能単位群のそれぞれに対して別々に単一の動作コードを出力するものであり、
    前記動作コードは、一度に動作を前記機能単位のうちの1つのみに行わせる一次動作コード、又は動作を同時に複数の機能単位に行わせる二次動作コードであり
    前記一次動作コードを受け取った機能単位群において、該機能単位群内の1つの機能単位が、該一次動作コードで示される処理の処理結果を対応する前記書き込みポートに対して生成し、
    前記二次動作コードを受け取った機能単位群において、該機能単位群内の前記複数の機能単位、前記少なくとも1つの共有オペランドを用いてそれぞれの動作を同時に行ない、該二次動作コードで示されるそれぞれの処理の処理結果を対応する前記書き込みポートに対し生成する、データ処理回路。
  2. 請求項1記載のデータ処理回路であって前記機能単位は、前記少なくとも1つの共有読み出しポートからの少なくとも1つの共有オペランドを含むオペランド・データを同時に受け取るよう結合されており、前記機能単位は、個別の結果を書き込むために、前記書き込みポートのうちの少なくとも1つに結合されており、前記機能単位群は、前記動作コードを供給するための前記出力に供給されており、前記動作コードによって選択された動作をそれぞれが実行することによって前記動作コードに応答するよう構成されるデータ処理回路。
  3. 請求項1記載のデータ処理回路であって、前記複数の機能単位のうちの前記機能単位は、前記少なくとも1つの共有読み出しポートからの少なくとも1つの共有オペランドを用いて前記機能単位のうちの個別の機能単位が個別の動作を個別の更なる値それぞれに応じて実行するように前記動作コードのそれぞれの更なる値に応答するよう構成されており、前記機能単位のうちの前記個別の機能単位以外の、前記複数における前記機能単位は、前記少なくとも1つの共有読み出しポートからの少なくとも1つの共有オペランドを用いないで、前記個別の更なる値に応じて前記書き込みポートにおいて結果をもたらすデータ処理回路。
  4. 請求項1記載のデータ処理回路であって、前記少なくとも1つの共有読み出しポートは、2つの読み取りポートであって、前記二次動作コードの前記少なくとも1つの値に応じて前記複数の機能単位それぞれによって少なくとも2つのオペランドが前記2つの読み取りポートから用いられる2つの読み取りポートを有しているデータ処理回路。
  5. 請求項1記載のデータ処理回路であって、前記書き込みポートはそれぞれの結果語長を有しており、前記書き込みポートの少なくとも1つは、少なくとも更なる1つの書き込みポートの結果語長とは異なる結果語長を有しているデータ処理回路。
  6. 請求項記載のデータ処理回路であって、前記レジスタ・ファイルは、前記書き込みポートのうちのそれぞれの書き込みポートに結合された複数の部分を備えており、各部分は、前記部分が結合されている前記書き込みポートの語長に対応する個別の語長のレジスタを有しているデータ処理回路。
  7. 請求項1記載のデータ処理回路であって、前記レジスタ・ファイルは、互いに異なる第1のビット・サイズ及び第2のビット・サイズをそれぞれ有する第1のレジスタ・ファイル部分及び第2のレジスタ・ファイル部分を備えており、前記書き込みポートは、第1のレジスタ・ファイル及び第2のレジスタ・ファイルそれぞれに結果を書き込むために第1の書き込みポート及び第2の書き込みポートを備えており、前記データ処理回路は、前記第1の書き込みポート及び前記第2の書き込みポートに結合されており、前記命令発行スロットに結合されており、更なる機能単位は、特定の動作に応じて結果をもたらし、前記第1のビット・サイズ及び前記第2のビット・サイズを備えた結果を表すバージョンを前記第1の書き込みポート及び前記第2の書き込みポートそれぞれに書き込むデータ処理回路。
  8. 請求項記載のデータ処理回路であって、前記第1の複数のビット・サイズは、前記第2の複数のビット・サイズよりも少ないビットを有しており、前記第1のレジスタ・ファイル部分は更なる書き込みポートを有しており、前記第1の書き込みポート及び更なる書き込みポートは、前記発行スロットからのそれぞれのレジスタ選択コードを並列に受け取り、前記機能単位は、前記第1の書き込みポート及び前記更なる書き込みポートに結合された出力を有しており、前記更なる機能単位は、前記結果の最上位部分及び最下位部分を前記第1の書き込みポート及び前記更なる書き込みポートそれぞれに書き込むよう構成されたデータ処理回路。
  9. 請求項記載のデータ処理回路であって、前記第2のレジスタ・ファイルのレジスタは、前記第1のレジスタ・ファイルのレジスタのビット・サイズの2倍のビット・サイズを有しているデータ処理回路。
  10. レジスタ・ファイルと、複数の機能単位群と、少なくとも1つの命令発行スロットを有するデータ処理回路を用いてコンピュータ・プログラムを実行する方法であって、
    前記レジスタ・ファイルは、複数の読み出しポート及び複数の書き込みポートを有するものであり、
    前記複数の機能単位群のそれぞれは、複数の機能単位、及び多重化回路を有し、各機能単位群内のそれぞれの機能単位は、少なくとも1つの前記読み出しポートを共有し、個々の前記書き込みポートに結合され、少なくとも1つの共有オペランドを用いてそれぞれの処理結果を前記書き込みポートに書き込むものであり、
    前記多重化回路は、N個の機能単位を有している前記機能単位群内の機能単位間に結合され、M個の書込みポートに接続されて、動作コードのそれぞれの値によって選択された機能単位から、前記書き込みポートのうちの前記個々の前記書き込みポートにM個の結果を供給するよう構成されるものであって、前記Nが3以上の整数かつ前記Mが2以上のNよりも小さな整数であり、
    前記少なくとも1つの命令発行スロットは、レジスタ選択情報を前記複数の読み出しポートと前記複数の書き込みポートに供給し、また、機能単位群のそれぞれに対して別々に単一の動作コードを出力するものであり、
    前記少なくとも1つの命令発行スロットが、動作コード、オペランド・レジスタのアドレス、及び結果レジスタのアドレスを示す命令を発行する工程と、
    前記オペランド・レジスタのアドレスを用いてレジスタを選択し、前記選択されたレジスタからのオペランドを供給する工程と
    を備え、
    前記動作コードは、動作を一度に前記機能単位のうちの1つのみに行わせる一次動作コード、又は動作を同時に複数の機能単位に行わせる二次動作コードであり、
    前記一次動作コードを受け取った機能単位群において、該機能単位群内の1つの機能単位が、該一次動作コードで示される処理の処理結果を対応する前記書き込みポートに対して生成し、
    前記二次動作コードを受け取った機能単位群において、該機能単位群内の前記複数の機能単位が、前記少なくとも1つの共有オペランドを用いてそれぞれの動作を同時に行い、前記方法は更に、
    該二次動作コードで示されるそれぞれの処理の処理結果を対応する前記書き込みポートに対して生成することによって、それぞれの機能単位において複数の動作を同時に行う工程と、
    前記それぞれの機能単位からのそれぞれの生成結果を、前記結果レジスタの前記アドレスによって選択されるそれぞれのレジスタに書き込む工程と、
    を備える方法。
JP2007531946A 2004-09-22 2005-09-21 機能単位が読み出しポートを共有するデータ処理回路 Active JP5346467B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP04104582.4 2004-09-22
EP04104582 2004-09-22
PCT/IB2005/053102 WO2006033078A2 (en) 2004-09-22 2005-09-21 Data processing circuit wherein functional units share read ports

Publications (2)

Publication Number Publication Date
JP2008513878A JP2008513878A (ja) 2008-05-01
JP5346467B2 true JP5346467B2 (ja) 2013-11-20

Family

ID=34929596

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007531946A Active JP5346467B2 (ja) 2004-09-22 2005-09-21 機能単位が読み出しポートを共有するデータ処理回路

Country Status (8)

Country Link
US (1) US8108658B2 (ja)
EP (1) EP1794672B1 (ja)
JP (1) JP5346467B2 (ja)
KR (1) KR101311187B1 (ja)
CN (1) CN101027635A (ja)
AT (1) ATE456829T1 (ja)
DE (1) DE602005019180D1 (ja)
WO (1) WO2006033078A2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8713286B2 (en) * 2005-04-26 2014-04-29 Qualcomm Incorporated Register files for a digital signal processor operating in an interleaved multi-threaded environment
US9402062B2 (en) * 2007-07-18 2016-07-26 Mediatek Inc. Digital television chip, system and method thereof
GB2451845B (en) * 2007-08-14 2010-03-17 Imagination Tech Ltd Compound instructions in a multi-threaded processor
GB2488985A (en) * 2011-03-08 2012-09-19 Advanced Risc Mach Ltd Mixed size data processing operation with integrated operand conversion instructions
KR102177871B1 (ko) * 2013-12-20 2020-11-12 삼성전자주식회사 멀티 쓰레딩을 지원하기 위한 연산 유닛, 이를 포함하는 프로세서 및 프로세서의 동작 방법
JP6237241B2 (ja) * 2014-01-07 2017-11-29 富士通株式会社 処理装置
JP2021166010A (ja) * 2020-04-08 2021-10-14 富士通株式会社 演算処理装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370623B1 (en) * 1988-12-28 2002-04-09 Philips Electronics North America Corporation Multiport register file to accommodate data of differing lengths
JPH0764789A (ja) * 1993-08-25 1995-03-10 Mitsubishi Electric Corp 並列処理プロセッサおよびそのプロセッシングユニットならびにこの並列処理プロセッサの動作方法
JP3655403B2 (ja) * 1995-10-09 2005-06-02 株式会社ルネサステクノロジ データ処理装置
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
EP1036359A2 (en) * 1998-06-08 2000-09-20 Koninklijke Philips Electronics N.V. Processor with memory and data prefetch unit
KR100345173B1 (ko) * 2000-06-12 2002-07-24 주식회사 테크라프 폐전지 처리방법
WO2002005748A2 (en) 2000-07-18 2002-01-24 Cornell Research Foundation, Inc. Medicinal uses of mu-opioid receptor agonists
US20040014848A1 (en) 2000-09-11 2004-01-22 Kazuya Tanaka Organic Hydrophicizing agent for aluminiferous metals
EP1340142A2 (en) * 2000-11-27 2003-09-03 Koninklijke Philips Electronics N.V. Data processing apparatus with many-operand instruction
EP1346282A1 (en) * 2000-12-11 2003-09-24 Koninklijke Philips Electronics N.V. Signal processing device and method for supplying a signal processing result to a plurality of registers
EP1546869B1 (en) 2002-09-24 2013-04-03 Silicon Hive B.V. Apparatus, method, and compiler enabling processing of load immediate isntructions in a very long instruction word processor
US20040128475A1 (en) * 2002-12-31 2004-07-01 Gad Sheaffer Widely accessible processor register file and method for use

Also Published As

Publication number Publication date
KR101311187B1 (ko) 2013-09-26
WO2006033078A2 (en) 2006-03-30
EP1794672A2 (en) 2007-06-13
ATE456829T1 (de) 2010-02-15
CN101027635A (zh) 2007-08-29
US8108658B2 (en) 2012-01-31
KR20070067687A (ko) 2007-06-28
DE602005019180D1 (de) 2010-03-18
JP2008513878A (ja) 2008-05-01
WO2006033078A3 (en) 2006-05-11
US20090070559A1 (en) 2009-03-12
EP1794672B1 (en) 2010-01-27

Similar Documents

Publication Publication Date Title
US8069337B2 (en) Methods and apparatus for dynamic instruction controlled reconfigurable register file
US7493474B1 (en) Methods and apparatus for transforming, loading, and executing super-set instructions
EP0968463B1 (en) Vliw processor processes commands of different widths
JP5346467B2 (ja) 機能単位が読み出しポートを共有するデータ処理回路
US6851041B2 (en) Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor
US6948158B2 (en) Retargetable compiling system and method
EP1658559B1 (en) Instruction controlled data processing device and method
US6044451A (en) VLIW processor with write control unit for allowing less write buses than functional units
EP1073951A1 (en) Data processor with a configurable functional unit and method using such a data processor
US6601158B1 (en) Count/address generation circuitry
US7574583B2 (en) Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor
JP2011090592A (ja) 情報処理装置とその命令デコーダ
KR20100092805A (ko) 재구성 가능한 구조의 프로세서
EP0982655A2 (en) Data processing unit and method for executing instructions of variable lengths
JP5052713B2 (ja) 条件付き命令を備えるベクトルデータプロセッサ
US7340591B1 (en) Providing parallel operand functions using register file and extra path storage
JP5145659B2 (ja) ベクトルリネーミング方式およびベクトル型計算機
US20060095743A1 (en) Vliw processor with copy register file
WO2005036384A2 (en) Instruction encoding for vliw processors
JP5311008B2 (ja) 信号処理プロセッサ及び半導体装置
JP2010020450A (ja) 信号処理プロセッサ及び半導体装置
KR20080052224A (ko) SIMD/SISD/Row/Column 동작을 할 수있는 SIMD 병렬 프로세서

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080919

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130131

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130621

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130819

R150 Certificate of patent or registration of utility model

Ref document number: 5346467

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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