某cache有32行,采用4路组相联映射方式。主存有2K个块,每块32个字。则主存地址位,其中标记位
时间: 2024-02-19 08:00:40 浏览: 90
为10位,组索引位为5位,块内地址位为5位。
对于4路组相联映射方式,每个组内有4个块,因此需要5位组索引。cache共有32行,因此cache大小为32*4块,即128块。每个块大小为32字,因此cache大小为128*32字,即4KB。
主存有2K个块,每块32个字,因此主存大小为2K*32字,即64KB。主存地址位数为log2(64KB)=16位。
由于cache大小为4KB,因此块内地址需要5位。又因为组索引位和标记位的长度之和为15位(16位主存地址位数减去块内地址位数),因此标记位长度为10位。
相关问题
设主存容量为256K字,Cache容量为2K字,块长为4个字,每字32位,按字寻址,则: (1)在直接映射方式下,设计主存地址格式。 (2)在四路组相联映射方式下,设计主存地址格式。 (3)在全相联映射方式下,设计主存地址格式。
(1) 在直接映射方式下,每个 Cache 块只能映射到主存中的唯一一个块,因此主存地址格式可设计如下:
| 标记 | 块地址 | 字节地址 |
|------|--------|----------|
| 10 | 0011 | 0000~0011|
其中,标记位为2位,可表示4个 Cache 块,块地址位为8位,可表示256个主存块,字节地址位为2位,可表示4个字节。
(2) 在四路组相联映射方式下,Cache 被划分为4组,每组有4个块,每个块映射到主存的任意一个块。主存地址格式可设计如下:
| 标记 | 组地址 | 块地址 | 字节地址 |
|------|--------|--------|----------|
| 01 | 0011 | 001 | 00~11 |
其中,标记位为2位,可表示4个组,组地址位为6位,可表示64个组,块地址位为3位,可表示每组中的4个块,字节地址位为2位,可表示4个字节。
(3) 在全相联映射方式下,Cache 中的每个块都可以映射到主存的任意一个块。主存地址格式可设计如下:
| 标记 | 块地址 | 字节地址 |
|------|--------|----------|
| 1 | 0011 | 0000~0011|
其中,标记位为1位,只需表示 Cache 中是否有命中,块地址位为8位,可表示256个主存块,字节地址位为2位,可表示4个字节。
设主存容量为256K字,Cache容量为2K字,块长为4. (1)设计Cache地址格式,Cache中可装入多少块数据 (2)在直接映射方式下,设计主存地址格式 (3)在四路组相联映射方式下,设计主存地址格式 (4)在全相联映射方式下,设计主存地址格式 (5)若存储字长为32位,存储器按字节寻址,写出上述三种映射方式下主存的地址格式
1. Cache地址格式为:标记位(Tag)+ 块内地址位(Block Offset)+ 组地址位(Set Index)。Cache中可装入的块数为 2K/4 = 512块。
2. 在直接映射方式下,主存地址格式为:标记位(Tag)+ 行号位(Row Index)+ 块内地址位(Block Offset)。其中行号位数为 log2(Cache块数) = log2(512) = 9位。
3. 在四路组相联映射方式下,主存地址格式为:标记位(Tag)+ 组号位(Set Index)+ 块内地址位(Block Offset)。其中组号位数为 log2(Cache组数) = log2(512/4) = 7位。
4. 在全相联映射方式下,主存地址格式为:标记位(Tag)+ 块内地址位(Block Offset)。
5. 主存地址格式为:标记位(Tag)+ 块内地址位(Block Offset)+ 字节偏移位(Byte Offset)。其中字节偏移位数为 log2(块长) = log2(4) = 2位。在直接映射、四路组相联和全相联映射方式下,主存地址格式中的块内地址位数均为 log2(块长) = 2位。
阅读全文