【计算机组成原理】8行Cache直接映射

该程序实现了对一个8行Cache的工作过程进行仿真,读取内存地址并判断命中率。首先,从trace(1).txt文件中按行提取内容,然后通过计算10进制地址确定块号、行号和行内字节号来判断命中。当命中时,显示“Hit the Target!”并增加命中数;未命中时,将数据替换到Cache中并显示“Miss the Target!”。最终输出命中率。程序在Mac和Windows环境下运行,结果显示命中率和替换机制正确,但Mac环境存在编码问题。

        题目:“根据直接映射的cache工作原理,针对一个8行的cache工作过程进行仿真,每行(块)为一个字,1字4字节,需要读取的内存地址在trace (1).txt文件中列出。请编写程序,实现8行的cache工作过程进行仿真,可显示每个内存地址,及是否命中;命中率。(提交程序源码和命中率截图)”

第一部分:解决从txt文件按行提取文本

#include <fstream>
#include <string>
#include <iostream>
using namespace std;

int main()
{
    ifstream in("/Users/tietouguoerwademacbook/Desktop/trace (1).txt");//文本位置,注意空格
    string filename;
    string line;
    string Cache[8][4];    //定义一个二维字符串用于虚拟8个Cache里的4个字节
    int hit=0,miss=0;    //定义命中数和未命中数
    
    if (in) // 有该文件
    {
        while (getline(in, line)) // line中不包括每行的换行符
        {
            cout <<line<<endl;
            /* 下一部分代码插入后此处才可用 */
            /* 
            bool flag=TargetHit(Cache, line);
            if(flag){
                cout<<"Hit the Target!!"<<endl;
                hit++;
            }
            else{
                cout&l
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值