基于应用的动态异构多核系统和方法与流程

文档序号:12271263阅读:231来源:国知局
基于应用的动态异构多核系统和方法与流程

本发明涉及用于应用加速的基于应用的动态异构多核系统。



背景技术:

可以通过使用不同的处理机制(如多核处理系统)加速在集成电路上实现的应用和任务,多核处理系统是具有多个处理核的大规模多CPU并行处理系统。然后可以由多于一个的核处理器并行地处理应用以便提高处理速度。使用这种多核结构的典型加速操作需要在软件和软逻辑协同设计中的重大投入。高层次设计(HLD)技术可以部分地桥接软件到逻辑设计缺口,但是通常要求具有专门用于服务某些应用需求的固定核的系统。

例如,一些固定的电流设计可以提供均匀的或固定的异构多核平台,但是这些设计不可扩展。一些可再编程系统可以提供可扩展的设计以在所需的基础上添加处理核,例如通过可再编程FPGA利用具有加速处理节点的固定异构架构的所需要的应用特定的高性能平台的潜在建立进行扩展。然而,这些可扩展解决方案可能不迎合需要定制软件解决方案来管理动态系统中的核的场景。

工业中存在的用于应用加速的其他解决方案和设计可以包括多核通信应用编程接口(MCAPI)、消息传递接口(MPI)以及开放多处理(OpenMP)。所有这些系统采取关注于在已知核之间的通信的固定多核系统,从而使得特定的分配任务可以映射到已知的固定核中,而不是解决管理动态多核系统设计的需求。因此,这些系统不能够动态地改变用于应用加速的可用并行处理核。



技术实现要素:

根据本发明的实施例,介绍用于基于应用需求动态地映射不同并行处理核的方法和系统。

因此,根据本发明的实施例,提供一种用于基于应用的需求动态地配置多个处理器的方法。该方法包括从应用接收包括要被加速的任务的加速请求消息。该方法进一步包括确定该任务的类型并且搜索可用加速器数据库以基于该任务的该类型动态地选择第一加速器。该方法进一步包括将加速请求消息发送至位于可配置处理电路处的第一加速接口。第一加速接口将加速请求消息发送至第一加速器,并且第一加速器一旦接收到加速请求消息就加速该任务。

根据本发明的另一个实施例,提供一种用于基于应用的需求动态地配置多个核的异构多核加速(HMA)系统。该系统包括处理器子系统,该处理器子系统包括队列管理单元和调度器。队列管理单元从应用中接收包括要被加速的任务的加速请求消息并且确定该任务的类型。调度器基于任务的类型搜索可用加速器数据库以基于该任务的类型动态地选择第一加速器。该系统进一步包括可配置处理电路。可配置处理电路包括第一加速接口和第一加速器,该第一加速接口从调度器接收加速请求消息并且当第一加速器可用时将加速请求消息发送至第一加速器,而第一加速器一旦接收到加速请求消息就加速该任务。

根据本发明的另一个实施例,提供一种存储用于基于应用的需求动态地配置多个核的处理器可执行指令的处理器可读非瞬态介质。该处理器可执行指令包括可由处理器执行以从应用接收包括要被加速的任务的加速请求消息的指令。该处理器可执行指令进一步包括可由处理器执行以确定该任务的类型的指令。该处理器可执行指令进一步包括可由处理器执行以搜索可用加速器数据库从而基于该任务的类型动态地选择第一加速器的指令。该处理器可执行指令进一步包括可由处理器执行以将该加速请求消息发送至位于可配置处理电路处的第一加速接口的指令。第一加速接口将加速请求消息发送至第一加速器。第一加速器一旦接收到该加速请求消息就加速该任务。

附图说明

考虑到以下结合附图的详细描述,本发明的进一步特征、其性质以及各种优点将显而易见,其中,相同的参考符号贯穿全文指代相同的部件,并且在附图中:

图1示出图示说明在异构多核加速(HMA)系统处处理应用加速请求的方面的示例框图;

图2示出图示说明HMA系统的示例架构的示例框图;

图3示出图示说明在图2中示出的HMA系统内的针对队列管理器203和调度器204的数据流以启用单个应用访问接口的示例流图;

图4示出图示说明在图2中示出的HMA系统内的用于通过部分重新配置(PR)的加速器的虚拟扩展的数据流的示例流图;

图5示出图示说明在图2至图4中示出的HMA系统中的应用加速的基于应用的动态配置的方面的示例逻辑流图;

