存储器分区方法、装置、设备及存储介质与流程
- 国知局
- 2024-07-31 22:57:28
本公开涉及计算机领域,特别涉及一种存储器分区方法、装置、设备及存储介质。
背景技术:
1、目前,由于fpga(field-programmable gate array,现场可编程门阵列)内部的ram(random access memory,随机存储器)的存储空间有限,通常通过搭载大容量的存储器实现扩展fpga的存储空间,需要对大容量的存储器进行分区,便于对存储器的存储空间进行控制。
2、相关技术中,存储器分区方法包括:将存储器分为第一存储区和第二存储区,其中,第一存储区用于存储fpga中的运算程序对终端数据进行运算的过程中产生的中间数据,第二存储区用于存储终端数据,终端数据为终端向fpga发送的需要fpga进行运算的数据。
3、然而,由于存储器容量较大,第一存储区的大小也较大,而运算程序每次从存储器中获取需要的中间数据,都需要对第一存储区进行遍历寻址,这样导致运算程序寻址的时间较长。但是运算程序每次进行运算的时间长度是固定的(一般为一个时间片),在这个时间片内,运算程序需要进行寻址和运算数据,如果寻址的时间较长,就会导致运算数据的时间较短,这样会导致终端数据需要较多的时间片才能被运算完毕,运算程序的运算效率较低。
技术实现思路
1、本公开提供了一种存储器分区方法、装置、设备及存储介质,能够提高运算程序的运行效率。所述技术方案至少包括如下方案:
2、第一方面,公开了一种存储器分区方法,所述存储器与fpga连接,所述fpga中设有多个运算程序,所述存储器包括第一存储区,所述第一存储区包括多个第一子存储区,每个所述运算程序对应至少一个所述第一子存储区,所述方法包括:在满足分区条件的情况下,获取第一分区策略,所述第一分区策略用于指示运算程序和第二子存储区的对应关系;根据所述第一分区策略将所述第一存储区划分为多个第二子存储区,每个所述运算程序对应至少一个所述第二子存储区,所述多个第二子存储区满足以下条件中的任一种:第一运算程序对应的第二子存储区与所述第一运算程序对应的第一子存储区不同,其中,所述第一运算程序为所述多个运算程序中的一个。
3、可选地,所述分区条件包括以下至少一种:所述第一运算程序在运算过程中产生的中间数据的大小大于所述第一运算程序对应的第一子存储区的大小,所述第一运算程序对应的第一子存储区用于存储所述第一运算程序在运算过程中产生的中间数据;所述第一运算程序对应的第一子存储区的大小为0;所述第一运算程序对应的第一子存储区中,未存储数据的区域的大小大于数据阈值的时间达到时间阈值。
4、可选地,所述第一分区策略包括以下至少一种:在存在未对应运算程序的第一子存储区的情况下,增加所述第一运算程序对应的第一子存储区的数量;在所述第一运算程序对应至少两个第一子存储区的情况下,减少所述第一运算程序对应的第一子存储区的数量;在存在未对应运算程序的第一子存储区的情况下,更换所述第一运算程序对应的第一子存储区,使所述第一运算程序对应所述未对应运算程序的第一子存储区中的一个;根据所述第一运算程序在运算过程中产生的中间数据的数据量,对所述第一存储区进行分区。
5、可选地,所述方法还包括:获取第二分区策略,所述第二分区策略用于指示运算程序与第一子存储区的对应关系;根据所述第二分区策略,将所述第一存储区划分为所述多个第一子存储区。
6、可选地,所述fpga与至少一个终端连接,所述存储器还包括第二存储区,所述第二存储区用于存储所述终端向所述fpga发送的终端数据,所述分区条件还包括终端数量发生改变,所述第一分区策略还用于指示所述第一存储区和所述第二存储区的大小,且所述第一分区策略所指示的所述第一存储区的大小和所述第二存储区的大小与所述终端数量相关。
7、可选地,所述方法还包括:接收第二运算程序发送的查询请求,所述查询请求用于指示查询所述第二运算程序对应的所述第二子存储区的地址信息,所述第二运算程序为所述多个运算程序中的一个;根据所述查询请求和所述第一分区策略,确定所述第二运算程序对应的第二子存储区的地址信息,所述第二子存储区的地址信息用于指示所述第二子存储区所包含的存储地址;将所述第二运算程序对应的第二子存储区的地址信息发送给所述第二运算程序。
8、可选地,所述方法还包括:在所述第一存储区中写入初始化数据。
9、第二方面,公开了一种存储器分区装置,所述存储器与fpga连接,所述fpga中设有多个运算程序,所述存储器包括第一存储区,所述第一存储区包括多个第一子存储区,每个所述运算程序对应至少一个所述第一子存储区,所述存储器分区装置包括:获取模块,用于在满足分区条件的情况下,获取第一分区策略,所述第一分区策略用于指示运算程序和第二子存储区的对应关系;分区模块,用于根据所述第一分区策略将所述第一存储区划分为多个第二子存储区,每个所述运算程序对应至少一个所述第二子存储区,所述多个第二子存储区满足以下条件中的任一种:第一运算程序对应的第二子存储区与所述第一运算程序对应的所述第一子存储区不同,其中,所述第一运算程序为所述多个运算程序中的一个。
10、可选地,所述获取模块还用于获取第二分区策略,所述第二分区策略用于指示运算程序与第一子存储区的对应关系;所述分区模块还用于根据所述第二分区策略,将所述第一存储区划分为所述多个第一子存储区。
11、可选地,所述装置还包括:接收模块和发送模块。所述接收模块用于接收第二运算程序发送的查询请求,所述查询请求用于指示查询所述第二运算程序对应的所述第二子存储区的地址信息,所述第二运算程序为所述多个运算程序中的一个;所述分区模块还用于根据所述查询请求和所述第一分区策略,确定所述第二运算程序对应的第二子存储区的地址信息,所述第二子存储区的地址信息用于指示所述第二子存储区所包含的存储地址;所述发送模块用于将所述第二运算程序对应的第二子存储区的地址信息发送给所述第二运算程序。
12、可选地,所述装置还包括:初始化模块,用于在所述第一存储区中写入初始化数据。
13、第三方面,还提供了一种计算机设备,包括:存储器和处理器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,从而执行上述实施例中所述的存储器分区方法。
14、第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,从而执行上述实施例中所述的存储器分区方法。
15、第五方面,提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现第一方面所述的方法。
16、本公开实施例提供的技术方案带来的有益效果至少包括:
17、由于根据第一分区策略将第一存储区划分为多个第二子存储区后,每个运算程序均对应至少一个第二子存储区,故运算程序可以在对应的第二子存储区中进行寻址,而无需在整个第一存储区中进行寻址,有效减少了运算程序寻址所需的时间。这样,在单一时间片内,运算程序寻址所需的时间减少,则运算程序用于运算数据的时间就增加,从而运算程序能够在一个时间片内运算更多的数据,有效提高了运算程序的运算效率。
18、并且,通过在满足分区条件情况下,重新将第一存储区划分为多个第二子存储区,且第一运算程序对应的第二子存储区与第一运算程序对应的第一子存储区不同,因此能够灵活调整第一运算程序对应的子存储区,有利于提高存储器的存储空间使用合理性。
本文地址:https://www.jishuxx.com/zhuanli/20240730/195479.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表