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
Application number
JP11321526A
Other languages
English (en)
Other versions
JP4355410B2 (ja
Inventor
Gael Clave
クレイブ ガエル
Karim Djafarian
ドジャファリアン カリム
Gilbert Laurenti
ラウレンティ ジルベルト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JP2000322408A publication Critical patent/JP2000322408A/ja
Application granted granted Critical
Publication of JP4355410B2 publication Critical patent/JP4355410B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/607Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/74Selecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/762Arrangements 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/764Masking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address 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
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3552Indexed addressing using wraparound, e.g. modulo or circular addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent 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/3891Concurrent 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

(57)【要約】 【課題】 N個の係数を有するN個のベクトルの一次結
合として出力ベクトルを計算する処理エンジンを得る。 【解決手段】 処理エンジンは、第1の入力ベクトルの
N個の係数の各表現を保持する係数レジスタ940を含
む。係数レジスタの選択部分を各係数表現に対してテス
トするテストユニット950が設けられる。算術演算装
置970は、テスト結果に応じて第2の入力ベクトルの
座標を選択的に加減算して出力ベクトルの各座標を計算
する。ALU演算と並列な係数テスト演算を使用して消
費電力が低く維持される。出力ベクトルVYの各座標を
N+1ステップアルゴリズムにより計算することがで
き、この計算はALUと並列に作動するビットテストユ
ニットにより行われる。CPUレジスタのビットCi+1
がアドレス指定されテンポラリレジスタでテストされ第
2の入力ベクトルXijの座標の条件付き加減算が実施さ
れる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、デジタル処理シス
テムにおける線形ベクトルの計算に関する。
【0002】
【従来の技術】特に、本発明は、N個の係数を有するN
個のベクトル
【0003】
【外2】
【0004】(以下、
【0005】
【外3】
【0006】は「VX」と記す。)の一次結合として定
義される任意のベクトル
【0007】
【外4】
【0008】(以下、「VY」と記す。)の計算に関す
る。
【0009】
【数1】
【0010】いくつかの信号処理アプリケーション、た
とえばGSM(Global System forMobiles)ハーフレー
トボコーダの処理演算は、
【0011】
【外5】
【0012】係数に対する有効なアルゴリズム依存処理
を必要とする。このような処理演算の例は、係数の円順
列と、係数の値の補数処理とである。
【0013】典型的なデジタル信号プロセッサ(DS
P)のインプリメンテーションは次のようである。ま
ず、
【0014】
【外6】
【0015】係数が、倍数ビット(16,3
2,...)で符号化された分数(1/2,−1/2)
にビット表現(0,1)から変換される。次に、各VY
ベクトル座標
【0016】
【外7】
【0017】が、Nステップアルゴリズムにより計算さ
れる。計算は、次式で表される乗算および累算ユニット
により行われ、
【0018】
【数2】
【0019】ここで、
【0020】
【外8】
【0021】はベクトルVXiの座標である。
【0022】2つのメモリオペランド(Ci,Xij)お
よび乗算オペランドが計算の各ステップに必要であるこ
とが分かるであろう。係数アドレス指定がアドレス発生
ユニットを使用して行われ、必要ならば、間接メモリア
ドレス指定、たとえば巡回ポスト変更アドレス指定が行
われる。
【0023】この既知の方法の欠点は、多数のメモリア
ドレス指定演算およびオペランドフェッチ演算を必要と
することである。そのため、バスの可用性が低減され、
すべてのバス演算を駆動するのに大きな消費電力が必要
となる。乗算演算の使用にも大きな消費電力が必要であ
る。
【0024】
【発明が解決しようとする課題】現在の処理エンジン設
計では、生態学的および経済的見地の両方から消費電力
を低減することが望ましい。特に、限定的ではないが、
移動体電気通信応用などの移動体処理応用では、必要以
上に性能を犠牲にすることなく消費電力をできるだけ低
く維持することが望ましい。
【0025】
【課題を解決するための手段】本発明の第1の態様によ
れば、N個の係数を有するN個の入力ベクトルの一次結
合として出力ベクトルを計算する処理エンジンが提供さ
れる。処理エンジンは、第1の入力ベクトルに対するN
個の係数の表現を保持する係数レジスタを含んでいる。
各係数表現に対する係数レジスタの選択部分をテストす
るテストユニットが設けられている。係数表現のテスト
結果に応じて第2の入力ベクトルに対する入力ベクトル
座標の選択的加算および/または減算によって出力ベク
トルの各座標を計算する算術演算ユニットが設けられて
いる。
【0026】本発明の一実施例では、線形ベクトルの結
合の計算に関して従来技術に比べていくつかの利点を達
成することができる。
【0027】MAC命令ではなくALU命令と組み合わ
せたテスト命令(たとえば、ビットテスト命令)が使用
されるため、序文に記載した従来技術に従って作動する
処理エンジンの消費電力を低減することができる。ま
た、計算のステップ当たり2つのデータメモリアクセス
ではなくたった一つのデータメモリアクセスが必要とさ
れる。
【0028】メモリリソースアクセス競合によるプロセ
ッサストールがないため、実行性能は、序文に記載した
従来技術に従って作動する処理エンジンのそれとほぼ同
等である。また、所望により、並列実行を行って1サイ
クルの最小オーバヘッドを隠蔽することができる。
【0029】アドレス発生ユニットを使用してCPUレ
ジスタにメモリアドレスおよびビットアドレスを発生す
ることができるフレキシブルアドレス指定が提供され
る。ハードウェアオーバヘッドは最小である。
【0030】本発明の一実施例では、第1の入力ベクト
ルに対してビット(0,1)として表される
【0031】
【外9】
【0032】係数が、CPUレジスタに格納される。
【0033】出力ベクトルVYの各座標は、N+1ステ
ップアルゴリズムで計算される。その計算は、ALUユ
ニットと並列に作動するビットテストユニットで行われ
る。
【0034】
【数3】
【0035】計算のステップ
【0036】
【外10】
【0037】において、CPUレジスタのビットCi+1
がアドレス指定され、テストされたビットはテンポラリ
レジスタに格納され、第2の入力ベクトルXijの座標の
条件付き加算/減算が、そのテストされたビットに基づ
いて行われる。
【0038】係数テスト結果に応じた第2の入力ベクト
ルの座標の選択的加算/減算の前に係数テスト結果を格
納するテスト状態レジスタを設けることができる。
【0039】テストユニットがテストする適切な係数表
現(たとえば、1以上のビット)を保持する係数レジス
タの一部(たとえば、ビット位置またはビットフィール
ド)を選択するレジスタビットポインタアドレスを発生
するアドレス発生器を設けることができる。同じまたは
異なるアドレス発生器が、第2の入力ベクトルに対する
座標を検索するためのメモリアドレスを発生することも
できる。同じデータアドレス発生ハードウェアが使用さ
れる場合には、シリコンが経済的に使用され、使用時の
消費電力も経済的となる。係数レジスタは、Nよりも多
いビットを含むことができる。ポスト変更を伴う巡回ビ
ットアドレス指定を使用して、レジスタを効率的に使用
し、係数をラップラウンドまたはモジュロ形式で変更す
ることができる。
【0040】メモリオペランドがフェッチされ、係数表
現(たとえば、ビット)が計算の各ステップに対してテ
ストされる。テストユニットは、ビットテストユニット
とすることができる。
【0041】本発明の一例では、ビットテストユニット
は、ベクトルVYの座標VYjの計算のステップi+1
で作動して係数Ci+1をテストすることができ、また、
算術演算装置は、それと並列に作動して計算のステップ
iで実行された係数レジスタのビットCiのテスト結果
に応じてオペランドXijの条件付き加算/減算を実行す
ることができる。
【0042】したがって、出力ベクトル座標の計算は、
一連のN+1ステップとして実行され得る。
【0043】処理エンジンは、デジタル信号プロセッサ
の形とすることができ、集積回路に集積することができ
る。
【0044】本発明は、データ入力装置,ディスプレ
イ,アンテナおよび上述した処理エンジンを含む電気通
信装置も提供する。
【0045】本発明の他の態様によれば、処理エンジン
でN個の係数を有する入力ベクトルの一次結合として出
力ベクトルを計算する方法が提供される。この方法は、
第1の入力ベクトルのN個の係数の各々の表現を係数レ
ジスタに保持するステップと、第1の入力ベクトルの各
係数表現を選択的にテストするステップと、第1の入力
ベクトルの係数表現のテスト結果に応じた第2のベクト
ルの座標の選択的加算および/または減算によって出力
ベクトルの座標を計算するステップと、を含む。
【0046】本発明の一実施例では、出力ベクトルVY
の座標の計算は一連のN+1ステップとして実行され、
計算のステップ
【0047】
【外11】
【0048】において、第1の入力ベクトルの係数を表
すビットCi+1が、そのビットをテストする係数レジス
タでアドレス指定され、テストされたビットが、ビット
テスト結果レジスタに格納され、第2の入力ベクトルの
ij座標の条件付き加算および減算の1つが、計算のス
テップiで実行された係数レジスタのビットCiのテス
トの結果としてビットテストレジスタに格納されたビッ
トに応じて実行される。
【0049】1つのメモリオペランド(Xij)しか計算
の各ステップに対して必要としないことが分かるであろ
う。係数アドレス指定は、アドレス発生ユニットを介し
て行うことができ、任意の間接レジスタビットアドレス
指定が使用される(たとえば、巡回ポスト変更)。
【0050】
【発明の実施の形態】本発明は、たとえば特定用途集積
回路(ASIC)で実現されるデジタル信号プロセッサ
(DSP)に特に応用されるが、他の形式の処理エンジ
ンにも応用される。
【0051】図1は、本発明の一実施例を有するマイク
ロプロセッサ10のブロック図である。マイクロプロセ
ッサ10は、デジタル信号プロセッサ(DSP)であ
る。分かり易くするために、図1は、マイクロプロセッ
サ10の本発明の一実施例を理解するのに関係のある部
分のみを示す。DSPの一般的構造の詳細は、よく知ら
れており、他で容易に確かめることができる。たとえ
ば、フレデリック・ブートウドらの米国特許第5,07
2,418号には、DSPが詳細に記載されており、本
開示の一部としてここに援用する。ギャリー・スオボダ
らの米国特許第5,329,471号には、DSPのテ
ストおよびエミュレート方法が詳細に記載されており、
本開示の一部としてここに援用する。マイクロプロセッ
サの分野の当業者であれば本発明を製造し使用できるよ
うに、マイクロプロセッサ10の本発明の一実施例に関
連する部分の詳細が、以下に十分詳しく説明される。
【0052】本発明の態様から利益を得ることができる
いくつかのシステムの例が、本開示の一部としてここに
援用される米国特許第5,072,418号に、特に米
国特許第5,072,418号の図2〜図18に記載さ
れている。性能を改善するかコストを低減する本発明の
一態様を組み入れたマイクロプロセッサを使用して、米
国特許第5,072,418号に記載されたシステムを
さらに改善することができる。そのようなシステムは、
限定はしないが、産業プロセスコントロール,自動車シ
ステム,モータコントロール,ロボットコントロールシ
ステム,衛星電気通信システム,エコーキャンセリング
システム,モデム,ビデオイメージングシステム,音声
認識システムおよび暗号付ボコーダ−モデムシステムな
どを含む。
【0053】図1のマイクロプロセッサのさまざまなア
ーキテクチュア上の特徴および完全な命令セットの説明
が、同じ譲受人による特許出願第 号(TI−
28433)に記載されており、本開示の一部としてこ
こに援用する。
【0054】次に、本発明によるプロセッサの一例の基
本的アーキテクチュアについて説明する。図1は、本発
明の一つの典型的な実施例を形成するプロセッサ10の
全体略図である。プロセッサ10は、処理エンジン10
0とプロセッサバックプレーン20とを含んでいる。本
実施例では、プロセッサは、特定用途集積回路(ASI
C)に実現されたデジタル信号プロセッサ10である。
【0055】図1に示すように、処理エンジン100
は、処理コア102と処理コア102を処理コア102
の外部のメモリユニットとインターフェイスさせるメモ
リインターフェイスすなわち管理ユニット104とを有
する中央処理装置(CPU)を形成する。
【0056】プロセッサバックプレーン20は、バック
プレーンバス22を含み、それには処理エンジンのメモ
リ管理ユニット104が接続されている。バックプレー
ンバス22には、命令キャッシュメモリ24,周辺装置
26および外部インターフェイス28も接続されてい
る。
【0057】他の実施例では、異なる構成および/また
は異なる技術を使用して本発明を実現できることが分か
るであろう。たとえば、処理エンジン100はプロセッ
サ10を形成することができ、プロセッサバックプレー
ン20はそこから分離されている。処理エンジン100
は、たとえば、バックプレーンバス22,周辺装置およ
び外部インターフェイスを支持するバックプレーン20
から独立してその上に搭載されたDSPであり得る。処
理エンジン100は、たとえば、DSPではなくマイク
ロプロセッサとすることができ、ASIC技術以外の技
術で実現することができる。処理エンジンまたは処理エ
ンジンを含むプロセッサは1つ以上の集積回路に実現す
ることができる。
【0058】図2は、処理コア102の一実施例の基本
構造を示す。図から分かるように、処理コア102は、
4つの要素、すなわち、命令バッファユニット(Iユニ
ット)106と3つの実行ユニットとを含んでいる。実
行ユニットは、プログラムフローユニット(Pユニッ
ト)108と、アドレスデータフローユニット(Aユニ
ット)110と、命令バッファユニット(Iユニット)
106から復号された命令を実行しプログラムフローを
制御かつ監視するデータ計算ユニット(Dユニット)1
12とである。
【0059】図3は、処理コア102のPユニット10
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内のサブユニ
ットに結合されている。
【0060】図3に示すように、本実施例では、Aユニ
ット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内のアドレス発生を制御し監視する係数
およびスタックポインタレジスタとを含んでいる。
【0061】Aユニット110は、加算,減算およびA
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にも
結合されている。
【0062】図から分かるように、Dユニット112
は、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のサブユニットに
も結合されている。
【0063】図4を参照すると、32ワード命令バッフ
ァキュー(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に現在ディスパッチされている
命令のプログラムメモリ内のアドレスを指示する。
【0064】命令は、48ビットワードに形成され、マ
ルチプレクサ520,521を介して48ビットバス5
16によって命令デコーダ512,514にロードされ
る。当業者ならば、命令は48ビット以外のワードに形
成することができること、また、本発明は前記した特定
の実施例に限定されるものではないことが、分かるであ
ろう。
【0065】バス516は、任意の1命令サイクル中
に、デコーダ当たり1つずつ、最大2つの命令をロード
することができる。命令の組合せは、48ビットバスの
両端間にわたって適合する8,16,24,32,40
および48ビットのフォーマットの任意の組合せとする
ことができる。1サイクル中に1命令しかロードできな
い場合には、デコーダ1,512がデコーダ2,514
に優先してロードされる。次に、各命令は、それらを実
行するために、また、命令または演算が実行されるべき
データにアクセスするために、各機能ユニットに転送さ
れる。命令デコーダに通される前に、命令はバイト境界
上でアラインされる。アライメントは、その復号中に前
の命令に対して引き出されたフォーマットに基づいて行
われる。バイト境界を有する命令のアライメントに関連
する多重化は、マルチプレクサ520,521で実行さ
れる。
【0066】プロセッサコア102は7ステージパイプ
ラインを介して命令を実行し、その各ステージは図5を
参照して説明される。
【0067】パイプラインの第1ステージは、PRE−
FETCH(P0)ステージ202であり、このステー
ジ中に、メモリインターフェイスまたはメモリ管理ユニ
ット104のアドレスバス(PAB)118上にアドレ
スを表明することによって次のプログラムメモリ位置が
アドレス指定される。
【0068】次のステージ、FETCH(P1)ステー
ジ204では、プログラムメモリが読み出され、Iユニ
ット106がメモリ管理ユニット104からPBバス1
22を介して充填される。
【0069】パイプラインはPRE−FETCHおよび
FETCHステージ中に割り込まれて逐次プログラムフ
ローを中断してプログラムメモリ内の他の命令、たとえ
ば分岐命令を指示することができる点で、PRE−FE
TCHおよびFETCHステージは残りのパイプライン
ステージから独立している。
【0070】次に、命令バッファ内の次の命令が、第3
ステージDECODE(P2)206でデコーダ512
または複数のデコーダ514にディスパッチされ、そこ
で、命令は、復号されて、その命令を実行する実行ユニ
ット、たとえばPユニット108,Aユニット110ま
たはDユニット112にディスパッチされる。復号ステ
ージ206は、命令のクラスを示す第1の部分と命令の
フォーマットを示す第2の部分と命令に対するアドレス
指定モードを示す第3の部分とを含む命令の少なくとも
一部を復号することを含んでいる。
【0071】次のステージはADDRESS(P3)ス
テージ208であり、そこでは、命令内で使用されるデ
ータのアドレスが計算されるか、命令がプログラム分岐
すなわちジャンプを必要とする場合には新しいプログラ
ムアドレスが計算される。各計算は、Aユニット110
またはPユニット108でそれぞれ行われる。
【0072】ACCESS(P4)ステージ210で
は、リードオペランドのアドレスが出力されたのち、X
mem間接アドレス指定モードを有するDAGEN X
演算子でアドレスが発生されているメモリオペランド
が、間接アドレス指定されたXメモリ(Xmem)から
読み出される。
【0073】パイプラインの次のステージはREAD
(P5)ステージ212であり、そこでは、Ymem間
接アドレス指定モードを有するDAGEN Y演算子内
または係数アドレスモードを有するDAGEN C演算
子内でアドレスが発生されているメモリオペランドが、
読み出される。命令の結果が書き込まれるメモリ位置の
アドレスが出力される。
【0074】デュアルアクセスの場合には、リードオペ
ランドをYパスで発生し、ライトオペランドをXパスで
発生することもできる。
【0075】最後に、命令がAユニット110内または
Dユニット112内で実行される実行EXEC(P6)
ステージ214がある。次に、結果がデータレジスタま
たは累算器に格納されるか、リード/モディファイ/ラ
イト用またはストア命令用のメモリに書き込まれる。さ
らに、シフト演算がEXECステージ中に累算器内のデ
ータになされる。
【0076】次に、パイプラインプロセッサの動作の基
本的原理について図6を参照して説明する。図6から分
かるように、第1の命令302に対して、連続パイプラ
インステージが期間T1〜T7にわたって行われる。各期
間はプロセッサマシンクロックに対するクロックサイク
ルである。前の命令が次のパイプラインステージに移行
しているため、第2の命令304が期間T2でパイプラ
インに入ることができる。第3の命令306に対して、
PRE−FETCHステージ202が期間T3で行われ
る。図6から分かるように、7ステージパイプラインに
対して、合計7つの命令を同時に処理することができ
る。7つの命令302〜314の全てに対して、図6は
期間T7でそれら全てが処理中であることを示してい
る。このような構造は命令の処理に一形式の並列性を付
加する。
【0077】図7に示すように、本発明のこの実施例
は、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に結合されている。
【0078】より詳細には、Pユニット108は24ビ
ットプログラムアドレスバス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に結合されている。
【0079】図7は、たとえば分岐命令を転送する、I
ユニット106からPユニット108への命令の通過を
参照符号124で表示している。さらに、図7は、Iユ
ニット106からAユニット110およびDユニット1
12へのデータの通過を参照符号126,128でそれ
ぞれ表示している。
【0080】本発明のこの実施例では、処理エンジン1
00はいくつかのフォーマットでマシン命令に応答す
る。さまざまなフォーマットのこのような命令の例を以
下に示す。
【0081】8ビット命令:○○○○ ○○○○ これは、8ビット命令、たとえばメモリマップ修飾子
(MMAP())またはリードポート修飾子(readpor
t())を表す。このような修飾子は単に8ビット操作符
号(○○○○ ○○○○)を含むのみである。このよう
な場合、並列性はインプリシットである。
【0082】16ビット命令:○○○○ ○○○○E F
SSS FDDD これは、16ビット命令、たとえばデスティネーション
レジスタの内容(たとえば、dst)がそのレジスタの
前の内容(dst)とソースレジスタの内容(src)
との和となる命令、すなわち、
【0083】
【数4】
【0084】の一例を表わす。
【0085】このような命令は、1ビットパラレルイネ
ーブルフィールド(E)と4ビットソースレジスタ識別
子(FSSS)と4ビットデスティネーションレジスタ
識別子(FDDD)とを有する7ビット操作符号(○○
○○ ○○○)である。
【0086】16ビット命令:○○○○ FDDD PP
PM MMMI これは、たとえばデスティネーションレジスタの内容
(たとえば、dst)がメモリ位置の内容(Smem)
となる、すなわち、
【0087】
【数5】
【0088】16ビット命令のもう1つの例である。
【0089】このような命令は、4ビット操作符号(○
○○○)と4ビットデスティネーションレジスタ識別子
(FDDD)と3ビットポインタアドレス(PPP)と
4ビットアドレス変更子(M MMM)と直接/間接ア
ドレスインジケータ(I)とを含んでいる。
【0090】24ビット命令:○○○○ ○○○E LL
LL LLLL oCCC CCCC これは、24ビット命令、たとえば条件分岐命令および
条件が満たされる場合のオフセット(L8)を表す、す
なわち、
【0091】
【数6】
【0092】の一例を表わす。
【0093】このような命令は、1ビットパラレルイネ
ーブルフィールド(E)と8ビット分岐オフセット(L
LLL LLLL)と1ビット操作符号拡張(o)と7
ビット条件フィールド(CCC CCCC)とを有する
7ビット操作符号(○○○○○○○)を含んでいる。
【0094】24ビット命令:○○○○ ○○○○ PP
PM MMMI SSDD ooU% これは、24ビット命令のもう1つの例、たとえば累算
器の内容(ACy)がもう1つの累算器の内容(ACx
およびメモリ位置の内容(随意丸めがある)の二乗の和
を丸めた結果となり、データレジスタの内容(DR3)
が随意メモリ位置の内容となる単一メモリオペランド命
令、すなわち、
【0095】
【数7】
【0096】のもう1つの例である。
【0097】このような命令は、8ビット操作符号(○
○○○ ○○○○)と3ビットポインタアドレス(PP
P)と4ビットアドレス変更子(M MMM)と1ビッ
ト直接/間接アドレスインジケータフィールド(I)と
2ビットソース累算器識別子(SS)と2ビットデステ
ィネーション累算器識別子(DD)と2ビット操作符号
拡張(oo)と更新条件フィールド(u)と1ビット丸
めオプションフィールド(%)とを含んでいる。
【0098】32ビット命令:○○○○ ○○○○ PP
PM MMMI KKKK KKKKKKKK KKKK これは、32ビット命令、たとえばメモリ位置(Sme
m)の一定値(K16)との符号比較に応じてテストレ
ジスタの内容(TC1)が1または0に設定される命
令、すなわち、
【0099】
【数8】
【0100】の一例である。
【0101】このような命令は、8ビット操作符号(○
○○○ ○○○○)と3ビットポインタアドレス(PP
P)と4ビットアドレス変更子(M MMM)と1ビッ
ト直接/間接アドレスインジケータフィールド(I)と
16ビット定数フィールド(KKKK KKKK KKK
K KKKK)とを含んでいる。
【0102】ビット操作命令は、メモリアクセスを行う
単一メモリ命令と同じフォーマットを有している。図8
は、このような命令の一例を示す。ビット操作命令の例
は、ビットテスト命令,ビットセット命令,ビットクリ
ア命令およびビット補数命令である。図8に示すよう
に、ビット操作命令900は、操作符号に対する演算フ
ィールド902とアドレス指定フィールド904とデー
タレジスタ選択フィールド906とを含んでいる。下記
の表1に示すように、命令のアドレス指定フィールド
は、実行された命令とは独立してCPUのアドレス発生
を制御する。
【0103】
【表1】
【0104】序文で述べたように、本発明は、デジタル
処理システムにおける線形ベクトルの結合に関する。
【0105】後述するように、本発明のこの実施例は、
ビットテストの結果に応じて加算または減算を実行する
命令を使用する。このタイプのいくつかの命令フォーマ
ットが下記の表2に示されている。
【0106】
【表2】
【0107】図9は、ベクトルの一次結合の従来のイン
プリメンテーションの表現である。
【0108】最初に、
【0109】
【外12】
【0110】係数が、ビット表現(0,1)から2n
数形式のNビットで符号化された分数(1/2,−1/
2)に変換される。次に、VYベクトル座標
【0111】
【外13】
【0112】がNステップアルゴリズムにより計算され
る。計算は、乗算および累算ユニットにより次式で表さ
れるように行われる。
【0113】
【数9】
【0114】ここで、
【0115】
【外14】
【0116】はベクトルVXiの座標である。
【0117】図10は、本発明の一実施例に従って実施
されるベクトルの一次結合の別の表現である。すなわ
ち、本発明の一実施例において、ベクトルの一次結合は
次式に従って計算される。
【0118】
【数10】
【0119】ここで、係数Ci=0は−1の乗算を表
す。または、係数Ci=0は+1の乗算を表すことがで
きる。
【0120】ビット(0,1)として表される
【0121】
【外15】
【0122】係数は、CPUレジスタ内に格納され、ま
た、各VYベクトル座標は、ALUユニットと並列動作
するビットテストユニットによりN+1ステップアルゴ
リズムで計算される。
【0123】計算のステップ
【0124】
【外16】
【0125】において、 − CPUのビットCi+1がアドレス指定され、 − このビットがテンポラリレジスタでテストされ、 − Xijオペランドの条件付き加算/減算が実行され
る。
【0126】図11は、複合命令、特に条件付き加算/
減算命令と並列のビットテスト命令を使用して図3に関
して前記した処理エンジンの要素を制御する方法の全体
略図である。
【0127】簡単のため図11の命令900におけるフ
ィールドの順序は図8に関して変更されていることに注
意願いたい。
【0128】アドレス指定フィールド904は、2つの
アドレス、すなわち、ビットアドレスおよびメモリオペ
ランドアドレスを含む。
【0129】アドレスフィールド904の内容が、ライ
ン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は、ポスト
変更を有する巡回アドレス指定を行うように構成するこ
とができる。同じまたは異なるハードウェアを使用し
て、ビットレジスタアドレス指定またはメモリオペラン
ドアドレス指定用のアドレスを発生することができる。
【0130】データレジスタ選択フィールド906の内
容が第3および第4のマルチプレクサ946,947に
供給される。第3のマルチプレクサ946に供給される
レジスタ選択ビットによって、データレジスタ940
(図3のAユニットレジスタファイル30のデータレジ
スタDRX[16]またはARX[16]とすることがで
きる)の選択をライン948を介してビット操作ユニッ
ト950に出力することができる。このレジスタは係数
【0131】
【外17】
【0132】を含む。レジスタは、係数に対して厳密に
必要な長さ(たとえば、NビットではなくN+1ビッ
ト)よりも長くすることができる。それにより、係数
は、レジスタを“ラップ−ラウンド”するように配列し
て、ポスト変更を有する巡回ビットアドレス指定を利用
してレジスタをアドレス指定することができる。すなわ
ち、係数
【0133】
【外18】
【0134】は最初にN+1ビットレジスタの1からN
ビットに保持されるものとする。すると、第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されて、そこに格納される。
【0135】図12は、線形ベクトルの計算方法におけ
る一連のステップを示すフロー図である。本方法のさま
ざまなステップを図11を参照して説明する。
【0136】この方法に従って、ベクトルVYの各座標
∀1≦j≦Mが次々に計算される。S0において、最初
のベクトル座標J=1についてプロセスが開始する。S
1において、最初の入力ベクトルに対する係数がデータ
レジスタファイル940に格納される。S2において、
その座標を計算するプロセスの最初のステップ(ステッ
プi=1)は、命令900のアドレス指定フィールド9
04からのレジスタビットアドレス情報を使用したデー
タアドレス発生ユニット910におけるアドレス計算に
より決定される、データレジスタファイル940内のデ
ータレジスタ940内のビットC1をアドレス指定する
ことを含んでいる。このビットはテストされて、その結
果(ここでは、テストしたビット値)がテスト状態レジ
スタファイル960に格納される。命令900のアドレ
ス指定フィールド904内のアドレス情報を使用して、
最初のxijメモリオペランドに対するアドレスもアドレ
ス発生ユニットにおいて発生され、そのオペランドの取
出しが行われる。
【0137】S3において、このプロセスがステップi
+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において加算するか減算するかの決
定を異なるものとすることができることに留意願いた
い。しかしながら、最も直接的な方法は本実施例で説明
したものである)。
【0138】すなわち、計算の
【0139】
【外19】
【0140】に対する各反復において、CPUレジスタ
のビットCi+1がアドレス指定され、このビットがテン
ポラリレジスタにおいてテストされ、Xijオペランドの
条件付き加算/減算が行われる。
【0141】S4において、I<Nであれば、IはS5
において増分されて、制御はS3に戻る。I=Nであれ
ば、制御はS6に通される。S6において、Xij(I=
N)の最終の条件付き加算/減算が行われる。
【0142】S6において、ベクトルVYの座標がさら
に計算され(すなわち、j<M)、S7において、パス
956上の補数帰還によりデータレジスタファイル94
0内のデータレジスタ内の係数が更新される。前記した
ように、これはポスト変更を有する巡回ビットアドレス
指定でも達成することができる。また、jの値が増分さ
れて、制御はS2に戻る。
【0143】それ以上座標が計算されない場合には、す
なわちj=Mの場合には、S8でベクトルVYの計算が
終了する。
【0144】したがって、このプロセスは下記の計算を
行うことができる。
【0145】
【数11】
【0146】図13は、図1のプロセッサ10を内蔵す
る集積回路40の略図である。集積回路は特定用途集積
回路(ASIC)技術を使用して実現することができ
る。図から分かるように、集積回路は複数の表面実装コ
ンタクト42を含んでいる。しかしながら、集積回路
は、他の構成を含むことができ、たとえば、回路下面上
の複数のピンがゼロ挿入力ソケット内に実装される構成
や、その他任意の適切な構成とすることができる。
【0147】たとえば図13におけるような集積回路内
に内蔵されるプロセッサ10などの処理エンジンの1つ
の応用は、移動ワイヤレス電気通信装置などの電気通信
装置である。図14に、このような電気通信装置の一例
を示す。図14に示す特定の例では、電気通信装置は、
キーボードまたはキーボード12およびディスプレイ1
4のような一体型ユーザ入力装置付き移動電話機11で
ある。ディスプレイは、たとえば液晶ディスプレイやT
FTディスプレイなどの適切な技術を使用して実現する
ことができる。プロセッサ10は、キーボード12に接
続され、そこで適切なキーボードアダプタ(不図示)を
介してディスプレイ14に接続され、そこで適切なディ
スプレイアダプタ(不図示)を介して電気通信インター
フェイスすなわちトランシーバ16、たとえば無線周波
数(RF)回路を含むワイヤレス電気通信インターフェ
イスに接続される。無線周波数回路は、プロセッサ10
を含む集積回路40に内蔵したり、独立したものとする
ことができる。
【0148】2つのベクトルの一次結合を効率的に計算
する方法,システムおよび装置について説明してきた。
特定の実施例に関して説明してきたが、本発明はそれに
限定はされず、発明の範囲内で多くの変更,追加および
/または置換を行えることが分かるであろう。
【0149】ここで使用した用語「加えられる」,「接
続される」および「接続」は、電気接続経路内に付加素
子がある場合も含めて、電気的に接続されることを意味
する。
【0150】実施例について本発明を説明してきたが、
この明細書には制約的な意味合いはない。当業者なら
ば、この明細書を読めば本発明の他のさまざまな実施例
が自明であろう。したがって、添付した特許請求の範囲
は発明の真の範囲および精神に含まれる実施例のこのよ
うないかなる変更も包含するものとする。
【0151】本出願は1998年10月6日に欧州で出
願されたS.N.98402465.3(TI−276
79EU)および1998年10月6日に欧州で出願さ
れたS.N.98402455.4(TI−28433
EU)に優先権を請求するものである。
【図面の簡単な説明】
【図1】本発明の実施例に従ったプロセッサの略ブロッ
ク図である。
【図2】図1のプロセッサのコアの略図である。
【図3】図1のプロセッサのコアのさまざまな実行ユニ
ットのより詳細な略ブロック図である。
【図4】図1のプロセッサの命令バッファキューおよび
命令デコーダコントローラの略図である。
【図5】図1のプロセッサのパイプラインフェーズの表
現である。
【図6】図1のプロセッサにおけるパイプラインの動作
例の線図である。
【図7】図1のプロセッサのパイプラインの動作を説明
するためのプロセッサのコアの略表現である。
【図8】ビットテスト命令の略表現である。
【図9】ベクトルの一次結合の従来の表現。
【図10】本発明の実施例に従って実施されるベクトル
の一次結合の代替表である。
【図11】図1のプロセッサの要素の全体略図である。
【図12】本発明に従った線形ベクトルの計算方法にお
ける一連のステップを示す略図である。
【図13】図1のプロセッサを内蔵した集積回路の略表
現である。
【図14】図1のプロセッサを内蔵した電気通信装置の
略表現である。
【符号の説明】
10 マイクロプロセッサ 20 プロセッサバックプレーン 22 バックプレーンバス 24 命令キャッシュメモリ 26 周辺装置 28 外部インターフェイス 30 レジスタファイル 32 データアドレス発生サブユニット 34,970 ALU 36 Dユニットレジスタファイル 38 DユニットALU 40 Dユニットシフタ 42,44 累算ユニット 100 処理エンジン 102 処理コア 104 インターフェイスユニット 106 命令バッファユニット 108 プログラムフローユニット 110 アドレスデータフローユニット 112 データ通信ユニット 118 アドレスバス 120 データバス 122 プログラムリードバス 128 プログラムアドレスバス 130,132 データライトバス 134,136,144 データリードバス 140 命令定数データバス 142 アドレス定数バス 146,148 累算器ライトバス 150,152 累算器リードバス 160,162 データライトアドレスバス 502 命令バッファキュー 504 レジスタ 512,514 命令デコーダ 520,521,918,922,946,947 マ
ルチプレクサ 530 ライトプログラムカウンタ 532 ローカルライトプログラムカウンタ 534 リードプログラムカウンタ 536 ローカルリードプログラムカウンタ 910 アドレス発生ユニット 920 ポインタレジスタファイル 932 データメモリアドレスバス 940 データレジスタファイル 950 ビット操作ユニット 960 テスト状態レジスタファイル 968 データメモリリードバス 970 算術演算装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 カリム ドジャファリアン フランス国 ベンセ,バティメント ビー 1,レス トスカネス,ボウレバルド ド ゥ ラ レイネ ジーン 453 (72)発明者 ジルベルト ラウレンティ フランス国 セント ポール ドゥ ベン セ,シェマン ドゥ セント エティー ネ,1490

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 N個の係数を有するN個の入力ベクトル
    の結合として出力ベクトルを計算する処理エンジンを含
    むデジタルシステムであって、 前記処理エンジンが、 第1の入力ベクトル用の係数の表現を保持する係数レジ
    スタと、 該係数レジスタの選択部分を係数表現に対してテストす
    るテストユニットと、 該係数表現テストの結果に応じて第2の入力ベクトルの
    入力ベクトル座標を選択的に加算および/または減算す
    ることによって出力ベクトルの各座標を計算する算術演
    算装置と、 を含む、デジタルシステム。
  2. 【請求項2】 係数表現テスト結果に応じて入力ベクト
    ル座標を選択的に加算/減算する前に前記係数表現テス
    ト結果を格納する少なくとも1つのテスト状態レジスタ
    をさらに含む、請求項1記載の処理エンジン。
  3. 【請求項3】 アドレス発生器をさらに含む、請求項2
    記載の処理エンジン。
  4. 【請求項4】 前記アドレス発生器が、前記テストユニ
    ットによるテスト用の前記係数レジスタの一部を選択す
    るレジスタビットアドレスを発生する、請求項3記載の
    処理エンジン。
  5. 【請求項5】 前記レジスタビットアドレスが、少なく
    とも1ビットの少なくともビットフィールドをアドレス
    指定する、請求項4記載の処理エンジン。
  6. 【請求項6】 前記アドレス発生器が、巡回ビットアド
    レス指定を行う、請求項5記載の処理エンジン。
  7. 【請求項7】 前記レジスタが、複数のレジスタの中か
    ら選択可能なものである、請求項6記載の処理エンジ
    ン。
  8. 【請求項8】 前記アドレス発生器が、入力ベクトル座
    標を検索するメモリアドレスを発生する、請求項7記載
    の処理エンジン。
  9. 【請求項9】 前記処理エンジンによって処理された単
    一命令に応答して、1つのメモリオペランドをフェッチ
    させ、1つの係数レジスタ表現をテストさせるように作
    動することができる、請求項8記載の処理エンジン。
  10. 【請求項10】 前記テストユニットがビットテストユ
    ニットであり、前記算術演算装置が算術論理演算装置で
    ある、請求項9記載の処理エンジン。
  11. 【請求項11】 前記テストユニットが、前記レジスタ
    のビットを前記係数を表すものとしてテストするように
    作動することができる、請求項10記載の処理エンジ
    ン。
  12. 【請求項12】 前記ビットテストユニットが、出力ベ
    クトルVYの座標VYjの計算のステップi+1におい
    て前記第1の入力ベクトルの係数Ci+1をテストするよ
    うに作動することができ、前記算術演算装置が、それと
    並列に作動して前記計算のステップiで行われた前記第
    1の入力ベクトルの係数Ciのテスト結果に応じて前記
    第2の入力ベクトルの座標Xijの条件付き加算/減算を
    行うように作動することができる、請求項1記載の処理
    エンジン。
  13. 【請求項13】 キーボードアダプタを介して前記プロ
    セッサに接続された一体型キーボードと、 ディスプレイアダプタを介して前記プロセッサに接続さ
    れたディスプレイと、 前記プロセッサに接続された無線周波(RF)回路と、 RF回路に接続されたアンテナと、 をさらに含む、請求項1記載のデジタルシステム。
  14. 【請求項14】 各々がN個の係数を有する複数の入力
    ベクトルから出力ベクトルを処理エンジン内で計算する
    方法であって、 第1の入力ベクトルのN個の係数の各々の表現を係数レ
    ジスタに保持するステップと、 前記第1の入力ベクトルの係数表現をテストするステッ
    プと、 前記第1の入力ベクトルの前記係数表現の前記テストの
    結果に応じて第2の入力ベクトルの座標を選択的に加算
    および/または減算することによって出力ベクトルの座
    標を計算するステップと、 を含む、方法。
  15. 【請求項15】 係数表現テスト結果に応じて前記第2
    の入力ベクトルの座標を選択的に加算/減算する前に前
    記係数表現テスト結果を格納するステップをさらに含
    む、請求項14記載の方法。
  16. 【請求項16】 前記テストユニットによってテストす
    る前記第1のベクトルの係数表現を選択する係数レジス
    タアドレスを発生するステップをさらに含む、請求項1
    5記載の方法。
  17. 【請求項17】 前記第2のベクトルの座標を検索する
    メモリアドレスを発生するステップをさらに含む、請求
    項16記載の方法。
  18. 【請求項18】 前記係数レジスタ内の第1のベクトル
    の1つの係数をテストして、前記出力ベクトルの係数の
    計算の各ステップに対してメモリから前記第2のベクト
    ルの1つの座標をフェッチするステップをさらに含む、
    請求項17記載の方法。
  19. 【請求項19】 前記第1の入力ベクトルの係数をビッ
    トとして表現するステップをさらに含む、請求項18記
    載の方法。
  20. 【請求項20】 【外1】 となるように計算を反復するステップをさらに含み、 前記係数レジスタ内の前記第1の入力ベクトルの係数を
    表すビットCi+1をそのビットをテストするためにアド
    レス指定するステップと、 前記テストされたビットをビットテスト結果レジスタに
    格納するステップと、 前記計算のステップiにおいて行われた前記係数レジス
    タのビットCiについてのテストの結果、前記ビットテ
    スト結果レジスタに格納されたビットに応じて前記第2
    の入力ベクトルのXijオペランドの条件付き加算および
    減算の1つを行うステップと、 が全て、前記処理エンジンによって実行された単一命令
    に応答して並列に行われる、請求項14記載の方法。
JP32152699A 1998-10-06 1999-10-06 線形ベクトル計算 Expired - Fee Related JP4355410B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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