JP6484957B2 - 演算処理装置 - Google Patents

演算処理装置 Download PDF

Info

Publication number
JP6484957B2
JP6484957B2 JP2014170335A JP2014170335A JP6484957B2 JP 6484957 B2 JP6484957 B2 JP 6484957B2 JP 2014170335 A JP2014170335 A JP 2014170335A JP 2014170335 A JP2014170335 A JP 2014170335A JP 6484957 B2 JP6484957 B2 JP 6484957B2
Authority
JP
Japan
Prior art keywords
registers
constant
variable
register
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014170335A
Other languages
English (en)
Other versions
JP2016045761A (ja
Inventor
裕貴 雪山
裕貴 雪山
和大 美馬
和大 美馬
山崎 尊永
尊永 山崎
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.)
Sanken Electric Co Ltd
Original Assignee
Sanken Electric Co Ltd
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 Sanken Electric Co Ltd filed Critical Sanken Electric Co Ltd
Priority to JP2014170335A priority Critical patent/JP6484957B2/ja
Publication of JP2016045761A publication Critical patent/JP2016045761A/ja
Application granted granted Critical
Publication of JP6484957B2 publication Critical patent/JP6484957B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Description

本発明は、演算処理装置の技術に関し、特に、デジタル制御電源向けマイクロコンピュータに内蔵するデジタル・シグナル・プロセッサ(DSP:Digital Signal Processor)などの演算処理装置に関する。
図4は、従来の演算処理装置のプロセッサの構成を示す図である。図4に示すデジタル・シグナル・プロセッサDSP0において、コントロールユニットCUは、プロセッサ全体の動作制御を行う。コントロールレジスタCRは、プロセッサの動作を制御するためのレジスタ群からなり、プログラムを実行中の命令の位置を示すプログラムカウンタ(PC)等を有する。プログラムメモリPMは、プログラムを命令の列として格納するもので、プログラムを16ビット×32ワード(最大128ワード)で格納する。
レジスタファイルRFは、16本の16ビット汎用レジスタR0−R15から構成され、プログラム実行中で使用する変数や定数データを格納する。
演算器群EUは、除算器DIV、乗算器MUL、演算ユニットALU、アキュムレータACC、バレルシフタSFTを有する。除算器DIVは、レジスタファイルRFのRn,Rmのデータを読み出し、Rn(16ビット精度)/Rm(16ビット精度)→16ビット精度×(1/16ビット精度)→16ビット精度×16ビット精度→32ビット精度という演算を行う。
乗算器MULは、レジスタファイルRFのRn,Rmのデータを読み出し、16ビット×16ビット→32ビットの乗算を行う。演算ユニットALUは、36ビット+36ビット→36ビットの加算演算を行う。アキュムレータACCは、1本の36ビット長からなり、除算器DIV、乗算器MUL、演算ユニットALUの演算結果を一時保存するレジスタからなる。バレルシフタSFTは、0〜15ビットからなり、アキュムレータACCからのデータを右シフトさせてシフト結果をレジスタファイルRFの指定したレジスタへ格納する。
このように構成されたプロセッサは、以下の手順で命令(プログラム)を実行する。
まず、プログラムカウンタPCは、プログラムメモリアドレスを示し、そのアドレスに格納されている命令をフェッチ(読み込む)する(ステップS1)。次に、フェッチした命令をデコード(解釈)する(ステップS2)。
次に、デコード結果からそれに対応した演算を行う(ステップS3)。次に、プログラムカウンタPCを更新する(ステップS4)。即ち、ジャンプ命令の場合には、命令中のnextPC,それ以外はカウント値に1を加算する。以上のステップS1〜S4を繰り返す。
図5は、従来の演算処理装置のプロセッサが持つ命令セットを示す図である。図5において、命令コード表には、命令フォーマット(Instruction Format)、命令種別(Instruction)、動作内容(Operation)、実行サイクル(Exec.Cycle)の情報が記録されている。命令形式には、最上位ビットMSB(ビット15)から最下位ビット(ビット0)までの16ビットに、命令停止フラグ(TRIG_WAIT)、ビット・フィールド(TRIG_WHAT)、イベント・ビット(EVENT)、オペレーションコード(OPCODE)、命令フィールドA(FIELDA)、命令フィールドB(FIELDB)の情報がある。
命令長は16ビット固定である。オペレーションコード(OPCODE)は3ビット固定である。Rm/Rnは16ビットレジスタ指定フィールドであり、m,n=0〜15である。
ここで、プロセッサの問題点を述べるにあたり、プロセッサの構成及び命令セットの特徴を述べる。プロセッサは、乗算、除算器を搭載する、いわゆるDSPに分類される。命令長は16ビット固定である。演算対象は被演算数及び演算数としてレジスタに格納されているデータのみである。
上記構成のプロセッサにおいては、演算(MUL,MAC,DIV)を行う際のオペランドは、レジスタRn/Rmのみであり、演算対象に直接、データ値を参照できない。
特開2013−25590号公報
上記プロセッサのターゲットアプリケーションでは、1、−1などの定数を用いた演算が必要な場合が多々ある。上記プロセッサでは、定数データはレジスタR0〜R15に割り当てる必要がある。定数データが多くなると、変数として使用可能なレジスタが減ってしまう。
このような構成のプロセッサにおいては、データ格納領域が不足する傾向にある。定数データを、変数として使用可能な複数のレジスタR0〜R15に割り当ててしまうのは非効率的である。定数データと変数との演算は、このプロセッサのターゲットアプリケーションでは頻繁に行われる演算であり、変数として使用可能な複数のレジスタへの定数データの格納を減らすことが望まれていた。
本発明の課題は、変数として使用可能な複数のレジスタへの定数データの格納を減らすことで複数のレジスタを他の演算に使用可能とする演算処理装置を提供することにある。
本発明に係る演算処理装置は、プログラムを実行中の命令の位置を示すプログラムカウンタと、前記プログラムを命令の列として格納するプログラムメモリと、前記プログラムメモリから読み出された前記プログラムカウンタが示す位置の命令を解釈するデコーダと、前記プログラム実行中で使用される演算数、被演算数及び変数を格納する複数の可変レジスタと、定数データを格納する複数の定数レジスタと、前記複数の可変レジスタの代わりに前記複数の定数レジスタを参照するか否かを選択する選択情報を格納する選択情報格納部と、前記選択情報がある場合に前記複数の定数レジスタを選択し前記選択情報がない場合に前記複数の可変レジスタを選択することにより被演算数を出力する選択部と、前記デコーダで解釈されたデコード結果に基づき前記複数の可変レジスタからの演算数と前記選択部からの被演算数とを用いて演算を行う演算ユニットとを備えることを特徴とする。
本発明によれば、複数の可変レジスタの代わりに複数の定数レジスタを参照するか否かを選択する選択情報がある場合に、選択部は、複数の定数レジスタを選択することにより被演算数を出力するので、演算ユニットは、複数のレジスタからの演算数と選択部からの被演算数とを用いて演算を行うことができる。
従って、変数として使用可能な複数のレジスタへの定数データの格納を減らすことで複数のレジスタを他の演算に使用できる。
本発明の実施例に係る演算処理装置の定数レジスタ参照方式の全体構成を示す図である。 本発明の実施例に係る演算処理装置の定数レジスタ参照方式の実施例の第1選択処理を示す図である。 本発明の実施例に係る演算処理装置の定数レジスタ参照方式の実施例の第2選択処理を示す図である。 従来の演算処理装置のプロセッサの構成を示す図である。 従来の演算処理装置のプロセッサが持つ命令セットを示す図である。
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、従来の演算処理装置と同一構成には、従来技術で使用した符号と同じ符号を付しその説明は省略する。
まず、本発明の演算処理装置の概念について説明する。本発明の演算処理装置は、新たに定数データ専用レジスタCn(例えば、n=0〜7)を設ける。以下、定数データ専用レジスタCnを定数レジスタCnと略称する。
定数レジスタCnを各命令のオペランドとして指定するには、各命令のフィールドA及びフィールドB(図5に示すFIELDA,FIELDB)で指定する必要がある。
しかし、フィールドA及びフィールドBは4ビットであるが、可変レジスタR0〜R15の指定に4ビットコードを使いきっている。このため、このままでは定数レジスタCnを各命令のフィールドA及びフィールドBで指定することができない。このため、例えば、命令長を長くしてフィールドA及びフィールドBを拡張すれば定数レジスタCnを指定可能である。
しかし、命令長を長くすると、1命令当たりに必要なビット幅が大きくなり、プログラムメモリサイズが大きくなる。さらに、以前作成したプログラムとの互換性も失われる。そこで、実施例は、フィールドA及びフィールドBを拡張することなく、定数レジスタCnをオペランドとして参照できる方法を提案する。
まず、定数が必要とされる演算(DIV、MUL、MAC)を整理する。
1)DIV Rm,Rn (ACC=Rn/Rm)の場合
Rm=定数,Rn=定数の場合には、Rn/Rmの結果自体を定数として持てば演算は必要ない。Rm=定数,Rn=変数の場合には、Rmの逆数を定数として持てば乗算に置き換えることができる。Rm=変数,Rn=変数の場合には、演算は必要である。
2)MUL,Rm,Rn (ACC=Rm×Rn)及びMAC Rm,Rn(ACC+=Rm×Rn)の場合
Rm=定数,Rn=定数の場合には、Rn/Rmの結果自体を定数として持てば演算は必要ない。Rm=定数,Rn=変数又はRm=変数,Rn=定数の場合には、演算は必要である。
MUL及びMACの場合、2つのオペランドRm及びRnのどちらか一方が定数であれば良いことと、DIVの場合、被除数に相当するRn側が定数を参照できれば良いことから、Rnに定数レジスタCnを参照できる構成を設ける。MAC及びMULも同様である。
以下、オペランドRnに定数レジスタCnを参照できる構成を説明する。図1は、本発明の実施例に係る演算処理装置の定数レジスタ参照方式の全体構成を示す図である。
図1に示す演算処理装置は、フェッチユニット10、デコーダ20、演算ユニット30、マッピング情報部40、可変レジスタファイルVRF、定数レジスタファイルCRF、セレクタSL、プログラムメモリPMを有している。可変レジスタファイルVRFは、16本の16ビット可変レジスタR0〜R15から構成されており、プログラム実行中で使用される被演算数、演算数及び変数を格納する。
定数レジスタファイルCRFは、定数データを格納する複数の定数レジスタC0〜C7からなる。
プログラムメモリPMは、プログラム(演算処理シーケンス)を命令の列として格納する。フェッチユニット10は、プログラムを実行中の命令の位置を示すプログラムカウンタPCを有し、プログラムメモリPMからプログラムカウンタPCが示す位置の命令をフェッチしてデコーダ20に出力する。
デコーダ20は、フェッチユニット10からの命令を解釈して演算ユニット30に出力する。演算ユニット30は、除算器DIV、乗算器MULを有するとともに、図示しないが演算ユニットALU、アキュムレータACC、バレルシフタSFTを有する。
演算ユニット30は、デコーダ20で解釈されたデコード結果に基づき複数の可変レジスタR0〜R15からの演算数とセレクタSLから出力されてくる定数レジスタC0〜C7からの被演算数又は複数の可変レジスタR0〜R15からの被演算数とを用いて除算、乗算などの演算を行う。
マッピング情報部40(本発明の選択情報格納部に対応)は、複数の可変レジスタR0〜R15の代わりに複数の定数レジスタC0〜C7を参照するか否かを選択するマッピング情報(本発明の選択情報に対応)を格納する。
マッピング情報としては、複数の可変レジスタR0〜R15の代わりに複数の定数レジスタC0〜C7を参照する場合には、複数の可変レジスタR0〜R15と複数の定数レジスタC0〜C7とを対応付けした情報が格納されている。複数の可変レジスタR0〜R15の代わりに複数の定数レジスタC0〜C7を参照しない場合には、マッピング情報はない。
セレクタSLは、各命令のオペランドフィールド情報とマッピング情報部40からのマッピング情報に基づき、定数レジスタC0〜C7又は可変レジスタR0〜R15を選択することにより被演算数をRnとして乗算器MUL及び除算器DIVに出力する。セレクタSLは、マッピング情報がある場合に複数の定数レジスタR0〜R7を選択して、マッピング情報がない場合に複数の可変レジスタR0〜R15を選択する。
このように構成された実施例の演算処理装置によれば、除算器DIV、乗算器MUL及びMAC命令のオペランドフィールドA(図5に示す)により可変レジスタR0〜R15が選択されて、可変レジスタR0〜R15からの演算数がRmとして乗算器MUL及び除算器DIVへ入力される。
また、命令のオペランドフィールドBとマッピング情報部40からのマッピング情報に基づき、セレクタSLは、可変レジスタR0〜R15又は定数レジスタC0〜C7を選択して、選択されたレジスタからの被演算数をRnとして乗算器MUL及び除算器DIVへ出力する。
例えば、図5に示すフィールドB=R0、マッピング情報がC0→R0(R0の代わりにC0を参照)とした場合、R0はC0となる。マッピング情報がないレジスタは、Rmと同様に、フィールドBに従って、可変レジスタR0〜R15が選択される。マッピング情報がないレジスタは、変数と変数との演算が可能となる。マッピング情報があるレジスタも、Rm側である場合、変数(R0〜R15)として参照可能である。
次に、より具体的な実施例について説明する。図2は、本発明の実施例に係る演算処理装置の定数レジスタ参照方式の実施例の第1選択処理を示す図である。図3は、本発明の実施例に係る演算処理装置の定数レジスタ参照方式の実施例の第2選択処理を示す図である。
図2及び図3に示す演算処理装置は、セレクタSL1,SL2、可変レジスタファイルVRF、定数レジスタファイルCRFを有している。可変レジスタR0〜R15の一方の出力端子(セレクト情報S〔0〕〜S〔7〕=0側)は、セレクタSL1に接続され、セレクタSL1の出力は、Rmとして乗算器MUL等に出力される。
可変レジスタR0〜R15の他方の出力端子は、セレクタSL2に接続され、セレクタSL2の出力は、Rnとして乗算器MUL等に出力される。
複数の可変レジスタR0〜R15は、第1の複数の可変レジスタR0〜R7と第2の複数の可変レジスタR8〜R15からなり、第1の複数の可変レジスタR0〜R7及び第2の複数の可変レジスタR8〜R15のそれぞれは、複数の定数レジスタC0〜C7と同数からなる。
定数レジスタC0〜C7は、可変レジスタR0〜R15へマッピングが行われる。マッピング情報として、第1の複数の可変レジスタR0〜R7又は第2の複数の可変レジスタR8〜R15を選択するためのコントロールセレクト情報(本発明の第1選択情報に対応)CNTSELと、コントロールセレクト情報CNTSELにより選択された複数の可変レジスタの代わりに複数の定数レジスタを参照するか否かを選択するためのセレクト情報S〔0〕〜S〔7〕(本発明の第2選択情報に対応)とが設けられている。
コントロールセレクト情報とセレクト情報S〔0〕〜S〔7〕は、プロセッサのプログラムと同様に、そのプログラムに最適な設定がプロセッサを搭載する上位システムによって与えられている。
コントロールセレクト情報CNTSELが“0”のときには、図2に示すように、定数レジスタC0は可変レジスタR8、C1はR9、C2はR10、C3はR11、C4はR12、C5はR13、C6はR14、C7はR15にマッピングされる。
さらに、セレクト情報S〔0〕〜S〔7〕は、定数レジスタC0〜C7に対応して設けられ、可変レジスタR8〜R15の代わりに定数レジスタC0〜C7を参照するか否かを選択する。S〔0〕=1の場合に可変レジスタR8の代わりに定数レジスタC0が参照される。S〔7〕=1の場合に可変レジスタR15の代わりに定数レジスタC7が参照される。
なお、S〔0〕=0の場合には、可変レジスタR8の定数レジスタC0への置き換えは行われない。S〔1〕〜S〔7〕=1の場合には、S〔0〕=1の場合と同様に、可変レジスタR9〜R15の代わりに定数レジスタC1〜C7が参照される。
コントロールセレクト情報CNTSELが“1”のときには、図3に示すように、定数レジスタC0は可変レジスタR0、C1はR1、C2はR2、C3はR3、C4はR4、C5はR5、C6はR6、C7はR7にマッピングされる。
セレクト情報S〔0〕〜S〔7〕は、可変レジスタR0〜R7の代わりに定数レジスタC0〜C7を参照するか否かを選択する。S〔0〕=1の場合に可変レジスタR0の代わりに定数レジスタC0が参照される。S〔7〕=1の場合に可変レジスタR7の代わりに定数レジスタC7が参照される。
なお、S〔0〕=0の場合には、可変レジスタR0の定数レジスタC0への置き換えは行われない。S〔1〕〜S〔7〕=1の場合には、S〔0〕=1の場合と同様に、可変レジスタR1〜R7の代わりに定数レジスタC1〜C7が参照される。
このように本発明の実施例に係る演算処理装置によれば、複数の可変レジスタR0〜R15の代わりに複数の定数レジスタC0〜C7を参照するか否かを選択するマッピング情報がある場合に、セレクタSLは、複数の定数レジスタC0〜C7を選択することにより被演算数を出力するので、演算ユニット30は、複数の可変レジスタR0〜R15からの演算数とセレクタSLからの被演算数とを用いて演算を行うことができる。
従って、変数として使用可能な複数の可変レジスタVRFへの定数データの格納を減らすことで複数の可変レジスタVRFを他の演算に使用できる。
PM プログラムメモリ
PC プログラムカウンタ
VRF 可変レジスタファイル
CRF 定数レジスタファイル
R0〜R15 可変レジスタ
C0〜C7 定数レジスタ
DSP0 デジタル・シグナル・プロセッサ
CU コントロールユニット
CR コントロールレジスタ
EU 演算器群EU
DIV 除算器
MUL 乗算器
ALU 演算ユニット
ACC アキュムレータ
SFT バレルシフタ
10 フェッチユニット
20 デコーダ
30 演算ユニット
40 マッピング情報部
SL,SL1,SL2 セレクタ

