PCI-E技术发展历史及技术规范.doc_第1页
PCI-E技术发展历史及技术规范.doc_第2页
PCI-E技术发展历史及技术规范.doc_第3页
PCI-E技术发展历史及技术规范.doc_第4页
PCI-E技术发展历史及技术规范.doc_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3GIO的点点滴滴(四) 3GIO技术综观 【陈乃塘】 2003.06 承接上回,已将PCI接口的重要细节回顾至一个段落。只是,不知阁下心中有没有触发起一阵疑问。既然PCI接口规范中老早已有64位、66MHz的定义存在,为何只能够在文字上相见,实际的使用环境场合中却几乎看不见64位、66MHz适配卡或产品的踪影。这是PCI接口心中永远的痛,我实在不忍心在伤口上洒盐。只是想在此借机告知阁下一件事情,那就是为何并列式接口几乎全面性(不是全部21)倒向串行式接口。USB、1394b、SerialATA、GIO、Infiniband、Fibre Channel等,皆是串行式接口帝国的一份子。若将数据总线的位譬喻成多头马车,只要有任何一匹马出了状况,这个马车马上会乱了阵脚,整体性能势必往下掉。何况高速化的数据传输,无论是传送端或接收端对于电气上的要求更加严格。相对地,实作上就比较难处理。或许可以给您一些启示。因应同时多重式数据传输环境 IO变得更聪明 首先我们来观察今日数据传输环境的特色,是属于同时多重式的数据传输模式(Multiple Concurrent Data Transfer),同时,传送信息的属性可以从一般的泛用数据到与时间相关的音频、视讯串流数据,说明白些便是多媒体影音信息,当然也包含了静态的图像数据。在原本的PCI规范里,并没有针对这类属性的需求有应变的措施。因为此种属性的数据必须藉由所谓的等时传输-Isochronous Transfer或者导入严密而且细腻的QoS机制,才能够合乎要求,这需求的最简单说法就是声音不断续、画面不掉格。因此,从另一种角度来说,这就意味着一件事情,数据在总线上的交通流量,除了需有足够的传送频宽(Bandwidth)来满足高速的流量之外,其实也是需要有重要性先后顺序的安排方式与营运机制,甚至更高阶层次的机能,好比说,错误侦错机能(Error Detection)与错误修正的能力,才能够应付与满足今日与未来之需求,也可以说IO变得更聪明了。未来IO的必要基本特征 其次,我们采用渐进性的叙述方式,来简单描绘并勾划出未来IO必须兼具的几点必要基本特征:可以支持各种市场平台以及新兴的应用。最鲜明的说词就是将桌上型计算机、笔记型计算机、工作站服务器、通信平台与嵌入式装置(Embedded System)一统IO之架构,也就是一鱼多吃的战略思想。 从系统进化的角度来说,最终的产品价格需要与PCI接口相当,甚至更低,才能够说是优质的进化。 可以沿用PCI接口多年累积而来的庞大智能资产、软件资产与脑力资产,特别是将虫(Bug)几乎解完的软件资产,是异常珍贵的。 可定标式(Scalable)的性能实践方式,使得应用的弹性与柔软度增加,可以透过增加频率或是传输信道的方式来提升性能。每一支传输信号线的平均频宽,可以达到最佳化的境地,同时具有低的传输开销(overhead)与低的等待时间(latency Time)。我们无妨可以这么说,过去念电子与信息的朋友所习之传统观念,当要将信号传输速率往上拉时,所想到的方式不是将波形的周期越拉越短(就是频率越高的意思),就是将信号的振幅(Amplitude)越拉越低。基本上,这些多是时间观点的思维。 可定标式(Scalable)架构的精神内涵 可定标式(Scalable)架构的导入,就是空间观念的导入。您可以试着想象成道路的建构,在规划之初,一次规划数条路径,可以视未来所需,才逐步建构扩充起来,而不是碰到问题时,才来想尽办法东挖西补。这就是可定标式(Scalable)架构的精神内涵所在。 支持平台的各式各样连接型态,比如说:芯片对芯片之间、板子对板子之间、Docking Station的连接方式等等。此种策略可以让系统的建构单纯简单化,有好处没有什么大弊端。 兼具额外的先进技术特征,含括有电源管理(Power Management)、QoS(Quality of Service)的实践、热插拔的功能、错误的处理演算与数据的整合圆融性(Data Integrity)等等。当然新世代的3GIO拥有并具备以上所描述的各个要点。且如此来说,3GIO是一点对点(point-to-point)连接的服务传输模式。以前所使用的SCSI接口,现在的IDE、USB接口,基本上皆是所谓地分享式接口(Share Bus)的连接型态,也就是多个装置可以共同存在同一条总线之上,大家共享一条信息传输道路。而点对点的连接型态,恰如其名,是一对一单挑的传送形式,与共享式的连接型态是截然不同。如果从系统架构上的观点来看,3GIO的系统架构会包含一个主机端桥接芯片(Host Bridge)以及数个端点装置(Endpoint)。请阁下留意了,此处所说的端点(Endpoint),其实就是装置本尊,可以是各种功能的周边。请勿与USB接口中所定义的端点(Endpoint)搞混了,USB接口中的端点(Endpoint),通常是传输芯片中的缓存器或缓冲器。两者接口之间的含意,是迥然不同的。而当3GIO要面临多重的点对点连接时,也就是当提供的输出入口数量不足且端点装置又多时,会藉由一种开关式装置(Switch)来做切换,就好像可调式的桥梁,会连接起传送端与目的端。如此一来,就可以避免掉PCI时代所采用的分支(Multidrop)的连接形式。用更精准的词汇来说,开关式装置就是担当扇出(fan-out)的机能。而且该开关式装置还允许端点装置与端点装置之间,达成对等式的通信之用。这种观念在古早的SCSI接口就可以做得到了。至于这个开关式装置是一个独立式的逻辑组件,或是整合进芯片组里头,悉听尊便,没有强烈要求。开关式装置的点滴,以后再来描述。3GIO可扮演Inside the Box IO与Outside the Box IO双重角色 3GIO在执行角色的定位上,推翻过去的框内I/O与框外I/O,河水与井水径渭分明的刻板印象。借用适当的组合,3GIO可以扮演Inside the Box IO与Outside the Box IO的双重角色。应用于前者的案例,比如说,Gigabit以太网络的配接卡。至于后者的实用范例,好比说Infiniband Fabric,用来作为群集的互连(cluster interconnect)应用等等。若是运用于通信网路平台之场合,藉由多数开关式装置的采用,无论是连接性与传输服务质量(QoS-Quality Of Service),皆可以获得保证。QoS的细节颇为复杂,留至以后再来详述。既然3GIO与PCI在属性上有某种程度亲密关系,因此才会花掉前面两篇文章的篇幅去将PCI做整体性的回顾。但是,请大家勿忘记了,若从大架构上一眼望去,两者之间的差异性就明显浮出。PCI接口与过去大家所熟知的输出入接口,在IO属性的基本精神上是无多大差异。我的意思是说,基本上了不起从传输信号的电气特性、物理特性,一路定义到传输协议与基本命令的层次,都一以贯之,但是还没有如同网络一般,导入阶层式的架构。而3GIO已经隐约将阶层式的架构给导入进去。请参照图4。3GIO导入阶层式架构 明显可知,3GIO的信号传输,基本上已经可以泛分成实体层-数据链路层-数据交易层三个层次。PCI-SIG所发布的3GIO基础规范,也就是绕在这些范围里打转。论3GIO之结构,基本上还是离不开如来佛的手掌心,有他的基本心法。我们且从最底层起,一步一步往上层攀升推演,来观其各个结构的根本功能。依然是采用图解的方式来解释,请再度观看图5。由于是点对点的连结方式,两者的阶层与阶层之间的相互对应关系,是优质传输质量保证的必要条件。架构的最底层,自然就是PHY实体层,担当的职责不外乎串行式的点对点数据传送、而且是采用差动式(Differential)的传送方式。差动式传送可以说是串行式接口的根本大法。热插拔的处理以及传输频宽的组态等,也是实体层要担当的职责。一对信号线负责信息的传送,另一对信号线则是负责信号的接收,是典型的Dual Simplex的通道架构。1394也是采用两对线,同样是一对传送,一对接收。而USB接口就大大不同,总共也只有那四条信号线,扣掉电源信号与接地信号,就剩下D+与D-两条线,所有的信号传送与接收,甚至协议的沟通,就在这两条在线进行。每个信道的传送速率为2.5Gbit/sec,提供了200MB/sec传送能力的载送通道,约是传统PCI接口的两倍。未来,期望可以达至10Gbps的境地,也可以说是当前铜传输线所能够载送容量的顶端了。再往上跳,就是光配线的范畴。不过,这是基本的认知,聪明的工程师们正在想尽办法,让铜配线的载送速率可以突破既有的边界,谁敢说不可能呢?由于3GIO的编码方式是采用了8B/10B的方式,所以说有20%的传输开销(Overhead),不能直接用2.5Gbps除以八来算计其数据速度,得将这些传输开销给考虑进去。顺带提醒阁下一件事,1394b的编码是8b/10b,SerialATA的编码也是8b/10b,Fiber Channel或10Gb以太网络的编码方式也是8b/10b,还有一堆可以举例。由此可见,8B/10B的编码方式,在未来十年,位居主流的地位该不会动摇才对。往上一层,就是数据链路层-Data link。其功能一言以蔽之,就是用来确保数据的完整圆融性(Data Integrity)。那什么是信号的完整性呢?就是漂亮的波形,该高则高,该低则低,不会冒出不受欢迎的噪声。数据链路层会在数据中加入序列号码(Sequence Number)以及CRC,提高更具可靠度的载送机制。数据传送的流程控制(flow-control)也是该层的要务,可以确保重复传输的尽少发生,将总线的传输效率有效地运用。说到此处,我们姑且来思考一个好问题。在USB接口的传输过程中,如果有一个封包遗漏掉,接收端会不会知晓呢?这可要视情况才能回答。而3GIO在数据链路层中,加入了序列号码,就可以达成滴水不漏的无误传输。再往上推一层,就是数据交易层-Transaction。要有数据交易,无论是读取(Read)或写入(Write),当然必须要有数据,此层的基本构成,简单来说,就是在载送数据加上标头(Header)。3GIO是串行式的差动式传送,总线上的单位构成即是封包-Packet。而封包式的运用必然有其游戏规则。协议的处理,也是此层的义务。数据交易层负责上层交代的读取或写入请求(Request),而通常除了多媒体的数据外,一般的请求封包也需要响应封包。而每一个请求封包也必须有其识别,来确保响应封包送到正确的请求端。承继了PCI界面存取的资产。封包的格式必须支持32位的内存寻址模式与延伸的64位的内存寻址模式。为了让封包在IO系统中的路由布局达到最佳化的效果,封包会赋予某种属性,比如说No-snoop、Relaxed-ordering、priority等协定的编入等。这些细节尔后在各个回合才来详述。又,数据交易层支持四种寻址空间(Address Space)方式,其中包含了PCI所具有的三种方式,分别是Memory、IO、Configuration存取以及增加了一种讯息空间-Message Space的存取方式。3GIO选用MSI观念 作为中断处理的主要方法 回顾PCI 2.2的规范中,增加了一种称之为Message Signaled Interrupt的机制,在此规范中,是隶属于选项(Option),而多少受到工程师的忽视。而3GIO接口就是选用此MSI的观念,来作为中断处理的主要方法。同时,也是使用Message Space来支持以前边频带信号要处理的功能,诸如中断、电源管理以及重置等。其实,您可以将3GIO中的讯息看成一个虚拟式的信号线,就八九不离十了。他带来的好处,相信您也想到了,就是可以消除边频带信号的使用。理所当然,连接器的信号数目即可减少。对于电子与机构双方来说,雨露均沾,皆有好处。若再往上两层,是隶属在软件的层面。先是驱动软件的层次,尔后才是操作系统的范畴。新式接口为了维持向下的互容性,这两层不会因为3GIO的出现,而造出致命的冲击。当然啦!若要使用3GIO规范的新机能,软件的更新是跑不掉的。若是要细说的话,有两个层面的软件兼容性,特别要提醒阁下。之一是初始化-Initialization,或是称为枚举-Enumeration的动作。其次是软件运行-Run Time Software。再怎么说,PCI有一个初始化机制,可以让操作系统知晓硬件装置的类别属性,并赋予相对应的系统资源。此处所言系统资源,比如内存空间、IO空间以及中断的处理等。至于,PCI原本就持有的组态空间(Configuration Space),3GIO维持不变化,只是将之延伸更强化罢了,当然,也加入了新机能。而软件运行-Run Time Software,说穿了是一种加载储存(Load-Store),分享式内存(Shared memory)的基础架构。所以说,3GIO也得支持PCI的寻址模式,维持兼容性。3GIO沿用PCI接口组态空间 为一随插即用的接口 至于新的软件,就可以支持新的功能。言及至此,您当可明了3GIO铁定是随插即用的接口,如同USB一般,只是实践之道略有差异。3GIO是沿用PCI接口的组态空间,而USB却是采用了描述表格-Descriptor的机制,系统会在初始化-Initialization阶段,透过命令来获知装置的属性,并加载与之相呼应的驱动软件,让装置可以动作。由此可知,实践随插即用(Plug&Play),方法也许有不同,但是内涵是一致的。刚刚有提及3GIO支持可定标式(Scalable)的性能实践方式,让整个应用的弹性大大提升。可定标式的含意就如同规模的可调整性,遇大则大、遇小则小。3GIO的观念,就如同道路交通的新开辟道路方式,前面所说用一对信号线传送,一对信号线接收,就构成一条通信巷道(Lane)。以空间的扩展方式来思维,可以透过多开辟额外的通信巷道来扩展频宽。这就是为何在3GIO的规格中,会出现X1、X2、X4、X8、X12、X16、X32的缘故。因此,您可以发现,数据传送速度提升的思维已经从时间压缩的观念,渐渐延展到空间延伸的思维。依据IDF 2002与2003的姿态,Intel很明显打算以3GIO x16来成为下一代个人计算机平台标准的图像接口,也间接告知世人,AGP走到8X,也许就是他的末日。在如何定量评估性能上的思维,有一个称之为Bandwidth Per Pin的指标,可以用来衡量诸种总线上的差异,其单位是为BW/pin。基本上,该指标的定义,是指将整个总线的最高频宽除以所有的接脚数目,而这些接脚包含数据线、地址线、控制信号线与电源线、接地线等。阁下,您认为此种计量方式公正性如何呢?坦白讲,笔者觉得怪怪的,只是不知该如何来表达。想听听阁下的高见。于兹,我们将呈现一些量化的数据,姑且不谈此种指标性量测的公平性为荷,至少可以提供阁下一个定量上之参考数据。 PCI总线 = 1.58 BW/pin, 32位*33MHz, 84 pin PCI-X总线 = 7.09 BW/pin, 64位*133MHz, 150 pin AGP4X总线 = 9.85 BW/pin, 32位*4*66MHz, 108 pin Hub-Link-1 = 11.57 BW/pin, 8位*4*66MHz, 23 pin Hub-Link-2 = 26.60 BW/pin, 16位*8*66MHz, 40 pin 3GIO = 100 BW/pin, 8位*2.5Gbps, 40 pin 基于以上所言,在机构上的接脚数目,可以更少,更有弹性化。而推广普及的历程,很有机会跟以前ISA转PCI的过渡期一样,先是PCI与3GIO共存于主机板上,尔后才逐步将旧式接口给Phase-Out掉,然后再全面性进攻、导入新的接口。假设以上所言皆有机会成真,那么使用于笔记型计算机中的Mini-PCI与PCMCIA接口,要何去何从呢?因为,该两者的幕后本尊就是PCI的化身,既然本尊PCI要天蚕变,追随信徒哪有不跟着变的道理。3GIO在规范之际,早就构思好一套完整的策略。携带式的版本,规格中有明确定义。至于PCMCIA的更新之途,是导入一个新型的接口NewCard。今年的IDF 2003已经有实际的Demo,让人大开眼界。而NewCard可以说是Device Bay借尸还魂的杰作,以前Device Bay是USB加1394的实践之道。如今,物换星移,变成USB 2.0加上3GIO。USB再怎么快,他的角色定位始终被局限在慢速的圈圈里头,这或许就是USB的宿命,也说不定。总而言之,以文字来呈现3GIO最贴切的特征,可以用归类的方式来描述,请见表1。希望以上的摘要叙述对您有所帮助。欢迎来函或电邮(E-mail)指正。万分感激。(本文作者Email信箱为nt_.tw) 下回待续 3GIO的点点滴滴(8)3GIO技术专用语详细解析 【陈乃塘】 2003.10 回顾一番,我们再三提及攸关3GIO的规范仍然处于进化、修正的路途当中,而重要部位不外乎当前唾手可得之下面4份总共44页的重要文献:PCI Express Base Specification Revision 1.0a, April 15, 2003。 PCI Express Card Electromechanical Specification Revision 1.0, April 15,2003。 PCI Express Connector High Speed Electrical Test Procedure Revision 1.0, July 19, 2002。 PCI Express Mini Card Electromechanical Specification Revision 1.0, June 2, 2003。 前几回,针对机构攸关的规范,已经有详细的描述,这回将深入基础核心规范一探究竟。虽然说3GIO就如同往昔的PCI、USB2.0等接口是开放性的架构,人人皆有选择的权利去做相关的上游组件或是下游的产品,甚至是工具用之软硬件设备。然而,细心地去想,毕竟这是事情的表面层,而真正内在的玄机却是有现实资本主义的不干净之处。其中,比较不公平之处,正在于规格,也就是游戏规则的制订完全掌控在利益团体形成的组织机要成员。而这些利益团体组织,比如说SIG、IF、TA等,其公信力如何,大家心中该有一把尺才对。当规格问世之时,既得利益者早就有解决方案在旁伺候,等您入瓮。如今,每一样新技术的出现,皆是走如此模式。要在这个产业里发展,也就不得不加入各式各样的组织团体。一来,能够早先知晓规格的走势与修正了什么玩意儿。二来,参加年度的技术会议或插拔大会,既可以做做商业上的交际应酬,顺便打听敌情,看看竞争者在玩什么把戏。回想过去,比如SCSI、1394由世界上公认具公信力的组织,如ANSI、IEEE等所制订。这类组织规范出来的规格,章法上严谨许多,很少看到版本在短期之内遽变的事故。总之,核心规格就是该领域的游戏规则或规矩。而PCI Express Base Specification Revision 1.0a这份文献,就是我所说的核心部位。终究,该份文献所描述的范围就跨及3GIO的输出入架构、传输协议(protocol)、传送层与软件接口(software interface)等领域,往往也是最难阅读、研读、攻克的地方。根据以往的经验法则,工程人员通常都是在踢到铁板的时候才会去翻阅规格。不过,就工程技术扎实练功的立场来说,要站得稳、走得远、看得清楚,研读规格的苦痛,正是蜕变再生的必经之路。规格文献的制订采用国际通用的英文,而比较累人的是技术用语(Terms and Acronyms)的内涵,千万不能解读错误。一旦诠释有误,后果的收拾就额外费力。信息产品发展历史上,这种案例处处可见。且举一个离现在不久的个案来解释。日本在2000年底实施的BS(广播卫星)传播,正式上路时,使用者发觉A牌的调谐器不能将节目录制在B牌的数字录放机,抱怨之声此起彼落。媒体以大暴乱之词来形容此次事件的严重性。经过官、商、产、研检讨之后的结果是,制造厂家对于规范上的定义与描述、解读与诠释上有所差异,才是元凶。因此,踩着历史的脚步走,大家千万不要忽视这方面的问题。也就是基于此故,深入核心地带的首部曲就是彻底将规范的专用技术用语浏览一次。为了叙述上的方便与搜寻上的简易,我们就采用字母的先后顺序,将重要的技术专用语,做一番诠释。首先是有关3GIO构成的个人计算机系统架构图。8b/10b:这是3GIO在底层传送所采用的编码方式(Encoding Scheme)。8b/10b这种编码方式起源甚早,是80年代初期IBM所发表的论文,拥有其专利。他并不是当代的发展新技术,然而,无论是3GIO、1394b、SerialATA、Infiniband、FiberChannel、10Gb以太网络等新兴的串行式接口或网络,皆是8b/10b编码方式的拥护采用者。由各种蛛丝马迹显示,未来十年之内此种编码技术将与我们相随,也就是主流的编码方式。因此,一定要搞懂。由于该种编码方式,牵扯范围很广,留置后面再做进一步讨论。只先记住一件事,8b/10b的精髓就是将8位的数据,经过特殊的编排方式,以10位数据的方式送出去,目的就是为了做到DC Balance。(笔者按:原发表论文记载于 IBM Journal of Research and Development, Vol.27,#5,September 1983A DC-Balanced, Partitioned-Block8B/10B Transmission Codeby Widmer and Franaszek.) advertise(Credits):该字在3GIO传送历程之中是很重要的一环。光是查阅英文辞典,一点都解不开advertise(Credits)真实的用意。在高速数据传输里,流程控制Flow Control是绝对重要的机制。而该词的解释,我用最白话的方式来解读就是:数据接收端在传送过程之前,先行告知接收的空间。如此一来,有利于传输利用效率的提升。attribute:串行式接口的精神所在就是封包的传送方式。而该字词是3GIO传输封包标头部分的一个字段,用来指定属性上的用途。属性上的细节,留到谈论封包的构造时,自然会有所叙述。Beacon:此字在数据传输技术上广泛被使用着。Beacon含意就是一种标示。在无线网络里,当一个机台要加入BSS-Basic Service Set的时候(他可以是在电源模式或是睡眠省电的工作模式下),他必须取得从存取点装置(Access Point)的同步信息。若是采用被动式的扫描,意指机台被动地等待从存取点装置(Access Point)送过来的指示讯息段(Beacon Frame)或标示框。而该标示框就是存取点装置(Access Point)定期送出内含同步信息的框架。然而,Beacon该字在3GIO的场合则是指一个选项的30kHz500MHz的内频带(In-band)信号,是用来逃离规格中所定义的L2连结电源管理状态的手段。请务必抓住这个重点,所谓内频带信号(In-band Signal),是代表一种在两个组件连接之间,用来信令(Signal)事件或是状态的方法。它并无实体的连接信号接脚。因此,可以说是一种利用讯息技巧作为沟通控制的机制。相对于此,就是有实体的连接信号接脚的边频带(Side Band)信号。Bridge:就是桥接之意。PCI总线的扩张或是PCI-X/PCI接口的桥接、3GIO/PCI,3GIO/PCI-X接口的转接,都需要做桥接的动作。因此,Bridge就是桥接器。依据3GIO的规范,系统组件的要素计有4个项目,包括有Root Complex、 Switch、Endpoint与Bridge。Character:字符。系由8个位所组成,其实就是一个字节。cold reset:冷重置。一般而言,cold reset是针对供应电源投入之后,所产生的重置(Reset)动作。Completer:是指3GIO接口上的被动端逻辑装置。Completer与Requester则是构成数据通信两端传送端与接收端的角色。启动数据交易序列的要务,就是Requester的职责。Completer ID:顾名思义,这是辨识用的身份值。只不过,这个身份确认用的数值是Bus Number、Device Number与Function Number的综合体。细节等到谈论传输封包的结构时,一切自然明了。Configuration Space:组态空间。这个概念极为重要。众所皆知,PCI总线之所以能够实践随插即用(Plug & play)的机制,就是组态空间的运用。让系统软件可以得知配接卡的底细。而3GIO既是后续接棒人,又维持向下兼容的任务。自然是要延续PCI的组态空间方式,只是,3GIO将之发扬光大,将之极大化罢了。至于,USB接口如何来实践随插即用,仰赖的就是描述器Descriptor的文字数据结构。conventional PCI:传统的PCI总线。以今日的时间点来说,是泛指PCI Local Bus Specification, Rev. 2.3以上的一切特点与特征。目前,可以见到最新的规格版本应该是PCI 3.0。component:在3GIO的国度里,就是意指实体装置。Data Link Layer:数据链路层。3GIO的输出入接口有别于过去所知的输出入架构,它是具有阶层式架构方式的接口。若是从最底层逐层往上看,分别是实体层(Physical Layer)、数据链路层(Data Link Layer)与数据交易层(Transaction Layer)。而将会有助于您了解这3层的技术范畴。Data Link Layer Packet:自然是指数据链路层所产生的封包。规格上,简称为DLLP。乃是用来作为连结管理的用途。data payload:资料承载量。任何的串行式接口必然牵扯到这个重要的参数。至于,数据承载量,每一种规格自有其考虑,所以存在着差异性。Downstream:USB2.0有所谓地下游埠(Downstream Port)与上游埠(Upstream Port)。此处的含意也差不多,乃是泛指数据流动离开Root Complex组件的方向。DFT:Design for Testability的简写。DWORD, DW:就是4个字节的意思。Egress Port:就是传送连接埠。更明确地说明,即是送出数据的连接端口,相对于Ingress Port。Electrical Idle:乃指界面的闲置时之电气状态。通常是驱动D+、D-数据在线的直流共模电压(common mode voltage)。Endpoint:端点装置。请特别小心这个用字,因为同样的英文单字,在不同的技术范畴里,却代表不同的含意。在USB2.0中,是代表传送接收用之缓存器或是缓冲器。而在3GIO的规范里,则是泛指组态空间标头具有Type 00h的装置。而所谓Type 00h的装置,乃是沿用过去PCI规范而来。Error Recovery、Error Detection:错误侦测与错误回复是数据通信领域里相当重要的一个环节。因为数据传输的完整性,需要这种机制来实践。一般的接口,通常仅是做到错误侦测这一环,而3GIO却拥有更为先进的特色,可以做到错误回复的非常任务。Flow Control:流程控制。这是数据通信中的根本大法之一,岂能不留意。接收端防止溢位(Overflow)的发生就必须仰赖它。FCP:就是Flow Control Packet。隶属于一种DLLP,是从数据交易层送出的流程控制信息。Header:封包的标头。Hierarchy:3GIO各个装置互连的树状架构。Host Bridge:是Root Complex的一部份,桥接至主机端CPU端。hot reset:热重置。相对于冷重置的方式,这是指透过底层传输内频带的信号所进行重置(reset)的方式。顾名思义,此时电源依然是开着,才会用上热这个字。Ingress Port:就是数据接收端口。即是送进数据的连接端口,其相反词就是Egress Port。isochronous:等时之意。新兴的总线几乎都必须考虑音频、视讯等多媒体信息的传输。而这类数据传输的最大特征就是必须在一定的时间内,将信息传送过去。至于遗漏掉一些信息倒不是那么重要。毕竟,聆听断断续续的音乐、观赏画面忽快忽慢的画面,谁都受不了。因此,等时传输模式是当前所有接口都会拥有的基本配备。Lane:这个字在3GIO中是很有意思的定义。Lane基本上,是巷道、小路、小径的意思。而对学过电子学领域的人来说,将数据传送速度加快,不外乎有两把招式,除了将波形压的越来越密、频率加快之外,就是将电压得位准降低。但是,这全是时间观念思维下的必然结果。没有人说不能再导入空间延伸的观念。您可以将之想成构筑的道路,道路越多,流量的承受自然增加。而3GIO就是实践空间延伸的产物。快速的数据传输,已经是差动式传输(Differential)的天下。也就是仰赖D+与D-的信号线,来判别信号的逻辑1与逻辑0。一对信号线负责传送、一对信号线负责接收,就构成了一条传送途径(Lane),以x1来称呼。以此类推,x2,x4,x8,x16,x32就是因此而诞生的。也可以称呼为Physical Lane。,有一个基本的认知重点要把握。即是Lane-Link-Port3者之间的亲密关系。一对信号负责信号传送、另一对信号负责信号的接收,就构成了基本的传输通道。而两个零件之间用多少的传输通道,就组成一个Link-连结。比如说,一个xN的连结就是由N个传输通道所组成。至于Port-连接端口,则是泛指芯片上传送器与接收器的群族。其中,Port-连接埠与Link-连结并非呈现一对一的关系。请参阅,自然明了。其实,这种空间延伸的观念也已逐渐应用在WLAN无线网络的产品里。Logical Idle:逻辑闲置状态。请务必区分与电气闲置状态之差异。所谓的逻辑闲置状态,是指一段时间内没有任何的封包传递,而是藉由传送与接收闲置字符(idle character)。请与Electrical Idle区别清楚。Message:讯息。这可是3GIO的四大金刚之一。大家都知道USB2.0定义了4种传输模式。而3GIO也允许有4种类的存取空间模式,分别是内存空间、IO空间、组态空间与讯息空间模式。其中,讯息空间就是利用TLP封包来传递信息的一种方式。比如说中断、电源管理事件等就是必须依靠这种传送模式。因此,在3GIO架构里,讯息存取的空间,就称做Message Space。MSI:Message Signaled Interrupt。运用讯息来产生告知中断的机制。PCI Software Model:乃指PCI 2.3, PCI-X 2.0,与PCI BIOS规格中,软件的动作模式。QoS:Quality of Service。这是一种属性,会影响着频宽、信号传输优先程度。因此,传输途径交通的归类(Traffic Class),顺势导入。我且举一个比较实际的范例来说明QoS的用意。最容易理解的案例之一可能就是IP Phone。谈到QoS机制,主要目的便是拦截并针对各种不同种类的服务或使用者,加以分类,以现有之资源情况下,依据事先定义好的政策,赋予不同的优先级,以期让最迫切的需求得到最优先资源。事实上,QoS的机制,说起来有点类似火车在行车上的调度,越高阶的车种(即愈重要之数据)获得愈优先的路权。PPM:Parts per Million。Root Complex:包括主机端桥接器与根连接埠的控制器。SHPC:Standard Hot-Plug Controller。一个PCI热插拔控制器,需要符合SHPC 1.0的规范。所以,大家应该多少可以体悟出原来PCI接口是可以做到热插拔的境界。Split Transaction:这是极为重要的技术用语。USB2.0、1394与PCI-X,皆有使用到Split Transaction的机制。而所谓Split Transaction,一般都是指数据交易的起始在Requester端,而交易的结束却在Completer端。Switch:就是开关装置。是3GIO中的系统构成零件之一。system element:3GIO中的系统构成零件,总共计有Root Complex、Endpoint、Switch与Bridge等4大类。Transaction Descriptor:就是描述记载数据交易属性的构造,是封包标头中的一部份。Transaction Layer:实际进行数据读取、写入之阶层。TLP:Transaction Layer Packet。UI:Unit Interval。wakeup:在讲求省电力时代里,这是做产品的必要考虑要素。为了省电力,当接口上没有活动时,就会进入中止或睡眠模式。一旦要使用之际,即会唤醒系统或装置。在3GIO的场合,是指系统组件在L2请求电源供应的再度开启。规范中定义有两种方式。第一种方式就是采用Beacon-标示的机制,是内频带信号的手法。而另一种方式,就是采用边频带的WAKE#信号。warm reset:暖重置。也是基本重置的一种。很明显地,3GIO规范总共定义了三种重置方式,分别是冷重置(Cold reset)、暖重置(warm reset)与热重置(Hot reset)。所谓地暖重置,意味着依赖硬件的触发,但是没有移去或重新加入电源。请小心,文献中并无描述产生的暖重置的方法。最近,英特尔为了推广、加速3GIO的运用与认知、另起炉灶架设了3GIO的另一个网站。提供更多更为平民化的各种信息,是个可以一游之处,至少不会如同一般,不是会员就看不到精彩的内容。此外,Intel Interoperability Lab的出现,宣言是协助产业互容性的测试(Platform and Endpoint Interoperability)与技术开发上的扶持。既然PCI-SIG已经有插拔大会(Plugfest)的设立,搞出这样的动作,也许别有他图也说不定。不过,倒是秋季的IDF是令人期待该有很多精彩的展示!下半年的后半段,可能有产品与工程工具的出现,姑且张大双眼、拭目以待吧!附注: 1.SD卡的标准化组织乃是SD Card Association。 2.NEWCARD的标准化组织乃是PCMCIA。 3GIO的点点滴滴(9) 深入摸索3GIO数据交易层的底细(上) 【陈乃塘】 2003.11 有人说,串行式总线(Serial Bus)上的最基本传送单位是封包Packet,如此的说法,虽然不是很漂亮,然而也没有什么错误,毕竟从微观的视野来论,也是有其道理。图1即是3GIO基本连接传送图。3GIO采用点对点(Point-to-Point)的连接型态,运用两对信号线,一对负责传送,一对则是负责接收,这称做一条传输巷道(Lane),以X1的文字来示意。如此利用空间延伸的观念,可以扩充至x2、x4、x8、x12、x16与x32的高度境界。处理器巨人主导用来取代AGP 8X的就是使用x16。除了维持与传统PCI的软件兼容性之外,加入了先进的电源管理模式、QoS(Quality of Service)服务质量机能、热插拔,如此在数据整合可靠度以及传送错误的机制处理上更上一层楼。而当连接埠的数目不足之际,就必须仰赖开关装置(Switch),此种连接型态就称为Fabric Topology(图2)。不过就实际上的数据传输时,依然维持着点对点的载送方式。其中的端点EndPoint可以视为装置或控制器等。根据英特尔的资料指出,未来芯片组编号ICH6(图3),将直接内建3GIO的连接埠,只要Mini PCI Express与Newcard(ExpressCard)的推移计划进行顺利无碍,PCI移植到3GIO之路就会平坦许多。诚如过去所言,3GIO可以说是具有阶层概念的输出入接口(图4),从逻辑上来俯瞰,由上而下分别是数据交易层(Transaction Layer)、数据链路层(Data Link Layer)与实体层(Physical Layer),此3层即是3GIO的根本。数据传输有传送的一方与接收的一端,也就是封包的载送交换。而封包的形成有机会在数据交易层与数据链路层来产生。由数据交易层所建构的封包,称为TLP(图5与图6),数据链路层所产生的封包,规格上简称为DLLP。DLLP乃Data Link Layer Packet之简称,TLP自然是Transaction Layer Packet的简写。精简地说,所欲传送数据的形成,当然需要在数据交易层完成,然后,逐一往下层丢,最后才从实体层给传送出去。其实,更为高阶的电源管理、执行次序的安排与虚拟信道(Virtual Channel)、数据交通优先度的处理等,也是数据交易层的职责所在。而数据链路层的任务,自然就是要确保数据的高可靠度。因此,涉及错误的侦测与数据保护。最底层之实体层必然牵扯到热插拔,也就是收发器电子回路、信号编码、传输巷道的沟通还有连接线极性的问题。就数据交易层(Transaction Layer)的主要特征来观察,其诉求不外下列几点要掌握。其一,是采用分割式数据交易Split Transaction的传送协议。其二,TLP数据封包的次序(Ordering)管理机制。其三,采用所谓地Credit-based流程控制与虚拟信道(Virtual Channel)之管理。细节逐步叙述如下:数据交易概论与数据交易层 数据交易的根本大法,乃是筑立于Requester端与Completer端之间的数据传递。而3GIO规格中所规范的地址空间方式,决定数据交易的类别。以大数法则来叙述的话,不外乎下列4种:1. 内存空间读取(Read)与内存空间写入(Write),此种类型的寻址,可以有32位与64位的存取方式。 2. IO空间读取(Read)与IO空间写入(Write),仅能使用32位的存取方式。 3. 组态(Configuration)空间读取与写入。 4. 讯息(Message)传递,作为事件的信号告知用。除了基本讯息(Baseline)之外,规格中允许使用者定义自己的应用讯息。 乍看之下,好像是PCI接口的寻址方式,而光看3GIO的官方正式名称PCI Express也可以略知一二。先来谈一个极为重要的观念,数据交易的类别,还可以用两种不同的属性来区分,分别是NP-non-posted数据交易与Posted数据交易。要怎么来区分识别呢?请记住一个大原则,NP的场合,就是意指请求需要送回完了的封包。而以上所描述的众多数据交易当中,仅有内存空间写入与讯息(Message)传递,是隶属于Posted数据交易,也就是不用回返完了或结束的封包。依据3GIO规格的描述,IO空间存取的需要将逐渐减少。这一点完全可以理解。组态(Configuration)空间的存取,乃是沿用PCI接口而来,并将之发扬光大与扩充。若仔细地思索,组态空间就是实践随插即用的一种机制,与USB界面的描述器(Descriptor),都是表格式的数据结构。讯息传递的数据交易,可说是装置之间,事件通知的通信代用信号。至于采用先进开关方式串接3GIO系统与另一个系统之间的对等式通信讯息,在1.0a规格中,已经被剔除掉了。真正的重点,反而是基于何种缘故,需要使用讯息传递的方式。背后铁定有理由。接着,我们来探讨TLP封包的格式结构。无论是请求(Request)封包,还是完了(Completion)封包,其大致的架构是由TLP标头(Header)加上数据承载(Data Payload),然后加上一个选项的TLP digest字段而构成。从图6中,可以明显地看出,数据传送接收是从地址零开始算起。而TLP封包标头(Header)的字段随着封包种类差异会有所不同。但就共通的部分来说,如图7所示。就图7各个字段的含意,分别来叙述之。字段中的R代表保留,通常是放置零。字节零中的位6与位5,用Fmt1:0来表示,此两个位定义了TLP封包的格式,Type4:0则是定义了TLP的种类。Fmt1:0 = 00b,代表3DW的标头,没有资料。 Fmt1:0 = 01b,代表4DW的标头,没有资料。 Fmt1:0 = 10b,代表3DW的标头,具有资料。 Fmt1:0 = 11b,代表4DW的标头,具有资料。 藉由Fmt1:0字段与Type4:0字段的排列组合,完整地描述了所有3GIO的TLP种类。值得留意之处在于10个位长度所编码出来的TLP数据承载的空间大小。00 0000 0001b代表1DW。(DW=Double Word,也就是4个字节) 00 0000 0010b 代表2DW。 依此类推。11 1111 1111b 代表1023DW。 00 0000 0000b 代表1024DW。 经过以上粗浅的描述,不难发觉具有数据传递的TLP是有一些规则的存在,其长度是以DW的整数来指定的。TLP所指定的数据承载量(Data Payload),在传送端不得超过Device Control Register中指定Max_Payload_Size的数值。(笔者按:由于内存读取,没有受限于Max_Payload_Size,而是由标头中长度字段来控制。)同理得知,所接收到TLP封包中的数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论