一种存储数据的方法及装置
文献发布时间:2023-06-19 11:16:08
技术领域
本申请涉及数据存储技术领域,尤其涉及一种存储数据的方法及装置。
背景技术
随着信息技术的飞速发展,人们的生活越来越智能化,各种可穿戴设备层出不穷。真蓝牙无线(True Wireless Stereo,TWS)耳机、智能眼镜和智能手表手环等各种可穿戴设备的出现,使得我们的生活越来越便利。而智能手表,作为一个稳步成长的产品类别,受到越来越多的消费者的青睐。低功耗、高分辨率、高画质、圆形显示屏是智能手表的几大趋势。而目前数据存储技术对显示数据在存储空间的管理,基本上是基于矩形屏幕上显示数据的存储,对于非矩形的液晶显示屏幕(Liquid Crystal Display,LCD),物联网主控芯片(比如系统级芯片(System on Chip,SOC))也是按照矩形屏幕的方式存储的,一些无用的显示数据耗费了主控芯片的存储空间,内存空间的利用率较低,且增加了系统功耗。
发明内容
本申请提供一种存储数据的方法及装置,用以减少数据占用的物理存储空间,进而提高主控芯片内存的利用率。
第一方面,本申请提供一种存储数据的装置,包括逻辑存储空间、物理存储空间、以及用于连接所述逻辑存储空间和所述物理存储空间的存储地址映射电路:
所述逻辑存储空间,用于存储所述装置中的全部使用数据;
所述存储地址映射电路,用于根据所述全部使用数据中的待存储数据的逻辑地址,解析得到所述待存储数据所在的所述逻辑存储空间对应的物理存储空间的物理基地址以及所述待存储数据相对于所述物理基地址的偏移地址信息,并将所述物理基地址和所述偏移地址信息映射为物理地址,按照所述物理地址将所述待存储数据连续存储到所述物理存储空间中;
所述物理存储空间,用于存储所述全部使用数据中的待存储数据。
在一种可选的实施方式中,所述存储地址映射电路包括逻辑空间基地址映射单元、行块译码器、查找表单元、地址映射单元:
所述逻辑空间基地址映射单元,用于解析出访存命令要访存的所述待存储数据所在的所述逻辑存储空间对应的物理存储空间的物理基地址,所述访存命令携带所述待存储数据的逻辑地址;
所述行块译码器,用于解析出所述访存命令要访存的所述待存储数据相对于所述物理基地址的偏移地址信息中的行编号和数据块编号;
所述查找表单元,用于根据查找表查询所述偏移地址信息中所述行编号对应行的起始数据块的地址偏移量;
所述地址映射单元,用于将所述物理基地址、行编号、数据块编号、以及对应行的起始数据块的地址偏移量映射为物理地址,按照所述物理地址将所述待存储数据连续存储到对应的物理存储空间中。
在一种可选的实施方式中,所述存储地址映射电路还包括块有效组件,用于根据所述数据块编号判断所述访存命令是否为合法的访存命令,并为合法的访存命令标记合法性标识;
所述地址映射单元,具体用于若所述访存命令已标记合法性标识,则将所述物理基地址、行编号、数据块编号、以及对应行的起始数据块的地址偏移量映射为物理地址,按照所述物理地址将所述待存储数据连续存储到对应的物理存储空间中。
在一种可选的实施方式中,所述块有效组件具体用于:
确定所述待存储数据所在行的第一个待存储数据块的编号以及最后一个待存储数据块的编号;
若所述偏移地址信息中的所述数据块编号大于等于所述第一个待存储数据块的编号且小于等于所述最后一个待存储数据块的编号,则确定所述访存命令为合法的访存命令,并为所述访存命令标记合法性标识。
在一种可选的实施方式中,所述存储地址映射电路还包括物理地址控制寄存器,用于为所述逻辑存储空间配置对应的物理存储空间的物理基地址;
所述逻辑空间基地址映射单元,具体用于根据所述逻辑存储空间与所述物理存储空间之间的对应关系,解析得到所述待存储数据所在的所述逻辑存储空间对应的物理存储空间的物理基地址。
在一种可选的实施方式中,所述存储地址映射电路还包括地址映射寄存器和偏移地址计算寄存器:
所述地址映射寄存器,用于配置所述查找表中每一行的第一个待存储数据块的编号以及最后一个待存储数据块的编号,以及每一行是否有待存储数据;
所述偏移地址计算寄存器,用于配置所述查找表中每一行的起始数据块相对于所述逻辑存储空间对应的物理存储空间中的物理基地址的偏移地址。
在一种可选的实施方式中,所述装置还包括非易失性存储器、至少一个主机、控制器以及显示器;
所述至少一个主机,用于接收访存命令,并通过数据接口将存储在所述非易失性存储器中的原始数据读取到所述逻辑存储空间;以及读取所述物理存储空间中存储的所述待存储数据,并对读取的待存储数据进行图像处理后再存入所述物理存储空间中;在触发条件到达时,从所述物理存储空间中读取图像处理后的待存储数据,并发送给所述控制器;
所述控制器,用于将接收的待存储数据按照所述显示器的时序参数发送给所述显示器;
所述显示器,用于显示所述待存储数据。
在一种可选的实施方式中,所述触发条件包括:
接收到所述控制器发送的数据获取请求,所述数据获取请求是所述控制器根据接收的所述显示器发送的数据刷新请求发送的,或者所述数据获取请求是所述控制器根据上层控制单元发送的刷屏指令发送的。
在一种可选的实施方式中,所述全部使用数据为非矩形显示屏幕上的显示数据,所述待存储数据为所述非矩形显示屏幕上的可见显示数据。
第二方面,本申请提供一种存储数据的方法,应用于包括逻辑存储空间、物理存储空间、以及用于连接所述逻辑存储空间和所述物理存储空间的存储地址映射电路的装置,包括:
所述存储地址映射电路根据所述逻辑存储空间存储的所述装置中的全部使用数据中的待存储数据的逻辑地址,解析得到所述待存储数据所在的所述逻辑存储空间对应的物理存储空间的物理基地址以及所述待存储数据相对于所述物理基地址的偏移地址信息,并将所述物理基地址和所述偏移地址信息映射为物理地址,按照所述物理地址将所述待存储数据连续存储到对应的物理存储空间中。
在一种可选的实施方式中,所述存储地址映射电路包括逻辑空间基地址映射单元、行块译码器、查找表单元、地址映射单元,所述方法包括:
所述逻辑空间基地址映射单元接收访存命令并解析,得到所述访存命令要访存的所述待存储数据所在的所述逻辑存储空间对应的物理存储空间的物理基地址,所述访存命令携带所述待存储数据的逻辑地址;
所述行块译码器接收访存命令并解析,得到所述访存命令要访存的所述待存储数据相对于所述物理基地址的偏移地址信息中的行编号和数据块编号;
所述查找表单元根据所述行编号查询查找表,得到所述行编号对应行的起始数据块的地址偏移量;
所述地址映射单元将所述物理基地址、行编号、数据块编号、以及对应行的起始数据块的地址偏移量映射为物理地址,按照所述物理地址将所述待存储数据连续存储到对应的物理存储空间中。
在一种可选的实施方式中,所述存储地址映射电路还包括块有效组件,所述方法还包括:
所述块有效组件根据所述数据块编号判断所述访存命令是否为合法的访存命令,并为合法的访存命令标记合法性标识;
所述地址映射单元将所述物理基地址、行编号、数据块编号、以及对应行的起始数据块的地址偏移量映射为物理地址,按照所述物理地址将所述待存储数据连续存储到对应的物理存储空间中,包括:
若所述地址映射单元接收的所述访存命令已标记合法性标识,则将所述物理基地址、行编号、数据块编号、以及对应行的起始数据块的地址偏移量映射为物理地址,按照所述物理地址将所述待存储数据连续存储到对应的物理存储空间中。
在一种可选的实施方式中,所述块有效组件根据所述数据块编号判断所述访存命令是否为合法的访存命令,包括:
所述块有效组件确定所述待存储数据所在行的第一个待存储数据块的编号以及最后一个待存储数据块的编号;
若所述偏移地址信息中的所述数据块编号大于等于所述第一个待存储数据块的编号以及小于等于所述最后一个待存储数据块的编号,则确定所述访存命令为合法的访存命令。
在一种可选的实施方式中,所述存储地址映射电路还包括物理地址控制寄存器,所述方法还包括:
所述物理地址控制寄存器为所述逻辑存储空间配置对应的物理存储空间的物理基地址;
所述逻辑空间基地址映射单元得到所述访存命令要访存的所述待存储数据所在的所述逻辑存储空间对应的物理存储空间的物理基地址,包括:
所述逻辑空间基地址映射单元根据所述逻辑存储空间与所述物理存储空间之间的对应关系,解析所述访存命令,得到所述待显示数据所在的所述逻辑存储空间对应的物理存储空间的物理基地址。
在一种可选的实施方式中,所述存储地址映射电路还包括地址映射寄存器和偏移地址计算寄存器,所述方法还包括:
所述地址映射寄存器配置所述查找表中每一行的第一个待存储数据块编号以及最后一个待存储数据块编号,以及每一行是否有待存储数据;
所述偏移地址计算寄存器配置所述查找表中每一行的起始数据块相对于所述逻辑存储空间对应的物理存储空间中的物理基地址的偏移地址。
在一种可选的实施方式中,所述装置还包括非易失性存储器、至少一个主机、控制器以及显示器,所述方法还包括;
所述至少一个主机接收访存命令,并通过数据接口将存储在所述非易失性存储器中的原始数据读取到所述逻辑存储空间;以及读取所述物理存储空间中存储的所述待存储数据,并对读取的待存储数据进行图像处理后再存入所述物理存储空间中;在触发条件到达时,从所述物理存储空间中读取图像处理后的待存储数据,并发送给所述控制器;
所述控制器将接收的待存储数据按照所述显示器的时序参数发送给所述显示器;
所述显示器显示所述待存储数据。
在一种可选的实施方式中,所述触发条件包括:
接收到所述控制器发送的数据获取请求,所述数据获取请求是所述控制器根据接收的所述显示器发送的数据刷新请求发送的,或者所述数据获取请求是所述控制器根据上层控制单元发送的刷屏指令发送的。
在一种可选的实施方式中,所述全部使用数据为非矩形显示屏幕上的显示数据,所述待存储数据为所述非矩形显示屏幕上的可见显示数据。
第三方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行第二方面中任一项所述的方法。
本申请的上述装置或方法中,存储地址映射电路根据全部使用数据中的待存储数据的逻辑地址,将待存储数据从逻辑存储空间连续映射到物理存储空间,对于全部使用数据中的无需存储的数据,则不存储至物理存储空间,从而减少了数据占用的物理存储空间,进而提高主控芯片内存的利用率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示例性示出了本申请实施例提供的驱动圆形LCD屏进行数据显示的示意图;
图2示例性示出了本申请实施例提供的一种存储非矩形显示屏幕上显示数据的装置结构图;
图3示例性输出了本申请实施例提供的逻辑存储空间到物理存储空间的映射关系图;
图4示例性输出了本申请实施例提供的存储地址映射电路的逻辑框图;
图5示例性输出了本申请实施例提供的存储地址映射电路中逻辑空间基地址映射单元的内部结构图;
图6示例性输出了本申请实施例提供的逻辑存储空间与物理存储空间的对应关系图;
图7示例性示出了本申请实施例提供的另一种存储地址映射电路的逻辑框图;
图8示例性示出本申请实施例提供的完整的存储非矩形显示屏幕上显示数据的装置的结构图;
图9示例性示出了本申请实施例提供的主控芯片驱动非矩形显示屏幕上显示数据进行显示的完整流程图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部份实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
基于本申请中示出的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,虽然本申请中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整技术方案。
应当理解,本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,例如能够根据本申请实施例图示或描述中给出那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请中使用的术语“模块”,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
显示屏幕的形状多种多样,而显示屏幕上的显示数据的存储方式大多是基于矩形屏幕的,芯片内存利用率较低。
以非矩形屏幕为圆形显示屏幕为例,图1示例性示出了本申请实施例提供的驱动圆形LCD屏进行数据显示的示意图。如图1所示,主控芯片用于存储屏幕上的显示数据,通过数据接口驱动具有圆形显示屏幕的显示设备(比如智能手表)进行数据显示,显示设备的圆形区域内的显示数据为圆形屏幕内的可见显示数据(也称为有用像素点),而矩形区域内圆形区域外(图1中用斜线的阴影区域表示)的显示数据为圆形屏幕外的不可见显示数据(也称为无用像素点),基于矩形屏幕的显示数据的存储方式,主控芯片在处理和刷新显示屏的一帧数据内容时,需要将整个矩形区域内的全部显示数据(包括有用像素点和无用像素点)都更新给圆形显示屏幕。因此,主控芯片需要存储整个矩形区域内所有像素点的图像数据,包括阴影区域内无用像素点的图像数据,存储空间的利用率较低。
目前,基于矩形屏幕的显示数据的存储方式对于本来就内存资源匮乏的物联网主控芯片来说,浪费了内存资源,且增加了芯片成本。随着智能产品分辨率的提高、显示屏幕圆屏化,上述问题变得更加凸显。而有些智能手表/手环等产品为了支持更大分辨率的圆形屏幕,不得不外扩静态随机存取存储器(Static Random-Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等内存器件来解决主控芯片内存储空间短缺的问题。外扩内存器件虽然能解决主控芯片内存储空间短缺的问题,但是极大的增加了产品的成本,同时也增加了产品的功耗。
本申请实施例提供一种存储数据的方法及装置。在主控芯片的逻辑存储空间和物理存储空间之间增加了一个存储地址映射电路(下文简称为DE_MMU),DE_MMU可以将逻辑存储空间存储的全部使用数据中的待存储数据的逻辑地址映射到一片连续的物理存储空间中,而将全部使用数据中无需存储的冗余数据,不存储在主控芯片的物理存储空间中,从而节省内存开销并降低了芯片功耗。
其中,本申请实施例中的全部使用数据可以为非矩形显示屏幕上的显示数据(包括非矩形显示屏幕上的可见显示数据和不可见显示数据)、待存储数据为非矩形显示屏幕上的可见显示数据。
需要说明的是,本申请实施例也可适用于矩形屏幕上显示数据的存储,此时待存储数据为显示数据。
为清楚表述本申请实施例,下面对本申请实施例中的名词进行解释说明。
数据块:图像处理中,经常用像素宏块作为数据处理的最小单位。而本申请实施例中的数据块不以像素为单位,以16字节(byte)的数据块为数据处理的单位。
虚拟缓冲区:数据的逻辑存储空间。
物理缓冲区:数据的物理存储空间。
下面结合附图详细描述本申请的实施例。
图2示例性示出了本申请实施例提供的一种存储数据的装置结构图。如图2所示,该装置包括逻辑存储空间201、存储地址映射电路202、物理存储空间203,存储地址映射电路202连接逻辑存储空间201和物理存储空间203。
逻辑存储空间201存储了该装置中的全部使用数据,包括待存储数据和无需存储的数据(也称为冗余数据);
存储地址映射电路202根据全部使用数据中的待存储数据的逻辑地址,解析得到待存储数据所在的逻辑存储空间201对应的物理存储空间203的物理基地址以及待存储数据相对于物理基地址的偏移地址信息,并根据物理基地址和偏移地址信息映射得到待显示数据在物理存储空间203中的物理地址,按照物理地址将待存储数据连续存储到对应的物理存储空间203中,具体的映射过程参见图3;
物理存储空间203存储了全部使用数据中的待存储数据。
本申请的上述实施例中,偏移地址信息包括待存储数据的行编号、数据块编号、以及行编号对应行的起始数据块的地址偏移量。
在一些实施例中,显示屏幕的分辨率大小决定了逻辑存储空间的行数和列数,数据以数据块为单位,每一行包含多个数据块,数据块的大小可根据要显示的视频帧的数据容量确定。以数据块为单位,将逻辑存储空间中全部使用数据中的待存储数据映射到物理存储空间中。
图3示例性输出了本申请实施例提供的逻辑存储空间到物理存储空间的映射关系图。如图3所示,以SoC系统可支持的显示屏幕最大分辨率为512*512(单位:像素)为例,矩形表示数据的逻辑存储空间(也称为虚拟缓冲区),逻辑存储空间配置有512行,每一行包含96或128个16字节的数据块,每一行的字节数为1536或2048,逻辑存储空间存储了非矩形显示屏幕上的待存储数据(可见显示数据)和冗余数据(非矩形显示屏幕上的不可见显示数据),其中非矩形(以圆形为例)显示屏幕上的可见显示数据用粗线圈出,待存储数据的逻辑地址以行为单位,记录了数据块在每一行的位置,比如非矩形显示屏幕上行1的第1个数据块、非矩形显示屏幕上行1的最后1个数据块,每行的数据块可用数据块编号唯一标识,比如以每行96个数据块为例,行1的第1个数据块的编号为0,行1的最后1个数据块87,行2的第1个数据块的编号为0,行2的最后1个数据块89,依次类推。DE_MMU将待存储数据的逻辑地址映射为物理存储空间(也称为物理缓冲区)中连续的物理地址,并将待存储数据按照映射后的物理地址连续存储到对应的物理存储空间中。
由图3的映射关系图可知,矩形的逻辑存储空间中的全部使用数据(本例子中指显示数据)经过DE_MMU映射之后,SoC系统只需要将逻辑存储空间中全部使用数据的待存储数据(可见显示数据)的数据块连续存储在物理存储空间中,而冗余数据(不可见显示数据)的数据块则不存入到物理存储空间中。从而节省了数据占用的物理存储空间,提高了芯片内存利用率。以圆形显示屏幕为例,一帧图像数据,在经过DE_MMU后,理论上最多可以节省21.46%的存储空间,这对主控芯片的成本和功耗具有重要意义。
以SoC系统可支持的显示屏幕最大分辨率为512*512(单位:像素)、支持4个逻辑存储空间为例,DE_MMU的逻辑框图参见图4。如图4所示,DE_MMU包括逻辑空间基地址映射单元(pBufferoffset)202_1、行块译码器(line/block decoder)202_2、查找表单元(lookupRAM)202_3、地址映射单元(address map unit)202_4。
以一个16字节的数据块(地址位宽为4bit)为例,访存命令携带的要访存的待存储数据的数据块的逻辑地址为Addr[21:4],其中显示屏幕的分辨率为512*512(像素),共有512行数据,可用9bit表示,line[8:0]表示逻辑存储空间的总行数,每行128个数据块,可用7bit表示,Block[6:0]表示逻辑空间中每行的数据块数。具体的:
逻辑空间基地址映射单元202_1对访存命令中的逻辑地址的后2bit地址Addr[21:20]进行解析,得到访存命令要访存的待存储数据所在的逻辑存储空间对应的物理存储空间的物理基地址pBufferoffset[20:4],逻辑空间基地址映射单元202_1的结构参见图5,以SOC系统支持4个逻辑存储空间为例,逻辑空间基地址映射单元202_1根据逻辑地址中的Addr[21:20]地址位确定待存储数据在pBuffer0offset、pBuffer1offset、pBuffer2offset、pBuffer3offset中的哪一逻辑存储空间,从而根据逻辑存储空间和物理存储空间的对应关系,参见图6,确定待存储数据所在的逻辑存储空间对应的物理存储空间,比如Addr[21:20]地址为0010,表示待存储数据的数据块在逻辑存储空间pBuffer1offset中,则确定逻辑存储空间pBuffer1offset对应于物理存储空间1,并得到物理存储空间1的物理基地址;
行块译码器202_2对访存命令中的逻辑地址的前16bit地址Addr[19:4]进行解析,得到访存命令要访存的待存储数据相对于物理基地址的偏移地址信息中的行编号和数据块编号;
行块译码器202_2解析得到待存储数据的行编号后,将行编号发送给查找表单元202_3,查找表单元202_3根据查找表查询偏移地址信息中行编号对应行的起始数据块的地址偏移量Block0offset[19:4],其中查找表由DE_MMU中的地址映射寄存器和偏移地址计算寄存器进行配置,占512*33bit,具体配置参见表1和表2;
地址映射单元202_4包含两级运算单元,第一级运算单元对行块译码器202_2解析得到的偏移地址信息中的行编号和数据块编号,以及对查找表单元202_3解析得到的偏移地址信息中的对应行的起始数据块的地址偏移量进行一级映射,第二级运算单元(用C标识)将得到的一级映射结果和逻辑空间基地址映射单元202_1解析得到的待存储数据所在的逻辑存储空间对应的物理存储空间的物理基地址进行二级映射,得到待存储数据在物理存储空间中的物理地址,按照物理地址将待存储数据连续存储到对应的物理存储空间中。
需要说明的是,待存储数据的逻辑地址中前4bit地址Addr[3:0]表示要访存哪一数据块,因以一个数据块为例,故Addr[3:0]在图4中省略。以完整的逻辑地址为Addr[21:0]为例,下面详细介绍各地址位的用途:
Addr[21:20]:用于标识访存命令要访存哪个逻辑存储空间,位宽为2bit表示SOC系统支持4个逻辑存储空间;
Addr[19:11]:用于标识访存命令要访存哪行的数据块,位宽为9bit表示SoC系统支持512行;
Addr[10:4]:用于标识访存命令要访存对应行的哪个数据块,位宽为7bit表示SoC系统一行数据最多128个数据块;
Addr[3:0]:用于标识访存命令要访存哪个字节数据,位宽为4bit表示1个数据块有16个字节。
图6示例性示出了本申请实施例提供的逻辑存储空间和物理存储空间的对应关系图。如图6所示,以SoC系统支持4个逻辑存储空间为例,每个逻辑存储空间中存储有全部使用数据(包括可见显示数据和不可见显示数据)和系统中除显示数据外的其他数据(比如系统数据),全部使用数据在图6中用于实线表示,其他数据在图6中用于虚线表示,每个逻辑存储空间对应一个物理存储空间,各物理存储空间可以不连续,每个物理存储空间存储有待存储数据(图6中用于实线表示)和系统中除待存储数据外的其他数据(比如系统数据,但不包括不可见显示数据)(图6中用于虚线表示),每个物理存储空间有一个物理基地址,物理存储空间的物理基地址用于确定待存储数据的数据块在物理存储空间的偏移地址。由于每个物理存储空间中仅存储了待存储数据,相对于对应的逻辑存储空间,节省了存储空间。
在本申请的实施例中,逻辑空间基地址映射单元根据逻辑存储空间与物理存储空间之间的对应关系,解析得到待存储数据所在的逻辑存储空间对应的物理存储空间的物理基地址。
需要说明的是,上述实施例中各地址位的定义与显示屏幕的分辨率相对应,可根据显示屏幕的分辨率调整地址位。其中显示屏幕的分辨率和显示屏幕的型号有关。
由于逻辑存储空间中存储了冗余数据(不可见显示数据),对于非矩形显示屏幕来说,冗余数据(不可见显示数据)不会出现在非矩形显示屏幕上,用户不可见,视为无用数据。对于携带冗余数据(不可见数据)的逻辑地址的访存命令,DE_MMU不需要进行地址映射。因此为了提高地址映射准确率,可判断访存命令是否为合法的访存命令,将合法的访存命令携带的逻辑地址映射为物理地址,对不合法的访存命令携带的逻辑地址不进行映射。
在一种可选的实施方式中,DE_MMU还包括块有效组件(block valid comp)202_5,如图7所示,行块译码器202_2解析得到待存储数据的行编号后,查找表单元202_3还可根据行编号查询查找表,得到对应行的第一个待存储数据块的编号FirstBlock[6:0]以及最后一个待存储数据块的编号LastBlock[6:0],块有效组件202_5接收查找表单元202_3发送的使能信号LineEnable,根据行块译码器202_2解析得到的数据块编号判断访存命令是否为合法的访存命令,并为合法的访存命令标记合法性标识。具体的,块有效组件202_5根据数据块编号确定可见显示数据所在行的第一个待存储数据块的编号以及最后一个待存储数据块的编号,判断该数据块编号是否大于等于所在行的第一个待存储数据块的编号且小于等于最后一个待存储数据块的编号,若是,则确定访存命令为合法的访存命令,并为该访存命令标记合法性标识,否则表明访存命令要访存的为冗余数据(不可见显示数据),超出非矩形显示屏幕的范围,确定访存命令为不合法的访存命令,并为该访存命令标记不合法性标识。比如合法的访存命令用“valid”标识,不合法的访存命令用“invalid”标识。为了减少访存命令的带宽,还可以用1个比特位标识访存命令,比如取值为1表示访存命令为合法的访存命令,取值为0表示访存命令不合法的访存命令。
在块有效组件202_5为访存命令标记标识后,若访存命令已标记合法性标识,地址映射单元202_4则将逻辑空间基地址映射单元202_1解析得到的物理基地址、行块译码器202_2解析的到的行编号、数据块编号、以及查找表单元202_3解析得到的对应行的起始数据块的地址偏移量映射为物理存储空间的物理地址,若访存命令已标记不合法性标识,地址映射单元202_4则不进行地址映射。
需要说明的是,本申请实施例中的第一个待存储的数据块和最后一个待存储的数据块按照从左往右的顺序排列的。
本申请的一些实施例中,DE_MMU还包括物理地址控制寄存器,记为DE_MMU_BaseAddrX,X表示逻辑存储空间的个数,本申请的实施例中,X为大于等于0小于等于3的整数,物理地址控制寄存器为逻辑存储空间X配置对应的物理存储空间的物理基地址。
本申请的一些实施例中,DE_MMU还包括地址映射寄存器(记为DE_MMU_LUTy_L)和偏移地址计算寄存器(记为DE_MMU_LUTy_H),地址映射寄存器和偏移地址计算寄存器用于配置查找表。地址映射寄存器和偏移地址计算寄存器的个数与全部使用数据(显示数据)的行数相等,以SoC系统最大支持512行为例,y为大于等于0小于512的整数,地址映射寄存器和偏移地址计算寄存器的个数分别为512。地址映射寄存器配置查找表中每一行的第一个待存储数据块的编号以及最后一个待存储数据块的编号,以及每一行是否有待存储数据,地址映射寄存器的配置如表1所示;偏移地址计算寄存器配置查找表中每一行的起始数据块相对于逻辑存储空间对应的物理存储空间中的物理基地址的偏移地址,可选的,起始数据块为从左边起的第一个待存储数据块(编号为0),偏移地址计算寄存器的配置如表2所示。
表1、地址映射寄存器的配置
表2、偏移地址计算寄存器的配置
需要说明的是,表1和表2中的地址位仅是一种示例,针对不同分辨率的显示屏幕,可相应调整地址位的比特数。
以驱动非矩形LCD进行数据显示的SoC芯片为例,图8示例性示出本申请实施例提供的完整的存储非矩形显示屏幕上显示数据的装置的结构图,如图8所示,该装置还包括非易失性存储器、中央处理器(Central Processing Unit,CPU)、2D加速引擎、直接存储器访问(Direct Memory Access,DMA)、控制器以及显示器,其中CPU、2D加速引擎、DMA统称为主机(master),控制器可以为LCD控制器、显示器具有LCD的显示器。CPU、2D加速引擎或DMA接收访存命令,并通过数据接口将存储在非易失性存储器中的原始数据(未经处理的全部使用数据)读取到逻辑存储空间,以及CPU或2D加速引擎读取物理存储空间中存储的待存储数据,并对读取的待存储数据进行图像处理后再存入物理存储空间中;在触发条件到达时,DMA从物理存储空间中读取图像处理后的待存储数据,并发送给控制器;控制器将接收的待存储数据按照显示器的时序参数发送给显示器;显示器显示待存储数据。其中,触发条件包括但不限于下列中的部分或全部条件:
条件1、接收到控制器发送的屏幕刷新请求,其中屏幕刷新请求是根据显示器的屏幕刷新率发送的,在需要进行屏幕刷新时,控制器发送屏幕刷新请求;
条件2、接收到上层应用发送的显示驱动请求,其中显示驱动请求是在用户操作应用程序时发送的。
基于图8示出的结构图,图9示例性示出了本申请实施例提供的主控芯片驱动非矩形显示屏幕上显示数据进行显示的完整流程图。如图9所示,该流程主要包括以下几步:
S901:CPU、2D加速引擎或DMA接收访存命令,并通过显示数据接口将存储在非易失性存储器中的原始数据读取到逻辑存储空间,访存命令携带待存储数据的逻辑地址。
该步骤中,逻辑存储空间用于存储非矩形显示屏幕上的全部使用数据(显示数据),包括待存储数据(可见显示数据)和冗余数据(不可见显示数据),逻辑存储空间的相关描述参见前述实施例,在此不再重复。其中原始数据是未经处理的显示数据,在断电后原始数据不会丢失。
S902:存储地址映射电路根据待存储数据的逻辑地址,解析得到待存储数据所在的逻辑存储空间对应的物理存储空间的物理基地址以及待存储数据在物理存储空间中的偏移地址信息,并将物理基地址和偏移地址信息映射为物理地址,按照物理地址将待存储数据连续存储到对应的物理存储空间中。
该步骤的详细描述参见前述实施例中存储地址映射电路中各功能模块的描述,在此不再重复。
S903:CPU或2D加速引擎读取物理存储空间中的待存储数据,并对读取的待存储数据进行图像处理后存入物理存储空间中。
该步骤中,图像处理操作包括图形的缩放,图像处理后的待存储数据可以适应显示屏幕的分辨率大小,其中2D加速引擎可以加快图形的绘制。
S904:在触发条件到达时,DMA从物理存储空间中读取图像处理后的待存储数据,并发送给LCD控制器。
该步骤中,LCD控制器收到LCD显示器发送的数据刷新请求,或者LCD控制器收到CPU等上层控制单元发送的刷屏指令后,LCD控制器向DMA发出数据获取请求以获取数据,DMA根据接收的数据获取请求从物理存储空间中读取图像处理后的待存储数据,并把相应的数据送给LCD控制器。其中,DMA从物理存储空间中读取图像处理后的待存储数据不经过CPU直接发送给LCD控制器,提高了数据传输的速度。
S905:LCD控制器将接收的待存储数据按照LCD显示器的时序参数发送给LCD显示器。
该步骤中,LCD显示器的时序参数包括水平同步信号脉宽、水平同步信号前肩、水平同步信号后肩、垂直同步信号脉宽、垂直同步信号前肩、垂直同步信号后肩。显示器上的整个画面内容为一帧图像,一帧图像包含多个行组成。LCD控制器将待存储数据按照LCD显示器的时序参数发送给LCD显示器,使得LCD显示器逐行显示待存储数据。
S906:LCD显示器显示接收的待存储数据。
需要说明的是,由于冗余数据(不可见显示数据)对非矩形显示屏幕来说是不需要显示的,物理存储空间中未存储不可见显示数据,当访存命令携带不可见显示数据的逻辑地址时,LCD控制器可将设定数据发送给LCD显示器,此数据不会展示在屏幕上。
本申请的上述实施例中,CPU、2D加速引擎或DMA等主机在对显示数据进行读写时,由于物理存储空间仅存储的非矩形显示屏幕上的可见显示数据,节省存储空间、提高存储空间利用率。同时,在主机从物理存储空间读取数据时,则逻辑存储空间中的可见显示数据被返回给显示器,而逻辑存储空间中的不可见数据则以设定的默认数据返回给显示器,减少了主机对物理存储空间进行读写操作的数据量,减少了系统带宽的消耗,一定程度上节省了系统功耗。
需要说明的是,本申请实施例提供的存储数据的方法还可应用于其他领域中,用于提高内存空间的利用率。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行上述实施例中的存储数据的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
- 存储数据处理方法、存储数据处理装置及电子装置
- 存储数据纠错的编码和译码方法,装置以及存储数据纠错设备