你敢信吗?在车载领域,大数据传输的延迟和资源消耗那可一直都是让人头疼的大问题,但黑芝麻智能靠着零拷贝共享内存技术把这难题给妥妥解决,牛不牛!
技术背景下难题突显
在当下的车载系统里,武当C1200家族芯片那可是发挥着重要作用。就像咱常见的车里,仪表域、辅助驾驶域、座舱域这几个系统往往会同时运行。这些系统就如同好几个人在一起工作,他们之间呀就有数据共享的需求。那大数据量的数据交换场景下,普通的传输方式效率低,还会让系统负载加重,功耗也大得惊人,这可咋整
零拷贝机制闪亮登场
为了解决上面说的这些问题,就得有一套厉害的办法,这就是零拷贝的共享内存机制。它就像一个超级快递员,能快速地把数据送到该去的地方,大大提高了传输效率。在武当C1200家族芯片系统中,专门设计了全局内存管理单元。有了它就能集中管理全芯片的共享内存的申请和释放。这就好比有个大管家,把所有的事情都安排得明明白白的。
后端实现助力管理
在Linux - 5.10内核里,dmabuf heap提供了分配dmabuf的多个后端实现。而我们这里通过自定义一种后端实现——ipc heap,把dmabuf的分配请求利用ipc发送给全局内存管理单元去 처리。这样一来,不同系统间共享内存就能实现统一管理了,就像是给各个系统之间架起了一座数据交流的稳稳的桥。
跨系统共享的小妙招
全局内存管理单元功能可强大了,负责全局内存的分配、释放和导入等操作。并且,它上面还运行着满足功能安全ASIL D要求的高效内存管理算法。跨系统共享时,通过dmabuf heap接口能获取对应的全局文件描述符。要是目的域是Linux系统,就能根据这个全局文件描述符将其导出为dmabuf,得到本系统内的文件描述符,从而在本系统内的设备之间共享使用;要是目的域是RTOS域,就通过ipc调用根据全局描述符得到内存块的物理地址,直接使用物理地址进行共享。
数据传递确保零延迟
辅助驾驶域处理完数据后,得把信息传递出去通过跨域内存机制就能传递给仪表域(QNX)显示。这一过程那可是相当快,能确保紧急信息零延迟。就好比重要消息火速送达,一点都不耽误事。
性能测试满足需求
来看看性能测试数据,对ADAS域内和全局内存管理单元在不同并发与负载场景下做了测试。各种测试场景下的数据都显示咱这C1200全局跨域内存机制的性能指标参数和ADAS域Linux系统内核自带机制的性能指标参数处于同一数量级,这充分说明它完全可以满足实际业务需求的!
大家想想,这么厉害的技术将来会给车载系统带来怎样的改变?