図面 (/)

技術 情報処理装置、演算処理方法及び電子機器

出願人 セイコーエプソン株式会社
発明者 長谷川浩小山文夫
出願日 2009年1月29日 (10年6ヶ月経過) 出願番号 2009-017703
公開日 2010年8月12日 (9年0ヶ月経過) 公開番号 2010-176350
状態 特許登録済
技術分野 先行制御 データフローマシン
主要キーワード 排他的論理和否定 実行サイクル毎 スタックポインター 入力レジスター ボッチ 基準レジスタ 制御レジスター 出力レジスター
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2010年8月12日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (15)

課題

命令セットコード効率を向上させる情報処理装置演算処理方法及び電子機器等を提供する。

解決手段

情報処理装置10は、並列動作可能に構成された第1及び第2の演算処理ユニットEXU1、EXU2と、各入力レジスター設定データ読み出し及び書き込み可能に構成される複数の入力レジスターと、第1及び第2の演算処理ユニットEXU1、EXU2の処理結果が格納される複数の出力レジスターとを含む。複数の入力レジスターは、第1の演算処理ユニットEXU1に割り当てられる第1の入力レジスターと、第2の演算処理ユニットEXU2に割り当てられる第2の入力レジスターとを有し、複数の出力レジスターは、第1の演算処理ユニットEXU1に割り当てられる第1の出力レジスターと、第2の演算処理ユニットEXU2に割り当てられる第2の出力レジスターとを有する。

概要

背景

近年、マイクロプロセッサ広義には情報処理装置)が身の回りのあらゆる機器に組み込まれており、このマイクロプロセッサには、小型化、低コスト化低消費電力化、高機能化高性能化が求められている。マイクロプロセッサの高機能化や高性能化を図る技術については様々なものが考えられており、その1つとしてマイクロプロセッサの命令セット縮小することがある。

命令セットを縮小することは、CISC(Complex Instruction Set Computer)アーキテクチャーのマイクロプロセッサに対するRISC(Reduced Instruction Set Computer)アーキテクチャーの技術思想に相当する。即ち、命令セットを縮小することで、デコードする命令シンプルなものに限定して単純化することで高速化を図るものである。

命令セットを縮小すると、命令を表すオペコードビット数を減らすことができる。そうすると、例えばオペランドと呼ばれる、レジスターを指定するためのビット数を増やしてレジスター数を増加させたり、即値として命令に埋め込める最大値が大きくなって演算処理分岐処理が高速化できたりするメリットがある。

その一方、命令セットを縮小すると、CISCアーキテクチャーのマイクロプロセッサと同様の処理を実現しようとする場合にステップ数が多くなる上に、命令長を短くするとコード効率を向上させるのが困難になるという問題がある。

そこで、より一層処理を高速化するために、演算処理ユニット自体の高速化を図ることが考えられる。この演算処理ユニットの高速化を図る技術については、例えば特許文献1に開示されている。特許文献1には、アキュームレーターを介して数値演算を行うことが処理速度の低下の要因であると分析して、転送命令を用いることなくアキュームレーターと汎用レジスターとの間の転送をただちに行うことで、演算の高速化を図る技術が開示されている。

概要

命令セットのコード効率を向上させる情報処理装置、演算処理方法及び電子機器等を提供する。情報処理装置10は、並列動作可能に構成された第1及び第2の演算処理ユニットEXU1、EXU2と、各入力レジスター設定データ読み出し及び書き込み可能に構成される複数の入力レジスターと、第1及び第2の演算処理ユニットEXU1、EXU2の処理結果が格納される複数の出力レジスターとを含む。複数の入力レジスターは、第1の演算処理ユニットEXU1に割り当てられる第1の入力レジスターと、第2の演算処理ユニットEXU2に割り当てられる第2の入力レジスターとを有し、複数の出力レジスターは、第1の演算処理ユニットEXU1に割り当てられる第1の出力レジスターと、第2の演算処理ユニットEXU2に割り当てられる第2の出力レジスターとを有する。

目的

本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的の1つは、命令セットのコード効率を向上させる情報処理装置、演算処理方法及び電子機器等を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

第1の演算処理を行う第1の演算処理ユニットと、前記第1の演算処理ユニットと並列動作可能に構成され第2の演算処理を行う第2の演算処理ユニットと、各入力レジスター設定データ読み出し及び書き込み可能に構成される複数の入力レジスターと、前記第1の演算処理ユニットの処理結果及び前記第2の演算処理ユニットの処理結果が格納される複数の出力レジスターとを含み、前記複数の入力レジスターが、前記第1の演算処理ユニットに割り当てられる第1の入力レジスターと、前記第2の演算処理ユニットに割り当てられる第2の入力レジスターとを有し、前記複数の出力レジスターが、前記第1の演算処理ユニットに割り当てられる第1の出力レジスターと、前記第2の演算処理ユニットに割り当てられる第2の出力レジスターとを有し、所与実行サイクル毎に、前記第1の演算処理ユニットが、前記第1の入力レジスターの設定データを用いて前記第1の演算処理を行い、該第1の演算処理の処理結果を前記第1の出力レジスターに格納すると共に、前記第2の演算処理ユニットが、前記第2の入力レジスターの設定データを用いて前記第2の演算処理を行い、該第2の演算処理の処理結果を前記第2の出力レジスターに格納することを特徴とする情報処理装置

請求項2

請求項1において、フェッチされた命令データデコードする命令デコード部を含み、前記命令デコード部のデコード結果にかかわらず、前記第1の演算処理ユニット及び前記第2の演算処理ユニットは、前記実行サイクル毎に、各演算処理ユニットの処理結果を、対応する出力レジスターに格納することを特徴とする情報処理装置。

請求項3

請求項2において、前記命令デコード部が、算術演算命令論理演算命令及びシフト演算命令を除く、データ転送命令及び分岐命令をデコードすることを特徴とする情報処理装置。

請求項4

請求項1乃至3のいずれかにおいて、前記第1の出力レジスターの格納データ又は前記第2の出力レジスターの格納データは、前記複数の入力レジスターのいずれかに転送可能に構成されることを特徴とする情報処理装置。

請求項5

請求項1乃至4のいずれかにおいて、前記第1の入力レジスターが、前記第2の演算処理ユニットに割り当てられ、前記第2の演算処理ユニットが、前記実行サイクル毎に、前記第1の入力レジスターの設定データを用いて前記第2の演算処理を行い、該第2の演算処理の処理結果を前記第2の出力レジスターに格納することを特徴とする情報処理装置。

請求項6

請求項1乃至5のいずれかにおいて、前記第1の演算処理ユニット又は前記第2の演算処理ユニットは、加算演算乗算演算減算演算論理演算及びシフト演算のいずれかの演算処理を行うことを特徴とする情報処理装置。

請求項7

請求項1乃至6のいずれかにおいて、前記第1の演算処理ユニット及び前記第2の演算処理ユニットは、同一構成の算術論理演算ユニットであることを特徴とする情報処理装置。

請求項8

請求項1乃至7のいずれかにおいて、前記複数の入力レジスターを構成する各入力レジスターが、汎用レジスターであることを特徴とする情報処理装置。

請求項9

請求項1乃至8のいずれかにおいて、前記複数の出力レジスターを構成する各出力レジスターが、アキュームレーターであることを特徴とする情報処理装置。

請求項10

第1の演算処理を行う第1の演算処理ユニットと、前記第1の演算処理ユニットと並列動作可能に構成され第2の演算処理を行う第2の演算処理ユニットと、各入力レジスターの設定データが読み出し及び書き込み可能に構成される第1の入力レジスターと第2の入力レジスターとを有する複数の入力レジスターと、前記第1の演算処理ユニットの処理結果及び前記第2の演算処理ユニットの処理結果が格納される第1の出力レジスターと第2の出力レジスターとを有する複数の出力レジスターとを含む情報処理装置の演算処理方法であって、前記第1の入力レジスターを前記第1の演算処理ユニットに割り当て、前記第2の入力レジスターを前記第2の演算処理ユニットに割り当てると共に、前記第1の出力レジスターを前記第1の演算処理ユニットに割り当て、前記第2の出力レジスターを前記第2の演算処理ユニットに割り当て、所与の実行サイクル毎に、前記第1の演算処理ユニットが、前記第1の入力レジスターの設定データを用いて前記第1の演算処理を行い、該第1の演算処理の処理結果を前記第1の出力レジスターに格納すると共に、前記第2の演算処理ユニットが、前記第2の入力レジスターの設定データを用いて前記第2の演算処理を行い、該第2の演算処理の処理結果を前記第2の出力レジスターに格納することを特徴とする演算処理方法。

請求項11

請求項10において、フェッチされた命令データのデコード結果にかかわらず、前記第1の演算処理ユニット及び前記第2の演算処理ユニットは、前記実行サイクル毎に、各演算処理ユニットの処理結果を、対応する出力レジスターに格納することを特徴とする演算処理方法。

請求項12

