目录
论文总页数:24页
1 概述 1
2 需求分析 1
2.1 虚拟实验台中的CPU仿真 1
2.2 采用VC为开发工具 2
2.3 实验台器件需封装成DLL 2
2.4 CPU的核心功能采用移植bochs 2
3 相关知识介绍 2
3.1 CPU虚拟化技术 2
3.2 VC++6.0及MFC介绍 3
3.3 动态连接库 DLL 3
3.4 bochs介绍 3
3.4.1 BX_CPU_C的数据成员 4
3.4.2 BX_CPU_C 类对CPU工作流程的简易描述 5
3.4.3 基本内存系统 8
3.4.4 内存的访问 10
3.4.5 Bochs 时钟系统 10
4 具体移植实现 12
4.1虚拟实验平台统一的器件模型 12
4.2 CPU中可视化器件的设计 13
4.2.1 运算部件 13
4.2.2 寄存器组 13
4.3 CPU类的主要功能及实现方法 14
4.3.1 CPU核心功能采用调用bochs里的相关库来实现 14
4.3.2 修改cpu_loop 14
4.3.3 修改插槽库stubs 15
5 仿真效果 15
5.1 测试平台的外观 15
5.2 器件的显示 16
5.3 对器件引脚输入信号 17
结 论 17
参考文献 18
致 谢 19
声 明 20
结 论
经过几个月的毕业设计,完成了IA32模块的主体,已经完成的功能包括:提供了满足虚拟实验台要求的DLL器件模块;完成了IA32的可视化设计;通过移植、修改bochs源码,基本实现了本模块中CPU逻辑功能的仿真。Bochs系统十分庞大,在移植修改的过程中采取的基本原则是不能对bochs源码进行大规模改造。最终所用的方法是通过修改bochs的插槽库,扩展bochs功能,在插槽库中与可视化模块通过消息机制相联系。这种方式修改量小,修改的规律性强。实践证明,此方案切实可行。
移植是否完全正确,还要经受长时间的运行测试。在IA32模块的可视化方面,还需进一步加强,以增强虚拟实验的演示表现力。