JP3573874B2 - 演算回路 - Google Patents
演算回路 Download PDFInfo
- Publication number
- JP3573874B2 JP3573874B2 JP15438496A JP15438496A JP3573874B2 JP 3573874 B2 JP3573874 B2 JP 3573874B2 JP 15438496 A JP15438496 A JP 15438496A JP 15438496 A JP15438496 A JP 15438496A JP 3573874 B2 JP3573874 B2 JP 3573874B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- result
- pipeline
- arithmetic
- output
- 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.)
- Expired - Lifetime
Links
Images
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の属する技術分野】
本発明は、演算回路に関し、特に、マイクロプロセッサ、DSPといった論理LSIに含まれる演算回路に関する。
【0002】
【従来の技術】
マイクロプロセッサや、DSPといった論理LSIを高性能化するためには、処理の並列実行を行うという方法の他に、動作サイクルの短縮という方法がある。
【0003】
論理LSIの動作サイクルを短縮するためには、その主要構成要素の一つである演算回路の動作サイクルを短縮することが不可欠である。これまで、半導体デバイス技術の進歩およびダイナミック回路等の先端回路技術を駆使することにより、演算回路の動作サイクルの短縮を図ってきた。
【0004】
しかし、マーケットニーズにこたえるためには、より一層の高速化が必要になっている。そこで、近年では、演算回路のパイプライン化することによる動作サイクルの短縮化を図ることが知られている。
【0005】
図8は従来から知られているパイプライン化された演算回路を説明するための図である。この演算回路は、各ステージにおける演算処理を行うパイプライン演算回路100を複数個設け、このパイプライン演算回路100の間にパイプライン演算回路100の演算結果を保持し、次段のパイプライン演算回路に出力するフリップフロップ200を備えるようにしてある。このように構成した演算回路は、ステージレベルの先行制御を行うことができるので命令の実行時間を短縮することができる。このように、従来から、演算回路をパイプライン化することで動作サイクルの短縮化を図ることが行われている。
【0006】
【発明が解決しようとする課題】
上述の如く、パイプライン化を行った場合、演算動作サイクルの短縮により、演算処理のスループットは上がる。しかし、演算を開始してからその演算結果が使用可能になる時間、いわゆるレーテンシは大きくなってしまう。通常の処理では、演算結果をその直後の演算で使う処理が相当数あるので、演算回路をパイプライン化して動作サイクルを短縮しても、性能という観点から見るとたいして効果をあげないことが指摘されている。
【0007】
本発明は上記問題点をかんがみてなされたものであり、動作サイクルが短く、演算レーテンシに関しても平均すると小さい演算回路を提供することを目的とする。
【0008】
【課題を解決するための手段】
上記目的を達成するため、本発明に係る演算回路は、各ステージにおける演算を行う少なくとも2つのパイプライン演算回路と、このパイプライン演算回路の演算結果を保持し、次段のパイプライン演算回路に出力する少なくとも1つのフリップフロップと、を備え、前記フリップフロップに保持された演算結果を用いて次段のパイプライン演算回路がパイプライン処理による演算処理を行う演算回路において、前記複数のパイプライン演算回路のうち、演算途中に係るパイプライン演算回路からそのパイプライン演算回路の演算結果を入力し、途中演算結果を生成して出力する演算結果生成回路と、前記演算途中に係るパイプライン演算回路で処理される演算の種類若しくはオペランドデータから前記演算結果生成回路の出力が有効か否かを判定し、判定信号を出力する判定回路と、を備えることを特徴とする。
【0009】
本発明による演算回路は、基本的にはパイプライン化されているので、その動作サイクルは短縮されている。さらに、あるオペランドデータに対しては、パイプラインの早いステージで途中の演算結果を出力するようにしてある。従って、これらのオペランドデータに対する演算は小さいレーテンシで演算結果を出力することができるのである。
【0011】
一般に、加減算の動作時間は、オペランドデータに大きく依存する。回路の構成にもよるが、一般的に加減算時のキャリー伝播の長さが長い程、演算時間がかかる。キャリー伝播が短いオペランドデータに対する演算結果の生成は、短い時間でできる。したがって、このようなオペランドデータに対しては、回路全体の動作サイクルに影響を与えることなく、パイプラインの早いステージでの演算結果出力が可能である。実際大半の加減算演算では、演算時のキャリー伝播は短いことが知られている。例えば、32ビット長の加減算の場合、オペランドデータをランダムに発生させて調べると、90%以上の演算で、キャリー伝播は、8ビット以下であることがわかる。したがって、本発明に係る演算回路は、動作サイクルが短く、大半の場合小さいレーテンシで演算結果を出力することができるのである。
【0012】
なお、ある種類のオペランドデータに対して高速に演算可能であるということは、比較演算、シフト演算といった他の演算についても言えることであり、それらの演算に対しても本発明は適用可能である。
【0013】
【発明の実施の形態】
本発明に係る演算回路について、図面を参照しながら詳細に説明する。
【0014】
第1の実施の形態
図1は本発明に係る演算回路を示したブロック図である。この演算回路は、各ステージ(1乃至n)における演算処理を行うパイプライン演算回路100と、このパイプライン演算回路100の演算を保持し、次段のパイプライン演算回路100に出力するフリップフロップ200と、を備え、フリップフロップ200に保持された演算結果を用いて次段のパイプライン演算回路100がパイプライン処理による演算処理を行うものであり、複数のパイプライン演算回路100のうち、演算途中に係るパイプライン演算回路100からそのパイプライン演算回路の演算結果を入力し、途中演算結果を生成して出力する演算結果生成回路300と、演算途中に係るパイプライン演算回路100で処理される演算の種類若しくはオペランドデータから演算結果生成回路300の出力が有効か否かを判定し、判定信号を出力する判定回路400とを備えるようにしてある。
【0015】
図2は、本実施形態の演算回路のブロック図である。説明と理解の容易さを考慮してパイプラインのステージ数を2つとしてある。以下、この回路の動作について説明する。まず、オペランドデータ入力信号1、2は第1ステージのパイプライン演算回路100に入力され、パイプライン演算回路100は、第1ステージにおける演算を行う。第1ステージのパイプライン演算部100の途中演算結果4はフリップフロップ200に一旦保持され、次のクロックで第2ステージのパイプライン演算回路100に入力される。この第2ステージのパイプライン演算回路100は所定の演算を行い、最終的な演算結果8を出力する。
【0016】
一方、第1ステージのパイプライン演算回路100の演算結果5は高速演算結果生成回路300に入力される。この高速演算結果生成回路300では第1ステージおける演算結果を生成し、その結果を途中演算結果9として出力する。ここで、第1ステージで終了可能であるか否かは、パイプライン演算回路100の演算途中の演算途中信号3を用いて、判定回路400で判断し判定信号7を出力する。この演算回路の演算結果を用いて次の処理を行う演算回路等は、上述の判定信号7により最終演算結果8を使用するか、途中演算結果9を使用するかを判断する。
【0017】
以上のように本実施形態においては、演算を短時間で実行できるある種類のオペランドデータに対しては、パイプラインの第1ステージで演算結果を生成し出力するようにしてある。そのため、動作サイクルの短い演算回路を提供可能であると同時に第1ステージで演算終了可能なオペランドに対しては、第1ステージで演算結果を出力することによりレーテンシを小さくすることができる。
【0018】
本実施形態の具体例を図3に示す。この演算回路は32ビットの加減算回路である。この32ビットの加減算回路におけるパイプラインの第1ステージは8ビット単位で4つのセクションに分かれている。110は、8ビットの加減算を実行する回路であり、キャリー入力がある場合の演算結果44と無い場合の演算結果43を生成する。また同時に、演算結果44のキャリー出力41と演算結果43のキャリー出力42も同時に生成する。
【0019】
演算結果43と44は、セレクタ310において下位ビットの演算セクションからのキャリー出力信号51により選択され、途中演算結果9が出力される。キャリー出力信号51は、そのセクションへのキャリー入力が無い場合の演算結果に伴うキャリー出力である。セレクタ310は、信号51が‘0’の時すなわちキャリーが無い時、演算結果43を選択する。したがって、キャリー伝播が8ビット以下であるオペランドデータに対しては、この途中演算結果9として有効な演算結果が出力される。
【0020】
8ビット加減算回路110の演算結果は、動作サイクルの終わりに、フリップフロップ200に取り込まれた後、第2ステージの演算回路120に渡される。この回路120で、全体のキャリー伝播が計算され、適切な演算結果が選択され、最終演算結果8を出力する。
【0021】
上記の加減算回路に対する判定回路400の一例を図4に示す。判定信号7は、‘1’の時、途中演算結果9が無効であることを示す。この回路への入力は8ビット加減算回路203のキャリー出力である。C1n はそのセクションへのキャリー入力がある場合の演算結果のnビット目からのキャリー出力である。C0nはそのセクションへのキャリー入力が無い場合の演算結果のnビット目からのキャリー出力である。C1n が‘1’でありかつC0n が‘0’の時、そのセクションはキャリー伝播状態にある。連続する2つのセクションがキャリー伝播状態にある時、途中演算結果9が無効になる。
【0022】
この加減算器は、パイプライン化されているので短いサイクルタイムで動作する。また、キャリー伝播が8ビット以下の時は、パイプラインの第1ステージで演算結果を出力する。加減算の場合、多くのオペランドに対する演算においてキャリー伝播は8ビット以下である。したがって、この加減算回路は、多くの場合、小さいレーテンシの演算回路として動作する。
【0023】
第2の実施形態
本発明に係る演算回路の第2の実施形態について図5を用いて説明する。図5の演算回路における高速演算結果生成回路300は、オペランドデータ1、2を直接入力して演算結果を生成するようにしてある。このように、高速演算結果生成回路300を独立に構成すると回路規模は増加するが、より高速に演算結果を得ることができるので一層の最適化が可能になる。
【0024】
第3の実施の形態
本発明に係る演算回路の第3の実施形態について図6を用いて説明する。図6の演算回路においては図2等に示すような高速演算結果生成回路300を省略したものである。すなわち、第1ステージのパイプライン演算回路100と共有して構成するようにしてある。演算の種類によってはパイプライン化された演算回路の中間結果をそのまま演算結果として出力することが可能である場合がある。係る場合には上記実施形態の如く構成することでハードウエアの増加を回避しつつ高速に演算結果を得ることができる。
【0025】
第4の実施の形態
本発明に係る演算回路の第4の実施の形態について図7を用いて説明する。図7の演算回路においては、判定回路400は、オペランドデータ1、2を直接入力して判定信号を生成するようにしてある。演算の種類によってはオペランドデータから判断ができる場合がある。係る場合には上記実施形態の如く、演算の中間結果を使わずに完全に独立に構成することにより、判定信号を早く生成することができるのである。
【0026】
以上、本発明の実施形態を説明してきたが、本実施形態においては判定信号の出力タイミングについては言及していない。システム構築上、早く出力することが望ましいが、高速演算結果の出力よりも遅くなったとしても適当なシステム構築は可能である。また、上記実施形態以外にもさまざまなバリエーションが可能であるが、それらについても、本発明に係る演算回路として実施可能である。
【0027】
【発明の効果】
以上述べてきたように、本発明に係る演算回路は、動作サイクルが短く、演算レーテンシに関しても平均すると小さくすることができる。
【図面の簡単な説明】
【図1】本発明に係る演算回路を示すブロック図である。
【図2】第1の実施形態の演算回路を示すブロック図である。
【図3】第1の実施形態の32ビット加減算回路を示すブロック図である。
【図4】上記32ビット加減算回路の400の具体例を示すブロック図である。
【図5】第2の実施形態の演算回路を示すブロック図である。
【図6】第3の実施形態の演算回路を示すブロック図である。
【図7】第4の実施形態の演算回路を示すブロック図である。
【図8】従来のパイプライン化された演算回路を示すブロック図である。
【符号の説明】
1,2 オペランドデータ入力信号
3 演算途中信号
4,5,6 パイプライン演算回路100の演算結果
7 判定信号
8 最終演算結果
9 途中演算結果
41,42 キャリー出力
43,44 8ビット加減算結果
100 パイプライン演算回路
110 8ビット加減算器
120 最終加減算結果生成部
200 フリップフロップ
300 高速演算結果出力回路
310 セレクタ
400 判定回路
411 NOTゲート
412,413 ANDゲート
414 ORゲート
Claims (6)
- 各ステージにおける演算を行う少なくとも2つのパイプライン演算回路と、
このパイプライン演算回路の演算結果を保持し、次段のパイプライン演算回路に出力する少なくとも1つのフリップフロップと、
を備え、前記フリップフロップに保持された演算結果を用いて次段のパイプライン演算回路がパイプライン処理による演算処理を行う演算回路において、
前記複数のパイプライン演算回路のうち、演算途中に係るパイプライン演算回路からそのパイプライン演算回路の演算結果を入力し、途中演算結果を生成して出力する演算結果生成回路と、
前記演算途中に係るパイプライン演算回路で処理される演算の種類若しくはオペランドデータから前記演算結果生成回路の出力が有効か否かを判定し、判定信号を出力する判定回路と、
を備えることを特徴とする演算回路。 - パイプライン構造を有する演算回路において、
演算を行うデータのビット位置により複数のセクションに分割され、このセクション毎にキャリー入力がある場合及び無い場合の演算結果を生成する加減算回路と、
前記セクションが生成する前記キャリー入力がある場合及び無い場合の演算結果を入力し、前記下位のキャリー信号により演算結果を選択して途中加減算結果として出力するセレクタと、
前記各セクション及び前記セレクタに接続され、データを保持する複数のフリップフロップと、
前記セレクタの出力が有効か否かを判定し、判定信号を出力する判定回路と、
前記フリップフロップに接続され、全体のキャリー伝搬を計算し、有効な演算結果を選択して加減算最終結果を出力する最終加減算結果生成部と、
を有し、
次の処理を行う演算回路は、前記判定信号に基づいて、前記加減算最終結果若しくは前記途中加減算結果のいずれかを使用することを特徴とする演算回路。 - 前記判定回路は、
当該セクションへのキャリー入力がある場合のキャリー出力及び前記セクションへのキャリー入力が無い場合のキャリー入力に基づいて、前記演算結果生成回路の出力が有効か否かを判定し、判定信号を出力することを特徴とする請求項2記載の演算回路。 - 前記演算結果生成回路は、前記パイプライン演算回路が入力する演算データを直接入力して演算結果を生成することを特徴とする請求項1記載の演算回路。
- パイプライン処理による演算処理を行う演算回路において、
ステージにおける演算を行う少なくとも2つのパイプライン演算回路と、
このパイプライン演算回路の演算結果を保持し、次段のパイプライン演算回路に出力する少なくとも1つのフリップフロップと、
前記演算途中に係るパイプライン演算回路で処理される演算の種類若しくはオペランドデータから前記演算結果生成回路の出力が有効か否かを判定し、判定信号を出力する判定回路と、
を備え、
前記パイプライン演算回路の少なくとも1つは、当該パイプライン演算回路の中間結果をそのまま演算結果として出力することを特徴とする演算回路。 - 前記判定回路は、前記パイプライン演算回路が入力する演算データを直接入力し、前記演算途中に係るパイプライン演算回路で処理される演算の種類若しくはオペランドデータから前記演算結果生成回路の出力が有効か否かを判定し、判定信号を出力する判定信号を生成することを特徴とする請求項1記載の演算回路。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15438496A JP3573874B2 (ja) | 1996-06-14 | 1996-06-14 | 演算回路 |
US08/733,074 US6101621A (en) | 1995-10-20 | 1996-10-16 | Logic circuit and method for designing the same |
EP02027610A EP1291764A1 (en) | 1995-10-20 | 1996-10-16 | Logic circuit and method for designing the same |
DE69626596T DE69626596T2 (de) | 1995-10-20 | 1996-10-16 | Logische Schaltung, die nach dem Carry select Prinzip arbeitet |
EP96116589A EP0769738B1 (en) | 1995-10-20 | 1996-10-16 | Logic circuit with carry selection technique |
KR1019960046952A KR100370819B1 (ko) | 1995-10-20 | 1996-10-19 | 논리회로 및 그 설계방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15438496A JP3573874B2 (ja) | 1996-06-14 | 1996-06-14 | 演算回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH103387A JPH103387A (ja) | 1998-01-06 |
JP3573874B2 true JP3573874B2 (ja) | 2004-10-06 |
Family
ID=15582965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15438496A Expired - Lifetime JP3573874B2 (ja) | 1995-10-20 | 1996-06-14 | 演算回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3573874B2 (ja) |
-
1996
- 1996-06-14 JP JP15438496A patent/JP3573874B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH103387A (ja) | 1998-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20020169942A1 (en) | VLIW processor | |
US20120197954A1 (en) | Floating point multiplier circuit with optimized rounding calculation | |
EP0769738B1 (en) | Logic circuit with carry selection technique | |
US20070260857A1 (en) | Electronic Circuit | |
JP2008542949A (ja) | パイプライン型マイクロプロセッサの節電システムおよび節電方法 | |
US7065636B2 (en) | Hardware loops and pipeline system using advanced generation of loop parameters | |
US6263424B1 (en) | Execution of data dependent arithmetic instructions in multi-pipeline processors | |
JP3573874B2 (ja) | 演算回路 | |
JP3541623B2 (ja) | データ処理装置 | |
JP3759729B2 (ja) | スペキュレーティブ・レジスタの調整 | |
KR100322150B1 (ko) | 부동 소수점 상태 및 제어 레지스터 인스트럭션을 단일 사이클 | |
US6584556B1 (en) | Modulo address generation method and apparatus | |
JP2944563B2 (ja) | パイプライン型情報処理装置 | |
JP3825709B2 (ja) | パイプライン処理方法及びプロセッサ装置 | |
JP3804591B2 (ja) | 演算処理装置 | |
US20050033939A1 (en) | Address generation | |
JPH09116413A (ja) | 論理回路及びその設計方法 | |
US20050071830A1 (en) | Method and system for processing a sequence of instructions | |
JP2869376B2 (ja) | データ依存関係を持つ複数のデータ処理を実行するパイプラインデータ処理方法 | |
JP3716923B2 (ja) | クロック数可変プロセッサ | |
JP2001005789A (ja) | マルチコアdsp回路 | |
KR0157337B1 (ko) | 디지탈신호 처리기의 멀티비트 가산기 | |
JPH0619705A (ja) | パイプライン制御方式 | |
JPH09146769A (ja) | パイプライン処理装置 | |
JP2001243066A (ja) | パイプライン処理方法並びにその方法を利用するパイプライン処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040309 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040323 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040524 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040615 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040630 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080709 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090709 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090709 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100709 Year of fee payment: 6 |