TI论坛
直播中

熊洁

7年用户 186经验值
私信 关注
[问答]

关于BCP加速器输入数据对齐的问题

各位ti的工程师们,你们好。
我最近在学习C6670上BCP模块的使用,参考了文档SPRUGZ1.pdf和PDK内的历程, 现在有关于输入数据对齐的几个疑问。
BCP Header 肯定是要multiple of 128bit的。每个local header需要32bit multiple,这2个是明确的。那整个BCP Header需要从128bit对齐处开始吗?
同时在PDK内的Bcp_addTMHeader中有如下的注释,说user info去需要对齐128bit边界。


同时PDF中的Figure 3-3 Example header format of BCP又有下面这句话,黄字所示。说明要处理的数据也u需要从128bit对齐。


这2处在文档中都没有明确的说明,想请教各位工程师是否是这样的,同时整个BCP header是否也需要128bit起始呢?
谢谢。

回帖(3)

杨娟

2018-8-6 09:01:50
BCP user info的长度必须128bit align,user info起始必须是header 128bit边界,也就是说user info前面的所有header长度必须是128bit的整数倍,然后整个bcp header的长度必须128bit对齐,bcp header的起始地址没有对齐要求。
                                                                          

举报

熊洁

2018-8-6 09:20:07
引用: zbb9612 发表于 2018-8-6 09:01
BCP user info的长度必须128bit align,user info起始必须是header 128bit边界,也就是说user info前面的所有header长度必须是128bit的整数倍,然后整个bcp header的长度必须128bit对齐,bcp header的起始地址没有对齐要求。
                                                                          

你好, Andy Yin1, 谢谢你的回复。
是不是我上面提到的align和我们在CCS代码中使用的  #pragma DATA_ALIGN(variable, 128)不同,使用#pragma DATA_ALIGN 是指分配的内存空间上的映射起始地址对齐,是一种物理内存上的绝对对齐。 而bcp文档中所要求的user info对齐和payload对齐 只是要求相对于bcp的数据起始位置128bit对齐即可,是一种相对对齐, 即使这个在物理上的地址不是128bit对齐的也没有问题。 请问我的理解是否正确,谢谢。
举报

杨娟

2018-8-6 09:38:59
引用: a38001230 发表于 2018-8-6 09:20
你好, Andy Yin1, 谢谢你的回复。
是不是我上面提到的align和我们在CCS代码中使用的  #pragma DATA_ALIGN(variable, 128)不同,使用#pragma DATA_ALIGN 是指分配的内存空间上的映射起始地址对齐,是一种物理内存上的绝对对齐。 而bcp文档中所要求的user info对齐和payload对齐 只是要求相对于bcp的数据起始位置128bit对 ...

你的理解是对的,BCP中要求的128bit boundary align是相对BCP起始地址,要求前面所有数据长度是128bit的整数倍。建议你在看BCP的过程中,如果有疑问可以写简单的程序验证。
                                                                          

举报

更多回帖

发帖
×
20
完善资料,
赚取积分