数据缓存处理器及方法技术

技术编号:35124280 阅读:15 留言:0更新日期:2022-10-05 09:54
本发明专利技术公开了一种数据缓存处理器及方法。其中,该方法包括:缓存器读模块,缓存器写模块,第一缓存器和第二缓存器,其中:缓存器读模块,用于从第一缓存器和第二缓存器中确定读缓存器,并从读缓存器中读取多层运算中的预定层的待运算数据;缓存器写模块,用于从第一缓存器和第二缓存器中确定写缓存器,并将对待运算数据进行运算后获得的运算结果数据写入写缓存器。本发明专利技术解决了相关技术中缓存中间层数据时,出现的占用芯片较多的存储资源的技术问题。题。题。

【技术实现步骤摘要】
数据缓存处理器及方法


[0001]本专利技术涉及计算机领域,具体而言,涉及一种数据缓存处理器及方法。

技术介绍

[0002]随着人工智能(Artificial Intelligence,简称为AI)技术的发展和广泛应用,对不同场景下的AI计算提出了越来越大的挑战。根据使用场景不同,对AI的需求也是千变万化。AI计算的技术核心是加速器卷积运算,而在复杂的卷积运算中,不同卷积运算层之间会产生大量中间层数据,即上一层卷积运算层的输出数据和下一层卷积运算层的输入数据。现有的AI加速器方案中,一般是采用现场可编程门阵列(Field

Programmable Gate Array,简称为FPGA)芯片、微控制单元(Microcontroller Unit,简称为MCU)芯片或基于FPGA与MCU的片上系统(简称为FPGA+MCU SoC,其中,片上系统System on Chip,简称为SoC)的方法设计AI加速器。如申请号为201910875064.9的专利公开了以MCU+FPGA的一种系统架构,曾创造性地将加速器独立地从共享存储器中读取数据以及进行运算,并写回运算结果。其中,加速器中间层数据缓存大多是利用FPGA或MCU的片内块状存储单元,上一层卷积运算产生的输出数据写入到片内块状存储单元,然后下一层卷积运算从片内块状存储单元读取该数据作为输入数据。但采用上述数据存储的方法对中间层数据进行处理时,会占用芯片较多的存储资源。
[0003]针对上述的问题,目前尚未提出有效的解决方案。
专利技术内容
[0004]本专利技术实施例提供了一种数据缓存处理器及方法,以至少解决相关技术中缓存中间层数据时,出现的占用芯片较多的存储资源的技术问题。
[0005]根据本专利技术实施例的一个方面,提供了一种数据缓存处理器,包括:缓存器读模块,缓存器写模块,第一缓存器和第二缓存器,其中:所述缓存器读模块,用于从所述第一缓存器和所述第二缓存器中确定读缓存器,并从所述读缓存器中读取多层运算中的预定层的待运算数据;所述缓存器写模块,用于从所述第一缓存器和所述第二缓存器中确定写缓存器,并将对所述待运算数据进行运算后获得的运算结果数据写入所述写缓存器。
[0006]可选地,所述预定层的运算结果数据作为所述预定层的下一层的待运算数据,所述第一缓存器和所述第二缓存器在所述预定层作为读缓存器和写缓存器的角色在下一层中互换。
[0007]可选地,所述缓存器读模块包括:第一读使能控制器,用于使能从所述第一缓存器读取所述待运算数据;以及,第二读使能控制器,用于使能从所述第二缓存器读取所述待运算数据。
[0008]可选地,所述第一读使能控制器,用于接收从所述预定层输出的读使能控制信号,以及第一信号,并输出对所述读使能控制信号与所述第一信号进行运算后的第一结果信号;所述第二读使能控制器,用于接收从所述预定层输出的读使能控制信号,以及第二信
号,并输出对所述读使能控制信号与所述第二信号进行运算后的第二结果信号;其中,所述第一信号与所述第二信号在所述预定层为一对读写相反信号,所述第一结果信号和所述第二结果信号在所述预定层为一对读写相反信号。
[0009]可选地,所述第一读使能控制器在所述预定层的下一层输入的第一信号为对在所述预定层输入的第一信号取反得到。
[0010]可选地,所述多层运算中的初始层的第一信号包括:读使能信号。
[0011]可选地,所述缓存器写模块包括:第一写使能控制器,用于使能将所述运算结果数据写入所述第一缓存器;以及,第二写使能控制器,用于使能将所述运算结果数据写入所述第二缓存器。
[0012]可选地,所述第一写使能控制器,用于接收从所述预定层输出的写使能控制信号,以及第三信号,并输出对所述写使能控制信号与所述第三信号进行运算后的第三结果信号;所述第二写使能控制器,用于接收从所述预定层输出的写使能控制信号,以及第四信号,并输出对所述读使能控制信号与所述第四信号进行运算后的第四结果信号;其中,所述第三信号与所述第四信号在所述预定层为一对读写相反信号,所述第三结果信号和所述第四结果信号在所述预定层为一对读写相反信号。
[0013]可选地,所述第一写使能控制器在所述预定层的下一层输入的第三信号为对在所述预定层输入的第三信号取反得到。
[0014]可选地,所述多层运算中的初始层的第三信号包括:读使能信号。
[0015]根据本专利技术实施例的另一方面,还提供了一种数据缓存处理方法,包括:从读缓存器中读取多层运算中的预定层的待运算数据,其中,所述读缓存器为第一缓存器和第二缓存器中的一个;将对所述待运算数据进行运算后获得的运算结果数据写入写缓存器,其中,所述写缓存器为所述第一缓存器和所述第二缓存器的另一个。
[0016]可选地,所述预定层的运算结果数据作为所述预定层的下一层的待运算数据,所述第一缓存器和所述第二缓存器在所述预定层作为读缓存器和写缓存器的角色在下一层中互换。
[0017]在本专利技术实施例中,采用增加两个缓存器分别用于从其中读取待运算数据,以及将运算后得到的结果数据进行写入,并且在不同的运算层,缓存器读写功能互换的方式对中间层数据进行处理,使得不同缓存器中的读写模块分别起作用,缓存器读模块从对应的缓存器中读取待运算数据,缓存器写模块将运算后得到的结果数据写入对应的缓存器中,相对于相关技术中不同运算层在芯片的同一块存储器内进行存储,节省了大量的片内存储资源,进而解决了相关技术中缓存中间层数据时,出现的占用芯片较多的存储资源的技术问题。
附图说明
[0018]此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:
[0019]图1是根据本专利技术实施例1的数据缓存处理器的结构框图;
[0020]图2是根据本专利技术实施例1的数据缓存处理器中缓存器读模块102的结构框图;
[0021]图3是根据本专利技术实施例1的数据缓存处理器中缓存器写模块104的结构框图;
[0022]图4是根据本专利技术可选实施方式的基于FPGA的加速器中间层数据缓存处理器的结构示意图;
[0023]图5是根据本专利技术可选实施方式的缓存器读写功能互换的结构示意图;
[0024]图6是根据本专利技术可选实施方式的中间层数据缓存的示意图;
[0025]图7是根据本专利技术实施例的数据缓存处理方法的流程图。
具体实施方式
[0026]为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。
[0027]需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据缓存处理器,其特征在于,包括:缓存器读模块,缓存器写模块,第一缓存器和第二缓存器,其中:所述缓存器读模块,用于从所述第一缓存器和所述第二缓存器中确定读缓存器,并从所述读缓存器中读取多层运算中的预定层的待运算数据;所述缓存器写模块,用于从所述第一缓存器和所述第二缓存器中确定写缓存器,并将对所述待运算数据进行运算后获得的运算结果数据写入所述写缓存器。2.根据权利要求1所述的数据缓存处理器,其特征在于,所述预定层的运算结果数据作为所述预定层的下一层的待运算数据,所述第一缓存器和所述第二缓存器在所述预定层作为读缓存器和写缓存器的角色在下一层中互换。3.根据权利要求1所述的数据缓存处理器,其特征在于,所述缓存器读模块包括:第一读使能控制器,用于使能从所述第一缓存器读取所述待运算数据;以及,第二读使能控制器,用于使能从所述第二缓存器读取所述待运算数据。4.根据权利要求3所述的数据缓存处理器,其特征在于,所述第一读使能控制器,用于接收从所述预定层输出的读使能控制信号,以及第一信号,并输出对所述读使能控制信号与所述第一信号进行运算后的第一结果信号;所述第二读使能控制器,用于接收从所述预定层输出的读使能控制信号,以及第二信号,并输出对所述读使能控制信号与所述第二信号进行运算后的第二结果信号;其中,所述第一信号与所述第二信号在所述预定层为一对读写相反信号,所述第一结果信号和所述第二结果信号在所述预定层为一对读写相反信号。5.根据权利要求4所述的数据缓存处理器,其特征在于,所述第一读使能控制器在所述预定层的下一层输入的第一信号为对在所述预定层输入的第一信号取反得到。6.根据权利要求5所述的数据缓存处理器,其特征在于,所述多层运算中的初始层的第一...

【专利技术属性】
技术研发人员:刘锴范召杜金凤宋宁詹宁斯
申请(专利权)人:广东高云半导体科技股份有限公司
类型:发明
国别省市:

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

1