CN118113135A - 数据处理方法、系统、装置、电子设备及可读存储介质 - Google Patents

数据处理方法、系统、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN118113135A
CN118113135A CN202410267868.1A CN202410267868A CN118113135A CN 118113135 A CN118113135 A CN 118113135A CN 202410267868 A CN202410267868 A CN 202410267868A CN 118113135 A CN118113135 A CN 118113135A
Authority
CN
China
Prior art keywords
data
buffer
slc
identifier
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410267868.1A
Other languages
English (en)
Inventor
罗志强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vivo Mobile Communication Co Ltd
Original Assignee
Vivo Mobile Communication Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vivo Mobile Communication Co Ltd filed Critical Vivo Mobile Communication Co Ltd
Priority to CN202410267868.1A priority Critical patent/CN118113135A/zh
Publication of CN118113135A publication Critical patent/CN118113135A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请公开了一种数据处理方法、系统、装置、电子设备及可读存储介质,属于通信技术领域。该方法包括:通过系统级缓存SLC接收来自第一单元的第一请求,该第一请求用于请求在所述SLC中存储数据缓冲区中的数据;在通过SLC检测到上述第一请求中携带第一缓冲区标识的情况下,采用第一缓冲区标识对应的存储策略,将第一数据缓冲区中的第一数据存储至SLC,上述第一数据缓冲区标识用于指示第一数据缓冲区。

Description

数据处理方法、系统、装置、电子设备及可读存储介质
技术领域
本申请属于通信技术领域,具体涉及一种数据处理方法、系统、装置、电子设备及可读存储介质。
背景技术
在移动终端片上系统(System-on-Chip,SOC)中,系统级缓存(System LevelCache,SLC)起到了节省系统带宽,降低系统功耗的作用。
在相关技术中,SLC采用数据替换的机制来存储数据,具体地,固定容量的SLC在被占用一部分后,主控及固件会判断使用环境,动态的释放SLC缓存,使得SLC中已存入的数据会被后续新存入的数据替换,由于目前并不存在对SLC的数据存储进行管理的方法,如此,在一些场景下,在需要再次使用之前存储的数据时,需要重新从内存读取该数据,导致通过访问数据时的系统带宽占用较大,从而导致系统功耗较大。
发明内容
本申请实施例的目的是提供一种数据处理方法、系统、装置、电子设备及可读存储介质,能够降低访问数据时占用的系统带宽,进而节省系统功耗。
第一方面,本申请实施例提供了一种数据处理方法,该方法包括:通过系统级缓存SLC接收来自第一单元的第一请求,所述第一请求用于请求在所述SLC中存储数据缓冲区中的数据;在通过所述SLC检测到所述第一请求中携带第一缓冲区标识的情况下,采用所述第一缓冲区标识对应的存储策略,将第一数据缓冲区中的第一数据存储至SLC,所述第一数据缓冲区标识用于指示所述第一数据缓冲区。
第二方面,本申请实施例提供了一种数据处理系统,该系统包括:SLC和第一单元,其中:所述SLC,用于接收来自所述第一单元的第一请求,所述第一请求用于请求在所述SLC中存储数据缓冲区中的数据;所述SLC,还用于在检测到所述第一请求中携带第一缓冲区标识的情况下,采用所述第一缓冲区标识对应的存储策略,将第一数据缓冲区中的第一数据存储至SLC,所述第一缓冲区标识用于指示所述第一数据缓冲区。
第三方面,本申请实施例提供了一种数据处理装置,该装置包括:获取模块和控制模块,其中:所述获取模块,用于通过系统级缓存SLC接收来自第一单元的第一请求,所述第一请求用于请求在所述SLC中存储数据缓冲区中的数据;所述控制模块,用于在通过所述SLC检测到所述第一请求中携带第一缓冲区标识的情况下,采用所述第一缓冲区标识对应的存储策略,将第一数据缓冲区中的第一数据存储至SLC,所述第一数据缓冲区标识用于指示所述第一数据缓冲区。
第四方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第六方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
第七方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。
在本申请实施例中,通过SLC接收来自第一单元的第一请求,该第一请求用于请求在SLC中存储数据缓冲区中的数据,在通过SLC检测到第一请求中携带第一缓冲区标识的情况下,采用第一缓冲区标识对应的存储策略,将第一数据缓冲区中的第一数据存储至SLC,该第一数据缓冲区标识用于指示第一数据缓冲区。该方法中,通过数据缓冲区标识对缓冲区进行标记以区分不同的数据缓冲区,使得在访问缓冲区中的数据时能够根据数据缓冲区标识需要访问的数据所属的数据缓冲区,并通过数据缓冲区标识所对应的存储策略对数据缓冲区中的数据进行存储,从而能够针对不同数据缓冲区中的数据按照相应的存储策略进行存储,能够满足不同数据缓冲区中数据的存储需求,从而能够高效地从SLC中读取数据,从而降低访问数据时占用的系统带宽,进而节省系统功耗。
附图说明
图1A为本申请实施例提供的赛车游戏场景下的模型数据的示意图之一;
图1B为本申请实施例提供的赛车游戏场景下的模型数据的示意图之二;
图2为本申请实施例提供的CPU、GPU基于SLC访问数据缓存的系统架构图;
图3为本申请实施例提供的数据处理方法的流程示意图之一;
图4为本申请实施例提供的图像渲染场景下的人物对象的示意图;
图5为本申请实施例提供的Arm64的页表属性的PBHA属性的示意图;
图6A为本申请实施例提供的CPU、GPU到SLC的总线访问流程的示意图;
图6B为本申请实施例提供的物理地址空间的特殊地址段的示意图;
图6C为本申请实施例提供的SLC对地址空间解析时物理地址与缓冲区标识的对应关系的示意图;
图7为本申请实施例提供的数据处理方法的流程示意图之二;
图8为本申请实施例提供的数据处理装置的结构示意图;
图9为本申请实施例提供的电子设备的结构示意图;
图10为本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
本申请的说明书和权利要求书中的术语“至少一个(项)”、“至少之一”等指其包含对象中的任意一个、任意两个或两个以上的组合。例如,a、b、c中的至少一个(项),可以表示:“a”、“b”、“c”、“a和b”、“a和c”、“b和c”以及“a、b和c”,其中a,b,c可以是单个,也可以是多个。同理,“至少两个(项)”是指两个或两个以上,其表达的含义与“至少一个(项)”类似。
以下对本申请提供的数据处理方法所涉及的名词或术语进行解释说明。
CPU(Central Processing Unit,中央处理器,):电脑中的主要计算器件。CPU的主要任务是管理电脑的计算和处理。CPU可以理解为电脑“大脑”,它可以执行所有的命令和计算任务。
GPU(Graphics Processing Unit,图形处理器),专门设计用于处理图形和视频数据的处理器件。GPU主要用于处理图形和视频数据以及游戏中的渲染。GPU可以理解为电脑的“绘画工具”。
虽然CPU和GPU都是处理器件,但两者的工作原理不同。CPU主要使用单个处理单元来处理各种计算任务,比如浏览网页、运行应用程序和管理文件。而GPU则使用成千上万个小型处理单元来处理大量的计算任务,如绘制图形、逐帧渲染动画和处理视频编码等。
SLC:即系统级缓存,系统级缓存区别于处理器内部的缓存,能够提高整个系统访问外部存储的速度。在移动终端SOC,系统级缓存起到了节省系统带宽,降低系统功耗的作用
数据缓冲区:即缓冲区Buffer,即,将数据放在一块连续的内存空间中,连续的存储空间能够节省传递数据到CPU的时间。
本申请实施例提供的图形渲染方法可以应用于游戏场景中。
在大型游戏场景中,CPU、GPU的访问带宽是非常巨大,一般可以达到5至8GB/S。在每个游戏帧的渲染中,CPU、GPU的带宽访问量可以达到85MB至136MB,这个带宽量远大于SLC的容量(6MB-32MB)。SLC的替换策略大多都采用LRU算法,也即是CPU、GPU最常最近访问的数据才更有可能存储在SLC。由于CPU、GPU的数据访问量巨大,CPU、GPU在上一帧访问的游戏数据大概率会被新的数据替换掉,并没有存储在SLC中。
在实际的游戏场景中,CPU、GPU存在多个游戏帧中都重复访问的游戏数据。如图1A所示,在赛车游戏中,游戏主角”赛车”是在多个游戏帧都会被渲染,赛车的模型数据会被CPU、GPU重复访问的。如图1B所示,赛车的模型数据包含车轮、驾驶员、汽车轮廓等。
经过统计分析,在一个赛车游戏中,“主角”赛车的模型数据的访问量高达1.077GB/S,表1为赛车游戏中CPU、GPU重复访问的模型数据统计。
表1
如表1所示,赛车游戏中赛车的模型数据,即驾驶员、汽车轮廓和车轮会被多次访问,如果每一帧游戏画面中都出现赛车的话,赛车的模型数据是会被CPU、GPU重复访问,但由于当前SLC数据替换的策略,游戏中需要被多次被渲染的模型数据可能无法在SLC中读取到,这部分数据总是会从双倍数据速率(Double Data Rate,DDR)内存读入,从DDR内存频繁访问数据时会占用较大的系统带宽,从而导致系统功耗较大。
为了解决现有技术中的上述问题,本申请实施例提供一种数据处理方法,SLC可以从CPU或GPU(即第一单元)发出的总线请求(即第一请求)的地址和其他附带信息中识别出CPU或GPU当前的访问是哪个数据缓存。以下结合附图和应用场景下本申请实施例提供的数据处理方法进行说明。
图2为本申请实施例提供的CPU、GPU基于SLC访问数据缓存的系统架构图。如图2所示,SLC从CPU的总线请求中识别出CPU写入的数据属于Geometry Buffer,SLC根据上层软件针对Geometry Buffer的存储策略,将CPU写入Geometry Buffer的数据存储在SLC。SLC根据上层应用的对Geometry Buffer的使用特征,保证Geometry Buffer的数据不被其他数据替换。
需要说明的是,Geometry Buffer中的数据在后续多个游戏帧渲染中都重复使用,需长时间驻留SLC。
随后,SLC识别GPU发出的总线请求时读取Geometry Buffer的数据,SLC命中GPU的总线请求并将Geometry Buffer的数据返回给GPU。在后续的游戏渲染,SLC识别出GPU写出GBuffer数据,SLC根据上层应用对GBuffer的使用特征,将GBuffer数据存储在SLC,在GPU读入GBuffer数据后,SLC将GBuffer数据优先替换出SLC。
需要说明的是,GPU先写出GBuffer,而后读入GBuffer,数据仅使用一次,后续不再使用。
同样的,在GPU渲染完当前游戏帧后写出Frame Buffer数据,SLC根据FrameBuffer的使用特征(Frame Buffer由GPU写出,Display读入,数据仅使用一次),存储GPU写入的Frame Buffer数据,在Display读入相关数据后,优先将Frame Buffer替换出SLC。进一步地,DRAM可以从SLC中读取数据。
本申请实施例提供的数据处理方法,在赛车游戏场景下,通过SLC接收来自第一单元(例如GPU)的第一请求,该请求用于请求在SLC中存储数据缓冲区中的数据,在通过SLC检测到该第一请求中携带指示Geometry Buffer(即第一数据缓冲区)的缓冲区标识的情况下,采用该缓冲区标识对应的存储策略,将Geometry Buffer中的Geometry数据(即赛车的模型数据)按照第一缓冲区标识对应的存储策略存储至SLC,例如,第一缓冲区标识对应的存储策略为:将数据写入SLC,并将写入的数据长期驻留在SLC直到上层应用释放该数据,则将Geometry数据写入SLC,并使得Geometry数据长期驻留在SLC直到上层应用释放该Geometry数据。如此,使得赛车游戏中赛车的模型数据,即驾驶员、汽车轮廓和车轮数据在被多次访问时,需要被多次被渲染的模型数据一直可以从SLC中读取到,而不需要从DDR内存读入,综上,本申请提出的数据处理方法可以根据CPU、GPU对数据缓存的访问特点,调整SLC的存储策略,能够进一步节省游戏场景中的系统带宽,从而降低系统功耗。
需要说明的是,本申请实施例提供的数据处理方法不仅适用于游戏场景,且试用于手机影像、UI等场景。
本申请实施例提供的数据处理方法,执行主体可以为电子设备,也可以为该电子设备中能够实现该数据处理方法的功能模块和实体模块中的至少之一,具体的可以根据实际使用需求确定,本发明实施例不作限定。以下实施例以数据处理装置执行数据处理方法为例,对本申请提供的数据处理方法进行说明。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的数据处理方法进行详细地说明。
图3为本申请实施例提供的数据处理方法的流程示意图,如图3所示,该数据处理方法可以包括以下步骤S201和步骤S202:
步骤S201:数据处理装置通过系统级缓存SLC接收来自第一单元的第一请求。
其中,上述第一请求用于请求在上述SLC中存储数据缓冲区中的数据。
在本申请的一些实施例中,上述第一单元包括但不限于以下任一项:CPU、GPU、显示单元(即Display)、神经网络处理器(Neural Network Processing Unit,NPU)、媒体子系统(Media Subsystem)、Modem、数字信号处理(Digital Signal Process,DSP)模块、无线保真(Wireless Fidelity,WIFI)、图像信号处理器(Image Signal Processor,ISP)等电子设备SOC的硬件模块。
在本申请的一些实施例中,上述第一请求可以为总线请求。
在本申请的一些实施例中,上述请求在SLC中存储的数据缓冲区中的数据可以包括:几何数据(即Geometry数据)、GPU对几何数据进行几何处理后得到的中间数据、GPU对上述中间数据进行光照处理后得到的帧数据(即Frame数据)。示例性地,上述Geometry数据可以为游戏数据(例如游戏场景中的模型数据)、地理信息系统中的地图数据等任意图形界面中的几何形状数据。
需要说明的是,Geometry数据类型是一种在计算机编程中常用的数据类型,用于表示二维或三维空间中的几何形状。它可以表示各种形状,如点、线、多边形、圆等等。Geometry数据类型通常用于地理信息系统、计算机辅助设计、游戏开发等领域。
需要说明的是,在图形应用中,GPU普遍使用延时着色法(即Deferred Rendering)渲染复杂的游戏场景。Deferred Rendering包含两个处理阶段(即Pass),几何处理阶段(即,Geometry Pass)和光照处理阶段(即,Lighting Pass)。如图4所示,在图像渲染场景下,在渲染包括人物对象的游戏画面的场景下,在第一个几何处理阶段中,先渲染场景一次,之后获取人物对象的各种几何信息,并储存在一系列G-Buffer的纹理中;第二个光照处理阶段中,使用G-Buffer的纹理数据,对人物对象做更复杂的光照计算。
需要说明的是,上述数据可以包括但不限于以上列举的数据,即,上述数据可以为任意需要在SLC中存储的数据。
示例性地,在图像渲染场景下,数据处理装置通过CPU向SLC发送总线请求,该总线请求用于请求在SLC中存储Geometry数据;或者,数据处理装置通过GPU向SLC发送总线请求,该总线请求用于请求在SLC中存储经过Geometry Pass得到的中间数据或者经过Lighting Pass得到的帧数据。
步骤S202:数据处理装置在通过SLC检测到第一请求中携带第一缓冲区标识的情况下,采用第一缓冲区标识对应的存储策略,将第一数据缓冲区中的第一数据存储至SLC。
其中,上述第一数据缓冲区标识用于指示上述第一数据缓冲区。
在本申请的一些实施例中,上述第一缓冲区标识可以为缓冲区的硬件标识(即硬件ID)。示例性地,上述第一缓冲区标识可以称为HW-BID。
需要说明的是,本申请实施例中涉及的缓冲区标识可以为数据缓冲区的物理地址。
在本申请的一些实施例中,数据处理装置可以通过处理器(GPU或者CPU)创建至少一个数据缓冲区,并为每个数据缓冲区分配硬件HW-BID。
在本申请的一些实施例中,上述第一缓冲区标识对应的存储策略包括以下任一项:
在上述SLC中存储上述第一数据,并将上述第一数据长期驻留至SLC直到上层应用程序主动释放;
在上述SLC中存储上述第一数据,并在上述第一数据被读取K次后释放上述第一数据,K为正整数;
不在SLC中存储上述第一数据。
需要说明的是,数据处理装置在SLC中缓存的数据被读取一定次数后,从SLC中释放该数据,此处数据被读取的次数可以为一次或者多次,具体可以根据数据的访问特征确定。例如,由于GBuffer中缓存的中间数据通常只会被读取一次,因此可以设置对于GBuffer中的中间数据在被读取一次后释放。
示例性地,以第一数据为赛车游戏场景中的赛车模型数据为例,第一数据的存储策略可以为在上述SLC中存储上述赛车模型数据,并将赛车模型数据长期驻留至SLC直到上层应用程序主动释放,数据处理装置将赛车模型数据从SLC中删除。如此,对于赛车游戏场景中需要在多个游戏帧渲染中重复使用的赛车模型数据,可以将其长时间存储在SLC中,从而在后续可以在游戏帧渲染时从SLC中快速获取赛车模型数据。
示例性地,以第一数据为赛车游戏场景GPU对赛车模型数据几何处理后得到的中间数据为例,第一数据的存储策略可以为在SLC中存储上述中间数据,并在上述中间数据被读取一次后释放上述中间数据。如此,对于赛车游戏场景中仅需要使用一次的中间数据,可以将其暂时存储在SLC中,并在该中间数据被访问即使用一次后,从SLC中删除该中间数据,从而可以节省SLC的存储空间。
需要说明的是,本申请实施例中,对于一些不需要快速访问的数据,数据处理装置可以不将其存储在SLC中,以节省SLC的存储空间。
在本申请的一些实施例中,数据处理装置可以为不同的数据缓冲区分配缓冲区标识来标记数据缓冲区,并建立数据缓冲区的缓冲区标识与数据缓冲区中的数据在SLC中的存储策略的关联关系,然后在通过总线请求来访问数据缓冲区时,在总线请求中携带需要访问的数据缓冲区的缓冲区标识,使得可以根据数据缓冲区的缓冲区标识关联的存储策略,对数据缓冲区中的数据在SLC中存储,实现对不同数据缓冲区中的数据进行差异性地存储和管理。
需要说明的是,访问缓冲区可以包括将数据缓冲区中的数据存储至存储空间或者从存储空间中读取数据缓冲区中的数据。
本申请实施例提供的数据处理方法,数据处理装置通过SLC接收来自第一单元的第一请求,该第一请求用于请求在SLC中存储数据缓冲区中的数据,在通过SLC检测到第一请求中携带第一缓冲区标识的情况下,采用第一缓冲区标识对应的存储策略,将第一数据缓冲区中的第一数据存储至SLC,该第一数据缓冲区标识用于指示第一数据缓冲区。通过数据缓冲区标识对缓冲区进行标记以区分不同的数据缓冲区,使得在访问缓冲区中的数据时能够根据数据缓冲区标识需要访问的数据所属的数据缓冲区,并通过数据缓冲区标识所对应的存储策略对数据缓冲区中的数据进行存储,从而能够针对不同数据缓冲区中的数据按照相应的存储策略进行存储,能够满足不同数据缓冲区中数据的存储需求,从而能够高效地从SLC中读取数据,从而降低访问数据时占用的系统带宽,进而节省系统功耗。
在本申请的一些实施例中,上述步骤S202可以通过以下步骤S202a实现。
步骤S202a:在通过SLC检测到上述第一请求中携带第一缓冲区标识的情况下,根据上述第一缓冲区标识,从第一表格中查找上述第一缓冲区标识对应的存储策略,并采用第一缓冲区标识对应的存储策略将上述第一数据存储至上述SLC。
其中,上述第一表格中包括至少一个缓冲区标识和每个缓冲区标识对应的存储策略,一个缓冲区标识指示的数据缓冲区用于存储一种类型的数据,不同类型的数据对应不同的存储策略,每个存储策略为上层应用程序根据每种类型的数据的访问特征确定。
在本申请的一些实施例中,数据的访问特征可以包括数据的访问容量、访问次数、访问带宽等。示例性地,赛车游戏中,对赛车的模型数据中的“驾驶员”数据的访问次数为5次,对赛车的模型数据中的“汽车轮廓”数据的访问次数为6次,以及对“车轮”数据的访问次数为7次。可以看出,在赛车游戏赛车的模型数据会被多次访问。
在本申请的一些实施例中,数据处理装置可以通过上层应用程序对各种类型的数据的访问特征进行统计,得到每种类型的数据的访问特征。
在本申请的一些实施例中,第一表格中的一个缓冲区标识指示一个数据缓冲区,一个数据缓冲区中可以存储一种类型的数据。
示例性地,以第一表格中包括3个缓冲区标识为例,3个缓冲区标识分别指示Geometry Buffer、GBuffer和Frame Buffer三个数据缓冲区,其中,Geometry Buffer中存储的为几何数据,GBuffer中存储的为对几何类型的数据经过几何处理后得到的中间数据,Frame Buffer中存储的为对中间数据经过光照处理后得到的帧数据,上述三种数据为不同类型的数据。
在本申请的一些实施例中,该第一表格维护在SLC硬件,上层应用程序通过寄存器接口配置,完成表格的设置。
需要说明的是,本申请实施例中的上层应用程序也可以称为上层软件。
在本申请的一些实施例中,上述步骤S201之前,数据处理装置通过上层应用程序获取N个类型的数据的访问特征,并通过上层应用程序根据N个类型的数据的访问特征,确定N个类型的数据对应的存储策略,一个类型的数据对应一种存储策略,然后,通过SLC确定上述N个类型的数据对应的N个缓冲区的ID,并根据上述N个缓冲区的ID和上述N个类型的数据对应的存储策略,生成第一表格,其中,N为大于或等于1的整数。
以下结合表2对本申请实施例提供的第一表格中的相关字段进行解释说明。
其中,SW-BID,HW-BID分别表示对应的Data Buffer的软件和硬件ID。
Enable字段表示该Buffer的存储策略在SLC是否使能。如未使能,SLC则不会缓存该Buffer的数据,并主动将该Buffer的数据清除出SLC。
Current Size字段表示该Buffer当前在SLC暂用的存储空间。
Buffer Size字段表示该Buffer实际的容量。
Release字段表示该Buffer是否处于主动释放的流程中。
Passive Flush字段表示该Buffer被Release时是否是被动清除,即由SLC根据替换策略将Buffer的Cache Line剔除SLC。
Write Policy字段表示该Buffer的写存储策略,0表示不缓存,1表示缓存。
Read Policy字段表示该Buffer的读存储策略,0表示不缓存,S表示该Buffer的Cache Line长期驻留SLC至主动释放,其他数字表示该Buffer的Cache line在读命中对应次数后,主动释放。如1表示读命中一次后主动释放。
以下结合上述表2和上述实施例对步骤S202a的过程进行解释说明。
示例性地,以第一单元为GPU为例,数据处理装置通过SLC接收来自GPU的总线请求,该总线请求用于请求在SLC中存储数据缓冲区中的几何数据,该总线请求中携带HW-BID(即第一缓冲区标识)为1,数据处理装置通过SLC从表格中获取到取值为1的HW-BID对应的存储策略为:在SLC中暂用的存储空间为1024字节,数据缓冲区的容量为2048字节,该数据缓冲区被主动释放时被动清除,对该数据缓冲区为写存储策略,该数据缓冲区中的数据在写入SLC后长期驻留在SLC直至主动释放,在获取到该存储策略后,数据处理装置采用该存储策略在SLC中存储并管理缓冲区中的几何数据。
在本申请实施例中,数据处理装置可以根据CPU、GPU对数据缓存的访问特点,调整SLC的存储策略,进一步节省游戏场景中的系统带宽,从而节省系统功耗。
在本申请的一些实施例中,上述步骤S201之前,本申请实施例提供的数据处理方法可以包括以下步骤S203和步骤S204:
步骤S203:数据处理装置通过第一处理单元创建M个第二数据缓冲区,并为M个第二数据缓冲区分别分配M个缓冲区标识。
其中,上述M个第二数据缓冲区包括上述第一数据缓冲区,M为大于或等于1的整数。
步骤S204:数据处理装置通过第一处理单元在M个页表项的基于页面的硬件属性(Page Based Hardware Attributes,PBHA)位域中配置上述M个缓冲区标识。
其中,一个上述页表项的PBHA位域配置一个上述缓冲区标识,上述M个页表项为上述M个第二数据缓冲区对应的物理页中的页表项。
在本申请的一些实施例中,上述第一处理单元可以为CPU或者GPU。
在本申请的一些实施例中,上述M个第二数据缓冲区可以包括Geometry Buffer、GBuffer、Frame Buffer等。
需要说明的是,第二数据缓冲区包括不限于上述列举的数据缓冲区,该第二数据缓冲区具体可以根据实际需求设置,本申请实施例对此不作限定。
在本申请的一些实施例中,针对每个第二数据缓冲区的创建过程,第一处理单元创建该第二数据缓冲区,并为该第二数据缓冲区申请软件标识(即,SW-BID),并调用SLC驱动(Driver),将SW-BID映射到HW-BID(即硬件标识),然后使能HW-BID,并配置HW-BID的存储策略,例如,存储策略为写缓存,长期驻留SLC至上层软件主动释放。
示例性地,GPU Driver创建Geometry Buffer,申请软件标识SW-BID为101,可以表示为SW-BID(101),接着,调用SLC Driver,将SW-BID映射到HW-BID,该HW-BID为1,可以表示为HW-BID(1),接着,使能HW-BID(1),并配置HW-BID(1)的策略为写缓存,长期驻留SLC至上层软件主动释放。
再示例性地,GPU Driver创建G-Buffer,申请软件标识SW-BID为102,调用SLCDriver,将S-DSID映射到HW-BID(2),使能HW-BID(2),并配置HW-BID(2)的存储策略为写缓存,读一次后释放。
又示例性地,GPU Driver创建Frame Buffer,申请软件SW-BID(111),调用SLCDriver,将SW-BID映射到HW-BID(3),使能HW-BID(3),并配置HW-BID(1)的策略为写缓存,读一次后释放。
如此,数据处理装置通过上层软件配置SLC针对各个Buffer的存储策略。这些策略保证CPU、GPU多次重复访问的Buffer可以驻留在SLC,单次读写的Buffer可以被及时在SLC内清除。这些SLC的管理措施进一步节省进行数据访问时的系统带宽,从而节省系统功耗。
在一些可能的实现方式中,数据处理装置可以在ARM的PTE中的PBHA位域中配置缓冲区标识,并通过PBHA位域来传递该缓冲区标识,SLC可以通过PBHA位域来识别缓冲区标识,并根据缓冲区标识识别出来自CPU、GPU或者其他单元的请求所属的数据缓冲区缓冲区。
在本申请的一些实施例中,针对每个第二数据缓冲区,在创建该第二数据缓冲区并确定该第二数据缓冲区的HW-BID(即缓冲区标识)后,数据处理装置通过GPU或者CPU为该第二数据缓冲区申请系统虚拟地址空间,并调用内核接口获取相应的物理页,然后初始化CPU/GPU页表,并配置PBHA属性配置为该第二数据缓冲区的HW-BID。
示例性地,在创建Geometry Buffer并确定Geometry Buffer的HW-BID为1的情况下,GPU Driver为Geometry Buffer申请系统虚拟地址空间,调用内核接口获取相应的物理页,初始化CPU/GPU页表,并配置PBHA属性配置为HW-BID(1)。
在本申请实施例中,数据处理装置利用Arm64页表属性(Arm64 Page TableEntry)中的上层属性(Upper attributes)的PBHA位域来传递CPU、GPU数据访问的缓冲区标识信息。如图5所示,Arm64的页表属性的PBHA允许软件在页表中设置最多4bit自定义属性,该属性通过总线访问在内存系统传播。如图6A所示,当CPU、GPU要访问内存的数据Buffer时,使用的虚拟地址需要经过MMU模块转换成物理地址。MMU模块在地址转换时读取页表的属性获取PBHA属性,并将PBHA作为访问Buffer ID传递到SLC。
在本申请实施例中,数据处理装置通过上层软件创建数据Buffer时,申请内存空间并初始化页表。上层软件为该数据Buffer申请Buffer标识,并将Buffer ID写入页表属性的PBHA位域,实现通过PBHA属性来传递Buffer标识,从而无需占用额外的资源来传递Buffer标识,节省系统带宽资源。
在另一些可能的实现方式中,数据处理装置可以将缓冲区标识分配在一段特殊空间,SLC可以对该特殊空间进行解析以获取缓冲区标识,并根据缓冲区标识识别出来自CPU、GPU或者其他单元的请求所属的数据缓冲区。
在本申请的一些实施例中,上述特殊空间可以为分配给需要缓存在SLC的数据缓存的特殊地址段。示例性地,上述特殊空间可以为专门划出的一段特殊空间,该特殊空间可以为一段连续的地址空间,也就是说,对于该段特殊空间的使用,可能要求数据缓存需要使用连续的地址空间。
在本申请的一些实施例中,针对每个第二数据缓冲区,在创建该第二数据缓冲区并确定该第二数据缓冲区的HW-BID后,数据处理装置通过GPU或者CPU为该第二数据缓冲区申请系统虚拟地址空间,并调用内核接口获取相应的物理页,然后在物理地址空间中的特殊地址段分配第二数据缓冲区的HW-BID。
示例性地,在创建Geometry Buffer并确定Geometry Buffer的HW-BID为1的情况下,GPU Driver为Geometry Buffer申请系统虚拟地址空间,调用内核接口获取相应的物理页,系统可以通过将Geometry Buffer的物理地址分配在一段特殊空间(如0x6000_0000-0x6F00_0000)。图6B为本申请实施例提供的物理地址空间中特殊地址段的示意图,如图6B所示,该物理地址空间的地址段范围为0x00_0000-0000至0xFF_FFFF-FFFF,其中,特殊地址段的地址范围为0x00_6000-0000至0x00_6FFF-FFFF,SLC通过解析特殊地址段得到Geometry Buffer的缓冲区标识,并根据缓冲区标识识别出CPU、GPU发出的请求(例如第一请求)属于Geometry Buffer。
具体地,SLC通过对特殊地址段的物理地址的译码解析,识别出该物理地址是否属于SLC需要特殊处理以及数据缓存的缓冲区标识。例如,一个物理地址为48bit,最大物理地址空间为256G的系统,其中0x00_6000_0000至0x00_6FFF_FFFF地址段设置为特殊地址段,用于分配给需要缓存在SLC的数据缓存。那么,如图6C所示,SLC对于物理地址的解析如下:Physical_Address[39:28]解析为SLC标识(SLC_identification),在该示例中为0x006。Physical_Address[27:24]解析为缓冲区标识(Data Buffer ID),Physical_Address[27:24]包括4bit,也就是说,Data Buffer ID最多有16个。SLC通过比较物理地址的39至28bit是否等于0x006来识别是否需要对该请求,进一步解析物理地址的27至24bit,得到数据缓存的ID,通过查找上述表2,得到该数据缓存在SLC的管理策略。
需要说明的是,Physical_Address[39:28]表示物理地址的39至28bit(位)。
在本申请实施例中,SLC可以通过对特殊地址段进行解析,得到缓冲区标识,并根据缓冲区标识从表格中查找在SLC中缓存数据的策略,从而便捷高效地对数据进行缓存和管理。并且,该方式通过需要将物理地址空间划分一块特殊的地址段,实施成本较低。
在本申请的一些实施例中,本申请实施例提供的数据处理方法可以包括以下步骤S205和步骤S206:
步骤S205:数据处理装置通过SLC接收来自第二单元的第二请求。
其中,上述第二请求用于请求从SLC中读取数据缓冲区中的数据,上述第二请求中携带第一缓冲区标识,该第一缓冲区标识用于指示第一数据缓冲区。
步骤S205:数据处理装置通过SLC根据第一缓冲区标识在SLC中读取第一数据缓冲区中的第一数据,并将该第一数据发送至第二单元。
其中,上述第二单元包括但不限于以下任一项:CPU、GPU、显示单元、NPU、媒体子系统、Modem、DSP模块、WIFI模块、ISP。
在本申请的一些实施例中,上述第一数据缓冲区可以包括但不限于GeometryBuffer、GBuffer、Frame Buffer中的至少一项。
在本申请的一些实施例中,上述第一数据可以包括但不限于以下任意一项:Geometry Buffer中存储的几何数据,GBuffer中存储的对几何类型的数据经过几何处理后得到的中间数据,Frame Buffer中存储的对中间数据经过光照处理后得到的帧数据。
示例性地,以第二单元为GPU为例,在游戏场景中,数据处理装置通过GPU以HW-BID(1)读取Geometry数据,数据处理装置通过SLC检测到携带HW-BID(1)的读请求(即第二请求),查询SLC标签(Tag),并将Geometry数据提供给GPU。
再示例性地,以第二单元为GPU为例,在游戏场景中,GPU Driver启动LightingRender,GPU以HW-BID(2)读取G-Buffer数据。SLC检测到HW-BID(2)的请求,查询SLC Tag,则将数据提供给GPU,并将数据主动释放,不再存储在SLC。这里的释放可以是SLC主动清除G-Buffer对应的缓存线(Cache Line),或者是SLC将G-Buffer对应的Cache Line标注为优先替换的Cache Line,被动地将数据从SLC清除。
又示例性地,以第二单元为显示单元为例,在游戏场景中,显示单元读取FrameBuffer,SLC检测到HW-BID(3)的请求,查询SLC Tag,则将数据提供给Display,并将数据主动释放,不再存储在SLC。
在本申请实施例中,在通过CPU、GPU或者显示单元向SLC发送的读请求中携带缓冲区标识,使得SLC能够识别CPU或者GPU需要访问的数据所属的数据缓冲区,从而能够通过SLC在数据缓冲区快速查询到需要访问的数据并将数据返回给CPU、GPU或者显示单元,从而降低数据访问时的系统带宽,进而节省系统功耗。
以下结合场景通过具体的实施例对本申请实施例提供的数据处理方法进行说明。
本申请实施例提供的数据处理方法中,以CPU、GPU、Display三个硬件模块在游戏场景的数据处理过程为例,说明使用PTE中利用PBHA位域或物理地址来标识数据缓存从而让SLC针对不用的数据缓存应用不用的管理策略的例子。但本发明的应用场景不局限于CPU、GPU、Display的数据处理,包括但不限于NPU、Media System、WIFI、DSP、Modern等模块的数据处理。
示例性地,以GPU完成延时着色法为例,如图7所示,本申请实施例提供的数据处理方法可以包括以下步骤:
步骤1:GPU Driver创建Geometry Buffer,申请Buffer ID(SW-BID:101),调用SLCDriver,将SW-BID映射到HW-BID(1),使能HW-BID(1),并配置HW-BID(1)的策略为写缓存,长期驻留SLC至上层软件主动释放。
需要说明的是,在这个步骤中,上层软件申请的Software Buffer ID需要通过SLC映射为Hardware Buffer ID。这样做的目的是将软件申请Buffer ID与硬件的ID资源解耦。因为PBHA的位域比较有效,一般是2-4bit,所以硬件的ID资源只有4-16个,而上层软件有可能需要成百上千的Buffer,硬件ID资源是不能满足这种需求的。所以将软件的Buffer ID和硬件的Buffer ID解耦,可以方便上层软件管理和使用Buffer ID。上层软件申请了SW-BID,只有在真正使用的时候,才会调用SLC Driver向SLC硬件申请HW-BID,然后在SLC硬件完成SW-BID和HW-BID的映射。
步骤2:GPU Driver为Geometry Buffer申请系统虚拟地址空间,调用内核接口获取相应的物理页,初始化CPU/GPU页表,并配置PBHA属性配置为HW-BID(1)。
示例性地,上述步骤2可以替换为以下步骤2a:GPU Driver为Geometry Buffer申请系统虚拟地址空间,调用内核接口获取相应的物理页,系统可以通过将Geometry Buffer的物理地址分配HW-BID(1)在一段特殊空间如(0x6000_0000-0x6F00_0000)。
步骤3:GPU Driver创建G-Buffer,申请软件SW-BID(102),调用SLC Driver,将S-DSID映射到HW-BID(2),使能HW-BID(2),并配置HW-BID(2)的存储策略为写缓存,读一次后释放。
步骤4:GPU Driver为G-Buffer申请系统虚拟地址空间,调用内核接口获取相应的物理页,初始化CPU/GPU页表,并配置PBHA属性配置为HW-BID(2)。
示例性地,上述步骤4可以替换为以下步骤4a:GPU Driver为GBuffer申请系统虚拟地址空间,调用内核接口获取相应的物理页,系统可以通过将GBuffer的物理地址分配HW-BID(2)在一段特殊空间。
步骤5:GPU Driver启动Geometry Render Pass,CPU处理Geometry数据,并将处理后的Geometry数据以HW-BID(1)写出。SLC检测到HW-BID(1)的写请求,并将数据缓存在SLC。
步骤6:GPU以HW-BID(1)读取Geometry数据。SLC检测到HW-BID(1)的读请求,查询SLC Tag,并将数据提供给GPU。
步骤7:GPU完成Geometry Render Pass,将G-Buffer以HW-BID(2)写出。SLC检测到HW-BID(2)的写请求,并将数据缓存在SLC。
步骤8:此步骤取决GPU Driver根据自身是否要主动释放Geometry Buffer而实施。如果GPU Driver决定主动释放Geometry Bufer,则调用SLC Driver,配置SLC将HW-BID(1)的数据释放。SLC将所有HW-BID(1)的Cache Line Invalidate。完成HW-BID(1)的CacheLine Invalidate操作后,GPU Driver调用SLC Driver,Disable HW-BID(1),并释放Geometry Buffer对应的SW-BID和HW-BID。
步骤9:GPU Driver创建Frame Buffer,申请软件SW-BID(111),调用SLC Driver,将SW-BID映射到HW-BID(3),使能HW-BID(3),并配置HW-BID(1)的策略为写缓存,读一次后释放。
步骤10:GPU Driver为Frame Buffer申请系统虚拟地址空间,调用内核接口获取相应的物理页,初始化GPU页表,并配置PBHA属性配置为HW-BID(3)。
示例性地,上述步骤10可以替换为以下步骤10a:GPU Driver为Frame Buffer申请系统虚拟地址空间,调用内核接口获取相应的物理页,系统可以通过将Frame Buffer的物理地址分配HW-BID(3)在一段特殊空间。
步骤11:GPU Driver启动Lighting Render,GPU以HW-BID(2)读取G-Buffer数据。SLC检测到HW-BID(2)的请求,查询SLC Tag,则将数据提供给GPU,并将数据主动释放,不再存储在SLC。这里的释放可以是SLC主动清除G-Buffer对应的Cache Line,或者是SLC将G-Buffer对应的Cache Line标注为优先替换的Cache Line,被动地将数据从SLC清除。
步骤12:GPU完成Lighting Render Pass,将Frame Buffer以HW-BID(3)写出,SLC检测到HW-BID(3)的写请求,并将数据缓存在SLC。
步骤13:Display模块读取Frame Buffer,SLC检测到HW-BID(3)的请求,查询SLCTag,则将数据提供给Display,并将数据主动释放,不再存储在SLC。
本申请实施例提供的数据处理方法,利用Arm64 Page Table Entry的PBHA位域来内存系统重传递数据Buffer的ID,使得SLC识别上层应用的Buffer。根据CPU、GPU对数据缓存的访问特点,上层软件配置SLC针对各个Buffer的存储策略。这些策略保证CPU、GPU多次重复访问的Buffer可以驻留在SLC,单次读写的Buffer可以被及时在SLC内清除。这些SLC的管理措施进一步节省游戏场景中的系统带宽,从而节省系统功耗。
本申请实施例提供一种数据处理系统,该系统包括:SLC和第一单元,其中:上述SLC,用于接收来自上述第一单元的第一请求,上述第一请求用于请求在上述SLC中存储数据缓冲区中的数据;上述SLC,还用于在检测到上述第一请求中携带第一缓冲区标识的情况下,采用上述第一缓冲区标识对应的存储策略,将第一数据缓冲区中的第一数据存储至SLC,上述第一缓冲区标识用于指示上述第一数据缓冲区。
在本申请的一些实施例中,上述第一单元包括以下任一项:CPU、GPU、显示单元、NPU、媒体子系统、Modem、DSP模块、WIFI模块、ISP。
在本申请的一些实施例中,上述SLC,具体用于在检测到上述第一请求中携带上述第一缓冲区标识的情况下,根据上述第一缓冲区标识,从第一表格中查找上述第一缓冲区标识对应的存储策略,并采用上述第一缓冲区标识对应的存储策略将上述第一数据存储至上述SLC;其中,上述第一表格中包括至少一个缓冲区标识和每个上述缓冲区标识对应的存储策略,一个缓冲区标识指示的数据缓冲区用于存储一种类型的数据,不同类型的数据对应不同的存储策略,每个存储策略为上层应用程序根据每种类型的数据的访问特征确定。
在本申请的一些实施例中,上述第一缓冲区标识对应的存储策略包括以下任一项:
在上述SLC中存储上述第一数据,并将上述第一数据长期驻留至SLC直到上层应用程序主动释放;
在上述SLC中存储上述第一数据,并在上述第一数据被读取K次后释放上述第一数据,K为正整数;
不在SLC中存储上述第一数据。
在本申请的一些实施例中,上述数据处理系统还包括:第一处理单元;
上述第一处理单元,用于创建M个第二数据缓冲区,并为上述M个第二数据缓冲区分别分配M个缓冲区标识;上述M个第二数据缓冲区包括上述第一数据缓冲区,M为大于或等于1的整数;
上述第一处理单元,还用于在M个页表项的PBHA位域中配置上述M个缓冲区标识,一个上述页表项的PBHA位域配置一个上述缓冲区标识,上述M个页表项为上述M个第二数据缓冲区对应的物理页中的页表项。
在本申请的一些实施例中,上述系统还包括:第二单元;
上述SLC,还用于接收来自上述第二单元的第二请求,上述第二请求用于请求从上述SLC中读取数据缓冲区中的数据,上述第二请求中携带第一缓冲区标识,上述第一缓冲区标识用于指示第一数据缓冲区;
上述SLC,还用于根据上述第一缓冲区标识在上述SLC中读取上述第一数据缓冲区中的第一数据,并将上述第一数据发送至上述第二单元;
其中,上述第二单元包括以下任一项:CPU、GPU、显示单元、NPU、媒体子系统、Modem、DSP模块、WIFI模块、ISP。
需要说明的是,对该实施例的解释说明具体可以参见上述方法侧实施例的相关解释说明,此处不再赘述。
上述各个方法实施例,或者各个方法实施例中的各种可能的实现方式可以单独执行,或者,在不存在矛盾的前提下,也可以相互结合执行,具体可以根据实际使用需求确定,本申请实施例对此不做限制。
本申请实施例提供的数据处理方法,执行主体可以为数据处理装置。本申请实施例中以数据处理装置执行数据处理方法为例,说明本申请实施例提供的数据处理装置。
图8为本申请实施例提供的数据处理装置的结构示意图,如图8所示,该数据处理装置800可以包括:获取模块801和控制模块802,其中:上述获取模块801,用于通过系统级缓存SLC接收来自第一单元的第一请求,上述第一请求用于请求在上述SLC中存储数据缓冲区中的数据;上述控制模块802,用于在通过上述SLC检测到上述第一请求中携带第一缓冲区标识的情况下,采用上述第一缓冲区标识对应的存储策略,将第一数据缓冲区中的第一数据存储至SLC,上述第一数据缓冲区标识用于指示上述第一数据缓冲区。
在本申请的一些实施例中,上述第一单元为以下任一项:中央处理器CPU、图形处理器GPU、显示单元、NPU、媒体子系统、Modem、DSP模块、WIFI模块、ISP。
在本申请的一些实施例中,上述控制模块,具体用于:在通过上述SLC检测到上述第一请求中携带第一缓冲区标识的情况下,根据上述第一缓冲区标识,从第一表格中查找上述第一缓冲区标识对应的存储策略,并采用上述第一缓冲区标识对应的存储策略将上述第一数据存储至上述SLC;
其中,上述第一表格中包括至少一个缓冲区标识和每个上述缓冲区标识对应的存储策略,一个缓冲区标识指示的数据缓冲区用于存储一种类型的数据,不同类型的数据对应不同的存储策略,每个存储策略为上层应用程序根据每种类型的数据的访问特征确定。
在本申请的一些实施例中,上述第一缓冲区标识对应的存储策略包括以下任一项:
在上述SLC中存储上述第一数据,并将上述第一数据长期驻留至SLC直到上层应用程序主动释放上述第一数据;
在上述SLC中存储上述第一数据,并在上述第一数据被读取K次后释放上述第一数据,K为正整数;
不在SLC中存储上述第一数据。
在本申请的一些实施例中,上述控制模块,还用于:通过第一处理单元创建M个第二数据缓冲区,并为上述M个第二数据缓冲区分别分配M个缓冲区标识,上述M个第二数据缓冲区包括上述第一数据缓冲区,M为大于或等于1的整数;通过上述第一处理单元在M个页表项的基于页面的硬件属性PBHA位域中配置上述M个缓冲区标识,一个上述页表项的PBHA位域配置一个上述缓冲区标识,上述M个页表项为上述M个第二数据缓冲区对应的物理页中的页表项。
在本申请的一些实施例中,上述获取模块,还用于通过上述SLC接收来自第二单元的第二请求,上述第二请求用于请求从上述SLC中读取数据缓冲区中的数据,上述第二请求中携带第一缓冲区标识,上述第一缓冲区标识用于指示第一数据缓冲区;上述控制模块,还用于通过上述SLC根据上述第一缓冲区标识在上述SLC中读取上述第一数据缓冲区中的第一数据,并将上述第一数据发送至上述第二单元;
其中,上述第二单元包括以下任一项:CPU、GPU、显示单元、NPU、媒体子系统、Modem、DSP模块、WIFI模块、ISP。
本申请实施例中的数据处理装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personalcomputer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的数据处理装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的数据处理装置能够实现图1至图7的方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选地,如图9所示,本申请实施例还提供一种电子设备900,包括处理器901和存储器902,存储器902上存储有可在所述处理器901上运行的程序或指令,该程序或指令被处理器901执行时实现上述数据处理方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图10为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备100包括但不限于:射频单元101、网络模块102、音频输出单元103、输入单元104、传感器105、显示单元106、用户输入单元107、接口单元108、存储器109、以及处理器110等部件。
本领域技术人员可以理解,电子设备100还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器110逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图10中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,上述处理器110,用于通过系统级缓存SLC接收来自第一单元的第一请求,上述第一请求用于请求在上述SLC中存储数据缓冲区中的数据;上述处理器110,还用于在通过上述SLC检测到上述第一请求中携带第一缓冲区标识的情况下,采用上述第一缓冲区标识对应的存储策略,将第一数据缓冲区中的第一数据存储至SLC,上述第一数据缓冲区标识用于指示上述第一数据缓冲区。
在本申请的一些实施例中,上述第一单元为以下任一项:CPU、GPU、显示单元、NPU、媒体子系统、Modem、DSP模块、WIFI模块、ISP。
在本申请的一些实施例中,上述处理器110,具体用于:在通过上述SLC检测到上述第一请求中携带第一缓冲区标识的情况下,根据上述第一缓冲区标识,从第一表格中查找上述第一缓冲区标识对应的存储策略,并采用上述第一缓冲区标识对应的存储策略将上述第一数据存储至上述SLC;
其中,上述第一表格中包括至少一个缓冲区标识和每个上述缓冲区标识对应的存储策略,一个缓冲区标识指示的数据缓冲区用于存储一种类型的数据,不同类型的数据对应不同的存储策略,每个存储策略为上层应用程序根据每种类型的数据的访问特征确定。
在本申请的一些实施例中,上述第一缓冲区标识对应的存储策略包括以下任一项:
在上述SLC中存储上述第一数据,并将上述第一数据长期驻留至SLC直到上层应用程序主动释放上述第一数据;
在上述SLC中存储上述第一数据,并在上述第一数据被读取K次后释放上述第一数据,K为正整数;
不在SLC中存储上述第一数据。
在本申请的一些实施例中,上述处理器110,还用于:通过第一处理单元创建M个第二数据缓冲区,并为上述M个第二数据缓冲区分别分配M个缓冲区标识,上述M个第二数据缓冲区包括上述第一数据缓冲区,M为大于或等于1的整数;通过上述第一处理单元在M个页表项的基于页面的硬件属性PBHA位域中配置上述M个缓冲区标识,一个上述页表项的PBHA位域配置一个上述缓冲区标识,上述M个页表项为上述M个第二数据缓冲区对应的物理页中的页表项。
在本申请的一些实施例中,上述处理器110,还用于通过上述SLC接收来自第二单元的第二请求,上述第二请求用于请求从上述SLC中读取数据缓冲区中的数据,上述第二请求中携带第一缓冲区标识,上述第一缓冲区标识用于指示第一数据缓冲区;上述处理器110,还用于通过上述SLC根据上述第一缓冲区标识在上述SLC中读取上述第一数据缓冲区中的第一数据,并将上述上述第一数据发送至上述第二单元;
其中,上述第二单元包括以下任一项:CPU、GPU、显示单元、NPU、媒体子系统、Modem、DSP模块、WIFI模块、ISP。
本申请实施例提供的电子设备,电子设备通过SLC接收来自第一单元的第一请求,该第一请求用于请求在SLC中存储数据缓冲区中的数据,在通过SLC检测到第一请求中携带第一缓冲区标识的情况下,采用第一缓冲区标识对应的存储策略,将第一数据缓冲区中的第一数据存储至SLC,该第一数据缓冲区标识用于指示第一数据缓冲区。该方法中,电子设备通过数据缓冲区标识对缓冲区进行标记以区分不同的数据缓冲区,使得在访问缓冲区中的数据时能够根据数据缓冲区标识需要访问的数据所属的数据缓冲区,并通过数据缓冲区标识所对应的存储策略对数据缓冲区中的数据进行存储,从而能够针对不同数据缓冲区中的数据按照相应的存储策略进行存储,能够满足不同数据缓冲区中数据的存储需求,从而能够高效地从SLC中读取数据,从而降低访问数据时占用的系统带宽,进而节省系统功耗。
应理解的是,本申请实施例中,输入单元104可以包括图形处理器(GraphicsProcessing Unit,GPU)1041和麦克风1042,图形处理器1041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元106可包括显示面板1061,可以采用液晶显示单元、有机发光二极管等形式来配置显示面板1061。用户输入单元107包括触控面板1071以及其他输入设备1072中的至少一种。触控面板1071,也称为触摸屏。触控面板1071可包括触摸检测装置和触摸控制器两个部分。其他输入设备1072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器109可用于存储软件程序以及各种数据。存储器109可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器109可以包括易失性存储器或非易失性存储器,或者,存储器109可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器109包括但不限于这些和任意其它适合类型的存储器。
处理器110可包括一个或多个处理单元;可选的,处理器110集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器110中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (21)

