专栏中心

EEPW首页 > 专栏 > 征程 6|Cache 使用场景

征程 6|Cache 使用场景

发布人:地平线开发者 时间:2025-06-22 来源:工程师 发布文章

一、缓存机制基础

1.1 缓存类型对比

属性Cache Buffer(缓存)No Cache Buffer(非缓存)是否经过 CPU cache是否(直接访问内存)访问速度快(命中时)慢(每次都访问主存)数据一致性需要手动 flush/invalidate自动同步,无需额外操作

1.2 典型应用场景

缓存缓冲区 :适用于高频 CPU 访问场景(如 AI 推理中间数据)

非缓存缓冲区 :适用于设备直传场景(如 DMA 数据流)



二、数据一致性问题深度解析

2.1 DMA-CPU 缓存协同问题

当 DMA 设备与 CPU 缓存系统协同工作时,可能引发以下同步异常:

场景现象后果CPU写入未FlushDMA读取到过期数据处理结果基于旧数据DMA写入未InvalidateCPU使用缓存旧数据计算逻辑错误并发访问未同步内存与缓存数据不一致系统稳定性风险

典型异常表现 :

感知输出图像中出现非连续绿色伪影(数据不同步导致的像素错位)


img



三、缓存管理技术方案


3.1 手动缓存控制接口

// CPU写入后执行Cache刷新(确保DMA获取最新数据)
int32_t hb_mem_flush_buf_with_vaddr(uint64_t virt_addr, uint64_t size);

// DMA写入后执行Cache失效(确保CPU读取最新数据)
int32_t hb_mem_invalidate_buf_with_vaddr(uint64_t virt_addr, uint64_t size);


3.2 自动化缓存配置1.输入缓冲区配置

"in_buf_noclean": 0 # 0=自动执行 flush(默认 1 不执行)

"in_buf_noncached": 0 # 0=使用缓存内存(默认)

2.输出缓冲区配置

"out_buf_noinvalid": 0 # 0=自动执行 invalidate(默认 1 不执行)

"out_buf_noncached": 0 # 0=使用缓存内存(默认)


四、配置策略建议


4.1 性能敏感场景

"in_buf_noclean": 1 # 关闭自动 flush

"out_buf_noinvalid": 1 # 关闭自动 invalidate

适用场景:高频数据流(>60fps 视频流)

注意事项:需配合手动缓存控制接口使用


4.2 数据安全场景

"in_buf_noclean": 0 # 强制自动 flush

"out_buf_noncached": 1 # 使用非缓存内存

适用场景:自动驾驶感知推理场景

性能影响:增加约 15-20%的 CPU 开销


五、最佳实践指南

混合使用策略 :对处理流水线中的中间缓冲区采用 Cache Buffer,终端输出使用 No Cache Buffer

批处理


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词: 算法 自动驾驶 算法工具链 地平线 征程5

相关推荐

掘金自动驾驶,不要把大坑当机会

汽车电子 2026-04-17

ADI:传感技术助力未来自动驾驶的发展

视频 2020-03-16

加快实现自动驾驶(完整小组讨论)

视频 2020-06-12

地平线征程 6 系列集成 Cadence Tensilica Vision DSP,实现规模化量产,合作加速智能驾驶解决方案部署

携手ADI赢得未来

视频 2019-11-08

实时训练驾驶人工智能

自动驾驶的现状与未来(节选)

视频 2020-03-16

CRC算法原理及C语言实现

资源下载 2007-02-16

高阶智驾要落地,线控底盘为什么必须执行得准

数字PID控制算法之一

资源下载 2007-12-28

Ouster推出 Rev8 OS 激光雷达系列 原生彩色激光雷达正式落地

面向算法硬件加速的FPGA实现方法

加密算法之MD5算法

自动驾驶正推动汽车行业加速布局人形机器人

曲面显示屏取代传统汽车挡风玻璃

76-81GHz自动驾驶CMOS RADAR

视频 2018-05-31

2035年自动驾驶出租车市场规模将达1680亿美元

汽车电子 2026-04-21

PID算法

资源下载 2007-02-16

特斯拉监督版FSD加入中国市场

2026-05-22

简单实用的单片机CRC 快速算法

资源下载 2007-02-16
更多 培训课堂
更多 焦点
更多 视频

技术专区