# 2025q1 Homework4 (quiz3+4) contributed by `<As7r1d>` ## 2025q1 第 3 週測驗題 ## 2025q1 第 4 週測驗題 ### 測驗1 循環冗餘校驗,Cyclic Redundancy Check 運作方式如下: 1. 選擇一個生成多項式 2. 透過 XOR 運算來模擬二進位多項式的除法 3. LSB-first(低位元先處理)的方法計算 CRC (例如 Fast CRC,採用位元反轉方式) 其中 ```c for (int bit = 0; bit < 8; bit++) crc = (crc & 1) ? ((crc >> 1) ^ UINT32_C(0x82f63b78)) : (crc >> 1); ``` 這 8 次 shift & XOR 的過程,唯一影響的其實只有最開始的 8 位(最低 8 bit)。 該過程又可以改為預先合併為某個值存在 table 中方便查表 將每個 uint8_t v 處理時拆成兩次 4-bit 的查表,兩次查 4-bit(16 個項目)的小表格取代一次查 8-bit(256 個項目)的大表格。 #### 在 Linux 核心原始程式碼中找到 CRC32 的應用案例至少 3 處,並探討其原始程式碼 #### 設計實驗來分析 Fast CRC32 提出的手法 (要涵蓋 branchless 和查表的變形),並與硬體的 CRC32 指令效能進行比較。 #### 以 x86-64 或 Arm64 為探討標的,說明 Linux 核心如何使用硬體加速的 CRC32 指令
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up