TWI360047B - Method, apparatus and system of data processing - Google Patents

Method, apparatus and system of data processing Download PDF

Info

Publication number
TWI360047B
TWI360047B TW095146431A TW95146431A TWI360047B TW I360047 B TWI360047 B TW I360047B TW 095146431 A TW095146431 A TW 095146431A TW 95146431 A TW95146431 A TW 95146431A TW I360047 B TWI360047 B TW I360047B
Authority
TW
Taiwan
Prior art keywords
data
processor
register
crc
xor
Prior art date
Application number
TW095146431A
Other languages
English (en)
Other versions
TW200809488A (en
Inventor
Steven R King
Frank Berry
Michael E Kounavis
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 TW200809488A publication Critical patent/TW200809488A/zh
Application granted granted Critical
Publication of TWI360047B publication Critical patent/TWI360047B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/093CRC update after modification of the information word
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/095Error detection codes other than CRC and single parity bit codes
    • H03M13/096Checksums
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/157Polynomial evaluation, i.e. determination of a polynomial sum at a given value

Description

1360047 (1) 九、發明說明 【發明所屬之技術領域】 本發明之實施例有關於資料處理,詳言之,判斷如冗 餘循環檢查(CRC)之檢查和。 【先前技術】 於資料處理系統中’希望能準確地接收在第一位置與 第二位置間傳送之資料,使得在第二位置對那個資料執行 之額外的處理亦可爲準確。此外,爲了能偵測資料傳輸中 的錯誤,經常將資料封包附加檢查和來傳送。例如,可藉 由傳送來源產生CRC和並且將之附加至將被傳送的資 料。此檢查和,其可根據許多不同的演算法之一來計算, 可接著與由接收端從已接收的資料產生之類似的檢查和做 比較。若這兩檢査和一樣,所傳送的資料爲正確。然而, 若產生的檢查和與傳送的檢查和不同,則表示有錯誤。此 種檢查和廣泛地用於網路技術中來偵測傳輸錯誤。 於不同的應用中,有實施CRC資訊之不同的方式。 例如,可於硬體或軟體中執行CRC計算。欲於硬體中實 行CRC計算,典型地在系統中設有專用的硬體引擎來執 行此CRC計算。因此,將受到此種CRC計算的資料係發 送至硬體引擎以計算CRC,接著將CRC附加至資料,例 如以供從系統傳送。使用此種卸载引擎存有各種的缺點, 包含發送資料至引擎的負擔(overhead )。此外,難以執 行無狀態硬體卸载。亦即,典型地亦需要傳送額外的基於 -5- (2)
« I 1360047 參. 狀態之負擔資料,增加複雜度並減慢有用工作的進度。 由於許多系統缺少卸載引擎,CRC計算常在軟體中執 行。欲在軟體中實行CRC計算,典型會使用查詢表的方 法。然而,此種CRC値的軟體計算係非常的慢且運算密 集的操作。另外,查詢表之記憶體需求量(footprint )可 能很大,影響效能。因此,這些慢的計算會惡化網路效 能,並且進一步消耗處理資源。例如,每位元組的資料會 ^ 花費5至15個週期來執行CRC計算。因此,軟體CRC效 能對於高速網路中的一般使用太過緩慢。 【發明內容及實施方式】 於各種實施例中,可使用指令集架構(ISA)延伸來 運算檢查和値而實現檢查和操作。詳言之,可於ISA中提 供使用者等級指令,以使程式設計師透過該指令直接於一 般目的處理器(如中央處理器(CPU ))中執行希望的如 φ CRC操作的檢查和操作。CRC操作可爲32位元的CRC操 作(亦即產生32位元的連續餘數(running remainder)之 CRC32操作,容後詳述),以及在不同的實施例中,例如 可對應至電機電子工程師學會(IEEE) 802_3乙太網路協 定(2001年發表)或其他協定中使用的CRC。 在不同的實行例中,可提供各種運算碼指令以對不同 資料群組執行CRC運算。例如,於一些實施例中,使用 不同的運算碼CRC運算可支援8、16、32、及64位元的 群組,雖然本發明並不如此受限。依此方式,無須查詢表 -6- (3) 1360047 φ 或類似者即可在硬體中快速執行CRC計算。此外,可使 用一般且架構上可見之處理器暫存器透過根據不同運算碼 執行的整數操作來執行運算。因此,CRC可在處理器中運 算而無須諸如網路卸載硬體之卸載硬體之負擔與複雜。 故,可發生較大數量的資料傳輸(如以每秒的輸入/輸出 (I/O )來說)。注意到在此主要描述關於CRC操作,本 發明之實施例可用來執行其他檢查和操作。 I 茲參照第1圖,其顯示根據本發明之一實施例的方法 之流程圖。方法100可用來使用實行於處理器的硬體(如 CPU的執行單元)上之使用者等級指令來獲得檢查和。如 第1圖所示,方法100 —開始係對來源與目的地暫存器中 的資料執行一系列的互斥或(XOR)操作(區塊110)。 注意到XOR操作可對應至多項式算術操作,詳言之,多 項式除法操作。來源暫存器中的資料可對應至,例如,存 在於處理器管線中並已由處理器接收或將從處理器傳送的 φ 資料。例如,緩衝器中的一群組的資料對應至希望提供至 來源暫存器之群組大小(如1 6位元、3 2位元等等),該 來源暫存器可爲處理器的一般目的之暫存器。替代地,於· 一些實施例中,可從記憶體獲得來源資料。目的地暫存器 可對應至從XOR操作獲得之連續餘數之儲存位置。目的 地暫存器亦可爲處理器的一般目的之暫存器。 於各種的實施例中,可在處理管線內的專用硬體中執 行XOR操作。例如,處理器的執行單元,如可以電路擴 張整數執行單元以實行一系列的XOR操作。例如,此電 (4) 1360047 路可對應至XOR樹,以用希望的多項式來處置多項 法。於各種的實施例中,用於X OR操作中的多項式 硬線連接至x〇R樹的邏輯閘中。此外,xor樹可組 透過XOR操作實施希望的預先處理或後處理,如位 射以及類似者。此外,XOR樹邏輯可包含多個部份, 態成處置對於不同資料大小的操作。 仍參照第1圖’來自XOR操作之對應至連續餘 結果可儲存於目的地暫存器中(區塊120)。注意到 系統初始化可將目的地暫存器設定成預定値,如所有 所有零、或另些此種的値。接著在檢查和操作的執 間,持續以目前的檢查和操作之結果更新此連續餘數 言之,由目前之檢查和操作實行的多項式除法的餘數 存在目的地暫存器中。 接著,可判斷是否有額外的來源資料存在( 130 )。例如,於一些實施例中,緩衝器可包含系統 收的資料並且即將進行檢査和驗證。可將資料成塊地 來源暫存器以進行檢查和操作。因此,於菱形130中 斷額外的資料是否存在於此緩衝器中。若是,下一個 塊可提供至來源暫存器,並將控制傳回如上述之 1 1 0 〇 若相反地在菱形1 3 〇判斷沒有額外的來源資料存 將控制傳給區塊1 40。在該處,檢查和操作的結果可 作爲儲存在目的地暫存器中的目前値(如連續餘數) 塊140)。如上述,可以許多不同的方式使用此檢 式除 可爲 態成 元反 各組 數的 —旦 1 、 行期 。詳 可儲 菱形 已接 饋送 可判 資料 區塊 在, 提供 (區 查和 (5) 1360047 値。例如,在已接收的資料之情況中,運算出來的檢查和 與接收到的檢査和做比較,以證實準確地接收資料。在傳 輸的情況中,檢查和可附加至將傳送的資料以便在接收端 驗證該資料。當然亦可發生其他檢查和的用途,如用於散 列函數或依照僞隨機編號方法之號碼的產生。 實行根據本發明之一實施例的檢査和操作的處理器可 依照希望的架構而有許多不同的形式。茲參照第2圖,其 g 顯示根據本發明之一實施例的處理器之方塊圖。如第2圖 中所示,處理器200包含資料路徑205。資料路徑205可 由包含暫存器頻疊表(RAT ) 2 70的前端控制級所控制, 暫存器頻疊表(RAT) 2 70接收來自處理器前端(未於第 2圖中顯示)之經解碼的指令。RAT 270可用來自前端接 收微操作(μ ops )並替資料路徑的資源重新命名這些微 操作。在資料路徑2 05中,重新命名過的微操作可接著提 供至記錄器緩衝器(ROB) 250。ROB 250可作爲儲存微 φ 操作及對應的來源運算元之暫存器檔,直到微操作準備好 被傳送至保留站(RS) 230。同樣地,ROB 250亦可儲存 已經執行過之微操作的對應結果。這些結果將保持於ROB 2 5 0中直到微操作退休爲止(此時該rob項目會被釋 放)。 保留站230可用來儲存微操作直到其對應的來源運算 元存在及/或直到微操作準備好在資料路徑205的執行單 元之一中執行爲止。保留站230可包含複數個分派埠,以 將指令與資料耦接至資料路徑205的執行單元之選定者》 1360047 .. (6) 於一些實施例中,每一個週期中可使用多個分派埠。 曹 如第2圖中所示,資料路徑205中的執行單元包含位 址產生單元(AGU) 220、整數(INT)執行單元2 22、儲 存資料(STD)單元224、浮點(FP )執行單元226、及 單一指令多資料(SIMD )執行單元228。如第2圖中所 示,整數執行單元222進一步包含邏輯221。邏輯221可 包含一或更多硬體引擎,以執行根據本發明之一實施例的 ^ 檢查和操作。詳言之,邏輯221可包含複數個互斥或 (XOR )邏輯樹,以實行多項式算術及相關的資料運用。 於各種實施例中,邏輯22 1可包含不同的硬體引擎,以對 不同大小的資料塊實行CRC操作。例如,ISA的複數個使 用者等級指令可界定針對特定資料大小的CRC操作。於 一些實施例中,邏輯22 1可包含對應數量的個別硬體引 擎,亦在此稱爲XOR樹,以實現這些的不同CRC操作。 雖未顯示於第2圖中,額外或不同的執行單元可存在 φ 於不同的實施例中。在執行完執行單元之一中的微操作 後,結果資料可傳回RS 230以及ROB 250供儲存,例如 直到退休爲止。因此,於一實施例中,執行CRC操作的 來源與資料暫存器可位在RS 230或ROB 250中。雖未顯 示於第 2圖中,應可了解到諸如記憶體順序緩衝器 (MOB )的額外緩衝器及其他資源可存在於處理器200 內。 應可進一步了解第2圖中顯示的圖畫僅爲了方便說 明,並且於各種實施例中,許多更多的級或不同命名的級 -10- (7) 1360047 可存在於給定的處理器中。例如,回寫級可耦接至執行單 元以接收結果資料,以供後續遞送至一記億體階級。替代 地,如儲存緩衝器、載入緩衝器、及類似者之一或更多其 他的緩衝器可耦接至RS 230。例如,一或更多退休緩衝器 可耦接至RS 230,以儲存微操作及關聯的結果資料直到關 聯的指令退休爲止。 當然,可能有其他的實行例。茲參照第3圖,其顯示 | 根據本發明之一實施例的執行檢查和操作的處理器之一部 分的方塊圖。如第3圖中所示,顯示處理器3 00的一部 份。詳言之,處理器300包含XOR樹310、第一暫存器 320'及第二暫存器330,其所有可爲處理器管線的一部 分。於各種實施例中可不同地組態XOR樹3 1 0。例如,可 在第一層級中使用3輸入之XOR閘,其之輸出耦接至第 二層級之類似的XOR閘以及依此類推來實施XOR樹 310。於此一實施例中,各XOR樹的層級可爲上一層的三 ^ 分之一大。當然,亦可能有其他組態。 進一步如第3圖中所示,處理器3 00包含緩衝器 34〇’其亦可在處理器管線中(如作爲緩衝器、佇列、或 類似者)。替代地,緩衝器340可爲與處理器300關連的 快取記憶體。於第3圖的實施例中,第一暫存器32〇可對 應至來源暫存器’同時第二暫存器330可對應至目的地暫 存器。於各種實施例中,這些暫存器可爲處理器3 00內的 一般暫存器。當然,處理器300可包含許多其他暫存器、 邏輯、功能單元、及類似者,以及顯示於第3圖中的部分 -11 - 1360047 C8) 係爲方便說明。 如第3圖中所示,欲執行根據本發明之一實施例的檢 查和,至少第一暫存器3 20的第一部份’連同第二暫存器 330的一部份,提供至XOR樹310。於第3圖中所示的實 施例中,其描繪8位元CRC累積,從第一暫存器320提 供單一位元組資料(B〇 )至XOR樹310,同時第二暫存器 3 3 0的4位元組部分提供至XOR樹310。此4位元組部分 可對應至CRC32操作的連續餘數。使用此資料,XOR樹 3 10可透過XOR操作執行資料運用以產生包含一餘數部分 的結果。此餘數部分可爲儲存回第二暫存器330中的連續 餘數,如第3圖中所示。按照此方式,可以最小週期時間 以及使用最小處理器資源有效地執行CRC操作。於第3 圖之實施例中,針對8位元之累積操作,可遞增式地提供 第一暫存器320的額外部分至XOR樹310,連同第二暫存 器330目前的內容(亦即32位元的連續餘數)。因此, 欲獲得第一暫存器3 20中之64位元的資料之CRC檢查 和,可執行八次XOR樹310中的XOR操作迭代,各使用 來自第一暫存器3 20的單一位元組資料,連同第二暫存器 330中之目前的連續餘數。若緩衝器中有待經由檢查和來 驗證之額外資料的存在,則該額外資料可載入第一暫存器 320,以便接著於x〇R樹310中處理。 注意到處置不同位元寬度之CRC計算可有不同的硬 體。因此,參照回第2圖,邏輯221可包含不同的XOR 樹結構,以處置此類CRC計算。茲參照第4圖,其顯示 -12- 1360047 ·. (9) 根據本發明之一實施例的處理器之另一部分的方塊圖。如 第4圖中所示,處理器300包含不同的XOR樹410 (如第 3圖之XOR樹310以外者),其耦接以從第一暫存器32〇 與第二暫存器330接收資料。進一步如第4圖中所示,有 緩衝器340並且其用來提供CRC運算的資料。注意到於 第4圖中,XOR樹410係組態成處置64位元的CRC累 積。因此,第一暫存器320的全部內容(亦即位元組B〇-φ B7)可一次耦接至XOR樹410,以供在XOR操作中與第 二暫存器330的資料運用。結果資料,其之對應至連續餘 數之希望的部份,係儲存回第二暫存器330中。雖藉由第 3及4圖中之這些特定實行例作描述,應了解到本發明的 範疇不如此受限,以及於其他實施例中,可有執行CRC 操作之不同的硬體組態。 茲參照下列表1,其顯示用以支援根據本發明之各種 實施例的CRC操作之指令集架構(ISA )的範例指令列 φ 表。如表1所示,每一個指令,其可由運算碼參照,使用 來源暫存器與目的地暫存器來執行一 CRC32操作。如所 示,可有不同的風格,其中每一個指令對給定大小的目的 地運算元與來源運算元執行CRC操作。因此,參照表1 的第一行,此指令係用於對8位元的來源運算元與32位 元的目的地運算元執行CRC32操作。類似地,表1的第 二行係用於對16位元的來源運算元與32位元的目的地運 算元執行CRC32操作。以類似的方式,表1的第3行係 用於對32位元的來源運算元與32位元的目的地運算元執 -13- 1360047 • · (ίο) 行CRC32操作。 由於前三個指令以3 2位元的最大資料塊執行,注意 到這些指令亦適用64位元的操作模式以及傳統的(亦即 32位元)操作模式。相反地,表1的第四及五行表示對8 位元以及64位元的運算元執行CRC操作,且分別連同64 位元的目的地運算元。因此,這最後兩個指令僅能在64 位元的操作模式中執行。
表1 運算碼 指令 描述 碼2 CRC32,r32,r/m8 在r/m8上累積CRC32 碼1 CRC32,r32,r/ml6 在r/ml6上累積CRC32 碼1 CRC32,r32,r/m32 在r/m32上累積CRC32 碼2 CRC32,r64,r/m8 在r/m8上累積CRC32 碼1 CRC32,r64,r/m64 在r/m64上累積CRC32 於各種實施例中,這些使用者等級指令可由程式設計 師使用,例如,作爲用以實施根據第1圖之流程圖的CRC 操作的固有軟體套件(Intrinsics)。 —般而言,使用者等級CRC指令可以下列方式實 行。於第一運算元中之初始値(亦即目的地運算元)作爲 開始,可累積第二運算元的CRC3 2値(亦即來源運算 元),並且將結果儲存回目的地運算元中。於不同的實行 例中,來源運算元可爲暫存器或記憶體位置。目的地運算 元可爲32或64位元的暫存器。若目的地爲64位元的暫 存器,則3 2位元的結果可儲存在暫存器的最小有效位元 -14- 32 (11) 1360047 . 雙字中’並且OOOOOOOH儲存於最大有效雙字中。 注意到提供於目的地運算元中的初始値可爲儲存於 位元暫存器的雙字整數,或64位元暫存器的最小有效 字。欲遞增式累積CRC32値,軟體保留上一個CRC操 的結果於目的地運算元中,並接著以來源運算元中的新 輸入資料執行CRC操作。因此,各指令取得第一運算 中的連續CRC値,並依照第二運算元更新CRC値。依 φ 此方式’可在任何希望的資料量上產生CRC,藉由以迴 執行操作直到所有希望的資料都經歷過CRC操作。 於一些實行例中’包含在來源運算元中的資料係以 射位元的順序處理。這意指來源運算元的最大有效位元 看作商數的最小有效位元,以及針對來源運算元之所有 元依此類似。同樣地,可以反射位元的順序儲存CRC 作的結果於目的地暫存器中。這意指將所得之CRC的 大有效位元(亦即位元31)儲存於目的地暫存器的最小 φ 效位元中(亦即位元0 ),以及針對c R c之所有位元依 類似。 雖可實現這些使用者等級指令的不同實行方式,表 6顯示針對表1的各使用者等級指令之硬體實行例之範 僞碼表現。 雙 作 的 元 照 路 反 被 位 操 最 有 此 2- 例 -15- (12)1360047
____針對64位元的來源運算元以及64位元的目的地運算元之CRC32指令: TEMPI [63-0]^-BIT_REFLECT64 ( SRC[63-0]) TEMP2[31 -0]<-BIT_REFLECT32 ( DEST[31 -0]) TEMP3 [95-0]—TEMP 1 [63-0]«32 TEMP4[95-0]^TEMP2[31-0]«64 TEMP5[95-0]<-TEMP3[95-0]XORTEMP4[95-0] TEMP6[31 -0]^-TEMP5[95-0]MOD211EDC6F41H DEST[31 -0]—BIT_REFLECT ( TEMP6[31 -0]) DESTT63-321—OOOOOOOH___
_表 3___針對32位元的來源運算元以及32位元的目的地運算元之CRC32指令 TEMP 1 [31 ·0]—BIT_REFLECT32 ( SRC[3 卜0]) TEMP2[31-0]—BIT_REFLECT32 (DEST[31-0]) -TEMPI pi-0]«32 -TEMP2[31-0]«32 -TEMP3[63-0]XORTEMP4[63-0] -TEMP5[63-0]MOD211EDC6F41H TEMP3 [63-Op TEMP4[63-0]< TEMP5[63-0]< TEMP6[31-0]^
DEST[31-0]^BIT_REFLECT ( TEMP6[31 -0]) 表4 針對18位元的來源運算元以及32位元的目的地運算元之CRC32指令 TEMPI [15-0]· TEMP2[31-0] TEMP3[47-0] TEMP4[47-0] TEMP5[47-0]· TEMP6[31-0]< DEST[31-0]— —BIT_REFLECT16 ( SRC[ 15-0]) -BIT_REFLECT32 ( DEST[31 -0]) —TEMPI [63-0]«32 -TEMP2[31-0]«16 -TEMP3 [47-0]XORTEMP4[47-0] -TEMP5[47-0]MOD211EDC6F41H BIT REFLECT (TEMP6[31-0]) (13) 1360047
__ 針對8位元的來源運算元以及64位元的目的地運算元之CRC32指令: TEMPI [7-0]—BIT_REFLECT8 ( SRC[7-0]) TEMP2[31-0]—BIT_REFLECT32 ( DEST[31-0]) TEMP3 [39-0]—TEMP 1 [7-0]«32 TEMP4[39_0]—TEMP2[31-0]«8 TEMP5 [3 9-0] —TEMP3 [3 9-0]XORTEMP4 [3 9-0] TEMP6P1 -0]—TEMP5 [39-0]MOD211EDC6F41H DEST[31-0]—BIT_REFLECT ( TEMP6[31-0]) DEST『63-321—0000000H_
_表6_ 針對8位元的來源運算元以及32位元的目的地運算元之CRC32指令: TEMP 1 [7-0]—BIT_REFLECT8 ( SRC[7-0]) TEMP2[3 l-0]^-BIT_REFLECT32 ( DEST[31-0]) TEMP3[39-0]—TEMPI [7-0]«32 TEMP4[39-0]—TEMP2[31-0]«8 TEMP5[39-0]—TEMP3[39-0]XORTEMP4[39-0] TEMP6[31 -0]—TEMP5 [39-0]MOD211EDC6F41H DEST[31-0]^BIT_REFLECT ( TEMP6[31-0]) 注意到這些僞碼的片斷之槪略結構爲相同的。首先, 來源暫存器中的資料係被位元反射(亦即其之位元以反向 位元順序置於臨時暫存器中)。目的地暫存器也同樣地被 位元反射。接著,位移操作,詳言之左位移操作可在被位 元反射的來源與資料運算元上進行。所得的値接著經歷 XOR操作。此操作對應至以選定多項式値作爲商數之多項 式除法。雖然此値在不同的實施例中可具有不同的形式, -17- (14) (14)1360047 於執行CRC32操作之特定實行例中,此多項式可對應至 1 1EDC6F41H >雖然本發明之範疇不如此受限。此多項式 除法的餘數(亦即多項式除法模數2的餘數)係以位元反 射的順序儲存回目的地運算元的低順序位元中(亦即32 位元或64位元的位元〇-31)。在64位元的暫存器情況 中,最大有效位元(MSB)可載入零。雖以表2-6提出此 特定的實行例,應了解到可執行提供使用者等級CRC指 令之其他方式。 藉由在處理器管線本身中根據使用者等級指令執行 CRC操作,無須發送資料至卸載引擎。類似地,可無需提 供狀態地執行操作,降低負擔。依照此方式,當實行在三 週期路徑中,可以每位元組小於大約0.4週期地執行CRC 操作。因此,使用使用者等級指令並連同處理器管線中的 專用硬體可改善效能。此外,可以最小佔用空間與耗電量 達成三週期的潛伏。本發明的實施例可用來致能各種儲存 協定之楚哩,例如,以每秒百億位元的速率之網際網路小 型電腦系統介面(iSCSI )協定。本發明之實施例進一步 允許處理器中存在或緊密耦接至處理器之資料的使用,降 低有效快取(on-cache )資料的需要。依照此方式,可將 處理器緩衝器中的資料饋送至XOR樹,以致能快速且動 態的CRC計算。 可於許多不同的系統種類中實行實施例。茲參照第5 圖,其顯示根據本發明之一實施例的多處理器系統的方塊 圖。如第5圖中所示,多處理器系統爲點對點互連系統, -18- (15) (15)1360047 並且包含透過點對點互連450耦接之第一處理器470及第 二處理器480。如第5圖中所示,第一處理器470及第二 處理器480皆可爲多核心處理器,包含第一及第二處理器 核心(亦即處理器核心474a與474b及處理器核心484a 及484b)。雖爲了方便說明,第一處理器470及第二處理 器480 (且詳言之其中的核心)可包含XOR樹邏輯在其執 行單元中,以執行根據本發明之一實施例的使用者等級 CRC指令。第一處理器470進一步包含記憶體控制器集線 器(MCH) 472及點對點(P-P)介面476與478。類似 地,第二處理器480包含MCH 482及P-P介面486與 488。如第5圖中所示,MCH 472與482耦合處理器至個 別的記憶體,亦即記憶體432與記憶體434,其可爲區域 性附接至個別處理器的主記憶體的部份。 第一處理器470及第二處理器480可分別透過點對點 互連45 2與45 4耦合至晶片組490。如第5圖中所示,晶 片組4 9 0包含點對點介面4 9 4與4 9 8。此外,晶片組4 9 0 包含介面492,將晶片組490與高效能圖形引擎43 8耦 合。於一實施例中,先進圖形埠(AGP )匯流排4W可用 來耦合圖形引擎438至晶片組490。AGP 439可符合於 1998年5月4日由美國加州聖塔卡拉的英特爾公司發表之 版本2.0的加速圖形埠介面規格。替代地,點對點互連 439可耦合這些構件。 接著,晶片組490可透過介面496耦合至第一匯流排 416。於—實施例中’第—匯流排416可爲周邊構件互連 -19- 1360047 .. (16) (PCI)匯流排,其係由1995年6月、版本2.1、產 本的PCI區域匯流排規格或諸如pCI Express匯流排 —第三代輸入/輸出(I/O )互連匯流排的匯流排所界 雖本發明不如此受限。 如第5圖中所示,各種I/O裝置414連同匯流排 器418可耦合至第一匯流排416,匯流排橋接器418 —匯流排416耦合至第二匯流排420。於一實施例中 ^ 二匯流排4 2 0可爲低腳數(L P C )匯流排。各種裝置 合至第二匯流排420,包含例如,鍵盤/滑鼠422、通 置426、及於一實施例中包含碼430的資料儲存 428。此外’音頻I/O 424可耦合至第二匯流排420。 到亦可能有其他的架構。例如,取代第5圖之點對 構,系統可實行多丟放匯流排或另一此類的架構。 可以碼的方式實行實施例並可將之儲存於具有指 存於其上之儲存媒體上,該儲存媒體可用來編程系統 φ 行該些指令。儲存媒體可包含但不限於包括軟碟、光 唯讀記憶體光碟 (CD-ROM )、可複寫光碟( RW )、及光磁碟之任何類型的碟片、如唯讀記 (ROM )、諸如動態隨機存取記憶體(DRAM )及靜 機存取記億體(SRAM)之隨機存取記憶體(ram) 抹除可編程唯獨記憶體(EPROM )、快閃記憶體、電 抹除可編程唯獨記憶體(EEP ROM )的半導體裝置、 光卡、或適用於儲存電子指令的任何類型之媒體。 雖已藉由有限數量的實施例描述本發明,熟悉該 品版 或另 定, 橋接 將第 ,第 可耦 訊裝 單元 注意 點架 令儲 以執 碟、 CD- 憶體 態隨 、可 性可 磁或 項技 -20- (17) (17)1360047 藝者將可理解到其之各種變更與修改。所附之申請專利範 圍意圖涵蓋落入本發明之真實精神與範疇的所有此種變更 與修改。 【圖式簡單說明】 第1圖爲根據本發明之一實施例的方法之流程圖。 第2圖爲根據本發明之一實施例的處理器之方塊圖。 第3圖爲根據本發明之一實施例的執行檢查和操作的 處理器之一部分的方塊圖。 第4圖爲根據本發明之一實施例的處理器之另一部分 的方塊圖。 第5圖爲根據本發明之一實施例的系統的方塊圖。 【主要元件符號說明】 1 〇〇 :方法 200 :處理器 205 :資料路徑 220 :位址產生單元(AGu ) 22 1 :邏輯 222 :整數(INT )執行單元 224 :儲存資料(STD )單元 226 :浮點(FP )執行單元 228 :單一指令多資料(SIMD )執行單元 230 :保留站(RS ) -21 - (18) (18)1360047 2 5 0 :記錄器緩衝器(ROB ) 270 :暫存器頻疊表(RAT) 3 00 :處理器 3 1 0 : XOR_ 樹 320 :第一暫存器 3 3 0 :第二暫存器 3 4 0 :緩衝器 410 : XOR 樹 414 : I/O 裝置 4 1 6 :第一匯流排 4 1 8 :匯流排橋接器 4 2 0 :第二匯流排 422 :鍵盤/滑鼠 424 :音頻 I/O 426 :通訊裝置 428 :資料儲存單元 430 :碼 432、43 4 :記憶體 43 8 :高效能圖形引擎 43 9:先進圖形埠(AGP)匯流排 4 5 0、4 5 2、4 5 4 :點對點互連 470:第一處理器 472、48 2 :記憶體控制器集線器(MCH) 474a ' 474b、484a' 484b :處理器核心 -22- (19)1360047 498 :點對點(P-P )介 476、 47 8 ' 486、 48 8、 494、 480 :第二處理器 490 :晶片組 492、496 :介面
-23-