图6示出图示说明HMA硬件子系统600的硬件架构的示例框图;

图7和图8示出图示说明HMA部件的硬件架构(例如,HMA构建块)的示例框图;

图9呈现磁性数据存储介质900的横截面,该磁性数据存储介质900可以通过用于执行根据本发明实施例的方法的机器可执行程序编码;以及

图10示出光可读数据存储介质1010的横截面,该光可读数据存储介质可以通过用于执行根据本发明实施例的方法的机器可执行程序编码。

具体实施方式

除非另外指出,否则以下的讨论将基于如现场可编程门阵列(FPGA)的可编程集成电路器件的示例。然而,应注意的是,在此披露的主题可以用于任何种类的固定的或可编程的器件,包括但不限于专用集成电路(ASIC)。

在本发明的一些实施例中,以下的讨论描述了异构核管理系统,该异构核管理系统包括存储应用任务的队列管理器、提取软件-硬件通信信道的调度器以及接收和/或发射应用构造的加速消息的加速器接口。异构核管理系统可以使软件层能够基于应用需求动态地配置一组并行处理核。软件层还可能依赖与一组预定义的硬件构建块(具有系统存储器管理单元(SMMU))的通信,这些硬件构件块可以与软处理核动态地组合以便加速。软件设计然后可以关注于通过自维持动态多核系统管理解决在动态多核系统内的应用问题。

在本发明的一些实施例中,以下的讨论描述了一种系统,该系统在不需要管理底部硬件的情况下提供应用加速/处理。这个特征可以通过启用硬件管理系统不可知应用抽象层(hardware-management-system-agnostic application abstraction layer)来实现。所描述的系统可以启用应用驱动的并行处理核,其中,核的架构是由应用需求定义的。所描述的系统进一步允许对一组预定义的并行处理核的跨应用的动态负载均衡,并且实现通用处理核、通用操作系统(OS)和固定功能硬件(HW)互操作性。

在本发明的一些实施例中,贯穿本申请的讨论描述的系统可以在包含可编程逻辑块阵列的可配置处理电路上实现。可编程逻辑块阵列可以被配置并且被编程以由可重新配置互连单元互连。可编程逻辑块可以被配置成主管各种处理器或者其他逻辑部件以执行各种逻辑、组合或处理功能。例如,各种处理器(如通用处理器、专用处理器或其他软微控制器)可以嵌入或合成于可配置处理电路上,并且可配置处理电路可以被配置或被编程以基于应用需求(例如,由应用发送的应用加速请求消息)动态地选择和/或占用一个或多个处理器和/或使用逻辑合成虚拟地添加或移除处理器。由于处理器或软处理器被动态地选择或合成,所以不需要应用与特定的处理器或软处理器之间的预定义的或预先固定的关系。

图1示出图示说明在异构多核加速(HMA)系统处处理应用加速请求的方面的示例框图。如图1中所示,各种软件应用105a-n可以在计算设备和/或系统(如但不限于个人计算机、工作站、服务器和/或诸如此类)上运行。各种软件应用105a-n可以将加速消息107a-n发送至系统处理器以加速任务。例如,邮件应用105a可以针对邮件“发送/接收”请求发送加速消息107a;MP3播放器105b可以发送加速消息107b以请求MP3编码/解码;或者游戏应用105n可以针对实时数据加密/解密发送加速消息107n,和/或诸如此类。例如,位于工作站、服务器和/或诸如此类处的HMA系统110可以接收并处理这种加速消息107a-n。HMA系统110包括多个处理器111a-n(如通用处理器、专用处理器和/或诸如此类)以处理加速消息107a-n。

图2图示说明HMA系统的示例架构的示例框图。HMA系统200可以包括可以是系统的主核的硬处理器201以及可配置处理电路(如FPGA 202)。硬处理器201可以包括用于应用消息队列管理的队列管理器203以及用于处理到HMA软件调度单元的请求的调度器204。队列管理器203可以管理存储软件消息的软件消息队列,这些消息队列例如由多核通信应用程序接口(MCAPI)软件层构建。调度器204可以充当应用与加速器之间的消息网关,例如,保持HMA状态的追踪并且将软件请求映射至由HMA提供的功能的软件资源管理单元。

