加速硬件中的存储器排序的制作方法

文档序号:14911056发布日期:2018-07-10 23:25阅读:来源:国知局

技术特征:

1.一种集成电路,包括:

存储器接口,耦合至存储器,所述存储器用于存储对应于正为程序执行的指令的数据;

操作队列,耦合至所述存储器接口,所述操作队列用于对于对应于所述指令的存储器操作进行缓冲;

加速硬件,用于执行对应于所述指令的子程序;

输入队列的集合,耦合至所述加速硬件并耦合至所述存储器接口,其中,所述输入队列的集合用于从所述加速硬件接收:

与所述存储器操作中的第二存储器操作相关联的所述存储器的地址;以及

与所述地址相关联的依赖性令牌,所述依赖性令牌指示对由所述存储器操作中的第一存储器操作生成的数据的依赖性,所述第一存储器操作先于所述第二存储器操作;以及

调度器电路,耦合至所述存储器接口、所述操作队列和所述输入队列的集合,其中,所述调度器电路用于响应于所述输入队列的集合对所述依赖性令牌和所述地址的接收来调度所述第二存储器操作向所述存储器的发布。

2.如权利要求1所述的集成电路,其中,所述调度器电路是操作管理器电路的部分,并且所述操作管理器电路用于响应于所述第一存储器操作的完成而将所述第二存储器操作发布至所述存储器,其中,所述第一存储器操作是加载操作、存储操作或围栏操作中的一个,并且所述第二存储器操作是加载操作、存储操作或围栏操作中的一个。

3.如权利要求1所述的集成电路,其中,所述第二存储器操作是加载操作,并且所述输入队列的集合包括加载地址队列、存储地址队列、存储数据队列和依赖性队列,所述集成电路进一步包括完成队列,所述完成队列耦合至所述加速硬件和所述存储器接口,其中,所述完成队列用于在所述加载操作完成时对从所述存储器接收到的数据进行缓冲。

4.如权利要求3所述的集成电路,其中,所述第一存储器操作和所述第二存储器操作中的一个当在所述操作队列中被缓冲时包括存储器变元,所述存储器变元包含以下至少一项:

输入队列标识符,用于指示所述输入队列集合内的输入通道;

输出队列标识符,用于指示所述完成队列内的输出通道;

依赖性队列标识符,用于指示所述依赖性队列内的依赖性通道;或者

操作类型指示符,用于指示存储器操作的类型。

5.如权利要求3所述的集成电路,进一步包括计数器集合,所述计数器集合包括用于生成所述依赖性令牌的第一计数器,并且其中,所述调度器电路用于:进一步响应于所述第一计数器不饱和且在所述完成队列中具有用于完成所述第二存储器操作的空间而调度所述加载操作。

6.如权利要求3所述的集成电路,其中,响应于接收到存储在所述存储器中的所述地址处的数据,所述完成队列进一步用于将所述数据与所述依赖性令牌一起提供给所述加速硬件。

7.如权利要求3所述的集成电路,其中,所述调度器电路进一步用于:

确定所述加载操作之后的第三存储器操作依赖于由所述加载操作读取的数据;

复制所述加载操作的所述依赖性令牌;以及

将所述加载操作与所述依赖性令牌一起发布至所述存储器,以便向所述第三存储器操作指示对由所述加载操作读取的数据的依赖性。

8.如权利要求1所述的集成电路,其中,所述第二存储器操作属于在所述操作队列中被缓冲的多个可执行存储器操作,所述集成电路进一步包括:

优先级编码器,用于从所述多个可执行存储器操作之间确定所述第二存储器操作具有执行优先级,并生成用于标识所述第二存储器操作的选择信号;以及

多路复用器,用于根据所述选择信号从所述多个可执行存储器操作之间选择所述第二存储器操作。

9.一种存储器排序电路,包括:

存储器接口,耦合至存储器,所述存储器用于存储对应于正为程序执行的指令的数据;

操作队列,耦合至所述存储器接口,所述操作队列用于对于对应于所述指令的存储器操作进行缓冲;

