JP2000322408A - 線形ベクトル計算 - Google Patents
線形ベクトル計算Info
- Publication number
- JP2000322408A JP2000322408A JP11321526A JP32152699A JP2000322408A JP 2000322408 A JP2000322408 A JP 2000322408A JP 11321526 A JP11321526 A JP 11321526A JP 32152699 A JP32152699 A JP 32152699A JP 2000322408 A JP2000322408 A JP 2000322408A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- coefficient
- register
- unit
- test
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 239000013598 vector Substances 0.000 title claims abstract description 83
- 238000004364 calculation method Methods 0.000 title claims abstract description 24
- 238000012360 testing method Methods 0.000 claims abstract description 63
- 238000012545 processing Methods 0.000 claims abstract description 56
- 230000014509 gene expression Effects 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 125000004122 cyclic group Chemical group 0.000 claims description 5
- 230000008878 coupling Effects 0.000 abstract 1
- 238000010168 coupling process Methods 0.000 abstract 1
- 238000005859 coupling reaction Methods 0.000 abstract 1
- 238000007792 addition Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 4
- 239000003607 modifier Substances 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 101100059544 Arabidopsis thaliana CDC5 gene Proteins 0.000 description 2
- 101150115300 MAC1 gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100244969 Arabidopsis thaliana PRL1 gene Proteins 0.000 description 1
- 102100039558 Galectin-3 Human genes 0.000 description 1
- 101100454448 Homo sapiens LGALS3 gene Proteins 0.000 description 1
- 101000771640 Homo sapiens WD repeat and coiled-coil-containing protein Proteins 0.000 description 1
- 101150051246 MAC2 gene Proteins 0.000 description 1
- 102100029476 WD repeat and coiled-coil-containing protein Human genes 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/607—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers number-of-ones counters, i.e. devices for counting the number of input lines set to ONE among a plurality of input lines, also called bit counters or parallel counters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/74—Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/762—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data having at least two separately controlled rearrangement levels, e.g. multistage interconnection networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/764—Masking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- 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/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
- G06F9/3552—Indexed addressing using wraparound, e.g. modulo or circular addressing
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
-
- 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, look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- 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, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional 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, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline, 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
Abstract
合として出力ベクトルを計算する処理エンジンを得る。 【解決手段】 処理エンジンは、第1の入力ベクトルの
N個の係数の各表現を保持する係数レジスタ940を含
む。係数レジスタの選択部分を各係数表現に対してテス
トするテストユニット950が設けられる。算術演算装
置970は、テスト結果に応じて第2の入力ベクトルの
座標を選択的に加減算して出力ベクトルの各座標を計算
する。ALU演算と並列な係数テスト演算を使用して消
費電力が低く維持される。出力ベクトルVYの各座標を
N+1ステップアルゴリズムにより計算することがで
き、この計算はALUと並列に作動するビットテストユ
ニットにより行われる。CPUレジスタのビットCi+1
がアドレス指定されテンポラリレジスタでテストされ第
2の入力ベクトルXijの座標の条件付き加減算が実施さ
れる。
Description
テムにおける線形ベクトルの計算に関する。
個のベクトル
義される任意のベクトル
る。
とえばGSM(Global System forMobiles)ハーフレー
トボコーダの処理演算は、
を必要とする。このような処理演算の例は、係数の円順
列と、係数の値の補数処理とである。
P)のインプリメンテーションは次のようである。ま
ず、
2,...)で符号化された分数(1/2,−1/2)
にビット表現(0,1)から変換される。次に、各VY
ベクトル座標
れる。計算は、次式で表される乗算および累算ユニット
により行われ、
よび乗算オペランドが計算の各ステップに必要であるこ
とが分かるであろう。係数アドレス指定がアドレス発生
ユニットを使用して行われ、必要ならば、間接メモリア
ドレス指定、たとえば巡回ポスト変更アドレス指定が行
われる。
ドレス指定演算およびオペランドフェッチ演算を必要と
することである。そのため、バスの可用性が低減され、
すべてのバス演算を駆動するのに大きな消費電力が必要
となる。乗算演算の使用にも大きな消費電力が必要であ
る。
計では、生態学的および経済的見地の両方から消費電力
を低減することが望ましい。特に、限定的ではないが、
移動体電気通信応用などの移動体処理応用では、必要以
上に性能を犠牲にすることなく消費電力をできるだけ低
く維持することが望ましい。
れば、N個の係数を有するN個の入力ベクトルの一次結
合として出力ベクトルを計算する処理エンジンが提供さ
れる。処理エンジンは、第1の入力ベクトルに対するN
個の係数の表現を保持する係数レジスタを含んでいる。
各係数表現に対する係数レジスタの選択部分をテストす
るテストユニットが設けられている。係数表現のテスト
結果に応じて第2の入力ベクトルに対する入力ベクトル
座標の選択的加算および/または減算によって出力ベク
トルの各座標を計算する算術演算ユニットが設けられて
いる。
合の計算に関して従来技術に比べていくつかの利点を達
成することができる。
せたテスト命令(たとえば、ビットテスト命令)が使用
されるため、序文に記載した従来技術に従って作動する
処理エンジンの消費電力を低減することができる。ま
た、計算のステップ当たり2つのデータメモリアクセス
ではなくたった一つのデータメモリアクセスが必要とさ
れる。
ッサストールがないため、実行性能は、序文に記載した
従来技術に従って作動する処理エンジンのそれとほぼ同
等である。また、所望により、並列実行を行って1サイ
クルの最小オーバヘッドを隠蔽することができる。
ジスタにメモリアドレスおよびビットアドレスを発生す
ることができるフレキシブルアドレス指定が提供され
る。ハードウェアオーバヘッドは最小である。
ルに対してビット(0,1)として表される
ップアルゴリズムで計算される。その計算は、ALUユ
ニットと並列に作動するビットテストユニットで行われ
る。
がアドレス指定され、テストされたビットはテンポラリ
レジスタに格納され、第2の入力ベクトルXijの座標の
条件付き加算/減算が、そのテストされたビットに基づ
いて行われる。
ルの座標の選択的加算/減算の前に係数テスト結果を格
納するテスト状態レジスタを設けることができる。
現(たとえば、1以上のビット)を保持する係数レジス
タの一部(たとえば、ビット位置またはビットフィール
ド)を選択するレジスタビットポインタアドレスを発生
するアドレス発生器を設けることができる。同じまたは
異なるアドレス発生器が、第2の入力ベクトルに対する
座標を検索するためのメモリアドレスを発生することも
できる。同じデータアドレス発生ハードウェアが使用さ
れる場合には、シリコンが経済的に使用され、使用時の
消費電力も経済的となる。係数レジスタは、Nよりも多
いビットを含むことができる。ポスト変更を伴う巡回ビ
ットアドレス指定を使用して、レジスタを効率的に使用
し、係数をラップラウンドまたはモジュロ形式で変更す
ることができる。
現(たとえば、ビット)が計算の各ステップに対してテ
ストされる。テストユニットは、ビットテストユニット
とすることができる。
は、ベクトルVYの座標VYjの計算のステップi+1
で作動して係数Ci+1をテストすることができ、また、
算術演算装置は、それと並列に作動して計算のステップ
iで実行された係数レジスタのビットCiのテスト結果
に応じてオペランドXijの条件付き加算/減算を実行す
ることができる。
一連のN+1ステップとして実行され得る。
の形とすることができ、集積回路に集積することができ
る。
イ,アンテナおよび上述した処理エンジンを含む電気通
信装置も提供する。
でN個の係数を有する入力ベクトルの一次結合として出
力ベクトルを計算する方法が提供される。この方法は、
第1の入力ベクトルのN個の係数の各々の表現を係数レ
ジスタに保持するステップと、第1の入力ベクトルの各
係数表現を選択的にテストするステップと、第1の入力
ベクトルの係数表現のテスト結果に応じた第2のベクト
ルの座標の選択的加算および/または減算によって出力
ベクトルの座標を計算するステップと、を含む。
の座標の計算は一連のN+1ステップとして実行され、
計算のステップ
すビットCi+1が、そのビットをテストする係数レジス
タでアドレス指定され、テストされたビットが、ビット
テスト結果レジスタに格納され、第2の入力ベクトルの
Xij座標の条件付き加算および減算の1つが、計算のス
テップiで実行された係数レジスタのビットCiのテス
トの結果としてビットテストレジスタに格納されたビッ
トに応じて実行される。
の各ステップに対して必要としないことが分かるであろ
う。係数アドレス指定は、アドレス発生ユニットを介し
て行うことができ、任意の間接レジスタビットアドレス
指定が使用される(たとえば、巡回ポスト変更)。
回路(ASIC)で実現されるデジタル信号プロセッサ
(DSP)に特に応用されるが、他の形式の処理エンジ
ンにも応用される。
ロプロセッサ10のブロック図である。マイクロプロセ
ッサ10は、デジタル信号プロセッサ(DSP)であ
る。分かり易くするために、図1は、マイクロプロセッ
サ10の本発明の一実施例を理解するのに関係のある部
分のみを示す。DSPの一般的構造の詳細は、よく知ら
れており、他で容易に確かめることができる。たとえ
ば、フレデリック・ブートウドらの米国特許第5,07
2,418号には、DSPが詳細に記載されており、本
開示の一部としてここに援用する。ギャリー・スオボダ
らの米国特許第5,329,471号には、DSPのテ
ストおよびエミュレート方法が詳細に記載されており、
本開示の一部としてここに援用する。マイクロプロセッ
サの分野の当業者であれば本発明を製造し使用できるよ
うに、マイクロプロセッサ10の本発明の一実施例に関
連する部分の詳細が、以下に十分詳しく説明される。
いくつかのシステムの例が、本開示の一部としてここに
援用される米国特許第5,072,418号に、特に米
国特許第5,072,418号の図2〜図18に記載さ
れている。性能を改善するかコストを低減する本発明の
一態様を組み入れたマイクロプロセッサを使用して、米
国特許第5,072,418号に記載されたシステムを
さらに改善することができる。そのようなシステムは、
限定はしないが、産業プロセスコントロール,自動車シ
ステム,モータコントロール,ロボットコントロールシ
ステム,衛星電気通信システム,エコーキャンセリング
システム,モデム,ビデオイメージングシステム,音声
認識システムおよび暗号付ボコーダ−モデムシステムな
どを含む。
ーキテクチュア上の特徴および完全な命令セットの説明
が、同じ譲受人による特許出願第 号(TI−
28433)に記載されており、本開示の一部としてこ
こに援用する。
本的アーキテクチュアについて説明する。図1は、本発
明の一つの典型的な実施例を形成するプロセッサ10の
全体略図である。プロセッサ10は、処理エンジン10
0とプロセッサバックプレーン20とを含んでいる。本
実施例では、プロセッサは、特定用途集積回路(ASI
C)に実現されたデジタル信号プロセッサ10である。
は、処理コア102と処理コア102を処理コア102
の外部のメモリユニットとインターフェイスさせるメモ
リインターフェイスすなわち管理ユニット104とを有
する中央処理装置(CPU)を形成する。
プレーンバス22を含み、それには処理エンジンのメモ
リ管理ユニット104が接続されている。バックプレー
ンバス22には、命令キャッシュメモリ24,周辺装置
26および外部インターフェイス28も接続されてい
る。
は異なる技術を使用して本発明を実現できることが分か
るであろう。たとえば、処理エンジン100はプロセッ
サ10を形成することができ、プロセッサバックプレー
ン20はそこから分離されている。処理エンジン100
は、たとえば、バックプレーンバス22,周辺装置およ
び外部インターフェイスを支持するバックプレーン20
から独立してその上に搭載されたDSPであり得る。処
理エンジン100は、たとえば、DSPではなくマイク
ロプロセッサとすることができ、ASIC技術以外の技
術で実現することができる。処理エンジンまたは処理エ
ンジンを含むプロセッサは1つ以上の集積回路に実現す
ることができる。
構造を示す。図から分かるように、処理コア102は、
4つの要素、すなわち、命令バッファユニット(Iユニ
ット)106と3つの実行ユニットとを含んでいる。実
行ユニットは、プログラムフローユニット(Pユニッ
ト)108と、アドレスデータフローユニット(Aユニ
ット)110と、命令バッファユニット(Iユニット)
106から復号された命令を実行しプログラムフローを
制御かつ監視するデータ計算ユニット(Dユニット)1
12とである。
8,Aユニット110およびDユニット112を詳細に
示すとともに、処理コア102のさまざまな要素を接続
するバス構造を示す。Pユニット108は、たとえば、
ループ制御回路と、GoTo/分岐制御回路と、リピー
トカウンタレジスタおよび割込みマスク,フラグまたは
ベクトルレジスタのようなプログラムフローを制御し監
視するさまざまなレジスタとを含んでいる。Pユニット
108は、汎用データライトバス(EB,FB)13
0,132とデータリードバス(CB,DB)134,
136とアドレス定数バス(KAB)142とに結合さ
れている。さらに、Pユニット108は、CSR,AC
BおよびRGDとラベルされたさまざまなバスを介して
Aユニット110およびDユニット112内のサブユニ
ットに結合されている。
ット110はレジスタファイル30とデータアドレス発
生サブユニット(DAGEN)32と算術および論理演
算装置(ALU)34とを含んでいる。Aユニットレジ
スタファイル30はさまざまなレジスタを含み、それら
中には、アドレス発生だけでなくデータフローにも使用
できる16ビットポインタレジスタ(AR0,...,
AR7)およびデータレジスタ(DR0,...,DR
3)がある。さらに、レジスタファイルは、16ビット
巡回バッファレジスタと7ビットデータページレジスタ
とを含んでいる。汎用バス(EB,FB,CB,DB)
130,132,134,136だけでなく、データ定
数バス140およびアドレス定数バス142がAユニッ
トレジスタファイル30に結合されている。Aユニット
レジスタファイル30は、それぞれ反対方向に作動する
1方向性バス144,146によってAユニットDAG
ENユニット32に結合されている。DAGENユニッ
ト32は、16ビットX/Yレジスタと、たとえば処理
エンジン100内のアドレス発生を制御し監視する係数
およびスタックポインタレジスタとを含んでいる。
ND,ORおよびXOR論理演算子などのALUに典型
的に関連する機能だけでなくシフタ機能も含むALU3
4も含んでいる。ALU34は、汎用バス(EB,D
B)130,136および命令定数データバス(KD
B)140にも結合されている。AユニットALUは、
Pユニット108レジスタファイルからレジスタ内容を
受信するPDAバスによってPユニット108に結合さ
れている。ALU34は、アドレスおよびデータレジス
タ内容を受信するバスRGA,RGBとレジスタファイ
ル30のアドレスおよびデータレジスタに転送するバス
RGDとによってAユニットレジスタファイル30にも
結合されている。
は、Dユニットレジスタファイル36と、DユニットA
LU38と、Dユニットシフタ40と、2つの乗算およ
び累算ユニット(MAC1,MAC2)42,44とを
含んでいる。Dユニットレジスタファイル36とDユニ
ットALU38とDユニットシフタ40とは、バス(E
B,FB,CB,DB,KDB)130,132,13
4,136,140に結合され、また、MACユニット
42,44は、バス(CB,DB,KDB)134,1
36,140とデータリードバス(BB)144とに結
合されている。Dユニットレジスタファイル36は、4
0ビット累算器(AC0,...,AC3)と16ビッ
ト遷移レジスタとを含んでいる。また、Dユニット11
2は、Aユニット110の16ビットポインタおよびデ
ータレジスタをソースとして利用したり、40ビット累
算器の他にデスティネーションレジスタを利用すること
ができる。Dユニットレジスタファイル36は、累算器
ライトバス(ACW0,ACW1)146,148を介
してDユニットALU38およびMAC1&2 42,
44から、また、累算器ライトバス(ACW1)148
を介してDユニットシフタ40から、データを受信す
る。データは、累算器リードバス(ACR0,ACR
1)150,152を介してDユニットレジスタファイ
ル累算器からDユニットALU38,Dユニットシフタ
40およびMAC1&2 42,44に読み出される。
DユニットALU38とDユニットシフタ40とは、E
FC,DRB,DR2およびACBとラベルされたさま
ざまなバスを介してAユニット108のサブユニットに
も結合されている。
ァキュー(IBQ)502を含む命令バッファユニット
106が示されている。IBQ502は、8ビットバイ
ト506に論理的に分割された32×16ビットレジス
タ504を含んでいる。命令は、32ビットプログラム
バス(PB)122を介してIBQ502に到来する。
命令は、ローカルライトプログラムカウンタ(LWP
C)532によって指示される位置に32ビットサイク
ルでフェッチされる。LWPC532は、Pユニット1
08に位置されたレジスタに含まれている。Pユニット
108は、ローカルリードプログラムカウンタ(LRP
C)536レジスタとライトプログラムカウンタ(WP
C)530レジスタおよびリードプログラムカウンタ
(RPC)534レジスタとをも含んでいる。LRPC
536は、命令デコーダ512,514にロードされる
次の一つまたは複数の命令のIBQ502内の位置を指
示する。すなわち、LRPC534は、デコーダ51
2,514に現在ディスパッチされている命令のIBQ
502内の位置を指示する。WPCは、パイプラインに
対する命令コードの次の4バイトの始まりのプログラム
メモリ内のアドレスを指示する。IBQ内への各フェッ
チに対して、プログラムメモリからの次の4バイトが命
令境界とは無関係にフェッチされる。RPC534は、
デコーダ512,514に現在ディスパッチされている
命令のプログラムメモリ内のアドレスを指示する。
ルチプレクサ520,521を介して48ビットバス5
16によって命令デコーダ512,514にロードされ
る。当業者ならば、命令は48ビット以外のワードに形
成することができること、また、本発明は前記した特定
の実施例に限定されるものではないことが、分かるであ
ろう。
に、デコーダ当たり1つずつ、最大2つの命令をロード
することができる。命令の組合せは、48ビットバスの
両端間にわたって適合する8,16,24,32,40
および48ビットのフォーマットの任意の組合せとする
ことができる。1サイクル中に1命令しかロードできな
い場合には、デコーダ1,512がデコーダ2,514
に優先してロードされる。次に、各命令は、それらを実
行するために、また、命令または演算が実行されるべき
データにアクセスするために、各機能ユニットに転送さ
れる。命令デコーダに通される前に、命令はバイト境界
上でアラインされる。アライメントは、その復号中に前
の命令に対して引き出されたフォーマットに基づいて行
われる。バイト境界を有する命令のアライメントに関連
する多重化は、マルチプレクサ520,521で実行さ
れる。
ラインを介して命令を実行し、その各ステージは図5を
参照して説明される。
FETCH(P0)ステージ202であり、このステー
ジ中に、メモリインターフェイスまたはメモリ管理ユニ
ット104のアドレスバス(PAB)118上にアドレ
スを表明することによって次のプログラムメモリ位置が
アドレス指定される。
ジ204では、プログラムメモリが読み出され、Iユニ
ット106がメモリ管理ユニット104からPBバス1
22を介して充填される。
FETCHステージ中に割り込まれて逐次プログラムフ
ローを中断してプログラムメモリ内の他の命令、たとえ
ば分岐命令を指示することができる点で、PRE−FE
TCHおよびFETCHステージは残りのパイプライン
ステージから独立している。
ステージDECODE(P2)206でデコーダ512
または複数のデコーダ514にディスパッチされ、そこ
で、命令は、復号されて、その命令を実行する実行ユニ
ット、たとえばPユニット108,Aユニット110ま
たはDユニット112にディスパッチされる。復号ステ
ージ206は、命令のクラスを示す第1の部分と命令の
フォーマットを示す第2の部分と命令に対するアドレス
指定モードを示す第3の部分とを含む命令の少なくとも
一部を復号することを含んでいる。
テージ208であり、そこでは、命令内で使用されるデ
ータのアドレスが計算されるか、命令がプログラム分岐
すなわちジャンプを必要とする場合には新しいプログラ
ムアドレスが計算される。各計算は、Aユニット110
またはPユニット108でそれぞれ行われる。
は、リードオペランドのアドレスが出力されたのち、X
mem間接アドレス指定モードを有するDAGEN X
演算子でアドレスが発生されているメモリオペランド
が、間接アドレス指定されたXメモリ(Xmem)から
読み出される。
(P5)ステージ212であり、そこでは、Ymem間
接アドレス指定モードを有するDAGEN Y演算子内
または係数アドレスモードを有するDAGEN C演算
子内でアドレスが発生されているメモリオペランドが、
読み出される。命令の結果が書き込まれるメモリ位置の
アドレスが出力される。
ランドをYパスで発生し、ライトオペランドをXパスで
発生することもできる。
Dユニット112内で実行される実行EXEC(P6)
ステージ214がある。次に、結果がデータレジスタま
たは累算器に格納されるか、リード/モディファイ/ラ
イト用またはストア命令用のメモリに書き込まれる。さ
らに、シフト演算がEXECステージ中に累算器内のデ
ータになされる。
本的原理について図6を参照して説明する。図6から分
かるように、第1の命令302に対して、連続パイプラ
インステージが期間T1〜T7にわたって行われる。各期
間はプロセッサマシンクロックに対するクロックサイク
ルである。前の命令が次のパイプラインステージに移行
しているため、第2の命令304が期間T2でパイプラ
インに入ることができる。第3の命令306に対して、
PRE−FETCHステージ202が期間T3で行われ
る。図6から分かるように、7ステージパイプラインに
対して、合計7つの命令を同時に処理することができ
る。7つの命令302〜314の全てに対して、図6は
期間T7でそれら全てが処理中であることを示してい
る。このような構造は命令の処理に一形式の並列性を付
加する。
は、24ビットアドレスバス114および双方向16ビ
ットデータバス116を介して外部メモリユニット(不
図示)に結合されるメモリ管理ユニット104を含んで
いる。さらに、メモリ管理ユニット104は24ビット
アドレスバス118および32ビット双方向データバス
120を介してプログラム格納メモリ(不図示)に結合
されている。メモリ管理ユニット104は32ビットプ
ログラムリードバス(PB)122を介してマシンプロ
セッサコア102のIユニット106にも結合されてい
る。Pユニット108,Aユニット110およびDユニ
ット112はデータリードおよびデータライトバスおよ
び対応するアドレスバスを介してメモリ管理ユニット1
04に結合されている。Pユニット108はさらにプロ
グラムアドレスバス128に結合されている。
ットプログラムアドレスバス128と2つの16ビット
データライトバス(EB,FB)130,132と2つ
の16ビットデータリードバス(CB,DB)134,
136とによってメモリ管理ユニット104に結合され
ている。Aユニット110は、2つの24ビットデータ
ライトアドレスバス(EAB,FAB)160,162
と2つの16ビットデータライトバス(EB,FB)1
30,132と3つのデータリードアドレスバス(BA
B,CAB,DAB)164,166,168と2つの
16ビットデータリードバス(CB,DB)134,1
36とを介してメモリ管理ユニット104に結合されて
いる。Dユニット112は、2つのデータライトバス
(EB,FB)130,132と3つのデータリードバ
ス(BB,CB,DB)144,134,136とを介
してメモリ管理ユニット104に結合されている。
ユニット106からPユニット108への命令の通過を
参照符号124で表示している。さらに、図7は、Iユ
ニット106からAユニット110およびDユニット1
12へのデータの通過を参照符号126,128でそれ
ぞれ表示している。
00はいくつかのフォーマットでマシン命令に応答す
る。さまざまなフォーマットのこのような命令の例を以
下に示す。
(MMAP())またはリードポート修飾子(readpor
t())を表す。このような修飾子は単に8ビット操作符
号(○○○○ ○○○○)を含むのみである。このよう
な場合、並列性はインプリシットである。
SSS FDDD これは、16ビット命令、たとえばデスティネーション
レジスタの内容(たとえば、dst)がそのレジスタの
前の内容(dst)とソースレジスタの内容(src)
との和となる命令、すなわち、
ーブルフィールド(E)と4ビットソースレジスタ識別
子(FSSS)と4ビットデスティネーションレジスタ
識別子(FDDD)とを有する7ビット操作符号(○○
○○ ○○○)である。
PM MMMI これは、たとえばデスティネーションレジスタの内容
(たとえば、dst)がメモリ位置の内容(Smem)
となる、すなわち、
○○○)と4ビットデスティネーションレジスタ識別子
(FDDD)と3ビットポインタアドレス(PPP)と
4ビットアドレス変更子(M MMM)と直接/間接ア
ドレスインジケータ(I)とを含んでいる。
LL LLLL oCCC CCCC これは、24ビット命令、たとえば条件分岐命令および
条件が満たされる場合のオフセット(L8)を表す、す
なわち、
ーブルフィールド(E)と8ビット分岐オフセット(L
LLL LLLL)と1ビット操作符号拡張(o)と7
ビット条件フィールド(CCC CCCC)とを有する
7ビット操作符号(○○○○○○○)を含んでいる。
PM MMMI SSDD ooU% これは、24ビット命令のもう1つの例、たとえば累算
器の内容(ACy)がもう1つの累算器の内容(ACx)
およびメモリ位置の内容(随意丸めがある)の二乗の和
を丸めた結果となり、データレジスタの内容(DR3)
が随意メモリ位置の内容となる単一メモリオペランド命
令、すなわち、
○○○ ○○○○)と3ビットポインタアドレス(PP
P)と4ビットアドレス変更子(M MMM)と1ビッ
ト直接/間接アドレスインジケータフィールド(I)と
2ビットソース累算器識別子(SS)と2ビットデステ
ィネーション累算器識別子(DD)と2ビット操作符号
拡張(oo)と更新条件フィールド(u)と1ビット丸
めオプションフィールド(%)とを含んでいる。
PM MMMI KKKK KKKKKKKK KKKK これは、32ビット命令、たとえばメモリ位置(Sme
m)の一定値(K16)との符号比較に応じてテストレ
ジスタの内容(TC1)が1または0に設定される命
令、すなわち、
○○○ ○○○○)と3ビットポインタアドレス(PP
P)と4ビットアドレス変更子(M MMM)と1ビッ
ト直接/間接アドレスインジケータフィールド(I)と
16ビット定数フィールド(KKKK KKKK KKK
K KKKK)とを含んでいる。
単一メモリ命令と同じフォーマットを有している。図8
は、このような命令の一例を示す。ビット操作命令の例
は、ビットテスト命令,ビットセット命令,ビットクリ
ア命令およびビット補数命令である。図8に示すよう
に、ビット操作命令900は、操作符号に対する演算フ
ィールド902とアドレス指定フィールド904とデー
タレジスタ選択フィールド906とを含んでいる。下記
の表1に示すように、命令のアドレス指定フィールド
は、実行された命令とは独立してCPUのアドレス発生
を制御する。
処理システムにおける線形ベクトルの結合に関する。
ビットテストの結果に応じて加算または減算を実行する
命令を使用する。このタイプのいくつかの命令フォーマ
ットが下記の表2に示されている。
プリメンテーションの表現である。
数形式のNビットで符号化された分数(1/2,−1/
2)に変換される。次に、VYベクトル座標
る。計算は、乗算および累算ユニットにより次式で表さ
れるように行われる。
されるベクトルの一次結合の別の表現である。すなわ
ち、本発明の一実施例において、ベクトルの一次結合は
次式に従って計算される。
す。または、係数Ci=0は+1の乗算を表すことがで
きる。
た、各VYベクトル座標は、ALUユニットと並列動作
するビットテストユニットによりN+1ステップアルゴ
リズムで計算される。
る。
減算命令と並列のビットテスト命令を使用して図3に関
して前記した処理エンジンの要素を制御する方法の全体
略図である。
ィールドの順序は図8に関して変更されていることに注
意願いたい。
アドレス、すなわち、ビットアドレスおよびメモリオペ
ランドアドレスを含む。
ン912を介して第1および第2のマルチプレクサ91
8,922およびアドレス発生ユニット910(図3の
AユニットDAGEN32の一部を形成する)に供給さ
れる。直接/間接ビットが第1のマルチプレクサ918
に供給される。アドレスビットもライン912からライ
ン914を介して第1のマルチプレクサ918に供給さ
れる。直接/間接アドレスビットにより表示されるアド
レスが直接アドレスである場合には、ライン916を介
して供給される直接/間接アドレスビットにより、マル
チプレクサ918は、ライン914を介して供給される
直接アドレスビットを選択できるようにされる。アドレ
スが間接アドレスである場合には、ライン924を介し
て第2のマルチプレクサ922に供給されるビットが、
ポインタレジスタファイル920のレジスタの内容を選
択する。第2のマルチプレクサ922への入力は、ポイ
ンタレジスタファイル920からのライン925によっ
て形成される。ライン924上のビットにより識別され
るポインタレジスタ920(図3のAユニットレジスタ
ファイル30内のアドレスポインタレジスタARX[1
6]の1つとすることができる)の内容が、間接アドレ
ス入力926を介して第1のマルチプレクサ918に供
給される。この場合、ライン916を介して供給される
直接/間接ビットは、マルチプレクサ918への間接ア
ドレス入力926を選択する。その結果、適切な直接ま
たは間接アドレスがアドレス発生ユニット910に供給
される。アドレス指定フィールド904から供給される
変更演算ビットは、909においてアドレス発生ユニッ
ト910にも供給される。変更演算の結果である変更ア
ドレスが、ライン928を介してアドレス発生ユニット
910から出力されポインタレジスタファイル920に
入力される。アドレス発生ユニット910からは発生ア
ドレスも出力される。発生アドレスは、ライン930を
介してデータメモリアドレスバス932に供給されてメ
モリオペランドと関連を持つか、ライン934を介して
ビット操作ユニット950に供給されてビットアドレス
と関連を持つ。アドレス発生ユニット910は、ポスト
変更を有する巡回アドレス指定を行うように構成するこ
とができる。同じまたは異なるハードウェアを使用し
て、ビットレジスタアドレス指定またはメモリオペラン
ドアドレス指定用のアドレスを発生することができる。
容が第3および第4のマルチプレクサ946,947に
供給される。第3のマルチプレクサ946に供給される
レジスタ選択ビットによって、データレジスタ940
(図3のAユニットレジスタファイル30のデータレジ
スタDRX[16]またはARX[16]とすることがで
きる)の選択をライン948を介してビット操作ユニッ
ト950に出力することができる。このレジスタは係数
必要な長さ(たとえば、NビットではなくN+1ビッ
ト)よりも長くすることができる。それにより、係数
は、レジスタを“ラップ−ラウンド”するように配列し
て、ポスト変更を有する巡回ビットアドレス指定を利用
してレジスタをアドレス指定することができる。すなわ
ち、係数
ビットに保持されるものとする。すると、第1の変更ビ
ットはビット位置Nに格納することができ、第2の変更
ビットはビット位置1に格納することができ(位置1の
前に格納されたビットは前のステップで既に使用されて
いる)、以下同様である。ビット操作ユニットは、図3
のAユニットALU34の一部を形成することができ
る。そのため、補数ビットがライン956を介してビッ
ト操作ユニット950からデータレジスタファイル94
0に帰還される。ビット操作演算ビットがライン95
2,964を介して命令900の演算フィールド902
からビット操作ユニット950に供給される。ビット操
作ユニット958の出力は、テスト状態レジスタファイ
ル960(図3のAユニットに対する状態レジスタのテ
ストレジスTC1またはTC2とすることができる)に
供給される。ライン942を介してデータレジスタ選択
フィールド906から供給されるレジスタ選択ビットも
第4のマルチプレクサ947に供給される。それによ
り、パス964を介してALU970(図3のDユニッ
トALU38とすることができる)に入力するベクトル
VYの部分座標VYjを選択する累算器レジスタファイ
ルACX[40]からの出力を選択することができる。
ALU演算ビットは、ライン952を介して演算フィー
ルド902からも供給される。ALU970には、デー
タメモリリードバス968およびライン966を介して
メモリ座標Xijも供給される。テストした係数Ciを含
むテスト状態レジスタ/ファイル960からの出力は、
ライン962を介してALU970ni供給される。変
更データは、ALU970からデータレジスタファイル
940に出力972されて、そこに格納される。
る一連のステップを示すフロー図である。本方法のさま
ざまなステップを図11を参照して説明する。
∀1≦j≦Mが次々に計算される。S0において、最初
のベクトル座標J=1についてプロセスが開始する。S
1において、最初の入力ベクトルに対する係数がデータ
レジスタファイル940に格納される。S2において、
その座標を計算するプロセスの最初のステップ(ステッ
プi=1)は、命令900のアドレス指定フィールド9
04からのレジスタビットアドレス情報を使用したデー
タアドレス発生ユニット910におけるアドレス計算に
より決定される、データレジスタファイル940内のデ
ータレジスタ940内のビットC1をアドレス指定する
ことを含んでいる。このビットはテストされて、その結
果(ここでは、テストしたビット値)がテスト状態レジ
スタファイル960に格納される。命令900のアドレ
ス指定フィールド904内のアドレス情報を使用して、
最初のxijメモリオペランドに対するアドレスもアドレ
ス発生ユニットにおいて発生され、そのオペランドの取
出しが行われる。
+1に対して継続され、S2に示すステップがビットC
i+1について行われて、オペランドXi+1,jに対するオペ
ランドフェッチが開始される。並列して、Xijオペラン
ドの条件付き加算/減算が行われる。これは、このプロ
セスのi+1=2からNに対してステップS4,S5を
介して繰り返される。したがって、各反復において、命
令900のアドレス指定フィールド904からのレジス
タビットアドレス情報を使用したデータ発生ユニット9
10におけるアドレス計算により決定される、データレ
ジスタファイル940内のデータレジスタ内のビットC
i+1がアドレス指定される。このビットはテストされ
て、その結果(ここでは、テストしたビット値)がテス
ト状態レジスタファイル960に格納される。命令90
0のアドレス指定フィールド904内のアドレス情報を
使用して、最初のメモリオペランドに対するアドレスも
アドレス発生ユニットにおいて発生され、そのオペラン
ドのフェッチが行われる。オペランドXijの条件付き加
算/減算もALU970において行われる。ここでは、
前のステップで格納されたCiに対するテストされたビ
ット値が1であれば、Xijが加算され、前のステップで
格納されたCiに対するテストされたビット値が0であ
れば、減算される。(もちろん、別の実施例では、テス
トされたビット値以外の値をビット状態レジスタファイ
ルに格納してALUにおいて加算するか減算するかの決
定を異なるものとすることができることに留意願いた
い。しかしながら、最も直接的な方法は本実施例で説明
したものである)。
のビットCi+1がアドレス指定され、このビットがテン
ポラリレジスタにおいてテストされ、Xijオペランドの
条件付き加算/減算が行われる。
において増分されて、制御はS3に戻る。I=Nであれ
ば、制御はS6に通される。S6において、Xij(I=
N)の最終の条件付き加算/減算が行われる。
に計算され(すなわち、j<M)、S7において、パス
956上の補数帰還によりデータレジスタファイル94
0内のデータレジスタ内の係数が更新される。前記した
ように、これはポスト変更を有する巡回ビットアドレス
指定でも達成することができる。また、jの値が増分さ
れて、制御はS2に戻る。
なわちj=Mの場合には、S8でベクトルVYの計算が
終了する。
行うことができる。
る集積回路40の略図である。集積回路は特定用途集積
回路(ASIC)技術を使用して実現することができ
る。図から分かるように、集積回路は複数の表面実装コ
ンタクト42を含んでいる。しかしながら、集積回路
は、他の構成を含むことができ、たとえば、回路下面上
の複数のピンがゼロ挿入力ソケット内に実装される構成
や、その他任意の適切な構成とすることができる。
に内蔵されるプロセッサ10などの処理エンジンの1つ
の応用は、移動ワイヤレス電気通信装置などの電気通信
装置である。図14に、このような電気通信装置の一例
を示す。図14に示す特定の例では、電気通信装置は、
キーボードまたはキーボード12およびディスプレイ1
4のような一体型ユーザ入力装置付き移動電話機11で
ある。ディスプレイは、たとえば液晶ディスプレイやT
FTディスプレイなどの適切な技術を使用して実現する
ことができる。プロセッサ10は、キーボード12に接
続され、そこで適切なキーボードアダプタ(不図示)を
介してディスプレイ14に接続され、そこで適切なディ
スプレイアダプタ(不図示)を介して電気通信インター
フェイスすなわちトランシーバ16、たとえば無線周波
数(RF)回路を含むワイヤレス電気通信インターフェ
イスに接続される。無線周波数回路は、プロセッサ10
を含む集積回路40に内蔵したり、独立したものとする
ことができる。
する方法,システムおよび装置について説明してきた。
特定の実施例に関して説明してきたが、本発明はそれに
限定はされず、発明の範囲内で多くの変更,追加および
/または置換を行えることが分かるであろう。
続される」および「接続」は、電気接続経路内に付加素
子がある場合も含めて、電気的に接続されることを意味
する。
この明細書には制約的な意味合いはない。当業者なら
ば、この明細書を読めば本発明の他のさまざまな実施例
が自明であろう。したがって、添付した特許請求の範囲
は発明の真の範囲および精神に含まれる実施例のこのよ
うないかなる変更も包含するものとする。
願されたS.N.98402465.3(TI−276
79EU)および1998年10月6日に欧州で出願さ
れたS.N.98402455.4(TI−28433
EU)に優先権を請求するものである。
ク図である。
ットのより詳細な略ブロック図である。
命令デコーダコントローラの略図である。
現である。
例の線図である。
するためのプロセッサのコアの略表現である。
の一次結合の代替表である。
ける一連のステップを示す略図である。
現である。
略表現である。
ルチプレクサ 530 ライトプログラムカウンタ 532 ローカルライトプログラムカウンタ 534 リードプログラムカウンタ 536 ローカルリードプログラムカウンタ 910 アドレス発生ユニット 920 ポインタレジスタファイル 932 データメモリアドレスバス 940 データレジスタファイル 950 ビット操作ユニット 960 テスト状態レジスタファイル 968 データメモリリードバス 970 算術演算装置
Claims (20)
- 【請求項1】 N個の係数を有するN個の入力ベクトル
の結合として出力ベクトルを計算する処理エンジンを含
むデジタルシステムであって、 前記処理エンジンが、 第1の入力ベクトル用の係数の表現を保持する係数レジ
スタと、 該係数レジスタの選択部分を係数表現に対してテストす
るテストユニットと、 該係数表現テストの結果に応じて第2の入力ベクトルの
入力ベクトル座標を選択的に加算および/または減算す
ることによって出力ベクトルの各座標を計算する算術演
算装置と、 を含む、デジタルシステム。 - 【請求項2】 係数表現テスト結果に応じて入力ベクト
ル座標を選択的に加算/減算する前に前記係数表現テス
ト結果を格納する少なくとも1つのテスト状態レジスタ
をさらに含む、請求項1記載の処理エンジン。 - 【請求項3】 アドレス発生器をさらに含む、請求項2
記載の処理エンジン。 - 【請求項4】 前記アドレス発生器が、前記テストユニ
ットによるテスト用の前記係数レジスタの一部を選択す
るレジスタビットアドレスを発生する、請求項3記載の
処理エンジン。 - 【請求項5】 前記レジスタビットアドレスが、少なく
とも1ビットの少なくともビットフィールドをアドレス
指定する、請求項4記載の処理エンジン。 - 【請求項6】 前記アドレス発生器が、巡回ビットアド
レス指定を行う、請求項5記載の処理エンジン。 - 【請求項7】 前記レジスタが、複数のレジスタの中か
ら選択可能なものである、請求項6記載の処理エンジ
ン。 - 【請求項8】 前記アドレス発生器が、入力ベクトル座
標を検索するメモリアドレスを発生する、請求項7記載
の処理エンジン。 - 【請求項9】 前記処理エンジンによって処理された単
一命令に応答して、1つのメモリオペランドをフェッチ
させ、1つの係数レジスタ表現をテストさせるように作
動することができる、請求項8記載の処理エンジン。 - 【請求項10】 前記テストユニットがビットテストユ
ニットであり、前記算術演算装置が算術論理演算装置で
ある、請求項9記載の処理エンジン。 - 【請求項11】 前記テストユニットが、前記レジスタ
のビットを前記係数を表すものとしてテストするように
作動することができる、請求項10記載の処理エンジ
ン。 - 【請求項12】 前記ビットテストユニットが、出力ベ
クトルVYの座標VYjの計算のステップi+1におい
て前記第1の入力ベクトルの係数Ci+1をテストするよ
うに作動することができ、前記算術演算装置が、それと
並列に作動して前記計算のステップiで行われた前記第
1の入力ベクトルの係数Ciのテスト結果に応じて前記
第2の入力ベクトルの座標Xijの条件付き加算/減算を
行うように作動することができる、請求項1記載の処理
エンジン。 - 【請求項13】 キーボードアダプタを介して前記プロ
セッサに接続された一体型キーボードと、 ディスプレイアダプタを介して前記プロセッサに接続さ
れたディスプレイと、 前記プロセッサに接続された無線周波(RF)回路と、 RF回路に接続されたアンテナと、 をさらに含む、請求項1記載のデジタルシステム。 - 【請求項14】 各々がN個の係数を有する複数の入力
ベクトルから出力ベクトルを処理エンジン内で計算する
方法であって、 第1の入力ベクトルのN個の係数の各々の表現を係数レ
ジスタに保持するステップと、 前記第1の入力ベクトルの係数表現をテストするステッ
プと、 前記第1の入力ベクトルの前記係数表現の前記テストの
結果に応じて第2の入力ベクトルの座標を選択的に加算
および/または減算することによって出力ベクトルの座
標を計算するステップと、 を含む、方法。 - 【請求項15】 係数表現テスト結果に応じて前記第2
の入力ベクトルの座標を選択的に加算/減算する前に前
記係数表現テスト結果を格納するステップをさらに含
む、請求項14記載の方法。 - 【請求項16】 前記テストユニットによってテストす
る前記第1のベクトルの係数表現を選択する係数レジス
タアドレスを発生するステップをさらに含む、請求項1
5記載の方法。 - 【請求項17】 前記第2のベクトルの座標を検索する
メモリアドレスを発生するステップをさらに含む、請求
項16記載の方法。 - 【請求項18】 前記係数レジスタ内の第1のベクトル
の1つの係数をテストして、前記出力ベクトルの係数の
計算の各ステップに対してメモリから前記第2のベクト
ルの1つの座標をフェッチするステップをさらに含む、
請求項17記載の方法。 - 【請求項19】 前記第1の入力ベクトルの係数をビッ
トとして表現するステップをさらに含む、請求項18記
載の方法。 - 【請求項20】 【外1】 となるように計算を反復するステップをさらに含み、 前記係数レジスタ内の前記第1の入力ベクトルの係数を
表すビットCi+1をそのビットをテストするためにアド
レス指定するステップと、 前記テストされたビットをビットテスト結果レジスタに
格納するステップと、 前記計算のステップiにおいて行われた前記係数レジス
タのビットCiについてのテストの結果、前記ビットテ
スト結果レジスタに格納されたビットに応じて前記第2
の入力ベクトルのXijオペランドの条件付き加算および
減算の1つを行うステップと、 が全て、前記処理エンジンによって実行された単一命令
に応答して並列に行われる、請求項14記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP98402465A EP0992917B1 (en) | 1998-10-06 | 1998-10-06 | Linear vector computation |
EP98402465.3 | 1998-10-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000322408A true JP2000322408A (ja) | 2000-11-24 |
JP4355410B2 JP4355410B2 (ja) | 2009-11-04 |
Family
ID=8235521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32152699A Expired - Fee Related JP4355410B2 (ja) | 1998-10-06 | 1999-10-06 | 線形ベクトル計算 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6557097B1 (ja) |
EP (1) | EP0992917B1 (ja) |
JP (1) | JP4355410B2 (ja) |
DE (1) | DE69838028T2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011096254A (ja) * | 2009-10-30 | 2011-05-12 | Arm Ltd | 乗累算演算を実行するための装置および方法 |
JP2020526825A (ja) * | 2017-07-10 | 2020-08-31 | エイアールエム リミテッド | ベクトル要素内のビット値のテスト |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6681319B1 (en) * | 1998-10-06 | 2004-01-20 | Texas Instruments Incorporated | Dual access instruction and compound memory access instruction with compatible address fields |
DE10206830B4 (de) * | 2002-02-18 | 2004-10-14 | Systemonic Ag | Verfahren und Anordnung zur Zusammenführung von Daten aus parallelen Datenpfaden |
JP6275474B2 (ja) * | 2013-12-25 | 2018-02-07 | ルネサスエレクトロニクス株式会社 | 半導体装置及びデータ転送装置 |
US10268602B2 (en) * | 2016-09-29 | 2019-04-23 | Micron Technology, Inc. | System and method for individual addressing |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623650A (en) * | 1989-12-29 | 1997-04-22 | Cray Research, Inc. | Method of processing a sequence of conditional vector IF statements |
JPH04242861A (ja) * | 1990-12-28 | 1992-08-31 | Sony Corp | 内積演算回路 |
JP3494787B2 (ja) * | 1995-07-13 | 2004-02-09 | 富士写真フイルム株式会社 | 画像データの補間演算方法およびその方法を使用した装置 |
US5905757A (en) * | 1996-10-04 | 1999-05-18 | Motorola, Inc. | Filter co-processor |
US6286346B1 (en) * | 1998-04-30 | 2001-09-11 | Medtronic, Inc. | Interruptable multiply and/or divide operations for use with an interrupt in a medical device processor |
-
1998
- 1998-10-06 EP EP98402465A patent/EP0992917B1/en not_active Expired - Lifetime
- 1998-10-06 DE DE69838028T patent/DE69838028T2/de not_active Expired - Lifetime
-
1999
- 1999-10-01 US US09/411,473 patent/US6557097B1/en not_active Expired - Lifetime
- 1999-10-06 JP JP32152699A patent/JP4355410B2/ja not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011096254A (ja) * | 2009-10-30 | 2011-05-12 | Arm Ltd | 乗累算演算を実行するための装置および方法 |
JP2020526825A (ja) * | 2017-07-10 | 2020-08-31 | エイアールエム リミテッド | ベクトル要素内のビット値のテスト |
US11422807B2 (en) | 2017-07-10 | 2022-08-23 | Arm Limited | Testing bit values inside vector elements |
Also Published As
Publication number | Publication date |
---|---|
JP4355410B2 (ja) | 2009-11-04 |
EP0992917B1 (en) | 2007-07-04 |
DE69838028D1 (de) | 2007-08-16 |
DE69838028T2 (de) | 2008-03-13 |
EP0992917A1 (en) | 2000-04-12 |
US6557097B1 (en) | 2003-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6363470B1 (en) | Circular buffer management | |
EP0927393B1 (en) | Digital signal processing integrated circuit architecture | |
US6810475B1 (en) | Processor with pipeline conflict resolution using distributed arbitration and shadow registers | |
US7127593B2 (en) | Conditional execution with multiple destination stores | |
KR19980018072A (ko) | 벡터 레지스터의 복수 뱅크를 사용한 단일 명령 복수 데이터 처리 | |
US6990570B2 (en) | Processor with a computer repeat instruction | |
US6826679B1 (en) | Processor with pointer tracking to eliminate redundant memory fetches | |
US20120204008A1 (en) | Processor with a Hybrid Instruction Queue with Instruction Elaboration Between Sections | |
US20120284488A1 (en) | Methods and Apparatus for Constant Extension in a Processor | |
EP0927389B1 (en) | Register addressing in a data processing apparatus | |
JP3789583B2 (ja) | データ処理装置 | |
US7861071B2 (en) | Conditional branch instruction capable of testing a plurality of indicators in a predicate register | |
US6502152B1 (en) | Dual interrupt vector mapping | |
JP2000322408A (ja) | 線形ベクトル計算 | |
JP2000305779A (ja) | パイプライン保護 | |
KR19980018065A (ko) | 스칼라/벡터 연산이 조합된 단일 명령 복수 데이터 처리 | |
JP2004527824A (ja) | データプロセッサ及び処理方法 | |
KR20000048528A (ko) | 데이터 처리 조건 코드 플래그 | |
US7577824B2 (en) | Methods and apparatus for storing expanded width instructions in a VLIW memory for deferred execution | |
CN111814093A (zh) | 一种乘累加指令的处理方法和处理装置 | |
US6681319B1 (en) | Dual access instruction and compound memory access instruction with compatible address fields | |
US6499098B1 (en) | Processor with instruction qualifiers to control MMU operation | |
JP2000200212A (ja) | 巡回バッファ管理 | |
US6598151B1 (en) | Stack Pointer Management | |
CN111984314A (zh) | 使用位反转顺序的矢量存储 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061006 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080501 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080919 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20081219 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20081225 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090119 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090303 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090529 |
|
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: 20090701 |
|
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: 20090803 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4355410 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120807 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130807 Year of fee payment: 4 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |