System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及计算机,尤其涉及一种总线模块的内存管理方法、装置、电子设备和存储介质。
技术介绍
1、gpu(graphics processing unit,图形处理器)作为一个复杂的图像处理单元,其内部众多的图形计算、渲染处理等相关模块需要对大量图像数据进行计算。这些模块本身并不存有固定数据,工作时需要从外部获取计算所需数据,并将计算结果输出给下级模块使用。gpu内的最后一级缓存通常被称为系统级缓存(system level cache,slc)。总线模块(bus interface,bif)需要收取众多请求者的请求,通过轮询仲裁的方式,每个时钟周期发送一笔请求给系统级缓存。相关技术在sram(static random access memomy,静态随机存储器)空间分配和数据保序处理上,面积和时序的开销均较大,且容易导致总线模块阻塞,工作效率较低。
技术实现思路
1、本公开提供了一种总线模块的内存管理技术方案。
2、根据本公开的一方面,提供了一种总线模块的内存管理方法,包括:
3、响应于接收到来自于任一请求者的数据请求,且所述数据请求所需的空间数小于或等于总线模块的内存的剩余空间数,从所述内存的剩余空间中,确定分配给所述数据请求的b个空间,其中,b表示所述数据请求所需的空间数,且b为大于或等于1的整数;
4、通过链表记录所述b个空间之间的连接关系,并记录所述b个空间中的起始空间的地址;
5、向缓存发送所述数据请求,并根据起始空间的地
6、在一种可能的实现方式中,来自不同请求者的数据请求复用同一链表。
7、在一种可能的实现方式中,在所述将所述缓存返回的所述数据请求对应的数据写入所述b个空间之后,所述方法还包括:
8、按顺序向所述请求者返回所述b个空间中的数据。
9、在一种可能的实现方式中,所述方法还包括:
10、通过计数器获取所述内存的剩余空间数。
11、在一种可能的实现方式中,所述方法还包括:
12、响应于分配出所述内存中的m个空间,对所述计数器减m,其中,m为大于或等于1的整数;
13、以及,
14、响应于释放所述内存中的任一空间,对所述计数器加一。
15、在一种可能的实现方式中,
16、所述方法还包括:通过所述内存对应的状态向量,记录所述内存中的n个空间的可用状态;其中,n表示所述内存中的空间数,所述状态向量包括与所述n个空间一一对应的n个状态元素;所述状态向量中的任一状态元素为第一预设值,表示所述状态元素对应的空间不可用;所述状态向量中的任一状态元素为第二预设值,表示所述状态元素对应的空间可用;
17、所述从所述内存的剩余空间中,确定分配给所述数据请求的b个空间,包括:将状态元素为所述第二预设值的b个空间分配给所述数据请求。
18、在一种可能的实现方式中,所述链表包括n个空间节点,且任一空间节点包括指针域和数据域,其中,n表示所述内存中的空间数,所述指针域用于存储下一空间节点的地址,所述数据域用于存储数据。
19、在一种可能的实现方式中,所述根据起始空间的地址和所述连接关系,将所述缓存返回的所述数据请求对应的数据写入所述b个空间,包括:
20、接收所述缓存返回的所述数据请求对应的数据和所述数据对应的偏移量;
21、根据所述起始空间的地址、所述连接关系和所述偏移量,向所述b个空间写入所述数据请求对应的数据。
22、在一种可能的实现方式中,
23、所述方法还包括:向所述数据请求分配指令编号;
24、所述向缓存发送所述数据请求,包括:将所述指令编号连同所述数据请求一并发送给所述缓存,以使所述缓存基于所述指令编号返回所述数据请求对应的数据。
25、在一种可能的实现方式中,所述记录所述b个空间中的起始空间的地址,包括:
26、通过查找表记录所述数据请求对应的指令编号与所述数据请求对应的起始空间的地址之间的对应关系。
27、根据本公开的一方面,提供了一种总线模块的内存管理装置,包括:
28、确定模块,用于响应于接收到来自于任一请求者的数据请求,且所述数据请求所需的空间数小于或等于总线模块的内存的剩余空间数,从所述内存的剩余空间中,确定分配给所述数据请求的b个空间,其中,b表示所述数据请求所需的空间数,且b为大于或等于1的整数;
29、第一记录模块,用于通过链表记录所述b个空间之间的连接关系,并记录所述b个空间中的起始空间的地址;
30、发送与写入模块,用于向缓存发送所述数据请求,并根据起始空间的地址和所述连接关系,将所述缓存返回的所述数据请求对应的数据写入所述b个空间。
31、在一种可能的实现方式中,来自不同请求者的数据请求复用同一链表。
32、在一种可能的实现方式中,所述装置还包括:
33、返回模块,用于按顺序向所述请求者返回所述b个空间中的数据。
34、在一种可能的实现方式中,所述装置还包括:
35、获取模块,用于通过计数器获取所述内存的剩余空间数。
36、在一种可能的实现方式中,所述装置还包括空间计数模块,所述空间计数模块用于:
37、响应于分配出所述内存中的m个空间,对所述计数器减m,其中,m为大于或等于1的整数;
38、以及,
39、响应于释放所述内存中的任一空间,对所述计数器加一。
40、在一种可能的实现方式中,
41、所述装置还包括:第二记录模块,用于通过所述内存对应的状态向量,记录所述内存中的n个空间的可用状态;其中,n表示所述内存中的空间数,所述状态向量包括与所述n个空间一一对应的n个状态元素;所述状态向量中的任一状态元素为第一预设值,表示所述状态元素对应的空间不可用;所述状态向量中的任一状态元素为第二预设值,表示所述状态元素对应的空间可用;
42、所述确定模块用于:将状态元素为所述第二预设值的b个空间分配给所述数据请求。
43、在一种可能的实现方式中,所述链表包括n个空间节点,且任一空间节点包括指针域和数据域,其中,n表示所述内存中的空间数,所述指针域用于存储下一空间节点的地址,所述数据域用于存储数据。
44、在一种可能的实现方式中,所述发送与写入模块用于:
45、接收所述缓存返回的所述数据请求对应的数据和所述数据对应的偏移量;
46、根据所述起始空间的地址、所述连接关系和所述偏移量,向所述b个空间写入所述数据请求对应的数据。
47、在一种可能的实现方式中,
48、所述装置还包括:分配模块,用于向所述数据请求分配指令编号;
49、所述发送与写入模块用于:将本文档来自技高网...
【技术保护点】
1.一种总线模块的内存管理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,来自不同请求者的数据请求复用同一链表。
3.根据权利要求1所述的方法,其特征在于,在所述将所述缓存返回的所述数据请求对应的数据写入所述b个空间之后,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,
7.根据权利要求1所述的方法,其特征在于,所述链表包括n个空间节点,且任一空间节点包括指针域和数据域,其中,n表示所述内存中的空间数,所述指针域用于存储下一空间节点的地址,所述数据域用于存储数据。
8.根据权利要求1至7中任意一项所述的方法,其特征在于,所述根据起始空间的地址和所述连接关系,将所述缓存返回的所述数据请求对应的数据写入所述b个空间,包括:
9.根据权利要求1至7中任意一项所述的方法,其特征在于,
10.根据权利要求9所述的方法,其特征在于,所述
11.一种总线模块的内存管理装置,其特征在于,包括:
12.一种电子设备,其特征在于,包括:
13.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至10中任意一项所述的方法。
...【技术特征摘要】
1.一种总线模块的内存管理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,来自不同请求者的数据请求复用同一链表。
3.根据权利要求1所述的方法,其特征在于,在所述将所述缓存返回的所述数据请求对应的数据写入所述b个空间之后,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,
7.根据权利要求1所述的方法,其特征在于,所述链表包括n个空间节点,且任一空间节点包括指针域和数据域,其中,n表示所述内存中的空间数,所述指针域用于存储下一空间...
【专利技术属性】
技术研发人员:请求不公布姓名,请求不公布姓名,
申请(专利权)人:摩尔线程智能科技北京有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。