简易的8088CPU模型的设计(仿真实现)
摘 要
“虚拟实验平台”主要采用以“软”代“硬”和“虚”、“实”结合的设计思路,强调实用性,以最大限度地仿真真实的实验环境。主要实现了“专用实验台”的虚拟化,将它“搬”到了“微机”的显示器上,而原有在微机上的实验操作环境和方法仍然保持不变。系统还提供必要的测试仪器和工具(如示波器等),以便在实验调试时能够对运行结果进行监视或测量,如输出电平或波形,这种虚拟的测试仪器和工具也在界面和操作方面做到了尽可能的逼真。本文介绍了该虚拟试验平台的整体功能特点,主要介绍了8088CPU的结构,工作方式,以及如何用VC实现这些具体功能的编程方法。并加入了一些程序片段,对完成工作中遇到的困难也做了些总结。
[来源:http://www.doc163.com]
关键词:仿真试验平台;8088CPU;VC;封装;寄存器;移植
Implementation of simplified model 8088 CPU’s Logic Function
Abstract
"Virtual platform" principal use "soft" to instead of "hard" and "superficial", "real" combination of design ideas, emphasize practicality, to maximize the simulation of the real environment. Major implementation of the "exclusive Experimental Station," the virtual, it will be "moved" to the "PC" display, The original PC in the lab environment and methods remain unchanged. The system also provides the necessary test equipment and tools (such as oscilloscopes, etc.) Experimental testing in order to be able to run when the results of surveillance or measurements, such as the output level or waveform, This virtual testing equipment and tools also interface and the operation done in a realistic as possible. This paper introduces the Virtual Test platform overall features, mainly on the structure of the 8088 CPU, work methods, and how to use VC these specific functional programming method. And the inclusion of some procedures footage completed work on the difficulties encountered also made some conclusion. [资料来源:http://Doc163.com]
Key words: virtual experement platform;8088CPU8; VC; encapsulation;register;port
[资料来源:http://doc163.com]
课题背景及意义
过去当人们在开发一个项目时可能会遇到以下问题(1)经常苦于经费不足,缺少足够的硬件开发板和完善的软件开发环境,相关的书籍对一些最新软件的分析还不够全面(2)高层次的软件设计和开发一般不用过多考虑底层硬件的实现细节,如果直接处于一具体的硬件环境下,在开发和研究中可能会陷入硬件的具体细节中不能自拔,而不能把精力放到高层次的软件设计和开发上。(3)如果硬件开发环境不太稳定(这种情况经常见到),且对身体的硬件不是很了解,则可能在排除问题上花费大量不必要的时间,所以人们利用仿真技术来解决这些问题以到达节约人力物力的目的。
虚拟化技术简介
从1965年IBM在7044机上首次实现虚拟技术以来,这一名词对于计算机世界来说已经不是一个新名词。虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。虚拟化技术与多任务以及超线程技术是完全不同的。多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技术中,则可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上。
当我们尝试着理解虚拟技术时,首先必须要理解“虚拟”的概念。“虚拟”这个词最早来源于光学,用于理解镜子里的物体。现在,“虚拟”这个词已经经过演化,用来描述任何真实物体的模拟了,例如分区、虚拟机、虚拟内存、虚拟磁盘和虚拟现实。在讨论虚拟技术的时候,使用“虚拟”这个词,是因为我们希望虚拟机看起来和工作起来都和真正的机器一模一样。这意味着,虚拟机并不是真正的机器,但是它能像真正的机器一模一样地工作。
实际上,从原理上看,所有虚拟技术虚拟的是指令集。所有的IT设备,不管是PC、服务器还是存储,都有一个共同点:它们被设计用来完成一组特定的指令。这些指令组成一个指令集。对于虚拟技术而言,“虚拟”实际上就是指的这些指令集。虚拟机有许多不同的类型,但是它们有一个共同的主题就是模拟一个指令集的概念。每个虚拟机都有一个用户可以访问的指令集。虚拟机把这些虚拟指令“映射”到计算机的实际指令集。
虚拟化技术也与目前VMware Workstation等同样能达到虚拟效果的软件不同,是一个巨大的技术进步,具体表现在减少软件虚拟机相关开销和支持更广泛的操作系统方面。
按照虚拟层所处位置的不同,目前所有的虚拟技术大致可以分为硬件虚拟、逻辑虚拟、软件虚拟和应用虚拟四种类型。
[资料来源:www.doc163.com]
CPU虚拟化技术简介
CPU的虚拟化技术是一种硬件方案,支持虚拟技术的CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM会很容易提高性能,相比软件的虚拟实现方式会很大程度上提高性能。虚拟化技术可提供基于芯片的功能,借助兼容VMM软件能够改进纯软件解决方案。由于虚拟化硬件可提供全新的架构,支持操作系统直接在上面运行,从而无需进行二进制转换,减少了相关的性能开销,极大简化了VMM设计,进而使VMM能够按通用标准进行编写,性能更加强大。另外,在纯软件VMM中,目前缺少对64位客户操作系统的支持,而随着64位处理器的不断普及,这一严重缺点也日益突出。而CPU的虚拟化技术除支持广泛的传统操作系统之外,还支持64位客户操作系统。
虚拟化技术是一套解决方案。完整的情况需要CPU、主板芯片组、BIOS和软件的支持,例如VMM软件或者某些操作系统本身。即使只是CPU支持虚拟化技术,在配合VMM的软件情况下,也会比完全不支持虚拟化技术的系统有更好的性能。
项目要求
综合运用以前所学的专业知识,设计开发一个简化的8088CPU功能模拟的演示软件;在设计与开发中,将CPU与存储器整合在一起的模型,1.实现CPU的指令系统 2. 实现CPU的时序逻辑 [资料来源:www.doc163.com]
简化的8088CPU模型概述
本设计的设计目标是设计一个简化的8088CPU模型,要求模型体现8088CPU的主要功能,省略掉其很多繁琐的细节。基于此考虑,简化模型主要从如下几个方面对8088CPU作了简化:
1 取消8088里的取指令、执行指令流水线
2 取消8088里的指令预取对列
3 取消8088里管脚的分时复用功能
4 将存储器与CPU融合,简化存储器读写总线周期
5 对8088的管脚也重新进行了设置。
目录
1 概述 1
1.1课题背景及意义 1
1.2项目介绍 1
1.2.1虚拟化技术简介 1
1.2.2 CPU虚拟化技术简介 2
1.3项目要求 2
2 VC++6.0的编程 2
2.1 MFC编程 2
2.2 DLL相关知识 2
3 8088CPU介绍 3
3.1. 概述 3
3.2 8088CPU引线及其功能 3
3.3 8088CPU的内部结构 4
3.4 时序 5
3.5 简化的8088CPU模型概述 5
3.6移植bochs仿真实现8088CPU功能的基本思路 7
4 Bochs介绍 7
4.1 Bochs概述 7
4.2 类 BX_CPU_C 介绍 7
4.2.1 主要的数据成员 7
4.2.2 主要的成员函数 8
4.3 BX_CPU_C 类对CPU工作流程的简易描述 9
4.4 基本内存系统 11
4.4内存的访问 12
4.5 Bochs 时钟系统 14
4.6 Bochs中断系统 15
5 具体移植实现 17
5.1 虚拟实验平台统一的器件模型 17
5.2 CPU类的主要功能及实现方法 17
5.2.1 修改cpu loop 18
5.2.2 修改插库 18
结 论 18
参考文献 19
致 谢 20
声 明 21 [资料来源:http://Doc163.com]