gpt4 book ai didi

byte - 为什么对齐很重要?

转载 作者:行者123 更新时间:2023-12-04 14:35:05 26 4
gpt4 key购买 nike

我知道有些处理器会因数据未对齐而失败,而其他处理器(如非常常见的 x86)会因这种情况而变慢。

我的问题是为什么?为什么 x86 处理器从指针 0x12345679 获取数据比从指针 0x12345678 获取数据更难?为了清楚起见,我知道如果数据在多个页面中可能会发生页面错误,并且我知道可能需要从内存中获取更多数据(一部分用于值的开始,一部分用于结束) ,但这并不总是正确的,这不是我的问题。我在问,为什么它总是变慢?

假设内存从 0x10000000 开始。为什么处理器从 short 获取 2 字节 0x10000001 比从 0x10000002 获取更难?为什么从 int 获取 4 字节 0x10000001 比从 0x10000000 获取更难?等等。

最佳答案

因为数据总线比八位宽。

假设数据总线是 32 位。要从地址 0x10000001 获取 16 位,它必须获取从 0x10000000 开始的四个字节并将该值移位以获取中间的两个字节。

要从地址 0x10000003 获取 16 位,它必须获取从 0x10000000 和 0x10000004 开始的字,并使用每个值的一个字节。

关于byte - 为什么对齐很重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4339371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com