CN111913657B - 块数据读写方法、装置、系统及存储介质 - Google Patents
块数据读写方法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN111913657B CN111913657B CN202010662909.9A CN202010662909A CN111913657B CN 111913657 B CN111913657 B CN 111913657B CN 202010662909 A CN202010662909 A CN 202010662909A CN 111913657 B CN111913657 B CN 111913657B
- Authority
- CN
- China
- Prior art keywords
- storage space
- block
- data
- address
- primitive
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请实施例提供一种块数据读写方法、装置、系统及存储介质,其中,方法包括:获取一个数据存储空间地址;将获取到的一个块的图元数据写入数据存储空间地址对应的数据存储空间;若所述数据存储空间未满,继续向所述数据存储空间写入下一个块的图元数据;若所述数据存储空间已满,获取下一个数据存储空间地址继续写入图元数据;将一个块的图元数据的存储地址写入为所述块分配的地址存储空间。本申请实施例提供的块数据读写方法、装置、系统及存储介质能够解决传统方案中存储空间利用率不高的问题。
Description
技术领域
本申请涉及分块数据处理技术,尤其涉及一种块数据读写方法、装置、系统及存储介质。
背景技术
图形处理器(Graphics Processing Unit,简称GPU)是一种专门用于对图像或图形进行处理的处理器,应用在电子终端的显示系统中,能够减轻中央处理器(centralprocessing unit,简称CPU)在图像或图形处理方面的压力,提高显示系统的整体处理效率。
图形分块渲染是目前应用较为广泛的一种GPU渲染架构,相比于传统的立即渲染架构,能够降低渲染过程中GPU对读写存储器的频次,进而提高渲染效率。在GPU执行图形分块渲染之前需要对一帧图元进行分块,并将块数据写入存储器。在渲染的过程中,依次从存储器中读取各块数据,分别进行渲染。传统方式是为每一个块分配一块存储空间,块数据存储在该存储空间内。存储空间的初始地址和长度是固定的,且在一帧绘制过程中不允许更改。这就导致了绘制过程中会出现某些块的存储空间不够用,而另一些块的空间大量空闲的情况,导致存储空间的利用率不高。
发明内容
本申请实施例中提供了一种块数据读写方法、装置、系统及存储介质,用于解决传统方案中存储空间利用率不高的问题。
本申请第一方面实施例提供一种块数据写入方法,包括:
获取一个数据存储空间地址;
将获取到的一个块的图元数据写入数据存储空间地址对应的数据存储空间;若所述数据存储空间未满,继续向所述数据存储空间写入下一个块的图元数据;若所述数据存储空间已满,获取下一个数据存储空间地址继续写入图元数据;
将一个块的图元数据的存储地址写入为所述块分配的地址存储空间。
本申请第二方面实施例提供一种块数据读取方法,包括:
从一个块对应的地址存储空间中读取所述块的图元数据的存储空间地址;
根据所述存储空间地址从数据存储空间中读取图元数据;所述数据存储空间在数据写入时,在一个块的图元数据写入后,若未满,继续写入下一个块的图元数据。
本申请第三方面实施例提供一种块数据写入装置,包括:
第一数据存储空间地址获取模块,用于获取一个数据存储空间地址;
数据存储空间写入模块,用于将获取到的一个块的图元数据写入数据存储空间地址对应的数据存储空间;若所述数据存储空间未满,继续向所述数据存储空间写入下一个块的图元数据;若所述数据存储空间已满,触发第一数据存储空间地址获取模块的操作以获取下一个数据存储空间地址继续写入图元数据;
地址存储空间写入模块,用于将一个块的图元数据的存储地址写入为所述块分配的地址存储空间。
本申请第四方面实施例提供一种块数据读取装置,包括:
存储地址读取模块,用于从一个块对应的地址存储空间中读取所述块的图元数据的存储地址;
图元数据读取模块,用于根据所述存储地址从数据存储空间中读取图元数据;所述数据存储空间用于在写入一个块的图元数据之后若未满,继续写入下一个块的图元数据。
本申请第五方面实施例提供一种块数据读写系统,包括如上所述的块数据写入装置和/或如上所述的块数据读取装置。
本申请第六方面实施例提供一种计算机可读存储介质,其上存储有计算机程序;所述计算机程序被处理器执行以实现如上所述的块数据写入方法和/或如上所述的块数据读取方法。
本申请实施例提供的技术方案,通过获取一个数据存储空间地址;将获取到的一个块的图元数据写入数据存储空间地址对应的数据存储空间;若数据存储空间未满,继续向数据存储空间写入下一个块的图元数据;若数据存储空间已满,获取下一个数据存储空间地址继续写入图元数据,能够提高数据存储空间的利用率,减少空置不能再利用的存储空间,提高了存储空间的利用率。而且,上述技术方案还将一个块的图元数据的存储地址写入为块分配的地址存储空间,将一个块的图元数据集中存储在一个地址存储空间内,便于对图元数据进行查找和读取。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例一提供的块数据写入方法的流程图;
图2为本申请实施例二提供的块数据写入方法的流程图;
图3为本申请实施例三提供的块数据写入方法的流程图;
图4为本申请实施例三提供的块数据写入方法中判断地址存储空间是否已满的流程图;
图5为本申请实施例四提供的块数据读取方法的流程图;
图6为本申请实施例五提供的块数据读写方法应用在GPU上的示意图;
图7为本申请实施例五提供的块数据读写方法应用在GPU上的另一示意图;
图8为本申请实施例六提供的块数据写入装置的结构示意图;
图9为本申请实施例七提供的块数据读取装置的结构示意图;
图10为本申请实施例八提供的块数据读写系统的结构示意图。
具体实施方式
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例一
本实施例提供一种块数据写入方法,可由处理器来执行,用于将分块数据写入存储器。该处理器可以为中央处理器CPU,也可以为图形处理器GPU。本实施例提供的块数据写入方法具体可以用在GPU对图形进行渲染的场景中,将一帧图形进行分块,每个块包含多个图元数据,然后将各图元数据写入存储器。
本实施例提供的方法由处理系统中的GPU来执行,处理系统还包括CPU和存储器。从GPU的角度出发,本实施例将该存储器称为片外存储器。本实施例在GPU上设置有随机存取存储器(Random Access Memory,简称:RAM),本实施例称为:片上RAM。
实际应用中,该块数据写入方法可以通过计算机程序实现,例如,应用软件等;或者,该方法也可以实现为存储有相关计算机程序的介质,例如,U盘、云盘等;再或者,该方法还可以通过集成或安装有相关计算机程序的实体装置实现,例如,芯片、可移动智能设备等。
图1为本申请实施例一提供的块数据写入方法的流程图。如图1所示,本实施例提供的块数据写入方法包括:
步骤101、获取一个数据存储空间地址。
CPU可以配置存储器中一些数据存储空间,这些存储空间可以为不连续的。CPU将空的数据存储空间地址发送给GPU。这些存储空间可以是固定的,也可以是不固定的,空的可以利用的存储空间都可以作为数据存储空间。CPU在不同的运行阶段可以配置不同的数据存储空间。
GPU获取到数据存储空间地址,就能够将图元数据写入该数据存储空间地址对应的数据存储空间中。
步骤102、将获取到的一个块的图元数据写入数据存储空间地址对应的数据存储空间;若数据存储空间未满,继续向数据存储空间写入下一个块的图元数据;若数据存储空间已满,获取下一个数据存储空间地址继续写入图元数据。
GPU将获取到的一个块的图元数据写入数据存储空间地址对应的数据存储空间。一个块中的图元数据可以为多个,多个图元数据可以按照顺序依次写入数据存储空间中。
写完一个块的所有图元数据之后,若数据存储空间未满,则继续向数据存储空间写入下一个块的图元数据,相邻两个块的图元数据连续写入。
若一个块的部分图元数据写入后数据存储空间已满,则获取下一个数据存储空间地址继续写入图元数据。或者,若一个块的全部图元数据写入后数据存储空间已满,则获取下一个数据存储空间继续写入下一个块的图元数据。
步骤103、将一个块的图元数据的存储地址写入为块分配的地址存储空间。
地址存储空间可以为在片外存储器内开设的存储空间,为每个块分配固定的存储空间,该存储空间的地址和大小均固定。
将一个块的图元数据的存储地址均写入该块对应的地址存储空间,便于按块进行查找。
在实际应用中,会出现某个块的图元数据较少,相应的图元数据的存储地址数量也较少,该块分配的地址存储空间存在剩余的情况。但是对图形渲染的场景来说,一个图元数据的存储地址通常为4个字节,而图元数据大于4个字节。因此,对于一帧数据而言,按照传统方案对图元数据进行存储,为某个块分配的数据存储空间若存在剩余的情况,则剩余的存储空间远大于本实施例中剩余的地址存储空间。
简单举例来说明:假设一个图元数据占据10个字节,一个图元数据的存储地址占据4个字节。
传统方案中,为一个块开辟200字节的数据存储空间,该块包含5个图元。则数据存储空间中可写入5个图元数据共50个字节,剩余150个字节是不能再被利用的,只能闲置。
而本实施例中,当数据存储空间未满时,各块的图元数据连续写入数据存储空间。为包含有5个图元的同一个块开辟30字节的地址存储空间,则地址存储空间中写入5个图元数据的存储地址共20个字节,剩余10个字节不能被利用。
上述数量仅为举例,用于解释本实施例的方案,并不表示真实数据。
为每个块开设的地址存储空间可以根据块所包含的图元的数量进行设定,可以满足大部分块的地址存储需求,达到不浪费存储空间,又减少产生块满中断为目的。基于上述思路,为每个块分配地址存储空间,剩余的地址存储空间远远小于传统方案中剩余的数据存储空间,提高了存储空间的利用率,也改善了有些图元较多的块频繁出现块满中断的问题出现。
本实施例提供的技术方案,通过获取一个数据存储空间地址;将获取到的一个块的图元数据写入数据存储空间地址对应的数据存储空间;若数据存储空间未满,继续向数据存储空间写入下一个块的图元数据;若数据存储空间已满,获取下一个数据存储空间地址继续写入图元数据,能够提高数据存储空间的利用率,减少空置不能再利用的存储空间,提高了存储空间的利用率。而且,上述技术方案还将一个块的图元数据的存储地址写入为块分配的地址存储空间,将一个块的图元数据集中存储在一个地址存储空间内,便于对图元数据进行查找和读取。
实施例二
本实施例是在上述实施例的基础上,对块数据写入方法进行优化,尤其是提供一种具体实现方式。
图2为本申请实施例二提供的块数据写入方法的流程图。如图2所示,本实施例提供的块数据写入方法包括:
步骤201、获取中央处理器CPU配置的数据存储空间地址。
数据存储空间由CPU配置,数据存储空间可以为不连续的多个存储空间。CPU将配置好的数据存储空间的地址发送给GPU。
步骤202、将CPU配置的数据存储空间地址放入存储空间队列。
GPU在获取到数据存储空间地址之后,将数据存储空间地址放入存储空间队列。存储空间队列为先入先出的工作模式。
在对块数据写入的过程中,上述步骤201和步骤202可以多次执行。
在写入块数据的过程中,依次执行如下步骤:
步骤203、从存储空间队列中获取一个数据存储空间地址。
步骤204、获取一个块的图元数据。
步骤205、将获取到的一个块的图元数据写入数据存储空间地址对应的数据存储空间。
步骤206、判断数据存储空间是否已满。
若数据存储空间未满,则返回执行步骤204和步骤205,以获取下一个块的图元数据并写入该数据存储空间。
若数据存储空间已满,则执行步骤207。
步骤207、判断存储空间队列是否已空。
若存储空间队列未空,则返回执行步骤203,以获取下一个数据存储空间地址继续写入图元数据。该步骤中,在一个块的图元数据未写完时,继续写入该块的图元数据;若一个块的图元数据已写完,则执行步骤204获取下一个块的图元数据进行写入,如图2所示。
若存储空间队列已空,则执行步骤208。
步骤208、产生块满中断。
在步骤205之后,还可以执行将一个块的图元数据的存储地址写入为块分配的地址存储空间的操作。附图2省略了写入地址存储空间的步骤。
实施例三
本实施例是在上述实施例的基础上,对块数据写入方法进行优化,尤其是提供一种对块满进行判断和处理的方式。
图3为本申请实施例三提供的块数据写入方法的流程图。如图3所示,本实施例提供的块数据写入方法包括:
步骤301、获取一个数据存储空间地址。
步骤302、将获取到的一个块的图元数据写入数据存储空间地址对应的数据存储空间;若数据存储空间未满,继续向数据存储空间写入下一个块的图元数据;若数据存储空间已满,获取下一个数据存储空间地址继续写入图元数据。
步骤303、将一个块的图元数据的存储地址写入为块分配的地址存储空间。
上述各步骤可参照实施例一中的步骤101至103来实现,本实施例不再赘述。
除了上述三个步骤之外,本实施例所提供的方法还包括:
步骤304、记录每个块中已写入数据存储空间的图元数目。
步骤305、将图元数目写入图元数目存储空间,图元数目存储空间的地址为块号,数据为已写入的图元数目。
图元数据存储空间是在片上RAM开辟出的一个存储空间。通过从片上RAM获取一个块已写入的图元数目,就能够知道地址存储空间的剩余大小。
在将一个块的图元数据的存储地址写入为块分配的地址存储空间之前,还可以执行步骤306。
步骤306、判断地址存储空间是否已满。
可根据片上RAM存储的一个块已写入的图元数目进行确定。
若判断结果为否,表明地址存储空间未满,则执行步骤307;若判断结果为是,表明地址存储空间已满,则执行步骤308。
步骤307、将一个块的图元数据的存储地址写入该地址存储空间。
步骤308、产生块满中断。
另外,对于上述步骤306判断地址存储空间是否已满,本实施例提供一种具体的实现方式:
图4为本申请实施例三提供的块数据写入方法中判断地址存储空间是否已满的流程图。如图4所示,判断地址存储空间是否已满可以采用如下步骤:
步骤3061、获取一个块的块号。
该块为待写入地址存储空间的图元所在的块。
步骤3062、根据获取到的块号在图元数目存储空间中查询块已写入的图元数目。
步骤3063、判断已写入的图元数目是否小于地址存储空间允许存放图元数据存储地址的数目。
若判断结果为是,表明地址存储空间还有剩余空间,则执行上述步骤307,即:将一个块的图元数据的存储地址写入对应块的地址存储空间。
若判断结果为否,表明地址存储空间已满,则执行上述步骤308,产生块满中断。
实施例四
图5为本申请实施例四提供的块数据读取方法的流程图。如图5所示,在上述各实施例的基础上,本实施例提供一种与块数据写入方法对应的块数据读取方法,包括:
步骤401、从一个块对应的地址存储空间中读取图元数据的存储空间地址。
在写入过程中,为每一个块分配一个地址存储空间,一个块的图元数据的存储空间地址均写入该地址存储空间内。
在读取过程中,获取待读取块的块号,就能够从该块对应的地址存储空间中读取各图元数据的存储空间地址。
步骤402、根据存储空间地址从数据存储空间中读取图元数据;数据存储空间在数据写入时,在一个块的图元数据写入后,若未满,继续写入下一个块的图元数据。
本实施例提供的技术方案中,数据存储空间在数据写入时,在一个块的图元数据写入后,若未满,继续写入下一个块的图元数据,能够提高数据存储空间的利用率,减少空置不能再利用的存储空间,提高了存储空间的利用率。将一个块的图元数据的存储地址写入为块分配的地址存储空间,将一个块的图元数据集中存储在一个地址存储空间内,便于对图元数据进行查找和读取。
实施例五
图6为本申请实施例五提供的块数据读写方法应用在GPU上的示意图。如图6所示,本实施例在片外存储器中设置数据存储空间用于存储块的图元数据,设置地址存储空间用于存储图元数据存储地址。
配置寄存器作为存储空间队列FIFO,存储空间队列FIFO中存储有数据存储空间地址及大小。
块数据读写方法主要包含三部分内容:图元数据写入、图元数据地址写入和块满处理,将执行这三部分内容的单元分别称为图元数据写入单元、图元数据地址写入单元和块满处理单元。
其中,图元数据写入包含如下操作:
步骤一,接收主机CPU配置的数据存储空间的起始地址和大小,允许主机CPU配置多块不连续的数据存储空间。然后将这些数据存储空间的起始地址和大小写入存储空间队列FIFO。
步骤二、在块数据写入过程中,从存储空间队列FIFO中读取一个数据存储空间地址T_S_Addr。
步骤三、将分块的图元数据依次写入T_S_Addr对应的数据存储空间。
在写入一个块之后,若数据存储空间未满,则更新写入地址T_S_Addr=T_S_Addr+写入的块数据大小,继续写入下一个块数据。
若数据存储空间已满,则从存储空间队列FIFO中获取下一个数据存储空间地址并继续写入图元数据。
当存储空间队列FIFO已满,则暂停写入操作并通知块满处理单元发出块满中断。
步骤四、将图元数据的存储地址和所在的块号写入为该块分配的地址存储空间。
图元数据地址写入包含如下操作:
步骤一、获取主机CPU配置的一个存储空间T_Addr,用于存放各块的图元数据存储地址。存储空间T_Addr的起始地址为A,大小为S字节。该存储空间最大支持的块数目为N,计算出每个块的地址存储空间的大小为S/N。若每个图元数据的存储地址占用M各字节,每个块分配的空间允许存放图元数据存储地址的数目NUM=S/(N*M)。
步骤二、利用一块片上RAM作为图元数目存储空间,用于记录每个块内已经写入的图元地址的数目,RAM的地址为块号,数据为已经写入的图元地址的数目。
在初始化之后及每一帧数据写入结束之后将该RAM清零。
步骤三、接收上述待写入存储地址的图元所在的块号T,在RAM中查询RAM[T]的值。接收待写入存储地址,若RAM[T]<NUM,则将待写入存储地址写入地址存储空间,写入地址为(A+T*S/N)+RAM[T]*M。若RAM[T]>=NUM,则暂停写入并通知块满处理单元发出块满中断。
块满处理单元接收上述图元数据写入单元、图元数据地址写入单元的状态信号,若出现块满则发出块满中断。
以上是对块数据进行写入的过程。
对块数据进行读取的过程:首先,按照块的顺序,先从地址存储空间中读出块中各图元数据的存储地址,然后根据存储地址从数据存储空间中读取图元数据。
图7为本申请实施例五提供的块数据读写方法应用在GPU上的另一示意图。如图7所示,在上述内容的基础上,图7对数据存储空间和地址存储空间进行举例说明:
在一个数据存储空间未满的情况下,依次写入第0个块的第0至m个图元数据。若数据存储空间仍未满,继续写入第1个块的第0至n个图元数据。若数据存储空间仍未满,继续写入第2个块的图元数据,直至该数据存储空间已满。从存储空间队列中获取下一个数据存储空间地址,向对应的数据存储空间内写入图元数据。
为每一个块分配一个地址存储空间,在上述过程中,每写入一个图元数据,就将图元数据的存储地址写入所在块对应的地址存储空间。如图7中,第0块的第0至m个图元存储地址写入第0个块对应的地址存储空间,第1个块的第0至n个图元存储地址写入第1个块对应的地址存储空间,以此类推。
实施例六
图8为本申请实施例六提供的块数据写入装置的结构示意图。如图8所示,本实施例提供一种块数据写入装置,包括:第一数据存储空间地址获取模块61、数据存储空间写入模块62和地址存储空间写入模块63。
其中,第一数据存储空间地址获取模块61用于获取一个数据存储空间地址。数据存储空间写入模块62用于将获取到的一个块的图元数据写入数据存储空间地址对应的数据存储空间;若所述数据存储空间未满,继续向所述数据存储空间写入下一个块的图元数据;若所述数据存储空间已满,触发第一数据存储空间地址获取模块的操作以获取下一个数据存储空间地址继续写入图元数据。地址存储空间写入模块63用于将一个块的图元数据的存储地址写入为所述块分配的地址存储空间。
本实施例提供的技术方案,通过获取一个数据存储空间地址;将获取到的一个块的图元数据写入数据存储空间地址对应的数据存储空间;若数据存储空间未满,继续向数据存储空间写入下一个块的图元数据;若数据存储空间已满,获取下一个数据存储空间地址继续写入图元数据,能够提高数据存储空间的利用率,减少空置不能再利用的存储空间,提高了存储空间的利用率。而且,上述技术方案还将一个块的图元数据的存储地址写入为块分配的地址存储空间,将一个块的图元数据集中存储在一个地址存储空间内,便于对图元数据进行查找和读取。
在上述技术方案的基础上,上述第一数据存储空间地址获取模块61具体用于从存储空间队列中获取一个数据存储空间地址。
进一步的,块数据写入装置还包括:块满中断产生模块,用于在存储空间队列已空时,产生块满中断。
进一步的,块数据写入装置还包括:第二数据存储空间地址获取模块和队列写入模块。其中,第二数据存储空间地址获取模块用于获取中央处理器CPU配置的数据存储空间地址。队列写入模块用于将CPU配置的数据存储空间地址放入存储空间队列。
进一步的,块数据写入装置还包括:图元数目记录模块,用于记录每个块中已写入数据存储空间的图元数目,并将图元数目写入图元数目存储空间,图元数目存储空间的地址为块号,数据为已写入的图元数目。
进一步的,块数据写入装置还包括:满块判断模块,用于判断地址存储空间是否已满,并在地址存储空间未满时触发地址存储空间写入模块的操作。
上述满块判断模块具体包括:块号获取单元、图元数目查询单元、判断单元和块满终端产生单元。其中,块号获取单元用于获取一个块的块号。图元数目查询单元用于根据块号在图元数目存储空间中查询块已写入的图元数目。判断单元用于判断已写入的图元数目是否小于地址存储空间允许存放图元数据存储地址的数目,若是,则触发地址存储空间写入模块的操作;若否,则触发块满中断产生单元。块满终端产生单元用于产生块满中断。
实施例七
图9为本申请实施例七提供的块数据读取装置的结构示意图。如图9所示,本实施例提供一种块数据读取装置,包括:存储地址读取模块71和图元数据读取模块72。
其中,存储地址读取模块71用于从一个块对应的地址存储空间中读取块的图元数据的存储地址。图元数据读取模块72用于根据存储地址从数据存储空间中读取图元数据;数据存储空间用于在写入一个块的图元数据之后若未满,继续写入下一个块的图元数据。
本实施例提供的技术方案中,数据存储空间在数据写入时,在一个块的图元数据写入后,若未满,继续写入下一个块的图元数据,能够提高数据存储空间的利用率,减少空置不能再利用的存储空间,提高了存储空间的利用率。将一个块的图元数据的存储地址写入为块分配的地址存储空间,将一个块的图元数据集中存储在一个地址存储空间内,便于对图元数据进行查找和读取。
实施例八
图10为本申请实施例八提供的块数据读写系统的结构示意图。如图10所示,本实施例提供一种块数据读写系统,包括如上述实施例六任一内容所提供的块数据写入装置81和/或实施例七所提供的块数据读取装置82。
上述块数据写入装置81、块数据读取装置82可以为GPU中的装置。块数据读写系统还可以包括:CPU、存储器。
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序;该计算机程序被处理器执行以实现如上述实施例一、二、三、五任一内容所提供的块数据写入方法和/或实施例四、实施例五任一内容所提供的块数据读取方法。
本实施例提供的系统和存储介质具有与上述方法相同的技术效果。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (13)
1.一种块数据写入方法,其特征在于,包括:
获取一个数据存储空间地址;
将获取到的一个块的图元数据写入数据存储空间地址对应的数据存储空间;若所述数据存储空间未满,继续向所述数据存储空间写入下一个块的图元数据;若所述数据存储空间已满,获取下一个数据存储空间地址继续写入图元数据;
将一个块的图元数据的存储地址写入为所述块分配的地址存储空间;
记录每个块中已写入数据存储空间的图元数目,并将图元数目写入图元数目存储空间,所述图元数目存储空间的地址为块号,数据为已写入的图元数目。
2.根据权利要求1所述的方法,其特征在于,获取一个数据存储空间地址,具体为:从存储空间队列中获取一个数据存储空间地址。
3.根据权利要求2所述的方法,其特征在于,还包括:
若所述存储空间队列已空,产生块满中断。
4.根据权利要求2或3所述的方法,其特征在于,还包括:
获取中央处理器CPU配置的数据存储空间地址;
将CPU配置的数据存储空间地址放入存储空间队列。
5.根据权利要求1所述的方法,其特征在于,在将一个块的图元数据的存储地址写入为所述块分配的地址存储空间之前,还包括:
判断所述地址存储空间是否已满,并在地址存储空间未满时将一个块的图元数据的存储地址写入为所述块分配的地址存储空间。
6.根据权利要求5所述的方法,其特征在于,确定所述地址存储空间是否已满,包括:
获取一个块的块号;
根据所述块号在图元数目存储空间中查询所述块已写入的图元数目;
判断已写入的图元数目是否小于所述地址存储空间允许存放图元数据存储地址的数目,若是,则将一个块的图元数据的存储地址写入为所述块分配的地址存储空间;若否,则产生块满中断。
7.一种块数据写入装置,其特征在于,包括:
第一数据存储空间地址获取模块,用于获取一个数据存储空间地址;
数据存储空间写入模块,用于将获取到的一个块的图元数据写入数据存储空间地址对应的数据存储空间;若所述数据存储空间未满,继续向所述数据存储空间写入下一个块的图元数据;若所述数据存储空间已满,触发第一数据存储空间地址获取模块的操作以获取下一个数据存储空间地址继续写入图元数据;
地址存储空间写入模块,用于将一个块的图元数据的存储地址写入为所述块分配的地址存储空间;
图元数目记录模块,用于记录每个块中已写入数据存储空间的图元数目,并将图元数目写入图元数目存储空间,所述图元数目存储空间的地址为块号,数据为已写入的图元数目。
8.根据权利要求7所述的装置,其特征在于,第一数据存储空间地址获取模块具体用于从存储空间队列中获取一个数据存储空间地址。
9.根据权利要求8所述的装置,其特征在于,还包括:
块满中断产生模块,用于在所述存储空间队列已空时,产生块满中断。
10.根据权利要求8或9所述的装置,其特征在于,还包括:
第二数据存储空间地址获取模块,用于获取中央处理器CPU配置的数据存储空间地址;
队列写入模块,用于将CPU配置的数据存储空间地址放入存储空间队列。
11.根据权利要求7所述的装置,其特征在于,还包括:
满块判断模块,用于判断所述地址存储空间是否已满,并在地址存储空间未满时触发地址存储空间写入模块的操作。
12.根据权利要求11所述的装置,其特征在于,所述满块判断模块,包括:
块号获取单元,用于获取一个块的块号;
图元数目查询单元,用于根据所述块号在图元数目存储空间中查询所述块已写入的图元数目;
判断单元,用于判断已写入的图元数目是否小于所述地址存储空间允许存放图元数据存储地址的数目,若是,则触发地址存储空间写入模块的操作;若否,则触发块满中断产生单元;
块满终端产生单元,用于产生块满中断。
13.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;所述计算机程序被处理器执行以实现如权利要求1-6任一项所述的块数据写入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010662909.9A CN111913657B (zh) | 2020-07-10 | 2020-07-10 | 块数据读写方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010662909.9A CN111913657B (zh) | 2020-07-10 | 2020-07-10 | 块数据读写方法、装置、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111913657A CN111913657A (zh) | 2020-11-10 |
CN111913657B true CN111913657B (zh) | 2023-06-09 |
Family
ID=73227734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010662909.9A Active CN111913657B (zh) | 2020-07-10 | 2020-07-10 | 块数据读写方法、装置、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111913657B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096897A (zh) * | 2011-03-17 | 2011-06-15 | 长沙景嘉微电子有限公司 | 基于分块渲染的gpu中块存储策略的实现 |
CN108021513A (zh) * | 2016-11-02 | 2018-05-11 | 杭州海康威视数字技术股份有限公司 | 一种数据存储方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10445229B1 (en) * | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
CN104954823B (zh) * | 2014-03-31 | 2018-06-15 | 华为技术有限公司 | 一种图计算预处理的装置、方法及系统 |
CN106294190B (zh) * | 2015-05-25 | 2020-10-16 | 中兴通讯股份有限公司 | 一种存储空间管理方法及装置 |
CN105912479B (zh) * | 2016-04-07 | 2023-05-05 | 合肥锐世数字科技有限公司 | 一种并发数据的缓存方法及装置 |
CN111125033B (zh) * | 2018-10-31 | 2024-04-09 | 深信服科技股份有限公司 | 一种基于全闪存阵列的空间回收方法及系统 |
CN109783321B (zh) * | 2019-01-24 | 2022-09-23 | 深圳市景阳信息技术有限公司 | 监控数据管理方法、装置、终端设备 |
CN111177025B (zh) * | 2019-12-30 | 2022-05-17 | 深圳云天励飞技术股份有限公司 | 数据存储方法、装置及终端设备 |
-
2020
- 2020-07-10 CN CN202010662909.9A patent/CN111913657B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096897A (zh) * | 2011-03-17 | 2011-06-15 | 长沙景嘉微电子有限公司 | 基于分块渲染的gpu中块存储策略的实现 |
CN108021513A (zh) * | 2016-11-02 | 2018-05-11 | 杭州海康威视数字技术股份有限公司 | 一种数据存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111913657A (zh) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6950107B1 (en) | System and method for reserving and managing memory spaces in a memory resource | |
CN111913659B (zh) | 块数据处理方法、装置、系统及存储介质 | |
CN110209493B (zh) | 内存管理方法、装置、电子设备及存储介质 | |
US20080055321A1 (en) | Parallel physics simulation and graphics processing | |
CN111882480B (zh) | 分块数据处理方法、装置、系统及存储介质 | |
CN114880259B (zh) | 数据处理方法、装置、系统、电子设备及存储介质 | |
CN114942831A (zh) | 处理器、芯片、电子设备及数据处理方法 | |
CN111104178A (zh) | 一种动态库加载方法、终端装置及存储介质 | |
CN115712394A (zh) | 数据读写方法、装置、计算机设备及可读存储介质 | |
CN114296658B (zh) | 一种存储空间分配方法、装置、终端设备及存储介质 | |
CN110515872B (zh) | 直接内存存取方法、装置、专用计算芯片及异构计算系统 | |
CN111913657B (zh) | 块数据读写方法、装置、系统及存储介质 | |
CN107368431B (zh) | 内存访问方法、交叉开关及计算机系统 | |
CN111459879A (zh) | 一种数据处理方法和片上系统 | |
US9355430B2 (en) | Techniques for interleaving surfaces | |
CN115237349A (zh) | 数据读写控制方法、控制装置、计算机存储介质和电子设备 | |
CN111882482A (zh) | 图形分块数据读写方法、装置、设备及存储介质 | |
CN109992198B (zh) | 神经网络的数据传输方法及相关产品 | |
KR101440106B1 (ko) | 정점 데이터 처리 장치 및 방법 | |
CN116204337B (zh) | 一种图像传输方法、装置、设备和计算机存储介质 | |
CN117667207B (zh) | 一种调度方法、系统、处理器及芯片 | |
CN111966294B (zh) | 存储数据的方法、装置、设备及存储介质 | |
CN116775512B (zh) | 页表管理装置、方法、图形处理器及电子设备 | |
CN115934364B (zh) | 内存管理方法、装置及电子设备 | |
CN116541334B (zh) | Pcie设备运行时文件的处理方法、装置和设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |