JP2000187583A - プロセッサ - Google Patents

プロセッサ

Info

Publication number
JP2000187583A
JP2000187583A JP10365135A JP36513598A JP2000187583A JP 2000187583 A JP2000187583 A JP 2000187583A JP 10365135 A JP10365135 A JP 10365135A JP 36513598 A JP36513598 A JP 36513598A JP 2000187583 A JP2000187583 A JP 2000187583A
Authority
JP
Japan
Prior art keywords
instruction
register
repetition
processing
value
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.)
Pending
Application number
JP10365135A
Other languages
English (en)
Inventor
Hiroyuki Takano
裕之 高野
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP10365135A priority Critical patent/JP2000187583A/ja
Publication of JP2000187583A publication Critical patent/JP2000187583A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 この発明は、レジスタ−レジスタアーキテク
チャーを採用しているプロセッサにおいて、繰り返し処
理のオーバーヘッドを低減して、処理時間の短縮化を達
成するプロセッサを課題とする。 【解決手段】 この発明は、命令選択回路6により選択
された繰り返し処理を行う命令のレジスタ番号を、レジ
スタ番号差分値格納バッファ8の値に基づいてマスク番
号生成回路7により生成された新たなレジスタ番号に置
き換えて更新するルーチンが、反復回数判定回路5で判
定される反復回数に達するまで行われるように構成され
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、1又は複数の命令
列においてレジスタを指定するレジスタ番号値を所定の
回数連続して更新し実行するプロセッサに関する。
【0002】
【従来の技術】近年、ディジタルシグナルプロセッシン
グ(以下「DSP」と記す)の分野では、DSP向けの
命令、特に積和演算命令などを繰り返す処理が処理時間
の大半を占めている。例えば、Finite Impulse Respons
e (以下「FIR」と記す)処理などがその代表例であ
る。これらのDSP処理の処理速度を改善することは、
アプリケーション全体の性能に大きな影響を与える。
【0003】例えば、文献「32-Bit RISC MICROPROCESS
OR TLCS-R3900 FAMILY ARCHITECTURE TMPR3901F 」に基
づく命令セットでは、FIR処理の最内側ループの命令
列は図3に示すように記述される。図3において、実質
的な演算処理を行う命令は、積和演算(madd)命令
のみであり、他の命令は、演算を反復する回数をインク
リメントする処理、演算を反復する回数をカウントする
処理を実行する命令、ならびにデータの入出力や命令列
の制御を行う命令である。したがって、madd命令を
除く他の命令は、FIR処理においてオーバーヘッドに
なっていた。
【0004】図3に示す積和演算処理は、例えば図4に
示すような構成のプロセッサにより実行処理される。図
4において、プロセッサ100では、クロックに従って
逐次インクリメントされるプログラムカウンタ101の
値に従って命令キャッシュ102から命令が読み出さ
れ、その命令が命令レジスタ103にラッチされる。こ
れと同時に、プロセッサ100では命令レジスタ103
から命令が読み出され、読み出された命令はデコーダ1
04で解読され、解読結果が命令パス105からデータ
パス106へ流れ、処理が進められる。
【0005】図5は図4に示す命令キャッシュ102か
らラッチした命令が格納されている命令レジスタ103
から読み出された命令の一部を使って、レジスタファイ
ル107を参照する構成を示す図である。図5におい
て、命令レジスタ103に格納されている例えば32ビ
ットの命令のビットパターン中、25ビット目から21
ビット目の5ビットがレジスタファイル107のリード
ポート108に対応するレジスタ番号を示し、20ビッ
ト目から16ビット目の5ビットがリードポート109
に対応するレジスタ番号を示し、他の0ビット目から1
5ビット目の16ビットならびに26ビット目から31
ビット目の5ビットは他の情報を示す。
【0006】このような構成のプロセッサにおいて実行
される積和演算処理における上述したオーバーヘッドを
緩和する従来の一つの方法としては、プロセッサのアー
キテクチャとしてメモリ−メモリアーキテクチャを採用
し、かつメモリアドレッシングに自動インクリメント機
構を設け、演算処理におけるメモリへのオペランドアク
セスを自動的に行う方法がある。例えば、Texas Instru
ments Incorporated製のプロセッサのマニュアル、「TM
S3205x ディジタルシグナルプロセッサ ユーザーズマ
ニュアル」に基づく命令セットにおいては、FIR処理
の最内側ループの命令列は例えば図6に示すように記述
されている。図6に示す命令列では、メモリへのオペラ
ンドアクセスが自動的に行われるので図3に示す命令列
に比べてオーバヘッドが少なくなっている。
【0007】しかし、図3に示す命令列を実行するプロ
セッサのように、多くのRISCプロセッサに見られる
レジスタ−レジスタアーキテクチャ、あるいはロード/
ストア−アーキテクチャでは、上述したオーバーヘッド
を緩和する方法が存在していない。すなわち、レジスタ
−レジスタアーキテクチャの基本となっている多くの実
装レジスタを有効に使って上記オーバーヘッドを緩和す
る機構は提供されていなかった。
【0008】
【発明が解決しようとする課題】以上説明したように、
レジスタ−レジスタアーキテクチャーを採用している従
来のプロセッサでは、積和演算等の多くの繰り返し処理
を実行する命令列おいて、実質的な演算を行う命令列の
他に、演算の繰り返しに係わる処理を行う命令列が必要
となっていた。これらの命令は、処理全体から見るとオ
ーバヘッドとなり、繰り返し処理を効率的に行うことが
できず、多くの処理時間がかかるるといった不具合を招
いていた。
【0009】そこで、この発明は、上記に鑑みてなされ
たものであり、その目的とするところは、レジスタ−レ
ジスタアーキテクチャーを採用しているプロセッサにお
いて、繰り返し処理のオーバーヘッドを低減して、処理
時間の短縮化を達成するプロセッサを提供することにあ
る。
【0010】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、予め指定された反復回数だけ繰り返し実
行される1又は複数の反復命令列を保持する命令バッフ
ァと、前記命令バッファに保持された前記反復命令列が
繰り返し実行されるにともなって前記反復命令列の反復
回数を判定する反復回数判定回路と、前記反復回数判定
回路の判定結果に基づいて、前記反復命令列が反復回数
だけ繰り返し実行されるまで前記命令バッファに保持さ
れた前記反復命令列を選択する命令選択回路と、前記命
令選択回路により選択された前記反復命令列のレジスタ
番号値をマスクするマスク値を生成し、レジスタ番号値
がマスク値に置き換えられて更新された前記反復命令列
を前記命令バッファに保持するマスク番号生成回路とを
有することを特徴とする。
【0011】
【発明の実施の形態】以下、図面を用いてこの発明の実
施形態を説明する。
【0012】図1はこの発明の一実施形態に係るプロセ
ッサの構成を示す図であり、図2は図1に示すプロセッ
サを用いてFIR処理を行う命令列を示す図である。
【0013】図1において、プロセッサは、図4又は図
5に示したと同様の命令キャッシュ1、命令レジスタ
2、デコーダ3、レジスタファイル4に加えて反復回数
判定回路5、命令選択回路6、マスク番号生成回路7、
レジスタ番号差分値格納バッファ8ならびに命令バッフ
ァ9を備えて構成される。
【0014】反復回数判定回路5は、繰り返し処理の回
数をカウントして判定するものであり、後述するrep
eat(リピート)命令の第1引数で残り回数ラッチ1
0に繰り返し回数が設定され、設定されてから毎クロッ
ク毎に減算器11によりデクリメントされ、毎クロック
デクリメントすなわち減算する毎に、リピート判定信号
が減算器11のキャリーアウトとして出力される。一
方、残り回数ラッチ10は、繰り返し演算が始まる前お
よび繰り返し演算終了後は、0の値に保たれている。
【0015】命令レジスタ2は、反復回数判定回路5の
リピート判定信号を受けて、通常のパイプラインストー
ル以外に、リピート判定信号が1レベルの場合に格納さ
れた命令を保持する。
【0016】命令選択回路6は、反復回数判定回路5か
ら出力されるリピート判定信号に従って、命令レジスタ
2又は命令バッファ9から与えられた命令を選択する。
【0017】マスク番号生成回路7は、命令選択回路6
によって選択された命令を受けて、この命令により次に
アクセスするレジスタを指定するレジスタ番号を更新す
るものであり、選択された命令の16〜20ビット目な
らびに21〜25ビット目のレジスタ番号指定フィール
ドの値とrepeat命令の例えば第3、第4引数とし
て与えられるレジスタ番号差分値との和をそれぞれの加
算器12、13により算出し、選択された命令のそれま
でのレジスタ番号指定フィールドの値を算出した値に置
き換えて命令バッファ9に出力する。
【0018】レジスタ番号差分値格納バッファ8は、r
epeat命令の例えば第3、第4引数として与えられ
るレジスタ番号差分値を格納保持する。
【0019】命令バッファ9は、マスク番号生成回路7
によって生成されて出力された命令を受けて保持し、保
持した命令を命令選択回路6に与える。
【0020】次に、上記プロセッサで実行されるrep
eat命令について説明する。
【0021】repeat命令は、この実施形態におい
て新たに命令セットに加えられた命令であり、repe
at命令の直後の1命令を(第1引数+1)回繰り返り
返して実行させる命令である。repeat命令の第
2、第3、第4引数は、直後の命令の命令フォーマット
に定める、rd、rs、rtそれぞれのフィールドに格
納されたレジスタ番号の差分値を示している。図2に示
す命令列では、repeat命令の直後の命令(mad
d命令)がアキュムレータへの積和演算命令であり、r
dフィールドは存在しないので、rdフィールドに関す
る差分値の指定は無効となり適当な値が設定される。
【0022】なお、この実施形態において、repea
t命令の導入は必ずしも必要ではなく、予め定めた特定
の汎用レジスタ或いは特定のメモリの領域を、上記繰り
返し数や差分値を保持するために割り当て、そこに既存
のロード命令、レジスタ値移動命令等で値を割り付ける
ことによって、repeat命令と同様の機能を果たす
ことができる。すなわち、繰り返しの回数とレジスタの
差分値を設定できる命令であれば既存のどのような命令
であってもrepeat命令に代えることが可能であ
る。また、repeat命令は、この実施形態では直後
の1命令だけの繰り返し命令として定義されているが、
直後でなくともよく、あるいは複数の命令を繰り返し実
行するようにしてもよい。
【0023】次に、図2に示す命令列を参照して動作を
説明する。
【0024】まず、参照するレジスタに所定のデータが
ロードされた後、repet命令が命令レジスタ2にラ
ッチされると、そのデコード結果によって第1引数が残
り回数ラッチ10にセットされ、第3、第4引数がレジ
スタ番号差分値格納バッファ8にセットされる。続い
て、madd命令が命令レジスタ2にラッチされた時に
は、リピート判定信号は0レベルのままであり、mad
d命令で実際に示されているレジスタ番号通りに命令は
処理される。なお、この実施形態では、繰り返される命
令のレジスタ番号指定フィールドに指定されている番号
そのものを繰り返し処理の初期値として使用している
が、初期値を差分値同様に別のレジスタやメモリの特定
のアドレスに置くようにしてもよい。引き続いて、命令
レジスタ2に保持されているmadd命令は、上記のよ
うに実際の処理で使用されるとともに、madd命令の
レジスタ番号指定フィールドの値はマスク番号生成回路
7によってレジスタ番号差分値格納バッファ8から取り
出されたそれぞれのレジスタ番号指定フィールド用の差
分値と加算され、レジスタ番号指定フィールドの値が新
たなレジスタ番号に更新されたmadd命令が命令バッ
ファ9に格納される。
【0025】次のクロックでは、リピート判定信号は1
レベルとなっているので、命令レジスタ2に格納されて
いる次の命令は、madd命令の繰り返し処理が終わる
まで命令レジスタ2に保持される。一方、リピート判定
信号にしたがって命令選択回路6により命令レジスタ2
に保持された次の命令に代えて命令バッファ9に保持さ
れたレジスタ番号が更新されたmadd命令が選択さ
れ、選択されたmadd命令がデコーダ3ならびにマス
ク番号生成回路7に供給され、madd命令のレジスタ
指定フィールドの値がレジスタファイル4に供給されて
更新されたレジスタ番号によりレジスタファイル4がア
クセスされる。このようなルーチンが、反復回数判定回
路5により繰り返し処理が反復回数に達したことが判定
させるまで行われる。
【0026】このように、この実施形態のプロセッサに
あっては、1つの命令において、参照するレジスタを順
次更新してアクセスできる構成を採用しているので、予
め所定のレジスタにロードされたデータを、レジスタ番
号を自動的にインクリメントすることにより順次参照す
ることが可能となり、本質的に必要な積和演算処理以外
のオーバーヘッドを緩和することができるようになる。
【0027】なお、上記実施形態では、レジスタファイ
ル4のリードポート用のレジスタ番号に関わる部分の実
装についてのみ説明したが、レジスタファイル4のライ
トポート用のレジスタ番号に関わる部分についても、同
様に実装可能である。
【0028】
【発明の効果】以上説明したように、この発明によれ
ば、繰り返し処理において参照する所定のレジスタを順
次更新してアクセスする構成を採用したので、繰り返し
処理における本質的な処理以外のレジスタ参照に関する
処理のオーバーヘッドを低減することができる。これに
より、繰り返し処理を効率的に行うことが可能となり、
処理時間を短縮することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るプロセッサの構成を
示す図である。
【図2】図1に示すプロセッサで実行されるFIR処理
用の命令列の一例を示す図である。
【図3】FIR処理用命令列の一従来例を示す図であ
る。
【図4】従来のプロセッサの構成を示す図である。
【図5】レジスタを参照する構成を示す図である。
【図6】FIR処理用命令列の他の従来例を示す図であ
る。
【符号の説明】
1 命令キャッシュ 2 命令レジスタ 3 デコーダ 4 レジスタファイル 5 反復回数判定回路 6 命令選択回路 7 マスク番号生成回路 8 レジスタ番号差分値格納バッファ 9 命令バッファ 10 残り回数ラッチ 11 減算器 12、13 加算器

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 予め指定された反復回数だけ繰り返し実
    行される1又は複数の反復命令列を保持する命令バッフ
    ァと、 前記命令バッファに保持された前記反復命令列が繰り返
    し実行されるにともなって前記反復命令列の反復回数を
    判定する反復回数判定回路と、 前記反復回数判定回路の判定結果に基づいて、前記反復
    命令列が反復回数だけ繰り返し実行されるまで前記命令
    バッファに保持された前記反復命令列を選択する命令選
    択回路と、 前記命令選択回路により選択された前記反復命令列のレ
    ジスタ番号値をマスクするマスク値を生成し、レジスタ
    番号値がマスク値に置き換えられて更新された前記反復
    命令列を前記命令バッファに保持するマスク番号生成回
    路とを有することを特徴とするプロセッサ。
