JP2008117389A - リコンフィギュラブルsimdベクトル処理システム - Google Patents
リコンフィギュラブルsimdベクトル処理システム Download PDFInfo
- Publication number
- JP2008117389A JP2008117389A JP2007276990A JP2007276990A JP2008117389A JP 2008117389 A JP2008117389 A JP 2008117389A JP 2007276990 A JP2007276990 A JP 2007276990A JP 2007276990 A JP2007276990 A JP 2007276990A JP 2008117389 A JP2008117389 A JP 2008117389A
- Authority
- JP
- Japan
- Prior art keywords
- bits
- bit
- product
- sum
- carry
- 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.)
- Granted
Links
Images
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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
- G06F7/5324—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3828—Multigauge devices, i.e. capable of handling packed numbers without unpacking them
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Advance Control (AREA)
Abstract
【解決手段】システムであって、冗長形式で表される2Nビットの積をM個出力するM個のNビット×Nビット乗算器と、M個の2Nビットの積を受け取り、M個の2Nビットの積に基づいて冗長形式で表されるMNビットの積を生成するコンプレッサと、M個の2Nビットの積およびMNビットの積を受け取り、M個の2Nビットの積およびMNビットの積のうちいずれかを選択し、選択した積を非冗長形式に変換する加算器ブロックとを備えるシステムを提供する。
【選択図】図1
Description
Claims (16)
- 回路であって、
一の冗長形式で表される2Nビットの積をM個出力するM個のNビット×Nビット乗算器と、
前記M個の2Nビットの積を受け取り、当該M個の2Nビットの積に基づいて一の冗長形式で表される一のMNビットの積を生成する一のコンプレッサと、
前記M個の2Nビットの積および前記MNビットの積を受け取り、前記M個の2Nビットの積および前記MNビットの積のうちいずれかを選択し、選択した積を一の非冗長形式に変換する一の加算器ブロックと
を備える回路。 - 前記M個の2Nビットの積のうち一の第1の2Nビットの積は、一の第1数の一の上位Nビットと一の第2数の一の上位Nビットとの一の積であり、
前記M個の2Nビットの積のうち一の第2の2Nビットの積は、前記第1数の一の下位Nビットと前記第2数の前記上位Nビットとの一の積であり、
前記M個の2Nビットの積のうち一の第3の2Nビットの積は、前記第1数の前記上位Nビットと前記第2数の一の下位Nビットとの一の積であり、
前記M個の2Nビットの積のうち一の第4の2Nビットの積は、前記第1数の前記下位Nビットと前記第2数の前記下位Nビットとの一の積であり、
前記コンプレッサが生成する前記MNビットの積は、前記第1数と第2数の乗算結果に等しい
請求項1に記載の回路。 - 前記加算器ブロックはさらに、前記MNビットの積のうちMN個のCarryビットを選択し、前記MNビットの積のうちMN個のSumビットを選択し、前記選択したMN個のCarryビットとMN個のSumビットを加算して前記MNビットの積を一の非冗長形式へと変換する
請求項2に記載の回路。 - 一の第1モードにおいて、前記加算器ブロックは、
前記M個の2Nビットの積のうち一の第1の2Nビットの積の、一の上位N個のCarryビットおよび一の上位N個のSumビットおよび、前記M個の2Nビットの積のうち一の第2の2Nビットの積の、一の上位N個のCarryビットおよび一の上位N個のSumビットを受け取り、
前記第1の2Nビットの積と前記第2の2Nビットの積の前記上位N個のCarryビットおよび前記第1の2Nビットの積および前記第2の2Nビットの積の前記上位N個のSumビットを選択するか、もしくは前記第1の2Nビットの積と前記第2の2Nビットの積の前記下位N個のCarryビットおよび前記第1の2Nビットの積および前記第2の2Nビットの積の前記下位N個のSumビットを選択し、
前記第1の2Nビットの積のうち選択されたN個のCarryビットと、前記第1の2Nビットの積のうち選択されたN個のSumビットを加算し、
前記第2の2Nビットの積のうち選択されたN個のCarryビットと、前記第2の2Nビットの積のうち選択されたN個のSumビットを加算する
請求項1に記載の回路。 - 前記第1モードにおいて、前記加算器ブロックは複数のNビット境界での桁上げの伝播を行わないようにする
請求項4に記載の回路。 - 前記加算器ブロックはさらに、
バイナリ形式で表される、一のMNビットの第1数および一のMNビットの第2数を受け取り、
前記MNビットの第1数および前記MNビットの第2数はそれぞれ、1つのオペランド、M/2個のオペランドもしくはM個のオペランドのうちいずれを示しているか判断し、
前記MNビットの第1数および前記MNビットの第2数はそれぞれ、M個のオペランドを示していると判断された場合、複数のNビットの境界で桁上げの伝播をしないようにして、
前記MNビットの第1数および前記MNビットの第2数はそれぞれ、M/2個のオペランドを示していると判断された場合、複数の2Nビットの境界で桁上げの伝播をしないようにして、
前記MNビットの第1数および前記MNビットの第2数を加算して一の和を生成し、
前記生成された和に基づくと共に前記MNビットの第1数および前記MNビットの第2数はそれぞれ、1つのオペランド、M/2個のオペランドもしくはM個のオペランドのうちいずれを示しているかに基づいて、1以上の所望の和を決定する
請求項1に記載の回路。 - 方法であって、
M個のNビット×Nビット乗算器のそれぞれから、一の冗長形式で表される2Nビットの積をM個受け取ることと、
前記M個の2Nビットの積、または一のコンプレッサから出力された一の冗長形式で表される一のMNビットの積のうちいずれかを選択することと、
前記M個の2Nビットの積および前記MNビットの積のうち選択された積を一の非冗長形式に変換することと
を含む方法。 - 前記M個の2Nビットの積のうち一の第1の2Nビットの積は、一の第1数の一の上位Nビットと一の第2数の一の上位Nビットとの一の積であり、
前記M個の2Nビットの積のうち一の第2の2Nビットの積は、前記第1数の一の下位Nビットと前記第2数の前記上位Nビットとの一の積であり、
前記M個の2Nビットの積のうち一の第3の2Nビットの積は、前記第1数の前記上位Nビットと前記第2数の一の下位Nビットとの一の積であり、
前記M個の2Nビットの積のうち一の第4の2Nビットの積は、前記第1数の前記下位Nビットと前記第2数の前記下位Nビットとの一の積であり、
前記コンプレッサが生成する前記MNビットの積は、前記第1数と第2数の乗算結果に等しい
請求項7に記載の方法。 - 前記M個の2Nビットの積および前記MNビットの積のうちいずれかを選択することは、
前記MNビットの積のうちMN個のCarryビットを選択することと、
前記MNビットの積のうちMN個のSumビットを選択することと
を含み、
前記M個の2Nビットの積および前記MNビットの積のうち選択された積を前記非冗長形式に変換することは、
前記選択したMN個のCarryビットとMN個のSumビットを加算して前記MNビットの積を前記非冗長形式へと変換することを含む
請求項8に記載の方法。 - 前記M個の2Nビットの積および前記MNビットの積のうちいずれかを選択することは、
前記M個の2Nビットの積のうち一の第1の2Nビットの積の、一の上位N個のCarryビットおよび一の上位N個のSumビットおよび、前記M個の2Nビットの積のうち一の第2の2Nビットの積の、一の上位N個のCarryビットおよび一の上位N個のSumビットを受け取ることと、
前記第1の2Nビットの積と前記第2の2Nビットの積の前記上位N個のCarryビットおよび前記第1の2Nビットの積および前記第2の2Nビットの積の前記上位N個のSumビット、もしくは前記第1の2Nビットの積と前記第2の2Nビットの積の前記下位N個のCarryビットおよび前記第1の2Nビットの積および前記第2の2Nビットの積の前記下位N個のSumビットを選択すること
を含み、
前記M個の2Nビットの積および前記MNビットの積のうち選択された積を前記非冗長形式に変換することは、
前記第1の2Nビットの積のうち選択されたN個のCarryビットと、前記第1の2Nビットの積のうち選択されたN個のSumビットを加算することと、
前記第2の2Nビットの積のうち選択されたN個のCarryビットと、前記第2の2Nビットの積のうち選択されたN個のSumビットを加算することと
を含む
請求項7に記載の方法。 - 前記第1の2Nビットの積のうち選択されたN個のCarryビットと、前記第1の2Nビットの積のうち選択されたN個のSumビットを加算することは、複数のNビットの境界で桁上げの伝播を行わないようにすることを含む
請求項10に記載の方法。 - 前記受け取ることはさらに、バイナリ形式で表される、一のMNビットの第1数および一のMNビットの第2数を受け取ることを含み、
前記M個の2Nビットの積および前記MNビットの積のうち選択された積を一の非冗長形式に変換することは、
前記MNビットの第1数および前記MNビットの第2数はそれぞれ、1つのオペランド、M/2個のオペランドもしくはM個のオペランドのうちいずれを示しているか判断することと、
前記MNビットの第1数および前記MNビットの第2数はそれぞれ、M個のオペランドを示していると判断された場合、複数のNビットの境界で桁上げの伝播をしないようにすることと、
前記MNビットの第1数および前記MNビットの第2数はそれぞれ、M/2個のオペランドを示していると判断された場合、複数の2Nビットの境界で桁上げの伝播をしないようにすることと、
前記MNビットの第1数および前記MNビットの第2数を加算して一の和を生成することと、
前記生成された和および前記MNビットの第1数および前記MNビットの第2数はそれぞれ、1つのオペランド、M/2個のオペランドもしくはM個のオペランドのうちいずれを示しているかに基づいて、1以上の所望の和を決定することと
を含む
請求項7に記載の方法。 - システムであって、
一のプロセッサ
を備え、当該プロセッサは、
一の冗長形式で表される2Nビットの積をM個出力するM個のNビット×Nビット乗算器と、
前記M個の2Nビットの積を受け取り、当該M個の2Nビットの積に基づいて一の冗長形式で表される一のMNビットの積を生成する一のコンプレッサと、
前記M個の2Nビットの積および前記MNビットの積を受け取り、前記M個の2Nビットの積および前記MNビットの積のうちいずれかを選択し、選択した積を一の非冗長形式に変換する一の加算器ブロックと、
前記プロセッサに接続された一のダブル・データ・レート・メモリと
を有するシステム。 - 前記M個の2Nビットの積のうち一の第1の2Nビットの積は、一の第1数の一の上位Nビットと一の第2数の一の上位Nビットとの一の積であり、
前記M個の2Nビットの積のうち一の第2の2Nビットの積は、前記第1数の一の下位Nビットと前記第2数の前記上位Nビットとの一の積であり、
前記M個の2Nビットの積のうち一の第3の2Nビットの積は、前記第1数の前記上位Nビットと前記第2数の一の下位Nビットとの一の積であり、
前記M個の2Nビットの積のうち一の第4の2Nビットの積は、前記第1数の前記下位Nビットと前記第2数の前記下位Nビットとの一の積であり、
前記コンプレッサが生成する前記MNビットの積は、前記第1数と第2数の乗算結果に等しく
前記加算器ブロックはさらに、前記MNビットの積のうちMN個のCarryビットを選択し、前記MNビットの積のうちMN個のSumビットを選択し、前記選択したMN個のCarryビットとMN個のSumビットを加算して前記MNビットの積を一の非冗長形式へと変換する
請求項13に記載のシステム。 - 一の第1モードにおいて、前記加算器ブロックは、
前記M個の2Nビットの積のうち一の第1の2Nビットの積の、一の上位N個のCarryビットおよび一の上位N個のSumビットおよび、前記M個の2Nビットの積のうち一の第2の2Nビットの積の、一の上位N個のCarryビットおよび一の上位N個のSumビットを受け取り、
前記第1の2Nビットの積と前記第2の2Nビットの積の前記上位N個のCarryビットおよび前記第1の2Nビットの積および前記第2の2Nビットの積の前記上位N個のSumビットを選択するか、もしくは前記第1の2Nビットの積と前記第2の2Nビットの積の前記下位N個のCarryビットおよび前記第1の2Nビットの積および前記第2の2Nビットの積の前記下位N個のSumビットを選択し、
前記第1の2Nビットの積のうち選択されたN個のCarryビットと、前記第1の2Nビットの積のうち選択されたN個のSumビットを加算し、
前記第2の2Nビットの積のうち選択されたN個のCarryビットと、前記第2の2Nビットの積のうち選択されたN個のSumビットを加算し、
複数のNビット境界での桁上げの伝播を行わないようにする
請求項13に記載のシステム。 - 前記加算器ブロックはさらに、
バイナリ形式で表される、一のMNビットの第1数および一のMNビットの第2数を受け取り、
前記MNビットの第1数および前記MNビットの第2数はそれぞれ、1つのオペランド、M/2個のオペランドもしくはM個のオペランドのうちいずれを示しているか判断し、
前記MNビットの第1数および前記MNビットの第2数はそれぞれ、M個のオペランドを示していると判断された場合、複数のNビットの境界で桁上げの伝播をしないようにして、
前記MNビットの第1数および前記MNビットの第2数はそれぞれ、M/2個のオペランドを示していると判断された場合、複数の2Nビットの境界で桁上げの伝播をしないようにして、
前記MNビットの第1数および前記MNビットの第2数を加算して一の和を生成し、
前記生成された和に基づくと共に前記MNビットの第1数および前記MNビットの第2数はそれぞれ、1つのオペランド、M/2個のオペランドもしくはM個のオペランドのうちいずれを示しているかに基づいて、1以上の所望の和を決定する
請求項13に記載のシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/586,810 US7519646B2 (en) | 2006-10-26 | 2006-10-26 | Reconfigurable SIMD vector processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008117389A true JP2008117389A (ja) | 2008-05-22 |
JP4469389B2 JP4469389B2 (ja) | 2010-05-26 |
Family
ID=39331651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007276990A Expired - Fee Related JP4469389B2 (ja) | 2006-10-26 | 2007-10-24 | リコンフィギュラブルsimdベクトル処理システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7519646B2 (ja) |
JP (1) | JP4469389B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8620980B1 (en) | 2005-09-27 | 2013-12-31 | Altera Corporation | Programmable device with specialized multiplier blocks |
US8650236B1 (en) | 2009-08-04 | 2014-02-11 | Altera Corporation | High-rate interpolation or decimation filter in integrated circuit device |
US8601044B2 (en) * | 2010-03-02 | 2013-12-03 | Altera Corporation | Discrete Fourier Transform in an integrated circuit device |
US8645451B2 (en) * | 2011-03-10 | 2014-02-04 | Altera Corporation | Double-clocked specialized processing block in an integrated circuit device |
KR102057648B1 (ko) | 2013-01-04 | 2019-12-20 | 삼성전자주식회사 | 중복 형태 리코딩을 이용한 곱셈 방법 및 모듈러 곱셈기 |
US9275014B2 (en) | 2013-03-13 | 2016-03-01 | Qualcomm Incorporated | Vector processing engines having programmable data path configurations for providing multi-mode radix-2x butterfly vector processing circuits, and related vector processors, systems, and methods |
US9495154B2 (en) | 2013-03-13 | 2016-11-15 | Qualcomm Incorporated | Vector processing engines having programmable data path configurations for providing multi-mode vector processing, and related vector processors, systems, and methods |
US9354891B2 (en) | 2013-05-29 | 2016-05-31 | Apple Inc. | Increasing macroscalar instruction level parallelism |
US9600235B2 (en) * | 2013-09-13 | 2017-03-21 | Nvidia Corporation | Technique for performing arbitrary width integer arithmetic operations using fixed width elements |
US10120649B2 (en) | 2016-07-29 | 2018-11-06 | Microunity Systems Engineering, Inc. | Processor and method for outer product accumulate operations |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4594679A (en) * | 1983-07-21 | 1986-06-10 | International Business Machines Corporation | High speed hardware multiplier for fixed floating point operands |
JPS6284335A (ja) * | 1985-10-09 | 1987-04-17 | Hitachi Ltd | 乗算回路 |
US4989168A (en) * | 1987-11-30 | 1991-01-29 | Fujitsu Limited | Multiplying unit in a computer system, capable of population counting |
JP3139466B2 (ja) * | 1998-08-28 | 2001-02-26 | 日本電気株式会社 | 乗算器及び積和演算器 |
US6421698B1 (en) * | 1998-11-04 | 2002-07-16 | Teleman Multimedia, Inc. | Multipurpose processor for motion estimation, pixel processing, and general processing |
-
2006
- 2006-10-26 US US11/586,810 patent/US7519646B2/en active Active
-
2007
- 2007-10-24 JP JP2007276990A patent/JP4469389B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20080104164A1 (en) | 2008-05-01 |
JP4469389B2 (ja) | 2010-05-26 |
US7519646B2 (en) | 2009-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4469389B2 (ja) | リコンフィギュラブルsimdベクトル処理システム | |
US9176709B2 (en) | Shared integer, floating point, polynomial, and vector multiplier | |
US6564238B1 (en) | Data processing apparatus and method for performing different word-length arithmetic operations | |
KR100834178B1 (ko) | Mac 연산 방법과 mac 연산을 포함하는 장치, 시스템 및 머신 판독가능한 매체 | |
CN116522058A (zh) | 可重新配置的矩阵乘法器系统和方法 | |
JP3940542B2 (ja) | データプロセッサ及びデータ処理システム | |
US8046564B2 (en) | Reconfigurable paired processing element array configured with context generated each cycle by FSM controller for multi-cycle floating point operation | |
JP3667635B2 (ja) | 演算装置 | |
KR20110114698A (ko) | 부스 곱셈 방법들 및 시스템들을 위한 전력-효율적인 부호 확장 | |
KR20030011071A (ko) | 결합된 곱셈-축적 유닛을 가지고 있는 디지털 신호 프로세서 | |
US8069200B2 (en) | Apparatus and method for implementing floating point additive and shift operations | |
KR100935858B1 (ko) | 재구성 가능한 산술연산기 및 이를 구비한 고효율 프로세서 | |
US6999985B2 (en) | Single instruction multiple data processing | |
WO2011051769A2 (en) | Method and system for determining a quotient value | |
US20170322808A1 (en) | Low-power processor with support for multiple precision modes | |
JP3935678B2 (ja) | Simd積和演算方法、積和演算回路、および、半導体集積回路装置 | |
JPH09231201A (ja) | 浮動小数点乗算累算装置 | |
US9910638B1 (en) | Computer-based square root and division operations | |
KR20080094812A (ko) | 개선된 감소 트리 회로를 갖는 부스 곱셈기 | |
US20170068518A1 (en) | Apparatus and method for controlling operation | |
US6725360B1 (en) | Selectively processing different size data in multiplier and ALU paths in parallel | |
Akbarzadeh et al. | Efficient multiply-add unit specified for DSPs utilizing low-power pipeline modulo 2n+ 1 multiplier | |
US20240053962A1 (en) | Absolute Difference Circuitry with Parallel Comparison Logic | |
US20060004903A1 (en) | CSA tree constellation | |
JP5464770B2 (ja) | 1クロック・サイクル中にメモリ・コアを複数回アクセスする方法と装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20100209 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100226 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4469389 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130305 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130305 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140305 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |