64位数据地址的对齐是8对齐吗
看了一些关于内存地址对齐的文章,还有些不懂
对齐的意思似乎就是能被N整除?N是数据地址线的字节数
如16bit系统就是2对齐,32位就是4对齐
那64位是8对齐吗??
如 http://blog.chinaunix.net/uid-22283027-id-3985411.html与http://blog.csdn.net/donkeylong/article/details/4909720提到
”某些CPU只能在能够被4整除的地址进行内存访问, 这是因为: 32位CPU不使用地址总线的A1和A2. (比如ARM, 它的A[0:1]用于字节选择, 用于逻辑控制, 而不和存储器相连, 存储器连接到A[2:31].)
访问内存的最小单位是字节(byte), A0和A1不使用, 那么对于地址来说, 最低两位是无效的, 所以它只能识别能被4整除的地址了
“
而http://www.360doc.com/content/11/1024/21/7725999_158799756.shtml提到
8086,80186,80286和80386sx ” 每个内存周期,CPU只能读取一个偶单元和一个奇单元。地址总线的地址为偶单元的地址,所以说地址总线的地址永远是2对齐的。“
80386之后的cpu ”通过上图和参考上面16bit数据总线CPU的分析,可以看出32bit数据总线在每个内存周期中读取的数据地址都是以4对齐的。“
这些论述是否矛盾呢?