假设一台计算机的主存大小为1MB,其字长为1Byte,每个数据块包含16Byte。已知该计算机的高速缓存Cache大小为64kB,求: 1.对于主存单元地址为F0010, 01234, 和C1D9E,采用直接关联映射方法,分别写出其相应的主存组号,组内块序号和块内字节序号; 2.直接关联映射方式下,请给出映射到缓存cache同一块的任意两个不同主存地址; 3.采用全关联映射方式,给出主存地址为F0010 和 C1D9E的主存块号和块内字节序号 4.采用两路组关联映射方式,给出主存地址为F0010 和 C1D9E的主存组号、组内块序号和块内字节序号
时间: 2024-04-02 09:32:25 浏览: 130
2014计算机作业1答案.doc
好的,根据您的要求,我会回答您的问题,以下是我的回答:
1. 对于主存单元地址为F0010, 01234, 和C1D9E,采用直接关联映射方法,分别写出其相应的主存组号,组内块序号和块内字节序号:
主存大小为1MB,每个数据块包含16Byte,因此共有64K个块,即主存中块的数量为64K。
缓存cache大小为64kB,因此共有4K个块,即缓存中块的数量为4K。
采用直接关联映射方法,需要将主存中的每个块映射到缓存中的某个固定位置。假设每个缓存块可以映射到主存中的第i个块,则主存中的第i个块将映射到缓存中的第i mod 4K个块。
根据这个方法,可以计算出主存单元地址为F0010, 01234, 和C1D9E对应的主存组号、组内块序号和块内字节序号如下:
- 对于地址F0010,主存组号为F00,组内块序号为1,块内字节序号为0。
- 对于地址01234,主存组号为012,组内块序号为4,块内字节序号为4。
- 对于地址C1D9E,主存组号为C1D,组内块序号为9E,块内字节序号为0。
2. 直接关联映射方式下,请给出映射到缓存cache同一块的任意两个不同主存地址:
假设主存中的第i个块映射到缓存中的第j个块,则主存中的第i+4K个块也映射到缓存中的第j个块。因此,任意两个不同的主存地址F0010和C1D9E都可以映射到缓存中同一个块。
3. 采用全关联映射方式,给出主存地址为F0010和C1D9E的主存块号和块内字节序号:
采用全关联映射方式,主存中的每个块可以映射到缓存中的任意一个位置。因此,可以将主存中的每个块的地址分成两部分,前n位表示主存中的块号,后m位表示块内字节序号。在缓存中,每个块的标记位记录了该块所对应的主存块号。
假设缓存中的第i个块对应的主存块号为j,则主存中的第j个块会映射到缓存中的第i个块。块内字节序号不变。
根据这个方法,可以计算出主存地址为F0010和C1D9E对应的主存块号和块内字节序号如下:
- 对于地址F0010,主存块号为F00,块内字节序号为10。
- 对于地址C1D9E,主存块号为C1D,块内字节序号为9E。
4. 采用两路组关联映射方式,给出主存地址为F0010和C1D9E的主存组号、组内块序号和块内字节序号:
采用两路组关联映射方式,主存中的每个块可以映射到缓存中的两个位置中的一个。因此,可以将主存中的每个块的地址分成三部分,前n位表示主存中的组号,中间m位表示组内块号,后k位表示块内字节序号。在缓存中,每个块的标记位记录了该块所对应的主存组号和组内块号。
假设缓存中的第i个块对应的主存组号为j,组内块号为k,则主存中的第j*2+k个块会映射到缓存中的第i个块。块内字节序号不变。
根据这个方法,可以计算出主存地址为F0010和C1D9E对应的主存组号、组内块序号和块内字节序号如下:
- 对于地址F0010,主存组号为F00,组内块序号为0,块内字节序号为10。因此,这个地址映射到缓存中第0个块或第1个块。
- 对于地址C1D9E,主存组号为C1D,组内块序号为9E mod 2=0,块内字节序号为0。因此,这个地址映射到缓存中第0个块或第1个块。
阅读全文