实例介绍
PCI+EXPRESS体系结构导读,王齐,我下载合为一本,希望对你有帮助。
PCI Express体系结构导读 王齐编著 ★ 机械工业出版社 本书讲述了与Pc及 PCI Express总线相关的最为基础的内容,并介 绍了一些必要的、与PCI总线相关的处理器体系结构知识,这也是本书的 重点所在。深入理解处理器体系结构是理解PCI与 PCI Express总线的重 要基础。 读者通过对本书的学习,可超越PCI与 PCI Express总线自身的内容, 理解在一个通用处理器系统中局部总线的设计思路与实现方法,从而理解 其他处理器系统使用的局部总线。本书适用于希望多了解一些硬件的软件 工程师,以及希望多了解一些软件的硬件工程师,也可供电子工程和计算 机类的研究生自学参考。 图书在版编目(CIP)数据 PCI Express体系结构导读/王齐编著.一北京:机械工业出版社,2010.3 lBN978-7-111-29822-9 .①P…Ⅱ.①王…Ⅲ.愚线一结构Ⅳ.①TP35 中国版本图书馆CIP数据核字(2010)第028735号 机械工业出版社(北京市百万庄大街2号邮政编码1007) 责任编辑:车忱 责任印制:洪汉军 三河市宏达印刷有限公司印刷 2010年3月第1版·第1次印刷 l84mmx260mm·28.5印张·704T子 0O0I-3500册 标准书号:ISRN9787-1129829 定价;5500元 凡购本书,如有缺页、倒页、脱页,由本社发行部调换 电话服务 网络服务 社服务中心:(010)8861066 销售一部:(00)6326294门户网:址:/wmok.m 销售二部:(010)88379649教材网:htp:∥www.amped.com 读者服务部:(O10)6899821封面无防伪标均为盗版 序 PCI Express总线是新一代的O局部总线标准,是取代PCI总线的革命性总线架构 PCI总线曾经是PC体系结构发展史上的一个里程碑,但是随着技术的不断发展,新涌现出 的一些外部设备对传输速度和带宽有更高的要求,如千兆和万兆以太网、4Gb/8Gb的 Fiber Channel和高速显示设备等。同时有些外部设备对总线的服务质量还有更严格的要求。PCI 总线在设计之初并没有考虑这些因素,因此并不能完全满足这些外部设备的需要。 PCI Express总线正是在这种背景下应运而生的。在2001年的春季英特尔开发者论坛上, 英特尔公布了取代PCI总线的第三代L0技术,当时被称为“3GIO”。经 PCI-SIG审核,于 202年7月正式公布了第一版规范,并更名为 PCI Express。从2004年开始, PCI Express总 线逐渐全面取代PCI和ACP总线,成为新的局部总线工业标准。 与PCI总线的共享并行架构不同, PCI Express总线使用高速串行传送方式,能够支持 更高的频率,连接的设备不再像PCI总线那样共享总线带宽。除此之外 PCI Express总线还 引人了一些新特性,如流量控制机制、服务质量管理、热插拔支持、数据完整性和新型错误 处理机制等。而且 PCI Expres总线在系统软件级与PCI总线保持兼容,最大程度上降低了 系统软件从原有的PCI总线体系结构移植到 PCI Expres总线体系结构的难度。 目前关于 PCI Express总线规范的文献和书籍已有多种,但多集中在介绍规范本身。对 于广大的开发者来说,能够从处理器系统的角度了解 PCI Express总线功能,无疑更有实用 价值。无论是系统外部设备的开发、驱动程序的编写,还是其他系统软件的开发,处理器系 统始终处于核心位置。 本书正是从处理器系统的视角来讲述 PCI Express总线的体系结构,较为细致地介绍了 如何使用FPGA实现一个基于PCle总线的外部设备,以及基于Linx系统的 PCI/PCI Express 总线驱动程序和设备驱动程序。本书对于 PCI Express总线相关的软硬件开发人员具有很高 的参考价值。 PCI Express总线规范仍在不断发展。总的来说, PCI Express总线规范提出的最新技术 概念往往在英特尔的x86处理器系统和外部设备中最先出现。本书的作者王齐先生,目前工 作于英特尔开源技术研究中心,对处理器体系结构和Lmx系统核心技术均有深入研究,相 信本书的读者能够从他的经验分享中获益。 杨继国 英特尔开源技术中心 Ⅲ 前言 PCⅠI与 PCI Express(PCle)总线在处理器系统中得到了大规模应用。 PCISIG也制定了 系列PCI与 PCI Express总线相关的规范,这些规范所涉及的内容庞杂广泛。对于已经理 解了PCI与 PCI Express总线的工程师,这些规范便于他们进一步获得必要的细节知识。对 于刚刚接触PCI与 PCI Express总线的工程师,这些规范性的文档并不适合阅读。在阅读这 些规范时,工程师还需要具备一些与体系结构相关的基础知识,这恰是规范并不涉及的内 容。对于多数工程师,规范文档适于查阅,而不便于学习。 本书将以处理器体系结构为主线介绍 PCI Express总线的组成,以便读者进一步理解PcI Express总线协议。本书并不是关于PCI和 PCI Express总线的百科全书,因为读者完全可以 通过阅读PCI和 PCI Express总线规范获得细节信息。本书侧重的是PCI和 PCI Express总线 中与处理器体系结构相关的内容。 本书不会对PCI总线的相关规范进行简单重复,部分内容并不在PCI总线规范定义的范 围内,例如HOST主桥和RC。PCI总线规范并没有规定处理器厂商如何实现HOST主桥和 RC,不同的处理器厂商实现的HOST主桥和RC有较大差异,而这些内容正是本书所讨论的 重点。此外本书还讲述了一些在PCI总线规范中提及,但是容易被忽略的一些重要概念。 本书共由三篇组成。第Ⅰ篇(第1~3章)介绍PCI总线的基础知识。第Ⅱ篇(第4 13章)介绍 PCI Express总线的相关概念。第Ⅱ篇的內容以第Ⅰ篇为基础。从系统软件的角 度来看, PCI Express总线向前兼容PCI总线,理解 PCI Express总线必须建立在深刻理解PCI 总线的基础之上。读者需要按照顺序阅读这两篇。 第1章主要说明PCl总线涉及的一些基本知识。有些知识稍显过时,但是在PC总线中 出现的一些数据传送方式,如 Posted、Nn- Posted和 Split数据传送方式,依然非常重要,也 是读者需要掌握的。 第2章重点介绍PCI桥。PCI桥是PCI及 PCI Express体系结构的精华所在,本章还使用 了一定篇幅介绍了非透明桥。非透明桥不是PCI总线定义的标准桥片,但是在处理器系统之 间的互联中得到了广泛的应用。 第3章详细阐述PCI总线的数据传送方式,与 Cache相关的内容和预读机制是本章的重 点。目前pC与 PCI Express对预读机制的支持并不理想。但是在可以预见的将来, PCI EX pres总线将充分使用智能预读机制进一步提高总线的利用率。 第4章是 PCI Express篇的综述。第5章以 Intel的笔记本平台 Montevina为例说明RC的 各个组成模块。实际上RC这个概念,只有在x86处理器平台中才真正存在。其他处理器系 统中,并不存在严格意义上的RC。 第6、7章分别介绍 PCI Express总线的事务层、数据链路层和物理层。物理层是PCI Express总线的真正核心,也是中国工程师最没有机会接触的内容。这也是我们这一代工程 师的遗憾与无奈。第8章简要说明了 PCI Express总线的链路训练与电源管理。 第9章主要讨论的是通用流量控制的管理方法与策略。 PCI Express总线的流量控制机 Ⅳ 制仍需完善,其中不等长的报文长度也是限制 PCI Express总线流量控制进一步提高的重要 因素。 第10章重点介绍MS和MSI-X中断机制。MS中断机制在PCI总线中率先提出,但是 在PCⅠ Express总线中也得到大规模普及。目前x86架构多使用MSIX中断机制,而在许多 嵌入式处理器中仍然使用MSI中断机制。 第11章的篇幅很短,重点介绍PCI和 PCI Express总线中的序。有志于学习处理器体系 结构的工程师务必掌握这部分内容。在处理器体系结构中有关 Cache和数据传送序的内容非 常复杂,掌握这些内容也是系统工程师进阶所必须的。 第12章讲述了笔者的一个实际设计—Capc卡,简单介绍了 Linux设备驱动程序的实 现过程,并对 PCI Express总线的延时与带宽进行了简要分析。 第13章介绍PCI总线与虚拟化相关的一些内容。虚拟化技术已崭露头角,与虚拟化相 关的一系列内容将对处理器体系结构产生深远的影响。目前虚拟化技术已经在x86和 Power PC处理器中得到了广泛的应用 第Ⅲ篇以Linx系统为实例说明PCI总线在处理器系统中的使用方法,也许有许多读者 对这一篇有着浓厚的兴趣。Iinx无疑是一个非常优秀的操作系统。但是需要提醒系统工程 师,lix系统仅是一个完全开源的操作系统。对于有志于学习处理器体系结构的工程师, 学习 Linux系统是必要的,但是仅靠学习 Linux系统并不足够。 通常说来,理解处理器体系结构至少需要了解两三种处理器,并了解它们在不同处理器 上的实现。尺有所短,寸有所长。不同的处理器和操作系统所应用的领域并不完全相同。也 是因为这个原因,本书以 PowerPC和x86处理器为基础对PCI和 PCI Express总线进行说明。 本书在写作过程中得到了我的同事和在处理器及操作系统行业奋战多年的朋友们的帮 助。在Linx系统中许多与处理器和PCI总线相关的模块,都有着他们的辛勤付出。刘建国 和郭超宏先生审阅了本书的第Ⅰ篇。马明辉先生审阅了本书的第Ⅱ篇。张巍、余珂与刘劲松 先生审阅了第13章。吴晓川、王勇、丁建峰、李力与吴强先生共同审阅了全书。 本书第12章中出现的 Capric和 Cornus卡由郭冠军和高健协助完成。看着他们通过对 PCI Express总线理解的逐渐深入,最终设计出一个具有较高性能的 Cornus卡,备感欣慰。 此外杨强浩先生也参与了 Capric和 Cornus卡的原始设计与方案制定,在此对他及他的团队 在这个过程中给予的帮助表示感谢,我们也一道通过这两块卡的制作进一步领略了 PCI EX- press总线的技术之美。 个优秀的协议,从制定到广大技术人员理解其精妙之处,再到协议应用到一个个优秀 产品中,需要更多的人参与、投人、实践,这也是编写此书最大的动力源泉。本书的完成与 我的妻子范淑琴的激励直接相关, Capricornus也是她的星座。还需要感谢本书的编辑车忱与 策划时静,正是他们的努力使得本书提前问世。 对本书尚留疑问的读者,可通过我的邮箱sailing.w@gmail.com与我联系。最后希望这本 书对您有所帮助。 作者 目录 序 前言 第丨篇PC|体系结构概述 第1章PC|总线的基本知识 3第2章PC|总线的桥与配置…… 28 1.1PCI总线的组成结构……… 52.1存储器域与PCI总线域… 28 1.1.1HOsT主桥 2.1.ICPU域、DRAM域与存储器域…29 1.1.2PCI总线………… 72.1.2PCI总线域… 30 1.1.3PCI设备………… 1.3处理器域 1.1.4HOST处理器 82.2HOST主桥 …………32 1.1.5PCI总线的负载… 2.2.1PCI设备配置空间的访间机制……33 1.2PCI总线的信号定义 曹重量自道 2.2.2存储器域地址空间到PCI总线 1.2.I地址和数据信号 中看语面“,· 域地址空间的转换 1.2.2接口控制信号…… 0 2.2.3PCI总线域地址空间到存储器 123仲裁信号…………… 12 域地址空间的转换…………37 1.2.4中断请求等其他信号 ····: 12 2.2.4x86处理器的HOST主桥………40 1.3PCI总线的存储器读写总线事务…132.3PCI桥与PCI设备的配置空间…42 1.3.1PCI总线事务的时序… 14 2.3.1PI桥………………………42 1.3.2 Posted和Non- Posted传送方式………5 2.3.2 PCI Agent设备的配置空间………44 1.3.3HOST处理器访问PCI设备 16 2.3.3PCI桥的配置空间 50 1.3.4PCI设备读写主存储器……82.4PCI总线的配置…………53 1.3.5 Delayed传送方式…… 24.1Type01h和 Type 00h配置请求 1.4PCI总线的中断机制… 2 2.42PCI总线配置请求的转换原则…55 1.4.1中断信号与中断控制器的连接 2.4.3PCI总线树Bus号的初始化… 关系………………………………21 2.4.4PCI总线 Device号的分配……59 1.4.2中断信号与PCI总线的连接 2.5非透明PCI桥 关系 ……22 25.1 Intel21555中的配置寄存器…62 1.4.3中断请求的同步………………23 252通过非透明桥片进行数据传递…63 1.5PCI-X总线简介… 吾量由 ……252.6小结 65 1.5.1 Split总线事务… 25第3章PC总线的数据交换 甲·看当血 6 1.5.2总线传送协议……… 263.1PCI设备BAR空间的初始化……66 53基于数据块的突发传送… 3.1.1存储器地址与PCI总线地址 1.6小结 27 的转换 3.1.2PCI设备BAR寄存器和PCI桥 空间进行DMA读写……………8 Base、 Limit寄存器的初始化 3.3.4PCI设备进行DMA写时发生 3.2PCI设备的数据传递 69 Cache命中………………………82 3.2.1PCI设备的正向译码与负向 3.3.5DMA写时发生 Cache命中 译码………………………………69 的优化……… 85 322处理器到PC设备的数据传送…713.4预读机制…… 86 3.2.3PCI设备的DMA操作……………72 3.4.1指令预读 3.24PCI桥的 Combining、 Merging 34.2数据预读 ··· 89 和 Collapsing 中··自串暮暮福品品画 73 3.4.3软件预读… 9 3.3与 Cache相关的PCI总线事务…74 344硬件预读 ……93 3.3.1 Cache一致性的基本概念… 3.4.5PCI总线的预读机制…………94 3.3.2PCI设备对不可 Cache的存储器 3.5小结 ··即自甲要普有当布普面首由a …98 空间进行DMA读写 3.3.3PCI设备对可 Cache的存储器 第‖篇Pc| Express体系结构概述 第4章PCe总线概述 5.1.1 EPBAR寄存器…… 144 4.1PCIe总线的基础知识…………lO 51.2 MCHBAR寄存器………………144 4.1.1端到端的数据传递……………0n 5.I.3其他寄存器…………l44 4.1.2PCle总线使用的信号… 1035.2 Montevina平台的存储器空间的 4.1.3Pcle总线的层次结构…07 组成结构………………,145 4.1.4Pcle链路的扩展 …I08 5.2.1 Legacy地址空间…………l47 4.1.5PCIe设备的初始化…………Il0 52.2DRAM域 47 4.2PCe体系结构的组成部件……2 5.2.3存储器域… 14 4.2.1基于PC架构的处理器系统…25.3存储器域的PCI总线地址 4.2.2RC的组成结构………………1l7 间 ……………………………50 4.2.3 Switch 解着喜+「中··鲁曲曲「 8 5.3.1PCI设备使用的地址空间………150 4.24VC和端口仲裁…… 120 5.3.2FCIe总线的配置空间………………5l 425 PCle-to-PCLPCI-X桥片………1225.4小结 ·::···中.d;=·".: 754 4.3PCIe设备的扩展配置空间…123第6章PCe总线的事务层… 755 4.3.1 Power Management Capability 6.1TLP的格式 155 结构 l24 6.1.1通用TP头的Fmt字段和Ty 4.3.2 PCI Express Capability结构 127 字段………………………156 4.3.3 PCI Express Extended Capabilities 6.1.2TC字段…………………………l58 结构 …………………l3 6.1.3Amr字段……………………………159 4.4小结 l39 6.1.4通用TLP头中的其他字段 160 第5章 Montevina的MCH和|CH…1406.2TLP的路由…… 161 5.1PCI总线0的Deve0设备……,141 6.2.1基于地址的路由 Ⅶ 6.2.2基于ID的路由 8.1.3 Receiver detect识别逻辑 217 6.2.3隐式路由…… 暴音前自mm 1668.2 LTSSM状态机 …2I8 6.3存储器、LO和配置读写 8.2.1 Detect状态…………220 请求TIP ……………….167 8.22 Polling状态…………………22l 6.3.1存储器读写请求TLP…………168 8.2.3 Configuration状态………223 6.3.2完成报文……………………172 8.2.4 Recovery状态 228 63.3配置读写请求mP……………174 1748.2.5 LTSSM的其他状态 ……231 6.34消息请求报文………………758.3PCle总线的 ASPM……………232 6.3.5PCIe总线的原子操作……177 8.3.1与电源管理相关的链路状态…232 63.6 TLP Processing Hint∴……………i78 8.3.2D0状态…………………………233 6.4TLP中与数据负载相关的 8.3.3I0状态………………234 参数………………………181 8.3.4Ll状态… 235 6.4.1 Max_Payload_Size参数………·l8 8.3.5L2状态 …236 6.4.2 Max_ Read_ Request_Siz参数…l828.4 PCI PM机制…… 4日#······世 237 64.3RCB参数……………………83 8.4.1PCle设备的 D-State………… 237 6.5小结 8.4.2D- State的状态迁移 238 第7章PCe总线的数据链路层与 8.5小结………………………………240 物理层 ·普自·自:.吾.“:a日平;.千画 185第9章流量控制 ··自自·着暮;品吾.“中 24l 7.l数据链路层的组成结构………1859I流量控制的基本原理……… 242 7.1.1数据链路层的状态…………186 9.1.1Rate- Based流量控制………………243 7.L.2事务层如何处理DL_Down和 9.1.2 Credit- Based流量控制 244 状态 1899.2 Credit- Based机制使用的算法…246 7.1.3DILP的格式 ……………89 92.1N23算法和N123+算法 249 7,2ACK/NAK协议………………191 9.2.2N23算法…… 250 72.I发送端如何使用ACK/NAK 9.2.3流量控制机制的缓冲管理……252 协议 1929.3PCle总线的流量控制 254 7.2.2接收端如何使用ACK/NAK 9.3.lPCe总线流量控制的缓存 协议…………………………l95 管理 255 72.3数据链路层发送报文的顺序……199 93.2 Current节点的 Credit …257 7.3物理层简介… 9.3.3VC的初始化……………259 7.3.,1PCle链路的差分信号…………200 93.4PCIe设备如何使用FCP… 26l 7.3.2物理层的组成结构…………2049.4小结………………,262 7.3.38/10b编码与解码…………206第10章MS和MS|X中断机制 263 7.4小结… ……………21010.1 MSI MSI-X Capability结构…263 第8章PCe总线的链路训练与电源 10.1.1 MSI Capability结构………264 管理……………………………2l 10.1.2MsL- X Capability结构………266 8. 1 PCle链路训练简介…… 2/10.2 PowerPC处理器如何处理 8.1.1链路训练使用的字符序列……213 MSI中断请求……………268 8.1.2 Electrical Idle状态 -u+aiua ,216 10.2.1MSI中断机制使用的寄存器270 Ⅷ 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论