项目简介
本项目是基于C++和Python实现的Tomasulo算法模拟器,用于模拟计算机流水线中的Tomasulo算法,以解决数据依赖问题。项目包含前后端和汇编器三个部分,前端用Python进行可视化展示,后端用C++实现Tomasulo算法的主体逻辑,汇编器负责将汇编代码转换为机器码。
项目的主要特性和功能
- 汇编器:能将汇编语言代码转换为机器码,支持寄存器指令、条件跳转指令、立即数指令等多种指令类型。
- 后端模拟:用C++实现Tomasulo算法核心逻辑,涵盖指令的发射、执行、结果写入和状态更新,同时支持分支预测和分支目标缓冲栈的更新。
- 前端可视化:借助Python的
tkinter
库实现图形界面,展示Tomasulo算法运行过程,呈现寄存器、保留站、ROB、BTB和内存等组件的状态。
安装使用步骤
环境准备
- 操作系统:WSL2(推荐)、普通Linux主机、Mac OS、Windows(需修改
Makefile
部分内容)。 - 语言:C++与Python3。
- 软件需求:gcc编译工具、Python 3.8.0及以上、Make工具。
- 库需求:安装
tkinter
包。
代码使用
- 将输入汇编文件放置在
sample
文件夹下,并以inputXXX.asm
命名,如input5.asm
。 - 在根目录下使用以下命令对
input5.asm
进行可视化展示:shell make simulate TEST=5
- 若只需要后端输出,可使用以下命令:
shell make test TEST=5
运行模拟器
- 运行上述命令后,前端会启动图形界面,展示Tomasulo算法的运行过程。
- 用户可通过界面上的按钮控制模拟器运行,如进入下一个时钟周期、回到上一个时钟周期、跳过连续10个时钟周期、重置回到初始状态等。通过这些操作,用户能直观观察和理解Tomasulo算法的工作原理。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】