IP Library Granted Patent US 10,268,605
Granted Patent B1
US 10,268,605 · App. 14/686,326 · Granted Apr 23, 2019

Hybrid architecture for signal processing and signal processing accelerator

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,268,605
App. No.
14/686,326
Granted
Apr 23, 2019
Kind
B1
Abstract

Systems and methods for configuring a SPA are disclosed. The SPA comprises a plurality of input ports, a plurality of data memory units, signal processing circuitry, and an enable block including at least two counters. Each counter determines an amount of unprocessed data that is stored in a respective one of the plurality of data memory units, and the enable block is configured to disable the signal processing circuitry until a predetermined amount of data is received over the input ports.

Claims (39)

1. A signal processing accelerator (SPA), comprising:

a plurality of input ports comprising:

a first set of input ports that receives data from a first network node coupled to the SPA and to a first adjacent SPA; and

a second set of input ports that receives data from the first adjacent SPA;

a plurality of output ports comprising:

a first set of output ports that outputs data to a second network node coupled to the SPA and to a second adjacent SPA; and

a second set of output ports that outputs data to the second adjacent SPA;

a plurality of data memory units, wherein each data memory unit stores data from a respective input port of the plurality of input ports;

signal processing circuitry; and

an enable block including at least two counters, wherein each counter determines an amount of unprocessed data that is stored in a respective one of the plurality of data memory units, and the enable block is configured to disable the signal processing circuitry until a predetermined amount of data is received into the respective one of the plurality of data memory units over the first set of input ports or the second set of input ports.

2. The SPA of claim 1 , wherein each counter determines the amount of unprocessed data by computing a difference between a read marker address and a write marker address within the respective one of the plurality of data memory units.

3. The SPA of claim 1 , wherein the signal processing circuitry includes two multiply-and-accumulate blocks, each multiply-and-accumulate block comprising a pre-adder, two multipliers, and an accumulator.

4. The SPA of claim 1 , further comprising routing circuitry defining a selected mode of operation.

5. The SPA of claim 4 , wherein the selected mode of operation is selected from a group of modes comprising symmetric scalar multiplication mode, single scalar multiplication mode, complex multiplication mode, mixer mode, superscalar filter mode, oscillator angle mode, and polynomial evaluation mode.

6. The SPA of claim 1 , further comprising an instruction memory unit configured to store microcode for the SPA.

7. The SPA of claim 6 , wherein the microcode includes instructions that vary cycle-to-cycle, and instructions that are fixed cycle-to-cycle are stored in memory mapped control registers.

8. The SPA of claim 7 , wherein the instructions that are fixed include whether the SPA is a master SPA or a slave SPA.

9. The SPA of claim 7 , wherein the instructions that are fixed include a value for at least one threshold parameter for use by the enable block to compare with at least one of the counters.

10. A method comprising:

receiving data at a plurality of input ports of a signal processing accelerator (SPA), wherein the plurality of input ports comprise:

a first set of input ports that receives data from a first network node coupled to the SPA and to a first adjacent SPA; and

a second set of input ports that receives data from the first adjacent SPA;

a plurality of output ports comprising:

a first set of output ports that outputs data to a second network node coupled to the SPA and to a second adjacent SPA; and

a second set of output ports that outputs data to the second adjacent SPA;

storing the data in a plurality of data memory units of the SPA, wherein each data memory unit receives data from a corresponding input port of the plurality of input ports; and

using an enable block to disable signal processing circuitry until a predetermined amount of data is received over the plurality of input ports, wherein the enable block includes at least two counters, and each counter determines an amount of unprocessed data that is stored in a respective one of the plurality of data memory units.

11. The method of claim 10 , wherein each counter determines the amount of unprocessed data by computing a difference between a read marker address and a write marker address within the respective one of the plurality of data memory units.

12. The method of claim 10 , wherein the signal processing circuitry includes two multiply-and-accumulate blocks, each multiply-and-accumulate block comprising a pre-adder, two multipliers, and an accumulator.

13. The method of claim 10 , wherein the SPA further includes routing circuitry defining a selected mode of operation.

14. The method of claim 13 , wherein the selected mode of operation is selected from a group of modes comprising symmetric scalar multiplication mode, single scalar multiplication mode, complex multiplication mode, mixer mode, superscalar filter mode, oscillator angle mode, and polynomial evaluation mode.

15. The method of claim 10 , wherein the SPA further includes an instruction memory unit configured to store microcode for the SPA.

16. The method of claim 15 , wherein the microcode includes instructions that vary cycle-to-cycle, and instructions that are fixed cycle-to-cycle are stored in memory mapped control registers.

17. The method of claim 16 , wherein the instructions that are fixed include whether the SPA is a master SPA or a slave SPA.

18. The method of claim 16 , wherein the instructions that are fixed include a value for at least one threshold parameter for use by the enable block to compare with at least one of the counters.

19. The method of claim 10 , wherein each data memory unit corresponds to an input port in the plurality of input ports, and at least one of the data memory units is implemented as a first-in-first-out buffer.

20. The SPA of claim 1 , wherein the enable block determines that the predetermined amount of data is received over the first set of input ports, the second set of input ports, or a combination thereof at least in part by performing a logical operation on results of comparisons of the at least two counters with their respective thresholds when each of the at least two counters exceed the respective threshold.

21. The SPA of claim 20 , wherein the logical operation comprises a logical AND.

22. The method of claim 10 , wherein the enable block determines that the predetermined amount of data is received over the plurality of input ports at least in part by performing a logical operation on results of comparisons of the at least two counters with their respective thresholds when each of the at least two counters exceeds the respective threshold.

Assignments (3)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2018
From: PERRY, STEVEN
To: ALTERA CORPORATION
Reel/Frame 045854/0982 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2015
From: PERRY, STEVEN
To: ALTERA CORPORATION
Reel/Frame 035413/0033 →
Cited By (1)
US 12,406,186