(57)【特許請求の範囲】
【請求項１】
並列に設けられ、かつ独立した複数のデータ処理装置のデータ処理結果を補正するためのデータ補正装置であって、
各々が前記複数のデータ処理装置のうち何れかのデータ処理装置の状態を示す少なくとも２組の状態信号と命令デコーダーの出力信号とに基づいて、前記データ処理装置のデータ処理結果に施すべき補正のモードを検出する補正モード検出手段と、
前記補正モード検出手段の出力信号から前記データ処理結果に補正を施すための制御信号を生成するデータ補正制御手段と、
前記データ補正制御手段の出力信号に基づいて前記データ処理結果にデータ補正処理を施して出力し、又は前記データ処理結果をそのまま出力するデータ出力手段とを備えているデータ補正装置。
【請求項２】
前記データ補正制御手段は、前記データ処理結果のビットごとに値０をセットするための第１の制御信号と、値１をセットするための第２の制御信号と、符号拡張のための第３の制御信号とを出力し、
前記データ出力手段は、前記データ処理結果の各ビットのうち、前記第１の制御信号によって指定されたビットに値０を出力し、前記第２の制御信号によって指定されたビットに値１を出力し、前記第１及び第２の制御信号が共に非能動状態であるビットについてはデータ処理結果をそのまま出力し、かつ、前記第３の制御信号によって指定されたビットについては符号を拡張して出力するように構成されている請求項１記載のデータ補正装置。
【請求項３】
前記補正モード検出手段は、符号拡張モードのときに前記データ処理結果の符号が正ならば能動状態になる０拡張モード信号と、前記データ処理結果の符号が負ならば能動状態になる１拡張モード信号とを生成し、
前記データ補正制御手段は、前記データ処理結果の各ビットに値０をセットするための第１の制御信号と、値１をセットするための第２の制御信号を出力し、
前記データ出力手段は、前記データ処理結果の各ビットのうち、前記第１の制御信号によって指定されたビットに値０を出力し、前記第２の制御信号によって指定されたビットに値１を出力し、前記第１及び第２の制御信号が共に非能動状態であるビットについてはデータ処理結果をそのまま出力するように構成されている請求項１記載のデータ補正装置。
【請求項４】
前記補正モード検出手段の出力信号と前記命令デコーダーの出力信号とから前記データ処理結果をそのまま出力するための制御信号を生成するデータスルー制御手段を更に備え、
前記データ出力手段は、前記データスルー制御手段から出力された制御信号にしたがって前記データ処理結果をそのまま出力し、又は前記データ補正制御手段から出力された制御信号にしたがって前記データ処理結果にデータ補正を施したのち出力するように構成されている請求項１記載のデータ補正装置。
【請求項５】
前記データ補正制御手段は、前記データ処理結果のビットごとに値０をセットするための第１の制御信号と、値１をセットするための第２の制御信号と、符号拡張のための第３の制御信号とを出力し、
前記データ出力手段は、前記データ処理結果の各ビットのうち、前記第１の制御信号によって指定されたビットに値０を出力し、前記第２の制御信号によって指定されたビットに値１を出力し、前記第１及び第２の制御信号が共に非能動状態であるビットについてはデータ処理結果をそのまま出力し、かつ、前記第３の制御信号によって指定されたビットについては符号を拡張して出力するように構成されている請求項４記載のデータ補正装置。
【請求項６】
前記補正モード検出手段は、符号拡張モードのときに前記データ処理結果の符号が正ならば能動状態になる０拡張モード信号と、前記データ処理結果の符号が負ならば能動状態になる１拡張モード信号とを生成し、
前記データ補正制御手段は前記データ処理結果の各ビットに値０をセットするための第１の制御信号と、値１をセットするための第２の制御信号を出力し、
前記データ出力手段は、前記データ処理結果の各ビットのうち、前記第１の制御信号によって指定されたビットに値０を出力し、前記第２の制御信号によって指定されたビットに値１を出力し、前記第１及び第２の制御信号が共に非能動状態であるビットについてはデータ処理結果をそのまま出力するように構成されている請求項４記載のデータ補正装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理を行った結果を補正するデータ補正装置に関する。
【０００２】
【従来の技術】
この種のデータ補正装置は、例えば並列データ処理装置等における並列に配置された算術演算装置の飽和処理、算術シフト装置の飽和処理の他、数が−１以上１未満の固定小数点で表現される場合の乗算装置による−１×１演算実行時の最大値補正といった補正処理を行う。
【０００３】
従来は、例えば特開平６−１３９０４９号公報に記載されているように、各演算装置ごとにデータ補正装置が備えられ、各演算装置の出力データはデータ補正処理が施された後にデータバスに出力される。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記のように並列に配置されたデータ処理装置ごとにデータ補正装置を備えている構成は、全体の回路規模が大きくなる欠点を伴う。また、データ処理装置の状態信号が確定するのを待ってデータ補正処理を行うために、データ処理結果がデータ補正装置で待たされることによる遅延が増大するという問題もあった。
【０００５】
本発明は上記のような従来の問題を解決するために、複数のデータ処理装置のデータ補正処理を一括して行うことにより回路規模を低減し効率良いデータ補正処理を実現すると共に、各データ処理装置のデータ処理結果をデータバスで転送するのと並列にデータ補正処理を行うことによりデータ処理時間を全体として低減することを目的とする。
【０００６】
【課題を解決するための手段】
本発明のデータ補正装置は、並列に設けられ、かつ独立した複数のデータ処理装置のデータ処理結果を補正するためのデータ補正装置であって、各々が前記複数のデータ処理装置のうち何れかのデータ処理装置の状態を示す少なくとも２組の状態信号と命令デコーダーの出力信号とに基づいて、前記データ処理装置のデータ処理結果に施すべき補正のモードを検出する補正モード検出手段と、補正モード検出手段の出力信号からデータ処理結果に補正を施すための制御信号を生成するデータ補正制御手段と、データ補正制御手段の出力信号に基づいてデータ処理結果にデータ補正処理を施して出力し、又はデータ処理結果をそのまま出力するデータ出力手段とを備えていることを特徴とする。
【０００７】
データ補正制御手段は、データ処理結果のビットごとに値０をセットするための第１の制御信号と、値１をセットするための第２の制御信号と、符号拡張のための第３の制御信号とを出力し、データ出力手段は、データ処理結果の各ビットのうち、第１の制御信号によって指定されたビットに値０を出力し、第２の制御信号によって指定されたビットに値１を出力し、第１及び第２の制御信号が共に非能動状態であるビットについてはデータ処理結果をそのまま出力し、かつ、第３の制御信号によって指定されたビットについては符号を拡張して出力するように構成されていることが好ましい。
【０００８】
また、補正モード検出手段は、符号拡張モードのときにデータ処理結果の符号が正ならば能動状態になる０拡張モード信号と、データ処理結果の符号が負ならば能動状態になる１拡張モード信号とを生成し、データ補正制御手段は、データ処理結果の各ビットに値０をセットするための第１の制御信号と、値１をセットするための第２の制御信号を出力し、データ出力手段は、データ処理結果の各ビットのうち、第１の制御信号によって指定されたビットに値０を出力し、第２の制御信号によって指定されたビットに値１を出力し、第１及び第２の制御信号が共に非能動状態であるビットについてはデータ処理結果をそのまま出力するように構成されていることも好ましい。
【０００９】
更に好ましくは、補正モード検出手段の出力信号と命令デコーダーの出力信号とからデータ処理結果をそのまま出力するための制御信号を生成するデータスルー制御手段を更に備え、データ出力手段は、データスルー制御手段から出力された制御信号にしたがってデータ処理結果をそのまま出力し、又はデータ補正制御手段から出力された制御信号にしたがってデータ処理結果にデータ補正を施したのち出力するように構成されている。
【００１０】
【発明の実施の形態】
（実施の形態１）
以下、本発明の実施形態について、図面を参照しながら説明する。図１は本発明の第１の実施形態に係るデータ補正装置の構成を示すブロック図である。図１において、１１０はデータ処理装置としての算術演算装置（以下、ＡＵと略記する）であり、１２０は同じくデータ処理装置としての乗算装置（以下、ＭＵＬと略記する）である。補正モード検出手段４１０は、ＡＵ１１０及びＭＵＬ１２０から出力された状態信号２１０、２２０、及び命令デコーダー５００の出力信号５１０に基づいて、ＷＢＵＳ３００に出力されたデータ処理結果に対して施すべきデータ補正処理のモードを検出する。
【００１１】
データ補正制御手段４２０は、補正モード検出手段４１０の出力信号にしたがって、データ処理結果のビットごとに値０をセットするための制御信号、値１をセットするための制御信号、そして符号拡張のための制御信号を出力する。データ出力手段４３０は、データ補正制御手段４２０の出力信号にしたがって、データ処理結果の各ビットに対して値０をセットするための制御信号がハイレベル（能動レベルであるＶＤＤ電位を意味する）であればそのビットに値０を出力し、値１をセットするための制御信号がハイレベルであればそのビットに値１を出力する。また、値０をセットするための制御信号と値１をセットするための制御信号が共にローレベル（非能動レベルであるＧＮＤ電位を意味する）であればそのビットのデータ処理結果の値をそのまま出力する。更に、符号拡張のための制御信号がハイレベルであるビットについてはデータ処理結果の符号を拡張して出力する。
【００１２】
このようなデータ補正装置の動作について更に説明する。簡単のために、扱うデータは−１以上１未満の固定小数点データとする。まず、ＡＵ１１０は４０ビット幅の２つのデータの加減算を行い演算結果を４０ビット幅でＷＢＵＳ３００に出力する。ＡＵ１１０は３２ビット精度と４０ビット精度の２つのモードを持ち、３２ビットオーバーフローフラグと４０ビットオーバーフローフラグと常に正しい符号を示すＡＵサインフラグを出力する。３２ビットオーバーフローフラグは、ビット３１からビット３９までのビットがすべて値０か値１をとらなければハイレベルになるフラグである。
【００１３】
ＭＵＬ１２０は、１６ビット幅の２つのデータの乗算を行い乗算結果を３２ビット幅でＷＢＵＳ３００に出力する。ＭＵＬ１２０は−１×−１演算を実行したときにハイレベルになる−１×−１検出フラグと乗算結果の符号を示すＭＵＬサインフラグとを出力する。
【００１４】
補正モード検出手段４１０は４０ビットオーバーフローフラグ、３２ビットオーバーフローフラグ、ＡＵサインフラグ、−１×−１検出フラグ、ＭＵＬサインフラグ、及び命令デコーダー５００の出力信号５１０に基づいて、ＷＢＵＳ３００に出力されたデータが３２ビット精度で正の方向にオーバーフローを起こしたデータか、３２ビット精度で負の方向にオーバーフローを起こしたデータか、４０ビット精度で正の方向にオーバーフローを起こしたデータか、４０ビット精度で負の方向にオーバーフローを起こしたデータか、それとも−１×−１の乗算結果かを検出してそれぞれのモード信号を検出結果として出力する。
【００１５】
データ補正制御手段４２０は補正モード検出手段４１０から出力されたモード信号に基づき各ビットに値１をセットする制御信号と、値０をセットする制御信号と、符号拡張のための制御信号を生成し出力する。例えば補正モード検出手段４１０の出力信号である４０ビット精度正のオーバーフローのモード信号がハイレベルであれば、ＷＢＵＳ３００に出力された演算結果を値Ｘ’７ＦＦＦＦＦＦＦＦＦに補正するように、ビット０からビット３８は値１をセットする制御信号をハイレベル（能動状態）にし、ビット３９は値０をセットする制御信号をハイレベルにする。その他のモード信号がハイレベルである場合も同様である。
【００１６】
この実施形態において、補正モード検出手段４１０は符号拡張モードでＷＢＵＳ３００に出力されたデータの符号が正のときにハイレベルになる０拡張モード信号と、符号拡張モードでＷＢＵＳ３００に出力されたデータの符号が負のときにハイレベルになる１拡張モード信号を出力するように構成してもよい。
【００１７】
図２は各演算モードでの演算結果を示している。図２のテーブルにおいて、ＴはＷＢＵＳ３００に出力された演算結果をそのまま（スルー）出力することを意味する。Ｓは演算結果の符号を拡張して出力することを意味する。図２にしたがって、ビット０〜３０、ビット３１〜３８、そしてビット３９の３つのグループに分けることができる。
【００１８】
図３は本実施形態における補正モード検出手段４１０とデータ補正制御手段４２０の構成例を示す回路図である。また、各データ処理装置の動作モードにおける命令デコーダー５００の出力信号の状態を表１に示す。
【００１９】
【表１】
0004142143.tif 000002
【００２０】
補正モード検出手段４１０は命令デコーダー５００の出力信号５１０から各データ処理装置の動作モードを検出する。また、ＡＵ１１０の３２ビットオーバーフローフラグＡＵＯＶＦ３２、４０ビットオーバーフローフラグＡＵＯＶＦ４０、ＡＵサインフラグＡＵＳＩＮ、及びＭＵＬ１２０の−１×−１検出フラグＭＵＬＤＥＴＯに基づいて、４０ビット精度正のオーバーフロー補正モード、４０ビット精度負のオーバーフロー補正モード、３２ビット精度正のオーバーフロー補正モード、３２ビット精度負のオーバーフロー補正モード、−１×−１検出モード、−１×−１否検出モード、及びＭＵＬ補正無しモードを検出し、補正モード信号として出力する。
【００２１】
データ補正制御手段４２０は４０ビット精度正のオーバーフロー補正モード信号、４０ビット精度負のオーバーフロー補正モード信号、３２ビット精度正のオーバーフロー補正モード信号、３２ビット精度負のオーバーフロー補正モード信号、及び−１×−１検出モード信号に基づいて、図２に示した３つのグループに分け、値０をセットする制御信号と値１をセットする制御信号とを生成して出力する。また、−１×−１否検出モード信号及びＭＵＬ補正無しモード信号から符号拡張制御信号を生成して出力する。図３において、ＵＰ（３０−０），ＵＰ（３８−３１），ＵＰ（３９）はそれぞれビット０からビット３０、ビット３１からビット３８、ビット３９に値１をセットする制御信号であり、ＤＯＷＭ（３０−０），ＤＯＷＭ（３８−３１），ＤＯＷＭ（３９）はそれぞれビット０からビット３０、ビット３１からビット３８、ビット３９に値０をセットする制御信号であり、ＥＸＳＩＮ（３９−３２）はビット３２からビット３９にビット３１のデータを符号拡張する制御信号である。
【００２２】
図４は本実施形態におけるデータ出力手段４３０の回路図である。４３２は１ビット当たりの符号拡張回路であり、符号拡張制御信号ＥＸＳＩＮ（３９−３２）がハイレベルであるときにビット３１のデータを選択して出力する。４３１は１ビット当たりの補正回路であり、それぞれ値１をセットする制御信号がハイレベルであるときは値１を出力し、値０をセットする制御信号がハイレベルであるときは値０をセットし、値１をセットする制御信号と値０をセットする制御信号が共にローレベルであるときはＷＢＵＳ３００に出力されているデータを出力する。
【００２３】
本実施形態のデータ補正装置において、補正モード検出手段は、符号拡張モードのときに−１×−１否検出モード信号とＭＵＬ補正無しモード信号の代わりに、データ処理結果の符号が正ならばハイレベルになる０拡張モード信号と、データ処理結果の符号が負ならばハイレベルになる１拡張モード信号を生成し出力するように構成してもよい。
【００２４】
図５は本実施形態における補正モード検出手段４１０とデータ補正制御手段４２０の別の構成例を示す回路図である。図５において、４１５は０拡張モード信号と１拡張モード信号を生成する手段である。データ補正制御手段４２０は、４０ビット精度正のオーバーフロー補正モード信号、４０ビット精度負のオーバーフロー補正モード信号、３２ビット精度正のオーバーフロー補正モード信号、３２ビット精度負のオーバーフロー補正モード信号、−１×−１補正モード信号、０拡張モード信号、及び１拡張モード信号に基づいて、図２のテーブルにしたがって３つのグループに分け、値０をセットする制御信号と値１をセットする制御信号を生成して出力する。
【００２５】
図６は本実施形態におけるデータ出力手段４３０の構成例を示す回路図である。値０をセットする制御信号と値１をセットする制御信号に符号拡張の制御が含まれることにより、符号拡張機能が削減される。
【００２６】
（実施の形態２）
つぎに、本発明の第２の実施形態の構成を図７に示す。この実施形態のデータ補正装置は、補正モード検出手段４１０の出力信号と命令デコーダー５００の出力信号とに基づいて、ＷＢＵＳ３００に出力されたデータをそのまま出力するための制御信号を生成するデータスルー制御手段４５０を備えている。データ出力手段４３０は、データスルー制御手段４５０の出力信号がハイレベルであればＷＢＵＳ３００に出力されたデータをそのまま出力し、データ補正制御手段４２０の出力信号がハイレベルであればＷＢＵＳ３００に出力されたデータにデータ補正を施して出力する。
【００２７】
補正モード検出手段４１０は、ＡＵ３２ビット精度補正有り動作モードで演算結果がオーバーフローを起こしていないことを示す３２ビットオーバーフロー無しモード信号と、ＡＵ４０ビット精度補正有り動作モードで演算結果がオーバーフローを起こしていないことを示す４０ビットオーバーフロー無しモード信号と、ＡＵ補正無しモードを示すＡＵ否補正モード信号を出力する手段を備えている。データスルー制御手段４５０は、３２ビットオーバーフロー無しモード信号、４０ビットオーバーフロー無しモード信号、ＡＵ否補正モード信号、−１×−１否検出モード信号、及び命令デコーダー５００の出力信号に基づいて、図２のテーブルにしたがって、ＷＢＵＳ３００に出力されたデータをそのまま出力するためのデータスルー信号を各ビットごとに出力する。
【００２８】
このような構成とすることにより、データ出力手段４３０の出力をハイインピーダンス状態に制御することができ、データ出力手段４３０の出力データを格納する記憶手段６００に対し複数の書き込み経路が存在する場合にも本発明が有効になる。
【００２９】
図８は第２の実施形態における補正モード検出手段４１０、データ補正制御手段４２０、及びデータスルー制御手段４５０の構成例を示す回路図である。図８において、データスルー制御手段４５０は、補正モード検出手段４１０の出力信号の３２ビットオーバーフロー無しモード信号、４０ビットオーバーフロー無しモード信号、及び−１×−１否検出モード信号のいずれかがハイレベルであれば、又は命令デコーダー５００の出力信号５１０のうち、補正有りモードであることを示すＯＰＯＶＣ信号がローレベルであれば、ビット０からビット３０のデータをそのまま（スルーして）出力するための制御信号ＴＨ（３０−０）信号をハイレベルにする。また、３２ビットオーバーフロー無しモード信号、４０ビットオーバーフロー無しモード信号、及びＡＵ否補正モード信号のいずれかがハイレベルであれば、ビット３１からビット３９のデータをそのまま（スルーして）出力するための制御信号ＴＨ（３９−３１）信号をハイレベルにする。
【００３０】
図９は第２の実施形態におけるデータ出力手段４３０の回路図である。図９において、４３３は１ビット当たりの補正回路を示している。この補正回路は、データスルー制御信号ＴＨがハイレベルであれば入力されたデータをそのまま出力し、１補正制御信号がハイレベルであれば値１を出力し、０補正制御信号がハイレベルであれば値０を出力する。
【００３１】
図１０は、符号拡張をデータ補正処理で行う際の補正モード検出手段４１０、データ補正制御手段４２０、及びデータスルー制御手段４５０の構成例を示す回路図である。また、図１１はデータ出力手段４３０の構成例を示す回路図である。このような構成とすることにより、符号拡張のための回路を削減することができる。
【００３２】
【発明の効果】
以上説明したように本発明のデータ補正装置によれば、飽和処理や符号拡張等のデータ補正処理を一括して行うことができる。また、従来に比べて全体の回路規模が小さくなる。演算結果のデータバス転送と並列にデータ補正処理を行うことができ、更にデータバスの負荷容量を低減することができるので全体としてデータ処理時間を短くすることができる。特に、並列演算装置で並列に配置されるデータ処理装置の数が多くなるほど本発明の効果は大きくなる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係るデータ補正装置の構成を示すブロック図
【図２】各演算モードでの演算結果を示すテーブル
【図３】図１のデータ補正装置における補正モード検出手段及びデータ補正制御手段の構成例を示す回路図
【図４】図１のデータ補正装置におけるデータ出力手段の回路図
【図５】図１のデータ補正装置における補正モード検出手段及びデータ補正制御手段の別の構成例を示す回路図
【図６】図１のデータ補正装置におけるデータ出力手段の構成例を示す回路図
【図７】本発明の第２の実施形態に係るデータ補正装置の構成を示すブロック図
【図８】図７のデータ補正装置における補正モード検出手段、データ補正制御手段及びデータスルー制御手段の構成例を示す回路図
【図９】図７のデータ補正装置におけるデータ出力手段の構成例を示す回路図
【図１０】図７のデータ補正装置における補正モード検出手段、データ補正制御手段及びデータスルー制御手段の別の構成例を示す回路図
【図１１】図７のデータ補正装置におけるデータ出力手段の構成例を示す回路図
【符号の説明】
１１０  算術演算装置（ＡＵ）
１２０  乗算装置（ＭＵＬ）
２１０  ＡＵの状態を示す状態信号
２２０  ＭＵＬの状態を示す状態信号
４００  データ補正装置
４１０  補正モード検出手段
４１５  符号拡張制御信号生成手段
４２０  データ補正制御手段
４３０  データ出力手段
４３１  １ビット当たりのデータ補正回路
４３２  １ビット当たりの符号拡張回路
４３３  １ビット当たりのデータ補正回路
４４０  データ出力手段の出力信号
４５０  データスルー制御手段
５００  命令デコーダー
６００  記憶手段
【図１】
0004142143.tif 000003
【図２】
0004142143.tif 000004
【図３】
0004142143.tif 000005
【図４】
0004142143.tif 000006
【図５】
0004142143.tif 000007
【図６】
0004142143.tif 000008
【図７】
0004142143.tif 000009
【図８】
0004142143.tif 000010
【図９】
0004142143.tif 000011
【図１０】
0004142143.tif 000012
【図１１】
0004142143.tif 000013