JP4283131B2 - プロセッサ及びコンパイル方法 - Google Patents
プロセッサ及びコンパイル方法 Download PDFInfo
- Publication number
- JP4283131B2 JP4283131B2 JP2004034660A JP2004034660A JP4283131B2 JP 4283131 B2 JP4283131 B2 JP 4283131B2 JP 2004034660 A JP2004034660 A JP 2004034660A JP 2004034660 A JP2004034660 A JP 2004034660A JP 4283131 B2 JP4283131 B2 JP 4283131B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- instruction
- registers
- instructions
- temporary
- 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 - Fee Related
Links
Images
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/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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30156—Special purpose encoding of instructions, e.g. Gray coding
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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/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 Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
(実施の形態1)
図1は、実施の形態1におけるVLIWプロセッサが実行する長命令語の命令フォーマットを示す図である。本図に示されるように、この長命令語は、47ビット長であり、1つのレジスタ指定フィールドと3つの命令フィールドとから構成される。
3ビットのオペランドは、その長命令語のレジスタ指定フィールドで指定されているレジスタを使用するか否かを示す。具体的には、オペランドの第1ビットsrc1は、レジスタ指定フィールドで指定されているソースレジスタ(srcA〜Cの1つ)を、その命令の第1ソースレジスタとして使用する(「1」)か否か(「0」)を示し、第2ビットsrc1は、レジスタ指定フィールドで指定されているソースレジスタ(srcA〜Cの1つ)を、その命令の第2ソースレジスタとして使用する(「1」)か否か(「0」)を示し、第3ビットdstは、レジスタ指定フィールドで指定されているデスティネーションレジスタdstを、その命令のデスティネーションレジスタとして使用する(「1」)か否か(「0」)を示す。
(1)レジスタ指定フィールドで指定された4つのレジスタ(dst、srcA〜C)は、その長命令語に含まれる3つの命令のいずれかによって使用され、2以上の命令によって重複的に使用されることはない。
(2)レジスタ指定フィールドで指定された3つのソースレジスタsrcA〜Cは、優先順位の高い方から、srcA、srcB、srcCの順で各命令によって使用される。
(3)レジスタ指定フィールドで指定された3つのソースレジスタsrcA〜Cは、優先順位の高い方から、命令#1、命令#2、命令#3の順で割り当てられる。
命令レジスタ11は、メモリからフェッチした長命令語を保持するレジスタである。
レジスタファイル12は、32個の汎用レジスタの集まりであり、命令レジスタ11に保持された長命令語のレジスタ指定フィールドにおける3つのソースレジスタ指定部srcA〜Cが示す3つのレジスタの値を入力セレクタ13に出力する3つの出力ポートと、その長命令語のレジスタ指定フィールドにおけるデスティネーションレジスタ指定部dstが示す1つのレジスタに出力セレクタ15から出力される値を格納するための1つの入力ポートを有する。
第1〜第3演算器14a〜14cは、ALU等であり、最大2つの入力値を演算し、その結果を出力セレクタ15に出力する。
出力セレクタ15は、解読器16による制御の下で、第1〜第3演算器14a〜14cの中から選択した1つの演算器からの出力値をレジスタファイル12(命令レジスタ11に保持された長命令語のレジスタ指定フィールドにおけるデスティネーションレジスタ指定部dstが示す1つのレジスタ)に出力する。
図3(a)は、長命令語の例を示す。ここでは、3つの命令#1〜#3を含む長命令語が示されている。命令#1(add r4、r1、r2)は、レジスタr1の値とレジスタr2の値とを加算し、その結果をレジスタr4に格納する命令であり、命令#2(st (0)、r3)は、レジスタr3の値をメモリの第0番地に格納する命令であり、命令#3(br AAA)は、番地AAAに分岐する命令である。
命令レジスタ11に保持された長命令語のレジスタ指定フィールドに含まれる3つのソースレジスタ指定部srcA〜Cの値に基づいて、レジスタファイル12は、3つのレジスタr1、r2、r3の格納値を3つの出力ポートを介して入力セレクタ13に出力する。同様に、デスティネーション指定部dstの値に基づいて、出力セレクタ15から出力される値が入力ポートを介してレジスタr4に入力されるように接続制御する。
図5は、以上のように構成されたコンパイラ20の特徴的な動作を示すフローチャートである。ここでは、命令グループ化部22によるグループ化、つまり、図1に示される長命令語のフォーマットに依存する命令のグループ化の詳細な手順が示されている。
次に、命令グループ化部22は、いまグループ化した長命令語について、上記レジスタ制約が満たされているか否かを判定する(S11)。
たとえば、2つのソースレジスタと1つのデスティネーションレジスタを使用する命令#1と、1つのソースレジスタを使用する命令#2と、2つのソースレジスタと1つのデスティネーションレジスタを使用する命令#3とがパック化された長命令語については、レジスタ制約が満たされていないので、例えば、命令#1及び命令#2からなる第1の長命令語と、命令#2だけからなる第2の長命令語に分割する。なお、分割によって得られた長命令語のうち、レジスタ制約に余裕がある長命令語(例えば、上記例における第2の長命令語)については、上記ステップS10以下を繰り返すことで、他の命令とのパック化の対象としてもよい。
なお、本実施の形態のVLIWプロセッサ10では、長命令語のレジスタ指定フィールドで指定された4つのレジスタを各命令が重複して使用しないこととなっていたが(ルール(1))、若干のハードウェア規模の増大を許容するならば、この制約を外してもよい。たとえば、レジスタ指定フィールドで指定しているレジスタr1を命令#1と命令#2がソースレジスタとして同時に使用してもよい。この場合には、各命令のソースレジスタ指定部及びオペランド指定部として、srcA〜Cのいずれかを特定する2ビットを割り当てればよい。レジスタを指定するために各命令中に5ビットが必要とされた従来の長命令語よりも命令サイズが全体として縮小化されることには変りない。
次に、本発明の実施の形態2におけるVLIWプロセッサ及びコンパイラについて説明する。本実施の形態におけるVLIWプロセッサは、実施の形態1と同様の特徴的な命令フォーマットの長命令語を実行するプロセッサであるが、レジスタファイルとは別個に、演算結果を一時的に格納するテンポラリレジスタをさらに備えることを特徴とする。以下、実施の形態1と異なる点を中心に説明する。
レジスタ指定フィールドを構成する各レジスタ指定部dst、srcA〜Cは、それぞれ、本実施の形態のVLIWプロセッサが備える32個の汎用レジスタのうちの1個を指定するための5ビットからなる点で実施の形態1と同様であるが、各命令フィールドのオペランドが6ビットである点で実施の形態1と異なる。
2ビットの各指定部src1、src2及びdstのうちの第1ビット(各2ビットのうちの上位ビット)は、実施の形態1における各命令フィールドのオペランドと同様であり、その長命令語のレジスタ指定フィールド(dst、srcA〜C)で指定されているレジスタ(つまり、汎用レジスタ)を使用するか否かを示す。一方、第2ビット(各2ビットのうちの下位ビット)は、本実施の形態におけるVLIWプロセッサが備える3つのテンポラリレジスタのうち、その命令フィールドに対応するテンポラリレジスタを使用する(「1」)か否か(「0」)を示す。
入力セレクタ33は、解読器36による制御の下で、レジスタファイル12から出力された3つの値及び3つのテンポラリレジスタ37a〜37cから出力された値を第1〜第3演算器14a〜14cのいずれかに振り分けて出力する。
命令レジスタ31に保持された長命令語のレジスタ指定フィールドに含まれる3つのソースレジスタ指定部srcA〜Cの値に基づいて、レジスタファイル12は、3つのレジスタr2、r5、r1の格納値を3つの出力ポートを介して入力セレクタ33に出力する。同様に、デスティネーション指定部dstの値に基づいて、出力セレクタ15から出力される値が入力ポートを介してレジスタr8に入力されるように接続制御する。
ジスタの割り当てルールを示すレジスタ割当フィールドが置かれている。このレジスタ割当フィールドは、ソースレジスタの割り当てを指定する3ビットのソース指定部srcとデスティネーションレジスタの割り当てを指定する2ビットのデスティネーション指定部dstからなる。ソース指定部srcは、図13(b)に示されるように、命令#1〜命令#3それぞれで使用するソースレジスタの個数の組み合わせを示し、デスティネーション指定部dstは、デスティネーションレジスタを使用する命令の位置(「命令#1」、「命令#2」、「命令#3」、「いずれの命令も使用せず」等)を示す。このような割り当てルールを示すレジスタ割当フィールドを長命令語中に配置することで、各命令中にレジスタオペランドに関する情報を配置する必要がなくなり、全体として、長命令語のサイズが縮小され得る。
11、31 命令レジスタ
12 レジスタファイル
13、33 入力セレクタ
14a〜14c 演算器
15 出力セレクタ
16、36 解読器
20 コンパイラ
21 中間言語変換部
22 命令グループ化部
23 フォーマット変換部
24 機械語命令変換部
25 ソースプログラム
26 機械語プログラム
37a〜37c テンポラリレジスタ
Claims (14)
- 複数のレジスタと複数の演算器を備える、長命令語を実行するプロセッサであって、
前記長命令語には、前記複数のレジスタの中から少なくとも1つを指定するレジスタ指定フィールドと、前記演算器を用いた演算を指定する複数の命令と、前記レジスタ指定フィールドで指定されたレジスタと当該レジスタを使用する前記複数の命令との対応関係を示すレジスタ割当情報とが含まれ、
前記レジスタ指定フィールドと前記レジスタ割当情報とは、同一の前記長命令語に含まれ、
前記レジスタ指定フィールドは、前記複数の命令で共通に使用され、当該長命令語で使用される全てのレジスタを指定するビットフィールドであり、
前記プロセッサは、前記レジスタ割当情報に従って、前記レジスタ指定フィールドで指定されたレジスタの値を用いて前記複数の命令で指定された演算を行う
ことを特徴とするプロセッサ。 - 前記プロセッサはさらに、
前記レジスタ指定フィールドで指定された前記複数の命令で使用されるレジスタの値を出力する出力ポートと、
前記レジスタ割当情報が示す対応関係に従って、前記出力ポートから出力された値が前記複数の命令を実行する前記演算器に入力されるように前記出力ポートから出力したレジスタの値の選択制御をする前記演算器への入力選択制御手段と、
前記レジスタ指定フィールドで指定された前記複数の命令の出力結果を格納するレジスタに値を格納するための入力ポートと、
前記レジスタ割当情報が示す対応関係に従って、前記複数の命令を実行する前記演算器で得られた演算結果が前記入力ポートを介して前記レジスタに格納されるように選択制御をする前記演算器からの出力選択制御手段とを備える
ことを特徴とする請求項1記載のプロセッサ。 - 前記レジスタ割当情報は、前記複数の命令中のレジスタオペランドとして分散して配置され、
各命令中のレジスタオペランドは、当該命令のソースレジスタ及びデスティネーションレジスタとして前記レジスタ指定フィールドで指定されたレジスタを使用するか否かを示す
ことを特徴とする請求項1記載のプロセッサ。 - 前記レジスタ割当情報は、前記長命令語中の連続するビット位置に配置され、前記レジスタ指定フィールドで指定されたレジスタを使用する命令を前記複数の命令の中から特定する情報を含む
ことを特徴とする請求項1記載のプロセッサ。 - 前記レジスタ指定フィールドは、複数のレジスタを指定し、
前記レジスタ割当情報は、前記レジスタ指定フィールドで指定された複数のレジスタを予め定められた順序に従って前記複数の命令に割り当てる情報である
ことを特徴とする請求項1記載のプロセッサ。 - 前記レジスタ指定フィールドは、複数のレジスタを指定する複数のレジスタ部を含み、
前記レジスタ割当情報は、前記長命令語における前記複数のレジスタ部の並び順と前記複数の命令の並び順とに従って、前記レジスタを重複することなく前記命令に割り当てていくための情報である
ことを特徴とする請求項5記載のプロセッサ。 - 前記プロセッサはさらに、前記演算器による演算結果を保持するテンポラリレジスタを備え、
前記レジスタ指定フィールド及び前記レジスタ割当情報の少なくとも1つは、前記複数のレジスタ及び前記テンポラリレジスタの中から少なくとも1つを指定する
ことを特徴とする請求項1記載のプロセッサ。 - 前記プロセッサは、前記複数の演算器それぞれに対応する複数のテンポラリレジスタを備える
ことを特徴とする請求項7記載のプロセッサ。 - 前記テンポラリレジスタは、対応する前記演算器が新たな演算結果を生成する度に当該演算結果を新たに保持するパイプラインステージ間のレジスタである
ことを特徴とする請求項8記載のプロセッサ。 - 前記プロセッサは、前記複数の演算器のうちの2以上の演算器による演算結果を選択的に保持するテンポラリレジスタを備える
ことを特徴とする請求項7記載のプロセッサ。 - 複数のレジスタと複数の演算器を備えるプロセッサを対象とし、命令列を長命令語列に変換するコンパイル方法であって、
前記命令列を同時実行可能な複数の命令からなる命令グループに分類する命令グループ分類ステップと、
分類された各命令グループを、当該命令グループで共通に使用され、当該長命令語で使用される全てのレジスタを指定するレジスタ指定フィールドと、前記複数の命令を特定する複数の命令コードと、前記レジスタ指定フィールドで指定されたレジスタと当該レジスタを使用する命令との対応関係を示すレジスタ割当情報とが含まれる長命令語フォーマットに変換するフォーマット変換ステップと、
長命令語フォーマットに変換された各命令グループを対応する機械語に変換する機械語命令変換ステップと
を含むことを特徴とするコンパイル方法。 - 前記命令グループ分類ステップは、
前記レジスタ指定フィールドで指定可能なレジスタの個数を考慮することなく、前記演算器の個数を考慮して命令グループを生成するグループ化ステップと、
生成された命令グループで使用されるレジスタの個数が前記レジスタ指定フィールドで指定可能なレジスタの個数を超えているか否かを判定する制約判定ステップと、
超えていると判定された場合に、当該命令グループを、前記レジスタ指定フィールドで指定可能な個数のレジスタを用いる命令グループに分割する命令分割ステップとを含む
ことを特徴とする請求項11記載のコンパイル方法。 - 前記プロセッサはさらに、前記演算器による演算結果を保持するテンポラリレジスタを備え、
前記レジスタ指定フィールドは、前記複数のレジスタ及び前記テンポラリレジスタの中から少なくとも1つを指定する
ことを特徴とする請求項11記載のコンパイル方法。 - 前記コンパイル方法はさらに、
前記複数のレジスタ及び前記テンポラリレジスタのうち、前記複数のレジスタだけを前記命令に割り付ける汎用レジスタ割付ステップと、
前記レジスタが割り付けられた命令について、オペランドを前記テンポラリレジスタに置き換えることが可能か否かを判定する置換判定ステップと、
置き換え可能と判定された命令のオペランドを前記テンポラリレジスタに置き換える置換ステップとを含む
ことを特徴とする請求項13記載のコンパイル方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004034660A JP4283131B2 (ja) | 2004-02-12 | 2004-02-12 | プロセッサ及びコンパイル方法 |
US10/949,230 US7383422B2 (en) | 2004-02-12 | 2004-09-27 | Very long instruction word (VLIW) computer having an efficient instruction code format |
CNB2004100817555A CN1327340C (zh) | 2004-02-12 | 2004-12-30 | 处理器和编译器 |
US12/103,372 US8738892B2 (en) | 2004-02-12 | 2008-04-15 | Very long instruction word (VLIW) computer having efficient instruction code format |
US14/247,735 US9697004B2 (en) | 2004-02-12 | 2014-04-08 | Very-long instruction word (VLIW) processor and compiler for executing instructions in parallel |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004034660A JP4283131B2 (ja) | 2004-02-12 | 2004-02-12 | プロセッサ及びコンパイル方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005227942A JP2005227942A (ja) | 2005-08-25 |
JP4283131B2 true JP4283131B2 (ja) | 2009-06-24 |
Family
ID=34836184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004034660A Expired - Fee Related JP4283131B2 (ja) | 2004-02-12 | 2004-02-12 | プロセッサ及びコンパイル方法 |
Country Status (3)
Country | Link |
---|---|
US (3) | US7383422B2 (ja) |
JP (1) | JP4283131B2 (ja) |
CN (1) | CN1327340C (ja) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2370380B (en) | 2000-12-19 | 2003-12-31 | Picochip Designs Ltd | Processor architecture |
GB2420884B (en) * | 2004-12-03 | 2009-04-15 | Picochip Designs Ltd | Processor architecture |
US7725516B2 (en) | 2005-10-05 | 2010-05-25 | Qualcomm Incorporated | Fast DCT algorithm for DSP with VLIW architecture |
WO2007145319A1 (ja) * | 2006-06-15 | 2007-12-21 | Nec Corporation | プロセッサ、および、命令制御方法 |
KR20100108509A (ko) * | 2007-11-05 | 2010-10-07 | 샌드브리지 테크놀로지스, 인코포레이티드 | 레지스터 명령 필드를 인코딩하는 방법 |
GB2454865B (en) * | 2007-11-05 | 2012-06-13 | Picochip Designs Ltd | Power control |
KR101418969B1 (ko) * | 2008-02-27 | 2014-08-13 | 삼성전자주식회사 | 프로세서 및 컴파일 방법 |
JP5481793B2 (ja) | 2008-03-21 | 2014-04-23 | 富士通株式会社 | 演算処理装置および同装置の制御方法 |
US8458439B2 (en) * | 2008-12-16 | 2013-06-04 | International Business Machines Corporation | Block driven computation using a caching policy specified in an operand data structure |
US8327345B2 (en) * | 2008-12-16 | 2012-12-04 | International Business Machines Corporation | Computation table for block computation |
US8285971B2 (en) * | 2008-12-16 | 2012-10-09 | International Business Machines Corporation | Block driven computation with an address generation accelerator |
US8407680B2 (en) * | 2008-12-16 | 2013-03-26 | International Business Machines Corporation | Operand data structure for block computation |
US8281106B2 (en) * | 2008-12-16 | 2012-10-02 | International Business Machines Corporation | Specifying an addressing relationship in an operand data structure |
JP5576605B2 (ja) * | 2008-12-25 | 2014-08-20 | パナソニック株式会社 | プログラム変換装置およびプログラム変換方法 |
GB2466661B (en) * | 2009-01-05 | 2014-11-26 | Intel Corp | Rake receiver |
GB2470037B (en) | 2009-05-07 | 2013-07-10 | Picochip Designs Ltd | Methods and devices for reducing interference in an uplink |
GB2470891B (en) | 2009-06-05 | 2013-11-27 | Picochip Designs Ltd | A method and device in a communication network |
GB2470771B (en) | 2009-06-05 | 2012-07-18 | Picochip Designs Ltd | A method and device in a communication network |
GB2474071B (en) | 2009-10-05 | 2013-08-07 | Picochip Designs Ltd | Femtocell base station |
CA2726566A1 (en) * | 2010-01-11 | 2011-07-11 | Baxter International Inc. | Pipette system, pipette tip assembly and kit |
US8495341B2 (en) * | 2010-02-17 | 2013-07-23 | International Business Machines Corporation | Instruction length based cracking for instruction of variable length storage operands |
KR20110103256A (ko) * | 2010-03-12 | 2011-09-20 | 삼성전자주식회사 | 다중 입출력 오퍼레이션 지원 프로세서 및 그 방법 |
GB2482869B (en) | 2010-08-16 | 2013-11-06 | Picochip Designs Ltd | Femtocell access control |
GB2489919B (en) | 2011-04-05 | 2018-02-14 | Intel Corp | Filter |
GB2489716B (en) | 2011-04-05 | 2015-06-24 | Intel Corp | Multimode base system |
US9910823B2 (en) | 2011-05-16 | 2018-03-06 | Cypress Semiconductor Corporation | Stack processor using a ferroelectric random access memory (F-RAM) having an instruction set optimized to minimize memory fetch |
US9588881B2 (en) * | 2011-05-16 | 2017-03-07 | Cypress Semiconductor Corporation | Stack processor using a ferroelectric random access memory (F-RAM) for code space and a portion of the stack memory space having an instruction set optimized to minimize processor stack accesses |
GB2491098B (en) | 2011-05-16 | 2015-05-20 | Intel Corp | Accessing a base station |
JP5813484B2 (ja) * | 2011-11-30 | 2015-11-17 | ルネサスエレクトロニクス株式会社 | Vliwプロセッサと命令構造と命令実行方法 |
TWI464583B (zh) * | 2012-03-02 | 2014-12-11 | Wistron Corp | 取得觸發功能之指令的方法 |
US9513915B2 (en) * | 2012-03-28 | 2016-12-06 | International Business Machines Corporation | Instruction merging optimization |
US9395988B2 (en) * | 2013-03-08 | 2016-07-19 | Samsung Electronics Co., Ltd. | Micro-ops including packed source and destination fields |
WO2014190263A2 (en) * | 2013-05-24 | 2014-11-27 | Coherent Logix, Incorporated | Memory-network processor with programmable optimizations |
CN106293627B (zh) * | 2016-07-27 | 2019-01-11 | 珠海市杰理科技股份有限公司 | 寄存器调用及调用指令编码的方法、装置 |
KR102593320B1 (ko) | 2016-09-26 | 2023-10-25 | 삼성전자주식회사 | 전자 장치, 프로세서 및 그 제어 방법 |
US11593110B2 (en) * | 2021-01-07 | 2023-02-28 | Texas Instruments Incorporated | Instruction packing scheme for VLIW CPU architecture |
CN115113933B (zh) * | 2022-08-25 | 2022-11-15 | 旋智电子科技(上海)有限公司 | 用于加速数据运算的装置 |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5333280A (en) * | 1990-04-06 | 1994-07-26 | Nec Corporation | Parallel pipelined instruction processing system for very long instruction word |
CA2045773A1 (en) * | 1990-06-29 | 1991-12-30 | Compaq Computer Corporation | Byte-compare operation for high-performance processor |
EP0474297B1 (en) * | 1990-09-05 | 1998-06-10 | Koninklijke Philips Electronics N.V. | Very long instruction word machine for efficient execution of programs with conditional branches |
JPH05233281A (ja) * | 1992-02-21 | 1993-09-10 | Toshiba Corp | 電子計算機 |
US6002880A (en) | 1992-12-29 | 1999-12-14 | Philips Electronics North America Corporation | VLIW processor with less instruction issue slots than functional units |
EP0605927B1 (en) | 1992-12-29 | 1999-07-28 | Koninklijke Philips Electronics N.V. | Improved very long instruction word processor architecture |
WO1994027216A1 (en) * | 1993-05-14 | 1994-11-24 | Massachusetts Institute Of Technology | Multiprocessor coupling system with integrated compile and run time scheduling for parallelism |
ES2148492T3 (es) * | 1994-01-10 | 2000-10-16 | Dow Chemical Co | Ordenador de arquitectura harvard superescalar masivamente multiplexado. |
US5600810A (en) * | 1994-12-09 | 1997-02-04 | Mitsubishi Electric Information Technology Center America, Inc. | Scaleable very long instruction word processor with parallelism matching |
US6401190B1 (en) * | 1995-03-17 | 2002-06-04 | Hitachi, Ltd. | Parallel computing units having special registers storing large bit widths |
US5669001A (en) * | 1995-03-23 | 1997-09-16 | International Business Machines Corporation | Object code compatible representation of very long instruction word programs |
JP2931890B2 (ja) * | 1995-07-12 | 1999-08-09 | 三菱電機株式会社 | データ処理装置 |
JP3623840B2 (ja) * | 1996-01-31 | 2005-02-23 | 株式会社ルネサステクノロジ | データ処理装置及びマイクロプロセッサ |
US5826054A (en) * | 1996-05-15 | 1998-10-20 | Philips Electronics North America Corporation | Compressed Instruction format for use in a VLIW processor |
WO1998006042A1 (en) * | 1996-08-07 | 1998-02-12 | Sun Microsystems, Inc. | Wide instruction unpack method and apparatus |
JP3737573B2 (ja) | 1996-09-09 | 2006-01-18 | 株式会社東芝 | Vliwプロセッサ |
US5805850A (en) * | 1997-01-30 | 1998-09-08 | International Business Machines Corporation | Very long instruction word (VLIW) computer having efficient instruction code format |
US5819058A (en) * | 1997-02-28 | 1998-10-06 | Vm Labs, Inc. | Instruction compression and decompression system and method for a processor |
JP3790607B2 (ja) * | 1997-06-16 | 2006-06-28 | 松下電器産業株式会社 | Vliwプロセッサ |
US6879341B1 (en) * | 1997-07-15 | 2005-04-12 | Silverbrook Research Pty Ltd | Digital camera system containing a VLIW vector processor |
JP3414209B2 (ja) * | 1997-07-30 | 2003-06-09 | 松下電器産業株式会社 | プロセッサ |
JP3327818B2 (ja) * | 1997-08-29 | 2002-09-24 | 松下電器産業株式会社 | プログラム変換装置及び記録媒体 |
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 |
US6366999B1 (en) * | 1998-01-28 | 2002-04-02 | Bops, Inc. | Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution |
US6446190B1 (en) * | 1998-03-12 | 2002-09-03 | Bops, Inc. | Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor |
USRE41012E1 (en) * | 1998-03-12 | 2009-11-24 | Altera Corporation | Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor |
JP3541669B2 (ja) * | 1998-03-30 | 2004-07-14 | 松下電器産業株式会社 | 演算処理装置 |
JP3601758B2 (ja) * | 1998-08-07 | 2004-12-15 | 富士通株式会社 | 情報処理装置及びその処理方法 |
WO2000022511A1 (en) * | 1998-10-09 | 2000-04-20 | Koninklijke Philips Electronics N.V. | Vector data processor with conditional instructions |
JP3830683B2 (ja) * | 1998-12-28 | 2006-10-04 | 富士通株式会社 | Vliwプロセッサ |
US6654870B1 (en) * | 1999-06-21 | 2003-11-25 | Pts Corporation | Methods and apparatus for establishing port priority functions in a VLIW processor |
US6457173B1 (en) * | 1999-08-20 | 2002-09-24 | Hewlett-Packard Company | Automatic design of VLIW instruction formats |
US6704857B2 (en) * | 1999-12-23 | 2004-03-09 | Pts Corporation | Methods and apparatus for loading a very long instruction word memory |
US6892380B2 (en) * | 1999-12-30 | 2005-05-10 | Texas Instruments Incorporated | Method for software pipelining of irregular conditional control loops |
US6889242B1 (en) * | 2001-06-29 | 2005-05-03 | Koninklijke Philips Electronics N.V. | Rounding operations in computer processor |
US6886091B1 (en) * | 2001-06-29 | 2005-04-26 | Koninklijke Philips Electronics N.V. | Replacing VLIW operation with equivalent operation requiring fewer issue slots |
JP3564445B2 (ja) * | 2001-09-20 | 2004-09-08 | 松下電器産業株式会社 | プロセッサ、コンパイル装置及びコンパイル方法 |
US6779089B2 (en) * | 2002-01-09 | 2004-08-17 | Intel Corporation | Locked content addressable memory for efficient access |
EP1378824A1 (en) * | 2002-07-02 | 2004-01-07 | STMicroelectronics S.r.l. | A method for executing programs on multiple processors and corresponding processor system |
US6865662B2 (en) * | 2002-08-08 | 2005-03-08 | Faraday Technology Corp. | Controlling VLIW instruction operations supply to functional units using switches based on condition head field |
JP2004005733A (ja) | 2003-07-31 | 2004-01-08 | Matsushita Electric Ind Co Ltd | Vliwプロセッサ |
US7370136B2 (en) * | 2005-01-26 | 2008-05-06 | Stmicroelectronics, Inc. | Efficient and flexible sequencing of data processing units extending VLIW architecture |
US7401329B2 (en) * | 2005-04-25 | 2008-07-15 | Arm Limited | Compiling computer programs to exploit parallelism without exceeding available processing resources |
US7739481B1 (en) * | 2007-09-06 | 2010-06-15 | Altera Corporation | Parallelism with variable partitioning and threading |
-
2004
- 2004-02-12 JP JP2004034660A patent/JP4283131B2/ja not_active Expired - Fee Related
- 2004-09-27 US US10/949,230 patent/US7383422B2/en active Active
- 2004-12-30 CN CNB2004100817555A patent/CN1327340C/zh not_active Expired - Lifetime
-
2008
- 2008-04-15 US US12/103,372 patent/US8738892B2/en active Active
-
2014
- 2014-04-08 US US14/247,735 patent/US9697004B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9697004B2 (en) | 2017-07-04 |
CN1327340C (zh) | 2007-07-18 |
US7383422B2 (en) | 2008-06-03 |
JP2005227942A (ja) | 2005-08-25 |
US20050182916A1 (en) | 2005-08-18 |
US20140223142A1 (en) | 2014-08-07 |
CN1655118A (zh) | 2005-08-17 |
US8738892B2 (en) | 2014-05-27 |
US20080201560A1 (en) | 2008-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4283131B2 (ja) | プロセッサ及びコンパイル方法 | |
US6490673B1 (en) | Processor, compiling apparatus, and compile program recorded on a recording medium | |
KR100705507B1 (ko) | 확장가능한 프로세서 아키텍처에 진보된 명령어들을부가하는 방법 및 장치 | |
US9383999B2 (en) | Conditional compare instruction | |
US7386844B2 (en) | Compiler apparatus and method of optimizing a source program by reducing a hamming distance between two instructions | |
JP6849274B2 (ja) | 融合された単一のサイクルのインクリメント−比較−ジャンプを実施するための命令及びロジック | |
US6948158B2 (en) | Retargetable compiling system and method | |
CN104115113B (zh) | 用于循环剩余掩码指令的系统、装置和方法 | |
JP2018500657A5 (ja) | ||
US9965275B2 (en) | Element size increasing instruction | |
JP5559297B2 (ja) | ハードウェアエンドループ情報の命令へのコード化 | |
WO2015114305A1 (en) | A data processing apparatus and method for executing a vector scan instruction | |
CN104335166A (zh) | 用于执行混洗和操作(混洗-操作)的系统、装置和方法 | |
US8707013B2 (en) | On-demand predicate registers | |
JP2015201119A (ja) | コンパイルプログラム、コンパイル方法およびコンパイル装置 | |
US6857063B2 (en) | Data processor and method of operation | |
JP3737573B2 (ja) | Vliwプロセッサ | |
JP4721975B2 (ja) | コンパイラ装置およびコンパイル方法 | |
JP4006887B2 (ja) | コンパイラ、プロセッサおよび記録媒体 | |
Jeroen van Straten | ρ-VEX user manual |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080916 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081021 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081118 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090107 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20090127 |
|
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: 20090217 |
|
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: 20090318 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4283131 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: 20120327 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120327 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130327 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130327 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140327 Year of fee payment: 5 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |