GPU帧缓冲区的TLM模型、存储方法、存储系统和存储介质与流程

文档序号:17347839发布日期:2019-04-09 20:53阅读:339来源:国知局
GPU帧缓冲区的TLM模型、存储方法、存储系统和存储介质与流程

本发明属于计算机硬件建模技术领域,具体涉及一种gpu帧缓冲区的tlm模型、存储方法、存储系统和存储介质。



背景技术:

gpu采用数量众多的计算单元,具有大规模并行计算能力,为图形处理和通用并行计算提供了良好的运行平台。

目前,我国gpu研制能力薄弱,各领域显示控制系统中大量采用国外进口的商用gpu芯片。尤其是在军用领域中,国外进口商用gpu芯片存在安全性、可靠性、保障性等方面的隐患,无法满足军用环境的需求;上述问题严重制约了我国显示系统的独立研制和自主发展,突破图形处理器关键技术、研制图形处理器芯片迫在眉睫。

帧缓冲区是由像素组成的二维数组,每一个存储单元对应屏幕上的一个像素,整个帧缓冲对应一帧图像即当前屏幕画面;帧缓冲区存储专门用来存放正在合成或显示的图像。然而,现有技术中,对gpu帧缓冲区存储硬件的建模仍不完善,无法实现帧缓冲区存储的最优硬件结构。



技术实现要素:

为了解决现有技术中存在的上述问题,本发明提供了一种gpu帧缓冲区的tlm模型、存储方法、存储系统和存储介质。本发明要解决的技术问题通过以下技术方案实现:

本发明实施例提供了一种基于systemc的gpu帧缓冲区存储硬件的tlm模型,包括:

地址校验单元,用于对读取数据地址或写入数据地址进行校验得到校验结果,并根据所述校验结果获取读取区域索引或写入区域索引;

读取数据单元,连接所述地址校验单元和所述数据载体单元,用于根据所述读取区域索引和所述读取数据地址从数据载体单元中读取第一数据;

写入数据单元,连接所述地址校验单元和所述数据载体单元,用于根据所述写入区域索引和所述写入数据地址写入第二数据至所述数据载体单元;

所述数据载体单元用于分配存储空间,并在所述存储空间中存储所述第一数据和所述第二数据。

在本发明的一个实施例中,还包括:性能评估单元,连接所述读取数据单元和所述写入数据单元,用于在所述读取数据单元读取所述第一数据或/和在所述写入数据单元写入所述第二数据时,评估帧缓冲区的存储性能。

在本发明的一个实施例中,所述地址校验单元用于判断所述校验结果为合法校验结果时,获取所述读取区域索引或所述写入区域索引。

在本发明的一个实施例中,所述数据载体单元采用动态地址分配方式分配所述存储空间。

本发明实施例还提供了一种基于systemc的gpu帧缓冲区存储硬件的存储方法,包括:

对读取数据地址或写入数据地址进行校验得到校验结果,并根据所述校验结果获取读取区域索引或写入区域索引;

根据所述读取区域索引和所述读取数据地址从数据载体单元中读取第一数据;

根据所述写入区域索引和所述写入数据地址写入第二数据至所述数据载体单元;

分配存储空间,并在所述存储空间中存储所述第一数据和所述第二数据。

在本发明的一个实施例中,还包括:

在读取所述第一数据或/和在写入所述第二数据时,评估帧缓冲区的存储性能。

在本发明的一个实施例中,对读取数据地址或写入数据地址进行校验得到校验结果,并根据所述校验结果获取读取区域索引或写入区域索引,包括:

当判断所述校验结果为合法校验结果时,获取所述读取区域索引或所述写入区域索引。

在本发明的一个实施例中,分配存储空间,包括:

采用动态地址分配方式分配所述存储空间。

本发明的另一个实施例提供了一种基于systemc的gpu帧缓冲区存储系统,包括:

处理器;

存储器;以及计算机程序;

其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如基于systemc的gpu帧缓冲区存储硬件的存储方法的指令。

本发明的再一个实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得帧缓冲区存储系统执行基于systemc的gpu帧缓冲区存储硬件的存储方法。

与现有技术相比,本发明的有益效果:

本发明通过systemc语言和事物级建模方法对帧缓冲区存储硬件进行建模,内部集成地址校验单元、读取数据单元、写入数据单元、数据载体单元和性能评估单元,实现了ddr的存取功能,解决了gpu帧缓冲区存储硬件的模块功能验证的问题,为实现帧缓冲区存储的最优硬件结构提供可靠依据。

附图说明

图1为本发明实施例提供的一种基于systemc的gpu帧缓冲区存储硬件的tlm模型的结构示意图。

具体实施方式

下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。

实施例一

