PCI EXPRESS体系结构导读 PDF
代码说明:
PCI+EXPRESS体系结构导读,王齐,我下载合为一本,希望对你有帮助。PCI Express体系结构导读王齐编著★机械工业出版社本书讲述了与Pc及 PCI Express总线相关的最为基础的内容,并介绍了一些必要的、与PCI总线相关的处理器体系结构知识,这也是本书的重点所在。深入理解处理器体系结构是理解PCI与 PCI Express总线的重要基础。读者通过对本书的学习,可超越PCI与 PCI Express总线自身的内容,理解在一个通用处理器系统中局部总线的设计思路与实现方法,从而理解其他处理器系统使用的局部总线。本书适用于希望多了解一些硬件的软件工程师,以及希望多了解一些软件的硬件工程师,也可供电子工程和计算机类的研究生自学参考。图书在版编目(CIP)数据PCI Express体系结构导读/王齐编著.一北京:机械工业出版社,2010.3lBN978-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的 FiberChannel和高速显示设备等。同时有些外部设备对总线的服务质量还有更严格的要求。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总线的组成,以便读者进一步理解PcIExpress总线协议。本书并不是关于PCI和 PCI Express总线的百科全书,因为读者完全可以通过阅读PCI和 PCI Express总线规范获得细节信息。本书侧重的是PCI和 PCI Express总线中与处理器体系结构相关的内容。本书不会对PCI总线的相关规范进行简单重复,部分内容并不在PCI总线规范定义的范围内,例如HOST主桥和RC。PCI总线规范并没有规定处理器厂商如何实现HOST主桥和RC,不同的处理器厂商实现的HOST主桥和RC有较大差异,而这些内容正是本书所讨论的重点。此外本书还讲述了一些在PCI总线规范中提及,但是容易被忽略的一些重要概念。本书共由三篇组成。第Ⅰ篇(第1~3章)介绍PCI总线的基础知识。第Ⅱ篇(第413章)介绍 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 EXpres总线将充分使用智能预读机制进一步提高总线的利用率。第4章是 PCI Express篇的综述。第5章以 Intel的笔记本平台 Montevina为例说明RC的各个组成模块。实际上RC这个概念,只有在x86处理器平台中才真正存在。其他处理器系统中,并不存在严格意义上的RC。第6、7章分别介绍 PCI Express总线的事务层、数据链路层和物理层。物理层是PCIExpress总线的真正核心,也是中国工程师最没有机会接触的内容。这也是我们这一代工程师的遗憾与无奈。第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和 PowerPC处理器中得到了广泛的应用第Ⅲ篇以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|总线的桥与配置……281.1PCI总线的组成结构………52.1存储器域与PCI总线域…281.1.1HOsT主桥2.1.ICPU域、DRAM域与存储器域…291.1.2PCI总线…………72.1.2PCI总线域…301.1.3PCI设备…………1.3处理器域1.1.4HOST处理器82.2HOST主桥…………321.1.5PCI总线的负载…2.2.1PCI设备配置空间的访间机制……331.2PCI总线的信号定义曹重量自道2.2.2存储器域地址空间到PCI总线1.2.I地址和数据信号中看语面“,·域地址空间的转换1.2.2接口控制信号……02.2.3PCI总线域地址空间到存储器123仲裁信号……………12域地址空间的转换…………371.2.4中断请求等其他信号····:122.2.4x86处理器的HOST主桥………401.3PCI总线的存储器读写总线事务…132.3PCI桥与PCI设备的配置空间…421.3.1PCI总线事务的时序…142.3.1PI桥………………………421.3.2 Posted和Non- Posted传送方式………52.3.2 PCI Agent设备的配置空间………441.3.3HOST处理器访问PCI设备162.3.3PCI桥的配置空间501.3.4PCI设备读写主存储器……82.4PCI总线的配置…………531.3.5 Delayed传送方式……24.1Type01h和 Type 00h配置请求1.4PCI总线的中断机制…22.42PCI总线配置请求的转换原则…551.4.1中断信号与中断控制器的连接2.4.3PCI总线树Bus号的初始化…关系………………………………212.4.4PCI总线 Device号的分配……591.4.2中断信号与PCI总线的连接2.5非透明PCI桥关系……2225.1 Intel21555中的配置寄存器…621.4.3中断请求的同步………………23252通过非透明桥片进行数据传递…631.5PCI-X总线简介…吾量由……252.6小结651.5.1 Split总线事务…25第3章PC总线的数据交换甲·看当血61.5.2总线传送协议………263.1PCI设备BAR空间的初始化……6653基于数据块的突发传送…3.1.1存储器地址与PCI总线地址1.6小结27的转换3.1.2PCI设备BAR寄存器和PCI桥空间进行DMA读写……………8Base、 Limit寄存器的初始化3.3.4PCI设备进行DMA写时发生3.2PCI设备的数据传递69Cache命中………………………823.2.1PCI设备的正向译码与负向3.3.5DMA写时发生 Cache命中译码………………………………69的优化………85322处理器到PC设备的数据传送…713.4预读机制……863.2.3PCI设备的DMA操作……………723.4.1指令预读3.24PCI桥的 Combining、 Merging34.2数据预读···89和 Collapsing中··自串暮暮福品品画733.4.3软件预读…93.3与 Cache相关的PCI总线事务…74344硬件预读……933.3.1 Cache一致性的基本概念…3.4.5PCI总线的预读机制…………943.3.2PCI设备对不可 Cache的存储器3.5小结··即自甲要普有当布普面首由a…98空间进行DMA读写3.3.3PCI设备对可 Cache的存储器第‖篇Pc| Express体系结构概述第4章PCe总线概述5.1.1 EPBAR寄存器……1444.1PCIe总线的基础知识…………lO51.2 MCHBAR寄存器………………1444.1.1端到端的数据传递……………0n5.I.3其他寄存器…………l444.1.2PCle总线使用的信号…1035.2 Montevina平台的存储器空间的4.1.3Pcle总线的层次结构…07组成结构………………,1454.1.4Pcle链路的扩展…I085.2.1 Legacy地址空间…………l474.1.5PCIe设备的初始化…………Il052.2DRAM域474.2PCe体系结构的组成部件……25.2.3存储器域…144.2.1基于PC架构的处理器系统…25.3存储器域的PCI总线地址4.2.2RC的组成结构………………1l7间……………………………504.2.3 Switch解着喜+「中··鲁曲曲「85.3.1PCI设备使用的地址空间………1504.24VC和端口仲裁……1205.3.2FCIe总线的配置空间………………5l425 PCle-to-PCLPCI-X桥片………1225.4小结·::···中.d;=·".:7544.3PCIe设备的扩展配置空间…123第6章PCe总线的事务层…7554.3.1 Power Management Capability6.1TLP的格式155结构l246.1.1通用TP头的Fmt字段和Ty4.3.2 PCI Express Capability结构127字段………………………1564.3.3 PCI Express Extended Capabilities6.1.2TC字段…………………………l58结构…………………l36.1.3Amr字段……………………………1594.4小结l396.1.4通用TLP头中的其他字段160第5章 Montevina的MCH和|CH…1406.2TLP的路由……1615.1PCI总线0的Deve0设备……,1416.2.1基于地址的路由Ⅶ6.2.2基于ID的路由8.1.3 Receiver detect识别逻辑2176.2.3隐式路由……暴音前自mm1668.2 LTSSM状态机…2I86.3存储器、LO和配置读写8.2.1 Detect状态…………220请求TIP……………….1678.22 Polling状态…………………22l6.3.1存储器读写请求TLP…………1688.2.3 Configuration状态………2236.3.2完成报文……………………1728.2.4 Recovery状态22863.3配置读写请求mP……………1741748.2.5 LTSSM的其他状态……2316.34消息请求报文………………758.3PCle总线的 ASPM……………2326.3.5PCIe总线的原子操作……1778.3.1与电源管理相关的链路状态…23263.6 TLP Processing Hint∴……………i788.3.2D0状态…………………………2336.4TLP中与数据负载相关的8.3.3I0状态………………234参数………………………1818.3.4Ll状态…2356.4.1 Max_Payload_Size参数………·l88.3.5L2状态…2366.4.2 Max_ Read_ Request_Siz参数…l828.4 PCI PM机制……4日#······世23764.3RCB参数……………………838.4.1PCle设备的 D-State…………2376.5小结8.4.2D- State的状态迁移238第7章PCe总线的数据链路层与8.5小结………………………………240物理层·普自·自:.吾.“:a日平;.千画185第9章流量控制··自自·着暮;品吾.“中24l7.l数据链路层的组成结构………1859I流量控制的基本原理………2427.1.1数据链路层的状态…………1869.1.1Rate- Based流量控制………………2437.L.2事务层如何处理DL_Down和9.1.2 Credit- Based流量控制244状态1899.2 Credit- Based机制使用的算法…2467.1.3DILP的格式……………8992.1N23算法和N123+算法2497,2ACK/NAK协议………………1919.2.2N23算法……25072.I发送端如何使用ACK/NAK9.2.3流量控制机制的缓冲管理……252协议1929.3PCle总线的流量控制2547.2.2接收端如何使用ACK/NAK9.3.lPCe总线流量控制的缓存协议…………………………l95管理25572.3数据链路层发送报文的顺序……19993.2 Current节点的 Credit…2577.3物理层简介…9.3.3VC的初始化……………2597.3.,1PCle链路的差分信号…………20093.4PCIe设备如何使用FCP…26l7.3.2物理层的组成结构…………2049.4小结………………,2627.3.38/10b编码与解码…………206第10章MS和MS|X中断机制2637.4小结………………21010.1 MSI MSI-X Capability结构…263第8章PCe总线的链路训练与电源10.1.1 MSI Capability结构………264管理……………………………2l10.1.2MsL- X Capability结构………2668. 1 PCle链路训练简介……2/10.2 PowerPC处理器如何处理8.1.1链路训练使用的字符序列……213MSI中断请求……………2688.1.2 Electrical Idle状态-u+aiua,21610.2.1MSI中断机制使用的寄存器270Ⅷ
下载说明:请别用迅雷下载,失败请重下,重下不扣分!