pcie总线.docx
- 文档编号:13584426
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:24
- 大小:59.73KB
pcie总线.docx
《pcie总线.docx》由会员分享,可在线阅读,更多相关《pcie总线.docx(24页珍藏版)》请在冰点文库上搜索。
pcie总线
pciExpress
百科名片
PCIExpress插槽(黄和绿色)
PCIExpress是新一代的总线接口。
早在2001年的春季,英特尔公司就提出了要用新一代的技术取代PCI总线和多种芯片的内部连接,并称之为第三代I/O总线技术。
随后在2001年底,包括Intel、AMD、DELL、IBM在内的20多家业界主导公司开始起草新技术的规范,并在2002年完成,对其正式命名为PCIExpress。
它采用了目前业内流行的点对点串行连接,比起PCI以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到PCI所不能提供的高带宽。
基本概念
与其他传输规格比较
解决PCIExpress协议一致性问题
PCIExpress的硬件协议
提供PCIExpress插槽的主板介绍
采用pciExpress技术的显卡
PCIExpress4路采集卡
基本概念
PCIExpress的接口根据总线位宽不同而有所差异,包括X1、X4、X8以及X16(X2模式将用于内部接口而非插槽模式)。
较短的PCIExpress卡可以插入较长的PCIExpress插槽中使用。
PCIExpress接口能够支持热拔插,这也是个不小的飞跃。
PCIExpress卡支持的三种电压分别为+3.3V、3.3Vaux以及+12V。
用于取代AGP接口的PCIExpress接口位宽为X16,将能够提供5GB/s的带宽,即便有编码上的损耗但仍能够提4GB/s左右的实际带宽,远远超过AGP8X的2.1GB/s的带宽。
PCIExpress规格从1条通道连接到32条通道连接,有非常强的伸缩性,以满足不同系统设备对数据传输带宽不同的需求。
例如,PCIExpressX1规格支持双向数据传输,每向数据传输带宽250MB/s,PCIExpressX1已经可以满足主流声效芯片、网卡芯片和存储设备对数据传输带宽的需求,但是远远无法满足图形芯片对数据传输带宽的需求。
因此,必须采用PCIExpressX16,即16条点对点数据传输通道连接来取代传统的AGP总线。
PCIExpressX16也支持双向数据传输,每向数据传输带宽高达4GB/s,双向数据传输带宽有8GB/s之多,相比之下,目前广泛采用的AGP8X数据传输只提供2.1GB/s的数据传输带宽。
尽管PCIExpress技术规格允许实现X1(250MB/秒),X2,X4,X8,X12,X16和X32通道规格,但是依目前形式来看,PCIExpressX1和PCIExpressX16将成为PCIExpress主流规格,同时芯片组厂商将在南桥芯片当中添加对PCIExpressX1的支持,在北桥芯片当中添加对PCIExpressX16的支持。
除去提供极高数据传输带宽之外,PCIExpress因为采用串行数据包方式传递数据,所以PCIExpress接口每个针脚可以获得比传统I/O标准更多的带宽,这样就可以降低PCIExpress设备生产成本和体积。
另外,PCIExpress也支持高阶电源管理,支持热插拔,支持数据同步传输,为优先传输数据进行带宽优化。
在兼容性方面,PCIExpress在软件层面上兼容目前的PCI技术和设备,支持PCI设备和内存模组的初始化,也就是说目前的驱动程序、操作系统无需推倒重来,就可以支持PCIExpress设备。
PCIExpress是新一代能够提供大量带宽和丰富功能以实现令人激动的新式图形应用的全新架构。
PCIExpress可以为带宽渴求型应用分配相应的带宽,大幅提高中央处理器(CPU)和图形处理器(GPU)之间的带宽。
对最终用户而言,他们可以感受影院级图象效果,并获得无缝多媒体体验。
PCIExpress采用串行方式传输Data。
它和原有的ISA、PCI和AGP总线不同。
这种传输方式,不必因为某个硬件的频率而影响到整个系统性能的发挥。
当然了,整个系统依然是一个整体,但是我们可以方便的提高某一频率低的硬件的频率,以便系统在没有瓶颈的环境下使用。
以串行方式提升频率增进效能,关键的限制在于采用什么样的物理传输介质。
目前人们普遍采用铜线路,而理论上铜这个材质可以提供的传输极限是10Gbps。
这也就是为什么PCIExpress的极限传输速度的答案。
因为PCIExpress工作模式是一种称之为“电压差式传输”的方式。
两条铜线,通过相互间的电压差来表示逻辑符号0和1。
以这种方式进行资料传输,可以支持极高的运行频率。
所以在速度达到10Gbps后,只需换用光纤(FibreChannel)就可以使之效能倍增。
PCIExpress是下一阶段的主要传输总线带宽技术。
然而,GPU对总线带宽的需求是子系统中最高的,显而易见的是,视频在PCIExpress应占有一定的分量。
显然,PCIExpress的提出,并非是总线形式的一个结束。
恰恰相反,其技术的成熟仍旧需要这个时间。
当然了,趁这个时间,那些芯片、主板、视频等厂家是否能出来支持是PCIExpress发展的关键。
不过,至今依然被看好的AGP8X的性能与PCIExpress在性能上的差距虽然不是太明显,但是随着PCIExpress的完善,其差距将是不言而喻的。
PCI-Express是最新的总线和接口标准,它原来的名称为“3GIO”,是由英特尔提出的,很明显英特尔的意思是它代表着下一代I/O接口标准。
交由PCI-SIG(PCI特殊兴趣组织)认证发布后才改名为“PCI-Express”。
这个新标准将全面取代现行的PCI和AGP,最终实现总线标准的统一。
它的主要优势就是数据传输速率高,目前最高可达到10GB/s以上,而且还有相当大的发展潜力。
PCIExpress也有多种规格,从PCIExpress1X到PCIExpress16X,能满足现在和将来一定时间内出现的低速设备和高速设备的需求。
能支持PCIExpress的主要是英特尔的i915和i925系列芯片组。
当然要实现全面取代PCI和AGP也需要一个相当长的过程,就象当初PCI取代ISA一样,都会有个过渡的过程。
与其他传输规格比较
PCIExpressx16插槽
PCIExpressx1插槽
PCIe的规范主要是为了提升电脑内部所有总线的速度,因此频宽有多种不同规格标准,其中PCIex16是专为显卡所设计的部分。
AGPGB/s,不过对上PCIex16的8GB/s,很明显的就分出胜负,但8GB/s只有指资料传输的理想值,并不是使用PCIe接口的显示卡,就能够有突飞猛进的效能表现,实际的测试数据上并不会有这么大的差异存在。
传输通道数
脚Pin总数
主接口区Pin数
总长度
主接口区长度
x1
36
14
25mm
7.65mm
x4
64
42
39mm
21.65mm
x8
98
76
56mm
38.65mm
x16
164
142
89mm
71.65mm
规格
总线宽度
工作时脉
传输速率
32位元
33/66MHz
133/266MiB/s
64位元
66/100/133MHz
533/800/1066MiB/s
PCI-X2.0(DDR)
64位元
133MHz
2.1GiB/s
PCI-X2.0(QDR)
64位元
133MHz
4.2GiB/s
AGP2X
32位元
66MHz
532MiB/s
AGP4X
32位元
66MHz
1.0GiB/s
AGP8X
32位元
66MHz
2.1GiB/s
PCI-E1X
8位元
2.5GHz
512MiB/s(双工)
PCI-E2X
8位元
2.5GHz
1.0GiB/s(双工)
PCI-E4X
8位元
2.5GHz
2.0GiB/s(双工)
PCI-E8X
8位元
2.5GHz
4.0GiB/s(双工)
PCI-E16X
8位元
2.5GHz
8.0GiB/s(双工)
甚至对于某些PCI-E1X插槽,我们完全可以将其锯开(这样有可能会失去质保),比如可以用来插上NVDIA的显卡做为物理加速卡与ATI显卡一同工作。
解决PCIExpress协议一致性问题
在开发第一块基于PCIExpress的SoC过程中,ClearSpeed公司为了在有限的时间和预算条件下确保PCIExpress协议一致性而面临重重困难。
PCIExpress是一种复杂的协议,具有特别大的覆盖范围。
从管理的角度看,保证协议一致性没有其它更好的方法,只有采用标准驱动的验证过程。
遗憾的是,即使做了上千次覆盖相关场景的测试,仍留有相当大的覆盖漏洞,从而使得这个方法没有可预测性,成本也很高。
而另外一种普通的随机测试方法也没有足够的可预测性。
ClearSpeed公司开始意识到,理想的方法可以产生显著的好处:
它能最小化技术开发工作量,同时最大化测试应用控制。
ClearSpeed公司率先采用Cadence公司提供的商用化PCIe验证IP。
这种验证IP被称为UVC,包含了一致性管理系统(CMS),该系统将覆盖空间划分和映射到了PCIe规范。
CMS还提供受限随机测试(称为测试序列)形式的一致性测试套件,用于自动取得针对每个PCIe规范部分的高功能性覆盖。
ClearSpeed公司还在UVC基础上创建了自己的受限随机测试套件。
相关覆盖在每次测试组运行之后都会进行分析,从而能清楚地理解覆盖漏洞出现在什么地方,并指导新的测试应在什么地方进行以到达未被覆盖的场景。
这种方法还向ClearSpeed提供了无价的项目管理工具,因为它能帮助理解和报告验证状态。
ClearSpeed公司目前能够在每个主要的规范领域正常地跟踪覆盖、缺陷统计和测试故障。
工程背景
ClearSpeed公司的产品范围包括芯片、加速器卡、机架模块、软件和支持。
ClearSpeed公司的芯片、加速器卡和机架模块都可以与工业标准的x86系统一起使用。
ClearSpeed公司的芯片采用C语言进行编程,并且公司向用户提供可与所有标准软件开发工具协同工作的完整IDE.
与以前的CXS600芯片相比,主要变化如下:
1.一个芯片上有两个处理器内核(“MTAP”)
2.芯片上有一个标准的PCIe接口(相对私有PCIx接口而言)
3.MTAP有多项的改进
总体验证需求和策略
图1给出了ClearSpeed产品的架构。
为了确保这个复杂产品的质量,需要对以下性能进行验证:
1.驱动程序代码与芯片的紧密集成
2.众多软件库和应用程序的集成
3.与各种主机(操作系统和芯片组)环境的兼容性
4.高性能和低功率
从芯片本身看,主要验证挑战是最新引入的PCIe接口。
为了应对这些验证挑战,ClearSpeed公司采用了一种适合待测复杂设计的先进验证策略。
整个验证策略中有一些要点是可以明确的:
1.这种验证策略是以仿真为基础,并采用了覆盖驱动的伪随机方法。
2.使用了分层仿真策略,从模块级开始,并逐渐向外扩展。
3.与软件的协同仿真非常重要,它有助于展示产品的正确性,并在芯片回厂时为硅片取得成功取得了良好开端。
4.软件协同仿真也是分层执行的,从驱动程序开始,一直扩展到应用程序。
5.模块和层次体系之间的验证再利用。
6.使用验证IP。
这样做有利于充分利用该领域专家的现有知识,并有利于加快测试平台的开发速度。
总的验证指导原则是在芯片开发初期从商业和技术角度获得签字确认标准。
这些确认标准是客观性的,可以使用合适的准则进行测量。
这样做具有很多优点,包括:
1.能够使所有感兴趣方预先同意用于验证的对象。
2.能够在项目执行中跟踪向验证签字确认方向发展的进程。
3.能够建立流片时的信心。
为了与上述原则保持一致,预先对CSX700验证确认标准进行了定义。
所选的关键指标有:
1.功能覆盖目标:
(1)优先级1覆盖目标达到100%
(2)所有其它覆盖目标至少达到95%,并检查所有未实现的覆盖目标。
2.编写和支持的所有系统级测试。
3.在所有可用PCIe服务器中工作的原型PCIe。
4.检查缺陷发现率以确保(与功能覆盖一起)我们正在接近所有最重要缺陷已经被发现的点。
5.检查任何突出并已知未修复的问题,并评估它们的影响。
下面将在上文描述的总体验证策略框架下讨论PCIe验证策略。
模块级验证
PCIe模块级测试平台。
ClearSpeed公司已经开发过图中所示的AVCI、PVCI和私有协议,因此PCIe接口提出了主要的验证挑战。
由于我们使用的IP来自不同的管线PHY和端点内核供应商,因此这种挑战越发艰巨。
测试平台采用了许多UVC。
除了PCIeUVC外,其它UVC都是ClearSpeed公司自己开发的。
测试平台的其它部分使用公司自己的UVC有利于建立同质的eRM一致性系统(随后的uRM和现在的OVM)。
选用第三方VIP的原因是因为:
PCIe协议的复杂性;验证任务的工作量以及缺少内部资源;VIP的成熟度;独立的VIP可以由与内部开发小组不相干的外部PCIe专家组开发。
系统级测试
系统级测试平台包括了芯片和软件驱动堆栈。
实际的软件驱动程序基本原样投入使用,除了在堆栈底部做了一些修改,即将调用做进了仿真环境中,并由软件驱动PCIeUVC。
更多细节请参考图4。
在本例中,驱动程序完成与硬件对话要做的所有事情,并且每个事务都要传送给仿真器。
这样运行起来虽然比较慢,但确实能让我们测试DMA引擎等。
驱动程序可以连接到PCIe层上面的仿真器。
这样无需花费时间在完整仿真每个PCI事务上面就可以实现对更高层单元的仿真。
这对仿真在处理器上运行的程序来说是非常有用的。
虽然通过使用UVC可以在测试规范允许的地方(例如在一些要写入的数据中,在定义范围内的地址中)使用受限随机激励,但在系统级主要应用定向测试方法。
在系统级存在许多现成的定向测试,主要目标是用它们扩展测试这个芯片的变化(如前所列出的)。
许多vPlanning会话被保持以获得测试规范,然后我们就能跟踪这些测试的实现。
一旦驱动程序堆栈经验证能与RTL一起工作,就可以运行较高层的软件。
运行这些应用程序能给功能验证和性能验证带来高度的信心。
在CSX700的开发过程中,ClearSpeed公司生产了一种基于现有硅片(CSX600)但用FPGA提供PCIe接口的产品,这样允许我们模拟PCIe接口并执行兼容性测试。
也就是说,我们能将被模拟的PCIe接口连接到运行各种OS的众多服务器上,从而在流片前确定兼容性问题。
它还能让我们更彻底地测试带PCIe的软件驱动程序堆栈接口。
该方法可以识别主要位于PCIe堆栈物理层中的缺陷(FPGA中的PHY不同于我们芯片中的PHY),也让我们注意到我们连接的服务器中PCIe实现的变化数量,并促使我们提升取得很高覆盖的重要性:
我们对覆盖划分优先等级,并为最高优先级对象设定100%的目标。
然而,该方法不能识别通过仿真&覆盖也不能发现的PHY外的任何缺陷。
这使我们相信,PCIe仿真中的高覆盖将有助于取得很高的首次流片成功率。
原型的其它优势还表现在软件开发方面。
它能帮助PCIe软件驱动程序远早于CSX700硅片开发出来,加快基于CSX700的产品的上市时间。
可配置的验证环境
用于PCIExpress的IncisiveUVC能让用户专注于设计的任何部分或整个设计,并针对验证过程中每一阶段的特殊需要优化验证环境。
IncisiveUVC一般用于在模块、芯片和系统级对PCIExpress器件进行功能验证。
它也可以通过配置有选择地激活或关闭各个功能模块以及功能覆盖和检测机制来优化特殊任务的验证。
这样可以提供到验证收敛的最可预测路径,并最大化在仿真器和工作站方面做出的投资回报。
自动激励产生
与使用上千次定向测试的其它解决方案不同,用于PCIExpress的UVC采用自动激励发生器来减少用户需要做的工作量。
利用包含所供序列库在内的自动化情景产生功能,用户可以覆盖主要协议功能以及难以到达的情景和边界案例。
通过增加少量测试,剩余的边界案例就能被一一验证。
这种方法有助于用户更快地发现更多缺陷,并让设计师有更多的时间进行DUT的私有功能测试。
CMS可以实现整个过程的自动化。
使用CMS实现覆盖驱动的验证
CMS向用户提供了可执行的验证计划(vPlan)。
vPlan与EnterpriseManager以及内置功能覆盖模型一起可以提供清晰地报告哪些被覆盖、还有哪些没被覆盖所需的标准。
这给用户提供了验证过程的路线图、收敛标准以及可预测的验证过程,并向项目或管理方提供明晰的状态报告。
这种方法被称为覆盖驱动的验证,可以帮助验证人员方便地识别覆盖漏洞,并将资源集中用于DUT的有问题部分。
Cadence的再利用方法可以快速建立功能验证环境,确保在从模块级验证向芯片级、系统级验证转移以及派生设计时能立即再利用基于UVC的环境。
这种方法通过消除重复工作而节省了时间与资源。
覆盖点的优先级划分
通过使用能用来屏蔽掉与DUT无关的覆盖区/条目的“透视图(perspective)”,ClearSpeed公司能够只考虑与实现有关的覆盖点。
ClearSpeed使用以下这个透视图:
“端点,AER=On,VC1-7=Off,完成器退出=Off,配置请求重试状态=Off,抑制=Off"
CMS允许由主要的PCIe模块TPL、TXN、DLL、PHY、PMG、SYS和CONFIG报告覆盖,这有助于ClearSpeed公司根据技术风险划分验证工作的优先级。
我们认为物理层(PHY)存在较高的风险,因为物理层有两个不同的IP供应商,而且FPGA原型测试中没有覆盖PHY(因为FPGA使用不同的PHY);Powermgt是下一个最高优先级对象,因为在FPGA原型中没有覆盖到它(由于技术限制的原因);数据链路层是下一优先等级,因为它靠近PHY。
我们还要求更细颗粒的优先级划分:
模块内的优先级划分。
虽然一般来说可以使用透视图进行优先级划分,但这种方法不能满足所有需要和优先级划分的使用模型。
它缺少更细的颗粒和一些对CMS专业用户(如ClearSpeed和IP开发人员)来说更重要的再利用因素。
一致性测试套件
CMS提供的一致性测试可以使你一开始就有一个很好的基本覆盖,并因此而快速启动验证工作。
ClearSpeed公司是比较早介入的,在整个项目中也在不断自我修正(附加的覆盖项目和一致性测试),因此一致性测试取得的覆盖在项目过程中会有变化。
据Cadence公司目前估计,用户通过使用现成的CMS测试套件能够达到约70%的覆盖。
CMS测试也能经过配置进入PCIe协议的边界案例。
然后,我们就可以写出许多自己的测试来驱动UVC达到想要的覆盖水平。
[1]
总线技术,X1模式的扩展口带宽总和可达到1GB/s,X16图形接口更可以达到16GB/s的惊人带宽值。
PCIExpress的硬件协议
PCIe的连接是建立在一个双向的序列的(1-bit)点对点连接基础之上,这称之为“传输通道”。
与PCI连接形成鲜明对比的是PCI是基于总线控制,所有设备共同分享的单向32位并行总线。
PCIe是一个多层协议,由一个对话层,一个数据交换层和一个物理层构成。
物理层又可进一步分为逻辑子层和电气子层。
逻辑子层又可分为物理代码子层(PCS)和介质接入控制子层(MAC)。
物理层
各式不同的PCIExpress插槽(由上而下:
x4,x16,x1,与x16),相较于传统的32-bitPCI插槽(最下方),取自于DFI的LanPartynF4Ultra-D机板
于使用电力方面,每组流水线使用两个单向的低电压差分信号波特。
传送及接收不同数据会使用不同的传输通道,每一通道可运作四项资料。
两个PCIe设备之间的连接成为“链接”,这形成了1组或更多的传输通道。
各个设备最少支持1传输通道(x1)的链接。
也可以有2,4,8,16,32个通道的链接。
这可以更好的提供双向兼容性。
(x2模式将用于内部接口而非插槽模式)PCIe卡能使用在至少与之传输通道相当的插槽上(例如x1接口的卡也能工作在x4或x16的插槽上)。
一个支持较多传输通道的插槽可以建立较少的传输通道(例如8个通道的插槽能支持1个通道)。
PCIe设备之间的链接将使用两设备中较少通道数的作为标准。
一个支持较多通道的设备不能在支持较少通道的插槽上正常工作,例如x4接口的卡不能在x1的插槽上正常工作(插不入),但它能在x4的插槽上只建立1个传输通道(x1)。
PCIe卡能在同一数据传输通道内传输包括中断在内的全部控制信息。
这也方便了与PCI的兼容。
多传输通道上的数据传输采取交叉存取,这意味着连续字节交叉存取在不同的通道上。
这一特性被称之为“数据条纹”,需要非常复杂的硬件支持连续数据的同步存取,也对链接的数据吞吐量要求极高。
由于数据填充的需求,数据交叉存取不需要缩小数据包。
与其它高速数传输协议一样,时钟信息必须嵌入信号中。
在物理层上,PCIe采用常见的8B/10B代码方式来确保连续的1和0字符串长度符合标准,这样保证接收端不会误读。
编码方案用10位编码比特代替8个未编码比特来传输数据,占用20%的总带宽。
有些协议(如SONET)使用另外的编码结构如“不规则”在数据流中嵌入时钟信息。
PCIe的特性也定义了一种“不规则化”的运算方法,但这种方法与SONET完全不同,它的方法主要用来避免数据传输过程中的数据重复而出现数据散射。
第一代PCIe采用2.5兆位单信号传输率,PCI-SIG计划在未来版本中增强到5~10兆位。
数据链接层
数据链接层采用按序的交换层信息包(TransactionLayerPackets,TLPs),是由交换层生成,按32位循环冗余校验码(CRC,本文中用LCRC)进行数据保护,采用著名的协议(AckandNaksignaling)的信息包。
TLPs能通过LCRC校验和连续性校验的称为Ack(命令正确应答);没有通过校验的称为Nak(没有应答)。
没有应答的TLPs或者等待超时的TLPs会被重新传输。
这些内容存储在数据链接层的缓存内。
这样可以确保TLPs的传输不受电子噪音干扰。
Ack和Nak信号由低层的信息包传送,这些包被称为数据链接层信息包(DataLinkLayerPacket,DLLP)。
DLLP也用来传送两个互连设备的交换层之间的流控制信息和实现电源管理功能。
交换层
PCIExpress采用分离交换(数据提交和应答在时间上分离),可保证传输通道在目标端设备等待发送回应信息传送其它数据信息。
它采用了可信性流控制。
这一模式下,一个设备广播它可接收缓存的初始可信信号量。
链接另一方的设备会在发送数据时统计每一发送的TLP所占用的可信信号量,直至达到接收端初始可信信号最高值。
接收端在处理完毕缓存中的TLP后,它会回送发送端一个比初始值更大的可信信号量。
可信信号统计是定制的标准计数器,这一算法的优势,相对于其他算法,如握手传输协议等,在于可信信号的回传反应时间不会影响系统性能,因为如果双方设备的缓存足够大的话,是不会出现达到可信信号最高值的情况,这样发送数据不会停顿。
第
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- pcie 总线