(57)【要約】【課題】本発明は、小さい回路規模で高速な演算が可能な演算装置を提供することを目的とする。【解決手段】演算装置は、第１のパラレルデータを各々が所定のビット数からなる所定数の第１の部分データに分解して所定数の第１の部分データを１つずつ順次供給する第１のパラレル・シリアル変換回路と、第２のパラレルデータを各々が所定のビット数からなる所定数の第２の部分データに分解して所定数の第２の部分データを１つずつ順次供給する第２のパラレル・シリアル変換回路と、順次供給される所定数の第１の部分データと順次供給される所定数の第２の部分データとに対する演算を部分データ毎に所定数分順次実行するシリアル演算器と、演算器の演算結果を所定数分順次受け取り１つに纏めて第３のパラレルデータとして出力するシリアル・パラレル変換回路を含む。【選択図】図２
2004318670.tif 000002
【特許請求の範囲】
【請求項１】
第１のパラレルデータを各々が所定のビット数からなる所定数の第１の部分データに分解して該所定数の第１の部分データを１つずつ順次供給する第１のパラレル・シリアル変換回路と、
第２のパラレルデータを各々が該所定のビット数からなる所定数の第２の部分データに分解して該所定数の第２の部分データを１つずつ順次供給する第２のパラレル・シリアル変換回路と、
順次供給される該所定数の第１の部分データと順次供給される該所定数の第２の部分データとに対する演算を部分データ毎に該所定数分順次実行するシリアル演算器と、
該演算器の演算結果を該所定数分順次受け取り１つに纏めて第３のパラレルデータとして出力するシリアル・パラレル変換回路
を含むことを特徴とする演算装置。
【請求項２】
該シリアル演算器は、
該所定ビット数の演算を実行して該演算結果と中間結果とを出力する所定ビット数演算器と、
該中間結果を格納するレジスタ
を含み、該レジスタが格納するある演算に対する該中間結果を次の演算時に該所定ビット数演算器に供給することを特徴とする請求項１記載の演算装置。
【請求項３】
該第１及び第２のパラレルデータを該第１及び第２のパラレル・シリアル変換回路に供給する入力側回路を更に含み、該入力側回路は第１のクロック信号に同期して動作し、該第１及び第２のパラレル・シリアル変換回路、該シリアル演算器、及び該シリアル・パラレル変換回路は第２のクロック信号に同期して動作することを特徴とする請求項１記載の演算装置。
【請求項４】
該シリアル・パラレル変換回路から該第３のパラレルデータを供給される出力側回路を更に含み、該出力側回路は第１のクロック信号に同期して動作し、該第１及び第２のパラレル・シリアル変換回路、該シリアル演算器、及び該シリアル・パラレル変換回路は第２のクロック信号に同期して動作することを特徴とする請求項１記載の演算装置。
【請求項５】
各サイクルで演算を実行し各サイクル毎に演算結果と中間結果とを出力する演算器と、
該中間結果を格納するレジスタ
を含み、各サイクルでの演算の該演算結果を外部に出力すると共に、該レジスタが格納するあるサイクルの演算の該中間結果を次のサイクルの演算時に該演算器に供給することを特徴とする演算器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に情報処理装置に関し、詳しくは論理演算や算術演算を実行する演算装置に関する。
【従来の技術】
マイクロプロセサやデジタルシグナルプロセサなどの情報処理装置においては、Ｎビットのデータの演算処理を行う際には、Ｎビットのデータを一括して演算し、Ｌビットの演算結果を同時に得る構成となっている。このようにＮビットの一括演算を高速に実行するために、従来技術においては種々の回路上の工夫がなされている。例えば加算演算を高速化するためには、ＣＬＡ（Ｃａｒｒｙ  Ｌｏｏｋ  Ａｈｅａｄ）アダ−やＣＳＡ（Ｃａｒｒｙ  Ｓａｖｅ  Ａｄｄｅｒ）アダ−等の回路を用いる。また更に、複数の演算を実行する際の実効的な速度を向上させるために、複数サイクルの演算をパイプライン化するなどの工夫がなされる。
【０００２】
【特許文献１】
特開平２−２０５９２３号公報
【０００３】
【特許文献２】
特開平５−０４６３６２号公報
【発明が解決しようとする課題】
このように従来の技術では、１サイクルあたりの演算をできる限り高速に実行するために、複雑な演算アルゴリズムを適用したり、パイプライン段数を多くしたりする解決策が取られていた。そのために回路規模が増大し、動作周波数も上げ難く、消費電力の増加や製品コストの増大につながる等の問題があった。
【０００４】
またスーパースカラプロセサやＶＬＩＷプロセサなど、並列処理を行う情報処理装置においては、その並列処理性能を向上させるためには多数の演算器が必要となる。しかし回路規模が大きい演算器の場合には、回路面積の制限のために、ＬＳＩ上に多数の演算器を実装することが困難であった。
【０００５】
以上を鑑みて、本発明は、小さい回路規模で高速な演算が可能な演算装置を提供することを目的とする。
【課題を解決するための手段】
本発明による演算装置は、第１のパラレルデータを各々が所定のビット数からなる所定数の第１の部分データに分解して該所定数の第１の部分データを１つずつ順次供給する第１のパラレル・シリアル変換回路と、第２のパラレルデータを各々が該所定のビット数からなる所定数の第２の部分データに分解して該所定数の第２の部分データを１つずつ順次供給する第２のパラレル・シリアル変換回路と、順次供給される該所定数の第１の部分データと順次供給される該所定数の第２の部分データとに対する演算を部分データ毎に該所定数分順次実行するシリアル演算器と、該演算器の演算結果を該所定数分順次受け取り１つに纏めて第３のパラレルデータとして出力するシリアル・パラレル変換回路を含むことを特徴とする。
【０００６】
このようにして本発明においては、Ｎビットの演算を一括して行うのではなく、Ｎビットを分割した少ないビット数（Ｍビット）ごとに逐次演算を行っていくことで、複数サイクルかけてＮビット全体について演算を実行する構成となっている。この構成により、１サイクルあたりのＭビット演算回路の構成をできるだけ単純化することで、回路規模を小さくすると共に演算回路を高い周波数で動作させることが可能となる。従って、回路規模を削減するという目的と共に、複数サイクルを演算に必要としながらも各サイクルにかかる時間を短縮することで全体の演算を高速で実行することができる。これにより、高速化、低コスト化、及び低消費電力化を実現することが可能となる。
【０００７】
また本発明による演算器を並列処理を行う情報処理装置に適用した場合には、回路規模の小さい多数の演算器をＬＳＩ上に実装することが可能となり、並列処理性能を向上させることが可能となる。
【発明の実施の形態】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【０００８】
図１は、本発明によるシリアル演算器の原理構成を示す図である。図１に示すシリアル演算器１０は、Ｍビット演算器１１及びレジスタ１２を含む。
【０００９】
図２は、本発明による演算装置の原理構成を示す図である。図２に示す演算装置２０は、シリアル演算器１０、パラレル・シリアル変換回路２１、パラレル・シリアル変換回路２２、及びシリアル・パラレル変換回路２３を含む。
【００１０】
パラレル・シリアル変換回路２１及び２２は、それぞれＮビットの入力データをパラレル・シリアル変換して、演算対象であるＮビットをＭビット部分に分割し（Ｎ＞Ｍ）、各Ｍビット部分をシリアル演算器１０に順次供給する。シリアル演算器１０のＭビット演算器１１は、各Ｍビット部分について逐次所定の演算を実行する。Ｍビット演算器１１は、所定の演算を実行した演算結果Ｌビットを出力すると共に、Ｋビットからなる演算中間データをレジスタ１２に格納する。レジスタ１２に格納された演算中間データは、次回のＭビット演算に用いるためにシリアル演算器１０に適当なタイミングで供給される。レジスタ１２の動作タイミングは、クロック信号Ｃｌｏｃｋによって規定される。またレジスタ１２は、その初期値を決定するために初期値制御信号を受け取る。
【００１１】
演算中間データは、例えば加算回路の場合であれば、下位の桁から上位の桁に伝播されるキャリービットに対応する。
【００１２】
Ｍビット演算器１１が出力する演算結果Ｌビットは、順次シリアル・パラレル変換回路２３内部に格納されていく。シリアル・パラレル変換回路２３は、順次格納される各Ｌビットデータを纏めたＪビットデータを、Ｎビットの入力データに対する演算結果として所定のタイミングで出力する。
【００１３】
このようにして本発明においては、Ｎビットの演算を一括して行うのではなく、Ｎビットを分割した少ないビット数（Ｍビット）ごとに逐次演算を行っていくことで、複数サイクルかけてＮビット全体について演算を実行する構成となっている。この構成により、１サイクルあたりのＭビット演算回路の構成をできるだけ単純化することで、回路規模を小さくすると共に演算回路を高い周波数で動作させることが可能となる。従って、回路規模を削減するという目的と共に、複数サイクルを演算に必要としながらも各サイクルにかかる時間を短縮することで全体の演算を高速で実行することができる。これにより、高速化、低コスト化、及び低消費電力化を実現することが可能となる。
【００１４】
また本発明による演算器を並列処理を行う情報処理装置に適用した場合には、回路規模の小さい多数の演算器をＬＳＩ上に実装することが可能となり、並列処理性能を向上させることが可能となる。
【００１５】
図３は、シリアル演算器１０の第１の実施例に係る構成を示す図である。
【００１６】
本実施例によるシリアル演算器１０Ａにおいては、Ｍビット演算器１１として１ビットの全加算器１１Ａを設ける。全加算器１１Ａは、演算入力１と演算入力２としてクロックサイクルごとに１ビットずつ入力されるデータを加算し、その桁の加算結果をそのサイクルにおいて１ビットの演算結果として出力する。また更に全加算器１１Ａは、桁上げ信号（Ｃｏｕｔ）をレジスタ１２に格納する。このレジスタ１２は、初期設定が出来るように構成されていて、最下位ビットの加算を行うときはレジスタ１２の格納データは”０”に初期設定される。このような構成を採用することにより、例えば３２ビットの加算を実行する場合には、３２サイクルかけて３２ビットの加算結果を得ることができる。
【００１７】
従来方式のように３２ビットのリップルキャリー加算器の場合、１ビット全加算器が３２個必要となるが、本発明によれば１個の１ビット全加算器と１個のレジスタとがあればよいので回路規模を大幅に削減することができる。また、本発明によれば、加算器の構成を単純にすることができるため、動作サイクルの周期を短くすることができる。例えば、本発明の演算器のサイクル周期を１００ｐｓとして構成できたとすると、３２ビットの加算を行うのに１００ｐｓ×３２サイクル＝３．２ｎｓとなり、周波数３００ＭＨｚ動作の３２ビット加算器と同程度の性能を、非常に小規模な回路で得ることができる。
【００１８】
図４は、シリアル演算器１０の第２の実施例に係る構成を示す図である。
【００１９】
本実施例によるシリアル演算器１０Ｂにおいては、Ｍビット演算器１１として８ビットの先見加算器１１Ｂを設ける。先見加算器１１Ｂは、演算入力１と演算入力２としてクロックサイクルごとに８ビットずつ入力されるデータを加算し、８ビットの加算結果をそのサイクルの演算結果として出力する。また更に先見加算器１１Ｂは、桁上げ信号（Ｃｏｕｔ）をレジスタ１２に格納する。このレジスタ１２は、初期設定が出来るように構成されていて、最下位ビットの加算を行うときはレジスタ１２の格納データは”０”に初期設定される。このような構成を採用することにより、例えば３２ビットの加算を実行する場合には、４サイクルかけて３２ビットの加算結果を得ることができる。
【００２０】
従来方式のように３２ビットのリップルキャリー加算器の場合、１ビット全加算器が３２個必要となるが、本発明によれば１個の８ビット桁上げ先見加算器と１個のレジスタとがあればよいので回路規模を大幅に削減することができる。また、本発明によれば、加算器の構成を単純にすることができるため、動作サイクルの周期を短くすることができる。例えば、本発明の演算器のサイクル周期を５００ｐｓとして構成できたとすると、３２ビットの加算を行うのに５００ｐｓ×４サイクル＝２ｎｓとなり、周波数５００ＭＨｚ動作の３２ビット加算器と同程度の性能を、非常に小規模な回路で得ることができる。
【００２１】
図５は、シリアル演算器１０の第３の実施例に係る構成を示す図である。
【００２２】
本実施例によるシリアル演算器１０Ｃにおいては、Ｍビット演算器１１として１ビットのＡＮＤゲート１１Ｃを設ける。ＡＮＤゲート１１Ｃは、演算入力１と演算入力２としてクロックサイクルごとに１ビットずつ入力されるデータをＡＮＤ演算し、１ビットのＡＮＤ演算結果をそのサイクルの演算結果として出力する。このような構成を採用することにより、例えば３２ビットのＡＮＤ演算を実行する場合には、３２サイクルかけて３２ビットのＡＮＤ演算結果を得ることができる。
【００２３】
このように本発明は、加算演算だけでなく、ここに例として示したようにＡＮＤ演算や、更にはＯＲ演算やシフト演算等の論理演算に適用することができる。なおＡＮＤ演算やＯＲ演算等のように、ビット間に相互作用がない演算の場合には、図５からも分かるように図１に示されるようなレジスタ１２は設ける必要がない。またシリアル演算器に対して、クロック信号や初期値制御信号を供給する必要もない。
【００２４】
図６は、シリアル演算器１０の第４の実施例に係る構成を示す図である。
【００２５】
本実施例によるシリアル演算器１０Ｄにおいては、Ｍビット演算器１１として１ビットの全加算器１１Ａ及びＡＮＤゲート１１Ｃを設け、これらの出力をセレクタ１３で選択可能な構成となっている。演算種類選択信号がセレクタ１３に供給され、演算結果を出力する演算の種類を選択する。
【００２６】
全加算器１１Ａ及びレジスタ１２の動作は、図３に示す第１の実施例の場合と同様であり、ＡＮＤゲート１１Ｃの動作は、図５に示す第３の実施例の場合と同様である。このような構成を採用することにより、３２サイクルかけて、３２ビットの加算結果又は３２ビットのＡＮＤ演算結果を得ることができる。
【００２７】
図７は、シリアル演算器１０の第５の実施例に係る構成を示す図である。
【００２８】
本実施例によるシリアル演算器１０Ｅにおいては、Ｍビット演算器１１として１ビットの全加算器１１Ａを設け、更に全加算器１１Ａの一方の入力にインバータ１４及びセレクタ１５を設けることで、加算対象の入力信号を反転可能な構成となっている。演算種類選択信号がセレクタ１５に供給され、演算入力２をそのままの値で全加算器１１Ａへ入力するか、又は演算入力２の反転値を全加算器１１Ａへ入力するかを選択する。これにより、加算演算と減算演算との間で演算の種類を選択することができる。
【００２９】
全加算器１１Ａ及びレジスタ１２の動作は、図３に示す第１の実施例の場合と同様である。このような構成を採用することにより、３２サイクルかけて、３２ビットの加算結果又は３２ビットの減算結果を得ることができる。
【００３０】
図８は、本発明によるパラレル・シリアル変換回路の第１の実施例の構成を示す図である。図８に示すパラレル・シリアル変換回路は、図２においてパラレル・シリアル変換回路２１又は２２として使用することができる。
【００３１】
図８のパラレル・シリアル変換回路は、１６ビットのパラレルデータを１ビットのシリアルデータとして出力するものであり、フリップフロップ３１−１乃至３１−１６及びセレクタ３２−１乃至３２−１５を含む。フリップフロップ３１−１乃至３１−１６は、クロック信号に応じて入力データをラッチして出力する。フリップフロップ３１−１乃至３１−１６及びセレクタ３２−１乃至３２−１５は、ある段のフリップフロップ出力が対応するセレクタを介して次段のフリップフロップに入力されるよう接続される。セレクタ３２−１乃至３２−１５は、前段のフリップフロップからの出力と外部からの入力パラレルデータとの何れかを制御信号に基づいて選択する。
【００３２】
セレクタ３２−１乃至３２−１５が外部からの入力パラレルデータを選択する状態で、クロック信号を供給して各フリップフロップ３１−１乃至３１−１６にデータを格納する。その後、セレクタ３２−１乃至３２−１５が前段のフリップフロップからの出力を選択する状態にして、クロック信号を供給することでデータを順次シフトして、１ビットずつ演算器に供給することができる。
【００３３】
図９は、本発明によるシリアル・パラレル変換回路の第１の実施例の構成を示す図である。図９に示す回路は、図２においてシリアル・パラレル変換回路２３として使用することができる。
【００３４】
図９のシリアル・パラレル変換回路は、１６ビットのシリアル信号を受け取りパラレル信号として出力するものであり、フリップフロップ４１−１乃至４１−１６を含む。フリップフロップ４１−１乃至４１−１６は、ある段の出力が次段の入力になるように接続される。演算器からの１ビット出力が、フリップフロップ４１−１に供給され、クロックパルスが供給されるたびに順次次段のフリップフロップにシフトされていく。１６段シフトした時点で、１６ビットのパラレルデータ出力が得られる。
【００３５】
図１０は、本発明によるパラレル・シリアル変換回路の第２の実施例の構成を示す図である。図１０に示すパラレル・シリアル変換回路は、１６ビットのデータを取り込んで４ビットずつを１纏まりとしてシリアルに出力する構成であり、演算器が４ビット毎に逐次演算する場合に使用されるものである。
【００３６】
図１０のパラレル・シリアル変換回路は、第１のフリップフロップモジュール５１と複数の第２のフリップフロップモジュール５２を含む。第１段から第４段までのモジュールが前段の出力を次段の入力とするように接続され、第１段が第１のフリップフロップモジュール５１であり、第２段から第４段までが第２のフリップフロップモジュール５２である。また第１段から第４段までのモジュールは、１６ビットのパラレル入力データのうちの対応する４ビットを並列に受け取るよう構成される。
【００３７】
図１１は、第１のフリップフロップモジュール５１の構成を示す図である。第１のフリップフロップモジュール５１は、フリップフロップ６１−１乃至６１−４を含む。フリップフロップ６１−１乃至６１−４は、１６ビットのパラレル入力データのうちの対応する４ビットのデータＩ［０］乃至Ｉ［３］を受け取り、このデータをクロック信号ＣＫに応じてラッチし、次段に出力Ｏ［０］乃至Ｏ［３］として供給する。
【００３８】
図１２は、第２のフリップフロップモジュール５２の構成を示す図である。第２のフリップフロップモジュール５２は、フリップフロップ７１−１乃至７１−４と、セレクタ７２−１乃至７２−４を含む。各セレクタは、１６ビットのパラレル入力データのうちの対応する４ビットのデータＩ［０］乃至Ｉ［３］と、前段のモジュールから供給される４ビットのデータＪ［０］乃至Ｊ［３］との何れかを選択する。選択されたデータは、クロック信号ＣＫに応じてフリップフロップ７１−１乃至７１−４によりラッチされ、次段に出力Ｏ［０］乃至Ｏ［３］として供給される。
【００３９】
このようにして図１０乃至図１２に示される構成により、１６ビットのパラレル入力データを４ビットずつ一纏めのデータとして、シリアルに順次出力することが可能となる。
【００４０】
図１３は、本発明によるシリアル・パラレル変換回路の第２の実施例の構成を示す図である。図１３に示すシリアル・パラレル変換回路は、４ビットを１纏まりとしてシリアルに供給されるデータを１６ビットのパラレルデータとして出力する構成であり、演算器が４ビット毎に逐次演算する場合に使用されるものである。
【００４１】
図１３のシリアル・パラレル変換回路は、図１１に示される第１のフリップフロップモジュール５１を４段直列に接続した構成となっている。図１１を参照して説明したように、第１のフリップフロップモジュール５１のフリップフロップ６１−１乃至６１−４は、４ビットのデータＩ［０］乃至Ｉ［３］を受け取り、このデータをクロック信号ＣＫに応じてラッチし、次段に出力Ｏ［０］乃至Ｏ［３］として供給する。従って、第１のフリップフロップモジュール５１を図１３に示されるように、前段の出力が次段の入力となるように接続することで、４ビットずつ供給されるデータをクロック信号ＣＫに応じて逐次シフトしていき、４ビットデータが４回供給された時点で１６ビットのパラレルデータとして出力することができる。
【００４２】
図１４は、本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成を示す図である。
【００４３】
図１４のマイクロプロセッサは、演算装置２０と周辺回路７２を含む。演算装置２０は、シリアル演算器１０Ａ、パラレル・シリアル変換回路２１、パラレル・シリアル変換回路２２、及びシリアル・パラレル変換回路２３を含む。演算装置２０は、１６ビットの入力データを１ビットずつシリアルに加算する回路であり、１６ビットの出力データを供給する。シリアル演算器１０Ａは、図３の構成と同様であり、１ビット全加算器１１Ａ及びレジスタ１２を含む。周辺回路７２は、論理演算ユニットである演算装置２０が演算するデータ等を格納する汎用レジスタや、演算装置２０の動作やレジスタトランスファ論理を制御する制御回路等を含む。
【００４４】
図１４に示すように、周辺回路７２は第１のクロック信号Ｃｌｏｃｋ＿１に基づいて動作し、演算装置２０は第２のクロック信号Ｃｌｏｃｋ＿２に基づいて動作する。本発明によれば演算器部分（演算装置２０）を単純な回路構成にすることができるので、第２のクロック信号Ｃｌｏｃｋ＿２を高い周波数とすることが可能である。それに対して、周辺回路７２の汎用レジスタや制御回路を、第２のクロック信号Ｃｌｏｃｋ＿２と同様の高い周波数で動作させることは非常に困難である。そこで図１４の構成では、周辺回路７２と演算装置２０とを別系統のクロックで動作させる。
【００４５】
このようにして本発明によれば、演算器面積が小さく、低消費電力で、且つ高性能なマイクロプロセッサやＤＳＰ等を提供することが可能となる。
【００４６】
図１５は、図１４のマイクロプロセッサの動作を示すタイミングチャートである。周辺回路７２は第１のクロック信号Ｃｌｏｃｋ＿１に同期して動作しており、入力データ１及び入力データ２は、第１のクロック信号に同期してサイクル１で有効な入力データＡ及びＢとなる。入力データ１及び入力データ２は、制御信号をアサートすることにより、クロック信号Ｃｌｏｃｋ＿２に同期してパラレル・シリアル変換回路２１及び２２に格納される。
【００４７】
パラレル・シリアル変換回路２１及び２２に格納された入力データは、クロック信号Ｃｌｏｃｋ＿２により毎サイクルシフトされながら、１ビット全加算器１１Ａに１ビットずつ供給される。１ビット全加算器１１Ａによる演算結果は、シリアル・パラレル変換回路２３に１ビットずつ格納されてシフトされる。この際、最下位の１ビット（最初の１ビット）の演算時には下の桁からの桁上げが存在しないので、Ｃｉｎを“０”に設定するべく初期値制御信号がアサートされる。この初期値制御信号は、制御信号と共通化できるならば共通化してもよい。また下位ビットからの桁上げが無い演算（例えばＡＮＤ演算やＯＲ演算等）を行う場合には、省略しても構わない。
【００４８】
このようにして下位ビットから開始された演算は、クロック信号Ｃｌｏｃｋ＿２の第１７サイクル（Ｃｙｃｌｅ１７）で演算を完了し、第１８サイクル（Ｃｙｃｌｅ１８）において、周辺回路によるシリアル・パラレル変換回路２３からの演算結果Ｃの取り出しが可能となる。この例において、サイクル周期が１００ｐｓであれば、クロック信号Ｃｌｏｃｋ＿２の周波数は１０ＧＨｚ、クロック信号Ｃｌｏｃｋ＿１の周波数は５５５ＭＨｚとなる。
【００４９】
なお図１５の構成においては、最初の演算結果が入力されてから、１７サイクル後に１６ビットのパラレルデータを出力する。この１６ビットの出力パラレルデータは、次のサイクルでは１ビットシフトされてしまうので、周辺回路７２で１６ビットの出力パラレルデータを取り込み可能な時間は、高速なクロック信号Ｃｌｏｃｋ＿２の１サイクル分の期間だけということになる。
【００５０】
低速なクロック信号ＣＬｏｃｋ＿１に基づいて動作する周辺回路７２にとっては、そのような短期間内にタイミングを合わせる必要があるとすると、クロック周波数や位相等に関するタイミング制限が大きくなり好ましくない。そこで１６ビットの出力パラレルデータを、クロック信号Ｃｌｏｃｋ＿２の複数サイクルの期間保持可能な構成とすることが望ましい。
【００５１】
図１６は、本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成の別の一例を示す図である。図１６において、図１４と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００５２】
図１６のマイクロプロセッサは、図１４のマイクロプロセッサと比較して、シリアル・パラレル変換回路２３の代わりにシリアル・パラレル変換回路２３Ａが設けられている点が異なる。このシリアル・パラレル変換回路２３Ａは、出力制御信号によりその動作が制御される。
【００５３】
図１７は、シリアル・パラレル変換回路２３Ａの回路構成の一例を示す図である。  図１７のシリアル・パラレル変換回路２３Ａは、図９のシリアル・パラレル変換回路２３と同様にフリップフロップ４１−１乃至４１−１６を含む。更に図１７においては、フリップフロップ４１−１乃至４１−１６へのクロック信号の供給／停止を制御するためにＡＮＤ回路４５が設けられる。出力制御信号の負論理信号がＡＮＤ回路４５の一方の入力に供給される。出力制御信号がアサートされたとき、シリアル・パラレル変換回路２３Ａは、演算結果の取り込みとデータのシフト動作を停止し、前のサイクルに保持していたデータをそのまま保持する。
【００５４】
図１８は、図１６のマイクロプロセッサの動作を示すタイミングチャートである。図１８に示される動作においては、図１５に示される動作と異なり、シリアル・パラレル変換回路２３Ａに１６ビット分の出力パラレルデータが保持された時点で、出力制御信号がアサートされる。これにより、シリアル・パラレル変換回路２３Ａは、演算結果の取り込みとデータのシフト動作を停止し、出力パラレルデータＣをそのまま保持する。
【００５５】
このような構成とすることにより、クロック信号Ｃｌｏｃｋ＿１とクロック信号Ｃｌｏｃｋ＿２とのタイミング関係に大きな制限が課されることがなく、周波数比を自由に設定・変更することが可能となる。従って、マイクロプロセッサやＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等を使用するシステムにおいて、外部バスインターフェースのクロック信号やＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のクロック信号等の複数のクロック信号との間でのデータ受け渡しが容易になる。上記実施例によれば、サイクル周期が１００ｐｓであればＣｌｏｃｋ＿２の周波数は１０ＧＨｚ、Ｃｌｏｃｋ＿１の周波数は５００ＭＨｚとなり、そのクロック比を整数倍にすることが可能となるため、他のクロックとの信号の受け渡しが容易になる。
【００５６】
図１９は、本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成の別の一例を示す図である。図１９において、図１６と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００５７】
図１９においては、図１６の周辺回路７２が、演算装置２０に対する入力側の周辺回路８１及び出力側の周辺回路８２として別々に設けられる。周辺回路８１はクロック信号Ｃｌｏｃｋ＿１に同期して動作し、周辺回路８２はクロック信号Ｃｌｏｃｋ＿３に同期して動作する。このように本発明においては、演算装置２０の入力側のクロック信号の周波数と、出力側のクロック信号の周波数とが異なる構成であってもよい。この場合であっても、出力制御信号によりシリアル・パラレル変換回路２３Ａのシフト動作を制御することで、クロック信号Ｃｌｏｃｋ＿３のタイミングに大きな制限が課されることがなく、周波数を自由に設定・変更することが可能となる。
【００５８】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００５９】
本発明は、以下の内容を含むものである。
（付記１）第１のパラレルデータを各々が所定のビット数からなる所定数の第１の部分データに分解して該所定数の第１の部分データを１つずつ順次供給する第１のパラレル・シリアル変換回路と、
第２のパラレルデータを各々が該所定のビット数からなる所定数の第２の部分データに分解して該所定数の第２の部分データを１つずつ順次供給する第２のパラレル・シリアル変換回路と、
順次供給される該所定数の第１の部分データと順次供給される該所定数の第２の部分データとに対する演算を部分データ毎に該所定数分順次実行するシリアル演算器と、
該演算器の演算結果を該所定数分順次受け取り１つに纏めて第３のパラレルデータとして出力するシリアル・パラレル変換回路
を含むことを特徴とする演算装置。
（付記２）該シリアル演算器は、
該所定ビット数の演算を実行して該演算結果と中間結果とを出力する所定ビット数演算器と、
該中間結果を格納するレジスタ
を含み、該レジスタが格納するある演算に対する該中間結果を次の演算時に該所定ビット数演算器に供給することを特徴とする付記１記載の演算装置。
（付記３）該シリアル演算器は、複数の異なる演算を実行する機能を有し該複数の異なる演算のうちの１つを選択可能に構成されることを特徴とする付記１記載の演算装置。
（付記４）該シリアル・パラレル変換回路は、クロック信号に同期して動作し、該演算器の演算結果を該所定数分順次受け取った後に該第３のパラレルデータを該クロック信号の１サイクルより長い期間保持することを特徴とする付記１記載の演算装置。
（付記５）該第１及び第２のパラレルデータを該第１及び第２のパラレル・シリアル変換回路に供給する入力側回路を更に含み、該入力側回路は第１のクロック信号に同期して動作し、該第１及び第２のパラレル・シリアル変換回路、該シリアル演算器、及び該シリアル・パラレル変換回路は第２のクロック信号に同期して動作することを特徴とする付記１記載の演算装置。
（付記６）該シリアル・パラレル変換回路から該第３のパラレルデータを供給される出力側回路を更に含み、該出力側回路は第１のクロック信号に同期して動作し、該第１及び第２のパラレル・シリアル変換回路、該シリアル演算器、及び該シリアル・パラレル変換回路は第２のクロック信号に同期して動作することを特徴とする付記１記載の演算装置。
（付記７）該第１及び第２のパラレルデータを該第１及び第２のパラレル・シリアル変換回路に供給する入力側回路と、
該シリアル・パラレル変換回路から該第３のパラレルデータを供給される出力側回路
を更に含み、該入力側回路及び該出力側回路は第１のクロック信号に同期して動作し、該第１及び第２のパラレル・シリアル変換回路、該シリアル演算器、及び該シリアル・パラレル変換回路は第２のクロック信号に同期して動作することを特徴とする付記１記載の演算装置。
（付記８）該第１及び第２のパラレルデータを該第１及び第２のパラレル・シリアル変換回路に供給する入力側回路と、
該シリアル・パラレル変換回路から該第３のパラレルデータを供給される出力側回路
を更に含み、該入力側回路は第１のクロック信号に同期して動作し、該出力側回路は第２のクロック信号に同期して動作し、該第１及び第２のパラレル・シリアル変換回路、該シリアル演算器、及び該シリアル・パラレル変換回路は第３のクロック信号に同期して動作することを特徴とする付記１記載の演算装置。
（付記９）各サイクルで演算を実行し各サイクル毎に演算結果と中間結果とを出力する演算器と、
該中間結果を格納するレジスタ
を含み、各サイクルでの演算の該演算結果を外部に出力すると共に、該レジスタが格納するあるサイクルの演算の該中間結果を次のサイクルの演算時に該演算器に供給することを特徴とする演算器。
（付記１０）該中間結果は桁上がりデータであることを特徴とする付記９記載の演算器。
【発明の効果】
本発明においては、Ｎビットの演算を一括して行うのではなく、Ｎビットを分割した少ないビット数（Ｍビット）ごとに逐次演算を行っていくことで、複数サイクルかけてＮビット全体について演算を実行する構成となっている。この構成により、１サイクルあたりのＭビット演算回路の構成をできるだけ単純化することで、回路規模を小さくすると共に演算回路を高い周波数で動作させることが可能となる。従って、回路規模を削減するという目的と共に、複数サイクルを演算に必要としながらも各サイクルにかかる時間を短縮することで全体の演算を高速で実行することができる。これにより、高速化、低コスト化、及び低消費電力化を実現することが可能となる。
【００６０】
また本発明による演算器を並列処理を行う情報処理装置に適用した場合には、回路規模の小さい多数の演算器をＬＳＩ上に実装することが可能となり、並列処理性能を向上させることが可能となる。
【図面の簡単な説明】
【図１】本発明によるシリアル演算器の原理構成を示す図である。
【図２】本発明による演算装置の原理構成を示す図である。
【図３】シリアル演算器の第１の実施例に係る構成を示す図である。
【図４】シリアル演算器の第２の実施例に係る構成を示す図である。
【図５】シリアル演算器の第３の実施例に係る構成を示す図である。
【図６】シリアル演算器の第４の実施例に係る構成を示す図である。
【図７】シリアル演算器の第５の実施例に係る構成を示す図である。
【図８】本発明によるパラレル・シリアル変換回路の第１の実施例の構成を示す図である。
【図９】本発明によるシリアル・パラレル変換回路の第１の実施例の構成を示す図である。
【図１０】本発明によるパラレル・シリアル変換回路の第２の実施例の構成を示す図である。
【図１１】第１のフリップフロップモジュールの構成を示す図である。
【図１２】第２のフリップフロップモジュールの構成を示す図である。
【図１３】本発明によるシリアル・パラレル変換回路の第２の実施例の構成を示す図である。
【図１４】本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成を示す図である。
【図１５】図１４のマイクロプロセッサの動作を示すタイミングチャートである。
【図１６】本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成の別の一例を示す図である。
【図１７】シリアル・パラレル変換回路の回路構成の一例を示す図である。
【図１８】図１６のマイクロプロセッサの動作を示すタイミングチャートである。
【図１９】本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成の別の一例を示す図である。
【符号の説明】
１０  シリアル演算器
１１  Ｍビット演算器
１２  レジスタ
２１  パラレル・シリアル変換回路
２２  パラレル・シリアル変換回路
２３  シリアル・パラレル変換回路
【図１】
2004318670.tif 000003
【図２】
2004318670.tif 000004
【図３】
2004318670.tif 000005
【図４】
2004318670.tif 000006
【図５】
2004318670.tif 000007
【図６】
2004318670.tif 000008
【図７】
2004318670.tif 000009
【図８】
2004318670.tif 000010
【図９】
2004318670.tif 000011
【図１０】
2004318670.tif 000012
【図１１】
2004318670.tif 000013
【図１２】
2004318670.tif 000014
【図１３】
2004318670.tif 000015
【図１４】
2004318670.tif 000016
【図１５】
2004318670.tif 000017
【図１６】
2004318670.tif 000018
【図１７】
2004318670.tif 000019
【図１８】
2004318670.tif 000020
【図１９】
2004318670.tif 000021