【问题标题】:Simulation of cache缓存模拟
【发布时间】:2013-05-11 17:53:47
【问题描述】:

我必须编写缓存模拟的代码

我的要求是

  1. 它应该显示通过缓存运行大约 20 条指令的结果。 (指令可以是任何通用 RISC 格式)。

例如

ld r1,r2 加载 Reg 的值。 r2 到 r1

add r3,r1,#4 将 r1 的内容与 4 相加

mov r10,r3 用 r10 移动 r3 的内容

mul r7,r3,r8 将 r3 和 r8 的内容相乘并将结果存储在 r7 中

shl r9 将寄存器 r9 的内容左移

bnez r5,loop 如果 r5 不等于 0 则跳转到循环

像上面的指令测试缓存的架构。指令的选择应突出缓存架构的特点。

  1. 结果应该包括在没有缓存的情况下运行指令的执行速度与实现各种优化相比。

  2. 实现缓存优化,例如集合关联缓存和多级缓存。

我正在考虑在 C++ 或 Matlab 中这样做

有人可以告诉我如何开始吗?我应该怎么做?谢谢

【问题讨论】:

    标签: c++ matlab caching simulation


    【解决方案1】:

    你看起来像这样吗?,

    http://www.ecs.umass.edu/ece/koren/architecture/

    本站有各种刺激..直接浏览完整链接..,

    http://www.ecs.umass.edu/ece/koren/architecture/Cache/default.htm

    【讨论】:

      【解决方案2】:

      我建议你有两种类型的内存模拟器类:RAM 和 Cache。每个都应该有一个read 函数。 read 函数在返回值之前应该有不同的延迟。

      例如,让RAM::read() 函数在返回值之前延迟 2 秒。

      同样,Cache::read() 读取函数会在返回值之前延迟 1 秒。

      对于使用缓存的模拟架构,在缓存中搜索数据。如果缓存中不存在数据,则从 RAM 中读取。

      如需更准确的时间比率,请在网上搜索“一级缓存访问时间”和“SRAM 访问时间”。

      【讨论】:

        猜你喜欢
        • 2020-10-12
        • 2019-05-21
        • 1970-01-01
        • 1970-01-01
        • 2013-04-26
        • 2022-01-10
        • 1970-01-01
        • 2021-04-29
        • 2019-02-20
        相关资源
        最近更新 更多