請求項10又は11において、前記命令データは、算術演算命令、論理演算命令及びシフト演算命令を除く、データ転送命令及び分岐命令に対応した命令データであることを特徴とする演算処理方法。

請求項13

請求項10乃至12のいずれかにおいて、前記複数の入力レジスターを構成する各入力レジスターが、汎用レジスターであることを特徴とする演算処理方法。

請求項14

請求項10乃至13のいずれかにおいて、前記複数の出力レジスターを構成する各出力レジスターが、アキュームレーターであることを特徴とする演算処理方法。

請求項15

プログラム及びデータを記憶するメモリーと、前記プログラム及び前記データに対応した演算処理を行う請求項1乃至9のいずれか記載の情報処理装置とを含むことを特徴とする電子機器

技術分野

0001

本発明は、情報処理装置演算処理方法及び電子機器等に関する。

背景技術

0002

近年、マイクロプロセッサ広義には情報処理装置)が身の回りのあらゆる機器に組み込まれており、このマイクロプロセッサには、小型化、低コスト化低消費電力化、高機能化高性能化が求められている。マイクロプロセッサの高機能化や高性能化を図る技術については様々なものが考えられており、その1つとしてマイクロプロセッサの命令セット縮小することがある。

0003

命令セットを縮小することは、CISC(Complex Instruction Set Computer)アーキテクチャーのマイクロプロセッサに対するRISC(Reduced Instruction Set Computer)アーキテクチャーの技術思想に相当する。即ち、命令セットを縮小することで、デコードする命令シンプルなものに限定して単純化することで高速化を図るものである。

0004

命令セットを縮小すると、命令を表すオペコードビット数を減らすことができる。そうすると、例えばオペランドと呼ばれる、レジスターを指定するためのビット数を増やしてレジスター数を増加させたり、即値として命令に埋め込める最大値が大きくなって演算処理分岐処理が高速化できたりするメリットがある。

0005

その一方、命令セットを縮小すると、CISCアーキテクチャーのマイクロプロセッサと同様の処理を実現しようとする場合にステップ数が多くなる上に、命令長を短くするとコード効率を向上させるのが困難になるという問題がある。

0006

そこで、より一層処理を高速化するために、演算処理ユニット自体の高速化を図ることが考えられる。この演算処理ユニットの高速化を図る技術については、例えば特許文献1に開示されている。特許文献1には、アキュームレーターを介して数値演算を行うことが処理速度の低下の要因であると分析して、転送命令を用いることなくアキュームレーターと汎用レジスターとの間の転送をただちに行うことで、演算の高速化を図る技術が開示されている。

先行技術

0007

特開平5−250318号公報

発明が解決しようとする課題

0008

しかしながら、特許文献1に開示された技術では、転送命令を省略できて若干の効率向上になるものの、命令セットが本質的に変わらないため、コード効率を向上させることはできない。ましてや、新たな転送パスが必要となることによって、新たな転送命令を命令セットに割り当てる必要が生じ、例えば即値に割り当てられるビット数が少なくなってしまうという問題がある。

0009

本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的の1つは、命令セットのコード効率を向上させる情報処理装置、演算処理方法及び電子機器等を提供することにある。

課題を解決するための手段

0010

(1)本発明の一態様は、情報処理装置が、第1の演算処理を行う第1の演算処理ユニットと、前記第1の演算処理ユニットと並列動作可能に構成され第2の演算処理を行う第2の演算処理ユニットと、各入力レジスター設定データ読み出し及び書き込み可能に構成される複数の入力レジスターと、前記第1の演算処理ユニットの処理結果及び前記第2の演算処理ユニットの処理結果が格納される複数の出力レジスターとを含み、前記複数の入力レジスターが、前記第1の演算処理ユニットに割り当てられる第1の入力レジスターと、前記第2の演算処理ユニットに割り当てられる第2の入力レジスターとを有し、前記複数の出力レジスターが、前記第1の演算処理ユニットに割り当てられる第1の出力レジスターと、前記第2の演算処理ユニットに割り当てられる第2の出力レジスターとを有し、所与実行サイクル毎に、前記第1の演算処理ユニットが、前記第1の入力レジスターの設定データを用いて前記第1の演算処理を行い、該第1の演算処理の処理結果を前記第1の出力レジスターに格納すると共に、前記第2の演算処理ユニットが、前記第2の入力レジスターの設定データを用いて前記第2の演算処理を行い、該第2の演算処理の処理結果を前記第2の出力レジスターに格納する。

0011

本態様においては、並列動作可能に構成された第1の演算処理ユニットと第2の演算処理ユニットを有する情報処理装置において、複数の入力レジスターのうち第1の入力レジスターが第1の演算処理ユニットに割り当てられ、該複数の入力レジスターのうち第2の入力レジスターが第2の演算処理ユニットに割り当てられると共に、複数の出力レジスターのうち第1の出力レジスターが第1の演算処理ユニットに割り当てられ、該複数の出力レジスターのうち第2の出力レジスターが第2の演算処理ユニットに割り当てられる。そして、所与の実行サイクル毎に、第1の演算処理ユニットが、第1の入力レジスターの設定データを用いて第1の演算処理を行い、該第1の演算処理の処理結果を第1の出力レジスターに格納すると共に、第2の演算処理ユニットが、第2の入力レジスターの設定データを用いて第2の演算処理を行い、該第2の演算処理の処理結果を第2の出力レジスターに格納する。こうすることで、実行サイクル毎に、入力レジスターの設定データを用いて演算処理を行った結果を出力レジスターに格納することが繰り返され、入力レジスターにデータを設定したり、出力レジスターからデータを取得したりするデータ転送命令のみで、第1の演算処理を指定する命令と第2の演算処理を指定する命令を不要にして、極めてコード効率の高い情報処理装置を実現することが可能となる。

0012

(2)本発明の他の態様に係る情報処理装置では、フェッチされた命令データをデコードする命令デコード部を含み、前記命令デコード部のデコード結果にかかわらず、前記第1の演算処理ユニット及び前記第2の演算処理ユニットは、前記実行サイクル毎に、各演算処理ユニットの処理結果を、対応する出力レジスターに格納する。

0013

本態様によれば、命令デコード部のデコード結果にかかわらず、実行サイクル毎に、各演算処理ユニットの処理結果を、対応する出力レジスターに格納するようにしたので、第1の演算処理の結果及び第2の演算処理の結果を一度に取得でき、演算処理の高速化を図ることができるようになる。

0014

(3)本発明の他の態様に係る情報処理装置では、前記命令デコード部が、算術演算命令、論理演算命令及びシフト演算命令を除く、データ転送命令及び分岐命令をデコードする。

0015

本態様によれば、命令セットで規定されるビットフィールド余裕を持たせ、極めてコード効率が高い情報処理装置を提供できるようになる。その結果、コードの難読性を高めて、逆アセンブルを困難にして安全性の高いコードを生成することができ、リバースエンジニアリング防止やセキュリティーの向上に寄与できるようになる。

0016

(4)本発明の他の態様に係る情報処理装置では、前記第1の出力レジスターの格納データ又は前記第2の出力レジスターの格納データは、前記複数の入力レジスターのいずれかに転送可能に構成される。

0017

本態様によれば、第1の演算処理ユニットと第2の演算処理ユニットによって行われる演算処理結果を用いて、再び演算処理に供することができ、演算処理を指定する命令がなくても、演算処理結果を用いた分岐処理等の処理が可能となる。

0018

(5)本発明の他の態様に係る情報処理装置では、前記第1の入力レジスターが、前記第2の演算処理ユニットに割り当てられ、前記第2の演算処理ユニットが、前記実行サイクル毎に、前記第1の入力レジスターの設定データを用いて前記第2の演算処理を行い、該第2の演算処理の処理結果を前記第2の出力レジスターに格納する。

0019

本態様によれば、1つの入力レジスターに設定されたデータを用いて複数種類の演算処理を行う場合に、一度に行うことができ、処理の高速化を図ることができる。

0020

(6)本発明の他の態様に係る情報処理装置では、前記第1の演算処理ユニット又は前記第2の演算処理ユニットは、加算演算乗算演算減算演算論理演算及びシフト演算のいずれかの演算処理を行う。

0021

本態様によれば、加算演算命令、乗算演算命令、減算演算命令、論理演算命令及びシフト演算命令が省略された命令セットにもかかわらず、加算演算、乗算演算、減算演算、論理演算及びシフト演算のいずれかの演算処理を取得できる情報処理装置を提供できるようになる。

0022

(7)本発明の他の態様に係る情報処理装置では、前記第1の演算処理ユニット及び前記第2の演算処理ユニットは、同一構成の算術論理演算ユニットである。

0023

本態様によれば、上記の効果に加えて、柔軟性の高い演算結果が得られる情報処理装置を提供できるようになる。

0024

(8)本発明の他の態様に係る情報処理装置では、前記複数の入力レジスターを構成する各入力レジスターが、汎用レジスターである。

0025

本態様によれば、演算処理ユニット専用の特別なレジスターを設けることなく、コード効率が極めて高い情報処理装置を提供できるようになる。

0026

(9)本発明の他の態様に係る情報処理装置では、前記複数の出力レジスターを構成する各出力レジスターが、アキュームレーターである。

0027

本態様によれば、演算処理ユニット専用の特別なレジスターを設けることなく、コード効率が極めて高い情報処理装置を提供できるようになる。

0028

(10)本発明の他の態様は、第1の演算処理を行う第1の演算処理ユニットと、前記第1の演算処理ユニットと並列動作可能に構成され第2の演算処理を行う第2の演算処理ユニットと、各入力レジスターの設定データが読み出し及び書き込み可能に構成される第1の入力レジスターと第2の入力レジスターとを有する複数の入力レジスターと、前記第1の演算処理ユニットの処理結果及び前記第2の演算処理ユニットの処理結果が格納される第1の出力レジスターと第2の出力レジスターとを有する複数の出力レジスターとを含む情報処理装置の演算処理方法であって、前記第1の入力レジスターを前記第1の演算処理ユニットに割り当て、前記第2の入力レジスターを前記第2の演算処理ユニットに割り当てると共に、前記第1の出力レジスターを前記第1の演算処理ユニットに割り当て、前記第2の出力レジスターを前記第2の演算処理ユニットに割り当て、所与の実行サイクル毎に、前記第1の演算処理ユニットが、前記第1の入力レジスターの設定データを用いて前記第1の演算処理を行い、該第1の演算処理の処理結果を前記第1の出力レジスターに格納すると共に、前記第2の演算処理ユニットが、前記第2の入力レジスターの設定データを用いて前記第2の演算処理を行い、該第2の演算処理の処理結果を前記第2の出力レジスターに格納する。

0029

本態様によれば、実行サイクル毎に、入力レジスターの設定データを用いて演算処理を行った結果を出力レジスターに格納することが繰り返され、入力レジスターにデータを設定したり、出力レジスターからデータを取得したりするデータ転送命令のみで、第1の演算処理を指定する命令と第2の演算処理を指定する命令を不要にして、極めてコード効率の高い情報処理装置の演算処理方法を提供することが可能となる。

0030

(11)本発明の他の態様に係る演算処理方法では、フェッチされた命令データのデコード結果にかかわらず、前記第1の演算処理ユニット及び前記第2の演算処理ユニットは、前記実行サイクル毎に、各演算処理ユニットの処理結果を、対応する出力レジスターに格納する。

0031

本態様によれば、命令デコード部のデコード結果にかかわらず、実行サイクル毎に、各演算処理ユニットの処理結果を、対応する出力レジスターに格納するようにしたので、第1の演算処理の結果及び第2の演算処理の結果を一度に取得でき、演算処理の高速化を図ることができるようになる。

0032

(12)本発明の他の態様に係る演算処理方法では、前記命令データは、算術演算命令、論理演算命令及びシフト演算命令を除く、データ転送命令及び分岐命令に対応した命令データである。

0033

本態様によれば、命令セットで規定されるビットフィールドに余裕を持たせ、極めてコード効率が高い情報処理装置の演算処理方法を提供できるようになる。その結果、コードの難読性を高めて、逆アセンブルを困難にして安全性の高いコードを生成することができ、リバースエンジニアリング防止やセキュリティーの向上に寄与できるようになる。

0034

(13)本発明の他の態様に係る演算処理方法では、前記複数の入力レジスターを構成する各入力レジスターが、汎用レジスターである。

0035

本態様によれば、上記の効果に加えて、柔軟性の高い演算結果が得られる情報処理装置の演算処理方法を提供できるようになる。

0036

(14)本発明の他の態様に係る演算処理方法では、前記複数の出力レジスターを構成する各出力レジスターが、アキュームレーターである。

0037

本態様によれば、上記の効果に加えて、柔軟性の高い演算結果が得られる情報処理装置の演算処理方法を提供できるようになる。

0038

(15)本発明の他の態様は、電子機器が、プログラム及びデータを記憶するメモリーと、前記プログラム及び前記データに対応した演算処理を行う上記のいずれか記載の情報処理装置とを含む。

0039

本態様によれば、命令セットのコード効率を向上させると共に、コードの難読性を高めて、逆アセンブルを困難にして安全性の高いコードを生成して複雑な演算処理を実現する一方で、リバースエンジニアリング防止やセキュリティー防止が可能な電子機器を提供できるようになる。

図面の簡単な説明

0040

本発明に係る実施形態における情報処理装置の原理的な構成例を示す図。
図1の情報処理装置としてのCPUの構成例のブロック図。
図2のCPUが読み込むプログラムの命令データの説明図。
図2の汎用レジスター部の構成例を示す図。
図2のアキュームレーター部の構成例を示す図。
本実施形態における汎用レジスター部、演算処理部及びアキュームレーター部の詳細な構成例のブロック図。
図6の演算処理部の処理例の説明図。
図8(A)、図8(B)は図2のCPUの動作例の説明図。
本実施形態におけるCPUの命令セットの一例の説明図。
図10(A)、図10(B)は本実施形態におけるCPUが実行するプログラムのコードの効果の説明図。
本実施形態の変形例における演算処理部の構成例のブロック図。
本実施形態における電子機器としてのプロジェクターを含む画像表示システムの構成例のブロック図。
図12画像処理装置ハードウェア構成例のブロック図。
図1投射装置の構成例の図。

実施例

0041

以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。

0042

1.情報処理装置
図1に、本発明に係る実施形態における情報処理装置の原理的な構成例を示す。

0043

本実施形態における情報処理装置10は、汎用レジスター部20と、アキュームレーター部30と、演算処理部40とを含む。

0044

汎用レジスター部20は、外部から設定データの読み出しと設定データの書き込みとが可能な複数の汎用レジスターRG0、・・・、RGj、・・・、RGk、・・・、RGm、・・・、RGn、・・・を有し、演算処理部40において行われる演算処理に供される入力データが設定される。汎用レジスター部20が有する複数の汎用レジスターは、演算処理部40の入力データが設定される入力レジスターの機能を有する。

0045

アキュームレーター部30は、演算処理部40において行われる演算処理の処理結果が格納される複数のアキュームレーターRG10、・・・、RG1x、・・・、RG2y、・・・を含む。アキュームレーター部30が有する複数のアキュームレーターは、演算処理部40の処理結果が格納される出力レジスターの機能を有する。

0046

演算処理部40は、並列動作可能に構成された複数の演算処理ユニットを有する。複数の演算処理ユニットは、互いに異なる演算処理を行ってもよいし、1つの演算処理ユニットの処理内容が別の演算処理ユニットの演算処理と同じ種類の演算処理を行ってもよい。演算処理部40が有する複数の演算処理ユニットを構成する各演算処理ユニットは、いわゆる算術演算、論理演算又はシフト演算を行うことが望ましい。算術演算は、加算演算、乗算演算、減算演算、除算演算インクリメント演算、デクリメント演算のいずれかであることが望ましい。論理演算は、論理和演算論理積演算論理否定演算、排他的論理和演算排他的論理和否定演算のいずれかであることが望ましい。シフト演算は、論理シフト演算、算術シフト演算、回転演算スワップ演算のいずれかであることが望ましい。

0047

演算処理部40が有する複数の演算処理ユニットを構成する各演算処理ユニットには、汎用レジスター部20が有する複数の汎用レジスターのうち1又は複数の汎用レジスターが割り当てられると共に、アキュームレーター部30が有する複数のアキュームレーターのうち1又は複数のアキュームレーターが割り当てられる。そして、複数の演算処理ユニットは、所与の実行サイクル毎に、演算処理ユニット毎に割り当てられた汎用レジスターに設定された入力データを用いて同時に演算処理を行い、演算処理ユニット毎に割り当てられたアキュームレーターに演算処理の処理結果を格納する。

0048

即ち、演算処理部40は、第1の演算処理を行う第1の演算処理ユニットEXU1と、第2の演算処理を行う第2の演算処理ユニットEXU2とを少なくとも含む。第1の演算処理の処理内容は、第2の演算処理の処理内容と同じであってもよいし、異なっていてもよい。複数の汎用レジスター(入力レジスター)は、第1の演算処理ユニットEXU1に割り当てられる第1の汎用レジスター(入力レジスター)RGj、RGnと、第2の演算処理ユニットEXU2に割り当てられる第2の汎用レジスター(入力レジスター)RGkとを有する。また、複数のアキュームレーター(出力レジスター)は、第1の演算処理ユニットEXU1に割り当てられる第1のアキュームレーター(出力レジスター)RG1xと、第2の演算処理ユニットEXU2に割り当てられる第2のアキュームレーター(出力レジスター)RG2yとを有する。そして、情報処理装置10は、実行サイクル毎に、第1の演算処理ユニットEXU1が、第1の汎用レジスターRGj、RGnの設定データを用いて第1の演算処理を行い、該第1の演算処理の処理結果を第1のアキュームレーターRG1xに格納すると共に、第2の演算処理ユニットEXU2が、第2の汎用レジスターRGkの設定データを用いて第2の演算処理を行い、該第2の演算処理の処理結果を第2のアキュームレーターRG2yに格納する。

0049

ここで、第1の演算処理ユニットEXU1には、第1のアキュームレーターRG1xを含む複数のアキュームレーターが割り当てられてもよい。同様に、第2の演算処理ユニットEXU2には、第2のアキュームレーターRG2yを含む複数のアキュームレーターが割り当てられてもよい。

0050

即ち、情報処理装置10の演算処理方法として、複数の入力レジスターのうち第1の入力レジスターを第1の演算処理ユニットEXU1に割り当て、該複数の入力レジスターのうち第2の入力レジスターを第2の演算処理ユニットEXU2に割り当てると共に、複数の出力レジスターのうち第1の出力レジスターを第1の演算処理ユニットEXU1に割り当て、該複数の出力レジスターのうち第2の出力レジスターを第2の演算処理ユニットEXU2に割り当てる。そして、所与の実行サイクル毎に、第1の演算処理ユニットEXU2が、第1の入力レジスターの設定データを用いて第1の演算処理を行い、該第1の演算処理の処理結果を第1の出力レジスターに格納すると共に、第2の演算処理ユニットが、第2の入力レジスターの設定データを用いて第2の演算処理を行い、該第2の演算処理の処理結果を第2の出力レジスターに格納する。

0051

このような情報処理装置10は、実行サイクル毎に、汎用レジスターの設定データを用いて演算処理を行った結果をアキュームレーターに格納することを繰り返すことで、演算処理を指定する命令を不要にして命令セットで規定されるビットフィールドに余裕を持たせ、極めてコード効率の高い情報処理装置を実現することが可能となる。

0052

また、第1のアキュームレーターの格納データ又は第2のアキュームレーターの格納データは、複数の汎用レジスターのいずれかに転送可能に構成される。こうすることで、演算処理部40によって行われる演算処理結果を用いて、再び演算処理に供することができる。そのため、演算処理を指定する命令がなくても、演算処理結果を用いた分岐処理等の処理が可能となる。

0053

また、第1の汎用レジスターが、第2の演算処理ユニットEXU2に割り当てられ、第2の演算処理ユニットEXU2が、実行サイクル毎に、第1の汎用レジスターの設定データを用いて第2の演算処理を行い、該第2の演算処理の処理結果を第2のアキュームレーターに格納するようにしてもよい。こうすることで、1つの汎用レジスターに設定されたデータを用いて複数種類の演算処理を行う場合に、一度に行うことができ、処理の高速化を図ることができる。

0054

図2に、図1の情報処理装置10としての中央演算処理装置(Central Processing Unit:CPU)の構成例のブロック図を示す。図2において、図1と同一部分には同一符号を付し、適宜説明を省略する。
図3に、図2のCPU100が読み込むプログラムの命令データの説明図を示す。

0055

CPU100は、汎用レジスター部20及びアキュームレーター部30を含むレジスター部50と、命令デコード部60と、バス制御部70と、プログラムカウンター(Program Counter:PC)80と、スタックポインター(Stack Pointer:SP)82と、オペコードレジスター84と、オペランドレジスター86と、制御部90とを含む。

0056

CPU100は、外部又は内部の図示しないメモリーに格納されたプログラムを読み込み、該プログラムにより指定された処理を実行する。このプログラムは、それぞれがCPU100の処理内容を指定する、図3に示すような命令データの列である。命令データは、オペコード部とオペランド部とを有し、オペコード部が処理内容を指定する部分であり、オペランド部が、オペコード部で指定された処理の対象を指定する部分である。

0057

プログラムカウンター80は、CPU100が現在実行するプログラムのアドレスを保持する制御レジスターであり、CPU100が処理の実行を終了する度にその内容が更新される。スタックポインター82は、スタック領域と呼ばれるデータの待避領域に最後に待避したアドレスを保持する制御レジスターであり、例えばサブルーチン処理移行する際に現在の処理を中断し、サブルーチン処理の終了後に中断した処理を再開させるために用いられる。オペコードレジスター84は、CPU100によりフェッチされた命令データのオペコード部を保持する制御レジスターである。オペランドレジスター86は、CPU100によりフェッチされた命令データのオペランド部を保持する制御レジスターである。

0058

命令デコード部60は、プログラムカウンター80により指定されるアドレスに記憶されるプログラムの命令データがCPU100によりフェッチされたとき、該命令データをデコードし、デコード結果を制御部90に出力する。

0059

バス制御部70は、制御部90からの指示により、CPU100の外部又は内部に設けられたバス調停制御を行って、アクセス制御を行う。

0060

制御部90は、命令デコード部60からのデコード結果に基づいて、プログラムカウンター80、スタックポインター82、オペコードレジスター84、オペランドレジスター86、バス制御部70、演算処理部40及びレジスター部50を制御して、CPU100の制御を司る。

0061

図4に、図2の汎用レジスター部20の構成例を示す。

0062

本実施形態では、汎用レジスター部20が、16種類の汎用レジスターRG0〜RGfを有する。なお、本実施形態では、CPU100が、16種類の汎用レジスターを有するものとして説明するが、本発明は汎用レジスター数に限定されるものではなく、複数の汎用レジスターを有していればよい。また、本実施形態では、汎用レジスターのビット数が「16」であるものとして説明するが、本発明はこれに限定されるものではなく、汎用レジスターのビット数に限定されるものではない。

0063

図4に示す各汎用レジスターは、制御部90からアクセス可能に構成されており、制御部90は、各汎用レジスターにデータを書き込んだり、各汎用レジスターからデータを読み出したりすることができるようになっている。そして、図2の汎用レジスターRG0〜RGfのいずれかは、演算処理部40が有する複数の演算処理ユニットのいずれかに予め割り当てられている。汎用レジスターRG0〜RGfのうち、演算処理部40が有する複数の演算処理ユニットのいずれにも割り当てられない汎用レジスターがあってもよいし、1つの汎用レジスターが、演算処理部40が有する複数の演算処理ユニットに割り当てられていてもよい。

0064

図5に、図2のアキュームレーター部30の構成例を示す。

0065

本実施形態では、アキュームレーター部30が、32種類のアキュームレーターRG10〜RG2fを有する。なお、本実施形態では、CPU100が、32種類のアキュームレーターを有するものとして説明するが、本発明はアキュームレーター数に限定されるものではなく、複数のアキュームレーターを有していればよい。また、本実施形態では、アキュームレーターのビット数が「16」であるものとして説明するが、本発明はこれに限定されるものではなく、アキュームレーターのビット数に限定されるものではない。

0066

図5に示す各アキュームレーターは、演算処理部40が有する演算処理ユニットから書き込み可能に構成されており、制御部90は、各アキュームレーターに書き込まれたデータを読み出したり、該データを汎用レジスター部20のいずれかの汎用レジスターに転送したりできるようになっている。そして、図2のアキュームレーターRG10〜RG2fのいずれかは、演算処理部40が有する複数の演算処理ユニットのいずれかに予め割り当てられている。アキュームレーターRG10〜RG2fのうち、演算処理部40が有する複数の演算処理ユニットのいずれにも割り当てられないアキュームレーターがあってもよい。

0067

演算処理部40が有する複数の演算処理ユニットを構成する各演算処理ユニットは、実行サイクル毎に、入力レジスターとして割り当てられた汎用レジスターのデータを用いて演算処理を行い、その演算処理結果を、出力レジスターとして割り当てられたアキュームレーターに格納する。

0068

図6に、本実施形態における汎用レジスター部20、演算処理部40及びアキュームレーター部30の詳細な構成例のブロック図を示す。図6において、図4又は図5と同一部分には同一符号を付し、適宜説明を省略する。
図7に、図6の演算処理部40の処理例の説明図を示す。

0069

図6において、演算処理部40は、複数の演算処理ユニット401〜4011を有する。図6では、演算処理部40が、11個の演算処理ユニットを含む例を説明するが、本発明が、演算処理ユニット数に限定されるものではなく、演算処理部40が複数の演算処理ユニットを有していればよい。

0070

演算処理ユニット401は、加算演算処理を行う。演算処理ユニット401には、汎用レジスターRG0、RG1と、アキュームレーターRG10、RG20とが割り当てられる。そして、実行サイクル毎に、演算処理ユニット402〜4011と並列に、演算処理ユニット401は、汎用レジスターRG0の入力データと汎用レジスターRG1の入力データとの加算演算を行い、加算演算結果を、アキュームレーターRG10、RG20に格納する。ここで、アキュームレーターRG10には、加算演算結果の下位ビット側が格納され、アキュームレーターRG20には、キャリービットが格納される。

0071

