-
公开(公告)号:CN115629805A
公开(公告)日:2023-01-20
申请号:CN202211386006.8
申请日:2022-11-07
Applicant: 湖南科技大学
IPC: G06F9/30 , G06F9/38 , G06F1/3234
Abstract: 本发明提供了一种基于向量处理器排序的运算方法,该方法包括以下两种情况:第一种情况是待处理的数据量小,二级高速缓存:Level2 Cache,简称L2Cache能全部装入数据,此时,从片外存储器DDR中选取所有偶数列元素传输到L2Cache上半区,选取所有奇数列元素传输到L2Cache的下半区;首先,上半区元素与下半区元素一对一比较;然后,上半区元素错位与下半区元素一对一比较;循环进行,直至结束。第二种情况是L2Cache不能全部装入待处理数据,首先将片外存储器DDR中数据根据L2Cache大小分为N+1块。将N+1块数据分别传输到L2Cache中按第一种情况进行排序运算。然后将DDR的各块有序数据传输sizeof(L2Cache)/(N+1)大小的数据到L2Cache空间,将L2Cache装满,然后按第一种情况进行排序运算,min为当次排序好的最后一个数据。从DDR中各块有序数据中找到大于min的最小数据的位置ddrLocAddr,从ddrLocAddr开始,传输sizeof(L2Cache)/(N+1)大小的数据到L2Cache空间,将L2Cache装满,然后按第一种情况进行排序运算。依次进行,直到DDR中各块数据排序完成。
-
公开(公告)号:CN114035800A
公开(公告)日:2022-02-11
申请号:CN202111354015.4
申请日:2021-11-16
Applicant: 湖南科技大学
IPC: G06F8/41
Abstract: 本发明公开了一种提升指令级并行性的寄存器选择优化方法,其步骤包括:1)描述指令与指令子集之间的映射关系;2)分析与候选者所在指令相关的其他指令中已经使用的寄存器,如果除这些寄存器外还有未被分配的寄存器,则跳转到第4)步;否则,执行下一步;3)找到同时包含分配候选者及其候选寄存器的指令子集,以单个候选寄存器为单位分别计算指令子集数量和包含候选寄存器的指令数量;4)为各寄存器分配候选者选择对依赖关系影响最少的寄存器。本发明充分考虑了指令间的逻辑并行关系,能在尽量少的指令子集和尽量少的指令范围内引起额外的指令间数据依赖关系,从而有利于提升指令调度的自由度,得到指令级并行度更高的目标代码。
-
公开(公告)号:CN111324354A
公开(公告)日:2020-06-23
申请号:CN201911378867.X
申请日:2019-12-27
Applicant: 湖南科技大学
IPC: G06F8/41
Abstract: 本发明公开了一种融合寄存器对需求的寄存器选择方法,其包括:步骤S1:分析各寄存器分配候选者在符号寄存器对中出现的情况;步骤S2:计算各寄存器分配候选者的奇偶号收益P;所述奇偶号收益P是指一个寄存器分配候选者在其涉及的那些符号寄存器对操作数中如果该候选者被指派奇数或偶数编号寄存器时将获得的收益;步骤S3:为各寄存器分配候选者进行寄存器指派。本发明具有能够提高寄存器对分配候选者的指派成功率、减少冗余的溢出、增加代码优化机会等优点。
-
公开(公告)号:CN106020922B
公开(公告)日:2019-01-08
申请号:CN201610370406.8
申请日:2016-05-30
Applicant: 湖南科技大学
IPC: G06F8/41
Abstract: 用跳转目标基本块的执行包填充空闲节拍的指令调度方法,包括如下步骤:步骤一,在代码流图中找出与进行跨基本块选择执行包填充空闲节拍操作有关的目标基本块对;步骤二,对跳转目标基本块内的指令执行包进行前驱执行包判定,即判定该执行包内各指令所依赖的其他指令,即被依赖指令所在的执行包及其位置,并根据指令之间的依赖关系确定该执行包的可执行最早时间对应的节拍;步骤三,根据各个指令执行包可执行最早时间对应的节拍与基本块内空闲节拍的位置关系,计算出各指令执行包各自对应的可填充最早时间,移动这些执行包到对应的空闲节拍处,完成填充。
-
公开(公告)号:CN106020922A
公开(公告)日:2016-10-12
申请号:CN201610370406.8
申请日:2016-05-30
Applicant: 湖南科技大学
IPC: G06F9/45
CPC classification number: G06F8/443
Abstract: 用跳转目标基本块的执行包填充空闲节拍的指令调度方法,包括如下步骤:步骤一,在代码流图中找出与进行跨基本块选择执行包填充空闲节拍操作有关的目标基本块对;步骤二,对跳转目标基本块内的指令执行包进行前驱执行包判定,即判定该执行包内各指令所依赖的其他指令,即被依赖指令所在的执行包及其位置,并根据指令之间的依赖关系确定该执行包的可执行最早时间对应的节拍;步骤三,根据各个指令执行包可执行最早时间对应的节拍与基本块内空闲节拍的位置关系,计算出各指令执行包各自对应的可填充最早时间,移动这些执行包到对应的空闲节拍处,完成填充。
-
-
-
-