题目
28、 设主存容量为256K字,Cache容量为2K字,块长为4。(1)设计Cache地址格式,Cache中可装入多少块数据?(2)在直接映射方式下,设计主存地址格式。(3)在四路组相联映射方式下,设计主存地址格式。(4)在全相联映射方式下,设计主存地址格式。(5)若存储字长为32位,存储器按字节寻址,写出上述三种映射方式下主存得地址格式。
28、 设主存容量为256K字,Cache容量为2K字,块长为4。(1)设计Cache地址格式,Cache中可装入多少块数据?(2)在直接映射方式下,设计主存地址格式。(3)在四路组相联映射方式下,设计主存地址格式。(4)在全相联映射方式下,设计主存地址格式。(5)若存储字长为32位,存储器按字节寻址,写出上述三种映射方式下主存得地址格式。
题目解答
答案
解:(1) Cache 容量 2K字=211 字 (Cache地址 11位)块长4字 4=22 字Cached包含得块数= Cache 容量/块长 =211 /22 =29 块Cache字块地址9字块内地址2(2)在直接映射方式下,设计主存地址格式主存容量 256K字 =218 字 ( 主存地址 18位)主存包含得块数: 218/22 =216 块主存字块标记=主存地址长度 Cache地址长度=1811=7 位主存字块标记7Cache字块地址9字块内地址2(3)在四路组相联映射方式下,设计主存地址格式四路组相联=>每组4块=>r=2 (4块=22 )Cache可分得组数= 29/22 = 27 =>q=7 (组地址需要7位)主存字块标记=主存地址长度 组地址长度字块内地址(b)=1872=9 位主存字块标记9组地址7字块内地址2(4)在全相联映射方式下,设计主存地址格式:主存字块标记=主存地址长度 字块内地址(b)=182=16 位主存字块标记16字块内地址2同理:若存储字长为32位,存储器按字节寻址,写出上述三种映射方式下主存得地址格式。Cache 容量 2K字=211 *32/8=213 (Cache地址 13位)每个块容量=4*32/8=16字节 (块内地址需4位)Cache包含得块数:2K字/4字=29 块Cache字块地址9字块内地址4(1)在直接映射方式下,设计主存地址格式主存容量 256K字 =218 字 = 218 *32/8=220 字节 ( 主存字节地址 20位)每个块容量=4*32/8=16字节 (块内地址需4位)主存包含得块数: 218/22 =216 块主存字块标记=主存地址长度 Cache地址长度=2049=7 位主存字块标记7Cache字块地址9字块内地址4(2)在四路组相联映射方式下,设计主存地址格式四路组相联=>每组4块=>r=2 (4块=22 )Cache可分得组数= 29/22 = 27 =>q=7 (组地址需要7位)主存字块标记=主存地址长度 组地址长度字块内地址(b)=2074=9 位主存字块标记9组地址7字块内地址4(3)在全相联映射方式下,设计主存地址格式:主存字块标记=主存地址长度 字块内地址(b)=204=16 位主存字块标记16字块内地址4
解析
步骤 1:计算Cache容量和块长
Cache容量为2K字,即2^11字,块长为4字,即2^2字。
步骤 2:计算Cache中可装入的块数
Cache中可装入的块数 = Cache容量 / 块长 = 2^11 / 2^2 = 2^9块。
步骤 3:设计Cache地址格式
Cache地址格式包括字块地址和字块内地址。字块地址为9位,字块内地址为2位。
步骤 4:设计直接映射方式下的主存地址格式
主存容量为256K字,即2^18字。主存包含的块数 = 主存容量 / 块长 = 2^18 / 2^2 = 2^16块。主存字块标记 = 主存地址长度 - Cache地址长度 = 18 - 11 = 7位。主存地址格式包括字块标记、Cache字块地址和字块内地址。
步骤 5:设计四路组相联映射方式下的主存地址格式
四路组相联映射方式下,每组包含4块,即2^2块。Cache可分的组数 = Cache包含的块数 / 每组块数 = 2^9 / 2^2 = 2^7组。主存字块标记 = 主存地址长度 - 组地址长度 - 字块内地址 = 18 - 7 - 2 = 9位。主存地址格式包括字块标记、组地址和字块内地址。
步骤 6:设计全相联映射方式下的主存地址格式
全相联映射方式下,主存字块标记 = 主存地址长度 - 字块内地址 = 18 - 2 = 16位。主存地址格式包括字块标记和字块内地址。
步骤 7:设计存储字长为32位,存储器按字节寻址的主存地址格式
存储字长为32位,存储器按字节寻址,每个块容量为4*32/8=16字节,即4位。主存容量为256K字,即2^20字节。主存包含的块数 = 主存容量 / 块长 = 2^20 / 2^4 = 2^16块。主存字块标记 = 主存地址长度 - 组地址长度 - 字块内地址 = 20 - 7 - 4 = 9位。主存地址格式包括字块标记、组地址和字块内地址。
Cache容量为2K字,即2^11字,块长为4字,即2^2字。
步骤 2:计算Cache中可装入的块数
Cache中可装入的块数 = Cache容量 / 块长 = 2^11 / 2^2 = 2^9块。
步骤 3:设计Cache地址格式
Cache地址格式包括字块地址和字块内地址。字块地址为9位,字块内地址为2位。
步骤 4:设计直接映射方式下的主存地址格式
主存容量为256K字,即2^18字。主存包含的块数 = 主存容量 / 块长 = 2^18 / 2^2 = 2^16块。主存字块标记 = 主存地址长度 - Cache地址长度 = 18 - 11 = 7位。主存地址格式包括字块标记、Cache字块地址和字块内地址。
步骤 5:设计四路组相联映射方式下的主存地址格式
四路组相联映射方式下,每组包含4块,即2^2块。Cache可分的组数 = Cache包含的块数 / 每组块数 = 2^9 / 2^2 = 2^7组。主存字块标记 = 主存地址长度 - 组地址长度 - 字块内地址 = 18 - 7 - 2 = 9位。主存地址格式包括字块标记、组地址和字块内地址。
步骤 6:设计全相联映射方式下的主存地址格式
全相联映射方式下,主存字块标记 = 主存地址长度 - 字块内地址 = 18 - 2 = 16位。主存地址格式包括字块标记和字块内地址。
步骤 7:设计存储字长为32位,存储器按字节寻址的主存地址格式
存储字长为32位,存储器按字节寻址,每个块容量为4*32/8=16字节,即4位。主存容量为256K字,即2^20字节。主存包含的块数 = 主存容量 / 块长 = 2^20 / 2^4 = 2^16块。主存字块标记 = 主存地址长度 - 组地址长度 - 字块内地址 = 20 - 7 - 4 = 9位。主存地址格式包括字块标记、组地址和字块内地址。