演算処理ユニット402もまた、加算演算処理を行う。ただ、演算処理ユニット402は、演算処理ユニット401とは別の汎用レジスターが入力レジスターとして割り当てられている。即ち、演算処理ユニット402には、汎用レジスターRG2、RG3と、アキュームレーターRG12、RG22とが割り当てられる。そして、実行サイクル毎に、演算処理ユニット401、403〜4011と並列に、演算処理ユニット402は、汎用レジスターRG2の入力データと汎用レジスターRG3の入力データとの加算演算を行い、加算演算結果を、アキュームレーターRG12、RG22に格納する。ここで、アキュームレーターRG12には、加算演算結果の下位ビット側が格納され、アキュームレーターRG22には、キャリービットが格納される。

0072

演算処理ユニット403は、乗算演算処理を行う。演算処理ユニット403には、汎用レジスターRG4、RG5と、アキュームレーターRG14、RG24とが割り当てられる。そして、実行サイクル毎に、演算処理ユニット401〜402、404〜4011と並列に、演算処理ユニット403は、汎用レジスターRG4の入力データと汎用レジスターRG5の入力データとの乗算演算を行い、乗算演算結果を、アキュームレーターRG14、RG24に格納する。ここで、アキュームレーターRG14には、乗算演算結果の下位ビット側が格納され、アキュームレーターRG24には、乗算演算結果の上位ビット側が格納される。

0073

演算処理ユニット404もまた、乗算演算処理を行う。演算処理ユニット404には、汎用レジスターRG6、RG7と、アキュームレーターRG16、RG26とが割り当てられる。そして、実行サイクル毎に、演算処理ユニット401〜403、405〜4011と並列に、演算処理ユニット404は、汎用レジスターRG6の入力データと汎用レジスターRG7の入力データとの乗算演算を行い、乗算演算結果を、アキュームレーターRG16、RG26に格納する。ここで、アキュームレーターRG16には、乗算演算結果の下位ビット側が格納され、アキュームレーターRG26には、乗算演算結果の上位ビット側が格納される。

0074

演算処理ユニット405は、減算演算処理を行う。演算処理ユニット405には、汎用レジスターRG8、RG9と、アキュームレーターRG18とが割り当てられる。そして、実行サイクル毎に、演算処理ユニット401〜404、406〜4011と並列に、演算処理ユニット405は、汎用レジスターRG9の入力データから汎用レジスターRG8の入力データを減算する減算演算を行い、減算演算結果を、アキュームレーターRG18に格納する。

0075

演算処理ユニット406は、デクリメント演算処理を行う。演算処理ユニット406には、汎用レジスターRGaと、アキュームレーターRG1aとが割り当てられる。そして、実行サイクル毎に、演算処理ユニット401〜405、407〜4011と並列に、演算処理ユニット406は、汎用レジスターRGaの入力データから1を減算したデクリメント演算を行い、デクリメント演算結果をアキュームレーターRG1aに格納する。

0076

演算処理ユニット407は、インクリメント演算処理を行う。演算処理ユニット407には、汎用レジスターRGbと、アキュームレーターRG1bとが割り当てられる。そして、実行サイクル毎に、演算処理ユニット401〜406、408〜4011と並列に、演算処理ユニット407は、汎用レジスターRGbの入力データに1を加算したインクリメント演算を行い、インクリメント演算結果をアキュームレーターRG1bに格納する。

0077

演算処理ユニット408は、論理積演算処理を行う。演算処理ユニット408には、汎用レジスターRGc、RGdと、アキュームレーターRG1cとが割り当てられる。そして、実行サイクル毎に、演算処理ユニット401〜407、409〜4011と並列に、演算処理ユニット408は、汎用レジスターRGcの入力データと汎用レジスターRGdの入力データとの論理積演算を行い、論理積演算結果をアキュームレーターRG1cに格納する。

0078

演算処理ユニット409は、左方向の論理シフト演算処理を行う。演算処理ユニット409には、汎用レジスターRGcと、アキュームレーターRG2cとが割り当てられる。そして、実行サイクル毎に、演算処理ユニット401〜408、4010〜4011と並列に、演算処理ユニット409は、汎用レジスターRGcの入力データを左方向にシフトしたシフト演算を行い、シフト演算結果をアキュームレーターRG2cに格納する。

0079

演算処理ユニット4010は、論理和演算処理を行う。演算処理ユニット4010には、汎用レジスターRGe、RGfと、アキュームレーターRG1eとが割り当てられる。そして、実行サイクル毎に、演算処理ユニット401〜409、4011と並列に、演算処理ユニット4010は、汎用レジスターRGeの入力データと汎用レジスターRGfの入力データとの論理積演算を行い、論理積演算結果をアキュームレーターRG1eに格納する。

0080

演算処理ユニット4011は、右方向の論理シフト演算処理を行う。演算処理ユニット4011には、汎用レジスターRGeと、アキュームレーターRG2eとが割り当てられる。そして、実行サイクル毎に、演算処理ユニット401〜4010と並列に、演算処理ユニット4011は、汎用レジスターRGeの入力データを右方向にシフトしたシフト演算を行い、シフト演算結果をアキュームレーターRG2eに格納する。

0081

図6の演算処理部40の演算処理ユニット401〜4011は、それぞれ実行サイクル毎に、対応するアキュームレーターの値を更新する。即ち、命令デコード部60のデコード結果にかかわらず、演算処理ユニット401〜4011は、それぞれ実行サイクル毎に、各演算処理を行う。従って、実行サイクル前に、割り当てられた汎用レジスターの入力データが書き換えられたとき、対応するアキュームレーターに格納されるデータが変化することになる。

0082

図8(A)、図8(B)に、図2のCPU100の動作例の説明図を示す。図8(A)は、CPU100のプログラムの一例を表す。図8(A)において、命令LDIは、指定された即値を汎用レジスターに転送する転送命令である。図8(B)は、CPU100の動作例のタイミング図を表す。なお、図8(B)は、演算による遅延を無視し、各汎用レジスターと各アキュームレーターの状態を模式的に表す。

0083

例えば図8(A)に示すように、汎用レジスターR0、R1、R2、R3に、それぞれ即値「1」、「2」、「3」、「4」を転送し、演算処理ユニット401、402の処理例を考える。このデータ転送命令列の直前において、汎用レジスターR0、R1、R2、R3、アキュームレーターRG10、RG20、RG12、RG22が初期化され、各汎用レジスター及び各アキュームレーターのデータが「0」であるものとする。

0084

まず、実行サイクルT1において、汎用レジスターR0に即値「1」が設定される。これにより、実行サイクルT1では、演算処理ユニット401は、汎用レジスターR0に設定された「1」と汎用レジスターR1に設定された「0」とを加算した加算演算結果「1」を、アキュームレーターRG10に設定する。このとき、キャリービットが「0」なので、アキュームレーターRG20のデータはそのままである。同様に、演算処理ユニット402は、汎用レジスターR2に設定された「0」と汎用レジスターR3に設定された「0」とを加算した加算演算結果「0」を、アキュームレーターRG12に設定するが、アキュームレーターRG12のデータはそのままである。このとき、キャリービットが「0」なので、アキュームレーターRG22のデータはそのままである。

0085

次に、実行サイクルT2において、汎用レジスターR1に即値「2」が設定される。これにより、実行サイクルT2では、演算処理ユニット401は、汎用レジスターR0に設定された「1」と汎用レジスターR1に設定された「2」とを加算した加算演算結果「3」を、アキュームレーターRG10に設定する。このとき、キャリービットが「0」なので、アキュームレーターRG20のデータはそのままである。一方、演算処理ユニット402は、汎用レジスターR2、R3のデータがそのままであるため、加算演算結果をアキュームレーターRG12に設定するが、アキュームレーターRG12のデータはそのままである。このとき、キャリービットが「0」なので、アキュームレーターRG22のデータはそのままである。

0086

次に、実行サイクルT3において、汎用レジスターR2に即値「3」が設定される。これにより、実行サイクルT3では、演算処理ユニット401は、汎用レジスターR0、R1のデータがそのままであるため、アキュームレーターRG10、RG20のデータもそのままである。一方、演算処理ユニット402は、汎用レジスターR2に設定された「3」と汎用レジスターR3に設定された「0」とを加算した加算演算結果「3」を、アキュームレーターRG12に設定する。このとき、キャリービットが「0」なので、アキュームレーターRG22のデータはそのままである。

0087

そして、実行サイクルT4において、汎用レジスターR3に即値「4」が設定される。これにより、実行サイクルT4では、演算処理ユニット401は、汎用レジスターR0、R1のデータがそのままであるため、アキュームレーターRG10、RG20のデータもそのままである。一方、演算処理ユニット402は、汎用レジスターR2に設定された「3」と汎用レジスターR3に設定された「4」とを加算した加算演算結果「7」を、アキュームレーターRG12に設定する。このとき、キャリービットが「0」なので、アキュームレーターRG22のデータはそのままである。

0088

このように、プログラムの命令列加算命令を含まなくても、入力レジスターに割り当てられた汎用レジスターにデータを設定するだけで、実行サイクル毎に、加算結果を得ることができるようになる。即ち、CPU100は、演算処理部40が有する演算処理ユニット401〜4011が行う演算処理に対応する算術演算命令、論理演算命令及びシフト演算命令をオペコードに持つ必要がなくなり、少ないビットフィールドを他の命令に割り当てることができ、極めてコード効率を高くすることができるようになる。

0089

図9に、本実施形態におけるCPU100の命令セットの一例の説明図を示す。図9は、ニーモニック毎に、16ビットのオペコードと、処理内容の説明を表す。

0090

図9は、CPU100の命令セットを表しており、CPU100が実行可能な全命令を列挙したものである。即ち、CPU100の命令セットは、データ転送命令群150と、条件分岐命令群(より具体的には、無条件分岐命令群160と条件分岐命令群170)からなり、演算処理部40において行われる算術演算命令、論理演算命令及びシフト演算命令が省略されている。

0091

ここで、データ転送命令群150は、レジスター間転送命令と、レジスター・メモリー間転送命令とを有する。

0092

レジスター間転送命令は、LDR命令からなる。LDR命令は、オペコード部で転送元として指定された転送元レジスターから、該オペコード部で転送先として指定された転送先レジスターへの転送を指示する命令である。レジスター・メモリー間転送命令は、LDI命令、LDM命令、STM命令、LDU命令、STU命令からなる。LDI命令は、オペコード部で指定された即値を、該オペコード部で指定された転送先レジスターへの転送を指示する命令である。LDM命令は、オペコード部で指定された転送元のメモリー上のアドレスに格納されたデータを、該オペコード部で指定された転送先レジスターへの転送を指示する命令である。STM命令は、オペコード部で指定された転送元レジスターに設定されたデータを、該オペコード部で指定された転送先のメモリー上のアドレスへの転送を指示する命令である。LDU命令は、オペコード部で指定された転送元レジスターの値をアドレスとしてメモリーから読み出し、該オペコード部で指定された転送先レジスターへの転送を指示する命令である。STU命令は、オペコード部で指定された転送元レジスターに設定されたデータを、転送先レジスターの値をアドレスとしたメモリーの記憶領域への転送を指示する命令である。

0093

無条件分岐命令群160は、JP命令、JS命令、JPO命令、JSO命令、JPR命令、JSR命令、RTS命令、及びNOP命令からなる。JP命令は、オペコード部で指定された分岐先絶対アドレス分岐を指示する命令である。JS命令は、サブルーチン分岐命令であり、オペコード部で指定されたサブルーチン分岐先絶対アドレスにサブルーチン分岐する命令である。JPO命令は、例えば現在の実行アドレスを基準に、オペコード部で指定される相対ジャンプ先アドレスだけ進んだ分岐先アドレス又は相対ジャンプ先アドレスだけ戻った分岐先アドレスへの分岐を指示する命令である。JPR命令は、オペコード部で指定されるレジスターに格納される値を分岐先アドレスとして分岐を指示する命令である。JSR命令は、オペコード部で指定されるレジスターに格納される値を相対値として、例えば現在の実行アドレスを基準に、該相対値だけ進んだ分岐先アドレス又は該相対値だけ戻った分岐先アドレスへの分岐を指示する命令である。RTS命令は、サブルーチン復帰命令である。NOP命令は、何も命令を実行しないことを指示する命令である。

0094

条件分岐命令群170は、EQR命令、EQI命令、NER命令、NEI命令、GTR命令、GTI命令、LTR命令、及びLTI命令からなる。

0095

EQR命令は、オペコード部で指定された基準レジスターに格納された値と該オペコード部で指定された比較レジスターに格納された値とが一致したときに、例えばオペランド部で指定された分岐先アドレスへの分岐を指示する命令である。EQI命令は、オペコード部で指定された基準レジスターに格納された値と該オペコード部で指定された即値とが一致したときに、例えばオペランド部で指定された分岐先アドレスへの分岐を指示する命令である。

0096

NER命令は、オペコード部で指定された基準レジスターに格納された値と該オペコード部で指定された比較レジスターに格納された値とが不一致のときに、例えばオペランド部で指定された分岐先アドレスへの分岐を指示する命令である。NEI命令は、オペコード部で指定された基準レジスターに格納された値と該オペコード部で指定された即値とが不一致のときに、例えばオペランド部で指定された分岐先アドレスへの分岐を指示する命令である。

0097

GTR命令は、オペコード部で指定された基準レジスターに格納された値が該オペコード部で指定された比較レジスターに格納された値より大きいときに、例えばオペランド部で指定された分岐先アドレスへの分岐を指示する命令である。GTI命令は、オペコード部で指定された基準レジスターに格納された値が該オペコード部で指定された即値より大きいときに、例えばオペランド部で指定された分岐先アドレスへの分岐を指示する命令である。

0098

LTR命令は、オペコード部で指定された基準レジスターに格納された値が該オペコード部で指定された比較レジスターに格納された値より小さいときに、例えばオペランド部で指定された分岐先アドレスへの分岐を指示する命令である。LTI命令は、オペコード部で指定された基準レジスターに格納された値が該オペコード部で指定された即値より小さいときに、例えばオペランド部で指定された分岐先アドレスへの分岐を指示する命令である。

0099

このように本実施形態では、CPU100の命令セットにおいて、データ転送命令群150と、無条件分岐命令群160と、条件分岐命令群170のみが規定されている。しかしながら、上記のような演算処理部40を備えることにより、所与の実行サイクル毎に、算術演算結果、論理演算結果及びシフト演算結果を得ることができる。即ち、CPU100の命令デコード部60は、算術演算命令、論理演算命令及びシフト演算命令を除く、データ転送命令、及び分岐命令(無条件分岐命令、条件分岐命令)をデコードする。しかも、命令デコード部60のデコード結果にかかわらず、演算処理部40が有する複数の演算処理ユニットは、実行サイクル毎に、各演算処理ユニットの処理結果を、対応するアキュームレーターに格納する。これにより、命令デコード部60が簡素化されると共に、算術演算命令、論理演算命令及びシフト演算命令をオペコードに持つ必要がなくなり、少ないビットフィールドを他の命令に割り当てることができ、極めてコード効率を高くすることができるようになる。

0100

更に、算術演算命令、論理演算命令及びシフト演算命令をオペコードに持つ必要がなくなるため、CPU100を実行するプログラムのコードは、従来のコードと比較して、以下のような効果を奏することができるようになる。

0101

図10(A)、図10(B)に、本実施形態におけるCPU100が実行するプログラムのコードの効果の説明図を示す。図10(A)は、フィボッチ数列の第num(num≧3)項を返す関数C言語で表したコード例である。図10(B)は、図10(A)のコードを、図9のニーモニックを用いてアセンブラ表記した例を表したものである。

0102

図10(A)に示すように、この関数は、整数型変数iのデクリメント演算と、整数型の変数f_0、f_1の加算演算とが繰り返し行われる。これに対して、本実施形態におけるCPU100の命令セットに対応したアセンブラに変換すると、図10(B)に示すように、データ転送命令と条件分岐命令とからなる命令列になる。

0103

即ち、図10(B)では、加算演算命令やデクリメント演算命令が含まれておらず、データ転送命令により、図6の演算処理ユニット401に対応した汎用レジスターRG0、RG1に値を設定するだけで加算演算結果を取得したり、図6の演算処理ユニット406に対応した汎用レジスターRGaに値を設定するだけでデクリメント演算結果を取得したりしている。しかも、命令列の途中で、汎用レジスターRG2を変数の値の待避用に使用している。なお、図10(B)では、返り値がshort型であれば汎用レジスターRG0に転送され、返り値がint型であれば汎用レジスターRG0、RG1に転送される。

0104

即ち、図10(B)に示すように、汎用レジスターに値を設定するだけで、所与の実行サイクル後に演算結果を取得できる一方、所与の実行サイクル後に取得できる演算結果を使用しなければ汎用レジスターを従来のレジスターとして使用することができる。

0105

このように、本実施形態によれば、算術演算命令、論理演算命令及びシフト演算命令がない命令データ列算術演算処理等を実現できるため、上記のように極めてコード効率を高くすることができる。更に、本実施形態によれば、図10(B)に示すように、コードの難読性を高めて、逆アセンブルを困難にして安全性の高いコードを生成することができる。この結果、リバースエンジニアリング防止やセキュリティーの向上に寄与できるようになる。

0106

なお、本実施形態では、図6に示すように、演算処理部40が有する複数の演算処理ユニットを構成する各演算処理ユニットが、それぞれ加算演算、減算演算等の予め決められた演算処理を行うものとして説明したが、本発明はこれに限定されるものではない。

0107

図11に、本実施形態の変形例における演算処理部の構成例のブロック図を示す。図11において、図6と同一の部分には同一符号を付し、適宜説明を省略する。

0108

本変形例における演算処理部200は、図2の演算処理部40に代えてCPU100に含まれる。この演算処理部200は、複数の演算処理ユニット2001〜2003、403〜404、406〜4011を有する。演算処理ユニット2001〜2003は、それぞれ同一の構成の算術論理演算ユニットである。図11では、演算処理部200が、11個の演算処理ユニットを含む例を説明するが、本発明が、演算処理ユニット数に限定されるものではなく、演算処理部200が複数の演算処理ユニットを有していればよい。

0109

演算処理ユニット2001〜2003を構成する各演算処理ユニットは、加算演算処理及び減算演算処理のいずれかの演算処理を行う。各演算処理ユニットは、例えば図示しない制御レジスターの制御データにより、加算演算処理及び減算演算処理のいずれかの演算処理を行うように指定される。

0110

そして、演算処理ユニット2001には、汎用レジスターRG0、RG1と、アキュームレーターRG10、RG20とが割り当てられる。そして、実行サイクル毎に、演算処理ユニット2002、403〜404、2003、406〜4011と並列に、演算処理ユニット2001は、汎用レジスターRG0の入力データと汎用レジスターRG1の入力データとを用いて制御データにより指定された演算を行い、その演算結果を、アキュームレーターRG10、RG20に格納する。ここで、アキュームレーターRG10には、演算結果の下位ビット側が格納され、アキュームレーターRG20には、演算結果の上位ビット側が格納される。

0111

演算処理ユニット2002もまた、制御データにより指定された演算を行う。ただ、演算処理ユニット2002は、演算処理ユニット2001とは別の汎用レジスターが入力レジスターとして割り当てられている。即ち、演算処理ユニット2002には、汎用レジスターRG2、RG3と、アキュームレーターRG12、RG22とが割り当てられる。そして、実行サイクル毎に、演算処理ユニット2001、403〜404、2003、406〜4011と並列に、演算処理ユニット2002は、汎用レジスターRG2の入力データと汎用レジスターRG3の入力データとを用いて制御データにより指定された演算を行い、その演算結果を、アキュームレーターRG12、RG22に格納する。ここで、アキュームレーターRG12には、演算結果の下位ビット側が格納され、アキュームレーターRG22には、演算結果の上位ビット側が格納される。

0112

演算処理ユニット2003もまた、制御データにより指定された演算を行う。ただ、演算処理ユニット2003は、演算処理ユニット2001、2002とは別の汎用レジスターが入力レジスターとして割り当てられている。即ち、演算処理ユニット2003には、汎用レジスターRG8、RG9と、アキュームレーターRG18、RG28とが割り当てられる。そして、実行サイクル毎に、演算処理ユニット2001〜2002、403〜404、406〜4011と並列に、演算処理ユニット2003は、汎用レジスターRG8の入力データと汎用レジスターRG9の入力データとを用いて制御データにより指定された演算を行い、その演算結果を、アキュームレーターRG18、RG28に格納する。ここで、アキュームレーターRG18には、演算結果の下位ビット側が格納され、アキュームレーターRG28には、演算結果の上位ビット側が格納される。

0113

図11の演算処理部200の演算処理ユニット2001〜2003、403〜404、406〜4011は、それぞれ実行サイクル毎に、対応するアキュームレーターの値を更新する。即ち、命令デコード部60のデコード結果にかかわらず、演算処理ユニット2001〜2003、403〜404、406〜4011は、それぞれ実行サイクル毎に、各演算処理を行う。従って、実行サイクル前に、割り当てられた汎用レジスターの入力データが書き換えられたとき、対応するアキュームレーターに格納されるデータが変化することになる。

0114

このような本変形例によれば、演算処理内容に応じて、並列動作可能な演算処理をダイナミック切り替えることができ、極めて高いコード効率で、より一層高演算能力を得ることができるようになる。

0115

なお、図11において、演算処理ユニット406〜408、4010の少なくとも1つが、演算処理ユニット2001と同様の構成を有し、図示しない制御レジスターに設定された制御データにより指定された演算を行うようにしてもよい。

0116

2.電子機器
本実施形態又はその変形例におけるCPUは、プロジェクター等の電子機器に搭載することができる。なお、以下では本実施形態又はその変形例における電子機器がプロジェクターである例について説明するが、本実施形態又はその変形例におけるCPUが適用される電子機器がプロジェクターに限定されるものではなく、種々の電子機器に適用できることは言うまでもない。

0117

図12に、本実施形態における電子機器としてのプロジェクターを含む画像表示システムの構成例のブロック図を示す。

0118

画像表示システム300は、プロジェクター(広義には画像表示装置)310と、スクリーンSCRとを含む。プロジェクター310は、入力画像信号に基づいて図示しない光源からの光を変調し、変調後の光をスクリーンSCRに投射することで画像を表示する。

0119

このプロジェクター310は、画像処理装置320(広義には画像処理部)と、投射装置400(広義には投射部、画像表示部)とを含む。画像処理装置320は、入力画像信号を補正し、補正後の画像信号を投射装置400に出力する。このような画像処理装置320が行う補正処理としては、例えばエッジ強調処理ディテール強調処理階調補正処理等がある。投射装置400は、画像処理装置320からの画像信号に基づいて変調した光をスクリーンSCRに投射する。

0120

図13に、図12の画像処理装置320のハードウェア構成例のブロック図を示す。

0121

画像処理装置320は、CPU322、読み出し専用メモリー(Read Only Memory:ROM)324、ランダムアクセスメモリー(Random Access Memory:RAM)326、I/O(Input/Output)回路328、バス329を有し、バス329を介して、CPU322、ROM324、RAM326、及びI/O回路328が電気的に相互に接続されている。

0122

例えばROM324又はRAM326には、画像処理装置320の機能を実現するプログラムやデータが記憶される。このプログラムは、図9に示す命令セットで規定されたオペコード部と該オペコードに対応したオペランド部とを有する命令データ列である。ROM324又はRAM326に格納されるデータは、この命令データ列を構成する命令データにより参照される。

0123

CPU322は、本実施形態又はその変形例における情報処理装置10としての図2のCPU100の構成及び機能を有する。CPU322は、ROM324又はRAM326に記憶されたプログラムを読み出し、該プログラムに対応した処理を実行することで、画像処理装置324の機能をソフトウェア処理で実現できる。なお、RAM326は、CPU322による処理の作業エリアとして用いられたり、I/O回路328やROM324のバッファエリアとして用いられたりする。

0124

I/O回路328は、図示しない画像信号生成装置からの画像信号の入力インターフェイス処理や、画像処理装置320から投射装置400への画像信号の出力インターフェイス処理等を行う。

0125

画像処理装置320は、図13に示す構成により、ROM324又はRAM326に格納されたプログラムを読み出し、該プログラムに対応した処理を実行することで、入力画像信号に対して例えばエッジ強調処理、ディテール強調処理や階調補正処理等を行った画像信号をソフトウェア処理で生成する。本実施形態では、算術演算命令、論理演算命令及びシフト演算命令がない命令データ列で算術演算処理等を実現できるため、極めて高いコード効率で、コードの難読性を高めて、安全性の高いコードで、例えばエッジ強調処理、ディテール強調処理や階調補正処理等の画像処理を行うことができるようになる。このような画像処理装置320によって処理された画像信号は、投射装置400に送られる。

0126

図14に、図1の投射装置400の構成例の図を示す。図14では、投射装置400が、いわゆる3板式液晶プロジェクターにより構成されるものとして説明するが、本発明に係る投射装置がいわゆる3板式の液晶プロジェクターにより構成されるものに限定されるものではない。即ち、以下では、1画素がR成分のサブ画素、G成分のサブ画素、及びB成分のサブ画素により構成されるものとして説明するが、1画素を構成するサブ画素数色成分数)に限定されるものではない。

0127

また、図14では、画像処理装置320から入力される輝度信号Y、色差信号U、Vが、RGBの各色成分の画像信号に変換された後、色成分毎に光源からの光を変調するものとする。この場合、RGB信号への変換回路は、画像処理装置320が備えていてもよいし、投射装置400が備えていてもよい。

0128

投射装置400は、光源410、インテグレーターレンズ412、414、偏光変換素子416、重畳レンズ418、R用ダイクロイックミラー420R、G用ダイクロイックミラー420G、反射ミラー422、R用フィールドレンズ424R、G用フィールドレンズ424G、R用液晶パネル430R(第1の光変調素子)、G用液晶パネル430G(第2の光変調素子)、B用液晶パネル430B(第3の光変調素子)、リレー光学系440、クロスダイクロイックプリズム460、投射レンズ470を含む。R用液晶パネル430R、G用液晶パネル430G及びB用液晶パネル430Bとして用いられる液晶パネルは、透過型液晶表示装置である。リレー光学系440は、リレーレンズ442、444、446、反射ミラー448、450を含む。

0129

光源410は、例えば超高圧水銀ランプにより構成され、少なくともR成分の光、G成分の光、B成分の光を含む光を射出する。インテグレーターレンズ412は、光源410からの光を複数の部分光に分割するための複数の小レンズを有する。インテグレーターレンズ414は、インテグレーターレンズ412の複数の小レンズに対応する複数の小レンズを有する。重畳レンズ418は、インテグレーターレンズ412の複数の小レンズから射出される部分光を液晶パネル上で重畳する。

0130

また偏光変換素子416は、偏光ビームスプリッターアレイとλ/2板とを有し、光源410からの光を略一種類の偏光光に変換する。偏光ビームスプリッターアレイは、インテグレーターレンズ412により分割された部分光をp偏光とs偏光に分離する偏光分離膜と、偏光分離膜からの光の向きを変える反射膜とを、交互に配列した構造を有する。偏光分離膜で分離された2種類の偏光光は、λ/2板によって偏光方向が揃えられる。この偏光変換素子416によって略一種類の偏光光に変換された光が、重畳レンズ418に照射される。

0131

重畳レンズ418からの光は、R用ダイクロイックミラー420Rに入射される。R用ダイクロイックミラー420Rは、R成分の光を反射して、G成分及びB成分の光を透過させる機能を有する。R用ダイクロイックミラー420Rを透過した光は、G用ダイクロイックミラー420Gに照射され、R用ダイクロイックミラー420Rにより反射した光は反射ミラー422により反射されてR用フィールドレンズ424Rに導かれる。

0132

G用ダイクロイックミラー420Gは、G成分の光を反射して、B成分の光を透過させる機能を有する。G用ダイクロイックミラー420Gを透過した光は、リレー光学系440に入射され、G用ダイクロイックミラー420Gにより反射した光はG用フィールドレンズ424Gに導かれる。

0133

リレー光学系440では、G用ダイクロイックミラー420Gを透過したB成分の光の光路長と他のR成分及びG成分の光の光路長との違いをできるだけ小さくするために、リレーレンズ442、444、446を用いて光路長の違いを補正する。リレーレンズ442を透過した光は、反射ミラー448によりリレーレンズ444に導かれる。リレーレンズ444を透過した光は、反射ミラー450によりリレーレンズ446に導かれる。リレーレンズ446を透過した光は、B用液晶パネル430Bに照射される。

0134

R用フィールドレンズ424Rに照射された光は、平行光に変換されてR用液晶パネル430Rに入射される。R用液晶パネル430Rは、光変調素子(光変調部)として機能し、R用画像信号に基づいて透過率通過率変調率)が変化するようになっている。従って、R用液晶パネル430Rに入射された光(第1の色成分の光)は、R用画像信号に基づいて変調され、変調後の光がクロスダイクロイックプリズム460に入射される。

0135

G用フィールドレンズ424Gに照射された光は、平行光に変換されてG用液晶パネル430Gに入射される。G用液晶パネル430Gは、光変調素子(光変調部)として機能し、G用画像信号に基づいて透過率(通過率、変調率)が変化するようになっている。従って、G用液晶パネル430Gに入射された光(第2の色成分の光)は、G用画像信号に基づいて変調され、変調後の光がクロスダイクロイックプリズム460に入射される。

0136

リレーレンズ442、444、446で平行光に変換された光が照射されるB用液晶パネル430Bは、光変調素子(光変調部)として機能し、B用画像信号に基づいて透過率(通過率、変調率)が変化するようになっている。従って、B用液晶パネル430Bに入射された光(第3の色成分の光)は、B用画像信号に基づいて変調され、変調後の光がクロスダイクロイックプリズム460に入射される。

0137

R用液晶パネル430R、G用液晶パネル430G、B用液晶パネル430Bは、それぞれ同様の構成を有している。各液晶パネルは、電気光学物質である液晶を一対の透明なガラス基板密閉封入したものであり、例えばポリシリコン薄膜トランジスタスイッチング素子として、各サブ画素の画像信号に対応して各色光の通過率を変調する。

0138

本実施形態では、画像処理装置320が、1画素を構成する色成分毎に、入力画像信号に対して上記の例えばエッジ強調処理、ディテール強調処理や階調補正処理等を行った画像信号を生成する。そして、投射装置400では、1画素を構成する色成分毎に光変調素子としての液晶パネルが設けられ、各液晶パネルの透過率がサブ画素に対応した画像信号により制御される。即ち、R成分のサブ画素用の画像信号が、R用液晶パネル430Rの透過率(通過率、変調率)の制御に用いられ、G成分のサブ画素用の画像信号が、G用液晶パネル430Gの透過率の制御に用いられ、B成分のサブ画素用の画像信号が、B用液晶パネル430Bの透過率の制御に用いられる。

0139

クロスダイクロイックプリズム460は、R用液晶パネル430R、G用液晶パネル430G及びB用液晶パネル430Bからの入射光を合成した合成光出射光として出力する機能を有する。投射レンズ470は、出力画像をスクリーンSCR上に拡大して結像させるレンズである。

0140

本実施形態における画像表示システム300では、このような構成を有する投射装置400を制御して、上記の階調補正処理等において補正された画像信号に基づいてスクリーンSCRに画像を表示することができる。

0141

以上のように、プロジェクター310は、プログラム及びデータを記憶するメモリーと、このプログラム及びデータに対応した演算処理を行うCPU322(又はCPU322を有する画像処理装置320)とを含む。本実施形態によれば、極めて高いコード効率で、複雑な演算処理を実現する一方で、リバースエンジニアリング防止やセキュリティー防止が可能なプロジェクター310又は該プロジェクター310を含む画像表示システム300を提供できるようになる。

0142

以上、本発明に係る情報処理装置、演算処理方法及び電子機器等を上記の実施形態又はその変形例に基づいて説明したが、本発明は上記の実施形態又はその変形例に限定されるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。

0143

(1)上記の実施形態又はその変形例では、汎用レジスターが、演算処理部を構成する演算処理ユニットのいずれかに予め割り当てられているものとして説明したが、各汎用レジスターが、演算処理部が有する複数の演算処理ユニットのいずれかに動的に割り当てられるようにしてもよい。

0144

(2)上記の実施形態又はその変形例では、アキュームレーターが、演算処理部を構成する演算処理ユニットのいずれかに予め割り当てられているものとして説明したが、各アキュームレーターが、演算処理部が有する複数の演算処理ユニットのいずれかに動的に割り当てられるようにしてもよい。

0145

(3)上記の実施形態又はその変形例で説明した汎用レジスターの数やアキュームレーターの数に、本発明が限定されるものではない。

0146

(4)上記の実施形態又はその変形例では、演算処理ユニットが行う演算として図7に示す算術演算、論理演算及びシフト演算を例に説明したが、本発明は、図7に示す算術演算、論理演算及びシフト演算に限定されるものではない。例えば、演算処理ユニットが除算演算を行うようにしてもよい。

0147

(5)上記の実施形態又はその変形例では、図9に示す命令セットを例に説明したが、本発明は、図9に示す命令セットに限定されるものではない。

0148

(6)上記の実施形態又はその変形例では、本発明に係る情報処理装置が適用される電子機器としてプロジェクターを例に説明したが、本発明はこれに限定されるものではない。また、このプロジェクターにおいて、1画素を3つの色成分のサブ画素で構成されるものとして説明したが、本発明はこれに限定されるものではない。1画素を構成する色成分数が2、又は4以上であってもよい。更に、プロジェクターの光変調素子として透過型の液晶パネルを用いるものとして説明したが、本発明はこれに限定されるものではない。光変調部として、例えばDLP(Digital Light Processing)(登録商標)、LCOS(Liquid Crystal On Silicon)等を採用してもよい。更に、プロジェクターの光変調素子として、いわゆる3板式の透過型の液晶パネルを用いたライトバルブを例に説明したが、単板式の液晶パネルや4板式以上の透過型の液晶パネルを用いたライトバルブを採用してもよい。

0149

(7)上記の実施形態又はその変形例において、本発明を、情報処理装置、演算処理方法及び電子機器として説明したが、本発明はこれに限定されるものではない。

0150

10…情報処理装置、 20…汎用レジスター部、 30…アキュームレーター部、
40,401〜4011,200,2001〜2003…演算処理部、
50…レジスター部、 60…命令デコード部、 70…バス制御部、
80…プログラムカウンター、 82…スタックポインター、
84…オペコードレジスター、 86…オペランドレジスター、 90…制御部、
100,322…CPU, 300…画像表示システム、 310…プロジェクター、
320…画像処理装置、 324…ROM、 326…RAM、 328…I/O回路、
329…バス、 400…投射装置、 410…光源、
412,414…インテグレーターレンズ、 416…偏光変換素子、
418…重畳レンズ、 420R…R用ダイクロイックミラー、
420G…G用ダイクロイックミラー、 422,448,450…反射ミラー、
424R…R用フィールドレンズ、 424G…G用フィールドレンズ、
430R…R用液晶パネル、 430G…G用液晶パネル、
430B…B用液晶パネル、 440…リレー光学系、
442,444,446…リレーレンズ、 460…クロスダイクロイックプリズム、
470…投射レンズ、 EXU1…第1の演算処理ユニット、
EXU2…第2の演算処理ユニット

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

該当するデータがありません

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

該当するデータがありません

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