面试问题:实现读写功能

时间:2019-07-13 09:32:24

标签: caching cpu-architecture system-design

我遇到了一个面试问题,不确定我是否回答正确。

  1. 我们有2个记忆: 1.1 SRAM,速度更快,有2页(每页大小等于4K) 1.2 DRAM,速度较慢,有4页(每页大小等于4K
  2. 给出了两个函数:sram2dramdram2sram,它们获取页面索引并将页面从DRAM/SRAM复制到SRAM/DRAM
  3. 用户仅知道DRAM的地址空间!
  4. 给出了另一个函数:getDramPageIndex,该函数在DRAM中获得地址并在DRAM中返回页面索引
  5. 用户只能使用读取和写入功能来访问内存。这两个函数获取地址作为输入。

我们需要使用上面给定的函数和全局变量(如果需要)来实现readwrite函数, 最大限度地利用SRAM来缩短执行时间。

您将如何解决?

  • 我想使用6个计数器(DRAM/SRAM中的每一页使用一个计数器)。

  • 当用户尝试readwrite时,我们首先获得页面索引并增加其计数器

  • 如果SRAM的计数器较大,我们将使用该地址空间(如LRU)并在DRAMSRAM的页面之间交换

  • 否则,我们将使用DRAM

  • 换句话说,我想使用SRAM作为最近最少使用的文件,否则使用DRAM(即L1和L2缓存)

0 个答案:

没有答案