This application discloses accelerated memory sorting in hardware. An integrated circuit consists of a memory interface and an operation queue, which is coupled to the memory, which is used to store data corresponding to the instruction, which is used to buffer memory operations corresponding to the instruction. Integrated circuits can include accelerated hardware for executing subroutines corresponding to instructions. The set of input queues may include address queues and dependency queues, which are used to address the memory associated with the second memory operation in the accelerated hardware reception and memory operation, which is used to receive an dependent token associated with the address from the accelerated hardware. The dependency token indicates the dependence on the data generated by the first memory operation in the memory operation. In response to the dependency queue receiving the dependent token and the address queue receiving the address, the scheduler circuit schedules the second memory operation to release the memory.
【技术实现步骤摘要】
加速硬件中的存储器排序联邦资助的研究或开发本专利技术是在由国防部授予的合同号H98230A-13-D-0124的政府支持下进行的。政府具有本专利技术的某些权利。
本公开涉及加速硬件,更具体地涉及在加速硬件(诸如,空间阵列)中的存储器排序。
技术介绍
加速硬件涉及对数据通信、存储和检索、加密和解密、数学运算、图形、网页浏览等进行加速的设备。加速硬件可包括单独的集成电路(也称为IC或芯片)、印刷电路板或独立系统。加速硬件的一些示例包括网络访问加速器(NAS)、图形加速器和浮点加速器(FPA)。在一个实施例中,加速硬件被实例化为空间架构,该空间架构是使用空间阵列在计算系统中加速用户应用的高能效和高性能手段。空间架构包括处理组件的阵列,该处理组件诸如现场可编程门阵列(FPGA)中的门或其他处理元件(PE)。附图说明图1A是根据本公开的实施例的系统的框图,该系统采用插入在存储器子系统与加速硬件之间的存储器排序电路。图1B是根据本公开的实施例的图1A中的系统的框图,但是该系统采用多个存储器排序电路。图2是示出根据本公开的实施例的进入加速硬件以及离开加速硬件的存储器操作的一般运行的框图。图3是示出根据本公开的实施例的存储操作的空间依赖性流的框图。图4是根据本公开的实施例的图1中的存储器排序电路的详细框图。图5是根据本公开的实施例的图1中的存储器排序电路的微架构的流程图。图6是根据本公开的实施例的可执行确定器电路的框图。图7是根据本公开的实施例的优先级编码器的框图。图8是根据本公开的实施例的逻辑和二进制两种形式的示例性加载操作的框图。图9A是示出根据本公开的实施例的示例代 ...
【技术保护点】
1.一种集成电路,包括:存储器接口,耦合至存储器,所述存储器用于存储对应于正为程序执行的指令的数据;操作队列,耦合至所述存储器接口,所述操作队列用于对于对应于所述指令的存储器操作进行缓冲;加速硬件,用于执行对应于所述指令的子程序;输入队列的集合,耦合至所述加速硬件并耦合至所述存储器接口,其中,所述输入队列的集合用于从所述加速硬件接收:与所述存储器操作中的第二存储器操作相关联的所述存储器的地址;以及与所述地址相关联的依赖性令牌,所述依赖性令牌指示对由所述存储器操作中的第一存储器操作生成的数据的依赖性,所述第一存储器操作先于所述第二存储器操作;以及调度器电路,耦合至所述存储器接口、所述操作队列和所述输入队列的集合,其中,所述调度器电路用于响应于所述输入队列的集合对所述依赖性令牌和所述地址的接收来调度所述第二存储器操作向所述存储器的发布。
【技术特征摘要】
2016.12.30 US 15/396,0381.一种集成电路,包括:存储器接口,耦合至存储器,所述存储器用于存储对应于正为程序执行的指令的数据;操作队列,耦合至所述存储器接口,所述操作队列用于对于对应于所述指令的存储器操作进行缓冲;加速硬件,用于执行对应于所述指令的子程序;输入队列的集合,耦合至所述加速硬件并耦合至所述存储器接口,其中,所述输入队列的集合用于从所述加速硬件接收:与所述存储器操作中的第二存储器操作相关联的所述存储器的地址;以及与所述地址相关联的依赖性令牌,所述依赖性令牌指示对由所述存储器操作中的第一存储器操作生成的数据的依赖性,所述第一存储器操作先于所述第二存储器操作;以及调度器电路,耦合至所述存储器接口、所述操作队列和所述输入队列的集合,其中,所述调度器电路用于响应于所述输入队列的集合对所述依赖性令牌和所述地址的接收来调度所述第二存储器操作向所述存储器的发布。2.如权利要求1所述的集成电路,其中,所述调度器电路是操作管理器电路的部分,并且所述操作管理器电路用于响应于所述第一存储器操作的完成而将所述第二存储器操作发布至所述存储器,其中,所述第一存储器操作是加载操作、存储操作或围栏操作中的一个,并且所述第二存储器操作是加载操作、存储操作或围栏操作中的一个。3.如权利要求1所述的集成电路,其中,所述第二存储器操作是加载操作,并且所述输入队列的集合包括加载地址队列、存储地址队列、存储数据队列和依赖性队列,所述集成电路进一步包括完成队列,所述完成队列耦合至所述加速硬件和所述存储器接口,其中,所述完成队列用于在所述加载操作完成时对从所述存储器接收到的数据进行缓冲。4.如权利要求3所述的集成电路,其中,所述第一存储器操作和所述第二存储器操作中的一个当在所述操作队列中被缓冲时包括存储器变元,所述存储器变元包含以下至少一项:输入队列标识符,用于指示所述输入队列集合内的输入通道;输出队列标识符,用于指示所述完成队列内的输出通道;依赖性队列标识符,用于指示所述依赖性队列内的依赖性通道;或者操作类型指示符,用于指示存储器操作的类型。5.如权利要求3所述的集成电路,进一步包括计数器集合,所述计数器集合包括用于生成所述依赖性令牌的第一计数器,并且其中,所述调度器电路用于:进一步响应于所述第一计数器不饱和且在所述完成队列中具有用于完成所述第二存储器操作的空间而调度所述加载操作。6.如权利要求3所述的集成电路,其中,响应于接收到存储在所述存储器中的所述地址处的数据,所述完成队列进一步用于将所述数据与所述依赖性令牌一起提供给所述加速硬件。7.如权利要求3所述的集成电路,其中,所述调度器电路进一步用于:确定所述加载操作之后的第三存储器操作依赖于由所述加载操作读取的数据;复制所述加载操作的所述依赖性令牌;以及将所述加载操作与所述依赖性令牌一起发布至所述存储器,以便向所述第三存储器操作指示对由所述加载操作读取的数据的依赖性。8.如权利要求1所述的集成电路,其中,所述第二存储器操作属于在所述操作队列中被缓冲的多个可执行存储器操作,所述集成电路进一步包括:优先级编码器,用于从所述多个可执行存储器操作之间确定所述第二存储器操作具有执行优先级,并生成用于标识所述第二存储器操作的选择信号;以及多路复用器,用于根据所述选择信号从所述多个可执行存储器操作之间选择所述第二存储器操作。9.一种存储器排序电路,包括:存储器接口,耦合至存储器,所述存储器用于存储对应于正为程序执行的指令的数据;操作队列,耦合至所述存储器接口,所述操作队列用于对于对应于所述指令的存储器操作进行缓冲;输入队列的集合,耦合至加速硬件,所述加速硬件用于执行对应于所述指令的子程序,其中,所述输入队列的集合用于从所述加速硬件接收:从中检索用于所述存储器操作中的加载操作的数据的所述存储器的地址;以及与所述地址相关联的依赖性令牌,其中所述依赖性令牌指示对由所述存储器操作中的存储操作存储的数据的依赖性,所述存储操作先于所述加载操作;以及调度器电路,耦合至所述存储器接口、所述操作队列和所述输入队列的集合,其中,所述调度器电路用于响应于所述输入队列的集合对所述依赖性令牌和所述地址的接收来调度所述加载操作向所述存储器的发布。10.如权利要求9所述的存储器排序电路,其中,所述输入队列的集合包括:加载地址队列,用于从所述加速硬件接收所述存储器的所述地址;存储地址队列,用于从所述加速硬件接收所述存储器的所述地址,所述地址与所述存储操作相关联;存储数据队列,用于从所述加速硬件接收与用于所述存储操作的所述地址相关联的数据;以及依赖性队列,用于从所述加速硬件接收与所述加载地址队列中的所述地址相关联的所述依赖性令牌。11.如权利要求9所述的存储器排序电路,进一步包括完成队列,所述完成队列耦合至所述加速硬件和所述存储器接口,其中,所述完成队列用于在所述加载操作的完成时对从所述存储器的所述地址接收到的数据进行缓冲,并且其中,所述加载操作和所述存储操作中的一个当在所述操作队列中被排队时包括存储器变元,所述存储器变元包含以下至少一项:输入队列标识符,用于指示所述输入队列集合内的输入通道;输出队列标识符,用于指示所述完成队列内的输出通道;依赖性队列标识符,用于指示所述输入队列的集合中的依赖性队列内的依赖性通道;或者操作类型指示符,用于指示存储器操作的类型。12.如权利要求11所述的存储器排序电路,其中,所述调度器电路进一步用于鉴于以下各项来指示所述加载操作是可执行的:所述依赖性令牌、所述地址在所述输入队列的集合中的可用性以及所述完成队列中的在其中缓冲所述...
【专利技术属性】
技术研发人员:K·弗莱明,小西蒙·C·史迪力,K·D·格洛索普,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。