IP Library Granted Patent US 10,169,040
Granted Patent B2
US 10,169,040 · App. 15/352,598 · Granted Jan 1, 2019

System and method for sample rate conversion

Inventors: Hagay Rozin (Raanana, IL); Jeffery Allan (Alon) Jacob (Yaakov) (Raanana, IL)
Assignee: Ceva D.S.P. Ltd.
G06F9/30032G06F9/3001G06F9/30036G06F9/30116G06F9/30134G06F17/10
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 10,169,040
App. No.
15/352,598
Granted
Jan 1, 2019
Kind
B2
Abstract

A system and method for performing sample rate conversion by an execution unit, including receiving an instruction, where the instruction comprises an irregular shifting pattern of data elements stored in a vector register, and shifting the data elements in the vector register according to the irregular shifting pattern. In case of upsampling the irregular shifting pattern includes an indication stating whether a memory element loads a data element from an immediate next memory element or from a second next memory element. In case of downsampling the irregular shifting pattern includes an indication stating whether a memory element in the input vector register loads a data element from an immediate next memory element, or whether the memory element loads a data element previously stored in a shadow vector register and the data element stored in the immediate next memory element is loaded into the shadow vector register.

Claims (32)

1. A method for performing sample rate conversion by an execution unit, the method comprising:

receiving an instruction, wherein the instruction comprises an irregular shifting pattern of data elements stored in a vector register; and

shifting the data elements in the vector register according to the irregular shifting pattern,

wherein the sample rate conversion comprises downsampling, and wherein the irregular shifting pattern is provided by an indication stating whether a memory element in the input vector register loads a data element from an immediate next memory element, or whether the memory element loads a data element previously stored in a shadow vector register and the data element stored in the immediate next memory element is loaded into the shadow vector register.

2. The method of claim 1 , further comprising:

multiplying each data element stored in the vector register by a corresponding filter coefficient;

adding each result of the multiplication to a corresponding previous value stored in an output register; and

storing the results of the addition in the output register.

3. The method of claim 1 , wherein the instruction comprises a string of elements, each having one of a first value and a second value, and each corresponding to a memory element of the input register, wherein the first value indicates that the corresponding memory element in the input vector register loads the data element from the immediate next memory element and the second value indicates that the corresponding memory element loads the data element previously stored in the shadow vector register and the data element stored in the immediate next memory element is loaded into the shadow vector register.

4. A processor for performing sample rate conversion, the processor comprising:

a vector register comprising a plurality of memory elements for storing data elements;

a shadow register; and

an execution unit configured to:

receive an instruction, wherein the instruction comprises an irregular shifting pattern for the data elements stored in the vector register; and

shift the data elements in the vector register according to the irregular shifting pattern,

wherein the sample rate conversion comprises downsampling, and wherein the irregular shifting pattern is provided by an indication stating whether a memory element in the input vector register loads a data element from an immediate next memory element, or whether the memory element loads a data element previously stored in the shadow vector register and the data element stored in the immediate next memory element is loaded into the shadow vector register.

5. The processor of claim 4 , further comprising an output register, wherein the execution unit is further configured to:

multiply each data element stored in the vector register by a corresponding filter coefficient;

add each result of the multiplication to a corresponding previous value stored in the output register; and

store the results of the addition in the output register.

6. The processor of claim 4 , wherein the instruction comprises a string of elements, each having one of a first value and a second value, and each corresponding to a memory element of the input register, wherein the first value indicates that the corresponding memory element in the input vector register loads the data element from the immediate next memory element and the second value indicates that the corresponding memory element loads the data element previously stored in the shadow vector register and the data element stored in the immediate next memory element is loaded into the shadow vector register.

7. The processor of claim 4 , further comprising:

a plurality of selection mechanisms, each connected to one of the memory elements and configured to select one of the following inputs: load input, next element input, second next element input, and shadow register input.

8. A method for performing sample rate conversion by a processor, the processor comprising a register for storing data elements, the method comprising:

receiving an indication of an irregular shifting pattern of the data elements stored in the register; and

shifting the data elements in the register according to the irregular shifting pattern,

wherein the sample rate conversion comprises downsampling, and wherein the indication suggests whether a memory element in the input vector register should load a data element from an immediate next memory element, or whether the memory element should load a data element previously stored in a shadow vector register and the data element stored in the immediate next memory element is loaded into the shadow vector register.

9. The method of claim 8 , further comprising:

multiplying each data element stored in the vector register by a corresponding filter coefficient;

adding each result of the multiplication to a corresponding previous value stored in an output register; and

storing the results of the addition in the output register.

10. The method of claim 8 , wherein the irregular shifting pattern comprises a string of elements, each having one of a first value and a second value, and each corresponding to a memory element of the input register, wherein the first value indicates that the corresponding memory element in the input vector register loads the data element from the immediate next memory element and the second value indicates that the corresponding memory element loads the data element previously stored in the shadow vector register and the data element stored in the immediate next memory element is loaded into the shadow vector register.

Assignments (2)
CHANGE OF NAME Recorded Jun 23, 2024
From: CEVA D.S.P. LTD.
To: CEVA TECHNOLOGIES, LTD
Reel/Frame 067808/0876 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2016
From: ROZIN, HAGAY; JACOB (YAAKOV), JEFFREY ALLAN (ALON)
To: CEVA D.S.P. LTD.
Reel/Frame 040478/0833 →
Continuity (1)
Related Publication 20180136935A1 · May 17, 2018