(57)【要約】【課題】算術演算におけるキャリーの伝播遅延を抑制し高速な算術演算処理を実行することができる演算処理装置を得ること。【解決手段】ＡＬＵ１はプロセッサから入力された通常の２進数のデータを格納している複数のレジスタ３１−１〜３１−ｍのデータを用いて論理演算処理および算術演算処理を実行して演算結果をレジスタ３１−１〜３１−ｍに格納し、ＡＬＵ２はレジスタ３１−１〜３１−ｍに対応付けられて符号変換部５によって符号変換が施された剰余数系のデータを格納している複数の変換レジスタ４１−１〜４１−ｍのデータを用いて論理演算処理および算術演算処理を実行して演算結果を変換レジスタ４１−１〜４１−ｍに格納し、変換レジスタ４１−１〜４１−ｍに格納されているデータをプロセッサに出力する際には、剰余数系のデータに逆符号変換を施して通常の２進数に変換した後に出力する。【選択図】        図１
2006195563.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサから入力された命令に基づいて、前記プロセッサから入力されたデータに論理演算処理または算術演算処理を施して演算処理結果を出力する演算処理装置において、
前記データおよび前記演算処理結果を前記プロセッサが認識する第１のデータ形式で格納するレジスタと、
前記複数のレジスタに対応付けられて、前記データおよび前記演算処理結果を前記第１のデータ形式とは異なる符合の第２のデータ形式で格納する変換レジスタと、
前記第１のデータ形式のデータに符号変換を施して前記第２のデータ形式のデータに変換して前記変換レジスタに格納するとともに、前記第２のデータ形式のデータに逆符号変換を施して前記第１のデータ形式に変換して前記レジスタに格納する符号変換部と、
前記命令に基づいて前記レジスタに格納されている前記第１のデータ形式のデータを用いて論理演算処理および算術演算処理を実行する算術論理演算処理部と、
前記命令に基づいて前記変換レジスタに格納されている前記第２のデータ形式のデータを用いて論理演算処理および算術演算処理を実行する変換算術論理演算処理部と、
を備え、
前記第２のデータ形式のデータを前記第１のデータ形式のデータに変換した後に、前記プロセッサに算術演算処理の演算結果を出力すること、
を特徴とする演算処理装置。
【請求項２】
前記算術論理演算処理部は、
前記プロセッサから入力された第１のデータ形式のデータを前記命令によって指定されたレジスタに格納し、
前記符号変換部は、
前記命令が算術演算処理を示す場合に前記レジスタに格納されている第１のデータ形式のデータに符号変換を施して第２のデータ形式のデータに変換し、変換したデータを前記レジスタに対応する変換レジスタに格納し、
前記変換算術論理演算処理部は、
前記変換レジスタに格納された第２のデータ形式のデータを用いて算術演算処理を実行し、実行した算術演算処理の演算結果を前記変換レジスタに格納すること、
を特徴とする請求項１に記載の演算処理装置。
【請求項３】
前記符号変換部は、
前記プロセッサから入力された第１のデータ形式のデータを前記命令によって指定されたレジスタに格納するとともに、前記第１のデータ形式のデータに符号変換を施して前記第２のデータ形式のデータに変換し、変換したデータを前記命令によって指定されたレジスタに対応する前記変換レジスタに格納すること、
を特徴とする請求項１に記載の演算処理装置。
【請求項４】
前記複数のレジスタの一部に対応する数だけ前記変換レジスタを備えることを特徴とする請求項１〜３の何れか一つに記載の演算処理装置。
【請求項５】
前記第１のデータ形式を通常の２進数とし、前記第２のデータ形式を剰余数系、ＳＤ数系、冗長２進系、またはＢｏｏｔｈのアルゴリズムに基づく係数とすることを特徴とする請求項１〜４の何れか一つに記載の演算処理装置。
【請求項６】
プロセッサから入力された命令に基づいて、前記プロセッサから入力されたデータに論理演算処理または算術演算処理を施して演算処理結果を出力する演算処理装置において、
前記データおよび前記演算処理結果を前記プロセッサが認識する第１のデータ形式で格納する複数のレジスタと、
前記データおよび前記演算処理結果を前記第１のデータ形式とは異なる符合の第２のデータ形式で格納する前記複数のレジスタに対応する複数の変換レジスタと、
前記第１のデータ形式のデータに符号変換を施して前記第２のデータ形式のデータに変換して前記変換レジスタに格納するとともに、前記第２のデータ形式のデータに逆符号変換を施して前記第１のデータ形式に変換して前記レジスタに格納する符号変換部と、
前記命令に基づいて前記レジスタに格納されている前記第１のデータ形式のデータを用いて論理演算処理を実行する論理演算処理部と、
前記命令に基づいて前記変換レジスタに格納されている前記第２のデータ形式のデータを用いて算術演算処理を実行する変換算術演算処理部と、
を備え、
前記第２のデータ形式のデータを前記第１のデータ形式のデータに変換した後に、前記プロセッサに算術演算処理の演算結果を出力すること、
を特徴とする演算処理装置。
【請求項７】
前記論理演算処理部は、
前記プロセッサから入力された第１のデータ形式のデータを前記命令によって指定されたレジスタに格納し、
前記符号変換部は、
前記命令が算術演算処理を示す場合に前記レジスタに格納されている第１のデータ形式のデータに符号変換を施して第２のデータ形式のデータに変換し、変換したデータを前記レジスタに対応する変換レジスタに格納し、
前記変換算術演算処理部は、
前記変換レジスタに格納された第２のデータ形式のデータを用いて算術演算処理を実行し、実行した算術演算処理の演算結果を前記変換レジスタに格納すること、
を特徴とする請求項６に記載の演算処理装置。
【請求項８】
前記符号変換部は、
前記プロセッサから入力された第１のデータ形式のデータを前記命令によって指定されたレジスタに格納するとともに、前記第１のデータ形式のデータに符号変換を施して前記第２のデータ形式のデータに変換し、変換したデータを前記命令によって指定されたレジスタに対応する前記変換レジスタに格納すること、
を特徴とする請求項６に記載の演算処理装置。
【請求項９】
前記複数のレジスタの一部に対応する数だけ前記変換レジスタを備えることを特徴とする請求項６〜８の何れか一つに記載の演算処理装置。
【請求項１０】
前記第１のデータ形式を通常の２進数とし、前記第２のデータ形式を剰余数系、ＳＤ数系、冗長２進系、またはＢｏｏｔｈのアルゴリズムに基づく係数とすることを特徴とする請求項６〜９の何れか一つに記載の演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサに用いる演算処理装置に関するものであり、特に、演算処理装置が実行する算術演算処理に関するものである。
【背景技術】
【０００２】
一般的に、ＣＰＵ（Central Processing Unit）やＤＳＰ(Digital Signal Processor）などのプロセッサに適用される演算処理装置は、ＡＬＵ（Arithmetic Logic Unit)と複数のレジスタで構成されるレジスタファイルで構成され、ＡＬＵが数値Ｎを、「Ｎ＝ａn-1・２n-1＋ａn-2・２n-2＋…＋ａ0・２0」で表現する通常の２進数のデータをレジスタから読み出し、読み出したデータに対して算術論理演算（算術演算や論理演算）を実行し、実行した算術論理演算の結果をレジスタに書き込むようにしている。
【０００３】
近年、プロセッサは様々な用途に用いられ、処理の高速化が求められている。プロセッサの処理速度は、演算処理装置の処理の速度、特に算術演算処理に依存する。そのため、従来から演算処理装置の算術演算処理を高速化するために種々の技術が考えられている。
【０００４】
たとえば、特許文献１に記載の従来技術では、データを主記憶内のデータ形式に相当する第１のデータ形式と、算術演算処理に適する第２のデータ形式とでレジスタファイルに保持するとともに、それぞれのデータ形式に対応して内容の使用可否が設定されるフラグと、第１のデータ形式と第２のデータ形式とのデータ変換を行なう手段を設けて、各命令シーケンス毎に適するデータ形式を選択して対応するフラグを調べ、セット／リセットを制御を行ない、必要に応じて形式変換を行なって演算に供する演算装置に関する技術が開示されている。
【０００５】
【特許文献１】特開昭５９−２１４９４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記特許文献１に記載の演算装置では、主記憶とのデータのやり取りに用いる第１のデータ形式、または算術演算に用いる第２のデータ形式の一方のデータ形式でデータを保持しておき、算術演算を行なう際にデータが第１のデータ形式で保持されている場合には第２のデータ形式に変換して算術演算を行なって演算結果を第２のデータ形式で保持し、主記憶にデータを転送する際にデータが第２のデータ形式で保持されている場合には第２のデータ形式から第１のデータ形式に変換してデータ転送するようにしているので、不要なデータの変換時間をなくし、データが入力されてから算術演算を実行し、実行した演算結果を出力するまでの算術演算処理時間を短縮するようにしている。
【０００７】
しかしながら、上記特許文献１に記載の演算装置は、第１のデータ形式と第２のデータ形式との不要な変換時間を無くするものであり、加算や乗算などの算術演算を実行する回路の実行時間を短縮するものではない。
【０００８】
具体的には、上記特許文献１に記載の演算装置では、第２のデータ形式は、符号部、指数部、および仮数部を分離したものであり、指数部および仮数部は通常の２進数である。通常の２進数における加算や乗算などの算術演算は、下位ビットから上位ビットへの桁上げ（キャリー）が発生し、このキャリーの伝播遅延が処理速度を決定する。一般的に、キャリールッカーヘッド回路により複数ビット単位で加算と同時にキャリーの有無を検出することでキャリーの伝播遅延を短縮するようにしているが、キャリーの伝播遅延が算術演算の処理速度を決定することに変わりはない。すなわち、キャリーの伝播遅延が全ての桁に影響する通常の２進数のデータによる演算回路では、ビット数が多くなるほど算術演算に要する時間がかかるという問題があった。
【０００９】
本発明は、上記に鑑みてなされたものであって、算術演算におけるキャリーの伝播遅延を抑制し高速な算術演算処理を実行することができる演算処理装置を得ることを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明は、プロセッサから入力された命令に基づいて、前記プロセッサから入力されたデータに論理演算処理または算術演算処理を施して演算処理結果を出力する演算処理装置において、前記データおよび前記演算処理結果を前記プロセッサが認識する第１のデータ形式で格納するレジスタと、前記複数のレジスタに対応付けられて、前記データおよび前記演算処理結果を前記第１のデータ形式とは異なる符合の第２のデータ形式で格納する変換レジスタと、前記第１のデータ形式のデータに符号変換を施して前記第２のデータ形式のデータに変換して前記変換レジスタに格納するとともに、前記第２のデータ形式のデータに逆符号変換を施して前記第１のデータ形式に変換して前記レジスタに格納する符号変換部と、前記命令に基づいて前記レジスタに格納されている前記第１のデータ形式のデータを用いて論理演算処理および算術演算処理を実行する算術論理演算処理部と、前記命令に基づいて前記変換レジスタに格納されている前記第２のデータ形式のデータを用いて論理演算処理および算術演算処理を実行する変換算術論理演算処理部と、を備え、前記第２のデータ形式のデータを前記第１のデータ形式のデータに変換した後に、前記プロセッサに算術演算処理の演算結果を出力すること、を特徴とする。
【発明の効果】
【００１１】
この発明によれば、プロセッサが認識する第１のデータ形式のデータを用いて論理演算処理および算術演算処理を実行する算術演算処理部と、第１のデータ形式のデータとは異なる符号の第２のデータ形式のデータを用いてキャリーの伝播遅延を抑制した算術演算処理を実行する変換算術演算処理部とを備え、第１のデータ形式のデータを格納する複数のレジスタに対応付けられて変換レジスタが第２のデータ形式のデータを格納し、プロセッサの命令によって算術演算処理部と変換算術演算処理部とを使い分けるようにしているので、算術演算処理を高速に実現することができる演算処理装置を得ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明にかかる演算処理装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１３】
実施の形態１．
図１〜図４を用いてこの発明の実施の形態１を説明する。この発明にかかる演算処理装置は、ＣＰＵ（Central Processing Unit）やＤＳＰ(Digital Signal Processor）などのプロセッサに適用され、プロセッサが実行するプログラムの命令によって制御されて、算術論理演算処理を実行する。
【００１４】
図１は、この発明にかかる演算処理装置の実施の形態１の構成を示すブロック図である。図１に示した演算処理装置は、ＡＬＵ１，２と、レジスタファイル３と、変換レジスタファイル４と、符号変換部５とを備えており、制御バス８を介してプロセッサからの命令によって制御されプロセッサが実行するプログラムによる算術演算処理を実現する。また、ＡＬＵ１およびレジスタファイル３は、プロセッサの内部バス７（入力用内部バス７ａおよび出力用内部バス７ｂ）と接続され、入力用内部バス７ａを介してプロセッサからのデータが入力されるとともに、出力用内部バス７ｂを介してプロセッサにデータを出力する。なお、ＡＬＵ１が特許請求の範囲でいうところの算術論理演算処理部であり、ＡＬＵ２が特許請求の範囲でいうところの変換算術論理演算処理部である。
【００１５】
レジスタファイル３は、通常の２進数のデータを格納するｍ（１＜ｍ，ｍは自然数）個のレジスタ３１−１〜３１−ｍと、レジスタ３１−１〜３１−ｍに対応付けられレジスタ３１−１〜３１−ｍに格納されているデータが有効であるか否かを示す値が設定されるフラグ３２−１〜３２−ｍとを備えている。通常の２進数とは、「数値Ｎ＝ａn-1・２n-1＋ａn-2・２n-2＋…＋ａ0・２0」で表現するデータ形式であり、特許請求の範囲でいうところの第１のデータ形式である。
【００１６】
レジスタファイル４は、剰余数系（特許請求の範囲でいうところの第２のデータ形式）のデータを格納するｍ個のレジスタ４１−１〜４１−ｍと、レジスタ４１−１〜４１−ｍに対応付けられレジスタ４１−１〜４１−ｍに格納されているデータが有効であるか否かを示す値が設定されるフラグ４２−１〜４２−ｍとを備えている。ここでは、剰余数系は、数値Ｎを３の剰余（２ビット）、５の剰余（３ビット）、７の剰余（３ビット）、１１の剰余（４ビット）、１３の剰余（４ビット）、１９の剰余（５ビット）、２３の剰余（５ビット）、２９の剰余（５ビット）、３１の剰余（５ビット）の３６ビットを用いて通常の２進数の３２ビットを表すものとするが、これに限るものではない。
【００１７】
ＡＬＵ１は、入力用内部バス７ａから通常の２進数を用いて算術論理演算を行なうとともに、演算結果をレジスタファイル３に格納したり、レジスタファイル３に格納されているデータを出力用内部バス７ｂに出力する。なお、ＡＬＵ１の算術演算回路は、通常の２進数を用いて加算や乗算を行なう回路構成となっている。
【００１８】
ＡＬＵ２は、変換レジスタファイル４に格納されている剰余数系のデータを用いて算術演算を行なうとともに、演算結果を変換レジスタファイル４に格納する。なお、ＡＬＵ２の算術演算回路は、剰余数系を用いて加算や乗算を行なう構成となっている。たとえば、剰余数系では「１３」は、
「0101_1110_0010_0000_0110_1011_0101_1010_1101」
で表され、剰余数系では「８」は、
「1001_1001_1000_1000_0100_0010_0001_0000_1000」
で表され、「１３」と「８」の積「１０４」は剰余数系では、
「1010_0110_0101_0000_0100_1011_0010_0010_1011」
で表され、剰余数系の特性から剰余同士で演算を行なえばよい。したがって、数値Ｎを３の剰余（２ビット）、５の剰余（３ビット）、７の剰余（３ビット）、１１の剰余（４ビット）、１３の剰余（４ビット）、１９の剰余（５ビット）、２３の剰余（５ビット）、２９の剰余（５ビット）、３１の剰余（５ビット）の３６ビットを用いて通常の２進数の３２ビットを表す場合、３の剰余の２ビット、５の剰余の３ビット、７の剰余の３ビット、１１の剰余の４ビット、１３の剰余の４ビット、１９の剰余の５ビット、２３の剰余の５ビット、２９の剰余の５ビット、および３１の剰余の５ビットの演算を行なう回路構成となる。すなわち、ＡＬＵ１が通常の２進数の３２ビットでの演算を行なうのに対して、ＡＬＵ２は、剰余数系を用いることで最大５ビットの演算を行なえばよく、３２ビットの全てのビットに影響をおよぼすキャリーの伝播遅延が、最大５ビットのキャリーの伝播遅延となり、演算時間を高速にすることができる回路構成となっている。
【００１９】
符号変換部５は、プロセッサからの命令によって、レジスタファイル３に格納されている通常の２進数のデータに符号変換を施して剰余数系のデータに変換し、変換したデータを変換レジスタファイル４に格納する。また、符号変換部５は、プロセッサからの命令によって、レジスタファイル４に格納されている剰余数系のデータに逆符号変換を施して通常の２進数のデータに変換し、変換したデータをレジスタファイル３に格納する。具体的には、レジスタファイル３のレジスタ３１−１と変換レジスタファイル４の変換レジスタ４１−１とが対応図けられ、レジスタ３１−２と変換レジスタ４１−２とが対応付けられ、レジスタ３１−３と変換レジスタ４１−３とが対応付けられ、…、レジスタ４１−ｍと変換レジスタ４１−ｍとが対応付けられており、符号変換部５は、レジスタ３１−１に格納されている通常の２進数のデータに符号変換を施した剰余数系のデータを変換レジスタ４１−１に格納し、変換レジスタ４１−１に格納されている剰余数系のデータに逆符号変換を施した通常の２進数のデータをレジスタ３１−１に格納する。なお、符号変換部５は、データを格納する際に、データを格納したレジスタ３１−１〜３１−ｍ、変換レジスタ４１−１〜４１−ｍに対応するフラグ３２−１〜３２−ｍ、４１−１〜４１−ｍに有効を示す値を設定する。
【００２０】
つぎに、図２および図３のフローチャートを参照して、この発明にかかる演算処理装置の実施の形態１の動作を説明する。まず、図２のフローチャートを参照して、算術論理演算処理の動作を説明する。
【００２１】
ＡＬＵ１は、プロセッサから指定されたレジスタ３１−１〜３１−ｍに入力用内部バス７ａを介して入力されるデータを格納し、データを格納したレジスタ３１−１〜３１−ｍに対応するフラグ３２−１〜３２−ｍに有効を示す値（たとえば、「１」）を設定する（ステップＳ１００）。
【００２２】
符号変換部５は、プロセッサからの命令が算術演算であるか否かを判定する（ステップＳ１０１）。プロセッサからの命令が算術演算である場合、符号変換部５は、プロセッサによって指定されたレジスタ３１−１〜３１−ｍに対応する変換レジスタファイル４のフラグ４２−１〜４２−ｍが有効であるか否かを判定する（ステップＳ１０２）。
【００２３】
指定されたレジスタ３１−１〜３１−ｍに対応する変換レジスタファイル４のフラグ４２−１〜４２−ｍが無効（たとえば、「０」）の場合、符号変換部５は、指定されたレジスタ３１−１〜３１−ｍに格納されている通常の２進数のデータに符号変換を施して剰余数系のデータに変換し、変換したデータを指定されたレジスタ３１−１〜３１−ｍに対応する変換レジスタ４１−１〜４１−ｍに格納する。符号変換部５は、データを格納した変換レジスタ４１−１〜４１−ｍに対応するフラグ４２−１〜４２−ｍを有効にする（ステップＳ１０３）。
【００２４】
指定されたレジスタ３１−１〜３１−ｍに対応する変換レジスタファイル４のフラグ４２−１〜４２−ｍが有効になると、ＡＬＵ２は、変換レジスタ４１−１〜４１−ｍに格納されているデータを用いて、命令によって指定された算術演算を実行する（ステップＳ１０４）。
【００２５】
ＡＬＵ２は、算術演算の結果を命令によって指定されたレジスタ３１−１〜３１−ｍに対応する変換レジスタ４１−１〜４１−ｍに格納して、対応するフラグ４２−１〜４２−ｍを有効にする（ステップＳ１０５）。
【００２６】
符号変換部５は、ＡＬＵ２によってデータが格納された変換レジスタ４１−１〜４１−ｍに対応するレジスタファイル３のフラグ３１−１〜３１−ｍを無効にする（ステップＳ１０６）。
【００２７】
一方、プロセッサからの命令が論理演算である場合、ＡＬＵ１は、命令によって指定されたレジスタ３１−１〜３１−ｍに格納されているデータを用いて、命令によって指定された論理演算を実行する（ステップＳ１０７）。ＡＬＵ１は、論理演算の結果を命令によって指定されたレジスタ３１−１〜３１−ｍに格納して、対応するフラグ３２−１〜３２−ｍを有効にする（ステップＳ１０８）。
【００２８】
符号変換部５は、ＡＬＵ１によってデータが格納されたレジスタ３１−１〜３１−ｍに対応するレジスタファイル４のフラグ４１−１〜４１−ｍを無効にする（ステップＳ１０９）。
【００２９】
つぎに、図３のフローチャートを参照して、データ出力処理の動作を説明する。プロセッサからの命令がデータ出力の場合、符号変換部５は、命令によって指定されたレジスタ３１−１〜３１−ｍに対応するフラグ３２−１〜３２−ｍが有効であるか否かを判定する（ステップＳ２００）。
【００３０】
指定されたレジスタ３１−１〜３１−ｍに対応するフラグ３２−１〜３２−ｍが無効の場合、符号変換部５は、指定されたレジスタ３１−１〜３１−ｍに対応する変換レジスタ４１−１〜４１−ｍに格納されている剰余数系のデータに逆符号変換を施して通常の２進数に変換し、変換したデータを指定されたレジスタ３１−１〜３１−ｍに格納する。符号変換部５は、データを格納したレジスタ３１−１〜３１−ｍに対応するフラグ３１−１〜３１−ｍを有効にする（ステップＳ２０１）。
【００３１】
指定されたレジスタ３１−１〜３１−ｍに対応するフラグ３１−１〜３１−ｍが有効になると、ＡＬＵ１は、レジスタ３１−１〜３１−ｍからデータを読み出して出力用内部バス７ｂに出力する（ステップＳ２０２）。
【００３２】
図４は、従来の演算処理装置による算術演算処理時間と、本発明の演算処理装置による算術演算処理時間とを示す図である。図４では、算術演算を５回連続して行なう場合を示している。従来の算術演算処理時間は、プロセッサからのデータをレジスタ３１−１〜３１−ｍに格納する入力に時間Ｔ１１を要し、１回目の演算処理に時間Ｔ１２を要し、２回目の演算処理に時間Ｔ１３を要し、３回目の演算処理に時間Ｔ１４を要し、４回目の演算処理に時間Ｔ１５を要し、５回目の演算処理に時間Ｔ１６を要し、データの出力に時間Ｔ１７を要している。
【００３３】
本発明の演算処理装置の算術処理時間は、プロセッサから入力された通常の２進数のデータに符号変換を施して剰余数系のデータに変換し、変換したデータを変換レジスタ４１−１〜４１−ｍに格納する入力と変換に時間Ｔ２１を要し、１回目の演算処理に時間Ｔ２２を要し、２回目の演算処理に時間Ｔ２３を要し、３回目の演算処理に時間Ｔ２４を要し、４回目の演算処理に時間Ｔ２５を要し、５回目の演算処理に時間Ｔ２６を要し、剰余数系のデータに逆符号変換を施して通常の２進数に変換し、変換したデータを出力する変換と出力に時間Ｔ２７を要している。
【００３４】
１回目の演算処理を開始するまでの時間および演算結果を出力する時間は、データの変換（符号変換および逆符号変換）の分だけ従来の演算処理装置より本発明の演算処理装置の方が遅くなる。しかし、３２ビットのキャリーの伝播遅延に依存する従来の演算処理装置より、５ビットのキャリーの伝播遅延に依存する本発明の演算処理装置の方が１回の算術演算が短くなる。そのため、データが入力されて算術演算処理を実行してデータを出力するプロセッサからみたトータルの演算処理時間は、従来の演算処理装置より本発明の演算処理装置のほうが早くなる。特に、変換レジスタ４１−１〜４１−ｍに格納されているデータを用いた算術演算が繰り返される場合の大きな差が現れる。
【００３５】
このようにこの実施の形態１では、プロセッサが認識する通常の２進数のデータを用いて論理演算処理および算術演算処理を実行するＡＬＵ１と、剰余数系のデータを用いてキャリーの伝播遅延を抑制した算術演算処理を実行するＡＬＵ２とを備え、第１のデータ形式のデータを格納する複数のレジスタに対応付けられて変換レジスタが第２のデータ形式のデータを格納し、プロセッサの命令によってＡＬＵ１とＡＬＵ２とを使い分けるようにしているので、算術演算処理を高速に実現することができる。
【００３６】
なお、この実施の形態１では、論理演算処理にＡＬＵ１を用い、算術演算処理にＡＬＵ２を用いるようにしたが、プロセッサの命令によってＡＬＵ１を用いて算術演算処理を実行するか、ＡＬＵ２を用いて算術演算処理を実行するかを決定するようにしてもよい。これにより、符号変換および逆符号変換の時間を必要とするＡＬＵ２を用いて算術演算処理を実行する方が処理時間が遅くなる場合には、ＡＬＵ１を用いて算術演算処理を実行することができる。
【００３７】
また、この実施の形態１では、プロセッサからの命令が算術演算を示し、かつプロセッサからの命令によって指定されたレジスタ３１−１〜３１−ｍに対応する変換レジスタ４１−１〜４１−ｍのフラグ４２−１〜４２−ｍが無効の場合、直ちに通常の２進数のデータを剰余数系のデータに変換するようにしたが、レジスタ３１−１〜３１−ｍまたは変換レジスタ４１−１〜４１−ｍにデータが格納された際に、直ちに符号変換、または逆符号変換を施して、レジスタ３１−１〜３１−ｍと、変換レジスタ４１−１〜４１−ｍとに常に正しいデータを格納するようにしてもよい。すなわち、必要なときにデータの符号変換または逆符号変換を実行する低消費電力モードと、常にレジスタ３１−１〜３１−ｍと、変換レジスタ４１−１〜４１−ｍとに常に正しいデータを格納しておき、高速処理を実行する高速モードとを備えるようにしてもよい。これにより、プロセッサの用途に合わせた処理速度を実現することができる。
【００３８】
実施の形態２．
図５を用いてこの発明の実施の形態２を説明する。図５は、この発明にかかる演算処理装置の実施の形態２の構成を示すブロック図である。図５に示した演算処理装置は、図１に示した実施の形態１の演算処理装置と構成部分は全て同じであるが、プロセッサとの接続が異なっている。図１に示した実施の形態１の演算処理装置は、ＡＬＵ１およびレジスタファイル３がプロセッサの入力用内部バス７ａに接続され、プロセッサからの入力データはＡＬＵ１によってレジスタ３１−１〜３１−ｍに格納された。しかし、図５に示したこの実施の形態２の演算処理装置は、符号変換部５が入力用内部バス７ａに接続されている。
【００３９】
したがって、この実施の形態２の演算処理装置は、符号変換部５が、入力用内部バス７ａを介して入力されるプロセッサからの入力データをレジスタ３１−１〜３１−ｍに格納するとともに、入力データに符号変換を施して剰余数系のデータに変換して変換レジスタ４１−１〜４１−ｍにも格納する。すなわち、プロセッサから入力されたデータは、直ちにレジスタ３１−１〜３１−ｍと、変換レジスタ４１−１〜４１−ｍに格納される。また、データの出力時に変換レジスタ４１−１〜４１−ｍにのみデータが格納されている場合（指定されたレジスタ３１−１〜３１−ｍのフラグ３２−１〜３２−ｍが無効である場合）、指定されたレジスタ３１−１〜３１−ｍに対応する変換レジスタ４１−１〜４１−ｍに格納されているデータに逆符号変換を施して出力する。
【００４０】
このようにこの実施の形態２では、符号変換部５を介してプロセッサと接続するようにしているので、プロセッサから入力されたデータをレジスタ４１−１〜４１−ｍに格納するとともに、直ちにプロセッサから入力されたデータに符号変換を施してレジスタ４１−１〜４１−ｍに格納するようにしているので、プロセッサからの命令がＡＬＵ２を用いた算術演算を行なうことを示す場合、符号変換を実行することなく算術演算を実行することができる。
【００４１】
また、データの出力時に指定されたレジスタ３１−１〜３１−ｍのフラグ３２−１〜３２−ｍが無効である場合、指定されたレジスタ３１−１〜３１−ｍに対応する変換レジスタ４１−１〜４１−ｍに格納されているデータに逆符号変換を施して出力するようにしているので、逆符号変換したデータをレジスタ３１−１〜３１−ｍに格納する処理時間の分だけ、高速にデータを出力することができる。
【００４２】
実施の形態３．
図６を用いてこの発明の実施の形態３を説明する。図６は、この発明にかかる実施の形態３の演算処理装置の構成を示すブロック図である。図６に示した実施の形態３の演算処理装置は、図１に示した実施の形態１の演算処理装置のＡＬＵ１の代わりにＬＵ１０（特許請求の範囲でいうところの論理演算処理部）を備え、ＡＬＵ２の代わりにＡＵ２０（特許請求の範囲でいうところの算術演算処理部）を備えている。図１に示した実施の形態１の演算処理装置と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【００４３】
ＬＵ１０は、通常の２進数のデータを用いた論理演算処理を行なう。すなわち、通常の２進数のデータを用いた方が剰余数系のデータを用いるよりも高速に実行することができる演算処理の機能のみを備えている。
【００４４】
ＡＵ２０は、剰余数系のデータを用いた算術演算処理を行なう。すなわち、剰余数系のデータを用いた方が通常の２進数のデータを用いるよりも高速に実行することができる演算処理の機能のみを備えている。
【００４５】
すなわち、実施の形態１の演算処理装置は２つのＡＬＵ１，２を備えているのに対して、この実施の形態３の演算処理装置は、通常の２進数のデータを用いた方が高速に処理できる論理演算を実行するＬＵ１０と、剰余数系のデータを用いた方が高速に処理できる算術演算を実行するＡＵ２０とを使い分けることで、論理演算処理または算術演算処理に必要な機能のみの回路構成とし、回路規模を小さくするとともに、高速な演算処理を実現するようにしている。
【００４６】
なお、この実施の形態３の演算処理装置の動作は、実施の形態１の演算処理装置のＡＬＵ１の代わりにＬＵ１０を用いて論理演算処理を実行し、ＡＬＵ２の代わりにＡＵ２０を用いて算術演算処理を実行するものであるので、実施の形態１とほぼ同じとなるのでここではその動作の説明は省略する。
【００４７】
また、図７に示すように、先の図５に示した実施の形態２の演算処理装置のＡＬＵ１の代わりにＬＵ１０を備え、ＡＬＵ２の代わりにＡＵ２０を備えるようにしてもよい。
【００４８】
実施の形態４．
図８を用いてこの発明にかかる実施の形態４を説明する。図８は、この発明にかかる実施の形態４の演算処理装置の構成を示すブロック図である。図８に示した演算処理装置は、先の図１に示した実施の形態１の演算処理装置の変換レジスタファイル４の代わりに、変換レジスタファイル４ａを備えている。図１に示した実施の形態１の演算処理装置と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【００４９】
変換レジスタファイル４ａは、３個の変換レジスタ４１ａ−１〜４１ａ−３と、変換レジスタ４１ａ−１〜４１ａ−３に対応付けられ変換レジスタ４１ａ−１〜４１ａ−３に格納されているデータが有効であるか否かを示す値が設定されるフラグ４２ａ−１〜４２ａ−３とを備えている。すなわち、実施の形態１の演算処理装置が通常の２進数のデータを格納するレジスタ３１−１〜３１−ｍすべてに対応する数の変換レジスタ４１−１〜４１−ｍを備えているのに対し、この実施の形態４の演算処理装置は通常の２進数のデータを格納するレジスタ３１−１〜３１−ｍの一部のレジスタ３１−１〜３１−３に対応する変換レジスタ４１ａ−１〜４１ａ−３を備えている。
【００５０】
したがって、この実施の形態４の演算処理装置を用いる場合、プロセッサの命令によって、ＡＬＵ２を用いた算術論理演算を実行する際に使用するレジスタ３１−１〜３１−ｍが制限される。しかしながら、一般的に、算術演算を実行する際に、プロセッサが演算処理装置が有するレジスタ３１−１〜３１−ｍを全て用いることはほとんどないので、全てのレジスタ３１−１〜３１−ｍに対応した変換レジスタ４１−１〜４１−ｍを備える場合と比較して、回路規模を小さくしつつ高速な演算処理を実現することができる。
【００５１】
なお、この実施の形態４の演算処理装置の動作は、ＡＬＵ２を用いた算術論理演算を実行する際に使用するレジスタ３１−１〜３１−ｍが制限されるだけであり、実施の形態１の演算処理装置とほぼ同じであるのでここではその動作の説明は省略する。
【００５２】
また、実施の形態２または３のレジスタファイル４の代わりにレジスタファイル４ａを備えるようにしてもよい。
【００５３】
なお、実施の形態１〜４では、算術演算に用いる第２のデータ形式として剰余係数のデータを用いる場合を例に挙げて説明したが、通常の２進数のデータによる算術演算よりも高速に算術演算を行なうことができる符号のデータ形式であればよい。たとえば、剰余係数のデータの代わりに、ＳＤ（Signed Digit）数系のデータ、冗長２進系のデータ、またはＢｏｏｔｈのアルゴリズムに基づく数系のデータでもよい。この場合、ＡＬＵ２またはＡＵ２０が符号変換されるデータに対応した算術演算回路を備え、符号変換部５は、第２のデータ形式に応じた符号変換および逆符号変換を行なうようにすればよい。具体的には、符号変換部５は、たとえば、通常の２進数では「0000_0000_0000_0000_0000_0000_0000_1101」で表される「１３」を例に挙げると、第２のデータ形式がＳＤ数系の場合、符号変換すると、
「0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0001_1001」
となり、第２のデータ形式が冗長２進数系の場合、
「0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0101_0001」
となる。
【産業上の利用可能性】
【００５４】
以上のように、本発明にかかる演算処理装置は、プロセッサに有用であり、特に、数値演算を多様に用いるＤＳＰに適している。
【図面の簡単な説明】
【００５５】
【図１】この発明にかかる実施の形態１の演算処理装置の構成を示すブロック図である。
【図２】この発明にかかる実施の形態１の演算処理装置の算術論理演算処理の動作を説明するためのフローチャートである。
【図３】この発明にかかる実施の形態１の演算処理装置のデータ出力の動作を説明するためのフローチャートである。
【図４】従来の演算処理装置とこの発明にかかる実施の形態１の演算処理装置の算術演算処理の処理時間を比較した図である。
【図５】この発明にかかる実施の形態２の演算処理装置の構成を示すブロック図である。
【図６】この発明にかかる実施の形態３の演算処理装置の構成を示すブロック図である。
【図７】この発明にかかる実施の形態３の演算処理装置の構成の一例を示すブロック図である。
【図８】この発明にかかる実施の形態４の演算処理装置の構成を示すブロック図である。
【符号の説明】
【００５６】
１，２  ＡＬＵ
３  レジスタファイル
４  変換レジスタファイル
５  符号変換部
７ａ  入力用内部バス
７ｂ  出力用内部バス
８  制御バス
１０  ＬＵ
２０  ＡＵ
３１−１，３１−２，３１−３，３１−ｍ  レジスタ
３２−１，３２−２，３２−３，３２−ｍ，４２−１，４２−２，４２−３，４２−ｍ，４２ａ−１，４２ａ−２，４２ａ−３  フラグ
４１−１，４１−２，４１−３，４１−ｍ，４１ａ−１，４１ａ−２，４１ａ−３  変換レジスタ
【図１】
2006195563.tif 000003
【図２】
2006195563.tif 000004
【図３】
2006195563.tif 000005
【図４】
2006195563.tif 000006
【図５】
2006195563.tif 000007
【図６】
2006195563.tif 000008
【図７】
2006195563.tif 000009
【図８】
2006195563.tif 000010