專利名稱:使用壓縮和解壓縮的增強型多處理器波形數(shù)據(jù)交換的制作方法
使用壓縮和解壓縮的增強型多處理器波形數(shù)據(jù)交換
背景技術(shù):
本發(fā)明針對波形數(shù)據(jù)的壓縮以便在計算核之間進行數(shù)據(jù)傳輸和向存儲器進行數(shù)據(jù)寫入,以及隨后在計算核接收數(shù)據(jù)或者在多核處理架構(gòu)中進行數(shù)據(jù)讀取時進行解壓縮,尤其涉及整數(shù)和浮點數(shù)數(shù)據(jù)類型這兩者的壓縮。本發(fā)明支持對所有數(shù)據(jù)類型進行無損、固定速率或固定質(zhì)量的壓縮模式的選擇。在波形數(shù)據(jù)處理應(yīng)用中,微處理器或其它信號處理構(gòu)造的中央處理單元(CPU)在所存儲程序的控制下對波形數(shù)據(jù)數(shù)值執(zhí)行算術(shù)和邏輯運算,以便按照專用方式對波形數(shù)據(jù)數(shù)值進行變換。輸入、中間和輸出波形數(shù)據(jù)數(shù)值從存儲、存儲器或輸入設(shè)備所獲取,并且被提供給存儲、存儲器或輸出設(shè)備。波形數(shù)據(jù)可以通過整數(shù)和浮點數(shù)數(shù)據(jù)類型來表示。這樣的波形數(shù)據(jù)處理應(yīng)用的示例包括但不限于在蜂窩電話中接收和傳送移動電話信號,在便攜式音頻播放器中錄制和播放音頻,從DVD獲取壓縮視頻,對該壓縮視頻進行解壓縮,并且將解壓縮視頻傳送至顯示設(shè)備,在語音錄制器中錄制和回放數(shù)字話音,以及對化學(xué)、分子、電或生物過程進行仿真。波形數(shù)據(jù)處理行業(yè)包括提供大范圍的波形數(shù)據(jù)處理引擎和波形數(shù)據(jù)存儲設(shè)備的大量制造商。波形數(shù)據(jù)處理引擎大多數(shù)通常使用支持數(shù)字信號處理器(DSP)的CPU來實現(xiàn),該CPU支持使用諸如MPY和MAC的專用匯編語言指令的乘累加(MAC)運算。提供具有用于波形處理應(yīng)用的MPY和MAC指令的CPU的公司包括Intel公司(x86指令集的處理器族,包括Pentium、Nehalem、Itanium、Larrabee以及其它處理器)、Nvidia圖形處理單元(GPU)、兼容 x86 的 CPU 的 Advance Micro Device(AMD)族、AMD/ATI GPU、TexasInstruments (TMS320DSP 族)>Analog Devices (BIackf in>TigerSharc>SHARC 和 ADSP_21xx族)、Motorola (PowerPC 和 56xxx 族)、ARM (Cortex、ARM7、ARM9、ARM10 和 ARMll 族),MIPSTechnology(R2000至 R16000、MIPS 16、MIPS32、MIPS64 和 MIPS DSP族),Microchip (dsPIC族)、IBM (PowerPC族),等等。波形數(shù)據(jù)處理應(yīng)用還可以使用現(xiàn)場可編程門陣列(FPGA)中的邏輯、算術(shù)和存儲元件的可編程構(gòu)造來實現(xiàn)。提供用于波形數(shù)據(jù)處理應(yīng)用的FPGA的公司包括 Altera (Cyclone、Arria 和 Stratix 族)、Xilinx (Spartan 和 Virtex 族)、Actel (Axcelerator 和 ProASIC 族)>Lattice (XP>ECP 和 SC 族),等等。波形數(shù)據(jù)處理應(yīng)用還可以包括在被設(shè)計為執(zhí)行特定波形數(shù)據(jù)處理操作的專用集成電路(ASIC)中。ASIC提供商包括TSMC、UMC、IBM、LSI Logic和許多其他提供商。DSP、FPGA、ASIC和存儲器市場細分都是半導(dǎo)體行業(yè)的子細分。術(shù)語“存儲器”和“存儲”在以下描述中針對臨時或持久存儲波形數(shù)據(jù)處理應(yīng)用中所使用的整數(shù)或浮點樣本數(shù)據(jù)數(shù)值的設(shè)備和子系統(tǒng)可互換使用。波形數(shù)據(jù)存儲器可以包括以下半導(dǎo)體類別靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、雙倍和四倍數(shù)據(jù)速率隨機存取存儲器(DDR和QDR)、閃存、固態(tài)驅(qū)動器(SSD)、閃存驅(qū)動器、磁盤驅(qū)動器、鐵磁隨機存取存儲器、(FRAM)、高速緩存存儲器,以及用來存儲波形數(shù)據(jù)的任意其它未來的半導(dǎo)體存儲器。制造半導(dǎo)體存儲器或存儲設(shè)備的公司包括SRAM制造商,包括Cypress、Dallas Semiconductor>HoneywelI> 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、STMicroelectronics、Renesas、Hynix 等;FRAM 制造商,包括 Fuiitsu、Ramtron 和 Samsung。在這里的描述中,“波形數(shù)據(jù)處理應(yīng)用”包括對采樣數(shù)據(jù)波形執(zhí)行數(shù)學(xué)和/或邏輯運算的應(yīng)用。采樣數(shù)據(jù)波形經(jīng)常(但并非排他地)通過使用模數(shù)轉(zhuǎn)換器(ADC)對諸如話音、音頻、圖像、視頻或其它傳感器輸出信號之類的實際模擬信號進行數(shù)字化而獲得。采樣數(shù)據(jù)信號還可以被仿真,而且可以直接地或在附加的波形數(shù)據(jù)處理操作之后饋 送至數(shù)模轉(zhuǎn)換器(DAC)以便生成模擬話音、音頻、圖像或視頻信號。在這里的描述中,術(shù)語“采樣數(shù)據(jù)波形”還包括從對輸入或中間采樣數(shù)據(jù)波形執(zhí)行的數(shù)學(xué)和/或邏輯運算所生成的這種中間和/或最終采樣數(shù)據(jù)波形。波形數(shù)據(jù)優(yōu)先以兩種主要的數(shù)字格式進行持久存儲整數(shù)格式和浮點格式。整數(shù)格式使用有符號、無符號或符號加量級的表示形式來表示波形數(shù)據(jù),其中采樣數(shù)據(jù)數(shù)值的寬度通常是固定的。常見的適用于波形數(shù)據(jù)處理的整數(shù)格式是分別處于{-128,+127}和{-32768,+32767}范圍之中的8位和16位有符號整數(shù),以及分別處于{0,255}和{0,65535}范圍之中的8位和16位無符號整數(shù)。備選地,波形數(shù)據(jù)可以以32位、64位和128位的浮點格式來表示。最為常見的浮點格式符合浮點數(shù)值的IEEE-754標(biāo)準。IEEE-754標(biāo)準最初在1985年提出并且隨后在2008年更新。IEEE-754標(biāo)準使用I個符號位、8個指數(shù)位和23個尾數(shù)位表示32位的浮點數(shù)值(也被稱作“float”或“單精度浮點數(shù)”)。IEEE-754標(biāo)準使用I個符號位、11個指數(shù)位和52個尾數(shù)位表示64位的浮點數(shù)值(也被稱作“double”或“雙精度浮點數(shù)”)。存在諸如16位的“半浮點”之類的其它浮點數(shù)表示形式,但是對float和double的操作通常在具有專用浮點電路的CPU或DSP處理器中得到支持。這樣的電路通常被稱作浮點單元或FPU。在許多應(yīng)用中,當(dāng)浮點數(shù)據(jù)以單精度格式而不是雙精度格式表示時,浮點計算更快的多且消耗更少的多的功率。波形數(shù)據(jù)處理應(yīng)用中所使用的存儲設(shè)備表現(xiàn)出有所變化的訪問時間。訪問時間低于10納秒的最快存儲元件通常是能夠與處理器核構(gòu)成于相同的半導(dǎo)體裸芯(die)或集成電路(IC)上的SRAM。這樣的SRAM存儲被稱作高速緩存存儲器、片上存儲器或寄存器文件。最慢半導(dǎo)體存儲元件通常是閃存,其對于單獨的采樣數(shù)據(jù)元素的訪問時間處于100納秒至I毫秒的范圍內(nèi)。閃存寫比閃存讀更慢。存儲器技術(shù)通常分層排列,其中最快的存儲元件與CPU或DSP處理構(gòu)造最為接近,而較慢的存儲元件則分層在較快存儲元件的周圍。術(shù)語“片上”和“片外”是用來表述存儲與CPU或處理構(gòu)造的接近程度的形容詞,片上存儲位于與CPU或處理構(gòu)造相同的半導(dǎo)體襯底上或者被封裝在相同的多芯片模塊(MCM)中。片外存儲位于CPU或處理構(gòu)造之外的獨立集成電路(IC)上。其它慢速存儲元件包括磁盤驅(qū)動器和磁帶驅(qū)動器,其訪問時間為數(shù)十毫秒并且其數(shù)據(jù)速率通常為100MB/秒或更低。給定波形數(shù)據(jù)處理應(yīng)用中所使用的的存儲器分層層級,應(yīng)用的持續(xù)目標(biāo)在于對波形數(shù)據(jù)進行處理以改進CPU或信號處理構(gòu)造對于存儲器中所存儲的采樣數(shù)據(jù)的訪問時間。次要目標(biāo)是減少CPU或信號處理構(gòu)造請求波形數(shù)據(jù)和可直接被CPU或信號處理構(gòu)造訪問的存儲器中數(shù)據(jù)出現(xiàn)(通常為高速緩存或寄存器文件)之間的等待時間。第三目標(biāo)是降低將波形數(shù)據(jù)處理器核與其存儲器層級相連接的構(gòu)造的復(fù)雜度。存在用于對波形處理應(yīng)用中的指令和數(shù)據(jù)這兩者進行壓縮和解壓縮的技術(shù)。許多壓縮或編碼技術(shù)僅能夠接受一種波形數(shù)據(jù)格式的數(shù)據(jù),例如整數(shù)數(shù)據(jù)或浮點數(shù)據(jù),而不是接受兩種。類似地,許多壓縮或編碼技術(shù)僅提供一種壓縮模式,諸如無損模式或有損模式,而不是提供兩種。許多壓縮或編碼技術(shù)僅能夠應(yīng)用于諸如話音、音頻、圖像或視頻的特定類型的波形數(shù)據(jù),而并未對其它類型的波形數(shù)據(jù)提供充分壓縮。許多壓縮或編碼技術(shù)對通常在SRAM、DRAM或閃存的存儲器控制器中所找到的(地址,數(shù)據(jù))對進行操作。在多核波形處理系統(tǒng)中,許多類型的波形數(shù)據(jù)可以使用不同數(shù)據(jù)格式來表示。用于特定應(yīng)用的程序通常定義該數(shù)據(jù)格式。多核處理架構(gòu)的目的在于一般對大量數(shù)據(jù)執(zhí)行計算密集型操作。需要對波形數(shù)據(jù)進行壓縮以便在計算核之間以及核與存儲器之間進行傳送以使得能夠?qū)τ嬎忝芗蛻?yīng)用中的大量數(shù)據(jù)進行快速傳輸。 這里的描述可互換地使用術(shù)語集成電路(IC)和芯片來指代包含一個或多個電子裸芯的電子或光學(xué)連接(管腳、引線、端口等)的單個封裝。該電子裸芯或半導(dǎo)體裸芯是包括集成電路和半導(dǎo)體設(shè)備的半導(dǎo)體襯底。該裸芯可以具有單個核或多個核。該核可以是用于任意類型的數(shù)據(jù)處理器的處理單元。例如,處理器核可以是中央處理單元(CPU)、數(shù)字信號處理單元(DSP)、圖形處理器(CPU)、微控制器單元(MCU)、通信處理器或者任意類型的處理單元。單個裸芯上單獨的核可以是相同類型的處理單元或者適用于該應(yīng)用的不同類型的處理單元的組合。這樣的處理單元可以包括(但不限于)存儲器控制器、直接存儲器存取(DMA)控制器、網(wǎng)絡(luò)控制器、高速緩存控制器和浮點單元(FPU)。這樣的處理單元可以被集成到與一個或多個處理器核相同的裸芯上或者可以被集成到處理器核之外的獨立裸芯上。在這里的描述中,應(yīng)用于壓縮的“實時”意味著以至少與數(shù)字信號的采樣速率一樣快的速率對該數(shù)字信號進行壓縮。與原始信號獲得速率或采樣速率相比,屬性“實時”也可以描述用于處理、傳輸和存儲數(shù)字信號的速率。采樣速率是ADC或DAC在數(shù)字和模擬信號之間的轉(zhuǎn)換期間形成樣本的速率。未壓縮的采樣或數(shù)字信號的比特率是每個樣本的位數(shù)乘以采樣速率。壓縮比是原始信號樣本的比特率與壓縮樣本的比特率之比。在仿真實時系統(tǒng)的功能的波形數(shù)據(jù)處理應(yīng)用中,對波形數(shù)據(jù)數(shù)值序列所執(zhí)行的操作的順序可以與實時處理順序相同,但是執(zhí)行處理的速率可以比“實時”慢。這里的描述將這樣的應(yīng)用稱作仿真波形數(shù)據(jù)處理應(yīng)用。這里的描述涉及各種通信構(gòu)造。通信構(gòu)造是兩個處理核之間的任意連接,其允許兩個或更多的核相互通信。通信構(gòu)造的示例包括總線、網(wǎng)絡(luò)、印刷電路板上的跡線,包括傳送器和接收器、交換機、網(wǎng)絡(luò)接口卡(NIC)、路由器的無線鏈路、片上網(wǎng)絡(luò),或者兩個處理器核之間任意其它的有線或無線連接。這里的描述涉及無損和有損壓縮。在無損壓縮中,解壓縮的樣本具有與原始樣本相同的數(shù)值。在一些應(yīng)用中,有損壓縮可能是提供足夠的比特率下降所必需的。在有損壓縮中,解壓縮的樣本與原始樣本類似但并不相同。有損壓縮在壓縮樣本的比特率和解壓縮樣本的失真之間權(quán)衡
發(fā)明內(nèi)容
已經(jīng)考慮到以上傳統(tǒng)的問題而生成了本發(fā)明的實施例。本發(fā)明的目標(biāo)包括如下(A)在兩個或更多處理器核處進行的波形數(shù)據(jù)壓縮以便在多核處理系統(tǒng)中的處理器核之間進行傳輸。(B)在處理器核或CPU處進行的波形數(shù)據(jù)壓縮以便在處理器核和波形數(shù)據(jù)存儲器層級的元件之間進行傳輸。(C)對波形數(shù)據(jù)進行壓縮以便從輸入控制器向多個處理器核進行分布。(D)在一個或多個處理器核處進行的經(jīng)處理的波形數(shù)據(jù)的壓縮以便向輸出控制器 傳輸壓縮數(shù)據(jù)。(E)在接收CPU處對從傳送CPU、輸入控制器或存儲器接收的壓縮數(shù)據(jù)進行的解壓縮。(F)在輸出控制器處對壓縮數(shù)據(jù)進行的解壓縮以重構(gòu)經(jīng)處理的波形數(shù)據(jù)。(G)多核處理系統(tǒng)中對整數(shù)和浮點數(shù)據(jù)格式的波形數(shù)據(jù)的可配置壓縮和解壓縮。(H)單個處理器核中對整數(shù)和浮點數(shù)據(jù)格式的波形數(shù)據(jù)的可配置壓縮和解壓縮,以便從存儲器傳輸或獲取。(I)具有用于壓縮整數(shù)和浮點數(shù)據(jù)格式的操作模式的單個可配置壓縮器。(J)具有用于從之前壓縮的數(shù)據(jù)重構(gòu)整數(shù)和浮點數(shù)據(jù)的操作模式的單個可配置解壓縮器。(K)形成數(shù)據(jù)包的壓縮有效載荷以便跨基于包的通信接口傳送壓縮波形數(shù)據(jù)的壓縮器。(L)從基于包的通信接口獲取壓縮有效載荷數(shù)據(jù)并且重構(gòu)相應(yīng)波形數(shù)據(jù)的解壓縮器。(M)在用戶控制或自動選擇之下對壓縮器進行配置以應(yīng)用無損或有損壓縮。(N)根據(jù)控制參數(shù)對解壓縮器進行配置以便應(yīng)用無損或有損解壓縮。(0)對壓縮操作進行適配以產(chǎn)生具有固定壓縮比特率的壓縮數(shù)據(jù)。(P)對壓縮操作進行適配以產(chǎn)生具有固定質(zhì)量量度的壓縮數(shù)據(jù)。波形數(shù)據(jù)的壓縮通過節(jié)約多核處理系統(tǒng)的資源而提供了若干優(yōu)勢。在多核處理系統(tǒng)中,輸入、中間和輸出波形數(shù)據(jù)經(jīng)常在核之間共享和交換。壓縮減少了在兩個或更多核之間交換這樣的波形數(shù)據(jù)所需的等待時間和帶寬。壓縮減少了在處理器核之間傳送波形數(shù)據(jù)所需的功率和面積。進一步的優(yōu)勢在于減少了允許多個處理器交換波形數(shù)據(jù)所需的管腳數(shù)量和印刷電路板軌線面積。壓縮減少了在半導(dǎo)體或磁存儲器中保留波形數(shù)據(jù)所需的存儲器或存儲,因此提高了存儲器的有效容量。波形數(shù)據(jù)的壓縮減少了在CPU和波形數(shù)據(jù)存儲器層級的元件之間傳輸波形數(shù)據(jù)時的訪問時間和等待時間這二者??傮w來說,本發(fā)明的優(yōu)勢包括降低在單核或多核處理環(huán)境中交換波形數(shù)據(jù)的壓縮傳送器和解壓縮接收器的復(fù)雜度、成本和功率。波形數(shù)據(jù)可以由在多個處理器核上并行執(zhí)行的多個線程共同使用。在一個核上的線程需要部分波形數(shù)據(jù)繼續(xù)執(zhí)行時,可以強制多個線程進入等待模式,等待另一個核上的線程完成數(shù)據(jù)處理并且將其發(fā)送至進行等待的線程。這些等待模式是運行對公共波形數(shù)據(jù)進行并行操作的多個線程的多處理器系統(tǒng)的關(guān)鍵性能瓶頸。處理核之間的公共波形數(shù)據(jù)通信以及利用該多處理器系統(tǒng)的輸入和輸出資源所進行的公共波形數(shù)據(jù)通信所需的時間促成了該關(guān)鍵性能瓶頸。
圖I圖示了三類波形數(shù)據(jù)。圖2圖示了波形數(shù)據(jù)處理應(yīng)用中的常見元素。圖3圖示了兩個處理元件之間雙向的基于包的波形數(shù)據(jù)交換流水線。圖4圖示了包中用于交換數(shù)據(jù)的典型字段。圖5包含了符合工業(yè)標(biāo)準的基于包的協(xié)議的表。圖6圖示了各半導(dǎo)體和CPU提供商所提供的適用于波形數(shù)據(jù)處理的多核產(chǎn)品。
圖7圖示了適用于在處理元件之間運載未壓縮或壓縮波形數(shù)據(jù)的片上網(wǎng)絡(luò)(NoC)結(jié)構(gòu)。圖8包含使得多核配置、核到核距離和存儲器類型彼此相關(guān)的表。圖9圖示了本發(fā)明的主要系統(tǒng)組件,該組件作為組合適于對在波形數(shù)據(jù)處理應(yīng)用中在多個核之間共享的波形數(shù)據(jù)進行壓縮。圖10圖示了適用于壓縮整數(shù)波形數(shù)據(jù)的壓縮器。圖11圖示了適用于對壓縮的整數(shù)波形數(shù)據(jù)進行解壓縮的解壓縮器。圖12圖示了適用于壓縮浮點波形數(shù)據(jù)的壓縮器。圖13圖示了適用于對壓縮的浮點波形數(shù)據(jù)進行解壓縮的解壓縮器。圖14圖示了本發(fā)明的可配置壓縮器和解壓縮器在現(xiàn)有多核波形數(shù)據(jù)處理器中的兩個示例性集成形式。圖15是向處理器核提供輸入數(shù)據(jù)的示例。圖16是在多個處理器核之間傳達數(shù)據(jù)的示例。圖17是從處理器核到輸出控制器的示例數(shù)據(jù)傳輸。圖18圖示了使用用于片外存儲器訪問的壓縮和解壓縮的增強型DMA、輸入-輸出或存儲器控制器。圖19包含將進行和不進行壓縮的數(shù)據(jù)傳輸時間的示例進行比較的表。圖20圖示了由于多包數(shù)據(jù)集的輸入-輸出時間減少的處理時間減少。
具體實施例方式本發(fā)明針對多核處理環(huán)境中波形數(shù)據(jù)的可配置壓縮和解壓縮。在多核處理系統(tǒng)中,每個核可以執(zhí)行波形數(shù)據(jù)的子集的獨立計算。輸入、中間和輸出波形數(shù)據(jù)可以在核與存儲器層級之間進行共享和交換。本發(fā)明減少了這樣的波形數(shù)據(jù)在兩個或更多核之間的交換所需的等待時間和帶寬。本發(fā)明還通過在存儲器或存儲寫入期間壓縮波形數(shù)據(jù)以及在存儲器或存儲讀取期間解壓縮波形數(shù)據(jù)而適用于減少在半導(dǎo)體或磁性存儲器中保留波形數(shù)據(jù)所需的存儲器或存儲。圖I圖示了波形數(shù)據(jù)的三個示例。圖Ia示出了脈沖波形的圖形,其通常是雷達和超聲應(yīng)用中所使用的信號脈沖。如圖Ia中的y軸上的數(shù)值范圍所指示的,波形數(shù)據(jù)被處理為處于范圍{_128,+127}中的8位有符號整數(shù)數(shù)值。圖Ia的X軸指示大約3500個樣本包括波形數(shù)據(jù)脈沖,圖Ia是一般類型的二維波形數(shù)據(jù)的具體實例,其中一條軸表示信號隨時間變化的屬性,并且第二條軸通常表示時間維度(時間或樣本計數(shù))。二維波形數(shù)據(jù)圖所表達的特定波形數(shù)據(jù)屬性將隨應(yīng)用而有所變化。圖Ib示出了針對科學(xué)或數(shù)學(xué)應(yīng)用所計算的三維曲面圖。z軸指示波形數(shù)據(jù)值為浮點格式并且處于{_2.0,+2.0}的范圍之內(nèi)。X軸和y軸的數(shù)值分別在范圍{-1,+1}和{-2,+2}之內(nèi)。圖Ib是一般類型的三維波形數(shù)據(jù)的特定實例,其中垂直軸表示信號隨時間變化的屬性,并且第二軸和第三軸則表示兩個其它維度(可能是二維網(wǎng)格上的空間位置)。三維波形數(shù)據(jù)圖所表達的特定波形數(shù)據(jù)屬性將根據(jù)應(yīng)用的不同而有所變化。圖Ic是來自化學(xué)仿真的三維分子圖。圖Ic并不包括軸,但是所示分子維度和配置可能為仿真所產(chǎn)生的內(nèi)部浮點波形數(shù)據(jù)的可視化。圖Ic是一般類型的三維波形數(shù)據(jù)的具體實例,其中該數(shù)據(jù)可以被表示為三維對象。三維對象所表達的特定波形數(shù)據(jù)屬性將根據(jù)應(yīng)用的不同而有所變化。圖la、lb和Ic是寬泛類型的波形數(shù)據(jù)的示例。波形數(shù)據(jù)的一般特性可以包括但 不限于以下內(nèi)容I.以整數(shù)格式或浮點格式表示的數(shù)據(jù)數(shù)值,2.數(shù)據(jù)數(shù)值出現(xiàn)于基于采樣過程或仿真的特定序列中,3.數(shù)據(jù)數(shù)值與相鄰數(shù)據(jù)數(shù)值具有特定關(guān)系,4.經(jīng)常對序列中的相鄰數(shù)據(jù)數(shù)值執(zhí)行諸如加、減、乘、除或加權(quán)平均之類的數(shù)學(xué)運算,5.相鄰數(shù)據(jù)數(shù)值經(jīng)常相互關(guān)聯(lián)。圖2圖示了波形數(shù)據(jù)處理的處理環(huán)境。現(xiàn)實世界模擬信號可以由傳感器或檢測器所提供。模數(shù)轉(zhuǎn)換器(ADC) 120將(多個)現(xiàn)實世界模擬信號110數(shù)字化以生成數(shù)字化波形數(shù)據(jù)125a。數(shù)字處理器140可包括單核或多個核(多核)。數(shù)字處理器140對數(shù)字化波形數(shù)據(jù)125a執(zhí)行數(shù)學(xué)和/或邏輯運算,生成任選的中間數(shù)字結(jié)果150和數(shù)字處理結(jié)果160a。在某些應(yīng)用中,除了數(shù)字化波形數(shù)據(jù)125a之外或作為其替代,數(shù)字處理器140從現(xiàn)實世界信號仿真器130接收仿真數(shù)字波形數(shù)據(jù)125b。在某些應(yīng)用中,數(shù)字化處理結(jié)果160b被應(yīng)用于數(shù)模轉(zhuǎn)換器(DAC) 163,生成現(xiàn)實世界的模擬輸出165。在許多應(yīng)用中,數(shù)字化波形數(shù)據(jù)125a、仿真數(shù)字波形數(shù)據(jù)125b、中間數(shù)字結(jié)果150、數(shù)字處理結(jié)果160a和數(shù)字化處理結(jié)果160b體驗往來于數(shù)字處理器140的帶寬瓶頸。本發(fā)明的實施例減少了波形數(shù)據(jù)的這些帶寬瓶頸。圖3圖示了兩個直接連接的處理器核之間典型的核至核接口。核200a和核200b通過雙向全雙工接收(Rx)-傳送(Tx)子系統(tǒng)進行通信。核200a使用傳送接口 210a以及Tx FIFO或存儲器緩沖器220a向核200b傳送信息。對于基于包的通信而言,傳送信道230a運載通常具有最大有效載荷大小(包容量)的包。傳送接口 210a將大于該最大有效載荷大小的有效載荷劃分為符合包協(xié)議的最大有效載荷大小的多個傳送包240a。(以下所描述的)圖5列出了一般基于包的通信協(xié)議的典型包有效載荷大小。為了支持具有不同屬性的包的傳送,Tx FIFO或存儲器緩沖器220a可以包含多個FIFO或存儲器緩沖器和存儲器控制器(未示出),該存儲器控制器在任意給定時刻從多個FIFO或存儲器緩沖器220a中發(fā)送其優(yōu)先權(quán)在傳送信道230a最高的包。核200b使用Rx FIFO或存儲器緩沖器250a和Rx接口 260a從傳送信道230a接收包。Rx FIFO或存儲器緩沖器260a可包含與Tx FIFO或存儲器緩沖器220a相對應(yīng)的多個FIFO或存儲器緩沖器,它們在保存不同優(yōu)先權(quán)的包的緩沖器中臨時存儲所接收的包。多優(yōu)先級核至核接口允許包協(xié)議支持服務(wù)質(zhì)量(QoS)、實時和帶優(yōu)先級的通信。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的分量。包協(xié)議通常以包報頭242開始,隨后是包有效載荷244,并且以可選的包報尾246作為結(jié)束。包報頭242包含特定包協(xié)議或標(biāo)準所指定的強制字段和任選字段這二者。強制包字段通常包括包開頭或同步指示符,以及包的源(發(fā)送方)和目的地(接收方)的標(biāo)識符 。可選的包報頭字段可以包括有效載荷數(shù)據(jù)類型(控制或數(shù)據(jù);包優(yōu)先權(quán)等)和有效載荷長度的字段。包240中運載數(shù)據(jù)的部分被稱作有效載荷部分244或數(shù)據(jù)部分。根據(jù)包協(xié)議或標(biāo)準,包有效載荷244可以具有絕不發(fā)生變化的固定大小,在報頭242和報尾246之間可變大小的有效載荷(在包報頭242中沒有包長度指示符),或者其長度包括在包報頭242中的可變大小的有效載荷。有效載荷的內(nèi)容根據(jù)包協(xié)議或標(biāo)準發(fā)生變化,但是大多數(shù)包協(xié)議和標(biāo)準允許字節(jié)(8位)、字(16位)、長字(32位)和浮點(32位或64位)的單位。有時,所運載的包有效載荷的數(shù)據(jù)類型并不為包協(xié)議的較低層所知??蛇x的包報尾246可以包括循環(huán)冗余校驗(CRC),其有助于所接收包或包結(jié)尾字段中錯誤的檢測以及可能的校正。圖5是針對包括報頭和有效載荷字段這二者的通信協(xié)議對各種計算機行業(yè)標(biāo)準進行比較的表。該標(biāo)準包括PCI Express (PCIe)、以太網(wǎng)(其變化形式通常被認為包括其數(shù)據(jù)速率,諸如 IObaseT [10Mbps]、IOObaseT [100Mbps]、IGbaseT 或 GbE [lGbps]、IOGbaseT 或10GbE[10Gbps]),超傳輸、快速路徑互連(QPI)、無限帶寬和RapidIO。這些標(biāo)準是基于包的協(xié)議以及可能在未來研發(fā)的其它協(xié)議的說明。如圖5所示,包報頭長度從4至42個字節(jié)變化,而所允許的有效載荷大小從0至4096個字節(jié)變化。本發(fā)明的實施例對包有效載荷中所包含的數(shù)字數(shù)據(jù)(整數(shù)和/或浮點數(shù)值)進行壓縮。圖6a至6e圖示了來自各個提供商的多處理器配置。圖6的示例是2009的商業(yè)多核處理器以及未來可能研發(fā)的其它架構(gòu)的說明。圖6a圖示了 Intel的Nehalem CPU架構(gòu)。Intel的Nehalem CPU在一個裸芯上包含四個處理器核400a、400b、400c和400d,并且具有容量為8MB的共享高速緩存402。處理器核400a至400d通過一對QPI接口 404訪問其它計算機系統(tǒng)外設(shè)。QPI接口 404使用基于包的通信協(xié)議。這里所描述的壓縮可以與QPI接口 404相集成。圖6b 圖示了 Nvidia GeForce 8800GPU架構(gòu)。Nvidia GeForce8800GPU包括被分組為8個多處理器410a至410h的64個處理器。每個多處理器包括8個核。多處理器410a至41011利用分布式等級1仏1)高速緩存412和分布式等級2 (L2)高速緩存413來存儲輸入數(shù)值、中間結(jié)果和輸出數(shù)值,并且在核之間交換這樣的數(shù)值。GeForce 8800從主機CPU 414接收輸入數(shù)據(jù)數(shù)值并且向其傳送輸出數(shù)據(jù)數(shù)值。這里所描述的壓縮可以被集成到針對數(shù)據(jù)匯編器的主機至GPU和GPU至主機通信控制器中。圖6c圖示了 AMD/ATI多核GPU架構(gòu)。AMD/ATI GPU包括64個流處理單元420,諸如處理單元420a和420b。流處理單元420分享公共的讀/寫高速緩存422和流輸出緩沖器424。這里所描述的壓縮可以集成到控制讀/寫高速緩存422的流I/O通信控制器之中。圖6d 圖不了 Intel Larrabee CPU架構(gòu)。Intel Larrabee CPU包括四個Larrabee處理器封裝430a、430b、430c和430d,其中每個封裝包括32個處理器核。Larrabee處理器封裝430a、430b、430c和430d使用多個公共串行互連(CSI)總線434進行互連。每個Larrabee封裝430訪問所連接的存儲器子系統(tǒng)432。這里所描述的壓縮可以集成到CSI總線硬件之中。圖6e圖示了 IBM Cell寬帶引擎(CBE)架構(gòu)。IBM Cell寬帶引擎包括使用元件互連總線 IB)446進行通信的8個Synergistic處理器兀件(SPE)440a至440h。PowerPC處理器元件(PPE)包括能夠由SPE 440a至440h經(jīng)由EIB 446進行訪問的LI高速緩存442和L2高速緩存443。IBM Cell使用諸如FlexIO BIC的總線接口控制器(BIC)444對總線447執(zhí)行片外總線訪問。存儲器接口控制器(MIC)445控制對片外存儲器448的數(shù)據(jù)傳輸。這里所描述的壓縮可以集成到EIB 446,MIC 445和BIC 444的控制器之中。圖7圖示了三種商業(yè)片上網(wǎng)絡(luò)(NoC)互連的示例。NoC被用來對一個半導(dǎo)體裸芯上的兩個或更多處理器進行互連。圖7a圖示了圖6e中所介紹的IBM Cell寬帶引擎的EIB446。如LI高速緩存442、L2高速緩存443和I/O接口 504那樣,8個SPE 400a至400h也均接合至EIB 446。如圖7a所示,EIB 446實現(xiàn)了由四個反向旋轉(zhuǎn)環(huán)所構(gòu)成的互連構(gòu)造。EIB能夠在每個IBM Cell時鐘周期傳輸多達96個字節(jié),提供從LI高速緩存442、L2高速緩存443和I/O接口 504到處理器400的數(shù)據(jù)讀取,或者由處理器400向LI高速緩存442、L2高速緩存443和I/O接口 504提供元數(shù)據(jù)。I/O接口 504提供片外數(shù)據(jù)傳輸并且包括BIC444(圖6e)。這里所描述的壓縮可以被集成到用于訪問EIB 446的存儲器控制器或者用于I/O接口 504的控制器或者其二者之中。圖7b圖不了 Intel的Nehalem 8處理器核架構(gòu)。8個處理器510a至510h通過兩個反向旋轉(zhuǎn)環(huán)516進行連接。片外讀和寫經(jīng)過四個QPI接口 514a至514d。這里所描述的壓縮可以被集成到用于訪問反向旋轉(zhuǎn)環(huán)516的控制器或到片外組件的QPI接口 514或者其二者之中。集成存儲器控制器(未示出)控制可擴展存儲器接口 SMIO和SMIl上往來于片外存儲器的數(shù)據(jù)傳輸。圖7c圖示了 Sonics公司所研發(fā)的NoC構(gòu)造。SonicsMX智能互連526允許CPU520a, DSP 520b和多媒體引擎(MME) 520c交換數(shù)據(jù)。這里所描述的壓縮可以被集成到SonicsMX智能互連526之中。圖8是各種多處理器配置、處理器之間的距離以及該配置中最常被用來促成處理器之間的通信的存儲器類型的表。通常,隨著處理器之間的距離增加,更為經(jīng)常地實現(xiàn)使用基于包的協(xié)議的數(shù)據(jù)交換。在相同半導(dǎo)體裸芯上或相同多裸芯封裝或多芯片模塊(MCM)中設(shè)置的兩個處理器之間的數(shù)據(jù)交換通常使用共享LI高速緩存、共享L2高速緩存或片上網(wǎng)絡(luò)接口來執(zhí)行。裸芯上或芯片上的處理器通常以最多數(shù)毫米間隔開來。當(dāng)兩個處理器位于以毫米至厘米間隔開來的獨立芯片中時,可以由處理器使用高速緩存、FIFP或RAM來交換數(shù)據(jù)數(shù)值。如2009年,諸如QPI、超傳輸、無限帶寬和CSI之類的高速IC互連可以被用來共享分布式高速緩存。然而,更為普遍的是,使用FIFO或RAM在以厘米間隔開來的處理器之間交換數(shù)據(jù)。當(dāng)處理器之間的距離上升至數(shù)米(m)或數(shù)千米(km)時,大多數(shù)商業(yè)互連使用一些形式的基于包的交換?;诎耐ㄐ乓脖挥糜诤酥g的短距離通信,如QPI和超傳、輸協(xié)議所表明的,其在以小于I毫米間隔開來的處理器之間實現(xiàn)高速緩存存儲器數(shù)據(jù)的交換。圖9是依據(jù)優(yōu)選實施例的用于形成壓縮包的波形數(shù)據(jù)樣本壓縮的框圖。輸入樣本600的序列被可配置壓縮器620進行壓縮,生成壓縮包630。輸入樣本600可以表示數(shù)字化波形數(shù)據(jù)125a、仿真數(shù)字波形數(shù)據(jù)125b或中間數(shù)字結(jié)果150。輸入樣本600可以具有整數(shù)格式或浮點格式。在典型的可編程處理核或CPU中,數(shù)據(jù)格式可以在程序中指定。當(dāng)程序沒有指定數(shù)據(jù)格式時,處理器核使用缺省數(shù)據(jù)格式。壓縮控制接口 610為可配置壓縮器620提供控制參數(shù)以便在各種模式中進行操作。例如,控制參數(shù)可以選擇整數(shù)或浮點壓縮模式以及無損或有損壓縮模式。當(dāng)選擇了有損壓縮模式時,壓縮控制接口 610可以包括用于固定速率壓縮或固定質(zhì)量壓縮的附加控制參數(shù)。例如,在固定速率壓縮中,控制參數(shù)可以表示輸入數(shù)據(jù)塊大小和壓縮包630的有效載荷部分的大小之間的期望壓縮比。例如,在固定質(zhì)量壓縮中,壓縮參數(shù)可以表示對壓縮包630進行解壓縮之后導(dǎo)致的數(shù)值的信噪比。當(dāng)可配置壓縮器620可以適于處理輸入樣本600不同大小的塊(S卩,連續(xù)樣本群組)時,壓縮控制接口 610可以通過控制參數(shù)指定輸入塊大小。當(dāng)壓縮包630包括報頭時,壓縮控制接口 610可以指定包報頭中包括哪些參數(shù),諸如壓縮塊大小或糾錯碼(ECC)。單個可配置壓縮器620 可以適于對整數(shù)和浮點數(shù)值這二者進行處理。圖10是壓縮整數(shù)數(shù)值時可配置壓縮器620的框圖。對于有損壓縮而言,有損壓縮調(diào)節(jié)處理器622對輸入樣本600進行操作以形成調(diào)節(jié)輸入樣本623。對于無損壓縮而言,有損壓縮調(diào)節(jié)處理器622被繞過或者設(shè)置為“無調(diào)節(jié)”,并且調(diào)節(jié)輸入樣本623具有與輸入樣本600相同的數(shù)值。有損壓縮調(diào)節(jié)處理器622由壓縮和反饋控制塊628經(jīng)由調(diào)節(jié)控制信號629a進行控制。有損壓縮調(diào)節(jié)處理器622所引入的損失程度可以由用戶經(jīng)由壓縮控制接口 610進行選擇。備選地,該損失程度可以基于反饋參數(shù)來自動調(diào)節(jié)。例如,對于固定速率壓縮模式而言,壓縮包大小測量塊626計算壓縮包大小627。壓縮反饋塊628將壓縮包大小627與期望包大小進行比較以確定用于調(diào)節(jié)控制信號629a的反饋參數(shù)。用戶可以經(jīng)由壓縮控制接口 610選擇期望包大小。壓縮包大小測量塊626可以以逐個包為基礎(chǔ)提供所測量的包大小627,或者其可以提供可選擇數(shù)量的輸出包上的平均測量包大小627。無損壓縮器624依據(jù)壓縮控制信號62%對調(diào)節(jié)輸入樣本623進行壓縮。共同擁有的專利和申請描述了可以在無損壓縮器624和有損壓縮調(diào)節(jié)處理器622中使用的各種壓縮技術(shù)。這些包括于2006年3月7日授權(quán)的Wegener的題為“AdaptiveCompression and Decompression of Bandlimited Signals,,的 US7009533 ( “’ 533 專利”),其通過引用結(jié)合于此;和于1998年11月17日授權(quán)的Wegener的題為“Lossless andloss-limited Compression of Sampled Data Signals” 的 US5839100 ( “,100 專利”),其通過引用結(jié)合于此;以及2009年10月23日提交的Wegener的題為“Block FloatingPoint Compression of Signal Data”( “BFP 壓縮應(yīng)用”)的申請?zhí)枮?“ 12/605245” 的美國專利申請,其通過引用結(jié)合于此。壓縮技術(shù)包括通過計算調(diào)節(jié)輸入樣本623的一個或多個導(dǎo)數(shù)而進行的微分編碼、塊浮點位緊縮(block float-point bit packing)、哈夫曼(Huffman)編碼以及無損壓縮器624可以實現(xiàn)的其它無損壓縮技術(shù)。無損壓縮器624可以生成壓縮包630,其可以包括報頭632和壓縮有效載荷634。報頭632可以包含壓縮和反饋控制塊628所提供的一個或多個壓縮控制參數(shù)。報頭632可以包含指示壓縮包中所包含的壓縮樣本的數(shù)據(jù)類型的參數(shù),諸如整數(shù)或浮點數(shù)值,以及諸如調(diào)節(jié)控制信號629a和壓縮控制信號62%的數(shù)值控制參數(shù)。壓縮和反饋控制塊628可以生成壓縮狀態(tài)信號615,其可以指示各種壓縮統(tǒng)計,諸如平均或瞬時壓縮比、調(diào)節(jié)控制信號629a、壓縮控制信號62%或者可配置壓縮器620中的內(nèi)部警告或錯誤情況。圖11是對壓縮整數(shù)數(shù)據(jù)進行解壓縮的框圖??膳渲媒鈮嚎s器720接收壓縮包630。解壓縮控制塊728檢查壓縮包報頭632的內(nèi)容并且對用于解壓縮器724和有損壓縮調(diào)節(jié)塊722的任意控制參數(shù)進行解碼。解壓縮器724在解壓縮控制信號729a的控制下執(zhí)行撤銷圖10中有損壓縮器624所執(zhí)行的壓縮操作的操作,由此重構(gòu)調(diào)節(jié)輸入信號723。有損解壓縮調(diào)節(jié)塊722在解壓縮調(diào)節(jié)信號729b的控制下執(zhí)行撤銷圖10中有損壓縮調(diào)節(jié)塊622所執(zhí)行的調(diào)節(jié)操作的操作。解壓縮信號730表示可配置解壓縮器720的輸出樣本。解壓縮控制塊728還可以可選地生成狀態(tài)信號715,其可以包括平均或瞬時壓縮比、解壓縮控制信號729a、解壓縮調(diào)節(jié)信號72%或者來自解壓縮器720的內(nèi)部警告或錯誤信號。
圖12是被配置為壓縮浮點數(shù)據(jù)的可配置壓縮器620的框圖。浮點數(shù)據(jù)表示形式由三個字段所構(gòu)成符號位、指數(shù)和有效數(shù)(尾數(shù))。格式預(yù)處理器(未示出)將每個浮點數(shù)輸入樣本的指數(shù)與符號和有效數(shù)間隔開來以提供輸入指數(shù)603。格式預(yù)處理器將符號位和有效數(shù)進行合并以形成符號和尾數(shù)輸入樣本601??膳渲脡嚎s器620以與參考圖10描述的可配置壓縮器620處理的整數(shù)樣本600相同的方式對符號和尾數(shù)輸入樣本601進行處理。此外,可配置壓縮器620對輸入指數(shù)603應(yīng)用無損指數(shù)壓縮器660和壓縮有效載荷復(fù)用器670。無損指數(shù)壓縮器660在來自壓縮和反饋控制塊628的無損指數(shù)壓縮控制信號629c的控制下以無損方式對指數(shù)603進行壓縮。無損指數(shù)壓縮器660可以采用’533專利、’ 100專利和BFP壓縮應(yīng)用中所描述的一種或多種技術(shù)。壓縮控制信號629c可以提供指定應(yīng)用于指數(shù)603的壓縮方法的控制參數(shù),諸如塊浮點編碼、微分編碼、哈夫曼編碼或適用于壓縮指數(shù)603的其它壓縮技術(shù)。壓縮有效載荷復(fù)用器670控制壓縮指數(shù)位665以及壓縮符號和尾數(shù)位631在壓縮包有效載荷634a中的位置。如參考圖10所描述的,壓縮有效載荷復(fù)用器670可以由壓縮和反饋控制塊628進行控制。圖12所示出的可配置壓縮器620可以被應(yīng)用于整數(shù)或浮點波形數(shù)據(jù)數(shù)值。當(dāng)對整數(shù)樣本進行壓縮時,不使用指數(shù)壓縮器660和壓縮有效載荷復(fù)用器670,并且類似于圖10中的輸入樣本600,整數(shù)樣本提供符號和尾數(shù)輸入樣本601。當(dāng)對浮點樣本進行壓縮時,浮點指數(shù)數(shù)值為指數(shù)603,浮點符號和尾數(shù)數(shù)值為符號和尾數(shù)輸入樣本601。格式預(yù)處理器被應(yīng)用于輸入樣本600以提供指數(shù)603以及符號和尾數(shù)樣本601。格式預(yù)處理器為從浮點數(shù)據(jù)所提取的浮點符號和尾數(shù)以及整數(shù)數(shù)據(jù)提供公共格式,以使得有損壓縮調(diào)節(jié)塊622和無損壓縮器624以相同的格式接收數(shù)據(jù),而無論輸入樣本100是以整數(shù)還是浮點數(shù)值表示。以這種方式,可配置壓縮器620可以被配置為依據(jù)來自壓縮和反饋控制塊628的各種控制信號對整數(shù)或浮點波形數(shù)據(jù)數(shù)值進行壓縮。圖13是用于對壓縮浮點數(shù)據(jù)進行解壓縮的可配置解壓縮器720的框圖??膳渲媒鈮嚎s器720接收包括壓縮浮點數(shù)據(jù)的壓縮包作為壓縮有效載荷634a。解壓縮器724和有損解壓縮調(diào)節(jié)塊722對壓縮符號和尾數(shù)數(shù)據(jù)應(yīng)用與參考圖11所描述的對應(yīng)要素相同的解壓縮操作。可配置解壓縮器720包括用于對壓縮指數(shù)數(shù)據(jù)進行處理的有效載荷多路分離器870和指數(shù)解壓縮器860。在對壓縮包報頭632a進行檢查之后,解壓縮控制器728為有效載荷多路分離器870、解壓縮器724、有損解壓縮調(diào)節(jié)塊722和指數(shù)解壓縮器860提供控制參數(shù)。有效載荷多路分離器870將壓縮有效載荷634a分為壓縮指數(shù)位865以及壓縮符號和尾數(shù)位831。如針對壓縮整數(shù)數(shù)據(jù)(圖11)所描述的,經(jīng)分離的壓縮符號和尾數(shù)位831被解壓縮并調(diào)整。指數(shù)解壓縮器860依據(jù)指數(shù)解壓縮器控制信號729c所提供的任意控制參數(shù)對壓縮指數(shù)位865進行解 壓縮。指數(shù)解壓縮器720生成解壓縮指數(shù)730b。解壓縮器724和有損解壓縮調(diào)節(jié)塊722生成解壓縮符號和尾數(shù)樣本730a。數(shù)據(jù)格式化器(未示出)可以將解壓縮指數(shù)730b與相應(yīng)的解壓縮符號和尾數(shù)樣本730a合并為具有與原始輸入樣本600相同的浮點格式的解壓縮樣本序列。備選地,該數(shù)據(jù)格式化器可以提供解壓縮指數(shù)730b和相應(yīng)的解壓縮符號和尾數(shù)樣本730a的格式轉(zhuǎn)換以產(chǎn)生具有與原始樣本不同數(shù)據(jù)格式的解壓縮樣本。根據(jù)解壓縮控制塊728所生成的各種解壓縮設(shè)置和調(diào)節(jié)控制信號,在壓縮包報頭632a中的報頭參數(shù)的可選控制之下,可配置解壓縮器720能夠生成解壓縮整數(shù)波形數(shù)據(jù)數(shù)值或解壓縮浮點波形數(shù)據(jù)數(shù)值。無損壓縮器624的優(yōu)選實施例應(yīng)用跟隨有塊浮點位緊縮的無損微分編碼。用于無損微分編碼的技術(shù)在’ 533專利和’ 100專利中有所描述。用于塊浮點位緊縮的技術(shù)在BFP申請中有所描述。應(yīng)用后面跟有塊浮點位緊縮的微分編碼實現(xiàn)了進行基于包的波形數(shù)據(jù)的壓縮所期望的低等待時間的壓縮器。有損壓縮調(diào)節(jié)塊622的優(yōu)選實施例減小了輸入樣本600的量級以提供可控制的損失量。有損壓縮調(diào)節(jié)塊通過對輸入樣本600應(yīng)用移位器或乘法器來減小樣本量級。該移位器和乘法器的組合實現(xiàn)了所期望的低復(fù)雜度的目標(biāo)。在可配置解壓縮器720的優(yōu)選實施例中,解壓縮控制器728對壓縮包報頭632中所包含的控制參數(shù)進行解碼以提供用于解壓縮的對應(yīng)控制信號729a、72%和729c。壓縮包的報頭632或632a的優(yōu)選實施例包括數(shù)據(jù)類型(整數(shù)或浮點數(shù)據(jù))的指示符,以及調(diào)節(jié)和壓縮控制參數(shù)。壓縮包報頭632可選地還可以包括應(yīng)用于包的整個壓縮有效載荷的控制參數(shù),包括在壓縮期間所保留的尾數(shù)位的數(shù)量。圖14圖示了可配置壓縮器620和可配置解壓縮器720在參考圖6a、6e和7b所描述的多核處理器中的位置示例。圖14a圖示了壓縮和解壓縮在圖6a中Intel的NehalemCPU架構(gòu)中的集成。可配置壓縮器620和可配置解壓縮器720可以被集成在每個QPI接口404以壓縮QPI包的有效載荷的數(shù)據(jù)以便進行傳送,并且對來自所接收QPI包的有效載荷的壓縮數(shù)據(jù)進行解壓縮。用于為Nehalem處理器提供波形數(shù)據(jù)的片外輸入控制器(未示出)對輸入波形數(shù)據(jù)進行壓縮以形成QPI包的壓縮有效載荷數(shù)據(jù)。QPI互連鏈路控制器404處的解壓縮器720對壓縮有效載荷數(shù)據(jù)進行解壓縮并且提供解壓縮波形數(shù)據(jù)作為QPI包的有效載荷數(shù)據(jù)以便傳輸至CPU核400a_400d。對于參考圖7b所描述的Nehalem 8處理器核架構(gòu)而言,包含解壓縮有效載荷數(shù)據(jù)的QPI包經(jīng)由反向旋轉(zhuǎn)環(huán)516被傳輸至處理器核510a至510h。Nehalem架構(gòu)是使用相同包協(xié)議以便進行往來于片外組件的數(shù)據(jù)傳輸?shù)钠贤ㄐ诺氖纠?。集成的存儲器控制器也可以包括可配置壓縮器620和解壓縮器720以對提供給片外存儲器的波形數(shù)據(jù)進行壓縮并且對從存儲器獲取的壓縮波形數(shù)據(jù)進行解壓縮。圖14b圖不了壓縮和解壓縮在圖6e的IBM Cell覽帶引擎架構(gòu)中的集成??偩€接口控制器(BIC) 444控制片外通信??膳渲脡嚎s器620和可配置解壓縮器720能夠在BIC444處被集成,以便壓縮波形數(shù)據(jù)以便傳送包并且對所接收的壓縮包進行解壓縮。為了向多個SPE 440a至440h提供輸入數(shù)據(jù),片外控制器(未示出)包括壓縮器,該壓縮器對波形數(shù)據(jù)進行壓縮以形成在BIC 444處接收的總線包的壓縮有效載荷數(shù)據(jù)。BIC 444處的可配置解壓縮器720對壓縮有效載荷數(shù)據(jù)進行解壓縮以形成提供給EIB 446以便傳輸至SPE 440a至440h的解壓縮波形數(shù)據(jù)。可配置解壓縮器720可以將解壓縮波形數(shù)據(jù)插入具有兼容EIB446的協(xié)議的包中。IBM Cell架構(gòu)是使用與片外數(shù)據(jù)傳輸不同的包協(xié)議進行的片上通信的示例。為了進行處理波形數(shù)據(jù)的片外傳輸,處于與BIC 444的接口處的可配置壓縮器620對經(jīng)由EIB 446從SPE 440a傳輸至440h的處理波形數(shù)據(jù)進行壓縮以形成壓縮有效載荷數(shù)據(jù)以便跨外部總線447進行傳送。位于目的設(shè)備的片外控制器(未示出)包括解壓縮器,其從所接收的總線包提取壓縮有效載荷數(shù)據(jù)并對其進行解壓縮以重構(gòu)該處理波形數(shù)據(jù)??膳渲脡嚎s器620和解壓縮器720可以與存儲器接口控制器(MIC) 445進行集成以提供往來于片外存儲器448的壓縮數(shù)據(jù)傳輸??膳渲脡嚎s器620和解壓縮器720也可以與MIC 445和BIC 444分開實現(xiàn)或者由它們共享。
圖14c圖示了用于在Intel Nehalem(圖7b)的處理器核之間進行通信的壓縮和解壓縮的示例。8個處理器核510a-510h經(jīng)由兩個反向旋轉(zhuǎn)環(huán)516傳輸數(shù)據(jù)。反向旋轉(zhuǎn)環(huán)516使用QPI包協(xié)議傳輸包。處理器核510a-510h包括對波形數(shù)據(jù)進行壓縮以便傳輸至一個或多個其它核510a-510h的對應(yīng)可配置壓縮器620a-620h。所要傳輸?shù)牟ㄐ螖?shù)據(jù)可以是應(yīng)用處理的中間數(shù)據(jù)。可配置壓縮器620a-620h形成QPI包,其中的有效載荷部分包含壓縮數(shù)據(jù)??膳渲脡嚎s器620a-620h經(jīng)由反向旋轉(zhuǎn)環(huán)516向一個或多個其它核510a_510h提供具有壓縮有效載荷的QPI包。為了從反向旋轉(zhuǎn)環(huán)516接收數(shù)據(jù),對應(yīng)的可配置解壓縮器720a-720h對所接收的QPI包的壓縮有效載荷進行解壓縮以以重構(gòu)中間數(shù)據(jù)或波形數(shù)據(jù)以便由對應(yīng)的核510a-510h進一步處理。除了在處理器核之間進行通信之外,可配置壓縮器620和解壓縮器720還可以集成到位于QPI接口 514a-514d和/或存儲器接口 SMIO和SMII的控制器中。圖15是向處理器核提供輸入數(shù)據(jù)的示例。輸入控制器1800可以連接到生成輸入數(shù)據(jù)的設(shè)備,諸如提供采樣波形數(shù)據(jù)的ADC 120、提供仿真波形數(shù)據(jù)的仿真器130或者提供中間數(shù)字結(jié)果150的外部處理器(見圖2)。輸入控制器1800在將輸入數(shù)據(jù)傳輸?shù)教幚砥骱?810之前對其進行壓縮。處理器核1810在執(zhí)行特定應(yīng)用的操作之前對所接收的輸入數(shù)據(jù)應(yīng)用解壓縮。輸入控制器1800可以將壓縮數(shù)據(jù)分布到多個處理器核(圖15中未示出),其中每個處理器核對所接收數(shù)據(jù)進行解壓縮以形成解壓縮數(shù)據(jù)供應(yīng)用處理。圖16是在多個處理器核之間傳達數(shù)據(jù)的示例。源處理器核1900a和1900b向每個目的處理器核1900c和1900d提供部分處理數(shù)據(jù)或中間結(jié)果以便在應(yīng)用中進一步處理。源核1900a、1900b壓縮對應(yīng)部分處理的數(shù)據(jù)或中間結(jié)果并且傳輸對應(yīng)的壓縮數(shù)據(jù)。目的核1900cU900d每一個均從兩個源核1900a、1900b這二者接收壓縮數(shù)據(jù)并對其進行解壓縮。目的核1900c、1900d對解壓縮數(shù)據(jù)應(yīng)用對應(yīng)處理操作。圖17是從處理器核到輸出控制器的示例性數(shù)據(jù)傳輸。處理器核2000針對特定應(yīng)用產(chǎn)生處理波形數(shù)據(jù)。處理波形數(shù)據(jù)可以表示該應(yīng)用的部分處理的中間結(jié)果或者完全處理的最終結(jié)果。處理器核2000對處理數(shù)據(jù)進行壓縮并且將經(jīng)壓縮的數(shù)據(jù)傳輸至輸出控制器2010。輸出控制器2010接收經(jīng)壓縮的數(shù)據(jù)并對其進行解壓縮。多個處理器核(未示出)可以對處理數(shù)據(jù)進行壓縮并將其傳輸?shù)捷敵隹刂破?010。輸出控制器2010可以對解壓縮數(shù)據(jù)執(zhí)行額外的功能,諸如將從不同處理器核接收的數(shù)據(jù)進行整合以用于進一步處理或顯示。
圖18圖示了使用壓縮和解壓縮對其針對片外存儲器或存儲設(shè)備2130的讀寫訪問進行改進的處理器2100。CPU或核2105訪問片上存儲器2120以及片外存儲器或存儲設(shè)備2130這二者。CPU或核2105對片上存儲器2120的訪問經(jīng)由地址和數(shù)據(jù)總線2115直接執(zhí)行。CPU或核2105通過壓縮控制接口 610經(jīng)由直接存儲器存取(DMA)、輸入-輸出或存儲器控制器2110請求對片外存儲器或存儲2130的壓縮訪問(讀或?qū)?。如之前圖9所描述的,壓縮控制接口 610允許CPU或核2105為可配置壓縮器620提供控制參數(shù)以壓縮整數(shù)或浮點數(shù)據(jù)、以用無損或有損模式進行壓縮、以指定所期望壓縮塊大小,以及在對片外存儲器或存儲設(shè)備2130進行數(shù)據(jù)寫入期間的其它壓縮專用參數(shù)??膳渲脡嚎s器620可以在片外存儲器或存儲設(shè)備2130中存儲的壓縮包的報頭中包括控制信息。在從片外存儲器或存儲設(shè)備2130進行數(shù)據(jù)讀取期間,可配置解壓縮器720對每個壓縮包報頭中的控制信息進行解碼,使用依據(jù)控制參數(shù)的解壓縮操作對整數(shù)或浮點數(shù)值進行解壓縮。解壓縮輸出樣本被提供至片上存儲器2120。可配置壓縮器620尤其適用于針對片外存儲器或存儲2130的訪問的基于塊或包的屬性。當(dāng)元件2110被實現(xiàn)為DMA控制器時,大的數(shù)據(jù)塊通常在片上存儲器2120和片外存儲器或存儲設(shè)備2130之間進行傳輸。由于本發(fā)明可應(yīng)用于基于包的壓縮和解壓縮或流處理(與隨機存取、單數(shù)值處理相比),所以可配置壓縮器620和可配置解壓縮器720非常適用于DMA訪問。而且,由于CPU或核2105通常經(jīng)由DMA控制器2110發(fā)起DAM訪問,所以可配置壓縮器620在數(shù)據(jù)寫入期間或可配置解壓縮器720在從片外存儲器或存儲設(shè)備2130進行數(shù)據(jù)讀取期間所引入的等待時間可以隱藏在相對長的(與CPU2105對片上存儲器2120的訪問相比長的)DMA事務(wù)時間之中。圖19示出了對IMB數(shù)據(jù)包應(yīng)用2 I壓縮的示例的帶寬改善的表。該示例假設(shè)IMB的數(shù)據(jù)包包含整數(shù)或浮點波形數(shù)值。波形數(shù)值可以包含與每個波形樣本1、2或4個字節(jié)相對應(yīng)的8位、16位或32位數(shù)值。類似地,波形數(shù)值也可以包含對應(yīng)于每個浮點波形樣本4字節(jié)或8字節(jié)的32位或64位長度的浮點數(shù)值。圖19的第一列列出了示例參數(shù),而第二列和3則分別包含不進行壓縮和進行2 I壓縮的參數(shù)值??紤]第二列(無壓縮),IMB數(shù)據(jù)從核I傳輸?shù)胶?包括核I傳送器(Tx)中I毫秒(0. 001秒)的開始等待時間以及核2接收器(Rx)中I毫秒(0. 001秒)的完成等待時間。在該示例中,IMB的波形數(shù)據(jù)包需要總共I. 002秒的未壓縮傳輸時間,其中包括使用核I和核2之間IMB/秒鏈路的I秒傳輸時間。與之相比,第三列列出了對原始IMB波形包應(yīng)用2 I壓縮從而僅傳輸500kB壓縮數(shù)據(jù)的情形中的相同參數(shù)??膳渲脡嚎s器620和可配置解壓縮器720具有來自于填充壓縮和 解壓縮流水線的額外開始等待時間。在該示例中,壓縮和解壓縮每一個的等待時間估計均為10毫秒(0.01秒)。因此,使用2 I壓縮,IMB波形數(shù)據(jù)包需要總共0.52秒的壓縮傳輸時間,其中包括使用核I和核2之間IMB/秒鏈路的0. 5秒傳輸時間。圖19的最后一行指示出進行2I壓縮的傳輸帶寬大致為未壓縮傳輸帶寬的兩倍。在多核應(yīng)用中,所要執(zhí)行的計算工作分布在多個核之間。在許多波形處理應(yīng)用中,整數(shù)或浮點數(shù)據(jù)被分布到使用各種網(wǎng)絡(luò)、總線和存儲器接口的多個核。這樣的應(yīng)用的總體處理時間受到向各種處理核分布波形數(shù)據(jù)樣本所需的時間以及每個核中完成計算工作所需的時間的影響。此外,波形處理通常需要數(shù)據(jù)以已知順序或次序進行分布;在這種情況時,一些核將花費時間等待相鄰的核輸送其處理的波形輸出結(jié)果。無論計算時間如何,所有波形處理應(yīng)用的總體時間都將在I/o時間減少的情況下有所減少。其總體時間更多地由I/0(數(shù)據(jù)交換)時間而不是核計算時間確定的應(yīng)用被稱作“I/O限定(bound)”應(yīng)用。其總體時間更多地由核計算時間而不是1/0(數(shù)據(jù)交換)時間確定的應(yīng)用被稱作“計算限定”應(yīng)用。本發(fā)明在縮短I/O限定應(yīng)用的總體處理時間方面是特別有效的。I/O限定應(yīng)用從本發(fā)明提高波形數(shù)據(jù)帶寬和減少波形數(shù)據(jù)等待時間兩方面獲益。核用來等待波形輸入數(shù)據(jù)的時間也有所減少。圖20圖示了如何通過壓縮對N個處理核的流水線所執(zhí)行的1/01/0和處理進行加速。如圖19所討論的,圖20中所示的示例假設(shè)核至核的包的2 I壓縮。時間線A圖示了在N個核之間傳送未壓縮波形數(shù)據(jù)包的波形數(shù)據(jù)處理應(yīng)用中的一系列N個{1/0,計算}矩形對。每個矩形的寬度表示I/O或計算操作所用的時間。時間線B圖示了相同的處理步驟,但是對每個I/O操作使用2 I壓縮。注意,相應(yīng)的計算操作COMPl至COMPN對于時間線A中所示出的那些是相同的;這兩個應(yīng)用的計算時間相同。然而,由于以商數(shù)2(2 I壓縮)減少了 I/O或數(shù)據(jù)交換時間,所以時間線B中的整體處理持續(xù)時間為T2,其比圖20a中的整體處理持續(xù)時間Tl短。盡管處理持續(xù)時間的整體加速(T1-T2)取決于I/O和計算時間 的特定長度,但是圖20所清楚表達的是,在處理流水線中配置的多個核之間的I/O使用本發(fā)明的可配置、低等待時間、高帶寬的壓縮和解壓縮塊對核之間的I/O進行加速的情況下,波形數(shù)據(jù)壓縮應(yīng)用將會更快完成。將本發(fā)明的壓縮應(yīng)用到例如環(huán)形拓撲、星形拓撲和網(wǎng)格拓撲的其他多核拓撲結(jié)構(gòu)也可加速核之間的數(shù)據(jù)交換。對于圖20的示例而言,計算操作COMPl至COMPN可以表示在N個處理器核上執(zhí)行的線程。時間間隔[I/O或XCHG]表示波形數(shù)據(jù)沿N個處理器核的流水線進行通信所需的時間。在[I/O或XCHG]時間間隔期間,相應(yīng)的核進入等待模式。如圖20所示,壓縮減少了數(shù)據(jù)傳輸?shù)臅r間,因此減少了核處于等待模式中的時間。結(jié)果是系統(tǒng)性能在整體處理較低的持續(xù)時間和核計算系統(tǒng)資源更為有效的利用兩方面有所提升。本發(fā)明的實施例適用于使用基于包或基于塊的數(shù)據(jù)交換在核之間交換整數(shù)或浮點數(shù)據(jù)的波形數(shù)據(jù)應(yīng)用。可配置壓縮器620可適用于針對被傳送到接收核的波形數(shù)據(jù)的特定數(shù)據(jù)類型和所選擇壓縮模式(無損或有損)。可配置壓縮器620向壓縮包的報頭插入控制信息??膳渲媒鈮嚎s器720從每個所接收的壓縮包的包報頭確定數(shù)據(jù)類型和其它控制參數(shù)。可配置解壓縮器720依據(jù)特定壓縮包的數(shù)據(jù)類型以及諸如壓縮模式之類的控制參數(shù)對壓縮有效載荷數(shù)據(jù)進行用適當(dāng)?shù)慕鈮嚎s操作。本發(fā)明適用于包括(但并不限于)圖5所描述的那些在內(nèi)的各種網(wǎng)絡(luò)、總線和存儲應(yīng)用,并且包括諸如片上高速緩存(寄存器文件、SRAM或DRAM)、片外SRAM、DRAM或閃存在內(nèi)的半導(dǎo)體存儲器,以及諸如磁盤或磁帶驅(qū)動器的磁性介質(zhì)。針對可配置壓縮器和解壓縮器存在各種備選實施方式。在優(yōu)選實施例中,可配置壓縮器620直接集成在與傳送包緩沖器相同的裸芯上,從而波形數(shù)據(jù)以最低的等待時間以及最高的壓縮和解壓縮速率進行壓縮以便進行包傳送??膳渲脡嚎s器620和可配置解壓縮器720可以以實時速率進行操作,該實時速率也就是至少與它們與之對接的設(shè)備一樣快的速率,像提供波形樣本那么快地對它們進行壓縮以及像波形樣本被消耗那么快地對它們進行解壓縮。類似地,在優(yōu)選實施例中,可配置解壓縮器720直接集成在與接收包緩沖器相同的裸芯上,從而如之前所描述的,在包接收時,波形數(shù)據(jù)就以最低的等待時間和最高的壓縮和解壓縮速率被解壓縮。備選地,可配置壓縮器620和可配置解壓縮器720可以分別使用傳送和接收核的指令集以速度和等待時間有所優(yōu)化的匯編語言實施方式來實現(xiàn)。由于匯編語言實施方式將需要每個壓縮波形數(shù)據(jù)元素的多個指令周期,所以其速度和等待時間將明顯高于優(yōu)選實施方式。在多芯片實施方式中,可配置壓縮器620和/或可配置解壓縮器720在與其上實現(xiàn)通信處理器的裸芯分開的裸芯(即,以硬件)上實現(xiàn),其中獨立壓縮和/或解壓縮裸芯位于相同的襯底上并且因此與其中實現(xiàn)通信處理器的裸芯非常接近。在該多芯片實施方式中,壓縮器和解壓縮器裸芯可以被研發(fā)為獨立的產(chǎn)品并且隨后與各種通信處理器裸芯進行集成。該多芯片實施方式的優(yōu)勢在于其允許壓縮器和/或解壓縮器裸芯以與相同裸芯上的優(yōu)選方式相比更低的成本進行集成,原因在于 包含通信處理器的裸芯通常遠大于(并且因此對于設(shè)計和組裝而言更為昂貴)包含可配置壓縮器620和/或可配置解壓縮器720的裸
-I-H
O對于某些應(yīng)用,諸如在通信鏈路單向發(fā)送波形數(shù)據(jù)時,可配置壓縮器620和可配置解壓縮器720可以集成在獨立裸芯中。這樣的條件在以下情況出現(xiàn),波形數(shù)據(jù)源被一個設(shè)備(諸如ADC或數(shù)據(jù)獲得子系統(tǒng))所捕獲,而壓縮波形數(shù)據(jù)的處理由另一個設(shè)備(諸如FPGA, CPU、GPU等)執(zhí)行。對于其它應(yīng)用類似地,壓縮器可以與FPGA、CPU、GPU等所進行的波形數(shù)據(jù)處理進行集成,而壓縮包被接收、解壓縮并且所生成的波形被提供至諸如DAC或者其它模擬或數(shù)字信號發(fā)生器的輸出子系統(tǒng)。這里已經(jīng)描述了一種在波形處理系統(tǒng)中使用的方法,該波形處理系統(tǒng)具有多個處理器核以及用于在多個處理器核之間進行數(shù)據(jù)包傳輸?shù)耐ㄐ艠?gòu)造,其中波形數(shù)據(jù)樣本以整數(shù)格式或浮點格式表示,該方法包括在預(yù)處理器控制參數(shù)的控制下對波形數(shù)據(jù)樣本的子集進行預(yù)處理以生成壓縮器輸入樣本;在量級調(diào)節(jié)參數(shù)的控制下對壓縮器輸入樣本的量級進行調(diào)節(jié)以生成調(diào)節(jié)信號樣本;在壓縮控制參數(shù)的控制下對調(diào)節(jié)信號樣本進行壓縮以生成壓縮包有效載荷的壓縮樣本;創(chuàng)建包括預(yù)處理器控制參數(shù)的指示符、該量級控制參數(shù)的指示符以及壓縮控制參數(shù)的指示符的包報頭;將包報頭與壓縮包有效載荷合并為壓縮包;以及在接口將壓縮包提供至該通信構(gòu)造。附加的備選實施方式包括以下內(nèi)容??膳渲脡嚎s器620和可配置解壓縮器720可以實現(xiàn)為用于目標(biāo)ASIC設(shè)計工藝的定制智能屬性(IP)塊??膳渲脡嚎s器620和可配置解壓縮器720可以在CPU、GPU、DSP芯片或其它多核處理器上以軟件來實現(xiàn)??膳渲脡嚎s器620和可配置解壓縮器720可以被實現(xiàn)為片上網(wǎng)絡(luò)、完全連接的交換機、或部分連接的交換機實施方式的一部分??膳渲脡嚎s器620和可配置解壓縮器720的實施例還可以進行適配以改進吞吐量、減少等待時間或降低復(fù)雜度。例如,可以使用多個預(yù)處理器將浮點{符號,指數(shù),尾數(shù)}字段轉(zhuǎn)換為符合有損壓縮調(diào)節(jié)塊622和無損壓縮器624的預(yù)期輸入格式的格式。隨后將選擇減少等待時間、增加吞吐量或者降低壓縮器或解壓縮器的復(fù)雜度,或者所有這些特征的組合的特定處理器。預(yù)處理器還可以執(zhí)行基礎(chǔ)轉(zhuǎn)換,諸如從基數(shù)2轉(zhuǎn)換為基數(shù)10 ;這樣方便的基礎(chǔ)轉(zhuǎn)換的原因以及其好處在IEEE-754(2008)浮點數(shù)據(jù)標(biāo)準中有所描述。本發(fā)明的實施例還可以集成到DRAM、DDR、DDR2或DDR3外部存儲器的存儲器控制器中,由此實現(xiàn)對單核或多核CPU之外的半導(dǎo)體(DRAM、閃存、FRAM等)存儲器中所存儲的整數(shù)和浮點波形數(shù)據(jù)數(shù)值進行壓縮和解壓縮的存儲器控制器的可配置壓縮器。類似地,本發(fā)明可以集成到相同裸芯上(或者在多芯片模塊的相同封裝中)的高速緩存控制器中,以實現(xiàn)用于波形數(shù)據(jù)的可配置高速緩存存儲器壓縮器和解壓縮器。盡管已經(jīng)圖示并描述的本發(fā)明的優(yōu)選實施例,但是清楚的是,本發(fā)明并不僅局限于這些實施例。多種修改、改變、變化、替代和等同形式對于本領(lǐng)域技術(shù)人員將是顯而易見 的,其并不背離如權(quán)利要求中所描述的本發(fā)明的精神和范圍。
權(quán)利要求
1.一種在包括集成在芯片上的處理器、存儲器控制器和第一存儲器設(shè)備以及位于所述芯片之外的第二存儲器設(shè)備的系統(tǒng)中用于壓縮波形數(shù)據(jù)以便存儲在所述第二存儲器設(shè)備中的方法,包括 在所述存儲器控制器處接收來自所述處理器的向所述第二存儲器設(shè)備寫入波形數(shù)據(jù)的請求,其中所述波形數(shù)據(jù)包括以整數(shù)數(shù)據(jù)格式或浮點數(shù)據(jù)格式表示的多個樣本; 在與所述存儲器控制器集成的壓縮邏輯處接收來自所述處理器的一個或多個壓縮控制參數(shù); 在所述存儲器控制器中的所述壓縮邏輯處響應(yīng)于來自所述處理器的所述請求從所述第一存儲器設(shè)備接收所述多個樣本; 所述壓縮邏輯依據(jù)所述壓縮控制參數(shù)對所述多個樣本進行壓縮以形成壓縮包的多個壓縮樣本;以及 將所述壓縮包傳輸至所述第二存儲器設(shè)備,所述第二存儲器設(shè)備存儲所述壓縮包。
2.如權(quán)利要求I所述的方法,其中所述壓縮控制參數(shù)中的一個是指示無損壓縮模式或有損壓縮模式的壓縮模式參數(shù),其中所述壓縮依據(jù)所述壓縮模式參數(shù)對所述樣本應(yīng)用無損壓縮操作或有損壓縮操作。
3.如權(quán)利要求I所述的方法,其中一個壓縮控制參數(shù)是每個壓縮包的期望比特數(shù)或者期望壓縮比。
4.如權(quán)利要求3所述的方法,其中所述壓縮進一步包括 針對一個或多個壓縮包計算每個包的壓縮樣本中的比特數(shù); 將每個包的所述壓縮樣本中的所述比特數(shù)與每個包的期望比特數(shù)進行比較以確定反饋參數(shù);以及 依據(jù)所述反饋參數(shù)對所述壓縮進行適配。
5.如權(quán)利要求I所述的方法,其中第一個壓縮控制參數(shù)是所述樣本的數(shù)據(jù)類型參數(shù),所述數(shù)據(jù)類型參數(shù)指示所述整數(shù)數(shù)據(jù)格式或所述浮點數(shù)據(jù)格式,其中對于所述整數(shù)數(shù)據(jù)格式而言,每個輸入樣本包括第一符號位和第一多個尾數(shù)位,并且對于所述浮點數(shù)據(jù)格式而言,每個樣本包括第二符號位、第二多個尾數(shù)位以及多個浮點指數(shù)位,所述方法進一步包括 在所述數(shù)據(jù)類型參數(shù)指示所述整數(shù)數(shù)據(jù)格式時對所述壓縮進行配置以對每個樣本的所述第一符號位和所述第一多個尾數(shù)位進行處理;以及 在所述數(shù)據(jù)類型參數(shù)指示所述浮點數(shù)據(jù)格式時對所述壓縮進行配置以對每個樣本的所述第二符號位、所述第二多個尾數(shù)位以及所述多個浮點指數(shù)位進行處理。
6.如權(quán)利要求5所述的方法,其中第二個壓縮控制參數(shù)是指示無損壓縮模式或有損壓縮模式的壓縮模式參數(shù),其中所述數(shù)據(jù)類型參數(shù)指示所述整數(shù)數(shù)據(jù)格式,所述壓縮進一步包括 依據(jù)所述壓縮模式參數(shù)對每個樣本的所述第一符號位和所述第一多個尾數(shù)位應(yīng)用無損壓縮操作或有損壓縮操作。
7.如權(quán)利要求5所述的方法,其中第二個所述壓縮控制參數(shù)是指示無損壓縮模式或有損壓縮模式的壓縮模式參數(shù),其中所述數(shù)據(jù)類型參數(shù)指示所述浮點數(shù)據(jù)格式,所述壓縮進一步包括將每個樣本的所述多個浮點指數(shù)位與所述第二符號位和所述第二多個尾數(shù)位進行分離; 對每個樣本的所述多個浮點指數(shù)位應(yīng)用無損壓縮操作以產(chǎn)生多個壓縮浮點指數(shù); 依據(jù)所述壓縮模式參數(shù)對每個樣本所述第二符號位和所述第二多個尾數(shù)位應(yīng)用無損壓縮操作或有損壓縮操作以形成多個壓縮符號和尾數(shù);以及 將所述多個壓縮浮點指數(shù)以及所述多個壓縮符號和尾數(shù)提供給所述壓縮包。
8.如權(quán)利要求I所述的方法,其中所述壓縮包進一步包括報頭部分和有效載荷部分,所述方法進一步包括 在所述報頭部分中提供至少一個所述壓縮控制參數(shù);以及 在所述有效載荷部分中提供所述多個壓縮樣本。
9.如權(quán)利要求I所述的方法,其中所述系統(tǒng)包括集成在所述芯片上的多個處理器,從一個或多個所述處理器接收向所述第二存儲器設(shè)備寫入相應(yīng)的波形數(shù)據(jù)的的請求的所述存儲器控制器,所述壓縮應(yīng)用于相應(yīng)的多個樣本以形成相應(yīng)的多個壓縮樣本。
10.如權(quán)利要求I所述的方法,其中所述存儲器控制器進一步包括直接存儲器存取控制器,其中所述壓縮邏輯與所述直接存儲器存取控制器進行集成以執(zhí)行所述壓縮。
11.一種在包括集成在芯片上的處理器、存儲器控制器和第一存儲器設(shè)備以及位于所述芯片之外的第二存儲器設(shè)備的系統(tǒng)中用于對從所述第二存儲器設(shè)備得到的波形數(shù)據(jù)進行解壓縮的方法,包括 在所述存儲器控制器處接收來自所述處理器從所述第二存儲器設(shè)備得到所述波形數(shù)據(jù)的請求,其中所述波形數(shù)據(jù)由存儲在所述第二存儲器設(shè)備中的多個壓縮樣本所表示,其中所述多個壓縮樣本以及一個或多個壓縮控制參數(shù)包含在壓縮包中; 在與所述存儲器控制器集成的解壓縮邏輯處響應(yīng)于所述請求從所述第二存儲器設(shè)備接收所述壓縮包; 所述解壓縮邏輯依據(jù)所述一個或多個壓縮控制參數(shù)對所述壓縮包的所述多個壓縮樣本進行解壓縮以形成表示所述波形數(shù)據(jù)的多個解壓縮樣本;以及 將所述多個解壓縮樣本提供至所述第一存儲器設(shè)備,所述第一存儲器設(shè)備存儲所述多個解壓縮樣本用于由所述處理器訪問。
12.如權(quán)利要求11所述的方法,其中所述一個壓縮控制參數(shù)是指示無損壓縮模式或有損壓縮模式的壓縮模式參數(shù),其中所述解壓縮依據(jù)所述壓縮模式參數(shù)對所述多個壓縮樣本應(yīng)用無損解壓縮操作或有損解壓縮操作。
13.如權(quán)利要求11所述的方法,其中第一個壓縮控制參數(shù)是所述壓縮樣本的數(shù)據(jù)類型參數(shù),所述數(shù)據(jù)類型參數(shù)指示整數(shù)數(shù)據(jù)格式或浮點數(shù)據(jù)格式,其中對于所述整數(shù)數(shù)據(jù)格式而言,所述壓縮包包括所述多個壓縮樣本的壓縮符號和尾數(shù)數(shù)據(jù),并且對于浮點數(shù)據(jù)格式而言,所述壓縮包包括所述多個壓縮樣本的壓縮浮點指數(shù)、符號和尾數(shù)數(shù)據(jù),所述方法進一步包括 在所述數(shù)據(jù)類型參數(shù)指示所述整數(shù)數(shù)據(jù)格式時,對所述解壓縮進行配置以對所述壓縮符號和尾數(shù)數(shù)據(jù)進行處理以生成每個解壓縮樣本的所述第一符號位和所述第一多個尾數(shù)位;以及 在所述數(shù)據(jù)類型參數(shù)指示所述浮點數(shù)據(jù)格式時,對所述解壓縮進行配置以對所述多個壓縮樣本的所述壓縮浮點指數(shù)、符號和尾數(shù)數(shù)據(jù)進行處理以生成每個壓縮樣本的所述第二符號位、所述第二多個尾數(shù)位以及所述多個浮點指數(shù)位。
14.如權(quán)利要求13所述的方法,其中第二個所述壓縮控制參數(shù)是指示無損壓縮模式或有損壓縮模式的壓縮模式參數(shù),其中所述數(shù)據(jù)類型參數(shù)指示所述整數(shù)數(shù)據(jù)格式,所述解壓縮進一步包括 依據(jù)所述壓縮模式參數(shù)對所述壓縮符號和尾數(shù)數(shù)據(jù)應(yīng)用無損解壓縮操作或有損解壓縮操作以依據(jù)所述整數(shù)數(shù)據(jù)格式產(chǎn)生每個解壓縮樣本的所述第一符號位和所述第一多個尾數(shù)位。
15.如權(quán)利要求13所述的方法,其中第二個所述壓縮控制參數(shù)是指示無損壓縮模式或有損壓縮模式的壓縮模式參數(shù),其中所述數(shù)據(jù)類型參數(shù)指示所述浮點數(shù)據(jù)格式,所述解壓縮進一步包括 從所述壓縮包提取所述壓縮浮點指數(shù)數(shù)據(jù)以及所述壓縮符號和尾數(shù)數(shù)據(jù); 對所述壓縮浮點指數(shù)數(shù)據(jù)應(yīng)用無損解壓縮操作以形成多個解壓縮浮點指數(shù); 依據(jù)所述壓縮模式參數(shù)對所述壓縮符號和尾數(shù)數(shù)據(jù)應(yīng)用無損解壓縮操作或有損解壓縮操作以形成多個解壓縮符號和尾數(shù);以及 將所述解壓縮浮點指數(shù)與對應(yīng)的多個所述解壓縮符號和尾數(shù)進行組合以依據(jù)所述浮點數(shù)據(jù)格式形成所述解壓縮樣本。
16.如權(quán)利要求11所述的方法,其中所述系統(tǒng)包括集成在所述芯片上的多個處理器,從一個或多個所述處理器接收從所述第二存儲器設(shè)備讀取相應(yīng)的波形數(shù)據(jù)的請求的所述存儲器控制器,其中所述相應(yīng)的波形數(shù)據(jù)由所述第二存儲器設(shè)備中所存儲的相應(yīng)的多個壓縮樣本表示,其中所述解壓縮被應(yīng)用于所述相應(yīng)的多個壓縮樣本以形成相應(yīng)的多個解壓縮樣本。
17.如權(quán)利要求11所述的方法,其中所述存儲器控制器進一步包括直接存儲器存取控制器,其中所述解壓縮邏輯與所述直接存儲器存取控制器相集成以執(zhí)行所述解壓縮。
18.—種在包括集成在芯片上的處理器、存儲器控制器和和第一存儲器設(shè)備以及位于所述芯片之外的第二存儲器設(shè)備的系統(tǒng)中用于壓縮波形數(shù)據(jù)以便存儲在所述第二存儲器設(shè)備中的裝置,包括 所述存儲器控制器耦合到所述處理器和所述第一存儲器設(shè)備,其中所述存儲器控制器可操作以接收來自所述處理器向所述第二存儲器設(shè)備寫入所述波形數(shù)據(jù)的請求,其中所述波形數(shù)據(jù)包括以整數(shù)數(shù)據(jù)格式或浮點數(shù)據(jù)格式表示的多個樣本,所述存儲器控制器響應(yīng)于所述請求從所述第一存儲器設(shè)備獲取多個樣本;以及 與所述存儲器控制器集成的壓縮邏輯,所述壓縮邏輯被耦合以接收從所述第一存儲器設(shè)備獲取的所述多個樣本以及來自所述處理器的一個或多個壓縮控制參數(shù),其中所述壓縮邏輯可操作以依據(jù)所述一個或多個壓縮控制參數(shù)對所述多個樣本進行壓縮以形成壓縮包的多個壓縮樣本,所述壓縮邏輯被耦合以將所述壓縮包提供給所述第二存儲器設(shè)備用于所述存儲。
19.如權(quán)利要求18所述的裝置,其中一個所述壓縮控制參數(shù)是指示無損壓縮模式或有損壓縮模式的壓縮模式參數(shù),其中所述壓縮邏輯能夠依據(jù)所述壓縮模式參數(shù)以所述無損壓縮模式或所述有損壓縮模式進行操作。
20.如權(quán)利要求18所述的裝置,其中一個所述壓縮控制參數(shù)是每個壓縮包的期望比特數(shù)或者期望壓縮比。
21.如權(quán)利要求20所述的裝置,其中所述壓縮邏輯進一步包括 用于針對一個或多個壓縮包計算每個包的所述壓縮樣本中的比特數(shù)的邏輯; 用于將每個包的壓縮樣本中的所述比特數(shù)與所述每個壓縮包的期望比特數(shù)進行比較以確定反饋參數(shù)的邏輯;以及 用于依據(jù)所述反饋參數(shù)對所述壓縮操作進行適配的邏輯。
22.如權(quán)利要求18所述的裝置,其中第一個壓縮控制參數(shù)是所述樣本的數(shù)據(jù)類型參數(shù),所述數(shù)據(jù)類型參數(shù)指示所述整數(shù)數(shù)據(jù)格式或所述浮點數(shù)據(jù)格式,其中對于所述整數(shù)數(shù)據(jù)格式而言,每個樣本包括第一符號位和第一多個尾數(shù)位,并且對于所述浮點數(shù)據(jù)格式而言,每個樣本包括第二符號位、第二多個尾數(shù)位以及多個浮點指數(shù)位,所述壓縮邏輯進一步包括 用于對相應(yīng)樣本的符號位和尾數(shù)位進行壓縮的第一邏輯; 用于對相應(yīng)樣本的浮點指數(shù)位進行壓縮的第二邏輯; 用于在所述數(shù)據(jù)類型參數(shù)指示所述整數(shù)數(shù)據(jù)格式時向所述第一邏輯提供每個樣本的所述第一符號位和所述第一多個尾數(shù)位的邏輯;以及 用于在所述數(shù)據(jù)類型參數(shù)指示所述浮點數(shù)據(jù)格式時向所述第一邏輯提供每個樣本的所述第二符號位和所述第二多個尾數(shù)位并且向所述第二邏輯提供所述多個浮點指數(shù)位的邏輯。
23.如權(quán)利要求22所述的裝置,其中第二個所述壓縮控制參數(shù)是指示無損壓縮模式或有損壓縮模式的壓縮模式參數(shù),其中所述數(shù)據(jù)類型參數(shù)指示所述整數(shù)數(shù)據(jù)格式,其中所述第一邏輯能夠依據(jù)所述壓縮模式參數(shù)以所述無損壓縮模式或所述有損壓縮模式進行操作。
24.如權(quán)利要求22所述的裝置,其中第二個所述壓縮控制參數(shù)是指示無損壓縮模式或有損壓縮模式的壓縮模式參數(shù),其中所述數(shù)據(jù)類型參數(shù)指示所述浮點數(shù)據(jù)格式,其中所述第一邏輯能夠依據(jù)所述壓縮模式參數(shù)以所述無損壓縮模式或所述有損壓縮模式進行操作,并且所述第二邏輯能夠以所述無損壓縮模式進行操作。
25.如權(quán)利要求18所述的裝置,其中所述壓縮包進一步包括報頭部分和有效載荷部分,所述壓縮邏輯進一步包括 用于向所述報頭部分提供至少一個所述壓縮控制參數(shù)的邏輯;以及 用于向所述有效載荷部分提供所述多個壓縮樣本的邏輯。
26.如權(quán)利要求18所述的裝置,其中所述系統(tǒng)包括集成在所述芯片上的多個處理器,其中所述存儲器控制器被耦合到一個或多個所述處理器以從相應(yīng)的處理器接收向所述第二存儲器設(shè)備寫入對應(yīng)的波形數(shù)據(jù)的請求,其中所述壓縮邏輯被應(yīng)用于相應(yīng)的多個樣本以產(chǎn)生相應(yīng)的多個壓縮樣本。
27.如權(quán)利要求18所述的裝置,其中所述存儲器控制器進一步包括直接存儲器存取控制器,其中所述壓縮邏輯與所述直接存儲器存取控制器相集成。
28.—種在包括集成在芯片上的處理器、存儲器控制器和第一存儲器設(shè)備以及以及位于所述芯片之外的第二存儲器設(shè)備的系統(tǒng)中用于對從所述第二存儲器設(shè)備所得到的波形數(shù)據(jù)進行解壓縮的裝置,包括所述存儲器控制器耦合到所述處理器和所述第一存儲器設(shè)備,其中所述存儲器控制器可操作以接收來自所述處理器的從所述第二存儲器設(shè)備讀取所述波形數(shù)據(jù)的請求,其中所述波形數(shù)據(jù)由存儲在所述第二存儲器設(shè)備中的多個壓縮樣本表示,其中所述多個壓縮樣本以及一個或多個壓縮控制參數(shù)包含在壓縮包中,所述存儲器控制器耦合到所述第二存儲器設(shè)備以響應(yīng)于所述請求從所述第二存儲器設(shè)備獲取所述壓縮包;以及
29. 與所述存儲器控制器集成的解壓縮邏輯,所述解壓縮邏輯被耦合以從所述第二存儲器設(shè)備獲取所述 壓縮包,其中所述解壓縮邏輯可操作以依據(jù)一個或多個壓縮控制參數(shù)對所述多個壓縮樣本進行解壓縮,以形成表示所述多個樣本的多個解壓縮樣本,所述解壓縮邏輯被耦合以將所述多個解壓縮樣本提供至所述第一存儲器設(shè)備,所述第一存儲器設(shè)備存儲所述多個解壓縮樣本以用于由所述處理器訪問。
30.如權(quán)利要求29所述的裝置,其中所述一個壓縮控制參數(shù)是指示無損壓縮模式或有損壓縮模式的壓縮模式參數(shù),其中所述解壓縮邏輯能夠依據(jù)所述壓縮模式參數(shù)應(yīng)用無損解壓縮操作或有損解壓縮操作進行操作。
31.如權(quán)利要求29所述的裝置,其中第一個壓縮控制參數(shù)是所述壓縮樣本的數(shù)據(jù)類型參數(shù),所述數(shù)據(jù)類型參數(shù)指示整數(shù)數(shù)據(jù)格式或浮點數(shù)據(jù)格式,其中對于所述整數(shù)數(shù)據(jù)格式而言,所述壓縮包包括所述多個壓縮樣本的壓縮符號和尾數(shù)數(shù)據(jù),并且對于浮點數(shù)據(jù)格式而言,所述壓縮包包括所述多個壓縮樣本的壓縮浮點指數(shù)、符號和尾數(shù)數(shù)據(jù),所述解壓縮邏輯進一步包括 用于對相應(yīng)的壓縮樣本的壓縮符號和尾數(shù)數(shù)據(jù)進行解壓縮以形成解壓縮符號和尾數(shù)的第一邏輯; 用于對相應(yīng)的壓縮樣本的壓縮浮點指數(shù)數(shù)據(jù)進行解壓縮以形成解壓縮浮點指數(shù)的第二邏輯; 用于在所述數(shù)據(jù)類型參數(shù)指示所述整數(shù)數(shù)據(jù)格式時,將所述壓縮包的所述壓縮符號和尾數(shù)數(shù)據(jù)提供至所述第一邏輯的邏輯;以及 用于在所述數(shù)據(jù)類型參數(shù)指示所述浮點數(shù)據(jù)格式時,向所述第一邏輯提供所述壓縮包的所述壓縮符號和尾數(shù)數(shù)據(jù)并且向所述第二邏輯提供所述壓縮包的所述壓縮浮點指數(shù)數(shù)據(jù)的邏輯。
32.如權(quán)利要求31所述的裝置,其中第二個所述壓縮控制參數(shù)是指示無損壓縮模式或有損壓縮模式的壓縮模式參數(shù),其中所述數(shù)據(jù)類型參數(shù)指示所述整數(shù)數(shù)據(jù)格式,其中所述第一邏輯可操作以依據(jù)所述壓縮模式參數(shù)應(yīng)用無損解壓縮操作或有損解壓縮操作。
33.如權(quán)利要求31所述的裝置,其中第二個所述壓縮控制參數(shù)是指示無損壓縮模式或有損壓縮模式的壓縮模式參數(shù),其中所述數(shù)據(jù)類型參數(shù)指示所述浮點數(shù)據(jù)格式,其中所述第一邏輯能夠依據(jù)壓縮模式參數(shù)以所述無損壓縮模式或所述有損壓縮模式進行操作,并且所述第二邏輯能夠以所述無損壓縮模式進行操作,所述壓縮邏輯進一步包括 依據(jù)所述浮點數(shù)據(jù)格式,用于將所述解壓縮浮點指數(shù)與相應(yīng)的一組解壓縮符號和尾數(shù)進行組合以形成所述解壓縮樣本。
34.如權(quán)利要求29所述的裝置,其中所述系統(tǒng)包括集成在所述芯片上的多個處理器,其中所述存儲器控制器耦合到一個或多個所述處理器以從相應(yīng)的處理器接收從所述第二存儲器設(shè)備讀取相應(yīng)的波形數(shù)據(jù)的請求,其中所述相應(yīng)的波形數(shù)據(jù)由所述第二存儲器設(shè)備中存儲的相應(yīng)的多個壓縮樣本表示,所述解壓縮邏輯應(yīng)用于所述相應(yīng)的多個壓縮樣本以形成相應(yīng)的多個解壓縮樣本。
35.如權(quán)利要求29所述的裝置,其中所述存儲器控制器進一步包括直接存儲器存取控制器,其中所述解壓縮邏輯與直接存儲器存取控制器相集成。
全文摘要
多核處理環(huán)境中波形數(shù)據(jù)的可配置壓縮和解壓縮改進了核之間數(shù)據(jù)傳輸?shù)男什⑶夜?jié)約了數(shù)據(jù)存儲資源。在波形數(shù)據(jù)處理系統(tǒng)中,輸入、中間和輸出波形數(shù)據(jù)經(jīng)常在核之間以及核與片外存儲器之間進行交換。在每個核處,單個可配置壓縮器和單個可配置解壓縮器可以被配置為對整數(shù)或浮點波形數(shù)據(jù)進行壓縮和解壓縮。在存儲器控制器處,可配置壓縮器對整數(shù)或浮點波形數(shù)據(jù)進行壓縮以便以壓縮包傳輸至片外存儲器,并且可配置解壓縮器對從片外存儲器接收的壓縮包進行解壓縮。壓縮減少了在半導(dǎo)體或磁性存儲器中保留波形數(shù)據(jù)所需的存儲器或存儲。壓縮減少了交換波形數(shù)據(jù)所需的等待時間和帶寬。該摘要并不對如權(quán)利要求所描述的本發(fā)明的范圍進行限制。
文檔編號G06F13/16GK102754078SQ201080043852
公開日2012年10月24日 申請日期2010年9月27日 優(yōu)先權(quán)日2009年9月30日
發(fā)明者阿爾伯特·W·魏格納 申請人:信飛系統(tǒng)公司