计算机系统结构实验报告册1.doc
文本预览下载声明
计算机系统结构
实验报告册
C#编写
姓名:
学号:
专业: 计算机科学与技术
班级: 2010135
指导教师: 孙全红
华北水利水电学院信息系系统结构教研室
实验一 存贮层次模拟器
完成日期: 2013/6/7
学时:4学时
【实验目的】
1、使学生清楚认识虚拟存贮层次结构,熟练掌握常用的几种存储地址映象与变换方法,以及FIFO、LRU等替换算法的工作全过程。
2、要求用程序实现任意地址流在存储层次上的命中情况,实验结束后提交源程序和实验说明书。
【实验内容】
在模拟器上实现在任意地址流下求出在 Cache—主存两层存贮层次上的命中率。
【实验步骤】
1.Cache—主存:映像方式要实现全相联、直接映象、组相联方式三种方式,并选择每一种映像方式下输出结果;替换算法一般使用LRU算法。
3.要求主存容量、Cache大小、页大小、块大小以及组数等可以输入修改。
4.求出命中率;显示替换的全过程;任选一种高级语言来做。
5.要有简洁、易于操作的界面。
【实验仪器设备】
计算机(装有常用编程环境,如C、VC++等)
【源程序、实验结果及分析、实验心得及体会】
源程序:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace 存贮层次模拟器
{
public partial class Form1 : Form
{
struct Cache
{
public int GroupIndication;//组号
public int GroupBlockNumber;//块内块号
public int Adress;//块内地址
};
Cache[] c = new Cache[50];
int[] count = new int[50];//计数器
int[] adress_stream;//地址流
string yxway;
string sfway;
int c_num, m_num, group, block_size, block_stream;
int m_block_num, c_block_num;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.SelectedIndex = 0;
comboBox2.SelectedIndex = 0;
richTextBox1.Text = 提示:\n -1代表该Cache块为空.;
}
public bool Judge()
{
int a = Convert.ToInt16(textBox1.Text);
int b = Convert.ToInt16(textBox2.Text);
int c = Convert.ToInt16(textBox3.Text);
int d = Convert.ToInt16(textBox4.Text);
if (b a || b % a != 0)
{
MessageBox.Show(主存大小有误,必须是cache的整数倍,请重新输入);
textBox2.Clear();
textBox2.Focus();
return false;
}
if
显示全部