JP10365135A 1998-12-22 1998-12-22 プロセッサ Pending JP2000187583A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10365135A JP2000187583A (ja) 1998-12-22 1998-12-22 プロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10365135A JP2000187583A (ja) 1998-12-22 1998-12-22 プロセッサ

Publications (1)

Publication Number Publication Date
JP2000187583A true JP2000187583A (ja) 2000-07-04

Family

ID=18483519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10365135A Pending JP2000187583A (ja) 1998-12-22 1998-12-22 プロセッサ

Country Status (1)

Country Link
JP (1) JP2000187583A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012505455A (ja) * 2008-10-08 2012-03-01 アーム・リミテッド Simd積和演算動作を行うための装置及び方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012505455A (ja) * 2008-10-08 2012-03-01 アーム・リミテッド Simd積和演算動作を行うための装置及び方法

Similar Documents

Publication Publication Date Title
JP3592230B2 (ja) データ処理装置
JP5309636B2 (ja) 演算処理装置及び演算処理装置の制御方法
EP0551932B1 (en) Digital signal processor processing multi-point conditional branch operations in a pipeline mode
JP2006079652A (ja) 多重命令セットによるデータ処理
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
US20140047218A1 (en) Multi-stage register renaming using dependency removal
JP4202244B2 (ja) Vliw型dsp,及びその動作方法
KR20080014062A (ko) 마이크로프로세서에서의 효율적인 서브프로그램 복귀
CN111782270A (zh) 一种数据处理方法及装置、存储介质
US6055628A (en) Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks
KR100308512B1 (ko) 편집 기능을 위한 전문 밀리코드 지시
JP3983482B2 (ja) 高速ディスプレースメント付きpc相対分岐方式
KR100322726B1 (ko) 번역 및 테스트를 위한 전문 밀리코드 명령
JP3630804B2 (ja) データ処理装置
KR19990082747A (ko) 압축기억된십진수나눗셈에대한전문밀리코드명령
JP2007334563A (ja) マスク付きベクトル演算処理装置
US20040255102A1 (en) Data processing apparatus and method for transferring data values between a register file and a memory
KR100322725B1 (ko) 전문 갱신 및 분기 명령을 이용하는 밀리코드 플래그
JP2000187583A (ja) プロセッサ
JP2003241960A (ja) プロセッサ、該プロセッサにおける演算命令処理方法及び演算制御方法
US20050033939A1 (en) Address generation
US11126691B1 (en) Apparatus and method for generating a vector of elements with a wrapping constraint
JPH0222413B2 (ja)
JP3211791B2 (ja) ループ処理方式
JPH06162067A (ja) ベクトル命令制御装置および制御方法