《PCI系统结构 第4版》PDF下载

  • 购买积分:24 如何计算积分?
  • 作  者:(美)TOM Shanley Don Anderson
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2000
  • ISBN:7505360736
  • 页数:907 页
图书介绍:PCI(周边器件互连)是当今个人计算机的主流总线结构,用于周边设备与计算机中央处理之间的快速通信,是构筑个人计算机的基础。本书是对PCI总线规范的全面详细的指南,在美国已连续修订4版,印刷十余次。本书以汉英对照形式编排,是所有涉及PCI总线的硬件和软件设计和测试人员一本难得的参考书。

1.1 PCI总线的历史 1

1.2 PCI总线的特点 1

第1章 PCI简介 1

1.3 PCI设备与功能 3

1.5 如何获得PCI总线技术规范 4

1.4 遵循的技术规范 4

2.1 突发传送 5

第2章 PCI总线操作简介 5

2.4 PCI总线时钟 6

2.3 单功能与多功能PCI设备 6

2.2 起动方、目标和代理 6

2.6 声明一个交易 7

2.5 地址段 7

2.10 对非法操作的反应 8

2.9 交易完成与总线返回空闲状态 8

2.7 数据段 8

2.8 交易过程 8

2.11 “绿色”机器 9

3.1 每条电路都是一条传送线 10

第3章 反射波转换简介 10

3.3 PCI方法:反射波转换 11

3.2 老方法:入射波转换 11

3.4 时钟信号(CLK) 13

3.6 减慢时钟可以增加总线长度 14

3.5 复位(RST*)与64位请求(REQ64*)信号时序 14

4.1 简介 15

第4章 信号组 15

4.2.1 PCI时钟信号(CLK) 16

4.2 系统信号 16

4.2.2 CLKRUN*信号 17

4.3 地址/数据总线、命令总线和字节使能 18

4.2.3 复位信号(RST*) 18

4.5 交易控制信号 20

4.4 防止过大的电流泄漏 20

4.8 错误报告信号 21

4.7 中断请求信号 21

4.6 仲裁信号 21

4.8.2 系统错 22

4.8.1 数据奇偶校验错 22

4.9 Cache支持(侦测结果)信号 23

4.12 JTAG/边界扫描信号 24

4.11 资源锁定 24

4.10 64位扩展信号 24

4.16 信号类型 25

4.15 边带信号 25

4.13 中断请求引脚 25

4.14 PME*和3.3Vaux 25

4.19.1 背景 27

4.19 负向译码(通过ISA桥) 27

4.17 设备不能同时驱动和接收一个信号 27

4.18 中央资源功能 27

4.20 阅读时序图 29

4.19.2 调节负向译码器 29

5.1 仲裁器 31

第5章 PCI总线仲裁 31

5.2 仲裁算法 32

5.3 公平仲裁举例 33

5.6 总线停放 35

5.5 隐式总线仲裁 35

5.4 主设备希望执行多次交易 35

5.8 双主设备间的仲裁举例 36

5.7 请求/确认时序 36

5.11 损坏的主设备 39

5.10 从插入式连接器的请求信号(REQ*)上拉 39

5.9 在复位(RST*)时请求信号(REQ*)和确认信号(HNT*)的状态 39

6.2 总线访问延迟 40

6.1 第一次交易起动前的强制性延迟 40

第6章 主设备与目标延迟 40

6.3 2.1版前的设备可能是“坏孩子” 41

6.4.2 在最后数据传送之后的时钟周期使IRDY*失效 42

6.4.1 主设备必须在8个时钟周期内传送数据 42

6.4 防止主设备独占总线 42

6.4.3 延迟定时器防止主设备独占总线 43

6.5.2 目标必须迅速传送数据 45

6.5.1 概述 45

6.5 防止目标独占总线 45

6.5.3 在初始化时间的目标延迟 47

6.5.4 延迟的交易 48

6.6.1 概述 52

6.6 报告改进了存储器写性能 52

6.7 存储器写最大完成限制 53

6.6.4 崩溃是禁止的 53

6.6.2 组合 53

6.6.3 字节合并 53

6.8 交易顺序和死锁 54

7.1 简介 55

第7章 命令 55

7.2.2 背景 56

