目前PCIe总线规范,依然在迅猛发展,但并不是所有PCIe设备都支持这些在PCIe总线的最新规范中提及的概念。一般说来,PCIe总线规范提出的新的概念,最先在x86处理器系统的Chipset和Intel设计的PCIe设备中出现。
本书第三篇以Linux系统为实例说明PCI总线在处理器系统中的使用方法,也许有许多读者对这一篇有着浓厚的兴趣。Linux无疑是一个非常优秀的操作系统。但是需要提醒系统工程师,Linux系统仅是一个完全开源的操作系统。对于有志于学习处理器体系结构的工程师,学习Linux系统是必要的,但是仅靠学习Linux系统并不足够。
通常说来,理解处理器体系结构至少需要了解两三种处理器,并了解两三种操作系统在不同处理器上的实现。尺有所短,寸有所长。不同的处理器和操作系统所应用的领域并不完全相同。也是因为这个原因,本书以PowerPC和x86处理器为基础对PCI和PCIExpress总线进行说明。
本书在写作过程中得到了我的同事和在处理器及操作系统行业奋战多年的朋友们的帮助。在Linux系统中许多与处理器和PCI总线相关的模块,都有着他们的身影。刘建国和郭超宏先生审阅了本书的第一篇。马明辉先生审阅了本书的第二篇。张巍、余珂与刘劲松先生审阅了第十三章。吴晓川、王勇、丁建峰、李力与吴强先生共同审阅了全书。
本书第十二章中出现的Capric和Cornus卡由郭冠军和高健协助完成。看着他们通过对PCIExpress总线理解的逐渐深入,最终设计出一个具有较高性能的Cornus卡,备感欣慰。此外杨强浩先生也参与了Capric和Cornus卡的原始设计与方案制定,在此对他及他的团队在这个过程中给予的帮助表示感谢,我们也一道通过这两块卡的制作进一步领略了PCIExpress总线的技术之美。
一个优秀协议的制定,到广大技术人员理解其精妙之处,再到协议应用到一个个优秀产品中,需要更多的人参与、投入、实践,这也是书写此书最大的动力源泉。本书的完成与我的妻子,范淑琴女士的激励直接相关,Capricornus也是她的星座。还需要感谢本书的编辑车忱与策划时静,正是他们的努力使得本书提前问世。
对本书尚留疑问的读者,可通过我的邮箱sailing.w@与我联系。最后希望这本书对您有所帮助。
第I篇
PCI体系结构概述
PCI(PeripheralComponentInterconnect)总线的诞生与PC(PersonalComputer)的蓬勃发展密切相关。在处理器体系结构中,PCI总线属于局部总线(LocalBus)。局部总线作为系统总线的延伸,其主要功能是连接外部设备。
处理器主频的不断提升,要求速度更快,带宽更高的局部总线。起初PC使用8位的XT总线作为局部总线,并很快升级到16位的ISA(IndustryStandardArchitecture)总线,并逐步发展到32位的EISA(ExtendedIndustryStandardArchitecture)、VESA(VideoElectronicsStandardsAssociation)和MCA(MicroChannelArchitecture)总线。