0

我知道网上有免费的生成器,但我想了解如何为多位数据生成 CRC。当我们开始考虑并行输入位时,我希望了解逻辑的展开是如何工作的。串行实现很容易理解,但我需要了解并行实现背后的逻辑。

4

1 回答 1

1

软件通常使用表查找来一次处理多个位,例如 256 条目表一次处理 8 位,或者可以使用无进位乘法(如 X86 PCLMULQDQ)指令进行 CRC。

对于硬件,通常使用二进制 (GF(2)) 矩阵乘以固定矩阵来代替查表,因为它需要更少的门。例如,编码矩阵将是 8 x 32 位矩阵,而不是 256 x 32 位查找表将 8 位输入转换为 32 位 crc。矩阵乘法将是 data[1][8] · encode[8][32] = crc[1][32]。

于 2019-07-16T23:21:20.750 回答