JP2010020625A - 信号処理プロセッサ及び半導体装置 - Google Patents

信号処理プロセッサ及び半導体装置 Download PDF

Info

Publication number
JP2010020625A
JP2010020625A JP2008181790A JP2008181790A JP2010020625A JP 2010020625 A JP2010020625 A JP 2010020625A JP 2008181790 A JP2008181790 A JP 2008181790A JP 2008181790 A JP2008181790 A JP 2008181790A JP 2010020625 A JP2010020625 A JP 2010020625A
Authority
JP
Japan
Prior art keywords
saturation
unit
information
word length
register
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.)
Withdrawn
Application number
JP2008181790A
Other languages
English (en)
Other versions
JP2010020625A5 (ja
Inventor
Kimiki Shiga
公樹 志賀
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2008181790A priority Critical patent/JP2010020625A/ja
Publication of JP2010020625A publication Critical patent/JP2010020625A/ja
Publication of JP2010020625A5 publication Critical patent/JP2010020625A5/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】複数のデータ語長への飽和処理を効率良く行える信号処理プロセッサ及び半導体装置を提供すること。
【解決手段】デコード部110とレジスタ部と命令実行部130とを含む信号処理プロセッサ100であって、命令実行部130は、読み出し処理部140と、演算部150と、飽和処理部160と、書き出し処理部170と、を含みレジスタ部は、飽和処理において飽和させる語長を特定する飽和語長調情報124を含む飽和情報が保持された飽和情報保持部120を含み、飽和処理部160は、飽和語長情報124によって特定される語長に対応した飽和処理を行う。
【選択図】図1

Description

本発明は、信号処理プロセッサ及び半導体装置に関する。
数値演算を目的としたデジタル信号処理プロセッサは、数値演算回路と数値演算回路への入力及び出力を一時的に格納しておく回路とをひとまとめにした命令実行ブロックと、数値演算の結果が格納される主記憶装置が、それぞれバスに接続されている構成のものが一般的である。かかるデジタル信号処理プロセッサにおいては、数値演算の結果の語長の方が主記憶装置の語長より長い場合がおおく、飽和処理が必要となってくる。
しかしたとえば飽和操作を、各命令信号に応じてレジスタに書き込んだ後に読みだしてメモリに書き込むという処理で実現すると、命令実行に時間がかかってしまう。
特開平9−185489号公報
飽和処理の有無の設定をモードレジスタに持たせる構成は、上記文献に開示されているが、主記憶のデータ語長より小さい語長の演算をした場合に、飽和処理を行うことが出来ないという問題点があった。
また数値演算を目的としたデジタル信号処理プロセッサでは、数値演算そのものと飽和操作を一体にした手続をいかに短い時間で実行し終えるかが重要な課題となる。
また複数のデータ語長を扱う演算装置では、各語長に対応した飽和処理を効率よく行うことが好ましい。
本発明の目的は、上記課題に鑑みてなされたものであり、複数のデータ語長への飽和処理を効率良く行える信号処理プロセッサ及び半導体装置を提供することである。
(1)本発明は、
フェッチ部にフェッチされた命令コードをデコードしてデコード結果に基づき命令実行に必要なデコード信号を生成するデコード部と、
命令実行に使用するアドレス、データ、制御情報の少なくとも1つを記憶するレジスタ部と、
前記デコード信号及びレジスタ部に記憶されている情報に基づきに基づきフェッチ部にフェッチされた命令コードの実行を行う命令実行部と、を含む信号処理プロセッサであって、
前記命令実行部は、
メモリからのデータの読み出し処理を行う読み出し処理部と、
読み出し処理部によって読み出されたデータを受け取り演算を行う演算部と、
演算部の演算結果を受け取り、前記演算結果に対して所与の語長に対応した飽和処理を行う飽和処理部と、
飽和処理部の出力したデータをメモリに出力する書き出し処理部と、を含み、
前記レジスタ部は、
前記飽和処理において飽和させる語長を特定する飽和語長調情報を含む飽和情報が保持された飽和情報保持部を含み、
前記飽和処理部は、
前記飽和語長情報によって特定される語長に対応した飽和処理を行う信号処理プロセッサである。
たとえばバスを介してメモリに接続されている場合には、読み出し処理部は、メモリに接続されたバスに対してデータの読み出し処理を行い、書き出し処理部は、飽和処理部の出力したデータをメモリに接続されたバスに対して出力する構成でもよい。メモリは外部メモリでもよい。
語長に対応した飽和処理とは、語長に応じて決定される数値の上限と下限にたいして、演算結果がその値を超えた場合は演算値を上限値又は下限値にする処理を意味する。数値の上限と下限は語長(データのサイズとデータの符号の有無)によって決まってくる。
飽和処理部は、演算結果が格納される領域の語長または演算結果に対して要求される語長に応じて決定される上限値、下限値に対して、演算結果が大きい場合には演算結果を上限値にする処理、演算結果が小さい場合に演算結果を下限値にする処理を行う。
飽和情報保持部は、演算制御に関する情報を保持する内部レジスタを用いて実現することも出来るし、アドレスレジスタ等の一部(たとえば上位の所定ビットのフィールド)に設けることもできる。
本発明によれば、演算処理後にメモリ(記憶装置)に書き戻す信号処理プロセッサにおいて、異なる語長に対応した飽和処理をモードの切り替え等の煩雑な処理を行うことなしに効率よく行うことが出来るため、処理パフォーマンスが向上するともに、プログラムのコード数も削減することが出来る。
(2)この信号処理プロセッサは、
前記レジスタ部は、
前記飽和情報として、前記飽和処理の有無を特定する飽和有無情を保持し、
前記飽和処理部は、
前記飽和有無情報が飽和有を示している場合に飽和処理を行うようにしてもよい。
(3)この信号処理プロセッサは、
前記メモリへのアクセスアドレスを保持する複数のアドレスレジスタを含み、
飽和情報保持部は、
各アドレスレジスタに格納されるアドレスに対応するデータの語長情報を含む属性情報を、各アドレスレジスタに関連づけて保持するアドレスレジスタ属性情報保持部を含み、
前記飽和処理部は、
演算結果のライトアドレスが記憶されている前記アドレスレジスタに関連づけて保持されている前記属性情報によって特定される語長に対応した飽和処理を行うようにしてもよい。
(4)この信号処理プロセッサは、
前記飽和情報保持部は、
メモリへアクセスする語長に自動的に飽和させるモードであることを示す自動語長選択モード情報を保持し、
前記飽和処理部は、
前記自動語長選択モード情報が自動語長選択モードであることを示している場合には、演算結果のライトアドレスが記憶されている前記アドレスレジスタに関連づけて保持されている前記属性情報によって特定される語長に対応した語長で飽和処理を行うようにしてもよい。
(5)この信号処理プロセッサは、
前記デコード部は、
フェッチ部にフェッチされた命令コードが飽和情報を飽和情報保持部に設定するための飽和情報設定命令であると判断した場合には、命令コードから特定される飽和情報を飽和情報保持部に設定するようにしてもよい。
飽和情報設定命令は、汎用的なレジスタ書き込み命令(飽和情報保持部は内部レジスタのいずれかの場所に設けられている)である場合でもよいし、内部レジスタの飽和情報保持部に飽和情報を設定するための専用命令である場合でもよい。
(6)この信号処理プロセッサは、
ホストプロセッサからの飽和情報制御信号を受信した場合には、前記飽和情報制御信号に基づき、飽和情報保持部に飽和情報を設定するホストインターフェース部と、を含むようにしてもよい。
本発明の信号処理プロセッサは、ホストプロセッサに対するアクセラレータやDSP(Digital Signal Processor)として使用することもできる。このような場合ホストプロセッサから飽和情報を設定するようにしてもよい。
(7)この信号処理プロセッサは、
前記飽和情報保持部は、
所定の語長に強制的に飽和させるモードであることを示す強制飽和モード情報を保持し、
前記飽和処理部は、
前記強制飽和モード情報が強制飽和モードであることを示している場合には、前記演算結果を書き込むメモリ又はレジスタの語長にかかわらず、所定の語長に対応した飽和処理を行うようにしてもよい。
飽和情報保持部は、複数の異なる語長の各語長たいして語長毎に強制飽和モードが設定出来るようにしてもよい。この場合飽和処理部は、前記演算結果を書き込むメモリ又はレジスタの語長にかかわらず、強制飽和モードに対応した語長に語長に飽和する処理を行うようにしてもよい。
(8)本発明は、
フェッチ部にフェッチされた命令コードをデコードしてデコード結果に基づき命令実行に必要なデコード信号を生成するデコード部と、
命令実行に使用するアドレス、データ、制御情報の少なくとも1つを記憶するレジスタ部と、
前記デコード信号及びレジスタ部に記憶されている情報に基づきに基づきフェッチ部にフェッチされた命令コードの実行を行う命令実行部と、を含む信号処理プロセッサであって、
前記デコード部は、
主記憶や内部レジスタにアクセスする命令をデコードし、アクセスするデータの語長情報に基づき、前記デコード信号として飽和語長特定信号を生成し、
前記命令実行部は、
メモリからのデータの読み出し処理を行う読み出し処理部と、
読み出し処理部によって読み出されたデータを受け取り演算を行う演算部と、
演算部の演算結果を受け取り、前記演算結果に対して、所与の語長に対応した飽和処理を行う飽和処理部と、
飽和処理部の出力したデータをメモリに出力する書き出し処理部と、を含み、
前記レジスタ部は、
前記飽和処理の有無を特定する飽和有無情報を含む飽和情報が保持された飽和情報保持部を含み、
前記飽和処理部は、
前記飽和有無情報が飽和有を示している場合には前記飽和語長特定信号によって特定される語長に対応した飽和処理を行う。
(9)本発明は、
上記のいずれかに記載の信号処理プロセッサを含む半導体装置である。
以下、本発明を適用した実施の形態について図面を参照して説明する。ただし、本発明は以下の実施の形態に限定されるものではない。また、本発明に係る信号処理プロセッサ及び半導体装置は、以下の実施の形態及び変形例を自由に組み合わせたものを含むものとする。
以下、本発明を適用した信号処理プロセッサについて説明する。
図1は、本実施の形態の信号処理プロセッサの構成を示す機能ブロック図である。なお、本実施形態の信号処理プロセッサは、図1の構成要素(各部)を全て含む必要はなく、その一部を省略した構成としてもよい。
本実施の形態の信号処理プロセッサは半導体装置(IC102)として実現することが出来る。
本実施の形態の信号処理プロセッサ100は、プログラムメモリ(メモリ200の一部に設けられていても良い)から命令コードを読み出し、読み出した命令コードをフェッチレジスタ182に格納するフェッチ部180を含む。
本実施の形態の信号処理プロセッサ100は、フェッチレジスタ182にフェッチされた命令コードをデコードしてデコード結果に基づき命令実行に必要なデコード信号112、114を生成するデコード部110を含む。
本実施の形態の信号処理プロセッサ100は、飽和させる語長を特定する飽和語長調情報124を含む飽和情報が保持された飽和情報保持部120を含む。飽和情報は120は、命令実行に使用するアドレス、データ、制御情報の少なくとも1つを記憶するレジスタ部に設けられた、演算制御に関する情報を保持する内部レジスタに保持することが出来る。
飽和語長情報はデータサイズの情報でもよいし、データサイズとデータの符号の有無の情報を含む情報でもよい。また飽和語長情報は、演算で扱うデータの語長やレジスタの種類や演算結果を書き込む領域の語長に関わらず飽和する語長が設定されている構成でもよいし、演算結果を書き込む領域に応じて異なる語長が設定されている構成でもよい。
本実施の形態の信号処理プロセッサ100は、デコード信号112、114及び図示しないレジスタに記憶されている情報に基づきに基づきフェッチ部にフェッチされた命令コードの実行を行う命令実行部130とを含む。命令実行部130は、メモリ200に接続されたバスに対してデータの読み出し処理を行う読み出し処理部140を含む。命令実行部130は、読み出し処理部140によって読み出されたデータ142を受け取り演算を行う演算部150を含む。命令実行部130は、演算部150の演算結果152を受け取り、前記演算結果に対して所与の語長に対応した飽和処理を行う飽和処理部160を含む。命令実行部130は、飽和処理部160の出力したデータ162をメモリ200に接続されたバスに対して出力する書き出し処理部170を含む。
メモリ200は、演算対象のデータ又は演算結果のデータが格納される主記憶装置として機能するもので、IC102の外部に設けられ、バスによってIC102と接続される外部メモリとして構成でもよい。
飽和処理部160は、前記飽和語長情報124によって特定される語長に対応した飽和処理を行う。語長に対応した飽和処理とは、語長に応じて決定される数値の上限と下限にたいして、演算結果がその値を超えた場合は演算値を上限値又は下限値にする処理を意味する。数値の上限と下限は語長(データのサイズとデータの符号の有無)によって決まってくる。飽和処理部160は、演算結果が格納される領域の語長または演算結果に対して要求される語長に応じて決定される上限値、下限値に対して、演算結果が大きい場合には演算結果を上限値にする処理、演算結果が小さい場合に演算結果を下限値にする処理を行う。
飽和処理部160は、演算部150の出力する演算結果152に対して、第1の語長に対応した第1の飽和処理及び第1の語長とは異なる語長である第2の語長に対応した第2の飽和処理を含む複数の飽和処理が実行可能に構成されており、演算結果が格納される領域の語長または演算結果に対して要求される語長に応じていずれかの飽和処理を、前記飽和語長情報124に応じて選択的に実行出来るように構成してもよい。
飽和情報保持部120は、前記飽和情報として、前記飽和処理の有無を特定する飽和有無情122を保持し、飽和処理部は、160は飽和有無情報122が飽和有を示している場合に飽和処理を行うようにしてもよい。飽和処理部160は、飽和有無情報122が飽和無しを示している場合には前記演算結果に対して飽和処理を行わず外部メモリ又は内部レジスタに出力してもよい。
なお飽和情報保持部120は、図7〜図8で説明するように演算制御に関する情報を保持する内部レジスタを用いて実現することも出来るし、図6で説明するようにアドレスレジスタ等の一部(たとえば上位の所定ビットのフィールド)に設けることもできる。
なお図6に示すように前記メモリへのアクセスアドレスを保持する複数のアドレスレジスタを有する場合には、各アドレスレジスタに格納されるアドレスに対応するデータの語長情報を含む属性情報を、各アドレスレジスタに関連づけて保持するアドレスレジスタ属性情報保持部を設け、飽和情報保持部として機能させてもよい。このような場合記飽和処理部160は、演算結果のライトアドレスが記憶されている前記アドレスレジスタに関連づけて保持されている属性情報によって特定される語長に対応した飽和処理を行うように構成することができる。
アドレスレジスタ属性情報保持部はアドレスレジスタから対応付け可能な内部レジスタのいずれかの場所に設定されていればよい。たとえばアドレスレジスタ毎に当該アドレスレジスタに対応した属性情報レジスタを設けても良いし、図6に示すようにアドレスレジスタの一部のフィールド350を属性情報保持部として使用してもよい。
このようにすれば主記憶にアクセスする語長に対応した飽和処理を、命令コードによって語長指定等を行うことなしに実現することが出来る。
また飽和情報保持部120は、図7、図8で説明するように8メモリへアクセスする語長に自動的に飽和させるモードであることを示す自動語長選択モード情報を保持し、飽和処理部160は、自動語長選択モード情報が自動語長選択モードであることを示している場合には、演算結果のライトアドレスが記憶されている前記アドレスレジスタに関連づけて保持されている属性情報によって特定される語長に対応した語長で飽和処理を行うようにしてもよい。
このようにすると主記憶にアクセスする語長に自動的に飽和させるモードを設定することができる。
また飽和情報保持部120は、図7、図8で説明するように所定の語長に強制的に飽和させるモードであることを示す強制飽和モード情報を保持し、飽和処理部160は、強制飽和モード情報が強制飽和モードであることを示している場合には、前記演算結果を書き込むメモリ又はレジスタの語長にかかわらず、所定の語長に対応した飽和処理を行うようにしてもよい。
なお飽和情報保持部は、複数の異なる語長の各語長たいして其れ其れ語長毎に強制飽和モードが設定出来るようにしてもよい。この場合飽和処理部は、前記演算結果を書き込むメモリ又はレジスタの語長にかかわらず、強制飽和モードに対応した語長に飽和する処理を行うようにしてもよい。
飽和情報保持部120の飽和情報は、飽和情報設定命令によって設定されるようにしてもよい。たとえば本実施の形態の信号処理プロセッサの命令セットとして飽和情報保持部(たとえば飽和情報設定レジスタ)120に飽和情報値を書き込む飽和情報設定命令を用意し、飽和情報設定命令によって飽和情報保持部(たとえば飽和情報設定レジスタ)に飽和有無情報122や前記飽和語長情報124を設定してもよい。
デコード部110は、フェッチ部180にフェッチされた命令コードが飽和情報を飽和情報保持部に設定するための飽和情報設定命令であると判断した場合には、命令コードから特定される飽和情報を飽和情報保持部120に設定するようにしてもよい。
飽和情報設定命令は、汎用的なレジスタ書き込み命令(飽和情報保持部は内部レジスタのいずれかの場所に設けられている)である場合でもよいし、内部レジスタの飽和情報保持部に飽和情報を設定するための専用命令である場合でもよい。
デコード部110は、デコード結果に基づきフェッチレジスタ182にフェッチされた命令コードが飽和情報設定命令であると判断した場合には、命令コードから特定される飽和情報を飽和情報保持部120に設定するようにしてもよい。
また飽和情報保持部(たとえば飽和情報設定レジスタ)120の値は、図示しないホストプロセッサからの飽和情報制御信号212によって設定されるようにしてもよい。本実施の形態の信号処理プロセッサ100は、ホストプロセッサ210からの飽和情報制御信号212を受信した場合には、飽和情報制御信号212に基づき、飽和情報保持部(たとえば飽和情報設定レジスタ)120に飽和情報を設定するするホストインターフェース部190を含むように構成してもよい。
本発明の信号処理プロセッサは、ホストプロセッサに対するアクセラレータやDSP(Digital Signal Processor)として使用することもできる。このような場合ホストプロセッサから飽和情報を設定するようにしてもよい。
図2は本実施の形態の信号処理プロセッサの他の構成を示す機能ブロック図である。図1と同様の構成については同じ符号を付しており、説明を省略する。この信号処理プロセッサ100’は、飽和語長が演算命令コードに含まれている場合の構成を示している。飽和語長が演算命令コードに含まれている場合とは演算命令の命令コードから飽和語長が判別可能な場合であり、たとえば演算命令の命令コードのオペランドに飽和語長を特定する情報が含まれている場合でもよいし、演算命令の命令コードのオペコード自体から飽和語長を特定可能な場合(たとえば書き出す語長によって異なるオペコードが用意されている場合)でもよい。
この信号処理プロセッサ100’は、飽和情報保持部120’は前記飽和処理の有無を特定する飽和有無情報122を含む飽和情報を保持すればよく、飽和語長情報は保持しなくても良い。
デコード部110’は、主記憶(メモリ200)や内部レジスタにアクセスする命令をデコードし、アクセスするデータの語長情報に基づき、前記デコード信号として飽和語長特定信号116を生成する。デコード部110’は、演算命令の命令コードのオペランドやオペコードの種類に基づき、飽和語長を判断し、飽和語長特定信号116を生成してもよい。
飽和処理部160’は、前記飽和有無情報122が飽和有を示している場合には、演算結果152に対して飽和語長特定信号116によって特定される語長に対応した飽和処理を行う。
飽和処理部160’演算部150の出力する演算結果152に対して、第1の語長に飽和させる第1の語長飽和処理、及び第1の語長とは異なる語長である第2の語長に飽和させる第2の語長飽和処理を、飽和語長特定信号116に応じて選択的に実行出来るように構成してもよい。また飽和処理部160’は、飽和有無情報122が飽和無しを示している場合には、演算結果152に対して飽和処理を行わずメモリ(ここでは外部メモリ)200は又は内部レジスタに出力してもよい。
図3は、本実施の形態の信号処理プロセッサ100のハードウエア構成の一例を示す図である。
本実施の形態の信号処理プロセッサ100は、命令フェッチ/デコード回路10、レジスタファイル20、演算回路30、飽和回路40,Xバスリード回路50、Yバス・リード回路60、Zバス・ライト回路70、ホストI/F回路80を含む。
レジスタファイル20は、命令実行に使用するアドレス、データ、制御情報の少なくとも1つを記憶するレジスタ部として機能する。
図6は本実施の形態の信号処理プロセッサ100のレジスタファイル20のレジスタ構成の一例について説明する図である。
本実施の形態の信号処理プロセッサ100は、アドレス・レジスタ310、データ・レジスタ320、演算制御レジスタ330を含む。アドレス・レジスタ310は複数のアドレス専用レジスタ(A0〜YR)322とデータ兼用レジスタ(DR)324を含んでもよい。アドレス専用レジスタ(A0〜YR)322は、その一部(上位の所定ビット又は下位の所定ビット)にアドレス属性(long型、short型、char型等)を保持するための所定ビット(ここでは2ビット)のフィールド350を設けても良い。この場合実際のアクセスアドレスはフィールド350をのぞいたフィールド352に記憶される。なおアドレス・レジスタ310はデータ兼用レジスタ(DR)324を含んでもよい。そしてデータ兼用レジスタ(DR)324の一部(上位の所定ビット又は下位の所定ビット)にアドレス属性(long型、short型、char型等)を保持するための所定ビット(ここでは2ビット)のフィールドであるアドレス属性情報保持部350を設けても良い。上記例はアドレス属性情報保持部350は、アドレスレジスタの一部のフィールドに設けられている例であるが、アドレス属性情報保持部350は、前記複数の各アドレスレジスタのフィールドの一部に設けられている構成に限られず、アドレスレジスタと一義的に対応する場所(レジスタファイルのいずれか)に設けられていればよい。
データ・レジスタ320はTZ、XDR、YDR、ZDR、ACRを含む。XDR、YDRは演算回路の入力となるレジスタであり、XDRはXバスを介してメモリから読み出されたデータ又は演算回路の出力値(TZが格納された値)が格納される。YDRはYバスを介してメモリから読み出されたデータが格納される。TZは演算回路から出力された演算結果が格納されるレジスタで、TZに格納された値は再び演算回路の入力とすることが出来るように構成してもよい。ZDRはZバスを介してメモリに書き出されるデータが格納される。ACRはアキュミュレータである。
演算制御レジスタ330は、飽和処理部が行う飽和処理の有無及び飽和語長を決定する値(飽和モード特定情報という)が保持された飽和情報フィールド(ここでは2ビットのフィールド)332を含む。飽和情報フィールドは、たとえば、主記憶にアクセスする語長に自動的に飽和させる場合には’00’を設定、語長1への飽和(例えば符号付8bit)させる場合には’01’を設定、語長2への飽和(例えば符号付き16bit)させる場合には’10’を設定、語長3への飽和(例えば符号付き32bit)させる場合には’11’を設定してもよい。
このような構成の場合飽和情報フィールド332に’00’に設定が設定される場合には、演算結果を書き出すアドレス情報が設定されたアドレスレジスタ322のアドレス属性情報保持部350に基づき、飽和語長を決定することが出来る。たとえばアドレス属性としてlong型が指定されていれば語長を符号付き32bitに飽和させてもよい。またアドレス属性としてshort型が指定されていれば語長を符号付き16bitに飽和させてもよい。またアドレス属性としてchar型が指定されていれば語長を符号付8bitに飽和させてもよい。
命令フェッチ/デコード回路10は、図1のフェッチ部180及びデコード部110として機能するもので、命令アドレス11を出力してプログラムメモリ(内部メモリ又は外部メモリ)に記憶されている命令コード12を受け取り、受け取った命令コードをデコードしてデコード信号11〜17を出力する。
演算回路30は、図1の演算部150として機能する回路であり、Xデータ(Xバスリード回路の出力)54’、Yデータ(Yバスリード回路の出力)64’を受け取り演算結果を出力する。
飽和回路40は、図1の飽和処理部160として機能する回路であり、演算回路30の出力(演算結果)を受け取り、レジスタファイル20に記憶された飽和情報(ここでは演算結果の出力先アドレスが格納されたアドレスレジスタの属性情報保持部350に保持された属性情報や飽和情報フィールド332に格納された飽和モード特定情報)に基づき飽和処理を行う。
Xバスリード回路50は、図1の読み出し部140として機能する回路であり、デコード回路から受け取ったデコード信号やレジしたファイルから受け取ったXリードアドレス(Xデータのアドレスと属性情報を含む)を受け取り、Xアドレス51、Xデータサイズ52,Xリードリクエスト53をXバスに出力し、XバスからXリードデータ54を受け取り、Xデータ54’を出力する。
Yバスリード回路50は、図1の読み出し部140として機能する回路であり、デコード回路から受け取ったデコード信号やレジしたファイルから受け取ったYリードアドレス(Yデータのアドレスと属性情報を含む)を受け取り、Yアドレス61、Yデータサイズ62,Yリードリクエスト63をYバスに出力し、YバスからYリードデータ64を受け取り、Yデータ64’を出力する。
Zバスライト回路70は、図1の書き出し部170として機能する回路であり、飽和回路40から受け取った演算結果42を、デコード信号やレジスタファイル20からZライトアドレスアドレス(Zデータの書き出し先のアドレスと属性情報を含む)を受け取り、Zアドレス71、Zデータサイズ72,Zライトリクエスト73、Zライトデータ64をZバスに出力する。
ホストI/F回路80は、図1のホストI/F部190として機能する回路であり、ホストライトデータ81、ホストアドレス82を受け取りレジスタファイル20にデータやアドレスや制御情報を設定する。またレジスタファイル20からデータを読み出しホストリードデータ83としてホストに出力する。
ホストI/F回路80は、たとえばホストから、前記飽和情報制御信号としてアドレスレジスタの属性情報や飽和モード特定情報を受けとり、レジスタファイル20のアドレスレジスタのアドレス属性情報保持部や飽和情報フィールドに設定するようにしてもよい。
たとえば本実施の形態の信号処理プロセッサ100は、メモリオペランドとして、入力となるXソース、Yソース、出力となるディスティネーションZのアドレスレジスタ有するデータ演算命令を命令セットに有している場合、命令フェッチ/デコード回路10は、上記データ演算命令をデコードすると、Xソース、Yソース、出力となるディスティネーションZに対応するアドレスレジスタ(たとえば図6のA0アドレスレジスタ310のA1〜A2)を選択するアドレスレジスタ選択信号13〜14をレジスタファイルに対しデコード信号として出力する。
また上記演算命令でXソース、Yソース、出力となるディスティネーションZにたいしXアドレス変位値、Yアドレス変位値、Zアドレス変位値が設定されている場合にはそれらの値を、それぞれXバスリードユニット、Yバスリードユニット、Zバスライトユニットに出力する。
図4は、本実施の形態の信号処理プロセッサ100のパイプラインステージについて説明するための図である。本実施の形態の信号処理プロセッサ100は、600に示すように8段のパイプライン構成となっている。
IF(601)はフェッチ部(図3の命令フェッチ/デコード回路10)が命令フェッチを行うステージであり、DE(602)はデコード部(図3の命令フェッチ/デコード回路10)が命令デコード、アドレス計算を行うステージであり、MA(603)は読み出し処理部(図3のXバスリード回路50、Yバスリード回路60)がX−bus、Y−busのメモリ・アクセスを行うステージであり、DR(603)は読み出し処理部(図3のXバスリード回路50、Yバスリード回路60)が、X−bus、Y−busのデータ・リードを行うステージであり、E1(605)は演算部(図3の演算回路30)が乗算を行うステージであり、E2(606)は演算部(図3の演算回路30)が加減算やアキュミュレーションを行うステージであり、E3(607)は飽和処理部(図3の飽和回路40)がシフトや飽和処理を行うステージであり、WB(608)は、書き出し処理部(書き出し回路170)がZ−busライトを行うステージである。
図5は、演算回路30、飽和回路40の構成の一例とE1ステージ、E2ステージ、E3ステージにおけるデータの流れを示す図である。
メモリ200に格納されたデータや内部レジスタに格納されたデータや即値で与えられたデータに対して算術演算を行い、演算結果をメモリ200や内部レジスタに書き出すタイプのデータ演算命令(加算、減算、乗算、積和、マイナス積和等の算術演算命令等)の実行する際のデータの流れの一例について説明する。
DRステージ(603)おいてXバス、Yバスを介してメモリから読み出されたデータは、それぞれデータレジスタXDR、YDRに格納されている。
E1ステージにおいては、X入力セレクタ710はレジスタXDR、ZDR、TZの値を入力し、いずれかの値を乗算器714に入力されるデータ(Xデータ)として選択して出力するとともに、レジスタ718にも出力する。またY入力セレクタ712はレジスタYDR、XDRの値を入力し、いずれかの値を乗算器714に入力されるデータ(Yデータ)として選択して出力する。乗算器714はX入力セレクタ710及びY入力セレクタ710の出力を受け取り乗算結果を出力する。加算機入力セレクタA(716)は、乗算器714の出力、Y入力セレクタ712を受け取りいずれかの値をレジスタ720に出力する。
E2ステージにおいては、加算機入力セレクタB(722)はレジスタ718のデータ、所定の制御データ740、レジスタTZのデータを受け取りずれかの値を加算機724に出力する。加算機724は加算機入力セレクタB(722)の出力、レジスタ720の値を受け取り加算結果をレジスタACRに出力する。
E3ステージにおいては、シフト回路728はレジスタACRのデータを受け取り所定の制御情報730に従ってシフト処理を行う。飽和回路732は、シフト回路728の出力を受け取り、演算制御レジスタ330の飽和情報フィールド332に設定されている飽和モード特定情報に基づき決定される語長への飽和処理を行い、飽和処理結果をレジスタDZR、TZに格納する。レジスタDZRに格納されたデータは、書き出し処理部(書き出し回路170)がZ−busライトが行われメモリに格納される。レジスタTZに格納されたデータは、X入力セレクタ710の入力となる。
ここで飽和モード特定情報(演算制御レジスタ330の飽和情報フィールド332に設定されている値)が、’01’である場合には語長1への飽和(例えば符号付8bit)させ、’10’である場合には語長2への飽和(例えば符号付き16bit)させ、’11’である場合には語長3への飽和(例えば符号付き32bit)させる処理をおこなってもよい。また飽和モード特定情報(演算制御レジスタ330の飽和情報フィールド332に設定されている値)が’00’である場合には、主記憶にアクセスする語長に自動的に飽和させる処理を行うために、図示しないZアドレス(主記憶への書き出し先アドレス)が格納されているアドレスレジスタの上位2ビット(属性情報保持部)の値を受けとり、属性情報としてlong型が指定されていれば語長を符号付き32bitに飽和させ、属性情報としてshort型が指定されていれば語長を符号付き16bitに飽和させ、属性情報としてchar型が指定されていれば語長を符号付き8ビットに飽和させる処理を行っても良い。
図7は、本実施の形態における飽和情報の設定例について説明するための図である。
本実施の形態の飽和情報は、たとえば丸め処理の有無を示すビット(R)、飽和処理の有無を示すビット(S)、語長1への飽和を指示するビット(1)、語長2への飽和を指示するビット(2)、語長3への飽和を指示するビット(3)、書き込み語長への飽和を指示するビット(4)で構成し、それらをそれぞれレジスタR(810)、レジスタS(812)、レジスタ1(814)、レジスタ2(816)、レジスタ3(818)、レジスタ4(820)に格納するようにしてもよい。
レジスタR(810)、レジスタS(812)、レジスタ1(814)、レジスタ2(816)、レジスタ3(818)、レジスタ4(820)はレジスタファイルの演算制御レジスタの一部に設けても良い。以下、これらのレジスタを飽和モードレジスタとよぶ。
次に図8、図9を用いて本実施の形態の飽和処理例について説明する。
前提条件として、演算回路30の出力は符号付の40ビットとし、語長1は32ビット,語長2は16ビット、語長3は8ビットとする。また飽和処理の有無にかかわらず、書き込みの最大語長は語長1(32ビット)とする。
飽和モードレジスタによって特定される飽和処理の形態は5通りあり、モード1からモード5とする。
モード1は、丸め処理無し、飽和無し(この場合飽和レジスタ1〜4の設定は無視される。)の飽和処理を行うモードである。モード2は、丸め処理無し、語長1での飽和処理を行うモードである。モード3は、丸め処理無し、語長2での飽和処理を行うモードである。モード4は、丸め処理無し、語長3での飽和処理を行うモードである。モード5は丸め処理無し、書き込み語長での飽和処理行うモードである。
830は飽和モードレジスタR、S、1〜4に設定されている値と各モードとの対応関係を示す図である。
図9は、演算回路の出力値と飽和結果について説明するための図である。
モード1の場合演算回路出力(符号付の40ビット)の下位から最大語長(32ビット)を符号拡張して出力する(符号ビットを32ビットにして、31ビットをセットする)。
モード2の場合、演算回路出力を符号付32ビットに飽和処理する。たとえば演算回路出力Aの場合(40ビットとして842のデータ出力された場合)、符号付32ビットの最大値である値(852)に飽和させる。また演算回路出力Bの場合(40ビットとして844のデータ出力された場合)、符号付32ビットの最小値である値(854)に飽和させる。また演算回路出力Cの場合(40ビットとして846のデータ出力された場合)、そのまま出力する。
モード3の場合、演算回路出力を符号付16ビットに飽和処理する。たとえば演算回路出力Aの場合(40ビットとして842のデータ出力された場合)、符号付16ビットの最大値である値(862)に飽和させる。また演算回路出力Bの場合(40ビットとして844のデータ出力された場合)、符号付16ビットの最小値である値(864)に飽和させる。また演算回路出力Cの場合(40ビットとして846のデータ出力された場合)、そのまま出力する。
モード4の場合、演算回路出力を符号付8ビットに飽和処理する。たとえば演算回路出力Aの場合(40ビットとして842のデータ出力された場合)、符号付8ビットの最大値である値(872)に飽和させる。また演算回路出力Bの場合(40ビットとして844のデータ出力された場合)、符号付8ビットの最小値である値(874)に飽和させる。また演算回路出力Cの場合(40ビットとして846のデータ出力された場合)、符号付8ビットの最大値である値(876)に飽和させる。
次にモード5の時の各書き込み語長に対する飽和処理例について説明する。以下の書き込み語長はたとえばライトアドレスが格納されたレジスタに対応して設定されている属性情報の値によって決定することが出来る。
属性情報が書き込み語長1(符号付32ビット)である場合、演算回路出力を符号付32ビットに飽和処理する。たとえば演算回路出力Aの場合(40ビットとして842のデータ出力された場合)、符号付32ビットの最大値である値(852)に飽和させる。また演算回路出力Bの場合(40ビットとして844のデータ出力された場合)、符号付32ビットの最小値である値(854)に飽和させる。また演算回路出力Cの場合(40ビットとして846のデータ出力された場合)、そのまま出力する。
属性情報が書き込み語長2(符号付16ビット)である場合、演算回路出力を符号付16ビットに飽和処理する。たとえば演算回路出力Aの場合(40ビットとして842のデータ出力された場合)、符号付16ビットの最大値である値(862)に飽和させる。また演算回路出力Bの場合(40ビットとして844のデータ出力された場合)、符号付16ビットの最小値である値(864)に飽和させる。また演算回路出力Cの場合(40ビットとして846のデータ出力された場合)、そのまま出力する。
属性情報が書き込み語長3(符号付8ビット)である場合、演算回路出力を符号付8ビットに飽和処理する。たとえば演算回路出力Aの場合(40ビットとして842のデータ出力された場合)、符号付8ビットの最大値である値(872)に飽和させる。また演算回路出力Bの場合(40ビットとして844のデータ出力された場合)、符号付8ビットの最小値である値(874)に飽和させる。また演算回路出力Cの場合(40ビットとして846のデータ出力された場合)、符号付8ビットの最大値である値(876)に飽和させる。
飽和処理は書き出し先のメモリ又はレジスタの語長に飽和させるのが一般的であるが、本実施の形態によれば前記演算結果を書き込むメモリ又はレジスタの語長にかかわらず強制的に所定の語長対応した飽和処理を行うことが出来る。従ってたとえば書き出し先の語長が符号付きの32ビットでも符号付きの16ビットや符号付きの8ビット対応した飽和処理を行うことが出来る。
本発明は、上述の実施の形態に限定されるものではなく、種々の変形が可能である。本発明は、実施の形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
本実施の形態の信号処理プロセッサの構成を示す機能ブロック図。 本実施の形態の信号処理プロセッサの他の構成を示す機能ブロック図。 本実施の形態の信号処理プロセッサのハードウエア構成の一例を示す図。 本実施の形態の信号処理プロセッサのパイプラインステージについて説明するための図。 演算回路、飽和回路の構成の一例とデータの流れを示す図。 本実施の形態の信号処理プロセッサのレジスタ構成の一例について説明する図。 本実施の形態における飽和情報の設定例について説明するための図。 本実施の形態の飽和処理例について説明する図。 本実施の形態の飽和処理例について説明する図。
符号の説明
100 信号処理プロセッサ、102 半導体装置(IC)、110 デコード部、112、114 デコード信号、120 飽和情報保持部、122 飽和有無情報、124 飽和語長情報、130 命令実行部、140 読み出し回路、140 飽和処理部、170 書き出し回路、180 フェッチ部、182 フェッチレジスタ、190 ホストI/F部、200 メモリ、210 ホストプロセッサ、310 アドレスレジスタ、350 アドレス属性情報保持部、330 演算制御レジスタ、332 飽和情報フィールド

Claims (9)

  1. フェッチ部にフェッチされた命令コードをデコードしてデコード結果に基づき命令実行に必要なデコード信号を生成するデコード部と、
    命令実行に使用するアドレス、データ、制御情報の少なくとも1つを記憶するレジスタ部と、
    前記デコード信号及びレジスタ部に記憶されている情報に基づきに基づきフェッチ部にフェッチされた命令コードの実行を行う命令実行部と、を含む信号処理プロセッサであって、
    前記命令実行部は、
    メモリからのデータの読み出し処理を行う読み出し処理部と、
    読み出し処理部によって読み出されたデータを受け取り演算を行う演算部と、
    演算部の演算結果を受け取り、前記演算結果に対して所与の語長に対応した飽和処理を行う飽和処理部と、
    飽和処理部の出力したデータをメモリに出力する書き出し処理部と、を含み、
    前記レジスタ部は、
    前記飽和処理において飽和させる語長を特定する飽和語長調情報を含む飽和情報が保持された飽和情報保持部を含み、
    前記飽和処理部は、
    前記飽和語長情報によって特定される語長に対応した飽和処理を行う信号処理プロセッサ。
  2. 請求項1において、
    前記レジスタ部は、
    前記飽和情報として、前記飽和処理の有無を特定する飽和有無情を保持し、
    前記飽和処理部は、
    前記飽和有無情報が飽和有を示している場合に飽和処理を行う信号処理プロセッサ。
  3. 請求項1乃至2のいずれかにおいて、
    前記メモリへのアクセスアドレスを保持する複数のアドレスレジスタを含み、
    飽和情報保持部は、
    各アドレスレジスタに格納されるアドレスに対応するデータの語長情報を含む属性情報を、各アドレスレジスタに関連づけて保持するアドレスレジスタ属性情報保持部を含み、
    前記飽和処理部は、
    演算結果のライトアドレスが記憶されている前記アドレスレジスタに関連づけて保持されている前記属性情報によって特定される語長に対応した飽和処理を行う信号処理プロセッサ。
  4. 請求項3において、
    前記飽和情報保持部は、
    メモリへアクセスする語長に自動的に飽和させるモードであることを示す自動語長選択モード情報を保持し、
    前記飽和処理部は、
    前記自動語長選択モード情報が自動語長選択モードであることを示している場合には、演算結果のライトアドレスが記憶されている前記アドレスレジスタに関連づけて保持されている前記属性情報によって特定される語長に対応した語長で飽和処理を行う信号処理プロセッサ。
  5. 請求項1乃至4のいずれかにおいて、
    前記デコード部は、
    フェッチ部にフェッチされた命令コードが飽和情報を飽和情報保持部に設定するための飽和情報設定命令であると判断した場合には、命令コードから特定される飽和情報を飽和情報保持部に設定する信号処理プロセッサ。
  6. 請求項1乃至5のいずれかにおいて、
    ホストプロセッサからの飽和情報制御信号を受信した場合には、前記飽和情報制御信号に基づき、飽和情報保持部に飽和情報を設定するホストインターフェース部と、を含む信号処理プロセッサ。
  7. 請求項1乃至6のいずれかにおいて、
    前記飽和情報保持部は、
    所定の語長に強制的に飽和させるモードであることを示す強制飽和モード情報を保持し、
    前記飽和処理部は、
    前記強制飽和モード情報が強制飽和モードであることを示している場合には、前記演算結果を書き込むメモリ又はレジスタの語長にかかわらず、所定の語長に対応した飽和処理を行う信号処理プロセッサ。
  8. フェッチ部にフェッチされた命令コードをデコードしてデコード結果に基づき命令実行に必要なデコード信号を生成するデコード部と、
    命令実行に使用するアドレス、データ、制御情報の少なくとも1つを記憶するレジスタ部と、
    前記デコード信号及びレジスタ部に記憶されている情報に基づきに基づきフェッチ部にフェッチされた命令コードの実行を行う命令実行部と、を含む信号処理プロセッサであって、
    前記デコード部は、
    主記憶や内部レジスタにアクセスする命令をデコードし、アクセスするデータの語長情報に基づき、前記デコード信号として飽和語長特定信号を生成し、
    前記命令実行部は、
    メモリからのデータの読み出し処理を行う読み出し処理部と、
    読み出し処理部によって読み出されたデータを受け取り演算を行う演算部と、
    演算部の演算結果を受け取り、前記演算結果に対して、所与の語長に対応した飽和処理を行う飽和処理部と、
    飽和処理部の出力したデータをメモリに出力する書き出し処理部と、を含み、
    前記レジスタ部は、
    前記飽和処理の有無を特定する飽和有無情報を含む飽和情報が保持された飽和情報保持部を含み、
    前記飽和処理部は、
    前記飽和有無情報が飽和有を示している場合には前記飽和語長特定信号によって特定される語長に対応した飽和処理を行う信号処理プロセッサ。
  9. 請求項1乃至8のいずれかに記載の信号処理プロセッサを含む半導体装置。
JP2008181790A 2008-07-11 2008-07-11 信号処理プロセッサ及び半導体装置 Withdrawn JP2010020625A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008181790A JP2010020625A (ja) 2008-07-11 2008-07-11 信号処理プロセッサ及び半導体装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008181790A JP2010020625A (ja) 2008-07-11 2008-07-11 信号処理プロセッサ及び半導体装置

Publications (2)

Publication Number Publication Date
JP2010020625A true JP2010020625A (ja) 2010-01-28
JP2010020625A5 JP2010020625A5 (ja) 2011-08-18

Family

ID=41705437

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008181790A Withdrawn JP2010020625A (ja) 2008-07-11 2008-07-11 信号処理プロセッサ及び半導体装置

Country Status (1)

Country Link
JP (1) JP2010020625A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10214186A (ja) * 1996-11-29 1998-08-11 Matsushita Electric Ind Co Ltd 正値化処理及び飽和演算処理からなる丸め処理を好適に行うことができるプロセッサ
JP2001075778A (ja) * 1999-09-02 2001-03-23 Nec Corp 演算装置および方法
JP2002132492A (ja) * 2000-08-24 2002-05-10 Infineon Technologies Ag デジタルデータの加算回路

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10214186A (ja) * 1996-11-29 1998-08-11 Matsushita Electric Ind Co Ltd 正値化処理及び飽和演算処理からなる丸め処理を好適に行うことができるプロセッサ
JP2001075778A (ja) * 1999-09-02 2001-03-23 Nec Corp 演算装置および方法
JP2002132492A (ja) * 2000-08-24 2002-05-10 Infineon Technologies Ag デジタルデータの加算回路

Similar Documents

Publication Publication Date Title
US10261796B2 (en) Processor and method for executing in-memory copy instructions indicating on-chip or off-chip memory
US7447871B2 (en) Data access program instruction encoding
JP4996654B2 (ja) プロセッサ
JP4202244B2 (ja) Vliw型dsp,及びその動作方法
JP4228241B2 (ja) 演算処理装置
CN108733412B (zh) 一种运算装置和方法
JPH1165839A (ja) プロセッサの命令制御機構
JP4607958B2 (ja) プロセッサおよびプログラム変換装置
US20080282071A1 (en) Microprocessor and register saving method
JP5327432B2 (ja) 信号処理プロセッサ及び半導体装置
JP2010020625A (ja) 信号処理プロセッサ及び半導体装置
US5812845A (en) Method for generating an object code for a pipeline computer process to reduce swapping instruction set
KR19980024622A (ko) 프로그램 실행 방법 및 그 방법을 이용한 장치
JP5732139B2 (ja) データ要素の条件付き選択
US8700887B2 (en) Register, processor, and method of controlling a processor using data type information
CN106990939B (zh) 修改数据处理单元的行为
JP5263497B2 (ja) 信号処理プロセッサ及び半導体装置
JP5263498B2 (ja) 信号処理プロセッサ及び半導体装置
JP5311008B2 (ja) 信号処理プロセッサ及び半導体装置
JP2000112754A (ja) データ処理装置
CN114064124A (zh) 数据处理方法及装置、电子设备和存储介质
JP2010092273A (ja) 情報処理装置
JP2011170758A (ja) プロセッサ
JP6127883B2 (ja) 半導体装置および半導体装置の動作制御方法
US9164761B2 (en) Obtaining data in a pipelined processor

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110705

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110705

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121128

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20130125