专栏首页OpenFPGA从PCI被“拍在沙滩上”谈并行总线和串行总线

从PCI被“拍在沙滩上”谈并行总线和串行总线

串行总线和并行总线接口

在高速串行总线流行起来之前,芯片之间的互联通过系统同步或者源同步的并行接口传输数据,而所谓的并行接口,是指通信中一个或几个字节(8位)数据是在n*8条并行传输线上同时由源端传到目的地,也可以说有多个数据线(几根就是几位),在每个时钟脉冲下可以发送多个数据位(几位的并行口就发送几位)。

串行通信指数据在单条一位宽的传输线上,一比特接一比特地按顺序传送的方式,在早期的定义里也有说只有一根数据线,每个时钟脉冲下只能发送一位数据的方式。

所以早期对串行通信与并行通信的理解为:同样的一个字节数据(8位),串行通信要分8次由低位到高位按顺序一位位地传送,而并行通信由于有8根线路,所以只要一次就可以传送过去,形象的说,把线路(通道)比作道路,能并排开几辆车的就可以说是“并行”,只能一辆一辆开的就属于“串行”了。

并行总线与串行总线的区别对比及优缺点

很明显,并行通信的速度要比串行通信的速度快得多,效率更高,费时更少。不过这些都是早期I/O速率都不高的情况下的理论理解,随着信息技术的飞速发展,之前的理解放在现在来看已经过时了,因为现在是高速串行信号时代了。

按照理论分析并行总线可以一次传多个数据位,而且时钟远远低于串行,理论应该成为目前高速传输信号的首选,那为什么像PCI、IEEE 1284、PATA等并行总线被PCIe、USB、SAT等串行总线所取代呢?

下面就针对并行总线为什么不能成为目前总线接口的主流?

图1‑5演示了系统同步(共同时钟)方式及源同步时钟方式并行总线接口。

图1‑5 系统同步(共同时钟)方式及源同步时钟方式并行总线接口

随着接口频率的提高,在系统同步接口方式中,有几个因素限制了有效数据窗口宽度的继续增加。

Ø时钟到达两个芯片的传播延时不相等(clock skew)

Ø并行数据各个bit的传播延时不相等(data skew)

Ø时钟的传播延时和数据的传播延时不一致(skew between data and clock)

虽然可以通过在目的芯片(chip #2)内用PLL补偿时钟延时差(clock skew),但是电压和温度(PVT)变化时,时钟延时的变化量和数据延时的变化量是不一样的,这又进一步恶化了数据窗口。

源同步接口方式中,发送侧Tx把时钟伴随数据一起发送出去,限制了clock skew对有效数据窗口的危害。通常在发送侧芯片内部,源同步接口把时钟信号和数据信号作一样的处理,也就是让它和数据信号经过相同的路径,保持相同的延时。这样PVT变化时,时钟和数据会朝着同一个方向增大或者减小相同的量,对skew最有利。

我们来做一些合理的典型假设,假设一个32bit数据的并行总线,

a)发送端的数据skew = 50 ps ---很高的要求

b)pcb走线引入的skew = 50ps ---很高的要求

c)时钟的周期抖动jitter = +/-50 ps ---很高的要求

d)接收端触发器采样窗口 = 250 ps ---Xilinx V7高端器件的IO触发器

可以大致估计出并行接口的最高时钟 = 1/(50+50+100+250) = 2.2GHz (DDR)或者1.1GHz (SDR)。

利用源同步接口,数据的有效窗口可以提高很多。通常频率都在1GHz以下。在实际应用中可以见到如SPI4.2接口的时钟可以高达DDR 700MHz x 16bits位宽。DDR Memory接口也算一种源同步接口,如DDR3在FPGA中可以做到大约800MHz的时钟。

要提高接口的传输带宽有两种方式,一种是提高时钟频率,一种是加大数据位宽。那么是不是可以无限制的增加数据的位宽呢?这就要牵涉到另外一个非常重要的问题-----同步开关噪声(SSN)。

这里不讨论SSN的原理,直接给出SSN的公式:SSN = L *N* di/dt

L是芯片封装电感,N是数据宽度,di/dt是电流变化的斜率。

随着频率的提高,数据位宽的增加,SSN成为提高传输带宽的主要瓶颈。图1.2是一个DDR3串扰的例子。图中低电平的理论值在0V,由于SSN的影响,低电平表现为震荡,震荡噪声的最大值达610mV,因此噪声余量只有1.5V/2-610mV=140mV。

图1‑6 DDR3串扰演示

因此也不可能靠无限的提高数据位宽来继续增加带宽。一种解决SSN的办法是使用差分信号替代单端信号,使用差分信号可以很好的解决SSN问题,代价是使用更多的芯片引脚。这在早期是可以接受的。但是摩尔定律的现象使得与几十年前相比可生产的芯片中硅电路的数量大幅增加,而芯片封装技术的pin密度并没有像硅密度一样以相同的速度在增加,因此I/O pin的封装实际上比硅电路还贵,这就意味着对于大多数芯片来说pin管脚越来越多变得不可接受。就好像我们都知道车道越多我们的通行效率就会更快,但随着现在的城市空间越来越小以及地价越来越贵,更多的车道慢慢的只能变得越来越难以实现。况且并行本身的I/O速率不高,就像拖拉机或毛马路,速度上不去再多车道也是枉然。

