什麼是CRC(循環冗餘檢查)
把資料的位元列視為多項式,以生成多項式相除後將餘數附作檢查值,接收端再做同樣計算以檢測資料錯誤的方法。廣泛用於乙太網路、PCI Express、USB 與檔案格式等。
日文名稱: CRC(巡回冗長検査)
「CRC(循環冗餘檢查)」出現在2領域的4道練習題中(邏輯電路, 介面與匯流排規格等)。
這個名詞所屬的領域: 介面與匯流排規格
把資料的位元列視為多項式,以生成多項式相除後將餘數附作檢查值,接收端再做同樣計算以檢測資料錯誤的方法。廣泛用於乙太網路、PCI Express、USB 與檔案格式等。
日文名稱: CRC(巡回冗長検査)
「CRC(循環冗餘檢查)」出現在2領域的4道練習題中(邏輯電路, 介面與匯流排規格等)。
這個名詞所屬的領域: 介面與匯流排規格
CRC 把資料的位元列視為模 2 多項式的係數,求出以生成多項式相除後的餘數。在模 2 運算中,加法與減法都是 XOR,因此除法就是重複「開頭為 1 時 XOR 生成多項式,再移一位」。寬度 w 位元的 CRC,會把資料後面補 w 個 0 相除所得的 w 位元餘數附上送出,接收端做同樣的計算確認是否一致。實際的標準還會加上初始值、每個位元組的位元反轉、最後的 XOR 等約定來定義。
寬度 w 位元的 CRC 可檢測所有長度在 w 以下的連續錯誤(叢發錯誤),其他隨機錯誤被漏掉的機率也只有約 2⁻ʷ。不過它只能發現錯誤而無法更正,發現後通常以重送等方式恢復。CRC 用於乙太網路的 FCS(CRC-32)、PCI Express 的封包、USB、CAN、儲存裝置的命令,以及 ZIP、PNG 等檔案格式;在硬體中可用正反器與 XOR 閘構成的線性回授移位暫存器計算。
正確答案:B. 兩個輸入不同時
XOR在兩個輸入不同時輸出1,相同時輸出0。以式子表示為 A⊕B = A·¬B + ¬A·B。也可視為「一個輸入為1時將另一個反相,為0時則原樣通過」,可當作受控反相器使用。它用途廣泛,例如半加器的和、比較電路(偵測一致用XNOR)、同位元的計算,以及加密的串流加密與CRC的計算。
檢查和是把位元組相加等簡單計算,容易漏掉順序對調或互相抵消的錯誤;CRC 以多項式除法為基礎,能區分位元位置,確實發現叢發錯誤等。
一般不能。CRC 用來檢查是否有錯誤,但無法得知是哪個位元出錯,因此需要更正的記憶體等會使用漢明碼等 ECC。
它用途廣泛,例如半加器的和、比較電路(偵測一致用XNOR)、同位元的計算,以及加密的串流加密與CRC的計算。
2輸入XOR(互斥或)閘的輸出何時為1?由於只需XOR與正反器即可製作,用於內建自我測試(BIST)的圖樣產生與結果壓縮、乙太網路等的CRC計算,以及將訊號平均化以減少電磁雜訊的拌碼器。
將移位暫存器部分輸出的XOR送回輸入的線性回授移位暫存器(LFSR),其代表性用途是哪一個?資料連結層會在每個封包附加序號與CRC(循環冗餘檢查)碼後傳送。
針對傳輸中的位元錯誤,PCI Express的資料連結層會做什麼?PCI Express的封包除了資料之外,還附加表示位址與類型的標頭、資料連結層的序號與CRC、實體層的分隔符號等,合計約20~30位元組。
在PCI Express中,若大量傳送寫入64位元組小量資料的封包,有效頻寬會遠小於理論值。其主要原因為下列何者?PCI Express 移位暫存器 正反器 BIST(內建自我測試) 128b/130b 編碼(128b/130b encoding) 8b/10b 編碼(8b/10b encoding) 位元錯誤率(Bit error rate, BER) 信用式流量控制(Credit-based flow control) 重定時器(Retimer) 展頻時脈(Spread-spectrum clocking, SSC)