本发明实施例通过systemc语言和事务级建模方法对帧缓冲区存储硬件进行了建模,请参见图1,图1为本发明实施例提供的一种基于systemc的gpu帧缓冲区存储硬件的tlm模型的结构示意图,包括:地址校验单元、读取数据单元、写入数据单元、数据载体单元和性能评估单元;其中,地址校验单元,用于对读取数据地址或写入数据地址进行校验得到校验结果,并根据校验结果获取读取区域索引或写入区域索引;读取数据单元,连接地址校验单元和数据载体单元,用于根据读取区域索引和读取数据地址从数据载体单元读取第一数据;写入数据单元,连接地址校验单元和数据载体单元,用于根据写入区域索引和写入数据地址写入第二数据至数据载体单元;数据载体单元,用于分配存储空间,并在存储空间中存储述第一数据和第二数据;性能评估单元,连接读取数据单元和写入数据单元,用于在读取数据单元读取第一数据或/和在写入数据单元写入第二数据时,评估帧缓冲区的存储性能。

进一步的,地址校验单元、读取数据单元、写入数据单元、数据载体单元和性能评估单元之间的连接关系通过事务级接口进行连接,请参见表1,表1对图1中出现的事务级接口进行了说明。具体的,以地址校验单元与读取数据单元之间的事务级接口为例,读取数据单元向地址校验单元发起获取数据的指令,地址校验单元接收到该指令,将数据发送给地址校验单元。

表1图1中出现的事务级接口说明

本发明实施例采用事务级接口连接各单元,可以清楚的表明行为发起方、行为接收方和数据流向,从而表明各个单元之间的连接关系及行为关系。

本发明实施例通过systemc语言和事物级建模方法对帧缓冲区存储硬件进行建模,内部集成地址校验单元、读取数据单元、写入数据单元、数据载体单元和性能评估单元,实现了双倍速率(doubledatarate,简称ddr)的存取功能,解决了gpu帧缓冲区存储硬件的模块功能验证的问题,为实现帧缓冲区存储的最优硬件结构提供可靠依据。

在一个具体实施例中,地址校验单元对读取数据地址或写入数据地址进行校验得到校验结果,并根据校验结果获取读取区域索引或写入区域索引。具体的,首先地址校验单元对请求地址(读取数据地址或写入数据地址)的数值进行校验,得到校验结果;进一步的,校验的方法为判断该请求地址是否属于帧缓冲区中的某个存储空间,校验结果包括合法校验结果和不合法校验结果两种情况;进一步的,合法校验结果是指请求地址的数据属于帧缓冲区中的某个块,不合法校验结果是指请求地址的数据在帧缓冲区中不存在相应的块。然后,地址校验单元根据校验结果进行相应的操作:若为合法校验结果,则地址校验单元获取请求地址索引(即读取区域索引或写入区域索引);若为不合法校验结果,则地址校验单元发送异常信号,停止读写操作。具体的,请求地址索引可以为该地址所属的块的编号,例如,根据需要,gpu帧缓冲区被划分为4×4共16个块,即存在16个读取区域或写入区域,将16个读取区域或写入区域依次编号为k1、k2、…、k16,即读取区域索引或写入区域索引k1、k2、…、k16;为当外部单元发送来请求地址时,地址校验单元首先判断该请求地址是否属于k1~k16中的某一个,若是,则地址校验单元获取k1~k16中该地址所属的编号。

在一个具体实施例中,读取数据单元根据读取区域索引定位读取区域,并根据读取数据地址从读取区域读出第一数据。进一步的,帧缓冲区的每个块都存在连续的地址范围,以读取数据地址索引为k1为例,假设k1中存在着连续的地址范围00000000~ffffffff,读写数据单元首先根据索引k1定位到k1对应的块,然后根据读取数据地址的值定位到00000000~ffffffff中的某个地址,然后读取该地址的数据,并输出该数据至发送读取请求的外部单元。进一步的,数据读取和写入的最小单位均为32位。

在一个具体实施例中,写入数据单元根据写入区域索引定位写入区域,并根据写入数据地址将第二数据写入区域。进一步的,写入数据单元首先根据写入区域索引定位到写入区域,然后根据写入数据地址的值定位到该写入区域中的某个位置,将所需写入的数据写入该位置,覆盖该位置之前的数据。

在一个具体实施例中,数据载体单元是通过软件实现的,以文件形式存放数据,优选的,其存放数据的形式为二进制文件形式;采用二进制文件形式存储数据,可以节约帧缓冲区存储硬件的空间;同时,由于二进制文件是无格式存储的,因此在读写数据时速度较快,使用更便捷;另外,对于比较精确的数据,使用二进制存储不会造成有效位的丢失,从而保证存储数据的完整性。