并且使用差分信号仍然解决不了数据skew的问题,很大位宽的差分信号再加上严格的时序限制,给并行接口带来了很大的挑战。

经上所述,并行总线在发高速传输的今天遇到了很多瓶颈,而这些瓶颈因为不能被解决,所以被串行总线所取代,但是将来随着一些工艺问题的解决,并行总线可能又被抬上“舞台”,像《PCIe“拍了拍”PCI- PCI和PCIe发展历史》这篇文章的演练历史一样。

PS:将来的DDR接口或许也会被串行总线所取代。。。(意淫ing)

这篇文章,没有过多的介绍串行总线,并不是串行总线并无缺点,高速的时钟带来的问题也很多,只不过后面要花大量篇幅介绍串行总线,以及他带来的问题及解决方式,所以这篇文章就没有进行过多介绍。

—END

文章分享自微信公众号:
OpenFPGA

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:碎碎思
原始发表时间:2020-07-06
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • PCIe“拍了拍”PCI- PCI和PCIe发展历史

    自PC在1981年被IBM发明以来,主板上都有扩展槽用于扩充计算机功能。现在最常见的扩展槽是PCIe插槽,实际上在你看不见的计算机主板芯片内部,各种硬件控制模块...

    碎碎思
  • 串行总线技术(一)-串行总线结构(以PCIe为例)

    在早期的计算机系统中,多数外围设备使用并行总线结构。这些总线包括PCI和PATA(并行ATA)。当通信速率较低时,并行总线结构可以设计得非常简单和有效,可以连接...

    碎碎思
  • 【划重点】总线分类,这次你终于能分清啦!

    首先,应该明白总线是什么?度娘的完整定义是:总线是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束,按照计算机所传输的信息种类。

    AI 电堂
  • 计算机总线

    总线是连接各个部件的信息传输线,是各个部件共享的传输介质,是计算机各种功能之间传送信息的公共通信干线,由导线组成。

    并发笔记
  • PCI与PCIe学习一——硬件篇[通俗易懂]

    最近在学习驱动开发过程中涉及到PCI相关知识,在网上看了很多文章,良莠不齐,我总结一下比较好的文章分享给大家,那就从源头开始说起。

    全栈程序员站长
  • 【译文】【第二章①】Mindshare PCI Express Technology 3.0

    欢迎参与 《Mindshare PCI Express Technology 3.0 一书的中文翻译计划》

    空白的贝塔
  • PCI Express 系列连载篇(一)

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。...

    FPGA技术江湖
  • 高速串行总线设计基础(二)什么是MGTs以及MGTs的优势在哪里?

    话说,很久以前,并行总线称霸电子行业的方方面面,无论是芯片之间的通信还是板间通信。

    Reborn Lee
  • 【译文】【第一章①】Mindshare PCI Express Technology 3.0

    欢迎参与 《Mindshare PCI Express Technology 3.0 一书的中文翻译计划》

    空白的贝塔
  • 硬件知识之PCIe(一)

    对于DBA而言网络、存储知识的重要性不言而喻,今天我们就来看一下硬件相关知识PCIE

    姚崇
  • pcie总线授时卡的使用

    计算机时间基本由网络时间或主板时钟芯片提供,导致时间误差大,在工业控制、数据测量等领域无法完成特定任务。为解决计算机时间误差较大问题,部分学者提出windows...

    时频专家
  • BOSS设置(3)

      五、Advanced Chipset Features(高级芯片组功能设定)项子菜单

    py3study
  • 【译文】【第一章③】Mindshare PCI Express Technology 3.0

    欢迎参与 《Mindshare PCI Express Technology 3.0 一书的中文翻译计划》

    空白的贝塔
  • 一篇文章带你看懂服务器 | 必看

    服务器是计算机的一种,它是网络上一种为客户端计算机提供各种服务的高性能的计算机,它在网络操作系统的控制下,将与其相连的硬盘、磁带、打印机、Modem及昂贵的专用...

    网络技术联盟站
  • 浅谈PCI Express体系结构(一)

    PCI(Peripheral Component Interconnect)总线的诞生与PC(Personal Computer)的蓬勃发展密切相关。在处理器体...

    碎碎思
  • 存储和服务器的三大件③

    解决了启动问题之后,随着三大组件的CPU和内存高速发展,总线上的IO设备速率就跟不上了另外两大组件的速率了。

    时间之外沉浮事
  • 计算机组成原理学习笔记(一)

    希希里之海
  • PCI Express 系列连载篇(十七)

    最近有很多大侠在交流群里讨论PCI总线,PCI作为高速接口之一,在当下的FPGA产品设计研发中,地位举足轻重,应用广泛,今天给大侠带来PCI Express 系...

    FPGA技术江湖

扫码关注腾讯云开发者

领取腾讯云代金券