IP Library › Granted Patent US 9,158,539
Granted Patent B2
US 9,158,539 · App. 13/499,836 · Granted Oct 13, 2015

Enhanced precision sum-of-products calculation using high order bits register operand and respective low order bits cache entry

Inventor: Martin Raubuch (Baldham, DE)
Assignee: RACORS GmbH
G06F9/30014G06F7/49942G06F7/5443G06F9/30112G06F9/30138
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,158,539
App. No.
13/499,836
Granted
Oct 13, 2015
Kind
B2
Abstract

A microprocessor, a method for enhanced precision sum-of-products calculation and a video decoding device are provided, in which at least one general-purpose-register is arranged to provide a number of destination bits to a multiply unit, and a control unit is adapted to provide at least a multiply-high instruction and a multiply-high-and-accumulate instruction to the multiply unit. The multiply unit is arranged to receive at least first and second source operands having an associated number of source bits, a sum of source bits exceeding the number of destination bits, connected to a register-extension cache comprising at least one cache entry arranged to store a number of precision-enhancement bits, and adapted to store a destination portion of a result operand in the general-purpose-register and a precision enhancement portion in the cache entry. The result operand is generated by a multiply-high operation or by a multiply-high-and-accumulate operation, depending on the received instructions.

Claims (35)

1. A microprocessor, comprising:

a multiply unit;

at least one general-purpose-register arranged to store and provide a number of destination bits to said multiply unit;

a control unit adapted to provide at least a multiply-high instruction and a multiply-high-and-accumulate instruction to said multiply unit

wherein said multiply unit further is

arranged to receive at least a first and a second source operand, each source operand having an associated number of source bits and a sum of said associated numbers of source bits exceeding the number of destination bits;

connected to a register-extension cache comprising at least one cache entry arranged to store and provide precision-enhancement bits; and

adapted to store

a destination portion comprising high order bits of a result operand in said general-purpose-register and

a precision-enhancement portion comprising low order bits of said result operand in said cache entry; said result operand generated by a multiply-high operation when receiving said multiply-high instruction and by a multiply-high-and-accumulate operation when receiving said multiply-high-and-accumulate instruction,

wherein said multiply-high-and-accumulate operation comprises generating said result operand using a sum of an intermediate result operand generated from a multiply-high operation using said at least first and second source operands and a concatenation of a preceding destination portion previously stored in said at least one general-purpose-register and a corresponding preceding precision-enhancement portion previously stored in said at least one cache entry,

the microprocessor further comprising a plurality of general-purpose-registers, each having a register identifier, wherein said control unit is adapted to provide a destination identifier matching one of said register identifiers to said multiply unit, said multiply unit adapted to store said destination portion in said general-purpose-register identified by said destination identifier,

wherein said register-extension cache comprises a plurality of said cache entries, each identified using a cache entry identifier corresponding to one of said register identifiers and wherein said multiply unit is adapted to generate said result operand using said destination portion and a precision enhancement portion provided by a cache entry having said cache entry identifier matching said destination identifier.

2. The microprocessor as claimed in claim 1 , wherein said sum of said associated numbers of source bits exceeds a sum of said number of destination bits and said precision-enhancement bits.

3. The microprocessor as claimed in claim 1 , wherein said multiply-high-operation comprises a multiply-high-and-negate operation and said multiply-high-and-accumulate operation comprises a multiply-high-negate-and-accumulate operation.

4. The microprocessor as claimed in claim 1 , wherein said multiply unit comprises said register-extension cache.

5. The microprocessor as claimed in claim 1 , wherein said multiply-high operation and said multiply-high-and-accumulate operation are implemented as Single Instruction Multiple Data operations.

6. The microprocessor as claimed in claim 1 , wherein the microprocessor is arranged to perform an inverse discrete cosine transform calculation.

7. The microprocessor as claimed in claim 6 , wherein said number of precision-enhancement bits is selected to allow for said inverse discrete cosine transform calculation having a precision according to IEEE-1180-1990 compliance test.

8. A video decoding device comprising a microprocessor as claimed in claim 1 .

9. A method for enhanced precision sum-of-products calculation on a microprocessor comprising a multiply unit, at least one general-purpose register arranged to store and provide destination bits to said multiply unit, and a register-extension cache comprising at least one cache entry arranged to store and provide precision-enhancement bits, said method comprising the steps of:

receiving a multiply-high instruction;

receiving at least a first and a second source operand, each source operand having an associated number of source bits and a sum of said associated numbers of source bits exceeding the number of destination bits;

generating a result operand by executing a multiply-high operation using said at least first and second source operands;

storing a destination portion comprising high order bits of said result operand in said general-purpose-register and a precision-enhancement portion comprising low order bits of said result operand in said cache entry;

for each component of a multiply-high-and-accumulate sequence

receiving a multiply-high-and-accumulate instruction;

receiving said at least first and second source operand;

updating said result operand by executing a multiply-high-and-accumulate operation using a sum of a new result operand generated from a multiply-high operation using said at least first and second source operands and a concatenation of a preceding destination portion previously stored in said at least one general-purpose-register and a corresponding preceding precision-enhancement portion previously stored in said at least one cache entry; and

storing an updated destination portion of said result operand in said general-purpose-register and an updated precision-enhancement portion of said result operand in said cache entry,

wherein said microprocessor further comprises a plurality of general-purpose-registers, each having a register identifier, and said register-extension cache comprises a plurality of said cache entries, each identified using a cache entry identifier corresponding to one of said register identifiers; the method comprising the steps of:

providing a destination identifier matching one of said register identifiers to said multiply unit; and

generating said result operand using said destination portion and a precision enhancement portion provided by a cache entry having said cache entry identifier matching said destination identifier;

wherein said step of storing a destination portion comprising the high order bits of said result operand in said general-purpose-register and a precision-enhancement portion comprising the low order bits of said result operand in said cache entry comprises storing said destination portion in said general-purpose-register identified by said destination identifier.

10. A computer program product comprising a tangible storage medium including a computer code for executing the steps of the method as claimed in claim 9 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2014
From: RAUBUCH, MARTIN
To: RACORS GMBH
Reel/Frame 032201/0955 →
Continuity (1)
Related Publication 20120198212A1 · Aug 2, 2012