存储器读写请求TLP的格式如图6-8所示。在存储器读写和I/O读写请求的第3和第4个双字中,存放TLP的32或者64位地址。存储器、I/O和原子操作读写请求使用的TLP头较为类似。此时与这个存储器读请求TLP对应的读完成TLP中不包含有效数据。......
2023-10-20
本节讲述PCIe总线定义的各类TLP,并详细介绍这些TLP的格式。在这些TLP中,有些格式对于初学者来说较难理解。为此本书将在第12章中结合一个设计实例,进一步描述这些TLP格式。
但是在阅读第12章的内容之前,读者需要建立PCIe总线中与TLP相关的一些基本概念,特别是存储器读写相关的报文格式。在PCIe总线中,存储器读写,I/O读写和配置读写请求TLP由以下几类报文组成。
(1)存储器读请求TLP和读完成TLP
当PCIe主设备,RC或者EP,访问目标设备的存储器空间时,使用Non-Posted总线事务向目标设备发出存储器读请求TLP,目标设备收到这个存储器读请求TLP后,使用存储器读完成TLP,主动向主设备传递数据。当主设备收到目标设备的存储器读完成TLP后,将完成一次DMA读操作。
(2)存储器写请求TLP
在PCIe总线中,存储器写使用Posted总线事务。PCIe主设备仅使用存储器写请求TLP即可完成DMA写操作,主设备不需要目标设备的回应报文。
(3)原子操作请求和完成报文
原子操作由PCIe V2.1总线规范引入,一个完整的原子操作由原子操作请求和原子操作完成报文组成。原子操作的使用方法与其他Non-Posted总线事务类似,首先PCIe主设备向目标设备发送原子操作请求,之后目标设备向主设备发送原子操作完成报文,结束一次原子操作。有关原子操作的详细说明见第6.3.5节。(www.chuimin.cn)
(4)I/O读写请求TLP和读写完成TLP
在PCIe总线中,I/O读写操作使用Non-Posted总线事务,I/O读写TLP都需要完成报文做为回应。只是在I/O写请求的完成报文中不需要“带数据”,而仅含有I/O写请求是否成功的状态信息。
(5)配置读写请求TLP和配置读写完成TLP
从总线事务的角度上看,配置读写请求操作的过程与I/O读写操作的过程类似。配置读写请求TLP都需要配置读写完成作为应答,从而完成一个完成的配置读写操作。
(6)消息报文
与PCI总线相比,PCIe总线增加了消息请求事务。PCIe总线使用基于报文的数据传送模式,所有总线事务都是通过报文实现的,PCIe总线取消了一些在PCI总线中存在的边带信号。在PCIe总线中,一些由PCI总线的边带信号完成的工作,如中断请求和电源管理等,在PCIe总线中由消息请求报文实现。
有关PCI Express体系结构导读的文章
存储器读写请求TLP的格式如图6-8所示。在存储器读写和I/O读写请求的第3和第4个双字中,存放TLP的32或者64位地址。存储器、I/O和原子操作读写请求使用的TLP头较为类似。此时与这个存储器读请求TLP对应的读完成TLP中不包含有效数据。......
2023-10-20
下面将以图1-1中的处理器系统为例,简要介绍PCI总线支持的总线事务及其传送方式。由表1-2可知,PCI总线支持多种总线事务。PCI总线的配置读写总线事务与HOST主桥与PCI桥相关,因此读者需要了解HOST主桥和PCI桥的详细实现机制之后,才能深入理解这部分内容。PCI总线支持以下几类存储器读写总线事务。HOST处理器使用PCI总线的存储器读写总线事务和I/O读写总线事务访问PCI设备的BAR空间。PCI设备对主存储器进行读写,即DMA读写操作。......
2023-10-20
PCI总线定义了两类配置请求,一类是Type 00h配置请求,另一类是Type 01h配置请求。PCI总线使用这些配置请求访问PCI总线树上的设备配置空间,包括PCI桥和PCI Agent设备的配置空间。当x86处理器对CONFIG_DATA寄存器进行读写操作时,HOST主桥将决定向PCI总线发送Type 00h配置请求还是Type 01h配置请求。在PCI总线事务的地址周期中,这两种配置请求总线事务的不同反映在PCI总线的AD[31∶0]信号线上。......
2023-10-20
本节重点讲述PCI桥如何将Type 01h配置请求转换为Type 00h配置请求。下面将举例说明PCI总线配置请求的转换原则,并以图2-8为例说明处理器如何访问PCI设备01和PCI设备31的配置空间。PCI总线规定Type01h配置请求只能由PCI桥负责处理。而1<Bus Number≤3,所以PCI桥1将接收来自PCI总线0的Type 01h配置请求,并将这个配置请求直接下推到PCI总线1。......
2023-10-20
图4-41I/O引脚等效原理图本节所有的寄存器和位以通用格式表示:小写的“x”表示端口的序号,而小写的“n”代表位的序号,但是在程序里要写完整。通用数字I/O的端口为具有可选上拉电阻的双向I/O端口。图4-42通用数字I/O说明:WRx、WPx、WDx、RRx、RPx和RDx对于同一端口的所有引脚都是一样的。注意SBI指令能够用来改变端口的单个位。表4-15端口引脚配置......
2023-06-26
定时器/计数器2称为专用定时器/计数器,它的输入连接引脚为IO4,而输出引脚连接IO1。定时器/计数器的时钟信号以及使能信号可来自外部I/O引脚,也可由系统时钟分频得到。两个定时器/计数器的时钟速率互相独立。如果一个定时器/计数器被定义来实现一个输出对象或一个正交输入对象,它就不能在同一个应用中被定义为其他的定时器/计数器对象。定时器/计数器I/O对象和并行双向I/O对象的详细介绍请参考相关资料。......
2023-11-22
所谓I/O接口也就是输入/输出接口。根据信号传输方式的不同,I/O接口一般可分为并行接口和串行接口两种方式。通常所说的并行接口一般称为Centronics接口,也称为IEEE1284标准。当传输距离较远、位数又多时,并行接口会导致通信线路复杂且成本提高。图5-13所示为各类并行接口及并行电缆,传输的是数字量和开关量。串行接口按电气标准及协议来分包括RS-232-C、RS-422、RS-485等。......
2023-06-23
函数选板中文件I/O选板上的VI和函数可用于常见文件I/O操作,如读写以下类型的数据:在电子表格文本文件中读写数值;在文本文件中读写字符;从文本文件读取行;在二进制文件中读写数据。可将读取文本文件、写入文本文件函数配置为可执行常用文件I/O操作。如“文件I/O”VI和函数被设置为执行多项操作,则每次运行时都将打开关闭文件,所以尽量不要将它们放在循环中。下面对文件I/O选板中的节点进行介绍。......
2023-11-26
相关推荐