CN102754078A - 使用压缩和解压缩的增强型多处理器波形数据交换 - Google Patents

使用压缩和解压缩的增强型多处理器波形数据交换 Download PDF

Info

Publication number
CN102754078A
CN102754078A CN2010800438529A CN201080043852A CN102754078A CN 102754078 A CN102754078 A CN 102754078A CN 2010800438529 A CN2010800438529 A CN 2010800438529A CN 201080043852 A CN201080043852 A CN 201080043852A CN 102754078 A CN102754078 A CN 102754078A
Authority
CN
China
Prior art keywords
compression
data
compressed
decompression
logic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010800438529A
Other languages
English (en)
Other versions
CN102754078B (zh
Inventor
阿尔伯特·W·魏格纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Altera Corp
Original Assignee
Samplify Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samplify Systems Inc filed Critical Samplify Systems Inc
Publication of CN102754078A publication Critical patent/CN102754078A/zh
Application granted granted Critical
Publication of CN102754078B publication Critical patent/CN102754078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput
    • H03M7/6023Parallelization
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Advance Control (AREA)
  • Logic Circuits (AREA)

Abstract

多核处理环境中波形数据的可配置压缩和解压缩改进了核之间数据传输的效率并且节约了数据存储资源。在波形数据处理系统中,输入、中间和输出波形数据经常在核之间以及核与片外存储器之间进行交换。在每个核处,单个可配置压缩器和单个可配置解压缩器可以被配置为对整数或浮点波形数据进行压缩和解压缩。在存储器控制器处,可配置压缩器对整数或浮点波形数据进行压缩以便以压缩包传输至片外存储器,并且可配置解压缩器对从片外存储器接收的压缩包进行解压缩。压缩减少了在半导体或磁性存储器中保留波形数据所需的存储器或存储。压缩减少了交换波形数据所需的等待时间和带宽。该摘要并不对如权利要求所描述的本发明的范围进行限制。

Description

使用压缩和解压缩的增强型多处理器波形数据交换
背景技术
本发明针对波形数据的压缩以便在计算核之间进行数据传输和向存储器进行数据写入,以及随后在计算核接收数据或者在多核处理架构中进行数据读取时进行解压缩,尤其涉及整数和浮点数数据类型这两者的压缩。本发明支持对所有数据类型进行无损、固定速率或固定质量的压缩模式的选择。
在波形数据处理应用中,微处理器或其它信号处理构造的中央处理单元(CPU)在所存储程序的控制下对波形数据数值执行算术和逻辑运算,以便按照专用方式对波形数据数值进行变换。输入、中间和输出波形数据数值从存储、存储器或输入设备所获取,并且被提供给存储、存储器或输出设备。波形数据可以通过整数和浮点数数据类型来表示。这样的波形数据处理应用的示例包括但不限于:
在蜂窝电话中接收和传送移动电话信号,
在便携式音频播放器中录制和播放音频,
从DVD获取压缩视频,对该压缩视频进行解压缩,并且将解压缩视频传送至显示设备,
在语音录制器中录制和回放数字话音,以及
对化学、分子、电或生物过程进行仿真。
波形数据处理行业包括提供大范围的波形数据处理引擎和波形数据存储设备的大量制造商。波形数据处理引擎大多数通常使用支持数字信号处理器(DSP)的CPU来实现,该CPU支持使用诸如MPY和MAC的专用汇编语言指令的乘累加(MAC)运算。提供具有用于波形处理应用的MPY和MAC指令的CPU的公司包括Intel公司(x86指令集的处理器族,包括Pentium、Nehalem、Itanium、Larrabee以及其它处理器)、Nvidia图形处理单元(GPU)、兼容x86的CPU的Advance Micro Device(AMD)族、AMD/ATI GPU、Texas Instruments(TMS320DSP族)、Analog Devices(Blackfin、TigerSharc、SHARC和ADSP-21xx族)、Motorola(PowerPC和56xxx族)、ARM(Cortex、ARM7、ARM9、ARM10和ARM11族)、MIPS Technology(R2000至R16000、MIPS 16、MIPS32、MIPS64和MIPS DSP族)、Microchip(dsPIC族)、IBM(PowerPC族),等等。波形数据处理应用还可以使用现场可编程门阵列(FPGA)中的逻辑、算术和存储元件的可编程构造来实现。提供用于波形数据处理应用的FPGA的公司包括Altera(Cyclone、Arria和Stratix族)、Xilinx(Spartan和Virtex族)、Actel(Axcelerator和ProASIC族)、Lattice(XP、ECP和SC族),等等。波形数据处理应用还可以包括在被设计为执行特定波形数据处理操作的专用集成电路(ASIC)中。ASIC提供商包括TSMC、UMC、IBM、LSI Logic和许多其他提供商。
DSP、FPGA、ASIC和存储器市场细分都是半导体行业的子细分。术语“存储器”和“存储”在以下描述中针对临时或持久存储波形数据处理应用中所使用的整数或浮点样本数据数值的设备和子系统可互换使用。波形数据存储器可以包括以下半导体类别:静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、双倍和四倍数据速率随机存取存储器(DDR和QDR)、闪存、固态驱动器(SSD)、闪存驱动器、磁盘驱动器、铁磁随机存取存储器(FRAM)、高速缓存存储器,以及用来存储波形数据的任意其它未来的半导体存储器。制造半导体存储器或存储设备的公司包括SRAM制造商,包括Cypress、Dallas Semiconductor、Honeywell、Hynix、IDT、Micron、Mitsubishi、NEC、Renesas、Sharp、Sony、Toshiba、UTMC/Aeroflex、White Electronic Design等;DRAM制造商Samsung、Hynix、Micron、Elpida、Nanya、Qimonda、ProMOS、Powerchip等;闪存制造商,包括Samsung、Toshiba、Intel、ST Microelectronics、Renesas、Hynix等;FRAM制造商,包括Fuiitsu、Ramtron和Samsung。
在这里的描述中,“波形数据处理应用”包括对采样数据波形执行数学和/或逻辑运算的应用。采样数据波形经常(但并非排他地)通过使用模数转换器(ADC)对诸如话音、音频、图像、视频或其它传感器输出信号之类的实际模拟信号进行数字化而获得。采样数据信号还可以被仿真,而且可以直接地或在附加的波形数据处理操作之后馈送至数模转换器(DAC)以便生成模拟话音、音频、图像或视频信号。在这里的描述中,术语“采样数据波形”还包括从对输入或中间采样数据波形执行的数学和/或逻辑运算所生成的这种中间和/或最终采样数据波形。
波形数据优先以两种主要的数字格式进行持久存储:整数格式和浮点格式。整数格式使用有符号、无符号或符号加量级的表示形式来表示波形数据,其中采样数据数值的宽度通常是固定的。常见的适用于波形数据处理的整数格式是分别处于{-128,+127}和{-32768,+32767}范围之中的8位和16位有符号整数,以及分别处于{0,255}和{0,65535}范围之中的8位和16位无符号整数。备选地,波形数据可以以32位、64位和128位的浮点格式来表示。最为常见的浮点格式符合浮点数值的IEEE-754标准。IEEE-754标准最初在1985年提出并且随后在2008年更新。IEEE-754标准使用1个符号位、8个指数位和23个尾数位表示32位的浮点数值(也被称作“float”或“单精度浮点数”)。IEEE-754标准使用1个符号位、11个指数位和52个尾数位表示64位的浮点数值(也被称作“double”或“双精度浮点数”)。存在诸如16位的“半浮点”之类的其它浮点数表示形式,但是对float和double的操作通常在具有专用浮点电路的CPU或DSP处理器中得到支持。这样的电路通常被称作浮点单元或FPU。在许多应用中,当浮点数据以单精度格式而不是双精度格式表示时,浮点计算更快的多且消耗更少的多的功率。
波形数据处理应用中所使用的存储设备表现出有所变化的访问时间。访问时间低于10纳秒的最快存储元件通常是能够与处理器核构成于相同的半导体裸芯(die)或集成电路(IC)上的SRAM。这样的SRAM存储被称作高速缓存存储器、片上存储器或寄存器文件。最慢半导体存储元件通常是闪存,其对于单独的采样数据元素的访问时间处于100纳秒至1毫秒的范围内。闪存写比闪存读更慢。存储器技术通常分层排列,其中最快的存储元件与CPU或DSP处理构造最为接近,而较慢的存储元件则分层在较快存储元件的周围。术语“片上”和“片外”是用来表述存储与CPU或处理构造的接近程度的形容词,片上存储位于与CPU或处理构造相同的半导体衬底上或者被封装在相同的多芯片模块(MCM)中。片外存储位于CPU或处理构造之外的独立集成电路(IC)上。其它慢速存储元件包括磁盘驱动器和磁带驱动器,其访问时间为数十毫秒并且其数据速率通常为100MB/秒或更低。
给定波形数据处理应用中所使用的的存储器分层层级,应用的持续目标在于对波形数据进行处理以改进CPU或信号处理构造对于存储器中所存储的采样数据的访问时间。次要目标是减少CPU或信号处理构造请求波形数据和可直接被CPU或信号处理构造访问的存储器中数据出现(通常为高速缓存或寄存器文件)之间的等待时间。第三目标是降低将波形数据处理器核与其存储器层级相连接的构造的复杂度。
存在用于对波形处理应用中的指令和数据这两者进行压缩和解压缩的技术。许多压缩或编码技术仅能够接受一种波形数据格式的数据,例如整数数据或浮点数据,而不是接受两种。类似地,许多压缩或编码技术仅提供一种压缩模式,诸如无损模式或有损模式,而不是提供两种。许多压缩或编码技术仅能够应用于诸如话音、音频、图像或视频的特定类型的波形数据,而并未对其它类型的波形数据提供充分压缩。许多压缩或编码技术对通常在SRAM、DRAM或闪存的存储器控制器中所找到的(地址,数据)对进行操作。
在多核波形处理系统中,许多类型的波形数据可以使用不同数据格式来表示。用于特定应用的程序通常定义该数据格式。多核处理架构的目的在于一般对大量数据执行计算密集型操作。需要对波形数据进行压缩以便在计算核之间以及核与存储器之间进行传送以使得能够对计算密集型应用中的大量数据进行快速传输。
这里的描述可互换地使用术语集成电路(IC)和芯片来指代包含一个或多个电子裸芯的电子或光学连接(管脚、引线、端口等)的单个封装。该电子裸芯或半导体裸芯是包括集成电路和半导体设备的半导体衬底。该裸芯可以具有单个核或多个核。该核可以是用于任意类型的数据处理器的处理单元。例如,处理器核可以是中央处理单元(CPU)、数字信号处理单元(DSP)、图形处理器(CPU)、微控制器单元(MCU)、通信处理器或者任意类型的处理单元。单个裸芯上单独的核可以是相同类型的处理单元或者适用于该应用的不同类型的处理单元的组合。这样的处理单元可以包括(但不限于)存储器控制器、直接存储器存取(DMA)控制器、网络控制器、高速缓存控制器和浮点单元(FPU)。这样的处理单元可以被集成到与一个或多个处理器核相同的裸芯上或者可以被集成到处理器核之外的独立裸芯上。
在这里的描述中,应用于压缩的“实时”意味着以至少与数字信号的采样速率一样快的速率对该数字信号进行压缩。与原始信号获得速率或采样速率相比,属性“实时”也可以描述用于处理、传输和存储数字信号的速率。采样速率是ADC或DAC在数字和模拟信号之间的转换期间形成样本的速率。未压缩的采样或数字信号的比特率是每个样本的位数乘以采样速率。压缩比是原始信号样本的比特率与压缩样本的比特率之比。在仿真实时系统的功能的波形数据处理应用中,对波形数据数值序列所执行的操作的顺序可以与实时处理顺序相同,但是执行处理的速率可以比“实时”慢。这里的描述将这样的应用称作仿真波形数据处理应用。
这里的描述涉及各种通信构造。通信构造是两个处理核之间的任意连接,其允许两个或更多的核相互通信。通信构造的示例包括总线、网络、印刷电路板上的迹线,包括传送器和接收器、交换机、网络接口卡(NIC)、路由器的无线链路、片上网络,或者两个处理器核之间任意其它的有线或无线连接。
这里的描述涉及无损和有损压缩。在无损压缩中,解压缩的样本具有与原始样本相同的数值。在一些应用中,有损压缩可能是提供足够的比特率下降所必需的。在有损压缩中,解压缩的样本与原始样本类似但并不相同。有损压缩在压缩样本的比特率和解压缩样本的失真之间权衡。
发明内容
已经考虑到以上传统的问题而生成了本发明的实施例。本发明的目标包括如下:
(A)在两个或更多处理器核处进行的波形数据压缩以便在多核处理系统中的处理器核之间进行传输。
(B)在处理器核或CPU处进行的波形数据压缩以便在处理器核和波形数据存储器层级的元件之间进行传输。
(C)对波形数据进行压缩以便从输入控制器向多个处理器核进行分布。
(D)在一个或多个处理器核处进行的经处理的波形数据的压缩以便向输出控制器传输压缩数据。
(E)在接收CPU处对从传送CPU、输入控制器或存储器接收的压缩数据进行的解压缩。
(F)在输出控制器处对压缩数据进行的解压缩以重构经处理的波形数据。
(G)多核处理系统中对整数和浮点数据格式的波形数据的可配置压缩和解压缩。
(H)单个处理器核中对整数和浮点数据格式的波形数据的可配置压缩和解压缩,以便从存储器传输或获取。
(I)具有用于压缩整数和浮点数据格式的操作模式的单个可配置压缩器。
(J)具有用于从之前压缩的数据重构整数和浮点数据的操作模式的单个可配置解压缩器。
(K)形成数据包的压缩有效载荷以便跨基于包的通信接口传送压缩波形数据的压缩器。
(L)从基于包的通信接口获取压缩有效载荷数据并且重构相应波形数据的解压缩器。
(M)在用户控制或自动选择之下对压缩器进行配置以应用无损或有损压缩。
(N)根据控制参数对解压缩器进行配置以便应用无损或有损解压缩。
(O)对压缩操作进行适配以产生具有固定压缩比特率的压缩数据。
(P)对压缩操作进行适配以产生具有固定质量量度的压缩数据。
波形数据的压缩通过节约多核处理系统的资源而提供了若干优势。在多核处理系统中,输入、中间和输出波形数据经常在核之间共享和交换。压缩减少了在两个或更多核之间交换这样的波形数据所需的等待时间和带宽。压缩减少了在处理器核之间传送波形数据所需的功率和面积。进一步的优势在于减少了允许多个处理器交换波形数据所需的管脚数量和印刷电路板轨线面积。压缩减少了在半导体或磁存储器中保留波形数据所需的存储器或存储,因此提高了存储器的有效容量。波形数据的压缩减少了在CPU和波形数据存储器层级的元件之间传输波形数据时的访问时间和等待时间这二者。总体来说,本发明的优势包括降低在单核或多核处理环境中交换波形数据的压缩传送器和解压缩接收器的复杂度、成本和功率。
波形数据可以由在多个处理器核上并行执行的多个线程共同使用。在一个核上的线程需要部分波形数据继续执行时,可以强制多个线程进入等待模式,等待另一个核上的线程完成数据处理并且将其发送至进行等待的线程。这些等待模式是运行对公共波形数据进行并行操作的多个线程的多处理器系统的关键性能瓶颈。处理核之间的公共波形数据通信以及利用该多处理器系统的输入和输出资源所进行的公共波形数据通信所需的时间促成了该关键性能瓶颈。
附图说明
图1图示了三类波形数据。
图2图示了波形数据处理应用中的常见元素。
图3图示了两个处理元件之间双向的基于包的波形数据交换流水线。
图4图示了包中用于交换数据的典型字段。
图5包含了符合工业标准的基于包的协议的表。
图6图示了各半导体和CPU提供商所提供的适用于波形数据处理的多核产品。
图7图示了适用于在处理元件之间运载未压缩或压缩波形数据的片上网络(NoC)结构。
图8包含使得多核配置、核到核距离和存储器类型彼此相关的表。
图9图示了本发明的主要系统组件,该组件作为组合适于对在波形数据处理应用中在多个核之间共享的波形数据进行压缩。
图10图示了适用于压缩整数波形数据的压缩器。
图11图示了适用于对压缩的整数波形数据进行解压缩的解压缩器。
图12图示了适用于压缩浮点波形数据的压缩器。
图13图示了适用于对压缩的浮点波形数据进行解压缩的解压缩器。
图14图示了本发明的可配置压缩器和解压缩器在现有多核波形数据处理器中的两个示例性集成形式。
图15是向处理器核提供输入数据的示例。
图16是在多个处理器核之间传达数据的示例。
图17是从处理器核到输出控制器的示例数据传输。
图18图示了使用用于片外存储器访问的压缩和解压缩的增强型DMA、输入-输出或存储器控制器。
图19包含将进行和不进行压缩的数据传输时间的示例进行比较的表。
图20图示了由于多包数据集的输入-输出时间减少的处理时间减少。
具体实施方式
本发明针对多核处理环境中波形数据的可配置压缩和解压缩。在多核处理系统中,每个核可以执行波形数据的子集的独立计算。输入、中间和输出波形数据可以在核与存储器层级之间进行共享和交换。本发明减少了这样的波形数据在两个或更多核之间的交换所需的等待时间和带宽。本发明还通过在存储器或存储写入期间压缩波形数据以及在存储器或存储读取期间解压缩波形数据而适用于减少在半导体或磁性存储器中保留波形数据所需的存储器或存储。
图1图示了波形数据的三个示例。图1a示出了脉冲波形的图形,其通常是雷达和超声应用中所使用的信号脉冲。如图1a中的y轴上的数值范围所指示的,波形数据被处理为处于范围{-128,+127}中的8位有符号整数数值。图1a的x轴指示大约3500个样本包括波形数据脉冲,图1a是一般类型的二维波形数据的具体实例,其中一条轴表示信号随时间变化的属性,并且第二条轴通常表示时间维度(时间或样本计数)。二维波形数据图所表达的特定波形数据属性将随应用而有所变化。
图1b示出了针对科学或数学应用所计算的三维曲面图。z轴指示波形数据值为浮点格式并且处于{-2.0,+2.0}的范围之内。x轴和y轴的数值分别在范围{-1,+1}和{-2,+2}之内。图1b是一般类型的三维波形数据的特定实例,其中垂直轴表示信号随时间变化的属性,并且第二轴和第三轴则表示两个其它维度(可能是二维网格上的空间位置)。三维波形数据图所表达的特定波形数据属性将根据应用的不同而有所变化。
图1c是来自化学仿真的三维分子图。图1c并不包括轴,但是所示分子维度和配置可能为仿真所产生的内部浮点波形数据的可视化。图1c是一般类型的三维波形数据的具体实例,其中该数据可以被表示为三维对象。三维对象所表达的特定波形数据属性将根据应用的不同而有所变化。
图1a、1b和1c是宽泛类型的波形数据的示例。波形数据的一般特性可以包括但不限于以下内容:
1.以整数格式或浮点格式表示的数据数值,
2.数据数值出现于基于采样过程或仿真的特定序列中,
3.数据数值与相邻数据数值具有特定关系,
4.经常对序列中的相邻数据数值执行诸如加、减、乘、除或加权平均之类的数学运算,
5.相邻数据数值经常相互关联。
图2图示了波形数据处理的处理环境。现实世界模拟信号可以由传感器或检测器所提供。模数转换器(ADC)120将(多个)现实世界模拟信号110数字化以生成数字化波形数据125a。数字处理器140可包括单核或多个核(多核)。数字处理器140对数字化波形数据125a执行数学和/或逻辑运算,生成任选的中间数字结果150和数字处理结果160a。在某些应用中,除了数字化波形数据125a之外或作为其替代,数字处理器140从现实世界信号仿真器130接收仿真数字波形数据125b。在某些应用中,数字化处理结果160b被应用于数模转换器(DAC)163,生成现实世界的模拟输出165。在许多应用中,数字化波形数据125a、仿真数字波形数据125b、中间数字结果150、数字处理结果160a和数字化处理结果160b体验往来于数字处理器140的带宽瓶颈。本发明的实施例减少了波形数据的这些带宽瓶颈。
图3图示了两个直接连接的处理器核之间典型的核至核接口。核200a和核200b通过双向全双工接收(Rx)-传送(Tx)子系统进行通信。核200a使用传送接口210a以及Tx FIFO或存储器缓冲器220a向核200b传送信息。对于基于包的通信而言,传送信道230a运载通常具有最大有效载荷大小(包容量)的包。传送接口210a将大于该最大有效载荷大小的有效载荷划分为符合包协议的最大有效载荷大小的多个传送包240a。(以下所描述的)图5列出了一般基于包的通信协议的典型包有效载荷大小。为了支持具有不同属性的包的传送,Tx FIFO或存储器缓冲器220a可以包含多个FIFO或存储器缓冲器和存储器控制器(未示出),该存储器控制器在任意给定时刻从多个FIFO或存储器缓冲器220a中发送其优先权在传送信道230a最高的包。核200b使用Rx FIFO或存储器缓冲器250a和Rx接口260a从传送信道230a接收包。Rx FIFO或存储器缓冲器260a可包含与Tx FIFO或存储器缓冲器220a相对应的多个FIFO或存储器缓冲器,它们在保存不同优先权的包的缓冲器中临时存储所接收的包。多优先级核至核接口允许包协议支持服务质量(QoS)、实时和带优先级的通信。Rx接口260a通知核220b来自核220a的新到达包的可用性,其可能带有针对核200a的任选中断(未示出)。核200b通过模拟通信链向核220a传送包,该模拟通信链包括Tx接口210b、Tx FIFO或存储器缓冲器220b、传送信道230b、传送包240b、Rx FIFO或存储器接口250b和Rx接口260b。仅有的不同在于包方向(从核200a道核200b,或者从核200b到核200a)。图4图示了典型包240的分量。包协议通常以包报头242开始,随后是包有效载荷244,并且以可选的包报尾246作为结束。包报头242包含特定包协议或标准所指定的强制字段和任选字段这二者。强制包字段通常包括包开头或同步指示符,以及包的源(发送方)和目的地(接收方)的标识符。可选的包报头字段可以包括有效载荷数据类型(控制或数据;包优先权等)和有效载荷长度的字段。包240中运载数据的部分被称作有效载荷部分244或数据部分。根据包协议或标准,包有效载荷244可以具有绝不发生变化的固定大小,在报头242和报尾246之间可变大小的有效载荷(在包报头242中没有包长度指示符),或者其长度包括在包报头242中的可变大小的有效载荷。有效载荷的内容根据包协议或标准发生变化,但是大多数包协议和标准允许字节(8位)、字(16位)、长字(32位)和浮点(32位或64位)的单位。有时,所运载的包有效载荷的数据类型并不为包协议的较低层所知。可选的包报尾246可以包括循环冗余校验(CRC),其有助于所接收包或包结尾字段中错误的检测以及可能的校正。
图5是针对包括报头和有效载荷字段这二者的通信协议对各种计算机行业标准进行比较的表。该标准包括PCI Express(PCIe)、以太网(其变化形式通常被认为包括其数据速率,诸如10baseT[10Mbps]、100baseT[100Mbps]、1GbaseT或GbE[1Gbps]、10GbaseT或10GbE[10Gbps]),超传输、快速路径互连(QPI)、无限带宽和RapidIO。这些标准是基于包的协议以及可能在未来研发的其它协议的说明。如图5所示,包报头长度从4至42个字节变化,而所允许的有效载荷大小从0至4096个字节变化。本发明的实施例对包有效载荷中所包含的数字数据(整数和/或浮点数值)进行压缩。
图6a至6e图示了来自各个提供商的多处理器配置。图6的示例是2009的商业多核处理器以及未来可能研发的其它架构的说明。图6a图示了Intel的Nehalem CPU架构。Intel的Nehalem CPU在一个裸芯上包含四个处理器核400a、400b、400c和400d,并且具有容量为8MB的共享高速缓存402。处理器核400a至400d通过一对QPI接口404访问其它计算机系统外设。QPI接口404使用基于包的通信协议。这里所描述的压缩可以与QPI接口404相集成。
图6b图示了Nvidia GeForce 8800GPU架构。Nvidia GeForce8800GPU包括被分组为8个多处理器410a至410h的64个处理器。每个多处理器包括8个核。多处理器410a至410h利用分布式等级1(L1)高速缓存412和分布式等级2(L2)高速缓存413来存储输入数值、中间结果和输出数值,并且在核之间交换这样的数值。GeForce 8800从主机CPU 414接收输入数据数值并且向其传送输出数据数值。这里所描述的压缩可以被集成到针对数据汇编器的主机至GPU和GPU至主机通信控制器中。
图6c图示了AMD/ATI多核GPU架构。AMD/ATI GPU包括64个流处理单元420,诸如处理单元420a和420b。流处理单元420分享公共的读/写高速缓存422和流输出缓冲器424。这里所描述的压缩可以集成到控制读/写高速缓存422的流I/O通信控制器之中。
图6d图示了Intel Larrabee CPU架构。Intel Larrabee CPU包括四个Larrabee处理器封装430a、430b、430c和430d,其中每个封装包括32个处理器核。Larrabee处理器封装430a、430b、430c和430d使用多个公共串行互连(CSI)总线434进行互连。每个Larrabee封装430访问所连接的存储器子系统432。这里所描述的压缩可以集成到CSI总线硬件之中。
图6e图示了IBM Cell宽带引擎(CBE)架构。IBM Cell宽带引擎包括使用元件互连总线(EIB)446进行通信的8个Synergistic处理器元件(SPE)440a至440h。PowerPC处理器元件(PPE)包括能够由SPE 440a至440h经由EIB 446进行访问的L1高速缓存442和L2高速缓存443。IBM Cell使用诸如FlexIO BIC的总线接口控制器(BIC)444对总线447执行片外总线访问。存储器接口控制器(MIC)445控制对片外存储器448的数据传输。这里所描述的压缩可以集成到EIB 446、MIC 445和BIC 444的控制器之中。
图7图示了三种商业片上网络(NoC)互连的示例。NoC被用来对一个半导体裸芯上的两个或更多处理器进行互连。图7a图示了图6e中所介绍的IBM Cell宽带引擎的EIB 446。如L1高速缓存442、L2高速缓存443和I/O接口504那样,8个SPE 400a至400h也均接合至EIB 446。如图7a所示,EIB 446实现了由四个反向旋转环所构成的互连构造。EIB能够在每个IBM Cell时钟周期传输多达96个字节,提供从L1高速缓存442、L2高速缓存443和I/O接口504到处理器400的数据读取,或者由处理器400向L1高速缓存442、L2高速缓存443和I/O接口504提供元数据。I/O接口504提供片外数据传输并且包括BIC 444(图6e)。这里所描述的压缩可以被集成到用于访问EIB 446的存储器控制器或者用于I/O接口504的控制器或者其二者之中。
图7b图示了Intel的Nehalem 8处理器核架构。8个处理器510a至510h通过两个反向旋转环516进行连接。片外读和写经过四个QPI接口514a至514d。这里所描述的压缩可以被集成到用于访问反向旋转环516的控制器或到片外组件的QPI接口514或者其二者之中。集成存储器控制器(未示出)控制可扩展存储器接口SMI0和SMI1上往来于片外存储器的数据传输。
图7c图示了Sonics公司所研发的NoC构造。SonicsMX智能互连526允许CPU 520a、DSP 520b和多媒体引擎(MME)520c交换数据。这里所描述的压缩可以被集成到SonicsMX智能互连526之中。
图8是各种多处理器配置、处理器之间的距离以及该配置中最常被用来促成处理器之间的通信的存储器类型的表。通常,随着处理器之间的距离增加,更为经常地实现使用基于包的协议的数据交换。在相同半导体裸芯上或相同多裸芯封装或多芯片模块(MCM)中设置的两个处理器之间的数据交换通常使用共享L1高速缓存、共享L2高速缓存或片上网络接口来执行。裸芯上或芯片上的处理器通常以最多数毫米间隔开来。当两个处理器位于以毫米至厘米间隔开来的独立芯片中时,可以由处理器使用高速缓存、FIFP或RAM来交换数据数值。如2009年,诸如QPI、超传输、无限带宽和CSI之类的高速IC互连可以被用来共享分布式高速缓存。然而,更为普遍的是,使用FIFO或RAM在以厘米间隔开来的处理器之间交换数据。当处理器之间的距离上升至数米(m)或数千米(km)时,大多数商业互连使用一些形式的基于包的交换。基于包的通信也被用于核之间的短距离通信,如QPI和超传输协议所表明的,其在以小于1毫米间隔开来的处理器之间实现高速缓存存储器数据的交换。
图9是依据优选实施例的用于形成压缩包的波形数据样本压缩的框图。输入样本600的序列被可配置压缩器620进行压缩,生成压缩包630。输入样本600可以表示数字化波形数据125a、仿真数字波形数据125b或中间数字结果150。输入样本600可以具有整数格式或浮点格式。在典型的可编程处理核或CPU中,数据格式可以在程序中指定。当程序没有指定数据格式时,处理器核使用缺省数据格式。压缩控制接口610为可配置压缩器620提供控制参数以便在各种模式中进行操作。例如,控制参数可以选择整数或浮点压缩模式以及无损或有损压缩模式。当选择了有损压缩模式时,压缩控制接口610可以包括用于固定速率压缩或固定质量压缩的附加控制参数。例如,在固定速率压缩中,控制参数可以表示输入数据块大小和压缩包630的有效载荷部分的大小之间的期望压缩比。例如,在固定质量压缩中,压缩参数可以表示对压缩包630进行解压缩之后导致的数值的信噪比。当可配置压缩器620可以适于处理输入样本600不同大小的块(即,连续样本群组)时,压缩控制接口610可以通过控制参数指定输入块大小。当压缩包630包括报头时,压缩控制接口610可以指定包报头中包括哪些参数,诸如压缩块大小或纠错码(ECC)。单个可配置压缩器620可以适于对整数和浮点数值这二者进行处理。
图10是压缩整数数值时可配置压缩器620的框图。对于有损压缩而言,有损压缩调节处理器622对输入样本600进行操作以形成调节输入样本623。对于无损压缩而言,有损压缩调节处理器622被绕过或者设置为“无调节”,并且调节输入样本623具有与输入样本600相同的数值。有损压缩调节处理器622由压缩和反馈控制块628经由调节控制信号629a进行控制。有损压缩调节处理器622所引入的损失程度可以由用户经由压缩控制接口610进行选择。备选地,该损失程度可以基于反馈参数来自动调节。例如,对于固定速率压缩模式而言,压缩包大小测量块626计算压缩包大小627。压缩反馈块628将压缩包大小627与期望包大小进行比较以确定用于调节控制信号629a的反馈参数。用户可以经由压缩控制接口610选择期望包大小。压缩包大小测量块626可以以逐个包为基础提供所测量的包大小627,或者其可以提供可选择数量的输出包上的平均测量包大小627。无损压缩器624依据压缩控制信号629b对调节输入样本623进行压缩。
共同拥有的专利和申请描述了可以在无损压缩器624和有损压缩调节处理器622中使用的各种压缩技术。这些包括于2006年3月7日授权的Wegener的题为“Adaptive Compression andDecompression of Bandlimited Signals”的US7009533(“’533专利”),其通过引用结合于此;和于1998年11月17日授权的Wegener的题为“Lossless and loss-limited Compression of Sampled Data Signals”的US5839100(“’100专利”),其通过引用结合于此;以及2009年10月23日提交的Wegener的题为“Block Floating Point Compressionof Signal Data”(“BFP压缩应用”)的申请号为“12/605245”的美国专利申请,其通过引用结合于此。
压缩技术包括通过计算调节输入样本623的一个或多个导数而进行的微分编码、块浮点位紧缩(block float-point bit packing)、哈夫曼(Huffman)编码以及无损压缩器624可以实现的其它无损压缩技术。无损压缩器624可以生成压缩包630,其可以包括报头632和压缩有效载荷634。报头632可以包含压缩和反馈控制块628所提供的一个或多个压缩控制参数。报头632可以包含指示压缩包中所包含的压缩样本的数据类型的参数,诸如整数或浮点数值,以及诸如调节控制信号629a和压缩控制信号629b的数值控制参数。压缩和反馈控制块628可以生成压缩状态信号615,其可以指示各种压缩统计,诸如平均或瞬时压缩比、调节控制信号629a、压缩控制信号629b或者可配置压缩器620中的内部警告或错误情况。
图11是对压缩整数数据进行解压缩的框图。可配置解压缩器720接收压缩包630。解压缩控制块728检查压缩包报头632的内容并且对用于解压缩器724和有损压缩调节块722的任意控制参数进行解码。解压缩器724在解压缩控制信号729a的控制下执行撤销图10中有损压缩器624所执行的压缩操作的操作,由此重构调节输入信号723。有损解压缩调节块722在解压缩调节信号729b的控制下执行撤销图10中有损压缩调节块622所执行的调节操作的操作。解压缩信号730表示可配置解压缩器720的输出样本。解压缩控制块728还可以可选地生成状态信号715,其可以包括平均或瞬时压缩比、解压缩控制信号729a、解压缩调节信号729b或者来自解压缩器720的内部警告或错误信号。
图12是被配置为压缩浮点数据的可配置压缩器620的框图。浮点数据表示形式由三个字段所构成:符号位、指数和有效数(尾数)。格式预处理器(未示出)将每个浮点数输入样本的指数与符号和有效数间隔开来以提供输入指数603。格式预处理器将符号位和有效数进行合并以形成符号和尾数输入样本601。可配置压缩器620以与参考图10描述的可配置压缩器620处理的整数样本600相同的方式对符号和尾数输入样本601进行处理。此外,可配置压缩器620对输入指数603应用无损指数压缩器660和压缩有效载荷复用器670。无损指数压缩器660在来自压缩和反馈控制块628的无损指数压缩控制信号629c的控制下以无损方式对指数603进行压缩。无损指数压缩器660可以采用’533专利、’100专利和BFP压缩应用中所描述的一种或多种技术。压缩控制信号629c可以提供指定应用于指数603的压缩方法的控制参数,诸如块浮点编码、微分编码、哈夫曼编码或适用于压缩指数603的其它压缩技术。压缩有效载荷复用器670控制压缩指数位665以及压缩符号和尾数位631在压缩包有效载荷634a中的位置。如参考图10所描述的,压缩有效载荷复用器670可以由压缩和反馈控制块628进行控制。
图12所示出的可配置压缩器620可以被应用于整数或浮点波形数据数值。当对整数样本进行压缩时,不使用指数压缩器660和压缩有效载荷复用器670,并且类似于图10中的输入样本600,整数样本提供符号和尾数输入样本601。当对浮点样本进行压缩时,浮点指数数值为指数603,浮点符号和尾数数值为符号和尾数输入样本601。格式预处理器被应用于输入样本600以提供指数603以及符号和尾数样本601。格式预处理器为从浮点数据所提取的浮点符号和尾数以及整数数据提供公共格式,以使得有损压缩调节块622和无损压缩器624以相同的格式接收数据,而无论输入样本100是以整数还是浮点数值表示。以这种方式,可配置压缩器620可以被配置为依据来自压缩和反馈控制块628的各种控制信号对整数或浮点波形数据数值进行压缩。
图13是用于对压缩浮点数据进行解压缩的可配置解压缩器720的框图。可配置解压缩器720接收包括压缩浮点数据的压缩包作为压缩有效载荷634a。解压缩器724和有损解压缩调节块722对压缩符号和尾数数据应用与参考图11所描述的对应要素相同的解压缩操作。可配置解压缩器720包括用于对压缩指数数据进行处理的有效载荷多路分离器870和指数解压缩器860。在对压缩包报头632a进行检查之后,解压缩控制器728为有效载荷多路分离器870、解压缩器724、有损解压缩调节块722和指数解压缩器860提供控制参数。有效载荷多路分离器870将压缩有效载荷634a分为压缩指数位865以及压缩符号和尾数位831。如针对压缩整数数据(图11)所描述的,经分离的压缩符号和尾数位831被解压缩并调整。指数解压缩器860依据指数解压缩器控制信号729c所提供的任意控制参数对压缩指数位865进行解压缩。指数解压缩器720生成解压缩指数730b。解压缩器724和有损解压缩调节块722生成解压缩符号和尾数样本730a。数据格式化器(未示出)可以将解压缩指数730b与相应的解压缩符号和尾数样本730a合并为具有与原始输入样本600相同的浮点格式的解压缩样本序列。备选地,该数据格式化器可以提供解压缩指数730b和相应的解压缩符号和尾数样本730a的格式转换以产生具有与原始样本不同数据格式的解压缩样本。根据解压缩控制块728所生成的各种解压缩设置和调节控制信号,在压缩包报头632a中的报头参数的可选控制之下,可配置解压缩器720能够生成解压缩整数波形数据数值或解压缩浮点波形数据数值。
无损压缩器624的优选实施例应用跟随有块浮点位紧缩的无损微分编码。用于无损微分编码的技术在’533专利和’100专利中有所描述。用于块浮点位紧缩的技术在BFP申请中有所描述。应用后面跟有块浮点位紧缩的微分编码实现了进行基于包的波形数据的压缩所期望的低等待时间的压缩器。有损压缩调节块622的优选实施例减小了输入样本600的量级以提供可控制的损失量。有损压缩调节块通过对输入样本600应用移位器或乘法器来减小样本量级。该移位器和乘法器的组合实现了所期望的低复杂度的目标。
在可配置解压缩器720的优选实施例中,解压缩控制器728对压缩包报头632中所包含的控制参数进行解码以提供用于解压缩的对应控制信号729a、729b和729c。压缩包的报头632或632a的优选实施例包括数据类型(整数或浮点数据)的指示符,以及调节和压缩控制参数。压缩包报头632可选地还可以包括应用于包的整个压缩有效载荷的控制参数,包括在压缩期间所保留的尾数位的数量。
图14图示了可配置压缩器620和可配置解压缩器720在参考图6a、6e和7b所描述的多核处理器中的位置示例。图14a图示了压缩和解压缩在图6a中Intel的Nehalem CPU架构中的集成。可配置压缩器620和可配置解压缩器720可以被集成在每个QPI接口404以压缩QPI包的有效载荷的数据以便进行传送,并且对来自所接收QPI包的有效载荷的压缩数据进行解压缩。用于为Nehalem处理器提供波形数据的片外输入控制器(未示出)对输入波形数据进行压缩以形成QPI包的压缩有效载荷数据。QPI互连链路控制器404处的解压缩器720对压缩有效载荷数据进行解压缩并且提供解压缩波形数据作为QPI包的有效载荷数据以便传输至CPU核400a-400d。对于参考图7b所描述的Nehalem 8处理器核架构而言,包含解压缩有效载荷数据的QPI包经由反向旋转环516被传输至处理器核510a至510h。Nehalem架构是使用相同包协议以便进行往来于片外组件的数据传输的片上通信的示例。集成的存储器控制器也可以包括可配置压缩器620和解压缩器720以对提供给片外存储器的波形数据进行压缩并且对从存储器获取的压缩波形数据进行解压缩。
图14b图示了压缩和解压缩在图6e的IBM Cell宽带引擎架构中的集成。总线接口控制器(BIC)444控制片外通信。可配置压缩器620和可配置解压缩器720能够在BIC 444处被集成,以便压缩波形数据以便传送包并且对所接收的压缩包进行解压缩。为了向多个SPE 440a至440h提供输入数据,片外控制器(未示出)包括压缩器,该压缩器对波形数据进行压缩以形成在BIC 444处接收的总线包的压缩有效载荷数据。BIC 444处的可配置解压缩器720对压缩有效载荷数据进行解压缩以形成提供给EIB 446以便传输至SPE 440a至440h的解压缩波形数据。可配置解压缩器720可以将解压缩波形数据插入具有兼容EIB 446的协议的包中。IBM Cell架构是使用与片外数据传输不同的包协议进行的片上通信的示例。为了进行处理波形数据的片外传输,处于与BIC 444的接口处的可配置压缩器620对经由EIB 446从SPE 440a传输至440h的处理波形数据进行压缩以形成压缩有效载荷数据以便跨外部总线447进行传送。位于目的设备的片外控制器(未示出)包括解压缩器,其从所接收的总线包提取压缩有效载荷数据并对其进行解压缩以重构该处理波形数据。可配置压缩器620和解压缩器720可以与存储器接口控制器(MIC)445进行集成以提供往来于片外存储器448的压缩数据传输。可配置压缩器620和解压缩器720也可以与MIC 445和BIC 444分开实现或者由它们共享。
图14c图示了用于在Intel Nehalem(图7b)的处理器核之间进行通信的压缩和解压缩的示例。8个处理器核510a-510h经由两个反向旋转环516传输数据。反向旋转环516使用QPI包协议传输包。处理器核510a-510h包括对波形数据进行压缩以便传输至一个或多个其它核510a-510h的对应可配置压缩器620a-620h。所要传输的波形数据可以是应用处理的中间数据。可配置压缩器620a-620h形成QPI包,其中的有效载荷部分包含压缩数据。可配置压缩器620a-620h经由反向旋转环516向一个或多个其它核510a-510h提供具有压缩有效载荷的QPI包。为了从反向旋转环516接收数据,对应的可配置解压缩器720a-720h对所接收的QPI包的压缩有效载荷进行解压缩以以重构中间数据或波形数据以便由对应的核510a-510h进一步处理。除了在处理器核之间进行通信之外,可配置压缩器620和解压缩器720还可以集成到位于QPI接口514a-514d和/或存储器接口SMI0和SMI1的控制器中。
图15是向处理器核提供输入数据的示例。输入控制器1800可以连接到生成输入数据的设备,诸如提供采样波形数据的ADC 120、提供仿真波形数据的仿真器130或者提供中间数字结果150的外部处理器(见图2)。输入控制器1800在将输入数据传输到处理器核1810之前对其进行压缩。处理器核1810在执行特定应用的操作之前对所接收的输入数据应用解压缩。输入控制器1800可以将压缩数据分布到多个处理器核(图15中未示出),其中每个处理器核对所接收数据进行解压缩以形成解压缩数据供应用处理。
图16是在多个处理器核之间传达数据的示例。源处理器核1900a和1900b向每个目的处理器核1900c和1900d提供部分处理数据或中间结果以便在应用中进一步处理。源核1900a、1900b压缩对应部分处理的数据或中间结果并且传输对应的压缩数据。目的核1900c、1900d每一个均从两个源核1900a、1900b这二者接收压缩数据并对其进行解压缩。目的核1900c、1900d对解压缩数据应用对应处理操作。
图17是从处理器核到输出控制器的示例性数据传输。处理器核2000针对特定应用产生处理波形数据。处理波形数据可以表示该应用的部分处理的中间结果或者完全处理的最终结果。处理器核2000对处理数据进行压缩并且将经压缩的数据传输至输出控制器2010。输出控制器2010接收经压缩的数据并对其进行解压缩。多个处理器核(未示出)可以对处理数据进行压缩并将其传输到输出控制器2010。输出控制器2010可以对解压缩数据执行额外的功能,诸如将从不同处理器核接收的数据进行整合以用于进一步处理或显示。
图18图示了使用压缩和解压缩对其针对片外存储器或存储设备2130的读写访问进行改进的处理器2100。CPU或核2105访问片上存储器2120以及片外存储器或存储设备2130这二者。CPU或核2105对片上存储器2120的访问经由地址和数据总线2115直接执行。CPU或核2105通过压缩控制接口610经由直接存储器存取(DMA)、输入-输出或存储器控制器2110请求对片外存储器或存储2130的压缩访问(读或写)。如之前图9所描述的,压缩控制接口610允许CPU或核2105为可配置压缩器620提供控制参数以压缩整数或浮点数据、以用无损或有损模式进行压缩、以指定所期望压缩块大小,以及在对片外存储器或存储设备2130进行数据写入期间的其它压缩专用参数。可配置压缩器620可以在片外存储器或存储设备2130中存储的压缩包的报头中包括控制信息。在从片外存储器或存储设备2130进行数据读取期间,可配置解压缩器720对每个压缩包报头中的控制信息进行解码,使用依据控制参数的解压缩操作对整数或浮点数值进行解压缩。解压缩输出样本被提供至片上存储器2120。可配置压缩器620尤其适用于针对片外存储器或存储2130的访问的基于块或包的属性。当元件2110被实现为DMA控制器时,大的数据块通常在片上存储器2120和片外存储器或存储设备2130之间进行传输。由于本发明可应用于基于包的压缩和解压缩或流处理(与随机存取、单数值处理相比),所以可配置压缩器620和可配置解压缩器720非常适用于DMA访问。而且,由于CPU或核2105通常经由DMA控制器2110发起DAM访问,所以可配置压缩器620在数据写入期间或可配置解压缩器720在从片外存储器或存储设备2130进行数据读取期间所引入的等待时间可以隐藏在相对长的(与CPU2105对片上存储器2120的访问相比长的)DMA事务时间之中。
图19示出了对1MB数据包应用2∶1压缩的示例的带宽改善的表。该示例假设1MB的数据包包含整数或浮点波形数值。波形数值可以包含与每个波形样本1、2或4个字节相对应的8位、16位或32位数值。类似地,波形数值也可以包含对应于每个浮点波形样本4字节或8字节的32位或64位长度的浮点数值。图19的第一列列出了示例参数,而第二列和3则分别包含不进行压缩和进行2∶1压缩的参数值。考虑第二列(无压缩),1MB数据从核1传输到核2包括核1传送器(Tx)中1毫秒(0.001秒)的开始等待时间以及核2接收器(Rx)中1毫秒(0.001秒)的完成等待时间。在该示例中,1MB的波形数据包需要总共1.002秒的未压缩传输时间,其中包括使用核1和核2之间1MB/秒链路的1秒传输时间。与之相比,第三列列出了对原始1MB波形包应用2∶1压缩从而仅传输500kB压缩数据的情形中的相同参数。可配置压缩器620和可配置解压缩器720具有来自于填充压缩和解压缩流水线的额外开始等待时间。在该示例中,压缩和解压缩每一个的等待时间估计均为10毫秒(0.01秒)。因此,使用2∶1压缩,1MB波形数据包需要总共0.52秒的压缩传输时间,其中包括使用核1和核2之间1MB/秒链路的0.5秒传输时间。图19的最后一行指示出进行2∶1压缩的传输带宽大致为未压缩传输带宽的两倍。
在多核应用中,所要执行的计算工作分布在多个核之间。在许多波形处理应用中,整数或浮点数据被分布到使用各种网络、总线和存储器接口的多个核。这样的应用的总体处理时间受到向各种处理核分布波形数据样本所需的时间以及每个核中完成计算工作所需的时间的影响。此外,波形处理通常需要数据以已知顺序或次序进行分布;在这种情况时,一些核将花费时间等待相邻的核输送其处理的波形输出结果。无论计算时间如何,所有波形处理应用的总体时间都将在I/O时间减少的情况下有所减少。其总体时间更多地由I/O(数据交换)时间而不是核计算时间确定的应用被称作“I/O限定(bound)”应用。其总体时间更多地由核计算时间而不是I/O(数据交换)时间确定的应用被称作“计算限定”应用。本发明在缩短I/O限定应用的总体处理时间方面是特别有效的。I/O限定应用从本发明提高波形数据带宽和减少波形数据等待时间两方面获益。核用来等待波形输入数据的时间也有所减少。
图20图示了如何通过压缩对N个处理核的流水线所执行的I/OI/O和处理进行加速。如图19所讨论的,图20中所示的示例假设核至核的包的2∶1压缩。时间线A图示了在N个核之间传送未压缩波形数据包的波形数据处理应用中的一系列N个{I/O,计算}矩形对。每个矩形的宽度表示I/O或计算操作所用的时间。时间线B图示了相同的处理步骤,但是对每个I/O操作使用2∶1压缩。注意,相应的计算操作COMP1至COMPN对于时间线A中所示出的那些是相同的;这两个应用的计算时间相同。然而,由于以商数2(2∶1压缩)减少了I/O或数据交换时间,所以时间线B中的整体处理持续时间为T2,其比图20a中的整体处理持续时间T1短。尽管处理持续时间的整体加速(T1-T2)取决于I/O和计算时间的特定长度,但是图20所清楚表达的是,在处理流水线中配置的多个核之间的I/O使用本发明的可配置、低等待时间、高带宽的压缩和解压缩块对核之间的I/O进行加速的情况下,波形数据压缩应用将会更快完成。将本发明的压缩应用到例如环形拓扑、星形拓扑和网格拓扑的其他多核拓扑结构也可加速核之间的数据交换。
对于图20的示例而言,计算操作COMP1至COMPN可以表示在N个处理器核上执行的线程。时间间隔[I/O或XCHG]表示波形数据沿N个处理器核的流水线进行通信所需的时间。在[I/O或XCHG]时间间隔期间,相应的核进入等待模式。如图20所示,压缩减少了数据传输的时间,因此减少了核处于等待模式中的时间。结果是系统性能在整体处理较低的持续时间和核计算系统资源更为有效的利用两方面有所提升。
本发明的实施例适用于使用基于包或基于块的数据交换在核之间交换整数或浮点数据的波形数据应用。可配置压缩器620可适用于针对被传送到接收核的波形数据的特定数据类型和所选择压缩模式(无损或有损)。可配置压缩器620向压缩包的报头插入控制信息。可配置解压缩器720从每个所接收的压缩包的包报头确定数据类型和其它控制参数。可配置解压缩器720依据特定压缩包的数据类型以及诸如压缩模式之类的控制参数对压缩有效载荷数据进行用适当的解压缩操作。本发明适用于包括(但并不限于)图5所描述的那些在内的各种网络、总线和存储应用,并且包括诸如片上高速缓存(寄存器文件、SRAM或DRAM)、片外SRAM、DRAM或闪存在内的半导体存储器,以及诸如磁盘或磁带驱动器的磁性介质。
针对可配置压缩器和解压缩器存在各种备选实施方式。在优选实施例中,可配置压缩器620直接集成在与传送包缓冲器相同的裸芯上,从而波形数据以最低的等待时间以及最高的压缩和解压缩速率进行压缩以便进行包传送。可配置压缩器620和可配置解压缩器720可以以实时速率进行操作,该实时速率也就是至少与它们与之对接的设备一样快的速率,像提供波形样本那么快地对它们进行压缩以及像波形样本被消耗那么快地对它们进行解压缩。类似地,在优选实施例中,可配置解压缩器720直接集成在与接收包缓冲器相同的裸芯上,从而如之前所描述的,在包接收时,波形数据就以最低的等待时间和最高的压缩和解压缩速率被解压缩。备选地,可配置压缩器620和可配置解压缩器720可以分别使用传送和接收核的指令集以速度和等待时间有所优化的汇编语言实施方式来实现。由于汇编语言实施方式将需要每个压缩波形数据元素的多个指令周期,所以其速度和等待时间将明显高于优选实施方式。
在多芯片实施方式中,可配置压缩器620和/或可配置解压缩器720在与其上实现通信处理器的裸芯分开的裸芯(即,以硬件)上实现,其中独立压缩和/或解压缩裸芯位于相同的衬底上并且因此与其中实现通信处理器的裸芯非常接近。在该多芯片实施方式中,压缩器和解压缩器裸芯可以被研发为独立的产品并且随后与各种通信处理器裸芯进行集成。该多芯片实施方式的优势在于其允许压缩器和/或解压缩器裸芯以与相同裸芯上的优选方式相比更低的成本进行集成,原因在于包含通信处理器的裸芯通常远大于(并且因此对于设计和组装而言更为昂贵)包含可配置压缩器620和/或可配置解压缩器720的裸芯。
对于某些应用,诸如在通信链路单向发送波形数据时,可配置压缩器620和可配置解压缩器720可以集成在独立裸芯中。这样的条件在以下情况出现,波形数据源被一个设备(诸如ADC或数据获得子系统)所捕获,而压缩波形数据的处理由另一个设备(诸如FPGA、CPU、GPU等)执行。对于其它应用类似地,压缩器可以与FPGA、CPU、GPU等所进行的波形数据处理进行集成,而压缩包被接收、解压缩并且所生成的波形被提供至诸如DAC或者其它模拟或数字信号发生器的输出子系统。
这里已经描述了一种在波形处理系统中使用的方法,该波形处理系统具有多个处理器核以及用于在多个处理器核之间进行数据包传输的通信构造,其中波形数据样本以整数格式或浮点格式表示,该方法包括:
在预处理器控制参数的控制下对波形数据样本的子集进行预处理以生成压缩器输入样本;
在量级调节参数的控制下对压缩器输入样本的量级进行调节以生成调节信号样本;
在压缩控制参数的控制下对调节信号样本进行压缩以生成压缩包有效载荷的压缩样本;
创建包括预处理器控制参数的指示符、该量级控制参数的指示符以及压缩控制参数的指示符的包报头;
将包报头与压缩包有效载荷合并为压缩包;以及
在接口将压缩包提供至该通信构造。
附加的备选实施方式包括以下内容。可配置压缩器620和可配置解压缩器720可以实现为用于目标ASIC设计工艺的定制智能属性(IP)块。可配置压缩器620和可配置解压缩器720可以在CPU、GPU、DSP芯片或其它多核处理器上以软件来实现。可配置压缩器620和可配置解压缩器720可以被实现为片上网络、完全连接的交换机、或部分连接的交换机实施方式的一部分。
可配置压缩器620和可配置解压缩器720的实施例还可以进行适配以改进吞吐量、减少等待时间或降低复杂度。例如,可以使用多个预处理器将浮点{符号,指数,尾数}字段转换为符合有损压缩调节块622和无损压缩器624的预期输入格式的格式。随后将选择减少等待时间、增加吞吐量或者降低压缩器或解压缩器的复杂度,或者所有这些特征的组合的特定处理器。预处理器还可以执行基础转换,诸如从基数2转换为基数10;这样方便的基础转换的原因以及其好处在IEEE-754(2008)浮点数据标准中有所描述。
本发明的实施例还可以集成到DRAM、DDR、DDR2或DDR3外部存储器的存储器控制器中,由此实现对单核或多核CPU之外的半导体(DRAM、闪存、FRAM等)存储器中所存储的整数和浮点波形数据数值进行压缩和解压缩的存储器控制器的可配置压缩器。类似地,本发明可以集成到相同裸芯上(或者在多芯片模块的相同封装中)的高速缓存控制器中,以实现用于波形数据的可配置高速缓存存储器压缩器和解压缩器。
尽管已经图示并描述的本发明的优选实施例,但是清楚的是,本发明并不仅局限于这些实施例。多种修改、改变、变化、替代和等同形式对于本领域技术人员将是显而易见的,其并不背离如权利要求中所描述的本发明的精神和范围。

Claims (34)

1.一种在包括集成在芯片上的处理器、存储器控制器和第一存储器设备以及位于所述芯片之外的第二存储器设备的系统中用于压缩波形数据以便存储在所述第二存储器设备中的方法,包括:
在所述存储器控制器处接收来自所述处理器的向所述第二存储器设备写入波形数据的请求,其中所述波形数据包括以整数数据格式或浮点数据格式表示的多个样本;
在与所述存储器控制器集成的压缩逻辑处接收来自所述处理器的一个或多个压缩控制参数;
在所述存储器控制器中的所述压缩逻辑处响应于来自所述处理器的所述请求从所述第一存储器设备接收所述多个样本;
所述压缩逻辑依据所述压缩控制参数对所述多个样本进行压缩以形成压缩包的多个压缩样本;以及
将所述压缩包传输至所述第二存储器设备,所述第二存储器设备存储所述压缩包。
2.如权利要求1所述的方法,其中所述压缩控制参数中的一个是指示无损压缩模式或有损压缩模式的压缩模式参数,其中所述压缩依据所述压缩模式参数对所述样本应用无损压缩操作或有损压缩操作。
3.如权利要求1所述的方法,其中一个压缩控制参数是每个压缩包的期望比特数或者期望压缩比。
4.如权利要求3所述的方法,其中所述压缩进一步包括:
针对一个或多个压缩包计算每个包的压缩样本中的比特数;
将每个包的所述压缩样本中的所述比特数与每个包的期望比特数进行比较以确定反馈参数;以及
依据所述反馈参数对所述压缩进行适配。
5.如权利要求1所述的方法,其中第一个压缩控制参数是所述样本的数据类型参数,所述数据类型参数指示所述整数数据格式或所述浮点数据格式,其中对于所述整数数据格式而言,每个输入样本包括第一符号位和第一多个尾数位,并且对于所述浮点数据格式而言,每个样本包括第二符号位、第二多个尾数位以及多个浮点指数位,所述方法进一步包括:
在所述数据类型参数指示所述整数数据格式时对所述压缩进行配置以对每个样本的所述第一符号位和所述第一多个尾数位进行处理;以及
在所述数据类型参数指示所述浮点数据格式时对所述压缩进行配置以对每个样本的所述第二符号位、所述第二多个尾数位以及所述多个浮点指数位进行处理。
6.如权利要求5所述的方法,其中第二个压缩控制参数是指示无损压缩模式或有损压缩模式的压缩模式参数,其中所述数据类型参数指示所述整数数据格式,所述压缩进一步包括:
依据所述压缩模式参数对每个样本的所述第一符号位和所述第一多个尾数位应用无损压缩操作或有损压缩操作。
7.如权利要求5所述的方法,其中第二个所述压缩控制参数是指示无损压缩模式或有损压缩模式的压缩模式参数,其中所述数据类型参数指示所述浮点数据格式,所述压缩进一步包括:
将每个样本的所述多个浮点指数位与所述第二符号位和所述第二多个尾数位进行分离;
对每个样本的所述多个浮点指数位应用无损压缩操作以产生多个压缩浮点指数;
依据所述压缩模式参数对每个样本所述第二符号位和所述第二多个尾数位应用无损压缩操作或有损压缩操作以形成多个压缩符号和尾数;以及
将所述多个压缩浮点指数以及所述多个压缩符号和尾数提供给所述压缩包。
8.如权利要求1所述的方法,其中所述压缩包进一步包括报头部分和有效载荷部分,所述方法进一步包括:
在所述报头部分中提供至少一个所述压缩控制参数;以及
在所述有效载荷部分中提供所述多个压缩样本。
9.如权利要求1所述的方法,其中所述系统包括集成在所述芯片上的多个处理器,从一个或多个所述处理器接收向所述第二存储器设备写入相应的波形数据的的请求的所述存储器控制器,所述压缩应用于相应的多个样本以形成相应的多个压缩样本。
10.如权利要求1所述的方法,其中所述存储器控制器进一步包括直接存储器存取控制器,其中所述压缩逻辑与所述直接存储器存取控制器进行集成以执行所述压缩。
11.一种在包括集成在芯片上的处理器、存储器控制器和第一存储器设备以及位于所述芯片之外的第二存储器设备的系统中用于对从所述第二存储器设备得到的波形数据进行解压缩的方法,包括:
在所述存储器控制器处接收来自所述处理器从所述第二存储器设备得到所述波形数据的请求,其中所述波形数据由存储在所述第二存储器设备中的多个压缩样本所表示,其中所述多个压缩样本以及一个或多个压缩控制参数包含在压缩包中;
在与所述存储器控制器集成的解压缩逻辑处响应于所述请求从所述第二存储器设备接收所述压缩包;
所述解压缩逻辑依据所述一个或多个压缩控制参数对所述压缩包的所述多个压缩样本进行解压缩以形成表示所述波形数据的多个解压缩样本;以及
将所述多个解压缩样本提供至所述第一存储器设备,所述第一存储器设备存储所述多个解压缩样本用于由所述处理器访问。
12.如权利要求11所述的方法,其中所述一个压缩控制参数是指示无损压缩模式或有损压缩模式的压缩模式参数,其中所述解压缩依据所述压缩模式参数对所述多个压缩样本应用无损解压缩操作或有损解压缩操作。
13.如权利要求11所述的方法,其中第一个压缩控制参数是所述压缩样本的数据类型参数,所述数据类型参数指示整数数据格式或浮点数据格式,其中对于所述整数数据格式而言,所述压缩包包括所述多个压缩样本的压缩符号和尾数数据,并且对于浮点数据格式而言,所述压缩包包括所述多个压缩样本的压缩浮点指数、符号和尾数数据,所述方法进一步包括:
在所述数据类型参数指示所述整数数据格式时,对所述解压缩进行配置以对所述压缩符号和尾数数据进行处理以生成每个解压缩样本的所述第一符号位和所述第一多个尾数位;以及
在所述数据类型参数指示所述浮点数据格式时,对所述解压缩进行配置以对所述多个压缩样本的所述压缩浮点指数、符号和尾数数据进行处理以生成每个压缩样本的所述第二符号位、所述第二多个尾数位以及所述多个浮点指数位。
14.如权利要求13所述的方法,其中第二个所述压缩控制参数是指示无损压缩模式或有损压缩模式的压缩模式参数,其中所述数据类型参数指示所述整数数据格式,所述解压缩进一步包括:
依据所述压缩模式参数对所述压缩符号和尾数数据应用无损解压缩操作或有损解压缩操作以依据所述整数数据格式产生每个解压缩样本的所述第一符号位和所述第一多个尾数位。
15.如权利要求13所述的方法,其中第二个所述压缩控制参数是指示无损压缩模式或有损压缩模式的压缩模式参数,其中所述数据类型参数指示所述浮点数据格式,所述解压缩进一步包括:
从所述压缩包提取所述压缩浮点指数数据以及所述压缩符号和尾数数据;
对所述压缩浮点指数数据应用无损解压缩操作以形成多个解压缩浮点指数;
依据所述压缩模式参数对所述压缩符号和尾数数据应用无损解压缩操作或有损解压缩操作以形成多个解压缩符号和尾数;以及
将所述解压缩浮点指数与对应的多个所述解压缩符号和尾数进行组合以依据所述浮点数据格式形成所述解压缩样本。
16.如权利要求11所述的方法,其中所述系统包括集成在所述芯片上的多个处理器,从一个或多个所述处理器接收从所述第二存储器设备读取相应的波形数据的请求的所述存储器控制器,其中所述相应的波形数据由所述第二存储器设备中所存储的相应的多个压缩样本表示,其中所述解压缩被应用于所述相应的多个压缩样本以形成相应的多个解压缩样本。
17.如权利要求11所述的方法,其中所述存储器控制器进一步包括直接存储器存取控制器,其中所述解压缩逻辑与所述直接存储器存取控制器相集成以执行所述解压缩。
18.一种在包括集成在芯片上的处理器、存储器控制器和和第一存储器设备以及位于所述芯片之外的第二存储器设备的系统中用于压缩波形数据以便存储在所述第二存储器设备中的装置,包括:
所述存储器控制器耦合到所述处理器和所述第一存储器设备,其中所述存储器控制器可操作以接收来自所述处理器向所述第二存储器设备写入所述波形数据的请求,其中所述波形数据包括以整数数据格式或浮点数据格式表示的多个样本,所述存储器控制器响应于所述请求从所述第一存储器设备获取多个样本;以及
与所述存储器控制器集成的压缩逻辑,所述压缩逻辑被耦合以接收从所述第一存储器设备获取的所述多个样本以及来自所述处理器的一个或多个压缩控制参数,其中所述压缩逻辑可操作以依据所述一个或多个压缩控制参数对所述多个样本进行压缩以形成压缩包的多个压缩样本,所述压缩逻辑被耦合以将所述压缩包提供给所述第二存储器设备用于所述存储。
19.如权利要求18所述的装置,其中一个所述压缩控制参数是指示无损压缩模式或有损压缩模式的压缩模式参数,其中所述压缩逻辑能够依据所述压缩模式参数以所述无损压缩模式或所述有损压缩模式进行操作。
20.如权利要求18所述的装置,其中一个所述压缩控制参数是每个压缩包的期望比特数或者期望压缩比。
21.如权利要求20所述的装置,其中所述压缩逻辑进一步包括:
用于针对一个或多个压缩包计算每个包的所述压缩样本中的比特数的逻辑;
用于将每个包的压缩样本中的所述比特数与所述每个压缩包的期望比特数进行比较以确定反馈参数的逻辑;以及
用于依据所述反馈参数对所述压缩操作进行适配的逻辑。
22.如权利要求18所述的装置,其中第一个压缩控制参数是所述样本的数据类型参数,所述数据类型参数指示所述整数数据格式或所述浮点数据格式,其中对于所述整数数据格式而言,每个样本包括第一符号位和第一多个尾数位,并且对于所述浮点数据格式而言,每个样本包括第二符号位、第二多个尾数位以及多个浮点指数位,所述压缩逻辑进一步包括:
用于对相应样本的符号位和尾数位进行压缩的第一逻辑;
用于对相应样本的浮点指数位进行压缩的第二逻辑;
用于在所述数据类型参数指示所述整数数据格式时向所述第一逻辑提供每个样本的所述第一符号位和所述第一多个尾数位的逻辑;以及
用于在所述数据类型参数指示所述浮点数据格式时向所述第一逻辑提供每个样本的所述第二符号位和所述第二多个尾数位并且向所述第二逻辑提供所述多个浮点指数位的逻辑。
23.如权利要求22所述的装置,其中第二个所述压缩控制参数是指示无损压缩模式或有损压缩模式的压缩模式参数,其中所述数据类型参数指示所述整数数据格式,其中所述第一逻辑能够依据所述压缩模式参数以所述无损压缩模式或所述有损压缩模式进行操作。
24.如权利要求22所述的装置,其中第二个所述压缩控制参数是指示无损压缩模式或有损压缩模式的压缩模式参数,其中所述数据类型参数指示所述浮点数据格式,其中所述第一逻辑能够依据所述压缩模式参数以所述无损压缩模式或所述有损压缩模式进行操作,并且所述第二逻辑能够以所述无损压缩模式进行操作。
26.如权利要求18所述的装置,其中所述压缩包进一步包括报头部分和有效载荷部分,所述压缩逻辑进一步包括:
用于向所述报头部分提供至少一个所述压缩控制参数的逻辑;以及
用于向所述有效载荷部分提供所述多个压缩样本的逻辑。
27.如权利要求18所述的装置,其中所述系统包括集成在所述芯片上的多个处理器,其中所述存储器控制器被耦合到一个或多个所述处理器以从相应的处理器接收向所述第二存储器设备写入对应的波形数据的请求,其中所述压缩逻辑被应用于相应的多个样本以产生相应的多个压缩样本。
28.如权利要求18所述的装置,其中所述存储器控制器进一步包括直接存储器存取控制器,其中所述压缩逻辑与所述直接存储器存取控制器相集成。
29.一种在包括集成在芯片上的处理器、存储器控制器和第一存储器设备以及以及位于所述芯片之外的第二存储器设备的系统中用于对从所述第二存储器设备所得到的波形数据进行解压缩的装置,包括:
所述存储器控制器耦合到所述处理器和所述第一存储器设备,其中所述存储器控制器可操作以接收来自所述处理器的从所述第二存储器设备读取所述波形数据的请求,其中所述波形数据由存储在所述第二存储器设备中的多个压缩样本表示,其中所述多个压缩样本以及一个或多个压缩控制参数包含在压缩包中,所述存储器控制器耦合到所述第二存储器设备以响应于所述请求从所述第二存储器设备获取所述压缩包;以及
与所述存储器控制器集成的解压缩逻辑,所述解压缩逻辑被耦合以从所述第二存储器设备获取所述压缩包,其中所述解压缩逻辑可操作以依据一个或多个压缩控制参数对所述多个压缩样本进行解压缩,以形成表示所述多个样本的多个解压缩样本,所述解压缩逻辑被耦合以将所述多个解压缩样本提供至所述第一存储器设备,所述第一存储器设备存储所述多个解压缩样本以用于由所述处理器访问。
30.如权利要求29所述的装置,其中所述一个压缩控制参数是指示无损压缩模式或有损压缩模式的压缩模式参数,其中所述解压缩逻辑能够依据所述压缩模式参数应用无损解压缩操作或有损解压缩操作进行操作。
31.如权利要求29所述的装置,其中第一个压缩控制参数是所述压缩样本的数据类型参数,所述数据类型参数指示整数数据格式或浮点数据格式,其中对于所述整数数据格式而言,所述压缩包包括所述多个压缩样本的压缩符号和尾数数据,并且对于浮点数据格式而言,所述压缩包包括所述多个压缩样本的压缩浮点指数、符号和尾数数据,所述解压缩逻辑进一步包括:
用于对相应的压缩样本的压缩符号和尾数数据进行解压缩以形成解压缩符号和尾数的第一逻辑;
用于对相应的压缩样本的压缩浮点指数数据进行解压缩以形成解压缩浮点指数的第二逻辑;
用于在所述数据类型参数指示所述整数数据格式时,将所述压缩包的所述压缩符号和尾数数据提供至所述第一逻辑的逻辑;以及
用于在所述数据类型参数指示所述浮点数据格式时,向所述第一逻辑提供所述压缩包的所述压缩符号和尾数数据并且向所述第二逻辑提供所述压缩包的所述压缩浮点指数数据的逻辑。
32.如权利要求31所述的装置,其中第二个所述压缩控制参数是指示无损压缩模式或有损压缩模式的压缩模式参数,其中所述数据类型参数指示所述整数数据格式,其中所述第一逻辑可操作以依据所述压缩模式参数应用无损解压缩操作或有损解压缩操作。
33.如权利要求31所述的装置,其中第二个所述压缩控制参数是指示无损压缩模式或有损压缩模式的压缩模式参数,其中所述数据类型参数指示所述浮点数据格式,其中所述第一逻辑能够依据压缩模式参数以所述无损压缩模式或所述有损压缩模式进行操作,并且所述第二逻辑能够以所述无损压缩模式进行操作,所述压缩逻辑进一步包括:
依据所述浮点数据格式,用于将所述解压缩浮点指数与相应的一组解压缩符号和尾数进行组合以形成所述解压缩样本。
34.如权利要求29所述的装置,其中所述系统包括集成在所述芯片上的多个处理器,其中所述存储器控制器耦合到一个或多个所述处理器以从相应的处理器接收从所述第二存储器设备读取相应的波形数据的请求,其中所述相应的波形数据由所述第二存储器设备中存储的相应的多个压缩样本表示,所述解压缩逻辑应用于所述相应的多个压缩样本以形成相应的多个解压缩样本。
35.如权利要求29所述的装置,其中所述存储器控制器进一步包括直接存储器存取控制器,其中所述解压缩逻辑与直接存储器存取控制器相集成。
CN201080043852.9A 2009-09-30 2010-09-27 使用压缩和解压缩的增强型多处理器波形数据交换 Active CN102754078B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US24748009P 2009-09-30 2009-09-30
US61/247,480 2009-09-30
US12/891,312 2010-09-27
PCT/US2010/050420 WO2011041269A2 (en) 2009-09-30 2010-09-27 Enhanced multi-processor waveform data exchange using compression and decompression
US12/891,312 US8631055B2 (en) 2009-09-30 2010-09-27 Enhanced multi-processor waveform data exchange using compression and decompression

Publications (2)

Publication Number Publication Date
CN102754078A true CN102754078A (zh) 2012-10-24
CN102754078B CN102754078B (zh) 2015-05-20

Family

ID=43781482

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080043852.9A Active CN102754078B (zh) 2009-09-30 2010-09-27 使用压缩和解压缩的增强型多处理器波形数据交换

Country Status (6)

Country Link
US (2) US8631055B2 (zh)
EP (1) EP2483777A4 (zh)
JP (1) JP2013506917A (zh)
KR (1) KR101703207B1 (zh)
CN (1) CN102754078B (zh)
WO (1) WO2011041269A2 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020205A (zh) * 2012-12-05 2013-04-03 北京普泽天玑数据技术有限公司 一种分布式文件系统上基于硬件加速卡的压缩解压缩方法
TWI556158B (zh) * 2013-08-21 2016-11-01 威盛電子股份有限公司 組態資料的處理裝置及方法
CN108615074A (zh) * 2018-04-28 2018-10-02 中国科学院计算技术研究所 基于压缩感知的神经网络处理系统及方法
CN108629409A (zh) * 2018-04-28 2018-10-09 中国科学院计算技术研究所 一种基于主成分分析减少io开销的神经网络处理系统
CN108629410A (zh) * 2018-04-28 2018-10-09 中国科学院计算技术研究所 基于主成分分析降维和/或升维的神经网络处理方法
CN108665062A (zh) * 2018-04-28 2018-10-16 中国科学院计算技术研究所 一种基于小波变换减少io开销的神经网络处理系统
CN108764454A (zh) * 2018-04-28 2018-11-06 中国科学院计算技术研究所 基于小波变换压缩和/或解压缩的神经网络处理方法
CN113810057A (zh) * 2015-05-21 2021-12-17 零点科技公司 用于语义值数据压缩和解压缩的方法、设备和系统
CN114168085A (zh) * 2021-12-16 2022-03-11 潍柴动力股份有限公司 变量处理方法、装置、设备及存储介质

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011041269A2 (en) * 2009-09-30 2011-04-07 Samplify Systems, Inc. Enhanced multi-processor waveform data exchange using compression and decompression
US8781000B2 (en) * 2010-12-30 2014-07-15 Vixs Systems, Inc. Dynamic video data compression
JP6120781B2 (ja) * 2011-03-18 2017-04-26 エンパイア テクノロジー ディベロップメント エルエルシー シーンベースの可変圧縮
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
TWI524265B (zh) 2011-06-30 2016-03-01 艾特拉股份有限公司 浮點資料之壓縮
US8824506B2 (en) * 2012-01-05 2014-09-02 International Business Machines Corporation Fragmentation of link layer discovery protocol packets
US9026568B2 (en) 2012-03-30 2015-05-05 Altera Corporation Data compression for direct memory access transfers
US9104473B2 (en) 2012-03-30 2015-08-11 Altera Corporation Conversion and compression of floating-point and integer data
US9158686B2 (en) 2012-03-30 2015-10-13 Altera Corporation Processing system and method including data compression API
US9118345B2 (en) 2012-10-04 2015-08-25 Altera Corporation Data compression profiler for configuration of compression
US9064077B2 (en) 2012-11-28 2015-06-23 Qualcomm Incorporated 3D floorplanning using 2D and 3D blocks
US9098666B2 (en) 2012-11-28 2015-08-04 Qualcomm Incorporated Clock distribution network for 3D integrated circuit
CN105264779B (zh) 2013-01-22 2019-06-07 阿尔特拉公司 使用simd指令的数据压缩和解压
US9298457B2 (en) 2013-01-22 2016-03-29 Altera Corporation SIMD instructions for data compression and decompression
US9274802B2 (en) 2013-01-22 2016-03-01 Altera Corporation Data compression and decompression using SIMD instructions
US9536840B2 (en) 2013-02-12 2017-01-03 Qualcomm Incorporated Three-dimensional (3-D) integrated circuits (3DICS) with graphene shield, and related components and methods
US9041448B2 (en) 2013-03-05 2015-05-26 Qualcomm Incorporated Flip-flops in a monolithic three-dimensional (3D) integrated circuit (IC) (3DIC) and related methods
US9177890B2 (en) 2013-03-07 2015-11-03 Qualcomm Incorporated Monolithic three dimensional integration of semiconductor integrated circuits
US9171608B2 (en) 2013-03-15 2015-10-27 Qualcomm Incorporated Three-dimensional (3D) memory cell separation among 3D integrated circuit (IC) tiers, and related 3D integrated circuits (3DICS), 3DIC processor cores, and methods
US9311721B1 (en) * 2013-04-04 2016-04-12 Sandia Corporation Graphics processing unit-assisted lossless decompression
US20140357993A1 (en) * 2013-05-31 2014-12-04 eagleyemed, Inc. Dynamic adjustment of image compression for high resolution live medical image sharing
US9274951B2 (en) * 2013-05-31 2016-03-01 Altera Corporation Cache memory controller for accelerated data transfer
US10024976B2 (en) 2013-08-21 2018-07-17 Samsung Electronics Co., Ltd Method and apparatus for reducing memory and communications bandwidth requirements in GNSS receivers
US9141563B2 (en) 2013-09-11 2015-09-22 Kabushiki Kaisha Toshiba Memory system
US10305980B1 (en) 2013-11-27 2019-05-28 Intellectual Property Systems, LLC Arrangements for communicating data in a computing system using multiple processors
US9747048B2 (en) * 2014-06-02 2017-08-29 Micron Technology, Inc. Systems and methods for packing data in a scalable memory system protocol
US10114554B1 (en) 2015-01-20 2018-10-30 Intellectual Property Systems, LLC Arrangements for storing more data in faster memory when using a hierarchical memory structure
US9354812B1 (en) 2015-02-12 2016-05-31 Qualcomm Incorporated Dynamic memory utilization in a system on a chip
US9685219B2 (en) 2015-05-13 2017-06-20 Samsung Electronics Co., Ltd. Semiconductor memory device for deconcentrating refresh commands and system including the same
WO2017031149A1 (en) * 2015-08-19 2017-02-23 Texas Instruments Incorporated Method and system for compression of radar signals
US20170054449A1 (en) * 2015-08-19 2017-02-23 Texas Instruments Incorporated Method and System for Compression of Radar Signals
US10284502B2 (en) * 2015-10-12 2019-05-07 Mellanox Technologies, Ltd. Dynamic optimization for IP forwarding performance
US10191850B2 (en) 2016-03-31 2019-01-29 Qualcomm Incorporated Providing memory bandwidth compression using multiple last-level cache (LLC) lines in a central processing unit (CPU)-based system
US10067706B2 (en) 2016-03-31 2018-09-04 Qualcomm Incorporated Providing memory bandwidth compression using compression indicator (CI) hint directories in a central processing unit (CPU)-based system
US10712738B2 (en) 2016-05-09 2020-07-14 Strong Force Iot Portfolio 2016, Llc Methods and systems for industrial internet of things data collection for vibration sensitive equipment
US11327475B2 (en) 2016-05-09 2022-05-10 Strong Force Iot Portfolio 2016, Llc Methods and systems for intelligent collection and analysis of vehicle data
US11774944B2 (en) 2016-05-09 2023-10-03 Strong Force Iot Portfolio 2016, Llc Methods and systems for the industrial internet of things
US10176090B2 (en) 2016-09-15 2019-01-08 Qualcomm Incorporated Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-based systems
US10649943B2 (en) * 2017-05-26 2020-05-12 Dell Products, L.P. System and method for I/O aware processor configuration
US10346346B1 (en) * 2017-12-21 2019-07-09 Xilinx, Inc. Inline ECC function for system-on-chip
US10656202B1 (en) * 2018-09-21 2020-05-19 Xilinx, Inc. Electronic device including integrated circuit with debug capabilities
US10877847B2 (en) * 2018-10-09 2020-12-29 International Business Machines Corporation Using accelerators for distributed data compression and decompression to improve checkpoint / restart times
US10965786B2 (en) 2018-10-31 2021-03-30 At&T Intellectual Property I, L.P. Adaptive fixed point mapping for uplink and downlink fronthaul
RU2719427C1 (ru) * 2018-11-30 2020-04-17 Федеральное государственное бюджетное образовательное учреждение высшего образования "Рязанский государственный радиотехнический университет" Устройство согласования датчиков с электронной аппаратурой
US11075647B2 (en) 2019-02-27 2021-07-27 Movidius Limited Methods and apparatus to compress data
CN109921800B (zh) * 2019-02-28 2023-02-03 四川九洲空管科技有限责任公司 基于自定制浮点格式的频域脉冲压缩方法
JP7099487B2 (ja) * 2020-03-31 2022-07-12 横河電機株式会社 データ管理システム、データ管理方法、および、データ管理プログラム
US11418455B2 (en) * 2020-08-31 2022-08-16 Micron Technology, Inc. Transparent packet splitting and recombining
US11539623B2 (en) 2020-08-31 2022-12-27 Micron Technology, Inc. Single field for encoding multiple elements
US11296995B2 (en) 2020-08-31 2022-04-05 Micron Technology, Inc. Reduced sized encoding of packet length field
US11360920B2 (en) 2020-08-31 2022-06-14 Micron Technology, Inc. Mapping high-speed, point-to-point interface channels to packet virtual channels
US11412075B2 (en) 2020-08-31 2022-08-09 Micron Technology, Inc. Multiple protocol header processing
GB2603459B (en) * 2021-01-22 2023-05-10 Advanced Risc Mach Ltd Data processing systems
CN113626187A (zh) * 2021-07-31 2021-11-09 浙江省机电产品质量检测所有限公司 测量数据的处理方法及装置
US20230102584A1 (en) * 2021-09-24 2023-03-30 Apple Inc. Systems and Methods for Multi-Core Image Encoding
KR102639157B1 (ko) * 2021-12-02 2024-02-21 서울과학기술대학교 산학협력단 합성곱 신경망을 위한 부동소수점 압축이 포함된 캐시
CN114391875B (zh) * 2022-02-14 2023-08-11 逸超科技(武汉)有限公司 一种波束合成方法、装置及存储介质
US20230037575A1 (en) * 2022-09-30 2023-02-09 Michael Wu Data Compression in Integrated Device Network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1688963A (zh) * 2002-09-20 2005-10-26 爱特梅尔股份有限公司 用于动态编程解压缩的装置和方法
WO2007107457A1 (en) * 2006-03-23 2007-09-27 International Business Machines Corporation Memory compression in information handling systems
US20080126903A1 (en) * 2006-11-28 2008-05-29 Samplify Systems, Inc. Compression and decompression of stimulus and response waveforms in automated test systems

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5185819A (en) * 1991-04-29 1993-02-09 General Electric Company Video signal compression apparatus for independently compressing odd and even fields
US5839100A (en) 1996-04-22 1998-11-17 Wegener; Albert William Lossless and loss-limited compression of sampled data signals
US5765157A (en) 1996-06-05 1998-06-09 Sun Microsystems, Inc. Computer system and method for executing threads of execution with reduced run-time memory space requirements
US5974471A (en) 1996-07-19 1999-10-26 Advanced Micro Devices, Inc. Computer system having distributed compression and decompression logic for compressed data movement
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6195024B1 (en) 1998-12-11 2001-02-27 Realtime Data, Llc Content independent data compression method and system
US7129860B2 (en) 1999-01-29 2006-10-31 Quickshift, Inc. System and method for performing scalable embedded parallel data decompression
US6601104B1 (en) * 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
US6597812B1 (en) 1999-05-28 2003-07-22 Realtime Data, Llc System and method for lossless data compression and decompression
KR20010057319A (ko) * 1999-12-21 2001-07-04 박종섭 데이터 압축을 이용한 프로세서간 데이터 송/수신 방법
US6862662B1 (en) 2000-03-03 2005-03-01 Micron Technology, Inc. High density storage scheme for semiconductor memory
US8692695B2 (en) * 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
EP1225704A1 (en) * 2001-01-12 2002-07-24 STMicroelectronics S.r.l. "A process and system for compressing and decompressing digital information and computer program product therefor
JP3885523B2 (ja) * 2001-06-20 2007-02-21 日本電気株式会社 サーバ・クライアント型音声認識装置及び方法
KR100884956B1 (ko) * 2002-08-14 2009-02-23 엘지전자 주식회사 비대칭 양방향 패킷데이터 송수신 방법 및 시스템
US7088276B1 (en) * 2004-02-13 2006-08-08 Samplify Systems Llc Enhanced data converters using compression and decompression
US7071852B1 (en) * 2004-02-13 2006-07-04 Samplify Systems Llc Enhanced test and measurement instruments using compression and decompression
US7009533B1 (en) 2004-02-13 2006-03-07 Samplify Systems Llc Adaptive compression and decompression of bandlimited signals
TWI312240B (en) 2004-03-12 2009-07-11 Sunplus Technology Co Ltd Data compressed/decompressed device and associated application system
WO2007135602A1 (en) 2006-05-24 2007-11-29 Koninklijke Philips Electronics N.V. Electronic device and method for storing and retrieving data
US7477999B2 (en) 2006-10-26 2009-01-13 Samplify Systems, Inc. Data compression for a waveform data analyzer
US7558685B2 (en) * 2006-11-29 2009-07-07 Samplify Systems, Inc. Frequency resolution using compression
US8001278B2 (en) 2007-09-28 2011-08-16 Intel Corporation Network packet payload compression
US20090248986A1 (en) 2008-03-26 2009-10-01 Daniel Citron Apparatus for and Method of Implementing Multiple Content Based Data Caches
US8005152B2 (en) * 2008-05-21 2011-08-23 Samplify Systems, Inc. Compression of baseband signals in base transceiver systems
US8174428B2 (en) * 2008-05-21 2012-05-08 Integrated Device Technology, Inc. Compression of signals in base transceiver systems
US8151022B2 (en) * 2008-11-26 2012-04-03 Simplify Systems, Inc. Compression and storage of projection data in a rotatable part of a computed tomography system
US8157738B2 (en) * 2009-06-02 2012-04-17 Samplify Systems, Inc. Ultrasound signal compression
US8317706B2 (en) * 2009-06-29 2012-11-27 White Eagle Sonic Technologies, Inc. Post-beamforming compression in ultrasound systems
WO2011041269A2 (en) * 2009-09-30 2011-04-07 Samplify Systems, Inc. Enhanced multi-processor waveform data exchange using compression and decompression
US8301803B2 (en) * 2009-10-23 2012-10-30 Samplify Systems, Inc. Block floating point compression of signal data
TWI524265B (zh) * 2011-06-30 2016-03-01 艾特拉股份有限公司 浮點資料之壓縮
US9026568B2 (en) * 2012-03-30 2015-05-05 Altera Corporation Data compression for direct memory access transfers
US9104473B2 (en) * 2012-03-30 2015-08-11 Altera Corporation Conversion and compression of floating-point and integer data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1688963A (zh) * 2002-09-20 2005-10-26 爱特梅尔股份有限公司 用于动态编程解压缩的装置和方法
WO2007107457A1 (en) * 2006-03-23 2007-09-27 International Business Machines Corporation Memory compression in information handling systems
US20080126903A1 (en) * 2006-11-28 2008-05-29 Samplify Systems, Inc. Compression and decompression of stimulus and response waveforms in automated test systems

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020205A (zh) * 2012-12-05 2013-04-03 北京普泽天玑数据技术有限公司 一种分布式文件系统上基于硬件加速卡的压缩解压缩方法
CN103020205B (zh) * 2012-12-05 2018-07-31 中科天玑数据科技股份有限公司 一种分布式文件系统上基于硬件加速卡的压缩解压缩方法
TWI556158B (zh) * 2013-08-21 2016-11-01 威盛電子股份有限公司 組態資料的處理裝置及方法
CN113810057B (zh) * 2015-05-21 2024-05-14 零点科技公司 用于语义值数据压缩和解压缩的方法、设备和系统
CN113810057A (zh) * 2015-05-21 2021-12-17 零点科技公司 用于语义值数据压缩和解压缩的方法、设备和系统
CN108665062A (zh) * 2018-04-28 2018-10-16 中国科学院计算技术研究所 一种基于小波变换减少io开销的神经网络处理系统
CN108629410A (zh) * 2018-04-28 2018-10-09 中国科学院计算技术研究所 基于主成分分析降维和/或升维的神经网络处理方法
CN108764454A (zh) * 2018-04-28 2018-11-06 中国科学院计算技术研究所 基于小波变换压缩和/或解压缩的神经网络处理方法
CN108629409B (zh) * 2018-04-28 2020-04-10 中国科学院计算技术研究所 一种基于主成分分析减少io开销的神经网络处理系统
CN108629410B (zh) * 2018-04-28 2021-01-22 中国科学院计算技术研究所 基于主成分分析降维和/或升维的神经网络处理方法
CN108629409A (zh) * 2018-04-28 2018-10-09 中国科学院计算技术研究所 一种基于主成分分析减少io开销的神经网络处理系统
CN108764454B (zh) * 2018-04-28 2022-02-25 中国科学院计算技术研究所 基于小波变换压缩和/或解压缩的神经网络处理方法
CN108615074A (zh) * 2018-04-28 2018-10-02 中国科学院计算技术研究所 基于压缩感知的神经网络处理系统及方法
CN114168085A (zh) * 2021-12-16 2022-03-11 潍柴动力股份有限公司 变量处理方法、装置、设备及存储介质
CN114168085B (zh) * 2021-12-16 2024-02-20 潍柴动力股份有限公司 变量处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
KR101703207B1 (ko) 2017-02-06
CN102754078B (zh) 2015-05-20
KR20120098628A (ko) 2012-09-05
US20110078222A1 (en) 2011-03-31
US8631055B2 (en) 2014-01-14
US20140095561A1 (en) 2014-04-03
US9319063B2 (en) 2016-04-19
WO2011041269A3 (en) 2011-07-21
WO2011041269A2 (en) 2011-04-07
EP2483777A2 (en) 2012-08-08
JP2013506917A (ja) 2013-02-28
EP2483777A4 (en) 2016-05-11

Similar Documents

Publication Publication Date Title
CN102754078B (zh) 使用压缩和解压缩的增强型多处理器波形数据交换
US11893424B2 (en) Training a neural network using a non-homogenous set of reconfigurable processors
US11880759B2 (en) Vector quantization decoding hardware unit for real-time dynamic decompression for parameters of neural networks
US11847395B2 (en) Executing a neural network graph using a non-homogenous set of reconfigurable processors
CN108292222A (zh) 用于数据解压缩的硬件装置和方法
US20140208069A1 (en) Simd instructions for data compression and decompression
CN103023509A (zh) 一种硬件lz77压缩实现系统及其实现方法
CN202931289U (zh) 一种硬件lz77压缩实现系统
CN113157637B (zh) 一种基于fpga的大容量可重构的fft运算ip核
CN104598405A (zh) 扩展芯片及可扩展的芯片系统及控制方法
US11720475B2 (en) Debugging dataflow computer architectures
WO2022133047A1 (en) Dataflow function offload to reconfigurable processors
Lee On‐Chip Bus Serialization Method for Low‐Power Communications
CN112559197B (zh) 基于异构众核处理器的卷积计算数据重用方法
US11250105B2 (en) Computationally efficient general matrix-matrix multiplication (GeMM)
CN111382853B (zh) 数据处理装置、方法、芯片及电子设备
CN111382852B (zh) 数据处理装置、方法、芯片及电子设备
CN111382856B (zh) 数据处理装置、方法、芯片及电子设备
CN102147447B (zh) 一种控制数据透传的方法、柔性标签连接方法及其装置
CN204496487U (zh) 扩展芯片及可扩展的芯片系统
Zainol et al. CPCIe: A compression-enabled PCIe core for energy and performance optimization
US11704271B2 (en) Scalable system-in-package architectures
CN117271430A (zh) 一种基于fpga和arm的嵌入式高性能异构计算平台
Nagarajan Data-transformation algorithms for minimizing bit flips on GPU data buses
McNichols et al. Design and implementation of an embedded NIOS II system for JPEG2000 tier II encoding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: ALTERA CORP.

Free format text: FORMER OWNER: SAMPLIFY SYSTEMS INC.

Effective date: 20140707

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20140707

Address after: American California

Applicant after: Altera Corp.

Address before: American California

Applicant before: Samplify Systems Inc.

C14 Grant of patent or utility model
GR01 Patent grant