数据存储方法、设备和介质技术

技术编号:33247161 阅读:13 留言:0更新日期:2022-04-27 18:01
本申请涉及数据处理技术领域,特别涉及一种数据存储方法、设备和介质。该方法应用于电子设备,电子设备上安装有编译器,电子设备包括加速器,并且加速器包括多个处理模块,各处理模块包括自用的存储单元;并且方法包括:编译器获取待编译指令,待编译指令包括第一待编译变量;编译器对待编译指令进行编译得到待执行指令;并且编译器确定与第一待编译变量对应的存储单元为第一处理模块的第一存储单元,并确定待执行指令在被第一处理模块执行的过程中,第一待执行变量在第一存储单元中将被存储的第一存储空间。本申请实施例提供的方法,可以减少用户在编程时的工作量,提高编程的易用性、正确性和效率。正确性和效率。正确性和效率。

【技术实现步骤摘要】
数据存储方法、设备和介质


[0001]本专利技术涉及数据处理
,具体涉及一种数据存储方法、设备和介质。

技术介绍

[0002]随着计算机学的发展,电子设备需要处理的数据量越来越多,处理器不再能够满足数据处理需求,因此加速器被设计出来,用于处理图像数据、音频数据、视频数据。不同于传统的处理器,加速器具有多个处理单元,为了提高对数据的处理速率,会在每个处理单元设置专用的存储器(例如专用的静态随机存取存储器(Static Random

Access Memory,SRAM))来暂存需要单独进行访问处理的数据。具体地,处理单元(Processing Elements,简称PE)将直接读取其专用的SRAM上的数据,并将处理结果暂时存储在专用的SRAM上。当加速器的处理单元完成所有的待处理数据后,会调用直接存储器访问(Direct Memory Access,简称DMA)将最终的处理结果存储回加速器的双倍速率同步动态随机存储器(Double Data Rate SDRAM,简称DDR,其中SDRAM全称为Synchronous Dynamic Random Access Memory)。
[0003]但是由于这些加速设备的处理单元不是标准的中央处理器(Central Processing Unit,简称CPU)和图形处理器(Graphics Processing Unit简称GPU),现有技术中,对于加速器的管理,都会在C或者OpenCL语言等高级语言的基础上进行相应扩充,提供编程方式。具体地,程序员向编译器编入程序时,需要向编译器提供程序中变量(包括变量名和变量对应的数据)存储的地址空间(下文称变量地址),编译器根据程序员输入的变量以及变量地址,将变量存储到专用的SRAM上。在此过程中,程序员需要时刻了解专用的SRAM中的存储情况,以确保变量在存储的过程中不会出现SRAM的地址空间已被占用的问题,同时需要花费较多的时间确定SRAM中可被使用的存储空间。此种对SRAM进行编程管理的方法,编程正确性低、效率低、易用性低。

技术实现思路

[0004]为解决上述对于专用SRAM的管理时,编程正确性低、效率低、易用性低的问题,本申请实施例提供了一种数据存储方法、设备和介质。
[0005]第一方面,本申请实施例提供了一种数据存储方法,应用于电子设备,电子设备上安装有编译器,电子设备包括加速器,并且加速器包括多个处理模块,各处理模块包括自用的存储单元;
[0006]并且方法包括:编译器获取待编译指令,待编译指令包括第一待编译变量;
[0007]编译器对待编译指令进行编译得到待执行指令,其中,待执行指令包括第一待执行变量,第一待执行变量为第一待编译变量编译后的变量;
[0008]并且编译器确定与第一待编译变量对应的存储单元为第一处理模块的第一存储单元,并确定待执行指令在被第一处理模块执行的过程中,第一待执行变量在第一存储单元中将被存储的第一存储空间。
[0009]其中,处理模块即下文实施例中的处理单元,例如图1b中的处理单元102、处理单
元103和处理单元104。
[0010]可以理解,其中的自用的存储单元可以理解为处理模块的专用存储单元,即只有存储单元所在的处理模块可以实现对其专用存储单元的数据指令的读写和删除。例如,第一存储单元为第一处理模块的专用存储单元,即只有第一处理模块可以实现对第一存储单元的数据指令读写和删除。
[0011]其中,第一待执行变量在第一存储单元将被存储的第一存储空间,可以理解为,编译器确定的,第一待执行变量在第一存储单元的存储地址、存储时需要占用的空间等信息。
[0012]本申请实施例提供的数据存储方法,在符合高级编程语言标准的基础上,适当地对编程模型进行扩充,使得编译器能够自动完成对待执行指令中待执行变量的存储管理,进而用户在编程对应的数据存储指令时,无需用户关心存储单元的使用情况,可以减少用户工作量,提高编程的易用性、正确性和效率。
[0013]在上述第一方面的一种可能的实现中,存储单元为静态随机存取存储器。
[0014]可以理解,在一些实施例中,存储单元还可以为其他类型的存储器,不限于上述静态随机存取存储器,例如同步动态随机存储器等,本申请对此不作限制。
[0015]在上述第一方面的一种可能的实现中,存储单元包括至少一个堆栈存储区域,并且待执行变量所需的存储空间位于堆栈存储区域中。
[0016]在上述第一方面的一种可能的实现中,第一待执行变量在第一存储单元的堆栈存储区域中以堆栈的方式进行存储。
[0017]可以理解,堆栈的方式的存储为,第一待执行变量在第一存储单元的堆栈存储区域中的以堆栈的数据存储结构进行存储,且在对应的堆栈存储区域中,数据只能在该区域的一端(栈顶)进行操作。
[0018]在上述第一方面的一种可能的实现中,各处理模块自用的存储单元中的堆栈存储区域的区域标识与待编译指令的待编译变量的变量标识存在对应关系;
[0019]并且编译器确定与第一待编译变量对应的存储单元为第一处理模块的第一存储单元,包括:
[0020]编译器基于第一待编译变量的变量标识,确定与变量标识对应的区域标识属于第一存储单元的堆栈存储区域。
[0021]在上述第一方面的一种可能的实现中,加速器还包括存储模块,各处理模块均可访问存储模块。
[0022]在上述第一方面的一种可能的实现中,存储模块为双倍速率同步动态随机存储器。
[0023]可以理解,在本申请的一些实施例中,存储模块还可以为除了双倍速率同步动态随机存储器之外的其他存储器,例如动态随机存取存储器等,本申请对此不作限制。
[0024]在上述第一方面的一种可能的实现中,待编译执行还包括第二待编译变量,待执行指令还包括第二待执行变量,第二待执行变量为第二待编译变量编译后的变量,并且方法还包括:
[0025]编译器根据第二待编译变量的变量标识确定待执行指令在被执行的过程中,第二待执行变量将被存储的第二存储空间位于存储模块中。
[0026]在上述第一方面的一种可能的实现中,编译器确定待执行指令在被第一处理模块
执行的过程中,第一待执行变量在第一存储单元中将被存储的第一存储空间,包括:
[0027]编译器计算第一待执行变量的长度,并根据长度确定第一待执行变量将被存储的第一存储空间。
[0028]可以理解,其中的长度为第一待执行变量的大小,例如第一待执行变量为int型数据,则其长度为4字节。
[0029]在上述第一方面的一种可能的实现中,上述方法还包括:
[0030]确定的存储单元所在的处理模块执行对应的待执行指令,并将待执行变量存储至存储空间。
[0031]第二方面,本申请实施例提供了一种电子设备,一个或多个处理器;一个或多个存储器;一个或多个存储器存储有一个或多个程序,当一个或者多个程序被一个或多个处理器执行时,使得电子设备执行上述数据存储方本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据存储方法,应用于电子设备,其特征在于,所述电子设备上安装有编译器,所述电子设备包括加速器,并且所述加速器包括多个处理模块,各所述处理模块包括自用的存储单元;并且所述方法包括:所述编译器获取待编译指令,所述待编译指令包括第一待编译变量;所述编译器对所述待编译指令进行编译得到待执行指令,其中,所述待执行指令包括第一待执行变量,所述第一待执行变量为所述第一待编译变量编译后的变量;并且所述编译器确定与所述第一待编译变量对应的存储单元为第一处理模块的第一存储单元,并确定所述待执行指令在被所述第一处理模块执行的过程中,所述第一待执行变量在所述第一存储单元中将被存储的第一存储空间。2.根据权利要求1所述的数据存储方法,其特征在于,所述存储单元为静态随机存取存储器。3.根据权利要求1所述的数据存储方法,其特征在于,所述存储单元包括至少一个堆栈存储区域,并且所述待执行变量所需的存储空间位于所述堆栈存储区域中。4.根据权利要求3所述的数据存储方法,其特征在于,所述第一待执行变量在所述第一存储单元的堆栈存储区域中以堆栈的方式进行存储。5.根据权利要求3所述的数据存储方法,其特征在于,各所述处理模块自用的存储单元中的所述堆栈存储区域的区域标识与所述待编译指令的待编译变量的变量标识存在对应关系;并且所述编译器确定与所述第一待编译变量对应的存储单元为第一处理模块的第一存储单元,包括:所述编译器基于所述第一待编译变量的变量标识,确定与所述变量标识对应的区域标识属于所述第一存储单元的堆栈存储区域。6.根据权利要求1所述的数据存储方法,其特征在于,所述加速器还包括存储模块,所述各处理模块...

【专利技术属性】
技术研发人员:廖兴龙张定飞
申请(专利权)人:安谋科技中国有限公司
类型:发明
国别省市:

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

1