完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
请问:
1、如果将L1D CACHE设置为32KB,L1P CACHE设置为32KB,L2 CACHE设置为0KB; 在core的LL2中定义了两个数组,out1占用32KB存储空间,out2占用32KB存储空间, 那么,当在core的LL2中对out1、out2两个数组调用进行运算操作时,因为设置的LL2是cacheable,而L1D CACHE只有32KB,那么两个数组在L1D cache中参与运算操作时会发生cache存储空间的使用冲突么? 2、memset(void *buffer, int value, int count),对buffer起作用的是它cache中的内容还是其所在的真正内存中的内容?? |
|
相关推荐
10个回答
|
|
1. 用到哪个就把哪个读进cache,把原来的置换出去;
2. L1D和LL2的cache一致性不需要手工干预,所以可以不用管;如果是DDR或SL2的可Cache空间,在不在cache不能确定,做完memset之后需要writeback。 |
|
|
|
hdfsf 发表于 2018-6-21 13:36 不是说L2的cache一致性由硬件维护么,所以不需要手动维护,那么我这一小段检测程序里面,为什么DDR3里面的前128个字节不对呢? |
|
|
|
你是用DMA将LL2数据搬到DDR么,如果这块DDR的属性配置为cacheable,则需要在DMA启动前对这个DDR区域进行L1D cache invalid操作。 |
|
|
|
zbb9612 发表于 2018-6-21 13:54 但是, 1,EDMA传输数据不是直接传输到内存中么?即使DDR被cacheable了,传输到DDR内存中的数据也应该是对的啊? 2,难道是:我从memory browser中看的是DDR cache中的内容,而不是真正内存中的麽? 3,L2的cache一致性不用手动维护吧?是硬件维护是么,也就是说L2 RAM中内容始终与L1D CACHE保持一致是么? 问题有点多,请多指教啊,谢谢! |
|
|
|
werywer 发表于 2018-6-21 14:06 EDMA是直接将数据传到DDR,不会经过cache;但是如果DDR是cacheable,则有可能会被cache controller在cache replacement时将DDR对应cache中的旧数据flush 覆盖;L2 memory不需要收到维护cache一致性。 请参阅c66x cache user guide。 |
|
|
|
zbb9612 发表于 2018-6-21 14:11 Andy, 正如你在附件图片中看到的,,EDMA传输到DDR内存中的数据是正确的,,但是当我在传输完成之后再访问DDR时,即程序中对DDR3_TEST3的访问,访问的是其cache中的内容,虽然我在访问之前添加了cache无效语句如图,但是好像并没有起作用,我用单步运行程序,发现前两次cache的内容是错误的正好对应128字节,,那么为什么我cache无效却没有起到清楚的作用呢?该怎么解决呢??? |
|
|
|
werywer 发表于 2018-6-21 14:23 问题解决了,访问DDR3中的内容有时会出现cache与实际内存不一致,是由于DDR3设置成了Prefetchable,将其对应的MAR中的控制位PFX设置为0,关闭Prefetchable即可实现正确的访问。 |
|
|
|
hdfsf 发表于 2018-6-21 13:36 如果将L1D CACHE设置为32KB,L1P CACHE设置为32KB,L2 CACHE设置为0KB; 然后我在DDR3中定义一个数组float KUX[8192*7];其占用存储空间为224KB; 那么,我在程序中相对该数组进行CACHE_inv操作,请问下面这样操作对么? #ifdef L2_CACHE CACHE_invL2 ((void *) KUX, 8192*7*4, CACHE_WAIT); #else CACHE_invL1d ((void *) KUX, 8192*7*4, CACHE_WAIT); #endif L1D CACHE空间总共32KB,而我要CACHE无效掉224KB的空间,,这样操作会有冲突或者错误么??? |
|
|
|
werywer 发表于 2018-6-21 14:46 跳的是实际数据的长度,不会有冲突错误,注意填的地址及长度要保证cache line对齐,对于L1D cache line是64Bytes,L2D cache line是128bytes。 |
|
|
|
zbb9612 发表于 2018-6-21 14:58 Andy ,thank you . |
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
669 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
597 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1048 浏览 1 评论
731 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
520 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
158浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
120浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
123浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
121浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
163浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 10:21 , Processed in 0.918118 second(s), Total 66, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号