FPGA 202包括多个HMA接口205a-e,这些接口是调度器204的用于将工作分配给加速器引擎的硬件接口,这些加速器引擎提供与分配的工作相似的功能。HMA接口205a-e可以解析任务并将其路由至可用的加速器,例如,充当保持各个加速器引擎状态的追踪的硬件资源管理单元。FPGA可以包括各种各样的加速器,如通用嵌入式处理器206或更专用的嵌入式处理器207、开放运算语言(OpenCL)处理器208、专用指令集(ASIP)处理器209、固定功能(FF)块211和/或诸如此类。出于电路设计目的,每个加速器可以是颜色编码的或者由电路图中的任何其他种类的唯一标识来进行标识从而使得电路图可以展示不同的加速器。可以基于加速器的类型针对HMA接口的类型注册加速器。例如,HMA接口205a-e可以均与加速器的颜色编码接合,如分别在块205a-e和206、207、208、209、211的匹配模式中所示。

图3示出图示说明在图2中示出的HMA系统内的针对队列管理器203和调度器204的数据流以启用单个应用访问接口的示例流图。软件应用可以决定需要被加速的功能,并且然后根据不同的应用构建加速消息215a-c。应用加速消息215a-c然后可以被发送至队列管理器203(例如,如在箭头301处所示)以及接收、响应或对应用加速消息215a-c进行排队的软件消息控制和排队单元。队列管理器203中的每个队列标识有且对应于其加速功能。加速功能的示例可以包括但不限于加密、解密、MP3编码、MP3解码和/或诸如此类。功能还可以是OpenCL内核定义的。

在进一步的实现方式中,紧密分布的核处理器230可以共享在硬处理器201中的队列管理器203。例如,分布式核处理器230可以经由共享系统总线220(例如,外设部件互连(PCI)、快速外设部件互连(PCIe)、高级微控制器总线架构(AMBA)、网络接口等)与队列管理器203连接并且将在分布式核230处接收的应用加速消息215d发送至在硬处理器201处的队列管理器203。

在箭头302处,调度器204获取队列管理器203中的软件消息队列并且基于加速器的可用性将每个加速消息调度至匹配的加速功能加速器接口(例如,在箭头303处)。例如,如分别在块205a-d和215a-d的匹配模式中所示,应用加速消息215a可以被调度至HMA接口205a;应用加速消息215b可以被调度至HMA接口205b;应用加速消息215c可以被调度至HMA接口205c;并且应用加速消息215d可以被调度至HMA接口205d。

调度器204可以检查可用加速器的内部数据库并且将消息调度至加速器接口205a-e。加速器接口205a-e然后可以通知可用处理节点206a-b、208a、209a和211a拾取消息(例如,如在箭头304a-d处所示)。例如,HMA接口205a可以根据处理器206a-b的可用性将消息304a发送至嵌入式处理器206a或206b以便加速。

如图3所示,软件基础设施/层包括应用构造的加速消息215a-c、队列管理器203和调度器204,该调度器基于应用需求提取至可动态配置的一组并行处理核的通信信道。因此,软件设计可以关注于解决应用问题而不是针对特定硬件加速器优化软件,并且灵活的加速核可以使用可用FPGA硬件基于应用需求被动态地构建/解构。加速/处理负载分布可以从应用软件中提取出来。

图4示出图示说明图2中示出的HMA系统内的用于通过部分重新配置(PR)的加速器的虚拟扩展的数据流的示例流图。当来自新应用的加速消息216被发送至队列管理器203时(例如,在401处),队列管理器203可能不会识别出由加速消息216请求的功能的类型,或者请求的功能可能不在可用加速器处被处理。在那种情况下,调度器204可以将加速消息发送至PR应用模块410(例如,在402处),该PR应用模块可以(例如,基于来自新应用216的新加速消息的需求)动态地重新配置FPGA202的逻辑结构以基于新加速消息的需求合成软核处理器同时剩下的逻辑继续不受打扰地运行。例如,PR应用410可以利用在FPGA 202上重新配置的新加速器数字信号处理器(DSP)212a-b添加或合成HMA接口205f(例如,在403处)。调度器204然后可以将加速消息216发送至最新配置的HMA接口205f以便处理(例如,在404处)。替代地,PR应用410可以重新配置附加的FF 211d(如果加速功能的类型匹配的话),该FF 211d可以通过现有的HMA接口205e进行注册;并且该FF 211d可以用于处理新加速消息216。