输入队列的集合,耦合至加速硬件,所述加速硬件用于执行对应于所述指令的子程序,其中,所述输入队列的集合用于从所述加速硬件接收:

从中检索用于所述存储器操作中的加载操作的数据的所述存储器的地址;以及

与所述地址相关联的依赖性令牌,其中所述依赖性令牌指示对由所述存储器操作中的存储操作存储的数据的依赖性,所述存储操作先于所述加载操作;以及

调度器电路,耦合至所述存储器接口、所述操作队列和所述输入队列的集合,其中,所述调度器电路用于响应于所述输入队列的集合对所述依赖性令牌和所述地址的接收来调度所述加载操作向所述存储器的发布。

10.如权利要求9所述的存储器排序电路,其中,所述输入队列的集合包括:

加载地址队列,用于从所述加速硬件接收所述存储器的所述地址;

存储地址队列,用于从所述加速硬件接收所述存储器的所述地址,所述地址与所述存储操作相关联;

存储数据队列,用于从所述加速硬件接收与用于所述存储操作的所述地址相关联的数据;以及

依赖性队列,用于从所述加速硬件接收与所述加载地址队列中的所述地址相关联的所述依赖性令牌。

11.如权利要求9所述的存储器排序电路,进一步包括完成队列,所述完成队列耦合至所述加速硬件和所述存储器接口,其中,所述完成队列用于在所述加载操作的完成时对从所述存储器的所述地址接收到的数据进行缓冲,并且其中,所述加载操作和所述存储操作中的一个当在所述操作队列中被排队时包括存储器变元,所述存储器变元包含以下至少一项:

输入队列标识符,用于指示所述输入队列集合内的输入通道;

输出队列标识符,用于指示所述完成队列内的输出通道;

依赖性队列标识符,用于指示所述输入队列的集合中的依赖性队列内的依赖性通道;或者

操作类型指示符,用于指示存储器操作的类型。

12.如权利要求11所述的存储器排序电路,其中,所述调度器电路进一步用于鉴于以下各项来指示所述加载操作是可执行的:所述依赖性令牌、所述地址在所述输入队列的集合中的可用性以及所述完成队列中的在其中缓冲所述数据的槽的可用性。

13.如权利要求12所述的存储器排序电路,其中,所述存储器排序电路进步包括执行电路,所述执行电路耦合至所述调度器电路,所述执行电路包括优先级编码器,所述优先级编码器用于响应于从所述操作队列中的多个可执行存储器操作之间确定所述加载操作具有执行优先级而生成用于标识所述加载操作的选择器信号,并且其中所述执行电路进一步包括选择电路,所述选择电路用于:

响应于所述选择信号而从所述操作队列中的所述多个可执行存储器操作中选择所述加载操作;以及

将指示对所述加载操作的选择的控制信号传输至多路复用器的集合,以便将所述地址和数据传递至将被传输到所述存储器的存储器命令。

14.如权利要求12所述的存储器排序电路,其中,所述调度器电路响应于所述输入队列的集合中的存储数据队列包含与在所述输入队列的集合中的存储地址队列中被缓冲的地址相关联的数据而确定所述存储操作是可执行的。

15.如权利要求9所述的存储器排序电路,进一步包括多个计数器,所述多个计数器耦合至所述输入队列的集合中的依赖性队列并耦合至所述调度器电路,所述多个计数器包括第一计数器,所述第一计数器用于生成依赖于所述加载操作的结果的用于后续存储器操作的第二依赖性令牌。

16.如权利要求15所述的存储器排序电路,其中,所述调度器电路进一步用于:

确定所述后续存储器操作依赖于由所述加载操作从所述存储器中的所述地址检索的数据;

在所述后续存储器操作内提供依赖性变元,所述依赖性变元用于标识与将在所述输入队列的集合中的存储地址队列中被缓冲的第二地址相关联的依赖性队列;

在所述加载操作的完成时,响应于来自于所述存储器中的所述地址的数据的到达而触发第二依赖性令牌的生成;以及

响应于所述依赖性队列接收到所述第二依赖性令牌且所述存储地址队列接收到所述第二地址,调度所述后续存储器操作以用于发布。

17.如权利要求9所述的存储器排序电路,进一步包括完成队列,所述完成队列耦合至所述加速硬件并耦合至所述调度器电路,所述完成队列用于响应于所述加载操作的完成而对接收到的数据进行缓冲,并且其中,所述调度器电路进一步用于:

将索引分配到包括用于所述加载操作的按顺序的下一个槽的所述完成队列中以生成索引分配;

响应于所述加载操作的完成,将所述索引分配传递至所述存储器以指示向何处发送所述数据;

当所述数据到达时,使所述数据入列在所述完成队列中;以及

将与所述按顺序的下一个槽相关联的有效性位置位为有效。

18.如权利要求17所述的存储器排序电路,其中,所述调度器电路进一步用于:在完成所述加载操作时,响应于将所述数据提供给所述加速硬件,使所述数据出列且将所述有效性位置位为无效。

19.一种方法,包括:

在存储器排序电路的操作队列中将存储器操作排队,所述存储器操作用于与同加速硬件相关联的存储器交互,其中,处理器不按程序顺序向所述存储器请求所述存储器操作;

在输入队列的集合中从所述加速硬件接收与所述存储器操作中的第二存储器操作相关联的存储器的地址;

从所述加速硬件接收与所述地址相关联的依赖性令牌,其中,所述依赖性令牌指示对由所述存储器操作中的第一存储器操作生成的数据的依赖性,所述第一存储器操作先于所述第二存储器操作;以及

由所述存储器排序电路响应于接收到所述依赖性令牌和与所述依赖性令牌相关联的地址而调度所述第二存储器操作向所述存储器的发布。

20.如权利要求19所述的方法,进一步包括:响应于所述第一存储器操作的完成而将所述第二存储器操作发布至所述存储器,其中,所述第一存储器操作是加载操作、存储操作或围栏操作中的一个,并且所述第二存储器操作是加载操作、存储操作或围栏操作中的一个。

21.如权利要求19所述的方法,其中,所述第一存储器操作包括存储操作,并且其中,所述第二存储器操作包括用于读取所述存储器中的所述地址处的数据的加载操作,所述方法进一步包括:

由所述存储器排序电路的调度器电路响应于检测到所述依赖性令牌并在加载地址队列中接收到所述地址而调度所述第二存储器操作;

在所述加载操作的完成时,确定后续存储器操作依赖于从所述存储器中的所述地址检索到的数据;

在所述后续存储器操作内提供依赖性变元,所述依赖性变元标识与将在所述输入队列的集合中被缓冲的第二地址相关联的依赖性队列;

对于所述加载操作而言,响应于以下一种情况而触发用于所述依赖性队列的第二依赖性令牌的生成:将所述地址发送至所述存储器;或来自所述存储器中的所述地址的数据的到达;以及

响应于所述依赖性队列接收到所述第二依赖性令牌且所述输入队列的集合接收到所述第二地址,由所述调度器电路调度所述后续存储器操作以用于发布。

22.如权利要求19所述的方法,其中,所述存储器排序电路进一步包括计数器集合,所述计数器集合包括用于生成所述依赖性令牌的第一计数器,并且其中调度所述第二存储器操作以用于发布进一步响应于所述第一计数器不饱和且在完成队列中具有用于完成所述第二存储器操作的空间。

23.如权利要求19所述的方法,其中,在所述第二存储器操作的完成时,响应于接收到存储在所述存储器中的所述地址处的数据,所述方法进一步包括:由完成队列将所述数据与所述依赖性令牌一起提供给所述加速硬件。

24.如权利要求19所述的方法,其中,所述存储器操作中的所述第二存储器操作属于在所述操作队列中经排队的一组可执行存储器操作,所述方法进一步包括:

由所述存储器排序电路的优先级编码器从所述一组可执行存储器操作之间确定所述第二存储器操作具有执行优先级;

由所述优先级编码器生成标识所述第二存储器操作的选择信号;以及

根据所述选择信号从所述一组可执行存储器操作之间选择所述第二存储器操作。

25.一种设备,包括用于执行如权利要求19-24中任意一项所述的方法的装置。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1