微信扫一扫,移动浏览光盘
简介
本书讲述了与PCI及PCI Express总线相关的最为基础的内容,并介绍
了一些必要的、与PCI总线相关的处理器体系结构知识,这也是本书的重点
所在。深入理解处理器体系结构是理解PCI与PCI Express总线的重要基础
。
读者通过对本书的学习,可超越PCI与PCI Express总线自身的内容,
理解在一个通用处理器系统中局部总线的设计思路与实现方法,从而理解
其他处理器系统使用的局部总线。本书适用于希望多了解一些硬件的软件
工程师,以及希望多了解一些软件的硬件工程师,也可供电子工程和计算
机类的研究生自学参考。
目录
序
前言
第ⅰ篇pci体系结构概述
第1章pci总线的基本知识
1.1pci总线的组成结构
1.1.1host主桥
1.1.2pci总线
1.1.3pci设备
1.1.4host处理器
1.1.5pci总线的负载
1.2pci总线的信号定义
1.2.1地址和数据信号
1.2.2接口控制信号
1.2.3仲裁信号
1.2.4中断请求等其他信号
1.3pci总线的存储器读写总线事务
1.3.1pci总线事务的时序
1.3.2posted和non瞤osted传送方式
1.3.3host处理器访问pci设备
1.3.4pci设备读写主存储器
.1.3.5delayed传送方式
1.4pci总线的中断机制
1.4.1中断信号与中断控制器的连接关系
1.4.2中断信号与pci总线的连接关系
1.4.3中断请求的同步
1.5pci瞲总线简介
1.5.1split总线事务
1.5.2总线传送协议
1.5.3基于数据块的突发传送
1.6小结
第2章pci总线的桥与配置
2.1存储器域与pci总线域
2.1.1cpu域、dram域与存储器域
2.1.2pci总线域
2.1.3处理器域
2.2host主桥
2.2.1pci设备配置空间的访问机制
2.2.2存储器域地址空间到pci总线域地址空间的转换
2.2.3pci总线域地址空间到存储器域地址空间的转换
2.2.4x86处理器的host主桥
2.3pci桥与pci设备的配置空间
2.3.1pci桥
2.3.2pci agent设备的配置空间
2.3.3pci桥的配置空间
2.4pci总线的配置
2.4.1type 01h和type 00h配置请求
2.4.2pci总线配置请求的转换原则
2.4.3pci总线树bus号的初始化
2.4.4pci总线device号的分配
2.5非透明pci桥
2.5.1intel 21555中的配置寄存器
2.5.2通过非透明桥片进行数据传递
2.6小结
第3章pci总线的数据交换
3.1pci设备bar空间的初始化
3.1.1存储器地址与pci总线地址的转换
3.1.2pci设备bar寄存器和pci桥
base、limit寄存器的初始化
3.2pci设备的数据传递
3.2.1pci设备的正向译码与负向译码
3.2.2处理器到pci设备的数据传送
3.2.3pci设备的dma操作
3.2.4pci桥的combining、merging和collapsing
3.3与cache相关的pci总线事务
3.3.1cache一致性的基本概念
3.3.2pci设备对不可cache的存储器空间进行dma读写
3.3.3pci设备对可cache的存储器空间进行dma读写
3.3.4pci设备进行dma写时发生cache命中
3.3.5dma写时发生cache命中的优化
3.4预读机制
3.4.1指令预读
3.4.2数据预读
3.4.3软件预读
3.4.4硬件预读
3.4.5pci总线的预读机制
3.5小结
第ⅱ篇pci express体系结构概述
第4章pcie总线概述
4.1pcie总线的基础知识
4.1.1端到端的数据传递
4.1.2pcie总线使用的信号
4.1.3pcie总线的层次结构
4.1.4pcie链路的扩展
4.1.5pcie设备的初始化
4.2pcie体系结构的组成部件
4.2.1基于pcie架构的处理器系统
4.2.2rc的组成结构
4.2.3switch
4.2.4vc和端口仲裁
4.2.5pcie瞭o瞤ci/pci瞲桥片
4.3pcie设备的扩展配置空间
4.3.1power management capability结构
4.3.2pci express capability结构
4.3.3pci express extended capabilities结构
4.4小结
第5章montevina的mch和ich
5.1pci总线0的device 0设备
5.1.1epbar寄存器
5.1.2mchbar寄存器
5.1.3其他寄存器
5.2montevina平台的存储器空间的组成结构
5.2.1legacy地址空间
5.2.2dram域
5.2.3存储器域
5.3存储器域的pci总线地址空间
5.3.1pci设备使用的地址空间
5.3.2pcie总线的配置空间
5.4小结
第6章pcie总线的事务层
6.1tlp的格式
6.1.1通用tlp头的fmt字段和type字段
6.1.2tc字段
6.1.3attr字段
6.1.4通用tlp头中的其他字段
6.2tlp的路由
6.2.1基于地址的路由
6.2.2基于id的路由
6.2.3隐式路由
6.3存储器、i/o和配置读写请求tlp
6.3.1存储器读写请求tlp
6.3.2完成报文
6.3.3配置读写请求tlp
6.3.4消息请求报文
6.3.5pcie总线的原子操作
6.3.6tlp processing hint
6.4tlp中与数据负载相关的参数
6.4.1max_payload_size参数
6.4.2max_read_request_size参数
6.4.3rcb参数
6.5小结
第7章pcie总线的数据链路层与物理层
7.1数据链路层的组成结构
7.1.1数据链路层的状态
7.1.2事务层如何处理dl_down和dl_up状态
7.1.3dllp的格式
7.2ack/nak协议
7.2.1发送端如何使用ack/nak协议
7.2.2接收端如何使用ack/nak协议
7.2.3数据链路层发送报文的顺序
7.3物理层简介
7.3.1pcie链路的差分信号
7.3.2物理层的组成结构
7.3.38/10b编码与解码
7.4小结
第8章pcie总线的链路训练与电源管理
8.1pcie链路训练简介
8.1.1链路训练使用的字符序列
8.1.2electrical idle状态
8.1.3receiver detect识别逻辑
8.2ltssm状态机
8.2.1detect状态
8.2.2polling状态
8.2.3configuration状态
8.2.4recovery状态
8.2.5ltssm的其他状态
8.3pcie总线的aspm
8.3.1与电源管理相关的链路状态
8.3.2l0状态
8.3.3l0s状态
8.3.4l1状态
8.3.5l2状态
8.4pci pm机制
8.4.1pcie设备的d瞫tate
8.4.2d瞫tate的状态迁移
8.5小结
第9章流量控制
9.1流量控制的基本原理
9.1.1rate瞓ased流量控制
9.1.2credit瞓ased流量控制
9.2credit瞓ased机制使用的算法
9.2.1n123算法和n123+算法
9.2.2n23算法
9.2.3流量控制机制的缓冲管理
9.3pcie总线的流量控制
9.3.1pcie总线流量控制的缓存管理
9.3.2current节点的credit
9.3.3vc的初始化
9.3.4pcie设备如何使用fcp
9.4小结
第10章msi和msi瞲中断机制
10.1msi/msi瞲 capability结构
10.1.1msi capability结构
10.1.2msi瞲 capability结构
10.2powerpc处理器如何处理msi中断请求
10.2.1msi中断机制使用的寄存器
10.2.2系统软件如何初始化pcie设备的msi capability结构
10.3x86处理器如何处理msi瞲中断请求
10.3.1message address字段和message data字段的格式
10.3.2fsb interrupt message总线事务
10.4小结
第11章pci/pcie总线的序
11.1生产/消费者模型
11.1.1生产/消费者的工作原理
11.1.2生产/消费者模型在pci/pcie总线中的实现
11.2pci总线的死锁
11.2.1缓冲管理引发的死锁
11.2.2数据传送序引发的死锁
11.3pci总线的序
11.3.1pci总线序的通用规则
11.3.2delayed总线事务的传送规则
11.3.3pci总线事务通过pci桥的顺序
11.3.4lock,delayed和posted总线事务间的关系
11.4pcie总线的序
11.4.1tlp传送的序
11.4.2id瞓ase ordering
11.4.3msi报文的序
11.5小结
第12章pcie总线的应用
12.1capric卡的工作原理
12.1.1bar空间
12.1.2capric卡的初始化
12.1.3dma写
12.1.4dma读
12.1.5中断请求
12.2capric卡的数据传递
12.2.1dma写使用的tlp
12.2.2dma读使用的tlp
12.2.3capric卡的中断请求
12.3基于pcie总线的设备驱动
12.3.1capric卡驱动程序的加载与卸载
12.3.2capric卡的初始化与关闭
12.3.3capric卡的dma读写操作
12.3.4capric卡的中断处理
12.3.5存储器地址到pci总线地址的转换
12.3.6存储器与cache的同步
12.4capric卡的延时与带宽
12.4.1tlp的传送开销
12.4.2pcie设备的dma读写延时
12.4.3capric卡的优化
12.5小结
第13章pcie总线与虚拟化技术
13.1iommu
13.1.1iommu的工作原理
13.1.2ia处理器的vt瞕
13.1.3amd处理器的iommu
13.2ats(address translation services)
13.2.1tlp的at字段
13.2.2地址转换请求
13.2.3invalidate atc
13.3sr瞚ov与mr瞚ov
13.3.1sr瞚ov技术
13.3.2mr瞚ov技术
13.4小结
第ⅲ篇linux与pci总线
第14章linux pci的初始化过程
14.1linux x86对pci总线的初始化
14.1.1pcibus_class_init与pci_driver_init函数
14.1.2pci_arch_init函数
14.1.3pci_slot_init和pci_subsys_init函数
14.1.4与pci总线初始化相关的其他函数
14.2x86处理器的acpi
14.2.1acpi驱动程序与aml解释器
14.2.2acpi表
14.2.3acpi表的使用实例
14.3基于acpi机制的linux pci的初始化
14.3.1基本的准备工作
14.3.2linux pci初始化pci总线号
14.3.3linux pci检查pci设备使用的bar空间
14.3.4linux pci分配pci设备使用的bar寄存器
14.4linux powerpc如何初始化pci总线树
14.5小结
第15章linux pci的中断处理
15.1pci总线的中断路由
15.1.1pci设备如何获取irq号
15.1.2pci中断路由表
15.1.3pci插槽使用的irq号
15.2使用msi/msix中断机制申请中断向量
15.2.1linux如何使能msi中断机制
15.2.2linux如何使能msi瞲中断机制
15.3小结
参考文献
前言
第ⅰ篇pci体系结构概述
第1章pci总线的基本知识
1.1pci总线的组成结构
1.1.1host主桥
1.1.2pci总线
1.1.3pci设备
1.1.4host处理器
1.1.5pci总线的负载
1.2pci总线的信号定义
1.2.1地址和数据信号
1.2.2接口控制信号
1.2.3仲裁信号
1.2.4中断请求等其他信号
1.3pci总线的存储器读写总线事务
1.3.1pci总线事务的时序
1.3.2posted和non瞤osted传送方式
1.3.3host处理器访问pci设备
1.3.4pci设备读写主存储器
.1.3.5delayed传送方式
1.4pci总线的中断机制
1.4.1中断信号与中断控制器的连接关系
1.4.2中断信号与pci总线的连接关系
1.4.3中断请求的同步
1.5pci瞲总线简介
1.5.1split总线事务
1.5.2总线传送协议
1.5.3基于数据块的突发传送
1.6小结
第2章pci总线的桥与配置
2.1存储器域与pci总线域
2.1.1cpu域、dram域与存储器域
2.1.2pci总线域
2.1.3处理器域
2.2host主桥
2.2.1pci设备配置空间的访问机制
2.2.2存储器域地址空间到pci总线域地址空间的转换
2.2.3pci总线域地址空间到存储器域地址空间的转换
2.2.4x86处理器的host主桥
2.3pci桥与pci设备的配置空间
2.3.1pci桥
2.3.2pci agent设备的配置空间
2.3.3pci桥的配置空间
2.4pci总线的配置
2.4.1type 01h和type 00h配置请求
2.4.2pci总线配置请求的转换原则
2.4.3pci总线树bus号的初始化
2.4.4pci总线device号的分配
2.5非透明pci桥
2.5.1intel 21555中的配置寄存器
2.5.2通过非透明桥片进行数据传递
2.6小结
第3章pci总线的数据交换
3.1pci设备bar空间的初始化
3.1.1存储器地址与pci总线地址的转换
3.1.2pci设备bar寄存器和pci桥
base、limit寄存器的初始化
3.2pci设备的数据传递
3.2.1pci设备的正向译码与负向译码
3.2.2处理器到pci设备的数据传送
3.2.3pci设备的dma操作
3.2.4pci桥的combining、merging和collapsing
3.3与cache相关的pci总线事务
3.3.1cache一致性的基本概念
3.3.2pci设备对不可cache的存储器空间进行dma读写
3.3.3pci设备对可cache的存储器空间进行dma读写
3.3.4pci设备进行dma写时发生cache命中
3.3.5dma写时发生cache命中的优化
3.4预读机制
3.4.1指令预读
3.4.2数据预读
3.4.3软件预读
3.4.4硬件预读
3.4.5pci总线的预读机制
3.5小结
第ⅱ篇pci express体系结构概述
第4章pcie总线概述
4.1pcie总线的基础知识
4.1.1端到端的数据传递
4.1.2pcie总线使用的信号
4.1.3pcie总线的层次结构
4.1.4pcie链路的扩展
4.1.5pcie设备的初始化
4.2pcie体系结构的组成部件
4.2.1基于pcie架构的处理器系统
4.2.2rc的组成结构
4.2.3switch
4.2.4vc和端口仲裁
4.2.5pcie瞭o瞤ci/pci瞲桥片
4.3pcie设备的扩展配置空间
4.3.1power management capability结构
4.3.2pci express capability结构
4.3.3pci express extended capabilities结构
4.4小结
第5章montevina的mch和ich
5.1pci总线0的device 0设备
5.1.1epbar寄存器
5.1.2mchbar寄存器
5.1.3其他寄存器
5.2montevina平台的存储器空间的组成结构
5.2.1legacy地址空间
5.2.2dram域
5.2.3存储器域
5.3存储器域的pci总线地址空间
5.3.1pci设备使用的地址空间
5.3.2pcie总线的配置空间
5.4小结
第6章pcie总线的事务层
6.1tlp的格式
6.1.1通用tlp头的fmt字段和type字段
6.1.2tc字段
6.1.3attr字段
6.1.4通用tlp头中的其他字段
6.2tlp的路由
6.2.1基于地址的路由
6.2.2基于id的路由
6.2.3隐式路由
6.3存储器、i/o和配置读写请求tlp
6.3.1存储器读写请求tlp
6.3.2完成报文
6.3.3配置读写请求tlp
6.3.4消息请求报文
6.3.5pcie总线的原子操作
6.3.6tlp processing hint
6.4tlp中与数据负载相关的参数
6.4.1max_payload_size参数
6.4.2max_read_request_size参数
6.4.3rcb参数
6.5小结
第7章pcie总线的数据链路层与物理层
7.1数据链路层的组成结构
7.1.1数据链路层的状态
7.1.2事务层如何处理dl_down和dl_up状态
7.1.3dllp的格式
7.2ack/nak协议
7.2.1发送端如何使用ack/nak协议
7.2.2接收端如何使用ack/nak协议
7.2.3数据链路层发送报文的顺序
7.3物理层简介
7.3.1pcie链路的差分信号
7.3.2物理层的组成结构
7.3.38/10b编码与解码
7.4小结
第8章pcie总线的链路训练与电源管理
8.1pcie链路训练简介
8.1.1链路训练使用的字符序列
8.1.2electrical idle状态
8.1.3receiver detect识别逻辑
8.2ltssm状态机
8.2.1detect状态
8.2.2polling状态
8.2.3configuration状态
8.2.4recovery状态
8.2.5ltssm的其他状态
8.3pcie总线的aspm
8.3.1与电源管理相关的链路状态
8.3.2l0状态
8.3.3l0s状态
8.3.4l1状态
8.3.5l2状态
8.4pci pm机制
8.4.1pcie设备的d瞫tate
8.4.2d瞫tate的状态迁移
8.5小结
第9章流量控制
9.1流量控制的基本原理
9.1.1rate瞓ased流量控制
9.1.2credit瞓ased流量控制
9.2credit瞓ased机制使用的算法
9.2.1n123算法和n123+算法
9.2.2n23算法
9.2.3流量控制机制的缓冲管理
9.3pcie总线的流量控制
9.3.1pcie总线流量控制的缓存管理
9.3.2current节点的credit
9.3.3vc的初始化
9.3.4pcie设备如何使用fcp
9.4小结
第10章msi和msi瞲中断机制
10.1msi/msi瞲 capability结构
10.1.1msi capability结构
10.1.2msi瞲 capability结构
10.2powerpc处理器如何处理msi中断请求
10.2.1msi中断机制使用的寄存器
10.2.2系统软件如何初始化pcie设备的msi capability结构
10.3x86处理器如何处理msi瞲中断请求
10.3.1message address字段和message data字段的格式
10.3.2fsb interrupt message总线事务
10.4小结
第11章pci/pcie总线的序
11.1生产/消费者模型
11.1.1生产/消费者的工作原理
11.1.2生产/消费者模型在pci/pcie总线中的实现
11.2pci总线的死锁
11.2.1缓冲管理引发的死锁
11.2.2数据传送序引发的死锁
11.3pci总线的序
11.3.1pci总线序的通用规则
11.3.2delayed总线事务的传送规则
11.3.3pci总线事务通过pci桥的顺序
11.3.4lock,delayed和posted总线事务间的关系
11.4pcie总线的序
11.4.1tlp传送的序
11.4.2id瞓ase ordering
11.4.3msi报文的序
11.5小结
第12章pcie总线的应用
12.1capric卡的工作原理
12.1.1bar空间
12.1.2capric卡的初始化
12.1.3dma写
12.1.4dma读
12.1.5中断请求
12.2capric卡的数据传递
12.2.1dma写使用的tlp
12.2.2dma读使用的tlp
12.2.3capric卡的中断请求
12.3基于pcie总线的设备驱动
12.3.1capric卡驱动程序的加载与卸载
12.3.2capric卡的初始化与关闭
12.3.3capric卡的dma读写操作
12.3.4capric卡的中断处理
12.3.5存储器地址到pci总线地址的转换
12.3.6存储器与cache的同步
12.4capric卡的延时与带宽
12.4.1tlp的传送开销
12.4.2pcie设备的dma读写延时
12.4.3capric卡的优化
12.5小结
第13章pcie总线与虚拟化技术
13.1iommu
13.1.1iommu的工作原理
13.1.2ia处理器的vt瞕
13.1.3amd处理器的iommu
13.2ats(address translation services)
13.2.1tlp的at字段
13.2.2地址转换请求
13.2.3invalidate atc
13.3sr瞚ov与mr瞚ov
13.3.1sr瞚ov技术
13.3.2mr瞚ov技术
13.4小结
第ⅲ篇linux与pci总线
第14章linux pci的初始化过程
14.1linux x86对pci总线的初始化
14.1.1pcibus_class_init与pci_driver_init函数
14.1.2pci_arch_init函数
14.1.3pci_slot_init和pci_subsys_init函数
14.1.4与pci总线初始化相关的其他函数
14.2x86处理器的acpi
14.2.1acpi驱动程序与aml解释器
14.2.2acpi表
14.2.3acpi表的使用实例
14.3基于acpi机制的linux pci的初始化
14.3.1基本的准备工作
14.3.2linux pci初始化pci总线号
14.3.3linux pci检查pci设备使用的bar空间
14.3.4linux pci分配pci设备使用的bar寄存器
14.4linux powerpc如何初始化pci总线树
14.5小结
第15章linux pci的中断处理
15.1pci总线的中断路由
15.1.1pci设备如何获取irq号
15.1.2pci中断路由表
15.1.3pci插槽使用的irq号
15.2使用msi/msix中断机制申请中断向量
15.2.1linux如何使能msi中断机制
15.2.2linux如何使能msi瞲中断机制
15.3小结
参考文献
PCI Express 体系结构导读
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×