TWI440314B - 封包資訊的多壓縮技術 - Google Patents

封包資訊的多壓縮技術 Download PDF

Info

Publication number
TWI440314B
TWI440314B TW099109407A TW99109407A TWI440314B TW I440314 B TWI440314 B TW I440314B TW 099109407 A TW099109407 A TW 099109407A TW 99109407 A TW99109407 A TW 99109407A TW I440314 B TWI440314 B TW I440314B
Authority
TW
Taiwan
Prior art keywords
packet
header
compression
transmitted
comparison
Prior art date
Application number
TW099109407A
Other languages
English (en)
Other versions
TW201105049A (en
Inventor
Abhishek Singhal
Sharma Debendra Das
Jesus Palomino
Mario A Rubio
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW201105049A publication Critical patent/TW201105049A/zh
Application granted granted Critical
Publication of TWI440314B publication Critical patent/TWI440314B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9042Separate storage for different parts of the packet, e.g. header and payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

封包資訊的多壓縮技術
本發明係關於封包資訊的多壓縮技術。
在現行的電腦架構中,應用頻寬需求正呈指數地增加。此針對記憶體及輸入/輸出(IO)子系統二者係確實的。而且,最近已觀測到的是,支援現有互連上之頻寬中的此指數成長已因為工程以及產業之致能要求而變成漸增地困難。
此趨勢之實例可發現於熟知的外設快捷互聯標準(PCIeTM )互連技術之即將到來世代的可用速度中。特定地,針對即將到來之PCIeTM 世代(Gen)3.0發信速度,所欲的是,頻寬應依據PCIeTM 規格為基之規格型式2.0(2007年1月17日頒佈)(下文中簡稱為PCIeTM 規格)而自現行的PCIeTM Gen 2.0位準(每秒5.0個十億轉移(5.0GT/s))加倍。然而,因為工程之要求,所以產業藉由採用更慢的速度(8.0GT/s對10.0GT/s)且不執行8b/10b之編碼來妥協,以獲得靠近10.0GT/s的頻寬。在致能該技術以與產業頻寬需求齊步並進之中,將需要各式各樣的技術。
該等技術的其中一者係壓縮。多年來,壓縮已被成功地使用於各式各樣的互連系統中。然而,該等已知之技術會受害於複雜性及系統開銷成本,而減低其實用性。
【發明內容及實施方式】
在各式各樣的實施例中,跨越諸如依據PCIeTM Gen2或Gen3之PCIeTM 互連或另一此協定的互連之資料傳輸可藉由提供壓縮技術而改善。在許多實施中,可使用不同的技術以壓縮封包的標頭和資料部分。特定地,可充分利用標頭和資料的不同特徵以施加適當的壓縮技術。針對典型的點對點(PtP)互連,封包的標頭部分之各式各樣的組件會保持不變。例如,在PCIeTM 標頭時間碼(TC)中,交易層封包(TLP)摘要(TD)、屬性(Attr)、AT、長度、請求者ID、標籤、BE、及位址部分的高位元會針對來自PCIeTM 端點上之代理器的一系列請求而保持不變。實施例可利用位元之此共同性。可瞭解的是,雖然在此所描述的係關於PCIeTM 實施,但實施例可施加至其他的互連技術。
儲存器可設置於交易層中(在接收及傳送側二者)以儲存封包標頭。在一實施例中,交易層的各個傳送器及接收器側可維持一儲存器(例如,4個雙字元(DW),其中DW係4個位元組或32位元於該處),以供其可接收之最多共同請求類型之用。經驗之資料顯示的是,最多(例如,>90%)請求類型可來自少數之此等類型(例如,非後置(NP)讀取請求、記憶體讀取(MRd)、後置記憶體寫入(MWr)、或具有資料之完成(CPLD))。各個此儲存器可包含複數個登錄(例如,各4個DW),以維持請求類型之所接收最後封包的所有標頭位元之拷貝。
此外,可設置封包匹配邏輯。針對傳送器交易層,此邏輯可執行比較於將被傳送之封包標頭的各個位元組之中(儲存於儲存器中的位元組可初始化成均為零),且提供位元向量,該位元向量包含關於與前一封包的位元組匹配之位元組(該類型)的資訊。因此,位元向量可根據此比較而被提供。該向量(例如,16位元)追蹤與相同類型之前一所傳送的封包上之相同位置中的位元組成功匹配所發現的位元組。注意的是,可以以諸如超過位元組位準之不同粒度來執行比較。例如,可比較8對的二位元組(2B)標頭部分且取代地傳送8位元向量,而以較低發現匹配之機率為代價來提供較佳的比較。
然後,在封包傳輸之期間,將此位元向量附加至封包(例如,做為字首)。在另一變化例中,於封包的實體層欄之中的位元可指示標頭是否載有此比較向量。如下文將進一步敘述地,針對其中達成少許壓縮的情況,此可有用於使比較向量的系統開銷最小化。做為一實例,於其中在兩個隨後之相同類型的請求之間發現少許共同性的情況中,後者之變化例係有用於使系統開銷最小化。
現請參閱第1圖,顯示依據本發明一實施例之封包的方塊圖。雖然在此係以PCIeTM Gen3封包之情況而敘述,但應瞭解的是,可將實施例應用至任何以基於封包的通訊方案。如第1圖中所示地,封包10包含標頭及資料部分之各式各樣的部分。部分20及70可對應至鏈路和實體層標頭,且可包含諸如預定碼、長度值、核對和值、及順序值之均可結合於第一部分20中的各式各樣資訊。此外,循環冗餘核對和(CRC)部分可呈現於最終部分70中。在該二標頭部分之間,如在此所述之比較向量30(且在各式各樣的實施例中,其可為二位元組部分)可提供用於標頭之壓縮的基礎。類型部分40可指示封包的類型,且其可由接收器使用以決定適當的儲存緩衝器,而儲存之封包標頭可自該儲存緩衝器獲得。在此之後,可設置壓縮之標頭部分50。根據輸入的封包標頭與對應儲存的封包標頭之間的共同性之數量,此標頭可於PCIeTM 實施之中在0與16位元組之間。在此標頭部分之後,可設置資料酬載部分60。如此處所解說地,此酬載部分可依據不同的壓縮技術而被壓縮。雖然係以此特定之實施顯示於第1圖的實施例中,但本發明之範疇並未受限於此點。
對應於比較向量中之顯示邏輯〝1〞值的位置之標頭位元組並未自傳送器傳送至接收器,藉以縮減將被傳送之標頭的數量。相反地,假設接收器側邏輯維持相同類型之前一請求的拷貝,且使用比較向量而自儲存之拷貝來恢復遺失的位元組。因此,針對封包再造,接收器側交易層接收壓縮的標頭,且藉由檢驗比較向量以及自其儲存器中所儲存之最後傳送的封包標頭之拷貝來回復〝遺失的/未傳送的〞位元組,以再造封包標頭。
使用本發明之實施例,可實現封包的標頭部分之變化的壓縮數量。現請參閱第2圖,顯示依據本發明實施例之在壓縮之前和之後的例示之TLP標頭。如第2圖中所示,其可為記憶體讀取(MemRd)封包類型的標頭100可具有三個雙字元(亦即,12位元組)的TLP標頭部分104。此外,鏈路及實體層標頭102係伴隨有結尾鏈路及實體層標頭部分106而一起呈現。如所示地,在壓縮後之標頭封包100包含位元向量103,該位元向量103識別封包的標頭部分與儲存的標頭之間的共同性,該儲存的標頭係用於相同類型之最後所傳送的封包(亦即,最後的MemRd封包)。在此之後係標頭部分104,其包含該二標頭之非匹配部分。如所示地,實現了四個位元組的縮減。
同樣地,可針對其他的封包類型以實現壓縮節省。如第2圖中所示地,記憶體寫入標頭(MemWr)包含四個雙字元(亦即,16位元組)寬的TLP標頭部分124。此係除了鏈路及實體層標頭122及126以及資料部分128之外的部分。如在壓縮之標頭部分120’中所示地,位元向量123係存在而使縮減的標頭部分124能被傳送。在所示的實例中,係傳送五位元組標頭部分而不是封包120的16位元組標頭部分,以完成頻寬節省。而且,亦繪示在封包末端處之填塞位元組127。雖然係以該等特定的實例而顯示,但本發明之範疇並未受限於此點。
實施例可被結合成許多不同的互連類型。現請參閱第3圖,顯示依據本發明實施例之諸如經由例如PCIeTM 鏈路以通訊的處理器、晶片組、周邊裝置、或其類似者之半導體裝置的一部分之方塊圖。如第3圖中所示地,跨越鏈路275(例如,PtP鏈路)之用於傳輸的交易可由封包緩衝器205中之裝置的邏輯接收,該封包緩衝器205在若干實施中可為先進先出(FIFO)緩衝器。雖然針對描繪便利之緣故而顯示成單一的緩衝器,但應瞭解的是,在不同的實施例中,可呈現多重此等緩衝器以供不同的標頭類型或不同類型的資料之用。輸入的交易可被提供至交易層210,且更特定地至輸入邏輯212,而其可在傳輸之前執行諸如多重此等交易間之仲裁以及製備封包之各樣各式的功能。輸入邏輯212可提供各式各樣的資訊至諸如標頭壓縮邏輯214及資料壓縮邏輯216之一或更多個壓縮引擎。此係因為由於存在於封包的標頭和資料部分中之不同類型的資訊,所以可使用不同的壓縮技術。當已執行(當致能)適當的壓縮方法學時,可將壓縮之資訊提供至可由該處產生封包的封包產生邏輯218。然後,可將該等封包輸出至鏈路及實體層250,該鏈路及實體層250可包含輸入邏輯252和壓縮邏輯254,該壓縮邏輯254在各式各樣的實施例中可為執行對封包的鏈路實體層標頭部分的壓縮之選用引擎。最後,封包可在調整於類比前端(AFE)256(在一實施例中,其可連接至實體層)之後沿著鏈路275被傳送。雖然針對描繪之便利而以該等高層次之視圖來顯示,但應瞭解的是,額外的邏輯和結構可存在於特定的實施中。相似的電路係存在於自鏈路275的接收方向中,使得輸入之封包被處理於鏈路及實體層250之中,且提供至交易層210,以供包含於解封包邏輯224中之進一步的處理及使用解壓縮邏輯226及228之標頭和資料部分的解壓縮之用,該解壓縮邏輯226及228如上述地作動以解壓縮標頭及資料部分。
現請參閱第4圖,顯示依據本發明一實施例之標頭壓縮引擎的進一步細節。如第4圖中所示地,交易層300可包含壓縮引擎340之各式各樣的組件。輸入的標頭可儲存於各式各樣的的FIFO中,各個FIFO係與將被傳送之最多共同類的封包相關。也就是說,非後置標頭緩衝器305、後置標頭緩衝器310、及完成(CPL)標頭緩衝器315可輸出標頭以提供至仲裁器320,仲裁器320在該不同的封包類型之間仲裁,且提供獲得的封包至標頭壓縮邏輯350,其中在該處,標頭係提供至比較及壓縮邏輯355,該比較及壓縮邏輯355可為比較輸入標頭與相同類型的對應儲存標頭的位元組狀比較器。更特定地,標頭緩衝器360可包含複數個登錄,各儲存所給定之封包類型的最後標頭。如第4圖中所示地,該等登錄可包含最後記憶體讀取及寫入標頭,最後完成標頭,最後組態讀取及寫入標頭,以及最後IO讀取及寫入標頭。注意的是,標頭緩衝器360係以剛接收到的封包標頭來經常地更新(亦即,置換所儲存的封包標頭)。雖然在第4圖的實施例中係以該等特定的實例來加以顯示,但在其他的實施例中可儲存額外的或不同的標頭。
比較及壓縮邏輯355可產生比較向量(其可為二個位元組),以涵蓋大至16個位元組的標頭資訊,其中各個位元對應至比較的位元組,其中在該處之邏輯1位準指示匹配以及邏輯0位準指示不匹配。根據此比較向量及標頭資訊,封包資訊邏輯350可自此資訊及資料(若存在時)來形成封包。因此,僅將標頭之相異的該等部分(亦即,對應於邏輯0)傳送。此外,壓縮引擎邏輯340可進一步輸出類型指示,以指示對應於該標頭的封包之類型。
進一步地,在一些情況中,控制器(例如,控制邏輯370)可限制壓縮的數量以適合封包對齊要件,例如,針對PCIeTM ,所有封包係四個位元組的倍數。在其中需要標頭封包為4DW的實施例中,可將若干位元組選擇成不被壓縮。假定13個位元組顯示匹配(位元組0係從未被壓縮)時,則所生成之標頭封包將具有1B封包類型加上2B標頭加上2B,其中並未發現匹配而給定5B之總計。相反地,另三個位元組可未壓縮地傳送(任何三個),使得生成之封包為8B(或二個雙字元)。注意的是,在各式各樣的實施中,做為經由控制邏輯370或分離自該處之壓縮引擎340的部件,控制器可決定壓縮是否應被允許或使失能。也就是說,若根據若干比較所決定的是,壓縮並未改善性能時(亦即,由於封包間之相當小的共同性),則為壓縮引擎340所執行的壓縮可去能。此可根據使用及壓縮比而定,其監測基於正被轉移之資料之進行基準。
注意的是,分離的資料路徑可自資緩衝器320及325提供資料至資料壓縮邏輯335,其中在該處若致能時,則可施加不同的壓縮技術至資料。然後,傳送壓縮(可能壓縮)之資料至封包形成邏輯350,其中在該處,形成且輸出完成的封包至例如鏈路層。雖然在第4圖之實施例中係以此特定的實施來顯示,但在其他的實施例中可使用其他的電路及邏輯以執行壓縮。
現請參閱第5圖,根據依據本發明實施例之用以執行標頭壓縮的流程圖。如第5圖中所示地,方法400可執行於傳送器的交易層之中。方法400可藉由接收第一封包類型而開始(方塊410)。然後,可決定封包壓縮是否被致能(方塊415)。若否定時,則可傳送封包標頭(方塊420),且該方法終止。
否則,控制傳遞至方塊430,其中,封包標頭係與相同類型之儲存的封包標頭相比較。如上述地,此儲存的封包標頭可存在於交易層的標頭緩衝器之中。然後,比較向量可根據該比較而產生(方塊440)。如上述地,在一實施例中,可產生位元向量,其中各個位元具有指示二標頭的對應位元組間之匹配的第一值,以及指示不匹配的第二值。接著,可決定該比較向量是否指示完全匹配(方塊450)。若肯定時,則可單獨而無需任何封包標頭地傳送該比較向量(方塊460)。否則,控制傳遞至菱形方塊470,在該處決定是否具有至少部分之匹配。若肯定時,則可傳送該比較向量及該封包標頭之非匹配部分(方塊480)。相反地,若標頭之該等部分無一匹配時,則控制會傳遞至方塊490,在該處,比較向量及整個封包標頭二者均被傳送出。雖然在第5圖之實施例中係以此特定的實施來顯示,但本發明之範疇並未受限於此點。應瞭解的是,解壓縮可以以大致逆轉的方式發生,以致可使用比較向量以獲得給定類型之儲存的封包標頭,以及對於未被傳送之標頭的任何匹配部分,可以使用儲存之標頭緩衝器來再造所欲的標頭部分。注意的是,在傳送及接收二者之情況中,輸入的封包係儲存於標頭緩衝器之中以供將來的比較之用。
在資料中的可變性係極大於在標頭封包之中者。針對此表面上隨機的資料,可使用更先進的壓縮技術。以字典為基礎之壓縮方法使用符號(典型地,位元組)的頻率,以產生資訊(在此情況中,資料位元)之更有效的編碼。一種此壓縮技術係霍夫曼(Huffman)演算法,其係使用於無損耗資料通訊。霍夫曼演算法假定的是,資料組中之符號的頻率已預計算。稱為適應性霍夫曼演算法之此演算法的變化例則連續建立傳送及送出之符號的頻率表於傳送器及接收器二側。
已被傳送之封包的頻率表係以已被傳送之各個符號(例如,一符號可為一位元組)的頻率而更新。可儲存陣列,該陣列根據頻率以界定各個符號的可變長度碼(較短的碼供較頻繁使用的符號之用),且然後,在各個封包傳輸之後被重建。根據霍夫曼演算法之壓縮邏輯可以以硬體來加以實施。如頻率表中所反映地,該等實施可包含根據符號之頻率的編碼陣列之建立。
在各式各樣的實施例中,可採用適應性霍夫曼演算法之變化例以供壓縮封包的資料部分之用。亦即,霍夫曼樹可被較不頻繁地建立(每〝N個〞封包一次,其中N在該處係透過軟體所設定之可編程的值)。雖然本發明之範疇並未受限於此點,但在一些實施例中,N可在100與1000之間。藉由執行此,可建立高潛性管線(high latency pipeline)以計算霍夫曼樹。
同樣地,也可使用另一壓縮技術。在一實施例中,可僅編碼16個最頻繁的符號。例如,00、01、03、04、…0F係僅以5位元來編碼,亦即,0之後緊隨實際之二進位表示。剩餘的240個符號可以以9位元來編碼,亦即,〝1〞之後緊隨8位元表示。其他的實施亦係可行的。
如上述地,可使用與上述用於標頭之以位元向量為基礎之壓縮技術不同的壓縮技術,以供資料部分之用。現請參閱第6圖,顯示依據本發明實施例之用於封包的資料部分之壓縮方法的流程圖。如第6圖中所示地,方法500可開始於當接收到封包的資料部分時(方塊510)。根據封包中之符號(例如,位元組),可更新壓縮引擎(諸如第3圖之資料壓縮邏輯)的頻率表(方塊520)。在一些實施例中,標頭壓縮和資料壓縮以及鏈路層封包壓縮(例如,在PCIeTM 中之信用及承認封包)可使用相似之以字典為基礎的壓縮技術。在此實施例中,用於各個封包類型的頻率表係分離的。
然後,可決定從壓縮引擎之結構的最後更新起所接收之資料部分的數目是否已被取得(菱形方塊530)。若否定時,可使用根據邏輯壓縮之符號編碼法來編碼資料部分,且資料部分被傳送出去(方塊540)。
若在菱形方塊530相反地決定資料部分的數目到達臨限值時,則控制傳遞至方塊550,在該處,壓縮引擎的編碼可根據頻率表中之符號的頻率而更新。然後,控制傳遞至上述之方塊540,在該處,資料部分可使用更新之編碼來予以壓縮,且從而被傳送出。
因此,實施例提供了在壓縮效率上具有很小衝擊之頻率表的〝緩慢更新〞。在使用PCIeTM 資料話務之例示的實施例中,由於使用如此處所敘述之緩慢更新技術,所以在壓縮效率中實質地沒有損耗。在一實施例中,若每大約100個封包建立陣列一次,則可獲得良好的頻寬縮減。
雖然上述實施例係關於霍夫曼及修正的適應性霍夫曼演算法,但其他的實施可使用另一之以字典及頻率為基礎的演算法。因此,在各式各樣的實施例中,結構及相對可重複性之封包標頭的先前知識使高壓縮能經由用於標頭之位元向量而被使用,且取代地,以字典加上頻率為基礎的演算法可被使用於封包的資料部分。用於資料壓縮之選擇的演算法可根據實施之便利性而定。
至於封包的核對和部分,因為CRC位元之近隨機的性質,所以在此部分之壓縮中可存在有少許的好處。實際上,當適應性霍夫曼演算法扭曲資料酬載之符號分佈,其之性能會受損,且壓縮的CRC無法在易犯錯誤的互連上被送出。因而,在各式各樣的實施中,在核對和中之位元的頻率分佈不應與資料酬載的頻率分佈合併。一些實施可選擇成為其系統開銷小時不壓縮核對和資訊,或可提供個別的壓縮引擎以供此資訊之用。同樣地,信用封包可具有個別的壓縮引擎和頻率表。在一些實施例中,信用可根據相關於標頭壓縮所述之位元向量技術而被壓縮。
藉由結合用於封包之標頭及資料部分的個別方案,可獲得高度的壓縮。此設計可降低頻寬,且藉以展現機會以獲得頻寬於給定之頻率處或減低在從一互連世代到下一互連世代的頻率增大的變化。在一些實施中,於TLP頻寬中之降低可為50至60%的大小。當標頭話務針對客戶應用而佔主要部分時,個別的應用可顯示在頻寬中之直至2倍的降低。然而,資料部分之可變編碼亦提供大大的上升,而可更顯著於伺服器應用中。因為更少的資料係透過互連通路而傳送,所以實施例亦可減少動態功率。因此,雖然產業標準仍然保持在Gen2或Gen3速度(5.0GT/s或8GT/s),但使用本發明實施例的平台可提供具有很少額外邏輯之更高速的頻寬。
實施例可以以許多不同的系統類型來予以實施。現請參閱第7圖,顯示依據本發明實施例之系統的方塊圖。如第7圖中所示地,多處理器系統600係點對點互連系統,且包含第一處理器670及第二處理器680,而兩者經由點對點互連660以耦接。如第7圖中所示地,處理器670及680各可為包含第一及第二處理器核心(亦即,處理器核心674a及674b以及處理器核心684a及684b)之多核心處理器。
仍請參閱第7圖,第一處理器670進一步包含記憶體控制器中心(MCH)672以及點對點(P-P)介面676及678。同樣地,第二處理器680包含MCH682以及P-P介面686及688。如第7圖中所示地,MCH672及682將該等處理器耦接至個別的記憶體,亦即,記憶體632及記憶體634,其可為局部地附著至個別的處理器之部分的主記憶體(例如,動態隨機存取記憶體(DRAM))。第一處理器670及第二處理器680可分別地經由P-P互連652及654而耦接至晶片組690。如第7圖中所示地,晶片組690包含P-P介面694及698。注意的是,一或更多個組件可依據本發明之一實施例而包含壓縮電路,以如本文中所示地執行封包標頭及酬載壓縮。
再者,晶片組690包含介面692以耦接晶片組690與高性能圖形引擎638。依序地,晶片組690可經由介面696而耦接至第一匯流排616。如第7圖所示地,各式各樣的I/O裝置614可耦接至第一匯流排616,而伴隨有耦接第一匯流排616至第二匯流排620之匯流排橋接器618。各式各樣的裝置可耦接至第二匯流排620,例如,包含鍵盤/滑鼠622、通訊裝置626、及諸如碟片驅動器或其他主儲存裝置之資料儲存單元628。在一實施例中,資料儲存單元628可包含代碼630。進一步地,聲頻I/O 624可耦接至第二匯流排620。
實施例可以以代碼來實施,該代碼可儲存於其上已儲存指令之儲存媒體上,該代碼可使用以編程系統而執行該等指令。儲存媒體可包含,但未受限於包含磁片、磁碟、光碟、固態驅動器(SSD)、小型碟片唯讀記憶體(CD-ROM)、小型碟片可重寫記憶體(CD-RW)、及磁光碟之任何類型之碟片;諸如唯讀記憶體(ROM)、動態隨機存取記憶體(DRAM)之隨機存取記憶體(RAM)、靜態隨機存取記憶體(SRAM),可拭除可編程之唯讀記憶體(EPROM)、快閃記憶體、可電性拭除可編程之唯讀記憶體(EEPROM)、磁卡、或光學卡之半導體裝置;或適用以儲存電子指令之任何其他類型的媒體。
雖然本發明已相對於受限數目之實施例而敘述,但熟習於本項技藝之該等人士將理解的是,許多修正例及變化例係來自該處。因此,附錄之申請專利範圍應涵蓋落在此發明之真正精神及範疇之內的該等修正例及變化例。
10...封包
20,70...部分
30...比較向量
40...類型部分
50,120’...壓縮之標頭部分
60...資料酬載部分
100...標頭
102,122,126...鏈路及實體層標頭
104,124...TLP標頭部分
103,123...位元向量
106...結尾鏈路及實體層標頭部分
128...資料部分
127...填塞位元組
275...鏈路
120...封包的16位元組標頭部分
205...封包緩衝器
210,300...交易層
212,252...輸入邏輯
214,350...標頭壓縮邏輯
216...資料壓縮邏輯
218...封包產生邏輯
250...鏈路及實體層
254...壓縮邏輯
256...類比前端(AFE)
224...解封包邏輯
226,228...解壓縮邏輯
340...壓縮引擎
305...非後置標頭緩衝器
310...後置標頭緩衝器
315...完成(CPL)標頭緩衝器
320...仲裁器
355...比較及壓縮邏輯
360...標頭緩衝器
370...控制邏輯
325...資料緩衝器
335...資料壓縮邏輯
350...封包形成邏輯
400,500...方法
410~490,510~550...方塊
600...多處理器系統
670...第一處理器
680...第二處理器
674a,674b,684a,684b...處理器核心
672,682...記憶體控制器中心(MCH)
676,678,694,698,686,688...點對點介面
632,634...記憶體
690...晶片組
652,654,660...點對點(P-P)互連
638...高性能圖形引擎
692,696...介面
616...第一匯流排
614...I/O裝置
618...匯流排橋接器
620...第二匯流排
622...鍵盤/滑鼠
626...通訊裝置
628...資料儲存單元
630...代碼
624...聲頻I/O
第1圖係依據本發明一實施例之封包的方塊圖;
第2圖提供依據本發明實施例之在壓縮前及在壓縮後二者的例示之封包標頭;
第3圖係依據本發明實施例之半導體裝置的一部分之方塊圖;
第4圖係依據本發明一實施例之標頭壓縮引擎的方塊圖;
第5圖係依據本發明實施例之用以執行標頭壓縮的流程圖;
第6圖係依據本發明實施例之用於資料封包的壓縮方法之流程圖;以及
第7圖係依據本發明實施例之系統的方塊圖。
400...方法
410~490...方塊

Claims (14)

  1. 一種執行標頭壓縮之方法,包含;比較輸入至傳送器之封包的封包標頭與儲存之封包標頭,該儲存之封包標頭對應於與由該傳送器所傳送的該封包相同類型之前一封包;根據該比較以產生比較向量,該比較向量具有多數位元,各個位元表示是否該封包標頭的一部分匹配於該儲存之封包信頭的對應部分;若該封包標頭與該儲存之封包標頭匹配時,則由該傳送器傳送無該封包標頭但有該比較向量的該封包;及以不同之壓縮技術來壓縮該封包的資料部分並以關於所傳送之各個封包的資訊來更新該不同之壓縮技術的頻率表,且每傳送預定數目的封包僅更新一次該不同之壓縮技術樹。
  2. 如申請專利範圍第1項之方法,進一步包含與該封包一起傳送該封包標頭的一部分,其中該部分係與該儲存之封包標頭的對應部分不同。
  3. 如申請專利範圍第1項之方法,進一步包含根據與複數個比較相關聯的臨限值,使該比較和產生失能,且傳送具有該封包標頭且無該比較向量的該封包,其中該複數個比較中的每一個對應於不同的封包標頭。
  4. 如申請專利範圍第1項之方法,進一步包含儲存該封包的該封包標頭於交易層之標頭緩衝器的第一部分中,以置換該儲存之封包標頭。
  5. 如申請專利範圍第1項之方法,進一步包含於耦接至該傳送器的接收器之中接收該封包及該比較向量,且自該接收器之標頭緩衝器獲得對應於該封包的該封包標頭之標頭。
  6. 如申請專利範圍第5項之方法,進一步包含根據該封包之類型及該比較向量之值以存取該標頭緩衝器。
  7. 如申請專利範圍第1項之方法,進一步包含以與使用於資料及標頭封包之第一壓縮技術不同的第三壓縮技術來壓縮鏈路層封包,其中若該第一壓縮技術使用頻率表時,則維持用於該等鏈路層封包之各別的頻率表。
  8. 一種標頭壓縮設備,包含:包括有標頭緩衝器、比較器及產生器的交易層,該標頭壓縮設備包含:該標頭緩衝器,用以儲存由傳送器所傳送之前一封包的前一封包標頭,該標頭緩衝器包含各儲存用於封包類型之前一封包標頭的複數個登錄;該比較器,用以比較將被傳送之封包的封包標頭與儲存於該標頭緩衝器的對應於將被傳送之該封包的該封包類型之登錄中的前一封包標頭;以及該產生器,用以根據該比較來產生位元向量,且根據該比較來傳送具有該位元向量且不具有封包標頭的至少一部分的該封包;該交易層包含分離的標頭壓縮邏輯和資料壓縮邏輯;該標頭壓縮邏輯包含標頭緩衝器、該比較器、及該產生器,以及該資料壓縮邏輯係使用不同之壓縮技術以壓縮該封 包的資料部分;及其中該資料壓縮邏輯係根據維持於頻率表中之符號的頻率,且係以關於所傳送之各個封包的資訊來更新該頻率表,以及每傳送預定數目之封包僅更新產生用於符號之壓縮編碼的壓縮技術一次。
  9. 如申請專利範圍第8項之標頭壓縮設備,進一步包含控制邏輯,該控制邏輯係耦接至該比較器以使該比較和產生失能,其中該交易層係根據與各個對應於不同的封包標頭之複數個比較相關聯的臨限值,以傳送具有該封包標頭且沒有該位元向量的該封包。
  10. 如申請專利範圍第9項之標頭壓縮設備,其中若致能該封包標頭壓縮時,則該控制邏輯係使該封包標頭的壓縮指示器變成第一狀態,以及若使該封包標頭壓縮失能時,則使得該封包標頭的壓縮指示器變成第二狀態。
  11. 如申請專利範圍第8項之標頭壓縮設備,進一步包含封包形成邏輯,以產生該封包標頭且儲存該封包之該封包標頭於該標頭緩衝器的第一部分之中,該第一部分對應於該封包的類型。
  12. 一種具有標頭壓縮的系統,包含:傳送器,係耦接至互連,該傳送器包含第一壓縮邏輯:以比較封包的封包標頭和對應於與由該傳送器所傳送的該封包相同類型之最近封包的儲存之封包標頭;根據該比較以產生比較向量,該比較向量具有多數位元,各個位元表示是否該封包標頭的一部分匹配於該儲存之封包信頭的 對應部分;且若該封包標頭與該儲存之封包標頭匹配時,則由該傳送器傳送具有該比較向量而不具有該封包標頭的該封包;以不同之壓縮技術來壓縮該封包的資料部分並以關於所傳送之各個封包的資訊來更新該不同之壓縮技術的頻率表,且每傳送預定數目的封包僅更新一次該不同之壓縮技術樹;接收器,係耦接至該互連,該接收器包含第二壓縮邏輯,以接收該封包及該比較向量,且自該接收器之標頭緩衝器獲得對應於該封包的該封包標頭之標頭;以及動態隨機存取記憶體(DRAM),耦接至該接收器及該傳送器。
  13. 如申請專利範圍第12項之系統,其中該第一壓縮邏輯包含:標頭緩衝器,以儲存該儲存之封包標頭,該標頭緩衝器包含各儲存用於封包類型之封包標頭的複數個登錄;以及比較器,以產生該比較向量。
  14. 如申請專利範圍第12項之系統,其中該第二壓縮邏輯係根據該封包之類型及該比較向量之值以存取該接收器的該標頭緩衝器。
TW099109407A 2009-06-26 2010-03-29 封包資訊的多壓縮技術 TWI440314B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/492,304 US8111704B2 (en) 2009-06-26 2009-06-26 Multiple compression techniques for packetized information

Publications (2)

Publication Number Publication Date
TW201105049A TW201105049A (en) 2011-02-01
TWI440314B true TWI440314B (zh) 2014-06-01

Family

ID=43369602

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099109407A TWI440314B (zh) 2009-06-26 2010-03-29 封包資訊的多壓縮技術

Country Status (5)

Country Link
US (1) US8111704B2 (zh)
CN (1) CN101930418B (zh)
DE (1) DE112010002704B4 (zh)
TW (1) TWI440314B (zh)
WO (1) WO2010151351A1 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010106663A1 (ja) * 2009-03-19 2010-09-23 富士通株式会社 受信装置、送信装置、受信方法、送信方法、通信システムおよび通信方法
US9397785B1 (en) * 2010-04-12 2016-07-19 Marvell International Ltd. Error detection in a signal field of a WLAN frame header
US8885740B2 (en) 2011-02-04 2014-11-11 Marvell World Trade Ltd. Control mode PHY for WLAN
CN102360381B (zh) * 2011-09-29 2014-03-12 深圳众为兴技术股份有限公司 一种对嵌入式程序进行无损压制的装置和方法
WO2013152111A1 (en) 2012-04-03 2013-10-10 Marvell World Trade Ltd. Physical layer frame format for wlan
US9390042B2 (en) * 2012-07-03 2016-07-12 Nvidia Corporation System and method for sending arbitrary packet types across a data connector
CN103873443B (zh) * 2012-12-13 2018-04-27 联想(北京)有限公司 信息处理方法、本地代理服务器和网络代理服务器
US9485687B2 (en) * 2013-02-15 2016-11-01 Exalt Wireless, Inc. Selective compression in a wireless communication system
CN104038450B (zh) * 2013-03-04 2017-09-19 华为技术有限公司 基于pcie总线的报文传输方法与装置
US9414432B2 (en) 2013-04-03 2016-08-09 Marvell World Trade Ltd. Physical layer frame format for WLAN
US9294323B2 (en) 2013-09-10 2016-03-22 Marvell World Trade Ltd. Extended guard interval for outdoor WLAN
US10194006B2 (en) 2013-10-25 2019-01-29 Marvell World Trade Ltd. Physical layer frame format for WLAN
US10218822B2 (en) 2013-10-25 2019-02-26 Marvell World Trade Ltd. Physical layer frame format for WLAN
EP3700155A1 (en) 2013-10-25 2020-08-26 Marvell World Trade Ltd. Range extension mode for wifi
US9825884B2 (en) 2013-12-30 2017-11-21 Cavium, Inc. Protocol independent programmable switch (PIPS) software defined data center networks
US11855818B1 (en) 2014-04-30 2023-12-26 Marvell Asia Pte Ltd Adaptive orthogonal frequency division multiplexing (OFDM) numerology in a wireless communication network
US9531848B2 (en) 2014-06-19 2016-12-27 Cavium, Inc. Method of using generic modification instructions to enable flexible modifications of packets and an apparatus thereof
US9497294B2 (en) 2014-06-19 2016-11-15 Cavium, Inc. Method of using a unique packet identifier to identify structure of a packet and an apparatus thereof
US9742694B2 (en) 2014-06-19 2017-08-22 Cavium, Inc. Method of dynamically renumbering ports and an apparatus thereof
US10616380B2 (en) 2014-06-19 2020-04-07 Cavium, Llc Method of handling large protocol layers for configurable extraction of layer information and an apparatus thereof
US9635146B2 (en) * 2014-06-19 2017-04-25 Cavium, Inc. Method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof
US9438703B2 (en) 2014-06-19 2016-09-06 Cavium, Inc. Method of forming a hash input from packet contents and an apparatus thereof
US10050833B2 (en) 2014-06-19 2018-08-14 Cavium, Inc. Method of reducing latency in a flexible parser and an apparatus thereof
US9473601B2 (en) 2014-06-19 2016-10-18 Cavium, Inc. Method of representing a generic format header using continuous bytes and an apparatus thereof
US9531849B2 (en) 2014-06-19 2016-12-27 Cavium, Inc. Method of splitting a packet into individual layers for modification and intelligently stitching layers back together after modification and an apparatus thereof
US9516145B2 (en) 2014-06-19 2016-12-06 Cavium, Inc. Method of extracting data from packets and an apparatus thereof
US9961167B2 (en) 2014-06-19 2018-05-01 Cavium, Inc. Method of modifying packets to a generic format for enabling programmable modifications and an apparatus thereof
US9628385B2 (en) 2014-06-19 2017-04-18 Cavium, Inc. Method of identifying internal destinations of networks packets and an apparatus thereof
US9606781B2 (en) 2014-11-14 2017-03-28 Cavium, Inc. Parser engine programming tool for programmable network devices
US10887430B2 (en) 2015-10-21 2021-01-05 Dragonwave-X, Llc Compression in communications
US11593280B2 (en) 2019-06-25 2023-02-28 Intel Corporation Predictive packet header compression
WO2021147047A1 (zh) * 2020-01-22 2021-07-29 华为技术有限公司 一种基于PCIe的数据传输方法、装置及系统
CN113485950A (zh) * 2021-06-22 2021-10-08 上海天数智芯半导体有限公司 一种合并发送PCIe存储器写请求的系统及方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3651941B2 (ja) 1994-11-28 2005-05-25 キヤノン株式会社 画像再生装置
US6963570B1 (en) * 1997-07-15 2005-11-08 Comsat Corporation Method and apparatus for adaptive loss-less compression of cell/packet headers
US6009488A (en) 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
US6804238B1 (en) * 1998-12-29 2004-10-12 International Business Machines Corporation System and method for transmitting compressed frame headers in a multiprotocal data transmission network
US6865164B1 (en) * 1999-09-08 2005-03-08 Motorola, Inc. Packet transmission method
US7170866B2 (en) * 1999-12-08 2007-01-30 Cello Partnership Quality of service enhancements for wireless communications systems
US6928403B2 (en) * 2000-03-02 2005-08-09 Texas Instruments Incorporated Automatic detection of connectivity between an emulator and a target device
US7545755B2 (en) * 2000-03-03 2009-06-09 Adtran Inc. Routing switch detecting change in session identifier before reconfiguring routing table
KR100349649B1 (ko) 2000-07-11 2002-08-24 주식회사 큐리텔 동영상압축 부호화장치의 가변 길이 부호화기
AU2002340093A1 (en) * 2001-10-05 2003-04-22 Aware, Inc. Systems and methods for multi-pair atm over dsl
US6760345B1 (en) 2002-01-16 2004-07-06 Raytheon Company Compressing cell headers for data communication
US6987761B2 (en) 2002-02-13 2006-01-17 International Business Machines Corporation Inbound data stream controller with pre-recognition of frame sequence
US7362780B2 (en) * 2002-12-11 2008-04-22 Nokia Corporation Avoiding compression of encrypted payload
US8296452B2 (en) 2003-03-06 2012-10-23 Cisco Technology, Inc. Apparatus and method for detecting tiny fragment attacks
US7400627B2 (en) * 2003-06-05 2008-07-15 Brooktree Broadband Holding, Inc. ATM header compression using hash tables
US7602785B2 (en) * 2004-02-09 2009-10-13 Washington University Method and system for performing longest prefix matching for network address lookup using bloom filters
JP2006135871A (ja) * 2004-11-09 2006-05-25 Fujitsu Ltd フレーム伝送装置およびフレーム受信装置
US7916750B2 (en) 2005-12-28 2011-03-29 Intel Corporation Transaction layer packet compression
KR100745782B1 (ko) 2006-09-29 2007-08-03 한국전자통신연구원 동적 헤더 압축 장치 및 방법
US7949794B2 (en) 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
US7808995B2 (en) * 2006-11-16 2010-10-05 L-3 Communications Integrated Systems L.P. Methods and systems for relaying data packets
US20080117906A1 (en) * 2006-11-20 2008-05-22 Motorola, Inc. Payload header compression in an rtp session
US7848280B2 (en) * 2007-06-15 2010-12-07 Telefonaktiebolaget L M Ericsson (Publ) Tunnel overhead reduction
US8243757B2 (en) * 2007-07-05 2012-08-14 Ceragon Networks Ltd. MAC header compression using a pointer
US7793001B2 (en) * 2008-05-09 2010-09-07 Microsoft Corporation Packet compression for network packet traffic analysis
US7990973B2 (en) * 2008-08-13 2011-08-02 Alcatel-Lucent Usa Inc. Hash functions for applications such as network address lookup

Also Published As

Publication number Publication date
US20100329255A1 (en) 2010-12-30
DE112010002704B4 (de) 2021-08-26
WO2010151351A1 (en) 2010-12-29
CN101930418A (zh) 2010-12-29
DE112010002704T5 (de) 2013-01-17
CN101930418B (zh) 2013-12-18
TW201105049A (en) 2011-02-01
US8111704B2 (en) 2012-02-07

Similar Documents

Publication Publication Date Title
TWI440314B (zh) 封包資訊的多壓縮技術
US11463102B2 (en) Data compression method, data decompression method, and related apparatus, electronic device, and system
US20190196907A1 (en) Compression techniques for distributed data
US7307552B2 (en) Method and apparatus for efficient hardware based deflate
US10244250B2 (en) Variable-rate texture compression using fixed-rate codes
US20180052631A1 (en) Method and apparatus for compressing addresses
WO2023279964A1 (zh) 数据压缩方法、装置、计算设备及存储系统
JP2008197578A (ja) データ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ転送制御装置
US11955995B2 (en) Apparatus and method for two-stage lossless data compression, and two-stage lossless data decompression
US9647688B1 (en) System and method of encoding in a serializer/deserializer
US9035809B2 (en) Optimizing compression engine throughput via run pre-processing
CN111327603A (zh) 数据传输方法、装置和系统
CN112286714A (zh) 在基于nand的读取源存储中提高大数据分析吞吐量的方法和系统
CN102129873B (zh) 提高计算机末级高速缓存可靠性的数据压缩装置及其方法
CN115395961A (zh) 基于联合中间件的数据无损压缩及加密传输方法
US20040088497A1 (en) Methods and apparatus for exchanging data using cyclic redundancy check codes
WO2014115277A1 (ja) ストレージ装置およびストレージ装置制御方法
JP2024531529A (ja) チップ間インターフェースのためのオンデマンドパケット化
CN110633225B (zh) 实体存储对照表产生装置及方法
US12073080B2 (en) System and method for improving reliability of a data storage system
JP2006040011A (ja) ディスクアレイシステム
JP7142665B2 (ja) ストレージ管理のための方法、装置、機器、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム
US20050223116A1 (en) Data encoding and decoding in a data storage system
CN113050519A (zh) 一种基于crc16的单比特纠错fpga实现方法
WO2023237121A1 (zh) 一种数据处理方法、装置及相关设备

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees