将空间阵列纳入一个或多个可编程处理器核的制作方法

文档序号:9635166阅读:774来源:国知局
将空间阵列纳入一个或多个可编程处理器核的制作方法
【专利说明】将空间阵列纳入一个或多个可编程处理器核
[0001]背景
[0002]可编程处理器核可用于执行指令组或指令块作为原子单元。这种指令被映射到核内的功能单元,并且当创建其中同一进程被不断重复的执行循环时通常可以实现显著效率。新数据可以作为流被持续接收和处理,而无须取得新指令。尽管以此方式改进了效率,用于例如通过旁路网络承载指令的典型通信路径仍然是相当低效的。
[0003]提供本背景来介绍以下概述和详细描述的简要上下文。本背景不旨在帮助确定所要求保护的主题的范围,也不旨在被看作将所要求保护的主题限于解决以上所提出的问题或缺点中的任一个或全部的实现。
[0004]概述
[0005]一个或多个处理器核内布置的功能单元使用共享旁路网络和交换网络两者在通信上耦合。在交换网络允许其中功能单元被配置为空间阵列的专用处理的同时,共享旁路网络允许功能单元能被常规地操作用于通用处理。在空间阵列配置中,一个功能单元所产生的操作数可以仅被发送至功能单元中依赖指令(dependent instruct1ns)已经先验地被映射至的一个子集。功能单元可以在运行时被动态地重配置以便在于通用配置中运行以及作为空间阵列运行之间切换。用于控制各个运行配置之间的切换的信息可以在功能单元所接收的指令中被编码、在与指令块相关联的控制状态中提供、在程序二进制文件中嵌入的其他控制状态中提供、或者被硬件动态地推断。
[0006]在各种说明性示例中,一个或多个可编程处理器核被配置成按块来接收和处理指令。核内的功能单元可以使用传统旁路网络被耦合用于功能单元间的通信,并且也可以与单独控制的轻量交换网络耦合,所述轻量交换网络提供一组专用数据路径以便在功能单元被配置为空间阵列时促进通信。网格是例如良好地适用于该交换网络的常用拓扑结构。交换网络的每个节点一般包括复用器和配置存储器,它们被用于实现专用数据路径上的高效指令通信。指令块可以包括嵌入的控制信息(用于切换功能单元的操作配置),并且还可以包括静态执行调度信息,所述静态执行调度信息用于在功能单元被配置为空间阵列时将计算映射至功能单元。
[0007]专用编译器(即,标准编译器内的专用映射功能)被安排以识别在运行时可能在空间阵列上被最优执行的代码,并且可以自动将控制和调度信息嵌入作为编译器输出而产生的指令集。或者,专用编译器可被安排以向代码开发者提出关于哪个配置(即,通用处理或空间阵列)更可能以最高效率(或其他品质因数)执行特定计算的建议。
[0008]当指令块在运行时被解码时,功能单元通过根据已嵌入的控制指令在通用处理和空间阵列配置之间切换,而被动态地重新配置。当被配置为空间阵列时,静态执行调度被解码以将计算映射至阵列并且设立通过交换网络的路由路径。然后,空间阵列可以高效地流经自连至交换网络的数据队列中读出的数据集。
[0009]当前将空间阵列纳入一个或多个可编程处理器核可以被用作新处理器微体系结构和ISA(指令集体系结构)的基础。在一些实现方式中,跨多个可编程处理器核的功能单元可被共同配置,以便提供比单个核中的功能单元数量所允许的空间阵列更大的单个空间阵列。在一些应用中,通过扩展交换网络以便使用位于沿网络的各个点处的中继器来覆盖更多核中的功能单元,可以创建更大的空间阵列。静态执行调度被配置成在映射专用数据路径时考虑这一较大空间阵列中的任何传播延迟。
[0010]有利的是,当前将空间阵列纳入一个或多个可编程处理器核允许空间阵列中的并行处理所提供的高效率,而没有用重复的功能单元实现一个单独空间阵列的复杂度和成本。通过将交换网络覆盖于常规旁路网络上,通用核的功能单元可以在正常操作和空间阵列之间在传输过程中被有效地重新调整(r印urpose),以便高效且有效地满足给定进程/计算的要求。通过将控制信息嵌入于指令块中(例如,通过重新调整原本未使用的字段/位位置),到空间阵列的指令接口与功能单元在通用处理配置中正常操作时使用的ISA完全一致。
[0011]当前将空间阵列纳入一个或多个可编程处理器核的应用说明性地包括小形因子计算机、照相机、移动电话、智能电话、可穿戴计算机等等,其中采用了能很好地利用空间阵列所提供的处理并行化的图像处理及类似类型的处理。
[0012]应当理解,上述主题可被实现为计算机控制的装置、计算机进程、计算系统或诸如一个或多个计算机可读存储介质等制品。通过阅读下面的详细描述并审阅相关联的附图,这些及各种其他特征将变得显而易见。
[0013]提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在被用来帮助确定所要求保护的主题的范围。而且,所要求保护的主题不限于解决该公开的任一部分中所注的任何或全部缺点的实现方式。
[0014]附图简述
[0015]图1示出可以实现本发明将空间阵列纳入一个或多个可编程处理器核的各个方面的说明性使用环境;
[0016]图2示出一组说明性的可编程处理器核,每个可编程处理器核包括可以常规方式操作以用于通用处理的多个功能单元;
[0017]图3示出一说明性的交换网络,所述交换网络被配置成覆盖功能单元以启用它们作为空间阵列的配置;
[0018]图4示出在覆盖于功能单元上时的交换网络;
[0019]图5示出替代的覆盖网络拓扑结构,其中各组功能单元在操作上耦合至交换网络中的交换节点;
[0020]图6示出交换网络中的说明性交换节点的细节;
[0021]图7示出一说明性的指令块,其中该块的一区域已编码了配置控制信息以及嵌入其中的静态执行调度;
[0022]图8是可由专用编译器或者由标准编译器内的专用映射功能所采用的说明性方法的流程图;
[0023]图9示出可由功能单元在运行时期间采用的说明性方法的流程图;
[0024]图10示出其中空间阵列体系结构可使用中继器被扩展以包括附加功能单元的布局;
[0025]图11示出一个或多个固定空间阵列被安排在核外部的说明性配置;以及
[0026]各附图中相同的附图标记指示相同的元素。除非另外指明否则各元素不是按比例绘制的。
[0027]详细描述
[0028]图1示出可以实现本发明中将空间阵列纳入一个或多个可编程处理器核的各个方面的说明性使用环境100。环境100包括开发环境106和运行时环境112。在开发环境中,开发者115 —般采用工具121、开发框架等来创建经由编译器131编译成可执行机器代码133的软件代码125。然后,可执行机器代码133在运行时环境112中执行时,可以在设备138上被实例化,所述设备138为设备用户143提供各种功能和特征。
[0029]图2示出一组说明性的可编程处理器核20(^.4,每个可编程处理器核20(^.4包括可以常规配置操作以用于通用处理的多个功能单元205L.J。核200可以是被包括作为例如设备138(图1)的硬件组件155的一部分的处理器。核200的数量以及核中采用的功能单元205的数量在图中仅为说明性目的而示出。因此,实际实现方式中使用的核200和功能单元205的数量可以根据这种实现方式的具体要求而不同于所示的数量。功能单元205在一些情况下可以被实现为算
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1