资源简介
Tomasulo算法的Java实现,附带ROB,可顺序提交。
代码片段和文件信息
//请根据你的包路径修改
//package ustc.qyq;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.Reader;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.Jframe;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.EtchedBorder;
/**
* @author yanqing.qyq 2012-2015@USTC
* 模板说明:该模板主要提供依赖Swing组件提供的JPanle,Jframe,JButton等提供的GUI。使用“监听器”模式监听各个Button的事件,从而根据具体事件执行不同方法。
* Tomasulo算法核心需同学们自行完成,见说明(4)
* 对于界面必须修改部分,见说明(1)(2)(3)
*
* (1)说明:根据你的设计完善指令设置中的下拉框内容
* (2)说明:请根据你的设计指定各个面板(指令状态,保留站,Load部件,寄存器部件)的大小
* (3)说明:设置界面默认指令
* (4)说明: Tomasulo算法实现
*/
public class Tomasulo extends Jframe implements ActionListener{
/*
* 界面上有六个面板:
* panel1 : 指令设置
* panel2 : 执行时间设置
* panel3 : 指令状态
* panel4 : 保留站状态
* panel5 : Load部件
* panel6 : 寄存器状态
*/
private JPanel panel1panel2panel3panel4panel5panel6;
/*
* 四个操作按钮:步进,进5步,重置,执行
*/
private JButton stepbutstep5butresetbutstartbut;
/*
* 指令选择框
*/
private JComboBox instbox[]=new JComboBox[24];
/*
* 每个面板的名称
*/
private JLabel instl timel tl1tl2tl3tl4reslreglldlinslstepsl;
private int time[]=new int[4];
private int rt[]=new int[6];
/*
* 部件执行时间的输入框
*/
private JTextField tt1tt2tt3tt4;
private int intv[][]=new int[6][4]cnowinstnow=0;
private int rob[][]={{-100-1}{-100-1}{-100-1}{-100-1}{-100-1}{-100-1}};//6X4
//private int ld[][]={{00}{00}{00}};
private int ld[]={-1-1-1};
private int ff[]={00000000000000000};//16 for Fx
/*
* (1)说明:根据你的设计完善指令设置中的下拉框内容
* inst: 指令下拉框内容:“NOP““L.D““ADD.D““SUB.D““MULT.D““DIV.D“…………
* fx: 目的寄存器下拉框内容:“F0““F2““F4““F6““F8“ …………
* rx: 源操作数寄存器内容:“R0““R1““R2““R3““R4““R5““R6““R7““R8““R9“ …………
* ix: 立即数下拉框内容:“0““1““2““3““4““5““6““7““8““9“ …………
*/
private String inst[]={“NOP““L.D““ADD.D““SUB.D““MULT.D““DIV.D“}
fx[]={“F0““F2““F4““F6““F8““F10““F12““F14““F16““F18““F20““F22““F24““F26““F28““F30“}
rx[]={“R0““R1““R2““R3““R4““R5““R6“}
ix[]={“0““1““2““3““4““5““6““7““8““9““10““11““12““13““14““15““16““17““18““19““20““21“};
/*
* (2)说明:请根据你的设计指定各个面板(指令状态,保留站,Load部件,寄存器部件)的大小
* 指令状态 面板
* 保留站 面板
* Load部件 面板
* 寄存器 面板
* 的大小
*/
private String instst[][]=new String[7][5] resst[][]=new
- 上一篇:Java资源管理器MyExplorer源码
- 下一篇:JAVA计算机毕业设计题目大全
评论
共有 条评论