字节对齐
来源:互联网 发布:qq群推广淘宝客链接 编辑:程序博客网 时间:2024/06/02 07:03
Dcache 在clean和invalid时需要cache line对齐,要求申请的mem要cache line 对齐
_align(32) u8 mem1base[MEM1_MAX_SIZE];
__align(32) u8 mem2base[MEM2_MAX_SIZE] __attribute__((at(0X68000000)));
类似这个,定义了2个u8的内存池,我硬件调试了下,发现他们每一个数组里面u8数据和u8数据都是挨着的,并不是一个u8占了32个字节,剩下的填充不用。也就是他们占了MEM1_MAX_SIZE和MEM2_MAX_SIZE个空间,而不是MEM1_MAX_SIZE*32和MEM2_MAX_SIZE*32个。也就是这个32字节对齐对于他们数组内部的数据存储是没有什么作用的。
这个字节对齐,首尾都要对齐,我的看法是对于第一个 __align(32) u8 mem1base[MEM1_MAX_SIZE]是内部内存池,加上32字节对齐后,内存为他分配的首地址就是32倍数的地址,然后内存块是32个一块。
加上这个__align(32)使得他分配出来的地址全部都是32字节对齐的,也就是地址是32的倍数。然后分配到的空间,4,8,16,32字节对齐都可以使用。
对于第二个__align(32) u8 mem2base[MEM2_MAX_SIZE] __attribute__((at(0X68000000))),我们已经为他分配了首地址了,而且分配的首地址已经是32字节对齐的了,所以我们把这一个__align(32)去掉也是没问题的
http://www.openedv.com/thread-84387-1-1.html
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- Linux下exec函数族(execl,execv,execle,execve,execlp,execvp,fexecve)的使用和对比
- 屏幕中公告滚动 新闻滚动 音乐滚动 html js写法(以公告滚动为例)
- nc命令的部分用法和举例(不断更新)
- 关于项目在Xcode更新8.3.2 (使用子模块引入ReactiveCocoa报错)
- SpringMVC中JSP取不到ModelAndView中的值
- 字节对齐
- Oracle data guard 主库备库切换演练
- PreparedStatement的优势
- IP地址的分类——a,b,c 类是如何划分的
- PHP——数据库(更新)
- 理解Java对象序列化
- Android屏幕顶部背景色控制
- gitbook使用方法
- 数据库框架,litepal的配置和使用