Cache的出现是基于两种因素:
- 是由于CPU的速度和性能提高很快而主存速度较低且价格高。
- 就是程序执行的局部性特点。因此,才将速度比较快而容量有限的SRAM构成Cache,目的在于尽可能发挥CPU的高速度。
很显然,要尽可能发挥CPU的高速度就必须用硬件实现其全部功能。
Cache与主存之间可采取多种地址映射方式:
一、直接映射
将一个主存块存储到唯一的一个Cache行。
在这种映射方式下,主存中的每一页只能复制到某一固定的Cache页中。由于Cache块(页)的大小为16B,而Cache容量为16KB。因此,此Cache可分为1024页。可以看到,Cache的页内地址只需4位即可表示;而Cache的页号需用10位二进制数来表示;在映射时,是将主存地址直接复制,现主存地址为1234E8F8(十六进制),则最低4位为Cache的页内地址,即1000,中间10位为Cache的页号,即1010001111。Cache的容量为16KB决定用这14位编码即可表示。题中所需求的Cache的地址为10100011111000。
二、全相联映射
可以将一个主存块存储到任意一个Cache行。
优点:命中率较高,Cache的存储空间利用率高
缺点:线路复杂,成本高,速度低
三、组相联映像
将cache分成u组,每组v行,主存块存放到哪个组是固定的,至于存到该组哪一行是灵活的,即有如下函数关系:cache总行数m=u×v 组号q=j mod u
组间采用直接映射,组内为全相联
硬件较简单,速度较快,命中率较高