论文部分内容阅读
在迅速发展的集成电路制造工艺和不断提高的应用需求的推动下,系统芯片(System-on-Chip,简称SoC)集成了越来越多的功能模块。基于开放式片上总线的SoC和基于Wintel架构的传统x86 SoC具有各自独特的优势。本文结合北大众志AMBA-x86 SoC的设计实现和实际应用,对基于开放式片上总线的x86SoC展开研究。在基于开放式片上总线和x86处理器的SoC硬件上启动和运行微软Windows(Microsoft Windows,MS Windows)操作系统及x86应用程序的二进制代码,兼备了两类SoC的优势,不仅能够继承现有的丰富的软件,提供桌面用户体验,减轻软件开发人员的负担,而且可以支持快速集成IP核,降低设计与验证的成本,有效缩短芯片面市时间。本文的主要贡献包括以下四个方面: 研究在SoC上集成处理器IP核,并通过硬件方式实现操作系统及应用程序的二进制代码兼容所需解决的关键问题。研究内容包括处理器IP核的集成、处理器的编程模型、硬件对操作系统的支持等多个方面,具体涉及到接口规范、总线协议、地址空间分配和访问、中断请求和响应、操作系统的硬件设备需求等多个硬件抽象层次。通过对各个硬件抽象层次展开自下而上的分析,为在基于开放式片上总线的SoC上集成x86处理器提供了一种纯硬件的设计模式。这是后续研究工作的重要理论指导。 搭建一个面向x86处理器的集成模拟环境-PKUsim-86全系统模拟器。PKUsim-86全系统模拟器由界面控制、功能模型和性能模型构成,能够运行MSWindows操作系统和x86应用程序,具有以下特征:支持功能模拟和性能模拟的在线切换;提供灵活的体系结构配置机制,对处理器等参数的配置只需修改配置文件,不需要重新编译全系统模拟器;平均指令模拟速度达到0.86 MIPS。PKUsim.86全系统模拟器在基于AMBA总线和x86处理器的SoC研究中发挥了重要作用:1)通过PKUsim-86全系统模拟器分析得到的MS Windows兼容系统的硬件核心功能为基于开放式片上总线的x86 SoC设计提供了重要参考;2)PKUsim-86全系统模拟器模拟了AMBA-x86 SoC和VPCI(Virtual PCI)虚拟化机制,在功能模拟验证中得到实际应用;3)为AMBA-x86 SoC提供了性能评测环境。 在基于AMBA总线的SoC上集成x86处理器,并在SoC硬件上直接启动和运行MS Windows操作系统及x86应用程序的二进制代码。基于AMBA总线和x86处理器的SoC继承了个人计算机领域的丰富软件资源,能减轻软件人员的开发和调试负担,为终端用户提供桌面体验。首先研究x86指令系统体系结构(x86Instruction Set.Architecture,简称x86 ISA)兼容的SoC,包括x86处理器的集成、地址空间映射、遗留特殊周期和遗留接口规范的支持,然后围绕MS Windows兼容系统的硬件核心功能,研究MS Windows兼容的SoC,包括MS Windows必需的遗留系统设备、Cache一致性机制以及设备识别和访问。研究成果在北大众志AMBA-x86 SoC得到应用和实现,并在PKUsim-86全系统模拟器进行了功能模拟验证并在FPGA板上进行了原型实现,均成功启动和运行MS Windows操作系统和典型的x86应用程序。 提出一种面向MS Windows的PCI虚拟化机制-VPCI虚拟化机制。为了在基于开放式片上总线的x86 SoC上集成IP核,VPCI虚拟化机制通过硬件集中地为每个片上设备实现一个虚拟PCI配置空间,并提供相应的访问控制,将系统芯片内部的片上设备识别和配置成MS Windows操作系统可见的PCI设备,并复用PCI设备驱动程序以访问相应的片上设备。VPCI虚拟化机制的硬件开销仅为PCI STD方法的13.7%,读写配置空间的性能分别为PCI VSA方法的7.31倍和6.73倍。VPCI虚拟化机制在AMBA-x86 SoC上得到应用和实现,已在PKUsim-86全系统模拟器中进行了功能正确性验证,为在北大众志AMBA-x86 SoC上集成IP核,并复用PCI设备驱动程序提供了一种可行的方法。