地址对齐和非对齐是指什么?
“地址对齐”是对于数据传输(data transfer)的起始和结束内存地址位置来讲的。
如果数据传输(data transfer)的所有数据节拍(data beats)利用了总线的所有字节通道(byte lanes),则称其是“对齐的”。
一个“数据节拍”被定义为,在一个时间间隔或时钟周期内,通过总线的全宽度或更小宽度(full width or less)的数据传输(data transfer)。
在数据传输(data transfers)期间,对齐并且使用所有的字节通道,可产生最大的总线吞吐量和整体系统性能。
为了实现对齐,一个传输(transfer)的起始地址和总大小必须是总线大小的倍数。例如,对于4-byte总线,对齐传输的起始地址必须是 4 的倍数(即 0、4、8 等),并且它们的总大小必须是 4 的倍数。
如果数据传输的一个或多个数据节拍(data beats)没有使用总线的全部字节通道(byte lanes),则这个data transfer是“未对齐的(unaligned)”。当传输的起始地址(starting address)或总大小(total size),或两者都不是总线大小的倍数,这种情况就会发生。
例如,对于 4-byte的总线,如果起始地址是 2(不是 4 的倍数),那么传输的第一个数据节拍将只使用总线的两个bytes。
另一个例子,同样使用4-byte总线,传输 6 bytes(同样,不是 4 的倍数)。在这种情况下,即使起始地址是 4 的倍数(例如地址 0),那么第一个数据节拍将对齐(即使用总线的所有四个bytes),但第二个数据节拍将未对齐,因为它只会使用总线的两个bytes。
要注意,起始地址不是总线大小倍数的传输可能会导致第一个和最后一个数据节拍未对齐。例如,对于4-byte总线,起始地址为 2 的 8 bytes传输将导致:
第一个数据节拍2 bytes(地址2和3)未对齐传输
第二个数据节拍4 bytes(地址4到7)对齐传输
最终的数据节拍2 bytes(地址8和9)未对齐传输。
对于AXI,总线位宽和burst size一致。所以,如果(start address % burst size == 0) 地址是对齐的,否则地址是未对齐的。
地址对齐和非对齐是指什么?相关推荐
- ARMv8-A非对齐数据访问支持(Alignment support)
目录 1,对齐传输和非对齐传输 2,AArch32 Alignment support 2.1 Instruction alignment 指令对齐 2.2 Unaligned data access ...
- rtthread 字节对齐问题 int指针访问非对齐地址崩溃
rtthread 字节对齐问题 int指针访问非对齐地址崩溃 环境: SOC: i.MX RT1050 底板: 野火 RT1052 Kernel: rt-thread 背景: 我正在实现解析udp包, ...
- AXI4设计重点002_易出错的地址非对齐读操作
1.AXI读操作+地址不对齐 以rdata_axi_mst位宽为128bit为例,如果MASTER想读取7DW(1DW为4Byte)的数据,从地址0x4开始读取,来自Master端口的AXI信号如下所 ...
- on-chip-bus(四)AXI总线:突发长度、突发大小以及非对齐传输的理解
1.突发长度.突发大小 突发长度(burst length):指在一次突发传输中进行的数据传输次数,用AxLEN字段标识.由于标识值是从0开始的,实际的突发长度应为标识值+1,即突发长度=AxLEN ...
- [转]MIPS 下非对齐访问的问题
1.问题 MIPS 下使用访存指令读取或写入数据单元时,目标地址必须是所访问之数据单元字节数的整数倍,这个叫做地址对齐. 比如在 MIPS 平台上,lh 读取一个半字时,存储器的地址必须是 2 的整数 ...
- CM3中数据传输对齐/非对齐方式
在CM3中,非对齐的数据传输只发生在常规的数据传送指令中,如LDR.LDRH.LDRSH.其他指令则不支持,包括: 1.多个数据的加载.存储(LDM/STM). 2.堆栈操作PUSH.POP. 3.互 ...
- Axi:名词解释、乱序、间插、卷绕、窄带访问、非对齐访问、OST
信号说明: AWBURST.ARBURST: 指示burst type,有3种burst类型. Fixed:固定地址模式,每次burst传输首地址固定,用于访问FIFO INC:递增递增模式,每次传输 ...
- ARM非对齐访问和Alignment Fault
转载自ARM非对齐访问和Alignment Fault - 者旨於陽 - 博客园 (cnblogs.com) 1.指令对齐 A64指令必须word对齐.尝试在非对齐地址取值会触发PC alignmen ...
- 结构体成员非对齐访问所带来的思考
[摘要]本文介绍了内存访问时为什么需要对齐及不对齐时带来的影响.接着介绍了如何改变对齐规则来保证CPU能够访问非对齐内存.最后介绍了结构体设计时需要注意的问题,如何调整成员顺序或者填充特定单元来避免平 ...
最新文章
- c语言不允许对数组的大小做动态定义,数组,C语言程序设计课件,与中南大学出版社教材相配套.ppt...
- SAP Analytics Cloud嵌入到SAP Cloud for Customer的效果图
- █年薪20万招聘软件工程师!!!
- Window Operations(窗口函数的使用)
- C#学习-程序集和反射
- appium+python自动化-adb shell模拟点击事件(input tap)
- 【图像处理】MATLAB:空间滤波
- RTF文件格式【转】
- python画简便的图-python中简单易学的绘图:用turtle画太极图
- Vue.js如何在一个页面调用另一个同级页面的方法
- 科研 | 如何找到研究的突破点?
- 随机生成26大写字母
- C#制作单机版桌面软件(带数据库)
- 环境准备以及服务器的搭建
- 服务器操作系统的特点,服务器操作系统的特点
- 【Unity3D插件】AVPro Video插件分享《视频播放插件》
- 英伟达显卡玩CF怎么提高帧数
- 【科创人】快狗打车CTO沈剑:努力不会背叛,承担社会责任的企业胜算高一点点
- TCHAR * 转为char * 和 char * 转为 TCHAR *
- 图像找茬 matlab,数字图像处理、数学形态学、MATLAB GUI实现简单找茬软件