(57)【要約】  マルチステージ浮動小数点アキュームレータは、少なくとも２つのステージを有し、より速い速度で動作することができる。ある設計では、浮動小数点アキュームレータは、第１及び第２のステージを有する。第１のステージは、３つのオペランドアライメントユニット、２つの乗算器及び３つのラッチを有する。３つのオペランドアライメントユニットは、現在の浮動小数点値、以前の浮動小数点値及び以前の累積値で動作する。第１の乗算器は、ゼロ或いは以前の浮動小数点値を第２のオペランドアライメントユニットに供給する。第２の乗算器は、ゼロ或いは以前の以前の累積値を第３のオペランドアライメントユニットに供給する。３つのラッチは３つのオペランドアライメントユニットに接続している。第２のステージは、３つのオペランドアライメントユニット、ラッチ及びポストアライメントユニットによって生成されたオペランドを加算する３−オペランド加算器を有する。
2010501938.tif 000002
【特許請求の範囲】
【請求項１】
複数の浮動小数点値の累積を実行するように動作可能であって、各ステージが前記ステージの少なくとも１つの結果を格納するように動作可能な少なくとも１つのラッチを有する浮動小数点アキュームレータを具備するプロセッサ。
【請求項２】
前記浮動小数点アキュームレータは、少なくとも２クロックサイクル前からの累積結果を使用する累積を実行するように動作可能である請求項１のプロセッサ。
【請求項３】
前記浮動小数点アキュームレータは、２つのステージを有するパイプラインであって、２クロックサイクルの遅れを有する請求項１のプロセッサ。
【請求項４】
前記浮動小数点アキュームレータは、
現在の浮動小数点値のための第１のオペランドアライメントユニットと、
以前の浮動小数点値のための第２のオペランドアライメントユニットと、
以前の累積値のための第３のオペランドユニットと
を具備する請求項１のプロセッサ。
【請求項５】
前記浮動小数点アキュームレータは、さらに、
ゼロ或いは以前の浮動小数点値を前記第２のオペランドアライメントユニットに供給するように動作可能な第１のマルチプレクサと、
ゼロ或いは以前の浮動小数点値を前記第３のオペランドアライメントユニットに供給するように動作可能な第２のマルチプレクサと
を具備する請求項４のプロセッサ。
【請求項６】
前記浮動小数点アキュームレータは、さらに、
第１、第２及び第３のオペランドアライメントユニットにそれぞれ接続された第１、第２及び第３のラッチを具備する請求項４のプロセッサ。
【請求項７】
前記浮動小数点アキュームレータは、さらに、前記第１、第２及び第３のオペランドアライメントによって生成されたオペランドを加算するように動作可能な３−オペランド加算器を具備する請求項４のプロセッサ。
【請求項８】
前記浮動小数点アキュームレータは、さらに、現在の浮動小数点値、以前の浮動小数点値及び以前の累積値を加算するように動作する３−オペランド加算器を具備する請求項１のプロセッサ。
【請求項９】
前記浮動小数点アキュームレータは、さらに、
前記３−オペランド加算器に接続されたラッチと、
前記ラッチに接続されたポストアライメントユニットと
を具備する請求項８のプロセッサ。
【請求項１０】
入力オペランドを乗算し、複数の浮動小数点値を浮動小数点アキュームレータに供給するように動作可能な乗算器をさらに具備する請求項１のプロセッサ。
【請求項１１】
前記乗算器及び浮動小数点アキュームレータは、オペランドの２つのシーケンスを乗算し、累積するように動作可能である請求項１０のプロセッサ。
【請求項１２】
複数の累積値の累積を実行するように動作可能であって、少なくとも２つのステージを有し、各ステージはステージの少なくとも１つの結果を格納するように動作可能な少なくとも１つのラッチを有する浮動小数点アキュームレータを具備する集積回路。
【請求項１３】
前記浮動小数点アキュームレータは、少なくとも２クロックサイクル前からの累積結果を使用する累積を実行するように動作可能なである請求項１２の集積回路。
【請求項１４】
前記浮動小数点アキュームレータは、
現在の浮動小数点値のための第１のオペランドアライメントユニットと、
以前の浮動小数点値のための第２のオペランドアライメントユニットと、
以前の累積値のための第３のオペランドユニットと
を具備する請求項１２の集積回路。
【請求項１５】
前記浮動小数点アキュームレータは、さらに、前記第１、第２及び第３のオペランドアライメントによって生成されたオペランドを加算するように動作可能な３−オペランド加算器を具備する請求項１４の集積回路。
【請求項１６】
前記浮動小数点アキュームレータは、さらに、
前記３−オペランド加算器に接続された第４のラッチと、
前記第４のラッチに接続されたポストアライメントユニットと
を具備する請求項１５の集積回路。
【請求項１７】
入力オペランドを乗算し、複数の浮動小数点値を浮動小数点アキュームレータに供給するように動作可能な乗算器をさらに具備する請求項１２の集積回路。
【請求項１８】
少なくとも１つの演算論理ユニット（ＡＬＵ）と、各ＡＬＵは、複数の浮動小数点値の累積を実行するように動作可能であって、少なくとも２つのステージを有し、
前記ＡＬＵに接続されたメモリと
を具備するグラフィックプロセッサ。
【請求項１９】
前記浮動小数点アキュームレータは、
現在の浮動小数点値のための第１のオペランドアライメントユニットと、
以前の浮動小数点値のための第２のオペランドアライメントユニットと、
以前の累積値のための第３のオペランドユニットと、
前記第１、第２及び第３のオペランドアライメントによって生成されたオペランドを加算するように動作可能な３−オペランド加算器と
を具備する請求項１８のグラフィックプロセッサ。
【請求項２０】
各ＡＬＵは、さらに、
入力オペランドを乗算し、複数の浮動小数点値を浮動小数点アキュームレータに供給するように動作可能な乗算器を具備する請求項１８のグラフィックプロセッサ。
【請求項２１】
グラフィック処理を実行するように動作可能なシェーダコアであって、第１のＡＬＵをさらに具備する請求項１８のグラフィックプロセッサ。
【請求項２２】
テキスチャマッピングを実行するように動作可能であって、第２のＡＬＵを有するテキスチャエンジンをさらに具備する請求項２１のグラフィックプロセッサ。
【請求項２３】
複数の浮動小数点値の累積を実行するように動作可能であって、少なくとも２つのステージを有するグラフィックプロセッサと、
前記グラフィックプロセッサに接続されたメモリと
を具備する無線装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、電気に関し、より具体的には、浮動小数点アキュームレータに関する。
【背景技術】
【０００２】
デジタルプロセッサでは、数値データは、整数或いは浮動小数点表現を使用して表わされる。浮動小数点表現は、多くの分野において使用されている。広範囲の値を表わすことができる能力と、いくつかの演算オペレーションの操作の容易性とがあるからである。浮動小数点表現は、典型的には、３つのコンポーネントを含む。符号ビット(sign)、しばしば有効として言及される仮数（mant)及び指数(exp)として言及される。浮動小数点値は、(-1)sign×mant×2expとして表わされる。
【０００３】
浮動小数点累積は、グラフィック、デジタル信号処理などの種々の応用に一般的に実行される演算オペレーションである。浮動小数点累積は、典型的には、（１）入力浮動小数点値及び累積された浮動小数点値を受信し、（２）浮動小数点の指数に基づき、２つの浮動小数点値の仮数を位置合わせし、（３）２つの位置合わせされた仮数を加算し、（４）正規化のためにその結果をポスト位置合わせする。各ステップ２、３、４は、実行するためのいくらかの時間を必要とする。これらステップの総時間は、プロセッサが動作できる速度に限定される。
【発明の概要】
【０００４】
より速い速度で動作可能なマルチステージ浮動小数点アキュームレータが、ここにおいて述べられる。マルチステージ浮動小数点アキュームレータは、浮動小数点アキュームレーションのステップを複数のステージに分割する。各ステージの遅れは、浮動小数点アキュームレーションの全てのステップの総遅れの何分の一かである。このことは、マルチステージ浮動小数点アキュームレータが高速クロックスピードで動作することを許す。
【０００５】
本実施の形態では、浮動小数点アキュームレータは、少なくとも２つのステージを有する。各ステージは、機能的なロジック及びそのステージの少なくとも１つの結果を格納する少なくとも１つのラッチを有する。浮動小数点アキュームレータは、少なくとも２クロックサイクルより早くから累積結果を使用して、複数の浮動小数点の値の累積を実行する。
【０００６】
実施の形態においては、浮動小数点アキュームレータは２つのステージを有する。実施の形態では、第１のステージは３つのオペランドアライメントユニット、２つの乗算器及び３つのラッチを有する。３つのオペランドアライメントユニットは、現在の浮動小数点値、以前の浮動小数点値及び２クロックサイクル前から累積された以前の値で動作する。第１の乗算器は、ゼロ或いは以前の浮動小数点値を第２のオペランドアライメントユニットへ提供する。第２の乗算器は、ゼロ或いは以前の浮動小数点値を第３のオペランドアライメントユニットへ提供する。３つのラッチは、３−オペランド加算器に接続されている。実施の形態においては、第２のステージは、３−オペランド加算器を有し、この３−オペランド加算器は、３つのオペランドアライメントユニット、３−オペランド加算器に接続されたラッチ及びラッチに接続されたポストアライメントユニットによって生成されたオペランドを加算する。
【０００７】
マルチステージ浮動小数点アキュームレータは、乗算器と組み合わせて使用され、乗算及び累算（ＭＡＣ）オペレーションを実行し、一般に、ドットプロダクト、フィルタリングなどに使用される。
【０００８】
本開示の種々の観点及び実施の形態は、以下に詳細に説明される。
【０００９】
本開示の観点及び実施の形態が、同じ参照数字が全体を通じて対応して識別される図面と関連して詳細な説明からより明らかにされる。
【図面の簡単な説明】
【００１０】
【図１】図１は、単一ステージ浮動小数点アキュムレータを示す。
【図２】図２は、２ステージ浮動小数点アキュムレータの実施の形態を示す。
【図３】図３は、２ステージ浮動小数点アキュムレータの他の実施の形態を示す。
【図４】図４は、乗算及び累積（ＭＡＣ）ユニットを示す。
【図５】図５は、グラフィックプロセッサのブロック図を示す。
【図６】図６は、無線装置のブロック図を示す。
【発明を実施するための形態】
【００１１】
”例”という言葉は、ここでは”例、事例、イラストレーションとして、”の意で使用される。ここにおいて述べられる”例”としてのいくつかの実施の形態或いはデザインは、他の実施の形態或いはデザインよりも好ましく、或いは有利なように構成される必要はない。
【００１２】
一つのステージにおける浮動小数点累積は、下記のように表わされる。
【数１】
2010501938.tif 000003
【００１３】
ここで、
ｎは累積される浮動小数点値のインデックス、
Ｘｎは累積されるｎ次浮動小数点値、Ｘ0＝０であり、
Ｎは累積される浮動小数点値の総数である。
【００１４】
一般的には、Ｎはいくつかの正の整数値である。
【００１５】
式（１）は、以下のように書き直される。
【数２】
2010501938.tif 000004
【００１６】
ここで、ＡｎはＡ0＝０でＸ１からＸｎについて累積された結果である。最終的な累積された結果ＡＮは、Ｘ１からＸＮまでの全てのＮ個の浮動小数点値が累積された後に得られる。
【００１７】
図１は、単一ステージ浮動小数点アキュームレータ１００のブロック図である。ラッチ１１０は、入力オペランドとしても参照される入力小数点値を受信し、ラッチし、累積される現在の浮動小数点値Ｘｎとしてのラッチされた値を提供する。乗算器（Ｍｕｘ）１１２は累積結果及びゼロ（０．０）を２つの入力で受信する。乗算器１１２は、累積が開始され、或いは禁止（disable)された場合にゼロを供給し、累積が続いている場合には、累積結果を供給する。乗算器１１２の出力は、式（２）における前の累積値Ａｎ−１であり、Ｘｎと加算される。
【００１８】
オペランドアライメントユニット１２０、１２２は、それぞれオペランドＸｎ及びＡｎ−１を受信する。ユニット１２０、１２２は、例えば、１つのオペランドの仮数をシフトし、２つのオペランドの指数が等しくなるまで、その仮数を調整することによって、２つのオペランドの仮数を位置合わせ（align)する。２−オペランド加算器１４０は、次に、２つの位置合わせされた仮数を加算し、結果仮数及び指数を提供する。ラッチ１５０は、加算器１４０の出力を受信し、ラッチする。ポストアライメントユニット１６０は、必要であれば、結果仮数をシフトし、指数を調整し、１．ｘｘｘ−−ｘｘｘのフォーマットを有する正規化された仮数を得る。ここで、各”ｘ”は１つのバイナリビットを表わす。ユニット１６０は、正規化された仮数を及び指数を累積結果として提供する。
【００１９】
浮動小数点アキュームレータ１００は、２つの信号経路を有する。１つはＸｎの第１の信号経路であり、１つはＡｎ−１の第２の信号経路である。第１の信号経路の総遅れは、ラッチ１１０からラッチ１５０までであり、オペランドアライメントユニット１２０及び２−オペランド加算器１４０の遅れによって決定される。第２の信号経路の総遅れは、ポストアライメントユニット１６０、乗算器１１２、オペランドアライメントユニット１２２及び２−オペランド加算器１４０の遅れによって決定される。第２の信号経路の総遅れは、第１の信号経路の総遅れよりも長く、どのくらい速くラッチ１１０、１５０がクロックされることができるかを決定する。特に、ラッチのクロックスピードは、各クロック期間が第２の信号経路の総遅れよりも長くなるように選択される。この総遅れは、比較的長く、故に、浮動小数点アキュームレータ１００のクロックスピードを制限する。
【００２０】
浮動小数点アキュームレータ１００は、高性能及び高速演算論理ユニット（ＡＬＵ）において使用される。浮動小数点累積が１つのクロック期間で完了しない場合には、特別のデータ依存性がＡＬＵを利用するデータパイプライン間に導入される。データパイプラインは、浮動小数点アキュームレータ１００が累積結果を提供するまで、待機されることが必要とされる。このデータ依存性は、性能、特に、浮動小数点累積を大量に実行する用途にインパクトを与える。
【００２１】
マルチステージ浮動小数点アキュームレータは、動作速度を改善するために使用される。マルチステージ浮動小数点アキュームレータは、浮動小数点累積のステップを複数のステージに分ける。各ステージの遅れは、累積のための全てのステップの総遅れの小数部(fraction)である。このことは、マルチステージ浮動小数点アキュームレータより速いクロックスピードで動作することを可能にする。
【００２２】
２つのステージにおける浮動小数点累積は、以下のように表わされる。
【数３】
2010501938.tif 000005
【００２３】
式（３）は、以下のように書き直すことができる。
【数４】
2010501938.tif 000006
【００２４】
図２は、２つのステージの浮動小数点アキュームレータ２００の実施の形態のブロック図である。ラッチ２１０は、入力浮動小数点値を受信し、ラッチし、累積される現在の浮動小数点値Ｘｎを提供する。乗算器２１２は、以前のオペランド及びゼロを受信し、累積がスタートしている場合、或いは禁止されている場合にはゼロを供給し、累積が続いている場合には、以前のオペランドを供給する。乗算器２１２の出力は、式（４）におけるＸｎ−１であり、Ｘｎと加算される。乗算器２１４は、累積結果及びゼロを受信し、累積が最後の２クロック期間内にスタートし、或いは禁止されている場合に、ゼロを供給し、累積結果が続いている場合には累積結果を提供する。乗算器２１４の出力は、式（４）における以前の累積値Ａｎ−２であり、Ｘｎと加算される。浮動小数点アキュームレータ２００は、２クロックサイクル遅れを有するパイプラインである。従って、ユニット２６０からの現在の累積結果は、２クロックサイクルより前の以前の累積値である。
【００２５】
オペランドアライメントユニット２２０、２２２、２２４は、それぞれオペランドＸｎ，Ｘｎ−１，Ａｎ−２を受信する。ユニット２２０、２２２、２２４は、３つのオペランドの仮数の位置合わせする。この位置合わせは、例えば、必要であれば、３つの全てのオペランドが等しくなるまで、１つ以上のオペランドの１つ以上の仮数をシフトし、それらの指数を調整することにより行なわれる。ラッチ２３０、２３２、２３４は、それぞれユニット２２０、２２２、２２４の出力を受信し、ラッチする。３−オペランド加算器２４０は、ラッチ２３０、２３２、２３４からの３つの位置合わせされた仮数を合計し、結果の仮数及び指数を供給する。ラッチ２５０は加算器２４０の出力を受信し、ラッチする。ポストアライメントユニット２６０は、必要であれば、結果の仮数をシフトし、指数を調整し、正規化された仮数を取得する。ユニット２６０は、累積結果を供給する。
【００２６】
浮動小数点アキュームレータ２００は、２つのステージを有する。第１のステージは、乗算器２１２からラッチ２３４までを含むものとして考える。第２のステージは、３−オペランド加算器２４０、ラッチ２５０及びポストアライメントユニット２６０を含むものとして考える。一般的に、各ステージは、機能ロジック及び少なくとも１つのラッチ或いはレジスタを有し、これらは、ステージ内のどこにでも配置することができる。ラッチは、ステージの中間及び／又は最終結果を格納するために使用される。各ステージは、各クロック期間毎に更新される。
【００２７】
浮動小数点アキュームレータ２００は３つの信号経路を有する。Ｘｎの第１の信号経路、Ｘｎ−１の第２の信号経路、Ａｎ−２の第３の信号経路である。第１の信号経路は、２つのセグメントに分けられる。すなわち、（１）  ラッチ２１０からラッチ２３０までの第１のセグメントであり、オペランドアライメントユニット２２０の遅れによって決定される遅れを有する。（２）  ラッチ２３０からラッチ２５０までの第２のセグメントであり、３−オペランド加算器２４０の遅れによって決定される遅れを有する。第２の信号経路は、（１）  乗算器２１２からラッチ２３２までの第１のセグメントであり、乗算器２１２及びオペランドアライメントユニット２２２の遅れによって決定される遅れを有し、（２）  ラッチ２３２からラッチ２５０までの第２のセグメント、に分けられる。第３の信号経路は、（１）  ラッチ２５０からラッチ２３４までの第１のセグメントであり、ポストアライメントユニット２６０、乗算器２１４及びオペランドアライメントユニット２２４の遅れによって決定される遅れを有し、（２）ラッチ２３４からラッチ２５０までの第２のセグメント、に分けられる。各３つの信号経路は、従って、２つのセグメントに分けられる。第２のセグメントは、全ての３つの信号経路で同じある。
【００２８】
浮動小数点アキュームレータ２００は、従って、４つの異なるセグメントを有する。３つのオペランドの３つの第１のセグメントと、共通の第２のセグメントである。全ての４つのセグメント最も長い遅れは、どのくらい速くラッチをクロックできるかを決定する。この最も長い遅れは、浮動小数点アキュームレータ１００の第２の信号経路総遅れよりもかなり短い。したがって、浮動小数点アキュームレータ２００は、浮動小数点アキュームレータ１００よりもより高いクロックで動作可能である。
【００２９】
表１は、Ｘ１からＸＮまでのＮ個の浮動小数点値の累積のラッチ２１０、乗算器２１２、２１４及びポストアライメントユニット２６０の出力を示す。ラッチ２１０は、各クロックサイクル１からＮまでの現在の浮動小数点値を供給する。乗算器２１２は、クロックサイクル１についてゼロを供給し、各クロックサイクル２からＮについて以前の浮動小数点値を提供する。乗算器２１４は、各クロックサイクル１、２についてゼロを供給し、各クロックサイクル３からＮについて以前の累積値を供給する。クロックサイクル３及びその後について、ユニット２６０の出力は、同じクロックサイクルにおける乗算器２１４の出力に表われる。表１における”−”は"don't care"を示し、どのような値でも良い。
【表１】
2010501938.tif 000007
【００３０】
図２及び表１に示すように、浮動小数点アキュームレータ２００は、２クロックサイクル遅れを有するパイプラインである。最終結果ＡＮは、最後の浮動小数点値ＸＮを浮動小数点アキュームレータ２００を供給した２クロックサイクル後に取得される。
【００３１】
浮動小数点アキュームレータ２００は、２クロックサイクル早くから累積結果ＡＮ−２を使用する。これは、累積結果についての信号経路をより小さい遅れを有する２つのセグメントに分けられることを可能にする。この分割は、また、図１の２−オペランド加算器１４０よりも少し長い遅れを有する３−オペランド加算器２４０を使用する浮動小数点アキュームレータ２００という結果になる。
【００３２】
クロックスピードの可能性のある改良は、特定の例によって図示される。この例においては、浮動小数点アキュームレータ１００、２００内において、乗算器１１２、２１４は０．２ナノ秒（ｎｓ）の遅れを有し、オペランドアライメントユニット１２２、２２４は１．０ｎｓの遅れを有し、２−オペランド加算器１４０は２．０ｎｓの遅れを有し、３−オペランド加算器２４０は２．４ｎｓの遅れを有し、ポストアライメントユニット１６０、２６０は１．０ｎｓの遅れを有する。浮動小数点アキュームレータ１００については、ＡＮ−１の信号経路が４．２ｎｓの総遅れを有し、アキュームレータ１００は、２３８メガヘルツ（ＭＨｚ）までのクロックスピードで動作可能である。浮動小数点アキュームレータ２００については、第１のセグメントの遅れは、２．２ｎｓであり、第２のセグメントの遅れは、２．４ｎｓである。浮動小数点アキュームレータ２００は、次に、４１６ＭＨｚまでのクロックスピードで動作可能である。改良の程度は、他の設計では異なる。
【００３３】
図２は、累積結果についての第３の信号経路を分割する特定の実施の形態を示す。第３の信号経路は、さらに、他の方法で分割することができる。例えば、ラッチ２５０はポストアライメントユニット２６０の後に（前の代わりに）配置しても良い。第１のセグメント、次に、乗算器２１４及びオペランドアライメントユニット２２４を有し、第２のセグメントは３−オペランド加算器２４０及びポストアライメントユニット２６０を有する。一般的に、第３の信号経路は、２つのセグメントの遅れが出来る限り一致するように分割されるので、２つのセグメントの遅れの間の差は出来る限り小さくなる。
【００３４】
図３は、２ステージ浮動小数点アキュームレータ３００の実施の形態のブロック図である。浮動小数点アキュームレータ３００は、乗算器２１２、２１４以外の図２における浮動小数点アキュームレータ２００の全てのユニットを含む。ラッチ２３０の出力は、直接オペランドアライメントユニット２２２に供給される。ポストアライメントユニット２６０の出力は、直接オペランドアライメントユニット２２４に供給される。ラッチ２３０、２３２、２３４、２５０は、累積が開始された時に、これらラッチをゼロにリセットするリセット信号を受信する。この実施の形態は、乗算器２１２、２１４及び、これら乗算器の関連する遅れを取り除き、浮動小数点アキュームレータ３００をより高いクロック速度で動作させることを可能にする。
【００３５】
浮動小数点累積は、他の機能と関連して行なわれる。例えば、乗算及び累積（ＭＡＣ）動作は、通常種々の応用に使用される。２つのステージの乗算及び累積は、以下のように表わされる。
【数５】
2010501938.tif 000008
【００３６】
ここで、Ｙｉ＝Ｃｉ・Ｄｉ・Ｃｉ及びＤｉは、乗算され、累積される浮動小数点オペランドのｉ次の組である。
【００３７】
式（５）は、以下のように書き直される。
【数６】
2010501938.tif 000009
【００３８】
図４は、ＭＡＣユニット４００の実施の形態のブロック図である。ＭＡＣユニット４００は、２−オペランド乗算器２０８及び２ステージ浮動小数点アキュームレータ２００を含む。乗算器２０８は、乗算され、累積される２つのオペランドを受信し、この２つのオペランドを乗算し、その結果をラッチ２１０に供給する。浮動小数点アキュームレータ２００は、図２において述べたように、ラッチ２１０からの結果で累積を実行する。
【００３９】
ＭＡＣユニット４００は、グラフィック、デジタル信号処理などのような種々の用途に使用される。ＭＡＣユニット４００は、浮動小数点の２つのシーケンス、｛Ｃ１，Ｃ２，．．．，ＣＮ｝及び｛Ｄ１，Ｄ２，．．．，ＤＮ｝のドット積(dot product)を以下のように実行する。ＡＮ＝Ｃ１・Ｄ１＋Ｃ２・Ｄ２＋．．．＋ＣＮ・ＤＮ  ドット積は、グラフィックにおけるオブジェクトの衝突のためのフィルタリング、相関、物理計算などに広く使用される。ＭＡＣユニット４００は、また、浮動小数点値のシーケンスをスケーラでスケールし、スケールスケールされた値のシーケンスを累積するのに使用される。
【００４０】
累積は、他の機能と組み合わされて使用されることが可能である。例えば、乗算器２０８は、スケーラ乗算器、加算器、ディバイダー(divider)、要素機能、シフターなどと置換しても良い。
【００４１】
浮動小数点累積は、２以上のステージで実行されても良い。例えば、３ステージ浮動小数点累積は以下のように表わされる。
【数７】
2010501938.tif 000010
【００４２】
式（７）は、以下のように書き換えることができる。
【数８】
2010501938.tif 000011
【００４３】
式（７）及び（８）は、３クロックサイクル前からの累積結果ＡＮ−３を使用する。このことは、累積結果の信号経路が小さな遅れを有する３つのセグメントに分割されることを可能にする。例えば、追加のラッチが図２のポストアライメントユニット２６０の後に挿入されても良い。累積結果の第３の信号経路は、次に、３つのセグメントに分割され、浮動小数点アキュームレータは、より速いクロックスピードでさえも動作できる。４オペランド加算器は、式（８）における４つのオペランドを加算するのに使用される。
【００４４】
ここにおいて述べられるマルチステージ浮動小数点アキュームレータは、グラフィックプロセッサ（例えば、シェーダ）、グラフィック処理ユニット（ＧＰＵｓ）、デジタル信号プロセッサ（ＤＳＰｓ）、リスクコンピュータ（ＲＩＳＣｓ）、アドバンスＲＩＳＣマシーン（ＡＲＭｓ）などのような種々の種類のプロセッサにおいて使用することができる。
【００４５】
図５は、一般的に、Ｌ≧１の場合のＬ個のグラフィックアプリケーション／プログラムをサポートするグラフィックプロセッサ５００の実施の形態のブロック図を示す。Ｌ個のグラフィックアプリケーションは、ビデオゲーム、グラフィックなどのためのものであり、並行（コンカレント）に動作する。グラフィックプロセッサ５００は、シェーダコア５０２、テキスチャエンジン５０４及びキャッシュメモリシステム５０６を含む。シェーダコア５０２は、シェーディングのようなグラフィック処理を実行し、これは、ライティング、シャドウイングなどを含む非常に複雑なグラフィック処理である。テキスチャリングは、テキスチャテーブル／画像の色を有する画像のピクセルの色を変更することにより実現される。キャッシュメモリシステム５０６は１つ以上のキャッシュを含む。これは、データ、シェーダコア５０２及びテキスチャエンジン５０４への命令を格納することができる高速メモリである。
【００４６】
シェーダコア５０２内において、乗算器５１０はＬ個のグラフィックアプリケーションからスレッドを受信し、これらスレッドをスレッドスケジューラ５１２に供給する。スレッドスケジューラ５１２は、種々の機能を実行し、スレッドの実行をスケジュールし、管理する。命令キャッシュ５１４はスレッドの命令を格納する。これら命令は、各スレッドに対して実行される特定の動作を示し、キャッシュメモリシステム５０６及び／又はメインメモリからロードされる。ＡＬＵ５１６は演算動作、論理動作、フォーマット変換などを実行する。ＡＬＵ５１６は、１つ以上のマルチステージ浮動小数点アキュームレータ（Ａｃｃ）を実行する。一定バッファ５１８は、ＡＬＵ５１６によって使用される一定値を格納する。負荷制御ユニット５２０は、シェーダコア５０２内の種々のユニットのデータ及び命令のフローを制御する。出力バッファ５２２は、ＡＬＵ５１６、５４４からの中間及び最終結果を格納する。デマルチプレクサー（Ｄｅｍｕｘ）５２４は、出力バッファ５２２からの実行されたスレッドの最終結果を受信し、これら結果をグラフィックアプリケーションに供給する。
【００４７】
テキスチャエンジン５０４内において、テキスチャアドレス生成器５４０はテキスチャエンジン５０４によって、実行される各ピクセルの位置を計算する。テキスチャキャッシュ５４２は、テキスチャエンジン５０４のピクセルを格納する。ＡＬＵ５４４は、ピクセルの計算を実行し、出力バッファ５２２に格納され直される中間結果を提供する。ＡＬＵ５４４は、１つ以上のマルチステージ浮動小数点アキュームレータを実行する。
【００４８】
図６は、無線通信システムにおける無線装置６００の実施の形態のブロック図を示す。無線装置６００は、セルラー電話、端末、ハンドセット、パーソナルデジタルアシスタント（ＰＤＡ）或いは他の装置であっても良い。無線通信システムは、符号拡散多重アクセス（ＣＤＭＡ）システム、移動通信グローバルシステム（ＧＳＭ）システム或いは他のシステムであっても良い。
【００４９】
無線装置６００は、受信経路及び送信経路を介して双方向通信を提供することができる。受信経路上では、基地局によって送信された信号は、アンテナ６１２によって受信され、受信器（ＲＣＶＲ）６１４に供給される。受信器６１４は、受信した信号を調整し、デジタル化し、サンプルを更なる処理のためのデジタルセクション６２０へ供給する。送信経路では、トランスミッタ（ＴＭＴＲ）６１６は、デジタルセクション６２０からの送信されたデータを受信し、アンテナ６１２を介して基地局へ送信された変調された信号を生成する。
【００５０】
デジタルセクション６２０は、例えば、モデムプロセッサ６２２、ビデオプロセッサ６２４、コントローラ／プロセッサ６２６、ディスプレイプロセッサ６２８、ＡＲＭ／ＤＳＰ６３２、グラフィックプロセッサ６３４、内部メモリ６３６及び外部バスインターフェイス（ＥＢＩ）６３８のような種々の処理、インターフェイス及びメモリユニットを有する。モデムプロセッサ６２２は、データ伝送及び受信（例えば、符号化、変調、復調及び復号化）の処理を実行する。ビデオプロセッサ６２４は、カムコーダ、ビデオ再生及びビデオ会議のようなビデオコンテンツ（例えば、静止画像、動画像、及び動テキスト）を処理する。コントローラ／プロセッサ６２６は、デジタル部６２０内の種々の処理及びインターフェイスユニットの動作を管理する。ディスプレイプロセッサ６２８は、処理を行ない、ディスプレイユニット６３０上のビデオ、グラフィック及びテキストの表示を容易にする。
【００５１】
ＡＲＭ／ＤＳＰ６３２は、無線装置６００の種々のタイプの処理を実行する。グラフィックプロセッサ６３４は、グラフィック処理を実行する。プロセッサ６２２から６３４は、それぞれ１つ以上のマルチステージ浮動小数点アキュームレータを実現する。内部メモリ６３６は、デジタルセクション６２０内の種々のユニットのデータ及び／又は命令を格納する。ＥＢＩ６３８は、デジタルセクション（例えば、内部メモリ６３６）とメインメモリ６４０との間のデータの伝送を容易にする。
【００５２】
ここにおいて述べたマルチステージ浮動小数点アキュームレータは、種々のハードウェアユニットによって実現される。例えば、浮動小数点アキュームレータは、ＡＳＩＣｓ、ＤＳＰｓ、デジタル信号処理装置（ＤＳＰＤｓ）、プログラマブル論理装置（ＰＬＤｓ）、電界プログラマブルゲートアレイ（ＦＰＧＡｓ）、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子装置及び他の電子装置によって実現される。
【００５３】
開示された実施の形態の前述の記載により、当業者が、この開示を作成し、使用することを可能にするものである。これら実施の形態の種々の変形は、当業者にとって容易であることは明らかであり、ここにおいて定義された広義の原則は、本開示の精神或いは観点を離れることなく、他の実施の形態に適用される。したがって、開示はここにおける実施の形態に限定されるものではなく、ここにおいて開示された原則及び新規な特徴に合致する広義の観点に従うものである。
【図１】
2010501938.tif 000012
【図２】
2010501938.tif 000013
【図３】
2010501938.tif 000014
【図４】
2010501938.tif 000015
【図５】
2010501938.tif 000016
【図６】
2010501938.tif 000017
【国際調査報告】
2010501938.tif 000018
2010501938.tif 000019
2010501938.tif 000020