Memory 在什么情况下,内存是字节或字可寻址的,为什么

Memory 在什么情况下,内存是字节或字可寻址的,为什么,memory,cpu-architecture,computer-architecture,microprocessors,Memory,Cpu Architecture,Computer Architecture,Microprocessors,内存可以是字节可寻址的,也可以是字(2字节、4字节等)可寻址的(如果我在这里出错,请纠正我) 这(字节可寻址或字可寻址)是否取决于处理器体系结构? 如果是,在什么情况下我们选择字节可寻址内存,在什么情况下我们选择字可寻址内存 原因是什么?换句话说,为什么内存字节是可寻址的(在这种情况下),为什么字是可寻址的(在这种情况下)及其原因。我在这个网站上看到了一些关于字节可寻址内存的问题,但没有一个提供关于这些问题的答案。显然,不同的软件需要使用不同类型和大小的数据/变量,而且常常需要在同一代码中使用多

内存可以是字节可寻址的,也可以是字(2字节、4字节等)可寻址的(如果我在这里出错,请纠正我)

这(字节可寻址或字可寻址)是否取决于处理器体系结构? 如果是,在什么情况下我们选择字节可寻址内存,在什么情况下我们选择字可寻址内存


原因是什么?换句话说,为什么内存字节是可寻址的(在这种情况下),为什么字是可寻址的(在这种情况下)及其原因。我在这个网站上看到了一些关于字节可寻址内存的问题,但没有一个提供关于这些问题的答案。

显然,不同的软件需要使用不同类型和大小的数据/变量,而且常常需要在同一代码中使用多个不同的数据/变量

无论大小,都可以直接访问这些变量,从而简化编程,因为不需要将4个8位字节粘合在一起形成32位值,也不需要从32位内存位置提取单个8位值

有些处理器在本机支持的数据大小方面不是很灵活。例如,定点数字信号处理器。有些只能以16位字和32位双字的形式直接访问内存。我认为它们缺少8位字节寻址并不是什么大问题,因为人们期望它们能够进行大量的信号处理,而不是通用的,并且适合于通用计算,而且信号样本很少是8位的(太粗糙了),通常是16位的

在硬件中支持更少的数据大小和其他功能使硬件更简单、更便宜(包括在能耗方面),如果我们谈论成千上万的设备,这一点就变得非常重要


不同的问题需要不同的解决方案,因此种类繁多。

现代通用CPU往往是字节可寻址的。DSP可以是字寻址的。一些历史上的CPU是字可寻址的,有时字长奇怪(IIRC,PDP-11是Unix,C最初编写的,有18位字和字可寻址内存)。可能重复