Vector SIMD VLIW Data Path Architecture
US-2015154024-A1 · Jun 4, 2015 · US
US10061559B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10061559-B2 |
| Application number | US-201615134842-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 21, 2016 |
| Priority date | Sep 9, 2015 |
| Publication date | Aug 28, 2018 |
| Grant date | Aug 28, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Methods and apparatuses for performing arithmetic operations efficiently and quickly are described. Such arithmetic operations include, but are not limited to, multiplying 2N bit integers, multiplying multiple N-bit integers simultaneously, multiplying 2N bit complex numbers, and other multiplication operations involving coefficients, complex numbers, and complex conjugate numbers.
Opening claim text (preview).
What is claimed is: 1. A method for operating an arithmetic apparatus, the method comprising: receiving, using an input unit of the arithmetic apparatus, first multiplication data, second multiplication data, third multiplication data, and fourth multiplication data, each comprising 2N bits; dividing, using a partition unit, the second multiplication data into first partition data and second partition data, each comprising N bits; dividing, using the partition unit, the third multiplication data into third partition data and fourth partition data, each comprising N bits; generating, using a first carry save adder, first carry data and first addition data by performing an arithmetic operation with respect to the first multiplication data, the first partition data, and the third partition data; generating, using an arithmetic operation controller, first operation data based on the fourth multiplication data according to the arithmetic operation command; generating, using a second carry save adder, second carry data and second addition data by performing the arithmetic operation with respect to the fourth multiplication data, the second partition data, and the fourth partition data; generating, using the arithmetic operation controller, second operation data based on the third multiplication data according to the arithmetic operation command; generating, using the arithmetic operation controller, a first output based on at least one input of the first multiplication data, the first carry data, the first addition data, and the first operation data according to the arithmetic operation command; and generating, using the arithmetic operation controller, a second output based on at least one input of the second multiplication data, the second carry data, the second addition data, and the second operation data according to the arithmetic operation command, herein dividing the second multiplication data into the first partition data and the second partition data and dividing the third multiplication data into the third partition data and the fourth partition data are performed simultaneously, herein generating the first carry data and the first addition data, generating the first operation data, generating the second carry data and the second addition data, and generating the second operation data are performed simultaneously, and wherein generating the first output and generating the second output are performed simultaneously. 2. The method of claim 1 , wherein generating the first carry data and the first addition data comprises: adding the first multiplication data, the first partition data, and the third partition data using the first carry save adder, and wherein generating the second carry data and the second addition data comprises: adding the fourth multiplication data, the second partition data, and the fourth partition data using the second carry save adder. 3. The method of claim 2 , further comprising: receiving first partial data, second partial data, third partial data, and fourth partial data, each comprising N bits; generating the first multiplication data by multiplying the first partial data and the third partial data; generating the second multiplication data by multiplying the second partial data and the third partial data; generating the third multiplication data by multiplying the first partial data and the fourth partial data; and generating the fourth multiplication data by multiplying the second partial data and the fourth partial data, wherein generating the first multiplication data, generating the second multiplication data, generating the third multiplication data, and generating the fourth multiplication data are performed simultaneously. 4. The method of claim 3 , further comprising: receiving first data and second data, each comprising 2N bits; dividing the first data into the first partial data and the second partial data; and dividing the second data into the third partial data and the fourth partial data, wherein dividing the first data and dividing the second data are performed simultaneously. 5. The method of claim 4 , wherein each of the first data and the second data is a 2N-bit integer, wherein the arithmetic operation command comprises a command to multiply the first data and the second data, wherein generating the first output comprises: adding the first carry data and the first addition data according to the arithmetic operation command, and wherein generating the second output comprises: adding the second carry data and the second addition data according to the arithmetic operation command. 6. The method of claim 4 , wherein each of the first partial data through fourth partial data is a N-bit integer, wherein the arithmetic operation command comprises a command to multiply the first partial data and the third partial data, and a command to multiply the second partial data and the fourth partial data, wherein the method further comprises: setting the second multiplication data and the third multiplication data to 0, wherein generating the first output comprises: adding the first carry data and the first addition data according to the arithmetic operation command, and wherein generating the second output comprises: adding the second carry data and the second addition data according to the arithmetic operation command. 7. The method of claim 4 , wherein the first data is a complex number which comprises the first partial data as a real part and the second partial data as an imaginary part, wherein the second data is a complex number which comprises the third partial data as a real part and the fourth partial data as an imaginary part, wherein the arithmetic operation command comprises a command to multiply the first data and the second data, wherein generating the first operation data comprises: performing a NOT operation with respect to the fourth multiplication data according to the arithmetic operation command, wherein the second operation data is generated with the third multiplication data according to the arithmetic operation command, wherein generating the first output comprises: adding the first multiplication data and the first operation data according to the arithmetic operation command, and wherein generating the second output comprises: adding the second multiplication data and the second operation data according to the arithmetic operation command. 8. The method of claim 4 , wherein the first data is a complex number which comprises the first partial data as a real part and the second partial data as an imaginary part, wherein the second data is a complex number which comprises the third partial data as a real part and the fourth partial data as an imaginary part, wherein the arithmetic operation command comprises a command to multiply the first data and a conjugate complex number of the second data, wherein the first operation data is generated with the fourth multiplication data according to the arithmetic operation command, wherein generating the second operation data comprises: performing a NOT operation with respect to the third multiplication data according to the arithmetic operation command, wherein generating the first output comprises: adding the first multiplication data and the first operation data according to the arithmetic operation command, and wherein generating the second output comprises: adding the second multiplication data and the second operation data according to the arithmetic operation command. 9. The method of claim 4 , wherein the first data is a complex number which comprises the first partial data as a real part and the second partial data as an imaginary part, wherei
Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations {(G06F7/49, G06F7/491 take precedence)} · CPC title
partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers · CPC title
Multiplying only · CPC title
Complex multiplication · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.