PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

PCI Express 3.0主板——属于未来的话题

  [复制链接]
1#
ice 发表于 2011-9-22 22:12 | 显示全部楼层
本帖最后由 ice 于 2011-10-26 19:44 编辑

"还要考虑到其他PCIEGen3规范的要求,诸如互联属性、结构管理、编程接口等等"
主板布线等基本上只和物理层有关了,和编程接口什么的没太大关系,那个是软件逻辑的事情。而恰恰是物理层的一些电气特性是否到位,关系着现有单16X主板能否顺利上pci-e 3.0。这个真要测试,要上示波器了,等吧,看看技嘉是真的能够过硬地解决这个问题,还是用REV变更法。

此外全文除了switch没有写到位以外,都还不错。
这两种switch其实本质上不同的,应该分开写,并且强调一下。
20111026更新:
请看家千万不要忽略57楼开始的leedemon童鞋乱入带来的精彩内容,包括对我观点的纠正。
2#
ice 发表于 2011-9-23 23:53 | 显示全部楼层
回复 29# lk111wlq
MSI抨击GA的PPT里面有写,但是写的对不对是另外一回事情。还是等时间来说明真相吧。

Switch部分,2-lane那种是纯粹的电子开关,一旦确定开关走向,是不能变化的。这里switch的含义接近于“开关”的汉语含义。这个基本上之和物理层有关。

后面那种,switch的含义接近于“(以太网)交换机”中的“交换机”的含义,我觉得应该能到数据链路层。如果你能找到2004年pci-e规范的第一版白皮书,那个里面有一些介绍的。这里的switch是将总线时分复用没错,并且两个终端还可以直接通信(NV在自己的pdf里面有讲如何让两个GPU通过switch直接通信)。但是,按照文中那种“机械切换”是不能完全解释的。这里面可能是“接收到缓冲区——拆包(数据链路层封包)——重新封包(数据链路层)——发射”这样一个“存储转发”的过程(以太网交换机也是存储转发的)。

否则,就难以解释如下的基本事实:
1:早期P55主板,通过PLX的switch,使得1lane 2.0速率的USB3和SATA3芯片跑在4lane的1.1速率的南桥pci-e通道上。两边速率都不同,lane数也不同。(事实上,应该是,PLX switch按照2.0速率,1lane的格式接收到芯片内部缓冲区——拆包——重新封装成4lane模式的数据包——按照1.1速率发出去。并且,我估计应该不能同时接收USB3和SATA3的芯片,只能时分复用交错使用,如果要融合这两个设备的数据包一起发,可能需要比数据链路层更高的协议层实现)