7.2.1 简介 56

7.2 中断确认命令 56

7.2.3 Host/PCI桥中断确认的处理 57

7.2.4 PCI中断确认交易 58

7.3.1 概述 59

7.3 专用周期命令 59

7.2.5 PowerPCPReP中断请求的处理 59

7.3.3 专用周期交易 61

7.3.2 在软件控制下的专用周期生成 61

7.5.2 Cache行容量寄存器与批量命令 63

7.5.1 目标支持批量命令是可选的 63

7.4 IO读和写命令 63

7.5 访问存储器 63

7.5.3 批量命令是可选的性能提升工具 64

7.5.5 写存储器 65

7.5.4 桥必须丢弃主设备役使用的预提 65

7.6 配置读和写命令 67

7.5.6 关于存储器传送的更多信息 67

7.8 保留的总线命令 68

7.7 双地址周期 68

8.3 单数据段读交易举例 69

8.2 奇偶校验 69

第8章 读传送 69

8.1 关于读和写的一些基本规则 69

8.4 突发读交易举例 71

8.5.3 没有有效字节使能的数据段 73

8.5.2 在每个数据段中字节使能可以改变 73

8.5 在读或写期间字节使能的处理 73

8.5.1 在进入数据段时出现的字节使能 73

8.5.6 可以忽略字节使能的情况 74

8.5.5 字节使能采样的规则 74

8.5.4 具有有限字节使能支持的目标 74

8.6 读交易时的性能 75

9.1 单数据段写交易举例 76

第9章 写传送 76

9.2 突发写交易举例 77

9.3 写交易时的性能 80

10.1.2 在存储器突发时的寻址顺序 81

10.1.1 起始地址 81

第10章 存储器和IO寻址 81

10.1 存储器寻址 81

10.2.4 由具有8位或16位端口的设备译码 83

10.2.3 由具有完整IO双字的设备译码 83

10.2 PCIIO寻址 83

10.2.1 不要合并处理器IO写 83

10.2.2 概述 83

10.2.5 未受支持的字节使能组合导致目标失败 84

10.2.8 当IO目标不支持多数据段交易 85

10.2.7 IO地址管理 85

10.2.6 空的第一个数据段是合法的 85

10.2.9 原有的IO译码 86

11.1.1 实现快速背靠背能力的决定 87

11.1 快速背靠背交易 87

第11章 快速背靠背和步进 87

11.1.2 情况1:主设备保证没有冲突 88

11.1.3 情况2:目标保证没有冲突 91

11.2 地址/数据步进 92

11.2.5 设计者可以步进地址、数据、PAR(和PAR64)与IDSEL 93

11.2.4 设备如何表示使用步进的能力 93

11.2.1 优点:减少的电流泄漏和交叉干扰 93

11.2.2 为什么目标在步进过程中不能锁存地址 93

11.2.3 数据步进 93

11.2.8 在步进过程中的预占 94

11.2.7 步进的缺点 94

11.2.6 连续的和离散的步进 94

11.2.11 当不能使用步进时 95

11.2.10 步过举例 95

11.2.9 损坏的主设备 95

11.2.12 谁必须支持步进? 96

12.2.1 预占的主设备 97

12.2 主设备起动的终止 97

第12章 早期交易结束 97

12.1 简介 97

12.2.2 主设备失败:目标不能声明交易 99

12.3.1 STOP*信号将目标置于驱动者的地位 102

12.3 目标起动的终止 102

12.3.3 连接断开 103

12.3.2 在交接周期不允许STOP 103

12.3.4 重试 107

12.3.5 目标失败 111

12.3.6 在重试/连接断开后尽快重复请求 112

12.4目标起动的终止小结 113

13.2 PCI奇偶校验简介 114

13.1 状态位名称改变 114

第13章 错误检测与处理 114

13.4.1 数据奇偶校验的产生并在读交易检查 115

13.4 数据奇偶校验 115

13.3 PERR*信号 115

13.4.2 数据奇偶校验的产生并在写交易检查 118

13.4.3 数据奇偶校验报告 120

13.4.5 特殊情况:在专用周期的数据奇偶校验错 122

13.4.4 从数据奇偶校验错恢复 122

13.5SERR*信号 123

13.4.6 没有PERR*要求的设备 123

13.5.1 地址段奇偶校验 124

13.5.2 系统错 125

14.2 使用引脚与使用MSI能力 127

14.1 向处理器发送中断的三种方法 127

第14章 申断 127

14.3 单功能PCI设备 128

14.5 INTX*引脚到系统板电路的连接 129

14.4 多功能PCI设备 129

14.6.1 概述 130

14.6 中断路由 130

14.6.2 在PCI规范中推荐的路由 131

14.6.5 中断路由信息 133

14.6.4 专门设计的芯片组具有可编程中断路由设备 133

14.6.3 BIOS“知道”中断电路布局 133

14.7.1 概述 134

14.7 中断路由表 134

14.10.1 概述 137

14.10 中断链 137

14.7.2 寻找中断路由表 137

14.8 PCI中断是共享的 137

14.9 “挂起”中断 137

14.10.5 步骤4:执行扩展总线ROM扫描 138

14.10.4 步骤3:“挂起”嵌入式设备BIOS例程的入口 138

14.10.2 步骤1:初始化中断的全部人口到虚设的处理程序 138

14.10.3 步骤2:初始化嵌入式设备的全部入口 138

14.10.6 步骤5:执行PCI设备扫描 139

14.12.1 情况举例 140

14.12 服务共享中断 140

14.10.7 步骤6:装载操作系统 140

14.10.8 步骤7:操作系统装载和调用驱动程序的初始化代码 140

14.11 为每个中断级建立联系列表 140

14.12.3 处理器被中断并请求向量 141

14.12.2 两个设备同时产生请求 141

14.12.6 跳到虚设的处理程序:控制返回被中断的程序 143

14.12.5 跳到联系列表中的下一个驱动程序 143

14.12.4 执行第一个处理程序 143

14.13 隐式的优先级方案 144

14.15.3 MSI配置的基础 145

14.15.2 MSI中断的优点 145

14.14 中断与PCI-PCI桥 145

14.15 消息信号中断(MSI) 145

14.15.1 简介 145

14.15.4 产生MSI中断请求的基础 146

14.15.6 当中断处理程序处理时存储器已经同步 147

14.15.5 桥如何处理存储器写 147

14.15.9 MSI是一种新的能力类型 148

14.15.8 MSI不是共享的 148

14.15.7 中断延迟 148

14.15.10 MSI能力寄存器组的描述 149

14.15.12 一些规定、建议 151

14.15.11 消息写操作能够具有损坏的结尾 151

15.2 64位扩展信号 152

15.1 64位数据传送与64位寻址:独立的能力 152

第15章 64位PCI扩展 152

15.4 在未使用时,上拉防止64位扩展的漂移 153

15.3 在32位插入式连接器上的64位卡 153

15.4.2 64位插卡如何确定所安装插槽的类型 154

15.4.1 问题:32位的PCI连接器上的64位传送 154

15.5 64位数据传送能力 155

15.5.3 64位主设备与64位目标 156

15.5.2 起始地址四字排列 156

15.5.1 只有存储器命令可以使用64位传送 156

15.5.4 64位主设备与32位目标 159

15.5.5 空数据段举例 161

15.5.6 32位主设备与64位目标 162

15.5.7 执行一个64位传送 163

15.6.3 64位寻址协议 166

15.6.2 简介 166

15.664位寻址 166

15.6.1 寻址4GB以上的存储器 166

15.6.4 对负向译码时序的影响 170

15.7.1 地址段奇偶校验 171

15.7 64位奇偶校验 171

15.6.5 对主设备失败时序的影响 171

15.6.6 地址步进 171

15.6.7 在单数据段交易中的FRAME*时序 171

15.7.2 数据段奇偶校验 172

16.3.1 66MHZ能力状态位 173

16.3 器件如何表示对66MHz的支持 173

第16章 66MHzPCI的实现 173

16.1 简介 173

16.2 66MHz使用3.3V信号环境 173

16.3.2 M66EN信号 174

16.7 66MHZ器件如何确定总线速率 175

16.6 停下时钟和改变时钟频率 175

16.3.3 时钟发生器如何设定其频率 175

16.4 时钟必须是66MHZ吗? 175

16.5 时钟信号源与路由 175

