一种提升系统访存性能的方法技术方案

技术编号:33071984 阅读:14 留言:0更新日期:2022-04-15 10:06
一种提升系统访存性能的方法,包括以下步骤:根据外设内存颗粒的BANK数目,创建链表;对获取的物理页进行解析,得到BANK信息;根据物理页所属的BANK信息,将其链接到不同BANK链表;为CPU上性能敏感用户空间进程配置内存管理单元;为需要访问内存的IP模块配置内存管理单元。本发明专利技术的提升系统访存性能的方法,利用DDR多BANK特性,在现有SOC硬件基础上,进一步提升了系统各IP模块的访存性能。提升了系统各IP模块的访存性能。提升了系统各IP模块的访存性能。

【技术实现步骤摘要】
一种提升系统访存性能的方法


[0001]本专利技术涉及车载片上系统芯片
,尤其涉及一种提升系统访存性能的方法。

技术介绍

[0002]随着行业需求的增加,以汽车电子为例,电子座舱、辅助驾驶、自动驾驶等日益复杂的应用驱动下对片上系统芯片(SOC)上各个模块性能提出了更高的要求,而内存作为程序运行的载体对系统性能的影响尤其明显。
[0003]在SOC上,包括CPU、GPU、AI、DISPLAY、ISP等在内的各个IP 模块都会频繁访问内存,如果访存性能低下,可能造成各类系统性能问题进而影响应用用户体验。
[0004]现有技术中,对于访存性能的提升目前SOC 侧主要有以下三种方式:1)增加系统SOC 访存带宽,如访存位宽从32bit 增加到64bit;2)增加IP模块访存能力,如DISPLAY 模块增加outstanding能力,可以连续发N个读命令,这期间如果读数据没有返回,则需要等待读数据返回,如果有读数据返回,则返回了几个,那么仍然可以接着发几个。也就是说,“在路上
”ꢀ
的读命令(或者读数据)最多可以是N;3)内存控制器支持访存地址的不同编码方式,如CS_ROW_BANK_COL、CS_BANK_ROW_COL。
[0005]上述方式1)和方式2)提升访存性能的技术手段主要是在SOC侧,需要修改SOC系统设计,一旦芯片流片后,无法进一步提升性能。方式3)在申请连续内存并访问时能优化性能,但对于CPU用户态程序访问内存,无进行有效优化,因为CPU用户态程序访问的是虚拟地址,而从应用程序角度看到的连续虚拟地址,实际可能并不是连续的物理地址,因而不能够通过内存控制器的编码方式进行优化。同样地,其它具有访问外部内存能力的IP模块使用的也是虚拟地址,也需要通过设备内存管理单元(IOMMU)把物理地址转换为虚拟地址,因而也不能通过内存控制器的编码方式来有效提升访存性能。

技术实现思路