2:如果NF200上端接8Xpci-e总线,那么下端接的显卡呢?你可以去看看,应该是16X。而这一点,用文中的方法解释不清。
3#
ice 发表于 2011-9-24 00:00 | 显示全部楼层
再补充一下,只有在上一级支持pci-e lanes分拆的前提下,才可以使用文中所述的第一种switch来按照所支持的分拆方法,分拆pci-e lanes。
因为,分拆lanes应该会涉及到数据链路层的操作。
4#
ice 发表于 2011-9-24 12:15 | 显示全部楼层
33#的说法
首先,第一幅图和后面两幅应该是来自于不同的来源。
其次,第一幅图只涉及概念上的多lane拆分,并不涉及细节。同时图下面说的应该值得是某产品的物理层支持的几种拆分模式。请注意,该产品的物理层支持这些拆分模式,并不代表只通过物理层就能实现这些拆分。事实上,我认为必须有数据链路层参与,并且数据链路层要能明确知道,聚合哪几个lanes的数据。反之,如果只需要在物理层解决,那么岂不是无论芯片组支持的情况,所有的主板加上这种电子开关都可以任意拆分pci-e lanes了?
第三,后两幅图明确表明了,这种电子开关的含义。和更高级的第二种switch里面的结构,基本上没什么关系。
5#
ice 发表于 2011-9-24 12:36 | 显示全部楼层
34#
原文:“第二种switch的话,我的理解是:将上端的数据队列接收,拆包后判断需要发送到哪个显卡处理(因为物理层以Frame为单位,而数据链路层包含Packet Sequence Number,包含判断数据包的具体信息),封包后重新排列数据队列(根据lane规格及其他信息),再时分复用地发射到相应的显卡”
先指出一个小的地方:这里只涉及到数据链路层,因而,所有问题都是相对于链路而言的,也就是说,只能确定是哪个链路的数据,至于链路上的何种设备,其实是无从得知的。也就是说,这里只能根据链路信息处理,而不能根据链路上具体设备提供的信息处理,后者可能需要到会话层的信息。
其次,我认为,你这个里面对“时分复用”的时间尺度,可能理解有误。时分复用,指的是对总线的时分复用,或者说对链路的时分复用。假定一个switch芯片连接了主机端(H),设备A,设备B。此时,switch可能根据这三方的请求情况,对链路(总线)时分复用。比如说,switch接到A的请求,给A分配了一个小的时间段来占用链路,此时对B显示链路繁忙,让B等待。在这个很小的时间段之内,A其实是独占链路的,A按照A连接到switch的llane宽度和速率给switch传递数据,switch根据内部的缓冲——重新封包等,按照switch连接到H的lane宽度和速度,给H发送信息。在这个时间片用完以后,switch再重新选择响应那个设备,切换链路等,周而复始。
所以,时分复用应该是链路层面的(或者说是总线占用层面的),而不是如引用文中所说,最后一个步传输时候的那个层面。
6#
ice 发表于 2011-9-24 13:04 | 显示全部楼层
本帖最后由 ice 于 2011-9-24 14:07 编辑

34# part2
(借地方,贴个地址http://teacher.en.rmutt.ac.th/kt ... se%201.0%20spec.pdf

这里的这张图很清楚,不管是upstream还是down stream,都有自己的port,自己的port都是可以配置的。实际上在PLX的pdf里面有说明,最早ASUS主板上用的那个PLX的芯片,3个端口都是4lanes的,并且可配置为1lane,2lanes,4lanes,速率可以配置为1.1速率和2.0速率。(其实在华硕那个P55出来的时候,我就解析过了,如果ocer的论坛还在,不妨一搜)现在的PLX的switch芯片,端口配置更加灵活了。
注意看图片中间的“Switch Fabric”这个是关键。
事实上,这个交换结构隔离了upstream和downstream的端口。
也就是说,upstream的lane数量,运行速率实际上和downstream没什么必然的联系。
依然举PLX芯片连接USB3的例子,并先只考虑PLX一端连1.1 4lane的P55芯片组的pci-e的通道,另一端连接1lane 2.0速率的USB3芯片,并且暂不连上SATA3芯片。
此时,对于H而言,这就是一个在链路上使用了 4lane(1.1速率)的设备,至于这个设备是怎么来的,H不管。
对于USB3芯片而言,它运行在2.0速率 1lane的链路上,至于这个链路是谁提供的,他也不管。
对于PLX switch而言,他的downstream port配置在了1lane 2.0速率,连接着USB3芯片。他的upstream 配置在了 4lanes 1.1速率,连接着P55芯片组。在其内部,有switch Fabric部分,这个部分缓冲接收的数据包,重新打包,按照传递方向上对应端口的速率和lane数,发给switch内部的port部分,传给物理层,通过主板布线,给P55。

如果同时加上SATA3的芯片,在USB3或者SATA3单独运作的时候,应该和上面一样。如果两个设备同时都有传输需求,那么需要时分复用总线,由于整个传输系统卡在1lane 的2.0接口上,假设两个设备都是满载的数据请求,那么两个设备实际上都有一半时间在等待,换句话说,和直接连在1.1接口上没什么区别。不过同时满载不太容易见到,一般而言,加个PLX是switch还是有好处的。


同时做一猜想,因为此时upstream的带宽是downstream的2倍,也就是满载传输的时间是一半(按照上面的说法,upstream实际上增加了一半的空闲周期)。如果switch能交错的从两个downstream获取数据,这样可以使upstream满载。但是这可能需要片内容纳大量的缓存,另外,也可能和pci-e协议的细节不相容。具体怎样,不得而知了。不过如果谁能做实验测得上述配置条件下,USB3和SATA3持续性地传输数据的速率超过pci-e 1.1 1lane的极限,那倒是可以佐证的。(不过由于这个过程中还有其他因素影响,如果是没有达到pci-e 1.1的极限,也不能做出相反的结论,因为有可能是卡在其他地方。)

BTW,pci-e总线是完全双向的,所以这里的upstream和downstream不代表数据流向,应该约定,接近root complex方向为upstream,接近终端device为downstream。
7#
ice 发表于 2011-9-24 13:20 | 显示全部楼层
34# part3
说说原文中图片下面的一些话

1:“时分复用是异步的...”
异步是一个相当广泛的概念,这句话并没有让我确实明白,不过链路(总线)的时分复用,前面已经说了很多,请参考。

2:“这样也能够解释...1:...2:...”
请根据上面两楼的说法,设备或者HOST连接到switch的lane数量是可以配置的,upstream port和downstream port实际上是被switch Fabric隔离的,他们的lane数量,运行速率没有必然的联系。
例如一个NF200 upstream 连接8X 2.0,down stream 连接16X 2.0。对于显卡而言,连接他的port配置为16X,所以会显示为16X,但是和H通信时,取决于整个链路中最窄的地方,(对H而言,连接他的只是一个8X的设备)因而,还是8X的速度,显卡端徒有16X的端口,但是会插入大概一半的的等待时间。

3:switch端口的速率和lanes是可配置的。
8#
ice 发表于 2011-9-24 14:10 | 显示全部楼层
本帖最后由 ice 于 2011-9-24 14:26 编辑

回复 37# lk111wlq


   一般认为(参考以太网的分层结构),switch(原文中第二种)是数据链路层(第二层)的设备。他的权限和所能实现的功能,都在数据链路层和以下的物理层。并且一般认为物理层实现是固定的,所以switch主要讨论数据链路层的特性。
举例而言,从北桥直接引出来的pci-e lanes要北桥支持拆分,才可以用switch(第一类)拆分。这里面北桥内部包含有pci-e控制器,可能是switch或者更可能是级别更高的root complex。

从NF200等switch(第二类)引出来的pci-e lanes,要该switch支持拆分,在downstream才可以用switch(第一类)拆分。

如果是一个4lane的端口只使用1lane,那么不用拆分,也不需要switch(第一类),只是后面剩余的lanes只能闲置。
补充一下:最早的可拆分pci-e的主板,用的是一片单独的PCB来拆分pci-e 通道,也有的是用跳线的。这其实和第一类 switch等价。所以说,第一类switch就是一个电子可调的固定开关。之所以后来改用这种switch,除了电子可调比较省事以外,应该也和这种一次性做好的元件电气特性更好有关,因为pci-e的频率越来越高了。一次性焊在主板上的元件,不用担心金手指氧化,灰尘等等。
9#
ice 发表于 2011-9-24 14:17 | 显示全部楼层
回复 40# lk111wlq


   这个貌似是图中VOQs的作用。根据需要,分配两个设备公平共享总线。你可以再仔细查证一下。
10#
ice 发表于 2011-9-24 18:25 | 显示全部楼层
回复 45# lk111wlq


   不谢不谢,探讨嘛~
11#
ice 发表于 2011-10-25 23:14 | 显示全部楼层
回复 52# travis


   基本上是这样,可是以太网的hub还可以通过碰撞协议和时隙等,让各路都可以用,尽管效率低下,而这个就关死了。
12#
ice 发表于 2011-10-26 16:19 | 显示全部楼层
你们讨论得确实认真啊!如果是switch的话,PCIe传送数据跟以太网的结构有点不一样,不是把上层的数据加到DL的包头来处理的。具体可以看PCIe的spec  chapter3 data link layer Specification,在Data link层传送2种包,DLLP(数据链路层数据包)和TLP(事务层数据包)。DLLP是端到端的,就是从一个PCIe接口到另外一个PCIe接口,负责流量控制,出错重传,电源管理的工作。但是TLP是可以从PCIe device到另外一个PCIe device,比如从某个复杂的PCIe bus端经过好几级的switch到达RC。像你说的NF200允许2张显卡内部通讯,就是利用这个机制,从一个显卡(作为PCIe的Endpoint)到另外一张显卡(另外一个Endpoint)。怎么控制包是传送到某个EP还是RC,得用到TLP的路由机制,这得看TLP具体的类型然后可以分为用地址来路由和用Device ID来做路由,规则比较负责...
时分的概念是在Physical Layer物理层的,这个时分是把一个包拆开分到多个lane传送,链路层应该没有。因为从链路的角度看,就是一条PCIE连线,PCIe的数据传送都是基于包的,必须发完一个包再发另一个包,所以这里的流量控制,qos控制,都是基于包来调度的。
接switch应该不受upstream port所接的downstream port的限制,只要switch能支持PCIe设备的枚举过程,就能让RC发现这个设备并给它分配地址和id,这样就可以正常工作的
leedemon 发表于 2011-10-26 14:26


感谢仁兄如此给力的讨论!
我是2005年看过1.0的白皮书,6年过去了,也再没有看过,只能凭印象说说,供大家参考,讨论。
1:关于DLLP和TLP我完全同意您的看法,此外,可以提供一个消息,就是在intel的芯片组上,NV的显卡不能通过芯片组实现点对点的互相传递信息,但是如果是AMD的芯片组,或者NF200或者PLX的pci-e switch,那么是可以的,这是一个从事CUDA开发的朋友告诉我的,这应该和各家的路由机制有关。
2:时分复用的概念,这一块,不完全同意。首先我认为时分复用的概念并非只和物理层有关;其次,对于pci-e的实现,全部基于包的调度,这一点没有异议,但是根据我的印象,这个包是不能再拆分的,也就是说发送到物理层上某个lane传输的时候,一个数据包是最小单位。假定当前要传输一个数据包,那么即使有16lanes,也是只能空闲15个,而利用其中的一个。数据包发送以后,在接收端,有一个缓冲,在这里面根据一些ID类的信息,进行重排,检验,重发等流控和校验的机制。如若这样的话,那么一个switch或者RC,原本支持16X的lanes,如果要支持双8X,那么其内部必须有同时控制两路分别进行缓冲,重排,流控等的能力,如果要分拆成4路4X,那么必须具备同时管理4路的能力。因而我认为,并非随便的一个switch或者RC都能具备这种能力,也就是说,lanes不能任意拆分。

欢迎仁兄不吝赐教,指正!
13#
ice 发表于 2011-10-26 19:42 | 显示全部楼层
本帖最后由 ice 于 2011-10-26 19:46 编辑

回复 59# leedemon

多谢指正,看来关于pci-e数据包的传输,我确实记错了。得兄指正,感激不尽!   
另外,关于1,即使是未集成的X58的北桥,依然是不行的。个人推断,有可能是因为intel和AMD等在硬件逻辑上处理不同,intel可能直接是转换到了内部的某种逻辑进行传输,而AMD的北桥,可能是先集成了一个switch,然后转换的。(NF200等本身就是标准的switch)此时,恰巧获得了switch的特性。
   

理由:AMD(ATI)的芯片组很早就能在北桥提供大量的pci-e通道,当时NV是不行的,并且AMD北桥的大小和功耗都小于同时期的NV北桥和intel北桥。所以,AMD可能是采用了复杂程度比较低的形式实现,如果集成一个switch,可以减少转换为内部逻辑的lanes的数量,有可能减少北桥的逻辑规模。
  

当然,以上纯属推断,没有任何官方说法,实验数据佐证。
14#
ice 发表于 2011-10-26 21:22 | 显示全部楼层
回复 63# leedemon
62楼说法一语中的,赞!其实是当年被人逼迫翻译过一部分,要不然也不会这么久还记得一些...
15#
ice 发表于 2011-10-31 19:41 | 显示全部楼层
本帖最后由 ice 于 2011-10-31 19:46 编辑

回复 65# yellowsub

这是历史原因造成的。
1:华擎成立之初,只卖中国大陆(官网上注明的,并且不卖台湾本地),并且实际上是华硕用来清理二、三线品牌的。所以祭起低价大旗,号称“500元以上的主板不知道怎么卖”。
2:华擎为了清理二、三线品牌,频繁降价,并且价格十分透明,会公开在官网上公布(华擎情报站),渠道上也是任由3大代理互相串货倾轧,价保时间很短,最终伤害了渠道,导致推广不力。(甚至曾经在卖华擎的某东,现在都不卖了)
3:华擎部分产品的规格(非质量)缩减到了无以复加的地步,一看就是低端。
4:华擎部分批次产品的质量不够过关,一度返修和过保后失效比例偏高,加上渠道被伤害,雪上加霜。恰逢此时,技嘉以超耐久系列杀出,变全市场的“做减法”为“做加法”,一时间,所有其他品牌逊色了不少。
5:华擎一定程度上,曾作为华硕低价清理过时芯片组的渠道,主推各种过时和非主流的芯片组(虽然不见得实际上有多少差别,并且出过很多奇异的主板),这也造成了口碑和品相不佳。
6:华擎早期一度攻城略地,销量上升很快,但是,在800万年销量达成以后,销量停滞不前,开始谋求变化。华擎自790芯片组时代,尝试推出高端主板,在华硕品牌代工分家之后,华擎品牌事实上归华硕之前的制造部分——和硕拥有,和硕有意利用华擎品牌,做自己的高端产品。(这里比较有意思,华擎的主板都是和硕——也就是华硕原先的制造部分——生产的,而华硕主板,貌似只有中高端是和硕生产的,到底谁的血统更为纯正呢?)
7:华擎在中后期开始拓展其他市场,可能在欧洲采取了相对较高的定位,并且由于欧洲市场并没有经历过华擎早期的原始积累,和大陆感觉不同。
8:华擎后期在宣传和产品规划上除了一贯的搞怪风格之外,一般是钉死技嘉的宣传策略,并予以抨击,矛头非常之明显,照说同行之间,似乎这么做不太地道。而后学习ROG系列搞了一些自己的旗舰产品(费特拉帝系列,话说,这哥们,代言谁,谁挂,不知道华擎能不能改变这一魔咒),配色也是红黑。此时,华擎宣称已成为欧洲第二的主板品牌,第一当然是华硕,号称并列的双A。
16#
ice 发表于 2011-10-31 19:45 | 显示全部楼层
顺便说一下,华擎早期的板子,虽然功能规格比较全,但是为了降低成本和返修率(官方说法“用很差的用料做出还可以的板子”,并且挖了ECS的某主管。ps:这真不知道是不是在损ECS),没有超频选项,所以一般不为DIY玩家关注(可参看早期TOM'S等评测华擎主板的文章)。

中期790AOD超频比较有名,再后来,随着运营目标的改变,应该有越来越多的型号具备可玩性。
17#
ice 发表于 2011-11-1 11:32 | 显示全部楼层
本帖最后由 ice 于 2011-11-1 11:37 编辑

T大,那个K7S8XE貌似好几个版本呢,最早的是一个全尺寸的大板,后来越做越小,最后好像是出到R5.0了。用过一片K7VM4,小板,全集成,才400块,不超频什么的,还是值得的。就是U口保护不到位,静电强的时候会重启,后期有所老化,U口带不动移动硬盘了,只能上U盘,其他一切正常。(另外说一句,我用过的技嘉主板,USB供电一直比较足,值得表扬。)
结合其他见到的一些华擎早期的主板,共同点是价格便宜,还算物有所值,但是细节和用料不甚注意,耐久度差点意思。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部