pcie3.0x4理论最大读或者写的速度为4gb/s,不考虑协议开销,每秒可以传输4gb/4k个4k大小的io,该值为1m,即理论上最大iops为1000k。因此,一个ssd不管底层用什么介质,flash还是3d xpoint,接口速度就这么块,最大iops是不可能超过这个值的。
本教程操作环境:windows7系统、dell g3电脑。
pcie接口介绍
pcie发展到现在,速度一代比一代快。
link width这一行,我们看到x1,x2,x4…,这是什么意思?这是指pcie连接的通道数(lane)。就像高速一样,有单根道,有2根道的,有4根道的,不过像8根道或者更多道的公路不常见,但pcie是可以最多32条道的。
两个设备之间的pcie连接,叫做一个link,如下图所示:
从a到b,之间是个双向连接,车可以从a驶向b,同时,车也可以从b驶向a,各行其道。两个pcie设备之间,有专门的发送和接收通道,数据可以同时往两个方向传输,pcie spec称这种工作模式为双单工模式(dual-simplex),可以理解为全双工模式。
sata是什么工作模式呢?
和pcie一样,sata也有独立的发送和接收通道,但与pcie工作模式不一样:同一时间,只有一条道可以进行数据传输,也就是说,你在一条道上发送数据,另外一条道上不能接收数据,反之亦然。这种工作模式应该是半双工模式。pcie犹如我们的手机,双方可以同时讲话,而sata就是对讲机了,一个人在说话,另外一个人就只能听不能说。
回到前面pcie带宽那张表,上面的带宽,比如pcie3.0x1,带宽为2gb/s,是指双向带宽,即读写带宽。如果单指读或者写,该值应该减半,即1gb/s的读速度或者写速度。
我们来看看表里面的带宽是怎么算出来的。
pcie是串行总线,pcie1.0的线上比特传输速率为2.5gb/s,物理层使用8/10编码,即8比特的数据,实际在物理线路上是需要传输10比特的,因此:
pcie1.0 x 1的带宽=(2.5gb/s x 2(双向通道))/ 10bit = 0.5gb/s
这是单条lane的带宽,有几条lane,那么整个带宽就0.5gb/s乘以lane的数目。
pcie2.0的线上比特传输速率在pcie1.0的基础上翻了一倍,为5gb/s,物理层同样使用8/10编码,所以:
pcie2.0 x 1的带宽=(5gb/s x 2(双向通道))/ 10bit = 1gb/s
同样,有多少条lane,带宽就是1gb/s乘以lane的数目。
pcie3.0的线上比特传输速率没有在pcie2.0的基础上翻倍,不是10gb/s,而是8gb/s,但物理层使用的是128/130编码进行数据传输,所以:
pcie3.0 x 1的带宽=(8gb/s x 2(双向通道))/ 8bit = 2gb/s
同样,有多少条lane,带宽就是2gb/s乘以lane的数目。
由于采用了128/130编码,128比特的数据,只额外增加了2bit的开销,有效数据传输比率增大,虽然线上比特传输率没有翻倍,但有效数据带宽还是在pcie2.0的基础上做到翻倍。
这里值得一提的是,上面算出的数据带宽已经考虑到8/10或者128/130编码,因此,大家在算带宽的时候,没有必要再考虑线上编码的问题了。
和sata单通道不同,pcie连接可以通过增加通道数扩展带宽,弹性十足。通道数越多,速度越快。不过,通道数越多,成本越高,占用更多空间,还有就是更耗电。因此,使用多少通道,应该在性能和其他因素之间进行一个综合考虑。单考虑性能的话,pcie最高带宽可达64gb/s,pcie 3.0 x 32对应的带宽,很恐怖的一个数据。不过,现有的pcie接口ssd,一般最多使用4通道,如pcie3.0x4,双向带宽为8gb/s,读或者写带宽为4gb/s。
几个gb/s的传输速度,读写小电影那是杠杠的。
在此,顺便来算算pcie3.0x4理论上最大的4k iops。pcie3.0x4理论最大读或者写的速度为4gb/s,不考虑协议开销,每秒可以传输4gb/4k个4k大小的io,该值为1m,即理论上最大iops为1000k。因此,一个ssd,不管你底层用什么介质,flash还是3d xpoint,接口速度就这么块,最大iops是不可能超过这个值的。
pcie是从pci发展过来的,pcie的”e”是express的简称,快的意思。pcie怎么就能比pci(或者pci-x)快呢?pcie在物理传输上,跟pci有着本质的区别:pci使用并口传输数据,而pcie使用的是串口传输。我pci并行总线,单个时钟周期可以传输32bit或者64bit,怎么就比不了你单个时钟周期传输1个bit数据的串行总线呢?
在实际时钟频率比较低的情况下,并口因为可以同时传输若干比特,速率确实比串口快。随着技术的发展,数据传输速率要求越来越快,要求时钟频率也越来越快,但是,并行总线时钟频率不是想快就能快的。
在发送端,数据在某个时钟沿传出去(左边时钟第一个上升沿),在接收端,数据在下个时钟沿(右边时钟第二个上升沿)接收。因此,要在接收端能正确采集到数据,要求时钟的周期必须大于数据传输的时间(从发送端到接收端,flight time)。受限于数据传输时间(该时间还随着数据线长度的增加而增加),因此时钟频率不能做得太高。另外,时钟信号在线上传输的时候,也会存在相位偏移(clock skew ),影响接收端的数据采集;还有,并行传输,接收端必须等最慢的那个bit数据到了以后,才能锁住整个数据 (signal skew)。
pcie使用串行总线进行数据传输就没有这些问题。它没有外部时钟信号,它的时钟信息通过8/10编码或者128/130编码嵌入在数据流,接收端可以从数据流里面恢复时钟信息,因此,它不受数据在线上传输时间的限制,你导线多长都没有问题,你数据传输频率多快也没有问题;没有外部时钟信号,自然就没有所谓的clock skew问题;由于是串行传输,只有一个bit传输,所以不存在signal skew问题。但是,如果使用多条lane传输数据(串行中又有并行,哈哈),这个问题又回来了,因为接收端同样要等最慢的那个lane上的数据到达才能处理整个数据。
pcie总线的基础知识
与pci总线不同,pcie总线使用端到端的连接方式,在一条pcie链路的两端只能各连接一个设备,这两个设备互为是数据发送端和数据接收端。pcie总线除了总线链路外,还具有多个层次,发送端发送数据时将通过这些层次,而接收端接收数据时也使用这些层次。pcie总线使用的层次结构与网络协议栈较为类似。
pcie链路使用“端到端的数据传送方式”,发送端和接收端中都含有tx(发送逻辑)和rx(接收逻辑),其结构如图所示。
由上图所示,在pcie总线的物理链路的一个数据通路(lane)中,由两组差分信号,共4根信号线组成。其中发送端的tx部件与接收端的rx部件使用一组差分信号连接,该链路也被称为发送端的发送链路,也是接收端的接收链路;而发送端的rx部件与接收端的tx部件使用另一组差分信号连接,该链路也被称为发送端的接收链路,也是接收端的发送链路。一个pcie链路可以由多个lane组成。
高速差分信号电气规范要求其发送端串接一个电容,以进行ac耦合。该电容也被称为ac耦合电容。pcie链路使用差分信号进行数据传送,一个差分信号由d+和d-两根信号组成,信号接收端通过比较这两个信号的差值,判断发送端发送的是逻辑“1”还是逻辑“0”。
与单端信号相比,差分信号抗干扰的能力更强,因为差分信号在布线时要求“等长”、“等宽”、“贴近”,而且在同层。因此外部干扰噪声将被“同值”而且“同时”加载到d+和d-两根信号上,其差值在理想情况下为0,对信号的逻辑值产生的影响较小。因此差分信号可以使用更高的总线频率。
此外使用差分信号能有效抑制电磁干扰emi(electro magnetic interference)。由于差分信号d+与d-距离很近而且信号幅值相等、极性相反。这两根线与地线间耦合电磁场的幅值相等,将相互抵消,因此差分信号对外界的电磁干扰较小。当然差分信号的缺点也是显而易见的,一是差分信号使用两根信号传送一位数据;二是差分信号的布线相对严格一些。
pcie链路可以由多条lane组成,目前pcie链路可以支持1、2、4、8、12、16和32个lane,即×1、×2、×4、×8、×12、×16和×32宽度的pcie链路。每一个lane上使用的总线频率与pcie总线使用的版本相关。
第1个pcie总线规范为v1.0,之后依次为v1.0a,v1.1,v2.0和v2.1。目前pcie总线的最新规范为v2.1,而v3.0正在开发过程中,预计在2010年发布。不同的pcie总线规范所定义的总线频率和链路编码方式并不相同,如表41所示。
pcie总线规范与总线频率和编码的关系
pcie总线规范总线频率[1]单lane的峰值带宽编码方式
1.x 1.25ghz 2.5gt/s 8/10b编码
2.x 2.5ghz 5gt/s 8/10b编码
3.0 4ghz 8gt/s 128/130b编码
如上表所示,不同的pcie总线规范使用的总线频率并不相同,其使用的数据编码方式也不相同。pcie总线v1.x和v2.0规范在物理层中使用8/10b编码,即在pcie链路上的10 bit中含有8 bit的有效数据;而v3.0规范使用128/130b编码方式,即在pcie链路上的130 bit中含有128 bit的有效数据。
由上表所示,v3.0规范使用的总线频率虽然只有4ghz,但是其有效带宽是v2.x的两倍。下文将以v2.x规范为例,说明不同宽度pcie链路所能提供的峰值带宽,如表42所示。
pcie总线的峰值带宽
pcie总线的数据位宽×1×2×4×8×12×16×32
峰值带宽(gt/s) 5 10 20 40 60 80 160
由上表所示,×32的pcie链路可以提供160gt/s的链路带宽,远高于pci/pci-x总线所能提供的峰值带宽。而即将推出的pcie v3.0规范使用4ghz的总线频率,将进一步提高pcie链路的峰值带宽。
在pcie总线中,使用gt(gigatransfer)计算pcie链路的峰值带宽。gt是在pcie链路上传递的峰值带宽,其计算公式为总线频率×数据位宽×2。
在pcie总线中,影响有效带宽的因素有很多,因而其有效带宽较难计算。尽管如此,pcie总线提供的有效带宽还是远高于pci总线。pcie总线也有其弱点,其中最突出的问题是传送延时。
pcie链路使用串行方式进行数据传送,然而在芯片内部,数据总线仍然是并行的,因此pcie链路接口需要进行串并转换,这种串并转换将产生较大的延时。除此之外pcie总线的数据报文需要经过事务层、数据链路层和物理层,这些数据报文在穿越这些层次时,也将带来延时。
在基于pcie总线的设备中,×1的pcie链路最为常见,而×12的pcie链路极少出现,×4和×8的pcie设备也不多见。intel通常在ich中集成了多个×1的pcie链路用来连接低速外设,而在mch中集成了一个×16的pcie链路用于连接显卡控制器。而powerpc处理器通常能够支持×8、×4、×2和×1的pcie链路。
pcie总线物理链路间的数据传送使用基于时钟的同步传送机制,但是在物理链路上并没有时钟线,pcie总线的接收端含有时钟恢复模块cdr(clock data recovery),cdr将从接收报文中提取接收时钟,从而进行同步数据传递。
值得注意的是,在一个pcie设备中除了需要从报文中提取时钟外,还使用了refclk+和refclk-信号对作为本地参考时钟
更多相关知识,请访问常见问题栏目!
以上就是pcie3.0x4最大速度是多少的详细内容。