(57)【要約】【課題】ＣＰＵの使用頻度を抑制することにより電力消費や処理時間の削減を図る上で有利なデータ処理装置を提供する。【解決手段】データ処理装置４は、メモリ４２と、演算制御回路４４とを備えている。メモリ４２に割り当てられるアドレスデータのビット構成は、上位ビット側と下位ビット側の２つに分割されており、前記上位ビット側が第１メモリアレイ４２Ａに割り当てられ、前記下位ビット側が第２メモリアレイ４２Ｂ割り当てられている。演算制御回路４４は、第１、第２メモリアレイ４２Ａ、４２Ｂから同時に読み出された第１、第２データＤａ、Ｄｂを入力して所定の演算を行い、その演算結果を出力データＤｏｕｔとしてデータバスＤＢに出力するように構成されている。【選択図】        図２
2005322198.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、論理演算を行う演算制御回路とを有し、これらメモリおよび演算制御回路はアドレスバスとデータバスを介してＣＰＵに接続されたデータ処理装置であって、
前記データ処理装置に割り当てられるデータアドレスは、第１メモリアドレスを示すビット構成部分と、第２メモリアドレスを示すビット構成部分とを含んで構成され、
前記メモリは、第１メモリアレイと、第２メモリアレイとを含み、
前記第１メモリアドレスが前記第１メモリアレイのアドレスとして割り当てられるとともに、前記第２メモリアドレスが前記第２メモリアレイのアドレスとして割り当てられ、
前記演算制御回路は、
前記ＣＰＵから前記アドレスバスを介して前記第１、第２メモリアドレスが前記第１、第２メモリアレイに供給されることによって前記第１、第２メモリアレイから同時に読み出された第１、第２データを該演算制御回路に入力する第１の処理と、
前記入力した第１、第２データに対して所定の演算を行い該演算結果を前記データバスを介して前記ＣＰＵに出力する第２の処理とを行うように構成されている、
ことを特徴とするデータ処理装置。
【請求項２】
前記メモリのデータは、前記第１データを構成するビット構成部分と、前記第２データを構成するビット構成部分とを含むことを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記データ処理装置に割り当てられるデータアドレスは、さらに制御データを示すビット構成部分を含み、前記制御データは、前記演算制御回路によってなされる演算の種類を指定する演算指定データを示すビット構成部分を含み、前記演算制御回路による前記第２の処理は、前記制御データに含まれる前記演算指定データに基づいて前記第１、第２データに対して所定の演算を行い該演算結果を前記データバスを介して前記ＣＰＵに出力するものであることを特徴とする請求項１記載のデータ処理装置。
【請求項４】
前記データ処理装置に割り当てられるデータアドレスは、さらに制御データを示すビット構成部分を含み、前記制御データは、前記第１、第２メモリアレイを選択するためのチップセレクトデータを含むことを特徴とする請求項１記載のデータ処理装置。
【請求項５】
前記第１、第２メモリアレイと前記演算制御回路との間における前記第１、第２データの転送は前記データバスとは独立した内部接続線を介してなされるように構成されていることを特徴とする請求項１記載のデータ処理装置。
【請求項６】
前記メモリは、前記第１、第２メモリアレイに加えて通常メモリ部をさらに有し、前記データ処理装置に割り当てられるデータアドレスは、さらに制御データを示すビット構成部分を含み、前記制御データは、前記第１、第２メモリアレイと前記通常メモリ部を選択するためのチップセレクトデータと、前記演算制御回路によって前記第１、第２データに対する演算を実行するか、前記演算制御回路の演算を非実行とするかを指定する演算制御回路制御データとを含むことを特徴とする請求項１記載のデータ処理装置。
【請求項７】
前記メモリと前記演算制御回路とは単一の半導体チップ上に設けられていることを特徴とすることを特徴とする請求項１記載のデータ処理装置。
【請求項８】
前記第１メモリアレイのアドレスデータのビット幅と、第２メモリアレイのアドレスデータのビット幅とが互いに等しいことを特徴とする請求項１記載のデータ処理装置。
【請求項９】
前記第１メモリアレイのデータのビット幅と、第２メモリアレイのデータのビット幅とが互いに等しいことを特徴とする請求項１記載のデータ処理装置。
【請求項１０】
メモリと、論理演算を行う演算制御回路とを有し、これらメモリおよび演算制御回路はアドレスバスとデータバスを介してＣＰＵに接続されたデータ処理装置であって、
前記データ処理装置に割り当てられるデータアドレスは、第１メモリアドレスを示すビット構成部分と、第２メモリアドレスを示すビット構成部分とを含んで構成され、
前記メモリは、単一のメモリアレイで構成され、
前記メモリアレイから供給されるデータを前記第１メモリアドレスが割り当てられる第１ビット構成部分と前記第２のメモリアドレスが割り当てられる第２ビット構成部分とに分割するとともに、前記第１ビット構成部分から構成される第１データと、前記第２ビット構成部分から構成される第２データとを前記演算制御回路に供給し、かつ、前記第１、第２ビット構成部分のビット幅をビット幅選択信号に基づいて設定するビット構成選択回路を設け、
前記演算制御回路は、
前記ＣＰＵから前記アドレスバスを介して前記第１、第２メモリアドレスが前記メモリアレイに供給されることによって前記ビット構成選択回路から同時に供給される第１、第２データを該演算制御回路に入力する第１の処理と、
前記入力した第１、第２データに対して所定の演算を行い該演算結果を前記データバスを介して前記ＣＰＵに出力する第２の処理とを行うように構成されている、
ことを特徴とするデータ処理装置。
【請求項１１】
前記データ処理装置に割り当てられるデータアドレスは、さらに制御データを示すビット構成部分を含み、前記制御データは、前記演算制御回路によってなされる演算の種類を指定する演算指定データを示すビット構成部分を含み、前記演算制御回路による前記第２の処理は、前記制御データに含まれる前記演算指定データに基づいて前記第１、第２データに対して所定の演算を行い該演算結果を前記データバスを介して前記ＣＰＵに出力するものであることを特徴とする請求項１０記載のデータ処理装置。
【請求項１２】
前記メモリアレイと前記演算制御回路との間における前記第１、第２データの転送は前記データバスとは独立した内部接続線を介してなされるように構成されていることを特徴とする請求項１０記載のデータ処理装置。
【請求項１３】
前記メモリは、前記メモリアレイに加えて通常メモリ部をさらに有し、前記データ処理装置に割り当てられるデータアドレスは、さらに制御データを示すビット構成部分を含み、前記制御データは、前記メモリアレイと前記通常メモリ部を選択するためのチップセレクトデータと、前記演算制御回路によって前記第１、第２データに対する演算を実行するか、前記演算制御回路の演算を非実行とするかを指定する演算制御回路制御データとを含むことを特徴とする請求項１０記載のデータ処理装置。
【請求項１４】
前記メモリと前記演算制御回路と前記ビット構成選択回路は単一の半導体チップ上に設けられていることを特徴とすることを特徴とする請求項１０記載のデータ処理装置。
【請求項１５】
前記ＣＰＵによってレジスタ値が設定されるビット選択制御レジスタが設けられ、前記ビット幅選択信号は前記ビット選択制御レジスタの出力信号をデコードすることによって生成されることを特徴とする請求項１０記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理装置に関する。
【背景技術】
【０００２】
ＣＰＵ（マイクロプロセッサ）を搭載するシステムＬＳＩでは、その処理の高速化のため、チップ上にメモリを搭載した構成となっている（例えば特許文献１参照）。
ＣＰＵにより演算処理を行うために、ＣＰＵはデータメモリから複数のオペランドをフェッチし、場合によってはその演算結果をメモリに書き戻す等の処理が必要になる。
大量のデータ処理をＣＰＵで行うシステムでは、このメモリからのフェッチ回数は膨大なものとなり、メモリアクセス、バスアクセスによる消費電力の増加や、ＣＰＵのソフトウェアサイクル数の増加に繋がる。
例を挙げると、画像処理等ではバイトデータ間の比較、加算、乗算などが頻繁に行われるが、一般にはそのようなデータは全てメモリ上に配置されるので、メモリ対メモリ演算の場合は一つの演算を行う場合でも複数回のメモリアクセスが必要となる。
演算データ量が多くなってくると、当然サイクル数が増えるためシステムとしてのスループットは低下してくる。
図６は二つのオペランドをフェッチして、演算結果をＣＰＵ内部のレジスタに格納するプログラム例とそのタイミングを示す説明図である。
最初の命令はオペランドをメモリアドレスＡ０からＣＰＵレジスタＲ０フェッチする命令、２番目の命令はオペランドをメモリアドレスＡ１からＣＰＵレジスタＲ１にフェッチする命令、３番目の命令は前記２つの命令でフェッチした２つのオペランドで演算を行い、ＣＰＵレジスタＲ２に格納する命令である。
本例は、一般的なパイプラインＣＰＵの場合ではあるが、１セットのデータ処理に、４サイクル必要となる。仮に１００セットのデータを処理するとして、ループ命令などを使用しない場合で４００サイクル必要となるが、このうち、２００サイクルはメモリアクセスに要している。
【特許文献１】特開平６−５２０４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、画像処理等では、多くの場合、演算の種類が比較的単純なものに限られているとともに、処理すべきデータ数が大量である。したがって、このような単純で大量の演算処理にＣＰＵを用いることは、システムバスの使用頻度やサイクル数の増大を招き、その結果、電力消費や処理時間の削減を図る上で不利があった。
本発明は、このような事情に鑑みなされたもので、その目的はＣＰＵの使用頻度を抑制することにより電力消費や処理時間の削減を図る上で有利なデータ処理装置を提供することにある。
【課題を解決するための手段】
【０００４】
上記目的を達成するために本発明のデータ処理装置は、メモリと、論理演算を行う演算制御回路とを有し、これらメモリおよび演算制御回路はアドレスバスとデータバスを介してＣＰＵに接続されたデータ処理装置であって、前記データ処理装置に割り当てられるデータアドレスは、第１メモリアドレスを示すビット構成部分と、第２メモリアドレスを示すビット構成部分とを含んで構成され、前記メモリは、第１メモリアレイと、第２メモリアレイとを含み、前記第１メモリアドレスが前記第１メモリアレイのアドレスとして割り当てられるとともに、前記第２メモリアドレスが前記第２メモリアレイのアドレスとして割り当てられ、前記演算制御回路は、前記ＣＰＵから前記アドレスバスを介して前記第１、第２メモリアドレスが前記第１、第２メモリアレイに供給されることによって前記第１、第２メモリアレイから同時に読み出された第１、第２データを該演算制御回路に入力する第１の処理と、前記入力した第１、第２データに対して所定の演算を行い該演算結果を前記データバスを介して前記ＣＰＵに出力する第２の処理とを行うように構成されていることを特徴とする。
また、本発明は、メモリと、論理演算を行う演算制御回路とを有し、これらメモリおよび演算制御回路はアドレスバスとデータバスを介してＣＰＵに接続されたデータ処理装置であって、前記データ処理装置に割り当てられるデータアドレスは、第１メモリアドレスを示すビット構成部分と、第２メモリアドレスを示すビット構成部分とを含んで構成され、前記メモリは、単一のメモリアレイで構成され、前記メモリアレイから供給されるデータを前記第１メモリアドレスが割り当てられる第１ビット構成部分と前記第２のメモリアドレスが割り当てられる第２ビット構成部分とに分割するとともに、前記第１ビット構成部分から構成される第１データと、前記第２ビット構成部分から構成される第２データとを前記演算制御回路に供給し、かつ、前記第１、第２ビット構成部分のビット幅をビット幅選択信号に基づいて設定するビット構成選択回路を設け、前記演算制御回路は、前記ＣＰＵから前記アドレスバスを介して前記第１、第２メモリアドレスが前記メモリアレイに供給されることによって前記ビット構成選択回路から同時に供給される第１、第２データを該演算制御回路に入力する第１の処理と、前記入力した第１、第２データに対して所定の演算を行い該演算結果を前記データバスを介して前記ＣＰＵに出力する第２の処理とを行うように構成されていることを特徴とする。
【発明の効果】
【０００５】
本発明のデータ処理装置によれば、演算制御回路がＣＰＵからアドレスバスを介して供給されるアドレスに含まれる第１、第２メモリアドレスが第１、第２メモリアレイに供給されることによって第１、第２メモリアレイから同時に読み出された第１、第２データを演算制御回路に入力し、該入力した第１、第２データに対して所定の演算を行い該演算結果を前記データバスを介してＣＰＵに出力するように構成されているので、ＣＰＵは１回のアクセスで１個の演算結果を得ることができる。したがって、ＣＰＵによるアドレスバスを用いたメモリへのアクセス頻度を削減することによりアドレスバスの遷移によって消費される電流を低減でき電力消費を低減する上で有利となる。また、ＣＰＵによる演算動作が不要となるため、１セットのデータ処理に要するサイクル数を削減できるので処理時間を短縮する上で有利となる。
また、本発明のデータ処理装置によれば、単一のメモリアレイから読み出される第１データと第２データのビット幅をビット構成選択回路によって設定できるように構成し、第１データに割り当てられた第１メモリアドレスと、第２データに割り当てられた第２メモリアドレスをメモリアレイに供給することで前記第１の処理と第２の処理を行うようにした。したがって、前記効果に加えて、データ処理装置のコストアップを抑制しつつ、ビット幅が異なる様々なビット構成のデータで演算を行う上で有利となる。
【発明を実施するための最良の形態】
【０００６】
電力消費や処理時間の削減を図るという目的を、演算制御回路と複数のメモリアレイを設けることによって実現した。
【実施例１】
【０００７】
以下、本発明によるデータ処理装置の実施例を図面に基づいて詳細に説明する。
図１は本発明の実施例１におけるデータ処理装置を含むＬＳＩの構成を示すブロック図、図２は本発明の実施例１におけるデータ処理装置の構成を示すブロック図である。
【０００８】
図１に示すように、ＬＳＩ１０は、ＣＰＵ１、命令メモリ２、データメモリ３、データ処理装置４を有している。言い換えると、ＣＰＵ１、命令メモリ２、データメモリ３、データ処理装置４は単一の半導体チップ上に設けられている。
ＣＰＵ１は、データバスＤＢおよびアドレスバスＡＢを介してデータメモリ３とデータ処理装置４に接続されている。
命令メモリ２は、ＣＰＵ１が実行すべき制御プログラムを格納しており、専用の命令バスを介してＣＰＵ１に制御プログラムが読み出されるように構成されている。
データメモリ３は、ＣＰＵ１によって処理される種々のデータが格納されており、ＣＰＵ１によってデータメモリ３に対するデータの読み出し、書き込みがなされるように構成されている。
【０００９】
図２に示すように、データ処理装置４は、メモリ４２と、演算制御回路４４とを備え、メモリ４２と演算制御回路４４とはデータバスＤＢとは異なる内部接続線４６を介して接続されている。
メモリ４２は、ハードウェアとしては単一のメモリから構成され、後述するようにメモリ４２に割り当てられるアドレスデータのビット構成は、上位ビット側と下位ビット側の２つに分割されており、前記上位ビット側が第１メモリアレイ４２Ａに割り当てられ、前記下位ビット側が第２メモリアレイ４２Ｂに割り当てられている。
そして、メモリ４２のデータのビット構成も上位ビット側と下位ビット側の２つに分割されており、前記上位ビット側が第１メモリアレイ４２Ａに格納される第１データＤａを構成するビット構成部分として割り当てられ、前記下位ビット側が第２メモリアレイ４２Ｂに格納される第２データＤｂを構成するビット構成部分として割り当てられている。言い換えると、メモリ４２のデータは、第１データＤａと第２データＤｂの２つのオペランドに分割されている。
【００１０】
演算制御回路４４は、第１、第２メモリアレイ４２Ａ、４２Ｂから内部接続線４６を介して同時に読み出された第１、第２データＤａ、Ｄｂを入力して所定の演算を行い、その演算結果を出力データＤｏｕｔとしてデータバスＤＢに出力するように構成されている。
また、演算制御回路４４は、データバスＤＢを介して供給されるデータを入力データＤｉｎとしてメモリ４２に書き込む動作を行うようにも構成されている。
また、メモリ４２に供給されるアドレスは、アドレスバスＡＢからアドレスデコーダ６に供給され、アドレスデコーダ６でデコードされてからメモリ４２に供給されるが、アドレスデコーダ６の動作および機能は一般的なアドレスデコーダの動作および機能と変わるところはない。また、アドレスデコーダ６をデータ処理装置４の内部に設けるか、データ処理装置４の外部に設けるかは任意である。
【００１１】
図３は、ＣＰＵ１からデータ処理装置４に割り当てられるアドレスデータのビット構成を示す説明図である。
データ処理装置４に割り当てられるアドレスデータ、すなわちメモリ４２に割り当てられるアドレスデータのビット構成は以下のとおりであり、上位ビットから下位ビットの順で次のように割り当てられている。
チップイネーブルのデコード用ビットＩ（チップイネーブルデータＣＥとして使用）：ｉビット
演算機能指定用ビットＪ（演算機能指定データＣＴとして使用）：ｊビット
第１メモリアレイ４２ＡのメモリアドレスＡａ：ｍビット
第２メモリアレイ４２ＢのメモリアドレスＡｂ：ｎビット
アドレスデータのビット幅Ｂ＝（ｉ＋ｊ＋ｍ＋ｎ）ビット
チップイネーブルのデコード用ビットＩ（チップセレクトデータに相当）は第１、第２メモリアレイ４２Ａ、４２Ｂのチップイネーブルデータ（チップイネーブル信号）を示すものであり、特許請求の範囲の制御データに相当する。
演算機能指定用ビットＪ（演算指定データ）は演算制御回路４４によって第１、第２データＤａ、Ｄｂに対して行われる演算の種類、例えば四則演算（加算、減算など）、あるいは、論理演算（論理和、論理積、排他的論理和）などを指定するものであり、特許請求の範囲の制御データに相当する。
また、本実施例では、第１メモリアレイ４２ＡのメモリアドレスＡａのビット幅（ｍビット）と第２メモリアレイ４２ＢのメモリアドレスＡｂのビット幅（ｎビット）とが同一のビット数に設定され、上位側に第１メモリアレイ４２ＡのメモリアドレスＡａが、下位側に第２メモリアレイ４２ＢのメモリアドレスＡｂが割り当てられている。
言い換えると、アドレスデータのそれぞれはこれら制御データを示すビット構成部分と、第１メモリアレイ４２ＡのメモリアドレスＡａを示すビット構成部分と、第２メモリアレイ４２ＢのメモリアドレスＡｂを示すビット構成部分とを含んでいる。
また、本実施例では、第１データＤａのビット幅と第２データＤｂのビット幅とが同一のビット数となるように設定され、したがって第１、第２データＤａ、Ｄｂのビット幅の和はメモリ４２のデータのビット幅と同一であり、かつ、演算制御回路４４の出力データＤｏｕｔのビット幅と同一である。
【００１２】
さらに具体的な数値を用いて説明する。
実際に必要とされるアドレスデータのビット幅は、第１、第２メモリアレイ４２Ａ、４２Ｂの容量に応じて決定される。アドレスデータのビット幅が１４ビット（本）であれば、１６Ｋワードのアドレッシングが可能なことから、ＣＰＵ１が３２ビットのアドレス空間をサポートするものであれば、１４×２＝２８ビットを第１、第２メモリアレイ４２Ａ、４２Ｂのアドレッシングに使用しても、３２−２８＝４ビットを、チップイネーブルのデコード用ビットＩと、演算機能指定用ビットＪとに割り当てることができる。なお、演算制御回路４４で行う演算が１種類のみであった場合には演算機能指定用ビットＪを省略することもできる。
また、本実施例では、図３に示すように、メモリ４２のうちデータアドレス（０Ｘ００００〜０Ｘ３ＦＦＦ）の部分を通常のメモリと同様にリードライト可能な通常メモリとしてマッピングし、メモリ４２のうちデータアドレス（０Ｘ６０００〜０Ｘ７ＦＦＦ）の部分を第１、第２メモリアレイ４２Ａ、４２Ｂとしてマッピングした場合を示している。
したがって、この場合にはチップイネーブルのデコード用ビットＩは、前記通常のメモリと、第１、第２メモリアレイ４２Ａ、４２Ｂとを選択できるように構成されている。
【００１３】
また本実施例では、演算機能指定用ビットＪを２ビットとし、演算機能指定用ビットＪが０１であれば第１データＤａと第２データＤｂの論理積を行うことを意味し、演算機能指定用ビットＪが００であれば演算制御回路４４の演算動作を非実行としメモリ４２のデータ（通常メモリのデータ、および第１データＤａと第２データＤｂ）をそのままリードすることを意味するものとする。したがって、演算機能指定用ビットＪは特許請求の範囲の演算制御回路制御データを含んでいる。
メモリ４２の通常メモリ部分、および、第１、第２メモリアレイ４２Ａ、４２Ｂに対するデータの書き込み動作は、通常のメモリと同様に行われる。すなわち、図２では省略したが、制御データとしてメモリ４２に対する書き込み（ライト）あるいは読み出し（リード）の何れを行うかを指定するリード／ライト制御データが演算制御回路４４に供給されるように構成されている。
通常メモリ部分に対する書き込みは、図３に示すように、ライト状態のリード／ライト制御データが供給された演算制御回路４４がアドレスバスＡＢを介して指定されたアドレスに、データバスＤＢを介して供給されたデータを書き込むことでなされる。
通常メモリ部分からの読み出しは、図３に示すように、リード状態のリード／ライト制御データが供給された演算制御回路４４がアドレスバスＡＢを介して指定されたアドレスからデータを読み出しデータバスＤＢへ出力することでなされる。
また、第１、第２メモリアレイ４２Ａ、４２Ｂに対する第１、第２データＤａ、Ｄｂの書き込み動作および読み出し動作も上述した通常メモリ部分の場合と同様であるが、データが第１、第２データＤａ、Ｄｂに分割されている点が異なっている。
【００１４】
次に、ＬＳＩ１０の動作について図４のタイミングチャートを参照して説明する。
予め第１、第２メモリアレイ４２Ａ、４２Ｂには第１、第２データＤａ、Ｄｂが格納されているものとする。
図中、ＣＬＫはＣＰＵ１の動作クロックを示し、ＡＤＲＳはＣＰＵ１からアドレスバスＡＢを介してデータ処理装置４に供給されるアドレスを示し、ＤＡＴＡはデータ処理装置４からデータバスＤＢに出力されるデータを示している。また、ＣＰＵ演算はＣＰＵ１でなされる演算の有無を示し、ＣＰＵ命令はＣＰＵ１で実行される命令を示している。
まず、命令ｉ０がメモリ４２のアドレスＡ０１を読み出してレジスタＲ０に格納することを示すＬＯＡＤ命令であった場合について説明する。
この場合、ＣＰＵ１は１サイクル目でアドレスＡ０１をデータ処理回路４に供給する。このアドレスＡ０１には、前述したデコード用ビットＩ、演算機能指定用ビットＪ（本例では０１）、第１メモリアレイ４２ＡのメモリアドレスＡａ、第２メモリアレイ４２ＢのメモリアドレスＡｂが含まれている。したがって、デコード用ビットＩ、メモリアドレスＡａ、Ａｂに対応して第１、第２メモリアレイ４２Ａ、４２Ｂから第１、第２データＤａ、Ａｂが演算制御回路４４に供給される（第１の処理）。
ＣＰＵ１が２サイクル目の命令ｉ１を実行している間に、演算制御回路４４は演算機能指定用ビットＪによって指定される演算（本例では論理積）を行いその演算結果を出力データＤｏｕｔとしてデータバスＤＢに出力する（第２の処理）。データバスＤＢに出力された出力データＤｏｕｔはＣＰＵ１のレジスタＲ０に格納される。
また、ＣＰＵ１は演算処理に関わっていないため、演算に要するサイクルが必要ない。
以下同様に命令ｉ１、ｉ２、ｉ３、ｉ４……が順次行われる。
したがって、１個分の演算結果を得るために必要なサイクル数、すなわち１セット分のデータ処理に必要なサイクル数は２サイクルで済むことになる。そして、連続して複数の命令が順次実行されると、ＣＰＵ１によるアドレスの供給とデータ処理装置４からの出力データＤｏｕｔの出力とがほぼ同時になされることから、例えば３セット分のデータ処理は４サイクルで済み、１００セット分のデータ処理は１０１サイクルで済むことになる。
【００１５】
以上説明したように本実施例によれば、演算制御回路４４は、ＣＰＵ１からアドレスバスＡＢを介して供給されるアドレスに含まれる第１、第２メモリアドレスＡａ、Ａｂが第１、第２メモリアレイ４２Ａ、４２Ｂに供給されることによって第１、第２メモリアレイ４２Ａ、４２Ｂから同時に読み出された第１、第２データＤａ、Ｄｂを演算制御回路４４に入力する第１の処理と、入力した第１、第２データに対して所定の演算を行い該演算結果を前記データバスＤＢを介してＣＰＵに出力する第２の処理とを行うように構成されている。
したがって、ＣＰＵ１は１回のアクセスで１個の演算結果を得ることができるので、ＣＰＵ１によるアドレスバスＡＢを用いたメモリへのアクセス頻度を削減することによりアドレスバスＡＢの遷移によって消費される電流を低減でき電力消費を低減する上で有利となる。また、ＣＰＵ１による演算動作が不要となるため、１セットのデータ処理に要するサイクル数を削減できるので処理時間を短縮する上で有利となる。
具体的に説明すると、本実施例では、ＣＰＵ１は１回のアクセスで１個の演算結果を得ることができることになり、例えば、従来技術の図６のタイミングチャートと比較すると、従来は１セットのデータ処理に４サイクルが必要でそのうち２サイクルがメモリへのアクセスであったのに対し、本発明では２サイクルで済みそのうち１サイクルがメモリへのアクセスとなっており、合計で処理時間を半分に削減することができる。
特に、画像処理等のように単純で大量の演算処理をデータ処理装置４によって行った場合には、同様の処理をＣＰＵ１を用いて行った場合と比較して電力消費および処理時間の削減効果が顕著である。
また、本実施例では、演算制御回路４４と第１、第２メモリアレイ４２Ａ、４２Ｂとの間における第１、第２データＤａ、Ｄｂの転送はＣＰＵ１に接続された前記データバスＤＢとは独立した内部接続線４６を介してなされるので、データ転送を前記データバスＤＢを介して行う場合に比較してデータバスＤＢ上を流れる電流を低減でき電力消費を低減する上でさらに有利となる。
【実施例２】
【００１６】
次に実施例２について説明する。
実施例２はデータ処理装置４を画像処理に適用したものである。
図５は画像データのマスク処理の概念を示す説明図である。
画像データの典型的な処理としてマスク処理がある。マスク処理は処理対象となるイメージデータから所定部分のみを取り出したい場合に行うものである。
図５に示すように、処理対象となる元イメージデータをＸ、マスクイメージデータをＭとする。
元イメージデータは複数の画素データＸ１、Ｘ２、Ｘ３、……から構成されている。
マスクイメージデータは複数のマスクデータＭ１、Ｍ２、Ｍ３、……から構成されており、図中白色部分は元イメージデータの画素データを残すためマスクデータを示し、黒色部分は元イメージデータの画素データを取り除くためのマスクデータを示している。
従来のマスク処理では、元イメージデータとマスクイメージデータとをそれぞれメモリに格納しておき、ＣＰＵは、元イメージデータの画素データを１つ読み出し、マスクイメージデータのマスクデータを１つ読み出し、これら読み出した画素データとマスクデータとの論理和をとり、その演算結果を出力データとして出力するといった手順で行っている。したがって、画素データの読み出しとマスクデータの読み出しとの２回の読み出し（メモリアクセス）が必要となる。
本発明のデータ処理回路４を用いた場合には次のように処理を行えばよい。すなわち、第１メモリアレイ４２Ａに元イメージデータの各画素データＸ１、Ｘ２、Ｘ３、……を第１データＤａとして格納し、第２メモリアレイ４２Ｂにマスクイメージデータの各マスクデータＭ１、Ｍ２、Ｍ３……を第２データＤｂとして格納しておき、演算処理回路４４で行う演算を論理和とする。
後はデータ処理回路４にアドレスバスＡＢを介してアドレスを順次供給することによりマスク処理された画素データが順次出力されることになり、マスク処理された１つの画素データを得るために１回のアクセスを行うだけで済み、処理時間が従来の半分で済むことになる。
【００１７】
なお、上述した各実施例では、データ処理回路４のメモリ４２を第１、第２メモリアレイ４２Ａ、４２Ｂの２つのメモリアレイに分割したが、メモリアレイの数は３つ以上であってもよく、本実施例と同様の作用効果を奏することはもちろんである。また、その場合は、データ処理装置４に割り当てられるデータアドレスがメモリアレイの数と同じ数のビット構成部分を含んで構成されていればよい。
また、各実施例では、データ処理回路４によって行う演算処理として画像処理を例示したが、無論画像処理以外の演算処理であってもよい。
また、本実施例では、データ処理回路４がＣＰＵ１、命令メモリ２、データメモリ３とともに単一の半導体チップ上に構成されたＬＳＩ１０に含まれたものとして例示したが、本発明はこれに限定されるものではなく、データ処理回路４をＣＰＵ１、命令メモリ２、データメモリ３とは別体の部品で構成してもよくその構成は任意である。
【実施例３】
【００１８】
次に実施例３について説明する。
上述した実施例１、２では、データ処理回路４のメモリ４２を複数のメモリアレイに分割したため、第１データおよび第２データのビット幅は固定されたものとなる。
したがって、ビット幅が異なる様々なビット構成のデータで演算を行うためには、ビット構成毎にメモリ４２を設ける必要が生じ、データ処理装置４のコストがかさむ不利がある。
そこで、実施例３では、このような課題を解決するために演算オペランドのビット幅を変更することができるデータ処理回路を実現した。
【００１９】
図７は実施例３におけるデータ処理装置を含むＬＳＩの構成を示すブロック図、図８は実施例３におけるデータ処理装置の構成を示すブロック図、図９は実施例３におけるデータ処理装置のビット構成選択回路の構成と動作を説明する図である。以下では実施例１と同様の部分には同一の符号を付して説明する。
まず、図７を参照してデータ処理装置５の概略構成について説明する。
データ処理装置５は、メモリ５２と、演算制御回路５４と、ビット構成選択回路５６と、選択制御回路５８とを備え、メモリ５２とビット構成選択回路５４はデータバスＤＢとは異なる内部接続線５０２を介して接続され、ビット構成選択回路５４と演算回路５８はデータバスＤＢとは異なる内部接続線５０４を介して接続されている。
メモリ５２は、ハードウェアとしては単一のメモリから構成され、かつ、単一のメモリアレイとして構成されている。
ビット構成選択回路５６は、メモリ５２から供給されるビット幅ｋのデータをビット幅ｍの第１ビット構成部分とビット幅ｎの第２ビット構成部分とに分割するとともに、前記第１ビット構成部分から構成される第１データＤａと、前記第２ビット構成部分から構成される第２データＤｂとを演算制御回路５４に供給するように構成されている。したがって、メモリ５２のデータは、第１データＤａと第２データＤｂの２つのオペランドに分割されてメモリ５２から読み出されることになる。
また、メモリ５２に格納されているデータのうち、前記第１ビット構成部分（第１データＤａ）には、実施例１と同様の第１メモリアドレスが割り当てられ、第２ビット構成部分（第２データＤｂ）には、実施例１と同様の第２メモリアドレスが割り当てられる。
ビット構成選択回路５６は、選択制御回路５８から供給されるビット幅選択信号Ｓｂに基づいて前記第１、第２ビット構成部分のビット幅ｎ、ｍを設定する。
選択制御回路５８は、ＣＰＵ１からの命令に基づいて前記ビット幅選択信号Ｓｂを生成する。
【００２０】
演算制御回路５４は、メモリ５２から内部接続線５０２、ビット構成選択回路５６、内部接続線５０４を介して同時に読み出された第１、第２データＤａ、Ｄｂを入力して所定の演算を行い、その演算結果を出力データＤｏｕｔとしてデータバスＤＢに出力するように構成されている。
また、演算制御回路５４は、実施例１と同様に、データバスＤＢを介して供給されるデータを入力データＤｉｎとしてメモリ５２に書き込む動作を行うようにも構成されている。
また、メモリ５２に供給されるアドレスは、実施例１と同様に、アドレスバスＡＢからアドレスデコーダ６（図８参照）に供給され、アドレスデコーダ６でデコードされてからメモリ５２に供給されるが、アドレスデコーダ６の動作および機能は一般的なアドレスデコーダの動作および機能と変わるところはない。また、実施例１と同様に、アドレスデコーダ６をデータ処理装置５の内部に設けるか、データ処理装置５の外部に設けるかは任意である。
【００２１】
次に、図８、図９を参照してデータ処理回路５の構成について具体的に説明する。なお、図８、図９では図面の繁雑化を避けるためにマルチプレクサ５６０２、演算回路５４０２の一部を省略している。
本例では、図９に示すように、メモリ５２のビット幅ｋを１６ビットとし、第１、第２データＤａ、Ｄｂのビット幅ｎ、ｍを次の２種類に切り換えて、言い換えると、演算オペランドの分割を次の２種類から選択して（切り換えて）設定するものとし、データ出力回路５から出力されるデータのビット幅が１２ビットであるものとする。
第１の設定：ｎ＝４ビット、ｍ＝１２ビット
第２の設定：ｎ＝８ビット、ｍ＝８ビット
【００２２】
図９に示すように、実施例３では、ビット構成選択回路５６は８個のマルチプレクサ５６０２を有している。
選択制御回路５８は、ＣＰＵ１によって制御されるビット選択制御レジスタ５８０２を含み、各マルチプレクサ５６０２に供給されるビット幅選択信号Ｓｂはビット選択制御レジスタ５８０２の出力信号をデコードすることによって生成される。
演算制御回路５４は、四則演算あるいは論理演算を行う１２個の演算回路５４０２と、各演算回路５４０２の演算機能を選択する演算機能選択制御回路５４０４（図８では省略）とを有している。演算機能選択制御回路５４０４は、実施例１と同様の演算機能指定データＣＴに基づいて制御動作を行う。
図８に示すように、各演算回路５４０２の出力端はバッファ５００２を介してデータバスＤＢに接続され、バッファ５００２は、実施例１と同様のチップイネーブルデータＣＥによって動作するように構成されている。
【００２３】
次に、選択制御回路５８を構成する各マルチプレクサ５６０２の構成について具体的に説明する。
図９に示すように、選択制御回路５８は、各マルチプレクサ５６０２に対して、メモリ５２から出力されるデータを前記第１の設定と第２の設定に応じて第１ビット構成部分と第２ビット構成部分に分割するための制御信号（ビット幅制御信号Ｓｂ）を生成する。
したがって、選択制御回路５８は、第１の設定の場合には、メモリ５２から出力されるデータの１６ビットのうち、下位のビット０〜ビット３までの４ビットのデータを第１ビット構成部として各演算回路５４０２に入力するとともに、メモリ５２から出力されるデータの１６ビットのうち、上位のビット４〜ビット１５を第２ビット構成部として各演算回路５４０２に入力するように構成されている。
また、選択制御回路５８は、第２の設定の場合には、メモリ５２から出力されるデータの１６ビットのうち、ビット０〜ビット７までの８ビットのデータを第１ビット構成部として各演算回路５４０２に入力するとともに、メモリ５２から出力されるデータの１６ビットのうち、ビット８〜ビット１５を第２ビット構成部として各演算回路５４０２に入力するように構成されている。
具体的には、８個のマルチプレクサ５６０２を下位ビットから上位ビットの順番に第１マルチプレクサ５６０２〜第８マルチプレクサ５６０２とすると、第１マルチプレクサ５６０２はビット４、ビット８の選択を行うように、第２マルチプレクサ５６０２はビット５、ビット９の選択を行うように、第３マルチプレクサ５６０２はビット６、ビット１０の選択を行うように、第４マルチプレクサ５６０２はビット７、ビット１１の選択を行うように、第５マルチプレクサ５６０２はデータ０、ビット１２の選択を行うように、第６マルチプレクサ５６０２はデータ０、ビット１３の選択を行うように、第７マルチプレクサ５６０２はデータ０、ビット１４の選択を行うように、第８マルチプレクサ５６０２はデータ０、ビット１５の選択を行うようにそれぞれ構成されている。
【００２４】
次に、演算制御回路５６を構成する各演算回路５４０２の構成について具体的に説明する。
本実施例では、演算回路５４０２が１２個設けられ、これら演算回路５４０２によって加算が行われるものとする。したがって、第１の設定では１２ビットと４ビットの加算が行われ、第２の設定では８ビットと８ビットの加算が行われる。
具体的には、１２個の演算回路５４０２を下位ビットから上位ビットの順番に第１演算回路５４０２〜第１２演算回路５４０２とすると、第１演算回路５４０２は、ビット０と第１マルチプレクサ５６０２の出力データが入力され、第２演算回路５４０２は、ビット１と第２マルチプレクサ５６０２の出力データが入力され、第３演算回路５４０２は、ビット２と第３マルチプレクサ５６０２の出力データが入力され、第４演算回路５４０２は、ビット３と第４マルチプレクサ５６０２の出力データが入力され、第５演算回路５４０２は、ビット４と第５マルチプレクサ５６０２の出力データが入力され、第６演算回路５４０２は、ビット５と第６マルチプレクサ５６０２の出力データが入力され、第７演算回路５４０２は、ビット６と第７マルチプレクサ５６０２の出力データが入力され、第８演算回路５４０２は、ビット７と第８マルチプレクサ５６０２の出力データが入力され、第９演算回路５４０２は、ビット８とデータ０が入力され、第１０演算回路５４０２は、ビット９とデータ０が入力され、第１１演算回路５４０２は、ビット１０とデータ０が入力され、第１２演算回路５４０２は、ビット１１とデータ０が入力されるようにそれぞれ構成されている。
【００２５】
上述のように、第５〜第８マルチプレクサ５６０２の一方の入力としてデータ０が設定され、第９〜第１２演算回路５４０２の一方の入力としてデータ０が設定されている理由について説明する。
第１の設定では第１ビット構成部（上位１２ビット）と第２ビット構成部（下位４ビット）の加算が行われるため、第１ビット構成部の上位１２ビットのうち下位４ビットを除く上位８ビットに対応する第２ビット構成部側には８ビット分のデータが存在しない。言い換えると、第２ビット構成部は８ビット分のデータがない。したがって、この８ビットの部分に対して、第２ビット構成部が正数であれば上述のようにデータ０を設定し、負数であれば符号拡張した固定値が設定される。このようなデータ０、固定値の設定はビット構成選択回路５６によって行われる。
また、第２の設定では第１ビット構成部（上位８ビット）と第２ビット構成部（下位８ビット）の加算が行われるため、第１ビット構成部と第２ビット構成部の双方とも、１２ビットに対してそれぞれ上位４ビット分のデータがない。したがって、この４ビットの部分に対して、上述と同様の考え方により、正数、負数に対応したデータ０、固定値の設定が上記と同様にビット構成選択回路５６によって行われる。
【００２６】
次に、データ処理装置５の動作について図４を流用して説明する。
予めメモリ５２には、前記第１の設定あるいは第２の設定の何れかに対応して分割された演算オペランドとしての第１、第２データＤａ、Ｄｂが格納されている。
まず、ＣＰＵ１は、データ処理回路５に対して演算オペランドのビット幅の設定を行う。すなわち、前記第１の設定および第２の設定の何れか一方を選択し、ビット選択制御レジスタ５８０２を制御し、ビット選択制御レジスタ５８０２により各マルチプレクサ５６０２に対してビット幅選択信号Ｓｂを供給させ、これにより各マルチプレクサ５６０２はビット幅選択信号Ｓｂに対応して選択動作を行う。
次いで、ＣＰＵ１は１サイクル目でアドレスＡ０１をデータ処理回路４に供給する。このアドレスＡ０１には、前述したデコード用ビットＩ、演算機能指定用ビットＪ（本例では０１）、第１メモリアドレスＡａ、第２メモリアドレスＡｂが含まれている。したがって、メモリアドレスＡａ、Ａｂに対応してメモリ５２からデータＤがビット構成選択回路５６に入力され、このビット構成選択回路５６によってデータＤが２つのオペランドとしての第１、第２データＤａ、Ｄｂに分割されて演算制御回路５４に供給される（第１の処理）。
ＣＰＵ１が２サイクル目の命令ｉ１を実行している間に、演算制御回路５４は演算機能指定用ビットＪによって指定される演算（本例では論理積）を行いその演算結果を出力データＤｏｕｔとしてバッファ５００２を介してデータバスＤＢに出力する（第２の処理）。データバスＤＢに出力された出力データＤｏｕｔはＣＰＵ１のレジスタＲ０に格納される。
また、ＣＰＵ１は演算処理に関わっていないため、演算に要するサイクルが必要ない。
以下同様に命令ｉ１、ｉ２、ｉ３、ｉ４……が順次行われる。
したがって、１個分の演算結果を得るために必要なサイクル数、すなわち１セット分のデータ処理に必要なサイクル数は２サイクルで済むことになる。そして、連続して複数の命令が順次実行されると、ＣＰＵ１によるアドレスの供給とデータ処理装置５からの出力データＤｏｕｔの出力とがほぼ同時になされることから、例えば３セット分のデータ処理は４サイクルで済み、１００セット分のデータ処理は１０１サイクルで済むことになる。
【００２７】
実施例３によれば、実施例１と同様に、メモリ５２へのアクセスを削減することで電力消費および処理時間を削減する上で有利であることは無論のこと、データ処理回路５は、ＣＰＵ１からの命令に従って演算オペランドの分割を前記第１の設定と第２の設定の２種類から選択することで、演算するデータのビット幅を変更することができるので、データ処理装置５のコストアップを抑制しつつ、ビット幅が異なる様々なビット構成のデータで演算を行う上で有利となる。
【００２８】
なお、実施例３では、メモリ５２のデータをビット構成選択回路５６によって第１ビット構成部分と第２ビット構成部分の２つのビット構成部分に分割する場合について説明したが、分割するビット構成部分の数は３つ以上であってもよく、実施例３と同様の作用効果を奏することはもちろんである。また、その場合は、データ処理装置５に割り当てられるデータアドレスは、メモリ５２の分割されたビット構成部分の数と同じ数のメモリアドレスに分割されていればよい。
また、実施例３では、ビット構成選択回路５６による演算オペランドの分割を２種類から選択して設定したが、演算オペランドの分割を何種類から選択するかは任意であり、分割された演算オペランドのビット幅の設定も任意である。
また、実施例３では、選択制御回路５８をビット選択制御レジスタ５８０２で構成し、このビット選択制御レジスタ５８０２をデータ処理装置５の内部に設けた場合について説明したが、ビット選択制御レジスタ５８０２と同様のレジスタをデータ処理装置５の外部に設けるようにしてもよく、例えば、ＣＰＵ１のワーキングエリアを構成するメモリ上に前記レジスタを設けてもよい。
また、データ処理回路５によって行う演算処理は、四則演算、論理演算、あるいは画像処理以外の演算処理であってもよいことは実施例１、２と同様である。
また、データ処理回路５は、ＣＰＵ１、命令メモリ２、データメモリ３とともに単一の半導体チップ上に構成されたＬＳＩ１０に含まれたものに限定されず、データ処理回路５をＣＰＵ１、命令メモリ２、データメモリ３とは別体の部品で構成してもよくその構成は任意であることは実施例１、２と同様である。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施例１におけるデータ処理装置を含むＬＳＩの構成を示すブロック図である。
【図２】本発明の実施例１におけるデータ処理装置の構成を示すブロック図である。
【図３】ＣＰＵ１からデータ処理装置４に割り当てられるアドレスデータのビット構成を示す説明図である。
【図４】実施例１におけるＬＳＩ１０の動作を示すタイミングチャートである。
【図５】画像データのマスク処理の概念を示す説明図である。
【図６】二つのオペランドをフェッチして、演算結果をＣＰＵ内部のレジスタに格納するプログラム例とそのタイミングを示す説明図である。
【図７】実施例３におけるデータ処理装置を含むＬＳＩの構成を示すブロック図である。
【図８】実施例３におけるデータ処理装置の構成を示すブロック図である。
【図９】実施例３におけるデータ処理装置のビット構成選択回路の構成と動作を説明する図である。
【符号の説明】
【００３０】
１……ＣＰＵ、４……データ処理装置、４２……メモリ、４２Ａ……第１メモリアレイ、４２Ｂ……第２メモリアレイ、４４……演算制御回路、Ｄａ……第１データ、Ｄｂ……第２データ、Ａａ……第１メモリアレイ４２Ａのアドレス、Ａｂ……第２メモリアレイ４２Ｂのアドレス、ＡＢ……アドレスバス、ＤＢ……データバス。
【図１】
2005322198.tif 000003
【図２】
2005322198.tif 000004
【図３】
2005322198.tif 000005
【図４】
2005322198.tif 000006
【図５】
2005322198.tif 000007
【図６】
2005322198.tif 000008
【図７】
2005322198.tif 000009
【図８】
2005322198.tif 000010
【図９】
2005322198.tif 000011