MikroSim-A处理器仿真软件

2020-06-20 12:32:42

跳转到导航跳转到搜索MikroSim是一个教育软件计算机程序,用于对运行在Microsoft Windows操作系统上的虚拟处理器的一般功能和行为进行非特定硬件说明。诸如小型化计算器、微控制器、微处理器和计算机之类的设备可以在由微指令序列(微码)控制的寄存器传送级上的定制开发的指令代码上进行解释。基于此,可以开发用于控制更高抽象级别的虚拟应用板的指令集。

最初,MikroSim被开发为在教育领域广泛可用的处理器仿真软件。由于MikroSim的可操作性始于微码开发,微码开发被定义为用于虚拟控制单元的微指令序列(微编码),因此该软件的意图首先是具有包括CPU仿真器和指令集仿真器能力在内的各种级别的抽象的微码仿真器。在当前的软件版本中,微码控制的虚拟应用在自己的编码指令集上运行是可行的。在MikroSim中,对计算机工程领域中典型的和众所周知的概念,如计算机体系结构和指令集体系结构,进行了非特定的处理,这些概念从信息时代的早期就已经建立起来,并且仍然有效。通过这种方式,模拟软件获得了永恒的、免费的教学益处,而不受过去和未来的特殊发展的限制。详细的文档和德语和英语双语应用程序的图形用户界面(GUI),以及微软的操作系统Windows在一定程度上赋予该软件的向上兼容性,是自1992年以来在计算机工程领域成为一种成熟的、有价值的教育用电子学习工具的原因。

该软件基于在Turbo Pascal下编写的用于MS-DOS操作系统的版本,该版本在1992年之前一直用于德国马尔堡菲利普斯大学计算机工程和计算机科学的教学目的。这个概念是马丁·珀纳在1992年夏天学习物理学(1990-95年)时提出的,经过修改并转换成用Microsoft Visual Basic编译并在Windows3.1x上运行的Windows应用程序。在这样做的过程中,通过利用MS Windows的GUI的新颖功能和利用来支持微码的组合及其教学影响的可追溯性,此时产生了一个具有巨大概念改进的模拟器。在1995年底之前,马尔堡大学的Fachbereich Mahematik/Informatik一直由Heinz-Peter Gumm支持和推动改进视窗下的电子学习工具。

模拟器已于1994年11月在德国海德堡被授予计算机科学类别的“1994年欧洲学术软件奖”。1995年3月,该模拟器在汉诺威举行的CEBIT‘95计算机展览会“Hessischen Hochschulen”展览上展出。在1995到2000年间,该模拟器被发布为“Mikrocode模拟器MikroSim 1.2”,没有任何重大改进。此时,该工具在“1996年欧洲Livelong学习年”活动期间获得了欧盟颁发的1000 ECU的奖励。1997年,该软件在与LearnTec‘97’展览相关的‘’多媒体传输‘97’比赛中展出。[1]在倒数第二个修订版中,该模拟器已在“Mikrocode模拟器MikroSim2000”下发布,该模拟器针对MS Windows 95的32位操作进行了优化。

在2008到2009年间,模拟器的概念进行了修改、修改和深思熟虑的扩展。因此,它得到了广泛的改进和扩展,而没有触及内核中微码模拟能力的成功概念方面。为此,利用由操作系统和底层计算能力决定的当今计算系统的性能,将MikroSim的模拟可能性扩展到虚拟应用板的阶段。编译和优化MikroSim是为了实现无限制的兼容性,并尽可能广泛地将MS Windows XP作为32位版本分发。该程序可在MS Windows Vista和MS Windows 7的所有32位和64位操作系统上运行,因此不需要特殊的XP兼容模式。自2010年1月起,该模拟器被0/1-SimWare分发为“MikrocodeSimulation ator MikroSim 2010”。

WINDOWS应用程序允许逐步建立预定的并且在其功能上如此不可改变的虚拟应用程序。

在探索模式下,可以评估在一个周期内受一条微码指令影响的新增组件的工作原理和控制。wi