1.一种数据处理方法,其特征在于,所述方法包括:
通过系统级缓存SLC接收来自第一单元的第一请求,所述第一请求用于请求在所述SLC中存储数据缓冲区中的数据;
在通过所述SLC检测到所述第一请求中携带第一缓冲区标识的情况下,采用所述第一缓冲区标识对应的存储策略,将第一数据缓冲区中的第一数据存储至SLC,所述第一数据缓冲区标识用于指示所述第一数据缓冲区。
2.根据权利要求1所述的方法,其特征在于,所述第一单元包括以下任一项:中央处理器CPU、图形处理器GPU、显示单元、神经网络处理器NPU、媒体子系统、调制解调器Modem、数字信号处理DSP模块、无线保真WIFI模块、图像信号处理器ISP。
3.根据权利要求1所述的方法,其特征在于,所述在通过所述SLC检测到所述第一请求中携带第一缓冲区标识的情况下,采用所述第一缓冲区标识对应的存储策略将所述第一数据存储至SLC,包括:
在通过所述SLC检测到所述第一请求中携带第一缓冲区标识的情况下,根据所述第一缓冲区标识,从第一表格中查找所述第一缓冲区标识对应的存储策略,并采用所述第一缓冲区标识对应的存储策略将所述第一数据存储至所述SLC;
其中,所述第一表格中包括至少一个缓冲区标识和每个所述缓冲区标识对应的存储策略,一个缓冲区标识指示的数据缓冲区用于存储一种类型的数据,不同类型的数据对应不同的存储策略,每个存储策略为上层应用程序根据每种类型的数据的访问特征确定。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一缓冲区标识对应的存储策略包括以下任一项:
在所述SLC中存储所述第一数据,并将所述第一数据长期驻留至SLC直到上层应用程序主动释放所述第一数据;
在所述SLC中存储所述第一数据,并在所述第一数据被读取K次后释放所述第一数据,K为正整数;
不在SLC中存储所述第一数据。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述通过SLC接收来自第一单元的第一请求之前,所述方法还包括:
通过第一处理单元创建M个第二数据缓冲区,并为所述M个第二数据缓冲区分别分配M个缓冲区标识,所述M个第二数据缓冲区包括所述第一数据缓冲区,M为大于或等于1的整数;
通过所述第一处理单元在M个页表项的PBHA位域中配置所述M个缓冲区标识,一个所述页表项的PBHA位域配置一个所述缓冲区标识,所述M个页表项为所述M个第二数据缓冲区对应的物理页中的页表项。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述SLC接收来自第二单元的第二请求,所述第二请求用于请求从所述SLC中读取数据缓冲区中的数据,所述第二请求中携带所述第一缓冲区标识;
通过所述SLC根据所述第一缓冲区标识在所述SLC中读取所述第一数据缓冲区中的所述第一数据,并将所述第一数据发送至所述第二单元;
其中,所述第二单元包括以下任一项:CPU、GPU、显示单元、NPU、媒体子系统、Modem、DSP模块、WIFI模块、ISP。
7.一种数据处理系统,其特征在于,所述系统包括:SLC和第一单元,其中:
所述SLC,用于接收来自所述第一单元的第一请求,所述第一请求用于请求在所述SLC中存储数据缓冲区中的数据;
所述SLC,还用于在检测到所述第一请求中携带第一缓冲区标识的情况下,采用所述第一缓冲区标识对应的存储策略,将第一数据缓冲区中的第一数据存储至SLC,所述第一缓冲区标识用于指示所述第一数据缓冲区。
8.根据权利要求7所述的系统,其特征在于,所述第一单元包括以下任一项:CPU、GPU、显示单元、NPU、媒体子系统、Modem、DSP模块、WIFI模块、ISP。
9.根据权利要求7所述的系统,其特征在于,所述SLC,具体用于在检测到所述第一请求中携带所述第一缓冲区标识的情况下,根据所述第一缓冲区标识,从第一表格中查找所述第一缓冲区标识对应的存储策略,并采用所述第一缓冲区标识对应的存储策略将所述第一数据存储至所述SLC;
其中,所述第一表格中包括至少一个缓冲区标识和每个所述缓冲区标识对应的存储策略,一个缓冲区标识指示的数据缓冲区用于存储一种类型的数据,不同类型的数据对应不同的存储策略,每个存储策略为上层应用程序根据每种类型的数据的访问特征确定。
10.根据权利要求7至9中任一项所述的系统,其特征在于,所述第一缓冲区标识对应的存储策略包括以下任一项:
在所述SLC中存储所述第一数据,并将所述第一数据长期驻留至SLC直到上层应用程序主动释放;
在所述SLC中存储所述第一数据,并在所述第一数据被读取K次后释放所述第一数据,K为正整数;
不在SLC中存储所述第一数据。
11.根据权利要求7至9所述的系统,其特征在于,所述数据处理系统还包括:第一处理单元;
所述第一处理单元,用于创建M个第二数据缓冲区,并为M个所述第二数据缓冲区分别分配M个缓冲区标识;所述M个第二数据缓冲区包括所述第一数据缓冲区,M为大于或等于1的整数;
所述第一处理单元,还用于在M个页表项的PBHA位域中配置所述M个缓冲区标识,一个所述页表项的PBHA位域配置一个所述缓冲区标识,所述M个页表项为所述M个第二数据缓冲区对应的物理页中的页表项。
12.根据权利要求7所述的系统,其特征在于,所述系统还包括:第二单元;
所述SLC,还用于接收来自所述第二单元的第二请求,所述第二请求用于请求从所述SLC中读取数据缓冲区中的数据,所述第二请求中携带所述第一缓冲区标识;
所述SLC,还用于根据所述第一缓冲区标识在所述SLC中读取所述第一数据缓冲区中的所述第一数据,并将所述第一数据发送至所述第二单元;
其中,所述第二单元包括以下任一项:CPU、GPU、显示单元、NPU、媒体子系统、Modem、DSP模块、WIFI模块、ISP。
13.一种数据处理装置,其特征在于,所述装置包括:获取模块和控制模块,其中:
所述获取模块,用于通过系统级缓存SLC接收来自第一单元的第一请求,所述第一请求用于请求在所述SLC中存储数据缓冲区中的数据;
所述控制模块,用于在通过所述SLC检测到所述第一请求中携带第一缓冲区标识的情况下,采用所述第一缓冲区标识对应的存储策略,将第一数据缓冲区中的第一数据存储至SLC,所述第一数据缓冲区标识用于指示所述第一数据缓冲区。
14.根据权利要求13所述的装置,其特征在于,所述第一单元为以下任一项:中央处理器CPU、图形处理器GPU、显示单元、NPU、媒体子系统、Modem、DSP模块、WIFI模块、ISP。
15.根据权利要求13或14所述的装置,其特征在于,所述控制模块,具体用于:在通过所述SLC检测到所述第一请求中携带第一缓冲区标识的情况下,根据所述第一缓冲区标识,从第一表格中查找所述第一缓冲区标识对应的存储策略,并采用所述第一缓冲区标识对应的存储策略将所述第一数据存储至所述SLC;
其中,所述第一表格中包括至少一个缓冲区标识和每个所述缓冲区标识对应的存储策略,一个缓冲区标识指示的数据缓冲区用于存储一种类型的数据,不同类型的数据对应不同的存储策略,每个存储策略为上层应用程序根据每种类型的数据的访问特征确定。
16.根据权利要求13至15中任一项所述的装置,其特征在于,所述第一缓冲区标识对应的存储策略包括以下任一项:
在所述SLC中存储所述第一数据,并将所述第一数据长期驻留至SLC直到上层应用程序主动释放所述第一数据;
在所述SLC中存储所述第一数据,并在所述第一数据被读取K次后释放所述第一数据,K为正整数;
不在SLC中存储所述第一数据。
17.根据权利要求13至15中任一项所述的装置,其特征在于,所述控制模块,还用于:
通过第一处理单元创建M个第二数据缓冲区,并为所述M个第二数据缓冲区分别分配M个缓冲区标识,所述M个第二数据缓冲区包括所述第一数据缓冲区,M为大于或等于1的整数;
通过所述第一处理单元在M个页表项的PBHA位域中配置所述M个缓冲区标识,一个所述页表项的PBHA位域配置一个所述缓冲区标识,所述M个页表项为所述M个第二数据缓冲区对应的物理页中的页表项。
18.根据权利要求13所述的装置,其特征在于,所述获取模块,还用于通过所述SLC接收来自第二单元的第二请求,所述第二请求用于请求从所述SLC中读取数据缓冲区中的数据,所述第二请求中携带所述第一缓冲区标识;
所述控制模块,还用于通过所述SLC根据所述第一缓冲区标识在所述SLC中读取所述第一数据缓冲区中的所述第一数据,并将所述第一数据发送至所述第二单元;
其中,所述第二单元包括以下任一项:CPU、GPU、显示单元、NPU、媒体子系统、Modem、DSP模块、WIFI模块、ISP。
19.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至6中任一项所述的数据处理方法的步骤。
20.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至6中任一项所述的数据处理方法的步骤。
21.一种芯片,其特征在于,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如权利要求1至6中任一项所述的数据处理方法。
CN202410267868.1A 2024-03-08 2024-03-08 数据处理方法、系统、装置、电子设备及可读存储介质 Pending CN118113135A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410267868.1A CN118113135A (zh) 2024-03-08 2024-03-08 数据处理方法、系统、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410267868.1A CN118113135A (zh) 2024-03-08 2024-03-08 数据处理方法、系统、装置、电子设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN118113135A true CN118113135A (zh) 2024-05-31