因此,在不扩大FPGA结构的物理尺寸的情况下,FPGA结构针对硬件加速需求的能力可以通过加速器的虚拟扩展被扩展。例如,相异的处理引擎(例如,ASIP、FF、其他嵌入式处理器等)可以在没有明确的软件处理或编码修改的情况下使用部分逻辑配置被虚拟地添加或从FPGA 202移除。

图5示出图示说明在图2至图4中示出的HMA系统中的应用加速的基于应用的动态配置的方面的示例逻辑流图。从501开始,HMA系统可以接收来自应用的加速消息,例如,该消息可能在图2的队列管理器203处被排队。在503处,HMA系统然后可以例如基于起源应用类型、任务类型、估计的处理时间、估计的资源要求和/或诸如此类确定加速功能的类型。在505处,HMA系统然后可以基于功能类型搜索在HMA系统中的可用加速器数据库。当在507处存在可用加速器时,HMA系统可以在511处将加速消息发送至该可用加速器,该可用加速器可以在513处进而处理加速消息以加速对应的应用任务。

当在507处没有可用加速器时,HMA系统可以在516处等待下一个可用加速器。或者替代地或可选地,HMA系统可以在517处利用部分重新配置(PR)实现加速器的虚拟扩展(如图4中所讨论的),从而使得经由PR扩展的新加速器可以在518处对加速消息进行处理。一旦完成加速或计算,新加速器然后就可以在519处将计算的结果(例如,加速结果等)返回至应用。

图6示出图示说明HMA硬件子系统600的硬件架构的示例框图。HMA子系统600可以被建立为在可编程芯片上的系统(SOPC)。队列管理器203和/或调度器204软件可以在处理器子系统630上运行。处理器子系统630可以充当用于HMA子系统600的主软件-硬件接口,并且与可选直接存储器存取(DMA)单元611进行通信以在需要时从系统存储器中移动数据以便处理。队列管理器203和/或调度器204软件可以经由存储器映射总线620与HMA的各种加速器块612、613、614和615进行通信。

加速器612-615可以根据HMA构建块结合可以用于构造加速引擎的FPGA软结构建立。HMA构建块提供软件-硬件接口和存储器接口,该存储器接口可以包括接合SMMU 610以及外部存储器单元(如随机存取存储器(RAM)单元605a-c)的外部存储器接口606a-c(EMIF)。包括存储器映射系统总线620和SMMU 610的软件-硬件接口可以虚拟化对系统存储器的选择性访问以减少甚至跨不同的物理存储器的物理数据移动。例如,可以在未物理地移动数据的情况下实现贯穿系统的数据移动,例如,通过简单地在SMMU610内重新映射存储器图来虚拟地移动在系统存储器中的数据。以此方式,由于在从一个核切换至另一个核时处理数据移动所产生的功耗可以被减小。处理存储器可以针对HMA系统展开以跨不同的物理存储器分布。原始数据经由多个处理/加速引擎的链式处理/加速因此可以被实现(例如,一系列的图像渲染),并且可以通过限制某些应用访问加速器/核存储器的部分而实施系统存储器保护策略。

SMMU 610可以虚拟化对系统存储器(例如,RAM 605a-c)的选择性访问并且可以例如通过允许物理存储器分散化(甚至跨多个物理存储器接口606a-c)以及提取系统存储器寻址、实施存储器保护/完整性和/或诸如此类来帮助减少物理数据移动。在这种情况下,因为HMA系统可以被部分地重新配置(结合图4所讨论的),所以SMMU 610可以实现对系统存储器的选择性访问从而使得仅与部分重新配置有关的数据需要被加载或被传输,而不用加载FPGA软结构的整个程序。

图7和图8示出图示说明HMA部件的硬件架构(例如,HMA构建块)的示例框图。如图7中所示,HMA构建块可以具有多列高速串行接口(HSSI)701a-b,以及用于与加速器(如FF 711a-b、ASIP 712a-b、嵌入式处理器713和/或诸如此类)通信的并行EMIF输入/输出703a-b。如在图8中进一步展示的可以是控制加速器的硬件部件的异构加速构建块705可以如图7中所示被放置在加速器层之间。

HMA子系统可以具有用于数据存储的基于列的实现方式,并且经由环队列描述符(ring queue descriptor)与启动器进行通信。例如,启动器(例如,应用加速请求器等)可以建立环队列请求描述符并经由配置和状态寄存器(CSR)启动HMA。然后可以经由中断(或其他机制)通知启动器加速已完成。

图8示出了异构加速(HA)构建块结构及其与FPGA结构(例如,加速器引擎715、本地存储器716等)的交互。如在图8中所示,包括总线接口(和CSR)717、解析器718、DMA单元720和调度器719的该组HMA硬件构建块705可以与在FPGA核结构上构建的软处理引擎715动态地“粘合”以形成该组并行的处理/加速核。以此方式,任何处理/加速功能可以经由定义的软件基础设施/层与加速器引擎进行通信。然后可以通过从通信介质中提取处理引擎动态地完成软件控制的负载均衡。

总线接口717(和CSR)可以与存储器映射总线620接合并且包含作为软件接口的CSR。DMA 720和解析器718可以与SMMU 610和EMIF 606a-c(也在图6中示出)进行通信以加载数据并更新状态信息。DMA 720和解析器718还可以与本地存储器716进行通信以检索或存储应用任务和/或加速消息。例如,解析器718可以遍历请求描述符并在完成时更新任务的状态;并且DMA720可以从SMMU 610中(或经由EMIF 606a-c)获取处理数据并将经处理的数据存放在SMMU 610中。调度器719可以基于描述符启动引擎加速并且跨多个加速引擎715分配工作负载。

因为FPGA结构(例如,包括加速器引擎715和本地存储器716)可以与HMA构建块705动态地“粘合”或组合,可以实现比用于硬件加速需求的物理可用的FPGA结构更大的FPGA结构。加速器引擎715的动态匹配/配置还可以允许在不影响应用软件功能的情况下构造/解构相异的处理引擎(例如,ASIP、FF、其他嵌入式处理器等)。

图9呈现了磁性数据存储介质900的横截面,该磁性数据存储介质可以用机器可执行程序编码,该机器可执行程序由如个人计算机或其他计算机或类似设备的系统执行从而配置FPGA或其他可编程逻辑器件(PLD)从而在以上所述系统中使用。介质900可以是具有合适的基底901和合适的涂层902的软磁盘或硬磁盘或者磁带,该合适的基底901可以是常规的基底,该合适的涂层902可以是在一侧或两侧上的包含其极性或取向可以被磁性地更改的磁畴(不可见)的常规的涂层。除了其为磁带的情况,介质900还可以具有用于接收磁盘驱动器或其他数据存储设备的主轴的开口(未示出)。

介质900的涂层902的磁畴被极化或被取向以便以可以是常规的方式对机器可执行程序进行编码,从而由如个人计算机或其他计算机或相似系统的编程系统执行,这些系统具有让要被编程的PLD(包括根据本发明的其专门的处理块(如果有的话))可以插入以配置PLD的恰当部分的插口或外设附连件。

图10示出了光可读数据存储介质1010的横截面,该光可读数据存储介质也可以用这种机器可执行程序编码,该机器可执行程序可以由如上述个人计算机或其他计算机或类似设备的系统执行。介质1010可以是常规的紧凑型光盘只读存储器(CD-ROM)或者数字视频光盘只读存储器(DVD-ROM)或者可重写介质(如CD-R、CD-RW、DVD-R、DVD-RW、DVD+R、DVD+RW或DVD-RAM或者光可读的且磁光可重写的磁光盘)。介质1010优选地具有可以是常规的合适基底1011以及可以是常规的通常在基底1011的一侧或两侧上的合适涂层1012。

在基于CD或基于DVD介质的情况中,如众所周知的,涂层1012是反射式的并且外加有被布置在一个或多个层上的多个凹点(pit)1013以对机器可执行程序进行编码。凹点的布置由离开涂层1012的表面的反射激光读取。保护涂层1014(优选地为基本上透明的)被提供在涂层1012的顶部上。

在磁光盘的情况中,如众所周知的,涂层1012没有凹点1013,但是具有当如由激光器(未示出)加热到某个温度之上时其极性或取向可以被磁性地改变的多个磁畴。可以通过测量从涂层1012反射的激光的极化来读取磁畴的取向。磁畴的布置对如上所述的程序进行编码。

将理解的是,前述内容仅说明本发明的原理,并且在不背离本发明的范围和精神的情况下可以由本领域的技术人员进行各种修改。例如,本发明的各元件可以以任何期望的数量和/或布置被提供在PLD上。本领域技术人员将认识到,本发明可以由除了出于说明而非限制目的呈现的所描述的实施例之外的实施例实践,并且本发明仅由所附的权利要求书限定。

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