(57)【要約】【課題】同一データを用いた乗算結果を固定小数点フォーマット及び浮動小数点フォーマットで同時に出力できる情報処理装置、演算処理方法及び電子機器等を提供する。【解決手段】情報処理装置は、第１及び第２の設定データの読み出し及び書き込み可能に構成される第１及び第２の入力レジスターと、前記第１の入力レジスターに設定された前記第１の設定データと前記第２の入力レジスターに設定された前記第２の設定データとを用いた乗算処理の結果を、固定小数点フォーマットの第１の乗算データとして出力する第１の処理ユニットと、前記第１の入力レジスターに設定された前記第１の設定データと前記第２の入力レジスターに設定された前記第２の設定データとを用いた乗算処理の結果を、浮動小数点フォーマットの第２の乗算データとして出力する第２の処理ユニットと、前記第１及び第２の乗算データが格納される第１及び第２の出力レジスターとを含む。【選択図】図７
2010244451.tif 000002
【特許請求の範囲】
【請求項１】
第１の設定データの読み出し及び書き込み可能に構成される第１の入力レジスターと、
第２の設定データの読み出し及び書き込み可能に構成される第２の入力レジスターと、
前記第１の入力レジスターに設定された前記第１の設定データと前記第２の入力レジスターに設定された前記第２の設定データとを用いた乗算処理の結果を、固定小数点フォーマットの第１の乗算データとして出力する第１の処理ユニットと、
前記第１の入力レジスターに設定された前記第１の設定データと前記第２の入力レジスターに設定された前記第２の設定データとを用いた乗算処理の結果を、浮動小数点フォーマットの第２の乗算データとして出力する第２の処理ユニットと、
前記第１の乗算データが格納される第１の出力レジスターと、
前記第２の乗算データが格納される第２の出力レジスターとを含み、
所与の実行サイクル毎に、前記第１の処理ユニットが、前記第１の乗算データを前記第１の出力レジスターに格納すると共に、前記第２の処理ユニットが、前記第２の乗算データを前記第２の出力レジスターに格納することを特徴とする情報処理装置。
【請求項２】
請求項１において、
第３の設定データの読み出し及び書き込み可能に構成される第３の入力レジスターと、
第４の設定データの読み出し及び書き込み可能に構成される第４の入力レジスターと、
前記第３の入力レジスターに設定された前記第３の設定データと前記第４の入力レジスターに設定された前記第４の設定データとを用いた乗算処理の結果を、固定小数点フォーマットの第３の乗算データとして出力する第３の処理ユニットと、
前記第３の入力レジスターに設定された前記第３の設定データと前記第４の入力レジスターに設定された前記第４の設定データとを用いた乗算処理の結果を、浮動小数点フォーマットの第４の乗算データとして出力する第４の処理ユニットと、
前記第３の乗算データが格納される第３の出力レジスターと、
前記第４の乗算データが格納される第４の出力レジスターとを含み、
所与の実行サイクル毎に、前記第３の処理ユニットが、前記第３の乗算データを前記第３の出力レジスターに格納し、前記第４の処理ユニットが、前記第４の乗算データを前記第４の出力レジスターに格納することを特徴とする情報処理装置。
【請求項３】
請求項２において、
前記第３の処理ユニットが、
前記第４の乗算データを、固定小数点フォーマットの前記第３の乗算データに変換する固定小数点出力フォーマット変換部を含み、
前記第４の処理ユニットが、
前記第３の設定データと前記第４の設定データとを用いた浮動小数点乗算処理を行い、前記第４の乗算データを出力する第１の浮動小数点乗算ユニットを含むことを特徴とする情報処理装置。
【請求項４】
請求項２において、
前記第３の処理ユニットが、
前記第３の設定データを固定小数点フォーマットの第３の入力データに変換する第１の固定小数点入力フォーマット変換部と、
前記第４の設定データを固定小数点フォーマットの第４の入力データに変換する第２の固定小数点入力フォーマット変換部と、
前記第３の入力データと前記第４の入力データとを用いた固定小数点乗算処理を行い、前記第３の乗算データを出力する第２の固定小数点乗算ユニットとを含むことを特徴とする情報処理装置。
【請求項５】
請求項２乃至５のいずれかにおいて、
前記第３の入力レジスターのビット数は、前記第４の入力レジスターのビット数と同じであり、
前記第３の出力レジスター及び前記第４の出力レジスターのうち少なくとも一方は、
前記第３の入力レジスターのビット数と同じ２つのアキュムレーターから構成されることを特徴とする情報処理装置。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記第１の処理ユニットが、
前記第１の設定データと前記第２の設定データとを用いた固定小数点乗算処理を行い、前記第１の乗算データを出力する第１の固定小数点乗算ユニットを含み、
前記第２の処理ユニットが、
前記第１の乗算データを、浮動小数点フォーマットの前記第２の乗算データに変換する浮動小数点出力フォーマット変換部を含むことを特徴とする情報処理装置。
【請求項７】
請求項１乃至５のいずれかにおいて、
前記第１の処理ユニットが、
前記第１の設定データと前記第２の設定データとを用いた固定小数点乗算処理を行い、前記第２の乗算データを出力する第１の固定小数点乗算ユニットを含み、
前記第２の処理ユニットが、
前記第１の設定データを浮動小数点フォーマットの第１の入力データに変換する第１の浮動小数点入力フォーマット変換部と、
前記第２の設定データを浮動小数点フォーマットの第２の入力データに変換する第２の浮動小数点入力フォーマット変換部と、
前記第１の入力データと前記第２の入力データとを用いた浮動小数点乗算処理を行い、前記第２の乗算データを出力する第２の浮動小数点乗算ユニットを含むことを特徴とする情報処理装置。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記第１の入力レジスターのビット数は、前記第２の入力レジスターのビット数と同じであり、
前記第１の出力レジスター及び前記第２の出力レジスターのうち少なくとも一方は、
前記第１の入力レジスターのビット数と同じ２つのアキュムレーターから構成されることを特徴とする情報処理装置。
【請求項９】
請求項１乃至８のいずれかにおいて、
フェッチされた命令データをデコードする命令デコード部を含み、
前記命令デコード部のデコード結果にかかわらず、各処理ユニットによる処理結果を、前記複数の出力レジスターのいずれかに格納することを特徴とする情報処理装置。
【請求項１０】
請求項９において、
前記命令デコード部が、
算術演算命令、論理演算命令及びシフト演算命令を除く、データ転送命令及び分岐命令をデコードすることを特徴とする情報処理装置。
【請求項１１】
請求項１乃至１０のいずれかにおいて、
前記出力レジスターに格納された乗算データが、前記入力レジスターのいずれかに転送可能に構成されることを特徴とする情報処理装置。
【請求項１２】
それぞれが、設定データの読み出し及び書き込み可能に構成される複数の入力レジスターと、
前記複数の入力レジスターのいずれかに設定された設定データを用いた乗算処理の結果を出力する第１の処理ユニット及び第２の処理ユニットと、
少なくとも前記第１の処理ユニットからの第１の乗算データ及び前記第２の処理ユニットからの第２の乗算データが格納される複数の出力レジスターとを含む情報処理装置の演算処理方法であって、
前記第１の処理ユニットが、固定小数点フォーマットの前記第１の乗算データを出力すると共に、前記第２の処理ユニットが、浮動小数点フォーマットの前記第２の乗算データを出力する処理ステップと、
所与の実行サイクル毎に、前記第１の処理ユニットが、前記第１の乗算データを前記第１の出力レジスターに格納すると共に、前記第２の処理ユニットが、前記第２の乗算データを前記第２の出力レジスターに格納する格納ステップとを含み、
前記処理ステップでは、
前記第１の処理ユニットが、前記複数の入力レジスターのうち前記第１の処理ユニットに割り当てられた第１のレジスターに設定された第１の設定データと、前記複数の入力レジスターのうち前記第２の処理ユニットに割り当てられた第２のレジスターに設定された第２の設定データとを用いた乗算処理の結果を、固定小数点フォーマットの第１の乗算データとして出力すると共に、
前記第２の処理ユニットが、前記第１の入力レジスターに設定された前記第１の設定データと前記第２の入力レジスターに設定された前記第２の設定データとを用いた乗算処理の結果を、浮動小数点フォーマットの第２の乗算データとして出力することを特徴とする演算処理方法。
【請求項１３】
請求項１２において、
前記処理ステップは、
前記第１の処理ユニットが、前記第１の設定データと前記第２の設定データとを用いた固定小数点乗算処理を行って前記第１の乗算データを出力し、前記第２の処理ユニットが、前記第１の乗算データを、浮動小数点フォーマットの前記第２の乗算データに変換することを特徴とする演算処理方法。
【請求項１４】
請求項１２において、
前記処理ステップは、
前記第１の処理ユニットが、前記第１の設定データを固定小数点フォーマットの第１の入力データに変換し、前記第２の設定データを固定小数点フォーマットの第２の入力データに変換した後、前記第１の入力データと前記第２の入力データとを用いた固定小数点乗算処理を行い、前記第２の処理ユニットが、前記第１の設定データと前記第２の設定データとを用いた浮動小数点乗算処理を行うことを特徴とする演算処理方法。
【請求項１５】
請求項１２乃至１４のいずれかにおいて、
前記情報処理装置が、フェッチされた命令データをデコードする命令デコード部を含み、
前記格納ステップは、
前記命令デコード部のデコード結果にかかわらず、各処理ユニットによる処理結果を、前記複数の出力レジスターのいずれかに格納することを特徴とする演算処理方法。
【請求項１６】
プログラム及びデータを記憶するメモリーと、
前記プログラム及び前記データに対応した演算処理を行う請求項１乃至１１のいずれか記載の情報処理装置とを含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、演算処理方法及び電子機器等に関する。
【背景技術】
【０００２】
近年、プロセッサー（広義には情報処理装置）が身の回りのあらゆる機器に組み込まれており、このプロセッサーには、小型化、低コスト化、低消費電力化、高機能化、高性能化が求められている。プロセッサーの高機能化や高性能化を図る技術については様々なものが考えられており、その１つとしてプロセッサーの命令セットを縮小することがある。
【０００３】
命令セットを縮小することは、ＣＩＳＣ（Complex Instruction Set Computer）アーキテクチャーのプロセッサーに対するＲＩＳＣ（Reduced Instruction Set Computer）アーキテクチャーの技術思想に相当する。即ち、命令セットを縮小することで、デコードする命令をシンプルなものに限定して単純化することで高速化を図るものである。
【０００４】
命令セットを縮小すると、命令を表すオペコードのビット数を減らすことができる。そうすると、例えばオペランドと呼ばれる、レジスターを指定するためのビット数を増やしてレジスター数を増加させたり、即値として命令に埋め込める最大値が大きくなって演算処理や分岐処理が高速化できたりするメリットがある。
【０００５】
その一方、数値演算を行うプロセッサーにおいて、その用途に応じて、数値を表現するフォーマットに様々なものが存在している。そのため、プロセッサーには、種々のフォーマットの数値に対して数値演算を行うものが求められている。このような数値を表現するフォーマットの代表的なものとして、固定小数点フォーマットと浮動小数点フォーマット等がある。
【０００６】
固定小数点フォーマットにより数値を表現する場合、演算精度を完全に保証できる上に、浮動小数点フォーマットの数値を扱う場合に比べて回路規模が小さくなったり構成が簡素化されたりして、低コストで実現できるというメリットがある。これに対して、浮動小数点フォーマットにより数値を表現する場合、固定小数点フォーマットの数値を扱う場合に比べて表現可能な数値範囲が広くなり、オーバーフローが発生しにくくなるというメリットがある。例えば広く使われているＣ言語では、固定小数点フォーマットで表現される３２ビットの整数型の数値の最大値は「２１４７４８３６４７（＝２３１−１）」であり、浮動小数点フォーマットで表現される浮動小数点型の数値（単精度）の最大値は「３．４０２８２３４７×１０３８＝３．４０２８２３４７ｅ３８」である。
【０００７】
ところで、２つの数値を用いた数値演算を行う場合、両者のフォーマットが統一されている必要がある。そのため、固定小数点フォーマットのデータを浮動小数点フォーマットに変換したり、浮動小数点フォーマットのデータを固定小数点フォーマットに変換したりすることが必要となる。従って、例えばフィルター処理や画像処理等の特定の分野の処理における膨大な数値演算の際に、毎回、フォーマット変換が必要になってしまう。
【０００８】
このような数値のフォーマット変換に関する技術は、例えば特許文献１に開示されている。特許文献１には、演算器と、固定小数点フォーマットから浮動小数点フォーマットへの変換を実行する回路を備えたＤＳＰ（Digital Signal Processor）において、演算器による演算処理と、フォーマット変換処理とをパイプラインで行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−７１１７０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に開示された技術では、別々のデータに対して並列に処理を行うため、同じデータに対して同時に演算処理と変換処理とを行うものではない。そのため、大量のデータに対して演算処理と変換処理とをパイプラインで処理することでスループットを向上させることができるものの、アルゴリズムが複雑で、演算処理の結果に基づく分岐が複雑である場合や、固定小数点フォーマットのデータと浮動小数点フォーマットのデータの両方が必要な場合には、シーケンシャルに処理する必要があり、スループットを向上させることができない場合がある。
【００１１】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的の１つは、同一データを用いた乗算結果を固定小数点フォーマット及び浮動小数点フォーマットで同時に出力できる情報処理装置、演算処理方法及び電子機器等を提供することにある。
【課題を解決するための手段】
【００１２】
（１）本発明の一態様は、情報処理装置が、第１の設定データの読み出し及び書き込み可能に構成される第１の入力レジスターと、第２の設定データの読み出し及び書き込み可能に構成される第２の入力レジスターと、前記第１の入力レジスターに設定された前記第１の設定データと前記第２の入力レジスターに設定された前記第２の設定データとを用いた乗算処理の結果を、固定小数点フォーマットの第１の乗算データとして出力する第１の処理ユニットと、前記第１の入力レジスターに設定された前記第１の設定データと前記第２の入力レジスターに設定された前記第２の設定データとを用いた乗算処理の結果を、浮動小数点フォーマットの第２の乗算データとして出力する第２の処理ユニットと、前記第１の乗算データが格納される第１の出力レジスターと、前記第２の乗算データが格納される第２の出力レジスターとを含み、所与の実行サイクル毎に、前記第１の処理ユニットが、前記第１の乗算データを前記第１の出力レジスターに格納すると共に、前記第２の処理ユニットが、前記第２の乗算データを前記第２の出力レジスターに格納する。
【００１３】
本態様によれば、第１の入力レジスターに設定された第１の設定データと第２の入力レジスターに設定された第２の設定データとを用いた乗算処理の結果を、第１の処理ユニットが固定小数点フォーマットの第１の乗算データとして、第２の処理ユニットが浮動小数点フォーマットの第２の乗算データとして、それぞれ所与の実行サイクル毎に同時に出力するようにしたので、アルゴリズムが複雑で、演算処理の結果に基づく分岐が複雑である場合や、固定小数点フォーマットのデータと浮動小数点フォーマットのデータの両方が必要な場合に、シーケンシャルに処理する必要がなくなり、スループットを向上させ、且つ、命令セットの効率を高めることができるようになる。
【００１４】
（２）本発明の他の態様に係る情報処理装置では、第３の設定データの読み出し及び書き込み可能に構成される第３の入力レジスターと、第４の設定データの読み出し及び書き込み可能に構成される第４の入力レジスターと、前記第３の入力レジスターに設定された前記第３の設定データと前記第４の入力レジスターに設定された前記第４の設定データとを用いた乗算処理の結果を、固定小数点フォーマットの第３の乗算データとして出力する第３の処理ユニットと、前記第３の入力レジスターに設定された前記第３の設定データと前記第４の入力レジスターに設定された前記第４の設定データとを用いた乗算処理の結果を、浮動小数点フォーマットの第４の乗算データとして出力する第４の処理ユニットと、前記第３の乗算データが格納される第３の出力レジスターと、前記第４の乗算データが格納される第４の出力レジスターとを含み、所与の実行サイクル毎に、前記第３の処理ユニットが、前記第３の乗算データを前記第３の出力レジスターに格納し、前記第４の処理ユニットが、前記第４の乗算データを前記第４の出力レジスターに格納する。
【００１５】
本態様によれば、第３の入力レジスターに設定された第３の設定データと第４の入力レジスターに設定された第４の設定データとを用いた乗算処理の結果を、第３の処理ユニットが固定小数点フォーマットの第３の乗算データとして、第４の処理ユニットが浮動小数点フォーマットの第４の乗算データとして、それぞれ所与の実行サイクル毎に同時に出力するようにしたので、より一層、スループットを向上させ、且つ、命令セットの効率を高めることができるようになる。
【００１６】
（３）本発明の他の態様に係る情報処理装置では、前記第３の処理ユニットが、前記第４の乗算データを、固定小数点フォーマットの前記第３の乗算データに変換する固定小数点出力フォーマット変換部を含み、前記第４の処理ユニットが、前記第３の設定データと前記第４の設定データとを用いた浮動小数点乗算処理を行い、前記第４の乗算データを出力する第１の浮動小数点乗算ユニットを含む。
【００１７】
本態様によれば、第３の入力レジスター及び第４の入力レジスターに浮動小数点フォーマットの設定データを設定することで、固定小数点フォーマットの乗算結果及び浮動小数点フォーマットの乗算結果を同時に得ることができるようになる。また、第４の処理ユニットに第１の浮動小数点乗算ユニットを設け、第３の処理ユニットにおいて、固定小数点フォーマット変換部により第４の乗算データを、固定小数点フォーマットの第３の乗算データに変換するようにしたので、情報処理装置の回路規模を縮小し、構成を簡素化して、情報処理装置の低コスト化を図ることができるようになる。
【００１８】
（４）本発明の他の態様に係る情報処理装置では、前記第３の処理ユニットが、前記第３の設定データを固定小数点フォーマットの第３の入力データに変換する第１の固定小数点入力フォーマット変換部と、前記第４の設定データを固定小数点フォーマットの第４の入力データに変換する第２の固定小数点入力フォーマット変換部と、前記第３の入力データと前記第４の入力データとを用いた固定小数点乗算処理を行い、前記第３の乗算データを出力する第２の固定小数点乗算ユニットとを含む。
【００１９】
本態様によれば、第３の入力レジスター及び第４の入力レジスターに浮動小数点フォーマットの設定データを設定することで、固定小数点フォーマットの乗算結果及び浮動小数点フォーマットの乗算結果を同時に得ることができるようになる。
【００２０】
（５）本発明の他の態様に係る情報処理装置では、前記第３の入力レジスターのビット数は、前記第４の入力レジスターのビット数と同じであり、前記第３の出力レジスター及び前記第４の出力レジスターのうち少なくとも一方は、前記第３の入力レジスターのビット数と同じ２つのアキュムレーターから構成される。
【００２１】
本態様によれば、入力レジスターや出力レジスターを、第３の処理ユニット及び第４の処理ユニットの専用に設けることなく、汎用のレジスターを用いることができ、上記の効果に加えて汎用性の高い情報処理装置を提供できるようになる。
【００２２】
（６）本発明の他の態様に係る情報処理装置では、前記第１の処理ユニットが、前記第１の設定データと前記第２の設定データとを用いた固定小数点乗算処理を行い、前記第１の乗算データを出力する第１の固定小数点乗算ユニットを含み、前記第２の処理ユニットが、前記第１の乗算データを、浮動小数点フォーマットの前記第２の乗算データに変換する浮動小数点出力フォーマット変換部を含む。
【００２３】
本態様によれば、第１の入力レジスター及び第２の入力レジスターに固定小数点フォーマットの設定データを設定することで、固定小数点フォーマットの乗算結果及び浮動小数点フォーマットの乗算結果を同時に得ることができるようになる。また、第１の処理ユニットに第１の固定小数点乗算ユニットを設け、第２の処理ユニットにおいて、浮動小数点フォーマット変換部により第１の乗算データを、浮動小数点フォーマットの第２の乗算データに変換するようにしたので、情報処理装置の回路規模を縮小し、構成を簡素化して、情報処理装置の低コスト化を図ることができるようになる。
【００２４】
（７）本発明の他の態様に係る情報処理装置では、前記第１の処理ユニットが、前記第１の設定データと前記第２の設定データとを用いた固定小数点乗算処理を行い、前記第２の乗算データを出力する第１の固定小数点乗算ユニットを含み、前記第２の処理ユニットが、前記第１の設定データを浮動小数点フォーマットの第１の入力データに変換する第１の浮動小数点入力フォーマット変換部と、前記第２の設定データを浮動小数点フォーマットの第２の入力データに変換する第２の浮動小数点入力フォーマット変換部と、前記第１の入力データと前記第２の入力データとを用いた浮動小数点乗算処理を行い、前記第２の乗算データを出力する第２の浮動小数点乗算ユニットを含む。
【００２５】
本態様によれば、第１の入力レジスター及び第２の入力レジスターに固定小数点フォーマットの設定データを設定することで、固定小数点フォーマットの乗算結果及び浮動小数点フォーマットの乗算結果を同時に得ることができるようになる。
【００２６】
（８）本発明の他の態様に係る情報処理装置では、前記第１の入力レジスターのビット数は、前記第２の入力レジスターのビット数と同じであり、前記第１の出力レジスター及び前記第２の出力レジスターのうち少なくとも一方は、前記第１の入力レジスターのビット数と同じ２つのアキュムレーターから構成される。
【００２７】
本態様によれば、入力レジスターや出力レジスターを、第１の処理ユニット及び第２の処理ユニットの専用に設けることなく、汎用のレジスターを用いることができ、上記の効果に加えて汎用性の高い情報処理装置を提供できるようになる。
【００２８】
（９）本発明の他の態様に係る情報処理装置では、フェッチされた命令データをデコードする命令デコード部を含み、前記命令デコード部のデコード結果にかかわらず、各処理ユニットによる処理結果を、前記複数の出力レジスターのいずれかに格納する。
【００２９】
本態様によれば、上記の効果に加えて、命令デコード部のデコード結果にかかわらず、実行サイクル毎に、各処理ユニットの処理結果を、対応する出力レジスターに格納するようにしたので、複数の乗算処理の結果を一度に取得でき、演算処理の高速化を図ることができるようになる。
【００３０】
（１０）本発明の他の態様に係る情報処理装置では、前記命令デコード部が、算術演算命令、論理演算命令及びシフト演算命令を除く、データ転送命令及び分岐命令をデコードする。
【００３１】
本態様によれば、命令セットで規定されるビットフィールドに余裕を持たせ、極めてコード効率が高い情報処理装置を提供できるようになる。その結果、コードの難読性を高めて、逆アセンブルを困難にして安全性の高いコードを生成することができ、リバースエンジニアリング防止やセキュリティーの向上に寄与できるようになる。
【００３２】
（１１）本発明の他の態様に係る情報処理装置では、前記出力レジスターに格納された乗算データが、前記入力レジスターのいずれかに転送可能に構成される。
【００３３】
本態様によれば、各処理ユニットによって行われる乗算結果を用いて、再び乗算処理に供することができ、乗算処理を指定する命令がなくても、乗算処理結果を用いた分岐処理等の処理が可能となる。
【００３４】
（１２）本発明の他の態様は、それぞれが、設定データの読み出し及び書き込み可能に構成される複数の入力レジスターと、前記複数の入力レジスターのいずれかに設定された設定データを用いた乗算処理の結果を出力する第１の処理ユニット及び第２の処理ユニットと、少なくとも前記第１の処理ユニットからの第１の乗算データ及び前記第２の処理ユニットからの第２の乗算データが格納される複数の出力レジスターとを含む情報処理装置の演算処理方法が、前記第１の処理ユニットが、固定小数点フォーマットの前記第１の乗算データを出力すると共に、前記第２の処理ユニットが、浮動小数点フォーマットの前記第２の乗算データを出力する処理ステップと、所与の実行サイクル毎に、前記第１の処理ユニットが、前記第１の乗算データを前記第１の出力レジスターに格納すると共に、前記第２の処理ユニットが、前記第２の乗算データを前記第２の出力レジスターに格納する格納ステップとを含み、前記処理ステップでは、前記第１の処理ユニットが、前記複数の入力レジスターのうち前記第１の処理ユニットに割り当てられた第１のレジスターに設定された第１の設定データと、前記複数の入力レジスターのうち前記第２の処理ユニットに割り当てられた第２のレジスターに設定された第２の設定データとを用いた乗算処理の結果を、固定小数点フォーマットの第１の乗算データとして出力すると共に、前記第２の処理ユニットが、前記第１の入力レジスターに設定された前記第１の設定データと前記第２の入力レジスターに設定された前記第２の設定データとを用いた乗算処理の結果を、浮動小数点フォーマットの第２の乗算データとして出力する。
【００３５】
本態様によれば、第１の入力レジスターに設定された第１の設定データと第２の入力レジスターに設定された第２の設定データとを用いた乗算処理の結果を、第１の処理ユニットが固定小数点フォーマットの第１の乗算データとして、第２の処理ユニットが浮動小数点フォーマットの第２の乗算データとして、それぞれ所与の実行サイクル毎に同時に出力するようにしたので、アルゴリズムが複雑で、演算処理の結果に基づく分岐が複雑である場合や、固定小数点フォーマットのデータと浮動小数点フォーマットのデータの両方が必要な場合に、シーケンシャルに処理する必要がなくなり、スループットを向上させ、且つ、命令セットの効率を高めることができるようになる。
【００３６】
（１３）本発明の他の態様に係る演算処理方法では、前記処理ステップは、前記第１の処理ユニットが、前記第１の設定データと前記第２の設定データとを用いた固定小数点乗算処理を行って前記第１の乗算データを出力し、前記第２の処理ユニットが、前記第１の乗算データを、浮動小数点フォーマットの前記第２の乗算データに変換する。
【００３７】
本態様によれば、第１の入力レジスター及び第２の入力レジスターに固定小数点フォーマットの設定データを設定することで、固定小数点フォーマットの乗算結果及び浮動小数点フォーマットの乗算結果を同時に得ることができるようになる。第２の処理ユニットにおいて、第１の乗算データを浮動小数点フォーマットの第２の乗算データに変換するようにしたので、情報処理装置の回路規模を縮小し、構成を簡素化して、情報処理装置の低コスト化を図ることができるようになる。
【００３８】
（１４）本発明の他の態様に係る演算処理方法では、前記処理ステップは、前記第１の処理ユニットが、前記第１の設定データを固定小数点フォーマットの第１の入力データに変換し、前記第２の設定データを固定小数点フォーマットの第２の入力データに変換した後、前記第１の入力データと前記第２の入力データとを用いた固定小数点乗算処理を行い、前記第２の処理ユニットが、前記第１の設定データと前記第２の設定データとを用いた浮動小数点乗算処理を行う。
【００３９】
本態様によれば、第１の入力レジスター及び第２の入力レジスターに固定小数点フォーマットの設定データを設定することで、固定小数点フォーマットの乗算結果及び浮動小数点フォーマットの乗算結果を同時に得ることができるようになる。
【００４０】
（１５）本発明の他の態様に係る演算処理方法では、前記情報処理装置が、フェッチされた命令データをデコードする命令デコード部を含み、前記格納ステップは、前記命令デコード部のデコード結果にかかわらず、各処理ユニットによる処理結果を、前記複数の出力レジスターのいずれかに格納する。
【００４１】
本態様によれば、上記の効果に加えて、命令デコード部のデコード結果にかかわらず、実行サイクル毎に、各処理ユニットの処理結果を、対応する出力レジスターに格納するようにしたので、複数の乗算処理の結果を一度に取得でき、演算処理の高速化を図ることができるようになる。
【００４２】
（１６）本発明の他の態様は、電子機器が、プログラム及びデータを記憶するメモリーと、前記プログラム及び前記データに対応した演算処理を行う上記のいずれか記載の情報処理装置とを含む。
【００４３】
本態様によれば、同一データを用いた乗算結果を固定小数点フォーマット及び浮動小数点フォーマットで同時に出力できる情報処理装置が適用された電子機器を提供でき、命令セットのコード効率を向上させて、低コスト化及びセキュリティーを高めた電子機器の提供に寄与できるようになる。
【図面の簡単な説明】
【００４４】
【図１】本発明に係る実施形態１における情報処理装置の原理的な構成例を示す図。
【図２】図１の情報処理装置としてのＣＰＵの構成例のブロック図。
【図３】図２のＣＰＵが読み込むプログラムの命令データの説明図。
【図４】図２の汎用レジスター部の構成例を示す図。
【図５】図２のアキュムレーター部の構成例を示す図。
【図６】実施形態１における汎用レジスター部、演算処理部及びアキュムレーター部の一構成例のブロック図。
【図７】図６の構成要部の構成例のブロック図。
【図８】図７の浮動小数点出力フォーマット変換部の構成例のブロック図。
【図９】第１の処理ユニットの動作説明図。
【図１０】第２の処理ユニットの動作説明図。
【図１１】図７の固定小数点出力フォーマット変換部の構成例のブロック図。
【図１２】図７の演算処理部の動作例のフロー図。
【図１３】図１３（Ａ）、図１３（Ｂ）は図２のＣＰＵの動作例の説明図。
【図１４】図６及び図７の演算処理部の動作説明図。
【図１５】実施形態１におけるＣＰＵの命令セットの一例の説明図。
【図１６】本発明に係る実施形態２における汎用レジスター部、演算処理部及びアキュムレーター部の構成例のブロック図。
【図１７】図１６の第２の処理ユニットの構成例のブロック図。
【図１８】図１６の第３の処理ユニットの構成例のブロック図。
【図１９】実施形態１又は実施形態２におけるＣＰＵが適用される第１の応用例の説明図。
【図２０】実施形態１又は実施形態２におけるＣＰＵが適用される第２の応用例の説明図。
【図２１】本発明に係る電子機器としてのプロジェクターを含む画像表示システムの構成例のブロック図。
【図２２】図２１の画像処理装置のハードウェア構成例のブロック図。
【図２３】図２１の投射装置の構成例の図。
【発明を実施するための形態】
【００４５】
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の課題を解決するのに必須の構成要件であるとは限らない。
【００４６】
１．  情報処理装置
〔実施形態１〕
図１に、本発明に係る実施形態１における情報処理装置の原理的な構成例を示す。
【００４７】
実施形態１における情報処理装置１０は、汎用レジスター部２０と、アキュムレーター部３０と、演算処理部４０とを含む。
【００４８】
汎用レジスター部（入力レジスター部）２０は、外部から設定データの読み出しと設定データの書き込みとが可能な複数の汎用レジスターＲＧ０、・・・、ＲＧｊ、・・・、ＲＧｋ、・・・、ＲＧｎ、・・・を有し、演算処理部４０において行われる演算処理に供される入力データが設定される。汎用レジスター部２０が有する複数の汎用レジスターは、演算処理部４０の入力データが設定される入力レジスターの機能を有する。
【００４９】
アキュムレーター部（出力レジスター部）３０は、演算処理部４０において行われる演算処理の処理結果が格納される複数のアキュムレーターＲＧ１０、・・・、ＲＧ１ｘ、・・・、ＲＧ２ｙ、・・・を含む。アキュムレーター部３０が有する複数のアキュムレーターは、演算処理部４０の処理結果が格納される出力レジスターの機能を有する。
【００５０】
演算処理部４０は、複数の演算処理ユニットを有する。複数の演算処理ユニットは、互いに異なる演算処理を行ってもよいし、１つの演算処理ユニットの処理内容が別の演算処理ユニットの演算処理と同じ種類の演算処理を行ってもよく、演算処理の種類によっては、互いに並列動作可能に構成されることが望ましい。演算処理部４０が有する複数の演算処理ユニットを構成する各演算処理ユニットは、いわゆる算術演算、論理演算又はシフト演算を行うことが望ましい。算術演算は、加算演算、乗算演算、減算演算、除算演算、インクリメント演算、デクリメント演算のいずれかであることが望ましい。乗算演算は、固定小数点乗算演算及び浮動小数点乗算演算を含むことが望ましい。論理演算は、論理和演算、論理積演算、論理否定演算、排他的論理和演算、排他的論理和否定演算のいずれかであることが望ましい。シフト演算は、論理シフト演算、算術シフト演算、回転演算、スワップ演算のいずれかであることが望ましい。
【００５１】
各演算処理ユニットには、汎用レジスター部２０が有する複数の汎用レジスターのうち１又は複数の汎用レジスターが割り当てられると共に、アキュムレーター部３０が有する複数のアキュムレーターのうち１又は複数のアキュムレーターが割り当てられる。そして、複数の演算処理ユニットは、所与の実行サイクル毎に、演算処理ユニット毎に割り当てられた汎用レジスターに設定された入力データを用いて同時に演算処理を行い、演算処理ユニット毎に割り当てられたアキュムレーターに演算処理の処理結果を格納する。
【００５２】
即ち、演算処理部４０は、第１の演算処理を行う第１の演算処理ユニットＥＸＵ１と、第２の演算処理を行う第２の演算処理ユニットＥＸＵ２とを少なくとも含む。第１の演算処理の処理内容は、第２の演算処理の処理内容と同じであってもよいし、異なっていてもよい。複数の汎用レジスター（入力レジスター）は、第１の演算処理ユニットＥＸＵ１に割り当てられる第１の汎用レジスター（入力レジスター）ＲＧｊ、ＲＧｎと、第２の演算処理ユニットＥＸＵ２に割り当てられる第２の汎用レジスター（入力レジスター）ＲＧｋとを有する。また、複数のアキュムレーター（出力レジスター）は、第１の演算処理ユニットＥＸＵ１に割り当てられる第１のアキュムレーター（出力レジスター）ＲＧ１ｘと、第２の演算処理ユニットＥＸＵ２に割り当てられる第２のアキュムレーター（出力レジスター）ＲＧ２ｙとを有する。そして、情報処理装置１０の実行サイクル毎に、第１の演算処理ユニットＥＸＵ１が、第１の汎用レジスターＲＧｊ、ＲＧｎの設定データを用いて第１の演算処理を行い、該第１の演算処理の処理結果を第１のアキュムレーターＲＧ１ｘに格納すると共に、第２の演算処理ユニットＥＸＵ２が、第２の汎用レジスターＲＧｋの設定データを用いて第２の演算処理を行い、該第２の演算処理の処理結果を第２のアキュムレーターＲＧ２ｙに格納する。
【００５３】
ここで、第１の演算処理ユニットＥＸＵ１には、第１のアキュムレーターＲＧ１ｘを含む複数のアキュムレーターが割り当てられてもよい。同様に、第２の演算処理ユニットＥＸＵ２には、第２のアキュムレーターＲＧ２ｙを含む複数のアキュムレーターが割り当てられてもよい。
【００５４】
また、第１の演算処理ユニットＥＸＵ１及び第２の演算処理ユニットＥＸＵ２の一方には、汎用レジスター部２０の汎用レジスターが割り当てられなくてもよい。この場合、第１の演算処理ユニットＥＸＵ１及び第２の演算処理ユニットＥＸＵ２の他方は、一方の演算処理の結果を用いて第２の演算処理を行うことができる。
【００５５】
即ち、情報処理装置１０の演算処理方法として、複数の入力レジスターのうち第１の入力レジスターを第１の演算処理ユニットＥＸＵ１に割り当て、該複数の入力レジスターのうち第２の入力レジスターを第２の演算処理ユニットＥＸＵ２に割り当てると共に、複数の出力レジスターのうち第１の出力レジスターを第１の演算処理ユニットＥＸＵ１に割り当て、該複数の出力レジスターのうち第２の出力レジスターを第２の演算処理ユニットＥＸＵ２に割り当てる。そして、所与の実行サイクル毎に、第１の演算処理ユニットＥＸＵ１が、第１の入力レジスターの設定データを用いて第１の演算処理を行い、該第１の演算処理の処理結果を第１の出力レジスターに格納すると共に、第２の演算処理ユニットが、第２の入力レジスターの設定データを用いて第２の演算処理を行い、該第２の演算処理の処理結果を第２の出力レジスターに格納する。
【００５６】
このような情報処理装置１０は、実行サイクル毎に、汎用レジスターの設定データを用いて演算処理を行った結果をアキュムレーターに格納することを繰り返すことで、演算処理を指定する命令を不要にして命令セットで規定されるビットフィールドに余裕を持たせ、極めてコード効率の高い情報処理装置を実現することが可能となる。
【００５７】
また、第１のアキュムレーターの格納データ又は第２のアキュムレーターの格納データは、複数の汎用レジスターのいずれかに転送可能に構成される。こうすることで、演算処理部４０によって行われる演算処理結果を用いて、再び演算処理に供することができる。そのため、演算処理を指定する命令がなくても、演算処理結果を用いた分岐処理等の処理が可能となる。
【００５８】
また、第１の汎用レジスターが、第２の演算処理ユニットＥＸＵ２に割り当てられ、第２の演算処理ユニットＥＸＵ２が、実行サイクル毎に、第１の汎用レジスターの設定データを用いて第２の演算処理を行い、該第２の演算処理の処理結果を第２のアキュムレーターに格納するようにしてもよい。こうすることで、１つの汎用レジスターに設定されたデータを用いて複数種類の演算処理を行う場合に、一度に行うことができ、処理の高速化を図ることができる。
【００５９】
図２に、図１の情報処理装置１０としての中央演算処理装置（Central Processing Unit：ＣＰＵ）の構成例のブロック図を示す。図２において、図１と同一部分には同一符号を付し、適宜説明を省略する。
図３に、図２のＣＰＵ１００が読み込むプログラムの命令データの説明図を示す。
【００６０】
ＣＰＵ１００は、汎用レジスター部２０及びアキュムレーター部３０を含むレジスター部５０と、命令デコード部６０と、バス制御部７０と、プログラムカウンター（Program Counter：ＰＣ）８０と、スタックポインター（Stack Pointer：ＳＰ)８２と、オペコードレジスター８４と、オペランドレジスター８６と、制御部９０とを含む。
【００６１】
ＣＰＵ１００は、外部又は内部の図示しないメモリーに格納されたプログラムを読み込み、該プログラムにより指定された処理を実行する。このプログラムは、それぞれがＣＰＵ１００の処理内容を指定する、図３に示すような命令データの列である。命令データは、オペコード部とオペランド部とを有し、オペコード部が処理内容を指定する部分であり、オペランド部が、オペコード部で指定された処理の対象を指定する部分である。
【００６２】
プログラムカウンター８０は、ＣＰＵ１００が現在実行するプログラムのアドレスを保持する制御レジスターであり、ＣＰＵ１００が処理の実行を終了する度にその内容が更新される。スタックポインター８２は、スタック領域と呼ばれるデータの待避領域に最後に待避したアドレスを保持する制御レジスターであり、例えばサブルーチン処理に移行する際に現在の処理を中断し、サブルーチン処理の終了後に中断した処理を再開させるために用いられる。オペコードレジスター８４は、ＣＰＵ１００によりフェッチされた命令データのオペコード部を保持する制御レジスターである。オペランドレジスター８６は、ＣＰＵ１００によりフェッチされた命令データのオペランド部を保持する制御レジスターである。
【００６３】
命令デコード部６０は、プログラムカウンター８０により指定されるアドレスに記憶されるプログラムの命令データがＣＰＵ１００によりフェッチされたとき、該命令データをデコードし、デコード結果を制御部９０に出力する。
【００６４】
バス制御部７０は、制御部９０からの指示により、ＣＰＵ１００の外部又は内部に設けられたバスの調停制御を行って、アクセス制御を行う。
【００６５】
制御部９０は、命令デコード部６０からのデコード結果に基づいて、プログラムカウンター８０、スタックポインター８２、オペコードレジスター８４、オペランドレジスター８６、バス制御部７０、演算処理部４０及びレジスター部５０を制御して、ＣＰＵ１００の制御を司る。
【００６６】
図４に、図２の汎用レジスター部２０の構成例を示す。
【００６７】
実施形態１では、汎用レジスター部２０が、１６種類の汎用レジスターＲＧ０〜ＲＧｆを有する。なお、実施形態１では、ＣＰＵ１００が、１６種類の汎用レジスターを有するものとして説明するが、本発明は汎用レジスター数に限定されるものではなく、複数の汎用レジスターを有していればよい。また、実施形態１では、汎用レジスターのビット数が「１６」であるものとして説明するが、本発明はこれに限定されるものではなく、汎用レジスターのビット数に限定されるものではない。
【００６８】
図４に示す各汎用レジスターは、制御部９０からアクセス可能に構成されており、制御部９０は、各汎用レジスターにデータを書き込んだり、各汎用レジスターからデータを読み出したりすることができるようになっている。そして、図４の汎用レジスターＲＧ０〜ＲＧｆのいずれかは、演算処理部４０が有する複数の演算処理ユニットのいずれかに予め割り当てられている。汎用レジスターＲＧ０〜ＲＧｆのうち、演算処理部４０が有する複数の演算処理ユニットのいずれにも割り当てられない汎用レジスターがあってもよいし、１つの汎用レジスターが、演算処理部４０が有する複数の演算処理ユニットに割り当てられていてもよい。
【００６９】
図５に、図２のアキュムレーター部３０の構成例を示す。
【００７０】
実施形態１では、アキュムレーター部３０が、例えば３２種類以上のアキュムレーターＲＧ１０、・・・、ＲＧ２ｆ、・・・を有する。なお、実施形態１では、アキュムレーター数に限定されるものではなく、複数のアキュムレーターを有していればよい。また、実施形態１では、アキュムレーターのビット数が「１６」であるものとして説明するが、本発明はこれに限定されるものではなく、アキュムレーターのビット数に限定されるものではない。
【００７１】
図５に示す各アキュムレーターは、演算処理部４０が有する演算処理ユニットから書き込み可能に構成されており、制御部９０は、各アキュムレーターに書き込まれたデータを読み出したり、該データを汎用レジスター部２０のいずれかの汎用レジスターに転送したりできるようになっている。そして、図５のアキュムレーターのいずれかは、演算処理部４０が有する複数の演算処理ユニットのいずれかに予め割り当てられている。アキュムレーターのうち、演算処理部４０が有する複数の演算処理ユニットのいずれにも割り当てられないアキュムレーターがあってもよい。
【００７２】
演算処理部４０が有する複数の演算処理ユニットを構成する各演算処理ユニットは、実行サイクル毎に、入力レジスターとして割り当てられた汎用レジスターのデータを用いて演算処理を行い、その演算処理結果を、出力レジスターとして割り当てられたアキュムレーターに格納する。
【００７３】
図６に、実施形態１における汎用レジスター部２０、演算処理部４０及びアキュムレーター部３０の一構成例のブロック図を示す。図６において、図４又は図５と同一部分には同一符号を付し、適宜説明を省略する。
【００７４】
演算処理部４０は、複数の演算処理ユニットを有し、図６では演算処理ユニット４０１〜４０１１のみを図示している。なお、図６では、演算処理部４０が、１１個の演算処理ユニットを含む例を説明するが、本発明が、演算処理ユニット数に限定されるものではなく、演算処理部４０が複数の演算処理ユニットを有していればよい。
【００７５】
演算処理ユニット４０１は、加算演算処理を行う。演算処理ユニット４０１には、汎用レジスターＲＧ０、ＲＧ１と、アキュムレーターＲＧ１０、ＲＧ２０とが割り当てられる。そして、実行サイクル毎に、演算処理ユニット４０２〜４０１１と並列に、演算処理ユニット４０１は、汎用レジスターＲＧ０の入力データと汎用レジスターＲＧ１の入力データとの加算演算を行い、加算演算結果を、アキュムレーターＲＧ１０、ＲＧ２０に格納する。ここで、アキュムレーターＲＧ１０には、加算演算結果の下位ビット側が格納され、アキュムレーターＲＧ２０には、キャリービットが格納される。
【００７６】
演算処理ユニット４０２もまた、加算演算処理を行う。ただ、演算処理ユニット４０２は、演算処理ユニット４０１とは別の汎用レジスターが入力レジスターとして割り当てられている。即ち、演算処理ユニット４０２には、汎用レジスターＲＧ２、ＲＧ３と、アキュムレーターＲＧ１２、ＲＧ２２とが割り当てられる。そして、実行サイクル毎に、演算処理ユニット４０１、４０３〜４０１１と並列に、演算処理ユニット４０２は、汎用レジスターＲＧ２の入力データと汎用レジスターＲＧ３の入力データとの加算演算を行い、加算演算結果を、アキュムレーターＲＧ１２、ＲＧ２２に格納する。ここで、アキュムレーターＲＧ１２には、加算演算結果の下位ビット側が格納され、アキュムレーターＲＧ２２には、キャリービットが格納される。
【００７７】
演算処理ユニット４０３は、乗算演算処理を行う。演算処理ユニット４０３には、汎用レジスターＲＧ４、ＲＧ５と、アキュムレーターＲＧ１４、ＲＧ２４とが割り当てられる。そして、実行サイクル毎に、演算処理ユニット４０１〜４０２、４０４〜４０１１と並列に、演算処理ユニット４０３は、汎用レジスターＲＧ４の入力データと汎用レジスターＲＧ５の入力データとの乗算演算を行い、乗算演算結果を、アキュムレーターＲＧ１４、ＲＧ２４に格納する。
【００７８】
演算処理ユニット４０４もまた、乗算演算処理を行う。演算処理ユニット４０４には、汎用レジスターＲＧ６、ＲＧ７と、アキュムレーターＲＧ１６、ＲＧ２６とが割り当てられる。そして、実行サイクル毎に、演算処理ユニット４０１〜４０３、４０５〜４０１１と並列に、演算処理ユニット４０４は、汎用レジスターＲＧ６の入力データと汎用レジスターＲＧ７の入力データとの乗算演算を行い、乗算演算結果を、アキュムレーターＲＧ１６、ＲＧ２６に格納する。
【００７９】
演算処理ユニット４０５は、減算演算処理を行う。演算処理ユニット４０５には、汎用レジスターＲＧ８、ＲＧ９と、アキュムレーターＲＧ１８とが割り当てられる。そして、実行サイクル毎に、演算処理ユニット４０１〜４０４、４０６〜４０１１と並列に、演算処理ユニット４０５は、汎用レジスターＲＧ９の入力データから汎用レジスターＲＧ８の入力データを減算する減算演算を行い、減算演算結果を、アキュムレーターＲＧ１８に格納する。
【００８０】
演算処理ユニット４０６は、デクリメント演算処理を行う。演算処理ユニット４０６には、汎用レジスターＲＧａと、アキュムレーターＲＧ１ａとが割り当てられる。そして、実行サイクル毎に、演算処理ユニット４０１〜４０５、４０７〜４０１１と並列に、演算処理ユニット４０６は、汎用レジスターＲＧａの入力データから１を減算したデクリメント演算を行い、デクリメント演算結果をアキュムレーターＲＧ１ａに格納する。
【００８１】
演算処理ユニット４０７は、インクリメント演算処理を行う。演算処理ユニット４０７には、汎用レジスターＲＧｂと、アキュムレーターＲＧ１ｂとが割り当てられる。そして、実行サイクル毎に、演算処理ユニット４０１〜４０６、４０８〜４０１１と並列に、演算処理ユニット４０７は、汎用レジスターＲＧｂの入力データに１を加算したインクリメント演算を行い、インクリメント演算結果をアキュムレーターＲＧ１ｂに格納する。
【００８２】
演算処理ユニット４０８は、論理積演算処理を行う。演算処理ユニット４０８には、汎用レジスターＲＧｃ、ＲＧｄと、アキュムレーターＲＧ１ｃとが割り当てられる。そして、実行サイクル毎に、演算処理ユニット４０１〜４０７、４０９〜４０１１と並列に、演算処理ユニット４０８は、汎用レジスターＲＧｃの入力データと汎用レジスターＲＧｄの入力データとの論理積演算を行い、論理積演算結果をアキュムレーターＲＧ１ｃに格納する。
【００８３】
演算処理ユニット４０９は、左方向の論理シフト演算処理を行う。演算処理ユニット４０９には、汎用レジスターＲＧｃと、アキュムレーターＲＧ２ｃとが割り当てられる。そして、実行サイクル毎に、演算処理ユニット４０１〜４０８、４０１０〜４０１１と並列に、演算処理ユニット４０９は、汎用レジスターＲＧｃの入力データを左方向にシフトしたシフト演算を行い、シフト演算結果をアキュムレーターＲＧ２ｃに格納する。
【００８４】
演算処理ユニット４０１０は、論理和演算処理を行う。演算処理ユニット４０１０には、汎用レジスターＲＧｅ、ＲＧｆと、アキュムレーターＲＧ１ｅとが割り当てられる。そして、実行サイクル毎に、演算処理ユニット４０１〜４０９、４０１１と並列に、演算処理ユニット４０１０は、汎用レジスターＲＧｅの入力データと汎用レジスターＲＧｆの入力データとの論理積演算を行い、論理積演算結果をアキュムレーターＲＧ１ｅに格納する。
【００８５】
演算処理ユニット４０１１は、右方向の論理シフト演算処理を行う。演算処理ユニット４０１１には、汎用レジスターＲＧｅと、アキュムレーターＲＧ２ｅとが割り当てられる。そして、実行サイクル毎に、演算処理ユニット４０１〜４０１０と並列に、演算処理ユニット４０１１は、汎用レジスターＲＧｅの入力データを右方向にシフトしたシフト演算を行い、シフト演算結果をアキュムレーターＲＧ２ｅに格納する。
【００８６】
図６に示す演算処理部４０の演算処理ユニット４０１〜４０１１のそれぞれは、実行サイクル毎に、対応するアキュムレーターの値を更新する。即ち、命令デコード部６０のデコード結果にかかわらず、演算処理ユニット４０１〜４０１１は、それぞれ実行サイクル毎に、各演算処理を行う。従って、実行サイクル前に、割り当てられた汎用レジスターの入力データが書き換えられたとき、実行サイクル後に、対応するアキュムレーターに格納されるデータが変化することになる。
【００８７】
また、実施形態１では、演算処理部４０において、演算処理ユニット４０３、４０４の少なくとも一方に対応して、処理ユニットを設けて、同一の汎用レジスターの設定データに対する乗算演算処理の結果を、互いに異なる複数のフォーマットのデータとして、対応するアキュムレーターに格納することができるようになっている。
【００８８】
以下では、固定小数点フォーマットのデータと浮動小数点フォーマットのデータとを、対応するアキュムレーターに格納する例について説明するが、本発明はこれに限定されるものではない。なお、以下では、固定小数点フォーマットのデータとは、数値の整数部と小数部を符号ビットと共に固定長で表現するものをいうものとする。また、浮動小数点フォーマットのデータとは、数値を符号ビットと共に指数部と仮数部とにより表現するものをいうものとする。
【００８９】
図７に、図６の構成要部の構成例のブロック図を示す。図７において、図６と同一部分には同一符号を付し、適宜説明を省略する。
【００９０】
この場合、演算処理ユニット４０３は、固定小数点乗算演算を行う固定小数点乗算ユニットであり、演算処理ユニット４０３に対応して、浮動小数点出力フォーマット変換部４２１が設けられている。また、演算処理ユニット４０４は、浮動小数点乗算演算を行う浮動小数点乗算ユニットであり、演算処理ユニット４０４に対応して、固定小数点出力フォーマット変換部４２２が設けられている。
【００９１】
即ち、演算処理部４０は、第１の処理ユニット２００１と、第２の処理ユニット２００２とを含む。更に、演算処理部４０は、第３の処理ユニット２００３と、第４の処理ユニット２００４とを含むことができる。
【００９２】
第１の処理ユニット２００１には、汎用レジスターＲＧ４、ＲＧ５（第１の入力レジスター、第２の入力レジスター）と、アキュムレーターＲＧ１４、ＲＧ２４（第１の出力レジスター）とが割り当てられる。実施形態１では、汎用レジスターＲＧ４、ＲＧ５のビット数は同じである。アキュムレーターＲＧ１４、ＲＧ２４のそれぞれは、汎用レジスターＲＧ４、ＲＧ５のビット数と同じであり、２つのアキュムレーターにより第１の出力レジスターを構成する。第１の処理ユニット２００１は、固定小数点乗算ユニット（第１の固定小数点乗算ユニット）である演算処理ユニット４０３を含み、汎用レジスターＲＧ４に設定された第１の設定データと汎用レジスターＲＧ５に設定された第２の設定データとを用いた乗算処理の結果を、固定小数点フォーマットの第１の乗算データとして出力する。
【００９３】
第２の処理ユニット２００２には、汎用レジスターＲＧ４、ＲＧ５と、アキュムレーターＲＧ３４、ＲＧ４４（第２の出力レジスター）とが割り当てられる。実施形態１では、アキュムレーターＲＧ３４、ＲＧ４４のそれぞれは、汎用レジスターＲＧ４、ＲＧ５のビット数と同じであり、２つのアキュムレーターにより第２の出力レジスターを構成する。第２の処理ユニット２００２は、汎用レジスターＲＧ４に設定された第１の設定データと汎用レジスターＲＧ５に設定された第２の設定データとを用いた乗算処理の結果を、浮動小数点フォーマットの第２の乗算データとして出力する。そのため、第２の処理ユニット２００２は、浮動小数点出力フォーマット変換部４２１を含み、演算処理ユニット４０３からの第１の乗算データを、浮動小数点フォーマットの第２の乗算データに変換する。
【００９４】
図８に、図７の浮動小数点出力フォーマット変換部４２１の構成例のブロック図を示す。なお、浮動小数点出力フォーマット変換部４２１の構成は、図８に示すものに限定されるものではない。
【００９５】
浮動小数点出力フォーマット変換部４２１は、絶対値化回路２１０と、ビットサーチ回路２１２と、シフト回路２１４と、丸め回路２１６とを含むことができる。絶対値化回路２１０には、固定小数点フォーマットの入力データｆａが入力され、入力データｆａを絶対値化して、符号を確定させる。ビットサーチ回路２１２は、例えば絶対値化されたデータのビット列の最上位ビット側から「１」のビットをサーチする。シフト回路２１４は、ビットサーチ回路２１２によりサーチされた「１」のビットがＭＳＢ（Most Significant Bit）となるように、絶対値化回路２１０により絶対値化されたデータをシフトして正規化する。丸め回路２１６は、桁の丸め等を行って、浮動小数点フォーマットの指数部に対応する指数部データｅａと仮数部に対応する仮数部データｍａとからなる第２の乗算データを出力する。
【００９６】
そして、演算処理部４０では、所与の実行サイクル毎に、第１の処理ユニット２００１が、第１の乗算データをアキュムレーターＲＧ１４、ＲＧ２４に格納すると共に、第２の処理ユニット２００２が、第２の乗算データをアキュムレーターＲＧ３４、ＲＧ４４に格納する。
【００９７】
図９に、第１の処理ユニット２００１の動作説明図を示す。
図１０に、第２の処理ユニット２００２の動作説明図を示す。
【００９８】
実施形態１において、固定小数点フォーマットは、例えば符号ビットＳとデータ部Ｄとからなり、第１の処理ユニット２００１は、この固定小数点フォーマットの第１の乗算データを出力する。そして、図９に示すように、第１の処理ユニット２００１は、固定小数点フォーマットの第１の乗算データを、例えば、符号ビットＳを含む上位側と下位側とに分割して、第１の出力レジスターとして構成されるアキュムレーターＲＧ１４、ＲＧ２４に格納する。
【００９９】
同様に、実施形態１において、浮動小数点フォーマットは、例えば符号ビットＳと指数部Ｅと仮数部Ｍとからなり、第２の処理ユニット２００２は、この浮動小数点フォーマットの第２の乗算データを出力する。そして、図１０に示すように、第２の処理ユニット２００２は、浮動小数点フォーマットの第２の乗算データを、例えば、符号ビットＳ、指数部Ｅ及び仮数部Ｍの一部を含む部分とその残りの部分とに分割し、第２の出力レジスターとして構成されるアキュムレーターＲＧ３４、ＲＧ４４に、第１の処理ユニット２００１による格納タイミングに同期して格納する。
【０１００】
これにより、汎用レジスターＲＧ４、ＲＧ５に、固定小数点フォーマットの設定データを設定することで、汎用レジスターＲＧ４、ＲＧ５の設定データに対する乗算処理結果を、２種類の固定小数点フォーマットの出力データと浮動小数点フォーマットの出力データとして同時にアキュムレーターに格納することができるようになる。従って、アルゴリズムが複雑で、演算処理の結果に基づく分岐が複雑である場合や、固定小数点フォーマットのデータと浮動小数点フォーマットのデータの両方が必要な場合に、シーケンシャルに処理する必要がなくなり、スループットを向上させ、且つ、命令セットの効率を高めることができるようになる。
【０１０１】
更に、例えば、汎用レジスターＲＧ４、ＲＧ５の一方に、数値「１」を固定小数点フォーマットで表現した即値を設定し、汎用レジスターＲＧ４、ＲＧ５の他方に、固定小数点フォーマットの即値ＶＡＬを設定することで、次の実行サイクル後には、アキュムレーターＲＧ３４、ＲＧ４４には、即値ＶＡＬを浮動小数点フォーマットで表現したデータが格納される。これにより、浮動小数点フォーマットの変換処理を実現できる。
【０１０２】
また、第３の処理ユニット２００３には、汎用レジスターＲＧ６、ＲＧ７（第３の入力レジスター、第４の入力レジスター）と、アキュムレーターＲＧ１６、ＲＧ２６（第３の出力レジスター）とが割り当てられる。実施形態１では、汎用レジスターＲＧ６、ＲＧ７のビット数は同じであり、アキュムレーターＲＧ１６、ＲＧ２６のそれぞれは、汎用レジスターＲＧ６、ＲＧ７のビット数と同じであり、２つのアキュムレーターにより第３の出力レジスターを構成する。第３の処理ユニット２００３は、汎用レジスターＲＧ６に設定された第４の設定データと汎用レジスターＲＧ７に設定された第４の設定データとを用いた乗算処理の結果を、固定小数点フォーマットの第３の乗算データとして出力する。
【０１０３】
第４の処理ユニット２００４は、第１の処理ユニット２００１と並列動作可能に設けられる。この第４の処理ユニット２００４には、汎用レジスターＲＧ６、ＲＧ７と、アキュムレーターＲＧ３６、ＲＧ４６（第４の出力レジスター）とが割り当てられる。実施形態１では、アキュムレーターＲＧ３６、ＲＧ４６のそれぞれは、汎用レジスターＲＧ６、ＲＧ７のビット数と同じであり、２つのアキュムレーターにより第４の出力レジスターを構成する。第４の処理ユニット２００４は、浮動小数点乗算ユニット（第１の浮動小数点乗算ユニット）である演算処理ユニット４０４を含み、汎用レジスターＲＧ６に設定された第３の設定データと汎用レジスターＲＧ７に設定された第４の設定データとを用いた乗算処理の結果を、浮動小数点フォーマットの第４の乗算データとして出力する。
【０１０４】
ここで、第３の処理ユニット２００３は、固定小数点出力フォーマット変換部４２２を含み、演算処理ユニット４０４からの第４の乗算データを、固定小数点フォーマットの第３の乗算データに変換する。
【０１０５】
図１１に、図７の固定小数点出力フォーマット変換部４２２の構成例のブロック図を示す。なお、固定小数点出力フォーマット変換部４２２の構成は、図１１に示すものに限定されるものではない。
【０１０６】
固定小数点出力フォーマット変換部４２２は、シフト回路２２０と、符号生成回路２２２と、丸め回路２２４とを含むことができる。シフト回路２２０には、浮動小数点フォーマットの入力データの指数部データｅａ１と仮数部データｍａ１とが入力され、指数部データｅａ１に対応したシフト量だけ、指数部データｅａ１により特定される符号に対応したシフト方向に仮数部データｍａ１をシフトする。丸め回路２２４は、このシフト回路２２０によってシフトされたデータに対して丸めを行って、第３の乗算データとして出力する。
【０１０７】
そして、演算処理部４０では、所与の実行サイクル毎に、第１の処理ユニット２００１及び第２の処理ユニット２００２の格納タイミングに同期して、第３の処理ユニット２００３が、第３の乗算データをアキュムレーターＲＧ１６、ＲＧ２６に格納すると共に、第４の処理ユニット２００４が、第４の乗算データをアキュムレーターＲＧ３６、ＲＧ４６に格納する。このとき、第３の処理ユニット２００３は、固定小数点フォーマットの第３の乗算データを、例えば、符号ビットを含む上位側と下位側とに分割して、第３の出力レジスターとして構成されるアキュムレーターＲＧ１６、ＲＧ２６に格納する。また、第４の処理ユニット２００４は、浮動小数点フォーマットの第４の乗算データを、例えば、符号ビット、指数部及び仮数部の一部を含む部分とその残りの部分とに分割して、第４の出力レジスターとして構成されるアキュムレーターＲＧ３６、ＲＧ４６に、第１の処理ユニット２００１による格納タイミングに同期して格納する。
【０１０８】
これにより、汎用レジスターＲＧ６、ＲＧ７に、浮動小数点フォーマットの設定データを設定することで、汎用レジスターＲＧ６、ＲＧ７の設定データに対する乗算処理結果を、２種類の固定小数点フォーマットの出力データと浮動小数点フォーマットの出力データとして同時にアキュムレーターに格納することができるようになる。また、固定小数点フォーマットの設定データに対して乗算処理を行う第１の処理ユニット２００１及び第２の処理ユニット２００２と並列に、浮動小数点フォーマットの設定データにして乗算処理を行って、同時に複数種類のフォーマットの乗算結果が得られるようになる。これにより、複雑な乗算処理においても、シーケンシャルにフォーマット変換を行うことなく、高速な乗算処理が可能となる。
【０１０９】
更に、例えば、汎用レジスターＲＧ６、ＲＧ７の一方に、数値「１」を浮動小数点フォーマットで表現した即値を設定し、汎用レジスターＲＧ６、ＲＧ７の他方に、浮動小数点フォーマットの即値ＶＡＬを設定することで、次の実行サイクル後には、アキュムレーターＲＧ１６、ＲＧ２６には、即値ＶＡＬを固定小数点フォーマットで表現したデータが格納される。これにより、固定小数点フォーマットの変換処理を実現できる。
【０１１０】
図１２に、図７の演算処理部４０の動作例のフロー図を示す。
【０１１１】
演算処理部４０において、処理ステップとして、第１の処理ユニット２００１が、汎用レジスターＲＧ４に設定された第１の設定データ（固定小数点フォーマット）と汎用レジスターＲＧ５に設定された第２の設定データ（固定小数点フォーマット）とを用いた乗算処理の結果を、固定小数点フォーマットの第１の乗算データとして出力すると共に、第２の処理ユニット２００２が、汎用レジスターＲＧ４に設定された第１の設定データと汎用レジスターＲＧ５に設定された第２の設定データとを用いた乗算処理の結果を、浮動小数点フォーマットの第２の乗算データとして出力する（ステップＳ１０）。
【０１１２】
なお、この処理ステップでは、更に、第３の処理ユニット２００３が、汎用レジスターＲＧ６に設定された第３の設定データ（浮動小数点フォーマット）と汎用レジスターＲＧ７に設定された第４の設定データ（浮動小数点フォーマット）とを用いた乗算処理の結果を、固定小数点フォーマットの第３の乗算データとして出力すると共に、第４の処理ユニット２００４が、汎用レジスターＲＧ６に設定された第３の設定データと汎用レジスターＲＧ７に設定された第４の設定データとを用いた乗算処理の結果を、浮動小数点フォーマットの第４の乗算データとして出力する（ステップＳ１０）。
【０１１３】
そして、演算処理部４０において、格納ステップとして、第１の処理ユニット２００１が第１の乗算データをアキュムレーターＲＧ１４、ＲＧ２４（第１の出力レジスター）に格納すると共に、第２の処理ユニット２００２が第２の乗算データをアキュムレーターＲＧ３４、ＲＧ４４（第２の出力レジスター）に格納する（ステップＳ１２）。
【０１１４】
なお、この格納ステップでは、更に、第３の処理ユニット２００３が第３の乗算データをアキュムレーターＲＧ１６、ＲＧ２６（第３の出力レジスター）に格納すると共に、第４の処理ユニット２００４が第４の乗算データをアキュムレーターＲＧ３６、ＲＧ４６（第４の出力レジスター）に格納し（ステップＳ１２）、一連の処理を終了する（エンド）。
【０１１５】
図１３（Ａ）、図１３（Ｂ）に、図２のＣＰＵ１００の動作例の説明図を示す。図１３（Ａ）は、ＣＰＵ１００のプログラムの一例を表す。ここで、ＣＰＵ１００は、図７に示す構成を有しているものとする。図１３（Ａ）において、命令ＬＤＩは、指定された即値を汎用レジスターに転送する転送命令である。図１３（Ｂ）は、ＣＰＵ１００の動作例のタイミング図を表す。なお、図１３（Ｂ）は、演算による遅延を無視し、各汎用レジスターと各アキュムレーターの状態を模式的に表す。
【０１１６】
例えば図１３（Ａ）に示すように、固定小数点フォーマットの設定データを分割して即値（ＶＡＬ１、ＶＡＬ２）として汎用レジスターＲＧ４、ＲＧ５に転送し、浮動小数点フォーマットの設定データを分割して即値（ＶＡＬ３、ＶＡＬ４）として汎用レジスターＲＧ６、ＲＧ７に転送したときの第１〜第４の処理ユニット２００１〜２００４による処理例を考える。このデータ転送命令列の直前において、汎用レジスターＲＧ４、ＲＧ５、ＲＧ６、ＲＧ７、アキュムレーターＲＧ１４、ＲＧ２４、ＲＧ３４、ＲＧ４４、ＲＧ１６、ＲＧ２６、ＲＧ３６、ＲＧ４６が初期化され、各汎用レジスター及び各アキュムレーターのデータが「０」であるものとする。
【０１１７】
まず、実行サイクルＴ１において、汎用レジスターＲＧ４に即値ＶＡＬ１が設定される。これにより、実行サイクルＴ１では、第１の処理ユニット２００１は、汎用レジスターＲＧ４に設定されたＶＡＬ１と汎用レジスターＲＧ５に設定された「０」とを乗算した乗算演算結果「０」を、固定小数点フォーマットのデータとしてアキュムレーターＲＧ１４、ＲＧ２４に設定する。同様に、第２の処理ユニット２００２は、汎用レジスターＲＧ４に設定されたＶＡＬ１と汎用レジスターＲＧ５に設定された「０」とを乗算した乗算演算結果「０」を、浮動小数点フォーマットのデータとしてアキュムレーターＲＧ３４、ＲＧ４４に設定する。一方、第３の処理ユニット２００３及び第４の処理ユニット２００４の処理対象となる汎用レジスターＲＧ６、ＲＧ７の設定データは更新されないため、アキュムレーターＲＧ１６、ＲＧ２６、ＲＧ３６、ＲＧ４６のデータは、そのままである。
【０１１８】
次に、実行サイクルＴ２において、汎用レジスターＲＧ５に即値ＶＡＬ２が設定される。これにより、実行サイクルＴ２では、第１の処理ユニット２００１は、汎用レジスターＲＧ４に設定されたＶＡＬ１と汎用レジスターＲＧ５に設定されたＶＡＬ２とを乗算した乗算演算結果を、固定小数点フォーマットのデータとして分割して、アキュムレーターＲＧ１４にＲＥＳ１ｉｎｔ、アキュムレーターＲＧ２４にＲＥＳ２ｉｎｔを設定する。同様に、第２の処理ユニット２００２は、汎用レジスターＲＧ４に設定されたＶＡＬ１と汎用レジスターＲＧ５に設定されたＶＡＬ２とを乗算した乗算演算結果を、浮動小数点フォーマットのデータとして分割して、アキュムレーターＲＧ３４にＲＥＳ３ｆｌｏａｔ、アキュムレーターＲＧ４４にＲＥＳ４ｆｌｏａｔを設定する。一方、第３の処理ユニット２００３及び第４の処理ユニット２００４の処理対象となる汎用レジスターＲＧ６、ＲＧ７の設定データは更新されないため、アキュムレーターＲＧ１６、ＲＧ２６、ＲＧ３６、ＲＧ４６のデータは、そのままである。
【０１１９】
続いて、実行サイクルＴ３において、汎用レジスターＲＧ６に即値ＶＡＬ３が設定される。これにより、実行サイクルＴ３では、第３の処理ユニット２００３は、汎用レジスターＲＧ６に設定されたＶＡＬ３と汎用レジスターＲＧ７に設定された「０」とを乗算した乗算演算結果「０」を、固定小数点フォーマットのデータとしてアキュムレーターＲＧ１６、ＲＧ２６に設定する。同様に、第４の処理ユニット２００４は、汎用レジスターＲＧ６に設定されたＶＡＬ３と汎用レジスターＲＧ７に設定された「０」とを乗算した乗算演算結果「０」を、浮動小数点フォーマットのデータとしてアキュムレーターＲＧ３６、ＲＧ４６に設定する。一方、第１の処理ユニット２００１及び第２の処理ユニット２００２の処理対象となる汎用レジスターＲＧ４、ＲＧ５の設定データは更新されないため、アキュムレーターＲＧ１４、ＲＧ２４、ＲＧ３４、ＲＧ４４のデータは、そのままである。
【０１２０】
次に、実行サイクルＴ４において、汎用レジスターＲＧ７に即値ＶＡＬ４が設定される。これにより、実行サイクルＴ４では、第３の処理ユニット２００３は、汎用レジスターＲＧ６に設定されたＶＡＬ３と汎用レジスターＲＧ７に設定されたＶＡＬ４とを乗算した乗算演算結果を、固定小数点フォーマットのデータとして分割して、アキュムレーターＲＧ１６にＲＥＳ５ｉｎｔ、アキュムレーターＲＧ２６にＲＥＳ６ｉｎｔを設定する。同様に、第４の処理ユニット２００４は、汎用レジスターＲＧ６に設定されたＶＡＬ３と汎用レジスターＲＧ７に設定されたＶＡＬ４とを乗算した乗算演算結果を、浮動小数点フォーマットのデータとして分割して、アキュムレーターＲＧ３６にＲＥＳ７ｆｌｏａｔ、アキュムレーターＲＧ４６にＲＥＳ８ｆｌｏａｔを設定する。一方、第１の処理ユニット２００１及び第２の処理ユニット２００２の処理対象となる汎用レジスターＲＧ４、ＲＧ５の設定データは更新されないため、アキュムレーターＲＧ１４、ＲＧ２４、ＲＧ３４、ＲＧ４４のデータは、そのままである。
【０１２１】
このように、実施形態１においては、汎用レジスターにデータを設定することで、次々にアキュムレーターに格納されるデータが更新される。
【０１２２】
図１４に、図６及び図７の演算処理部４０の動作説明図を示す。
【０１２３】
図１４に示すように、共通の汎用レジスターの設定データに対して、互いに異なる演算処理を同時に行うことができ、同じ汎用レジスターの設定データに対する複数種類の演算処理結果を同時に得られることができるようになる。従って、所望の演算処理ユニットに割り当てられた汎用レジスターにデータを設定して、当該演算処理ユニットに割り当てられたアキュムレーターから演算処理結果を読み出すことで、演算命令を指定する必要がなくなり、コード効率を向上させることができる。しかも、実施形態１では、同じ汎用レジスターの設定データに対して、固定小数点フォーマットの乗算結果と浮動小数点フォーマットの乗算結果とを同時に得ることができるので、煩雑なフォーマット変換を指定する命令を不要にできる。
【０１２４】
従って、実施形態１によれば、コードの難読性を高めて、逆アセンブルを困難にして安全性の高いコードを生成することができ、リバースエンジニアリング防止やセキュリティーの向上に寄与できる効果が得られることを意味する。
【０１２５】
このように、実施形態１によれば、プログラムの命令列に乗算命令を含まなくても、入力レジスターとして割り当てられた汎用レジスターにデータを設定するだけで、実行サイクル毎に、異なるフォーマットの乗算結果を得ることができるようになる。即ち、ＣＰＵ１００は、演算処理部４０が有する演算処理ユニットが行う演算処理に対応する算術演算命令、論理演算命令及びシフト演算命令をオペコードに持つ必要がなくなり、少ないビットフィールドを他の命令に割り当てることができ、極めてコード効率を高くすることができるようになる。
【０１２６】
図１５に、実施形態１におけるＣＰＵ１００の命令セットの一例の説明図を示す。図１５は、ニーモニック毎に、１６ビットのオペコードと、処理内容の説明を表す。
【０１２７】
図１５は、ＣＰＵ１００の命令セットを表しており、ＣＰＵ１００が実行可能な全命令を列挙したものである。即ち、ＣＰＵ１００の命令セットは、データ転送命令群１５０と、条件分岐命令群（より具体的には、無条件分岐命令群１６０と条件分岐命令群１７０）からなり、演算処理部４０において行われる算術演算命令、論理演算命令及びシフト演算命令が省略されている。
【０１２８】
ここで、データ転送命令群１５０は、レジスター間転送命令と、レジスター・メモリー間転送命令とを有する。
【０１２９】
レジスター間転送命令は、ＬＤＲ命令からなる。ＬＤＲ命令は、オペコード部で転送元として指定された転送元レジスターから、該オペコード部で転送先として指定された転送先レジスターへの転送を指示する命令である。レジスター・メモリー間転送命令は、ＬＤＩ命令、ＬＤＭ命令、ＳＴＭ命令、ＬＤＵ命令、ＳＴＵ命令からなる。ＬＤＩ命令は、オペコード部で指定された即値を、該オペコード部で指定された転送先レジスターへの転送を指示する命令である。ＬＤＭ命令は、オペコード部で指定された転送元のメモリー上のアドレスに格納されたデータを、該オペコード部で指定された転送先レジスターへの転送を指示する命令である。ＳＴＭ命令は、オペコード部で指定された転送元レジスターに設定されたデータを、該オペコード部で指定された転送先のメモリー上のアドレスへの転送を指示する命令である。ＬＤＵ命令は、オペコード部で指定された転送元レジスターの値をアドレスとしてメモリーから読み出し、該オペコード部で指定された転送先レジスターへの転送を指示する命令である。ＳＴＵ命令は、オペコード部で指定された転送元レジスターに設定されたデータを、転送先レジスターの値をアドレスとしたメモリーの記憶領域への転送を指示する命令である。
【０１３０】
無条件分岐命令群１６０は、ＪＰ命令、ＪＳ命令、ＪＰＯ命令、ＪＳＯ命令、ＪＰＲ命令、ＪＳＲ命令、ＲＴＳ命令、及びＮＯＰ命令からなる。ＪＰ命令は、オペコード部で指定された分岐先絶対アドレスに分岐を指示する命令である。ＪＳ命令は、サブルーチン分岐命令であり、オペコード部で指定されたサブルーチン分岐先絶対アドレスにサブルーチン分岐する命令である。ＪＰＯ命令は、例えば現在の実行アドレスを基準に、オペコード部で指定される相対ジャンプ先アドレスだけ進んだ分岐先アドレス又は相対ジャンプ先アドレスだけ戻った分岐先アドレスへの分岐を指示する命令である。ＪＰＲ命令は、オペコード部で指定されるレジスターに格納される値を分岐先アドレスとして分岐を指示する命令である。ＪＳＲ命令は、オペコード部で指定されるレジスターに格納される値を相対値として、例えば現在の実行アドレスを基準に、該相対値だけ進んだ分岐先アドレス又は該相対値だけ戻った分岐先アドレスへの分岐を指示する命令である。ＲＴＳ命令は、サブルーチン復帰命令である。ＮＯＰ命令は、何も命令を実行しないことを指示する命令である。
【０１３１】
条件分岐命令群１７０は、ＥＱＲ命令、ＥＱＩ命令、ＮＥＲ命令、ＮＥＩ命令、ＧＴＲ命令、ＧＴＩ命令、ＬＴＲ命令、及びＬＴＩ命令からなる。
【０１３２】
ＥＱＲ命令は、オペコード部で指定された基準レジスターに格納された値と該オペコード部で指定された比較レジスターに格納された値とが一致したときに、例えばオペランド部で指定された分岐先アドレスへの分岐を指示する命令である。ＥＱＩ命令は、オペコード部で指定された基準レジスターに格納された値と該オペコード部で指定された即値とが一致したときに、例えばオペランド部で指定された分岐先アドレスへの分岐を指示する命令である。
【０１３３】
ＮＥＲ命令は、オペコード部で指定された基準レジスターに格納された値と該オペコード部で指定された比較レジスターに格納された値とが不一致のときに、例えばオペランド部で指定された分岐先アドレスへの分岐を指示する命令である。ＮＥＩ命令は、オペコード部で指定された基準レジスターに格納された値と該オペコード部で指定された即値とが不一致のときに、例えばオペランド部で指定された分岐先アドレスへの分岐を指示する命令である。
【０１３４】
ＧＴＲ命令は、オペコード部で指定された基準レジスターに格納された値が該オペコード部で指定された比較レジスターに格納された値より大きいときに、例えばオペランド部で指定された分岐先アドレスへの分岐を指示する命令である。ＧＴＩ命令は、オペコード部で指定された基準レジスターに格納された値が該オペコード部で指定された即値より大きいときに、例えばオペランド部で指定された分岐先アドレスへの分岐を指示する命令である。
【０１３５】
ＬＴＲ命令は、オペコード部で指定された基準レジスターに格納された値が該オペコード部で指定された比較レジスターに格納された値より小さいときに、例えばオペランド部で指定された分岐先アドレスへの分岐を指示する命令である。ＬＴＩ命令は、オペコード部で指定された基準レジスターに格納された値が該オペコード部で指定された即値より小さいときに、例えばオペランド部で指定された分岐先アドレスへの分岐を指示する命令である。
【０１３６】
このように実施形態１では、ＣＰＵ１００の命令セットにおいて、データ転送命令群１５０と、無条件分岐命令群１６０と、条件分岐命令群１７０のみが規定されている。しかしながら、上記のような演算処理部４０を備えることにより、所与の実行サイクル毎に、算術演算結果、論理演算結果及びシフト演算結果を得ることができる。即ち、ＣＰＵ１００の命令デコード部６０は、算術演算命令、論理演算命令及びシフト演算命令を除く、データ転送命令、及び分岐命令（無条件分岐命令、条件分岐命令）をデコードする。しかも、命令デコード部６０のデコード結果にかかわらず、演算処理部４０が有する複数の演算処理ユニットは、実行サイクル毎に、各演算処理ユニットの処理結果を、対応するアキュムレーターに格納する。これにより、命令デコード部６０が簡素化されると共に、算術演算命令、論理演算命令及びシフト演算命令をオペコードに持つ必要がなくなり、少ないビットフィールドを他の命令に割り当てることができ、極めてコード効率を高くすることができるようになる。
【０１３７】
また、算術演算命令、論理演算命令及びシフト演算命令をオペコードに持つ必要がなくなるため、ＣＰＵ１００を実行するプログラムのコードは、従来のコードと比較して、コードの難読性を高めて、逆アセンブルを困難にして安全性の高いコードを生成することができる。この結果、リバースエンジニアリング防止やセキュリティーの向上に寄与できるようになる。
【０１３８】
〔実施形態２〕
なお、本発明に係るＣＰＵは、図７に示す構成に限定されるものではなく、第２の処理ユニット２００２及び第３の処理ユニット２００３の少なくとも一方が、乗算ユニットを含む構成であってもよい。以下では、第２の処理ユニット２００２が、浮動小数点乗算ユニットを含み、第３の処理ユニット２００３が、固定小数点乗算ユニットを含む例について説明する。
【０１３９】
図１６に、本発明に係る実施形態２における汎用レジスター部２０、演算処理部４０及びアキュムレーター部３０の構成例のブロック図を示す。図１６において、図７と同一部分には同一符号を付し、適宜説明を省略する。
【０１４０】
図１６に示す構成が図７に示す構成と異なる点は、第２の処理ユニット２００２が、浮動小数点出力フォーマット変換部４２１に代えて浮動小数点乗算演算を行う浮動小数点乗算ユニット２５０（第２の浮動小数点乗算ユニット）を含み、第３の処理ユニット２００３が、固定小数点出力フォーマット変換部４２２に代えて固定小数点乗算演算を行う固定小数点乗算ユニット２６０（第３の固定小数点乗算ユニット）を含む点である。実施形態２における情報処理装置におけるその他の構成については、実施形態１と共通であるため、図示及び説明を省略する。
【０１４１】
浮動小数点乗算ユニット２５０は、演算処理ユニット４０３と並列動作可能に設けられ、汎用レジスターＲＧ４に設定された第１の設定データと汎用レジスターＲＧ５に設定された第２の設定データとを用いた浮動小数点乗算処理を行い、第２の乗算データとして出力する。固定小数点乗算ユニット２６０は、演算処理ユニット４０４と並列動作可能に設けられ、汎用レジスターＲＧ６に設定された第３の設定データと汎用レジスターＲＧ７に設定された第４の設定データとを用いた固定小数点乗算処理を行い、第４の乗算データとして出力する。
【０１４２】
図１７に、図１６の第２の処理ユニットの構成例のブロック図を示す。図１７において、図１６と同一部分には同一符号を付し、適宜説明を省略する。
【０１４３】
実施形態２における第２の処理ユニット２００２は、第１の浮動小数点入力フォーマット変換部２５２と、第２の浮動小数点入力フォーマット変換部２５４と、浮動小数点乗算ユニット２５０とを含む。第１の浮動小数点入力フォーマット変換部２５２は、汎用レジスターＲＧ４に設定された固定小数点フォーマットの第１の設定データを、浮動小数点フォーマットの第１の入力データに変換する。第２の浮動小数点入力フォーマット変換部２５４は、汎用レジスターＲＧ５に設定された固定小数点フォーマットの第２の設定データを、浮動小数点フォーマットの第２の入力データに変換する。浮動小数点乗算ユニット２５０は、第１の入力データと第２の入力データとを用いた浮動小数点乗算処理を行い、浮動小数点フォーマットの第２の乗算データを出力し、アキュムレーターＲＧ３４、ＲＧ４４に格納する。
【０１４４】
図１８に、図１６の第３の処理ユニットの構成例のブロック図を示す。図１８において、図１６と同一部分には同一符号を付し、適宜説明を省略する。
【０１４５】
実施形態２における第３の処理ユニット２００３は、第１の固定小数点入力フォーマット変換部２６２と、第２の固定小数点入力フォーマット変換部２６４と、固定小数点乗算ユニット２６０とを含む。第１の固定小数点入力フォーマット変換部２６２は、汎用レジスターＲＧ６に設定された浮動小数点フォーマットの第３の設定データを、固定小数点フォーマットの第３の入力データに変換する。第２の固定小数点入力フォーマット変換部２６４は、汎用レジスターＲＧ７に設定された浮動小数点フォーマットの第４の設定データを、固定小数点フォーマットの第４の入力データに変換する。固定小数点乗算ユニット２６０は、第３の入力データと第４の入力データとを用いた固定小数点乗算処理を行い、固定小数点フォーマットの第３の乗算データを出力し、アキュムレーターＲＧ１６、ＲＧ２６に格納する。
【０１４６】
以上説明したように、実施形態２においても、共通の汎用レジスターの設定データに対して、互いに異なる演算処理を同時に行うことができ、同じ汎用レジスターの設定データに対する複数種類の演算処理結果を同時に得られることができるようになる。しかも、同じ汎用レジスターの設定データに対して、固定小数点フォーマットの乗算結果と浮動小数点フォーマットの乗算結果とを同時に得ることができるので、コード効率を向上させることができ、上記の乗算処理を指定する命令を不要にできる。
【０１４７】
更に、実施形態２においても、実施形態１と同様に、プログラムの命令列に乗算命令を含まなくても、入力レジスターとして割り当てられた汎用レジスターにデータを設定するだけで、実行サイクル毎に、異なるフォーマットの乗算結果を得ることができるようになる。即ち、ＣＰＵ１００は、演算処理部４０が有する演算処理ユニットが行う演算処理に対応する算術演算命令、論理演算命令及びシフト演算命令をオペコードに持つ必要がなくなり、少ないビットフィールドを他の命令に割り当てることができ、極めてコード効率を高くすることができるようになる。
【０１４８】
〔応用例〕
上記の実施形態１又は実施形態２におけるＣＰＵは、同一の設定データに対して互いに異なる２種類のフォーマットの乗算結果を同時に出力できるため、次のような応用例に適用した場合に、極めて高いコード効率で、高いスループットを実現できる。
【０１４９】
図１９に、実施形態１又は実施形態２におけるＣＰＵが適用される第１の応用例の説明図を示す。
【０１５０】
第１の応用例では、画面内の「白とび」や「黒つぶれ」を防ぐために、輝度信号が上限に近い領域（白付近）、下限に近い領域（黒領域）の画像信号に対して画像処理を行うものとする。図１９は、縦軸にフィルター処理等の乗算演算結果、横軸に画面のｘ座標を表す。
【０１５１】
この場合、閾値Ｌ１以上の輝度を有する画像信号、又は閾値Ｌ２以下の輝度を有する画像信号に対して、所与の画像処理を施す。このとき、この画像処理の結果、同じ設定データにして固定小数点フォーマットの乗算結果と、浮動小数点フォーマットの乗算結果とが得られる。
【０１５２】
ここで、固定小数点フォーマットの乗算結果を画像処理の正確な数値として扱い、この数値のおおよその大きさを浮動小数点フォーマットの乗算結果の指数部より判断する。そして、この指数部をテーブルのキーとして参照し、テーブルから参照された値を用いて「白とび」又は「黒つぶれ」を防ぐ画像処理を施すことができる。
【０１５３】
この第１の応用例では、同じ設定データに対して、固定小数点フォーマットの乗算結果と浮動小数点フォーマットの乗算結果とを同時に得られるので、固定小数点フォーマットの乗算結果を正確な演算結果として扱い、浮動小数点フォーマットの乗算結果を正確な演算結果のレンジの判別として扱う。こうすることで、不要なフォーマット変換を行うことなく、上記の画像処理のスループットを向上させることが可能となる。
【０１５４】
図２０に、実施形態１又は実施形態２におけるＣＰＵが適用される第２の応用例の説明図を示す。
【０１５５】
第２の応用例では、確率過程（マルコフモデル）の計算等、乗算演算を繰り返すモデルの計算を行うものとする。図２０は、横軸に時間軸をとり、状態遷移の様子を表し、例えば時刻ｔ＝０における状態「１」から時刻ｔ＝１における状態「１」への状態遷移は、確率Ｐ０であり、時刻ｔ＝０における状態「１」から時刻ｔ＝１における状態「２」への状態遷移は、確率（１−Ｐ０）であることを示す。従って、時刻ｔ＝０における状態「１」から時刻ｔ＝２における状態「３」への遷移確率は、（１−Ｐ０）×（１−Ｐ１）である。このように、各時刻における状態への遷移確率は、乗算演算を繰り返すことになる。
【０１５６】
従って、このような確率過程の計算で対数をとって加算する処理を行う場合に比べて、実施形態１又は実施形態２では、浮動小数点乗算演算を繰り返し、最後に固定小数点フォーマットの乗算結果を取り出すようにすればよい。
【０１５７】
この第２の応用例では、同じ設定データに対して、固定小数点フォーマットの乗算結果と浮動小数点フォーマットの乗算結果とを同時に得られるので、乗算演算を繰り返す場合では、オーバーフローを発生しない浮動小数点フォーマットの乗算結果を繰り返し、最終的な数値を固定小数点フォーマットの乗算結果から取り出す。こうすることで、不要なフォーマット変換を行うことなく、乗算演算を繰り返す処理のスループットを向上させることが可能となる。
【０１５８】
２．  電子機器
上記のいずれかの実施形態におけるＣＰＵは、プロジェクター等の電子機器に搭載することができる。なお、以下では上記のいずれかの実施形態における電子機器がプロジェクターである例について説明するが、上記のいずれかの実施形態におけるＣＰＵが適用される電子機器がプロジェクターに限定されるものではなく、種々の電子機器に適用できることは言うまでもない。
【０１５９】
図２１に、本発明に係る電子機器としてのプロジェクターを含む画像表示システムの構成例のブロック図を示す。
【０１６０】
画像表示システム３００は、プロジェクター（広義には画像表示装置）３１０と、スクリーンＳＣＲとを含む。プロジェクター３１０は、入力画像信号に基づいて図示しない光源からの光を変調し、変調後の光をスクリーンＳＣＲに投射することで画像を表示する。
【０１６１】
このプロジェクター３１０は、画像処理装置３２０（広義には画像処理部）と、投射装置４００（広義には投射部、画像表示部）とを含む。画像処理装置３２０は、入力画像信号を補正し、補正後の画像信号を投射装置４００に出力する。このような画像処理装置３２０が行う補正処理としては、例えばエッジ強調処理、ディテール強調処理や階調補正処理等がある。投射装置４００は、画像処理装置３２０からの画像信号に基づいて変調した光をスクリーンＳＣＲに投射する。
【０１６２】
図２２に、図２１の画像処理装置３２０のハードウェア構成例のブロック図を示す。
【０１６３】
画像処理装置３２０は、ＣＰＵ３２２、読み出し専用メモリー（Read Only Memory：ＲＯＭ）３２４、ランダムアクセスメモリー（Random Access Memory：ＲＡＭ）３２６、Ｉ／Ｏ（Input/Output）回路３２８、バス３２９を有し、バス３２９を介して、ＣＰＵ３２２、ＲＯＭ３２４、ＲＡＭ３２６、及びＩ／Ｏ回路３２８が電気的に相互に接続されている。
【０１６４】
例えばＲＯＭ３２４又はＲＡＭ３２６には、画像処理装置３２０の機能を実現するプログラムやデータが記憶される。このプログラムは、図１５に示す命令セットで規定されたオペコード部と該オペコードに対応したオペランド部とを有する命令データ列である。ＲＯＭ３２４又はＲＡＭ３２６に格納されるデータは、この命令データ列を構成する命令データにより参照される。
【０１６５】
ＣＰＵ３２２は、上記のいずれかの実施形態における情報処理装置としてのＣＰＵ１００の構成及び機能を有する。ＣＰＵ３２２は、ＲＯＭ３２４又はＲＡＭ３２６に記憶されたプログラムを読み出し、該プログラムに対応した処理を実行することで、画像処理装置３２０の機能をソフトウェア処理で実現できる。なお、ＲＡＭ３２６は、ＣＰＵ３２２による処理の作業エリアとして用いられたり、Ｉ／Ｏ回路３２８やＲＯＭ３２４のバッファエリアとして用いられたりする。
【０１６６】
Ｉ／Ｏ回路３２８は、図示しない画像信号生成装置からの画像信号の入力インターフェイス処理や、画像処理装置３２０から投射装置４００への画像信号の出力インターフェイス処理等を行う。
【０１６７】
画像処理装置３２０は、図２２に示す構成により、ＲＯＭ３２４又はＲＡＭ３２６に格納されたプログラムを読み出し、該プログラムに対応した処理を実行することで、入力画像信号に対して例えばエッジ強調処理、ディテール強調処理や階調補正処理等を行った画像信号をソフトウェア処理で生成する。ここでは、算術演算命令、論理演算命令及びシフト演算命令がない命令データ列で算術演算処理等を実現できるため、極めて高いコード効率で、コードの難読性を高めて、安全性の高いコードで、例えばエッジ強調処理、ディテール強調処理や階調補正処理等の画像処理を行うことができるようになる。このような画像処理装置３２０によって処理された画像信号は、投射装置４００に送られる。
【０１６８】
図２３に、図２１の投射装置４００の構成例の図を示す。図２３では、投射装置４００が、いわゆる３板式の液晶プロジェクターにより構成されるものとして説明するが、本発明に係る投射装置がいわゆる３板式の液晶プロジェクターにより構成されるものに限定されるものではない。即ち、以下では、１画素がＲ成分のサブ画素、Ｇ成分のサブ画素、及びＢ成分のサブ画素により構成されるものとして説明するが、１画素を構成するサブ画素数（色成分数）に限定されるものではない。
【０１６９】
また、図２３では、画像処理装置３２０から入力される輝度信号Ｙ、色差信号Ｕ、Ｖが、ＲＧＢの各色成分の画像信号に変換された後、色成分毎に光源からの光を変調するものとする。この場合、ＲＧＢ信号への変換回路は、画像処理装置３２０が備えていてもよいし、投射装置４００が備えていてもよい。
【０１７０】
投射装置４００は、光源４１０、インテグレーターレンズ４１２、４１４、偏光変換素子４１６、重畳レンズ４１８、Ｒ用ダイクロイックミラー４２０Ｒ、Ｇ用ダイクロイックミラー４２０Ｇ、反射ミラー４２２、Ｒ用フィールドレンズ４２４Ｒ、Ｇ用フィールドレンズ４２４Ｇ、Ｒ用液晶パネル４３０Ｒ（第１の光変調素子）、Ｇ用液晶パネル４３０Ｇ（第２の光変調素子）、Ｂ用液晶パネル４３０Ｂ（第３の光変調素子）、リレー光学系４４０、クロスダイクロイックプリズム４６０、投射レンズ４７０を含む。Ｒ用液晶パネル４３０Ｒ、Ｇ用液晶パネル４３０Ｇ及びＢ用液晶パネル４３０Ｂとして用いられる液晶パネルは、透過型の液晶表示装置である。リレー光学系４４０は、リレーレンズ４４２、４４４、４４６、反射ミラー４４８、４５０を含む。
【０１７１】
光源４１０は、例えば超高圧水銀ランプにより構成され、少なくともＲ成分の光、Ｇ成分の光、Ｂ成分の光を含む光を射出する。インテグレーターレンズ４１２は、光源４１０からの光を複数の部分光に分割するための複数の小レンズを有する。インテグレーターレンズ４１４は、インテグレーターレンズ４１２の複数の小レンズに対応する複数の小レンズを有する。重畳レンズ４１８は、インテグレーターレンズ４１２の複数の小レンズから射出される部分光を液晶パネル上で重畳する。
【０１７２】
また偏光変換素子４１６は、偏光ビームスプリッターアレイとλ／２板とを有し、光源４１０からの光を略一種類の偏光光に変換する。偏光ビームスプリッターアレイは、インテグレーターレンズ４１２により分割された部分光をｐ偏光とｓ偏光に分離する偏光分離膜と、偏光分離膜からの光の向きを変える反射膜とを、交互に配列した構造を有する。偏光分離膜で分離された２種類の偏光光は、λ／２板によって偏光方向が揃えられる。この偏光変換素子４１６によって略一種類の偏光光に変換された光が、重畳レンズ４１８に照射される。
【０１７３】
重畳レンズ４１８からの光は、Ｒ用ダイクロイックミラー４２０Ｒに入射される。Ｒ用ダイクロイックミラー４２０Ｒは、Ｒ成分の光を反射して、Ｇ成分及びＢ成分の光を透過させる機能を有する。Ｒ用ダイクロイックミラー４２０Ｒを透過した光は、Ｇ用ダイクロイックミラー４２０Ｇに照射され、Ｒ用ダイクロイックミラー４２０Ｒにより反射した光は反射ミラー４２２により反射されてＲ用フィールドレンズ４２４Ｒに導かれる。
【０１７４】
Ｇ用ダイクロイックミラー４２０Ｇは、Ｇ成分の光を反射して、Ｂ成分の光を透過させる機能を有する。Ｇ用ダイクロイックミラー４２０Ｇを透過した光は、リレー光学系４４０に入射され、Ｇ用ダイクロイックミラー４２０Ｇにより反射した光はＧ用フィールドレンズ４２４Ｇに導かれる。
【０１７５】
リレー光学系４４０では、Ｇ用ダイクロイックミラー４２０Ｇを透過したＢ成分の光の光路長と他のＲ成分及びＧ成分の光の光路長との違いをできるだけ小さくするために、リレーレンズ４４２、４４４、４４６を用いて光路長の違いを補正する。リレーレンズ４４２を透過した光は、反射ミラー４４８によりリレーレンズ４４４に導かれる。リレーレンズ４４４を透過した光は、反射ミラー４５０によりリレーレンズ４４６に導かれる。リレーレンズ４４６を透過した光は、Ｂ用液晶パネル４３０Ｂに照射される。
【０１７６】
Ｒ用フィールドレンズ４２４Ｒに照射された光は、平行光に変換されてＲ用液晶パネル４３０Ｒに入射される。Ｒ用液晶パネル４３０Ｒは、光変調素子（光変調部）として機能し、Ｒ用画像信号に基づいて透過率（通過率、変調率）が変化するようになっている。従って、Ｒ用液晶パネル４３０Ｒに入射された光（第１の色成分の光）は、Ｒ用画像信号に基づいて変調され、変調後の光がクロスダイクロイックプリズム４６０に入射される。
【０１７７】
Ｇ用フィールドレンズ４２４Ｇに照射された光は、平行光に変換されてＧ用液晶パネル４３０Ｇに入射される。Ｇ用液晶パネル４３０Ｇは、光変調素子（光変調部）として機能し、Ｇ用画像信号に基づいて透過率（通過率、変調率）が変化するようになっている。従って、Ｇ用液晶パネル４３０Ｇに入射された光（第２の色成分の光）は、Ｇ用画像信号に基づいて変調され、変調後の光がクロスダイクロイックプリズム４６０に入射される。
【０１７８】
リレーレンズ４４２、４４４、４４６で平行光に変換された光が照射されるＢ用液晶パネル４３０Ｂは、光変調素子（光変調部）として機能し、Ｂ用画像信号に基づいて透過率（通過率、変調率）が変化するようになっている。従って、Ｂ用液晶パネル４３０Ｂに入射された光（第３の色成分の光）は、Ｂ用画像信号に基づいて変調され、変調後の光がクロスダイクロイックプリズム４６０に入射される。
【０１７９】
Ｒ用液晶パネル４３０Ｒ、Ｇ用液晶パネル４３０Ｇ、Ｂ用液晶パネル４３０Ｂは、それぞれ同様の構成を有している。各液晶パネルは、電気光学物質である液晶を一対の透明なガラス基板に密閉封入したものであり、例えばポリシリコン薄膜トランジスタをスイッチング素子として、各サブ画素の画像信号に対応して各色光の通過率を変調する。
【０１８０】
ここでは、画像処理装置３２０が、１画素を構成する色成分毎に、入力画像信号に対して上記の例えばエッジ強調処理、ディテール強調処理や階調補正処理等を行った画像信号を生成する。そして、投射装置４００では、１画素を構成する色成分毎に光変調素子としての液晶パネルが設けられ、各液晶パネルの透過率がサブ画素に対応した画像信号により制御される。即ち、Ｒ成分のサブ画素用の画像信号が、Ｒ用液晶パネル４３０Ｒの透過率（通過率、変調率）の制御に用いられ、Ｇ成分のサブ画素用の画像信号が、Ｇ用液晶パネル４３０Ｇの透過率の制御に用いられ、Ｂ成分のサブ画素用の画像信号が、Ｂ用液晶パネル４３０Ｂの透過率の制御に用いられる。
【０１８１】
クロスダイクロイックプリズム４６０は、Ｒ用液晶パネル４３０Ｒ、Ｇ用液晶パネル４３０Ｇ及びＢ用液晶パネル４３０Ｂからの入射光を合成した合成光を出射光として出力する機能を有する。投射レンズ４７０は、出力画像をスクリーンＳＣＲ上に拡大して結像させるレンズである。
【０１８２】
この画像表示システム３００では、このような構成を有する投射装置４００を制御して、上記の階調補正処理等において補正された画像信号に基づいてスクリーンＳＣＲに画像を表示することができる。
【０１８３】
以上のように、プロジェクター３１０は、プログラム及びデータを記憶するメモリーと、このプログラム及びデータに対応した演算処理を行うＣＰＵ３２２（又はＣＰＵ３２２を有する画像処理装置３２０）とを含む。これにより、極めて高いコード効率で、複雑な演算処理を実現する一方で、リバースエンジニアリング防止やセキュリティー防止が可能なプロジェクター３１０又は該プロジェクター３１０を含む画像表示システム３００を提供できるようになる。
【０１８４】
以上、本発明に係る情報処理装置、演算処理方法及び電子機器等を上記の実施形態に基づいて説明したが、本発明は上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【０１８５】
（１）上記の各実施形態では、浮動小数点フォーマットとしてＩＥＥＥ（Institute of Electrical and Electronics Engineers）７５４規格の単精度又は倍精度のフォーマットを採用することができるが、本発明はこれに限定されるものではなく、固定小数点フォーマットとは異なる数値表現が可能なフォーマットであればよい。
【０１８６】
（２）上記の各実施形態では、汎用レジスターが、演算処理部を構成する演算処理ユニットのいずれかに予め割り当てられているものとして説明したが、各汎用レジスターが、演算処理部が有する複数の演算処理ユニットのいずれかに動的に割り当てられるようにしてもよい。
【０１８７】
（３）上記の各実施形態では、アキュムレーターが、演算処理部を構成する演算処理ユニットのいずれかに予め割り当てられているものとして説明したが、各アキュムレーターが、演算処理部が有する複数の演算処理ユニットのいずれかに動的に割り当てられるようにしてもよい。
【０１８８】
（４）上記の各実施形態で説明した汎用レジスターの数やアキュムレーターの数に、本発明が限定されるものではない。
【０１８９】
（５）上記の各実施形態では、演算処理ユニットが行う演算として図１４に示す算術演算、論理演算及びシフト演算を例に説明したが、本発明は、図１４に示す算術演算、論理演算及びシフト演算に限定されるものではない。例えば、演算処理ユニットが除算演算を行うようにしてもよい。
【０１９０】
（６）上記の各実施形態では、図１５に示す命令セットを例に説明したが、本発明は、図１５に示す命令セットに限定されるものではない。
【０１９１】
（７）上記の各実施形態では、本発明に係る情報処理装置が適用される電子機器としてプロジェクターを例に説明したが、本発明はこれに限定されるものではない。また、このプロジェクターにおいて、１画素を３つの色成分のサブ画素で構成されるものとして説明したが、本発明はこれに限定されるものではない。１画素を構成する色成分数が２、又は４以上であってもよい。更に、プロジェクターの光変調素子として透過型の液晶パネルを用いるものとして説明したが、本発明はこれに限定されるものではない。光変調部として、例えばＤＬＰ（Digital Light Processing)（登録商標）、ＬＣＯＳ（Liquid Crystal On Silicon）等を採用してもよい。更に、プロジェクターの光変調素子として、いわゆる３板式の透過型の液晶パネルを例に説明したが、単板式の液晶パネルや４板式以上の透過型の液晶パネルを採用してもよい。
【０１９２】
（８）上記の各実施形態において、本発明を、情報処理装置、演算処理方法及び電子機器として説明したが、本発明はこれに限定されるものではない。
【符号の説明】
【０１９３】
１０…情報処理装置、  ２０…汎用レジスター部、  ３０…アキュムレーター部、
４０…演算処理部、  ４０１〜４０１１…演算処理ユニット、
４２１…浮動小数点出力フォーマット変換部、
４２２…固定小数点出力フォーマット変換部、  ５０…レジスター部、
６０…命令デコード部、  ７０…バス制御部、  ８０…プログラムカウンター、
８２…スタックポインター、  ８４…オペコードレジスター、
８６…オペランドレジスター、  ９０…制御部、  １００，３２２…ＣＰＵ、
２００１…第１の処理ユニット、  ２００２…第２の処理ユニット、
２００３…第３の処理ユニット、  ２００４…第４の処理ユニット、
２１０…絶対値化回路、  ２１２…ビットサーチ回路、  ２１４，２２０…シフト回路、
２１６，２２４…丸め回路、  ２２２…符号生成回路、
２５０…浮動小数点乗算ユニット、
２５２…第１の浮動小数点入力フォーマット変換部、
２５４…第２の浮動小数点入力フォーマット変換部、
２６０…固定小数点乗算ユニット、
２６２…第１の固定小数点入力フォーマット変換部、
２６４…第２の固定小数点入力フォーマット変換部、  ３００…画像表示システム、
３１０…プロジェクター、  ３２０…画像処理装置、  ３２４…ＲＯＭ、
３２６…ＲＡＭ、  ３２８…Ｉ／Ｏ回路、  ３２９…バス、  ４００…投射装置、
４１０…光源、  ４１２，４１４…インテグレーターレンズ、  ４１６…偏光変換素子、
４１８…重畳レンズ、  ４２０Ｒ…Ｒ用ダイクロイックミラー、
４２０Ｇ…Ｇ用ダイクロイックミラー、  ４２２，４４８，４５０…反射ミラー、
４２４Ｒ…Ｒ用フィールドレンズ、  ４２４Ｇ…Ｇ用フィールドレンズ、
４３０Ｒ…Ｒ用液晶パネル、  ４３０Ｇ…Ｇ用液晶パネル、
４３０Ｂ…Ｂ用液晶パネル、  ４４０…リレー光学系、
４４２，４４４，４４６…リレーレンズ、  ４６０…クロスダイクロイックプリズム、
４７０…投射レンズ、  ＥＸＵ１…第１の演算処理ユニット、
ＥＸＵ２…第２の演算処理ユニット
【図１】
2010244451.tif 000003
【図２】
2010244451.tif 000004
【図３】
2010244451.tif 000005
【図４】
2010244451.tif 000006
【図５】
2010244451.tif 000007
【図６】
2010244451.tif 000008
【図７】
2010244451.tif 000009
【図８】
2010244451.tif 000010
【図９】
2010244451.tif 000011
【図１０】
2010244451.tif 000012
【図１１】
2010244451.tif 000013
【図１２】
2010244451.tif 000014
【図１３】
2010244451.tif 000015
【図１４】
2010244451.tif 000016
【図１５】
2010244451.tif 000017
【図１６】
2010244451.tif 000018
【図１７】
2010244451.tif 000019
【図１８】
2010244451.tif 000020
【図１９】
2010244451.tif 000021
【図２０】
2010244451.tif 000022
【図２１】
2010244451.tif 000023
【図２２】
2010244451.tif 000024
【図２３】
2010244451.tif 000025