结合PCI Express接口的千兆以太网络(Gigabit Ethernet, GbE)控制器,能发挥PCI Express高流量、低延迟的功能,带来真正”Gigabit”等级的效能。通过这些强化的功能,系统可提供最佳的容量以及芯片内存的使用效率,进而大幅节省耗电量与使用空间。上集中,我们探讨了将PCI Express数字知识产权(Intellectual Property, IP)核心整合至GbE设计时,可能面临到的非技术及技术挑战。本集我们将继续介绍设计团队在面临PCI Express数字IP整合,以及GbE控制器检验的挑战时,所采取的解决方案。
PCI Express IP整合与验证法
● 设计技术与整合流程
PCI Express IP的整合必须在精准规划的阶段下执行。初期的整合阶段主要是由GbE控制器PCI Express子系统小组所负责,该小组也是整个GbE控制器设计团队的一部分。PCI Express子系统小组负责执行初期的整合步骤,并为其后的整个控制器设计团队提供IP。从PCI Express IP至PCI Express子系统,必须经过下列开发步骤:
●评测最新的IP发布
●整合设计资料库中的程序码
●针对已发布的IP程序码进行客户定制化与设置
●针对PCI Express PHY进行整合,包括物理层编码子层及SerDes
图5显示一个整合型的客户定制化IP,以及外围GbE控制器的功能模块。
PCI Express子系统最终将会与GbE控制器、MAC与PHY、时钟与重置、外部ROM控制器,以及测试子系统加以整合。这些额外的整合步骤,需由整个GbE控制器的设计团队合作进行,才能开发出如图4(见8月刊)所示的完整系统。
为成功进行整合,PCI Express IP与外围的区块必须依循相同的接口规范。团队之间通畅无阻的沟通联系以及精准陈述的文件,是紧密整合的必要条件。即使IP组件能正常运作于隔离状态下,但若整合至子系统时发生不兼容的状况,仍是不符合标准的。以下两个例子详细描述了在整合阶段,须仔细考虑的关键问题。
案例一:拥有GbE控制器直接记忆体存取(Direct Memory Access, DMA)引擎的应用逻辑的IP接口
在此阶段,资料区域分成数个信号区段,以传送PCI Express规格中定义的PCI Express封包表头栏位。这些栏位的内容必须遵循PCI Express规格所规范的高阶格式规则。在应用逻辑层面亦须遵循这些规范,使原始资料与PCI Express封包格式之间得以进行转换,且让基本资料转换功能达到最高的效率。
案例二:PCI Express重置执行
设计重置机制时,必须彻底了解PCI以及PCI Express的重置类别。这些重置必须妥善地对映至PCI Express IP的重置信号,以便进行转换。每个重置信号都涵盖一个特定的重置领域,例如设定暂存器、资料通道逻辑等。GbE控制器团队设计了一个模块,负责执行这种对应机制。重置领域的定义包含了GbE PHY、MAC、桥接器控制器及PCI Express SerDes PHY的整个设计。不确实的对应或延伸将导致功能失常,轻者如组件运作不顺畅,重者甚至会造成整个平台完全停摆。
● PCI Express核心的定制化与组态设定
图5显示了针对PCI Express核心所执行的定制化工作,使其得以建构出GbE控制器的PCI Express子系统。业者可根据技术风险增加的程度,排定定制化作业的优先顺序。下列为定制化的作业项目:
●配合芯片检验阶段,进行接口的测试与除错
●针对GbE控制器的基本软件编程需求,进行组态空间的定制化设计
●扩增SerDes 控制、状态,以及测试接口
●延伸区域总线,让EEPROM载入开机预设组态暂存器值及PXE(Preboot Execution Environment),以便通过网络进行远端开机
●调整内存结构的容量,并以实际内存模块来取代高端行为内存模块
● 验证策略与作业计划
接下来,我们将针对现今的主流设计模式,探讨其功能检验的方法,其中包括自行开发IP及向其它厂商授权IP。
检验策略的选择必须依据模拟时所发现的应用需求。在决定检验方法时,主要须考虑是否能取得集中式运算主机群的运算资源。GbE控制器设计团队的主要工作为建构一个测试平台。检验工作须依赖检验环境与测试平台的定义、选择的触发产生策略,以及涵盖模组的定义。
任何复杂的检验环境都是由许多检验组件逐渐累积而成。每个检验组件含有一个或多个总线功能模块(bus functional modules, BFM)及监控组件。BFM将高端触发结构转译成低端资料,并传送至组件的输入端口。监控组件包含自动检查与功能检验项目。检验环境的结构组织由受测的结构以及其子系统与模块的阶层所控制。从这个角度来看,GbE控制器的检验环境可被视为一个阶层式的检验环境。关闭子系统边界的检验组件驱动程序,并保持监视组件继续开启,就能重复使用子系统环境。
借由这种方法,监视组件与其内容自动化功能检查与涵盖项目就能移转至下个阶层。某些先前由子系统驱动程序提供的触发机制,如今则是从其它组件通过内部接口送出触发。除了单纯的结构整合外,触发产生组件亦须进行扩充,以便与输入端子系统驱动程序的作业进行同步化,让更高端程序的作业能够同步协调,或者处理特别的边界条件。这些考虑因素都能应用在PCI Express子系统检验环境的设计,以及与整个GbE控制器环境之间的互动上。
尽管PCI Express子系统的设计是从PCI Express IP延伸而来,且IP供应商已进行过大量的测试,但PCI Express子系统本身仍需要一个检验环境。第一个原因是因为其IP已经过定制化,且已针对GbE控制器的需求进行调整。第二个原因是在整合至整个设计之前,必须针对PCI Express数字逻辑与PCI Express PHY之间的整合进行彻底的测试。相关的检验测试计划主要锁定定制化与PHY的整合,而不针对PCI Express资料链结层的功能等核心基础进行重新的检验。
在触发机制的建构方面,GbE控制器团队采用一种直接-随机模式,运用一个随机触发产生引擎。该引擎是由一种抽象语言所撰写的叙述所构成。基本限制条件定义了资料结构,例如PCI Express TLP表头栏位构成规则等等。其它的限制条件则建构出团队测试计画中定义的测试环境。这样的模式为GbE控制器的设计带来许多利益。首先,由于这种模式仅须撰写与维护少量的测试程序码,其能不费力地探索最大的功能涵盖范围。此外,这种模式还能产生测试人员没有想到,或当遵循测试产生策略撰写程序码时所忽略掉的程序。最后,其能套用额外的程序码撰写策略,让设计团队确保特定的范围确实完成测试,以便将触发产生引擎导入边界。
模拟式功能检验工作的进度,不能只以CPU使用时间来衡量,需配合程序码涵盖率、功能涵盖率,以及嵌入确认机制等元素,一同衡量评估。程序码涵盖率评估设计方案的进度,且能找出尚未测试的区域。针对触发组件进行高端功能分割,就可建构出功能涵盖模型。功能涵盖主要量测组件功能的执行状况,在各种不同速率下进行模拟-随机测试案例。GbE控制器设计团队亦运用了嵌入在PCI Express IP程序码中的叙述来补充其涵盖模型。
达到高效能、
小尺寸及低功耗目标的核心组态
为在PCI Express IP的定制化与组态设定时达到最低的功耗、最低的延迟、最小的内存容量规格、以及最佳的系统效能,GbE控制器团队在设计时,需要将各方因素纳入考虑并进行调整。
● 传输容量、DMA引擎及TLP分割
图6显示各种资料带宽在不同TLP最高资源规格下,每种耗用资源模式的效应。资料链结层的耗用资源有别于封包结构的耗用资源,其链路传输方向的影响,通常与另一个方向运作有直接关系。例如:如往上游传送的Ack/Nak DLLP会对向下游传送的信号产生影响。为达到简化的目的,下图以1:1的比例显示传送TLP与DLLP之间的关系
使用PCI Express IP时,资料分割的作业是由应用逻辑根据PCI Express Max_Payload_Size参数值,或者自然调整的4 Kb 地址边界交错避免等其它规则来进行。
从应用逻辑的角度来看,选择适合的Max_Payload_Size支持时,需要考虑最高的尖峰流量目标,以及每个内部PCI Express要求代理组件(此处指的是DMA引擎)的最高链路存取延迟。即使以Max_Payload_Size的最小值128 B,仍能带来远超过1 Gbps的最高可用带宽,这样的带宽是以太网络在同一个方向上的最高资料传输率。不过,PCI Express最高带宽并非只用于在主控端内存之间传送网络资料,其也会用来支持其它网络资料传送流程,配合软件层DMA管理以及硬体DMA引擎之间的互动。GbE控制器DMA架构与逻辑结构都已针对PCI Express进行过最佳化调整。其中,设计团队特别选用DMA描述语言的结构,可让描述单元能把所有相关信息装入至一个Max_Payload_Size封包中。
由于PCI Express采用序列双工机制,并对映至GbE双工,PCI Express接口的GbE控制器可采用两个完全独立的DMA引擎:一个Tx传送端DMA引擎,负责将资料传送至网络;另一个Rx接收端DMA引擎,用来接收从网络传来的资料。除了描述器结构的最佳化之外,PCI Express GbE控制器还能运用PCI Express所带来的其它高效能特色。
为充分发挥分割式交易的效率,在主控端内存执行读取作业时,可让每个引擎追踪多个PCI Express进行中的交易。这项功能特别适用于Tx DMA引擎,这种引擎的主要工作是将资料从主控端内存通过控制器传送至网络。其利用Tx传送端DMA引擎重新组合资料,让总资料量配合以太网络巨型视频框的设定。PCI Express规格并不要求,也不保证在PCI Express架构中的”Completions to Read Requests”需维持其次序。PCI Express支持的高传输流量,让系统能在接收端建置直接传送的资料通道。资料可借此直接从网络传送到主控端内存,而不必经过芯片内的缓冲区,因此能够降低芯片内部内存的容量。
● 硅元件效能
为完全发挥GbE控制器的功能,除了硅元件以外,驱动程序也是其中一项必要条件。以标准流量量测工具及平台所测试出的结果,显示接收端与发送端的持续尖峰值流量能轻易攀升至940 Mbps。即使长时间处于“gigabit”级的全双工资料传输模式下,耗电量也能维持在900 mW以下。由于采用串行技术,元件可嵌入在低针脚数的封装中,像是68针脚的多层陶瓷基板、或64针脚的QFN,进而达到非常小的体积。
结语
本文介绍了当将PCI Express数字IP,整合至PCI Express接口的GbE控制器或其它高速接口元件时,所面临的各种重要挑战,并探讨用来克服这些问题的方法。
选用适合的IP供应商所提供的PCI Express IP方案,是关键的第一步。为成功整合IP,须与IP供应商密切合作,并注意IP发布功能改良与修复错误的信息。尤其是PCI Express技术尚处于发展初期的阶段,因此这方面的工作尤其重要。
为成功整合IP,系统单芯片设计与检验团队必须对PCI Express系统有相当完整的了解。若缺乏这样的能力,便很容易开发出不符规格且无法运作的解决方案。
GbE控制器设计团队选择了以仿真器来进行检验工作,运用抽象检验语言及直接随机测试方法,借以发挥充裕运算效能所带来的效益。在IP完成定制化,并连结选定的PCI Express物理层组件,构建出控制器的PCI Express子系统之后,就可采用这种方式测试IP。
若设计架构能发挥PCI Express各种高效能特性,如高流量、分割交易、耗电率管理等,且IP也针对其用途进行了妥善的规划设定,产品将能达到“gigabit”等级的流量,且不必增加尺寸与耗电量。
由于具备了扩充弹性,PCI Express能支持通信与网络硅元件厂商的产品发展时程,以及未来网络接口元件的需求,包括提高传输流量,以及降低耗电,让固定式或便携式平台都能快速传送多元化的内容。