CN101165655A - 多处理器计算系统及其任务分配方法 - Google Patents
多处理器计算系统及其任务分配方法 Download PDFInfo
- Publication number
- CN101165655A CN101165655A CN 200610135656 CN200610135656A CN101165655A CN 101165655 A CN101165655 A CN 101165655A CN 200610135656 CN200610135656 CN 200610135656 CN 200610135656 A CN200610135656 A CN 200610135656A CN 101165655 A CN101165655 A CN 101165655A
- Authority
- CN
- China
- Prior art keywords
- task
- little
- processing unit
- multiple processor
- computation system
- 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
Images
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/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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/5017—Task decomposition
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
公开了一种多处理器计算系统。多处理器计算系统包括主处理器、全局存储器和至少一个处理单元,其中多处理器计算系统还包括:微任务定序器,包括任务获得设备和任务调度设备,其中任务获得设备被配置成在微任务定序器能够接纳进一步的命令的情况下,从全局存储器获取包含微任务描述的命令,并且任务调度设备被配置成将每个微任务描述定义的每个微任务指令分派到该至少一个处理单元中的一个,使得所指示的处理单元能够执行该微任务指令,并且任务调度设备进一步被配置成检测该命令中所有微任务的完成,并且将该完成通知主处理器,其中处理单元能够通过本身或通过该至少一个处理单元中的另一个来访问全局存储器。
Description
技术领域
本发明涉及多处理器计算机及其任务分配方法,尤其涉及具有在运行时刻动态配置以完成专用计算任务的同构和/或异构计算单元阵列的计算系统及其任务分配方法。
背景技术
多处理器计算系统通常被设计为满足2类计算需求:(1)通用应用和(2)专用应用。对于通用应用,具有同构处理器的对称多处理器SMP是最常见的体系结构。对于例如多媒体和数字信号处理的专用应用,相当常见的是将异构处理器或硬件负载分担单元组合起来以满足应用的不同方面要求。
对于专用多处理器计算系统,其体系结构通常是建立在互连计算单元阵列的基础上的。这些计算单元能够是可编程处理器或固定功能单元。无论计算单元之间有何差异,彼此区别这些体系结构的最大不同点是连接和控制这些计算单元以处理计算任务的方式。
许多现有技术体系结构只能以完全同步的″流″模式对处理器阵列编程,其中存在每个计算单元都同步到的某种全局共享″心跳(heartbeat)″,并且计算单元根据预先配置的互连拓扑在每个心跳的开始时交换数据。根据体系结构设计和流的流水线延迟,心跳可以有一个时钟周期长或更长。心跳同步的一个优点是当计算单元从同步任务中剥离时易于实现和编程。缺点是缺乏运行异步任务的灵活性,从而限制应用领域。另一缺点是在流水线级段不能得到良好平衡的情况下,其效率受到不利影响。
另一面,存在另一类以异步加同步模式进行编程的体系结构,其中整个系统不依赖于同步心跳。计算单元能够被分成组,其中同步可以是组内同步或组间同步。因而,每个任务的多个线程能够在不同计算单元上或在不同单元组中进行处理,直到发生数据依赖或对共享资源的访问并且于是需要同步。这类体系结构的许多实现采取硬连线隔离同步的方案,其中一个或多个共享全局同步逻辑电路负责所有计算单元的同步。计算单元在其执行流中的某个指定点暂停,直到同步组中的所有单元到达该点,接着执行流从该点恢复。对于具体应用,能够优化同步逻辑设计和计算单元划分以提供非常好的性能。这种实现的缺点是当配置和应用发生改变时缺乏灵活性。
除了硬连线实现之外,另一方案是软件实现,其中使用在主处理器或计算单元自身上运行的软件来进行同步。主处理器或每个计算单元通常通过轮询和/或中断的方式检查其它部件的状态,并且接着通过消息通信等等发出同步信号。与硬连线方案相比,软件解决方案是灵活性最大的解决方案。然而其具有以下副作用:(1)中断处理或轮询需要大量处理器周期,因而同步的粒度只能保持在非常粗的水平;(2)同步逻辑参与到下层功能/计算代码中,因而软件维护的复杂度大大增加。
考虑到以上问题,需要一种能够至少部分地克服以上缺点的多处理器计算系统及其任务分配方法。
发明内容
本发明的一个目的是提供一种能够解除主处理器向计算单元分派任务的负担的多处理器计算系统及其任务分配方法。
优选地,本发明的另一个目的是提供一种能够解除主处理器和计算单元进行同步控制的负担的多处理器计算系统及其任务分配方法。
本发明提供了一种多处理器计算系统,包括主处理器、全局存储器和至少一个处理单元,其中该多处理器计算系统还包括:微任务定序器,包括任务获得设备和任务调度设备,其中任务获得设备被配置成在微任务定序器能够接纳进一步的命令的情况下,从全局存储器获取包含微任务描述的命令,并且任务调度设备被配置成将每个微任务描述定义的每个微任务指令分派到该至少一个处理单元中的一个,使得所指示的处理单元能够执行该微任务指令,并且任务调度设备进一步被配置成检测该命令中所有微任务的完成,并且将该完成通知主处理器,其中处理单元能够通过本身或通过该至少一个处理单元中的另一个来访问全局存储器。
任务获得设备可包括:任务分配器;至少一个任务队列;和至少一个执行控制单元(ECU),所述至少一个执行控制单元中的每个与该至少一个任务队列中的一个不同的任务队列相关,并且与该至少一个处理单元中的一个不同的处理单元相关,其中任务分配器可被配置成接受由任务获得设备获取的命令,并且将所述每个微任务放在该至少一个任务队列中与所述指示的处理单元相关的任务队列中,任务分配器可进一步被配置成执行所述检测和通知;并且该至少一个执行控制单元的每个可被配置成以FIFO方式从相关任务队列获得一个微任务指令,并且响应于相关处理单元能够处理进一步的微任务指令,将获得的微任务指令传送到该相关处理单元来执行,该至少一个执行控制单元的每个进一步可被配置成收集获得的微任务指令的完成以用于所述检测目的。
该命令还包含用于实现该至少一个处理单元中的两个或更多处理单元间的同步的同步指令,任务分配器可进一步被配置成将同步指令放在与该同步指令相关的任务队列中,任务调度设备还可包括:同步控制装置,其由执行控制单元基于从各自任务队列获得的同步指令进行操作,以实现同步。
同步可基于信号灯技术,并且同步控制装置可基于共享信号灯数组来实现。
该命令还可包含用于使相关执行控制单元基于从所有或一些处理单元报告的一或多个值有选择地跳过一部分微任务指令的流控制指令,任务分配器进一步可被配置成将流控制指令放在与该流控制指令相关的任务队列中,任务调度设备还可包括:用于存储该值的存储器,其中执行控制单元可进一步被配置成基于流控制指令和该存储器中的相关值跳过该部分微任务指令。
该命令还可包含用于使任务分配器基于从所有或一些处理单元报告的一或多个值有选择地跳过一部分微任务指令的流控制指令,任务调度设备还可包括:用于存储该值的存储器,其中任务分配器可进一步被配置成基于流控制指令和该存储器中的相关值跳过该部分微任务指令。
多处理器计算系统可被实现在片上系统加速器或微处理器中。
可经由DMA实现处理单元对全局存储器的访问。
多处理器计算系统还可包括用于初始化任务定序器的配置设备。
本发明还提供一种多处理器计算系统中的任务分配方法,该系统包括主处理器、全局存储器、微任务定序器和至少一个处理单元,该方法包括:由主处理器在全局存储器中提供包含微任务描述的命令;由微任务定序器在其能够接纳进一步的命令的情况下,从全局存储器获取命令;由微任务定序器将由每个微任务描述所定义的每个微任务指令分派到至少一个处理单元中的一个,使得所分派到的处理单元能够执行该微任务指令;由微任务定序器检测该命令中所有微任务的完成;和由微任务定序器将该完成通知主处理器,其中处理单元能够通过本身或通过该至少一个处理单元中的另一个来访问全局存储器。
本发明是改进体系结构的多处理器计算机,其包括称为″微任务定序器(Microtask Sequencer)″的专用可编程任务定序器。
此外,主处理器用描述要提交到计算单元的任务的信息对任务定序器进行编程。任务定序器接着自动分派这些任务并且监视这种任务的执行状态,无需主处理器的干预。任务定序器也具有基于信号发出和等待机制的软件可编程同步逻辑。当需要任务之间的同步时使用这种同步逻辑。因而将同步逻辑从计算单元中分离出来。与现有技术已知的相比,本发明提供了一种计算任务处理机制,其具有与硬连线逻辑同等的性能,和与完全软件实现的控制同等的灵活性。通过将同步逻辑从计算单元中分离出来,本发明使得将异构计算单元集成到相同体系结构中的工作变得简单。本发明也允许计算单元的软件程序员仅将注意力集中在算法的功能部分。另一改进是功率效率可能优于不将指令周期花费在等待同步信号上的软件方案。
附图说明
被说明书引用并且构成说明书组成部分的附图图解了本发明的实施例,并且和前面的概括说明、下面针对实施例的详细描述一起被用来说明本发明的原理。
只要可能,相同的附图标记在附图中会被用来表示相同或类似的部分。在附图中:
图1根据本发明一个实施例示出了其中能够实现本发明的典型系统体系结构的例子;而
图2示出了包含同步机制的微任务定序器的配置的例子。
具体实施方式
在下面的描述中,给出了某些具体细节以便提供对本发明多个实施例的充分理解。不过,本领域技术人员可知,没有这些细节也能实现本发明。在其他情况下,没有详细表示或描述与计算机、处理器等等有关的公知结构,以避免不必要地干扰对本发明实施例的描述。
由于资源限制、发掘并发成分、增加代码和数据局部性和代码可管理性等等的原因,常见的做法是多处理器系统上运行的应用程序通常将复杂计算任务分割成小片段。每个小任务接着被分派给计算单元中的一个以根据设计的算法流执行。例如,在典型的实时视频编码应用中,一个小任务只可以处理一个4×4或8×8图像块,而一秒中小任务的总数将达到数十万。通过将这些任务映射到多处理器系统,每个小任务从开始到完成可能只运行若干微秒。另外,这些小任务之间可以具有复杂的依赖。例如,它们中的某些小任务需要将它们中的其它小任务的输出以作为输入数据。结果,小任务的数量如此巨大并且这些小任务的执行控制粒度如此精细,使得小任务明显不同于传统操作系统中对任务的常见定义。为尽量避免混乱,我们将表示单个计算单元上的单次运行的小任务的术语定义为″微任务(microtask)″。
由于微任务的巨大数量和粒度非常精细的控制,在传统操作系统中使用任务调度的方案将非常沉重,以至于多数主处理器无法处理。我们的发明通过引入作为自治控制器工作的硬件定序器逻辑来解决这个问题。这将解除主处理器进行微任务调度的沉重负担。主处理器需要做的只是对定序器进行编程并且处理某些预定条件下出现的不常见中断。
图1根据本发明一个实施例示出了其中能够实现本发明的典型系统体系结构的例子。系统100包括连接到主机系统总线103的主处理器101、全局存储器102和多处理器子系统110。主处理器101运行OS和高层应用逻辑。全局存储器102用于保存应用程序的代码和数据。
多处理器子系统110包括微任务定序器104、可选的DMA单元105-1、...、105-m、计算单元106-1、...、106-n和可选的共享本地存储器块107-1、...、107-k。计算单元106-1、...、106-n进行实际的微任务计算。这些计算单元106-1、...、106-n可以是从通用处理器到专用硬连线逻辑单元。与多数其它多处理器系统比较,在这种体系结构中也允许不同计算单元类型的组合。
优选地,为减少计算单元106-1、...、106-n和全局存储器102之间的数据传输,通常在计算单元106-1、...、106-n中包含保存代码和数据的私有本地存储器。优选地,出于相同原因,也可以具有一些共享本地存储器块107-1、...、107-k以存储中间或公共数据。因此,DMA单元105-1、...、105-m于是被用于在全局存储器102、计算单元106-1、...、106-n的本地存储器和共享本地存储器块107-1、...、107-k之间移动数据。本地总线/交叉交换装置109被用作DMA单元105-1、...、105-m和计算单元106-1、...、106-n之间的内部数据路径。
微任务定序器104被用于控制例如DMA单元105-1、...、105-m和计算单元106-1、...、106-n的这些功能单元。这些功能单元通过任务控制总线108被连接到微任务定序器104。微任务定序器104通常从全局存储器102得到包含微任务描述的命令,其中由主处理器101上运行的应用软件根据程序员的设计或编译器或解释器的布置来产生这些描述。例如,对于包含3个分立计算的计算任务,它可以被分成如下3个微任务:
微任务1:计算#1
微任务2:计算#2
微任务3:计算#3。
接着,微任务定序器104执行这些命令并且基于任务描述中指定的目的地信息将任务描述(即微任务)分派到相应功能单元。如前所述,DMA单元105-1、...、105-m的微任务可以小至移动数十字节数据,而计算单元106-1、...、106-n则在数十或数百时钟周期内处理这些数据。在时钟高于200MHz的系统中,这些微任务可能持续不到一微秒或甚至不到十分之一微秒。显然,如果在没有微任务定序器104的帮助的情况下将主处理器101用于控制这些微任务,其处理能力会完全被这种控制占用。这里,具有微任务定序器的多处理器计算系统能够至少解除主处理器对功能单元进行调度和管理的负担。
当完成其微任务时,功能单元可以通过任务控制总线或任何其他例如中断的已知信令方法通知微任务定序器,使得微任务定序器可以执行进一步的分派或控制。
通常,可以通过任何物理或逻辑的处理单元,例如一或多个中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路(ASIC)等等来实现微任务定序器和功能单元。主机系统总线、任务控制总线和本地总线/交叉交换装置能够使用任何已知的总线或交换机结构或体系结构。
此外,不同功能单元上运行的微任务之间可以有依赖关系。例如,要执行一个任务,其中在例如计算单元106-1、...、106-n的计算单元上的微任务开始运行之前,例如DMA单元105-1、...、105-m的DMA单元将装载用于该计算单元的相应输入数据。在计算单元完成工作之后,DMA单元将所得到的数据移动到下一目的地。在这个例子中,计算任务能够被分成如下3个微任务:
微任务1′:数据载入
微任务2′:计算
微任务3′:数据卸出。
因而,计算单元上运行的微任务和DMA单元上运行的相应微任务可能相互依赖,例如微任务2′的计算需要先进行微任务1′的载入数据,微任务3′的数据卸出需要先进行微任务2′的计算,因而这些功能单元必须按照正确的顺序操作以得到正确的结果。而对于彼此不依赖的微任务,例如2个独立计算单元106-1、...、106-n或2个DMA单元105-1、...、105-m上运行的微任务,这些微任务能够被同时提交以实现这些硬件资源的更好利用。
为处理多个微任务,即多个功能单元间的这种依赖关系,本发明为微任务定序器提供了同步机制,使得微任务定序器能够促成微任务的并行执行,从而解除功能单元的同步负担。
图2示出了包含同步机制的微任务定序器200的配置的例子。如图2所示,微任务定序器200经由主机系统总线连接到主机系统,并且包括用于经由主机系统总线的存储器总线从主处理器指定的位置获取命令的任务获得设备210,和用于将命令中描述的微任务分派给相关功能单元和管理微任务间的同步的任务调度设备220。微任务定序器200还可以包括配置设备230,其中主处理器可以通过配置设备230经由主机系统总线的配置总线初始化或控制微任务定序器200和相关功能单元。
任务获得设备210包括存储器总线接口201、FIFO加载器203-1和传入FIFO 203-2。任务调度设备220包括任务分配器205、多个任务队列206a、206b、206c、相应执行控制单元(ECU)207a、207b、207c和共享信号灯数组208。任务调度设备220也可以包括保存对应于某些或所有功能单元的某些标志的标志数组209。配置设备230包括配置总线接口202和系统配置单元204。
任务控制总线210a、210b、210c分别将执行控制单元207a、207b、207c连接到例如DMA单元105-1、...、105-m和计算单元106-1、...、106-n的相应功能单元。每个功能单元对应于微任务定序器104中的任务队列206和执行控制单元207。
FIFO加载器203-1是用于将编程命令从全局存储器102装载到传入FIFO 203-2的DMA控制器。FIFO加载器203-1接受来自任务分配器205的请求以装载命令,只要任务分配器205能够处理进一步的命令。主处理器可以优选地通过配置设备230来初始化任务获得设备210,以便从全局存储器102地址空间内一个指定位置开始装载,并且任务获得设备210将内容装载到指定计数。优选地,一旦完成传送,FIFO加载器203-1将状态设置到配置设备230的系统配置单元204,并且发出主机中断以将该状态通知主处理器101。可选地,可以通过本领域已知的其它信令机制来实现任务获得设备210与主处理器101之间的以上交互。优选地,在传入FIFO 203-2内可以有一些缓冲区以允许对存储器总线进行高效突发访问。
在FIFO加载器203-1从全局存储器102获取编程命令之后,任务分配器205将这些命令从传入FIFO 203-2分派到每个执行控制单元207的任务队列206。任务队列206a、206b、206c是保存要提交到相应功能单元的命令的FIFO存储装置。FIFO的深度是效率和面积的折衷。在该实施例中,假定大小为32到64条目。任务分配器205监视相关任务队列206a、206b、206c的状态,并且一旦来自FIFO加载器203-1的当前可用命令匹配于具有空位的队列,则填充这些队列。所述命令包括指示其应当分派到的任务队列206的区段。
执行控制单元207接着检查其相应功能单元的状态并且相应向该功能单元分派命令。连接到微任务定序器200的每个功能单元由相应执行控制单元207控制。执行控制单元207是从相应任务队列206获取命令的简单顺序可编程控制器,执行控制单元207将命令传递到功能单元,或者在例如需要执行功能单元间同步操作的情况下,或优选地在需要执行任务内的一些流控制的情况下,根据命令的类型由其本身处理该命令。在后一情形中,执行控制单元207访问信号灯数组208,并且优选地访问标志数组209。在信号灯命令的控制下,执行控制单元207也可以设置信号灯或轮询一些特定信号灯。通过标志数组209,执行控制单元207也可以支持条件命令以实现″IF THEN ELSE″方式的执行路径。这可以被用来进一步分离主处理器101的控制。
如上所述,使用信号灯数组208来保持每个执行控制单元207之间的同步。信号灯数组208保存可以由执行控制单元207a、207b、207c使用同步命令设置和清除的一位标志的数组。更具体地,信号灯数组208是可以由执行控制单元207a、207b、207c根据任务队列206a、206b、206c中的信号灯命令设置和复位的一位标志的数组。信号灯数组208是整个微任务定序器200中的共享资源。每个执行控制单元207能够在命令控制下访问信号灯数组208的每个位。对任务队列206a、206b、206c的信号灯位分配完全由程序员来控制,并且由程序员负责避免使用冲突。执行控制单元207能够设置多个信号灯位,或能够等待多个信号灯位。通过信号灯设置命令来设置信号灯位,并且信号灯等待命令将被阻塞,直到它们等待的信号灯位全部被设置。信号灯等待命令也会在继续其它处理之前复位相应信号灯位。通过这个简单设计,能够容易地处理传送多个队列的多个微任务之间的复杂同步要求。
如上所述,为允许微任务定序器200和受控制的功能单元之间的更多交互,每个功能单元能够在微任务执行完成时返回单位或多位结果。这个值应当设置到标志数组209中。标志数组209中的数据能够被用于实现命令的条件执行,从而允许类似″IF-THEN-ELSE″的微任务执行流。更具体地,标志数组209是单位或多位结果的数组。每个条目对应于一个功能单元。因而,根据需要,标志数组209中的条目的数量可以等于或小于功能单元的数量、任务队列206a、206b、206c的数量或执行控制单元207a、207b、207c的数量。在相关微任务执行结束之前由功能单元设置该结果。然而结果值的定义不限于在本文中描述的情况。这应当由功能单元设计人员自已来确定。一些可能的例子是状态报告、简单返回值等等。所有执行控制单元207a、207b、207c均能够读取标志数组的任何一个条目。对于执行控制单元207,提供获取和存储期望标志数组209内容以供将来参考的命令。这将允许新的结果更新,同时保持本地串行化执行流一致。通过标志数组209和条件执行能力,我们能够实现″IF THEN ELSE″和″SWITCH CASE″执行控制,并且在适用情景中,进一步分离主处理器101的控制。
配置设备230是针对主机系统的用于配置和控制的优选接口。更具体地,系统配置单元204在其中通过配置总线接口202访问主机系统,并且能够被主机系统用来初始化任务定序器和控制不同内部/外部功能单元的操作。通常,配置设备230可以具有针对系统总线的从模式I/O接口和用于状态报告的一个中断请求线。
在上述实施例中,微任务定序器104能够在主处理器101介入最少的情况下自动提交任务到功能单元(DMA单元105-1、...、105-m和计算单元106-1、...、106-n)。
为便于理解本发明,下面将给出任务描述(微任务命令)格式和内容的具体示例。然而应当理解,本发明并不受此示例的限制。
1.微任务定序器命令格式
微任务定序器的所有命令均为32位长。命令被分成表1所示的四个域。QID域是命令应当分配到的任务队列的ID号。这个域由任务分配器来解释。任务分配器也检查NUMARG域,这个域指示有多少个32位变元跟在后面。任务分配器会将跟随的NUMARG个32位字视作前面的命令的变元,并且会将这些数据一起分配给任务队列,而无需进一步解释。命令字中的ECU域被用于区分执行控制单元应当解释执行命令还是只将命令发送到相应功能单元来进行处理。
表1微任务定序器命令格式
位 | 助记符 | 说明 |
0:3 | QID | 此命令应当分配到的任务队列的ID。 |
4 | ECU | 0:此命令针对所连的功能单元1:此命令针对执行控制单元 |
5:11 | CMD | 命令定义 |
12:15 | NUMARG | 此命令后跟的32位变元数据的数量0000:此命令不具有附加数据 |
16:31 | DATA | 此命令使用的可选16位数据 |
1.1ECU命令
1.1.1信号灯命令
1.1.1.1信号灯设置
定义:SEMPOST semaphore_vector
CMD:b′0010000′
NUMARG:0
DATA:semaphore_vector的0:15位屏蔽
说明:此命令将相应信号灯数组位设置为1。由DATA部分中的位屏蔽指定受影响的位。如何任何相应位被设置为1,则这个命令应当等待到其它模块将所有相应位设置为0。
例子:SEMPOST b′1011000000000000′
此命令设置信号灯数组的第0、2、3位。
1.1.1.2信号灯等待
定义:SEMWAIT semaphore_vector
CMD:b′0010001′
NUMARG:0
DATA:semaphore_vector的0:15位屏蔽
定义:此命令等待相应信号灯数组位被设置。由DATA部分中的位屏蔽来指定受监视的位。此命令将挂起ECU的执行流,直至设置了所有被屏蔽的位。接着将相应信号灯数组位清零。设有限定系统时钟周期最大等待时间的一个全局超时计数器。一旦在限定的超时值内未触发信号灯位,则应当产生状态报告事件,并且该信号能够被用来触发主机中断来使主机处理器介入处理。
例子:SEMWAIT b′1011000000000000′
此命令进行等待,直至信号灯数组的0,2,3位均被设置。
1.1.1.3信号灯清除
定义:SEMCLR semaphore_vector
CMD:b′0010010′
NUMARG:0
DATA:semaphore_vector的0:15位屏蔽
说明:此命令将相应信号灯数组位清除为0。由DATA部分中的位屏蔽来指定所述被清除的位。此命令能够被用来初始化信号灯数组至正确状态。
例子:SEMCLR b′1111111111111111′
此命令清除信号灯数组的所有相应位。
1.1.1.4信号灯挂起
定义:SEMPEND semaphore_vector
CMD:b′0010011′
NUMARG:0
DATA:semaphore_vector的0:15位屏蔽
说明:此命令等待相应信号灯数组位被清除。由DATA部分中的位屏蔽来指定受监视的位。此命令会将ECU的执行流挂起,直至所有被屏蔽的位被清除。此命令不对信号灯数组作任何改变。设有限定系统时钟周期最大等待时间的一个全局超时计数器。一旦在限定的超时值内未触发信号灯位,则应当产生状态报告事件,并且该信号能够被用来触发主机中断来使主机处理器介入处理。
例子:SEMPEND b′1011000000000000′
此命令进行等待,直至信号灯数组的0,2,3位均被清除为0。
1.1.2标志数组和条件执行命令
1.1.2.1从标志数组获得条件标志结果
定义:FLGLOAD flag_array_index_number
CMD:b′0011000′
NUMARG:0
DATA:12:15位包含必须落入有效范围的标志数组索引。该索引以0为起始。其它位未使用并且应当设置为0。
说明:此命令从指定的标志数组元素取得4位值并且将其存储到本地标志寄存器的条件部分中以供条件执行使用。
标志数组的标志位是功能单元完成微任务时返回的标志。
例子:FLGLOAD 3
此命令从标志数组中取得索引3的元素。
1.1.2.2无条件跳转
定义:JMP number_of_words
CMD:b′0011100′
NUMARG:0
DATA:8:15位存有任务列表中将跳过的字数。其它位未使用并且应当设置为0。
说明:此命令跳过当前任务队列中number_of_words个字的后续命令和数据。
例子:JMP 15
此命令略过任务队列中的后15个字的命令/数据。
1.1.2.3条件跳转
定义:JMPWHEN conditions,number_of_words
CMD:b′0011101′
NUMARG:0
DATA:0:7位存有如表2所示的条件描述。8:15存有任务列表中将跳过的字数。
说明:当条件conditions满足时,此命令跳过当前任务队列中number_of_words个字的后续命令和数据。如果条件不被满足,则不作任何事情。
例子:JMPWHEN b′10101000′,15
当条件位0为1并且位2为0时,此命令略过任务队列中的后续15个字的命令/数据。
表2条件描述格式
位 | 说明 |
0:3 | 有关需要评估哪些条件标志的四位屏蔽 |
4:7 | 期望匹配的四位值 |
假设屏蔽为ABCD,匹配值为EFGH并且实际标志为efgh,则能够定义评估条件为:
V=!(A&(E^e))&!(B&(F^f))&!(C&(G^g))&!(D&(H^h))
应当理解,这里在微任务定序器200中指示的特定设备或模块可以通过硬件和/或软件实现。例如,可以使用在一或多个处理模块上运行的软件和/或固件来实现特定设备或模块。处理模块能够是单个处理设备或多个处理设备。这种处理设备可以是微处理器、微控制器、数字处理器、微型计算机、中央处理单元的一部分、状态机、逻辑电路、硬连线逻辑和/或任何能够执行期望处理或控制的设备。
虽然根据多处理器子系统包括微任务定序器、DMA单元、计算单元和共享本地存储器块的实施例描述了本发明,然而在计算单元被被配置成直接访问全局存储器的情况下,共享本地存储器块和本地总线/交叉交换装置不是必要的。
虽然在上述实施例中共享信号灯数组被用于同步,然而在本发明中能够实现其它已知同步机构。
虽然在实施例中描述了每个类型的任务队列、执行控制单元和功能单元的具体数量,然而这些数量不是对本发明的限制。根据需要,能够在实现中实施任何数量。
虽然由主处理器指定全局存储器中获取命令的位置,然而也能够事先静态确定该位置。类似地,也可以预定其它相关参数。
虽然在一般多处理器计算系统中描述了本发明,然而本发明尤其能够适用于片上系统加速器或微处理器。
虽然在实施例中基于任务描述中指定的目的地信息将微任务指派到相应功能单元,然而也可以在任务描述中只指定执行微任务的功能单元的类型(例如DMA单元、计算单元等),由任务分配器根据相应类型功能单元的可用性来随机指定执行微任务的功能单元。有关功能单元的类型、数量、状态的信息可以预选指定、由主机通过系统配置单元来设置、或经过轮询或其它状态检测机制来获得和维护。如果需要指定若干微任务由相同功能单元来执行,则可以在任务描述中指定功能单元的逻辑标识,并由任务分配器负责将该逻辑标识与物理功能单元绑定。
以上所揭示的内容是将被考虑为说明性的,而不是限制性的,并且附加的权利要求意欲涵盖所有属于本发明的真实精神及范围的这类修改、改进及其他实施例。因此,以法律所允许的最大程度,本发明的范围将由以下权利要求及其等同的最广泛可容许的解释来确定,并且不应由上述具体实施方式约束或限制。
Claims (20)
1.一种多处理器计算系统,包括主处理器、全局存储器和至少一个处理单元,其中该多处理器计算系统还包括:
微任务定序器,包括任务获得设备和任务调度设备,其中
任务获得设备被配置成在微任务定序器能够接纳进一步的命令的情况下,从全局存储器获取包含微任务描述的命令,并且
任务调度设备被配置成将由每个微任务描述所定义的每个微任务指令分派到该至少一个处理单元中的一个,使得所分派到的处理单元能够执行该微任务指令,并且任务调度设备进一步被配置成检测该命令中所有微任务的完成,并且将该完成通知主处理器,其中处理单元能够通过本身或通过该至少一个处理单元中的另一个来访问全局存储器。
2.如权利要求1所述的多处理器计算系统,其中任务调度设备包括:
任务分配器;
至少一个任务队列;和
至少一个执行控制单元,所述至少一个执行控制单元中的每个与该至少一个任务队列中的一个不同的任务队列相关,并且与该至少一个处理单元中的一个不同的处理单元相关,其中
任务分配器被配置成接受由任务获得设备获取的命令,并且将所述每个微任务放在该至少一个任务队列中与所述分派到的处理单元相关的任务队列中,任务分配器进一步被配置成执行所述检测和通知;并且
该至少一个执行控制单元的每个被配置成以FIFO方式从相关任务队列获得一个微任务指令,并且响应于相关处理单元能够处理进一步的微任务指令,将获得的微任务指令传送到该相关处理单元来执行,该至少一个执行控制单元的每个进一步被配置成收集获得的微任务指令的完成以用于所述检测。
3.如权利要求2所述的多处理器计算系统,其中该命令还包含用于实现该至少一个处理单元中的两个或更多处理单元间的同步的同步指令,任务分配器进一步被配置成将同步指令放在与该同步指令相关的任务队列中,任务调度设备还包括:
同步控制装置,其由执行控制单元基于从各自任务队列获得的同步指令进行操作,以实现同步。
4.如权利要求3所述的多处理器计算系统,其中同步基于信号灯技术,并且同步控制装置基于共享信号灯数组来实现。
5.如权利要求2-4中任何一个所述的多处理器计算系统,其中该命令还包含用于使相关执行控制单元基于从所有或一些处理单元报告的一或多个值有选择地跳过一部分微任务指令的流控制指令,任务分配器进一步被配置成将流控制指令放在与该流控制指令相关的任务队列中,任务调度设备还包括:
用于存储该值的存储器,其中执行控制单元进一步被配置成基于流控制指令和该存储器中的相关值跳过该部分微任务指令。
6.如权利要求2-4中任何一个所述的多处理器计算系统,其中该命令还包含用于使任务分配器基于从所有或一些处理单元报告的一或多个值有选择地跳过一部分微任务指令的流控制指令,任务调度设备还包括:
用于存储该值的存储器,其中任务分配器进一步被配置成基于流控制指令和该存储器中的相关值跳过该部分微任务指令。
7.如权利要求1-6中任何一个所述的多处理器计算系统,其中该多处理器计算系统被实现在片上系统加速器或微处理器中。
8.如权利要求1-6中任何一个所述的多处理器计算系统,其中经由DMA实现处理单元对全局存储器的访问。
9.如权利要求1-6中任何一个所述的多处理器计算系统,其中多处理器计算系统还包括用于初始化微任务定序器的配置设备。
10.如权利要求1-6中任何一个所述的多处理器计算系统,其中所述微任务定序器还包括本地共享存储器。
11.如权利要求1所述的多处理器计算系统,其中任务调度设备被配置成将由每个微任务描述所定义的每个微任务指令分派到微任务描述中指示的处理单元。
12.如权利要求1所述的多处理器计算系统,其中任务调度设备被配置成将由每个微任务描述所定义的每个微任务指令分派到符合微任务描述中指定的要求的处理单元。
13.一种多处理器计算系统中的任务分配方法,该系统包括主处理器、全局存储器、微任务定序器和至少一个处理单元,该方法包括:
由主处理器在全局存储器中提供包含微任务描述的命令;
由微任务定序器在其能够接纳进一步的命令的情况下,从全局存储器获取命令;
由微任务定序器将由每个微任务描述所定义的每个微任务指令分派到至少一个处理单元中的一个,使得所分派到的处理单元能够执行该微任务指令;
由微任务定序器检测该命令中所有微任务的完成;和
由微任务定序器将该完成通知主处理器,
其中处理单元能够通过本身或通过该至少一个处理单元中的另一个来访问全局存储器。
14.如权利要求13所述的多处理器计算系统中的任务分配方法,其中所述微任务定序器包括至少一个任务队列和至少一个执行控制单元,所述至少一个执行控制单元中的每个与该至少一个任务队列中的一个不同的任务队列相关,并且与该至少一个处理单元中的一个不同的处理单元相关,所述分派步骤包括:
将所述命令的每个微任务放在该至少一个任务队列中与所述分派到的处理单元相关的任务队列中;以及
由相关执行控制单元以FIFO方式从相关任务队列获得一个微任务指令,响应于相关处理单元能够处理进一步的微任务指令,将获得的微任务指令传送到该相关处理单元来执行,并且收集获得的微任务指令的完成以用于所述检测。
15.如权利要求14所述的多处理器计算系统中的任务分配方法,其中该命令还包含用于实现该至少一个处理单元中的两个或更多处理单元间的同步的同步指令,所述分派步骤还包括:
将同步指令放在与该同步指令相关的任务队列中;和
由相关执行控制单元基于从任务队列获得的同步指令进行操作,以实现同步。
16.如权利要求15所述的多处理器计算系统中的任务分配方法,其中同步基于信号灯技术。
17.如权利要求14-16中任何一个所述的多处理器计算系统中的任务分配方法,其中该命令还包含用于使相关执行控制单元基于从所有或一些处理单元报告的一或多个值有选择地跳过一部分微任务指令的流控制指令,所述分派步骤还包括:
成将流控制指令放在与该流控制指令相关的任务队列中;
存储该值;和
由相关执行控制单元基于流控制指令和该存储的相关值跳过该部分微任务指令。
18.如权利要求14-16中任何一个所述的多处理器计算系统中的任务分配方法,其中该命令还包含用于使得基于从所有或一些处理单元报告的一或多个值有选择地跳过一部分微任务指令的流控制指令,所述分派步骤还包括:
存储该值;和
基于流控制指令和该存储的相关值跳过该部分微任务指令。
19.如权利要求13所述的多处理器计算系统中的任务分配方法,其中所述分派步骤包括将由每个微任务描述所定义的每个微任务指令分派到微任务描述中指示的处理单元。
20.如权利要求13所述的多处理器计算系统中的任务分配方法,其中所述分派步骤包括将由每个微任务描述所定义的每个微任务指令分派到符合微任务描述中指定的要求的处理单元。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610135656 CN101165655A (zh) | 2006-10-20 | 2006-10-20 | 多处理器计算系统及其任务分配方法 |
PCT/EP2007/060028 WO2008046716A1 (en) | 2006-10-20 | 2007-09-21 | A multi-processor computing system and its task allocating method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610135656 CN101165655A (zh) | 2006-10-20 | 2006-10-20 | 多处理器计算系统及其任务分配方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101165655A true CN101165655A (zh) | 2008-04-23 |
Family
ID=38776273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610135656 Pending CN101165655A (zh) | 2006-10-20 | 2006-10-20 | 多处理器计算系统及其任务分配方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101165655A (zh) |
WO (1) | WO2008046716A1 (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129390A (zh) * | 2011-03-10 | 2011-07-20 | 中国科学技术大学苏州研究院 | 片上多核计算平台的任务调度系统及进行任务并行化方法 |
CN101661405B (zh) * | 2008-08-28 | 2012-08-29 | 国际商业机器公司 | 一种基于多处理器系统的多库函数调用方法和系统 |
CN103294536A (zh) * | 2012-01-31 | 2013-09-11 | 辉达公司 | 控制用于处理任务的工作分布 |
WO2015042904A1 (zh) * | 2013-09-29 | 2015-04-02 | 华为技术有限公司 | 一种多核系统中资源池的调度方法、装置和系统 |
CN104572266A (zh) * | 2015-01-04 | 2015-04-29 | 华东师范大学 | 制程变异下基于UPPAAL-SMC的MPSoC任务调度建模与评估方法 |
CN104615408A (zh) * | 2013-03-26 | 2015-05-13 | 威盛电子股份有限公司 | 微处理器、集成电路与提供微码指令储存空间的方法 |
CN107368286A (zh) * | 2011-12-19 | 2017-11-21 | 英特尔公司 | 用于多精度算术的simd整数乘法累加指令 |
CN108089915A (zh) * | 2016-11-22 | 2018-05-29 | 北京京东尚科信息技术有限公司 | 基于消息队列的业务控件化处理的方法及系统 |
CN108416433A (zh) * | 2018-01-22 | 2018-08-17 | 上海熠知电子科技有限公司 | 一种基于异步事件的神经网络异构加速方法和系统 |
WO2020140683A1 (zh) * | 2019-01-04 | 2020-07-09 | 深圳壹账通智能科技有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
CN111431892A (zh) * | 2020-03-20 | 2020-07-17 | 上海金卓网络科技有限公司 | 一种加速器管理架构、方法及加速器接口控制器 |
CN112486575A (zh) * | 2020-12-07 | 2021-03-12 | 广西电网有限责任公司电力科学研究院 | 一种共享加速运算部件的电力人工智能芯片及应用方法 |
CN113032015A (zh) * | 2019-12-24 | 2021-06-25 | 中国科学院沈阳自动化研究所 | 一种用于精密运动控制的通信方法 |
CN113326221A (zh) * | 2021-06-30 | 2021-08-31 | 上海阵量智能科技有限公司 | 数据处理装置、方法、芯片、计算机设备及存储介质 |
WO2021179333A1 (zh) * | 2020-03-13 | 2021-09-16 | 北京希姆计算科技有限公司 | 任务分配方法、装置、电子设备及计算机可读存储介质 |
CN114253694A (zh) * | 2022-02-25 | 2022-03-29 | 杭州雄迈集成电路技术股份有限公司 | 一种基于神经网络加速器的异步处理方法与装置 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090300629A1 (en) * | 2008-06-02 | 2009-12-03 | Mois Navon | Scheduling of Multiple Tasks in a System Including Multiple Computing Elements |
US8762532B2 (en) | 2009-08-13 | 2014-06-24 | Qualcomm Incorporated | Apparatus and method for efficient memory allocation |
US9038073B2 (en) * | 2009-08-13 | 2015-05-19 | Qualcomm Incorporated | Data mover moving data to accelerator for processing and returning result data based on instruction received from a processor utilizing software and hardware interrupts |
US8788782B2 (en) | 2009-08-13 | 2014-07-22 | Qualcomm Incorporated | Apparatus and method for memory management and efficient data processing |
KR101926464B1 (ko) * | 2012-10-11 | 2018-12-07 | 삼성전자 주식회사 | 멀티코어 프로세서에서 수행되는 프로그램의 컴파일 방법, 멀티코어 프로세서의 태스크 매핑 방법 및 태스크 스케줄링 방법 |
CN103353851A (zh) * | 2013-07-01 | 2013-10-16 | 华为技术有限公司 | 一种管理任务的方法和设备 |
US20150033234A1 (en) * | 2013-07-23 | 2015-01-29 | Qualcomm Incorporated | Providing queue barriers when unsupported by an i/o protocol or target device |
CN104778074B (zh) * | 2014-01-14 | 2019-02-26 | 腾讯科技(深圳)有限公司 | 一种计算任务处理方法及装置 |
WO2015194133A1 (ja) * | 2014-06-19 | 2015-12-23 | 日本電気株式会社 | 演算装置、演算装置の制御方法、及び、演算装置の制御プログラムが記録された記憶媒体 |
CN104462302B (zh) * | 2014-11-28 | 2018-04-27 | 北京京东尚科信息技术有限公司 | 一种分布式数据处理协调方法及系统 |
WO2020047337A1 (en) * | 2018-08-29 | 2020-03-05 | Qualcomm Incorporated | Method, apparatus, and system for an architecture for machine learning acceleration |
TWI714003B (zh) * | 2018-10-11 | 2020-12-21 | 力晶積成電子製造股份有限公司 | 可執行人工智慧運算的記憶體晶片及其操作方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2002241767A1 (en) * | 2000-10-23 | 2002-06-18 | Xyron Corporation | Concurrent-multitasking processor |
US7533382B2 (en) * | 2002-10-30 | 2009-05-12 | Stmicroelectronics, Inc. | Hyperprocessor |
-
2006
- 2006-10-20 CN CN 200610135656 patent/CN101165655A/zh active Pending
-
2007
- 2007-09-21 WO PCT/EP2007/060028 patent/WO2008046716A1/en active Application Filing
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661405B (zh) * | 2008-08-28 | 2012-08-29 | 国际商业机器公司 | 一种基于多处理器系统的多库函数调用方法和系统 |
CN102129390B (zh) * | 2011-03-10 | 2013-06-12 | 中国科学技术大学苏州研究院 | 片上多核计算平台的任务调度系统及进行任务并行化方法 |
CN102129390A (zh) * | 2011-03-10 | 2011-07-20 | 中国科学技术大学苏州研究院 | 片上多核计算平台的任务调度系统及进行任务并行化方法 |
CN107368286A (zh) * | 2011-12-19 | 2017-11-21 | 英特尔公司 | 用于多精度算术的simd整数乘法累加指令 |
CN107368286B (zh) * | 2011-12-19 | 2020-11-06 | 英特尔公司 | 用于多精度算术的simd整数乘法累加指令 |
CN103294536A (zh) * | 2012-01-31 | 2013-09-11 | 辉达公司 | 控制用于处理任务的工作分布 |
CN103294536B (zh) * | 2012-01-31 | 2017-06-16 | 辉达公司 | 控制用于处理任务的工作分布 |
US9921873B2 (en) | 2012-01-31 | 2018-03-20 | Nvidia Corporation | Controlling work distribution for processing tasks |
CN104615408A (zh) * | 2013-03-26 | 2015-05-13 | 威盛电子股份有限公司 | 微处理器、集成电路与提供微码指令储存空间的方法 |
CN104615408B (zh) * | 2013-03-26 | 2018-11-06 | 威盛电子股份有限公司 | 微处理器、集成电路与提供微码指令储存空间的方法 |
CN105051689A (zh) * | 2013-09-29 | 2015-11-11 | 华为技术有限公司 | 一种多核系统中资源池的调度方法、装置和系统 |
WO2015042904A1 (zh) * | 2013-09-29 | 2015-04-02 | 华为技术有限公司 | 一种多核系统中资源池的调度方法、装置和系统 |
CN104572266A (zh) * | 2015-01-04 | 2015-04-29 | 华东师范大学 | 制程变异下基于UPPAAL-SMC的MPSoC任务调度建模与评估方法 |
CN104572266B (zh) * | 2015-01-04 | 2018-03-06 | 华东师范大学 | 制程变异下基于UPPAAL‑SMC的MPSoC任务调度建模与评估方法 |
CN108089915A (zh) * | 2016-11-22 | 2018-05-29 | 北京京东尚科信息技术有限公司 | 基于消息队列的业务控件化处理的方法及系统 |
CN108416433A (zh) * | 2018-01-22 | 2018-08-17 | 上海熠知电子科技有限公司 | 一种基于异步事件的神经网络异构加速方法和系统 |
CN108416433B (zh) * | 2018-01-22 | 2020-11-24 | 上海熠知电子科技有限公司 | 一种基于异步事件的神经网络异构加速方法和系统 |
WO2020140683A1 (zh) * | 2019-01-04 | 2020-07-09 | 深圳壹账通智能科技有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
CN113032015A (zh) * | 2019-12-24 | 2021-06-25 | 中国科学院沈阳自动化研究所 | 一种用于精密运动控制的通信方法 |
WO2021179333A1 (zh) * | 2020-03-13 | 2021-09-16 | 北京希姆计算科技有限公司 | 任务分配方法、装置、电子设备及计算机可读存储介质 |
CN111431892A (zh) * | 2020-03-20 | 2020-07-17 | 上海金卓网络科技有限公司 | 一种加速器管理架构、方法及加速器接口控制器 |
CN112486575A (zh) * | 2020-12-07 | 2021-03-12 | 广西电网有限责任公司电力科学研究院 | 一种共享加速运算部件的电力人工智能芯片及应用方法 |
CN113326221A (zh) * | 2021-06-30 | 2021-08-31 | 上海阵量智能科技有限公司 | 数据处理装置、方法、芯片、计算机设备及存储介质 |
CN113326221B (zh) * | 2021-06-30 | 2024-03-22 | 上海阵量智能科技有限公司 | 数据处理装置、方法、芯片、计算机设备及存储介质 |
CN114253694A (zh) * | 2022-02-25 | 2022-03-29 | 杭州雄迈集成电路技术股份有限公司 | 一种基于神经网络加速器的异步处理方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2008046716A1 (en) | 2008-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101165655A (zh) | 多处理器计算系统及其任务分配方法 | |
US11915057B2 (en) | Computational partition for a multi-threaded, self-scheduling reconfigurable computing fabric | |
US11836524B2 (en) | Memory interface for a multi-threaded, self-scheduling reconfigurable computing fabric | |
US11782710B2 (en) | Execution or write mask generation for data selection in a multi-threaded, self-scheduling reconfigurable computing fabric | |
US11675598B2 (en) | Loop execution control for a multi-threaded, self-scheduling reconfigurable computing fabric using a reenter queue | |
US11868163B2 (en) | Efficient loop execution for a multi-threaded, self-scheduling reconfigurable computing fabric | |
US11567766B2 (en) | Control registers to store thread identifiers for threaded loop execution in a self-scheduling reconfigurable computing fabric | |
KR102446702B1 (ko) | 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭의 루프 스레드 순서 실행 제어 | |
KR102465213B1 (ko) | 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭에 대한 조건부 브랜칭 제어 | |
US10990391B2 (en) | Backpressure control using a stop signal for a multi-threaded, self-scheduling reconfigurable computing fabric | |
CN102750130B (zh) | 分配计数器以追踪寄存器映射的方法和系统 | |
US20190370005A1 (en) | Apparatus, systems, and methods for providing computational imaging pipeline | |
US11586571B2 (en) | Multi-threaded, self-scheduling reconfigurable computing fabric | |
KR20190044565A (ko) | 호스트 프로세서와의 동기화 | |
CN113424168A (zh) | 可重配置的数据处理器的虚拟化 | |
KR20200139742A (ko) | 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭의 실행 제어 | |
CN108364251A (zh) | 具有通用寄存器资源管理的矢量处理器 | |
CN103197916A (zh) | 用于源操作数收集器高速缓存的方法和装置 | |
CN103279379A (zh) | 用于在没有指令解码的情况下调度指令的方法和装置 | |
CN109840877B (zh) | 一种图形处理器及其资源调度方法、装置 | |
US20190197018A1 (en) | Dynamic reconfiguration using data transfer control | |
CN103207810A (zh) | 计算任务状态封装 | |
CN103649923A (zh) | 一种numa系统内存镜像配置方法、解除方法、系统和主节点 | |
US10659396B2 (en) | Joining data within a reconfigurable fabric | |
CN111209244B (zh) | 数据处理装置及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned | ||
C20 | Patent right or utility model deemed to be abandoned or is abandoned |