[0006]为了解决现有技术存在的不足,本专利技术的目的在于提供一种提升系统访存性能的方法,通过将申请的内存物理页按照所属BANK信息链入不同BANK链表,每个链表内的页位于同一BANK,进一步提升系统各IP 模块的访存性能。
[0007]为实现上述目的,本专利技术提供的提升系统访存性能的方法,包括以下步骤:根据外设内存颗粒的BANK数目,创建链表;对获取的物理页进行解析,得到BANK信息;根据物理页所属的BANK信息,将其链接到不同BANK链表;为CPU上性能敏感用户空间进程配置内存管理单元(MMU);为需要访问内存的IP 模块配置设备内存管理单元(IOMMU)。
[0008]进一步地,所述根据外设内存颗粒的BANK数,创建链表的步骤,还包括,从DDR配置信息中获取当前系统连接的外设内存颗粒的BANK数目;根据所述外设内存颗粒的BANK数目,创建带表头的单链表;每个单链表为一组位于相同BANK内部的物理页的集合。
[0009]进一步地,所述对获取的物理页进行解析,得到BANK信息的步骤,还包括,IP模块在初始化时,从内存管理系统获取物理页并进行解析,得到BANK信息。
[0010]进一步地,所述BANK信息,包括,物理页地址信息以及编码方式。
[0011]进一步地,所述根据物理页所属的BANK信息,将其链接到不同BANK链表的步骤,还包括,从内存管理系统申请一段内存;对申请到的物理内存,根据内存控制器的编码方式获取每个物理页地址对应的BANK信息;对所述物理页按BANK进行分类,将属于同一BANK的不同物理页放入同一链表。
[0012]进一步地,所述为CPU配置内存管理单元的步骤,还包括,当用户空间应用程序申请内存时,从不同BANK链表提取物理页映射到连续虚拟地址空间,使用户空间应用程序发起连续地址访问时能分布到外部内存颗粒的不同BANK中。
[0013]更进一步地,所述为需要访问内存的IP 模块配置内存管理单元的步骤,还包括,对SOC上除CPU外的需要访问内存的IP模块配置内存管理单元,使得每一个IP模块发起的连续地址访问分布到外部内存颗粒的不同BANK中。
[0014]为实现上述目的,本专利技术还提供一种片上系统芯片,包括上文所述的提升系统访存性能的方法,提升系统各IP模块的访存性能。
[0015]为实现上述目的,本专利技术还提供一种电子设备,包括存储器和处理器,所述处理器为上述片上系统芯片;所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上文所述的提升系统访存性能的方法的步骤。
[0016]为实现上述目的,本专利技术还提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上文所述的提升系统访存性能的方法的步骤。
[0017]本专利技术的提升系统访存性能的方法,与现有技术相比较具有以下有益效果:利用DDR多BANK特性,在现有SOC硬件基础上,进一步提升了系统各IP模块的访存性能。
[0018]本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。
附图说明
[0019]附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,并与本专利技术的实施例一起,用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1为根据本专利技术的提升系统访存性能的方法流程图;图2为根据本专利技术的多BANK页表初始化示意图;图3为根据本专利技术的多BANK页表映射示意图;图4为根据本专利技术的链表信息示意图。
具体实施方式
[0020]以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。
[0021]实施例1图1为根据本专利技术的提升系统访存性能的方法流程图,下面将参考图1,对本专利技术的提升系统访存性能的方法进行详细描述。
[0022]首先,在步骤101,根据外设内存(DDR)颗粒的BANK数,创建链表。
[0023]本专利技术实施例中,当用户态应用程序申请内存需要配置内存管理单元(MMU)时以及各个有访存需求的IP模块初始化需要申请内存配置设备内存管理单元(IOMMU)时,对申请到的内存进行分类,按物理页所属BANK的不同,将其链入不同的BANK链表。如图2所示,SOC上的具体物理设备包括GPU、AI、DISPLAY、ISP等在内的N个IP 模块,创建的BANK链表有BANK0链表、BANK1链表

BANKn链表。
[0024]具体创建链表的过程如下:1)从DDR配置信息中获取当前系统连接的外设DDR颗粒的BANK数目;2)根据DDR颗粒的BANK数目创建带表头的单链表:例如,对于有8个BANK的DDR颗粒,此步骤完成后,建立的链表格式如下:在步骤102,根据物理页所属的BANK信息,将物理页链接到不同BANK链表。
[0025]本专利技术实施例中,IP 模块在初始化时,从内存管理系统获取物理页,并进行解析,得到物理页对应的BANK本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种提升系统访存性能的方法,包括以下步骤:根据外设内存颗粒的BANK数目,创建链表;对获取的物理页进行解析,得到BANK信息;根据物理页所属的BANK信息,将其链接到不同BANK链表;为CPU上性能敏感用户空间进程配置内存管理单元;为需要访问内存的IP 模块配置内存管理单元。2.根据权利要求1所述的提升系统访存性能的方法,其特征在于,所述根据外设内存颗粒的BANK数目,创建链表的步骤,还包括,从DDR配置信息中获取当前系统连接的外设内存颗粒的BANK数目;根据所述外设内存颗粒的BANK数目,创建带表头的单链表;每个单链表为一组位于相同BANK内部的物理页的集合。3.根据权利要求1所述的提升系统访存性能的方法,其特征在于,所述对获取的物理页进行解析,得到BANK信息的步骤,还包括,IP模块在初始化时,从内存管理系统获取物理页并进行解析,得到BANK信息。4.根据权利要求1所述的提升系统访存性能的方法,其特征在于,所述BANK信息,包括,物理页地址信息以及编码方式。5.根据权利要求1所述的提升系统访存性能的方法,其特征在于,所述根据物理页所属的BANK信息,将其链接到不同BANK链表的步骤,还包括,从内存管理系统申请一段内存;对申请到的物理内存,根据内存控制器的编码方式获取每个物理页地址对应的BANK信息;对所述物理页按BANK进行分...

【专利技术属性】
技术研发人员:冯涛张强仇雨菁
申请(专利权)人:南京芯驰半导体科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1