和很多的串行传输协议一样,一个完整的pcie体系结构包括应用层、事务层(transaction layer)、数据链路层(data link layer)和物理层(physical layer)。其中,应用层并不是pcie spec所规定的内容,完全由用户根据自己的需求进行设计,另外三层都是pcie spec明确规范的,并要求设计者严格遵循的。
一个简化的pcie总线体系结构如上图所示,其中device core and interface to transaction layer就是我们常说的应用层或者软件层。这一层决定了pcie设备的类型和基础功能,可以由硬件(如fpga)或者软硬件协同实现。如果该设备为endpoint,则其最多可拥有8项功能(function),且每项功能都有一个对应的配置空间(configuration space)。如果该设备为switch,则应用层需要实现包路由(packet routing)等相关逻辑。如果该设备为root,则应用层需要实现虚拟的pcie总线0(virtual pcie bus 0),并代表整个pcie总线系统与cpu通信。
事务层(transaction layer):接收端的事务层负责事务层包(transaction layer packet,tlp)的解码与校检,发送端的事务层负责tlp的创建。此外,事务层还有qos(quality of service)和流量控制(flow control)以及transaction ordering等功能。
数据链路层(data link layer):数据链路层负责数据链路层包(data link layer packet,dllp)的创建,解码和校检。同时,本层还实现了ack/nak的应答机制。
物理层(physical layer):物理层负责ordered-set packet的创建于解码。同时负责发送与接收所有类型的包(tlps、dllps和ordered-sets)。当前在发送之前,还需要对包进行一些列的处理,如byte striping、scramble(扰码)和encoder(8b/10b for gen1&gen2, 128b/130b for gen3& gen4)。对应的,在接收端就需要进行相反的处理。此外,物理层还实现了链路训练(link training)和链路初始化(link initialization)的功能,这一般是通过链路训练状态机(link training and status state machine,ltssm)来完成的。
需要注意的是,在pcie体系结构中,事务层,数据链路层和物理层存在于每一个端口(port)中,也就是说switch中必然存在一个以上的这样的结构(包括事务层,数据链路层和物理层的)。一个简化的模型如下图所示:
关于事务层,数据链路层和物理层的详细的功能图标如下图所示:
FireEye口中的中国黑客组织攻击美国国防企业?
华为麒麟820 5G能力强悍
符合AUTOSAR标准的RTA-OS--Counters介绍
设计OpenVPX系统以支持第3代Gbaud信令
魅族pro7不上曲面屏就好了,毕竟用户体验不好
一个简化的PCIe总线体系结构
特斯拉二季度在中国营收增长103%约14亿美元
油浸式试验变压器的使用注意事项
光电耦合器参数
关于FPGA芯片的结构组成是如何的
这种有序神经元,像你熟知的循环神经网络吗?
联发科“重回”电视芯片赛道,抢抓4K/8K、AI风口
中国电信有望使用TD-LTE
Spring-Boot项目开发中调用apaas接口的三种方式
使用人工智能的施展方法论:做好五个步骤
惊喜还是失望?阿尔法罗密欧能在中国达到宝马三系
美格智能亮相中国企业家博鳌论坛:勇立创新潮头,5G+AIoT开启智能新时代
日产公开电动汽车用非接触充电系统,计划配备于新一代车型
2010年3G视频监控的6大趋势及变化
TLC5510 VHDL控制程序