资源简介
实现Cache模拟器.zip

代码片段和文件信息
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.*;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
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.border.EtchedBorder;
public class CCacheSim extends Jframe implements ActionListener{
private JPanel panelTop panelLeft panelRight panelBottom;
private JButton execStepBtn execAllBtn fileBotton;
private JComboBox csBox bsBox wayBox replaceBox prefetchBox writeBox allocBox;
private JFileChooser fileChoose;
private JLabel labelToplabelLeftrightLabelbottomLabelfileLabelfileAddrBtn stepLabel1stepLabel2csLabel bsLabel wayLabel replaceLabel prefetchLabel writeLabel allocLabel;
private JLabel results[];
//添加
private JLabel stepLabel[];
private JLabel missCountDisp[];
private JLabel missRateDisp[];
//参数定义
private String cachesize[] = { “2KB“ “8KB“ “32KB“ “128KB“ “512KB“ “2MB“ };
private String blocksize[] = { “16B“ “32B“ “64B“ “128B“ “256B“ };
private String way[] = { “直接映象“ “2路“ “4路“ “8路“ “16路“ “32路“ };
private String replace[] = { “LRU“ “FIFO“ “RAND“ };
private String pref[] = { “不预取“ “不命中预取“ };
private String write[] = { “写回法“ “写直达法“ };
private String alloc[] = { “按写分配“ “不按写分配“ };
private String typename[] = { “读数据“ “写数据“ “读指令“ };
private String hitname[] = {“不命中“ “命中“ };
//右侧结果显示
private String rightLable[]={“访问总次数:““读指令次数:““读数据次数:““写数据次数:“};
//添加不命中信息统计
private String missCountLabel=“不命中次数: “;
private String missRateLabel=“不命中率: “;
//添加单步执行每一步的情况
private String stepLabelMenu[]={“访问类型: ““地址: ““块号:““块内地址:““索引: ““命中情况: “};
private String stepResult[]=new String[6];
//打开文件
private File file;
//分别表示左侧几个下拉框所选择的第几项,索引从 0 开始
private int csIndex bsIndex wayIndex replaceIndex prefetchIndex writeIndex allocIndex;
//其它变量定义
//...
//选择后的cachesize,blocksize,相联度
double selectedCacheSize selectedBlockSize selectedWay;
//选择后的替换策略,写策略
String selectedReplace selectedWrite;
static int step = 0; //单步执行的步数
boolean execAll = false; //执行到底的标记
static double[] accessCount=new double[4]; //保存访存次数 的统计,分别为总访问、读指令、读数据、写数据
static double[] missCount=new double[4]; //保存不命中次数
static double[] missRate=new double[4]; //保存不命中率
//存放地址流的数组
List addrStream = new ArrayList();
public class AddrStream{
String type; //访存类型
String addr; //访存地址
}
//存放cache
Cache[][] caches;
public class Cache{
int tag; //tag 用来与地址的高位比较,判断请求是否在cache中
int time; //用于替换算法 使用时间到达时间记录
int valid; //有效位,用来标
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-03-23 21:21 src\
文件 20266 2018-04-13 14:55 src\CCacheSim.java
文件 342 2014-09-04 16:18 src\readme.md
文件 79007 2018-04-14 10:43 实现Cache模拟器.docx
- 上一篇:PSCAD光伏模型
- 下一篇:模拟温度采集监测系统.zip
相关资源
- PID_AutoTune_v0.rar
- vspd7.2.308.zip
- 价值2k的H漫画小说系统
- Pythonamp;课堂amp;笔记(高淇amp;400;集第
- ddos压力测试工具99657
- UML建模大全
- 开源1A锂电池充电板TP4056原理图+PCB
- m1卡 ic卡可选择扇区初始化加密软件
- TSCC.exe
- FTP课程设计(服务端+客户端)
- 计算机图形学 边填充算法实现代码
- 电力系统潮流计算程序集合
- oracle数据迁移项目实施方案
- Web Api 通过文件流 文件到本地
- Visio图标-最新最全的网络通信图标库
- Spire API文档
- OpenGL参考手册
- Python中Numpy库最新教程
- SPD博士V5.3.exe
- 直流无刷电机方波驱动 stm32 例程代码
- layui后台管理模板
- 仿知乎界面小程序源代码
- 云平台-阿里云详细介绍
- photoshop经典1000例
- scratch垃圾分类源码(最终版本).sb
- IAR ARM 7.8破解
- TI CCS V5.4 安装步骤及破解文件
- 松下plc FP-XH的驱动
- 局域网硬件信息收集工具
- 加快Windows XP操作系统开机速度
评论
共有 条评论