【产品】地平线X3开发板内存详解:bpu内存及相关接口&如何通过命令查看对应内存

2022-05-25 地平线
开发板,X3,地平线 开发板,X3,地平线 开发板,X3,地平线 开发板,X3,地平线

一. bpu内存以及相关接口

地平线X3开发板中,芯片架构是Bernoulli2,在Bernoulli系列芯片的架构中,BPU和CPU共享同一个memory空间,如下图:

由于BPU需要使用物理空间连续的一块内存,因此runtime库提供专门的接口用来申请bpu内存,该接口返回申请到的memory地址(包括物理地址和虚拟地址),其中bpu虚拟地址可以被CPU直接读写,在后续执行BPU操作时也是传入虚拟地址。


且CPU与主存之间存在的cache会缓存数据,而BPU与主存之间没有cache,不过bpu的内存接口实现中也可以有cache,不过cacheable的bpu内存的cache与CPU cache机制不同,这种差别导致了cpu读写bpu内存时需要符合某种约束才行。具体来说,针对CPU读写 cacheable 的bpu内存,需要注意如下两项事项:

1. 对于CPU写bpu memory的场景,由于数据会缓存到cache中,导致memory中的数据是旧,这样BPU执行模型的时候取的数据就是错的。因此需要把cache中的数据flush到物理memory中,这时候就需要使用HB_SYS_BPU_MEM_CACHE_CLEAN参数调用HB_SYS_flushMemCache接口。

2. 对于CPU曾经读取过bpu memory的场景,数据有可能在之前被缓存到cache中。这时如果BPU写了这块memory,那么CPU在读取数据时仍然从cache中读,这样就会导致CPU读到老旧的数据。这时候就需要把cache中读取得数据清理掉,需要使用HB_SYS_BPU_MEM_CACHE_INVALIDATE参数 调用HB_SYS_flushMemCache。


Tips:

对于模型的输入内存,可以不用设置cacheable,因为通常模型的input只会被读取一次。

对于模型的输出内存,则有必要设置cacheable,因为后处理会多次读取输出内存,这样能够利用cache缓存,提高访问速度。

以上便是开发板中内存相关的说明,runtime库提供如下接口来申请/刷新/释放bpu内存:

// memory api
/*
* \brief alloc bpu memory for input and output of model,
* flag cachable indicates whether a cache is required.
*/
int HB_SYS_bpuMemAlloc(const char *name,
size_t alloc_mem_size,
bool cachable,
BPU_MEMORY_S *mem);

#define HB_SYS_MEM_CACHE_INVALIDATE (1) // flush memory to CPU
#define HB_SYS_MEM_CACHE_CLEAN (2) // flush CPU to memory

/*
* \brief flush cache with flag.
* HB_SYS_MEM_CACHE_INVALIDATE should be used after write,
* and HB_SYS_MEM_CACHE_CLEAN should be used before read .
*/
int HB_SYS_flushMemCache(const BPU_MEMORY_S *mem, int flag);

/*
* \brief query memory whether is cachable or not.
*/
int HB_SYS_isMemCachable(const BPU_MEMORY_S *mem);

/*
* \brief free bpu mem.
*/
int HB_SYS_bpuMemFree(BPU_MEMORY_S *mem);

具体的接口说明请参考开发包中的BPU SDK API文档,在此不再赘述。


二. 开发板内存说明

下面介绍开发板中,如何通过命令查看对应内存。


在X3开发板中,bpu和vio等硬件使用内存,采用的是cma机制,以系统0922镜像为例,通过cat /sys/class/misc/ion/cma_carveout_size 命令和 memstat命令获取结果,如下图:

其中,reserved的45484K为系统所用,不可被应用所用。 cma-reserved为704512K,是cma内存;available为296528K,是CPU内存,为防止误解,记为available内存,这个类型内存也是kernel唯一可用的内存。


704512K的cma内存中,被分割出去272MB内存预留给bpu/vio专用(cma_carveout_size大小的内存),这个预留是只能给bpu/vio用,剩下的(704512K-272MB)=416MB 可被bpu、cpu和vio共同使用。


cpu使用内存时,会随机从cma内存和available内存申请。


然后通过free命令,获得结果如下图:

free命令输出,第二行的used的374180K,其中就包含了预留的272MB的cma内存,也就是cma_carveout_size大小的内存的使用情况会在used列中体现。


根据上面的分析,可以得到0922 x3镜像的内存示意图:

