目前PCIe总线规范,依然在迅猛发展,但并不是所有PCIe设备都支持这些在PCIe总线的最新规范中提及的概念。一般说来,PCIe总线规范提出的新的概念,最先在x86处理器系统的Chipset和Intel设计的PCIe设备中出现。
本书共由三篇组成。其中第一篇由第1~3章组成,介绍PCI总线的基础知识。第二篇由第4~13章组成,介绍PCIExpress总线的相关概念。第二篇的内容以第一篇为基础。从系统软件的角度上看,PCIExpress总线向前兼容PCI总线,理解PCIExpress总线必须要建立在深刻理解PCI总线的基础之上。读者需要按照顺序阅读这两篇。
第一章主要说明PCI总线涉及的一些基本知识。有些知识稍显过时,但是在PCI总线中出现的一些数据传送方式,如Posted、Non-Posted和Split数据传送方式,依然非常重要,也是读者需要掌握的。
第二章重点介绍PCI桥。PCI桥是PCI及PCIExpress体系结构的精华所在,本章还使用了一定篇幅介绍了非透明桥。非透明桥不是PCI总线定义的标准桥片,但是在处理器系统之间的互联中得到了广泛的应用。
第三章详细阐述PCI总线的数据传送方式,与Cache相关的内容和预读机制是本章的重点。目前PCI与PCIExpress对预读机制支持得并不理想。但是在可以预见的将来,PCIExpress总线将充分使用智能预读机制进一步提高总线的利用率。
第四章是PCIExpress篇的综述。第五章以Intel的笔记本平台Montevina为例说明RC的各个组成模块。实际上RC这个概念,只有在x86处理器平台中才真正存在。其他处理器系统中,并不存在严格意义上的RC。
第六、七章分别介绍PCIExpress总线的事务层、数据链路层和物理层。物理层是PCIExpress总线的真正核心,也是中国工程师最没有机会接触的内容。这也是我们这一代工程师的遗憾与无奈。第八章简要说明了PCIExpress总线的链路训练与电源管理。
第九章主要讨论的是通用流量控制的管理方法与策略。PCIExpress总线的流量控制机制仍需完善,其中不等长的报文长度也是限制PCIExpress总线流量控制进一步提高的重要因素。
第十章重点介绍MSI和MSI-X中断机制。MSI中断机制在PCI总线中率先提出,但是在PCIExpress总线中也得到大规模普及。目前x86架构多使用MSI-X中断机制,而在许多嵌入式处理器中仍然使用MSI中断机制。
第十一章的篇幅很短,重点介绍PCI和PCIExpress总线中的序。有志于学习处理器体系结构的工程师务必要掌握这部分内容。在处理器体系结构中有关Cache和数据传送序的内容非常复杂,掌握这些内容也是系统工程师进阶所必须的。
第十二章讲述了笔者的一个实际设计Capric卡,简单介绍了Linux设备驱动程序的实现过程,并对PCIExpress总线的延时与带宽进行了简要分析。
第十三章介绍PCI总线与虚拟化相关的一些内容。虚拟化技术已崭露头角,但是与虚拟化相关的一系列内容仍将对处理器体系结构产生深远的影响。目前虚拟化技术已经在x86和PowerPC处理器中得到了广泛的应用。