Claims (1)

13600.47 修正本 * 附件5Α ::第095146431號專利申請案中文申請專利範圍修正本 曰修正 以回應 ;級指令 -之一, 作。 '於該處 .含一般 餘檢查 透過該 中該處 於該硬 等級指 引擎包 XOR ) 民國100年3月: 十、申請專利範園 1. 一種資料處理之方法,包含: 於處理器中接收進入資料:以及 於該處理器中對該進入資料執行檢查和操作, 針對該檢查和操作之使用者等級指令,該使用者等 Φ 爲用以執行檢查和操作之一指令集架構的複數指令 每一該些指令係用以界定不同資料大小之檢查和操 2. 如申請專利範圍第1項之方法,進一步包含 理器的管線中執行該檢查和操作,其中該處理器旬 目的處理器’以及其中該檢查和操作包含循環冗 (CRC)操作。 3 ·如申請專利範圍第1項之方法,進一步包含 處理器的複數硬體引擎之一執行該檢查和操作,其 # 理器包含一般目的處理器。 4·如申請專利範圍第3項之方法,進一步包含 體引擎中執行多項式除法操作,以回應該使用者 令。 5.如申請專利範圍第3項之方法,其中該硬體 含耦合至來源暫存器及目的地暫存器之互斥或( 樹。 6.如申請專利範圍第5項之方法,進一步包含: 將來自該來源暫存器之該進入資料以及儲存於該目的 1360047 地暫存器之至少一部份中之目前的値輸入至該XOR樹 中; 使用該進入資料及該目前的値於該XOR樹中執行該 檢查和操作;以及 儲存該XOR樹之輸出於該目的地暫存器中。 7. 如申請專利範圍第6項之方法,其中該XOR樹之該 輸出對應至該檢查和操作之連續餘數。 8. 如申請專利範圍第7項之方法,進一步包含當提供 φ 該進入資料至該來源暫存器的緩衝器爲空的時,使用該連 續餘數作爲檢查和。 9. 如申請專利範圍第1項之方法,進—步包含: 將該進入資料載入該處理器的來源暫存器中; 反射該進入資料;以及 對該反射進入資料以及來自目的地暫存器的反射資料 執行至少一互斥或(XOR )操作,以及將該至少一 X〇r 操作的結果以反射的順序儲存於該目的地暫存器中。 _ 1〇·如申請專利範圍1項之方法,進一步包含使用該 進入資料以及餘數値且無查詢表資訊於該處理器的邏輯區 塊中執行該檢查和操作。 11.—種資料處理之設備,包含: 儲存來源資料之第一暫存器: 儲存結果資料之第二暫存器;以及 耦合至該第一暫存器及該第二暫存器之執行單元,以 對該來源資料以及該結果資料執行循環冗餘檢查(CRC ) -2- 13600.47 - 操作,並且提供對應於該CRC操作的連續餘數之該執行 單元的輸出的至少一部份至該第二暫存器,其中該執行單 元包含一般目的處理器管線之互斥或(XOR)樹邏輯。 12. 如申請專利範圍第11項之設備,其中該執行單元 執行該CRC操作,以回應於使用者等級指令。 13. 如申請專利範圍第11項之設備,其中該X 〇R樹邏 _根據固定的多項式執行多項式除法。 14. 如申請專利範圍第11項之設備,其中該執行單元 包含處理器管線的整數單元,該整數單元包含複數個個別 的邏輯區塊,各用以對不同大小之資料執行該CRC操 作。 15. 如申請專利範圍第14項之設備,其中使用者等級 指令係指示其上執行該CRC操作之該資料的大小。 1 6 .—種資料處理之系統,包含: 處理器,包含第一及第二執行單元,以執行操作,以 φ 回應針對該處理器之指令集架構(ISA)的指令,其中該 第一執行單元包含硬體引擎以執行循環冗餘檢查(CRC) 操作,該處理器進一步包含提供來源運算元至該硬體引擎 之第一暫存器,以及提供目的地運算元至該硬體引擎之第 二暫存器;以及 耦合至該處理器的動態隨機存取記憶體(DRAM )。 1 7 .如申請專利範圍第1 6項之系統,其中該第一執行 單元包含整數單元以及該第二執行單元包含浮點單元。 1 8 .如申請專利範圍第1 6項之系統,其中該處理器包 -3- 1360047 含提供資料至該第一暫存器之緩衝器。 · 19_如申請專利範圍第18項之系統,其中該硬體引擎 係對該資料執行CRC操作直到該緩衝器爲空的,以回應 針對該CRC操作之該ISA的一或更多指令。 20. 如申請專利範圍第19項之系統,其中該硬體引擎 係提供該CRC操作的連續餘數至該第二暫存器。 21. 如申請專利範圍第16項之系統,其中該硬體引擎 包含複數個邏輯區塊,各用以對不同大小的資料執行CRC φ 操作。 22 ·如申請專利範圍第21項之系統,其中該硬體引擎 係提供資料至對應給定資料大小之該複數個邏輯區塊之 一’以執行該CRC操作,以回應針對該給定資料大小的 該CRC操作之該ISA的指令。
1360047 附件6A:^| 095146431號中文圖式替換頁 _民國100年3月22日修正 (〇〇年;月?2^修正替換頁 第3圖
第4圖 m
330
TW095146431A 2005-12-23 2006-12-12 Method, apparatus and system of data processing TWI360047B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/316,772 US7958436B2 (en) 2005-12-23 2005-12-23 Performing a cyclic redundancy checksum operation responsive to a user-level instruction

Publications (2)

Publication Number Publication Date
TW200809488A TW200809488A (en) 2008-02-16
TWI360047B true TWI360047B (en) 2012-03-11

Family

ID=38195339

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095146431A TWI360047B (en) 2005-12-23 2006-12-12 Method, apparatus and system of data processing

Country Status (6)

Country Link
US (17) US7958436B2 (zh)
JP (1) JP5269610B2 (zh)
CN (2) CN102708022B (zh)
DE (1) DE112006003298B4 (zh)
TW (1) TWI360047B (zh)
WO (1) WO2007078672A2 (zh)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7958436B2 (en) 2005-12-23 2011-06-07 Intel Corporation Performing a cyclic redundancy checksum operation responsive to a user-level instruction
US8229109B2 (en) * 2006-06-27 2012-07-24 Intel Corporation Modular reduction using folding
US7827471B2 (en) * 2006-10-12 2010-11-02 Intel Corporation Determining message residue using a set of polynomials
US7852851B2 (en) * 2006-11-10 2010-12-14 Broadcom Corporation Method and system for hash table based routing via a prefix transformation
US8689078B2 (en) 2007-07-13 2014-04-01 Intel Corporation Determining a message residue
US8042025B2 (en) * 2007-12-18 2011-10-18 Intel Corporation Determining a message residue
US7886214B2 (en) * 2007-12-18 2011-02-08 Intel Corporation Determining a message residue
GB2458665B (en) * 2008-03-26 2012-03-07 Advanced Risc Mach Ltd Polynomial data processing operation
CN101527615A (zh) * 2009-04-07 2009-09-09 华为技术有限公司 一种循环冗余校验crc码的实现方法和装置
US8543888B2 (en) * 2009-06-09 2013-09-24 Microchip Technology Incorporated Programmable cyclic redundancy check CRC unit
US8117496B2 (en) * 2009-06-18 2012-02-14 International Business Machines Corporation Detecting and recovering from silent data errors in application cloning systems
US8464125B2 (en) * 2009-12-10 2013-06-11 Intel Corporation Instruction-set architecture for programmable cyclic redundancy check (CRC) computations
US8683307B2 (en) * 2011-05-27 2014-03-25 International Business Machines Corporation Checksum calculation, prediction and validation
CN103795502B (zh) * 2014-02-28 2017-04-12 杭州华三通信技术有限公司 一种数据帧校验码生成方法和装置
CN103984530B (zh) * 2014-05-15 2016-08-17 中国航天科技集团公司第九研究院第七七一研究所 一种提高store指令执行效率的流水线结构及方法
CN104133736A (zh) * 2014-07-29 2014-11-05 江苏宏云技术有限公司 一种矢量crc校验指令的设计方法
US9829899B2 (en) 2014-11-10 2017-11-28 Duke Energy Corporation Apparatuses including utility meter, power electronics, and communications circuitry, and related methods of operation
US20160191678A1 (en) * 2014-12-27 2016-06-30 Jesse C. Brandeburg Technologies for data integrity of multi-network packet operations
US10797722B2 (en) * 2016-06-10 2020-10-06 The Boeing Company System and method for providing hardware based fast and secure expansion and compression functions
US10255132B2 (en) * 2016-06-22 2019-04-09 Advanced Micro Devices, Inc. System and method for protecting GPU memory instructions against faults
CN107145334B (zh) * 2017-04-26 2020-10-09 龙芯中科技术有限公司 常量获取方法、装置、处理器及计算机可读存储介质
CN107544863B (zh) * 2017-06-26 2021-07-20 新华三技术有限公司 一种数据存储方法及装置
DE102017212181A1 (de) * 2017-07-17 2019-01-17 Robert Bosch Gmbh Verfahren und Vorrichtung zum Bestimmen von Prüfsummen, Pufferspeicher und Prozessor
US10594439B2 (en) 2017-09-08 2020-03-17 Huawei Technologies Co., Ltd. Channel encoding method and apparatus in wireless communications to output a polar encoded bit sequence
WO2019047788A1 (zh) 2017-09-08 2019-03-14 华为技术有限公司 编码方法及装置
CN107943611B (zh) * 2017-11-08 2021-04-13 天津国芯科技有限公司 一种快速产生crc的控制装置
CN108540137B (zh) * 2018-03-02 2021-09-03 江西清华泰豪三波电机有限公司 一种循环冗余校验码生成方法与装置
US11468037B2 (en) * 2019-03-06 2022-10-11 Semiconductor Components Industries, Llc Memory device and data verification method
US11226905B2 (en) 2019-04-01 2022-01-18 Nutanix, Inc. System and method for mapping objects to regions
US11809382B2 (en) 2019-04-01 2023-11-07 Nutanix, Inc. System and method for supporting versioned objects
US11029993B2 (en) 2019-04-04 2021-06-08 Nutanix, Inc. System and method for a distributed key-value store
CN111800223B (zh) * 2019-08-15 2023-06-23 北京京东尚科信息技术有限公司 生成发送报文、处理接收报文的方法、装置和系统
CN112445525A (zh) * 2019-09-02 2021-03-05 中科寒武纪科技股份有限公司 数据处理方法、相关设备及计算机可读介质
US11704334B2 (en) 2019-12-06 2023-07-18 Nutanix, Inc. System and method for hyperconvergence at the datacenter
KR20210084871A (ko) 2019-12-30 2021-07-08 삼성전자주식회사 안전 민감 데이터의 무결성 점검 장치 및 이를 포함하는 전자 기기
US11609777B2 (en) 2020-02-19 2023-03-21 Nutanix, Inc. System and method for multi-cluster storage
US20210334284A1 (en) 2020-04-28 2021-10-28 Nutanix, Inc. System and method of querying objects on demand
US11487787B2 (en) 2020-05-29 2022-11-01 Nutanix, Inc. System and method for near-synchronous replication for object store
US11900164B2 (en) 2020-11-24 2024-02-13 Nutanix, Inc. Intelligent query planning for metric gateway
US11822370B2 (en) 2020-11-26 2023-11-21 Nutanix, Inc. Concurrent multiprotocol access to an object storage system
US11516033B1 (en) 2021-05-31 2022-11-29 Nutanix, Inc. System and method for metering consumption
US11899572B2 (en) 2021-09-09 2024-02-13 Nutanix, Inc. Systems and methods for transparent swap-space virtualization
US11748019B2 (en) * 2021-10-26 2023-09-05 EMC IP Holding Company LLC Method to efficiently transfer support and system logs from air-gapped vault systems to replication data sources by re-utilizing the existing replication streams
US20230140404A1 (en) * 2021-11-02 2023-05-04 Paul Tsyganko System, method, and computer program product for cataloging data integrity
CN115150024B (zh) * 2022-09-02 2022-11-18 无锡沐创集成电路设计有限公司 数据处理方法、装置、设备和介质
CN116861493B (zh) * 2023-08-31 2024-03-29 上海芯联芯智能科技有限公司 一种校验码生成方法、处理器及电子设备

Family Cites Families (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253428A5 (zh) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US3891974A (en) 1973-12-17 1975-06-24 Honeywell Inf Systems Data processing system having emulation capability for providing wait state simulation function
US4351024A (en) * 1975-04-21 1982-09-21 Honeywell Information Systems Inc. Switch system base mechanism
US4130867A (en) * 1975-06-19 1978-12-19 Honeywell Information Systems Inc. Database instruction apparatus for determining a database record type
US4413319A (en) * 1981-03-09 1983-11-01 Allen-Bradley Company Programmable controller for executing block transfer with remote I/O interface racks
US4438512A (en) * 1981-09-08 1984-03-20 International Business Machines Corporation Method and apparatus for verifying storage apparatus addressing
JPH0822448B2 (ja) 1987-06-26 1996-03-06 石川島播磨重工業株式会社 カロ−ゼルリ−ル装置
JP2818415B2 (ja) * 1988-05-18 1998-10-30 日本電気株式会社 バッファ記憶装置
JPH0679276B2 (ja) * 1990-08-31 1994-10-05 インターナショナル・ビジネス・マシーンズ・コーポレイション 同一従属型プロセスのスループット増大方法、プロセス生成回路、周期冗長コードジェネレータ、およびコントローラシステム
US5369641A (en) * 1991-11-12 1994-11-29 Storage Technology Corporation Method and apparatus for detecting and correcting errors in data on magnetic tape media
DE69320321T2 (de) 1993-02-05 1998-12-24 Hewlett Packard Co Verfahren und Gerät zum Nachprüfen von CRC-Koden, wobei CRC Teilkode kombiniert werden
US5715278A (en) * 1993-05-11 1998-02-03 Ericsson Inc. Standby power saving in mobile phones
US5645159A (en) * 1994-03-30 1997-07-08 Lauener Engineering, Ltd. Method and apparatus for continuously casting metal
JP2814918B2 (ja) * 1994-07-07 1998-10-27 株式会社デンソー マイクロコンピュータ
US6237074B1 (en) * 1995-05-26 2001-05-22 National Semiconductor Corp. Tagged prefetch and instruction decoder for variable length instruction set and method of operation
US5663952A (en) * 1995-07-07 1997-09-02 Sun Microsystems, Inc. Checksum generation circuit and method
US7301541B2 (en) * 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US5701316A (en) * 1995-08-31 1997-12-23 Unisys Corporation Method for generating an internet protocol suite checksum in a single macro instruction
US5946467A (en) * 1996-09-20 1999-08-31 Novell, Inc. Application-level, persistent packeting apparatus and method
US5844923A (en) 1996-10-24 1998-12-01 At&T Corp Fast framing of nude ATM by header error check
US5960012A (en) 1997-06-23 1999-09-28 Sun Microsystems, Inc. Checksum determination using parallel computations on multiple packed data elements
US5974574A (en) * 1997-09-30 1999-10-26 Tandem Computers Incorporated Method of comparing replicated databases using checksum information
US7185266B2 (en) * 2003-02-12 2007-02-27 Alacritech, Inc. Network interface device for error detection using partial CRCS of variable length message portions
US6029186A (en) * 1998-01-20 2000-02-22 3Com Corporation High speed calculation of cyclical redundancy check sums
US6012063A (en) * 1998-03-04 2000-01-04 Starfish Software, Inc. Block file system for minimal incremental data transfer between computing devices
US7932911B2 (en) * 1998-08-24 2011-04-26 Microunity Systems Engineering, Inc. Processor for executing switch and translate instructions requiring wide operands
JP2000124811A (ja) * 1998-10-12 2000-04-28 Hitachi Ltd 通信データ処理装置及びデータ受信システム
US6279140B1 (en) * 1999-01-07 2001-08-21 International Business Machines Corporation Method and apparatus for checksum verification with receive packet processing
US6191614B1 (en) * 1999-04-05 2001-02-20 Xilinx, Inc. FPGA configuration circuit including bus-based CRC register
US6565443B1 (en) 1999-09-14 2003-05-20 Innovative Gaming Corporation System and method for verifying the contents of a mass storage device before granting access to computer readable data stored on the device
US6550002B1 (en) * 1999-11-04 2003-04-15 International Business Machines Corporation Method and system for detecting a flush of an instruction without a flush indicator
US6964008B1 (en) * 1999-11-12 2005-11-08 Maxtor Corporation Data checksum method and apparatus
CN1411630A (zh) 2000-02-17 2003-04-16 模拟装置公司 用于生成循环余数核对代码以及生成其他基于余数的编码的方法、设备和产品
US6631488B1 (en) * 2000-06-30 2003-10-07 Agilent Technologies, Inc. Configurable error detection and correction engine that has a specialized instruction set tailored for error detection and correction tasks
US6848072B1 (en) * 2000-09-19 2005-01-25 Bbn Solutions Llc Network processor having cyclic redundancy check implemented in hardware
US7292586B2 (en) * 2001-03-30 2007-11-06 Nokia Inc. Micro-programmable protocol packet parser and encapsulator
KR100434270B1 (ko) * 2001-05-30 2004-06-04 엘지전자 주식회사 가전기기 네트워크 제어시스템
JP4856848B2 (ja) * 2001-10-11 2012-01-18 アルテラ コーポレイション プログラマブルロジックリソース上のエラー検出
US6907466B2 (en) * 2001-11-08 2005-06-14 Extreme Networks, Inc. Methods and systems for efficiently delivering data to a plurality of destinations in a computer network
US7454601B2 (en) 2002-03-28 2008-11-18 Intel Corporation N-wide add-compare-select instruction
JP2003346432A (ja) * 2002-05-22 2003-12-05 Internatl Business Mach Corp <Ibm> データ記憶装置およびデータ処理方法
US7487264B2 (en) * 2002-06-11 2009-02-03 Pandya Ashish A High performance IP processor
US6957321B2 (en) * 2002-06-19 2005-10-18 Intel Corporation Instruction set extension using operand bearing NOP instructions
US7103821B2 (en) * 2002-07-03 2006-09-05 Intel Corporation Method and apparatus for improving network router line rate performance by an improved system for error checking
US7036007B2 (en) 2002-09-09 2006-04-25 Intel Corporation Firmware architecture supporting safe updates and multiple processor types
US7313583B2 (en) * 2002-10-22 2007-12-25 Broadcom Corporation Galois field arithmetic unit for use within a processor
US7327781B2 (en) * 2002-12-17 2008-02-05 Invensys Systems, Inc. Universal intelligent modem
US7421637B1 (en) * 2003-01-16 2008-09-02 Cisco Technology, Inc. Generating test input for a circuit
TWI220962B (en) 2003-01-20 2004-09-11 Mediatek Inc Firmware updating method and related apparatus for checking content of replacing firmware before firmware updating
US7082563B2 (en) 2003-01-31 2006-07-25 Italtel S.P.A. Automated method for generating the cyclic redundancy check for transmission of multi-protocol packets
US7392399B2 (en) 2003-05-05 2008-06-24 Sun Microsystems, Inc. Methods and systems for efficiently integrating a cryptographic co-processor
US7383428B2 (en) 2003-09-11 2008-06-03 International Business Machines Corporation Method, apparatus and computer program product for implementing atomic data tracing
US7826614B1 (en) * 2003-11-05 2010-11-02 Globalfoundries Inc. Methods and apparatus for passing initialization vector information from software to hardware to perform IPsec encryption operation
TWI224729B (en) 2003-12-15 2004-12-01 Mediatek Inc Method for determining program code
US7360142B1 (en) * 2004-03-03 2008-04-15 Marvell Semiconductor Israel Ltd. Methods, architectures, circuits, software and systems for CRC determination
US8351468B2 (en) * 2004-04-05 2013-01-08 Broadcom Corporation Method and apparatus for downloading content using channel bonding
US7157944B1 (en) * 2004-04-27 2007-01-02 Altera Corporation Differential signal detector methods and apparatus
US7594124B2 (en) * 2004-06-09 2009-09-22 Intel Corporation Cross validation of data using multiple subsystems
US7676655B2 (en) 2004-06-30 2010-03-09 Sun Microsystems, Inc. Single bit control of threads in a multithreaded multicore processor
US7246191B2 (en) * 2005-03-31 2007-07-17 Intel Corporation Method and apparatus for memory interface
US7454667B2 (en) * 2005-04-26 2008-11-18 Intel Corporation Techniques to provide information validation and transfer
US7590930B2 (en) * 2005-05-24 2009-09-15 Intel Corporation Instructions for performing modulo-2 multiplication and bit reflection
US7805706B1 (en) * 2005-06-21 2010-09-28 Unisys Corporation Process for optimizing software components for an enterprise resource planning (ERP) application SAP on multiprocessor servers
US7646788B2 (en) 2005-08-03 2010-01-12 The Boeing Company TCP/IP tunneling protocol for link 16
US8335226B2 (en) * 2005-08-03 2012-12-18 Broadcom Corporation Systems and methods to transmit information among a plurality of physical upstream channels
US20070067698A1 (en) 2005-09-19 2007-03-22 King Steven R Techniques to perform prefetching of content in connection with integrity validation value determination
US7523378B2 (en) 2005-09-23 2009-04-21 Intel Corporation Techniques to determine integrity of information
DE102005061394A1 (de) * 2005-12-22 2007-06-28 Robert Bosch Gmbh Fehlertolerantes Prozessorsystem
US7958436B2 (en) 2005-12-23 2011-06-07 Intel Corporation Performing a cyclic redundancy checksum operation responsive to a user-level instruction
US7324913B2 (en) * 2006-02-01 2008-01-29 International Business Machines Corporation Methods and apparatus for testing a link between chips
US7925957B2 (en) 2006-03-20 2011-04-12 Intel Corporation Validating data using processor instructions
US7865704B2 (en) * 2006-03-29 2011-01-04 Freescale Semiconductor, Inc. Selective instruction breakpoint generation based on a count of instruction source events
US8024708B2 (en) 2006-06-20 2011-09-20 Google Inc. Systems and methods for debugging an application running on a parallel-processing computer system
US8209597B2 (en) 2009-03-23 2012-06-26 Cognitive Electronics, Inc. System and method for achieving improved accuracy from efficient computer architectures
US8392661B1 (en) 2009-09-21 2013-03-05 Tilera Corporation Managing cache coherence
US8464125B2 (en) * 2009-12-10 2013-06-11 Intel Corporation Instruction-set architecture for programmable cyclic redundancy check (CRC) computations
US8417961B2 (en) * 2010-03-16 2013-04-09 Oracle International Corporation Apparatus and method for implementing instruction support for performing a cyclic redundancy check (CRC)
US8910031B1 (en) * 2011-03-29 2014-12-09 Emc Corporation DIF-CRC based fast hashing

Also Published As

Publication number Publication date
JP5269610B2 (ja) 2013-08-21
US8775910B2 (en) 2014-07-08
US8225184B2 (en) 2012-07-17
US9116684B2 (en) 2015-08-25
US20150155883A1 (en) 2015-06-04
US20220091926A1 (en) 2022-03-24
US20130305011A1 (en) 2013-11-14
US20200159614A1 (en) 2020-05-21
US9645884B2 (en) 2017-05-09
WO2007078672A3 (en) 2007-09-13
WO2007078672A2 (en) 2007-07-12
CN101305349B (zh) 2012-05-02
US20170242746A1 (en) 2017-08-24
US20130305015A1 (en) 2013-11-14
US8856627B2 (en) 2014-10-07
US20130305115A1 (en) 2013-11-14
US8769386B2 (en) 2014-07-01
US8713416B2 (en) 2014-04-29
US11899530B2 (en) 2024-02-13
US20130191614A1 (en) 2013-07-25
US20130305016A1 (en) 2013-11-14
DE112006003298T5 (de) 2009-01-08
US8775911B2 (en) 2014-07-08
US20130305116A1 (en) 2013-11-14
US7958436B2 (en) 2011-06-07
DE112006003298B4 (de) 2021-11-18
CN102708022B (zh) 2015-07-08
CN101305349A (zh) 2008-11-12
US20120240016A1 (en) 2012-09-20
US20130305117A1 (en) 2013-11-14
US8775912B2 (en) 2014-07-08
US20130305118A1 (en) 2013-11-14
US9262159B2 (en) 2016-02-16
US8769385B2 (en) 2014-07-01
US20140281798A1 (en) 2014-09-18
US8413024B2 (en) 2013-04-02
US10379938B2 (en) 2019-08-13
CN102708022A (zh) 2012-10-03
US20110231744A1 (en) 2011-09-22
TW200809488A (en) 2008-02-16
US11048579B2 (en) 2021-06-29
US20070150795A1 (en) 2007-06-28
US8793559B2 (en) 2014-07-29
US20160224411A1 (en) 2016-08-04
JP2009521059A (ja) 2009-05-28

Similar Documents

Publication Publication Date Title
TWI360047B (en) Method, apparatus and system of data processing
US7925957B2 (en) Validating data using processor instructions
WO2017222715A1 (en) Hardware accelerator for platform firmware integrity check
US20210326135A1 (en) Programmable Fabric-Based Instruction Set Architecture for a Processor