JPH1097517A - 並列乗算累算アレイ回路 - Google Patents
並列乗算累算アレイ回路Info
- Publication number
- JPH1097517A JPH1097517A JP9174661A JP17466197A JPH1097517A JP H1097517 A JPH1097517 A JP H1097517A JP 9174661 A JP9174661 A JP 9174661A JP 17466197 A JP17466197 A JP 17466197A JP H1097517 A JPH1097517 A JP H1097517A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- bit
- downshift
- output
- coupled
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】
【課題】 積の和の形で表される演算処理を高速に実行
する方法および装置を提供する。 【解決手段】 第1のxビットオペランドおよび第2の
xビットオペランドを受け取るようそれぞれ結合され、
2xビットの積を生成するn個の複数の乗算器と、n個
の複数の乗算器からn個の2xビット積を受け取るよう
に結合されるn個の入力を有し、1つの2xビット積出
力を与える第1のマルチプレクサーと、1つの2xビッ
ト積出力を受け取るように結合されるダウンシフト回路
であって、1つの2xビット積出力をyビット分ダウン
シフトするダウンシフト回路と、ダウンシフト回路から
ダウンシフトされた出力を受け取るように結合される入
力をそれぞれ有するm個の複数の累算器であって、それ
ぞれ別々の算出値を累算する累算器と、m個の複数の累
算器の1つから算出値を受け取るようにそれぞれが結合
されるm個の入力を有し、算出値の1つを供給する出力
を有する第2のマルチプレクサーと、を備えた、並列乗
算累算アレイ回路。
する方法および装置を提供する。 【解決手段】 第1のxビットオペランドおよび第2の
xビットオペランドを受け取るようそれぞれ結合され、
2xビットの積を生成するn個の複数の乗算器と、n個
の複数の乗算器からn個の2xビット積を受け取るよう
に結合されるn個の入力を有し、1つの2xビット積出
力を与える第1のマルチプレクサーと、1つの2xビッ
ト積出力を受け取るように結合されるダウンシフト回路
であって、1つの2xビット積出力をyビット分ダウン
シフトするダウンシフト回路と、ダウンシフト回路から
ダウンシフトされた出力を受け取るように結合される入
力をそれぞれ有するm個の複数の累算器であって、それ
ぞれ別々の算出値を累算する累算器と、m個の複数の累
算器の1つから算出値を受け取るようにそれぞれが結合
されるm個の入力を有し、算出値の1つを供給する出力
を有する第2のマルチプレクサーと、を備えた、並列乗
算累算アレイ回路。
Description
【0001】
【発明の属する技術分野】本発明は、演算論理回路に関
する。より具体的には、被制御の乗算、シフト、および
累算処理を行うメカニズムに関する。
する。より具体的には、被制御の乗算、シフト、および
累算処理を行うメカニズムに関する。
【0002】
【従来の技術】例示的な中央処理装置(CPU)は、演算
処理、特に乗算処理の実行に多大な処理時間を費やして
いる。乗算処理は、加算および減算処理と比較して、実
質的により多くのハードウェア資源および処理時間を要
する。多くのコンピュータ設計においては、CPUと一体
化される専用演算回路が用いられ、CPUはこれを用いて
演算命令を実行する。他のマイクロプロセッサ設計にお
いては、外部乗算器回路を用いて乗算命令の実行に要す
る処理時間を短くしている。一対の32ビット入力オペラ
ンドから積を求める場合、マイクロプロセッサは典型的
には32クロックサイクルを要する。ブース乗算器回路
は、上記期間を16クロックサイクルにまで低減して、2
つの32ビットオペランドから1つの積を求めることがで
きる。
処理、特に乗算処理の実行に多大な処理時間を費やして
いる。乗算処理は、加算および減算処理と比較して、実
質的により多くのハードウェア資源および処理時間を要
する。多くのコンピュータ設計においては、CPUと一体
化される専用演算回路が用いられ、CPUはこれを用いて
演算命令を実行する。他のマイクロプロセッサ設計にお
いては、外部乗算器回路を用いて乗算命令の実行に要す
る処理時間を短くしている。一対の32ビット入力オペラ
ンドから積を求める場合、マイクロプロセッサは典型的
には32クロックサイクルを要する。ブース乗算器回路
は、上記期間を16クロックサイクルにまで低減して、2
つの32ビットオペランドから1つの積を求めることがで
きる。
【0003】グラフィックス処理および他の処理アプリ
ケーションにおいては、下記の関係式(1)の形式の演算
処理を反復的に実行する必要がしばしば生じる。
ケーションにおいては、下記の関係式(1)の形式の演算
処理を反復的に実行する必要がしばしば生じる。
【0004】 A1B1+A2B2+A3B3+A4B4+A5B5+AmBm=X1 (1) 関係式(1)は、積の和であり、オペランドAmおよびBm
はzビットの数である。関係式(1)の形式の演算処理を
実行するには、反復的な乗算処理を行う必要がある。マ
イクロプロセッサは、2つのzビット数の乗算を行うの
にzクロックサイクルを要する。従って、上記の関係式
をマイクロプロセッサが解くには、典型的に(m×z)
クロックサイクルを要する。補助ブース乗算器が2つの
zビットの数の乗算を行うのに要するクロックサイクル
は(z/2)である。しかし、この構成でも、上記関係
式を解くのに、少なくともm×(z/2)クロックサイ
クルを要する。反復的な乗算処理をこのような速度で行
う場合、過大な時間およびリソースの割当てが必要とな
り得る。関係式(1)の形式の演算処理を実行するには、
各積値A1B1、A2B2、...を累算しなければならな
いので、さらなる処理時間およびリソースが必要とな
る。従って、計算を高速化するとともに、その機能に関
わるCPUの負荷を軽減するために、積の和の形式の演算
処理を高速に実行する方法および装置が求められてい
る。本発明は、そのようなメカニズムを提供する。
はzビットの数である。関係式(1)の形式の演算処理を
実行するには、反復的な乗算処理を行う必要がある。マ
イクロプロセッサは、2つのzビット数の乗算を行うの
にzクロックサイクルを要する。従って、上記の関係式
をマイクロプロセッサが解くには、典型的に(m×z)
クロックサイクルを要する。補助ブース乗算器が2つの
zビットの数の乗算を行うのに要するクロックサイクル
は(z/2)である。しかし、この構成でも、上記関係
式を解くのに、少なくともm×(z/2)クロックサイ
クルを要する。反復的な乗算処理をこのような速度で行
う場合、過大な時間およびリソースの割当てが必要とな
り得る。関係式(1)の形式の演算処理を実行するには、
各積値A1B1、A2B2、...を累算しなければならな
いので、さらなる処理時間およびリソースが必要とな
る。従って、計算を高速化するとともに、その機能に関
わるCPUの負荷を軽減するために、積の和の形式の演算
処理を高速に実行する方法および装置が求められてい
る。本発明は、そのようなメカニズムを提供する。
【0005】
【発明が解決しようとする課題】積の和を計算するため
には、乗算によって積を求めたあと累算処理によって各
積を累算することが必要である。このためには、多大な
処理時間およびリソースが必要となる問題があった。
には、乗算によって積を求めたあと累算処理によって各
積を累算することが必要である。このためには、多大な
処理時間およびリソースが必要となる問題があった。
【0006】本発明はこの問題を解決するためになされ
たものであり、その目的とするところは、積の和の形で
表される演算処理を高速に実行する方法および装置を提
供することである。
たものであり、その目的とするところは、積の和の形で
表される演算処理を高速に実行する方法および装置を提
供することである。
【0007】
【課題を解決するための手段】本発明による並列乗算累
算アレイ回路は、第1のxビットオペランドおよび第2
のxビットオペランドを受け取るようそれぞれ結合さ
れ、2xビットの積を生成するn個の複数の乗算器と、
n個の複数の乗算器からn個の2xビット積を受け取る
ように結合されるn個の入力を有し、1つの2xビット
積出力を与える第1のマルチプレクサーと、1つの2x
ビット積出力を受け取るように結合されるダウンシフト
回路であって、1つの2xビット積出力をyビット分ダ
ウンシフトするダウンシフト回路と、ダウンシフト回路
からダウンシフトされた出力を受け取るように結合され
る入力をそれぞれ有するm個の複数の累算器であって、
それぞれ別々の算出値を累算する累算器と、m個の複数
の累算器の1つから算出値を受け取るようにそれぞれが
結合されるm個の入力を有し、算出値の1つを供給する
出力を有する第2のマルチプレクサーと、を備えた、並
列乗算累算アレイ回路であり、そのことにより上記目的
が達成される。
算アレイ回路は、第1のxビットオペランドおよび第2
のxビットオペランドを受け取るようそれぞれ結合さ
れ、2xビットの積を生成するn個の複数の乗算器と、
n個の複数の乗算器からn個の2xビット積を受け取る
ように結合されるn個の入力を有し、1つの2xビット
積出力を与える第1のマルチプレクサーと、1つの2x
ビット積出力を受け取るように結合されるダウンシフト
回路であって、1つの2xビット積出力をyビット分ダ
ウンシフトするダウンシフト回路と、ダウンシフト回路
からダウンシフトされた出力を受け取るように結合され
る入力をそれぞれ有するm個の複数の累算器であって、
それぞれ別々の算出値を累算する累算器と、m個の複数
の累算器の1つから算出値を受け取るようにそれぞれが
結合されるm個の入力を有し、算出値の1つを供給する
出力を有する第2のマルチプレクサーと、を備えた、並
列乗算累算アレイ回路であり、そのことにより上記目的
が達成される。
【0008】ある実施形態では、第1のマルチプレクサ
ーの選択バスと、ダウンシフト回路のダウンシフト調節
バスと、m個の複数の累算器のイネーブルバスと、を制
御する内部制御回路をさらに備える。
ーの選択バスと、ダウンシフト回路のダウンシフト調節
バスと、m個の複数の累算器のイネーブルバスと、を制
御する内部制御回路をさらに備える。
【0009】ある実施形態では、累算器は、加算器とレ
ジスタとをそれぞれ含んでいる。
ジスタとをそれぞれ含んでいる。
【0010】ある実施形態では、ダウンシフト回路とm
個の複数の累算器との間に遅延レジスタが結合される。
個の複数の累算器との間に遅延レジスタが結合される。
【0011】ある実施形態では、n個の複数の乗算器
は、それぞれブース乗算器である。
は、それぞれブース乗算器である。
【0012】ある実施形態では、ダウンシフト回路が丸
めを行うように、各ブース乗算器のPレジスタがある値
(11ビット)に初期設定される。
めを行うように、各ブース乗算器のPレジスタがある値
(11ビット)に初期設定される。
【0013】ある実施形態では、n=6、m=4、x=
32、およびy=12である。
32、およびy=12である。
【0014】ある実施形態では、n=3、m=3、x=
32であり、yは、回路の各クロックサイクル毎にプログ
ラム可能である。
32であり、yは、回路の各クロックサイクル毎にプログ
ラム可能である。
【0015】ある実施形態では、n個の複数の乗算器の
それぞれは、第1のxビット値および第2のxビット値
に関連付けられたダウンシフト値および累算イネーブル
情報のデータを格納するメモリを有する。
それぞれは、第1のxビット値および第2のxビット値
に関連付けられたダウンシフト値および累算イネーブル
情報のデータを格納するメモリを有する。
【0016】本発明による別の並列乗算累算アレイ回路
は、第1のxビットオペランドおよび第2のxビットオ
ペランドを受け取るようそれぞれ結合され、2xビット
の積を生成するn個の複数の乗算器と、n個の複数の乗
算器からn個の2xビットの積を受け取るよう結合され
るn個の入力を有し、1つの2xビットの出力を与える
第1のマルチプレクサーと、第1のマルチプレクサーの
1つの2xビットの出力を受け取るように結合され、1
つの2xビットの出力をyビット分ダウンシフトするダ
ウンシフト回路と、ダウンシフト回路からダウンシフト
された出力を受け取るよう結合される入力をそれぞれ有
するm個の複数の累算器であって、それぞれ別々の算出
値を累算する累算器と、m個の複数の累算器の1つから
算出値を受け取るようにそれぞれ接続されるm個の入力
を有し、算出値の1つを供給する出力を有する第2のマ
ルチプレクサーと、を備えた、ホストコンピュータシス
テムのグラフィックスカード内の並列乗算累算アレイ回
路であり、そのことにより上記目的が達成される。
は、第1のxビットオペランドおよび第2のxビットオ
ペランドを受け取るようそれぞれ結合され、2xビット
の積を生成するn個の複数の乗算器と、n個の複数の乗
算器からn個の2xビットの積を受け取るよう結合され
るn個の入力を有し、1つの2xビットの出力を与える
第1のマルチプレクサーと、第1のマルチプレクサーの
1つの2xビットの出力を受け取るように結合され、1
つの2xビットの出力をyビット分ダウンシフトするダ
ウンシフト回路と、ダウンシフト回路からダウンシフト
された出力を受け取るよう結合される入力をそれぞれ有
するm個の複数の累算器であって、それぞれ別々の算出
値を累算する累算器と、m個の複数の累算器の1つから
算出値を受け取るようにそれぞれ接続されるm個の入力
を有し、算出値の1つを供給する出力を有する第2のマ
ルチプレクサーと、を備えた、ホストコンピュータシス
テムのグラフィックスカード内の並列乗算累算アレイ回
路であり、そのことにより上記目的が達成される。
【0017】ある実施形態では、第1のマルチプレクサ
ーの選択バスと、ダウンシフト回路のダウンシフト調節
バスと、m個の複数の累算器のイネーブルバスと、を制
御する内部制御回路をさらに備えている。
ーの選択バスと、ダウンシフト回路のダウンシフト調節
バスと、m個の複数の累算器のイネーブルバスと、を制
御する内部制御回路をさらに備えている。
【0018】ある実施形態では、累算器は、加算器とレ
ジスタとをそれぞれ含んでいる。
ジスタとをそれぞれ含んでいる。
【0019】ある実施形態では、ダウンシフト回路とm
個の複数の累算器との間に遅延レジスタが結合される。
個の複数の累算器との間に遅延レジスタが結合される。
【0020】ある実施形態では、n個の複数の乗算器
は、それぞれブース乗算器である。
は、それぞれブース乗算器である。
【0021】ある実施形態では、ダウンシフト回路が丸
めを行うように、各ブース乗算器のPレジスタがyビッ
トの値に初期設定され、ここにyは回路の各クロックサ
イクル毎にプログラム可能である。
めを行うように、各ブース乗算器のPレジスタがyビッ
トの値に初期設定され、ここにyは回路の各クロックサ
イクル毎にプログラム可能である。
【0022】ある実施形態では、n=6、m=4、x=
32、およびy=12である。
32、およびy=12である。
【0023】ある実施形態では、n=3、m=3、x=
32であり、yは、回路の各クロックサイクル毎にプログ
ラム可能である。
32であり、yは、回路の各クロックサイクル毎にプログ
ラム可能である。
【0024】ある実施形態では、n個の複数の乗算器の
それぞれは、ダウンシフト値および累算イネーブル情報
のデータを格納するメモリを有する。
それぞれは、ダウンシフト値および累算イネーブル情報
のデータを格納するメモリを有する。
【0025】以下に作用を説明する。被制御の乗算、シ
フト、および累算処理を行う並列乗算累算アレイ(PMA
A)回路が開示される。一対の入力オペランド信号およ
び対応する演算制御信号が、外部コントローラが制御す
るソースによってPMAA回路に同期して供給される。演算
制御信号によって、対応する入力オペランド信号対に対
してPMAA回路が行う演算処理が制御される。PMAA回路に
供給される離散入力オペランド値の各対について、1組
の離散演算制御値がPMAA回路に供給される。異なるクロ
ックサイクルの間に異なる入力オペランド値対および演
算制御値が、複数の乗算器にパイプライン方式で供給さ
れる。PMAA回路は、乗算ステージと、シフトステージ
と、累算ステージとを含む。演算制御値の各組は、乗算
後のシフト処理を制御するためのダウンシフト値(DV)
と、シフト後の累算処理を制御するための累算数(AN)
とを含む。
フト、および累算処理を行う並列乗算累算アレイ(PMA
A)回路が開示される。一対の入力オペランド信号およ
び対応する演算制御信号が、外部コントローラが制御す
るソースによってPMAA回路に同期して供給される。演算
制御信号によって、対応する入力オペランド信号対に対
してPMAA回路が行う演算処理が制御される。PMAA回路に
供給される離散入力オペランド値の各対について、1組
の離散演算制御値がPMAA回路に供給される。異なるクロ
ックサイクルの間に異なる入力オペランド値対および演
算制御値が、複数の乗算器にパイプライン方式で供給さ
れる。PMAA回路は、乗算ステージと、シフトステージ
と、累算ステージとを含む。演算制御値の各組は、乗算
後のシフト処理を制御するためのダウンシフト値(DV)
と、シフト後の累算処理を制御するための累算数(AN)
とを含む。
【0026】PMAA回路の乗算ステージは、n個の複数の
ブース乗算器(BM)と、n個の複数のBMの1つから出力
積信号を受け取るようにそれぞれ結合されるn個の入力
を有する第1のマルチプレクサー(第1のMUX)とを含
む。n個の複数のBMのそれぞれは、各BMに関連付けられ
たブース乗算器メモリ制御(BMMC)装置を有する。n個
の複数のBMの1つであるBMiに供給される離散入力オペ
ランド値の各対について、対応する演算制御値の組が、
BMiに関連付けられたBMMC装置に供給される。演算制御
値DVおよびANは、対応する入力オペランド値がBMiにお
いて乗算されている間、BMiに関連付けられたBMMC装置
に格納される。積が算出されると、BMiに対応するBMMC
装置から演算制御信号がリリースされる。BMのそれぞれ
は、Aレジスタと、Bレジスタと、Pレジスタとを有す
る。本発明においては、Pレジスタのそれぞれが各乗算
処理前に初期設定される。本発明のある実施形態におい
ては、各乗算処理前に、各Pレジスタを211に初期設定
しておく。各BMのPレジスタを初めに初期設定しておく
ことによって、乗算後のダウンシフト処理において丸め
処理(rounding operetion)を行うことができる。
ブース乗算器(BM)と、n個の複数のBMの1つから出力
積信号を受け取るようにそれぞれ結合されるn個の入力
を有する第1のマルチプレクサー(第1のMUX)とを含
む。n個の複数のBMのそれぞれは、各BMに関連付けられ
たブース乗算器メモリ制御(BMMC)装置を有する。n個
の複数のBMの1つであるBMiに供給される離散入力オペ
ランド値の各対について、対応する演算制御値の組が、
BMiに関連付けられたBMMC装置に供給される。演算制御
値DVおよびANは、対応する入力オペランド値がBMiにお
いて乗算されている間、BMiに関連付けられたBMMC装置
に格納される。積が算出されると、BMiに対応するBMMC
装置から演算制御信号がリリースされる。BMのそれぞれ
は、Aレジスタと、Bレジスタと、Pレジスタとを有す
る。本発明においては、Pレジスタのそれぞれが各乗算
処理前に初期設定される。本発明のある実施形態におい
ては、各乗算処理前に、各Pレジスタを211に初期設定
しておく。各BMのPレジスタを初めに初期設定しておく
ことによって、乗算後のダウンシフト処理において丸め
処理(rounding operetion)を行うことができる。
【0027】内部制御回路は、各BMMC装置に結合され、
n個の複数のBMのそれぞれの状態(例えば、ビジー、完
了、あるいは空き)をモニタする。もし全てのBMが「ビ
ジー」であるときに新たな乗算要求が届いた場合、内部
制御回路から外部コントローラにストール信号(stall s
ignal)が送られる。BMのうちの1つであるBMiの状態が
「空き」である場合、一対の離散入力オペランド値(A
x、Bx)がBMiに供給されるとともに、BMiに関連付けら
れたBMMC装置に、対応する演算制御値が供給される。BM
iの状態が「完了」であるときは、内部制御回路はBMiの
出力を選択し、第1のMUX選択バスを制御することによ
って第1のMUXのi番目の入力を選択し、第1のMUXを介
してこれを供給する。次に、内部制御回路は、BMiに関
連付けられたBMMC装置からBMiの演算制御値を読み出
し、これに従って、BMiの出力積に対して行われる乗算
後の演算処理を制御する。
n個の複数のBMのそれぞれの状態(例えば、ビジー、完
了、あるいは空き)をモニタする。もし全てのBMが「ビ
ジー」であるときに新たな乗算要求が届いた場合、内部
制御回路から外部コントローラにストール信号(stall s
ignal)が送られる。BMのうちの1つであるBMiの状態が
「空き」である場合、一対の離散入力オペランド値(A
x、Bx)がBMiに供給されるとともに、BMiに関連付けら
れたBMMC装置に、対応する演算制御値が供給される。BM
iの状態が「完了」であるときは、内部制御回路はBMiの
出力を選択し、第1のMUX選択バスを制御することによ
って第1のMUXのi番目の入力を選択し、第1のMUXを介
してこれを供給する。次に、内部制御回路は、BMiに関
連付けられたBMMC装置からBMiの演算制御値を読み出
し、これに従って、BMiの出力積に対して行われる乗算
後の演算処理を制御する。
【0028】PMAA回路の乗算後のシフトステージはダウ
ンシフト回路を含む。ダウンシフト回路は、n個の複数
のBMの1つからの出力積値である第1のMUXの出力を受
け取るように結合される。ダウンシフト回路は、内部制
御回路によってダウンシフト回路に与えられた対応する
DVに従って、BM出力積データのシフトおよびロテート
(rotate)を行う。任意に省略可能な遅延ステージを用
いて、1クロックサイクルの間、ダウンシフト回路の出
力を格納することも可能である。
ンシフト回路を含む。ダウンシフト回路は、n個の複数
のBMの1つからの出力積値である第1のMUXの出力を受
け取るように結合される。ダウンシフト回路は、内部制
御回路によってダウンシフト回路に与えられた対応する
DVに従って、BM出力積データのシフトおよびロテート
(rotate)を行う。任意に省略可能な遅延ステージを用
いて、1クロックサイクルの間、ダウンシフト回路の出
力を格納することも可能である。
【0029】PMAA回路の累算ステージはm個の累算器を
含む。m個の累算器は、それぞれ、シフト回路あるいは
任意に省略可能な遅延ステージから出力信号を受け取る
ように結合される入力を有する。内部制御回路は、累算
数ANを用いて、複数のm個の累算器のどれをイネーブル
するかを、累算選択バスを介して選択する。m個の累算
器は、それぞれ1つの加算器と1つのレジスタとによっ
て実現され得る。m個の累算器はそれぞれ1つの出力を
有し、この出力は、第2のMUXへのm個の入力の1つに
累算値を与えるように結合される。外部制御回路は、複
数のm個の累算器の1つであるACCjの出力を選択し、こ
れを、第2のMUXのj番目の入力が選択されるように第
2のMUX選択バスを制御することによって第2のMUXを介
して出力する。
含む。m個の累算器は、それぞれ、シフト回路あるいは
任意に省略可能な遅延ステージから出力信号を受け取る
ように結合される入力を有する。内部制御回路は、累算
数ANを用いて、複数のm個の累算器のどれをイネーブル
するかを、累算選択バスを介して選択する。m個の累算
器は、それぞれ1つの加算器と1つのレジスタとによっ
て実現され得る。m個の累算器はそれぞれ1つの出力を
有し、この出力は、第2のMUXへのm個の入力の1つに
累算値を与えるように結合される。外部制御回路は、複
数のm個の累算器の1つであるACCjの出力を選択し、こ
れを、第2のMUXのj番目の入力が選択されるように第
2のMUX選択バスを制御することによって第2のMUXを介
して出力する。
【0030】
【発明の実施の形態】以下に示す本発明の詳細な説明に
おいて、並列乗算累算アレイ回路を説明する。以下の説
明においては、本発明の完全な理解のために特定の詳細
部が多数示される。但し、本発明がこれらの特定の詳細
部なしでも実施され得ることが当業者には理解される。
また、本発明の局面が不必要に不明瞭にならないように
するため、周知の方法、手続き、構成部材および回路に
ついては詳細には記載していない。
おいて、並列乗算累算アレイ回路を説明する。以下の説
明においては、本発明の完全な理解のために特定の詳細
部が多数示される。但し、本発明がこれらの特定の詳細
部なしでも実施され得ることが当業者には理解される。
また、本発明の局面が不必要に不明瞭にならないように
するため、周知の方法、手続き、構成部材および回路に
ついては詳細には記載していない。
【0031】添付の図面の各図に本発明を例示するが、
本発明は、これらに限定されるものではない。各図にお
いて、同じ構成要素には同じ参照番号が付けられてい
る。
本発明は、これらに限定されるものではない。各図にお
いて、同じ構成要素には同じ参照番号が付けられてい
る。
【0032】図1に、本発明による並列乗算累算アレイ
(PMAA)回路200を用いた、例示的なホストコンピュー
タシステム112を示す。この例示的なホストコンピュー
タシステム112は、情報を通信するバス100と、バス100
に結合され、情報および命令を処理する中央処理装置10
1と、バス100に結合され、中央処理装置101のための情
報および命令を格納するランダムアクセスメモリ102
と、バス100に結合され、プロセッサ101のためのスタテ
ィックな情報および命令を格納するリードオンリーメモ
リ103と、バス100に結合される磁気ディスクあるいは光
ディスクおよびディスクドライブ等の情報および命令を
格納するためのデータ記憶装置104とを備える。プロセ
ッサ101は、演算処理および論理演算を行う演算論理装
置(ALU)と、タイミング信号および制御信号を提供す
る制御装置とを有し得る。ホストシステム112は、バス1
00を介して、グラフィックスハードウェアカード109に
データおよび制御信号を与える。グラフィックスハード
ウェアカード109(「グラフィックスアクセラレータカ
ード」)は、一連の表示コマンドを実行するグラフィッ
クスプロセッサを有する。グラフィックスハードウェア
カード109は、ALUおよび制御装置を含むプロセッサを有
し得る。グラフィックスハードウェアカード109は、
(ホストシステム112の一部であり得る)ディスプレイ
装置105にデータおよび制御信号を供給して、ディスプ
レイ装置105上に画像を表示する。
(PMAA)回路200を用いた、例示的なホストコンピュー
タシステム112を示す。この例示的なホストコンピュー
タシステム112は、情報を通信するバス100と、バス100
に結合され、情報および命令を処理する中央処理装置10
1と、バス100に結合され、中央処理装置101のための情
報および命令を格納するランダムアクセスメモリ102
と、バス100に結合され、プロセッサ101のためのスタテ
ィックな情報および命令を格納するリードオンリーメモ
リ103と、バス100に結合される磁気ディスクあるいは光
ディスクおよびディスクドライブ等の情報および命令を
格納するためのデータ記憶装置104とを備える。プロセ
ッサ101は、演算処理および論理演算を行う演算論理装
置(ALU)と、タイミング信号および制御信号を提供す
る制御装置とを有し得る。ホストシステム112は、バス1
00を介して、グラフィックスハードウェアカード109に
データおよび制御信号を与える。グラフィックスハード
ウェアカード109(「グラフィックスアクセラレータカ
ード」)は、一連の表示コマンドを実行するグラフィッ
クスプロセッサを有する。グラフィックスハードウェア
カード109は、ALUおよび制御装置を含むプロセッサを有
し得る。グラフィックスハードウェアカード109は、
(ホストシステム112の一部であり得る)ディスプレイ
装置105にデータおよび制御信号を供給して、ディスプ
レイ装置105上に画像を表示する。
【0033】本発明の好適な実施形態においては、PMAA
回路200はグラフィックスハードウェアカード109内に一
体化される。PMAA回路200が乗算累算処理を行うことに
よって、グラフィックスハードウェア装置109内のプロ
セッサあるいはホストプロセッサ101にかかる処理負荷
が軽減される。PMAA回路200は、回路200の外部に設けら
れるコントローラによって制御される。本明細書中にお
いて「外部コントローラ」と呼ばれるこのコントローラ
は、CPU 101、または例示的なホストプロセッサ101内若
しくは例示的なグラフィックスハードウェアカード109
内にある他のコントローラ(例えば、ALU装置)、ある
いはその他の場所にあるコントローラを含み得る。グラ
フィックスハードウェアカード109に結合されるディス
プレイ装置105は、コンピュータユーザに対して情報の
表示を行う。ディスプレイ装置105は、ユーザが認識し
得るグラフィック画像および英数字の生成に適した液晶
デバイス、陰極線管あるいは他のディスプレイ装置であ
り得る。
回路200はグラフィックスハードウェアカード109内に一
体化される。PMAA回路200が乗算累算処理を行うことに
よって、グラフィックスハードウェア装置109内のプロ
セッサあるいはホストプロセッサ101にかかる処理負荷
が軽減される。PMAA回路200は、回路200の外部に設けら
れるコントローラによって制御される。本明細書中にお
いて「外部コントローラ」と呼ばれるこのコントローラ
は、CPU 101、または例示的なホストプロセッサ101内若
しくは例示的なグラフィックスハードウェアカード109
内にある他のコントローラ(例えば、ALU装置)、ある
いはその他の場所にあるコントローラを含み得る。グラ
フィックスハードウェアカード109に結合されるディス
プレイ装置105は、コンピュータユーザに対して情報の
表示を行う。ディスプレイ装置105は、ユーザが認識し
得るグラフィック画像および英数字の生成に適した液晶
デバイス、陰極線管あるいは他のディスプレイ装置であ
り得る。
【0034】図2は、乗算、シフト、および累算処理を
含む被制御の演算処理を行う、本発明による例示的なPM
AA回路200の入出力ブロック図である。図2を参照し
て、命令デコード信号(instruction decode signal)
が、外部コントローラから、演算制御/命令デコード信
号バス280を介して、PMAA回路200に供給される。命令デ
コード信号は、PMAA回路200の処理と同期している。PMA
A回路200がビジー(一時的に演算処理に使用できない状
態)である場合、ストール信号がストール出力ライン26
0を介して外部コントローラに送られる。システムクロ
ック信号は、システムクロック入力ライン250を介して
ホストシステム112(図1)からPMAA回路200に供給され
る。
含む被制御の演算処理を行う、本発明による例示的なPM
AA回路200の入出力ブロック図である。図2を参照し
て、命令デコード信号(instruction decode signal)
が、外部コントローラから、演算制御/命令デコード信
号バス280を介して、PMAA回路200に供給される。命令デ
コード信号は、PMAA回路200の処理と同期している。PMA
A回路200がビジー(一時的に演算処理に使用できない状
態)である場合、ストール信号がストール出力ライン26
0を介して外部コントローラに送られる。システムクロ
ック信号は、システムクロック入力ライン250を介して
ホストシステム112(図1)からPMAA回路200に供給され
る。
【0035】例示的なPMAA回路200ヘ/からのデータ信
号の入出力も、外部コントローラによって制御される。
例示的なPMAA回路200は、第1および第2の入力オペラ
ンドバス210および211を有する。第1および第2の入力
オペランドバス210および211は、外部コントローラによ
って制御されるメモリあるいは他の記憶ソースから、そ
れぞれ、第1(「A」)および第2(「B」)の入力オ
ペランド信号を受け取る。例示的なPMAA回路200は、ア
レイ出力信号バス230も有する。本発明の好適な実施形
態においては、入力オペランド信号およびアレイ出力信
号のフォーマットは、固定小数点フォーマット(FPF)
である。固定小数点フォーマットは、2進小数点の左側
に固定数の整数ビットを有し、2進小数点の右側に固定
数の小数ビットを有する。固定小数点2進数の表記方法
は(x.y)である。ここで、xはその2進数における整
数ビットの数を表し、yはその2進数における小数ビッ
トの数を表す。本発明の好適な実施形態において、オペ
ランド入力バス210および211は、それぞれ、外部コント
ローラによって制御される外部ソースから(20.12)のF
PFフォーマットの32ビット入力オペランド信号を受け取
る。例示的なPMAA回路200は、(20.12)FPFの32ビット
アレイ出力信号を提供する。本発明において、アレイ出
力信号バス230ならびに入力オペランドバス210および21
1の固定小数点フォーマットの大きさは可変であり得
る。
号の入出力も、外部コントローラによって制御される。
例示的なPMAA回路200は、第1および第2の入力オペラ
ンドバス210および211を有する。第1および第2の入力
オペランドバス210および211は、外部コントローラによ
って制御されるメモリあるいは他の記憶ソースから、そ
れぞれ、第1(「A」)および第2(「B」)の入力オ
ペランド信号を受け取る。例示的なPMAA回路200は、ア
レイ出力信号バス230も有する。本発明の好適な実施形
態においては、入力オペランド信号およびアレイ出力信
号のフォーマットは、固定小数点フォーマット(FPF)
である。固定小数点フォーマットは、2進小数点の左側
に固定数の整数ビットを有し、2進小数点の右側に固定
数の小数ビットを有する。固定小数点2進数の表記方法
は(x.y)である。ここで、xはその2進数における整
数ビットの数を表し、yはその2進数における小数ビッ
トの数を表す。本発明の好適な実施形態において、オペ
ランド入力バス210および211は、それぞれ、外部コント
ローラによって制御される外部ソースから(20.12)のF
PFフォーマットの32ビット入力オペランド信号を受け取
る。例示的なPMAA回路200は、(20.12)FPFの32ビット
アレイ出力信号を提供する。本発明において、アレイ出
力信号バス230ならびに入力オペランドバス210および21
1の固定小数点フォーマットの大きさは可変であり得
る。
【0036】演算制御信号も、演算制御/命令デコード
信号バス280を介し、第1および第2の入力オペランド
信号と同期して、外部コントローラによって例示的なPM
AA回路200に提供される。演算制御信号は、乗算後のシ
フト処理を制御する調節制御信号(DV)と、複数の累算
器の中から累算器を選択してシフト後の累算処理を制御
する累算制御信号(AN)とを含む。第1および第2の入
力オペランド信号の各対について、回路200は対応するD
VおよびAN信号を受け取る。
信号バス280を介し、第1および第2の入力オペランド
信号と同期して、外部コントローラによって例示的なPM
AA回路200に提供される。演算制御信号は、乗算後のシ
フト処理を制御する調節制御信号(DV)と、複数の累算
器の中から累算器を選択してシフト後の累算処理を制御
する累算制御信号(AN)とを含む。第1および第2の入
力オペランド信号の各対について、回路200は対応するD
VおよびAN信号を受け取る。
【0037】本発明の好適な実施形態においては、例示
的なPMAA回路200は、RISCコアグラフィックストライア
ングルセットアップエンジン内で用いられ、特にテクス
チャセットアップ技術において必要とされる演算処理を
実行する。グラフィックステクスチャセットアップ処理
技術においては、下記の関係式(1)〜(3)の形式の演算処
理の実行を要する乗算累算処理(例えば、離散コサイン
逆変換関数)が反復的に実行される。
的なPMAA回路200は、RISCコアグラフィックストライア
ングルセットアップエンジン内で用いられ、特にテクス
チャセットアップ技術において必要とされる演算処理を
実行する。グラフィックステクスチャセットアップ処理
技術においては、下記の関係式(1)〜(3)の形式の演算処
理の実行を要する乗算累算処理(例えば、離散コサイン
逆変換関数)が反復的に実行される。
【0038】 A1B1+A2B2+A3B3+A4B4+A5B5+AmBm=X1 (1) C1D1+C2D2+C3D3+C4D4+C5D5+CmDm=X2 (2) G1H1+G2H2+G3H3+G4H4+G5H5+GmHm=Xn (3) ここで、加算される積(例えば、A1B1、A2B2など)
は回路200の乗算ステージで求められ、累算結果(例え
ば、X1、X2など)は回路200の累算器ステージで保
持される。
は回路200の乗算ステージで求められ、累算結果(例え
ば、X1、X2など)は回路200の累算器ステージで保
持される。
【0039】図3Aに、本発明による例示的なPMAA回路20
0の内部回路のブロック図を示す。例示的なPMAA回路200
は、上記関係式(1)〜(3)の形式の乗算処理および累算処
理を実行するために用いられる。ある実施形態におい
て、入力オペランドA、B、C、...は、2の補数形
式の32ビット(20.12)FPF数である。例示的なPMAA回路
200は、並列乗算ステージと、乗算後のシフトステージ
と、被制御累算ステージとを含む。
0の内部回路のブロック図を示す。例示的なPMAA回路200
は、上記関係式(1)〜(3)の形式の乗算処理および累算処
理を実行するために用いられる。ある実施形態におい
て、入力オペランドA、B、C、...は、2の補数形
式の32ビット(20.12)FPF数である。例示的なPMAA回路
200は、並列乗算ステージと、乗算後のシフトステージ
と、被制御累算ステージとを含む。
【0040】並列乗算ステージ 本発明の並列乗算ステージは、複数のn個のブース乗算
器BM1、BM2、...、BMnを含む。図3Aを参照して、あ
る実施形態における例示的なPMAA回路200は、n=6個
のブース乗算器(BM)、BM0300、BM1301、BM2302、BM33
03、BM4304およびBM5305を含む。但し、nは任意の数で
あり得る。本発明の代替的な実施形態においては、n=
3である。6つのBM 300〜305のそれぞれの第1の入力
(「A」)は、第1の入力オペランドバス210に接続さ
れる。各BMの第2の入力(「B」)は、第2の入力オペ
ランドバス211に接続される。6つのBM 300〜305のそれ
ぞれは、第1のマルチプレクサー320へのn個の入力の
1つにBM出力積信号を与えるように結合された出力を有
する。本発明によるn個の複数のBMのそれぞれは、各BM
に関連付けられたブース乗算器メモリ制御(BMMC)装置
を有する。例示的なPMAA回路200は、関連付けられたBM
300〜305内にそれぞれ一体化されたBMMC装置310〜315を
含む。あるいは、BMMC装置310〜315は、対応するBMとは
別に設けられてもよい。
器BM1、BM2、...、BMnを含む。図3Aを参照して、あ
る実施形態における例示的なPMAA回路200は、n=6個
のブース乗算器(BM)、BM0300、BM1301、BM2302、BM33
03、BM4304およびBM5305を含む。但し、nは任意の数で
あり得る。本発明の代替的な実施形態においては、n=
3である。6つのBM 300〜305のそれぞれの第1の入力
(「A」)は、第1の入力オペランドバス210に接続さ
れる。各BMの第2の入力(「B」)は、第2の入力オペ
ランドバス211に接続される。6つのBM 300〜305のそれ
ぞれは、第1のマルチプレクサー320へのn個の入力の
1つにBM出力積信号を与えるように結合された出力を有
する。本発明によるn個の複数のBMのそれぞれは、各BM
に関連付けられたブース乗算器メモリ制御(BMMC)装置
を有する。例示的なPMAA回路200は、関連付けられたBM
300〜305内にそれぞれ一体化されたBMMC装置310〜315を
含む。あるいは、BMMC装置310〜315は、対応するBMとは
別に設けられてもよい。
【0041】外部コントローラは、演算制御/命令デコ
ード信号バス280を介して、BMMC装置310〜315のそれぞ
れへの入力に演算制御信号を与える。6つのBM 300〜30
5の1つであるBMiに与えられる離散入力オペランドの各
対について、対応する演算制御値の組が、BMiに関連付
けられたBMMC装置に外部コントローラによって与えられ
る。演算制御値のそれぞれの組は、乗算後のシフト処理
を制御するためのダウンシフト値DVと、複数の累算器の
中から累算器を選択して累算処理を制御するための累算
数ANとを含む。
ード信号バス280を介して、BMMC装置310〜315のそれぞ
れへの入力に演算制御信号を与える。6つのBM 300〜30
5の1つであるBMiに与えられる離散入力オペランドの各
対について、対応する演算制御値の組が、BMiに関連付
けられたBMMC装置に外部コントローラによって与えられ
る。演算制御値のそれぞれの組は、乗算後のシフト処理
を制御するためのダウンシフト値DVと、複数の累算器の
中から累算器を選択して累算処理を制御するための累算
数ANとを含む。
【0042】BMMC装置310〜315はそれぞれ1つの出力を
有する。この出力は、BMMC制御バス381を介して内部制
御回路380に結合される。内部制御回路380は、BMMC制御
バス381を介して、BMMC装置310〜315から離散演算制御
値を受け取る。内部制御回路380は、BMMC制御バス381を
介して、BMMC装置310〜315のそれぞれからBM状態制御信
号をも受け取る。BM状態制御信号は、複数のn個のBMの
それぞれの状態を有している。6つのBM 300〜305のそ
れぞれは、そのBMに関連付けられた状態を有し、この状
態は、そのBMがビジー、完了あるいは空きのいずれの状
態であるのかを示す。n個の複数のBM 300〜305の1つ
であるBMiが一対のオペランド信号の乗算を行っている
間、BMiの状態は「ビジー」となる。BMiが一対の入力オ
ペランドについて積値を求めてからそのBM出力積値が出
力されるまでの間、BMiの状態は「完了」となる。積値
が出力されてから新たなオペランドがBMiにロードされ
るまでの間、BMiの状態は「空き」となる。図3Aに示す
例示的なPMAA回路200は6つのBM300〜305を有し、それ
ぞれのBMが取り得る状態は3つあるので、BM状態制御信
号には(2×6)即ち12ビットが必要となる。本発明の
好適な実施形態においては、DVは5ビット値であり、AN
は2ビット値である。但し、本発明は、これ以外の値を
用いる場合にも適している。このように、本発明の好適
な実施形態において、BMMC制御バス381は19ビットを有
する。
有する。この出力は、BMMC制御バス381を介して内部制
御回路380に結合される。内部制御回路380は、BMMC制御
バス381を介して、BMMC装置310〜315から離散演算制御
値を受け取る。内部制御回路380は、BMMC制御バス381を
介して、BMMC装置310〜315のそれぞれからBM状態制御信
号をも受け取る。BM状態制御信号は、複数のn個のBMの
それぞれの状態を有している。6つのBM 300〜305のそ
れぞれは、そのBMに関連付けられた状態を有し、この状
態は、そのBMがビジー、完了あるいは空きのいずれの状
態であるのかを示す。n個の複数のBM 300〜305の1つ
であるBMiが一対のオペランド信号の乗算を行っている
間、BMiの状態は「ビジー」となる。BMiが一対の入力オ
ペランドについて積値を求めてからそのBM出力積値が出
力されるまでの間、BMiの状態は「完了」となる。積値
が出力されてから新たなオペランドがBMiにロードされ
るまでの間、BMiの状態は「空き」となる。図3Aに示す
例示的なPMAA回路200は6つのBM300〜305を有し、それ
ぞれのBMが取り得る状態は3つあるので、BM状態制御信
号には(2×6)即ち12ビットが必要となる。本発明の
好適な実施形態においては、DVは5ビット値であり、AN
は2ビット値である。但し、本発明は、これ以外の値を
用いる場合にも適している。このように、本発明の好適
な実施形態において、BMMC制御バス381は19ビットを有
する。
【0043】第1のMUX選択バス382は、第1のMUX 320
と内部制御回路380との間に結合される。内部制御回路3
80は、第1のMUX選択バス382を用いて、BMiに対応する
第1のMUX 320のi番目の入力を選択する。6つのBM 30
0〜305を用いたある実施形態において、バス382の幅は
3ビットである。
と内部制御回路380との間に結合される。内部制御回路3
80は、第1のMUX選択バス382を用いて、BMiに対応する
第1のMUX 320のi番目の入力を選択する。6つのBM 30
0〜305を用いたある実施形態において、バス382の幅は
3ビットである。
【0044】本発明の代替的な実施形態によれば、BM 3
00〜305によって行われる乗算処理を高速化する方法お
よび装置が提供される。第1および第2の入力オペラン
ドバス210および211によって提供される第1の入力Aお
よび第2の入力Bから先頭無意味ビット(leading insig
nificant bits)を排除するために、論理回路が設けられ
る。一般に、ブース乗算器は、入力オペランドの下位ビ
ットから上位ビットへと計算を進める。上位ビットが無
意味(正数のときは全て0、負数のときは全て1)であ
る場合、結果が決まっているので、この代替的な実施形
態では上位ビットの計算は行わない。この場合、 BM 30
0〜305は、先頭無意味ビットの排除分を補償するよう適
切にビットを追加することにより、部分的な乗算の結果
をダウンシフトする。この代替的な実施形態の利点は、
BM 300〜305の乗算が高速化されることにある。
00〜305によって行われる乗算処理を高速化する方法お
よび装置が提供される。第1および第2の入力オペラン
ドバス210および211によって提供される第1の入力Aお
よび第2の入力Bから先頭無意味ビット(leading insig
nificant bits)を排除するために、論理回路が設けられ
る。一般に、ブース乗算器は、入力オペランドの下位ビ
ットから上位ビットへと計算を進める。上位ビットが無
意味(正数のときは全て0、負数のときは全て1)であ
る場合、結果が決まっているので、この代替的な実施形
態では上位ビットの計算は行わない。この場合、 BM 30
0〜305は、先頭無意味ビットの排除分を補償するよう適
切にビットを追加することにより、部分的な乗算の結果
をダウンシフトする。この代替的な実施形態の利点は、
BM 300〜305の乗算が高速化されることにある。
【0045】乗算後のシフトステージ PMAA回路200の乗算後のシフトステージは、ダウンシフ
ト回路330を含む。ダウンシフト回路330は、バス321を
介して、BM出力積値である第1のMUX 320の出力を受け
取るように結合される。本発明の好適な実施形態におい
ては、バス210および211を介する入力オペランド信号
は、共に、32ビット(20.12)FPF数である。従って、BM
300〜305から第1のMUX 320を介してダウンシフト回路
330に供給されるBM出力積値は、64ビット(40.24)FPF
数である。ダウンシフト回路330は、BMiの出力積データ
を、対応するダウンシフト値(DV)に従ってシフトす
る。ダウンシフト値は、内部制御回路380によって調節
制御バス383を介してダウンシフト回路330に与えられ
る。好適な実施形態において、ダウンシフト回路330
は、5ビットの調節制御信号(DV)によって制御され
る。この調節制御信号によって、ダウンシフト回路330
は、DVビット分だけ左にシフトして、ダウンシフト回路
330に与えられたBMiの出力積信号の下位12ビットを左へ
移動させる。シフト範囲は0〜31である。シフト後、下
位30ビットは遅延レジスタ340内にラッチされる。上位
ビットは廃棄される。
ト回路330を含む。ダウンシフト回路330は、バス321を
介して、BM出力積値である第1のMUX 320の出力を受け
取るように結合される。本発明の好適な実施形態におい
ては、バス210および211を介する入力オペランド信号
は、共に、32ビット(20.12)FPF数である。従って、BM
300〜305から第1のMUX 320を介してダウンシフト回路
330に供給されるBM出力積値は、64ビット(40.24)FPF
数である。ダウンシフト回路330は、BMiの出力積データ
を、対応するダウンシフト値(DV)に従ってシフトす
る。ダウンシフト値は、内部制御回路380によって調節
制御バス383を介してダウンシフト回路330に与えられ
る。好適な実施形態において、ダウンシフト回路330
は、5ビットの調節制御信号(DV)によって制御され
る。この調節制御信号によって、ダウンシフト回路330
は、DVビット分だけ左にシフトして、ダウンシフト回路
330に与えられたBMiの出力積信号の下位12ビットを左へ
移動させる。シフト範囲は0〜31である。シフト後、下
位30ビットは遅延レジスタ340内にラッチされる。上位
ビットは廃棄される。
【0046】本発明の好適な実施形態において、ダウン
シフト回路330は、バス383を介して供給される5ビット
の調節信号によって制御されるバレルシフタである。ダ
ウンシフト回路330は、バス322上の64ビット(40.24)
固定フォーマットのBM出力積信号を、バス323上の32ビ
ット(20.12)固定フォーマット信号に変換する。本発
明の好適な実施形態におけるダウンシフト回路330の機
能は、ダウンシフト回路330に与えられるBM出力積信号
の下位12ビットを左へ移動させることである。
シフト回路330は、バス383を介して供給される5ビット
の調節信号によって制御されるバレルシフタである。ダ
ウンシフト回路330は、バス322上の64ビット(40.24)
固定フォーマットのBM出力積信号を、バス323上の32ビ
ット(20.12)固定フォーマット信号に変換する。本発
明の好適な実施形態におけるダウンシフト回路330の機
能は、ダウンシフト回路330に与えられるBM出力積信号
の下位12ビットを左へ移動させることである。
【0047】累算ステージ 本発明のPMAA回路200の累算ステージ324はm個の複数の
累算器ACC0 360、ACC1361、...、ACCm 363を含む。
m個の累算器は、それぞれ、ダウンシフトステージから
の出力信号を受け取るように結合される入力を有する。
累算選択バス384を用いて、m個の複数の累算器のどれ
をイネーブルするかを選択し、これにより、ダウンシフ
トステージの出力を受け取る。図示されるように、各累
算器は、加算器(例えば、350)とレジスタ(例えば、3
60)とによって実現され得る。
累算器ACC0 360、ACC1361、...、ACCm 363を含む。
m個の累算器は、それぞれ、ダウンシフトステージから
の出力信号を受け取るように結合される入力を有する。
累算選択バス384を用いて、m個の複数の累算器のどれ
をイネーブルするかを選択し、これにより、ダウンシフ
トステージの出力を受け取る。図示されるように、各累
算器は、加算器(例えば、350)とレジスタ(例えば、3
60)とによって実現され得る。
【0048】図3Aを参照して、例示的なPMAA回路200
は、4つの加算器350〜353および4つの累算器レジスタ
360〜363を含む、m=4個の累算器を有する。但し、m
の値は、これより小さくても大きくてもよい。本発明の
代替的な実施形態においては、m=3である。4つの加
算器350〜353のそれぞれは、遅延レジスタ340から32ビ
ットの出力信号を受け取るように結合される第1の入力
を有する。4つの累算器レジスタ360〜363のそれぞれ
は、4つの加算器350〜353の1つから出力信号を受け取
るように結合される入力を有する。累算器レジスタ360
〜363のそれぞれの出力は、フィードバックラインを介
して、各累算器レジスタの入力が接続されている加算器
350〜353の第2の入力に結合される。具体的には、第1
の累算器レジスタ360の出力が第1の加算器350の第2の
入力に結合され、第2のレジスタ361の出力が第2の加
算器351の第2の入力に結合され、第3のレジスタ362の
出力が第3の加算器352の第2の入力に結合され、第4
のレジスタ363の出力が第4の加算器353の第2の入力に
結合される。
は、4つの加算器350〜353および4つの累算器レジスタ
360〜363を含む、m=4個の累算器を有する。但し、m
の値は、これより小さくても大きくてもよい。本発明の
代替的な実施形態においては、m=3である。4つの加
算器350〜353のそれぞれは、遅延レジスタ340から32ビ
ットの出力信号を受け取るように結合される第1の入力
を有する。4つの累算器レジスタ360〜363のそれぞれ
は、4つの加算器350〜353の1つから出力信号を受け取
るように結合される入力を有する。累算器レジスタ360
〜363のそれぞれの出力は、フィードバックラインを介
して、各累算器レジスタの入力が接続されている加算器
350〜353の第2の入力に結合される。具体的には、第1
の累算器レジスタ360の出力が第1の加算器350の第2の
入力に結合され、第2のレジスタ361の出力が第2の加
算器351の第2の入力に結合され、第3のレジスタ362の
出力が第3の加算器352の第2の入力に結合され、第4
のレジスタ363の出力が第4の加算器353の第2の入力に
結合される。
【0049】本発明の好適な実施形態において、累算選
択バス384は、内部制御回路380と、4つの累算器レジス
タ360〜363のそれぞれとの間に結合され、任意の時点に
おいて、4つの累算器レジスタ360〜363のどれをイネー
ブルするかを選択(例えば、イネーブル)する。本発明
の好適な実施形態においては、2ビットの累算数(AN)
を有する4つの累算器レジスタ360〜363を制御するため
に、2ビットの累算選択バス384が必要である。
択バス384は、内部制御回路380と、4つの累算器レジス
タ360〜363のそれぞれとの間に結合され、任意の時点に
おいて、4つの累算器レジスタ360〜363のどれをイネー
ブルするかを選択(例えば、イネーブル)する。本発明
の好適な実施形態においては、2ビットの累算数(AN)
を有する4つの累算器レジスタ360〜363を制御するため
に、2ビットの累算選択バス384が必要である。
【0050】PMAA回路200はまた第2のMUX 370を含む。
第2のMUX 370は、m=4個の入力を有し、各入力は、
4つの累算器レジスタ360〜363の1つから出力信号を受
け取るように結合される。外部コントローラは、4つの
累算器レジスタ360〜363の1つであるACCjの出力を選択
し、これを、出力バス230を介して供給するべき第2のM
UX 370のj番目の入力を選択するよう第2のMUX選択バ
ス371を制御することによって、第2のMUX370を介して
出力する。
第2のMUX 370は、m=4個の入力を有し、各入力は、
4つの累算器レジスタ360〜363の1つから出力信号を受
け取るように結合される。外部コントローラは、4つの
累算器レジスタ360〜363の1つであるACCjの出力を選択
し、これを、出力バス230を介して供給するべき第2のM
UX 370のj番目の入力を選択するよう第2のMUX選択バ
ス371を制御することによって、第2のMUX370を介して
出力する。
【0051】図3Bを参照すれば、本発明のPMAA回路200
の累算ステージ324の代替的な実施形態が示される。代
替的な実施形態による累算ステージ325は、複数のm個
の累算器ACC0 360、ACC1 361、...、ACCm 363を含
む。本実施形態においては、単一の加算器354を累算器
選択マルチプレクサー358と共に用いて、m個の累算器3
60〜363の1つに格納された累算値にダウンシフトステ
ージの出力を加算する。各クロックサイクルに処理され
る加算コマンドは1つだけなので、本実施形態では加算
器をm個ではなく1つだけ用い、これにより、回路の複
雑さおよび大きさを低減している。加算器354は、遅延
レジスタ340から32ビット出力信号を受け取るように結
合される第1の入力を有する。加算器354は、累算器選
択マルチプレクサー358から32ビット出力信号を受け取
るように結合される第2の入力を有する。4つの累算器
レジスタ360〜363のそれぞれは、加算器354から出力信
号を受け取るように結合される入力を有する。m個の累
算器レジスタ360〜363のそれぞれは、累算器選択マルチ
プレクサー358へのm個の入力の1つに算出値を与える
ように結合される出力を有する。累算選択バス384を用
いて、2ビットの累算数(AN)を有する4つの累算器レ
ジスタ360〜363を制御することができる。また、累算選
択バス384を用いて、累算器選択マルチプレクサー358の
m個の複数の入力のどれをイネーブルするかを選択する
こともできる。好適な実施形態による累算ステージ324
の場合と同様、第2のMUX 370を代替的な実施形態の累
算ステージ325とともに用いて、4つの累算器レジスタ3
60〜363の1つから出力信号を受け取ることができる。
の累算ステージ324の代替的な実施形態が示される。代
替的な実施形態による累算ステージ325は、複数のm個
の累算器ACC0 360、ACC1 361、...、ACCm 363を含
む。本実施形態においては、単一の加算器354を累算器
選択マルチプレクサー358と共に用いて、m個の累算器3
60〜363の1つに格納された累算値にダウンシフトステ
ージの出力を加算する。各クロックサイクルに処理され
る加算コマンドは1つだけなので、本実施形態では加算
器をm個ではなく1つだけ用い、これにより、回路の複
雑さおよび大きさを低減している。加算器354は、遅延
レジスタ340から32ビット出力信号を受け取るように結
合される第1の入力を有する。加算器354は、累算器選
択マルチプレクサー358から32ビット出力信号を受け取
るように結合される第2の入力を有する。4つの累算器
レジスタ360〜363のそれぞれは、加算器354から出力信
号を受け取るように結合される入力を有する。m個の累
算器レジスタ360〜363のそれぞれは、累算器選択マルチ
プレクサー358へのm個の入力の1つに算出値を与える
ように結合される出力を有する。累算選択バス384を用
いて、2ビットの累算数(AN)を有する4つの累算器レ
ジスタ360〜363を制御することができる。また、累算選
択バス384を用いて、累算器選択マルチプレクサー358の
m個の複数の入力のどれをイネーブルするかを選択する
こともできる。好適な実施形態による累算ステージ324
の場合と同様、第2のMUX 370を代替的な実施形態の累
算ステージ325とともに用いて、4つの累算器レジスタ3
60〜363の1つから出力信号を受け取ることができる。
【0052】図4は、本発明に用いられるブース乗算器
回路400の内部回路ブロック図である。後述するプリロ
ード機能は別にして、本発明に基づいて使用されるブー
ス乗算器回路の設計は、基数(radix)4、基数8あるい
は基数16を含む、多数の周知の設計のいずれであっても
よい。本発明の好適な実施形態においては、基数16のブ
ース乗算器をBM 300〜305(図3A)として用いる。ブー
ス乗算器を用いれば、nビットの乗算をn回未満の加算
あるいは減算によって行うことができるので、乗算の高
速化が可能となる。BM回路300〜305(図3A参照)のそれ
ぞれは、例示的なブース乗算器回路400に基づいて実現
され得る。例示的なブース乗算器回路400は、Aレジス
タ410と、Bレジスタ425と、Pレジスタ430とを含む。
本発明の好適な実施形態において、BM 300〜305のそれ
ぞれのPレジスタ430を、32ビット入力データオペラン
ドがBM 300〜305(図3A参照)にロードされる前に、初
めに211に初期設定しておく。初めにこのように初期設
定しておくことによって、ダウンシフト回路330がその
内容を12ビット分シフトダウンする際に、丸め機能(rou
nding function)を行うことができる。一対の32ビット
離散入力オペランドをBM 400に(Aをレジスタ410に、
Bをレジスタ425に)ロードし、Pレジスタ430を初期設
定した後で、乗算が開始される。各クロックの間、レジ
スタ410および430が、一回に2ビットづつ右にシフトさ
れる。レジスタ410の最下位(LSB)ビットおよび1つの
拡張ビットが、MUX 420を制御する選択バス426に対して
用いられる。加算器450は、バス445上の32ビット出力値
と、バス440上の32ビット値とを加算する。この演算結
果の最上位側31ビットをレジスタ430に入れ、最下位の
2ビットをレジスタ410の最上位側のビットに入れる。
回路400の内部回路ブロック図である。後述するプリロ
ード機能は別にして、本発明に基づいて使用されるブー
ス乗算器回路の設計は、基数(radix)4、基数8あるい
は基数16を含む、多数の周知の設計のいずれであっても
よい。本発明の好適な実施形態においては、基数16のブ
ース乗算器をBM 300〜305(図3A)として用いる。ブー
ス乗算器を用いれば、nビットの乗算をn回未満の加算
あるいは減算によって行うことができるので、乗算の高
速化が可能となる。BM回路300〜305(図3A参照)のそれ
ぞれは、例示的なブース乗算器回路400に基づいて実現
され得る。例示的なブース乗算器回路400は、Aレジス
タ410と、Bレジスタ425と、Pレジスタ430とを含む。
本発明の好適な実施形態において、BM 300〜305のそれ
ぞれのPレジスタ430を、32ビット入力データオペラン
ドがBM 300〜305(図3A参照)にロードされる前に、初
めに211に初期設定しておく。初めにこのように初期設
定しておくことによって、ダウンシフト回路330がその
内容を12ビット分シフトダウンする際に、丸め機能(rou
nding function)を行うことができる。一対の32ビット
離散入力オペランドをBM 400に(Aをレジスタ410に、
Bをレジスタ425に)ロードし、Pレジスタ430を初期設
定した後で、乗算が開始される。各クロックの間、レジ
スタ410および430が、一回に2ビットづつ右にシフトさ
れる。レジスタ410の最下位(LSB)ビットおよび1つの
拡張ビットが、MUX 420を制御する選択バス426に対して
用いられる。加算器450は、バス445上の32ビット出力値
と、バス440上の32ビット値とを加算する。この演算結
果の最上位側31ビットをレジスタ430に入れ、最下位の
2ビットをレジスタ410の最上位側のビットに入れる。
【0053】図5は、PMAA回路200を用いた被制御並列
乗算および累算処理を行う本発明の回路200の処理ステ
ップを示すフローチャートである。本発明の方法のステ
ップ502において、外部コントローラは、入力オペラン
ドAxBx、ダウンシフト値DV、および累算値AVをBM 300
〜305の中の空きブース乗算器BMiにロードする。ステッ
プ504においては、BMiが、Ax×Bxを16クロックサイク
ルで処理する。この間、BMiの状態はビジーとなる。ス
テップ506において、BMiが処理を完了したときに、BMi
が内部制御回路380に信号を送り、また、必要な場合に
は、BMMC制御バス381(図3A参照)を介して内部制御回
路380にDVおよびAVをロードする。ステップ508におい
て、内部制御回路380はBMiの出力を選択し、これを、第
1のMUX 320のi番目の入力が選択されるように第1のM
UX選択バス382を制御することによって第1のMUX320を
介して出力する。ステップ510において、内部制御回路3
80は、BMiのDVおよびANを読み出し、PMAA回路200のシフ
トステージおよび累算ステージにおいてBMiの出力を処
理する際に、DVおよびANに従って調節制御バス383およ
び累算選択バス384を制御する。最終ステップ512におい
て、外部コントローラは、特定の累算器の出力を選択
し、これを、要求される第2のMUX 370の入力が選択さ
れるように第2のMUX選択バス371を制御することによっ
て、第2のMUX 370を介して出力する。
乗算および累算処理を行う本発明の回路200の処理ステ
ップを示すフローチャートである。本発明の方法のステ
ップ502において、外部コントローラは、入力オペラン
ドAxBx、ダウンシフト値DV、および累算値AVをBM 300
〜305の中の空きブース乗算器BMiにロードする。ステッ
プ504においては、BMiが、Ax×Bxを16クロックサイク
ルで処理する。この間、BMiの状態はビジーとなる。ス
テップ506において、BMiが処理を完了したときに、BMi
が内部制御回路380に信号を送り、また、必要な場合に
は、BMMC制御バス381(図3A参照)を介して内部制御回
路380にDVおよびAVをロードする。ステップ508におい
て、内部制御回路380はBMiの出力を選択し、これを、第
1のMUX 320のi番目の入力が選択されるように第1のM
UX選択バス382を制御することによって第1のMUX320を
介して出力する。ステップ510において、内部制御回路3
80は、BMiのDVおよびANを読み出し、PMAA回路200のシフ
トステージおよび累算ステージにおいてBMiの出力を処
理する際に、DVおよびANに従って調節制御バス383およ
び累算選択バス384を制御する。最終ステップ512におい
て、外部コントローラは、特定の累算器の出力を選択
し、これを、要求される第2のMUX 370の入力が選択さ
れるように第2のMUX選択バス371を制御することによっ
て、第2のMUX 370を介して出力する。
【0054】図6は、本発明による例示的なPMAA回路20
0における、シーケンシャルにロードされる6つの入力
オペランド対の処理のタイミング関係を示す。信号601
は、PMAA回路200のシステムクロック入力ライン250に与
えられるホストシステムクロック信号である(図2参
照)。タイミングチャート610は、PMAA回路200(図3A参
照)内において、第1のBM 300にロードされる第1の離
散入力オペランド対を処理するのに要するクロックサイ
クル数を表す。時刻611は、第1の入力オペランド対が
第1のBM 300にロードされ、対応する第1の演算制御値
の組が、BM 300に関連付けられたBMMC装置310にロード
される時刻を表す(図3A参照)。時刻612は、第1のBM
300が第1の入力オペランド対の乗算を完了する時刻を
表す(図3A参照)。この時点において、BM 300の状態は
「完了」であり、内部制御回路380は、第1の入力オペ
ランド対に対応する演算制御値(AN1およびDV1)をBMMC
装置310から読み出し、64ビットのバス322を介して積が
提供される(図3A参照)。次に、内部制御回路380は、
調節制御バス383を介してDV1をダウンシフト回路330に
供給するとともに、累算選択バス384を介して加算器350
〜353にAN1を供給する(図3A参照)。時刻613は、ダウ
ンシフト回路330が32ビットのバス323を介してシフトさ
れた積出力値を生成する時刻を表す。時刻614は、外部
コントローラが、アレイ出力バス230を介して、累算器
レジスタ360〜363の1つから累算値を読み出し得る時刻
を表す(図3A参照)。
0における、シーケンシャルにロードされる6つの入力
オペランド対の処理のタイミング関係を示す。信号601
は、PMAA回路200のシステムクロック入力ライン250に与
えられるホストシステムクロック信号である(図2参
照)。タイミングチャート610は、PMAA回路200(図3A参
照)内において、第1のBM 300にロードされる第1の離
散入力オペランド対を処理するのに要するクロックサイ
クル数を表す。時刻611は、第1の入力オペランド対が
第1のBM 300にロードされ、対応する第1の演算制御値
の組が、BM 300に関連付けられたBMMC装置310にロード
される時刻を表す(図3A参照)。時刻612は、第1のBM
300が第1の入力オペランド対の乗算を完了する時刻を
表す(図3A参照)。この時点において、BM 300の状態は
「完了」であり、内部制御回路380は、第1の入力オペ
ランド対に対応する演算制御値(AN1およびDV1)をBMMC
装置310から読み出し、64ビットのバス322を介して積が
提供される(図3A参照)。次に、内部制御回路380は、
調節制御バス383を介してDV1をダウンシフト回路330に
供給するとともに、累算選択バス384を介して加算器350
〜353にAN1を供給する(図3A参照)。時刻613は、ダウ
ンシフト回路330が32ビットのバス323を介してシフトさ
れた積出力値を生成する時刻を表す。時刻614は、外部
コントローラが、アレイ出力バス230を介して、累算器
レジスタ360〜363の1つから累算値を読み出し得る時刻
を表す(図3A参照)。
【0055】タイミングチャート620は、PMAA回路200に
おいて、BM 301にロードされる第2の離散入力オペラン
ド対を処理するのに要するクロックサイクル数を表す
(図3A参照)。時刻621は、第2の入力オペランド対が
第2のBM 301にロードされ、対応する演算制御値の第2
の組が、第2のBM 301に関連付けられたBMMC装置311に
ロードされる時刻を表す(図3A参照)。時刻622は、第
2のBM 301が第2の入力オペランド対の乗算を完了する
時刻を表す(図3A参照)。この時刻において、BM301の
状態は「完了」であり、内部制御回路380は、第2の入
力オペランド対に対応する演算制御値AN2およびDV2をBM
MC装置311から読み出し、64ビットのバス322を介して積
が提供される(図3A参照)。次に、内部制御回路380
は、調節制御バス383を介してDV2をダウンシフト回路33
0に供給するとともに、累算選択バス384を介して加算器
350〜353にAN2を供給する(図3A参照)。時刻623は、ダ
ウンシフト回路330が、32ビットのバス323を介してシフ
トされた出力値を生成する時刻を表す。時刻624は、外
部コントローラが、バス230を介して、累算器レジスタ3
60〜363の1つから累算値を読み出し得る時刻を表す。
おいて、BM 301にロードされる第2の離散入力オペラン
ド対を処理するのに要するクロックサイクル数を表す
(図3A参照)。時刻621は、第2の入力オペランド対が
第2のBM 301にロードされ、対応する演算制御値の第2
の組が、第2のBM 301に関連付けられたBMMC装置311に
ロードされる時刻を表す(図3A参照)。時刻622は、第
2のBM 301が第2の入力オペランド対の乗算を完了する
時刻を表す(図3A参照)。この時刻において、BM301の
状態は「完了」であり、内部制御回路380は、第2の入
力オペランド対に対応する演算制御値AN2およびDV2をBM
MC装置311から読み出し、64ビットのバス322を介して積
が提供される(図3A参照)。次に、内部制御回路380
は、調節制御バス383を介してDV2をダウンシフト回路33
0に供給するとともに、累算選択バス384を介して加算器
350〜353にAN2を供給する(図3A参照)。時刻623は、ダ
ウンシフト回路330が、32ビットのバス323を介してシフ
トされた出力値を生成する時刻を表す。時刻624は、外
部コントローラが、バス230を介して、累算器レジスタ3
60〜363の1つから累算値を読み出し得る時刻を表す。
【0056】タイミングチャート630、640、650および6
60は、それぞれ、BM 302、303、304および305にロード
される第3、第4、第5および第6の入力オペランド対
をPMAA回路200で処理するのに要するクロックサイクル
数を表す。タイミング関係630、640、650および660は、
入力オペランド対をロードするBMが異なることと、ロー
ドのタイミングがずれていることを除いては、タイミン
グ関係610および620と同じである。図6に示されるよう
に、例示的なPMAA回路200によれば、BM 300〜305をパイ
プライン方式で動作させて、その機能を時間的にオーバ
ーラップさせることが可能になる。この特徴によって、
最大n個までの積を部分的に並列に完成することが可能
となり、速度上の大きな利点が本発明にもたらされる。
60は、それぞれ、BM 302、303、304および305にロード
される第3、第4、第5および第6の入力オペランド対
をPMAA回路200で処理するのに要するクロックサイクル
数を表す。タイミング関係630、640、650および660は、
入力オペランド対をロードするBMが異なることと、ロー
ドのタイミングがずれていることを除いては、タイミン
グ関係610および620と同じである。図6に示されるよう
に、例示的なPMAA回路200によれば、BM 300〜305をパイ
プライン方式で動作させて、その機能を時間的にオーバ
ーラップさせることが可能になる。この特徴によって、
最大n個までの積を部分的に並列に完成することが可能
となり、速度上の大きな利点が本発明にもたらされる。
【0057】図6を参照して、期間670は、例示的なPMA
A回路200の6つの並列BM 300〜305(図3A参照)に6つ
の異なる離散入力オペランド対をシーケンシャルにロー
ドするのに要するクロックサイクル数6を表す。期間67
1は、BM 300〜305の1つにおいて、一対の32ビット入力
オペランドの乗算を行うのに要するクロックサイクル数
16を表す。BMにロードするにはさらに1クロックサイク
ルが必要となる。期間672は、本発明の例示的なPMAA回
路200において、6つの入力オペランド対の乗算、シフ
ト、累算および出力を行うのに要するクロックサイクル
数24を表す。この期間は、本発明によって、以下に再び
示す関係式(1)を解くのに要する時間に相当する。
A回路200の6つの並列BM 300〜305(図3A参照)に6つ
の異なる離散入力オペランド対をシーケンシャルにロー
ドするのに要するクロックサイクル数6を表す。期間67
1は、BM 300〜305の1つにおいて、一対の32ビット入力
オペランドの乗算を行うのに要するクロックサイクル数
16を表す。BMにロードするにはさらに1クロックサイク
ルが必要となる。期間672は、本発明の例示的なPMAA回
路200において、6つの入力オペランド対の乗算、シフ
ト、累算および出力を行うのに要するクロックサイクル
数24を表す。この期間は、本発明によって、以下に再び
示す関係式(1)を解くのに要する時間に相当する。
【0058】 A1B1+A2B2+A3B3+A4B4+A5B5+AmBm=X1 (1) 以上が、本発明の好適な実施形態である並列乗算累算ア
レイの説明である。特定の実施形態を用いて本発明を説
明したが、本発明がこのような実施形態に限定して解釈
されるのではなく、先に示すクレームに基づいて解釈さ
れることが理解されるべきである。
レイの説明である。特定の実施形態を用いて本発明を説
明したが、本発明がこのような実施形態に限定して解釈
されるのではなく、先に示すクレームに基づいて解釈さ
れることが理解されるべきである。
【0059】
【発明の効果】本発明によれば、積の和の形で表される
演算処理を高速に実行する方法および装置を提供するこ
とができる。
演算処理を高速に実行する方法および装置を提供するこ
とができる。
【図1】本発明による並列乗算累算アレイ(PMAA)回路
を用いた例示的なホストシステムを示すブロック図であ
る。
を用いた例示的なホストシステムを示すブロック図であ
る。
【図2】本発明による例示的なPMAA回路を示す入出力ブ
ロック図である。
ロック図である。
【図3A】本発明による例示的なPMAA回路を示す内部回
路ブロック図である。
路ブロック図である。
【図3B】本発明によるPMAA回路における累算ステージ
の代替的な実施形態を示す回路ブロック図である。
の代替的な実施形態を示す回路ブロック図である。
【図4】本発明において用いられるブース乗算器回路を
示す内部回路ブロック図である。
示す内部回路ブロック図である。
【図5】被制御の乗算および累算処理を行う本発明の方
法におけるステップを示すフローチャートである。
法におけるステップを示すフローチャートである。
【図6】本発明よる例示的なPMAA回路におけるタイミン
グチャートである。
グチャートである。
101 プロセッサ 109 グラフィックスハードウェアカード 200 並列乗算累算アレイ 300、301、302、303、304、305 ブ
ース乗算器 310、311、312、313、314、315 ブ
ース乗算器メモリ制御装置 320 第1のマルチプレクサー 330 ダウンシフト回路 350、351、352、353 加算器 360、361、362、363 累算器レジスタ 370 第2のマルチプレクサー 380 内部制御回路
ース乗算器 310、311、312、313、314、315 ブ
ース乗算器メモリ制御装置 320 第1のマルチプレクサー 330 ダウンシフト回路 350、351、352、353 加算器 360、361、362、363 累算器レジスタ 370 第2のマルチプレクサー 380 内部制御回路
フロントページの続き (71)出願人 595158337 3100 West Warren Aven ue,Fremont,Californ ia 94538,U.S.A.
Claims (18)
- 【請求項1】 第1のxビットオペランドおよび第2の
xビットオペランドを受け取るようそれぞれ結合され、
2xビットの積を生成するn個の複数の乗算器と、 該n個の複数の乗算器からn個の2xビット積を受け取
るように結合されるn個の入力を有し、1つの2xビッ
ト積出力を与える第1のマルチプレクサーと、 該1つの2xビット積出力を受け取るように結合される
ダウンシフト回路であって、該1つの2xビット積出力
をyビット分ダウンシフトするダウンシフト回路と、 該ダウンシフト回路からダウンシフトされた出力を受け
取るように結合される入力をそれぞれ有するm個の複数
の累算器であって、それぞれ別々の算出値を累算する累
算器と、 該m個の複数の累算器の1つから算出値を受け取るよう
にそれぞれが結合されるm個の入力を有し、該算出値の
1つを供給する出力を有する第2のマルチプレクサー
と、を備えた、並列乗算累算アレイ回路。 - 【請求項2】 前記第1のマルチプレクサーの選択バス
と、 前記ダウンシフト回路のダウンシフト調節バスと、 前記m個の複数の累算器のイネーブルバスと、を制御す
る内部制御回路をさらに備えた、請求項1に記載の回
路。 - 【請求項3】 前記累算器は、加算器とレジスタとをそ
れぞれ含んでいる、請求項1に記載の回路。 - 【請求項4】 前記ダウンシフト回路と前記m個の複数
の累算器との間に遅延レジスタが結合される、請求項1
に記載の回路。 - 【請求項5】 前記n個の複数の乗算器は、それぞれブ
ース乗算器である、請求項1に記載の回路。 - 【請求項6】 前記ダウンシフト回路が丸めを行う(ro
und)ように、各ブース乗算器のPレジスタがある値(1
1ビット)に初期設定される、請求項5に記載の回路。 - 【請求項7】 n=6、m=4、x=32、およびy=12
である、請求項1に記載の回路。 - 【請求項8】 n=3、m=3、x=32であり、yは、
請求項1に記載の前記回路の各クロックサイクル毎にプ
ログラム可能である、請求項1に記載の回路。 - 【請求項9】 前記n個の複数の乗算器のそれぞれは、
前記第1のxビット値および前記第2のxビット値に関
連付けられたダウンシフト値および累算イネーブル情報
のデータを格納するメモリを有する、請求項1に記載の
回路。 - 【請求項10】 第1のxビットオペランドおよび第2
のxビットオペランドを受け取るようそれぞれ結合さ
れ、2xビットの積を生成するn個の複数の乗算器と、 該n個の複数の乗算器からn個の2xビットの積を受け
取るよう結合されるn個の入力を有し、1つの2xビッ
トの出力を与える第1のマルチプレクサーと、 該第1のマルチプレクサーの該1つの2xビットの出力
を受け取るように結合され、該1つの2xビットの出力
をyビット分ダウンシフトするダウンシフト回路と、 該ダウンシフト回路からダウンシフトされた出力を受け
取るよう結合される入力をそれぞれ有するm個の複数の
累算器であって、それぞれ別々の算出値を累算する累算
器と、 該m個の複数の累算器の1つから算出値を受け取るよう
にそれぞれ接続されるm個の入力を有し、該算出値の1
つを供給する出力を有する第2のマルチプレクサーと、
を備えた、ホストコンピュータシステムのグラフィック
スカード内の並列乗算累算アレイ回路。 - 【請求項11】 前記第1のマルチプレクサーの選択バ
スと、 前記ダウンシフト回路のダウンシフト調節バスと、 前記m個の複数の累算器のイネーブルバスと、を制御す
る内部制御回路をさらに備えた、請求項10に記載の回
路。 - 【請求項12】 前記累算器は、加算器とレジスタとを
それぞれ含んでいる、請求項10に記載の回路。 - 【請求項13】 前記ダウンシフト回路と前記m個の複
数の累算器との間に遅延レジスタが結合される、請求項
10に記載の回路。 - 【請求項14】 前記n個の複数の乗算器は、それぞれ
ブース乗算器である、請求項10に記載の回路。 - 【請求項15】 前記ダウンシフト回路が丸めを行うよ
うに、各ブース乗算器のPレジスタがyビットの値に初
期設定され、ここにyは請求項10に記載の前記回路の各
クロックサイクル毎にプログラム可能である、請求項10
に記載の回路。 - 【請求項16】 n=6、m=4、x=32、およびy=
12である、請求項10に記載の回路。 - 【請求項17】 n=3、m=3、x=32であり、y
は、請求項10に記載の前記回路の各クロックサイクル毎
にプログラム可能である、請求項10に記載の回路。 - 【請求項18】 前記n個の複数の乗算器のそれぞれ
は、ダウンシフト値および累算イネーブル情報のデータ
を格納するメモリを有する、請求項10に記載の回路。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/672,613 | 1996-06-28 | ||
US08/672,613 US5784306A (en) | 1996-06-28 | 1996-06-28 | Parallel multiply accumulate array circuit |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1097517A true JPH1097517A (ja) | 1998-04-14 |
Family
ID=24699299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9174661A Withdrawn JPH1097517A (ja) | 1996-06-28 | 1997-06-30 | 並列乗算累算アレイ回路 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5784306A (ja) |
EP (1) | EP0817006A3 (ja) |
JP (1) | JPH1097517A (ja) |
TW (1) | TW341685B (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5948053A (en) * | 1996-09-02 | 1999-09-07 | Yamaha Corporation | Digital signal processor architecture using signal paths to carry out arithmetic operations |
US5977983A (en) * | 1997-02-20 | 1999-11-02 | S3 Incorporated | Method and apparatus for adjusting graphics processing procedures based on a selectable speed/quality gauge |
JP3033511B2 (ja) * | 1997-03-03 | 2000-04-17 | 富士ゼロックス株式会社 | 大規模積和演算処理方法及び装置 |
US6175912B1 (en) * | 1997-11-14 | 2001-01-16 | Lucent Technologies, Inc. | Accumulator read port arbitration logic |
DE69941287D1 (de) * | 1998-01-21 | 2009-10-01 | Panasonic Corp | Verfahren und apparat für arithmetische operationen |
US6230180B1 (en) | 1998-10-14 | 2001-05-08 | Conexant Systems, Inc. | Digital signal processor configuration including multiplying units coupled to plural accumlators for enhanced parallel mac processing |
US6754805B1 (en) | 2000-08-07 | 2004-06-22 | Transwitch Corporation | Method and apparatus for configurable multi-cell digital signal processing employing global parallel configuration |
US6401106B1 (en) * | 2000-08-07 | 2002-06-04 | Systems On Silicon, Inc. | Methods and apparatus for performing correlation operations |
US6466958B1 (en) * | 2000-09-12 | 2002-10-15 | Interstate Electronics Corporation, A Division Of L3 Communications Corporation | Parallel frequency searching in an acquisition correlator |
US20040133745A1 (en) | 2002-10-28 | 2004-07-08 | Quicksilver Technology, Inc. | Adaptable datapath for a digital processing system |
US7296049B2 (en) * | 2002-03-22 | 2007-11-13 | Intel Corporation | Fast multiplication circuits |
JP2006500850A (ja) * | 2002-09-25 | 2006-01-05 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データを再帰的に計算するための回路 |
US7849283B2 (en) * | 2007-04-17 | 2010-12-07 | L-3 Communications Integrated Systems L.P. | Linear combiner weight memory |
RU2630386C1 (ru) * | 2016-11-28 | 2017-09-07 | федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" | Умножитель по модулю |
CN112434256B (zh) * | 2020-12-03 | 2022-09-13 | 海光信息技术股份有限公司 | 矩阵乘法器和处理器 |
TWI798640B (zh) * | 2021-02-09 | 2023-04-11 | 新唐科技股份有限公司 | 常數乘法器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0466997A1 (en) * | 1990-07-18 | 1992-01-22 | International Business Machines Corporation | Improved digital signal processor architecture |
DE4218769A1 (de) * | 1992-06-06 | 1993-12-09 | Philips Patentverwaltung | Verfahren und Anordnung zum Bilden der Summe einer Kette von Produkten |
JP3182241B2 (ja) * | 1992-12-25 | 2001-07-03 | 富士通株式会社 | 逆数演算方法及び回路 |
CA2091539A1 (en) * | 1993-03-11 | 1994-09-12 | Jan Fandrianto | Video compression/decompression processing and processors |
SG52303A1 (en) * | 1993-12-20 | 1998-09-28 | Motorola Inc | Arithmetic engine |
-
1996
- 1996-06-28 US US08/672,613 patent/US5784306A/en not_active Expired - Lifetime
-
1997
- 1997-06-03 TW TW086107627A patent/TW341685B/zh active
- 1997-06-25 EP EP97304510A patent/EP0817006A3/en not_active Withdrawn
- 1997-06-30 JP JP9174661A patent/JPH1097517A/ja not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US5784306A (en) | 1998-07-21 |
EP0817006A2 (en) | 1998-01-07 |
TW341685B (en) | 1998-10-01 |
EP0817006A3 (en) | 1998-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4589067A (en) | Full floating point vector processor with dynamically configurable multifunction pipelined ALU | |
JP3869269B2 (ja) | 単一サイクルにおける乗算累算演算の処理 | |
US5844830A (en) | Executing computer instrucrions by circuits having different latencies | |
JPH1097517A (ja) | 並列乗算累算アレイ回路 | |
US5261113A (en) | Apparatus and method for single operand register array for vector and scalar data processing operations | |
US5768170A (en) | Method and apparatus for performing microprocessor integer division operations using floating point hardware | |
EP0517429A2 (en) | CPU with integrated multiply/accumulate unit | |
JPH10187438A (ja) | 乗算器の入力に対する遷移を減少させる方法 | |
JPH10124484A (ja) | データプロセッサ及びデータ処理システム | |
JPH0850575A (ja) | プログラマブルプロセッサ、前記プログラマブルプロセッサを用いてデジタル信号処理を行なうための方法およびその改良 | |
CN111353126A (zh) | 分块矩阵乘法运算系统 | |
JP2511914B2 (ja) | 複素乗算器及び複素乗算方法 | |
JP3418460B2 (ja) | 倍精度除算回路および方法 | |
JPS6125188B2 (ja) | ||
KR100911786B1 (ko) | 다목적 승산-가산 기능 유닛 | |
US6463451B2 (en) | High speed digital signal processor | |
US5623683A (en) | Two stage binary multiplier | |
US5957999A (en) | Booth multiplier with squaring operation accelerator | |
JPH096610A (ja) | データ処理システムにおいて複合命令の実行中にオペランドを交換するための方法およびシステム | |
Kratz et al. | A microprogrammed approach to signal processing | |
JPH11327875A (ja) | 演算回路 | |
US5539684A (en) | Method and apparatus for calculating floating point exponent values | |
JPH1173408A (ja) | 演算処理システム及び演算処理方法 | |
EP1936492A1 (en) | SIMD processor with reduction unit | |
JP3252954B2 (ja) | 乗算方法および乗算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20040907 |