BLOGS

三文搞定CRC – CRC3
CRC(循环冗余校验,Cyclic Redundancy Check)是一种通过添加冗余位来检测数据传输过程中是否发生错误的技术。其基本思想类似除法运算,将原始数据与一个固定的“除数”或“生成多项式”进行运算,得出的“余数”即为校验码。发送方将数据与校验码一并发送,接收方用相同的方法重新计算校验码,若一致则认为数据未损坏。文章通过十进制到二进制的转换演示了校验原理,指出实际中采用异或(XOR)替代传统减法以简化硬件实现。通过选择不同的多项式(如 1011 表示 X³ + X + 1),可检测各种错误位翻转的情况。进一步分析还揭示如何设计多项式以增强对连续多位错误的检测能力,例如使用不能被 X+1 整除的多项式来识别相邻两位错误。这种机制广泛用于网络通信、存储设备和数字协议中,是现代数据完整性保障的重要手段之一。... ...

三文搞定CRC – CRC16
在深入理解CRC16前,推荐先浏览Koopman教授的网站,了解他对CRC二项式的研究成果。CRC16的核心在于用特定多项式对数据进行二进制长除,计算出校验码以检测数据传输中的误码。文章通过“Helo!”字符串演示CRC16的计算过程,并结合电路设计,解释如何通过线性移位寄存器实现该算法。此外,还提供了Python与SystemVerilog实现代码,适合软件与硬件开发者参考。... ...

服务器Cache一致性入门1
本次分享聚焦 Cache 一致性主题。深入理解缓存一致性对系统性能调优至关重要,而性能优化离不开对处理器微架构和内部事务流程的掌握。我们将以 Intel Xeon E5-2600 v2 的 2P 多处理器系统为例展开探讨,该系统包含双处理器、多核及多级缓存架构。从 Cacheline 的本质出发,我们将剖析在多核心、多级 Cache 的复杂架构中,一个 Cacheline 最多会存在多少副本这一核心问题,带你揭开 Cache 一致性的关键逻辑。... ...