当前位置: 首页 > news >正文

DSP学习笔记1

C66X 存储控制器

1.C66X存储控制器包括L1P存储控制器、L1D存储控制器、L2存储控制器、外部存储控制器(EMC)和扩展存储控制器(XMC)
2.C6678的L1P存储控制器和L1D存储控制器都可以部分或者全部设置成一路Cache,Cache容量可以支持4KB、8KB、16KB和32KB。复位后都被配置为全Cache,大小为32KB。
3.L2可以部分设置成4路Cache,C6678最大为512KB。
4.对于C6678,器件复位后L2全为SRAM,对于每个内核,L2 SRAM的本地起始地址为0x00800000h。全局访问地址为:

内核L2 SRAM全局地址
核00x10800000
核10x11800000
核n0x10800000+n*0x1000000

注意:对于L2 SRAM的DMA访问必须使用全局地址。

写回(writeback)和失效(invalidata)机制

cache_wb() 缓存写回

核心作用:强制将指定地址范围内,存在于CPU高速缓存中所有修改过(即“脏”Dirty)的数据副本,立即写回/刷新到主存中。
使用场景
1.通过DMA将内存中的数据搬移到某个接口前,需要把缓存中的数据先写回到内存中,确保搬移的数据是最新的。
2.当本CPU内核修改了某部分共享内存,需要把缓存中新修改的数据写回,确保其他内核访问的共享数据是最新的。

cache_inv() 缓存失效

核心作用:丢弃指定地址范围内当前存在缓存中的数据副本,并将该区域标记为“无效”或“空”。当CPU下一次尝试访问该区域内的任何一个地址时,它将发现缓存中该数据无效,因此会强制从主存中重新加载最新的数据到缓存中。
使用场景
1.DMA将数据从接口搬移到某块地址后,CPU要访问这部分数据前要进行缓存失效,确保CPU访问的是最新数据。
2.当某个CPU内核要访问其他内核修改的共享内存数据时,要进行缓存失效,确保CPU访问的是最新数据。

相关文章:

  • Redis网络通信模块深度解析:单线程Reactor到多线程IO的架构演进
  • ULVAC HPS1600F EGC10GS16GS 电子束电源控制Electron Beam Power Supply Gun Controller
  • SpringBoot 中 @Transactional 的使用
  • Netty:深入解析AbstractByteBufAllocator架构设计
  • 重塑音视频叙事:Premiere文本剪辑与Podcast AI降噪的革命性工作流
  • 机器学习16-强化学习-马尔科夫决策
  • 前端替换打包后文件中的内容方案(可用于渗透测试后将问题版本号清空临时解决方案)
  • 高通手机跑AI系列之——穿衣试装算法
  • 手机控车一键启动汽车智能钥匙
  • 自动化测试--app自动化测试之给手机设置锁屏图案
  • COZE API上传文件 直接从前端发送就可以,而通过后端发请求给CozeAPI就不行,为什么?
  • 01测试简介
  • Day 8:Shell数组与哈希完全指南:从“青铜“到“王者“的进化之路
  • vscode ssh远程连接到Linux并实现免密码登录
  • Zabbix干嘛的?
  • 龙虎榜——20250626
  • 创客匠人视角下创始人 IP 打造的底层逻辑与实践路径
  • 15.8 智能对话系统调试五大痛点:从多轮对话到情感识别的全场景解决方案
  • 罗马数字转整数
  • SM2、SM3、SM4算法详解