其中,cpu在进行memory malloc调用时,会随机从available和cam中分配内存(一半一半的概率)。


而bpu会优先从carve out分配内存,等到不够时,会从cma中分配,当cma中可用内存不够的情况下,kernel会将cma中被cpu占用的内存数据搬运到available,从而腾出cma空间给bpu使用,如果没有足够的available容纳腾出的数据,会报bpu分配失败的错误。


以上便是X3开发板的内存的一个大概介绍。


授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由zc转载自地平线,原文标题为:关于X3开发板内存的介绍,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

平台合作

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

地平线发布具有4核ARMA53处理能力的X3派AI开发平台,支持H.264/H.265编解码和5Tops端侧推理|视频

地平线旭日®️X3派是一款面向生态开发者的嵌入式AI开发板,接口兼容树莓派,具有5Tops端侧推理与4核ARMA53处理能力。可同时多路CameraSensor的输入并支持H.264/H.265编解码。

2022-06-16 -  新产品 代理服务 技术支持 采购服务

地瓜创客孵化营 | 让每一块 RDK X5,都成为你手中的机器人!

地瓜机器人开发者日就要来啦!面向智能计算与机器人解决方案的通用型开发板新品RDK X5,接口丰富,极具性价比,具有10T算力,与强大的图像处理能力,助力开发者轻松实现多种智能应用。加入“地瓜创客孵化营”你将和一群“地瓜创客”一起找到将你的开发板转变为智能机器人的最佳路径。

2024-09-13 -  原厂动态 代理服务 技术支持 采购服务

【经验】地平线X3M SDB开发板烧录ubuntu镜像实操和注意事项

地平线X3M SDB开发板,地平线论坛已经支持yocto linux和ubuntu两种SDK包,本文实操烧录ubuntu镜像以及说明注意事项。

2022-06-24 -  设计经验 代理服务 技术支持 采购服务

旭日X3派开发板

旭日X3派开发板使用指南包括准备工作、系统安装、系统烧写、启动系统、远程登录、快速体验、硬件接口说明等内容。指南详细介绍了开发板的供电、存储、显示、网络连接等准备工作,以及如何安装和启动Ubuntu系统。此外,还涵盖了远程登录方法、GPIO操作、LED点灯、图像采集AI推理等基础功能示例,以及40PIN接口、USB接口、MIPI摄像头接口、TF卡接口、蓝牙等硬件接口的说明。

地平线  -  开发板,X3

2022/11/29  - 用户指南 代理服务 技术支持 采购服务

【经验】地平线X3开发板使用指南

本文主要讲述地平线X3开发板的使用说明,主要包含:1.了解X3开发板;2.烧写镜像;3.串口或网口登陆开发板;4.uart烧写【uboot被擦除时使用】。

2022-05-19 -  设计经验 代理服务 技术支持 采购服务

【经验】地平线开发板J3刷机问题及操作记录

本文介绍了在地平线J3开发板上面完成刷机以及跑通AI-Express的demo过程中遇到的问题并详细讲解。首先先刷efuse;刷完之后,利用串口进去改一下板子ip;最后按照github上编译AI-Express。

2022-05-06 -  设计经验 代理服务 技术支持 采购服务

我们在参考地平线X3M SDB开发板设计原理图时,发现SD2的电源域是3.3V,而我司需要把SD2功能复用为GPIO功能,并且是1.8V输出的,这里需要怎么改。

SD2的电源域可以通过寄存器0xa6004170来修改为3.3v/1.8v,复用为GPIO功能后点输出电压也是由SD2的电源域提供的电压。

2023-09-04 -  技术问答 代理服务 技术支持 采购服务

【经验】地平线X3M开发板添加dummy_codec虚拟声卡驱动的方法

一个完整的声卡信息由cpu_dai,codec_dai,platform,dai_link组成。本文将详细介绍地平线X3M开发板添加dummy_codec虚拟声卡驱动的方法。

2022-06-15 -  设计经验 代理服务 技术支持 采购服务

【经验】地平线旭日x3开发板入门教程介绍

本文对地平线旭日x3开发板做入门介绍,第一步点亮系统,第二步配置交叉编译环境,最后进行示例测试。x3开发板达到了实时性要求,精度也不错。

2022-05-21 -  设计经验 代理服务 技术支持 采购服务

地平线X3M开发板有相对应的硬件压测工具吗?

地平线SDK提供相应的针对硬件的压测工具,包括X3M芯片,DDR,EMMC,网口,USB等。

