软硬件融合技术内幕 终极篇 (13) —— 飞鸽传书的背后 (上)
在前几期,我们介绍了CPU,内存和SSD盘的实现原理。CPU利用寄存器进行指令运算,并将运算的结果放入内存。如果期望数据在断电后不丢失,则利用SSD盘进行高速的持久化存储。
我们注意到一个细节:
在较早期,CPU与北桥的前端总线是并行接口,北桥到DRAM的接口,以及北桥到南桥的PCI总线均为并行总线。我们举一个例子:
图中,最重要的地址线AD[31:00],以及在PCI-X中扩展的AD[63:32],是并行的。但是,随着PCI总线的演进,此种方式最终被抛弃。
这是为什么呢?
基于前面几篇的知识基础,我们了解到,北桥会在CLK的下降沿到来之前,把32/64bit的地址或数据信号发送到并行的AD[31:00]和AD[63:32]。其他PCI设备在收到CLK下降沿的时候,从AD[31:00]和AD[63:32]获取地址信息和数据信息。
那么,有一个理想与现实对比的问题是必须要面对的:
我们期望的CLK和AD[31::0],信号是这样理想化的:
如图,在每个CLK的下降沿,到达PCI Device的AD[31:00]都处于稳定状态,PCI Device可以接收到来自PCI根桥的并行传输信号。但是,这一理想化模型成立的条件是,32条AD线的传输时间是差不多的!
我们知道,PCB板上传输信号的电路材质是几乎100%的纯铜。电信号在铜线中的传输速度是光速的75%,约2.2x10^8米每秒,也就是每ns约0.22米。此外,如果电路存在寄生电容等情况,也会对信号传输造成时延的增加。
当PCI时钟信号频率上升到133MHz的时候,时钟周期是7.5ns。按10%允许误差计算,32条/64条AD信号线的传输延迟的误差,不允许超过0.75ns。如果我们进一步提升CLK频率,这方面的挑战会进一步增加。
另一方面的挑战在于信号的误码。
我们教科书上的数字信号的波形是横平竖直的,但实际上数字信号受到电子线路的寄生电容和寄生电感的影响,会变成这个样子:
这是因为,电路中寄生电容和寄生电感会产生一个寄生振荡。当寄生振荡的最大振幅达到原波形的一半的时候,就一定会造成误码。在数字电路中,误码是致命的。如果地址产生误码,会导致读写的目标错误,而指令误码会导致执行错误的指令。
那么,如何解决这两方面的挑战呢?
让我们回想计算机中一个古老而富有生机的接口——串口。
在最早的PC-XT计算机中,就提供了若干个串口,一般也成为COM口,标准情况下配置2个,称为COM1和COM2。
如图,一般的COM口有9个针脚,但一般实际上使用3个就可以了,它们分别是地线GND,接收RX和发送TX。
由于串口是连接计算机外部设备的,受到电气物理条件的限制,其工作频率最高为115.2KHz,在每个时钟周期内可以传输1bit,也就是波特率为115200。显然,这个速率只能用于一些低速外设的连接,如键盘、鼠标等。
在工业控制等场合,需要增加串口的传输距离,并且避免受到误码干扰的影响,工程师们对串口进行了电气信号方面的改造和传输协议方面的优化。
在实践中,我们发现,传输线受到干扰时,其旁边的线路也会受到强度相近的干扰。如两条平行的线路A和B,A电平为5V时,受到-3V强度的干扰后,电平为2V。而B电平为0V,受到干扰后电平为-3V。此种干扰叫做共模干扰。那么,如果用两条传输线的电压差作为判断0和1的依据,就可以抵抗绝大部分干扰信号了。因此,在工业控制领域,串口往往使用RS-485/422标准的电气信号来表示0和1。
RS-485/422规定,数据的收发各通过一对差分线来传输。每对差分线分为A线和B线,当A线电平比B线电平高2-6V的时候,认为逻辑信号为1,而B线电平比A线电平高2-6V的时候,认为逻辑信号为0。
我们发现,当传输线受到共模干扰的时候,由于A和B的传输电平同时受到干扰,因此,不会对传输的逻辑0或1造成影响!
注意这个图,当信号受到干扰的时候,A和B同时被干扰。在析出逻辑信号时,只要对A和B做减法就可以得到0或1的数字信号。
这种现象背后的原理,叫做差分传输对共模干扰的抑制。在工程技术中,越来越多的数字信号利用差分传输,从以太网、HDMI、USB、PCI-E到内存总线,都采用了这种传输方式。由于差分传输能够抑制共模干扰,传输线上的电压也可以大幅度降低,可以从10V以上降低到1.8V左右,大大节约了器件成本和能源消耗。
那么,万一差分传输出现了误码该如何应对呢?
我们下期分解。
相关文章
- 「浙岱渔」渔船登录台湾岛?扒一扒背后的 C 位技术
- 每秒最高1w+使用量,「AI绘画」成抖音年度爆款,背后技术秘籍现已公开
- 春晚背后的“新技术”,腾讯技术助力央视频春晚“新看法”
- 软硬件融合技术内幕 终极篇 (13) —— 飞鸽传书的背后 (中)
- ChatGPT 爆火的背后:深度解读“智能对话”与“人机交互”技术
- 天猫双11订单峰值58.3万笔/秒,消费狂欢背后隐藏了哪些技术?
- 【品牌专场】抖音背后的视频体验分析体系与优化技术揭秘
- PHP 程序员的技术成长规划详解编程语言
- 抽离原理标题:探究Linux抽离技术背后的原理(熟悉linux)
- Linux技术交流:前沿知识共享之旅(linux技术交流群)
- 【报名通道开启】贝壳找房2020 ICS安全技术峰会
- 32 万用户数据泄露的背后,独家揭秘地下黑产的技术变现
- 变身“奥运冠军”特效刷爆全网,背后是QQ影像中心人体姿态迁移技术
- 「唯物」对话轻客团队,“汽车级技术”智慧电单车背后的故事
- 掌握MySQL SID技术,实现数据库安全管理(mysqlsid)
- 揭秘:那些千奇百怪的VR外设,背后是怎样的技术和商业
- SQL Server锁定技术:实现事务安全(sqlserver 看锁)
- Oracle的分页技术:一探究竟(oracle是怎样分页的)
- 探索蚂蚁金服采用Redis技术背后的原理(蚂蚁金服redis原理)
- MySQL中Gz的数据压缩技术应用探讨(mysql中Gz)
- 前端技术也可以像Redis一样强大(前端类似redis)
- Oracle数据库中的物理表管理技术(oracle中的物理表)
- 「腾讯云数据库」火速拿下2000家金融客户,背后的技术方法论
- 预告:解析波士顿Handle机器人背后的技术 | 硬创公开课
- 量子视觉张聪:VR+行业还不成立,市场需要专注底层技术的创业公司
- 京东金融估值两年增2倍,称不做任何与数据和技术无关业务
- 苹果 Animoji 表情背后:面部识别技术如何一步步进化的?
- 一秒交易6100万次,解密双11背后的技术
- 「腾讯云数据库」火速拿下2000家金融客户,背后的技术方法论
- 解析:图像技术在直播中怎么用?聊一聊美女主播背后的美颜技术
- 专访腾讯云机器学习平台技术负责人:揭秘腾讯深度学习平台DI-X背后的秘密
- csdn论坛技术区平均给分功能