Claims (2)

  1. プログラムを実行中の命令の位置を示すプログラムカウンタと、
    前記プログラムを命令の列として格納するプログラムメモリと、
    前記プログラムメモリから読み出された前記プログラムカウンタが示す位置の命令を解釈するデコーダと、
    前記プログラム実行中で使用される演算数、被演算数及び変数を格納する複数の可変レジスタと、
    定数データを格納する複数の定数レジスタと、
    前記複数の可変レジスタの代わりに前記複数の定数レジスタを参照するか否かを選択する選択情報を格納する選択情報格納部と、
    前記選択情報がある場合に前記複数の定数レジスタを選択し前記選択情報がない場合に前記複数の可変レジスタを選択することにより被演算数を出力する選択部と、
    前記デコーダで解釈されたデコード結果に基づき前記複数の可変レジスタからの演算数と前記選択部からの被演算数とを用いて演算を行う演算ユニットと、
    を備えることを特徴とする演算処理装置。
  2. 前記複数の可変レジスタは、第1の複数の可変レジスタと第2の複数の可変レジスタからなり、前記第1の複数の可変レジスタ及び前記第2の複数の可変レジスタのそれぞれは、前記複数の定数レジスタと同数からなり、
    前記選択情報は、前記第1の複数の可変レジスタ又は前記第2の複数の可変レジスタを選択する第1選択情報と、選択された複数の可変レジスタの代わりに前記複数の定数レジスタを参照するか否かを選択する第2選択情報とを有することを特徴とする請求項1記載の演算処理装置。