16.9 可获得的最大流通量 176

16.8 具有独立总线的系统主板 176

16.10 电气特性 177

16.14 插入式连接器的数目 178

16.13 增加更多的负载与/或加长总线 178

16.11 延迟规定 178

16.12 66MHZ器件推荐的引脚排列 178

17.1 简介 179

第17章 配置地址空间简介 179

17.3 三种地址空间:I/O、存储器与配置 180

17.2 PCI设备与PCI功能 180

17.4 主桥不需要实现配置空间 181

17.5 具有一个PCI总线的系统 182

18.2.1 简介 183

18.2 总线结构 183

第18章 配置交易 183

18.1 谁执行配置? 183

18.3 在RST*后必须在225时钟之内对配置访问作出反应 185

18.2.3 情况2:目标总线是PCI总线0的下线 185

18.2.2 情况1:目标总线是PCI总线0 185

18.5.1 背景 186

18.5 配置机构*1(唯一的机构!) 186

18.4 配置机构简介 186

18.5.2 配置机构*1描述 187

18.5.3 专用周期的软件产生 190

18.6.1 基本配置机构*2 191

18.6 配置机构*2(向下兼容) 191

18.6.2 配置空间使能CSE寄存器 192

18.8.1 地址段 193

18.8 类型0配置交易 193

18.6.3 前向寄存器 193

18.6.4 对主总线上同级桥的支持 193

18.6.5 专用周期的产生 193

18.7 PowerPCPReP配置机构 193

18.8.2 IDSEL的实现 195

18.8.3 进入数据段,译码开始 197

18.8.4 类型0配置交易举例 198

18.9.1 描述 199

18.9 类型1配置交易 199

18.9.2 专用周期请求 201

18.12 不允许64位配置交易 202

18.11 允许配置突发交易 202

18.10 目标设备不存在 202

19.1 配置首部区简介 203

第19章 配置寄存器 203

19.2.2 用于识别设备驱动程序的寄存器 204

19.2.1 简介 204

19.2 强制性的首部寄存器 204

19.2.3 命令寄存器 212

19.2.4 状态寄存器 214

19.2.5 首部类型寄存器 216

19.3.3 延迟定时器:“时间片”寄存器 217

19.3.2 Cache行容量寄存器 217

19.3 其他首都寄存器 217

19.3.1 简介 217

19.3.5 基地址寄存器(BAR) 218

19.3.4 BIST寄存器 218

19.3.6 扩展ROM基地址寄存器 223

19.3.10 Min_Gnt寄存器:时间片请求 224

19.3.9 中断线寄存器 224

19.3.7 CardBusCIS指针 224

19.3.8 中断引脚寄存器 224

19.4.3 新能力列表看上去像什么 225

19.4.2 发现存在的新能力 225

19.3.11 Max_Lat寄存器:优先级请求 225

19.4 新能力 225

19.4.1 配置首部空间不够大 225

19.4.4 AGP能力 227

19.4.5 关键产品数据(VPD)能力 229

19.5 用户定义特征(UDF) 235

20.2 ROM检测 237

20.1 ROM的用途——用于引导过程的设备 237

第20章 扩展ROM 237

20.4.1 多代码 239

20.4 ROM内容 239

20.3 ROM映射要求 239

20.4.2 一种代码的格式 241

20.5 初始化代码的执行 244

20.6.1 简介 245

20.6 开放固件简介 245

20.6.2 通用设备驱动程序格式 246

20.6.3 将资源列表传送到即插即用OS 247

20.7.3 数据结构 248

20.7.2 规范2.1版中VPD的实现 248

20.7 关键产品数据(VPD) 248

20.7.1 在2.2版中从ROM移入配置空间 248

21.1.1 32与64位连接器 251

21.1 插入式连接器 251

第21章 插入卡与连接器 251

21.1.2 3.3V与5V连接器 257

21.1.3 通用卡 257

21.1.4 共享槽 258

21.3.2 长短格式卡 259

21.3.1 3.3V、5V和通用卡 259

21.1.5 Riser卡 259

21.1.6 在插入式连接器上的侦测结果 259

21.2 PME*和3.3Vaux 259

21.3 插入卡 259

21.3.6 插入卡的电源要求 260

