將參考模板同步到數(shù)據(jù)流的方法和信息處理系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種方法,其中,通過給鎖步緩沖器和先行緩沖器加載從參考模板中檢索的模板數(shù)據(jù)塊,數(shù)據(jù)流編碼器將參考模板重新同步到數(shù)據(jù)流。數(shù)據(jù)流編碼器確定鎖步緩沖器的模板數(shù)據(jù)不同于數(shù)據(jù)流數(shù)據(jù)塊,并且轉(zhuǎn)而,保存先行緩沖器中的模板數(shù)據(jù)塊以用于隨后的重新同步。轉(zhuǎn)而,數(shù)據(jù)流編碼器對先行緩沖器的保存的模板數(shù)據(jù)與隨后的數(shù)據(jù)流數(shù)據(jù)塊進(jìn)行匹配,并且據(jù)此將參考模板重新同步到數(shù)據(jù)流。
【專利說明】將參考模板同步到數(shù)據(jù)流的方法和信息處理系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及具有先行同步的差分編碼器。更具體地,本發(fā)明涉及響應(yīng)于檢測到參考模板不再與數(shù)據(jù)流消息同步、使用先行緩沖器將參考模板重新同步到數(shù)據(jù)流消息的差分編碼器。
【背景技術(shù)】
[0002]企業(yè)數(shù)據(jù)中心可以用于服務(wù)多種不同類型的工作負(fù)載,包括可以起源于企業(yè)的客戶端的客戶工作負(fù)載以及支持企業(yè)的業(yè)務(wù)流程的組織工作負(fù)載。通常,客戶和組織工作負(fù)載的處理要求跨數(shù)據(jù)中心的內(nèi)部和/或外部數(shù)據(jù)網(wǎng)絡(luò)的大量的數(shù)據(jù)和消息的通信。
[0003]在企業(yè)數(shù)據(jù)中心環(huán)境中,并且更一般地,在許多數(shù)據(jù)處理環(huán)境中,網(wǎng)絡(luò)帶寬是限制可以利用數(shù)據(jù)處理環(huán)境的資源來執(zhí)行的有用工作量的稀缺資源。因此,已經(jīng)研發(fā)了各種各樣的技術(shù)以降低用于存儲(chǔ)和/或傳達(dá)消息和/或數(shù)據(jù)文件的帶寬和存儲(chǔ)要求。這些技術(shù)包含以比其原始的未壓縮的形式更加緊湊的形式表示數(shù)據(jù)(例如消息或數(shù)據(jù)文件)的數(shù)據(jù)壓縮。
[0004]常用的壓縮技術(shù)包含運(yùn)行長度編碼(RLE)、算術(shù)編碼、Huffman編碼、基于字典的編碼和增量編碼。增量編碼將數(shù)據(jù)表達(dá)為參考數(shù)據(jù)與要被編碼的數(shù)據(jù)之間的差異。參考數(shù)據(jù)與要被編碼的數(shù)據(jù)之間的差異然后可以代替要被編碼的數(shù)據(jù)被存儲(chǔ)或發(fā)送。
【發(fā)明內(nèi)容】
[0005]根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了一種方法,其中,通過給鎖步緩沖器和先行緩沖器加載從參考模板中檢索的模板數(shù)據(jù)塊,數(shù)據(jù)流編碼器將參考模板重新同步到數(shù)據(jù)流。數(shù)據(jù)流編碼器確定鎖步緩沖器的模板數(shù)據(jù)不同于數(shù)據(jù)流數(shù)據(jù)塊,并且轉(zhuǎn)而,保存先行緩沖器中的模板數(shù)據(jù)塊以用于隨后的重新同步。轉(zhuǎn)而,數(shù)據(jù)流編碼器對先行緩沖器的保存的模板數(shù)據(jù)與隨后的數(shù)據(jù)流數(shù)據(jù)塊進(jìn)行匹配,并且據(jù)此將參考模板重新同步到數(shù)據(jù)流。
[0006]前述內(nèi)容是概要,因而必然含有對細(xì)節(jié)的簡化、概括和省略;因此,本領(lǐng)域技術(shù)人員應(yīng)理解,本概要僅僅是說明性的,并且不旨在以任何方式進(jìn)行限制。僅由權(quán)利要求所限定的本發(fā)明的其它方面、發(fā)明特征和優(yōu)點(diǎn)在下面闡述的非限制性詳細(xì)描述中將變得顯而易見。
【專利附圖】
【附圖說明】
[0007]通過參照附圖,本發(fā)明可以被更好地理解,并且對于本領(lǐng)域技術(shù)人員其眾多的目的、特征和優(yōu)點(diǎn)變得顯而易見,其中:
[0008]圖1是示出發(fā)送基于比較數(shù)據(jù)流消息與參考模板編碼的差分?jǐn)?shù)據(jù)的數(shù)據(jù)流編碼器的一個(gè)不例的圖;
[0009]圖2是示出包含針對各種消息類型采集的、其轉(zhuǎn)而用于確定消息類型模板和針對每個(gè)消息類型的先行緩沖器偏移的消息類型數(shù)據(jù)的示例性表格的圖;
[0010]圖3A是示出使用緩沖器比較模板數(shù)據(jù)塊與數(shù)據(jù)流數(shù)據(jù)塊的先行比較器的一個(gè)示例的圖;
[0011]圖3B是示出在失去同步之后重新同步到數(shù)據(jù)流消息的參考模板的一個(gè)示例的圖;
[0012]圖4A是示出同步到不包含模板數(shù)據(jù)塊的數(shù)據(jù)流消息的參考模板的一個(gè)示例的圖;
[0013]圖4B是示出在失去同步之后重新同步到數(shù)據(jù)流消息的參考模板的一個(gè)示例的圖;
[0014]圖5是示出在生成用于消息類型的參考模板以及存儲(chǔ)先行偏移值以對應(yīng)參考模板中所采取的步驟的流程圖;
[0015]圖6是示出用于基于參考模板編碼數(shù)據(jù)流所采取的步驟的一個(gè)示例的流程圖;
[0016]圖7是示出由數(shù)據(jù)流解碼器采取以解碼編碼的差分?jǐn)?shù)據(jù)流的步驟的示例的流程圖;
[0017]圖8是本文所描述的方法可在其中實(shí)現(xiàn)的數(shù)據(jù)處理系統(tǒng)的框圖;以及
[0018]圖9提供了對圖8中示出的信息處理系統(tǒng)環(huán)境的擴(kuò)展,以說明本文中所描述的方法可以在種類廣泛的信息處理系統(tǒng)上執(zhí)行,該信息處理系統(tǒng)是在網(wǎng)絡(luò)環(huán)境中操作的。
【具體實(shí)施方式】
[0019]本文中所使用的術(shù)語僅僅是為了描述特定實(shí)施例的目的,并且不旨在于限制本發(fā)明。如本文中所使用的,單數(shù)形式“一”、“一個(gè)”和“該”旨在也包含復(fù)數(shù)形式,除非上下文另外明確指示。將進(jìn)一步理解的是,術(shù)語“包括”和/或“其包括”在該說明書中被使用時(shí)指定所陳述的特征、整數(shù)、步驟、操作、元件和/或部件的存在,但是不排除一個(gè)或多個(gè)其它特征、整數(shù)、步驟、操作、元件、部件和/或它們的組的存在或增加。
[0020]如特別要求的,在下面的權(quán)利要求中的所有裝置或步驟加功能元件的對應(yīng)結(jié)構(gòu)、材料、行為和等效物旨在包含用于結(jié)合其它要求的元件執(zhí)行功能的任何結(jié)構(gòu)、材料或行為。對本發(fā)明的描述已經(jīng)為了說明和描述的目的而給出,但是不旨在是窮舉式的或者限于以所公開形式的發(fā)明。在不脫離本發(fā)明的范圍和精神的情況下,對于本領(lǐng)域普通技術(shù)人員來說許多修改和變化將是顯而易見的。實(shí)施例被選擇和描述,以便最好地解釋本發(fā)明的原理和實(shí)際應(yīng)用,并且以使得其他本領(lǐng)域普通技術(shù)人員能夠?qū)⒂糜诰哂懈鞣N修改的各種實(shí)施例的本發(fā)明理解為適合于所考慮的特定用途。
[0021]如將由本領(lǐng)域技術(shù)人員理解的,本發(fā)明的方面可以被體現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。據(jù)此,本發(fā)明的方面可以采取在本文中一般可以全部被稱為“電路”、“模塊”或“系統(tǒng)”的完全硬件實(shí)施例、完全軟件實(shí)施例(包括固件、駐留軟件、微代碼等)或者組合軟件和硬件方面的實(shí)施例的形式。此外,本發(fā)明的方面可以采取體現(xiàn)在具有計(jì)算機(jī)可讀程序代碼體現(xiàn)在其上的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)(或多個(gè)介質(zhì))中的計(jì)算機(jī)程序產(chǎn)品的形式。
[0022]可以利用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是例如(但不限于)電子的、磁的、光學(xué)的、電磁的、紅外線的或半導(dǎo)體系統(tǒng)、裝置或設(shè)備,或者前述的任何合適組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體示例(非窮舉式列表)將包含以下各項(xiàng):具有一條或多條導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦除可編程只讀存儲(chǔ)器(EPR0M或閃速存儲(chǔ)器)、光纖、便攜緊縮盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)設(shè)備、磁存儲(chǔ)設(shè)備或者前述的任何合適組合。在本文檔的上下文中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是能夠含有或存儲(chǔ)用于由指令執(zhí)行系統(tǒng)、裝置或設(shè)備或者與它們連接使用的程序的任何有形介質(zhì)。
[0023]計(jì)算機(jī)可讀信號(hào)介質(zhì)可以包括具有計(jì)算機(jī)可讀程序代碼體現(xiàn)在其中的傳播數(shù)據(jù)信號(hào),例如,在基帶中或作為載波的一部分。這樣的傳播信號(hào)可以采取各種各樣形式中的任一個(gè),包含(但不限于)電磁的、光學(xué)的或者其任何合適組合。計(jì)算機(jī)可讀信號(hào)介質(zhì)可以是其不是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)并且可以傳達(dá)、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或設(shè)備或者與它們連接使用的程序的任何計(jì)算機(jī)可讀介質(zhì)。
[0024]體現(xiàn)在計(jì)算機(jī)可讀介質(zhì)上的程序代碼可以使用任何適當(dāng)?shù)慕橘|(zhì)來發(fā)送,包含(但不限于)無線、有線、光纖電纜、RF等、或者前述的任何合適組合的。
[0025]用于執(zhí)行針對本發(fā)明方面的操作的計(jì)算機(jī)程序代碼可以以一個(gè)或多個(gè)編程語言的任意組合來編寫,包含諸如Java、Smalltalk, C++等之類的面向?qū)ο蟮木幊陶Z言以及諸如“C”編程語言或類似編程語言之類的傳統(tǒng)的過程編程語言。程序代碼可以作為獨(dú)立的軟件包完全在用戶的計(jì)算機(jī)上、部分在用戶的計(jì)算機(jī)上、部分在用戶的計(jì)算機(jī)上并且部分在遠(yuǎn)程計(jì)算機(jī)上或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后面的情景中,遠(yuǎn)程計(jì)算機(jī)可以通過任意類型的網(wǎng)絡(luò)連接到用戶的計(jì)算機(jī),包含局域網(wǎng)(LAN)或廣域網(wǎng)(WAN),或者可以進(jìn)行到外部計(jì)算機(jī)的連接(例如,通過使用互聯(lián)網(wǎng)服務(wù)提供商的互聯(lián)網(wǎng))。
[0026]下面參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖圖示和/或框圖來描述本發(fā)明的方面。將理解的是,流程圖圖示和/或框圖的每個(gè)方框以及在流程圖圖示和/或框圖中的方框的組合可以由計(jì)算機(jī)程序指令來實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以被提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器以產(chǎn)生機(jī)器,使得經(jīng)由計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令創(chuàng)建用于實(shí)現(xiàn)在流程圖和/或框圖方框或多個(gè)方框中指定的功能/行為的裝置。
[0027]這些計(jì)算機(jī)程序指令還可以被存儲(chǔ)在可以引導(dǎo)計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備以特定方式起作用的計(jì)算機(jī)可讀介質(zhì)中,使得存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令產(chǎn)生一件包含實(shí)現(xiàn)在流程圖和/或框圖方框或多個(gè)方框中指定的功能/行為的指令的制造品(manufacture)。
[0028]計(jì)算機(jī)程序指令還可以被加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上以使得一系列操作步驟在計(jì)算機(jī)、其它可編程裝置或其它設(shè)備上被執(zhí)行以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過程,使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖和/或框圖方框或多個(gè)方框中指定的功能/行為的過程。
[0029]附圖中的流程圖和框圖圖示了根據(jù)本發(fā)明各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)施方式的架構(gòu)、功能和操作。就這一點(diǎn)而言,流程圖或框圖中的每個(gè)方框均可以表示包括用于實(shí)現(xiàn)指定的邏輯功能(或多個(gè)功能)的一個(gè)或多個(gè)可執(zhí)行指令的代碼的模塊、段或一部分。還應(yīng)當(dāng)注意的是,在一些備選實(shí)施方式中,在方框中提到的功能可以不按附圖中提到的順序發(fā)生。例如,取決于所涉及的功能,連續(xù)示出的兩個(gè)方框?qū)嶋H上可以大致同時(shí)被執(zhí)行,或者有時(shí)方框可以以相反的順序被執(zhí)行。還應(yīng)注意的是,框圖和/或流程圖圖示中的每個(gè)方框以及在框圖和/或流程圖圖示中的方框的組合可以由執(zhí)行指定功能或行為的特殊用途的基于硬件的系統(tǒng)或者特殊用途的硬件和計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。
[0030]以下詳細(xì)描述將整體遵循如上面闡述的
【發(fā)明內(nèi)容】
,根據(jù)需要進(jìn)一步解釋和展開對本發(fā)明的各種方面和實(shí)施例的限定。
[0031]圖1是示出發(fā)送基于對輸入的數(shù)據(jù)流消息與參考模板進(jìn)行比較而編碼的差分?jǐn)?shù)據(jù)的數(shù)據(jù)流編碼器的一個(gè)示例的圖。數(shù)據(jù)流編碼器100接收包含各種數(shù)據(jù)流消息132、134和136 (例如,簡單對象訪問協(xié)議(SOAP)消息)的數(shù)據(jù)流130。數(shù)據(jù)流編碼器100包含標(biāo)識(shí)各個(gè)消息132至136各自的消息類型(例如,消息類型A)并且從模板存儲(chǔ)145中檢索對應(yīng)參考模板的先行比較器110。轉(zhuǎn)而,先行比較器110將檢索的參考模板中的數(shù)據(jù)塊(例如,一組模板數(shù)據(jù)的字節(jié))同步到數(shù)據(jù)流消息中的數(shù)據(jù)塊(例如,流數(shù)據(jù)的字節(jié))。在一個(gè)實(shí)施例中,基于對相同消息類型的消息之間的共同內(nèi)容的分析來預(yù)生成參考模板(對于進(jìn)一步的細(xì)節(jié),見圖2和對應(yīng)正文)。
[0032]數(shù)據(jù)流編碼器100依照指針編碼或者文字編碼(數(shù)據(jù)流字節(jié)中的文字被直接編碼)來編碼輸入的數(shù)據(jù)流130中的數(shù)據(jù)塊。指針編碼對指針信息進(jìn)行編碼(例如,在參考模板中的位置和參考模板中匹配字節(jié)的數(shù)目),并且提供增加的數(shù)據(jù)壓縮,因?yàn)橹羔樉幋a要求較少的位以編碼數(shù)據(jù)流中相同數(shù)目的數(shù)據(jù)字節(jié)。此外,指針編碼要求數(shù)據(jù)流位置與參考模板中對應(yīng)位置之間的同步。
[0033]為了在失去同步之后高效地將數(shù)據(jù)流消息重新同步到參考模板,先行比較器110采用利用鎖步緩沖器112以及先行緩沖器114和116的先行同步技術(shù)。鎖步緩沖器112存儲(chǔ)來自對應(yīng)于鎖步指針122的模板數(shù)據(jù)位置的模板數(shù)據(jù)塊,并且在與輸入的數(shù)據(jù)流相同的速率下前進(jìn)(增量)。先行緩沖器114和116存儲(chǔ)來自分別對應(yīng)于先行指針124和126的模板數(shù)據(jù)位置的模板數(shù)據(jù)塊。如本文中所討論的,先行指針124和126在鎖步緩沖器112被同步到數(shù)據(jù)流130 (匹配數(shù)據(jù))時(shí)前進(jìn),但是在鎖步緩沖器112失去與數(shù)據(jù)流130的同步時(shí)不前進(jìn)。因此,先行緩沖器124和/或126存儲(chǔ)最終被匹配到數(shù)據(jù)流數(shù)據(jù)130的模板數(shù)據(jù)塊(對于進(jìn)一步的細(xì)節(jié),見圖3A、3B、4A、4B和對應(yīng)正文)。
[0034]在數(shù)據(jù)流與鎖步緩沖器112之間的數(shù)據(jù)塊比較結(jié)果是命中(匹配)時(shí),先行比較器I1發(fā)送對應(yīng)于鎖步指針122的匹配的指針信息給編碼器150以用于編碼。同樣,數(shù)據(jù)流編碼器100通過計(jì)算機(jī)網(wǎng)絡(luò)發(fā)送作為編碼的數(shù)據(jù)流160的編碼的指針信息給數(shù)據(jù)流解碼器170。在一個(gè)實(shí)施例中,指針信息包含在參考模板中的位置和匹配的匹配字節(jié)的數(shù)目,諸如“在位置132處,16個(gè)字節(jié)”。
[0035]在接收側(cè),數(shù)據(jù)流解碼器170接收編碼的數(shù)據(jù)流160并且解碼編碼的指針信息(經(jīng)由解碼器175)。同樣,數(shù)據(jù)流解碼器170基于解碼的指針信息從匹配參考模板140的參考模板180中提取模板數(shù)據(jù)字節(jié)。轉(zhuǎn)而,數(shù)據(jù)流解碼器170將提取的模板數(shù)據(jù)傳輸?shù)胶筇幚?95以用于進(jìn)一步的處理(解碼的數(shù)據(jù)流190)。
[0036]回來參照先行比較器110,在鎖步緩沖器112失去與數(shù)據(jù)流130的同步時(shí),先行比較器I1發(fā)送實(shí)際的數(shù)據(jù)流數(shù)據(jù)給編碼器150以用于編碼并用于經(jīng)由編碼的數(shù)據(jù)流160傳輸?shù)綌?shù)據(jù)流解碼器170。如下面更詳細(xì)討論的,通過匹配存儲(chǔ)在先行緩沖器114和/或116中的模板數(shù)據(jù)塊與隨后接收到的數(shù)據(jù)流數(shù)據(jù),先行比較器110將數(shù)據(jù)流130重新同步到參考模板140。
[0037]圖2是示出包含針對各種消息類型采集的、其轉(zhuǎn)而被用于確定消息類型模板和針對每個(gè)消息類型的先行緩沖器偏移的消息類型數(shù)據(jù)的示例性表格的圖。表200包含針對八個(gè)不同消息類型的樣本數(shù)據(jù),諸如八個(gè)不同的SOAP(簡單對象訪問協(xié)議)消息。列210包含用于八個(gè)不同消息類型的消息類型標(biāo)識(shí)符。列220包含針對每個(gè)消息類型所提取的樣本消息的數(shù)目,并且列230包含每個(gè)消息類型的平均大小。例如,表200示出1504個(gè)消息類型A消息被取樣,并且消息類型A消息的平均大小是23762字節(jié)。
[0038]列240包含相同消息類型的消息之間的共同內(nèi)容的量,并且列250包含共同內(nèi)容與每個(gè)消息類型的平均大小的比值。如所示,消息類型A消息具有22670字節(jié)的共同內(nèi)容,這相當(dāng)于95.4%的百分比。換句話說,通過基于共同內(nèi)容創(chuàng)建針對消息類型A消息類型的參考模板,參考模板中95.4%的字節(jié)(平均)應(yīng)當(dāng)匹配數(shù)據(jù)流中的消息類型A消息。
[0039]圖3A是示出用于比較模板數(shù)據(jù)塊與數(shù)據(jù)流數(shù)據(jù)塊的先行比較器110的緩沖器的一個(gè)示例的圖。在圖3A中示出的示例示出,參考模板140包含十個(gè)數(shù)據(jù)塊BI至BlO (每個(gè)塊可以含有多于一個(gè)字節(jié)),并且數(shù)據(jù)流消息136包含相同的十個(gè)數(shù)據(jù)塊加上另外的數(shù)據(jù)部分300,該另外的數(shù)據(jù)部分包含五個(gè)另外的數(shù)據(jù)塊的。
[0040]先行緩沖器114和116從鎖步緩沖器112偏移預(yù)定義的量(對于進(jìn)一步的細(xì)節(jié),見圖5和對應(yīng)正文)。圖3A示出先行緩沖器114偏移一個(gè)數(shù)據(jù)塊,并且先行緩沖器116偏移七個(gè)數(shù)據(jù)塊。在一個(gè)實(shí)施例中,先行緩沖器114偏移一個(gè)數(shù)據(jù)塊以使得具有另外的數(shù)據(jù)部分的數(shù)據(jù)流消息(圖3A中示出的)的迅速重新同步能夠進(jìn)行,并且在該實(shí)施例中,先行緩沖器116偏移的數(shù)據(jù)塊的量對應(yīng)于不包含在數(shù)據(jù)流消息中的最大的潛在的模板數(shù)據(jù)部分大小(對于進(jìn)一步的細(xì)節(jié),見圖4A、4B和對應(yīng)正文)。在另一實(shí)施例中,先行比較器110可以使用比本文中所公開的數(shù)目更多或更少的先行緩沖器。
[0041]在鎖步緩沖器112的指針122前進(jìn)以指向“塊2”時(shí),鎖步緩沖器112從模板加載塊2數(shù)據(jù)塊。同樣地,指針124和126前進(jìn),并且先行緩沖器114加載塊3數(shù)據(jù)塊,先行緩沖器116存儲(chǔ)塊9數(shù)據(jù)塊。然而,在先行比較器110對鎖步緩沖器112的內(nèi)容與新的塊310進(jìn)行比較時(shí),先行比較器110確定未命中(miss),并且轉(zhuǎn)而,先行緩沖器114的指針凍結(jié)并且塊3保持存儲(chǔ)在先行緩沖器114中。同樣地,先行緩沖器116的指針凍結(jié)并且塊9保持存儲(chǔ)在先行緩沖器116中。然而,因?yàn)橄刃斜容^器110繼續(xù)從數(shù)據(jù)流消息136接收新的數(shù)據(jù)塊并且試圖同步數(shù)據(jù)流消息136與參考模板140,鎖步緩沖器112的指針繼續(xù)前進(jìn)(對于進(jìn)一步的細(xì)節(jié),見圖3B和對應(yīng)正文)。
[0042]圖3B是示出在失去同步之后重新同步到數(shù)據(jù)流消息的參考模板的一個(gè)示例的圖。圖3B示出了前進(jìn)通過參考模板140的塊3、4、5、6、7和8的鎖步緩沖器112,其數(shù)據(jù)與數(shù)據(jù)流消息136中隨后的數(shù)據(jù)塊相比較。因?yàn)閿?shù)據(jù)流消息136包含另外的數(shù)據(jù)部分300,數(shù)據(jù)流消息136不再與參考模板140同步,從而由先行比較器110生成未命中。然而,在先行比較器110接收數(shù)據(jù)流消息136的塊3(350)時(shí),先行比較器110匹配數(shù)據(jù)流數(shù)據(jù)塊與先行緩沖器114的數(shù)據(jù)(如上面討論的其被凍結(jié))。因此,先行比較器110將鎖步緩沖器112的指針信息更新成先行緩沖器114的指針的信息,并且轉(zhuǎn)而,重新同步數(shù)據(jù)流消息136與參考模板140。例如,假設(shè)先行緩沖器114指向參考模板中的位置“632”,先行比較器110更新鎖步緩沖器以指向位置“632”。此外,先行比較器110解凍先行緩沖器,并且將它們的指針設(shè)置成相對于鎖步緩沖器的新位置的預(yù)定義的先行偏移值。
[0043]圖4A是示出同步到不包含模板數(shù)據(jù)塊的數(shù)據(jù)流消息的參考模板的一個(gè)示例的圖。在圖4A中示出的示例示出,參考模板400包含十個(gè)數(shù)據(jù)塊(BI至B10),并且數(shù)據(jù)流消息134包含十個(gè)數(shù)據(jù)塊中的六個(gè)(不包含的模板數(shù)據(jù)部分410不包含在數(shù)據(jù)流消息134中)。
[0044]在鎖步緩沖器112存儲(chǔ)塊2并且先行比較器110比較鎖步緩沖器112的內(nèi)容與數(shù)據(jù)流消息134的塊6時(shí),先行比較器110確定未命中,并且轉(zhuǎn)而,緩沖器114的指針凍結(jié)并且數(shù)據(jù)塊3保持在先行緩沖器114中。同樣地,先行緩沖器116的指針凍結(jié)并且數(shù)據(jù)塊9保持在先行緩沖器116中。因?yàn)橄刃斜容^器110從數(shù)據(jù)流消息134接收隨后的數(shù)據(jù)塊并且試圖同步數(shù)據(jù)流消息136與參考模板140,鎖步緩沖器112的指針繼續(xù)前進(jìn)(對于進(jìn)一步的細(xì)節(jié),見圖4B和對應(yīng)正文)。
[0045]圖4B是示出在失去同步之后重新同步到數(shù)據(jù)流消息的參考模板的一個(gè)示例的圖。圖4B示出了前進(jìn)通過參考模板400的數(shù)據(jù)塊3、4和5 (先行比較器110將其與數(shù)據(jù)流消息134的數(shù)據(jù)塊7、8和9相比較)的鎖步緩沖器112。因?yàn)閿?shù)據(jù)流消息134不包含數(shù)據(jù)塊2至5,先行比較器110相對于鎖步緩沖器112的內(nèi)容確定未命中。然而,在先行比較器110比較數(shù)據(jù)塊9(440)與先行緩沖器116的數(shù)據(jù)(如上面討論的其被凍結(jié))時(shí),先行比較器110確定命中(匹配)。因此,先行比較器110將鎖步緩沖器112的指針信息更新成先行緩沖器116的指針的信息,并且轉(zhuǎn)而,重新同步數(shù)據(jù)流消息134與參考模板400。此外,先行比較器110解凍先行緩沖器,并且將它們的指針設(shè)置成相對于鎖步緩沖器的新位置的預(yù)定義的先行偏移值。
[0046]圖5是示出在生成針對消息類型的參考模板以及存儲(chǔ)先行偏移值以對應(yīng)參考模板時(shí)所采取的步驟的流程圖。處理開始于500,于是在510處處理選擇第一消息類型。例如,處理可以選擇圖2中的“消息類型A”作為第一消息類型。在520處,處理將先行緩沖器1(114)的偏移值設(shè)置成最小偏移值,諸如一個(gè)數(shù)據(jù)塊。如本文中所討論的,在數(shù)據(jù)流包含另外的數(shù)據(jù)部分時(shí),先行緩沖器1114可以被用于重新同步參考模板與數(shù)據(jù)流。通過將先行緩沖器I的偏移值配置在最小值處,重新同步發(fā)生在另外的數(shù)據(jù)部分結(jié)束之后不久(對于進(jìn)一步的細(xì)節(jié),見圖3A、3B和對應(yīng)正文)。
[0047]在530處,基于例如在消息類型評(píng)估期間找到的共同內(nèi)容,處理生成針對所選擇的消息類型的模板。例如,圖2示出了針對每個(gè)消息類型的共同內(nèi)容的量(列240),并且基于在分析期間標(biāo)識(shí)的共同內(nèi)容,處理生成消息類型模板。如本領(lǐng)域技術(shù)人員可以理解的,參考模板可以使用最長共同子序列提取技術(shù)來生成。在一個(gè)實(shí)施例中,樣本消息中的一個(gè)可以被挑選作為模板。
[0048]在540處,處理從相同消息類型的不同消息中標(biāo)識(shí)最大的潛在的不包含的模板數(shù)據(jù)部分大小(相對于生成的參考模板,其不包含在不同消息中)。例如,消息類型A的模板可以包含22670字節(jié),并且在評(píng)估期間消息中的一個(gè)是22000字節(jié),因?yàn)榘谀0逯械?70個(gè)連續(xù)字節(jié)不包含在消息中。在該示例中,最大的潛在的不包含的模板數(shù)據(jù)部分大小是670字節(jié)。
[0049]在550處,處理設(shè)置比最大的潛在的不包含的模板數(shù)據(jù)部分大小更大的(例如,大一個(gè)塊)緩沖器2 (116)的先行偏移值。如本文中所討論的,在其中參考模板包含模板數(shù)據(jù)部分(該部分不包含在數(shù)據(jù)流消息中)的情況下,先行緩沖器2被用于重新同步數(shù)據(jù)流與參考模板(對于進(jìn)一步的細(xì)節(jié),見圖4A、4B和對應(yīng)正文)。在一個(gè)實(shí)施例中,處理可以緩沖器2的先行偏移值設(shè)置成小于最大的潛在的不包含的模板數(shù)據(jù)部分大小的值,這對于具有大的不包含的模板數(shù)據(jù)部分的消息來說可能降低同步性能,但是減少了用于同步消息與較小的不包含的模板數(shù)據(jù)部分的時(shí)間。在另一實(shí)施例中,處理可以使用具有不同先行偏移值的多于兩個(gè)的先行緩沖器。
[0050]就是否存在更多的消息類型(針對其生成模板并且針對消息類型配置先行偏移值)做出確定(決策560)。如果存在更多的消息類型,決策560分支到“是”分支,其循環(huán)回去以選擇和分析下一個(gè)消息類型。該循環(huán)繼續(xù),直到處理已經(jīng)生成模板并且已經(jīng)針對每個(gè)消息類型配置對應(yīng)先行偏移值,此時(shí)決策560分支到“否”分支,于是處理結(jié)束于570。
[0051]圖6是示出基于參考模板編碼數(shù)據(jù)流所采取的步驟的一個(gè)示例的流程圖。處理開始于600,于是處理接收數(shù)據(jù)流上的消息,并且在602處標(biāo)識(shí)消息的消息類型(例如,消息類型A、消息類型B等)。在605處,處理選擇對應(yīng)于標(biāo)識(shí)的消息類型的參考模板并且設(shè)置對應(yīng)于消息類型的先行緩沖器偏移。基于指針的對應(yīng)指針信息,處理還將模板數(shù)據(jù)塊加載到鎖步緩沖器和先行緩沖器中。在一個(gè)實(shí)施例中,處理通過計(jì)算機(jī)網(wǎng)絡(luò)發(fā)送消息類型標(biāo)識(shí)符,所以接收解碼器可以加載對應(yīng)于消息類型的參考模板,為解碼做準(zhǔn)備(對于進(jìn)一步的細(xì)節(jié),見圖7和對應(yīng)正文)。
[0052]在步驟610處,處理接收數(shù)據(jù)流消息中的第一數(shù)據(jù)塊并且比較數(shù)據(jù)流數(shù)據(jù)塊與加載在鎖步緩沖器(鎖步緩沖器112)中的模板值。就數(shù)據(jù)流數(shù)據(jù)是否匹配鎖步緩沖器值做出確定(決策615)。如果匹配存在,決策615分支到“是”分支,于是處理編碼由鎖步緩沖器的指針指向的模板數(shù)據(jù)塊位置620。同樣,在接收系統(tǒng)的解碼器解碼編碼的模板數(shù)據(jù)塊位置時(shí),解碼器從模板數(shù)據(jù)塊位置檢索對應(yīng)數(shù)據(jù)塊(對于進(jìn)一步的細(xì)節(jié),見圖7和對應(yīng)正文)。
[0053]就數(shù)據(jù)流消息中是否存在更多的數(shù)據(jù)塊做出確定(決策625)。如果數(shù)據(jù)流消息中存在更多的數(shù)據(jù)塊,決策625分支到“是”分支,于是處理使所有緩沖器指針(鎖步指針122以及先行指針124和126)前進(jìn),并且取樣數(shù)據(jù)流中的下一個(gè)數(shù)據(jù)流數(shù)據(jù)塊¢30)。另一方面,如果數(shù)據(jù)流消息中不存在更多的數(shù)據(jù)塊,決策625分支到“否”分支,于是就數(shù)據(jù)流上是否存在更多的數(shù)據(jù)流消息做出確定(決策628)。如果存在更多的數(shù)據(jù)流消息,決策628分支到“是”分支,其循環(huán)回去以接收下一個(gè)數(shù)據(jù)流消息,加載對應(yīng)參考模板以及加載對應(yīng)先行緩沖器偏移值。另一方面,如果數(shù)據(jù)流已經(jīng)結(jié)束,決策628分支到“否”分支,于是處理結(jié)束于629。
[0054]回來參照決策615,在數(shù)據(jù)流數(shù)據(jù)與鎖步緩沖器值之間不發(fā)生匹配時(shí),決策615分支到“否”分支,于是在640處處理編碼數(shù)據(jù)流數(shù)據(jù)塊。在645處,處理凍結(jié)先行緩沖器(指針),從而維持當(dāng)前加載的模板數(shù)據(jù)塊值。
[0055]在650處,處理使鎖步緩沖器(緩沖器112)前進(jìn)并且取樣下一個(gè)數(shù)據(jù)流數(shù)據(jù)塊。在655處,處理比較先行緩沖器值與取樣的數(shù)據(jù)流數(shù)據(jù)塊。在一個(gè)實(shí)施例中,處理從輸入流接收η字節(jié)的數(shù)據(jù),并且緩沖器各自包含2η字節(jié)的模板數(shù)據(jù)。在該實(shí)施例中,緩沖器中的比較需要“η+1”個(gè)比較,使得比較各自比較模板數(shù)據(jù)與緩沖器中不同的連續(xù)的η個(gè)字節(jié)。例如,如果η = 8,處理比較輸入數(shù)據(jù)的字節(jié)O至7與緩沖器的字節(jié)O至7,然后緩沖器的字節(jié)I至8,然后字節(jié)2至9等。
[0056]就是否包含在一個(gè)緩沖器(鎖步或先行)中的一個(gè)數(shù)據(jù)塊匹配取樣的數(shù)據(jù)流數(shù)據(jù)塊做出確定(緩沖器命中,決策660)。如果不存在緩沖器命中,決策660分支到“否”分支,于是在665處,處理編碼輸入流值。在步驟650處,處理取樣下一個(gè)數(shù)據(jù)流數(shù)據(jù)塊并且使鎖步緩沖器指針前進(jìn)(在繼續(xù)凍結(jié)先行緩沖器指針的同時(shí))。
[0057]回來參照決策660,在取樣的輸入流值匹配一個(gè)先行緩沖器值時(shí),決策660分支到“是”分支,于是在670處,處理編碼匹配的先行緩沖器指針的信息(位置和匹配字節(jié)的數(shù)目)。在一個(gè)實(shí)施例中,緩沖器可以是“2η”字節(jié),其中“η”是在輸入流中取樣的字節(jié)的數(shù)目。在該實(shí)施例中,處理增量式地檢查輸入字節(jié)的η位與緩沖器中的2η字節(jié)。例如,模板緩沖器可以含有模板的字節(jié)48至63 (16字節(jié)),并且輸入寬度是8字節(jié)。在該示例中,處理比較字節(jié)48至55與輸入樣本,然后字節(jié)49至56,然后字節(jié)50至57等。在該示例中,如果在字節(jié)50至57處發(fā)生匹配,處理編碼指針位置“50” (以及諸如匹配字節(jié)的數(shù)目之類的其它相關(guān)的指針信息)。
[0058]在685處,通過將鎖步緩沖器的指針信息更新成對應(yīng)于匹配的先行緩沖器的指針的指針信息,處理重新同步鎖步緩沖器與數(shù)據(jù)流。在690處,處理解凍先行緩沖器,并且使先行緩沖器從鎖步緩沖器前進(jìn)到預(yù)定義的先行偏移值,以開始取樣數(shù)據(jù)流。在一個(gè)實(shí)施例中,處理可以等待以重新同步鎖步緩沖器,直到檢測到先行緩沖器與數(shù)據(jù)流之間的多個(gè)連續(xù)匹配,以便避免過早的同步。處理然后行進(jìn)以確定是否更多數(shù)據(jù)塊和/或消息包含在數(shù)據(jù)流中(決策625和628),并且如上面所討論的,處理數(shù)據(jù)塊和/或更多的消息。
[0059]圖7是示出由數(shù)據(jù)流解碼器采取以解碼編碼的差分?jǐn)?shù)據(jù)流的步驟的示例的流程圖。處理開始于700,于是在710處,處理接收第一消息類型標(biāo)識(shí)符和編碼的消息。在一個(gè)實(shí)施例中,數(shù)據(jù)流在數(shù)據(jù)頭中包含消息類型標(biāo)識(shí)符,該消息類型標(biāo)識(shí)符指示正接收的編碼消息的類型。在720處,處理選擇對應(yīng)于接收的消息類型標(biāo)識(shí)符(例如,消息類型Α)的參考模板。
[0060]在725處,處理解碼第一數(shù)據(jù)塊,并且就解碼的數(shù)據(jù)塊是否包含對應(yīng)于模板數(shù)據(jù)塊位置的指針信息做出確定(決策730)。如果解碼的數(shù)據(jù)塊包含指針信息,決策730分支至IJ “是”分支,于是處理從模板180中對應(yīng)模板數(shù)據(jù)塊位置處檢索數(shù)據(jù)塊,并且發(fā)送檢索的數(shù)據(jù)塊給后處理(740)。
[0061]另一方面,如果解碼的數(shù)據(jù)塊不是對應(yīng)于模板數(shù)據(jù)塊位置的指針信息,而是實(shí)際的數(shù)據(jù)流數(shù)據(jù),決策730分支到“否”分支,于是處理發(fā)送解碼的數(shù)據(jù)流數(shù)據(jù)給后處理(760)。就處理是否已經(jīng)到達(dá)接收的消息的結(jié)尾做出確定(決策770)。如果還沒有到達(dá)消息的結(jié)尾,決策770分支到“否”分支,于是處理循環(huán)回去以解碼消息中的下一個(gè)數(shù)據(jù)塊。該循環(huán)繼續(xù),直到消息已經(jīng)被處理完,此時(shí)決策770分支到“是”分支,于是就編碼的數(shù)據(jù)流中是否存在更多的消息要處理做出確定(決策780)。如果存在更多的消息要處理,決策780分支到“是”分支,其循環(huán)回去以接收下一個(gè)消息并且基于下一個(gè)消息類型檢索參考模板。該循環(huán)繼續(xù),直到數(shù)據(jù)流結(jié)束,此時(shí)決策780分支到“否”分支,于是處理結(jié)束于790。
[0062]圖8圖示了信息處理系統(tǒng)800,其是有執(zhí)行本文中所描述的計(jì)算操作能力的計(jì)算機(jī)系統(tǒng)的簡化示例。信息處理系統(tǒng)800包含耦合到處理器接口總線812的一個(gè)或多個(gè)處理器810。處理器接口總線812將處理器810連接到北橋(Northbridge) 815,其還被稱為存儲(chǔ)器控制器中樞(MCH)。北橋815連接到系統(tǒng)存儲(chǔ)器820,并且提供用于處理器(或多個(gè)處理器)810訪問系統(tǒng)存儲(chǔ)器的裝置。圖形控制器825也連接到北橋815。在一個(gè)實(shí)施例中,PCI Express總線818將北橋815連接到圖形控制器825。圖形控制器825連接到諸如計(jì)算機(jī)監(jiān)控器之類的顯示設(shè)備830。
[0063]北橋815和南橋(Southbridge)835使用總線819連接到彼此。在一個(gè)實(shí)施例中,總線是在北橋815與南橋835之間的每個(gè)方向中高速傳遞數(shù)據(jù)的直接媒體接口(DMI)總線。在另一實(shí)施例中,外圍部件互連(PCI)總線連接北橋和南橋。南橋835(還被稱為I/O控制器中樞(ICH))是通常實(shí)現(xiàn)在比由北橋提供的性能更慢的速度下操作的性能的芯片。南橋835通常提供用于連接各種部件的各種總線。這些總線包含例如PCI和PCI Express總線、ISA總線、系統(tǒng)管理總線(SMBus或SMB)和/或低引腳數(shù)(LPC)總線。LPC總線常常連接諸如引導(dǎo)ROM 896和“舊有”1/0設(shè)備(使用“超級(jí)I/O”芯片)之類的低帶寬設(shè)備?!芭f有”1/0設(shè)備(898)可以包含例如串行和并行端口、鍵盤、鼠標(biāo)和/或軟盤控制器。LPC總線還將南橋835連接到受信任的平臺(tái)模塊(TPM)895。常常包含在南橋835中的其它部件包含直接存儲(chǔ)器存取(DMA)控制器、可編程中斷控制器(PIC)以及使用總線884將南橋835連接到諸如硬盤驅(qū)動(dòng)器之類的非易失性存儲(chǔ)設(shè)備885的存儲(chǔ)設(shè)備控制器。
[0064]快速卡(ExpressCard)855是將熱插拔設(shè)備連接到信息處理系統(tǒng)的插槽??焖倏?55支持PCI Express和USB連接兩者,因?yàn)樗褂猛ㄓ么锌偩€(USB)和PCI Express總線兩者連接到南橋835。南橋835包含提供USB連接給連接到USB的設(shè)備的USB控制器840。這些設(shè)備包含攝像頭(相機(jī))850、紅外(IR)接收器848、鍵盤和觸控板844以及提供無線個(gè)人區(qū)域網(wǎng)絡(luò)(PAN)的藍(lán)牙設(shè)備846。USB控制器840還提供USB連接給其它雜項(xiàng)USB連接的設(shè)備842,諸如鼠標(biāo)、可移除的非易失性存儲(chǔ)設(shè)備845、調(diào)制解調(diào)器、網(wǎng)卡、ISDN連接器、傳真機(jī)、打印機(jī)、USB集線器和許多其它類型的USB連接的設(shè)備。雖然可移除的非易失性存儲(chǔ)設(shè)備845被示出為USB連接的設(shè)備,可移除的非易失性存儲(chǔ)設(shè)備845也可以使用諸如火線接口等等之類的不同接口來連接。
[0065]無線局域網(wǎng)(LAN)設(shè)備875經(jīng)由PCI或PCI Express總線872連接到南橋835。LAN設(shè)備875通常實(shí)現(xiàn)所有使用相同協(xié)議以在信息處理系統(tǒng)800與另一計(jì)算機(jī)系統(tǒng)或設(shè)備之間進(jìn)行無線通信的空中調(diào)制技術(shù)的IEEE 802.11標(biāo)準(zhǔn)之一。光學(xué)存儲(chǔ)設(shè)備890使用串行ATA(SATA)總線888連接到南橋835。串行ATA適配器和設(shè)備在高速串行鏈路之上進(jìn)行通信。串行ATA總線還將南橋835連接到諸如硬盤驅(qū)動(dòng)器之類的其它形式的存儲(chǔ)設(shè)備。諸如聲卡之類的音頻電路裝置860經(jīng)由總線858連接到南橋835。音頻電路裝置860還提供諸如音頻輸入和光學(xué)數(shù)字音頻輸入端口 862、光學(xué)數(shù)字輸出和耳機(jī)插孔864、內(nèi)部揚(yáng)聲器866和內(nèi)部麥克風(fēng)868之類的功能。以太網(wǎng)控制器870使用諸如PCI或PCI Express總線之類的總線連接到南橋835。以太網(wǎng)控制器870將信息處理系統(tǒng)800連接到諸如局域網(wǎng)(LAN)、因特網(wǎng)和其它公共和私人計(jì)算機(jī)網(wǎng)絡(luò)之類的計(jì)算機(jī)網(wǎng)絡(luò)。
[0066]雖然圖8示出了一種信息處理系統(tǒng),信息處理系統(tǒng)可以采取許多形式。例如,信息處理系統(tǒng)可以采取臺(tái)式、服務(wù)器、便攜式、膝上型、筆記本或其它形狀因子的計(jì)算機(jī)或數(shù)據(jù)處理系統(tǒng)的形式。此外,信息處理系統(tǒng)可以采取諸如個(gè)人數(shù)字助理(PDA)、游戲設(shè)備、ATM機(jī)、便攜式電話設(shè)備、通信設(shè)備或者包含處理器和存儲(chǔ)器的其它設(shè)備之類的其它形狀因子。
[0067]在圖8中示出和在本文中所描述的、用于提供安全功能的受信任的平臺(tái)模塊(TPM895)只是硬件安全模塊(HSM)的一個(gè)示例。因此,本文中所描述和要求的TPM包含任何類型的HSM,包括(但不限于)符合題為“受信任的平臺(tái)模塊(TPM)規(guī)范版本1.2”的受信任的計(jì)算組(TCG)標(biāo)準(zhǔn)的硬件安全設(shè)備。TPM是硬件安全子系統(tǒng),其可以被并入到任何數(shù)目的信息處理系統(tǒng)(諸如在圖9中概述的那些)中。
[0068]圖9提供了對圖8中示出的信息處理系統(tǒng)環(huán)境的擴(kuò)展,以說明本文中所描述的方法可以在其在網(wǎng)絡(luò)環(huán)境中操作的種類廣泛的信息處理系統(tǒng)上來執(zhí)行。信息處理系統(tǒng)的類型范圍從諸如手持計(jì)算機(jī)/移動(dòng)電話910之類的小型手持設(shè)備到諸如主機(jī)計(jì)算機(jī)970之類的大型主機(jī)系統(tǒng)。手持計(jì)算機(jī)910的示例包含個(gè)人數(shù)字助理(PDA)、諸如MP3播放器之類的個(gè)人娛樂設(shè)備、便攜式電視和緊縮盤播放器。信息處理系統(tǒng)的其它示例包含筆輸入或平板電腦920、膝上型或筆記本電腦930、工作站940、個(gè)人計(jì)算機(jī)系統(tǒng)950和服務(wù)器960。在圖9中未單獨(dú)示出的其它類型的信息處理系統(tǒng)由信息處理系統(tǒng)980表示。如示出的,各種信息處理系統(tǒng)可以使用計(jì)算機(jī)網(wǎng)絡(luò)900被聯(lián)網(wǎng)在一起。可以用于互連各種信息處理系統(tǒng)的計(jì)算機(jī)網(wǎng)絡(luò)的類型包含局域網(wǎng)(LAN)、無線局域網(wǎng)(WLAN)、因特網(wǎng)、公共交換電話網(wǎng)(PSTN)、其它無線網(wǎng)絡(luò)以及可以用于互連信息處理系統(tǒng)的任何其它網(wǎng)絡(luò)拓?fù)?。許多信息處理系統(tǒng)包含諸如硬盤驅(qū)動(dòng)器和/或非易失性存儲(chǔ)器之類的非易失性數(shù)據(jù)存儲(chǔ)。圖9中示出的一些信息處理系統(tǒng)描繪了單獨(dú)的非易失性數(shù)據(jù)存儲(chǔ)(服務(wù)器960利用非易失性數(shù)據(jù)存儲(chǔ)965,主機(jī)計(jì)算機(jī)970利用非易失性數(shù)據(jù)存儲(chǔ)975,并且信息處理系統(tǒng)980利用非易失性數(shù)據(jù)存儲(chǔ)985)。非易失性數(shù)據(jù)存儲(chǔ)可以是在各種信息處理系統(tǒng)外部的部件或者可以是在一個(gè)信息處理系統(tǒng)內(nèi)部的部件。此外,通過使用諸如將可移除的非易失性存儲(chǔ)設(shè)備845連接到USB端口或者信息處理系統(tǒng)的其它連接器之類的各種技術(shù),可移除的非易失性存儲(chǔ)設(shè)備845可以在兩個(gè)或多個(gè)信息處理系統(tǒng)之間共享。
[0069]雖然已經(jīng)示出和描述了本發(fā)明的特定實(shí)施例,基于本文中的教導(dǎo),對于本領(lǐng)域技術(shù)人員將是明顯的是,在不脫離該發(fā)明及其更廣泛方面的情況下可以做出改變和修改。因此,所附權(quán)利要求要在它們的范圍內(nèi)包含所有這些改變和修改,如在該發(fā)明的真實(shí)精神和范圍內(nèi)。此外,要理解的是,本發(fā)明僅由所附權(quán)利要求限定。將由本領(lǐng)域技術(shù)人員理解的是,如果旨在具體數(shù)目的引入的權(quán)利要求元件,這種意圖將在權(quán)利要求中明確記載,并且在缺乏這樣的記載的情況下,沒有這樣的限制被給出。對于作為對理解的幫助的非限制性示例,以下所附權(quán)利要求含有引入短語“至少一個(gè)”和“一個(gè)或多個(gè)”的用法,以引入權(quán)利要求元件。然而,這些短語的使用不應(yīng)當(dāng)被解釋成暗示,權(quán)利要求元件通過不定冠詞“一”或“一個(gè)”的引入將含有這些引入的權(quán)利要求元件的任何特定的權(quán)利要求限制于僅僅含有一個(gè)這樣的元件的公開內(nèi)容,即使在相同的權(quán)利要求包含引入短語“一個(gè)或多個(gè)”或“至少一個(gè)”以及諸如“一”或“一個(gè)”之類的不定冠詞時(shí);類似情況同樣適用于權(quán)利要求中對定冠詞的使用。
【權(quán)利要求】
1.一種將參考模板同步到數(shù)據(jù)流的方法,所述方法包括: 由一個(gè)或多個(gè)處理器給第一緩沖器加載第一數(shù)據(jù)塊并且給第二緩沖器加載第二數(shù)據(jù)塊,所述第一數(shù)據(jù)塊和所述第二數(shù)據(jù)塊從參考模板中被檢索; 響應(yīng)于確定所述第一數(shù)據(jù)塊不同于包含在數(shù)據(jù)流中的數(shù)據(jù)流數(shù)據(jù)塊,由所述一個(gè)或多個(gè)處理器中的至少一個(gè)處理器保存所述第二緩沖器中的所述第二數(shù)據(jù)塊;以及 響應(yīng)于確定保存的所述第二數(shù)據(jù)塊與包含在所述數(shù)據(jù)流中的隨后的數(shù)據(jù)流數(shù)據(jù)塊相匹配,由所述一個(gè)或多個(gè)處理器中的至少一個(gè)處理器將所述參考模板同步到所述數(shù)據(jù)流。
2.根據(jù)權(quán)利要求1所述的方法,其中所述同步包含基于對應(yīng)于所述第二緩沖器的先行指針位置更新對應(yīng)于所述第一緩沖器的鎖步指針位置。
3.根據(jù)權(quán)利要求2所述的方法,進(jìn)一步包括: 響應(yīng)于所述第一數(shù)據(jù)塊不同于所述數(shù)據(jù)流數(shù)據(jù)塊的所述確定: 使所述鎖步指針位置前進(jìn);和 禁止所述先行指針位置前進(jìn)。
4.根據(jù)權(quán)利要求2所述的方法,其中在加載所述第一緩沖器和所述第二緩沖器之前,所述方法進(jìn)一步包括: 確定將從所述參考模板中排除的最大的潛在的模板數(shù)據(jù)部分; 基于所述最大的潛在的模板數(shù)據(jù)部分大小配置先行偏移值;以及 基于所述鎖步指針位置和所述先行偏移值設(shè)置所述先行指針位置。
5.根據(jù)權(quán)利要求4所述的方法,其中響應(yīng)于所述鎖步指針位置的更新,基于更新的所述鎖步指針位置和所述先行偏移值更新所述先行指針位置。
6.根據(jù)權(quán)利要求2所述的方法,進(jìn)一步包括: 響應(yīng)于保存的所述第二數(shù)據(jù)塊與所述隨后的數(shù)據(jù)流數(shù)據(jù)塊相匹配: 編碼包含所述先行指針位置的指針信息;和 發(fā)送編碼的所述指針信息給接收方計(jì)算機(jī)系統(tǒng)。
7.根據(jù)權(quán)利要求6所述的方法,進(jìn)一步包括: 由所述接收方計(jì)算機(jī)系統(tǒng)解碼編碼的所述指針信息;和 由所述接收方計(jì)算機(jī)系統(tǒng)根據(jù)解碼的所述指針信息從接收方參考模板中檢索接收方模板數(shù)據(jù)。
8.根據(jù)權(quán)利要求1所述的方法,其中所述數(shù)據(jù)流數(shù)據(jù)塊被包含在數(shù)據(jù)流消息中,所述方法進(jìn)一步包括: 標(biāo)識(shí)對應(yīng)于所述數(shù)據(jù)流消息的消息類型;和 基于標(biāo)識(shí)的所述消息類型,從多個(gè)參考模板中選擇所述參考模板。
9.根據(jù)權(quán)利要求8所述的方法,其中所述隨后的數(shù)據(jù)流數(shù)據(jù)塊在另外的數(shù)據(jù)部分之后,所述另外的數(shù)據(jù)部分包含在所述數(shù)據(jù)流消息中并且不包含在所述參考模板中。
10.根據(jù)權(quán)利要求8所述的方法,其中所述第二數(shù)據(jù)塊在模板數(shù)據(jù)部分之后,所述模板數(shù)據(jù)部分包含在所述參考模板中并且不包含在所述數(shù)據(jù)流消息中。
11.根據(jù)權(quán)利要求1所述的方法,其中所述第二數(shù)據(jù)塊是所述數(shù)據(jù)流數(shù)據(jù)塊的兩倍寬,所述方法進(jìn)一步包括: 響應(yīng)于從所述參考模板中檢索的多個(gè)第二數(shù)據(jù)塊與包含在所述數(shù)據(jù)流中的多個(gè)隨后的數(shù)據(jù)流數(shù)據(jù)塊的匹配,執(zhí)行所述同步。
12.—種信息處理系統(tǒng),包括: 一個(gè)或多個(gè)處理器; 可訪問所述一個(gè)或多個(gè)處理器中至少一個(gè)處理器的多個(gè)緩沖器; 耦合到所述一個(gè)或多個(gè)處理器中至少一個(gè)處理器的存儲(chǔ)器; 存儲(chǔ)在所述存儲(chǔ)器中并且由所述一個(gè)或多個(gè)處理器中至少一個(gè)處理器執(zhí)行的指令組,以便執(zhí)行包括以下各項(xiàng)的動(dòng)作: 給第一緩沖器加載第一數(shù)據(jù)塊并且給第二緩沖器加載第二數(shù)據(jù)塊,其中所述第一數(shù)據(jù)塊和所述第二數(shù)據(jù)塊從參考模板中被檢索,所述第一緩沖器和所述第二緩沖器包含在所述多個(gè)緩沖器中; 響應(yīng)于確定所述第一數(shù)據(jù)塊不同于包含在數(shù)據(jù)流中的數(shù)據(jù)流數(shù)據(jù)塊,保存所述第二緩沖器中的所述第二數(shù)據(jù)塊;以及 響應(yīng)于確定保存的所述第二數(shù)據(jù)塊與包含在所述數(shù)據(jù)流中的隨后的數(shù)據(jù)流數(shù)據(jù)塊相匹配,將所述參考模板同步到所述數(shù)據(jù)流。
13.根據(jù)權(quán)利要求12所述的信息處理系統(tǒng),其中所述同步包含基于對應(yīng)于所述第二緩沖器的先行指針位置更新對應(yīng)于所述第一緩沖器的鎖步指針位置。
14.根據(jù)權(quán)利要求13所述的信息處理系統(tǒng),其中響應(yīng)于所述第一數(shù)據(jù)塊不同于所述數(shù)據(jù)流數(shù)據(jù)塊的所述確定,在由所述一個(gè)或多個(gè)處理器中至少一個(gè)處理器執(zhí)行時(shí),所述指令組執(zhí)行包括以下各項(xiàng)的進(jìn)一步的動(dòng)作: 使所述鎖步指針位置前進(jìn);和 禁止所述先行指針位置前進(jìn)。
15.根據(jù)權(quán)利要求13所述的信息處理系統(tǒng),其中在加載所述第一緩沖器和所述第二緩沖器之前,在由所述一個(gè)或多個(gè)處理器中至少一個(gè)處理器執(zhí)行時(shí),所述指令組執(zhí)行包括以下各項(xiàng)的進(jìn)一步的動(dòng)作: 確定將從所述參考模板中排除的最大的潛在的模板數(shù)據(jù)部分; 基于所述最大的潛在的模板數(shù)據(jù)部分大小配置先行偏移值;以及 基于所述鎖步指針位置和所述先行偏移值設(shè)置所述先行指針位置。
16.根據(jù)權(quán)利要求13所述的信息處理系統(tǒng),其中響應(yīng)于保存的所述第二數(shù)據(jù)塊與所述隨后的數(shù)據(jù)流數(shù)據(jù)塊相匹配,在由所述一個(gè)或多個(gè)處理器中至少一個(gè)處理器執(zhí)行時(shí),所述指令組執(zhí)行包括以下各項(xiàng)的進(jìn)一步的動(dòng)作: 編碼包含所述先行指針位置的指針信息;和 發(fā)送所述編碼的指針信息給接收方計(jì)算機(jī)系統(tǒng)。
【文檔編號(hào)】H04L1/00GK104518850SQ201410510811
【公開日】2015年4月15日 申請日期:2014年9月28日 優(yōu)先權(quán)日:2013年10月2日
【發(fā)明者】K·B·阿加瓦爾, M·A·保利尼 申請人:國際商業(yè)機(jī)器公司