2023-06-29 -  技术问答 代理服务 技术支持 采购服务

【经验】地平线X3M开发板上AP6212模组的Wi-Fi功能使用方法

地平线X3M开发板上的AP6212模组是一种低成本、低功耗的模组,集成有WiFi,蓝牙和FM功能,广泛应用到智能手机和便携式设备中。本文主要介绍AP6212 WiFi功能的使用方法。

2022-07-27 -  设计经验 代理服务 技术支持 采购服务

一款新的sensor模组接上地平线X3M开发板,点不亮是什么原因?

1. 需要检查模组的mipi管脚和开发板的mipi接口是否一致,用万用表测试1.2V, 1.8V,3.3V电压是否正常; 2. 确保硬件OK后,可以根据串口报错的信息和地平线的文档对照做进一步分析。

2023-06-29 -  技术问答 代理服务 技术支持 采购服务

【经验】地平线X3M开发板烧录镜像的方法

X3M开发板是集成了地平线X3 AI处理器的一个开发板形态产品,支持多路摄像头输入,提供5T算力,提供丰富的标准硬件接口,搭载地平线“天工开物”软件栈,可用于客户快速开发、开发者方案验证等场景。本文主要介绍地平线X3M开发板烧录镜像的方法。

2021-06-30 -  设计经验 代理服务 技术支持 采购服务

【经验】地平线X3M开发板上电从HDMI输出不了图像的问题分析

地平线X3M开发板含有一路HDMI接口,最大支持1080P30视频输出,正常情况下HDMI默认是关闭的,但是在很多应用场景下客户需要使用HDMI,那么需要对开发板进行软件配置。本文将介绍地平线X3M开发板上电从HDMI输出不了图像的问题分析。

2022-06-17 -  设计经验 代理服务 技术支持 采购服务

【经验】如何进行地平线X3M开发板的USB驱动性能测试?

地平线X3M开发板针对常见的高速接口,比如ddr, emmc, usb, sdio等提供了相应的测试方法,这样可以保证数据高速传输的稳定性和可靠性。下面是USB驱动性能测试方法。

2023-06-26 -  设计经验 代理服务 技术支持 采购服务
展开更多

电子商城

查看更多

品牌:地平线

品类:AIOT RDK MODULE

价格:¥429.0000

现货:269

品牌:地平线

品类:摄像头模组

价格:¥450.0000

现货:6

品牌:地平线

品类:开发板底板

价格:¥500.0000

现货:0

品牌:地平线

品类:无线及智能模块模组

价格:¥499.0000

现货:0

品牌:地平线

品类:X3开发板摄像头

价格:

现货:0

品牌:地平线

品类:X3开发板摄像头

价格:

现货:0

品牌:地平线

品类:X3开发板摄像头

价格:

现货:0

品牌:地平线

品类:X3开发板摄像头

价格:

现货:0

品牌:地平线

品类:X3开发板摄像头

价格:

现货:0

品牌:地平线

品类:X3开发板摄像头

价格:

现货:0

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:RENESAS

品类:开发板

价格:¥259.1316

现货:48

品牌:RENESAS

品类:开发板

价格:¥4,100.0000

现货:20

品牌:迅为

品类:开发板

价格:¥378.2000

现货:15

品牌:RENESAS

品类:开发板

价格:¥5,157.7200

现货:8

品牌:RENESAS

品类:DEMO BOARD

价格:¥647.5800

现货:7

品牌:RENESAS

品类:开发工具

价格:¥19.9940

现货:7

品牌:RENESAS

品类:EVALUATION BOARD

价格:¥9,620.4300

现货:7

品牌:RENESAS

品类:开发板

价格:¥2,200.0000

现货:5

品牌:RENESAS

品类:开发板

价格:¥4,000.0000

现货:5

品牌:华普微电子

品类:开发板

价格:¥200.0000

现货:5

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

工控触摸一体机定制

提供7~27寸工控机定制,支持嵌⼊式/ 壁挂式 /桌⾯式/悬挂式等安装方式,采用纯平⾯板IP65防尘防⽔等级,莫⽒7级硬度触摸屏,兼容多种操作系统:组态软件/安卓/XP/win7/8/10/Linux等,支持主板、接⼝、外观、⽀架、刷卡器、⾝份证阅读器、LOGO、⻨克⻛、系统、电池、蓝⽛、4G/5G、摄像头、GPS系统、⼆维码扫描器、指纹等特殊应⽤场景定制

最小起订量: 1台 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

平台客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面