21.3.5 保持边界扫描链的完整 260

21.3.3 小PCI(SPCI) 260

21.3.4 器件层 260

21.3.7 插入卡的最大电路长度 261

21.3.8 每个共享信号一个负载 262

22.2 解决方案 263

22.1 问题 263

第22章 热插拔PCI 263

22.4.1 概述 264

22.4 软件元素 264

22.3 不改变适配器卡 264

22.5.1 概述 265

22.5 硬件元素 265

22.4.2 系统起动 265

22.5.2 提醒指示灯与可选的槽状态指示灯 266

22.6.1 开关状态 267

22.6 卡的拔插过程 267

22.5.3 选项——电源坏检测器 267

22.5.4 选项——追踪系统电源使用情况 267

22.6.3 基本的卡插入过程 268

22.6.2 基本的卡拔出过程 268

22.7.2 暂停一个驱动程序(可选) 269

22.7.1 概述 269

22.7 静止卡与驱动程序 269

22.9 设备ROM的处理 270

22.8 驱动程序第一次访问卡 270

22.7.3 必须正确处理共享中断 270

22.7.4 静止控制多个设备的驱动 270

22.7.5 静止一个坏的卡 270

22.12.2 逻辑槽ID 271

22.12.1 物理槽ID 271

22.10 谁来配置卡? 271

22.11 存储器与/或IO空间的有效利用 271

22.12 槽识别 271

22.13 插卡组 272

22.12.4 转换槽ID 272

22.12.3 PCI总线编号,设备编号 272

22.14 原始请求 273

22.16 关于66MHZ的说明 274

22.15 关于PCIRST*的说明 274

22.17.2 卡连接到具有独立电源的设备 275

22.17.1 槽电源要求 275

22.17 关于电源的说明 275

23.3.1 PCPM基础 276

23.3 电源管理入门 276

第23章 电源管理 276

23.1 在本章中电源管理简称为“PM” 276

23.2 PCI总线PM接口规范——但首先 276

23.3.2 当前的起始设计方案定义了总体电源管理 278

23.3.3 PCI电源管理与ACPI 282

23.4 PCI总线PM接口规范 286

23.4.3 发现功能的PM能力 287

23.4.2 设备对PCIPM的支持(可选) 287

23.4.1 原有的PCI设备——无标准PM方法 287

23.4.4 电源管理——PCI总线与PCI功能 288

23.4.6 功能PM状态 291

23.4.5 总线PM状态转换 291

23.4.7 PM寄存器详细描述 297

23.4.8 PM事件的详细描述 304

23.6 BIOS/POST在起动时的责任 310

23.5.3 取得电源状态功能调用 310

23.5 OS电源管理功能调用 310

23.5.1 取得能力功能调用 310

23.5.2 设置电源状态功能调用 310

24.2 术语 312

24.1 可大可小的总线结构 312

第24章 PCI-PCI桥 312

24.3.1 例一 313

24.3 系统举例 313

24.4 PCI-PCI桥:交通指挥 315

24.3.2 例二 315

24.5 延迟规则 318

24.6.2 首部类型寄存器 319

24.6.1 概述 319

24.6 配置寄存器 319

24.6.3 关于设备ID的寄存器 320

24.6.4 总线编号寄存器 321

24.6.5 命令寄存器 322

24.6.7 底板/槽编号寄存器简介 326

24.6.6 状态寄存器 326

24.6.8 地址译码相关寄存器 328

24.6.11 BIST寄存器 341

24.6.10 延迟定时寄存器 341

24.6.9 Cache行容量寄存器 341

24.7.2 总线编号分配 342

24.7.1 简介 342

24.6.12 中断相关的寄存器 342

24.7 配置过程 342

24.7.3 底板与糟编号分配 343

24.7.4 地址空间分配 349

24.7.6 显示配置 351

24.7.5 IRQ分配 351

24.8.1 简介 356

24.8 配置与专用周期过滤 356

24.8.3 类型1配置交易 357

24.8.2 专用周期交易 357

24.8.4 类型0配置访问 358

24.11 复位 359

24.10 具有负向译码特征的PCI-PCI桥 359

24.9 中断确认处理 359

24.13.1 使用中断跟踪的设备 360

24.13 中断支持 360

24.12 仲裁 360

24.14 缓冲区管理 361

24.13.2 使用MSI的设备 361

24.14.3 多数据段专用周期请求 362

24.14.2 关于报告写缓冲区用法的规则 362

24.14.1 存储器写与使失效命令的处理 362

24.15.2 处理地址段奇偶校验错 363

24.15.1 概述 363

24.15 错误检测与处理 363

24.15.3 读数据段奇偶校验错 364

24.15.4 写数据段奇偶校验错 365

24.15.5 处理主设备失败 370

24.15.6 处理目标失败 371

24.15.7 放弃定时器时间溢出 372

24.15.8 在第二总线上处理SERR 374

25.2.1 简单设备的顺序规则 375

25.2 简单设备:顺序规则与死锁 375

第25章 交易顺序与死锁 375

25.1 简单设备与桥的定义 375

25.1.1 简单设备 375

25.1.2 桥 375

25.2.2 与简单设备有关的死锁 376

25.3.2 桥管理双向交通流量 377

25.3.1 简介 377

25.3 桥:顺序规则与死锁 377

25.3.3 生产者/消费者模型 378

25.3.4 一般顺序要求 380

25.3.5 延迟的交易顺序要求 381

25.3.6 桥顺序规则 382

25.3.7 锁定延迟的交易与报告写 387

26.2.1 概述 389

26.2 支持的OS环境 389

第26章 PCIBIOS 389

26.1 PCIBIOS的用途 389

26.2.3 286保护模式(16:16) 390

26.2.2 实模式 390

26.2.5 今天的OS使用平模式(0:32) 391

26.2.4 386保护模式(32:32) 391

26.4 确定32位BIOS支持的服务 392

26.3 确定系统是否实现32位BIOS 392

26.6 调用PCIBIOS 393

26.5 确定32位BIOS是否支持PCIBIOS服务 393

26.7 PCIBIOS存在调用 394

27.2.2 EISA主设备起动的以主存储器为目标的锁定的交易系列 395

27.2.1 概述 395

第27章 锁定 395

27.12.2 规范重新定义锁定的用法 395

27.2 要求锁定的情况 395

27.2.4 可能的死销情况 396

27.2.3 处理器起动以EISA存储器为目标的锁定的交易系列 396

27.3.1 LOCK*信号 397

27.3 PCI解决方案:总线与资源锁定 397

27.3.3 资源锁定:推荐的解决方案 398

27.3.2 总线锁定:允许但不推荐 398

27.6.1 主设备实现规则 403

27.6 锁定规则小结 403

27.4 64位寻址时LOCK*的使用 403

27.5 锁定与延迟的交易 403

27.6.2 目标实现规则 404

28.3 基本PCI/CompactPCI比较 405

28.2 CompactPCI卡与PCI兼容 405

第28章 CompactPCI与PMC 405

28.1 什么是CompactPCI 405

28.4.1 标准PCI环境 406

28.4 基本定义 406

28.4.2 无源底板 407

28.4.4 前和后面板IO简介 409

28.4.3 连接器基础 409

28.4.5 CompactPCI卡简介 410

28.4.6 系统卡 411

28.5.1 连接器 412

28.5 设计规则 412

28.4.7 周边卡 412

28.5.2 系统与周边卡设计规则 417

28.5.3 前面板和前面板IO连接器 422

28.5.4 底板设计规则 423

28.5.5 后面板IO转换板 435

28.6.2 电气插入与拔出的不同阶段 437

28.6.1 在CompactPCI2.1规范中添加ENUM*信号 437

28.6 热切换能力 437

28.6.4 三种层次的实现 438

28.6.3 要求独立的时钟线 438

28.8.3 堆积高度与卡的厚度 439

28.8.2 规范 439

28.7 关于连接器编码键的电信应用问题 439

28.8 PCI背卡(PMC) 439

28.8.1 小尺寸可附加在CompactPCI卡上 439

28.8.7 PMC后面板IO映射到3U后面板IO 440

28.8.6 PMC连接器 440

28.8.4 PMC卡的连接器部分 440

28.8.5 前面板企口 440

28.8.8 PMC后面板IO映射到6U后面板IO 441

附录——术语表 443