CN109086241A - 基于应用的动态异构多核系统和方法 - Google Patents
基于应用的动态异构多核系统和方法 Download PDFInfo
- Publication number
- CN109086241A CN109086241A CN201810952015.6A CN201810952015A CN109086241A CN 109086241 A CN109086241 A CN 109086241A CN 201810952015 A CN201810952015 A CN 201810952015A CN 109086241 A CN109086241 A CN 109086241A
- Authority
- CN
- China
- Prior art keywords
- accelerator
- processing circuit
- programmable gate
- gate array
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5012—Processor sets
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Advance Control (AREA)
Abstract
本申请涉及基于应用的动态异构多核系统和方法。一种用于基于多个应用需要动态地配置多个处理器的方法,该方法包括从应用接收包括要被加速的任务的加速请求消息。该方法进一步包括确定该任务的类型并且搜索可用加速器数据库以基于该任务的该类型动态地选择第一加速器。该方法进一步包括将该加速请求消息发送至位于可配置处理电路处的第一加速接口。该第一加速接口将该加速请求消息发送至第一加速器,并且该第一加速器一旦接收到该加速请求消息就加速该任务。
Description
本申请是于2016年08月12日提交的名称为“基于应用的动态异构多核系统和方法”的中国专利申请201610667723.6的分案申请。
技术领域
本发明涉及用于应用加速的基于应用的动态异构多核系统。
背景技术
可以通过使用不同的处理机制(如多核处理系统)加速在集成电路上实现的应用和任务,多核处理系统是具有多个处理核的大规模多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的新加速消息的需求)动态地重新配置FPGA 202的逻辑结构以基于新加速消息的需求合成软核处理器同时剩下的逻辑继续不受打扰地运行。例如,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,以及用于与加速器(如FF711a-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可以遍历请求描述符并在完成时更新任务的状态;并且DMA 720可以从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上。本领域技术人员将认识到,本发明可以由除了出于说明而非限制目的呈现的所描述的实施例之外的实施例实践,并且本发明仅由所附的权利要求书限定。
Claims (25)
1.一种用于在多个现场可编程门阵列上操作一组加速器的处理电路,其中所述处理电路被配置为:
启用从加速器数据库中选择所述一组加速器以加速任务,其中所述加速器数据库包括所述一组加速器;
重新配置所述多个现场可编程门阵列以包括所述一组加速器;以及
向所述一组加速器发送加速请求,其中所述一组加速器被配置为加速所述任务。
2.如权利要求1所述的处理电路,其中所述处理电路被配置为重新配置所述多个现场可编程门阵列以包括所述一组加速器中的加速器。
3.如权利要求1所述的处理电路,其中与所述一组加速器相关联的处理存储器被配置为跨不同的物理存储器被分布。
4.如权利要求1所述的处理电路,其中所述处理电路被配置为跨所述一组加速器均衡负载。
5.如权利要求4所述的处理电路,其中所述负载至少部分地是加速所述任务的结果。
6.如权利要求1所述的处理电路,其中所述处理电路通信地耦接到存储器映射,所述存储器映射被配置为使所述处理电路能够与所述多个现场可编程门阵列通信。
7.如权利要求6所述的处理电路,其中所述存储器映射被配置为通过重新映射与所述存储器映射相关联的存储器映射来启用所述处理电路与所述多个现场可编程门阵列之间的数据移动。
8.如权利要求1所述的处理电路,其中所述处理电路包括处理器和所述多个现场可编程门阵列中的现场可编程门阵列。
9.如权利要求1所述的处理电路,其中耦接到所述处理电路的第二处理电路被配置为从所述加速器数据库中选择所述一组加速器以加速所述任务。
10.如权利要求1所述的处理电路,其中由耦接到所述处理电路的计算系统的应用来发送所述任务。
11.如权利要求1所述的处理电路,其中从所述处理电路的处理器发送所述任务。
12.一种用于在现场可编程门阵列上配置加速器的处理电路,其中所述处理电路被配置为:
启用从加速器数据库中选择所述加速器以加速任务;
重新配置所述现场可编程门阵列以包括所述加速器;
向所述加速器发送加速请求,其中所述加速器被配置为加速所述任务;以及
将与所述加速器相关联的处理存储器跨不同的物理存储器分布。
13.一种用于在现场可编程门阵列上操作一组加速器的系统,其包括:
存储器映射,其被配置为使处理器能够与所述现场可编程门阵列通信;
处理器,其耦接到所述现场可编程门阵列,其中所述处理器被配置为:
启用从加速器数据库中选择加速器以加速任务,其中所述加速器数据库包括所述一组加速器;
在所述现场可编程门阵列中实例化所述加速器;以及
经由所述存储器映射向所述加速器发送加速请求,其中所述加速器被配置为加速所述任务。
14.如权利要求13所述的系统,其中所述存储器映射被配置为通过重新映射与所述存储器映射相关联的存储器映射来启用所述处理器与所述现场可编程门阵列之间的数据移动。
15.如权利要求13所述的系统,其中与所述一组加速器相关联的处理存储器被配置为跨不同的物理存储器被分布。
16.如权利要求15所述的系统,其中所述处理器被配置为在多个现场可编程门阵列中实例化来自所述加速器数据库的第二加速器。
17.如权利要求16所述的系统,其中所述多个现场可编程门阵列包括所述现场可编程门阵列。
18.如权利要求13所述的系统,其中所述处理器被配置为跨所述一组加速器均衡负载。
19.如权利要求18所述的系统,其中所述负载至少部分地是加速所述任务的结果。
20.一种用于在现场可编程门阵列上操作一组加速器的方法,其包括:
启用从加速器数据库中选择加速器以加速任务,其中所述加速器数据库包括所述一组加速器;
重新配置所述现场可编程门阵列以包括所述加速器;
向所述加速器发送加速请求,其中所述加速器被配置为加速所述任务;以及
跨所述一组加速器均衡负载。
21.如权利要求20所述的方法,其中所述负载至少部分地是加速所述任务的结果。
22.如权利要求20所述的方法,包括将与所述一组加速器相关联的处理存储器跨不同的物理存储器分布。
23.如权利要求20所述的方法,包括重新配置多个现场可编程门阵列以包括来自所述加速器数据库的第二加速器。
24.如权利要求23所述的方法,其中所述多个现场可编程门阵列包括所述现场可编程门阵列。
25.如权利要求20所述的方法,其中重新配置所述现场可编程门阵列以包括所述加速器包括在所述现场可编程门阵列中实例化所述加速器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/825,377 US9891935B2 (en) | 2015-08-13 | 2015-08-13 | Application-based dynamic heterogeneous many-core systems and methods |
US14/825,377 | 2015-08-13 | ||
CN201610667723.6A CN106445876B (zh) | 2015-08-13 | 2016-08-12 | 基于应用的动态异构多核系统和方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610667723.6A Division CN106445876B (zh) | 2015-08-13 | 2016-08-12 | 基于应用的动态异构多核系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109086241A true CN109086241A (zh) | 2018-12-25 |
Family
ID=56683834
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610667723.6A Active CN106445876B (zh) | 2015-08-13 | 2016-08-12 | 基于应用的动态异构多核系统和方法 |
CN201810952015.6A Pending CN109086241A (zh) | 2015-08-13 | 2016-08-12 | 基于应用的动态异构多核系统和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610667723.6A Active CN106445876B (zh) | 2015-08-13 | 2016-08-12 | 基于应用的动态异构多核系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (3) | US9891935B2 (zh) |
EP (1) | EP3131011A1 (zh) |
CN (2) | CN106445876B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109831395A (zh) * | 2019-02-27 | 2019-05-31 | 中国科学院软件研究所 | 一种嵌入式设备与主机间底层网络数据传输系统及方法 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10390114B2 (en) | 2016-07-22 | 2019-08-20 | Intel Corporation | Memory sharing for physical accelerator resources in a data center |
CN108062239B (zh) * | 2016-11-09 | 2020-06-16 | 华为技术有限公司 | 一种加速器加载方法、系统和加速器加载装置 |
US20180150256A1 (en) | 2016-11-29 | 2018-05-31 | Intel Corporation | Technologies for data deduplication in disaggregated architectures |
CN108536526B (zh) * | 2017-03-02 | 2022-09-13 | 腾讯科技(深圳)有限公司 | 一种基于可编程硬件的资源管理方法以及装置 |
CN108958923B (zh) * | 2017-05-25 | 2022-04-22 | 上海华为技术有限公司 | 一种调度硬件加速器的方法以及调度设备 |
US11182210B2 (en) * | 2017-07-31 | 2021-11-23 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method for resource allocation and terminal device |
CN107562549B (zh) * | 2017-08-21 | 2019-12-03 | 西安电子科技大学 | 基于片上总线和共享内存的异构众核asip架构 |
US20190044809A1 (en) * | 2017-08-30 | 2019-02-07 | Intel Corporation | Technologies for managing a flexible host interface of a network interface controller |
US10719474B2 (en) * | 2017-10-11 | 2020-07-21 | Samsung Electronics Co., Ltd. | System and method for providing in-storage acceleration (ISA) in data storage devices |
CN109656673B (zh) * | 2017-10-11 | 2023-03-31 | 阿里巴巴集团控股有限公司 | 程序的加载方法、装置、系统以及电子设备 |
CN110321204A (zh) * | 2018-03-31 | 2019-10-11 | 北京深鉴智能科技有限公司 | 计算系统、硬件加速模块管理方法和装置以及存储介质 |
US10496586B2 (en) * | 2018-04-27 | 2019-12-03 | International Business Machines Corporation | Accelerator management |
CN108921289B (zh) * | 2018-06-20 | 2021-10-29 | 郑州云海信息技术有限公司 | 一种fpga异构加速方法、装置及系统 |
US10740257B2 (en) | 2018-07-02 | 2020-08-11 | International Business Machines Corporation | Managing accelerators in application-specific integrated circuits |
CN109542832B (zh) * | 2018-11-30 | 2020-09-01 | 青岛方寸微电子科技有限公司 | 一种无锁机制的异构多核cpu间通信系统及方法 |
CN113168372B (zh) * | 2019-01-10 | 2023-12-26 | 阿里巴巴集团控股有限公司 | 使用可编程逻辑器件(pld)来提供数据库加速的系统和方法 |
CN109976876B (zh) * | 2019-03-20 | 2021-11-16 | 联想(北京)有限公司 | 加速器管理方法和装置 |
CN110032453B (zh) * | 2019-04-19 | 2022-05-03 | 上海兆芯集成电路有限公司 | 用以任务调度与分配的处理系统及其加速方法 |
CN110032452B (zh) * | 2019-04-19 | 2021-08-24 | 上海兆芯集成电路有限公司 | 处理系统与异构处理器加速方法 |
CN110058931B (zh) | 2019-04-19 | 2022-03-22 | 上海兆芯集成电路有限公司 | 用以任务调度的处理系统及其加速方法 |
CN110083387B (zh) | 2019-04-19 | 2021-11-12 | 上海兆芯集成电路有限公司 | 使用轮询机制的处理系统及其访存方法 |
CN110046053B (zh) | 2019-04-19 | 2021-11-12 | 上海兆芯集成电路有限公司 | 用以分配任务的处理系统及其访存方法 |
WO2020252763A1 (en) * | 2019-06-21 | 2020-12-24 | Intel Corporation | Adaptive pipeline selection for accelerating memory copy operations |
US11573834B2 (en) * | 2019-08-22 | 2023-02-07 | Micron Technology, Inc. | Computational partition for a multi-threaded, self-scheduling reconfigurable computing fabric |
CN112446004B (zh) * | 2019-08-28 | 2023-07-07 | 无锡江南计算技术研究所 | 非结构网格dilu预条件子众核并行优化方法 |
CN114461861A (zh) * | 2019-08-30 | 2022-05-10 | 上海忆芯实业有限公司 | 用于聚类计算的加速器 |
CN113190324A (zh) * | 2020-01-14 | 2021-07-30 | 阿里巴巴集团控股有限公司 | 流量分配方法、设备、系统及存储介质 |
CN111352735A (zh) * | 2020-02-27 | 2020-06-30 | 上海上大鼎正软件股份有限公司 | 数据加速方法、装置、存储介质及设备 |
US11693795B2 (en) * | 2020-04-17 | 2023-07-04 | Texas Instruments Incorporated | Methods and apparatus to extend local buffer of a hardware accelerator |
CN113742028A (zh) * | 2020-05-28 | 2021-12-03 | 伊姆西Ip控股有限责任公司 | 资源使用方法、电子设备和计算机程序产品 |
CN116048740A (zh) * | 2021-10-28 | 2023-05-02 | 北京灵汐科技有限公司 | 基于众核系统的任务调度方法、系统、电子设备及介质 |
CN114866619B (zh) * | 2022-04-29 | 2023-08-08 | 苏州浪潮智能科技有限公司 | 一种异构加速方法、装置、系统及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110010721A1 (en) * | 2009-07-13 | 2011-01-13 | Vishakha Gupta | Managing Virtualized Accelerators Using Admission Control, Load Balancing and Scheduling |
US20140281472A1 (en) * | 2013-03-15 | 2014-09-18 | Qualcomm Incorporated | Use case based reconfiguration of co-processor cores for general purpose processors |
CN104778083A (zh) * | 2015-03-27 | 2015-07-15 | 华为技术有限公司 | 异构多核可重构计算平台上任务调度的方法和装置 |
CN104820657A (zh) * | 2015-05-14 | 2015-08-05 | 西安电子科技大学 | 一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7065764B1 (en) * | 2001-07-20 | 2006-06-20 | Netrendered, Inc. | Dynamically allocated cluster system |
US20070283311A1 (en) * | 2006-05-30 | 2007-12-06 | Theodore Karoubalis | Method and system for dynamic reconfiguration of field programmable gate arrays |
US7685396B2 (en) * | 2007-03-05 | 2010-03-23 | Research In Motion Limited | System and method for dynamic memory allocation |
US8510546B2 (en) * | 2011-03-29 | 2013-08-13 | International Business Machines Corporation | Run-ahead approximated computations |
US9489243B2 (en) * | 2012-01-26 | 2016-11-08 | Computenext Inc. | Federating computing resources across the web |
US10270709B2 (en) * | 2015-06-26 | 2019-04-23 | Microsoft Technology Licensing, Llc | Allocating acceleration component functionality for supporting services |
US9268677B2 (en) * | 2012-10-24 | 2016-02-23 | Apple Inc. | Dynamic obfuscation of heap memory allocations |
US9286084B2 (en) * | 2013-12-30 | 2016-03-15 | Qualcomm Incorporated | Adaptive hardware reconfiguration of configurable co-processor cores for hardware optimization of functionality blocks based on use case prediction, and related methods, circuits, and computer-readable media |
US9542221B2 (en) * | 2014-05-22 | 2017-01-10 | Oracle International Corporation | Dynamic co-scheduling of hardware contexts for parallel runtime systems on shared machines |
US10282347B2 (en) * | 2015-04-08 | 2019-05-07 | Louisana State University Research & Technology Foundation | Architecture for configuration of a reconfigurable integrated circuit |
US10216555B2 (en) * | 2015-06-26 | 2019-02-26 | Microsoft Technology Licensing, Llc | Partially reconfiguring acceleration components |
-
2015
- 2015-08-13 US US14/825,377 patent/US9891935B2/en active Active
-
2016
- 2016-08-12 CN CN201610667723.6A patent/CN106445876B/zh active Active
- 2016-08-12 EP EP16184007.9A patent/EP3131011A1/en not_active Ceased
- 2016-08-12 CN CN201810952015.6A patent/CN109086241A/zh active Pending
-
2018
- 2018-01-09 US US15/866,234 patent/US11093261B2/en active Active
-
2021
- 2021-08-16 US US17/403,627 patent/US20220137986A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110010721A1 (en) * | 2009-07-13 | 2011-01-13 | Vishakha Gupta | Managing Virtualized Accelerators Using Admission Control, Load Balancing and Scheduling |
US20140281472A1 (en) * | 2013-03-15 | 2014-09-18 | Qualcomm Incorporated | Use case based reconfiguration of co-processor cores for general purpose processors |
CN104778083A (zh) * | 2015-03-27 | 2015-07-15 | 华为技术有限公司 | 异构多核可重构计算平台上任务调度的方法和装置 |
CN104820657A (zh) * | 2015-05-14 | 2015-08-05 | 西安电子科技大学 | 一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109831395A (zh) * | 2019-02-27 | 2019-05-31 | 中国科学院软件研究所 | 一种嵌入式设备与主机间底层网络数据传输系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220137986A1 (en) | 2022-05-05 |
CN106445876A (zh) | 2017-02-22 |
EP3131011A1 (en) | 2017-02-15 |
US20180157503A1 (en) | 2018-06-07 |
US11093261B2 (en) | 2021-08-17 |
CN106445876B (zh) | 2022-04-08 |
US20170046179A1 (en) | 2017-02-16 |
US9891935B2 (en) | 2018-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109086241A (zh) | 基于应用的动态异构多核系统和方法 | |
CN101128807B (zh) | 用于扩充中断控制器和合成中断来源的系统和方法 | |
US20220100584A1 (en) | Disaggregated computing for distributed confidential computing environment | |
US10698842B1 (en) | Domain assist processor-peer for coherent acceleration | |
CN104252375B (zh) | 用于位于不同主机的多个虚拟机共享USB Key的方法和系统 | |
US11675613B2 (en) | Flexible physical function and virtual function mapping | |
US10379766B2 (en) | Access processor | |
US11972001B2 (en) | Technologies for securely providing remote accelerators hosted on the edge to client compute devices | |
CN106095719A (zh) | 具有功能链接能力的网络功能虚拟化平台 | |
CN110063051A (zh) | 可重新配置的服务器 | |
CN106354544A (zh) | 虚拟机创建方法、系统以及主机 | |
CN107690622A (zh) | 实现硬件加速处理的方法、设备和系统 | |
US10467052B2 (en) | Cluster topology aware container scheduling for efficient data transfer | |
CN109154897B (zh) | 分布式处理方法、存储介质、和分布式处理系统 | |
CN111565152B (zh) | 一种基于路由域划分的类脑芯片路由系统数据通信方法 | |
US20200250525A1 (en) | Lightweight, highspeed and energy efficient asynchronous and file system-based ai processing interface framework | |
CN108829525A (zh) | 可信平台遥测机制 | |
CN111190963A (zh) | 一种区块链应用后端系统 | |
US9367493B2 (en) | Method and system of communicating between peer processors in SoC environment | |
CN104657225B (zh) | 基于OKL4的嵌入式虚拟化平台跨Cell数据传输系统 | |
KR20220147613A (ko) | 멀티-테넌트 서버리스 환경들을 위한 멀티-레벨 캐시-메시-시스템 | |
GB2483884A (en) | Parallel processing system using dual port memories to communicate between each processor and the public memory bus | |
US20230377088A1 (en) | Multicore state caching in graphics processing | |
US11748253B1 (en) | Address generation for page collision prevention in memory regions | |
US20220221986A1 (en) | Fabric memory network-on-chip |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |