This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于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起始呢?

谢谢。

  • 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对齐的也没有问题。 请问我的理解是否正确,谢谢。

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