操作系统

来源:互联网 发布:兰帕德生涯进球数据 编辑:程序博客网 时间:2024/06/05 20:16

计算机系统结构中,将主存与Cache的映像分成三种方式,直接映像,全相联映像,组相联映像。所谓映像就是将内存地址与Cache地址间的相互转换,我们知道Cache的容量相对于主存来说很小,为了能将两者有效的对应该起来,便产生了上面提到的映像方式。 


1.直接映像

  • 主存与Cache的划分:

将主存根据Cache的大小分成若干分区,Cache也分成若干个相等的块,主存的每个分区也分成与Cache相等的块。

  • 主存与Cache的映像:

主存中的每一个分区由于大小相同,可以与整个Cache相像,其中的每一块正好配对。编号不一致的块是不能相互映像的。

  • 特点:

优点:地址变换简单。缺点:每块相互对应,不够灵活。

  • 主存与Cache的地址组成:

主存:区号+块号+块内地址

Cache:块号+块内地址

2.全相联映像

  • 主存与Cache的划分:

将主存与Cache划分成若干个大小相等的块。

  • 主存与Cache的映像:

主存中每一块都可以调到Cache中的每一块。

  • 特点:

优点:访问灵活,冲突率低,只有Cache满时才会出现在冲突。缺点:地址变换比较复杂,速度相对慢。

  • 主存与Cache的地址组成:

主存:块号+块内地址

Cache:块号+块内地址

3.组相联映像

  • 主存与Cache的划分:

主存:主存根据Cache大小划分成若干个区,每个区内划分成若干个组,每个组再划分成若干个块。

Cache:划分成若干个组,每个组划分成若干个块。

  • 主存与Cache的映像:

主存的每个分区与Cache采用直接映像,主存的每个组之内采用全相联映像。

  • 特点:

融合了直接映像与全相联映像两种映像方式,结合了两者的优据点。具体实现容易,命中率与全相联映像接近。

  • 主存与Cache的地址组成:

主存:区号+组号+块号+块内地址

Cache:组号+块号+块内地址

实例分析:

1.容量为64块的Cache采用组相联方式映像,字块大小为128字节,每4块为一组,若主容量为4096块,且以字编址,那么主存地址为(____)位,主存区号为(____)位。

组相联的地址构成为:区号+组号+块号+块内地址。

主存的每个分区大小与整个Cache大小相等,故此主存需要分的区数为:4096/64=64,因为26=64,因此需要6位来表示区号。

每4块为一组,故共有组数 64/4 = 16 ,因为24=16,因此需要4位表示组号。

每组4块,故表示块号需要2位。

块内地址共128字节,27=128,所以块内地需要7位表示。

所以:主存地址的位数=6+4+2+7 = 19

主存区号的位数=6

2.某 32 位计算机的 cache 容量为 16KB,cache 块的大小为 16B,若主存与 cache 的地址映射采用直接映射方式,则主存地址为 1234E8F8(十六进制)的单元装入的 cache 地址为____。

A. 00 0100 0100 1101 (二进制)
B. 01 0010 0011 0100 (二进制)
C. 10 1000 1111 1000 (二进制)
D. 11 0100 1110 1000 (二进制)

:Cache大小为16KB,块大小为16B,所以Cache被分成16KB/16B=1024块,因210=1024故需要10位来表示块数。24=16故块内地址需要4位来表示。所以Cache的地址线位置为14位。由于采用直接映像的方式,所以主存的后14位就是要装入的到Cache中的位置。故选 C.

0 0