当时钟的频率越来越高的时候,对高速率的传输,
使用的是串行,发送的时候有TX + , TX - ,
这四点条线就被称为一个LANE, 对于视频卡,可能需要多个LANE.
PCI 接口引脚是并行的,PCIE是串行的,每个方向的数据
使用2条差分信号线来传输,发送、接收两个方向就
需要4条线,这被称为一个LANE,
PCIE 设备的接口上,可以有多个LANE,
两个PCIE 设备之间有一个LINK
一个LINK 中有1对多对发送、接收引脚,
一个LINK 最多可以有32 lane,
pcie 上怎么传输地址,数据
即然PCIE 是串行信号,那只能在“包“里传输地址,数据了,
需要定义包的格式,类型 + 地址+ 数据
包怎么传递给对方, 怎么确保不出错,有重传机制,有检验码。
包怎么通过差分线传送出去?
头部,你是内存读,还是写, 你是IO读还是IO 写。
这是第一层。
我为了把数据发送出去。
出错的时候,要重传,对这些数据,我们继续添加一些信息
事务层,头部里面有地址。
我为了重传,我在前面又加上一个序列号。加序列号之后,我
加上一个校验码。
3 拆分, 拆分成信号,发送出去。
首先,要配置,这个设备就有一个地址范围,这个地址,转换
某一个设备发现这个地址是他可以处理的,他就会回应。
我们大概讲了PCIE 引脚,对这些包又可以分成三个层次。
对于我们编写驱动程序的人来说,大部分情况都是类似的。