JP2014170335A 2014-08-25 2014-08-25 演算処理装置 Active JP6484957B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014170335A JP6484957B2 (ja) 2014-08-25 2014-08-25 演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014170335A JP6484957B2 (ja) 2014-08-25 2014-08-25 演算処理装置

Publications (2)

Publication Number Publication Date
JP2016045761A JP2016045761A (ja) 2016-04-04
JP6484957B2 true JP6484957B2 (ja) 2019-03-20

Family

ID=55636255

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014170335A Active JP6484957B2 (ja) 2014-08-25 2014-08-25 演算処理装置

Country Status (1)

Country Link
JP (1) JP6484957B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4718057A (en) * 1985-08-30 1988-01-05 Advanced Micro Devices, Inc. Streamlined digital signal processor
JPH0625966B2 (ja) * 1986-06-17 1994-04-06 日本電気株式会社 マイクロプログラム制御装置
JPH0833821B2 (ja) * 1989-06-16 1996-03-29 三菱電機株式会社 データ処理装置
US5128890A (en) * 1991-05-06 1992-07-07 Motorola, Inc. Apparatus for performing multiplications with reduced power and a method therefor

Also Published As

Publication number Publication date
JP2016045761A (ja) 2016-04-04

Similar Documents

Publication Publication Date Title
US20210026634A1 (en) Apparatus with reduced hardware register set using register-emulating memory location to emulate architectural register
US9250904B2 (en) Modify and execute sequential instruction facility and instructions therefor
KR102413832B1 (ko) 벡터 곱셈 덧셈 명령
JP4480997B2 (ja) Simd整数乗算上位丸めシフト
JP2015164061A5 (ja)
US20190347099A1 (en) Arithmetic operation with shift
JPH09231070A (ja) 情報処理回路、半導体集積回路装置、マイクロコンピュータ、電子機器
JP2005332361A (ja) プログラム命令圧縮装置および方法
JP2019511056A (ja) 複素数乗算命令
US10303399B2 (en) Data processing apparatus and method for controlling vector memory accesses
TW201732560A (zh) 用於位元欄位位址和插入之指令及邏輯
CN111782270B (zh) 一种数据处理方法及装置、存储介质
EP1267255A2 (en) Conditional branch execution in a processor with multiple data paths
CN106775587B (zh) 计算机指令的执行方法以及使用此方法的装置
JP6372250B2 (ja) 演算処理装置
US11314514B2 (en) Vector length querying instruction
CN111443948B (zh) 指令执行方法、处理器和电子设备
JP6484957B2 (ja) 演算処理装置
KR102458467B1 (ko) 벡터 생성 명령
JP3570287B2 (ja) マイクロコンピュータ
EP3655852A1 (en) Vector interleaving in a data processing apparatus
JP5327432B2 (ja) 信号処理プロセッサ及び半導体装置
JP4901891B2 (ja) 画像処理プロセッサ
TWI842911B (zh) 用於存取矩陣運算元的多變數跨步讀取操作
JP2011170758A (ja) プロセッサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180703

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190204

R150 Certificate of patent or registration of utility model

Ref document number: 6484957

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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