(57)【要約】【課題】符号化処理を高速に行う。【解決手段】符号化回路は、ｎビットの被符号化データが格納される被符号化データ格納レジスタと、被符号化データがシフトされて生成されるｍビットの演算用データが格納される演算用データ格納レジスタと、演算用データ格納レジスタに格納されている被符号化データをシフトして演算用データ格納レジスタにシフト入力するシフタと、符号化における第１係数を示すｍビットの第１係数データが格納される第１係数レジスタと、演算用データ格納レジスタに格納されている演算用データと、第１係数レジスタに格納されている第１係数データとが入力され、演算用データ及び第１係数データのビット毎の論理積を出力する第１論理回路と、第１論理回路から出力されるｍビットのデータが入力され、当該ｍビットのデータの排他的論理和を符号化データとして出力する第２論理回路とを備える。【選択図】図３
2007174312.tif 000002
【特許請求の範囲】
【請求項１】
ｎビットの被符号化データが格納される被符号化データ格納レジスタと、
前記被符号化データがシフトされて生成されるｍビットの演算用データが格納される演算用データ格納レジスタと、
前記演算用データ格納レジスタに格納されている前記被符号化データをシフトして前記演算用データ格納レジスタにシフト入力するシフタと、
符号化を行うためのｍビットの第１係数データが格納される第１係数レジスタと、
前記演算用データ格納レジスタに格納されている前記演算用データと、前記第１係数レジスタに格納されている前記第１係数データとが入力され、前記演算用データを前記第１係数データに基づいて符号化した符号化データを出力する符号化論理回路と、
を備えることを特徴とする符号化回路。
【請求項２】
請求項１に記載の符号化回路であって、
前記符号化論理回路は、
前記演算用データ格納レジスタに格納されている前記演算用データと、前記第１係数レジスタに格納されている前記第１係数データとが入力され、前記演算用データ及び前記第１係数データのビット毎の論理積を出力する第１論理回路と、
前記第１論理回路から出力されるｍビットのデータが入力され、前記ｍビットのデータの排他的論理和を符号化データとして出力する第２論理回路と、
を備えることを特徴とする符号化回路。
【請求項３】
請求項２に記載の符号化回路であって、
前記シフタは、前記データ格納レジスタに格納されている前記被符号化データを１ビットずつ順にシフトして前記演算用データ格納レジスタにシフト入力することを特徴とする符号化回路。
【請求項４】
請求項２又は３に記載の符号化回路であって、
前記第２論理回路から出力される前記符号化データが１ビットずつシフト入力されて格納される符号化データ格納シフトレジスタを更に備えることを特徴とする符号化回路。
【請求項５】
請求項２〜４の何れか一項に記載の符号化回路であって、
符号化における第２係数を示すｍビットの第２係数データが格納される第２係数レジスタと、
前記第１係数レジスタに格納されている前記第１係数データ又は前記第２係数レジスタに格納されている前記第２係数データの何れか一方を、入力される選択信号に基づいて選択して出力する選択回路と、
を更に備え、
前記第１論理回路は、前記演算用データ格納レジスタに格納されている前記演算用データと、前記選択回路から出力される前記第１係数データ又は前記第２係数データの何れか一方とのビット毎の論理積を出力することを特徴とする符号化回路。
【請求項６】
請求項５に記載の符号化回路であって、
前記シフタは、前記被符号化データ及び前記演算データをシフトするかどうかを、入力される制御信号に基づいて切り替え可能であることを特徴とする符号化回路。
【請求項７】
請求項２〜６の何れか一項に記載の符号化回路であって、
前記被符号化データ格納レジスタはアキュムレータのｎビットのデータ領域であり、前記演算用データ格納レジスタは前記ｎビットのデータ領域と連続するｍビットのデータ領域であることを特徴とする符号化回路。
【請求項８】
請求項７に記載の符号化回路であって、
前記第２論理回路から出力される前記符号化データが、前記アキュムレータのキャリーフラグに格納されることを特徴とする符号化回路。
【請求項９】
請求項８に記載の符号化回路であって、
前記キャリーフラグに格納されているデータと前記第１論理回路から出力されるｍビットのデータとの排他的論理和を符号化データとするために、前記キャリーフラグに格納されている前記データを入力される制御信号に基づいて前記第２論理回路に出力するキャリーフラグ出力回路を更に備えることを特徴とする符号化回路。
【請求項１０】
被符号化データが格納されるｎビットの被符号化データ格納領域と、前記被符号化データ格納領域と連続し、前記被符号化データがシフトされて生成される演算用データが格納されるｍビットの演算用データ格納領域とを有するアキュムレータと、
前記アキュムレータに格納されているデータをシフトするシフタと、
符号化を行うための第１係数を示すｍビットの第１係数データが格納される第１係数レジスタと、
前記演算用データ格納レジスタに格納されている前記演算用データと、前記第１係数レジスタに格納されている前記第１係数データとが入力され、前記演算用データを前記第１係数データに基づいて符号化した符号化データを出力する符号化論理回路と、
前記符号化論理回路から出力される前記符号化データがシフト入力されて格納される符号化データ格納シフトレジスタと、
符号化の命令に基づいて、前記符号化論理回路から出力される前記符号化データを前記符号化データ格納シフトレジスタにシフト入力させ、前記シフタに前記アキュムレータに格納されているデータを前記被符号化データ格納領域から前記演算用データ格納領域の方向にシフトさせる制御回路と、
を備えることを特徴とするデジタル信号処理回路。
【請求項１１】
請求項１０に記載のデジタル信号処理回路であって、
前記符号化論理回路は、
前記演算用データ格納レジスタに格納されている前記演算用データと、前記第１係数レジスタに格納されている前記第１係数データとが入力され、前記演算用データ及び前記第１係数データのビット毎の論理積を出力する第１論理回路と、
前記第１論理回路から出力されるｍビットのデータが入力され、前記ｍビットのデータの排他的論理和を符号化データとして出力する第２論理回路と、
を備えることを特徴とするデジタル信号処理回路。
【請求項１２】
請求項１１に記載の符号化回路であって、
前記シフタは、前記データ格納レジスタに格納されている前記被符号化データを１ビットずつ順にシフトして前記演算用データ格納レジスタにシフト入力することを特徴とするデジタル信号処理回路。
【請求項１３】
請求項１１又は１２に記載のデジタル信号処理回路であって、
符号化における第２係数を示すｍビットの第２係数データが格納される第２係数レジスタと、
前記第１係数レジスタに格納されている前記第１係数データ又は前記第２係数レジスタに格納されている前記第２係数データの何れか一方を、入力される選択信号に基づいて選択して出力する選択回路と、
を更に備え、
前記制御回路は、前記符号化の命令に基づいて、前記選択信号を前記選択回路に出力することを特徴とするデジタル信号処理回路。
【請求項１４】
請求項１３に記載のデジタル信号処理回路であって、
前記制御回路は、前記符号化の命令が第１命令である場合は、前記シフタに前記アキュムレータに格納されているデータを前記被符号化データ格納領域から前記演算用データ格納領域の方向に１ビットシフトさせ、前記符号化の命令が第２命令である場合は、前記シフタに前記アキュムレータに格納されているデータをシフトさせないことを特徴とするデジタル信号処理回路。
【請求項１５】
請求項１２〜１４の何れか一項に記載のデジタル信号処理回路であって、
前記第２論理回路から出力される前記符号化データが、前記アキュムレータのキャリーフラグに格納されることを特徴とするデジタル信号処理回路。
【請求項１６】
請求項１５に記載のデジタル信号処理回路であって、
前記キャリーフラグに格納されているデータと前記第１論理回路から出力されるｍビットのデータとの排他的論理和を符号化データとするために、前記キャリーフラグに格納されている前記データを入力される制御信号に基づいて前記第２論理回路に出力するキャリーフラグ出力回路を更に備え、
前記制御回路は、前記符号化の命令に基づいて、前記制御信号を前記キャリーフラグ出力回路に出力することを特徴とするデジタル信号処理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化回路およびデジタル信号処理回路に関する。
【背景技術】
【０００２】
携帯電話等の移動体通信機器において、デジタル信号を処理するためのプロセッサであるＤＳＰ（Digital Signal Processor）が用いられることが多い。このような移動体通信機器に用いられるＤＳＰでは、送受信されるデータのビット誤りを訂正可能とするために、畳み込み符号やブロック符号等の符号化処理が一般的に行われている。そして、ＤＳＰでは、１ビットのシフト処理や論理積を行う処理、排他的論理和を行う処理等をソフトウェアにより実現することによって符号化データを生成することができる（例えば、特許文献１）。
【特許文献１】特開平６−４４０５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、ソフトウェアにより符号化データを生成する場合、１ビットの符号化データを生成するために、シフト処理や論理積を行う処理、排他的論理和を行う処理、その他レジスタへのデータロード処理等、数サイクルの処理が必要となる。したがって、デジタル信号のビット数に比例してＤＳＰの処理量が増大してしまい、通信速度を高速化する際の支障となっていた。
【０００４】
本発明は上記課題を鑑みてなされたものであり、高速に符号化処理を行うことができる符号化回路、及びその符号化回路を用いて高速に符号化処理を行うことができるデジタル信号処理回路を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、本発明の符号化回路は、ｎビットの被符号化データが格納される被符号化データ格納レジスタと、前記被符号化データがシフトされて生成されるｍビットの演算用データが格納される演算用データ格納レジスタと、前記演算用データ格納レジスタに格納されている前記被符号化データをシフトして前記演算用データ格納レジスタにシフト入力するシフタと、符号化を行うためのｍビットの第１係数データが格納される第１係数レジスタと、前記演算用データ格納レジスタに格納されている前記演算用データと、前記第１係数レジスタに格納されている前記第１係数データとが入力され、前記演算用データを前記第１係数データに基づいて符号化した符号化データを出力する符号化論理回路と、を備えることとする。
【０００６】
また、前記符号化論理回路は、前記演算用データ格納レジスタに格納されている前記演算用データと、前記第１係数レジスタに格納されている前記第１係数データとが入力され、前記演算用データ及び前記第１係数データのビット毎の論理積を出力する第１論理回路と、前記第１論理回路から出力されるｍビットのデータが入力され、前記ｍビットのデータの排他的論理和を符号化データとして出力する第２論理回路と、を備えることとすることができる。
【０００７】
そして、前記シフタは、前記データ格納レジスタに格納されている前記被符号化データを１ビットずつ順にシフトして前記演算用データ格納レジスタにシフト入力することとしてもよい。
【０００８】
また、前記符号化回路は、前記第２論理回路から出力される前記符号化データが１ビットずつシフト入力されて格納される符号化データ格納シフトレジスタを更に備えることとしてもよい。
【０００９】
また、前記符号化回路は、符号化における第２係数を示すｍビットの第２係数データが格納される第２係数レジスタと、前記第１係数レジスタに格納されている前記第１係数データ又は前記第２係数レジスタに格納されている前記第２係数データの何れか一方を、入力される選択信号に基づいて選択して出力する選択回路と、を更に備え、前記第１論理回路は、前記演算用データ格納レジスタに格納されている前記演算用データと、前記選択回路から出力される前記第１係数データ又は前記第２係数データの何れか一方とのビット毎の論理積を出力することとしてもよい。
【００１０】
さらに、前記シフタは、前記被符号化データ及び前記演算データをシフトするかどうかを、入力される制御信号に基づいて切り替え可能であることとしてもよい。
【００１１】
また、前記被符号化データ格納レジスタはアキュムレータのｎビットのデータ領域であり、前記演算用データ格納レジスタは前記ｎビットのデータ領域と連続するｍビットのデータ領域であることとしてもよい。
【００１２】
そして、前記第２論理回路から出力される前記符号化データが、前記アキュムレータのキャリーフラグに格納されることとしてもよい。
【００１３】
また、前記符号化回路は、前記キャリーフラグに格納されているデータと前記第１論理回路から出力されるｍビットのデータとの排他的論理和を符号化データとするために、前記キャリーフラグに格納されている前記データを入力される制御信号に基づいて前記第２論理回路に出力するキャリーフラグ出力回路を更に備えることとしてもよい。
【００１４】
また、本発明のデジタル信号処理回路は、被符号化データが格納されるｎビットの被符号化データ格納領域と、前記被符号化データ格納領域と連続し、前記被符号化データがシフトされて生成される演算用データが格納されるｍビットの演算用データ格納領域とを有するアキュムレータと、前記アキュムレータに格納されているデータをシフトするシフタと、符号化を行うための第１係数を示すｍビットの第１係数データが格納される第１係数レジスタと、前記演算用データ格納レジスタに格納されている前記演算用データと、前記第１係数レジスタに格納されている前記第１係数データとが入力され、前記演算用データを前記第１係数データに基づいて符号化した符号化データを出力する符号化論理回路と、前記符号化論理回路から出力される前記符号化データがシフト入力されて格納される符号化データ格納シフトレジスタと、符号化の命令に基づいて、前記符号化論理回路から出力される前記符号化データを前記符号化データ格納シフトレジスタにシフト入力させ、前記シフタに前記アキュムレータに格納されているデータを前記被符号化データ格納領域から前記演算用データ格納領域の方向にシフトさせる制御回路と、を備えることとする。
【００１５】
また、前記符号化論理回路は、前記演算用データ格納レジスタに格納されている前記演算用データと、前記第１係数レジスタに格納されている前記第１係数データとが入力され、前記演算用データ及び前記第１係数データのビット毎の論理積を出力する第１論理回路と、前記第１論理回路から出力されるｍビットのデータが入力され、前記ｍビットのデータの排他的論理和を符号化データとして出力する第２論理回路と、を備えることとすることができる。
【００１６】
そして、前記シフタは、前記データ格納レジスタに格納されている前記被符号化データを１ビットずつ順にシフトして前記演算用データ格納レジスタにシフト入力することとしてもよい。
【００１７】
また、前記デジタル信号処理回路は、符号化における第２係数を示すｍビットの第２係数データが格納される第２係数レジスタと、前記第１係数レジスタに格納されている前記第１係数データ又は前記第２係数レジスタに格納されている前記第２係数データの何れか一方を、入力される選択信号に基づいて選択して出力する選択回路と、を更に備え、前記制御回路は、前記符号化の命令に基づいて、前記選択信号を前記選択回路に出力することとしてもよい。
【００１８】
さらに、前記制御回路は、前記符号化の命令が第１命令である場合は、前記シフタに前記アキュムレータに格納されているデータを前記被符号化データ格納領域から前記演算用データ格納領域の方向に１ビットシフトさせ、前記符号化の命令が第２命令である場合は、前記シフタに前記アキュムレータに格納されているデータをシフトさせないこととしてもよい。
【００１９】
また、前記第２論理回路から出力される前記符号化データが、前記アキュムレータのキャリーフラグに格納されることとしてもよい。
【００２０】
さらに、前記デジタル信号処理回路は、前記キャリーフラグに格納されているデータと前記第１論理回路から出力されるｍビットのデータとの排他的論理和を符号化データとするために、前記キャリーフラグに格納されている前記データを入力される制御信号に基づいて前記第２論理回路に出力するキャリーフラグ出力回路を更に備え、前記制御回路は、前記符号化の命令に基づいて、前記制御信号を前記キャリーフラグ出力回路に出力することとしてもよい。
【発明の効果】
【００２１】
高速に符号化処理を行うことができる符号化回路、及びその符号化回路を用いて高速に符号化処理を行うことができるデジタル信号処理回路を提供することができる。
【発明を実施するための最良の形態】
【００２２】
＝＝全体構成＝＝
図１は、本発明の一実施形態であるデジタル信号処理回路（以後、ＤＳＰ（Digital Signal Processor）と称する）の構成を示す図である。ＤＳＰ１は、制御回路１１、アドレス生成回路１２、符号化回路１３、メモリＡ１４、メモリＢ１５、及びバス１６，１７を含んで構成されている。ＤＳＰ１は、携帯電話等の通信機器に用いられるものであり、通信路における誤り訂正を可能とするために、畳み込み符号による符号化及び復号処理を行う。
【００２３】
制御回路１１は、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）等のメモリ（不図示）に格納されているプログラムを読み出して実行することにより、ＤＳＰ１の制御を行う回路である。アドレス生成回路１２は、制御回路１１の制御により、バス１６，１７に出力するアドレスを生成する回路である。そして、バス１６，１７に出力されたアドレスに基づいて、メモリＡ１４及びメモリＢ１５の当該アドレスに格納されているデータの符号化回路１３内のレジスタ等への読み出し、又は、符号化回路１３が保持するデータのメモリＡ１４及びメモリＢ１５の当該アドレスへの書き込みが行われる。符号化回路１３は、制御回路１１の制御により、メモリＡ１４又はメモリＢ１５から読み出されたデータを符号化する回路である。
【００２４】
メモリＡ１４及びメモリＢ１５は、符号化対象のデータや符号化されたデータ等が格納される読み書き可能な記憶回路であり、例えばＲＡＭ（Random Access Memory）等である。このメモリＡ１４及びメモリＢ１５は、ＤＳＰ１の外部に設けられた大容量のＳＤＲＡＭ（Synchronous DRAM）等のメモリ（不図示）との間でデータの授受を行うこともできる。これにより、ＤＳＰ１では、メモリＡ１４及びメモリＢ１５への並列アクセスによる処理高速化とともに、ＤＳＰ１内部のメモリ容量を削減し、ＤＳＰ１のチップサイズを小さくしている。なお、ＤＳＰ１は、メモリＡ１４及びメモリＢ１５の何れか一方のみを備えることとしてもよいし、外部に設けられたＳＤＲＡＭ等のメモリ（不図示）との間のデータの授受は行わないこととしてもよい。
【００２５】
図２は、ＤＳＰ１が送受信する通信データの構成例を示す図である。通信データ２０は、伝達すべき情報を示す情報ビット２１及び情報ビット２１の誤りを訂正するための訂正用ビット２２を含んで構成されている。データを送信する側のＤＳＰ１では、情報ビット２１を符号化回路１３に与えて訂正用ビット２２を生成し、生成された訂正用ビット２２を情報ビット２１に付加して通信データ２０を生成する。そして、データを受信する側のＤＳＰ１では、訂正用ビット２２が付加された通信データ２０を受信すると、通信データ２０の情報ビット２１を符号化回路１３に与えて訂正用ビットを生成し、生成した訂正用ビットと通信データ２０に含まれている訂正用ビット２２とが一致するかどうか確認する。一致しない場合、ＤＳＰ１は、情報ビット２１に誤りが発生していると判断し、訂正用ビット２２を用いて情報ビット２１の誤りを訂正することができる。
【００２６】
＝＝符号化回路＝＝
次に、符号化回路１３の構成について説明する。図３は、符号化回路１３の構成例を示す図である。符号化回路１３は、アキュムレータ（ａｘ）３１、アキュムレータ３１用のシフタ３２、データレジスタ（ｒ０）３３、ＡＮＤ回路（第１論理回路）３４、ＸＯＲ回路（第２論理回路）３５、データレジスタ（ｒｓ）３６、データレジスタ３６用のシフタ３７、アキュムレータ３１のキャリーフラグ３８、及びＡＮＤ回路３９を含んで構成されている。
【００２７】
アキュムレータ３１は、例えば４０ビットで構成されており、例えば上位８ビットのデータ領域ａｅ、及び下位３２ビットのデータ領域が設けられている。そして、下位３２ビットのデータ領域は、例えば上位１６ビットのデータ領域ａｈ及び下位１６ビットのデータ領域ａｌで構成されている。データ領域ａｅには、制御回路１１の制御により、情報ビット２１を例えば８ビット単位に分割した符号化対象のデータ（被符号化データ）が、メモリＡ１４、メモリＢ１５、又は他のレジスタ等から読み出されて格納される。シフタ３２は、制御回路１１からの制御信号に応じて、アキュムレータ３１に格納されているデータをシフトすることができる。つまり、データ領域ａｅに格納された被符号化データは、シフタ３２によって１ビットずつ右シフトされることにより、データ領域ａｈ，ａｌへ順次入力されていくこととなる。そして、データ領域ａｈ，ａｌに格納されたデータは、符号化の演算を行うためのデータ（演算用データ）として用いられる。
【００２８】
データレジスタ（ｒ０）３３は、例えば３２ビットで構成されており、例えば上位１６ビットのデータ領域ｒ０ｈ、及び下位１６ビットのデータ領域ｒ０ｌが設けられている。このデータレジスタ（ｒ０）３３には、符号化の生成多項式の係数を示す係数データが格納される。図４は、符号化データと生成多項式との関係を示す図である。符号化データＸ１を得るための生成多項式はＧ（Ｘ）＝Ｘ３＋Ｘ＋１となるが、この場合、データレジスタ（ｒ０）３３には、上位から順に１０１１（２進）が設定される。つまり、データ領域ｒ０ｈには０ｘｂ０００が設定され、データ領域ｒ０ｌには０ｘ００００が設定される。なお、「０ｘ」は、１６進数であることを表す。また、符号化データＸ２を得るための生成多項式はＧ（Ｘ）＝Ｘ３＋１となるが、この場合、データレジスタ（ｒ０）３３には、上位から順に「１００１」が設定される。つまり、データ領域ｒ０ｈには０ｘ９０００が設定され、データ領域ｒ０ｌには０ｘ００００が設定される。
【００２９】
ＡＮＤ回路３４は、アキュムレータ３１のデータ領域ａｈ，ａｌに格納されている演算用データと、データレジスタ（ｒ０）３３に格納されている生成多項式の係数データとのビットごとの論理積を出力する回路である。データ領域ａｈの上位からｎビット目をａｈ（ｎ）、データ領域ａｌの上位からｎビット目をａｌ（ｎ）、データ領域ｒ０ｈの上位からｎビット目をｒ０ｈ（ｎ）、データ領域ｒ０ｌの上位からｎビット目をｒ０ｌ（ｎ）と表すこととすると、ＡＮＤ回路３４からは、ａｈ（ｎ）×ｒ０ｈ（ｎ）及びａｌ（ｎ）×ｒ０ｌ（ｎ）（ｎ＝１〜１６）が出力される。
【００３０】
ＸＯＲ回路３５は、ＡＮＤ回路３４から出力される３２ビットのデータの排他的論理和を、１ビットの符号化データとして出力する回路である。また、ＸＯＲ回路３５は、キャリーフラグ３８に格納されているデータと、ＡＮＤ回路３４から出力される３２ビットのデータとの排他的論理和をとることもできる。
【００３１】
データレジスタ（ｒｓ）３６は、例えば３２ビットで構成されており、例えば上位１６ビットのデータ領域ｒｓｈ、及び下位１６ビットのデータ領域ｒｓｌが設けられている。シフタ３７は、制御回路１１からの制御信号に応じて、データレジスタ（ｒｓ）３６に格納されているデータをシフトすることができる。ＸＯＲ回路３５から出力される符号化データをデータレジスタ（ｒｓ）３６に格納する際には、例えば、シフタ３７によってデータレジスタ（ｒｓ）３６に格納されているデータを１ビット左シフトした後に、データレジスタ（ｒｓ）３６の最下位ビットに符号化データを格納することができる。
【００３２】
キャリーフラグ３８には、ＸＯＲ回路３５から出力される１ビットの符号化データが格納される。キャリーフラグ３８に格納されたデータは、様々な演算処理に用いることが可能である。本実施形態においては、キャリーフラグ３８に格納されたデータは、ＡＮＤ回路３９を介してＸＯＲ回路３５に入力されている。ＡＮＤ回路３９には、制御回路１１からの制御信号も入力されており、例えば制御信号が１の場合は、キャリーフラグ３８に格納されているデータがＸＯＲ回路３５に入力されることとなる。つまり、符号化データを生成する際の排他的論理和に直前の符号化データを加えることができる。
【００３３】
このような構成の符号化回路１３において、制御回路１１の制御によって、アキュムレータ３１を１ビットずつ右シフトし、データレジスタ３６を１ビットずつ左シフトしていくことにより、データレジスタ３６に符号化データが蓄積されることとなる。
【００３４】
また、符号化回路１３は、生成多項式の係数データを選択可能な構成とすることもできる。図５は、生成多項式の係数データを選択可能な符号化回路の構成例を示す図である。符号化回路１３は、図３に示した構成に加え、データレジスタ（ｒ１）５１及び選択回路５２を備えている。データレジスタ（ｒ１）５１は、例えば３２ビットで構成されており、例えば上位１６ビットのデータ領域ｒ１ｈ、及び下位１６ビットのデータ領域ｒ１ｌが設けられている。このデータレジスタ（ｒ１）５１には、データレジスタ（ｒ０）３３と同様に、符号化の生成多項式の係数を示す係数データが格納される。そして、選択回路５２は、制御回路１１からの選択信号に基づいて、データレジスタ（ｒ０）３３またはデータレジスタ（ｒ１）５１の何れか一方に格納されている係数データをＡＮＤ回路３４に出力する。つまり、使用するデータレジスタを切り替えることにより、異なる生成多項式に基づいた符号化データを生成することができる。なお、本実施形態においては、係数データが格納されるデータレジスタをデータレジスタ（ｒ０）３３及びデータレジスタ（ｒ１）５１の２つとしたが、３つ以上のデータレジスタを用いることとしてもよい。
【００３５】
なお、アキュムレータ３１のデータ領域ａｅが本発明の被符号化データ格納レジスタに相当し、アキュムレータ３１のデータ領域ａｈ，ａｌが本発明の演算用データ格納レジスタに相当する。また、データレジスタ（ｒ０）３３が本発明の第１係数レジスタに相当し、データレジスタ（ｒ１）５１が本発明の第２係数レジスタに相当する。また、ＡＮＤ回路３９及びＸＯＲ回路３５が本発明の符号化論理回路に相当する。また、データレジスタ（ｒｓ）３６及びシフタ３７が本発明の符号化データ格納シフトレジスタに相当する。
【００３６】
＝＝符号化処理＝＝
次に、図５に示した符号化回路１３を用いた符号化処理について説明する。なお、本実施形態においては、ＤＳＰ１における符号化命令として、code命令、codec命令、codes命令、codesc命令の４種類が設けられていることとする。これらの命令を実行することにより、引数に指定されるデータレジスタに格納された係数データを用いて１ビットの符号化データを生成することができる。code命令及びcodes命令では、ＸＯＲ回路３５での排他的論理和の入力にキャリーフラグ３８に格納されているデータは含まれず、codec命令及びcodesc命令では、ＸＯＲ回路３５での排他的論理和の入力にキャリーフラグ３８に格納されているデータが含まれる。また、code命令及びcodec命令では、１ビットの符号化データを生成した後に、アキュムレータ３１のシフトは行われず、codes命令及びcodesc命令では、１ビットの符号化データを生成した後に、アキュムレータ３１のシフトが行われる。なお、codes命令及びcodesc命令が、本発明の第１命令に相当し、code命令及びcodec命令が本発明の第２命令に相当する。
【００３７】
図６は、１つの生成多項式に基づいて符号化データを生成する処理の一例を示す図である。この例では、生成多項式はＧ（Ｘ）＝Ｘ３＋Ｘ＋１とする。この場合、符号化における係数（第１係数）は、１０１１（２進）となる。そして、制御回路１１の制御によって、係数データ０ｘｂ０００がデータレジスタ３３のデータ領域ｒ０ｈに設定され、係数データ０ｘ００００がデータレジスタ３３のデータ領域ｒ０ｌに設定されていることとする。また、制御回路１１の制御によって、８ビットの被符号化データ０１０１０１０１（２進）がアキュムレータ３１のデータ領域ａｅに設定されていることとする。
【００３８】
このような状態において、codes(r0)命令が実行されると（Ｓ６０１）、制御回路１１の制御によってデータレジスタ（ｒ０）３３が選択され、アキュムレータ３１のデータ領域ａｈ，ａｌに格納されている演算用データと、データレジスタ３３に格納されている係数データとのビットごとの論理積がＡＮＤ回路３４から出力される。この場合、ＡＮＤ回路３４の出力は０ｘ００００となる。なお、図６においては、ＡＮＤ回路３４の出力の上位４ビットを２進で示している。また、codes命令であるため、制御回路１１は、例えばＡＮＤ回路３９に０を出力する。これにより、ＸＯＲ回路３５には、キャリーフラグ３８に格納されているデータは入力されない。したがって、ＡＮＤ回路３４から０ｘ００００が出力されると、ＸＯＲ回路３５の出力は０となる。そして、制御回路１１の制御によってシフタ３７がデータレジスタ３６に格納されているデータを１ビット左にシフトし、ＸＯＲ回路３５から出力される１ビットの符号化データ「０」がデータレジスタ３６の最下位ビットに格納される。また、キャリーフラグ３８にも、１ビットの符号化データ「０」が格納される。その後、制御回路１１の制御によってシフタ３２がアキュムレータ３１に格納されているデータを１ビット右にシフトする。ここまでの一連の処理が、１回のcodes(r0)命令（Ｓ６０１）に対して実行される。
【００３９】
なお、命令がcodesc(r0)の場合は、制御回路１１は、例えばＡＮＤ回路３９に１を出力する。これにより、ＸＯＲ回路３５には、キャリーフラグ３８に格納されているデータが入力され、ＡＮＤ回路３４から出力されるデータとともに排他的論理和が行われることとなる。以後の処理についても同様である。
【００４０】
続いてcodes(r0)命令が実行されると（Ｓ６０２）、先の処理（Ｓ６０１）と同様に符号化処理が行われる。なお、先の処理（Ｓ６０１）でアキュムレータ３１に格納されているデータが１ビット右にシフトされているため、アキュムレータ３１のデータ領域ａｈの上位４ビットは１０００（２進）となっている。そのため、ＡＮＤ回路３４の出力の上位４ビットは１０００（２進）となり、ＸＯＲ回路３５の出力は１となる。そして、１ビットの符号化データ「１」は、データレジスタ３６にシフト入力されるとともに、キャリーフラグ３８に格納される。その後、アキュムレータ３１に格納されているデータが１ビット右にシフトされる。
【００４１】
続いて同様に、codes(r0)命令が実行される（Ｓ６０３）。先の処理（Ｓ６０２）でアキュムレータ３１に格納されているデータが１ビット右にシフトされているため、アキュムレータ３１のデータ領域ａｈの上位４ビットは０１００（２進）となっている。そのため、ＡＮＤ回路３４の出力の上位４ビットは００００（２進）となり、ＸＯＲ回路３５の出力は０となる。そして、１ビットの符号化データ「０」は、データレジスタ３６にシフト入力されるとともに、キャリーフラグ３８に格納される。その後、アキュムレータ３１に格納されているデータが１ビット右にシフトされる。
【００４２】
さらに同様に、codes(r0)命令が実行される（Ｓ６０４）。先の処理（Ｓ６０３）でアキュムレータ３１に格納されているデータが１ビット右にシフトされているため、アキュムレータ３１のデータ領域ａｈの上位４ビットは１０１０（２進）となっている。そのため、ＡＮＤ回路３４の出力の上位４ビットは１０１０（２進）となり、ＸＯＲ回路３５の出力は０となる。そして、１ビットの符号化データ「０」は、データレジスタ３６にシフト入力されるとともに、キャリーフラグ３８に格納される。その後、アキュムレータ３１に格納されているデータが１ビット右にシフトされる。
【００４３】
このように、codes(r0)命令が繰り返し実行されることにより、アキュムレータ３１のデータ領域ａｅに格納された被符号化データを生成多項式Ｇ（Ｘ）＝Ｘ３＋Ｘ＋１に基づいて符号化したデータがデータレジスタ３６に蓄積されることとなる。
【００４４】
図７は、２つの生成多項式に基づいて符号化データを生成する処理の一例を示す図である。この例では、生成多項式はＧ（Ｘ）＝Ｘ３＋Ｘ＋１とＧ（Ｘ）＝Ｘ３＋Ｘ２＋１の２つとする。この場合、符号化における第１係数は１０１１（２進）、第２係数は１１０１（２進）となる。そして、制御回路１１の制御によって、係数データ０ｘｂ０００がデータレジスタ３３のデータ領域ｒ０ｈに設定され、係数データ０ｘ００００がデータレジスタ３３のデータ領域ｒ０ｌに設定されていることとする。また、制御回路１１の制御によって、係数データ０ｘｄ０００がデータレジスタ５１のデータ領域ｒ１ｈに設定され、係数データ０ｘ００００がデータレジスタ３１のデータ領域ｒ１ｌに設定されていることとする。また、制御回路１１の制御によって、８ビットの被符号化データ０１０１０１０１（２進）がアキュムレータ３１のデータ領域ａｅに設定されていることとする。
【００４５】
このような状態において、code(r0)命令が実行されると（Ｓ７０１）、制御回路１１の制御によってデータレジスタ（ｒ０）３３が選択され、アキュムレータ３１のデータ領域ａｈ，ａｌに格納されている演算用データと、データレジスタ３３に格納されている係数データとのビットごとの論理積がＡＮＤ回路３４から出力される。この場合、ＡＮＤ回路３４の出力は０ｘ００００となる。また、code命令であるため、codes命令の場合と同様に、ＸＯＲ回路３５には、キャリーフラグ３８に格納されているデータは入力されない。したがって、ＡＮＤ回路３４から０ｘ００００が出力されると、ＸＯＲ回路３５の出力は０となる。そして、制御回路１１の制御によってシフタ３７がデータレジスタ３６に格納されているデータを１ビット左にシフトし、ＸＯＲ回路３５から出力される１ビットの符号化データ「０」がデータレジスタ３６の最下位ビットに格納される。また、キャリーフラグ３８にも、１ビットの符号化データ「０」が格納される。なお、code命令であるため、制御回路１１は、アキュムレータ３１に格納されているデータをシフトしないように制御信号をシフタ３２に入力する。ここまでの一連の処理が、１回のcode(r0)命令（Ｓ７０１）に対して実行される。
【００４６】
続いてcodes(r1)命令が実行される（Ｓ７０２）。先の処理（Ｓ７０１）でアキュムレータ３１に格納されているデータがシフトされていないため、アキュムレータ３１のデータ領域ａｈの上位４ビットは００００（２進）のままである。そして、制御回路１１の制御によってデータレジスタ（ｒ１）５１が選択され、アキュムレータ３１のデータ領域ａｈ，ａｌに格納されている演算用データと、データレジスタ５１に格納されている係数データとのビットごとの論理積がＡＮＤ回路３４から出力される。この場合、ＡＮＤ回路３４の出力の上位４ビットは００００となり、ＸＯＲ回路３５の出力は０となる。そして、制御回路１１の制御によってシフタ３７がデータレジスタ３６に格納されているデータを１ビット左にシフトし、ＸＯＲ回路３５から出力される１ビットの符号化データ「０」がデータレジスタ３６の最下位ビットに格納される。また、キャリーフラグ３８にも、１ビットの符号化データ「０」が格納される。その後、codes命令であるため、制御回路１１の制御によってシフタ３２がアキュムレータ３１に格納されているデータを１ビット右にシフトする。
【００４７】
続いてcode(r0)命令が実行される（Ｓ７０３）。先の処理（Ｓ７０２）でアキュムレータ３１に格納されているデータが１ビット右にシフトされているため、アキュムレータ３１のデータ領域ａｈの上位４ビットは１０００（２進）となっている。そして、制御回路１１の制御によってデータレジスタ（ｒ０）３３が選択され、ＡＮＤ回路３４の出力の上位４ビットは１０００（２進）となり、ＸＯＲ回路３５の出力は１となる。そして、１ビットの符号化データ「１」は、データレジスタ３６にシフト入力されるとともに、キャリーフラグ３８に格納される。なお、code命令であるため、先の処理（Ｓ７０１）と同様に、アキュムレータ３１に格納されているデータのシフトは行われない。
【００４８】
さらに続いてcodes(r1)命令が実行される（Ｓ７０４）。先の処理（Ｓ７０３）でアキュムレータ３１に格納されているデータがシフトされていないため、アキュムレータ３１のデータ領域ａｈの上位４ビットは１０００（２進）のままである。そして、制御回路１１の制御によってデータレジスタ（ｒ１）５１が選択され、ＡＮＤ回路３４の出力の上位４ビットは１０００（２進）となり、ＸＯＲ回路３５の出力は１となる。そして、１ビットの符号化データ「１」は、データレジスタ３６にシフト入力されるとともに、キャリーフラグ３８に格納される。その後、codes命令であるため、アキュムレータ３１に格納されているデータが１ビット右にシフトされる。
【００４９】
このように、code(r0)命令及びcodes(r1)命令が繰り返し実行されることにより、アキュムレータ３１のデータ領域ａｅに格納された被符号化データを生成多項式Ｇ（Ｘ）＝Ｘ３＋Ｘ＋１及びＧ（Ｘ）＝Ｘ３＋Ｘ２＋１に基づいて符号化したデータがデータレジスタ３６に蓄積されることとなる。
【００５０】
以上、本実施形態のＤＳＰ１について説明した。このようなＤＳＰ１では、code命令、codec命令、codes命令、codesc命令の何れかが実行される毎に、１ビットの符号化データが生成される。つまり、１ビットの符号化データを生成するために、シフト処理や論理積を行う処理、排他的論理和を行う処理等の数サイクルの処理を必要とせず、高速に符号化処理を行うことができる。そのため、ＤＳＰ１を用いて高速なデータ通信に対応することが可能となる。また、プログラムサイズも削減され、プログラム格納に必要なメモリ領域を小さくすることも可能となる。
【００５１】
そして、１ビットの符号化データを順次データレジスタ３６にシフト入力していくことにより、複数ビットの被符号化データに対する複数ビットの符号化データを得ることができる。
【００５２】
また、ＤＳＰ１では、符号化命令の引数を用いて生成多項式を切り替えることができる。つまり、生成多項式を切り替えるためにレジスタに係数データを設定し直す必要がなく、高速に符号化処理を行うことができる。
【００５３】
さらに、ＤＳＰ１では、符号化命令の種類によって、１ビットの符号化データを生成した後にアキュムレータ３１に格納されているデータをシフトするかどうかを選択することができる。そのため、複数の生成多項式に基づいて符号化データを生成する際に、被符号化データを複数のレジスタに格納して生成多項式毎に処理を行う必要がない。したがって、高速に符号化処理を行うことができるとともに、処理に必要なレジスタ等の資源も削減することができる。
【００５４】
また、ＤＳＰ１では、生成された１ビットの符号化データがキャリーフラグ３８に格納される。したがって、キャリーフラグ３８に格納された符号化データをＤＳＰ１における様々な処理に活用することができる。一例としては、キャリーフラグ３８に「１」が連続して格納される回数をカウントし、その回数が所定の回数を超えた場合は異常処理を行う等が考えられる。
【００５５】
そして、ＤＳＰ１では、符号化命令の種類によって、キャリーフラグ３８に格納されたデータをＸＯＲ回路３５の入力とすることも可能である。これにより、直前の符号化データを用いた符号化データを高速に生成することができる。
【００５６】
なお、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。例えば、本実施形態においては、被符号化データを１ビットずつ順にシフトすることとしたが、１回の命令につき複数ビットシフトすることも可能である。また、符号化回路１３は、ＤＳＰ１に限らず、符号化処理を行う様々な回路において用いることができる。また、本実施形態においては、符号化方式として畳み込み符号を例示したが、符号化方式はこれに限られず、ブロック符号等に適用することも可能である。
【図面の簡単な説明】
【００５７】
【図１】本発明の一実施形態であるデジタル信号処理回路の構成を示す図である。
【図２】ＤＳＰが送受信する通信データの構成例を示す図である。
【図３】符号化回路の構成例を示す図である。
【図４】符号化データと生成多項式との関係を示す図である。
【図５】生成多項式の係数データを選択可能な符号化回路の構成例を示す図である。
【図６】１つの生成多項式に基づいて符号化データを生成する処理の一例を示す図である。
【図７】２つの生成多項式に基づいて符号化データを生成する処理の一例を示す図である。
【符号の説明】
【００５８】
１  ＤＳＰ                              １１  制御回路
１２  アドレス生成回路                  １３  符号化回路
１４  メモリＡ                          １５  メモリＢ
１６，１７  バス                        ２０  通信データ
２１  情報ビット                        ２２  訂正用ビット
３１  アキュムレータ                    ３２  シフタ
３３  データレジスタ（ｒ０）            ３４  ＡＮＤ回路
３５  ＸＯＲ回路                        ３６  特殊データレジスタ
３７  シフタ                            ３８  キャリーフラグ
３９  ＡＮＤ回路                        ５１  データレジスタ（ｒ１）
５２  選択回路
【図１】
2007174312.tif 000003
【図２】
2007174312.tif 000004
【図３】
2007174312.tif 000005
【図４】
2007174312.tif 000006
【図５】
2007174312.tif 000007
【図６】
2007174312.tif 000008
【図７】
2007174312.tif 000009