在一个具体实施例中,数据载体单元采用动态地址分配方式分配帧缓冲区的存储空间;具体的,动态地址是指当数据在gpu帧缓冲区中存储时,帧缓冲区根据数据的大小对存储空间进行实时调整,以提高帧缓冲区的利用率和读写性能;也就是说,帧缓冲区的存储空间并不是固定大小,而是根据实时数据的大小来进行动态变化的;对某一个gpu的帧缓冲区来讲,其被划分为存储空间的个数也是根据需求而变化的,数据较大时存储空间的个数小于数据较小时存储空间的个数。

本发明实施例的数据载体单元采用动态地址分配方式分配存储空间,根据需求对存储空间进行调整,可以使得不同大小的数据都能获得足够的存储空间,同时提高帧缓冲区的存储利用率。

在一个具体实施例中,帧缓冲区实现数据存储的功能,而地址校验单元、读取数据单元、写入数据单元、数据载体单元和性能评估单元都属于帧缓冲区为了实现其存储功能而划分的模块,在性能评估单元进行性能评估时,其评估的是整个帧缓冲区的存储性能,而非某个单元的功能。具体的,性能评估单元通过判断读取数据单元读取第一数据或/和写入数据单元写入第二数据过程中的访存延时来评估帧缓冲区的存储性能。具体的,访存延时是指读取第一数据/写入第二数据所需要的时间。进一步的,在读出第一数据/写入第二数据时,对第一数据/第二数据查找的过程越长,消耗的时间就越长,此时帧缓冲区的存储速度较慢,存储性能不好。

在一个具体实施例中,性能评估模块还通过判断读取数据单元读取第一数据或/和写入数据单元写入第二数据过程中的命中率来评估帧缓冲区的存储性能。具体的,命中率是指读出/写入数据地址在帧缓冲区能够访问到的概率,块的大小、块的数目、替换算法等都会影响命中率;命中率的计算公式为:命中率=命中数目/读写数据总量,其中,读写数据总量=命中数目+丢失数目。具体的,命中率越高,丢失率就越低,此时帧缓冲区的存储性能越好。

在一个具体实施例中,命中率越高,访存延时越少,帧缓冲区的存储性能越好;在软件建模时,根据硬件的实际结构、可支持的块的大小数目和替换算法更改访存延时和命中率,从而评估帧缓冲区存的存储性能。

本发明实施例通过systemc语言和事物级建模方法对帧缓冲区存储硬件进行建模,内部集成地址校验单元、读取数据单元、写入数据单元、数据载体单元和性能评估单元,实现了ddr的存取功能,解决了gpu帧缓冲区存储硬件的模块功能验证的问题,为实现帧缓冲区存储的最优硬件结构提供可靠依据。

本发明实施例的tlm模型能够准确的表达并且正确的推导出与硬件部分相关的各种功能和性能指标,以此作为rtl结构设计可行性及可靠性的依据。

本发明实施例还提供了一种基于systemc的gpu帧缓冲区存储硬件的存储方法,包括步骤:

s1、对读取数据地址或写入数据地址进行校验得到校验结果,并根据所述校验结果获取读取区域索引或写入区域索引;

具体的,当判断校验结果为合法校验结果时,获取读取区域索引或写入区域索引;当判断校验结果为不合法校验结果时,发送异常信号。

s2、根据所述读取区域索引和所述读取数据地址从数据载体单元中读取第一数据;

s3、根据所述写入区域索引和所述写入数据地址写入第二数据至所述数据载体单元;

s4、分配存储空间,并在所述存储空间中存储所述第一数据和所述第二数据;

具体的,采用动态地址分配方式分配存储空间。

s5、在读取第一数据或/和在写入第二数据时,评估帧缓冲区的存储性能;

具体的,通过判断读取第一数据或/和写入第二数据时的访存延时和命中率来对帧缓冲区的存储性能进行评估。

本发明实施例还提供了一种基于systemc的gpu帧缓冲区存储系统,包括:处理器;

存储器;以及计算机程序;

其中,计算机程序被存储在存储器中,并且被配置为由处理器执行,所述计算机程序包括用于执行基于systemc的gpu帧缓冲区存储硬件的存储方法的指令。

本发明实施例提供的帧缓冲区存储系统,可以执行上述gpu帧缓冲区存储硬件的存储方法,其实现原理和技术效果类似,在此不再赘述。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得帧缓冲区存储系统执行基于systemc的gpu帧缓冲区存储硬件的存储方法。

本发明实施例提供的计算机可读存储介质,可以执行上述gpu帧缓冲区存储硬件的存储方法,其实现原理和技术效果类似,在此不再赘述。

本发明实施例通过systemc语言和事物级建模方法对帧缓冲区存储硬件进行建模,内部集成地址校验单元、读取数据单元、写入数据单元、数据载体单元和性能评估单元,实现了ddr的存取功能,解决了gpu帧缓冲区存储硬件的模块功能验证的问题,为实现帧缓冲区存储的最优硬件结构提供可靠依据。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1