【产品】地平线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开发板内存的介绍,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关推荐

PWM X3寄存器参考手册

August-28-2020  - 用户指南 本资料为X3 Register Reference Manual PWM部分的修订历史和寄存器定义。内容包括PWM模块的寄存器地址、访问权限、位字段、默认值和描述。主要涉及PWM模块的使能、频率设置、占空比调整、中断控制等功能。

地平线  -  REGISTER,脉宽调制,PWM,寄存器,X3

I2C X3寄存器参考手册

July-02-2020  - 用户指南 本资料为X3 Register Reference Manual,主要介绍了I2C模块的寄存器配置和使用方法。内容包括I2C模块的配置寄存器、从机地址寄存器、数据计数寄存器、控制寄存器、发送数据寄存器、接收数据寄存器、状态寄存器、超时计数寄存器、中断源挂起寄存器、中断屏蔽寄存器、中断设置屏蔽寄存器、中断取消屏蔽寄存器以及FIFO控制寄存器等。详细描述了各寄存器的位定义、访问权限、默认值和功能描述。

地平线  -  REGISTER,寄存器,X3

以太网MAC X3寄存器参考手册

September-10-2020  - 用户指南 本资料为X3以太网MAC寄存器参考手册,详细介绍了以太网MAC的寄存器配置、功能描述和操作方法。内容包括寄存器偏移、名称、访问权限、位字段、字段名称、默认值和描述。手册涵盖了MAC配置、扩展配置、包过滤、哈希表、流量控制、接收队列控制、中断状态等多个方面,为用户提供了全面的技术指导。

地平线  -  REGISTER,寄存器,X3

【经验】解析地平线开发板X3M引脚电源域如何配置以及注意事项

2022-03-16 -  设计经验 地平线X3M的引脚高电平可以1.8V或3.3V,那这个电平是怎么控制实现的呢,本文将解析地平线开发板X3M引脚电源域如何配置以及注意事项。了解了这个电源域的控制和使用,我们在设计原理图以及调试系统时,就能得心应手,做到节约器件,快速解决问题。

【经验】地平线X3M开发板支持从SD卡启动的使用方法

2022-03-05 -  设计经验 地平线X3M开发板启动方式包括很多种,常见的启动方式有emmc, sd卡,usb等,板子系统默认是从emmc启动,由于uboot源码默认没有对SD卡的支持,所以需要修改以支持从SD卡启动。

【经验】解析地平线开发板X3M引脚复用配置方法

2022-03-02 -  设计经验 地平线X3M开发时需要把X3M的默认引脚功能为BIFSD_DATA4设置为GPIO功能,本文以此引脚为例讲解开发板X3M引脚复用配置方法。

【经验】开发板X3M空板通过uart+fastboot来烧录系统的过程

2022-02-18 -  设计经验 地平线X3M新做的板子,贴完片,只能通过串口烧录固件,固件可以通过网络或者USB传输,本文记录开发板X3M空板通过uart+fastboot来烧录系统的过程。

【经验】地平线开发板X3M用Sunrise camera sample实现新sensor的CAM UVC功能过程解析

2022-01-19 -  设计经验 地平线开发板X3M的资料包中有2种sample程序,之前在AI Solution sample基础上修改后运行了f37的UVC功能,本文将记录地平线开发板X3M用Sunrise camera sample实现一款新sensor的CAM UVC功能。

【经验】地平线X3M开发板使用UART方式烧录镜像文件的步骤

2022-01-18 -  设计经验 地平线X3M开发板镜像升级一般采用网络的方式,当X3 SDB开发板变砖或者空片时,则需要通过UART升级方法进行修复,使用UART烧录时间会比较长,在烧录过程中需要保持耐心。本文是在window 10平台上烧录镜像的详细步骤。

【经验】地平线sunrise_camera在X3M SDB开发板上详细使用步骤

2022-01-07 -  设计经验 地平线sunrise_camera目前支持的多种场景可在Web端在线切换,无需重启应用。用户可以通过Web端、VLC拉流、HDMI输出、USB输出等多种方式预览图像效果。此外,通过Web端“场景设置”页面,还可以配置各场景使用的sensor、码率、算法模型等参数。

展开更多

评论

   |   

提交评论

全部评论(0

暂无评论

电子商城

查看更多

品牌:D-Robotics

品类:AIOT RDK MODULE

代理店

价格:¥429.0000

现货:187

品牌:D-Robotics

品类:开发板套件

代理店

价格:¥1,319.0000

现货:30

品牌:D-Robotics

品类:开发板套件

代理店

价格:¥1,319.0000

现货:25

品牌:D-Robotics

品类:摄像头单目模组

代理店

价格:¥249.0000

现货:10

品牌:D-Robotics

品类:摄像头模组

代理店

价格:¥450.0000

现货:6

品牌:D-Robotics

品类:摄像头单目模组

代理店

价格:¥199.0000

品牌:D-Robotics

品类:开发板套件

代理店

价格:¥1,299.0000

品牌:D-Robotics

品类:开发板套件

代理店

价格:¥1,299.0000

品牌:D-Robotics

品类:开发板底板

代理店

价格:¥500.0000

品牌:D-Robotics

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

代理店

价格:¥499.0000

品牌:D-Robotics

品类:AIOT RDK MODULE

代理店

价格:

现货:

品牌:D-Robotics

品类:开发板套件

代理店

价格:

现货:

品牌:D-Robotics

品类:开发板套件

代理店

价格:

现货:

品牌:D-Robotics

品类:摄像头单目模组

代理店

价格:

现货:

品牌:D-Robotics

品类:摄像头模组

代理店

价格:

现货:

品牌:D-Robotics

品类:摄像头单目模组

代理店

价格:

品牌:D-Robotics

品类:开发板套件

代理店

价格:

品牌:D-Robotics

品类:开发板套件

代理店

价格:

品牌:D-Robotics

品类:开发板底板

代理店

价格:

品牌:D-Robotics

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

代理店

价格:

服务市场

查看更多

HDI板PCB加工

励知提供一阶至任意层互联全系列HDI板定制加工,核心工艺包括3mil/3mil精细线路、4mil激光微孔及1:1盲孔,支持化学沉金、OSP、金手指等十余种表面处理与多种阻焊颜色选择。

提交需求>

高频微波印制电路板PCB打样定制

具备制造 1-20 层高精度阻抗、多层盲埋、多层混压、高TG、铜基及陶瓷基 PCB 线路板等特种电路板工艺制作能力。

提交需求>

现货市场

查看更多

品牌:RENESAS

品类:开发板

价格:¥259.1316

现货:48

品牌:RENESAS

品类:开发板

价格:¥4,100.0000

现货:20

品牌:RENESAS

品类:开发板

价格:¥11,870.9400

现货:8

品牌:RENESAS

品类:DEMO BOARD

价格:¥1,490.4700

现货:7

品牌:RENESAS

品类:开发工具

价格:¥99.9700

现货:7

品牌:RENESAS

品类:EVALUATION BOARD

价格:¥23,249.3600

现货:7

品牌:Crocus Technology

品类:开发板

价格:¥685.2038

现货:5

品牌:Crocus Technology

品类:开发板

价格:¥913.6050

现货:5

品牌:RENESAS

品类:开发板

价格:¥2,200.0000

现货:5

品牌:华普微电子

品类:开发板

价格:¥200.0000

现货:5

品牌:RENESAS

品类:开发板

价格:

现货:

品牌:RENESAS

品类:开发板

价格:

现货:

品牌:RENESAS

品类:开发板

价格:

现货:

品牌:RENESAS

品类:DEMO BOARD

价格:

现货:

品牌:RENESAS

品类:开发工具

价格:

现货:

品牌:RENESAS

品类:EVALUATION BOARD

价格:

现货:

品牌:Crocus Technology

品类:开发板

价格:

现货:

品牌:Crocus Technology

品类:开发板

价格:

现货:

品牌:RENESAS

品类:开发板

价格:

现货:

品牌:华普微电子

品类:开发板

价格:

现货:

查看更多

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

查看更多

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

查看更多

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

查看更多

授权代理品牌:电子材料

查看更多

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

查看更多

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

查看更多

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

查看更多

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

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

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

收藏
收藏当前页面