你好:
1.文档中说L2 由2个Bank组成,每个Bank有4个sub-bank,同一个时钟周期能否同时访问同一个Bank中的不同sub-bank,我测试发现好像不能,想确认下!
2. 文档中说,C66系列L2是单port,这是什么意思?
多谢!
Jane Lu:
Hi Cheng,
1 是可以支持不同sub-bank的同时访问。 比如,L1P访问sub-bank0, L1D访问sub-bank1, EDMA访问sub-bank2, SRIO访问sub-bank3
2 是指C66 L2memory 对外接口为一个256bit的port。 具体参见文档sprug0wb section4.2.1
si cheng:
回复 Jane Lu:
我想知道ldw指令和stw/ldw指令 并行执行时,使用同一个bank的不同sub-bank
读写数据是否会冲突,导致并行延迟!我自己测试时有延迟!不知道是否正确
Zhan Xiang:
回复 si cheng:
应该是有stall,而不是有延迟,不知道你是怎么设计测试用例的,因为sub bank的地址并不是连续的,能把你的测试用地址贴上来么,我们可以帮你分析你的测试是否正确。
si cheng:
回复 Zhan Xiang:
你好:
1.下图中说bank0和bank1的地址区别是在最低字节上表现的,同时ldw操作bank0和bank1,只需要ldw操作的地址最低字节在2个bank上,随便举个例子,bank0使用地址0x00870000, bank1使用地址0x00870010, 假若有以下指令:
mvkl 0x00870000, a5
mvkh 0x00870000, a5
mvkl 0x00870010, a7
mvkh 0x00870010, a7
lddw a5, a8
|| lddw a7, a9
通过单步跟踪,同时观察TSCL寄存器变化即可发现这个并行指令是否有延迟,我测试发现,若在不同的bank,TSCL计数器的值只加1,如果a5和a7地址在一个bank的不同sub-bank,TSCL会加2.
2.现在有另外一个问题有点迷惑: <<TMS320C6000 Optimizing Compiler v 7.3>> 手册, 6.9.5 The DATA_MEM_BANK Pragma 中说:
C6600 The C6600 devices contain 8 memory banks; constant can be 0, 2, 4, or 6. 有8个bank,这8个bank应该是说的bank0和bank1中的各自的4个bank吧! 但是在使用
#pragma DATA_MEM_BANK ( symbol , constant ); 时,constant = 0,2,4,6,如何实现将symbol 定义到8个不同的sub-bank中, 这里constant 只有4个值,如何区别是定义到bank0和bank1?
si cheng:
回复 si cheng:
mvkl指令a7改为b7
lddw a5, a8
|| lddw a7, a9
应该是 ldw *a5, a8
|| ldw *b7,b8
打错了,不好意思!
si cheng:
回复 si cheng:
请各位技术支持指教!
多谢
si cheng:
回复 si cheng:
为什么过了这么久都没人回答啊? 各位专家帮忙解决下,多谢!!!