IP Library Granted Patent US 9,319,063
Granted Patent B2
US 9,319,063 · App. 14/096,324 · Granted Apr 19, 2016

Enhanced multi-processor waveform data exchange using compression and decompression

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,319,063
App. No.
14/096,324
Granted
Apr 19, 2016
Kind
B2
Abstract

Configurable compression and decompression of waveform data in a multi-core processing environment improves the efficiency of data transfer between cores and conserves data storage resources. In waveform data processing systems, input, intermediate, and output waveform data are often exchanged between cores and between cores and off-chip memory. At each core, a single configurable compressor and a single configurable decompressor can be configured to compress and to decompress integer or floating-point waveform data. At the memory controller, a configurable compressor compresses integer or floating-point waveform data for transfer to off-chip memory in compressed packets and a configurable decompressor decompresses compressed packets received from the off-chip memory. Compression reduces the memory or storage required to retain waveform data in a semiconductor or magnetic memory. Compression reduces both the latency and the bandwidth required to exchange waveform data. This abstract does not limit the scope of the invention as described in the claims.

Claims (38)

1. A system for processing waveform data, wherein the waveform data comprise samples represented in an integer data format or a floating-point data format, comprising:

a plurality of processor cores and a communications fabric for transfer of data packets among the plurality of processor cores;

compression logic integrated with a source processor core of the plurality of processor cores, wherein the compression logic is operable to compress a plurality of samples from the source processor core in accordance with one or more compression control parameters to form a plurality of compressed samples, the compression logic further including logic to provide the compressed samples to a data portion of a compressed packet and the one or more compression control parameters to a header portion of the compressed packet for transmission on the communication fabric; and

decompression logic integrated with a destination processor core of the plurality of processor cores, wherein the decompression logic is applied to the compressed packet received from the communication fabric to decompress the compressed samples from the data portion of the compressed packet in accordance with the one or more compression control parameters from the header portion of the compressed packet to form a plurality of decompressed samples.

2. The system of claim 1 , wherein each of the plurality of processor cores further comprises the compression logic and the decompression logic integrated with each processor core.

3. The system of claim 1 , wherein one of the compression control parameters is a compression mode parameter indicating a lossless compression mode or a lossy compression mode, wherein the compression logic is operable to apply lossless compression operations or lossy compression operations in accordance with the compression mode parameter.

4. The system of claim 3 , wherein the decompression logic is operable to apply lossless decompression operations or lossy decompression operations in accordance with the compression mode parameter.

5. The system of claim 3 , wherein one of the compression control parameters indicates a desired number of bits per compressed packet or a desired compression ratio, the compression logic further comprising:

logic to calculate a number of bits in the compressed samples per packet for one or more compressed packets;

logic to compare the number of bits in the compressed samples per packet to the desired number of bits per compressed packet to determine a feedback parameter; and

logic to adapt the lossy compression operations in accordance with the feedback parameter.

6. The system of claim 3 , wherein one of the compression control parameters indicates a quality metric of the decompressed samples.

7. The system of claim 1 , wherein one of the compression control parameters is a data type parameter, the data type parameter indicating the integer data format or the floating-point data format of the plurality of samples, wherein the decompression logic forms the plurality of decompressed samples in the integer data format or the floating-point data format in accordance with the data type parameter.

8. The system of claim 1 , wherein the source processor core comprises a central processing unit (CPU), a digital signal processor (DSP) core, a graphics processing unit (GPU), a microcontroller unit (MCU) or a multimedia engine (MME) core.

9. The system of claim 1 , wherein the destination processor core comprises a central processing unit (CPU), a digital signal processor (DSP) core, a graphics processing unit (GPU), a microcontroller unit (MCU) or a multimedia engine (MME) core.

10. The system of claim 1 , wherein the communications fabric further comprises a network-on-chip, wherein the compressed packet is compatible with a packet protocol for the network-on-chip.

11. The system of claim 10 , wherein the source processor core and the destination processor core are integrated on a single die, wherein the source processor core transfers the compressed packets to the destination processor core via the network-on-chip.

12. The system of claim 10 , wherein the source processor core is integrated on a first die and the destination processor core is integrated on a second die in a multichip module, wherein the source processor core transfers the compressed packets to the destination processor core via the network-on-chip.

13. A method for processing waveform data in a system including a plurality of processor cores and a communications fabric for transfer of data packets among the plurality of processor cores, wherein the waveform data comprise samples represented in an integer data format or a floating-point data format, comprising:

compressing a plurality of samples by a source processor core of the plurality of processor cores in accordance with one or more compression control parameters to form a plurality of compressed samples;

providing the compressed samples to a data portion of a compressed packet and the one or more compression control parameters to a header portion of the compressed packet;

transmitting the compressed packet from the source processor core on the communication fabric;

receiving the compressed packet from the communication fabric at a destination processor core of the plurality of processor cores; and

decompressing the compressed samples from the data portion of the compressed packet in accordance with the one or more compression control parameters from the header portion of the compressed packet to form a plurality of decompressed samples.

14. The method of claim 13 , wherein each of the plurality of processor cores is operable to apply the compressing and the decompressing.

15. The method of claim 13 , wherein one of the compression control parameters is a compression mode parameter indicating a lossless compression mode or a lossy compression mode, wherein the compressing applies lossless compression operations or lossy compression operations in accordance with the compression mode parameter.

16. The method of claim 15 , wherein the decompressing applies in the lossless decompression operations or lossy decompression operations in accordance with the compression mode parameter.

17. The method of claim 15 , wherein one of the compression control parameters indicates a desired number of bits per compressed packet or a desired compression ratio, the compressing further comprising:

calculating a number of bits in the compressed samples per packet for one or more compressed packets;

comparing the number of bits in the compressed samples per packet to the desired number of bits per compressed packet to determine a feedback parameter; and

adapting the lossy compression operations in accordance with the feedback parameter.

18. The method of claim 15 , wherein one of the compression control parameters indicates a quality metric of the decompressed samples.

19. The method of claim 13 , wherein one of the compression control parameters is a data type parameter, the data type parameter indicating the integer data format or the floating-point data format of the plurality of samples, wherein the decompressing forms decompressed samples in the integer data format or the floating-point data format in accordance with the data type parameter.

20. The method of claim 13 , wherein the compressing is applied by the source processor core comprising one of a central processing unit (CPU), a digital signal processor (DSP) core, a graphics processing unit (GPU), a microcontroller unit (MCU) or a multimedia engine (MME) core.

21. The method of claim 13 , wherein the decompressing is applied by the destination processor core comprising one of a central processing unit (CPU), a digital signal processor (DSP) core, a graphics processing unit (GPU), a microcontroller unit (MCU) or a multimedia engine (MME) core.

22. The method of claim 13 , wherein the communications fabric for the transmitting comprises a network-on-chip, wherein the compressed packet is compatible with a packet protocol for the network-on-chip.

23. The method of claim 22 , wherein the source processor core and the destination processor core are integrated on a single die, wherein the transmitting from the source processor core transfers the compressed packets to the destination processor core via the network-on-chip.

24. The method of claim 22 , wherein the source processor core is integrated on a first die and the destination processor core is integrated on a second die in a multichip module, wherein the transmitting from the source processor core transfers the compressed packets to the destination processor core via the network-on-chip.

Assignments (2)
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 May 6, 2014
From: SAMPLIFY SYSTEMS, INC
To: ALTERA CORPORATOPM
Reel/Frame 032827/0621 →