【PCIe】知识串烧
1.硬件1.1 PCI/PCIe总线什么是总线总线就是带协议的物理铜线。使用总线通信的设备必须遵循同一套通信规则这个规则就是总线协议。PCI总线是老版本的总线标准用32根物理导线并行传输数据但是频率上不去容易出错。PCIe是新版本的总线标准减少了导线数量提高了总线时钟频率所以实际上速度比PCI快很多。所以PCI基本被淘汰后面我们只需要关注PCIe即可。解释总线时钟频率总线时钟频率是什么这属于硬件知识在之前的文章中有说过。频率类似于音乐中的拍子每个音都要在拍子上。系统中任何动作都只有时钟的脉冲到了才会被触发因为数字电路中的门电路需要上升沿/下降沿/高低电平才能触发门电路向前传播。所以时钟频率决定了电路的处理速度。但是时钟频率是有上限的电路有自己的最快响应速度过高的频率电路会产生信号紊乱无法正常工作。1.2 PCIe总线与CPU直连与非直连直连保证了没有”中间商“可以高速低延迟传输适合于接入显卡、固态硬盘、网卡。非直连方式连接的设备更多但是速度有所降低。1.2 PCIe插槽PCIe分为四种型号分别为 1x, 4x, 8x, 16xx表示通道通道越多并行度越高速度越快长度也越长。PCIe图例见https://zhuanlan.zhihu.com/p/6736722222.软件2.1 enp1s0f0np0在linux系统中用ip addr命令可以看到一系列网卡信息其中比较常见的有一个enp1s0np0。enp1s0np0是 Linux 系统中一个网络接口的名称它遵循了系统预测的网络接口命名规则Predictable Network Interface Names。这个名称本身包含了该网络接口的硬件位置信息可以解读为en表示这是一个以太网Ethernet 接口。p1表示这张网卡连接在 PCI 总线 1 上pcie 1。s0表示这张网卡位于 PCI 插槽 0 上slot 0。f0PCIE功能号。把一张物理网卡看作一家多功能公司公司只有一个办公地址总线 p1 和插槽 s0 固定不变但里面分了不同的部门功能f0是部门0f1是部门2。对于只有一个功能的卡来说可以省去此字段即 enp1s0np0。np0表示这是这张网卡上的第 0 号端口network port 0。很多服务器网卡是一张卡带 2个 或 4个 网线插口端口。系统必须分清你插的是哪个口。简单来说这个名称描述了一个linux设备对应1号PCIE总线的 0号插槽上的一张多功能网卡的0号功能0号网口。这种命名方式主要是为了替代传统混乱的 eth0、eth1 命名让网络接口的名字能反映其物理位置方便管理。例如当系统内核更新或添加新硬件时eth0 和 eth1 的指代可能会互换而基于硬件位置的命名如 enp1s0np0则更稳定。