利用控制库的结构化机会对微码进行可寻址调度,以及实现以微码编程的循环操作的机器代码解释器,也允许实现称为机器指令的各个微操作序列。微码可以被视为MikroSim的固件,其可以被修改,并且可以存储在微码ROM文件中或从微码ROM文件重新加载。

在一个微指令执行周期内,CPU以及输入/输出控制器连接到外部16kByte巨型随机存取存储器设备(RAM)。通过输入输出控制器器件,直接存储器访问模式(DMA)、集成电路间连接(I2C)和中断请求功能(IRQ)支持与虚拟输入输出器件的通信。提供输出端口、显示器、定时器、事件触发器、数模转换器、键盘和数据输入/输出通道作为虚拟IC设备,用于教育地解释与外部设备的通信。

微码模拟器使用8个可自由使用的寄存器,每个32位宽的寄存器连接一个32位算术逻辑单元(ALU)。可以将寄存器内容视为有符号或无符号整数值,或视为32位浮点数。寄存器内容可以通过集成的系统编号编辑器轻松地按位查看、解释和修改。

32位算术逻辑单元是中央处理器的核心单元。它支持128种不同的基本算术运算,用于整数运算、中断控制和浮点运算。

浮点运算的教学方法早在20世纪40年代初就由Konrad Zuse以类似的方式引入,通过对加/减和乘/除等关键运算中涉及的指数和尾数的基本子水平运算,提供了一组功能强大的32位浮点算术命令尾数和指数,用于基本运算和初等解析函数,就像它们在今天的数学协处理器中所实现的一样,它是由Konrad Zuse在20世纪40年代初以可比较的方式引入的,它通过对加/减和乘/除的关键运算中涉及的指数和尾数进行基本子水平运算来介绍浮点计算,并提供了一组用于基本运算和初等解析函数的强大的32位浮点算术命令。这里,在使用MikroSim的仿真中,理想地假设每个支持的ALU算术运算的执行仅需要不同的计算持续时间,与实际需要的电路复杂性无关。

微指令的执行可以在具有不同时间分辨率的各种模拟级别上操作:

在最低模拟级别,模拟器支持GET、COMPUTE和PUT阶段的分阶段执行。部分相位的处理是可能的,具有可调整的延迟,以获得更好的可追踪性。

在下一上一级中,当前微指令在一个完整的三相时钟中执行,没有时延。在所谓的“加载增量执行”(LIE)周期内支持几个3相时钟周期的连续执行。被视为以微码编写的解释器的LIE循环具有从外部RAM加载编码为字节值的机器指令的功能,并让微指令序列分支到所引用的微码子例程以供操作码给定的执行,并返回到LIE以检索下一条机器指令。

在更高的执行级别上,几个机器指令的序列是可执行的,直到到达用户定义的断点,该断点被放置在机器代码序列中。可以测量断点之间的运行时间。因此可以在机器和微码级别对执行性能进行基准测试。

在最顶层的模拟级,微码模拟器不间断地连续执行微指令。在该级别中,加载由机器指令执行的机器指令。因此,可以将重点放在CPU与外部设备的交互上。

通过各种附加选项,在提出通过机器编程控制应用程序时,可以抑制可视CPU活动,从而有利于提高处理速度。模拟器附带的性能指数监视器使用户能够对MikroSim的处理性能进行基准测试,并将其设置为与模拟器硬件的计算能力相关,可通过每秒浮点运算(FLOP)和每秒指令数(IPS)进行测量。

使用所谓的“Basic汇编工具for MikroSim”MikroBAT,可以用汇编语言开发简单的程序。这里,汇编语言所有支持的助记符都是由用户在微指令级上自建机器的指令集决定的。该附加工具能够将汇编语言程序翻译成机器代码和数据,并将该二进制代码传输到外部RAM中用于后续模拟。与MikroBAT一起,微码模拟器MikroSim支持从开关控制计算器到汇编语言可编程应用的技术计算机科学教学方面的教学介绍。

Gumm,HP;Sommer,M(2009年),#34;5.6&34;,Einführung in die Informatik(德文)(第8版),慕尼黑:奥尔登堡,第470-85页,ISBN:978-3-486-58724-1。