我正在为学期末考试而学习,并对以下问题感到困惑。如果CPU具有16位地址总线和8位字,那么它可以寻址多少KB的内存?我的理解会告诉我它可以处理64KB,但是我只使用2 ^ 16 = 65,536。该计算从未真正考虑到8位字,因此我不确定它是否正确。另外8位字是什么意思?
干杯
我正在为学期末考试而学习,并对以下问题感到困惑。如果CPU具有16位地址总线和8位字,那么它可以寻址多少KB的内存?我的理解会告诉我它可以处理64KB,但是我只使用2 ^ 16 = 65,536。该计算从未真正考虑到8位字,因此我不确定它是否正确。另外8位字是什么意思?
干杯
Answers:
在大多数体系结构中,一个字是可以在单个操作中往返于工作存储器的最大数据段。
用于指定内存中位置的最大可能地址大小通常称为硬件字。
因此,您的CPU将能够寻址64KB(2 ^ 16),但一次只能传输8位。
机器字,或者通常只是字,是CPU可以使用通用指令整体上操纵的最大数据单元。这与内存寻址无关。
重要的是地址解析的单位,即使在16/32/64位体系结构上,它通常也是8位字节。它不必等于机器字的大小,但是可能在您的情况下。
一个8位可寻址单元与16位地址总线结合在一起,CPU可以寻址到64KiB的RAM。
另外8位字是什么意思?
在上下文中,字大小与地址大小一起描述内存总线。内存中有16位数据,因此可以选择64ki的位置。然后,每个位置包含8位。
此处的字长可能匹配或可能不匹配CPU计算单元的大小,并且可能匹配或可能不匹配寻址中的逻辑粒度。
例如,CPU可以宣告16位总线(为此)。它在指令中使用16位地址,就像您的示例具有64ki。但是它有15位的地址总线和16位的数据总线。它仅需要32ki地址,并且每个位置始终获得2个字节。(如果一条指令需要1个字节,它将以最少的一位丢失来分配地址,在该步骤中取出两个字节,然后查看所需地址的最小一位来决定使用哪一半。)
请注意,其他人提到的银行转换,PAE等在这里不相关。内存管理单元可能使用16位地址并具有20位硬件地址,因此CPU需要进行切换和映射,以利用可以寻址的RAM芯片的实际20位地址范围。
确保在答案中指定单位。 “ 64ki”。什么啊 8位字,使其(仍)为64ki 字节的可寻址RAM。该步骤消除了混乱,并使这种琐碎的问题变得微不足道。
您还必须在计算中使用字长。答案是64 KB。
您可以寻址2 ^ 16个字,每个字为8位(= 1个字节)。因此,它是64 KB。
如果字长为16位。答案将是128 KB。
这有两个方面,您的老师可能要您告诉他什么,以及现实是什么。
首先,您的讲师可能要您告诉他什么。
“ 16位可以寻址2 ^ 16个存储器位置,每个位置为8位。因此,我们可以寻址524288位(65536个八位字节)的存储器。”
但是,这反映了一种过于简化的世界观。现实更加复杂,给出明确的答案需要更多的信息。实际系统可能比这复杂的一些方法包括。