乐鱼体育app-百度嵌入式AI解决方案EdgeBoard之内存驱动设计介绍

日期:2021-05-25 00:59:02 | 人气: 74421

乐鱼体育app-百度嵌入式AI解决方案EdgeBoard之内存驱动设计介绍 本文摘要:1.情况解读因为FPGA不具有可编程控制器和性能卓越计算出来的特性,根据FPGA硬件配置的AI计算出来加速,因此以广泛地应用于到人工智能算法应急处置行业。

1.情况解读因为FPGA不具有可编程控制器和性能卓越计算出来的特性,根据FPGA硬件配置的AI计算出来加速,因此以广泛地应用于到人工智能算法应急处置行业。在其中具有象征性的布署方法之一便是用于FPGA和CPU人组包括异构计算系统软件,并在CPU上配置Linux电脑操作系统,经营AI悬疑小说模块架构及图片视频应急处置等各种各样业务流程。

在其中,怎样商议CPU和FPGA的计算出来关联,沦落这套对映异构系统软件的重要,而这些核心技术则是由驱动系统软件来顺利完成的。商议CPU和FPGA这对对映异构弟兄的计算出来关联,能够有很多方式,依据各有不同的应用于情景不容易有非常大的转变。一般在尾端两侧,全部系统软件的应用于比较单一效率高,较较少充分考虑所发及虚幻世界的情况。

乐鱼官方网站

依据这一状况,EdgeBoard应时而生。2.EdgeBoard解读EdgeBoard是百度搜索打造的根据FPGA的内嵌式AI解决方法及根据此计划方案搭建的系列产品硬件配置。做为端侧的解决方法,没在PL两侧为FPGA设计方案专用型的内存,只是应用了PS和PL两侧同用DDR内存的构造。

因而,对这类对映异构系统软件的CPU和FPGA的商议就落在了内存的管理工作,这就是驱动系统软件中有关内存管理方法的分系统。3.全篇论述文中将关键解读EdgeBoard中有关CPU和FPGA内存驱动设计方案的核心技术。下图是总体EdgeBoard的手机软件框图,在其中内存驱动位于核心一部分。

下边将从内存的分派、出狱、多次重复使用等层面来逐渐解读。4.内存的特性和FPGA的内存市场的需求在FPGA处理芯片PS两侧,CPU用于多级别内存来访谈DDR,在Linux电脑操作系统中,用于内存同构网页页面(根据页表来管理方法),而对DDR的物理学持续性没回绝,他们被同构到虚幻世界到数的详细地址室内空间中。而在PL两侧的FPGA一般仍未用于一切内存体制,他们在计算出来上都是必需访谈DDR。

乐鱼体育app

每一次存取数据全是阅读或写成一个到数的内存室内空间,并且回绝这片内存的延续详细地址要偏位在一个特殊的详细地址偏移处(偏移0x10)。一次计算出来中的数次载入都回绝访谈的DDR是完全一致到数的。对于CPU和FPGA那样的内存市场的需求,大家设计方案Linux驱动内存的分系统时,就需要充份充分考虑:1)cache的危害;2)FPGA用于内存的物理学持续性;3)传输给FPGA用于的内存块要合乎偏移回绝(segmentalignments)。

5.保有系统软件内存对于所述市场的需求,大家应用分隔物理学内存的方案设计,从总体系统软件中保有在其中的一部分内存,让Linux只用于另一部分内存。这些被保有的内存,分配权归内存驱动,驱动从保有一部分中分派的内存块在Linux系统软件中合FPGA系统软件上都能够访谈。在这段时间,分派时要保证 物理学到数和延续偏移特点,使其能合乎FPGA的市场的需求。

在EdgeBoard实践活动中,大家应用的是Xilinx的ZynqMP系列产品的FPGA处理芯片,用于PetaLinux专用工具链来c语言编译器Linux核心,并应用DeviceTree中的reserved-memory连接点来搭建内存的保有。比如,系统软件整体2GB内存,保有2GBB给FPGA,交给2GBB给Linux电脑操作系统,DeviceTree中涉及到连接点的原著就这样的:下边就从驱动设计方案搭建的各个领域解读。

6.复位内存的內部同构FPGA整体机器设备驱动是应用标识符机器设备platformdriver的方式来编写的:在Device的probe环节,对驱动内所保有的内存块做好内存同构(memremap),并用于有效的算法设计,存留好每个主要参数,以供此前用于。比如:mem_start、mem_end、base_addr等构造组员的界定以下:7.内存的分派有关内存的分派,应用了mmap启用的方法:在FPGA机器设备的复位期内,复位标识符机器设备时传输了file_operations构造自变量,这一构造自变量的mmap指针初始化为大家的内存分派涵数。

内存分派中,大家用于了核心获得的bitmap算法设计,来管理方法大家保有的内存地区——bitmap位数组中的每一位意味着着16k的一个内存块,此外还用于完全一致长短的数组来管理方法内存被分派的顾客owner(即file表针)、内存分派的块的总数等信息。此外,在分派的内存相匹配的vma(VMMMemoryArea)中,大家还备案了自身的独享数据信息privatedata来纪录相匹配内存的适度信息:如相匹配内存块的系统总线物理地址范畴和同构详细地址、bitmap位数组的数据库索引等,作为详细地址转换;再作如相匹配内存块的一些finger信息,用于标志保有内存块。另外,大家也为VMA的vm_ops备案了close涵数,用做为对该块内存的多次重复使用做好准备。有关内存分派的编码量较小,这儿也不一一列举了。

8.内存的多次重复使用已分派回来的内存块都务必多次重复使用,在其中有二种最没有象征性的状况,一种是客户release一块内存的应急处置,另一种则是客户再开机器设备时对未release的内存块的清理多次重复使用。当客户release一个内存块时,相匹配的vma的close涵数不容易被全自动执行。因此,大家备案这一涵数做为内存出狱处理函数:涵数搭建中,最先检验privatedata避免 处理错误,随后彻底恢复相匹配的bitmap位数组中的位信息,清理owner和块总数信息,促使这方面保有内存又回到了待分派的情况。

乐鱼体育app

当客户再开机器设备时,不容易启用机器设备备案的release涵数。因而,在机器设备的release涵数中,大家迭代更新owner数组来清理owner与机器设备的file表针完全一致的内存块,为此超出大批量多次重复使用的目地。9.内存的详细地址转换内存的详细地址转换,是顺利完成系统总线物理地址和虚幻世界逻辑性详细地址的双重转换,为内存cache的flush/invalidate、及其交给FPGA之际要进行的应急处置等获得烘托。

系统软件也根据2个IOCTL向客户层裸露这两个转换作业者。详细地址转换作业者中,最先找寻相匹配的vma,随后计算出来出有offset,最终查验vma相匹配的标志是否保有的内存块——如果是,就用于大家vma存留的private_data中的信息及offset顺利完成涉及到的计算出来。10.内存内存的flush和invalidate作业者在CPU以及对映异构弟兄FPGA中间,用于DDR内存来传输数据时,务必用于flush或invalidate来防止相匹配内存的危害。

最先,大家的驱动编码是经营在CPU上边的,当对于一片内存的应急处置从CPU移往到FPGA以前,务必对这片内存的cache执行flush作业者,促使内存cache中的全部修改都加载到DDR,随后FPGA刚开始对它的应急处置工作中。次之,当对于一片内存的应急处置从FPGA移往到CPU以前,务必对这片内存的cache执行invalidate作业者,促使cache內容违宪,下一次CPU必需载入即从DDR中来积极load进而创出cache。

那样,CPU就可以非常好地跟FPGA相处了。针对flush和invalidate作业者,则是CPU管理体系涉及到的。

EdgeBoard用于的是A53v8(相匹配于AArch64执行集),cacheflush和invalidate的编码以下:11.内存驱动中其他功能分析及充分考虑上原文中谈及的保有内存地区中每一个保有内存块的尺寸是16K,只不过是这儿是能够峻工多规格型号的,那样客户在用于上就不容易更加便捷,主要用途也不会更为多。可是有关内存管理方法一部分就务必更强的数据信息来进行管理方法了。此外,我们可以根据建立一些IOCTL的方法为各有不同过程中间的内存共享做出一些比较慢、简洁的计划方案,这也是我们可以在内存驱动中设计方案充分考虑的。


本文关键词:乐鱼体育app,乐鱼体育,乐鱼官方网站

本文来源:乐鱼体育app-www.7zne.com

产品中心