某计算机使用4体交叉编址存储器,假定在存储器总线上出现的主存地址(十进制)序列为8005、8006、8007、8008、8001、8002、8003、8004、8000,则可能发生访问冲突的地址对是哪两个地址?
时间: 2023-09-17 17:12:59 浏览: 2261
这是一道考察计算机组成原理中直接映射缓存的题目。
根据题意,可以得到以下信息:
- 存储器使用4体交叉编址,即每个块编号的最低2位都是0,1,2,3四个中的一个。
- 计算机使用直接映射方式的16KB缓存,因此缓存中有2^11个块,每个块可以映射到主存的一个块。
- 主存地址序列为8005、8006、8007、8008、8001、8002、8003、8004、8000。
根据直接映射的映射规则,同一个块内的地址会映射到缓存中的同一个块。因此,可能发生访问冲突的地址对应该是在同一个块内的两个地址。
根据4体交叉编址的规则,每个块编号的最后两位都是0,1,2,3四个中的一个。因此,每个块内的地址最后两位的取值范围都是0~3。对于主存地址序列中的每个地址,我们可以根据它的最后两位来确定它所在的块编号和块内偏移量。例如,8005所在的块编号为2001(即8005的二进制表示为001111101101,取最后两位01作为块内偏移量,其余位作为块编号),8006所在的块编号为2001,因此它们都属于同一个块内,可能会发生访问冲突。
根据上述分析,可能发生访问冲突的地址对为8005和8006。
相关问题
某计算机使用4体交叉编址存储器,假定在存储器总线上出现的主存地址(十进制)序列为8005,8006,8007,8008,8001,8002,8003,8004,8000,则可能发生访存冲突的地址对是
在4体交叉编址存储器中,将主存地址分解为4部分,分别对应于4个存储体。假设存储器总线的地址线共有n根,使用4体交叉编址,则每个存储体的地址线数为n-2,因此,每个存储体的容量为2^(n-2)B。
根据题目所给的地址序列,将其转化为二进制地址:
8000 -> 0011 1110 1000 0000
8001 -> 0011 1110 1000 0001
8002 -> 0011 1110 1000 0010
8003 -> 0011 1110 1000 0011
8004 -> 0011 1110 1000 0100
8005 -> 0011 1110 1000 0101
8006 -> 0011 1110 1000 0110
8007 -> 0011 1110 1000 0111
8008 -> 0011 1110 1000 1000
根据4体交叉编址的规则,每个存储体的地址范围可以表示为:
存储体0:00...00
存储体1:00...01
存储体2:00...10
存储体3:00...11
因此,8000、8004、8008所在的存储体为存储体0,8001、8005所在的存储体为存储体1,8002、8006所在的存储体为存储体2,8003、8007所在的存储体为存储体3。
因为使用4体交叉编址存储器,每个存储体的地址范围是相互独立的,因此,在上述地址序列中,不会出现访存冲突的地址对。
阅读全文