JP2004318670A - 演算装置及び演算器 - Google Patents
演算装置及び演算器 Download PDFInfo
- Publication number
- JP2004318670A JP2004318670A JP2003114179A JP2003114179A JP2004318670A JP 2004318670 A JP2004318670 A JP 2004318670A JP 2003114179 A JP2003114179 A JP 2003114179A JP 2003114179 A JP2003114179 A JP 2003114179A JP 2004318670 A JP2004318670 A JP 2004318670A
- Authority
- JP
- Japan
- Prior art keywords
- serial
- parallel
- data
- arithmetic unit
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】本発明は、小さい回路規模で高速な演算が可能な演算装置を提供することを目的とする。
【解決手段】演算装置は、第1のパラレルデータを各々が所定のビット数からなる所定数の第1の部分データに分解して所定数の第1の部分データを1つずつ順次供給する第1のパラレル・シリアル変換回路と、第2のパラレルデータを各々が所定のビット数からなる所定数の第2の部分データに分解して所定数の第2の部分データを1つずつ順次供給する第2のパラレル・シリアル変換回路と、順次供給される所定数の第1の部分データと順次供給される所定数の第2の部分データとに対する演算を部分データ毎に所定数分順次実行するシリアル演算器と、演算器の演算結果を所定数分順次受け取り1つに纏めて第3のパラレルデータとして出力するシリアル・パラレル変換回路を含む。
【選択図】図2
【解決手段】演算装置は、第1のパラレルデータを各々が所定のビット数からなる所定数の第1の部分データに分解して所定数の第1の部分データを1つずつ順次供給する第1のパラレル・シリアル変換回路と、第2のパラレルデータを各々が所定のビット数からなる所定数の第2の部分データに分解して所定数の第2の部分データを1つずつ順次供給する第2のパラレル・シリアル変換回路と、順次供給される所定数の第1の部分データと順次供給される所定数の第2の部分データとに対する演算を部分データ毎に所定数分順次実行するシリアル演算器と、演算器の演算結果を所定数分順次受け取り1つに纏めて第3のパラレルデータとして出力するシリアル・パラレル変換回路を含む。
【選択図】図2
Description
【0001】
【発明の属する技術分野】
本発明は、一般に情報処理装置に関し、詳しくは論理演算や算術演算を実行する演算装置に関する。
【従来の技術】
マイクロプロセサやデジタルシグナルプロセサなどの情報処理装置においては、Nビットのデータの演算処理を行う際には、Nビットのデータを一括して演算し、Lビットの演算結果を同時に得る構成となっている。このようにNビットの一括演算を高速に実行するために、従来技術においては種々の回路上の工夫がなされている。例えば加算演算を高速化するためには、CLA(Carry Look Ahead)アダ−やCSA(Carry Save Adder)アダ−等の回路を用いる。また更に、複数の演算を実行する際の実効的な速度を向上させるために、複数サイクルの演算をパイプライン化するなどの工夫がなされる。
【0002】
【特許文献1】
特開平2−205923号公報
【0003】
【特許文献2】
特開平5−046362号公報
【発明が解決しようとする課題】
このように従来の技術では、1サイクルあたりの演算をできる限り高速に実行するために、複雑な演算アルゴリズムを適用したり、パイプライン段数を多くしたりする解決策が取られていた。そのために回路規模が増大し、動作周波数も上げ難く、消費電力の増加や製品コストの増大につながる等の問題があった。
【0004】
またスーパースカラプロセサやVLIWプロセサなど、並列処理を行う情報処理装置においては、その並列処理性能を向上させるためには多数の演算器が必要となる。しかし回路規模が大きい演算器の場合には、回路面積の制限のために、LSI上に多数の演算器を実装することが困難であった。
【0005】
以上を鑑みて、本発明は、小さい回路規模で高速な演算が可能な演算装置を提供することを目的とする。
【課題を解決するための手段】
本発明による演算装置は、第1のパラレルデータを各々が所定のビット数からなる所定数の第1の部分データに分解して該所定数の第1の部分データを1つずつ順次供給する第1のパラレル・シリアル変換回路と、第2のパラレルデータを各々が該所定のビット数からなる所定数の第2の部分データに分解して該所定数の第2の部分データを1つずつ順次供給する第2のパラレル・シリアル変換回路と、順次供給される該所定数の第1の部分データと順次供給される該所定数の第2の部分データとに対する演算を部分データ毎に該所定数分順次実行するシリアル演算器と、該演算器の演算結果を該所定数分順次受け取り1つに纏めて第3のパラレルデータとして出力するシリアル・パラレル変換回路を含むことを特徴とする。
【0006】
このようにして本発明においては、Nビットの演算を一括して行うのではなく、Nビットを分割した少ないビット数(Mビット)ごとに逐次演算を行っていくことで、複数サイクルかけてNビット全体について演算を実行する構成となっている。この構成により、1サイクルあたりのMビット演算回路の構成をできるだけ単純化することで、回路規模を小さくすると共に演算回路を高い周波数で動作させることが可能となる。従って、回路規模を削減するという目的と共に、複数サイクルを演算に必要としながらも各サイクルにかかる時間を短縮することで全体の演算を高速で実行することができる。これにより、高速化、低コスト化、及び低消費電力化を実現することが可能となる。
【0007】
また本発明による演算器を並列処理を行う情報処理装置に適用した場合には、回路規模の小さい多数の演算器をLSI上に実装することが可能となり、並列処理性能を向上させることが可能となる。
【発明の実施の形態】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【0008】
図1は、本発明によるシリアル演算器の原理構成を示す図である。図1に示すシリアル演算器10は、Mビット演算器11及びレジスタ12を含む。
【0009】
図2は、本発明による演算装置の原理構成を示す図である。図2に示す演算装置20は、シリアル演算器10、パラレル・シリアル変換回路21、パラレル・シリアル変換回路22、及びシリアル・パラレル変換回路23を含む。
【0010】
パラレル・シリアル変換回路21及び22は、それぞれNビットの入力データをパラレル・シリアル変換して、演算対象であるNビットをMビット部分に分割し(N>M)、各Mビット部分をシリアル演算器10に順次供給する。シリアル演算器10のMビット演算器11は、各Mビット部分について逐次所定の演算を実行する。Mビット演算器11は、所定の演算を実行した演算結果Lビットを出力すると共に、Kビットからなる演算中間データをレジスタ12に格納する。レジスタ12に格納された演算中間データは、次回のMビット演算に用いるためにシリアル演算器10に適当なタイミングで供給される。レジスタ12の動作タイミングは、クロック信号Clockによって規定される。またレジスタ12は、その初期値を決定するために初期値制御信号を受け取る。
【0011】
演算中間データは、例えば加算回路の場合であれば、下位の桁から上位の桁に伝播されるキャリービットに対応する。
【0012】
Mビット演算器11が出力する演算結果Lビットは、順次シリアル・パラレル変換回路23内部に格納されていく。シリアル・パラレル変換回路23は、順次格納される各Lビットデータを纏めたJビットデータを、Nビットの入力データに対する演算結果として所定のタイミングで出力する。
【0013】
このようにして本発明においては、Nビットの演算を一括して行うのではなく、Nビットを分割した少ないビット数(Mビット)ごとに逐次演算を行っていくことで、複数サイクルかけてNビット全体について演算を実行する構成となっている。この構成により、1サイクルあたりのMビット演算回路の構成をできるだけ単純化することで、回路規模を小さくすると共に演算回路を高い周波数で動作させることが可能となる。従って、回路規模を削減するという目的と共に、複数サイクルを演算に必要としながらも各サイクルにかかる時間を短縮することで全体の演算を高速で実行することができる。これにより、高速化、低コスト化、及び低消費電力化を実現することが可能となる。
【0014】
また本発明による演算器を並列処理を行う情報処理装置に適用した場合には、回路規模の小さい多数の演算器をLSI上に実装することが可能となり、並列処理性能を向上させることが可能となる。
【0015】
図3は、シリアル演算器10の第1の実施例に係る構成を示す図である。
【0016】
本実施例によるシリアル演算器10Aにおいては、Mビット演算器11として1ビットの全加算器11Aを設ける。全加算器11Aは、演算入力1と演算入力2としてクロックサイクルごとに1ビットずつ入力されるデータを加算し、その桁の加算結果をそのサイクルにおいて1ビットの演算結果として出力する。また更に全加算器11Aは、桁上げ信号(Cout)をレジスタ12に格納する。このレジスタ12は、初期設定が出来るように構成されていて、最下位ビットの加算を行うときはレジスタ12の格納データは”0”に初期設定される。このような構成を採用することにより、例えば32ビットの加算を実行する場合には、32サイクルかけて32ビットの加算結果を得ることができる。
【0017】
従来方式のように32ビットのリップルキャリー加算器の場合、1ビット全加算器が32個必要となるが、本発明によれば1個の1ビット全加算器と1個のレジスタとがあればよいので回路規模を大幅に削減することができる。また、本発明によれば、加算器の構成を単純にすることができるため、動作サイクルの周期を短くすることができる。例えば、本発明の演算器のサイクル周期を100psとして構成できたとすると、32ビットの加算を行うのに100ps×32サイクル=3.2nsとなり、周波数300MHz動作の32ビット加算器と同程度の性能を、非常に小規模な回路で得ることができる。
【0018】
図4は、シリアル演算器10の第2の実施例に係る構成を示す図である。
【0019】
本実施例によるシリアル演算器10Bにおいては、Mビット演算器11として8ビットの先見加算器11Bを設ける。先見加算器11Bは、演算入力1と演算入力2としてクロックサイクルごとに8ビットずつ入力されるデータを加算し、8ビットの加算結果をそのサイクルの演算結果として出力する。また更に先見加算器11Bは、桁上げ信号(Cout)をレジスタ12に格納する。このレジスタ12は、初期設定が出来るように構成されていて、最下位ビットの加算を行うときはレジスタ12の格納データは”0”に初期設定される。このような構成を採用することにより、例えば32ビットの加算を実行する場合には、4サイクルかけて32ビットの加算結果を得ることができる。
【0020】
従来方式のように32ビットのリップルキャリー加算器の場合、1ビット全加算器が32個必要となるが、本発明によれば1個の8ビット桁上げ先見加算器と1個のレジスタとがあればよいので回路規模を大幅に削減することができる。また、本発明によれば、加算器の構成を単純にすることができるため、動作サイクルの周期を短くすることができる。例えば、本発明の演算器のサイクル周期を500psとして構成できたとすると、32ビットの加算を行うのに500ps×4サイクル=2nsとなり、周波数500MHz動作の32ビット加算器と同程度の性能を、非常に小規模な回路で得ることができる。
【0021】
図5は、シリアル演算器10の第3の実施例に係る構成を示す図である。
【0022】
本実施例によるシリアル演算器10Cにおいては、Mビット演算器11として1ビットのANDゲート11Cを設ける。ANDゲート11Cは、演算入力1と演算入力2としてクロックサイクルごとに1ビットずつ入力されるデータをAND演算し、1ビットのAND演算結果をそのサイクルの演算結果として出力する。このような構成を採用することにより、例えば32ビットのAND演算を実行する場合には、32サイクルかけて32ビットのAND演算結果を得ることができる。
【0023】
このように本発明は、加算演算だけでなく、ここに例として示したようにAND演算や、更にはOR演算やシフト演算等の論理演算に適用することができる。なおAND演算やOR演算等のように、ビット間に相互作用がない演算の場合には、図5からも分かるように図1に示されるようなレジスタ12は設ける必要がない。またシリアル演算器に対して、クロック信号や初期値制御信号を供給する必要もない。
【0024】
図6は、シリアル演算器10の第4の実施例に係る構成を示す図である。
【0025】
本実施例によるシリアル演算器10Dにおいては、Mビット演算器11として1ビットの全加算器11A及びANDゲート11Cを設け、これらの出力をセレクタ13で選択可能な構成となっている。演算種類選択信号がセレクタ13に供給され、演算結果を出力する演算の種類を選択する。
【0026】
全加算器11A及びレジスタ12の動作は、図3に示す第1の実施例の場合と同様であり、ANDゲート11Cの動作は、図5に示す第3の実施例の場合と同様である。このような構成を採用することにより、32サイクルかけて、32ビットの加算結果又は32ビットのAND演算結果を得ることができる。
【0027】
図7は、シリアル演算器10の第5の実施例に係る構成を示す図である。
【0028】
本実施例によるシリアル演算器10Eにおいては、Mビット演算器11として1ビットの全加算器11Aを設け、更に全加算器11Aの一方の入力にインバータ14及びセレクタ15を設けることで、加算対象の入力信号を反転可能な構成となっている。演算種類選択信号がセレクタ15に供給され、演算入力2をそのままの値で全加算器11Aへ入力するか、又は演算入力2の反転値を全加算器11Aへ入力するかを選択する。これにより、加算演算と減算演算との間で演算の種類を選択することができる。
【0029】
全加算器11A及びレジスタ12の動作は、図3に示す第1の実施例の場合と同様である。このような構成を採用することにより、32サイクルかけて、32ビットの加算結果又は32ビットの減算結果を得ることができる。
【0030】
図8は、本発明によるパラレル・シリアル変換回路の第1の実施例の構成を示す図である。図8に示すパラレル・シリアル変換回路は、図2においてパラレル・シリアル変換回路21又は22として使用することができる。
【0031】
図8のパラレル・シリアル変換回路は、16ビットのパラレルデータを1ビットのシリアルデータとして出力するものであり、フリップフロップ31−1乃至31−16及びセレクタ32−1乃至32−15を含む。フリップフロップ31−1乃至31−16は、クロック信号に応じて入力データをラッチして出力する。フリップフロップ31−1乃至31−16及びセレクタ32−1乃至32−15は、ある段のフリップフロップ出力が対応するセレクタを介して次段のフリップフロップに入力されるよう接続される。セレクタ32−1乃至32−15は、前段のフリップフロップからの出力と外部からの入力パラレルデータとの何れかを制御信号に基づいて選択する。
【0032】
セレクタ32−1乃至32−15が外部からの入力パラレルデータを選択する状態で、クロック信号を供給して各フリップフロップ31−1乃至31−16にデータを格納する。その後、セレクタ32−1乃至32−15が前段のフリップフロップからの出力を選択する状態にして、クロック信号を供給することでデータを順次シフトして、1ビットずつ演算器に供給することができる。
【0033】
図9は、本発明によるシリアル・パラレル変換回路の第1の実施例の構成を示す図である。図9に示す回路は、図2においてシリアル・パラレル変換回路23として使用することができる。
【0034】
図9のシリアル・パラレル変換回路は、16ビットのシリアル信号を受け取りパラレル信号として出力するものであり、フリップフロップ41−1乃至41−16を含む。フリップフロップ41−1乃至41−16は、ある段の出力が次段の入力になるように接続される。演算器からの1ビット出力が、フリップフロップ41−1に供給され、クロックパルスが供給されるたびに順次次段のフリップフロップにシフトされていく。16段シフトした時点で、16ビットのパラレルデータ出力が得られる。
【0035】
図10は、本発明によるパラレル・シリアル変換回路の第2の実施例の構成を示す図である。図10に示すパラレル・シリアル変換回路は、16ビットのデータを取り込んで4ビットずつを1纏まりとしてシリアルに出力する構成であり、演算器が4ビット毎に逐次演算する場合に使用されるものである。
【0036】
図10のパラレル・シリアル変換回路は、第1のフリップフロップモジュール51と複数の第2のフリップフロップモジュール52を含む。第1段から第4段までのモジュールが前段の出力を次段の入力とするように接続され、第1段が第1のフリップフロップモジュール51であり、第2段から第4段までが第2のフリップフロップモジュール52である。また第1段から第4段までのモジュールは、16ビットのパラレル入力データのうちの対応する4ビットを並列に受け取るよう構成される。
【0037】
図11は、第1のフリップフロップモジュール51の構成を示す図である。第1のフリップフロップモジュール51は、フリップフロップ61−1乃至61−4を含む。フリップフロップ61−1乃至61−4は、16ビットのパラレル入力データのうちの対応する4ビットのデータI[0]乃至I[3]を受け取り、このデータをクロック信号CKに応じてラッチし、次段に出力O[0]乃至O[3]として供給する。
【0038】
図12は、第2のフリップフロップモジュール52の構成を示す図である。第2のフリップフロップモジュール52は、フリップフロップ71−1乃至71−4と、セレクタ72−1乃至72−4を含む。各セレクタは、16ビットのパラレル入力データのうちの対応する4ビットのデータI[0]乃至I[3]と、前段のモジュールから供給される4ビットのデータJ[0]乃至J[3]との何れかを選択する。選択されたデータは、クロック信号CKに応じてフリップフロップ71−1乃至71−4によりラッチされ、次段に出力O[0]乃至O[3]として供給される。
【0039】
このようにして図10乃至図12に示される構成により、16ビットのパラレル入力データを4ビットずつ一纏めのデータとして、シリアルに順次出力することが可能となる。
【0040】
図13は、本発明によるシリアル・パラレル変換回路の第2の実施例の構成を示す図である。図13に示すシリアル・パラレル変換回路は、4ビットを1纏まりとしてシリアルに供給されるデータを16ビットのパラレルデータとして出力する構成であり、演算器が4ビット毎に逐次演算する場合に使用されるものである。
【0041】
図13のシリアル・パラレル変換回路は、図11に示される第1のフリップフロップモジュール51を4段直列に接続した構成となっている。図11を参照して説明したように、第1のフリップフロップモジュール51のフリップフロップ61−1乃至61−4は、4ビットのデータI[0]乃至I[3]を受け取り、このデータをクロック信号CKに応じてラッチし、次段に出力O[0]乃至O[3]として供給する。従って、第1のフリップフロップモジュール51を図13に示されるように、前段の出力が次段の入力となるように接続することで、4ビットずつ供給されるデータをクロック信号CKに応じて逐次シフトしていき、4ビットデータが4回供給された時点で16ビットのパラレルデータとして出力することができる。
【0042】
図14は、本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成を示す図である。
【0043】
図14のマイクロプロセッサは、演算装置20と周辺回路72を含む。演算装置20は、シリアル演算器10A、パラレル・シリアル変換回路21、パラレル・シリアル変換回路22、及びシリアル・パラレル変換回路23を含む。演算装置20は、16ビットの入力データを1ビットずつシリアルに加算する回路であり、16ビットの出力データを供給する。シリアル演算器10Aは、図3の構成と同様であり、1ビット全加算器11A及びレジスタ12を含む。周辺回路72は、論理演算ユニットである演算装置20が演算するデータ等を格納する汎用レジスタや、演算装置20の動作やレジスタトランスファ論理を制御する制御回路等を含む。
【0044】
図14に示すように、周辺回路72は第1のクロック信号Clock_1に基づいて動作し、演算装置20は第2のクロック信号Clock_2に基づいて動作する。本発明によれば演算器部分(演算装置20)を単純な回路構成にすることができるので、第2のクロック信号Clock_2を高い周波数とすることが可能である。それに対して、周辺回路72の汎用レジスタや制御回路を、第2のクロック信号Clock_2と同様の高い周波数で動作させることは非常に困難である。そこで図14の構成では、周辺回路72と演算装置20とを別系統のクロックで動作させる。
【0045】
このようにして本発明によれば、演算器面積が小さく、低消費電力で、且つ高性能なマイクロプロセッサやDSP等を提供することが可能となる。
【0046】
図15は、図14のマイクロプロセッサの動作を示すタイミングチャートである。周辺回路72は第1のクロック信号Clock_1に同期して動作しており、入力データ1及び入力データ2は、第1のクロック信号に同期してサイクル1で有効な入力データA及びBとなる。入力データ1及び入力データ2は、制御信号をアサートすることにより、クロック信号Clock_2に同期してパラレル・シリアル変換回路21及び22に格納される。
【0047】
パラレル・シリアル変換回路21及び22に格納された入力データは、クロック信号Clock_2により毎サイクルシフトされながら、1ビット全加算器11Aに1ビットずつ供給される。1ビット全加算器11Aによる演算結果は、シリアル・パラレル変換回路23に1ビットずつ格納されてシフトされる。この際、最下位の1ビット(最初の1ビット)の演算時には下の桁からの桁上げが存在しないので、Cinを“0”に設定するべく初期値制御信号がアサートされる。この初期値制御信号は、制御信号と共通化できるならば共通化してもよい。また下位ビットからの桁上げが無い演算(例えばAND演算やOR演算等)を行う場合には、省略しても構わない。
【0048】
このようにして下位ビットから開始された演算は、クロック信号Clock_2の第17サイクル(Cycle17)で演算を完了し、第18サイクル(Cycle18)において、周辺回路によるシリアル・パラレル変換回路23からの演算結果Cの取り出しが可能となる。この例において、サイクル周期が100psであれば、クロック信号Clock_2の周波数は10GHz、クロック信号Clock_1の周波数は555MHzとなる。
【0049】
なお図15の構成においては、最初の演算結果が入力されてから、17サイクル後に16ビットのパラレルデータを出力する。この16ビットの出力パラレルデータは、次のサイクルでは1ビットシフトされてしまうので、周辺回路72で16ビットの出力パラレルデータを取り込み可能な時間は、高速なクロック信号Clock_2の1サイクル分の期間だけということになる。
【0050】
低速なクロック信号CLock_1に基づいて動作する周辺回路72にとっては、そのような短期間内にタイミングを合わせる必要があるとすると、クロック周波数や位相等に関するタイミング制限が大きくなり好ましくない。そこで16ビットの出力パラレルデータを、クロック信号Clock_2の複数サイクルの期間保持可能な構成とすることが望ましい。
【0051】
図16は、本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成の別の一例を示す図である。図16において、図14と同一の構成要素は同一の番号で参照し、その説明は省略する。
【0052】
図16のマイクロプロセッサは、図14のマイクロプロセッサと比較して、シリアル・パラレル変換回路23の代わりにシリアル・パラレル変換回路23Aが設けられている点が異なる。このシリアル・パラレル変換回路23Aは、出力制御信号によりその動作が制御される。
【0053】
図17は、シリアル・パラレル変換回路23Aの回路構成の一例を示す図である。 図17のシリアル・パラレル変換回路23Aは、図9のシリアル・パラレル変換回路23と同様にフリップフロップ41−1乃至41−16を含む。更に図17においては、フリップフロップ41−1乃至41−16へのクロック信号の供給/停止を制御するためにAND回路45が設けられる。出力制御信号の負論理信号がAND回路45の一方の入力に供給される。出力制御信号がアサートされたとき、シリアル・パラレル変換回路23Aは、演算結果の取り込みとデータのシフト動作を停止し、前のサイクルに保持していたデータをそのまま保持する。
【0054】
図18は、図16のマイクロプロセッサの動作を示すタイミングチャートである。図18に示される動作においては、図15に示される動作と異なり、シリアル・パラレル変換回路23Aに16ビット分の出力パラレルデータが保持された時点で、出力制御信号がアサートされる。これにより、シリアル・パラレル変換回路23Aは、演算結果の取り込みとデータのシフト動作を停止し、出力パラレルデータCをそのまま保持する。
【0055】
このような構成とすることにより、クロック信号Clock_1とクロック信号Clock_2とのタイミング関係に大きな制限が課されることがなく、周波数比を自由に設定・変更することが可能となる。従って、マイクロプロセッサやDSP(Digital Signal Processor)等を使用するシステムにおいて、外部バスインターフェースのクロック信号やSDRAM(Synchronous Dynamic Random Access Memory)のクロック信号等の複数のクロック信号との間でのデータ受け渡しが容易になる。上記実施例によれば、サイクル周期が100psであればClock_2の周波数は10GHz、Clock_1の周波数は500MHzとなり、そのクロック比を整数倍にすることが可能となるため、他のクロックとの信号の受け渡しが容易になる。
【0056】
図19は、本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成の別の一例を示す図である。図19において、図16と同一の構成要素は同一の番号で参照し、その説明は省略する。
【0057】
図19においては、図16の周辺回路72が、演算装置20に対する入力側の周辺回路81及び出力側の周辺回路82として別々に設けられる。周辺回路81はクロック信号Clock_1に同期して動作し、周辺回路82はクロック信号Clock_3に同期して動作する。このように本発明においては、演算装置20の入力側のクロック信号の周波数と、出力側のクロック信号の周波数とが異なる構成であってもよい。この場合であっても、出力制御信号によりシリアル・パラレル変換回路23Aのシフト動作を制御することで、クロック信号Clock_3のタイミングに大きな制限が課されることがなく、周波数を自由に設定・変更することが可能となる。
【0058】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【0059】
本発明は、以下の内容を含むものである。
(付記1)第1のパラレルデータを各々が所定のビット数からなる所定数の第1の部分データに分解して該所定数の第1の部分データを1つずつ順次供給する第1のパラレル・シリアル変換回路と、
第2のパラレルデータを各々が該所定のビット数からなる所定数の第2の部分データに分解して該所定数の第2の部分データを1つずつ順次供給する第2のパラレル・シリアル変換回路と、
順次供給される該所定数の第1の部分データと順次供給される該所定数の第2の部分データとに対する演算を部分データ毎に該所定数分順次実行するシリアル演算器と、
該演算器の演算結果を該所定数分順次受け取り1つに纏めて第3のパラレルデータとして出力するシリアル・パラレル変換回路
を含むことを特徴とする演算装置。
(付記2)該シリアル演算器は、
該所定ビット数の演算を実行して該演算結果と中間結果とを出力する所定ビット数演算器と、
該中間結果を格納するレジスタ
を含み、該レジスタが格納するある演算に対する該中間結果を次の演算時に該所定ビット数演算器に供給することを特徴とする付記1記載の演算装置。
(付記3)該シリアル演算器は、複数の異なる演算を実行する機能を有し該複数の異なる演算のうちの1つを選択可能に構成されることを特徴とする付記1記載の演算装置。
(付記4)該シリアル・パラレル変換回路は、クロック信号に同期して動作し、該演算器の演算結果を該所定数分順次受け取った後に該第3のパラレルデータを該クロック信号の1サイクルより長い期間保持することを特徴とする付記1記載の演算装置。
(付記5)該第1及び第2のパラレルデータを該第1及び第2のパラレル・シリアル変換回路に供給する入力側回路を更に含み、該入力側回路は第1のクロック信号に同期して動作し、該第1及び第2のパラレル・シリアル変換回路、該シリアル演算器、及び該シリアル・パラレル変換回路は第2のクロック信号に同期して動作することを特徴とする付記1記載の演算装置。
(付記6)該シリアル・パラレル変換回路から該第3のパラレルデータを供給される出力側回路を更に含み、該出力側回路は第1のクロック信号に同期して動作し、該第1及び第2のパラレル・シリアル変換回路、該シリアル演算器、及び該シリアル・パラレル変換回路は第2のクロック信号に同期して動作することを特徴とする付記1記載の演算装置。
(付記7)該第1及び第2のパラレルデータを該第1及び第2のパラレル・シリアル変換回路に供給する入力側回路と、
該シリアル・パラレル変換回路から該第3のパラレルデータを供給される出力側回路
を更に含み、該入力側回路及び該出力側回路は第1のクロック信号に同期して動作し、該第1及び第2のパラレル・シリアル変換回路、該シリアル演算器、及び該シリアル・パラレル変換回路は第2のクロック信号に同期して動作することを特徴とする付記1記載の演算装置。
(付記8)該第1及び第2のパラレルデータを該第1及び第2のパラレル・シリアル変換回路に供給する入力側回路と、
該シリアル・パラレル変換回路から該第3のパラレルデータを供給される出力側回路
を更に含み、該入力側回路は第1のクロック信号に同期して動作し、該出力側回路は第2のクロック信号に同期して動作し、該第1及び第2のパラレル・シリアル変換回路、該シリアル演算器、及び該シリアル・パラレル変換回路は第3のクロック信号に同期して動作することを特徴とする付記1記載の演算装置。
(付記9)各サイクルで演算を実行し各サイクル毎に演算結果と中間結果とを出力する演算器と、
該中間結果を格納するレジスタ
を含み、各サイクルでの演算の該演算結果を外部に出力すると共に、該レジスタが格納するあるサイクルの演算の該中間結果を次のサイクルの演算時に該演算器に供給することを特徴とする演算器。
(付記10)該中間結果は桁上がりデータであることを特徴とする付記9記載の演算器。
【発明の効果】
本発明においては、Nビットの演算を一括して行うのではなく、Nビットを分割した少ないビット数(Mビット)ごとに逐次演算を行っていくことで、複数サイクルかけてNビット全体について演算を実行する構成となっている。この構成により、1サイクルあたりのMビット演算回路の構成をできるだけ単純化することで、回路規模を小さくすると共に演算回路を高い周波数で動作させることが可能となる。従って、回路規模を削減するという目的と共に、複数サイクルを演算に必要としながらも各サイクルにかかる時間を短縮することで全体の演算を高速で実行することができる。これにより、高速化、低コスト化、及び低消費電力化を実現することが可能となる。
【0060】
また本発明による演算器を並列処理を行う情報処理装置に適用した場合には、回路規模の小さい多数の演算器をLSI上に実装することが可能となり、並列処理性能を向上させることが可能となる。
【図面の簡単な説明】
【図1】本発明によるシリアル演算器の原理構成を示す図である。
【図2】本発明による演算装置の原理構成を示す図である。
【図3】シリアル演算器の第1の実施例に係る構成を示す図である。
【図4】シリアル演算器の第2の実施例に係る構成を示す図である。
【図5】シリアル演算器の第3の実施例に係る構成を示す図である。
【図6】シリアル演算器の第4の実施例に係る構成を示す図である。
【図7】シリアル演算器の第5の実施例に係る構成を示す図である。
【図8】本発明によるパラレル・シリアル変換回路の第1の実施例の構成を示す図である。
【図9】本発明によるシリアル・パラレル変換回路の第1の実施例の構成を示す図である。
【図10】本発明によるパラレル・シリアル変換回路の第2の実施例の構成を示す図である。
【図11】第1のフリップフロップモジュールの構成を示す図である。
【図12】第2のフリップフロップモジュールの構成を示す図である。
【図13】本発明によるシリアル・パラレル変換回路の第2の実施例の構成を示す図である。
【図14】本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成を示す図である。
【図15】図14のマイクロプロセッサの動作を示すタイミングチャートである。
【図16】本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成の別の一例を示す図である。
【図17】シリアル・パラレル変換回路の回路構成の一例を示す図である。
【図18】図16のマイクロプロセッサの動作を示すタイミングチャートである。
【図19】本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成の別の一例を示す図である。
【符号の説明】
10 シリアル演算器
11 Mビット演算器
12 レジスタ
21 パラレル・シリアル変換回路
22 パラレル・シリアル変換回路
23 シリアル・パラレル変換回路
【発明の属する技術分野】
本発明は、一般に情報処理装置に関し、詳しくは論理演算や算術演算を実行する演算装置に関する。
【従来の技術】
マイクロプロセサやデジタルシグナルプロセサなどの情報処理装置においては、Nビットのデータの演算処理を行う際には、Nビットのデータを一括して演算し、Lビットの演算結果を同時に得る構成となっている。このようにNビットの一括演算を高速に実行するために、従来技術においては種々の回路上の工夫がなされている。例えば加算演算を高速化するためには、CLA(Carry Look Ahead)アダ−やCSA(Carry Save Adder)アダ−等の回路を用いる。また更に、複数の演算を実行する際の実効的な速度を向上させるために、複数サイクルの演算をパイプライン化するなどの工夫がなされる。
【0002】
【特許文献1】
特開平2−205923号公報
【0003】
【特許文献2】
特開平5−046362号公報
【発明が解決しようとする課題】
このように従来の技術では、1サイクルあたりの演算をできる限り高速に実行するために、複雑な演算アルゴリズムを適用したり、パイプライン段数を多くしたりする解決策が取られていた。そのために回路規模が増大し、動作周波数も上げ難く、消費電力の増加や製品コストの増大につながる等の問題があった。
【0004】
またスーパースカラプロセサやVLIWプロセサなど、並列処理を行う情報処理装置においては、その並列処理性能を向上させるためには多数の演算器が必要となる。しかし回路規模が大きい演算器の場合には、回路面積の制限のために、LSI上に多数の演算器を実装することが困難であった。
【0005】
以上を鑑みて、本発明は、小さい回路規模で高速な演算が可能な演算装置を提供することを目的とする。
【課題を解決するための手段】
本発明による演算装置は、第1のパラレルデータを各々が所定のビット数からなる所定数の第1の部分データに分解して該所定数の第1の部分データを1つずつ順次供給する第1のパラレル・シリアル変換回路と、第2のパラレルデータを各々が該所定のビット数からなる所定数の第2の部分データに分解して該所定数の第2の部分データを1つずつ順次供給する第2のパラレル・シリアル変換回路と、順次供給される該所定数の第1の部分データと順次供給される該所定数の第2の部分データとに対する演算を部分データ毎に該所定数分順次実行するシリアル演算器と、該演算器の演算結果を該所定数分順次受け取り1つに纏めて第3のパラレルデータとして出力するシリアル・パラレル変換回路を含むことを特徴とする。
【0006】
このようにして本発明においては、Nビットの演算を一括して行うのではなく、Nビットを分割した少ないビット数(Mビット)ごとに逐次演算を行っていくことで、複数サイクルかけてNビット全体について演算を実行する構成となっている。この構成により、1サイクルあたりのMビット演算回路の構成をできるだけ単純化することで、回路規模を小さくすると共に演算回路を高い周波数で動作させることが可能となる。従って、回路規模を削減するという目的と共に、複数サイクルを演算に必要としながらも各サイクルにかかる時間を短縮することで全体の演算を高速で実行することができる。これにより、高速化、低コスト化、及び低消費電力化を実現することが可能となる。
【0007】
また本発明による演算器を並列処理を行う情報処理装置に適用した場合には、回路規模の小さい多数の演算器をLSI上に実装することが可能となり、並列処理性能を向上させることが可能となる。
【発明の実施の形態】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【0008】
図1は、本発明によるシリアル演算器の原理構成を示す図である。図1に示すシリアル演算器10は、Mビット演算器11及びレジスタ12を含む。
【0009】
図2は、本発明による演算装置の原理構成を示す図である。図2に示す演算装置20は、シリアル演算器10、パラレル・シリアル変換回路21、パラレル・シリアル変換回路22、及びシリアル・パラレル変換回路23を含む。
【0010】
パラレル・シリアル変換回路21及び22は、それぞれNビットの入力データをパラレル・シリアル変換して、演算対象であるNビットをMビット部分に分割し(N>M)、各Mビット部分をシリアル演算器10に順次供給する。シリアル演算器10のMビット演算器11は、各Mビット部分について逐次所定の演算を実行する。Mビット演算器11は、所定の演算を実行した演算結果Lビットを出力すると共に、Kビットからなる演算中間データをレジスタ12に格納する。レジスタ12に格納された演算中間データは、次回のMビット演算に用いるためにシリアル演算器10に適当なタイミングで供給される。レジスタ12の動作タイミングは、クロック信号Clockによって規定される。またレジスタ12は、その初期値を決定するために初期値制御信号を受け取る。
【0011】
演算中間データは、例えば加算回路の場合であれば、下位の桁から上位の桁に伝播されるキャリービットに対応する。
【0012】
Mビット演算器11が出力する演算結果Lビットは、順次シリアル・パラレル変換回路23内部に格納されていく。シリアル・パラレル変換回路23は、順次格納される各Lビットデータを纏めたJビットデータを、Nビットの入力データに対する演算結果として所定のタイミングで出力する。
【0013】
このようにして本発明においては、Nビットの演算を一括して行うのではなく、Nビットを分割した少ないビット数(Mビット)ごとに逐次演算を行っていくことで、複数サイクルかけてNビット全体について演算を実行する構成となっている。この構成により、1サイクルあたりのMビット演算回路の構成をできるだけ単純化することで、回路規模を小さくすると共に演算回路を高い周波数で動作させることが可能となる。従って、回路規模を削減するという目的と共に、複数サイクルを演算に必要としながらも各サイクルにかかる時間を短縮することで全体の演算を高速で実行することができる。これにより、高速化、低コスト化、及び低消費電力化を実現することが可能となる。
【0014】
また本発明による演算器を並列処理を行う情報処理装置に適用した場合には、回路規模の小さい多数の演算器をLSI上に実装することが可能となり、並列処理性能を向上させることが可能となる。
【0015】
図3は、シリアル演算器10の第1の実施例に係る構成を示す図である。
【0016】
本実施例によるシリアル演算器10Aにおいては、Mビット演算器11として1ビットの全加算器11Aを設ける。全加算器11Aは、演算入力1と演算入力2としてクロックサイクルごとに1ビットずつ入力されるデータを加算し、その桁の加算結果をそのサイクルにおいて1ビットの演算結果として出力する。また更に全加算器11Aは、桁上げ信号(Cout)をレジスタ12に格納する。このレジスタ12は、初期設定が出来るように構成されていて、最下位ビットの加算を行うときはレジスタ12の格納データは”0”に初期設定される。このような構成を採用することにより、例えば32ビットの加算を実行する場合には、32サイクルかけて32ビットの加算結果を得ることができる。
【0017】
従来方式のように32ビットのリップルキャリー加算器の場合、1ビット全加算器が32個必要となるが、本発明によれば1個の1ビット全加算器と1個のレジスタとがあればよいので回路規模を大幅に削減することができる。また、本発明によれば、加算器の構成を単純にすることができるため、動作サイクルの周期を短くすることができる。例えば、本発明の演算器のサイクル周期を100psとして構成できたとすると、32ビットの加算を行うのに100ps×32サイクル=3.2nsとなり、周波数300MHz動作の32ビット加算器と同程度の性能を、非常に小規模な回路で得ることができる。
【0018】
図4は、シリアル演算器10の第2の実施例に係る構成を示す図である。
【0019】
本実施例によるシリアル演算器10Bにおいては、Mビット演算器11として8ビットの先見加算器11Bを設ける。先見加算器11Bは、演算入力1と演算入力2としてクロックサイクルごとに8ビットずつ入力されるデータを加算し、8ビットの加算結果をそのサイクルの演算結果として出力する。また更に先見加算器11Bは、桁上げ信号(Cout)をレジスタ12に格納する。このレジスタ12は、初期設定が出来るように構成されていて、最下位ビットの加算を行うときはレジスタ12の格納データは”0”に初期設定される。このような構成を採用することにより、例えば32ビットの加算を実行する場合には、4サイクルかけて32ビットの加算結果を得ることができる。
【0020】
従来方式のように32ビットのリップルキャリー加算器の場合、1ビット全加算器が32個必要となるが、本発明によれば1個の8ビット桁上げ先見加算器と1個のレジスタとがあればよいので回路規模を大幅に削減することができる。また、本発明によれば、加算器の構成を単純にすることができるため、動作サイクルの周期を短くすることができる。例えば、本発明の演算器のサイクル周期を500psとして構成できたとすると、32ビットの加算を行うのに500ps×4サイクル=2nsとなり、周波数500MHz動作の32ビット加算器と同程度の性能を、非常に小規模な回路で得ることができる。
【0021】
図5は、シリアル演算器10の第3の実施例に係る構成を示す図である。
【0022】
本実施例によるシリアル演算器10Cにおいては、Mビット演算器11として1ビットのANDゲート11Cを設ける。ANDゲート11Cは、演算入力1と演算入力2としてクロックサイクルごとに1ビットずつ入力されるデータをAND演算し、1ビットのAND演算結果をそのサイクルの演算結果として出力する。このような構成を採用することにより、例えば32ビットのAND演算を実行する場合には、32サイクルかけて32ビットのAND演算結果を得ることができる。
【0023】
このように本発明は、加算演算だけでなく、ここに例として示したようにAND演算や、更にはOR演算やシフト演算等の論理演算に適用することができる。なおAND演算やOR演算等のように、ビット間に相互作用がない演算の場合には、図5からも分かるように図1に示されるようなレジスタ12は設ける必要がない。またシリアル演算器に対して、クロック信号や初期値制御信号を供給する必要もない。
【0024】
図6は、シリアル演算器10の第4の実施例に係る構成を示す図である。
【0025】
本実施例によるシリアル演算器10Dにおいては、Mビット演算器11として1ビットの全加算器11A及びANDゲート11Cを設け、これらの出力をセレクタ13で選択可能な構成となっている。演算種類選択信号がセレクタ13に供給され、演算結果を出力する演算の種類を選択する。
【0026】
全加算器11A及びレジスタ12の動作は、図3に示す第1の実施例の場合と同様であり、ANDゲート11Cの動作は、図5に示す第3の実施例の場合と同様である。このような構成を採用することにより、32サイクルかけて、32ビットの加算結果又は32ビットのAND演算結果を得ることができる。
【0027】
図7は、シリアル演算器10の第5の実施例に係る構成を示す図である。
【0028】
本実施例によるシリアル演算器10Eにおいては、Mビット演算器11として1ビットの全加算器11Aを設け、更に全加算器11Aの一方の入力にインバータ14及びセレクタ15を設けることで、加算対象の入力信号を反転可能な構成となっている。演算種類選択信号がセレクタ15に供給され、演算入力2をそのままの値で全加算器11Aへ入力するか、又は演算入力2の反転値を全加算器11Aへ入力するかを選択する。これにより、加算演算と減算演算との間で演算の種類を選択することができる。
【0029】
全加算器11A及びレジスタ12の動作は、図3に示す第1の実施例の場合と同様である。このような構成を採用することにより、32サイクルかけて、32ビットの加算結果又は32ビットの減算結果を得ることができる。
【0030】
図8は、本発明によるパラレル・シリアル変換回路の第1の実施例の構成を示す図である。図8に示すパラレル・シリアル変換回路は、図2においてパラレル・シリアル変換回路21又は22として使用することができる。
【0031】
図8のパラレル・シリアル変換回路は、16ビットのパラレルデータを1ビットのシリアルデータとして出力するものであり、フリップフロップ31−1乃至31−16及びセレクタ32−1乃至32−15を含む。フリップフロップ31−1乃至31−16は、クロック信号に応じて入力データをラッチして出力する。フリップフロップ31−1乃至31−16及びセレクタ32−1乃至32−15は、ある段のフリップフロップ出力が対応するセレクタを介して次段のフリップフロップに入力されるよう接続される。セレクタ32−1乃至32−15は、前段のフリップフロップからの出力と外部からの入力パラレルデータとの何れかを制御信号に基づいて選択する。
【0032】
セレクタ32−1乃至32−15が外部からの入力パラレルデータを選択する状態で、クロック信号を供給して各フリップフロップ31−1乃至31−16にデータを格納する。その後、セレクタ32−1乃至32−15が前段のフリップフロップからの出力を選択する状態にして、クロック信号を供給することでデータを順次シフトして、1ビットずつ演算器に供給することができる。
【0033】
図9は、本発明によるシリアル・パラレル変換回路の第1の実施例の構成を示す図である。図9に示す回路は、図2においてシリアル・パラレル変換回路23として使用することができる。
【0034】
図9のシリアル・パラレル変換回路は、16ビットのシリアル信号を受け取りパラレル信号として出力するものであり、フリップフロップ41−1乃至41−16を含む。フリップフロップ41−1乃至41−16は、ある段の出力が次段の入力になるように接続される。演算器からの1ビット出力が、フリップフロップ41−1に供給され、クロックパルスが供給されるたびに順次次段のフリップフロップにシフトされていく。16段シフトした時点で、16ビットのパラレルデータ出力が得られる。
【0035】
図10は、本発明によるパラレル・シリアル変換回路の第2の実施例の構成を示す図である。図10に示すパラレル・シリアル変換回路は、16ビットのデータを取り込んで4ビットずつを1纏まりとしてシリアルに出力する構成であり、演算器が4ビット毎に逐次演算する場合に使用されるものである。
【0036】
図10のパラレル・シリアル変換回路は、第1のフリップフロップモジュール51と複数の第2のフリップフロップモジュール52を含む。第1段から第4段までのモジュールが前段の出力を次段の入力とするように接続され、第1段が第1のフリップフロップモジュール51であり、第2段から第4段までが第2のフリップフロップモジュール52である。また第1段から第4段までのモジュールは、16ビットのパラレル入力データのうちの対応する4ビットを並列に受け取るよう構成される。
【0037】
図11は、第1のフリップフロップモジュール51の構成を示す図である。第1のフリップフロップモジュール51は、フリップフロップ61−1乃至61−4を含む。フリップフロップ61−1乃至61−4は、16ビットのパラレル入力データのうちの対応する4ビットのデータI[0]乃至I[3]を受け取り、このデータをクロック信号CKに応じてラッチし、次段に出力O[0]乃至O[3]として供給する。
【0038】
図12は、第2のフリップフロップモジュール52の構成を示す図である。第2のフリップフロップモジュール52は、フリップフロップ71−1乃至71−4と、セレクタ72−1乃至72−4を含む。各セレクタは、16ビットのパラレル入力データのうちの対応する4ビットのデータI[0]乃至I[3]と、前段のモジュールから供給される4ビットのデータJ[0]乃至J[3]との何れかを選択する。選択されたデータは、クロック信号CKに応じてフリップフロップ71−1乃至71−4によりラッチされ、次段に出力O[0]乃至O[3]として供給される。
【0039】
このようにして図10乃至図12に示される構成により、16ビットのパラレル入力データを4ビットずつ一纏めのデータとして、シリアルに順次出力することが可能となる。
【0040】
図13は、本発明によるシリアル・パラレル変換回路の第2の実施例の構成を示す図である。図13に示すシリアル・パラレル変換回路は、4ビットを1纏まりとしてシリアルに供給されるデータを16ビットのパラレルデータとして出力する構成であり、演算器が4ビット毎に逐次演算する場合に使用されるものである。
【0041】
図13のシリアル・パラレル変換回路は、図11に示される第1のフリップフロップモジュール51を4段直列に接続した構成となっている。図11を参照して説明したように、第1のフリップフロップモジュール51のフリップフロップ61−1乃至61−4は、4ビットのデータI[0]乃至I[3]を受け取り、このデータをクロック信号CKに応じてラッチし、次段に出力O[0]乃至O[3]として供給する。従って、第1のフリップフロップモジュール51を図13に示されるように、前段の出力が次段の入力となるように接続することで、4ビットずつ供給されるデータをクロック信号CKに応じて逐次シフトしていき、4ビットデータが4回供給された時点で16ビットのパラレルデータとして出力することができる。
【0042】
図14は、本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成を示す図である。
【0043】
図14のマイクロプロセッサは、演算装置20と周辺回路72を含む。演算装置20は、シリアル演算器10A、パラレル・シリアル変換回路21、パラレル・シリアル変換回路22、及びシリアル・パラレル変換回路23を含む。演算装置20は、16ビットの入力データを1ビットずつシリアルに加算する回路であり、16ビットの出力データを供給する。シリアル演算器10Aは、図3の構成と同様であり、1ビット全加算器11A及びレジスタ12を含む。周辺回路72は、論理演算ユニットである演算装置20が演算するデータ等を格納する汎用レジスタや、演算装置20の動作やレジスタトランスファ論理を制御する制御回路等を含む。
【0044】
図14に示すように、周辺回路72は第1のクロック信号Clock_1に基づいて動作し、演算装置20は第2のクロック信号Clock_2に基づいて動作する。本発明によれば演算器部分(演算装置20)を単純な回路構成にすることができるので、第2のクロック信号Clock_2を高い周波数とすることが可能である。それに対して、周辺回路72の汎用レジスタや制御回路を、第2のクロック信号Clock_2と同様の高い周波数で動作させることは非常に困難である。そこで図14の構成では、周辺回路72と演算装置20とを別系統のクロックで動作させる。
【0045】
このようにして本発明によれば、演算器面積が小さく、低消費電力で、且つ高性能なマイクロプロセッサやDSP等を提供することが可能となる。
【0046】
図15は、図14のマイクロプロセッサの動作を示すタイミングチャートである。周辺回路72は第1のクロック信号Clock_1に同期して動作しており、入力データ1及び入力データ2は、第1のクロック信号に同期してサイクル1で有効な入力データA及びBとなる。入力データ1及び入力データ2は、制御信号をアサートすることにより、クロック信号Clock_2に同期してパラレル・シリアル変換回路21及び22に格納される。
【0047】
パラレル・シリアル変換回路21及び22に格納された入力データは、クロック信号Clock_2により毎サイクルシフトされながら、1ビット全加算器11Aに1ビットずつ供給される。1ビット全加算器11Aによる演算結果は、シリアル・パラレル変換回路23に1ビットずつ格納されてシフトされる。この際、最下位の1ビット(最初の1ビット)の演算時には下の桁からの桁上げが存在しないので、Cinを“0”に設定するべく初期値制御信号がアサートされる。この初期値制御信号は、制御信号と共通化できるならば共通化してもよい。また下位ビットからの桁上げが無い演算(例えばAND演算やOR演算等)を行う場合には、省略しても構わない。
【0048】
このようにして下位ビットから開始された演算は、クロック信号Clock_2の第17サイクル(Cycle17)で演算を完了し、第18サイクル(Cycle18)において、周辺回路によるシリアル・パラレル変換回路23からの演算結果Cの取り出しが可能となる。この例において、サイクル周期が100psであれば、クロック信号Clock_2の周波数は10GHz、クロック信号Clock_1の周波数は555MHzとなる。
【0049】
なお図15の構成においては、最初の演算結果が入力されてから、17サイクル後に16ビットのパラレルデータを出力する。この16ビットの出力パラレルデータは、次のサイクルでは1ビットシフトされてしまうので、周辺回路72で16ビットの出力パラレルデータを取り込み可能な時間は、高速なクロック信号Clock_2の1サイクル分の期間だけということになる。
【0050】
低速なクロック信号CLock_1に基づいて動作する周辺回路72にとっては、そのような短期間内にタイミングを合わせる必要があるとすると、クロック周波数や位相等に関するタイミング制限が大きくなり好ましくない。そこで16ビットの出力パラレルデータを、クロック信号Clock_2の複数サイクルの期間保持可能な構成とすることが望ましい。
【0051】
図16は、本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成の別の一例を示す図である。図16において、図14と同一の構成要素は同一の番号で参照し、その説明は省略する。
【0052】
図16のマイクロプロセッサは、図14のマイクロプロセッサと比較して、シリアル・パラレル変換回路23の代わりにシリアル・パラレル変換回路23Aが設けられている点が異なる。このシリアル・パラレル変換回路23Aは、出力制御信号によりその動作が制御される。
【0053】
図17は、シリアル・パラレル変換回路23Aの回路構成の一例を示す図である。 図17のシリアル・パラレル変換回路23Aは、図9のシリアル・パラレル変換回路23と同様にフリップフロップ41−1乃至41−16を含む。更に図17においては、フリップフロップ41−1乃至41−16へのクロック信号の供給/停止を制御するためにAND回路45が設けられる。出力制御信号の負論理信号がAND回路45の一方の入力に供給される。出力制御信号がアサートされたとき、シリアル・パラレル変換回路23Aは、演算結果の取り込みとデータのシフト動作を停止し、前のサイクルに保持していたデータをそのまま保持する。
【0054】
図18は、図16のマイクロプロセッサの動作を示すタイミングチャートである。図18に示される動作においては、図15に示される動作と異なり、シリアル・パラレル変換回路23Aに16ビット分の出力パラレルデータが保持された時点で、出力制御信号がアサートされる。これにより、シリアル・パラレル変換回路23Aは、演算結果の取り込みとデータのシフト動作を停止し、出力パラレルデータCをそのまま保持する。
【0055】
このような構成とすることにより、クロック信号Clock_1とクロック信号Clock_2とのタイミング関係に大きな制限が課されることがなく、周波数比を自由に設定・変更することが可能となる。従って、マイクロプロセッサやDSP(Digital Signal Processor)等を使用するシステムにおいて、外部バスインターフェースのクロック信号やSDRAM(Synchronous Dynamic Random Access Memory)のクロック信号等の複数のクロック信号との間でのデータ受け渡しが容易になる。上記実施例によれば、サイクル周期が100psであればClock_2の周波数は10GHz、Clock_1の周波数は500MHzとなり、そのクロック比を整数倍にすることが可能となるため、他のクロックとの信号の受け渡しが容易になる。
【0056】
図19は、本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成の別の一例を示す図である。図19において、図16と同一の構成要素は同一の番号で参照し、その説明は省略する。
【0057】
図19においては、図16の周辺回路72が、演算装置20に対する入力側の周辺回路81及び出力側の周辺回路82として別々に設けられる。周辺回路81はクロック信号Clock_1に同期して動作し、周辺回路82はクロック信号Clock_3に同期して動作する。このように本発明においては、演算装置20の入力側のクロック信号の周波数と、出力側のクロック信号の周波数とが異なる構成であってもよい。この場合であっても、出力制御信号によりシリアル・パラレル変換回路23Aのシフト動作を制御することで、クロック信号Clock_3のタイミングに大きな制限が課されることがなく、周波数を自由に設定・変更することが可能となる。
【0058】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【0059】
本発明は、以下の内容を含むものである。
(付記1)第1のパラレルデータを各々が所定のビット数からなる所定数の第1の部分データに分解して該所定数の第1の部分データを1つずつ順次供給する第1のパラレル・シリアル変換回路と、
第2のパラレルデータを各々が該所定のビット数からなる所定数の第2の部分データに分解して該所定数の第2の部分データを1つずつ順次供給する第2のパラレル・シリアル変換回路と、
順次供給される該所定数の第1の部分データと順次供給される該所定数の第2の部分データとに対する演算を部分データ毎に該所定数分順次実行するシリアル演算器と、
該演算器の演算結果を該所定数分順次受け取り1つに纏めて第3のパラレルデータとして出力するシリアル・パラレル変換回路
を含むことを特徴とする演算装置。
(付記2)該シリアル演算器は、
該所定ビット数の演算を実行して該演算結果と中間結果とを出力する所定ビット数演算器と、
該中間結果を格納するレジスタ
を含み、該レジスタが格納するある演算に対する該中間結果を次の演算時に該所定ビット数演算器に供給することを特徴とする付記1記載の演算装置。
(付記3)該シリアル演算器は、複数の異なる演算を実行する機能を有し該複数の異なる演算のうちの1つを選択可能に構成されることを特徴とする付記1記載の演算装置。
(付記4)該シリアル・パラレル変換回路は、クロック信号に同期して動作し、該演算器の演算結果を該所定数分順次受け取った後に該第3のパラレルデータを該クロック信号の1サイクルより長い期間保持することを特徴とする付記1記載の演算装置。
(付記5)該第1及び第2のパラレルデータを該第1及び第2のパラレル・シリアル変換回路に供給する入力側回路を更に含み、該入力側回路は第1のクロック信号に同期して動作し、該第1及び第2のパラレル・シリアル変換回路、該シリアル演算器、及び該シリアル・パラレル変換回路は第2のクロック信号に同期して動作することを特徴とする付記1記載の演算装置。
(付記6)該シリアル・パラレル変換回路から該第3のパラレルデータを供給される出力側回路を更に含み、該出力側回路は第1のクロック信号に同期して動作し、該第1及び第2のパラレル・シリアル変換回路、該シリアル演算器、及び該シリアル・パラレル変換回路は第2のクロック信号に同期して動作することを特徴とする付記1記載の演算装置。
(付記7)該第1及び第2のパラレルデータを該第1及び第2のパラレル・シリアル変換回路に供給する入力側回路と、
該シリアル・パラレル変換回路から該第3のパラレルデータを供給される出力側回路
を更に含み、該入力側回路及び該出力側回路は第1のクロック信号に同期して動作し、該第1及び第2のパラレル・シリアル変換回路、該シリアル演算器、及び該シリアル・パラレル変換回路は第2のクロック信号に同期して動作することを特徴とする付記1記載の演算装置。
(付記8)該第1及び第2のパラレルデータを該第1及び第2のパラレル・シリアル変換回路に供給する入力側回路と、
該シリアル・パラレル変換回路から該第3のパラレルデータを供給される出力側回路
を更に含み、該入力側回路は第1のクロック信号に同期して動作し、該出力側回路は第2のクロック信号に同期して動作し、該第1及び第2のパラレル・シリアル変換回路、該シリアル演算器、及び該シリアル・パラレル変換回路は第3のクロック信号に同期して動作することを特徴とする付記1記載の演算装置。
(付記9)各サイクルで演算を実行し各サイクル毎に演算結果と中間結果とを出力する演算器と、
該中間結果を格納するレジスタ
を含み、各サイクルでの演算の該演算結果を外部に出力すると共に、該レジスタが格納するあるサイクルの演算の該中間結果を次のサイクルの演算時に該演算器に供給することを特徴とする演算器。
(付記10)該中間結果は桁上がりデータであることを特徴とする付記9記載の演算器。
【発明の効果】
本発明においては、Nビットの演算を一括して行うのではなく、Nビットを分割した少ないビット数(Mビット)ごとに逐次演算を行っていくことで、複数サイクルかけてNビット全体について演算を実行する構成となっている。この構成により、1サイクルあたりのMビット演算回路の構成をできるだけ単純化することで、回路規模を小さくすると共に演算回路を高い周波数で動作させることが可能となる。従って、回路規模を削減するという目的と共に、複数サイクルを演算に必要としながらも各サイクルにかかる時間を短縮することで全体の演算を高速で実行することができる。これにより、高速化、低コスト化、及び低消費電力化を実現することが可能となる。
【0060】
また本発明による演算器を並列処理を行う情報処理装置に適用した場合には、回路規模の小さい多数の演算器をLSI上に実装することが可能となり、並列処理性能を向上させることが可能となる。
【図面の簡単な説明】
【図1】本発明によるシリアル演算器の原理構成を示す図である。
【図2】本発明による演算装置の原理構成を示す図である。
【図3】シリアル演算器の第1の実施例に係る構成を示す図である。
【図4】シリアル演算器の第2の実施例に係る構成を示す図である。
【図5】シリアル演算器の第3の実施例に係る構成を示す図である。
【図6】シリアル演算器の第4の実施例に係る構成を示す図である。
【図7】シリアル演算器の第5の実施例に係る構成を示す図である。
【図8】本発明によるパラレル・シリアル変換回路の第1の実施例の構成を示す図である。
【図9】本発明によるシリアル・パラレル変換回路の第1の実施例の構成を示す図である。
【図10】本発明によるパラレル・シリアル変換回路の第2の実施例の構成を示す図である。
【図11】第1のフリップフロップモジュールの構成を示す図である。
【図12】第2のフリップフロップモジュールの構成を示す図である。
【図13】本発明によるシリアル・パラレル変換回路の第2の実施例の構成を示す図である。
【図14】本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成を示す図である。
【図15】図14のマイクロプロセッサの動作を示すタイミングチャートである。
【図16】本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成の別の一例を示す図である。
【図17】シリアル・パラレル変換回路の回路構成の一例を示す図である。
【図18】図16のマイクロプロセッサの動作を示すタイミングチャートである。
【図19】本発明による演算装置をマイクロプロセッサの演算器部分に適用した構成の別の一例を示す図である。
【符号の説明】
10 シリアル演算器
11 Mビット演算器
12 レジスタ
21 パラレル・シリアル変換回路
22 パラレル・シリアル変換回路
23 シリアル・パラレル変換回路
Claims (5)
- 第1のパラレルデータを各々が所定のビット数からなる所定数の第1の部分データに分解して該所定数の第1の部分データを1つずつ順次供給する第1のパラレル・シリアル変換回路と、
第2のパラレルデータを各々が該所定のビット数からなる所定数の第2の部分データに分解して該所定数の第2の部分データを1つずつ順次供給する第2のパラレル・シリアル変換回路と、
順次供給される該所定数の第1の部分データと順次供給される該所定数の第2の部分データとに対する演算を部分データ毎に該所定数分順次実行するシリアル演算器と、
該演算器の演算結果を該所定数分順次受け取り1つに纏めて第3のパラレルデータとして出力するシリアル・パラレル変換回路
を含むことを特徴とする演算装置。 - 該シリアル演算器は、
該所定ビット数の演算を実行して該演算結果と中間結果とを出力する所定ビット数演算器と、
該中間結果を格納するレジスタ
を含み、該レジスタが格納するある演算に対する該中間結果を次の演算時に該所定ビット数演算器に供給することを特徴とする請求項1記載の演算装置。 - 該第1及び第2のパラレルデータを該第1及び第2のパラレル・シリアル変換回路に供給する入力側回路を更に含み、該入力側回路は第1のクロック信号に同期して動作し、該第1及び第2のパラレル・シリアル変換回路、該シリアル演算器、及び該シリアル・パラレル変換回路は第2のクロック信号に同期して動作することを特徴とする請求項1記載の演算装置。
- 該シリアル・パラレル変換回路から該第3のパラレルデータを供給される出力側回路を更に含み、該出力側回路は第1のクロック信号に同期して動作し、該第1及び第2のパラレル・シリアル変換回路、該シリアル演算器、及び該シリアル・パラレル変換回路は第2のクロック信号に同期して動作することを特徴とする請求項1記載の演算装置。
- 各サイクルで演算を実行し各サイクル毎に演算結果と中間結果とを出力する演算器と、
該中間結果を格納するレジスタ
を含み、各サイクルでの演算の該演算結果を外部に出力すると共に、該レジスタが格納するあるサイクルの演算の該中間結果を次のサイクルの演算時に該演算器に供給することを特徴とする演算器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003114179A JP2004318670A (ja) | 2003-04-18 | 2003-04-18 | 演算装置及び演算器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003114179A JP2004318670A (ja) | 2003-04-18 | 2003-04-18 | 演算装置及び演算器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004318670A true JP2004318670A (ja) | 2004-11-11 |
Family
ID=33473851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003114179A Withdrawn JP2004318670A (ja) | 2003-04-18 | 2003-04-18 | 演算装置及び演算器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004318670A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006098015A1 (ja) | 2005-03-16 | 2006-09-21 | Mitsubishi Denki Kabushiki Kaisha | データ変換装置及びデータ変換方法 |
JP2008244592A (ja) * | 2007-03-26 | 2008-10-09 | Nippon Telegr & Teleph Corp <Ntt> | ビタビ復号器 |
JP2010057019A (ja) * | 2008-08-29 | 2010-03-11 | Sony Corp | 撮像素子及び撮像装置 |
US7849295B2 (en) | 2006-06-20 | 2010-12-07 | Nec Electronics Corporation | Data processing apparatus and data processing method including dividing data to be processed |
JP2020038655A (ja) * | 2018-09-03 | 2020-03-12 | 三星電子株式会社Samsung Electronics Co.,Ltd. | ニューロモーフィック装置、及びニューロモーフィック装置でマルチビットニューロモーフィック演算を処理する方法 |
-
2003
- 2003-04-18 JP JP2003114179A patent/JP2004318670A/ja not_active Withdrawn
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006098015A1 (ja) | 2005-03-16 | 2006-09-21 | Mitsubishi Denki Kabushiki Kaisha | データ変換装置及びデータ変換方法 |
JPWO2006098015A1 (ja) * | 2005-03-16 | 2008-08-21 | 三菱電機株式会社 | データ変換装置及びデータ変換方法 |
US7949807B2 (en) | 2005-03-16 | 2011-05-24 | Mitsubishi Electric Corporation | Data conversion apparatus and data conversion method |
CN101044535B (zh) * | 2005-03-16 | 2011-06-15 | 三菱电机株式会社 | 数据变换装置以及数据变换方法 |
JP4700051B2 (ja) * | 2005-03-16 | 2011-06-15 | 三菱電機株式会社 | 暗号装置及び暗号方法 |
US7849295B2 (en) | 2006-06-20 | 2010-12-07 | Nec Electronics Corporation | Data processing apparatus and data processing method including dividing data to be processed |
JP2008244592A (ja) * | 2007-03-26 | 2008-10-09 | Nippon Telegr & Teleph Corp <Ntt> | ビタビ復号器 |
JP4633759B2 (ja) * | 2007-03-26 | 2011-02-16 | 日本電信電話株式会社 | ビタビ復号器 |
JP2010057019A (ja) * | 2008-08-29 | 2010-03-11 | Sony Corp | 撮像素子及び撮像装置 |
JP2020038655A (ja) * | 2018-09-03 | 2020-03-12 | 三星電子株式会社Samsung Electronics Co.,Ltd. | ニューロモーフィック装置、及びニューロモーフィック装置でマルチビットニューロモーフィック演算を処理する方法 |
US11868870B2 (en) | 2018-09-03 | 2024-01-09 | Samsung Electronics Co., Ltd. | Neuromorphic method and apparatus with multi-bit neuromorphic operation |
JP7507549B2 (ja) | 2018-09-03 | 2024-06-28 | 三星電子株式会社 | ニューロモーフィック装置、及びニューロモーフィック装置でマルチビットニューロモーフィック演算を処理する方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8281113B2 (en) | Processor having ALU with dynamically transparent pipeline stages | |
US6820102B2 (en) | DSP unit for multi-level global accumulation | |
US5235536A (en) | Absolute difference processor element processing unit, and processor | |
JP2006518057A (ja) | 改善された計算アーキテクチャ、関連システム、並びに、方法 | |
JPH10187438A (ja) | 乗算器の入力に対する遷移を減少させる方法 | |
GB2464178A (en) | SIMD processor with iterative multiply/accumulate instruction for finite impulse response filters | |
JPH06208456A (ja) | 集積化乗算/累算ユニットを有するcpu | |
US20080243976A1 (en) | Multiply and multiply and accumulate unit | |
JPS60163128A (ja) | 乗算回路 | |
US8892615B2 (en) | Arithmetic operation circuit and method of converting binary number | |
CN111008003A (zh) | 数据处理器、方法、芯片及电子设备 | |
JP2001027945A (ja) | Simd演算を実行するために標準macユニットを利用する浮動小数点ユニット | |
JP2004318670A (ja) | 演算装置及び演算器 | |
US5661673A (en) | Power efficient booth multiplier using clock gating | |
US5987638A (en) | Apparatus and method for computing the result of a viterbi equation in a single cycle | |
CN112074810B (zh) | 并行处理设备 | |
JP2000322235A (ja) | 情報処理装置 | |
CN209879493U (zh) | 乘法器 | |
US7587582B1 (en) | Method and apparatus for parallel arithmetic operations | |
US6725360B1 (en) | Selectively processing different size data in multiplier and ALU paths in parallel | |
US20090031117A1 (en) | Same instruction different operation (sido) computer with short instruction and provision of sending instruction code through data | |
US7007059B1 (en) | Fast pipelined adder/subtractor using increment/decrement function with reduced register utilization | |
CN115857873B (zh) | 乘法器、乘法计算方法、处理系统及存储介质 | |
Deepika et al. | Microarchitecture based RISC-V Instruction Set Architecture for Low Power Application | |
WO2002015000A2 (en) | General purpose processor with graphics/media support |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060704 |