汇编模拟执行器,执行单元的设计

来源:互联网 发布:2017电视直播软件港台 编辑:程序博客网 时间:2024/05/18 01:49
在完成对汇编语言翻译的工作后,项目上需要在软件层面模拟汇编语言的执行,验证汇编语言实现算法的正确性。根据冯诺依曼体系,程序的执行包括输入、输出、运算器、存储和控制器。因此为了实现模拟器,需要建立负责运算的执行单元,存储的寄存器及相关存储和发射指令的控制器。如图

  本文主要就执行单元的设计做出描述,软件执行单元的重点不在对指令的执行上,指令的执行依靠编程语言的运算完成,比如mov指令用赋值=,add指令用+实现。执行单元关注的是管理方式,包括流水和非流水两种。
  流水单元是指在没有寄存器锁定的条件下,每一拍能进入一条指令,不用等待上条指令执行完,在每拍中并行执行单元流水线内的所有指令。反之,非流水单元,是串行的执行,只有在上条指令执行完才能开始新的指令,需要等待指令排空后才能进入新指令。
  同时,由于同一单元内指令周期并不相同,因此流水指令需要记录所有指令的执行周期,并在执行时,减减每条指令的剩余周期,当周期为0时,代表本条流水指令执行完毕。
  根据以上分析,执行单元的属性包括单元名,单元名枚举值,流水/非流水标示,最大流水级数,当前执行指令数,流水指令剩余周期和统计信息等。具有的方法有,加入流水/非流水指令,执行一周期,打印统计等。如下图

  在实现时,设计执行单元类来模拟不同执行单元,设计执行单元管理类管理所有执行单元。除此外,还实现了非流水指令的缓冲存储和自动执行。
0 0
原创粉丝点击