con*_*tor 6 cpu byte alignment
我知道有些处理器因数据未对齐而失败,而其他处理器就像那些常见的x86一样,只会慢得多.
我的问题是为什么?为什么x86处理器从指针获取数据0x12345679比从指针获取数据更难0x12345678?为了清楚起见,我知道如果数据在多个页面中可能会发生页面错误,并且我知道可能需要从内存中获取更多数据(一个部分用于值的开始,一个用于结束) ,但这并不总是正确的,这不是我的问题所在.我问,为什么总是慢?
假设内存开始于0x10000000.为什么处理器比short从0x10000001它获取2字节更难0x10000002?为什么更难获得一个4字节int从0x10000001比它是从0x10000000?等等.
处理器只能以对齐的方式访问内存。这是处理器和存储器之间的互连方式的结果。
当处理器支持未对齐读取时,真正发生的是处理器发出两次单独的读取(或一次较大尺寸的读取)并将各个部分缝合在一起,这就是它比对齐读取慢的原因。
| 归档时间: | 
 | 
| 查看次数: | 188 次 | 
| 最近记录: |