但回答你的问题“为什么对齐边界多于4?”,假设一个通用架构(你没有指定一个和you wrote that x86 was just an example),我将提出一个特定的案例:GPU.
如果地址在多个访问大小(PTX ISA ld/st)上对齐,则只能访问(存储/加载)NVIDIA GPU内存.当地址与访问大小的倍数对齐时,会出现不同类型的加载和最高性能的加载,因此如果您尝试从内存加载双精度(8字节),您将拥有(伪代码):
ld.double [48dec] // Works,8 bytes alignedld.double [17dec] // Fails,not 8 bytes aligned
在上述情况下,当试图访问(r / w)未正确对齐的内存时,该过程实际上会导致错误.如果你想要速度,你必须提供一些安全保障.
这可能会回答你关于为什么首先存在大于4的对齐边界的问题.在这种架构上,访问大小1始终是安全的(每个地址都对齐1).对于每个n> 1,情况并非如此.
总结以上是内存溢出为你收集整理的c – 为什么对齐边界大于4?全部内容,希望文章能够帮你解决c – 为什么对齐边界大于4?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)