地址总线与AC,该怎么处理
地址总线与AC
不知道是不是该在这里问
我在【总线 与 数据的字节对齐 http://blog.chinaunix.net/uid-22283027-id-3985411.html】与【现代微机结构_80486.ppt 在百度文档里】里看到”某些CPU只能在能够被4整除的地址进行内存访问, 这是因为: 32位CPU不使用地址总线的A1和A2. (比如ARM, 它的A[0:1]用于字节选择, 用于逻辑控制, 而不和存储器相连, 存储器连接到A[2:31].)
访问内存的最小单位是字节(byte), A0和A1不使用, 那么对于地址来说, 最低两位是无效的, 所以它只能识别能被4整除的地址了“
” AC对齐标志
对齐的含义:
16位的字, 从偶地址开始存放(起始地址最低位为0, 能被2整除);
对32位的字, 存放的起始地址能被4整除, 且最低2位为0
“
我就想,如果最低几位被用去字节选择了,那岂不是不满足N位地址总线能搜索2^N BYTE数据的理论了??
------解决思路----------------------
32位CPU一次可以读4个字节(32位),所以最低两位地址不需要,而用作字节选择。所以还是一样的N位地址总线能搜索2^N BYTE数据,只是物理实现不同了(高30位地址寻址到32-位4字节数据,低两位地址选择其中一字节)
------解决思路----------------------
2^(N-2)个 字
注意是字长32位 =4BYTE(4x 8bit)
2^(N-2) x 4BYTE =2^(N-2) x 2^2 =2^N BYTE
不知道是不是该在这里问
我在【总线 与 数据的字节对齐 http://blog.chinaunix.net/uid-22283027-id-3985411.html】与【现代微机结构_80486.ppt 在百度文档里】里看到”某些CPU只能在能够被4整除的地址进行内存访问, 这是因为: 32位CPU不使用地址总线的A1和A2. (比如ARM, 它的A[0:1]用于字节选择, 用于逻辑控制, 而不和存储器相连, 存储器连接到A[2:31].)
访问内存的最小单位是字节(byte), A0和A1不使用, 那么对于地址来说, 最低两位是无效的, 所以它只能识别能被4整除的地址了“
” AC对齐标志
对齐的含义:
16位的字, 从偶地址开始存放(起始地址最低位为0, 能被2整除);
对32位的字, 存放的起始地址能被4整除, 且最低2位为0
“
我就想,如果最低几位被用去字节选择了,那岂不是不满足N位地址总线能搜索2^N BYTE数据的理论了??
------解决思路----------------------
32位CPU一次可以读4个字节(32位),所以最低两位地址不需要,而用作字节选择。所以还是一样的N位地址总线能搜索2^N BYTE数据,只是物理实现不同了(高30位地址寻址到32-位4字节数据,低两位地址选择其中一字节)
------解决思路----------------------
2^(N-2)个 字
注意是字长32位 =4BYTE(4x 8bit)
2^(N-2) x 4BYTE =2^(N-2) x 2^2 =2^N BYTE