我遇到了一个面试问题,不确定我是否回答正确。
SRAM
,速度更快,有2页(每页大小等于4K
)
1.2 DRAM
,速度较慢,有4页(每页大小等于4K
)sram2dram
和dram2sram
,它们获取页面索引并将页面从DRAM/SRAM
复制到SRAM/DRAM
DRAM
的地址空间!getDramPageIndex
,该函数在DRAM
中获得地址并在DRAM
中返回页面索引我们需要使用上面给定的函数和全局变量(如果需要)来实现read
和write
函数,
最大限度地利用SRAM
来缩短执行时间。
您将如何解决?
我想使用6个计数器(DRAM/SRAM
中的每一页使用一个计数器)。
当用户尝试read
或write
时,我们首先获得页面索引并增加其计数器
如果SRAM
的计数器较大,我们将使用该地址空间(如LRU
)并在DRAM
和SRAM
的页面之间交换
否则,我们将使用DRAM
页
换句话说,我想使用SRAM
作为最近最少使用的文件,否则使用DRAM
(即L1和L2缓存)