[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5198847B2 - 二重経路プロセッサの処理制御のための装置および方法 - Google Patents

二重経路プロセッサの処理制御のための装置および方法 Download PDF

Info

Publication number
JP5198847B2
JP5198847B2 JP2007505612A JP2007505612A JP5198847B2 JP 5198847 B2 JP5198847 B2 JP 5198847B2 JP 2007505612 A JP2007505612 A JP 2007505612A JP 2007505612 A JP2007505612 A JP 2007505612A JP 5198847 B2 JP5198847 B2 JP 5198847B2
Authority
JP
Japan
Prior art keywords
instruction
instructions
control
computer processor
decoding 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.)
Active
Application number
JP2007505612A
Other languages
English (en)
Other versions
JP2007531133A (ja
JP2007531133A5 (ja
Inventor
サイモン・ノウルズ
Original Assignee
イセラ・インコーポレーテッド
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 イセラ・インコーポレーテッド filed Critical イセラ・インコーポレーテッド
Publication of JP2007531133A publication Critical patent/JP2007531133A/ja
Publication of JP2007531133A5 publication Critical patent/JP2007531133A5/ja
Application granted granted Critical
Publication of JP5198847B2 publication Critical patent/JP5198847B2/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
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • 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/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Hardware Redundancy (AREA)

Description

本発明はコンピュータプロセッサ、同じ動作の方法、及びコンピュータのための命令セットを備えるコンピュータプログラム製品に関する。
コンピュータプロセッサの速度を上げるために、先行技術アーキテクチャは、命令を実行するために、二重実行経路(dual execution path)を使用している。二重実行経路プロセッサは、プロセッサ速度を上げるために、機能の並行処理を使用して、単一命令複数データ(SIMD)原則に従い機能することができる。
しかしながら、二重実行経路及びSIMD処理の使用にもかかわらず、プロセッサ速度を増加させる継続的な必要性がある。典型的な二重実行経路プロセッサは2つの実質的に同一のチャンネルを使用し、その結果それぞれのチャンネルは制御コードとデータ経路コードを取り扱う。既知のプロセッサが32ビット標準符号化と16ビットの「深い(dense)」符号化の組合せをサポートする一方で、そのような方式は、16ビットフォーマットの利用できる少ないビットによる意味内容の不足を含むいくつかの不都合に苦しむ。
さらに、従来の多目的デジタル信号プロセッサは、例えば畳み込み、高速フーリエ変換、トレリス/ビタビ符号化、相互関係、有限インパルス応答フィルタ、及びその他の機能のような専門化された機能を実行することを具備する多目的の特定アルゴリズムのアプリケーションに適合できない。
本発明による一実施形態において、コンピュータプロセッサが提供される。上記コンピュータプロセッサは、(a)メモリからそれぞれが複数の命令を備える命令パケットの流れを復号する復号ユニットと、(b)複数の機能ユニットを備え、制御処理機能を実行可能である第1処理チャンネルと、(c)複数の機能ユニットを備え、データ処理機能を実行可能である第2処理チャンネルとを備え、上記復号ユニットは命令パケットを受信し、命令パケットが(i)複数の制御命令か、(ii)1以上のいずれかがデータ処理命令である複数の命令を定義するかを検出し、上記復号ユニットが上記命令パケットが複数の制御命令を備えることを検出するときに、上記制御命令がプログラム順の実行のために第1処理チャンネルに提供される。
関連した実施形態において、上記復号ユニットが、3つの制御命令を備える命令パケットを検出可能であり、それらが命令パケットに現れる順序で3つの制御命令のそれぞれを実行するように制御プロセスを制御可能である可能性がある。また、上記復号ユニットが、等しい長さの複数の制御命令を具備する命令パケットを検出可能であるか、または、18ビットと24ビットとの間のビット長の制御命令を命令パケットの範囲内で検出可能であるか、特に、それぞれ21ビットのビット長を有する複数の制御命令を命令パケットの範囲内で検出可能である可能性がある。上記復号ユニットが、64ビットのビット長の命令パケットを受信し、復号可能である可能性がある。
更なる関連した実施形態において、上記復号ユニットが、上記命令パケットの中に少なくとも1つのデータ処理命令がいつ存在するかを検出可能であり、それに応答して、関連するデータにデータ処理チャンネルへ提供させることを可能とする可能性がある。また、上記復号ユニットが、命令パケットが少なくとも1以上のデータ処理命令と、メモリアクセス命令、制御命令、及びデータ処理命令の1以上から選択された更なる命令とを備えることを検出可能である可能性がある。上記少なくとも1つのデータ処理命令と上記更なる命令が同時に実行される可能性がある。上記第2処理チャンネルが、データ処理機能の実行のために専用とされ、データ処理命令がアセンブラ言語で提供される可能性がある。上記制御処理機能が第1の予め定められたビット幅までオペランド上で実行され、上記データ処理機能が第2の予め定められたビット幅までデータ上で実行され、上記第2の予め定められたビット幅が上記第1の予め定められたビット幅より大きい可能性がある。
更なる関連した実施形態において、上記第1処理チャンネルが、制御レジスタファイル、制御実行ユニット、分岐実行ユニット、及びロード/ストアユニットの1以上から選択されるユニットを備える可能性がある。上記第2処理チャンネルが設定可変なデータ実行ユニットを具備するデータ実行パスを備える可能性がある。また、上記第2処理チャンネルが固定データ実行ユニットを具備するデータ実行パスを備える可能性がある。使用中、1以上の上記設定可変及びデータ実行ユニットが、単一命令複数データ原則に従い機能する可能性がある。上記データ処理チャネルが1以上のデータレジスタファイルとロード/ストアユニットを備える可能性がある。単一のロード/ストアユニットが制御処理パスおよびそれぞれのポートによるデータ処理チャンネルの両方によりアクセスされる可能性がある。
更なる関連した実施形態において、上記復号ユニットが、少なくとも1つのデータ処理命令を備える命令パケットを検出可能であり、上記少なくとも1つのデータ処理命令のビット長が30ビットと38ビットの間である可能性があり、例えばビット長が34ビットである可能性がある。また、上記復号ユニットが、データ処理機能とメモリアクセス命令とを備える命令パケットを検出可能である可能性がある。上記メモリアクセス命令のビット長が28ビットである可能性がある。また、上記復号ユニットが、データ処理命令と制御処理命令とを備える命令パケットを検出可能である可能性がある。上記復号ユニットが、Cコードまたはその変形で制御処理命令を検出可能である可能性がある。また、上記復号ユニットが、アセンブラ言語のデータ処理命令を検出するように操作可能である可能性がある。
本発明による別の実施形態において、それぞれが複数の機能ユニットを有する第1および第2処理チャンネルを備え、上記第1処理チャンネルが制御処理機能の実行を可能とし、上記第2処理チャンネルがデータ処理機能の実行を可能とするコンピュータを動作する方法が提供される。上記方法は、(a)メモリから1連の命令パケットを受信し、上記命令パケットのそれぞれが機能を定義する複数の命令を備え、(b)上記命令パケットが(i)複数の制御命令か、(ii)少なくとも1つのデータ処理命令を定義するかどうかを決定することにより順番にそれぞれの命令パケットを復号し、上記復号ユニットが上記命令パケットが複数の制御命令を備えることを検出するときに、上記複数の制御命令を上記第1処理チャンネルに連続して実行するために提供する。
本発明による別の実施形態において、上記の方法に従いコンピュータに動作させるプログラムコード手段を備えるコンピュータプログラム製品が提供される。
本発明による更なる実施形態において、上記の方法に従いコンピュータに動作させる1連の命令を備えるコンピュータプログラムコードが提供される。
本発明による別の実施形態において、順次実行する複数の制御命令をそれぞれ備える命令パケットの第1クラスと、少なくともデータ処理命令と同時に実行する更なる命令を備える命令パケットの第2クラスとを具備し、上記更なる命令がメモリアクセス命令、制御命令、及びデータ処理命令の1以上から選択されることを特徴とするコンピュータ用の命令セットが開示される。
本発明のさらなる効果と新しい特徴は、以下の記載の一部で述べられ、以下に添付された図面の精査と同時に、当業者によりある程度明らかになるか、あるいは本発明の実施により学ばれる可能性がある。
本発明のさらなる理解のために、そして同じ内容をどのように実行に移すかを示すために、参照は添付の図面に、例証のためだけにここでなされる。
図1は、本発明の一実施形態による非対称の二重経路コンピュータプロセッサのブロック図である。図1のプロセッサは、1つの命令流れ100の処理を2つの異なるハードウェア実行経路、すなわち制御コード処理のために使用される制御実行経路102と、データコード処理のために使用されるデータ実行経路103に分配する。2つの実行経路102,103のデータ幅、オペレータ、及び他の特徴は、制御コードとデータ経路コードの異なる特徴に従い異なる。典型的に、制御コードはより少なく、より狭いレジスタを支持し、並行処理するのが難しく、そして典型的にしかし排他的でなくCコードや別の高級言語で記載され、そして通常そのコード密度はその速度パフォーマンスより重要である。対照的に、データ経路コードは典型的に広いレジスタの大きなファイルを支持し、非常に並行処理がしやすく、アセンブリ言語で記載され、そしてそのパフォーマンスはそのコード密度より重要である。図1のプロセッサにおいて、2本の異なる実行経路102と103は、コードの2つの異なる形式を取り扱うために使用され、それぞれの端部には、例えば制御レジスタファイル104とデータレジスタファイル105のような、実行経路自身の構造上のレジスタファイルが備えられる。これらはレジスタの幅と数で差別化され、制御レジスタは一例として32ビットのビット数より狭い幅であり、そしてデータレジスタは一例として64ビットのより広い幅である。その2つの実行経路は、それらがそれぞれ異なる特別の機能を実行するという事実のために異なるビット幅であるという点により、プロセッサは非対称である。
図1のプロセッサにおいて、命令流れ100は、一連の命令パケットから設定される。提供されるそれぞれの命令パケットは、さらに以下で記載されるように、制御命令をデータ命令から切り離す命令復号ユニット101により復号される。制御実行経路102は命令流れのために制御流れ機能を取り扱い、分岐ユニット106、実行ユニット107、及びこの実施形態ではデータ実行経路103と共有されるロードストアユニット108を使用して機械の状態レジスタを管理する。プロセッサの制御側だけは、C、C++のコンパイラ、あるいはJAVA(登録商標)言語、あるいは別の高級言語コンパイラのようなコンパイラに見えなければならない。制御側の範囲内で、分岐ユニット106と実行ユニット107の機能は、当業者に知られた従来のプロセッサ設計による。
固定実行ユニット109と設定可変の深い実行ユニット110の両方において、データ実行経路103は、単一命令複数データ(SIMD)の並行処理を採用する。さらに以下で記載されるように、設定可変の深い実行ユニット110は処理の深さの値を提供し、そして、従来のSIMDプロセッサにより使用される幅の値を加えて、命令当たりの仕事を増加させる。
もし復号された命令が制御命令を定義するならば、それは機械の制御実行経路上で例えば分岐ユニット106、実行ユニット107、及びロードストアユニット108のような、適切な機能ユニットに適用される。もし復号された命令が固定あるいは設定可変のいずれかのデータ処理機能で命令を定義するならば、それはデータ処理実行経路に提供される。命令パケットのデータ命令部分の範囲内で、指定されたビットは命令が固定あるいは設定可変データ処理命令であるかどうかを示し、設定可変命令の場合、更に指定されたビットは設定情報を定義する。復号されたデータ処理命令の下位形式に従い、データは機械のデータ処理経路の固定あるいは設定可変実行下位経路に提供される。
ここで「設定可変」は、複数のあらかじめ定義された(「疑似固定」)オペレータ設定の中からオペレータ設定を選択する能力を示す。オペレータの疑似固定設定は、オペレータ(i)にある形式の機能を実施させ、または(ii)にある方法で関連要素と相互接続させ、または(iii)に上記(i)と(ii)の組合せとさせるために効果的である。実際には、選択された疑似固定設定は、一度に多くのオペレータ要素の動作と相互接続性を決定する可能性がある。それはデータ経路と関連して設定の切り替えを制御することもできる。好ましい実施形態において、少なくとも複数の疑似固定オペレータ設定のいくつかは、さらに以下で示されるように、データ処理命令の機能コード部分により選択可能である。またこの実施形態によれば、「設定可変命令」は、例えば4ビット以上のマルチビット値のレベルまたはワードのレベルのようなマルチビット値のレベルで、カスタマイズされた機能の実施を許可する。
機械のそれぞれの異なる側で実施される、制御とデータ処理命令がメモリアクセス(ロード/ストア)と基本的な算術演算を定義することができることが注目される。制御機能のための入力/オペランドは、制御レジスタファイル104に提供し、あるいは提供される可能性がある一方で、データ処理機能のためのデータ/オペランドはレジスタファイル105に提供し、あるいは提供される可能性がある。
本発明の一実施形態によれば、それぞれのデータ処理機能の少なくとも1つの入力は、ベクトルである可能性がある。この点で、設定可変データ経路の設定可変オペレータや切り替え回路は、実施される機能の性質やその間の相互接続性によりベクトル機能を実施するために設定可変であると考えられる。例えば、データ処理機能への64ビットベクトル入力は、4つの16ビットスカラオペランドを具備する可能性がある。ここで、「ベクトル」はスカラオペランドの組み合わせである。ベクトル算術は、複数のスカラオペランド上で実施される可能性があり、スカラ要素の方向(steering)、動き(movement)、及び置換(permutation)を具備する可能性がある。ベクトル機能の全てのオペランドが、ベクトルである必要があるというわけではなく、例えばベクトル機能には入力としてスカラと少なくとも1つのベクトルを有する可能性があり、スカラかベクトルのいずれかである結果を出力する可能性がある。
ここで、「制御命令」は、プログラムフロー、分岐、及びアドレス生成、しかしデータ処理ではない、に使用される命令を具備する。「データ処理命令」は、論理演算のための命令、または少なくとも1つの入力がベクトルである算術演算を具備する。データ処理命令は、複数のデータ命令で、例えばSIMD処理において、または、データエレメントの短いベクトルをより広くする処理において、機能する可能性がある。制御命令の重要な機能と、今述べられたデータ処理命令は重複しないが、共通性は両方の形式のコードが論理及びスカラ算術能力を有するということである。
図2は、図1のプロセッサのために、3形式の命令パケットを示す。それぞれの形式の命令パケットは、長さ64ビットである。命令パケット211は、深い制御コードのための3スカラ形式であって、3つの21ビット制御命令(c21)を具備する。命令パケット212と213は、データ経路コードの並行実行のためのLIW(長い命令ワード)形式である。この例では、それぞれの命令パケット212,213は2つの命令を具備するが、異なる数が必要に応じて具備される可能性がある。命令パケット212は、34ビットのデータ命令(d34)と28ビットの記憶命令(m28)を具備し、データ側ロードストア機能(上記m28命令)とデータ側算術(上記d34命令)の並行実行のために使用される。メモリクラス命令(m28)は、制御側からのアドレスを使用して、プロセッサの制御側あるいはデータ側から、読み込まれあるいは書き込まれることができる。命令パケット213は、34ビットのデータ命令(d34)と21ビット制御命令(c21)を具備し、例えば制御側算術、分岐、またはロードストア機能のような制御側機能(上記c21命令)とデータ側算術(上記d34命令)の並行実行のために使用される。
図1の実施形態の命令復号ユニット101は、どの形式のパケットが復号されているかについて決定するそれぞれの命令パケットの、最初の識別ビットまたは予め定められたビット位置の他の指定の識別ビットを使用する。例えば、図2で示すように、最初のビット「1」は、命令パケットが3つの制御命令を有するスカラ制御命令形式であることを示すが、最初のビット「01」と「00」が、パケット212のデータおよびメモリ命令、あるいはパケット213のデータ及び制御命令である、形式212及び213の命令パケットを示す。それぞれの命令パケットの最初のビットを復号した後、図1の復号ユニット101は、命令パケットの上記形式に従い、制御実行経路102かデータ実行経路103のいずれかに適切にそれぞれのパケットの命令を渡す。
図2の命令パケットを実行するために、図1の実施形態のプロセッサの命令復号ユニット101は、メモリからプログラムパケットを連続して取り出し、上記プログラムパケットは連続して実行される。命令パケットの範囲内で、パケット211の命令は、最初に実行される64ビットのワードの最も重要でない終わりの21ビットの制御命令、次いで21ビットの制御命令、次いで最も重要な21ビットの制御命令で終わる順で、連続して実行される。命令パケット212と213の範囲内で、上記命令は同時に実行されることができる。これは、必ずしも本発明による実施形態でなければならないというわけではない。従って、図1の実施形態のプロセッサのプログラム順序において、プログラムパケットは連続して実行されるが、パケットの範囲内の命令は、パケット形式211のものは連続して、あるいはパケット形式212と213のものは同時に、のいずれかで実行されることを可能とする。以下では、形式212と213の命令パケットは、1メモリと1データ命令、及び1制御命令と1データ命令をそれぞれ具備するMD及びCDパケットとして簡略化される。
21ビット制御命令の使用において、図1の実施形態は、他の長さの命令を有するプロセッサにおいて、特にデータ命令のための32ビット標準符号化と制御コードのための16ビットの「深い」符号化との組み合わせを提供するプロセッサにおいて、発見されるかなりの不都合を克服する。このような二重16/32ビットのプロセッサにおいて、分岐、アドレス取得、あるいはその他の手段による符号化方式間で切り替える手段により、それぞれの命令のための二重符号化を使用すること、または2つの別の復号器を使用することに起因する冗長性が存在する。本発明の一実施形態によれば、この冗長性は、全ての制御命令に1つの21ビット長を使用することにより取り除かれる。さらにまた、21ビット制御命令の使用は、16ビットの「深い」符号化スキームの意味内容の不足に起因する不都合を取り除く。意味内容の不足のため、一般的に16ビットスキームを使用するプロセッサは、設計の譲歩のいくらかの混合を必要とする。例えば、コピーによる対応するコード膨張による、2オペランドの有害な機能の使用、流出/十分のコードの膨張、あるいはウインドウポインタ操作による、レジスタファイルの下位セットへのウインドウ表示のアクセスの使用、あるいは全ての機能が極めて少ない利用できる16ビットフォーマットのオペコードビットにより表現される訳ではないので、32ビットフォーマットへしばしば復帰すること等である。本発明の一実施形態において、これらの不都合は、21ビット制御命令の使用により軽減される。
本発明の一実施形態によれば、多種多様な命令が使用される可能性がある。例えば、命令符号は以下の表1に示すいずれかである可能性があり、ここではCフォーマット、Mフォーマット、及びDフォーマットは、それぞれ制御、メモリアクセス、データフォーマットを意味する。
Figure 0005198847
また本発明の一実施形態によれば、Cフォーマット命令は全てSISD(単一命令単一データ)機能を提供するが、MフォーマットとDフォーマット命令はSISDかSIMD機能のいずれかを提供する。例えば、制御命令は、一般的な算術、比較、及び論理命令、制御フロー命令、メモリロード/ストア命令、及びその他を提供する可能性がある。データ命令は、一般的な算術、シフト、論理、及び比較命令、シャッフル、ソート、バイト拡張、順序変換命令、線形フィードバックシフトレジスタ命令、及び以下で記載される設定可変の深い実行装置110を介するユーザー定義命令を提供する可能性がある。メモリ命令は、メモリロード/ストア、コピーは、データレジスタに制御レジスタを選択されたコピー、データレジスタに制御レジスタを放送するコピー、及び差し迫ったレジスタ命令を提供する可能性がある。
本発明の一実施形態によれば、図1のプロセッサは、第1の固定データ実行経路と第2の設定可変データ実行経路を特徴とする。第1データ経路は、従来のSIMD処理設計と同様の方法で、通路に分配される固定SIMD実行ユニットを有する。第2データ経路は、設定可変の深い実行ユニット110を有する。「深い実行」は、レジスタファイルに結果を返信する前に、1度発行された命令により提供されるデータで複数の連続的な機能を実行するプロセッサの能力を示す。深い実行の1つの例は、1回の命令からのデータで2つの機能(1つの乗算と1つの加算)を実行する従来のMAC機能(乗じる、及び蓄積する)に見られ、それゆえ順位2の深さを有する。深い実行は、結果出力の数と等しい入力オペランドの数により特徴づけられ、または同等に入力結合価(valency-in)が出力結合価(valency-out)に等しい。このように、例えば、1つの結果を生ずる従来の2オペランドの加算は、オペランドの数が結果の数と等しくないので、深い実行の例ではないが、反対に、畳み込み、高速フーリエ変換、トレリス/ビタビ符号化、相関器(correlators)、有限インパルス応答フィルタ、及びその他の信号処理アルゴリズムは、深い実行の例である。一般的にビットレベルで、そして、メモリマップの方法において、アプリケーションに特有のデジタル信号処理(DSP)アルゴリズムは、深い実行を実行する。しかしながら、従来のレジスタマップされた多目的DSPのものは、深い実行を実行せず、その代わりにMAC機能において、最高でも順序2の濃さで命令を実行する。対照的に、図1のプロセッサは、直接2より大きい順序のワードレベルの設定可変命令の深い実行を可能とするレジスタマップの多目的プロセッサを提供する。図1のプロセッサにおいて、深い実行命令の性質、すなわち実行される数学的機能のグラフは、命令そのものにおいて、設定情報により、調節されあるいはカスタマイズされることを可能とする。好ましい実施形態において、フォーマット命令は、設定情報に割り当てられるビット位置を具備する。この能力を提供するために、深い実行ユニット110は、それぞれのアプリケーションに適合するために、アップロードされることを可能とする、オペレータモード、相互接続、及び定数を意味する設定可変実行資源を有する。深い実行は、並行実行に深さの大きさを加える。そして、それはSIMDとLIW処理の以前の概念により提供される幅の大きさに対して直角であり、したがってそれは多目的プロセッサの命令対仕事率を増加するための更なる大きさを表現する。
本発明の一実施形態によれば、図3は設定可変の深い実行ユニット310の設定要素を示す。図1に示すように、設定可変の深い実行ユニット110はデータ実行経路103の部分であり、したがって、図2のMD及びCDの命令パケットからデータ側命令により命令される可能性がある。図3の命令314とオペランド315は、図1の命令復号ユニット101とデータレジスタファイル105から深い実行ユニット310に提供される。命令314のマルチビット設定コードは制御マップ316にアクセスするのに使用され、それはマルチビットコードを上記深い実行ユニットの設定可変オペレータの設定信号の比較的複雑なセットに拡大する。上記制御マップ316は、例えば、参照テーブルとして具体化される可能性がある。そこでは上記命令の異なる可能なマルチビットコードは、深い実行ユニットの異なる可能なオペレータ設定にマップされる。制御マップ316の参照テーブルの参照結果に基づき、クロスバー相互接続317は、マルチビット命令コードにより示されるオペレータ設定を実行するのに必要などんなものでも配置し、オペレータ318〜321のセットを設定する。例えば、上記オペレータは、乗算オペレータ318、算術論理ユニット(ALU)オペレータ319、状態オペレータ320、あるいはクロス通路交換器321を具備する可能性がある。一実施形態において、深い実行ユニットは、15のオペレータ、すなわち1つの乗算オペレータ318、8つのALUオペレータ319、4つの状態オペレータ320、及び2つのクロス通路交換器321を具備する。他の数のオペレータも可能である。深い実行ユニットに提供されるオペランド315は、例えば、2つの16ビットオペランドである可能性があり、これらは、適切なオペレータ318〜321にオペランドを提供する可能性のある第2クロスバー相互接続322に提供される。第2クロスバー相互接続322もオペレータ318〜322から中間結果のフィードバック324を受信し、それは次の順番で第2クロスバー相互接続322により適切なオペレータ318〜321にも提供される可能性がある。第3クロスバー相互接続323は、上記オペレータ318〜321からの結果を多重化し、最終結果325を出力する。様々な制御信号は、オペレータを設定するのに使用され、例えば、図3の実施形態の制御マップ316は、1つの参照テーブルとして必ずしも具体化される必要があるわけではなく、一連の2以上の縦列の参照テーブルとして具体化される可能性がある。第1参照テーブルのエントリは所定のマルチビット命令コードから第2参照テーブルを示すことができれば、それにより複雑なオペレータ設定のためのそれぞれの参照テーブルで必要とされる記録の量を減少できる。例えば、第1参照テーブルが設定カテゴリーのライブラリに組織されることができれば、その結果複数のマルチビット命令コードは、特定の設定をグループのそれぞれのマルチビットコードに提供する以降の参照テーブルを示しているそれぞれのグループとともに第1参照テーブルに集められる。
図3の実施形態によれば、上記オペレータは様々なオペレータクラスに有利に予め設定される。実際には、これは配線接続の戦略計画レベルで達成される。このアプローチの特徴は、それがより少ない予め定義された設定が記憶される必要があることを意味し、その制御回路がより単純にできることを意味する。例えば、オペレータ318が乗算オペレータのクラスの中で予め設定され、オペレータ319は、ALUオペレータとして予め設定され、オペレータ320は、状態オペレータとして予め設定され、そしてオペレータ321はクロス通路交換器として予め設定され、そして他の予め設定されたオペレータクラスが可能である。しかしながら、たとえオペレータのクラスが予め設定されるとしても、命令に少なくとも、所定のアルゴリズムを実施する特定の設定の最終的配置のための、(i)それぞれのクラス内のオペレータの連結性、(ii)その他のクラスからのオペレータとの連結性、及び(iii)任意の関連する切換手段の連結性、を取り決めることを可能とするように実行時の柔軟性が存在する。
上述は何が発明を実施する最良の形態であり必要に応じた他の方法であると考えられるかについて述べる一方で、本発明が好ましい実施形態のこの記載で明らかにされる特定の装置設定または方法段階に限定されてはならないことを熟練した読者は認める。当業者は本発明がアプリケーションの幅広い範囲を有し、実施形態が発明の概念から離れることなく、広範囲にわたる異なる実施と修正の余地があることを認める。特に、ここに述べられる典型的なビット幅は制限することを目的とせず、半ワード、ワード、長さ等と呼ばれるビット幅の任意の選択も制限しない。
本発明の一実施形態による非対称二重実行経路コンピュータプロセッサのブロック図である。 本発明の一実施形態による図1のプロセッサのための命令の典型的なクラスを示す図である。 本発明の一実施形態による設定可変の深い実行装置の設定要素を示す概略図である。
符号の説明
101 命令復号ユニット
102 制御実行経路
103 データ実行経路
104 制御レジスタファイル
105 データレジスタファイル
106 分岐ユニット
107 実行ユニット
108 ロードストアユニット
109 SIMD固定実行ユニット
110 設定可変の深い実行ユニット

Claims (33)

  1. (a)メモリからそれぞれが複数の命令を備える命令パケットの流れを復号する復号ユニットと、
    (b)複数の機能ユニットを備え、プログラムフロー、分岐、及びアドレス生成に使用される制御命令に応答して、制御処理機能を実行可能である第1処理チャンネルと、
    (c)複数の機能ユニットを備え、データ処理機能を実行可能である第2処理チャンネルと
    を備え、
    上記復号ユニットは命令パケットを順次受信し、
    それぞれの命令パケットが
    (i)複数の制御命令を定義する第1クラスか、または、
    (ii)1以上のいずれかがデータ処理命令である複数の命令を定義する第2クラスかを検出し、
    上記復号ユニットが、命令パケットが第1又は第2クラスであることを検出するために、パケットにおける予め定められたビット位置の少なくとも1つの識別ビットを使用し、
    上記復号ユニットが上記命令パケットが複数の制御命令を備えることを検出するときに、上記制御命令が順次実行のために第1処理チャンネルに提供され、
    上記復号ユニットが命令パケットが第2クラスであることを検出するときに、上記複数の命令が同時に実行され、かつ、
    上記制御命令は上記データ処理命令より短いビット長を有する
    ことを特徴とするコンピュータプロセッサ。
  2. 上記復号ユニットが、3つの制御命令を備える命令パケットを検出可能であり、
    最も重要でない終わりと最も重要な終わりとの間の命令パケットにおける命令の位置で特定される順序で実行するために、3つの制御命令のそれぞれを供給可能であることを特徴とする上記請求項1に記載のコンピュータプロセッサ。
  3. 上記復号ユニットが、等しい長さの複数の制御命令を具備する命令パケットを検出可能であることを特徴とする上記請求項1又は2に記載のコンピュータプロセッサ。
  4. 上記復号ユニットが、18ビットと24ビットとの間のビット長の制御命令を命令パケットの範囲内で検出可能であることを特徴とする上記請求項3に記載のコンピュータプロセッサ。
  5. 上記復号ユニットが、それぞれ21ビットのビット長を有する複数の制御命令を命令パケットの範囲内で検出可能であることを特徴とする上記請求項4に記載のコンピュータプロセッサ。
  6. 上記復号ユニットが、64ビットのビット長の命令パケットを受信し、復号可能であることを特徴とする上記請求項1乃至5のいずれか1項に記載のコンピュータプロセッサ。
  7. 上記復号ユニットが、
    上記命令パケットの中に少なくとも1つのデータ処理命令が存在することを検出するときに、それに応答して、関連するデータを上記第2処理チャンネルへ提供させることを可能とすることを特徴とする上記請求項1乃至6のいずれか1項に記載のコンピュータプロセッサ。
  8. 上記復号ユニットが、上記第2クラスの命令パケットが少なくとも1以上のデータ処理命令と、メモリアクセス命令、制御命令、及びデータ処理命令の1以上から選択された更なる命令とを備えることを検出可能であることを特徴とする上記請求項1乃至7のいずれか1項に記載のコンピュータプロセッサ。
  9. 上記少なくとも1つのデータ処理命令と上記更なる命令が同時に実行されることを特徴とする上記請求項8に記載のコンピュータプロセッサ。
  10. 上記第2処理チャンネルが、データ処理機能の実行のために専用とされ、データ処理命令がアセンブラ言語で提供されることを特徴とする上記請求項1乃至9のいずれか1項に記載のコンピュータプロセッサ。
  11. 上記制御処理機能が第1の予め定められたビット幅までのオペランドに対して実行され、
    上記データ処理機能が第2の予め定められたビット幅までのデータに対して実行され、
    上記第2の予め定められたビット幅が上記第1の予め定められたビット幅より大きいことを特徴とする上記請求項1乃至10のいずれか1項に記載のコンピュータプロセッサ。
  12. 上記第1処理チャンネルが、制御レジスタファイル、制御実行ユニット、分岐実行ユニット、及びロード/ストアユニットの1以上から選択されるユニットを備えることを特徴とする上記請求項1乃至11のいずれか1項に記載のコンピュータプロセッサ。
  13. 上記第2処理チャンネルが構成可能なデータ実行ユニットを具備するデータ実行パスを備えることを特徴とする上記請求項1乃至12のいずれか1項に記載のコンピュータプロセッサ。
  14. 上記第2処理チャンネルが固定的なデータ実行ユニットを具備するデータ実行パスを備えることを特徴とする上記請求項1乃至13のいずれか1項に記載のコンピュータプロセッサ。
  15. 上記構成可能なデータ実行ユニットが、使用中単一命令複数データ原則に従い機能することを特徴とする上記請求項13に記載のコンピュータプロセッサ。
  16. 上記固定的なデータ実行ユニットが、使用中単一命令複数データ原則に従い機能することを特徴とする上記請求項14に記載のコンピュータプロセッサ。
  17. 上記第2処理チャネルが1以上のデータレジスタファイルとロード/ストアユニットを備えることを特徴とする上記請求項1乃至16のいずれか1項に記載のコンピュータプロセッサ。
  18. 単一のロード/ストアユニットが上記第1処理チャンネルおよびそれぞれのポートによる上記第2処理チャンネルの両方によりアクセスされることを特徴とする上記請求項1乃至17のいずれか1項に記載のコンピュータプロセッサ。
  19. 上記復号ユニットが、少なくとも1つのデータ処理命令を備える命令パケットを検出可能であり、上記少なくとも1つのデータ処理命令のビット長が30ビットと38ビットの間であることを特徴とする上記請求項1乃至18のいずれか1項に記載のコンピュータプロセッサ。
  20. 上記復号ユニットが、少なくとも1つのデータ処理命令を備える命令パケットを検出可能であり、上記少なくとも1つのデータ処理命令のビット長が34ビットであることを特徴とする上記請求項19に記載のコンピュータプロセッサ。
  21. 上記復号ユニットが、データ処理機能とメモリアクセス命令とを備える命令パケットを検出可能であることを特徴とする上記請求項1乃至20のいずれか1項に記載のコンピュータプロセッサ。
  22. 上記メモリアクセス命令のビット長が28ビットであることを特徴とする上記請求項21に記載のコンピュータプロセッサ。
  23. 上記復号ユニットが、データ処理命令と制御命令とを備える命令パケットを検出可能であることを特徴とする上記請求項1乃至22のいずれか1項に記載のコンピュータプロセッサ。
  24. 上記復号ユニットが、制御命令を検出可能であり、上記制御命令はCコードまたはその変形で書かれることを特徴とする上記請求項1乃至23のいずれか1項に記載のコンピュータプロセッサ。
  25. 上記復号ユニットが、アセンブラ言語のデータ処理命令を検出するように操作可能であることを特徴とする上記請求項1乃至24のいずれか1項に記載のコンピュータプロセッサ。
  26. それぞれが複数の機能ユニットを有する第1および第2処理チャンネルを備え、
    上記第1処理チャンネルが、プログラムフロー、分岐、及びアドレス生成に使用される制御命令に応答して、制御処理機能の実行を可能とし、
    上記第2処理チャンネルがデータ処理機能の実行を可能とし、
    (a)メモリから1連の命令パケットを受信し、上記命令パケットのそれぞれが機能を定義する複数の命令を備え、
    (b)上記命令パケットが(i)複数の制御命令を定義する第1クラスか、または、(ii)少なくとも1つのデータ処理命令を定義する第2クラスかどうかを決定することにより順番にそれぞれの命令パケットを復号し、
    上記復号ユニットが、命令パケットが第1又は第2クラスであることを検出するために、パケットにおける予め定められたビット位置の少なくとも1つの識別ビットを使用し、
    上記復号ユニットが上記命令パケットが複数の制御命令を備えることを検出するときに、上記複数の制御命令を上記第1処理チャンネルに連続して実行するために提供し、
    上記復号ユニットが命令パケットが第2クラスであることを検出するときに、上記複数の命令が同時に実行され、かつ、
    上記制御命令は上記データ処理命令より短いビット長を有することを特徴とするコンピュータの動作方法。
  27. コンピュータに上記請求項26に記載の方法を実行させるためのコンピュータプログラム。
  28. コンピュータに上記請求項26に記載の方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  29. メモリからそれぞれが複数の命令を備える命令パケットの流れを復号する復号ユニットと、
    複数の機能ユニットを備え、かつ、制御処理機能を実行可能である処理チャンネルと
    を備え、
    上記復号ユニットは、64ビットのビット長の命令パケットを受信し、かつ、復号可能であり、かつ、上記命令パケットが21ビットのビット長をそれぞれ有する3つの制御命令を定義するかどうかを検出可能であり、かつ、
    上記復号ユニットが上記命令パケットが3つのその制御命令を備えることを検出するときに、上記制御命令は、最も重要でない終わりと最も重要な終わりとの間の命令パケットにおける命令の位置で特定される順序での実行のために上記処理チャンネルに提供され、上記検出は、上記命令パケットにおいて識別ビットを使用することを特徴とするコンピュータプロセッサ。
  30. 上記処理チャンネルは、制御レジスタファイル、制御実行ユニット、分岐実行ユニット、及びロード/ストアユニットの1以上から選択されるユニットを備えることを特徴
    とする上記請求項29に記載のコンピュータプロセッサ。
  31. 処理チャンネルを備え、かつ、
    複数の機能ユニットを備えた制御処理機能を実行可能とし、
    (a)メモリから1連の命令パケットを受信し、上記命令パケットのそれぞれは機能を定義する複数の命令を備え、上記命令パケットは64ビットのビット長を有するパケットのクラスを具備し、
    (b)上記命令パケットが21ビットのビット長をそれぞれ有する3つの制御命令を定義するかどうかを決定することにより、順番にそれぞれの命令パケットを復号し、上記命令パケットにおいて識別ビットを使用し、上記復号ユニットが上記命令パケットが3つのその制御命令を備えることを検出するときに、上記複数の制御命令を上記第1処理チャンネルに最も重要でない終わりと最も重要な終わりとの間の命令パケットにおける命令の位置で特定される順序での実行のために提供することを特徴とするコンピュータの動作方法。
  32. コンピュータに上記請求項31に記載の方法を実行させるためのコンピュータプログラム。
  33. 上記請求項31に記載の方法に従いコンピュータに動作させる1連の命令を備えること
    を特徴とするコンピュータプログラ
JP2007505612A 2004-03-31 2005-03-22 二重経路プロセッサの処理制御のための装置および方法 Active JP5198847B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/813,628 2004-03-31
US10/813,628 US7949856B2 (en) 2004-03-31 2004-03-31 Method and apparatus for separate control processing and data path processing in a dual path processor with a shared load/store unit
PCT/GB2005/001059 WO2005096140A2 (en) 2004-03-31 2005-03-22 Apparatus and method for control processing in dual path processor

Publications (3)

Publication Number Publication Date
JP2007531133A JP2007531133A (ja) 2007-11-01
JP2007531133A5 JP2007531133A5 (ja) 2010-11-11
JP5198847B2 true JP5198847B2 (ja) 2013-05-15

Family

ID=34962961

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007505612A Active JP5198847B2 (ja) 2004-03-31 2005-03-22 二重経路プロセッサの処理制御のための装置および方法

Country Status (8)

Country Link
US (2) US7949856B2 (ja)
EP (2) EP1735700B1 (ja)
JP (1) JP5198847B2 (ja)
KR (1) KR20070026434A (ja)
CN (1) CN100472433C (ja)
CA (1) CA2560465A1 (ja)
TW (2) TWI413935B (ja)
WO (1) WO2005096140A2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047094B2 (en) * 2004-03-31 2015-06-02 Icera Inc. Apparatus and method for separate asymmetric control processing and data path processing in a dual path processor
US8484441B2 (en) * 2004-03-31 2013-07-09 Icera Inc. Apparatus and method for separate asymmetric control processing and data path processing in a configurable dual path processor that supports instructions having different bit widths
US7949856B2 (en) * 2004-03-31 2011-05-24 Icera Inc. Method and apparatus for separate control processing and data path processing in a dual path processor with a shared load/store unit
CN100456230C (zh) * 2007-03-19 2009-01-28 中国人民解放军国防科学技术大学 超长指令字与单指令流多数据流融合的计算群单元
US8281111B2 (en) * 2008-09-23 2012-10-02 Qualcomm Incorporated System and method to execute a linear feedback-shift instruction
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
JP2011028543A (ja) * 2009-07-27 2011-02-10 Renesas Electronics Corp 情報処理システム及びその情報処理方法
US8842121B2 (en) * 2011-02-03 2014-09-23 Intel Corporation Stream compaction for rasterization
CN102945150B (zh) * 2012-09-18 2015-11-18 苏州华周胶带有限公司 一种实现多功能用户界面的方法
KR20140126189A (ko) * 2013-04-22 2014-10-30 삼성전자주식회사 프로세서의 멀티 실행 모드 지원 장치 및 방법
US9772850B2 (en) 2014-11-14 2017-09-26 Intel Corporation Morton coordinate adjustment processors, methods, systems, and instructions
US9772849B2 (en) 2014-11-14 2017-09-26 Intel Corporation Four-dimensional morton coordinate conversion processors, methods, systems, and instructions
US9772848B2 (en) 2014-11-14 2017-09-26 Intel Corporation Three-dimensional morton coordinate conversion processors, methods, systems, and instructions
US10813083B2 (en) * 2015-02-12 2020-10-20 Huawei Technologies Co., Ltd. System and method for auto-detection of WLAN packets using STF
US10402199B2 (en) * 2015-10-22 2019-09-03 Texas Instruments Incorporated Conditional execution specification of instructions using conditional extension slots in the same execute packet in a VLIW processor
CN105912307B (zh) * 2016-04-27 2018-09-07 浪潮(北京)电子信息产业有限公司 一种Flash控制器数据处理方法及装置
CN111242293B (zh) * 2020-01-13 2023-07-18 腾讯科技(深圳)有限公司 一种处理部件、数据处理的方法以及电子设备

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228498A (en) 1977-10-12 1980-10-14 Dialog Systems, Inc. Multibus processor for increasing execution speed using a pipeline effect
US5136697A (en) 1989-06-06 1992-08-04 Advanced Micro Devices, Inc. System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache
EP0419105B1 (en) 1989-09-21 1997-08-13 Texas Instruments Incorporated Integrated circuit formed on a surface of a semiconductor substrate and method for constructing such an integrated circuit
JPH05324430A (ja) 1992-05-26 1993-12-07 Toshiba Corp データ処理装置
US5423051A (en) 1992-09-24 1995-06-06 International Business Machines Corporation Execution unit with an integrated vector operation capability
US5600801A (en) 1993-07-15 1997-02-04 Dell Usa, L.P. Multiple function interface device for option card
US5600810A (en) 1994-12-09 1997-02-04 Mitsubishi Electric Information Technology Center America, Inc. Scaleable very long instruction word processor with parallelism matching
US6052773A (en) 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
US5737631A (en) 1995-04-05 1998-04-07 Xilinx Inc Reprogrammable instruction set accelerator
JP2931890B2 (ja) 1995-07-12 1999-08-09 三菱電機株式会社 データ処理装置
JP3658072B2 (ja) 1996-02-07 2005-06-08 株式会社ルネサステクノロジ データ処理装置およびデータ処理方法
JPH09265397A (ja) * 1996-03-29 1997-10-07 Hitachi Ltd Vliw命令用プロセッサ
GB2311882B (en) 1996-04-04 2000-08-09 Videologic Ltd A data processing management system
US5956518A (en) * 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
DE19634031A1 (de) 1996-08-23 1998-02-26 Siemens Ag Prozessor mit Pipelining-Aufbau
US6006321A (en) 1997-06-13 1999-12-21 Malleable Technologies, Inc. Programmable logic datapath that may be used in a field programmable device
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
JP3451921B2 (ja) 1998-03-30 2003-09-29 松下電器産業株式会社 プロセッサ
EP0953898A3 (en) 1998-04-28 2003-03-26 Matsushita Electric Industrial Co., Ltd. A processor for executing Instructions from memory according to a program counter, and a compiler, an assembler, a linker and a debugger for such a processor
US6226735B1 (en) 1998-05-08 2001-05-01 Broadcom Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements
US6292845B1 (en) * 1998-08-26 2001-09-18 Infineon Technologies North America Corp. Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively
DE19843640A1 (de) 1998-09-23 2000-03-30 Siemens Ag Verfahren zum Konfigurieren eines konfigurierbaren Hardware-Blocks
US6553414B1 (en) 1998-10-02 2003-04-22 Canon Kabushiki Kaisha System used in plural information processing devices for commonly using peripheral device in network
EP1073951A1 (en) * 1999-02-15 2001-02-07 Koninklijke Philips Electronics N.V. Data processor with a configurable functional unit and method using such a data processor
EP1050810A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics SA A computer system comprising multiple functional units
GB2352066B (en) * 1999-07-14 2003-11-05 Element 14 Ltd An instruction set for a computer
US6526430B1 (en) 1999-10-04 2003-02-25 Texas Instruments Incorporated Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing)
US7039790B1 (en) 1999-11-15 2006-05-02 Texas Instruments Incorporated Very long instruction word microprocessor with execution packet spanning two or more fetch packets with pre-dispatch instruction selection from two latches according to instruction bit
EP1102163A3 (en) 1999-11-15 2005-06-29 Texas Instruments Incorporated Microprocessor with improved instruction set architecture
US6255849B1 (en) 2000-02-04 2001-07-03 Xilinx, Inc. On-chip self-modification for PLDs
TW516320B (en) 2000-02-22 2003-01-01 Intervideo Inc Implementation of quantization for SIMD architecture
JP2001306321A (ja) 2000-04-19 2001-11-02 Matsushita Electric Ind Co Ltd プロセッサ
US7120781B1 (en) 2000-06-30 2006-10-10 Intel Corporation General purpose register file architecture for aligned simd
US20020089348A1 (en) 2000-10-02 2002-07-11 Martin Langhammer Programmable logic integrated circuit devices including dedicated processor components
US20020174266A1 (en) 2001-05-18 2002-11-21 Krishna Palem Parameterized application programming interface for reconfigurable computing systems
JP2003005958A (ja) 2001-06-25 2003-01-10 Pacific Design Kk データ処理装置およびその制御方法
JP2003099397A (ja) 2001-09-21 2003-04-04 Pacific Design Kk データ処理システム
US6798239B2 (en) 2001-09-28 2004-09-28 Xilinx, Inc. Programmable gate array having interconnecting logic to support embedded fixed logic circuitry
JP3785343B2 (ja) 2001-10-02 2006-06-14 日本電信電話株式会社 クライアントサーバシステム及びクライアントサーバシステムにおけるデータ通信方法
JP3779602B2 (ja) 2001-11-28 2006-05-31 松下電器産業株式会社 Simd演算方法およびsimd演算装置
KR100464406B1 (ko) 2002-02-08 2005-01-03 삼성전자주식회사 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법
US7159099B2 (en) 2002-06-28 2007-01-02 Motorola, Inc. Streaming vector processor with reconfigurable interconnection switch
JP3982353B2 (ja) * 2002-07-12 2007-09-26 日本電気株式会社 フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
US7024543B2 (en) * 2002-09-13 2006-04-04 Arm Limited Synchronising pipelines in a data processing apparatus
TW569138B (en) 2002-09-19 2004-01-01 Faraday Tech Corp A method for improving instruction selection efficiency in a DSP/RISC compiler
US7464254B2 (en) 2003-01-09 2008-12-09 Cisco Technology, Inc. Programmable processor apparatus integrating dedicated search registers and dedicated state machine registers with associated execution hardware to support rapid application of rulesets to data
JP2004309570A (ja) 2003-04-02 2004-11-04 Seiko Epson Corp 光通信モジュール、光通信装置、及びその製造方法
US7496776B2 (en) 2003-08-21 2009-02-24 International Business Machines Corporation Power throttling method and apparatus
US7385931B2 (en) 2003-08-22 2008-06-10 Fujitsu Limited Detection of network misconfigurations
US7176713B2 (en) 2004-01-05 2007-02-13 Viciciv Technology Integrated circuits with RAM and ROM fabrication options
US9047094B2 (en) 2004-03-31 2015-06-02 Icera Inc. Apparatus and method for separate asymmetric control processing and data path processing in a dual path processor
US7949856B2 (en) 2004-03-31 2011-05-24 Icera Inc. Method and apparatus for separate control processing and data path processing in a dual path processor with a shared load/store unit

Also Published As

Publication number Publication date
US20050223193A1 (en) 2005-10-06
WO2005096140A2 (en) 2005-10-13
US7949856B2 (en) 2011-05-24
EP1735700A2 (en) 2006-12-27
EP1735700B1 (en) 2018-09-12
TW201106265A (en) 2011-02-16
TWI413935B (zh) 2013-11-01
CN100472433C (zh) 2009-03-25
JP2007531133A (ja) 2007-11-01
TWI450192B (zh) 2014-08-21
KR20070026434A (ko) 2007-03-08
WO2005096140A3 (en) 2006-07-06
US8484442B2 (en) 2013-07-09
US20110078416A1 (en) 2011-03-31
EP2290526A1 (en) 2011-03-02
EP2290526B1 (en) 2018-05-30
CA2560465A1 (en) 2005-10-13
TW200540707A (en) 2005-12-16
CN1950795A (zh) 2007-04-18

Similar Documents

Publication Publication Date Title
JP5744370B2 (ja) 非対称二重経路処理のための装置および方法
JP5198847B2 (ja) 二重経路プロセッサの処理制御のための装置および方法
JP5047944B2 (ja) データアクセス及び置換ユニット
JP5209609B2 (ja) ハードウェアエンドループ情報の命令へのコード化
JPH1165844A (ja) パイプラインバイパス機能を有するデータ処理装置
US20060095713A1 (en) Clip-and-pack instruction for processor
JP5382635B2 (ja) 二重データ経路処理のための装置および方法
JP5052713B2 (ja) 条件付き命令を備えるベクトルデータプロセッサ
US9104426B2 (en) Processor architecture for processing variable length instruction words
KR20070022239A (ko) 비대칭 듀얼 경로 프로세싱용 장치 및 방법
US20060095714A1 (en) Clip instruction for processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110523

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120515

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130207

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

Free format text: PAYMENT UNTIL: 20160215

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5198847

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250