Family

ID=91216115

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410267868.1A Pending CN118113135A (zh) 2024-03-08 2024-03-08 数据处理方法、系统、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN118113135A (zh)

Similar Documents

Publication Publication Date Title
US20210374069A1 (en) Method, system, and apparatus for page sizing extension
US10204058B2 (en) GPU shared virtual memory working set management
US9286101B2 (en) Free page hinting
US7793070B2 (en) Processing system implementing multiple page size memory organization with multiple translation lookaside buffers having differing characteristics
US9280486B2 (en) Managing memory pages based on free page hints
US9563571B2 (en) Intelligent GPU memory pre-fetching and GPU translation lookaside buffer management
US11853223B2 (en) Caching streams of memory requests
CN103885894A (zh) 信息一致性维护系统和方法
US10467138B2 (en) Caching policies for processing units on multiple sockets
CN114546897A (zh) 内存访问方法、装置、电子设备及存储介质
CN115794673A (zh) 系统级芯片non-Cacheable数据的访问方法、装置及电子设备
CN115543532A (zh) 缺页异常的处理方法、装置、电子设备以及存储介质
WO2005078590A2 (en) Address conversion technique in a context switching environment
US7797492B2 (en) Method and apparatus for dedicating cache entries to certain streams for performance optimization
CN118113135A (zh) 数据处理方法、系统、装置、电子设备及可读存储介质
US8700865B1 (en) Compressed data access system and method
CN115794675A (zh) 写数据方法、装置、图形处理系统、电子组件及电子设备
US11321241B2 (en) Techniques to improve translation lookaside buffer reach by leveraging idle resources
US12099451B2 (en) Re-reference interval prediction (RRIP) with pseudo-LRU supplemental age information
US20230102891A1 (en) Re-reference interval prediction (rrip) with pseudo-lru supplemental age information
US12008261B2 (en) Method and device for accessing memory
CN118020056A (zh) 将一个高速缓存中的请求类别和重用记录用于另一个高速缓存的插入策略
US20210055883A1 (en) Cache Memory with Transient Storage for Cache Lines
CN115917516A (zh) 用于相联高速缓存的直接映射模式
CN115080464A (zh) 数据处理方法和数据处理装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination