(57)【特許請求の範囲】
【請求項１】
シリアルデータ処理回路において、
ロジック回路からの出力信号線に対しＮ個のラッチを接続し、前記ロジック回路からの出力データをＮ個の前記ラッチで順次ラッチして並列に出力するラッチ手段と、
前記データをラッチした前記ラッチ手段から出力される前記データを順次選択して一つの信号線に対するシリアルデータに変換し、次段の前記ロジック回路の入力として供給する選択手段と、
クロック遅延出力手段と、を備え、
Ｎ個の前記ラッチのそれぞれは、前記ラッチに供給されるクロック周波数の１／Ｎ周期の異なるタイミングでラッチし、
前記クロック遅延出力手段は、前記１／Ｎ周期ずつずれた同期クロックをＮ個の前記ラッチのそれぞれに出力し、
周辺回路からの入力データをＮ個のデータ毎に１周期あたりＮ個のシリアルデータに変換して前記ロジック回路に対して入力し、または前記ロジック回路からの出力データをＮ個のラッチで順次ラッチして並列に周辺回路へ出力し、
Ｎ倍の周波数で動作する周辺回路から供給されるデータをＭ個単位で信号処理する前記ロジック回路に対して、
Ｍ／Ｎ個のラッチを直列に接続し、それらをＮ個並列した並列ラッチ回路を周辺回路からの出力端子に接続し、Ｎ個の前記並列ラッチ回路に対して、前記ロジック回路と同じ周波数であるが１／Ｎ周期ずつずれたクロックを供給して前記周辺回路からのデータをラッチし、各ラッチからの出力を前記ロジック回路への入力データとする、
ことを特徴とするシリアルデータ処理回路。
【請求項２】
前記ラッチ手段をネガティブエッジおよびポジティブエッジの２種類の前記ラッチで構成し、２／Ｎ周期ずつずれた同期クロックをＮ個の前記ラッチのそれぞれに出力するクロック遅延出力手段を有することを特徴とする請求項１記載のシリアルデータ処理回路。
【請求項３】
前記ロジック回路に対して、Ｎ倍の周波数で動作する周辺回路から入力データが入力され、Ｎ倍の周波数で動作する前記周辺回路へ出力データを出力することを特徴とする請求項１記載のシリアルデータ処理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシリアルデータ処理回路に関し、特にシリアルなＮ個の信号を１周期内で処理するシリアルデータ処理回路に関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integration）回路の性能を上げる技術として、スーパーパイプライン技術がある。スーパーパイプライン技術は、ＦＦ（Flip-Flop）回路とＦＦ回路との間にある組み合わせ回路を複数に分割し、分割した複数の組み合わせ回路をシリアルに結合するようにＦＦ回路を挿入してシリアルデータ処理する技術である。これにより、組み合わせ回路の動作周波数を上げることができ、スループット性能を向上させることができる。
【０００３】
なお、従来、並列モードで動作するシリアルデータ処理されたＲＩＳＣ（Reduced Instruction Set Computer）タイプのプロセッサが知られている（例えば、特許文献１参照）。
【特許文献１】特開平５−２２４９２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、組み合わせ回路をシリアルに結合するようにＦＦ回路を複数挿入してシリアルデータ処理すると消費電力が増大するという問題点があった。
本件はこのような点に鑑みてなされたものであり、低消費電力化を図ることを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、シリアルデータ処理回路が提供される。このシリアルデータ処理回路は、ロジック回路からの出力信号線に対しＮ個のラッチを接続し、前記ロジック回路からの出力データをＮ個の前記ラッチで順次ラッチして並列に出力するラッチ手段と、前記データをラッチした前記ラッチ手段から出力される前記データを順次選択して一つの信号線に対するシリアルデータに変換し、次段の前記ロジック回路の入力として供給する選択手段と、クロック遅延出力手段と、を備え、Ｎ個の前記ラッチのそれぞれは、前記ラッチに供給されるクロック周波数の１／Ｎ周期の異なるタイミングでラッチし、前記クロック遅延出力手段は、前記１／Ｎ周期ずつずれた同期クロックをＮ個の前記ラッチのそれぞれに出力し、周辺回路からの入力データをＮ個のデータ毎に１周期あたりＮ個のシリアルデータに変換して前記ロジック回路に対して入力し、または前記ロジック回路からの出力データをＮ個のラッチで順次ラッチして並列に周辺回路へ出力し、Ｎ倍の周波数で動作する周辺回路から供給されるデータをＭ個単位で信号処理する前記ロジック回路に対して、Ｍ／Ｎ個のラッチを直列に接続し、それらをＮ個並列した並列ラッチ回路を周辺回路からの出力端子に接続し、Ｎ個の前記並列ラッチ回路に対して、前記ロジック回路と同じ周波数であるが１／Ｎ周期ずつずれたクロックを供給して前記周辺回路からのデータをラッチし、各ラッチからの出力を前記ロジック回路への入力データとする。
【発明の効果】
【０００６】
開示の回路では、低消費電力でパイプライン処理を行うことができる。
【発明を実施するための最良の形態】
【０００７】
図１は、シリアルデータ処理回路の概要を示した図である。図１には、ラッチ手段１ａ〜１ｄ、選択手段２、Ｎ個のデータを一周期内で処理するロジック回路３、およびロジック回路３に入力されるデータＤ１を示している。
【０００８】
ラッチ手段１ａ〜１ｄのそれぞれには、ロジック回路３へ入力されるデータまたはロジック回路３内の組合せ回路から出力されるデータが並列に入力される。図１では、ロジック回路３に入力されるデータＤ１が並列にラッチ手段１ａ〜１ｄに入力される場合を示している。ロジック回路３にてＮ個のシリアルデータを処理するためには、Ｎ個のラッチ手段を並列に設けるようにする。図１は、ロジック回路３の４個（Ｎ＝４）のシリアルデータを処理する例を示している。
【０００９】
ラッチ手段１ａ〜１ｄは、順次入力されるデータＤ１をＮ個の並列出力となるように順次ラッチして出力する。例えば、ロジック回路にａ，ｂ，ｃ，ｄ，ｅ，…のデータＤ１が順次入力されるとする。この場合、ラッチ手段１ａ〜１ｄの出力は、図１に示すようになる。
【００１０】
選択手段２は、データＤ１をラッチしたラッチ手段１ａ〜１ｄから出力されるデータＤ１を順次選択し、ロジック回路３に出力する。例えば、選択手段２は、ラッチ手段１ａがａをラッチしたときは、ラッチ手段１ａの出力するａを選択し、ロジック回路３に出力する。ラッチ手段１ｂがｂをラッチしたときは、ラッチ手段１ｂの出力するｂを選択し、ロジック回路３に出力する。これにより、ロジック回路３は、Ｎ個のシリアルデータを処理できる。
【００１１】
このように、シリアルデータ処理回路は、ロジック回路３に入力されるデータＤ１またはロジック回路３から出力されるデータを、Ｎ個の並列出力となるように順次ラッチして出力し、ラッチされたデータＤ１を順次出力する。これにより、低消費電力でパイプライン処理と同じ性能を実現することができる。
【００１２】
次に、実施の形態を図面を参照して詳細に説明する。
図２は、シリアルデータ処理回路を適用したデータ処理装置のブロック構成図である。図２に示すデータ処理装置は、例えば、デジタルフィルタなどの処理を行う。データ処理装置は、シリアルデータ処理回路１１および周辺回路１２を有している。
【００１３】
シリアルデータ処理回路１１には、周辺回路１２からデータＤｉｎが入力される。シリアルデータ処理回路１１は、入力されるデータＤｉｎに所定の処理を施して、周辺回路１２にデータＤｏｕｔを出力する。シリアルデータ処理回路１１は、周波数ｆのクロックＣＬＫ１に同期して動作し、周辺回路１２は、周波数ｆ×Ｎ（Ｎ：１周期内に処理するデータ数、正の整数）のクロックＣＬＫ２に同期して動作する。
【００１４】
図３は、シリアルデータ処理回路のブロック構成図である。図３に示すようにシリアルデータ処理回路１１は、遅延器２１〜２３，５１〜５３、ＦＦ回路３１〜３４，６１〜６４、セレクタ４１〜４４，７１〜７４、およびロジック回路８１を有している。ロジック回路８１は、例えば、加算やビットシフトなど、所定の演算を行う回路である。
【００１５】
遅延器２１〜２３は、入力されるクロックＣＬＫ１の位相を、２π／Ｎ遅延して出力する。Ｎは、シリアルデータ数である。図３は、４つのシリアルデータを処理する場合のシリアルデータ処理回路の例を示しており、遅延器２１〜２３からは、それぞれπ／２位相ずつ（１／４周期ずつ）ずれたクロックＣＬＫ１が出力される。
【００１６】
ＦＦ回路３１〜３４は、処理データ数に応じて、ロジック回路８１の前段に並列に挿入される。図３は、ロジック回路８１にて４個のシリアルデータを処理する例を示し、４個のＦＦ回路３１〜３４が並列に挿入されている。
【００１７】
ＦＦ回路３１〜３４のそれぞれには、クロックＣＬＫ１および遅延器２１〜２３で遅延されたクロックＣＬＫ１が入力される。ＦＦ回路３１〜３４は、入力されるクロックＣＬＫ１に同期して、データＤｉｎをラッチする。図３の例の場合、ＦＦ回路３１〜３４は、クロックＣＬＫ１の位相をπ／２ずつずらしたタイミングで、入力されるデータＤｉｎをラッチする。
【００１８】
ＦＦ回路３１〜３４のそれぞれには、周辺回路１２から出力されるデータＤｉｎが並列に入力される。データＤｉｎは、１周期内に処理されるデータである。データＤｉｎは、周辺回路１２から出力されるデータであり、そのデータ周波数は、ｆ×Ｎとする。
【００１９】
例えば、ａ，ｂ，ｃ，ｄ，ｅ，…の周波数ｆ×４のデータＤｉｎが周辺回路１２から出力されたとする。この場合、まず、ＦＦ回路３１は、周波数ｆのクロックＣＬＫ１に同期してａをラッチする。次いで、ＦＦ回路３２は、１／４周期ずれたクロックＣＬＫ１に同期して、ｂをラッチする。次いで、ＦＦ回路３３は、さらに１／４周期ずれたクロックＣＬＫ１に同期して、ｃをラッチする。次いで、ＦＦ回路３４は、さらに１／４周期ずれたクロックＣＬＫ１に同期して、ｄをラッチする。次いで、ＦＦ回路３１は、クロックＣＬＫ１に同期して、ｅをラッチする。以下、同様の動作を繰り返す。
【００２０】
セレクタ４１〜４４には、ＦＦ回路３１〜３４でラッチされたデータが入力される。また、セレクタ４１〜４４には、クロックＣＬＫ１と、遅延器２１で遅延されたクロックＣＬＫ１が入力される。セレクタ４１〜４４は、入力されるクロックＣＬＫ１に基づいて、データＤｉｎをラッチしたＦＦ回路３１〜３４のデータＤｉｎを選択し、ロジック回路８１に出力する。
【００２１】
図３の例の場合、セレクタ４１〜４４には、クロックＣＬＫ１と、クロックＣＬＫ１とπ／２位相のずれたクロックＣＬＫ１が入力される。従って、セレクタ４１〜４４には、クロックＣＬＫ１の１周期の間に‘０，０’，‘０，１’，‘１，０’，‘１，１’の４状態の信号が入力されることになる。これによって、セレクタ４１〜４４は、クロックＣＬＫ１の１周期の間に、ＦＦ回路３１〜３４でラッチされたデータＤｉｎを順次選択してロジック回路８１に出力することになる。また、セレクタ４１〜４４は、ＦＦ回路３１がデータをラッチした場合、ＦＦ回路３１がラッチしたデータを選択して出力する。また、ＦＦ回路３２がデータをラッチした場合、ＦＦ回路３２がラッチしたデータを選択して出力する。
【００２２】
よって、ＦＦ回路３１〜３４にａ，ｂ，ｃ，ｄ，ｅ，…のデータＤｉｎを入力した上記例に従えば、セレクタ４１〜４４からは、周波数ｆ×４のａ，ｂ，ｃ，ｄ，ｅ，…のデータが出力されることになる。
【００２３】
なお、セレクタ４１〜４４に入力するセレクト信号は、Ｎ個の異なる位相のクロックＣＬＫ１から、ＣＥＩＬ（Ｌｏｇ（Ｎ））個のクロックを選び、セレクト信号とする。例えば、Ｎ＝２の場合、２個の位相の異なったクロックから、１個をセレクト信号として選ぶ。Ｎ＝４の場合（図３の例の場合）は、４個の位相の異なったクロックから、２個（図３の例の場合、クロックＣＬＫ１と、遅延器２１によって遅延されたクロックＣＬＫ１）をセレクト信号として選ぶ。
【００２４】
ロジック回路８１の出力側も、上記の入力側と同様の構成を有し、同様の動作をする。遅延器５１〜５３は、入力されるクロックＣＬＫ１の位相を、２π／Ｎ遅延して出力する。図３の例の場合、Ｎ＝４なので、遅延器５１〜５３からは、それぞれπ／２位相ずつずれたクロックＣＬＫ１が出力される。
【００２５】
ＦＦ回路６１〜６４のそれぞれには、クロックＣＬＫ１および遅延器５１〜５３で遅延されたクロックＣＬＫ１が入力される。ＦＦ回路６１〜６４は、入力されるクロックＣＬＫ１に同期して、ロジック回路８１から出力されるデータをラッチする。図３の例の場合、ＦＦ回路６１〜６４は、クロックＣＬＫ１の位相をπ／２ずつずらしたタイミングで、ロジック回路８１から出力されるデータをラッチする。
【００２６】
セレクタ７１〜７４には、ＦＦ回路６１〜６４でラッチされたデータが入力される。また、セレクタ７１〜７４には、クロックＣＬＫ１と、遅延器５１で遅延されたクロックＣＬＫ１とが入力される。セレクタ７１〜７４は、クロックＣＬＫ１と、遅延されたクロックＣＬＫ１とに基づいて、ＦＦ回路６１〜６４でラッチされたデータを周辺回路１２に出力する。
【００２７】
なお、図３では、ロジック回路８１の入力側および出力側に、遅延器２１〜２３，５１〜５３、ＦＦ回路３１〜３４，６１〜６４、およびセレクタ４１〜４４，７１〜７４の回路を設けているが、入力側および出力側のどちらか一方にのみ適用してもよい。
【００２８】
また、ロジック回路８１の間に、遅延器２１〜２３、ＦＦ回路３１〜３４、およびセレクタ４１〜４４を挿入するようにしてもよい。
図４は、タイミング制約を説明する図である。図４には、ロジック回路にて２個のシリアルデータ処理する場合のシリアルデータ処理回路例が示してある。シリアルデータ処理回路は、図に示すように、ＦＦ回路９１，９２，９４，９５、セレクタ９３、およびロジック回路９６を有している。
【００２９】
ＦＦ回路９１とＦＦ回路９４は、同じクロックに同期して動作する。ＦＦ回路９２とＦＦ回路９５は、同じクロックに同期して動作する。ＦＦ回路９１とＦＦ回路９４が動作するクロックと、ＦＦ回路９２とＦＦ回路９５が動作するクロックは、位相がπずれている。
【００３０】
セレクタ９３には、ＦＦ回路９２，９５に入力されるクロックが入力される。セレクタ９３は、このクロックの‘０，１’に基づいて、入力されているデータを選択して出力する。
【００３１】
ロジック回路９６の出力側でデータ合成するとき、同じクロック位相を持つＦＦ間でのみデータが取り込まれるようにし、異なる位相クロックのＦＦ間では、データが伝搬しないようにタイミング調整する必要がある。
【００３２】
例えば、図４では、ＦＦ回路９１とＦＦ回路９４は、同位相のクロックで動作しており、ＦＦ回路９１とＦＦ回路９５は、異なる位相のクロックで動作している。データ合成時には、ＦＦ回路９４は、ＦＦ回路９２のデータを取り込まないように、ＦＦ回路９５は、ＦＦ回路９１のデータを取り込まないようにタイミング調整する必要がある。
【００３３】
すなわち、ＦＦ回路から伝搬するデータが異なるクロック位相で動作するＦＦ回路に到達するまでの最小時間は、当該データが到達すべきＦＦ回路のホールドタイムよりも長くする必要がある。また、セレクタで選択されたデータの取り込まれるべきＦＦ回路に到達するタイミングをセットアップ条件とし、セレクタで選択されたデータの取り込まれてはならないＦＦ回路に到達するタイミングをホールド条件とする必要がある。
【００３４】
図５は、図４の信号間のタイミングを示した図である。図５には、図４のＦＦ回路９１，９２，９４，９５およびセレクタ９３に入力されるクロックのタイミングを示している。ＦＦ回路９１，９４には、同じ位相のクロックが入力されるが、クロックスキューにより、その入力タイミングが少しずれている。同様に、ＦＦ回路９２，９５には、同じ位相のクロックが入力されるが、クロックスキューにより、その入力タイミングが少しずれている。ＦＦ回路９２に入力されるクロックと、セレクタ９３に入力されるクロックは同位相となっている。
【００３５】
図５の各記号は以下の通りである。ただし、ｉには、ＦＦ回路９１，９２に対応する１，２の数字が当てはまる。ｊには、ＦＦ回路９４，９５に対応する１，２の数字が当てはまる。
【００３６】
Ｔ：クロック周期。
Ｔｓ：ＦＦ回路のセットアップ時間。
Ｔｈ：ＦＦ回路のホールド時間。
【００３７】
ｔｉｊ：ＦＦ回路ｉとＦＦ回路ｊとの間の信号伝搬時間。
ｔｓｊ：セレクタとＦＦ回路ｊの間の信号伝搬時間。
Ｔｗｉｊ：ＦＦ回路ｉに対するＦＦ回路ｊのクロックスキュー。
【００３８】
Ｔｗｓｊ：セレクタに対するＦＦ回路ｊのクロックスキュー。
Ｔｓ１ｓ：セレクタ９３とＦＦ回路９４の間のセットアップ時間。
Ｔｓ２ｓ：セレクタ９３とＦＦ回路９５の間のセットアップ時間。
【００３９】
Ｔｓ１ｈ：セレクタ９３とＦＦ回路９４の間のホールド時間。
Ｔｓ２ｈ：セレクタ９３とＦＦ回路９５の間のホールド時間。
セットアップ条件は、以下のようになる。
【００４０】
ｔ１１＜Ｔ＋Ｔｗ１１−Ｔｓ
ｔ２２＜Ｔ＋Ｔｗ２２―Ｔｓ
Ｔｓ１ｓ＜Ｔ＋Ｔｗｓ２−Ｔｗ１２＋Ｔｗ１１−Ｔｓ
Ｔｓ２ｓ＜Ｔ＋Ｔｗｓ１−Ｔｗ２１＋Ｔｗ２２―Ｔｓ
ホールド条件は、以下のようになる。
【００４１】
ｔ１２＞Ｔｗ１２＋Ｔｈ
ｔ２１＞Ｔｗ２１＋Ｔｈ
ｔｓ１ｈ＞Ｔｗｓ１＋Ｔｈ
Ｔｓ２ｈ＞Ｔｗｓ２＋Ｔｈ
このように、ロジック回路９６には、１クロックの周期の間に、位相の異なるクロック数（図４では２）のデータが入力され、処理される。それぞれのデータは、タイミング制約により分離されており、同じ位相のクロックに同期したＦＦ回路間によりデータが伝搬することになる。その結果、クロックの１周期の間に、複数のデータ（その数は、位相の異なるクロックの数に同じ）を処理することが可能となる。
【００４２】
図６は、シリアルデータ処理前のロジック回路のブロック構成図である。図には、ＦＦ回路１０１，１０２およびロジック回路１０３が示してある。ＦＦ回路１０１，１０２には、クロックＣＬＫ１１が入力されている。ＦＦ回路１０１は、クロックＣＬＫ１１に同期して入力されるデータをラッチし、ロジック回路１０３に入力する。ロジック回路１０３は、例えば、データの加算、シフトなどの演算を行って出力する。ＦＦ回路１０２は、クロックＣＬＫ１１に同期してロジック回路１０３から出力されるデータをラッチし、周辺回路に出力する。
【００４３】
図７は、図６のロジック回路にＦＦ回路をシリアルに挿入してスーパーパイプライン処理したブロック構成図である。図７において、図６と同じものには同じ符号を付している。
【００４４】
図７では、図６のロジック回路１０３をロジック回路１０３ａ〜１０３ｄに分割している。そして、分割した複数のロジック回路１０３ａ〜１０３ｄをシリアルに結合するようにＦＦ回路１１１〜１１３を挿入して４段のパイプライン処理を実現している。ＦＦ回路１０１，１０２，１１１〜１１３には、クロックＣＬＫ１１の４倍の周波数のクロックＣＬＫ１２が入力される。なお、図６に図３の例を適用する場合は、図６のＦＦ回路１０１，１０２にＦＦ回路を並列に挿入し、セレクタを挿入して実現することになる。
【００４５】
次の式（１）は、図６の回路の消費電力を示す。リーク電流は、無視できるものとする。
【００４６】
【数１】
0005444627.tif 000002
【００４７】
図６のロジック回路１０３をスーパーパイプライン処理する場合、ＦＦ回路の挿入により、Ｎが増加する。また、クロック周波数を上げることにより、Ｆが増大する。次の式（２）は、ロジック回路をｎ段のロジック回路に分割し、クロック周波数をｎ倍にしたときの消費電力である。
【００４８】
【数２】
0005444627.tif 000003
【００４９】
式（２）の第１項は、本来ロジック回路にあるＦＦ回路で消費される電力を示している。第２項は、パイプライン処理により追加したＦＦ回路により消費される電力を示している。第３項は、ロジック回路で消費される電力を示している。第４項は、クロック系回路で消費される電力を示している。
【００５０】
式（２）と式（１）を比較すると、式（２）には、ＦＦ回路の追加によって第２項が追加されている。また、回路全体の動作周波数は、ｎ倍となるため、各項にｎが乗算されている。
【００５１】
一方、図３で示したように、ロジック回路の入出力にＦＦ回路を並列に挿入してシリアルデータ処理する場合では、消費電力は、次の式（３）で示される。
【００５２】
【数３】
0005444627.tif 000004
【００５３】
式（３）の第１項は、ＦＦ回路で消費される電力を示している。第２項は、ロジック回路で消費される電力を示している。第３項は、セレクタで消費される電力を示している。第４項は、クロック系回路で消費される電力を示している。
【００５４】
式（３）と式（１）とを比較すると、式（３）には、セレクタで消費される電力を示す第３項が追加されている。また、ＦＦ回路の数がｎ倍となるため、第１項にｎが乗算されている。また、ロジック回路では、１クロック内にｎ組のデータが伝搬するため、動作率がｎ倍となることにより、第２項の消費電力がｎ倍となっている。
【００５５】
次の式（４）は、式（３）と式（２）の差分をとったものである。
【００５６】
【数４】
0005444627.tif 000005
【００５７】
第１項は、セレクタの追加による消費電力の増加分を示している。第２項は、図７のパイプライン処理ではクロック周波数がｎ倍となるのに対し、図３のシリアルデータ処理では、クロック周波数が変わらないことによる差分を示している。第３項は、パイプライン処理により追加されたＦＦ回路で消費される電力を示している。
【００５８】
ここで、式（４）において、動作率を平均動作率αとする。また、追加したＦＦ回路数を、パイプライン処理前のＦＦ回路数のｎ倍（ｎ段分）としてｎ・ＮFとする。また、ＦＦ回路の消費電力をｑ・Ｐεと近似する。すると、式（４）は、式（５）のようになる。
【００５９】
【数５】
0005444627.tif 000006
【００６０】
通常、ｋは、２入力セレクタで２、３入力セレクタで３、６入力セレクタで６程度であるのに対し、ｑは、１０程度である。従って、第１項は、負数であり、ｎが大きくなるに従いますます減少する。一方、第２項は、０以下の値である。
【００６１】
このように、ロジック回路の入出力にＦＦ回路を並列に挿入してシリアルデータ処理したシリアルデータ処理回路では、図７のロジック回路１０３ａ〜１０３ｄにＦＦ回路１１１〜１１３を挿入してパイプライン処理するのに対し、大幅な電力削減となる。
【００６２】
図８は、データ処理装置の他のブロック構成図である。図２のデータ処理装置では、周辺回路１２の周波数をシリアルデータ処理回路１１の周波数に対しＮ倍にして、データＤｉｎをシリアルデータ処理回路に入力するようにした。図８では、周辺回路１２からシリアルデータ処理回路１１に入力されるデータＤｉｎをシリアルデータに変換してシリアルデータ処理回路１１に入力し、シリアルデータ処理回路１１から出力されるデータをパラレルデータに変換して周辺回路１２に出力する。図８において、図２と同じものには同じ符号を付し、その説明を省略する。
【００６３】
図８に示すように、データ処理装置は、クロック位相シフト器１２１，１２２を有している。シリアルデータ処理回路１１の入力には、セレクタ１３１ａ，…，１３１ｎが設けられている。シリアルデータ処理回路１１の出力には、ＦＦ回路群１４１ａ，…，１４１ｎが設けられている。
【００６４】
クロック位相シフト器１２１は、位相を２π／Ｎシフトしたクロックをセレクタ１３１ａ〜１３１ｎに出力する。これにより、セレクタ１３１ａ，…，１３１ｎの各出力からは、周辺回路１２のＮ個のデータＤｉｎを一周期内の連続したデータに変換した、パラレル−シリアル変換のデータが出力される。
【００６５】
クロック位相シフト器１２２は、位相を２π／ＮシフトしたクロックをＦＦ回路群１４１ａ〜１４１ｎに出力する。これにより、ＦＦ回路群１４１ａ，…，１４１ｎの各出力からは、シリアルデータ処理回路１１にて１周期内に含まれるＮ個のデータを変換した、シリアル−パラレル変換のデータＤｏｕｔが出力される。
【００６６】
このように、シリアルデータ処理回路１１に入出力するデータをパラレル−シリアル変換およびシリアル−パラレル変換することにより、シリアルデータ処理回路１１と周辺回路１２とを同じ周波数のクロックＣＬＫ２１で動作させることが可能となる。
【００６７】
図９は、ＦＩＲフィルタの回路図である。図９に示すように、ＦＩＲ（Finite Impulse Response）フィルタは、８ビット入出力のＦＦ回路１５１〜１５７，１０ビット入出力のＦＦ回路１６６，１６７、クロックバッファ１５８，１５９、８ビット入力−９ビット出力の加算器１６０，１６１，１６３，１６４、９ビット入力−１０ビット出力の加算器１６２，１６５、１０ビット入力−１１ビット出力の加算器１６８、およびシフト回路１６９を有している。図９のＦＩＲフィルタは、８タップのＦＩＲフィルタであり、８ビットのデータをシーケンシャルに入力し、フィルタリングした結果を８ビットに丸めて出力する。
【００６８】
ＦＦ回路１５１〜１５７には、クロックバッファ１５８を介してクロックＣＬＫ３１が入力される。ＦＦ回路１５１には、フィルタリングする８ビットのデータが入力される。ＦＦ回路１５１〜１５７は、クロックＣＬＫ３１に同期して、順次入力されるデータを後段のＦＦ回路１５１〜１５７へ出力する。
【００６９】
加算器１６０には、現在入力されたデータと、１クロック前に入力されたデータとが入力される。加算器１６０は、これらのデータを加算して、加算器１６２に出力する。
加算器１６１には、２クロック前に入力されたデータと、３クロック前に入力されたデータとが入力される。加算器１６１は、これらのデータを加算して、加算器１６２に出力する。
【００７０】
加算器１６２は、加算器１６０と加算器１６１から出力されるデータを加算し、ＦＦ回路１６６に出力する。
加算器１６３には、４クロック前に入力されたデータと、５クロック前に入力されたデータとが入力される。加算器１６３は、これらのデータを加算して、加算器１６５に出力する。
【００７１】
加算器１６４には、６クロック前に入力されたデータと、７クロック前に入力されたデータとが入力される。加算器１６４は、これらのデータを加算して、加算器１６５に出力する。
【００７２】
加算器１６５は、加算器１６３と加算器１６４から出力されるデータを加算し、ＦＦ回路１６７に出力する。
ＦＦ回路１６６，１６７には、クロックバッファ１５９を介してクロックＣＬＫ３１が入力される。ＦＦ回路１６６，１６７は、加算器１６２，１６５から出力されるデータをラッチして、加算器１６８に出力する。
【００７３】
加算器１６８は、ＦＦ回路１６６，１６７から出力されるデータを加算して、シフト回路１６９に出力する。シフト回路１６９は、加算器１６８から出力される１１ビットのデータを、ＬＳＢ（Least Significant Bit）方向に３ビットシフトして出力する。すなわち、シフト回路１６９は、ＦＩＲフィルタに入力された８個分の加算データを８で除算して平均化している。
【００７４】
図１０は、２個連続のデータをシリアルデータ処理できるようにしたＦＩＲフィルタの回路図である。図に示すＦＩＲフィルタは、ＦＦ回路１７１〜１７８，１８９，１９０，１９２，１９３、クロックバッファ１７９〜１８２、加算器１８３〜１８８，１９５、セレクタ１９１，１９４、およびシフト回路１９６を有している。
【００７５】
なお、図１０の加算器１９５とシフト回路１９６を、図３のロジック回路８１に対応させるならば、図１０のＦＦ回路１８９，１９０とＦＦ回路１９２，１９３は、図３のＦＦ回路３１〜３４に対応し、図１０のセレクタ１９１とセレクタ１９４は、図３のセレクタ４１〜４４に対応する。また、図１０の加算器１８３〜１８８を、図３のロジック回路８１に対応させるならば、図１０のＦＦ回路１８９，１９０とＦＦ回路１９２，１９３は、図３のＦＦ回路６１〜６４に対応し、図１０のセレクタ１９１とセレクタ１９４は、セレクタ７１〜７４に対応する。ＦＦ回路１７１〜１７８は、図２の周辺回路１２（シリアルデータ処理回路１１にデータを送り込むための回路）に対応する。
【００７６】
すなわち、図１０のＦＩＲフィルタは、図９のＦＦ回路１６６，１６７に並列にＦＦ回路を挿入し、セレクタを設けることによって、図９のＦＩＲフィルタを２個連続のデータをシリアルデータ処理している。
【００７７】
ＦＦ回路１７１，１７３，１７５，１７７には、クロックバッファ１７９を介してクロックＣＬＫ４１が入力される。ＦＦ回路１７１には、フィルタリングする８ビットのデータが入力される。ＦＦ回路１７１，１７３，１７５，１７７は、クロックＣＬＫ４１に同期して、順次入力されるデータを後段のＦＦ回路１７１，１７３，１７５，１７７へ出力する。
【００７８】
ＦＦ回路１７２，１７４，１７６，１７８には、クロックバッファ１８０を介してクロックＣＬＫ４１が入力される。ＦＦ回路１７２には、フィルタリングする８ビットのデータが入力される。ＦＦ回路１７２，１７４，１７６，１７８は、クロックＣＬＫ４１に同期して、順次入力されるデータを後段のＦＦ回路１７２，１７４，１７６，１７８へ出力する。
【００７９】
ＦＦ回路１７１，１７３，１７５，１７７は、ポジティブエッジのＦＦ回路であり、ＦＦ回路１７２，１７４，１７６，１７８は、ネガティブエッジのＦＦ回路である。すなわち、ＦＦ回路１７１とＦＦ回路１７２には、πの位相差を持ったクロックＣＬＫ４１が入力されているのと同じである。なお、ＦＦ回路１７１〜１７８を、同じエッジのＦＦ回路とした場合には、クロックバッファ１７９，１８０の一方の出力にπの位相差を持つ遅延回路を挿入する。
【００８０】
加算器１８３には、ＦＦ回路１７１から出力されるデータと、ＦＦ回路１７２から出力されるデータとが入力される。加算器１８３は、これらのデータを加算して、加算器１８５に出力する。
【００８１】
加算器１８４には、ＦＦ回路１７３から出力されるデータと、ＦＦ回路１７４から出力されるデータとが入力される。加算器１８４は、これらのデータを加算して、加算器１８５に出力する。
【００８２】
加算器１８５は、加算器１８３から出力されるデータと、加算器１８４から出力されるデータを加算して、ＦＦ回路１８９，１９０に出力する。
加算器１８６には、ＦＦ回路１７５から出力されるデータと、ＦＦ回路１７６から出力されるデータとが入力される。加算器１８６は、これらのデータを加算して、加算器１８８に出力する。
【００８３】
加算器１８７には、ＦＦ回路１７７から出力されるデータと、ＦＦ回路１７８から出力されるデータとが入力される。加算器１８７は、これらのデータを加算して、加算器１８８に出力する。
【００８４】
加算器１８８は、加算器１８６から出力されるデータと、加算器１８７から出力されるデータを加算して、ＦＦ回路１９２，１９３に出力する。
ＦＦ回路１８９には、クロックバッファ１８１を介してクロックＣＬＫ４１が入力される。ＦＦ回路１８９は、クロックＣＬＫ４１に同期して、加算器１８５から出力されるデータをセレクタ１９１に出力する。
【００８５】
ＦＦ回路１９０には、クロックバッファ１８２を介してクロックＣＬＫ４１が入力される。ＦＦ回路１９０は、クロックＣＬＫ４１に同期して、加算器１８５から出力されるデータをセレクタ１９１に出力する。
【００８６】
ＦＦ回路１８９は、ポジティブエッジのＦＦ回路であり、ＦＦ回路１９０は、ネガティブエッジのＦＦ回路である。すなわち、ＦＦ回路１８９とＦＦ回路１９０には、πの位相差を持ったクロックＣＬＫ４１が入力されているのと同じである。なお、ＦＦ回路１８９，１９０を、同じエッジのＦＦ回路とした場合には、クロックバッファ１８１，１８２の一方の出力にπの位相差を持つ遅延回路を挿入する。
【００８７】
セレクタ１９１には、クロックバッファ１８２を介してクロックＣＬＫ４１が入力される。セレクタ１９１は、クロックＣＬＫ４１の０，１に基づいて、ＦＦ回路１８９，１９０から出力されるデータを選択して出力する。
【００８８】
ＦＦ回路１９２には、クロックバッファ１８１を介してクロックＣＬＫ４１が入力される。ＦＦ回路１９２は、クロックＣＬＫ４１に同期して、加算器１８８から出力されるデータをセレクタ１９４に出力する。
【００８９】
ＦＦ回路１９３には、クロックバッファ１８２を介してクロックＣＬＫ４１が入力される。ＦＦ回路１９３は、クロックＣＬＫ４１に同期して、加算器１８８から出力されるデータをセレクタ１９４に出力する。
【００９０】
ＦＦ回路１９２は、ポジティブエッジのＦＦ回路であり、ＦＦ回路１９３は、ネガティブエッジのＦＦ回路である。すなわち、ＦＦ回路１９２とＦＦ回路１９３には、πの位相差を持ったクロックＣＬＫ４１が入力されているのと同じである。なお、ＦＦ回路１９２，１９３を、同じエッジのＦＦ回路とした場合には、クロックバッファ１８１，１８２の一方の出力にπの位相差を持つ遅延回路を挿入する。
【００９１】
セレクタ１９４には、クロックバッファ１８２を介してクロックＣＬＫ４１が入力される。セレクタ１９４は、クロックＣＬＫ４１の０，１に基づいて、ＦＦ回路１９２，１９３から出力されるデータを選択して出力する。
【００９２】
加算器１９５は、セレクタ１９１，１９４から出力されるデータを加算して、シフト回路１９６に出力する。シフト回路１９６は、加算器１９５から出力される１１ビットのデータを８ビットにシフトして出力する。
【００９３】
図１１は、図１０の回路のタイミングチャートである。図１１には、図１０に示す各部の出力の信号波形が示してある。
図１０のＦＩＲフィルタには、図１１のｉｎに示すようにａ，ｂ，ｃ，…のデータが入力されるとする。
【００９４】
ＦＦ回路１７１は、クロックＣＬＫ４１のポジティブエッジでデータｉｎをラッチする。従って、ＦＦ回路１７１の出力は、図１１のｆｆ１．ｏに示すようになる。
ＦＦ回路１７３，１７５，１７７は、ＦＦ回路１７１から出力されるデータを１クロック遅れてラッチする。従って、ＦＦ回路１７３，１７５，１７７の出力は、図１１のｆｆ３．ｏ，ｆｆ５．ｏ，ｆｆ７．ｏに示すようになる。
【００９５】
ＦＦ回路１７２は、クロックＣＬＫ４１のネガティブエッジでデータｉｎをラッチする。従って、ＦＦ回路１７２の出力は、図１１のｆｆ２．ｏに示すようになる。
ＦＦ回路１７４，１７６，１７８は、ＦＦ回路１７２から出力されるデータを１クロック遅れてラッチする。従って、ＦＦ回路１７４，１７６，１７８の出力は、図１１のｆｆ４．ｏ，ｆｆ６．ｏ，ｆｆ８．ｏに示すようになる。
【００９６】
加算器１８３は、ＦＦ回路１７１とＦＦ回路１７２の出力を加算する。従って、加算器１８３の出力は、図１１のａｄｄ１．ｏに示すように、ｆｆ１．ｏとｆｆ２．ｏを加算した値となる。
【００９７】
加算器１８４は、ＦＦ回路１７３とＦＦ回路１７４の出力を加算する。従って、加算器１８４の出力は、図１１のａｄｄ２．ｏに示すように、ｆｆ３．ｏとｆｆ４．ｏを加算した値となる。
【００９８】
加算器１８６は、ＦＦ回路１７５とＦＦ回路１７６の出力を加算する。従って、加算器１８６の出力は、図１１のａｄｄ３．ｏに示すように、ｆｆ５．ｏとｆｆ６．ｏを加算した値となる。
【００９９】
加算器１８７は、ＦＦ回路１７７とＦＦ回路１７８の出力を加算する。従って、加算器１８７の出力は、図１１のａｄｄ４．ｏに示すように、ｆｆ７．ｏとｆｆ８．ｏを加算した値となる。
【０１００】
加算器１８５は、加算器１８３の出力と加算器１８４の出力を加算する。従って、加算器１８５の出力は、図１１のａｄｄ５．ｏに示すように、ａｄｄ１．ｏとａｄｄ２．ｏを加算した値となる。
【０１０１】
加算器１８８は、加算器１８６の出力と加算器１８７の出力を加算する。従って、加算器１８８の出力は、図１１のａｄｄ６．ｏに示すように、ａｄｄ３．ｏとａｄｄ４．ｏを加算した値となる。
【０１０２】
ＦＦ回路１８９は、クロックＣＬＫ４１のポジティブエッジで、加算器１８５から出力されるデータをラッチする。従って、ＦＦ回路１８９の出力は、図１１のｆｆ９．ｏに示すようになる。
【０１０３】
ＦＦ回路１９０は、クロックＣＬＫ４１のネガティブエッジで、加算器１８５から出力されるデータをラッチする。従って、ＦＦ回路１９０の出力は、図１１のｆｆ１０．ｏに示すようになる。
【０１０４】
ＦＦ回路１９２は、クロックＣＬＫ４１のポジティブエッジで、加算器１８８から出力されるデータをラッチする。従って、ＦＦ回路１９２の出力は、図１１のｆｆ１１．ｏに示すようになる。
【０１０５】
ＦＦ回路１９３は、クロックＣＬＫ４１のネガティブエッジで、加算器１８８から出力されるデータをラッチする。従って、ＦＦ回路１９３の出力は、図１１のｆｆ１２．ｏに示すようになる。
【０１０６】
セレクタ１９１は、クロックＣＬＫ４１に同期して、ＦＦ回路１８９，１９０の一方のデータを選択し、出力する。従って、セレクタ１９１の出力は、図１１のｓｅｌ１．ｏに示すようになる。
【０１０７】
セレクタ１９４は、クロックＣＬＫ４１に同期して、ＦＦ回路１９２，１９３の一方のデータを選択し、出力する。従って、セレクタ１９４の出力は、図１１のｓｅｌ２．ｏに示すようになる。
【０１０８】
加算器１９５は、セレクタ１９１，１９４の出力を加算する。従って、加算器１９５の出力は、図１１のａｄｄ７．ｏに示すようになる。
シフト回路１９６は、加算器１９５の出力を３ビットシフトする。従って、シフト回路１９６の出力は、図１１のｏｕｔに示すようになる。
【０１０９】
このようにして、図１０に示す２個のシリアルデータを処理するＦＩＲフィルタは、入力されるデータｉｎのフィルタリング処理を行う。
図１２は、図９のＦＩＲフィルタにＦＦ回路をシリアルに挿入してパイプライン処理した回路図である。図１２のＦＩＲフィルタは、図９のＦＩＲフィルタを２段にパイプライン処理した回路である。図１２において図９と同じものには同じ符号を付し、その説明を省略する。
【０１１０】
図１２のＦＩＲフィルタでは、加算器１６０，１６１と加算器１６２との間にＦＦ回路２０３，２０４が挿入されている。加算器１６３，１６４と加算器１６５との間にＦＦ回路２０５，２０６が挿入されている。加算器１６８とシフト回路１６９との間にＦＦ回路２０７が挿入されている。
【０１１１】
図１２の回路を図７に対応させるならば、図１２のＦＦ回路２０３〜２０６は、例えば、図７のＦＦ回路１１１に対応する。図１２のＦＦ回路２０７は、例えば、図７のＦＦ回路１１２に対応する。すなわち、図１２のＦＩＲフィルタでは、ＦＦ回路２０３〜２０６とＦＦ回路２０７とを挿入することによって、図９のＦＩＲフィルタを２段にパイプライン処理している。
【０１１２】
ＦＦ回路２０３〜２０６には、クロックバッファ２０１を介して、クロックＣＬＫ５１が入力される。ＦＦ回路２０７には、クロックバッファ２０２を介して、クロックＣＬＫ５１が入力される。
【０１１３】
クロックＣＬＫ５１の周波数は、図９のクロックＣＬＫ３１に対して２倍となっている。ＦＦ回路２０３〜２０６とＦＦ回路２０７とをＦＩＲフィルタにシリアルに挿入して２段のパイプライン処理回路にすることにより、周波数を２倍にすることができる。
【０１１４】
図１０のＦＩＲフィルタの消費電力削減効果を見積もる。図１０のＦＩＲフィルタと、図１２のＦＩＲフィルタのゲート数を比較すると、図１２のＦＩＲフィルタでは、ＦＦが１２３個（１ビットにつき１個として算出）に対し、図１０のＦＩＲフィルタでは、１０４個となる。従って、図１０のＦＩＲフィルタの方が図１２のＦＩＲフィルタより１９個少ない。一方、図１０のＦＩＲフィルタでは、２０個のセレクタの回路が増加する。
【０１１５】
２入力のセレクタの消費電力は、基本ＢＣ（Basic Cell：２入力のＮＡＮＤ回路やＮＯＲ回路）の１．５倍、ＦＦの消費電力は、基本ＢＣの１０倍と仮定すると、セレクタにおける電力増加分とＦＦにおける電力減少分を表す式（５）の第１項は、次の式（６）に示すようになる。
【０１１６】
【数６】
0005444627.tif 000007
【０１１７】
なお、式（５）は、近似を用いているため、式（６）は、式（５）から直接計算せず、式（２）と式（３）から導いている。
また、クロックバッファまで考慮すると、図１２のＦＩＲフィルタでは１４個に対し、図１０のＦＩＲフィルタでは、１２個となる。クロックラインの動作率を２として、式（５）の第２項を求めると、次の式（７）に示すようになる。
【０１１８】
【数７】
0005444627.tif 000008
【０１１９】
式（６）と式（７）を加算した値が、図１０のＦＩＲフィルタの、図１２のＦＩＲフィルタに対する電力削減量となる。
このように、ＦＩＲフィルタのロジック回路に並列にＦＦ回路１８９，１９０，１９２，１９３とセレクタ１９１，１９４を挿入してシリアルデータ処理することにより、低消費電力でパイプライン処理と同じ性能を実現することができる。
【図面の簡単な説明】
【０１２０】
【図１】シリアルデータ処理回路の概要を示した図である。
【図２】シリアルデータ処理回路を適用したデータ処理装置のブロック構成図である。
【図３】シリアルデータ処理回路のブロック構成図である。
【図４】タイミング制約を説明する図である。
【図５】図４の信号間のタイミングを示した図である。
【図６】シリアルデータ処理前のロジック回路のブロック構成図である。
【図７】図６のロジック回路にＦＦ回路をシリアルに挿入してスーパーパイプライン処理したブロック構成図である。
【図８】データ処理装置の他のブロック構成図である。
【図９】ＦＩＲフィルタの回路図である。
【図１０】図９のＦＩＲフィルタを２段にシリアルデータ処理した回路図である。
【図１１】図１０の回路のタイミングチャートである。
【図１２】図９のＦＩＲフィルタにＦＦ回路をシリアルに挿入してパイプライン処理した回路図である。
【符号の説明】
【０１２１】
１ａ，１ｂ，１ｃ，１ｄ  ラッチ手段
２  選択手段
３  ロジック回路
Ｄ１  データ
【図１】
0005444627.tif 000009
【図２】
0005444627.tif 000010
【図３】
0005444627.tif 000011
【図４】
0005444627.tif 000012
【図５】
0005444627.tif 000013
【図６】
0005444627.tif 000014
【図７】
0005444627.tif 000015
【図８】
0005444627.tif 000016
【図９】
0005444627.tif 000017
【図１０】
0005444627.tif 000018
【図１１】
0005444627.tif 000019
【図１２】
0005444627.tif 000020