CN106537343A - System and method for parallel processing using dynamically configurable proactive co-processing cells - Google Patents

System and method for parallel processing using dynamically configurable proactive co-processing cells Download PDF


Publication number
CN106537343A CN201580039190.0A CN201580039190A CN106537343A CN 106537343 A CN106537343 A CN 106537343A CN 201580039190 A CN201580039190 A CN 201580039190A CN 106537343 A CN106537343 A CN 106537343A
Prior art keywords
Prior art date
Application number
Other languages
Chinese (zh)
Original Assignee
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority to US14/340,332 priority Critical patent/US9852004B2/en
Application filed by 阿方索·伊尼格斯 filed Critical 阿方索·伊尼格斯
Priority to PCT/US2015/039993 priority patent/WO2016014263A2/en
Publication of CN106537343A publication Critical patent/CN106537343A/en



    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload


A parallel processing architecture includes a CPU, a task pool populated by the CPU, and a plurality of autonomous co-processing cells each having an agent configured to proactively interrogate the task pool to retrieve tasks appropriate for a particular so-processor. Each co-processor communicates with the task pool through a switching fabric, which facilitates connections for data transfer and arbitration between all system resources. Each so- processor notifies the task pool when a task or task thread is completed, whereupon the task pool notifies the CPU.


使用动态可配置主动协同处理单元的并行处理的系统和方法 System and method using active synergistic dynamically configurable parallel processing unit

[0001] 本申请是2013年1月25日提交的美国申请序列号13/750,696的继续申请,其通过引用并入本文。 [0001] This application is a continuation application of US Application Serial No. 13 / 750,696 of January 25, 2013 submission, which is incorporated herein by reference.

技术领域 FIELD

[0002] 本发明总体上涉及并行处理计算,具体涉及一种处理架构,其涉及被配置为从经由中央处理器填入的任务池主动检索任务的主动协同处理器。 [0002] The present invention relates to a parallel processing computing, in particular to a process architecture, which is configured to actively involve retrieved from the central processor via the task pool filled active coprocessor task overall.

背景技术 Background technique

[0003] 物联网(也被称作物联云)是指在现有互联网基础设施内的唯一可识别的嵌入式计算设备的特设网络。 [0003] Things (also referred to crops, the cloud) refers to the ad hoc network within the existing Internet infrastructure uniquely identifiable embedded computing devices. 物联网(Ι〇Τ)意味着超越机器对机器通信(M2M)的设备、系统和服务的高级连接。 Things (Ι〇Τ) Advanced Connectivity means going beyond the machine-to-machine communication (M2M) equipment, systems and services. Ι〇Τ设想的事物的范围是无限的,可包括诸如心脏监测植入物、生物芯片应答器、汽车传感器、航空航天和防御现场操作设备、以及例如在搜索和救援操作中协助消防员的公共安全应用的设备。 Ι〇Τ contemplation of things is infinite, such as heart monitoring may include implants, bio-chip transponder, automotive sensors, aerospace and defense equipment field operations, as well as for example to assist firefighters in search and rescue operations in public device security applications. 当前市场示例包括基于家庭的网络,其涉及智能恒温器、灯泡和利用wifi进行远程监控的洗衣机/干衣机。 Examples include the current market-based home network, which involves smart thermostats, light bulbs and use wifi remote monitoring of washer / dryer. 由于物联网中相连接的对象无所不在的性质,估计到2020年,超过300亿个设备将无线连接到物联网。 Due to the nature of things in objects connected everywhere, it is estimated that by 2020, over 30 billion devices will connect wirelessly to the Internet of Things. 本发明的目的之一在于利用与这些设备相关的控制器和处理器的处理能力。 One object of the present invention is to utilize the controllers associated with these devices and processing power.

[0004] 计算机处理器通常串行地执行机器编码指令。 [0004] Computer processors typically execute machine code instructions serially. 为了同时运行多个应用,单个处理器将来自各种程序的指令交错处理并且串行执行它们,尽管从用户的角度看,应用似乎被并行处理。 In order to run multiple applications simultaneously, a single processor to an instruction from the various programs and the interleaving process are performed serially, Although from a user perspective, the application seems to be processed in parallel. 另一方面,真正的并行处理或多核处理是一种将大的计算任务分为单独的计算块并将它们分配到两个或两个以上的计算器之中的计算方法。 On the other hand, true parallel processing or multi-core processing is a large computational tasks into separate calculation block and assign them to the calculation method from among two or calculator. 使用任务并行性(并行处理) 的计算架构将大的计算需求划分为可执行代码的离散模块。 Use Parallelism (parallel processing) computational architecture needs a large computational executable code are divided into discrete blocks. 然后基于它们各自的优先级同时或顺序地执行这些模块。 Then based on their respective priority simultaneously or sequentially execute these modules.

[0005] 典型的多处理器系统包括中央处理器(CPU)以及一个或多个协同处理器。 [0005] A typical multi-processor system comprising a central processing unit (CPU) and one or more coprocessors. CPU将计算需求划分为任务,并将这些任务分发到协同处理器。 CPU computing needs will be divided into tasks and distribute these tasks to the co-processor. 已完成的线程被报告给CPU,CPU根据需要继续向协同处理器分发附加线程。 Completed thread is reported to CPU, CPU to continue to distribute additional co-processor threads as needed. 目前已知的多处理方法的缺点在于:任务分发会消耗大量的CPU带宽;在分发新任务之前等待任务完成(通常具有对先前任务的依赖性);当任务完成时响应来自协同处理器的中断;响应来自协同处理器的其它消息。 Disadvantage of known multi-processing method is characterized by: the distribution task consumes a large amount of CPU bandwidth; waiting tasks in the new task is completed before the distribution (generally having a dependency on a previous task); in response to an interrupt from the coprocessor when the task is completed ; response message from the other co-processor. 此外,协同处理器在等待来自CHJ的新任务时通常保持空闲。 In addition, the co-processor typically remain idle while waiting for a new task from the CHJ.

[0006] 因此,需要一种多处理器架构,所述架构减少CPU管理开销,并且还更有效地处理和利用可用的协同处理资源。 [0006] Accordingly, a need for a multi-processor architecture, CPU architecture reduces the management overhead, and also more efficient handling and use of co-processing resources available.


[0007] 并行处理计算架构的各种实施例包括:CPU,被配置为填入任务池;一个或多个协同处理器,被配置为从任务池主动检索线程(任务)。 A variety of [0007] a parallel processing computing architecture embodiment includes: CPU, configured to task pool filled; one or more co-processor is configured to retrieve from the task pool of active threads (tasks). 每个协同处理器在完成任务时通知任务池,并直到另一任务变得可用以进行处理之前发送回(ping)任务池。 Each coprocessor task pool notification when the task, and the task becomes available until further processing prior to transmission back (ping) task pool. 以这种方式,CPU直接与任务池进行通信,并通过任务池间接与协同处理器进行通信。 In this manner, the CPU communicates directly with the task pool, and communicates indirectly through the coprocessor task pool.

[0008] 协同处理器还可以能够自主地操作;也就是说,它们可以独立于CHJ与任务池交互。 [0008] The co-processor may also be able to operate autonomously; that is, they may be independent CHJ interact with the task pool. 在优选实施例中,每个协同处理器包括询问任务池以搜索任务以执行的代理。 In the preferred embodiment, each of the coprocessor comprises a pool of agents to search query task to perform the task. 因此,协同处理器"等同地"彼此地并与任务池一起地工作在一起,通过自动检索并完成可能是或可能不是相互关联的独立任务来完成集群计算需求。 Accordingly, coprocessor "is equivalent to" each other and work together, together with the task pool, to complete the calculation clustering requirements by automatically retrieving and execute independent tasks may or may not be interrelated. 作为非限制示例,假设任务B涉及计算随时间的平均温度。 As a non-limiting example, assume that the task B involves calculating the average temperature over time. 通过限定任务A以包括捕捉随时间的温度度数,进一步通过限定任务B以包括获取捕捉的读数,CPU和各种协同处理器可由此经由任务池彼此通信。 A task is defined to include by capturing with time the degree of temperature, the task B is further defined to include by acquiring the captured readings, CPU, and various co-processors can thus communicate with each other via the task pool.

[0009] 在各种实施例中,协同处理器被称作自动、主动等同单元。 [0009] In various embodiments, the co-processor is called automatically, equivalent to the active unit. 在本上下文中,术语"自主"意味着协同处理器可以与任务池交互,而不被CPU或任务池指示这样做。 In the present context, the term "independent" means that the coprocessor may interact with the task pool, or CPU task pool without being instructed to do so. 术语"主动"提议每个协同处理器可被配置(例如,编程)为周期性地发送代理以监视任务池中适合于该协同处理器的可用任务。 The term "active" proposal each coprocessor may be configured (e.g., programmed) to periodically monitor the task to transmit the agent pool available tasks adapted to the coprocessor. 术语"等同"意味着协同处理单元在监视和执行任务池中的所有可用任务时共享共同的目标。 The term "equivalent" means that a synergistic processing unit share a common objective in monitoring all of the available tasks and perform the task pool.

[0010] 等同单元(协同处理器)可以是通用处理器或专用处理器,因此可相较于cpu或在系统中的其它等同单元具有相同或不同指令集、结构和微架构。 [0010] identical units (co-processor) may be a general or special purpose processor, and therefore may be compared to the cpu, or other equivalent units in the system have the same or a different instruction set, the structure and microarchitecture. 此外,将被执行的软件程序和将被处理的数据可被包括在一个或多个存储单元中。 In addition, the software program will be executed and the data to be processed may be included in one or more storage units. 在常规的计算机系统中,例如,软件程序包括可需要将由程序使用的数据的指令串。 In conventional computer systems, for example, a software program including program data may need to be used by the command sequence. 例如,如果该程序与媒体播放器对应,则包含在存储器中的数据可以是压缩的音频数据,所述音频数据可由协同处理器读取并最终在扬声器上播放。 For example, if the program corresponding to the media player, then the data contained in the memory may be compressed audio data, the audio data read by the coprocessor and eventually played on the loudspeaker.

[0011] 在系统中的每个等同单元可被配置为通过纵横开关(也被称作结构)与任务池进行电阻或无线通信。 [0011] each equivalent unit in the system may be configured through the crossbar switch (also referred to as structures) of the task pool resistance or wireless communication. 在纯正的无线网状拓扑中,无线电信号自己可构成结构。 In the wireless mesh topology pure, their radio signals can be configured structure. 在各种实施例中,协同处理器也可直接与CPU进行通信。 In various embodiments, a coprocessor may directly communicate with the CPU. 切换结构有利于系统资源之间的通信。 Switching structure facilitates communications between system resources. 每个等同单元是主动的,因为当等同单元没有要执行的处理时,或者当等同单元能够有助于处理循环而不阻碍其正常操作时,它通过将其代理发送到任务池来获得要执行的任务。 Each identical units are active, because when there is no equivalent means to perform a process, or when the unit is able to contribute the equivalent processing cycles without hindering the normal operation, by which it is transmitted to the proxy to perform task pool obtained task. 作为非限制性示例,在物联网(下面更详细地讨论)的上下文中,与诸如灯泡的设备相关联的协同处理器可以被编程为监听来自于主设备(例如智能手机)的"开"和"关"命令作为其正常操作, 但是其处理资源也可以通过任务池来利用。 As a non-limiting example, in the context of things (discussed in more detail below), a light bulb such as a co-processor associated with the device may be programmed to listen from the master device (e.g., smart phone) "on" and "off" command as part of its normal operations, but its processing resources can also be utilized by the task pool.

[0012] 在本文中描述的各种实施例的上下文中,术语"代理"是指与协同处理器相关联的软件模块,类似于网络包,其中,所述协同处理器与任务池进行交互从而获得对协同处理器单元适合的可用任务。 Context [0012] described in the various embodiments described herein, the term "agent" refers to a software module associated with the coprocessor, similar to the network packet, wherein said coprocessor task pool interact with such coprocessor unit is adapted to obtain the available tasks. 当任务可能在先前任务的运行中时,等同单元可顺序地执行任务,或者当一个以上的等同单元是可用的并且一个以上的匹配任务可用于运行时,并行地执行任务。 When the task may be running in the previous task, the equivalent unit may sequentially perform a task, or when more than one equivalent units are available and more than one match for running tasks, tasks are executed in parallel. 根据由CPU提供的任务线程限制(如果任何),可独立地或协作地执行任务。 According to the task thread limit provided by the CPU (if any), independently or cooperatively perform tasks. 在任务池中相互依赖的任务可被逻辑上组合。 Interdependent tasks in the task pool may be combined logically. 当任务线程已完成时,任务池通知CPU。 When the thread has completed the task, the task pool notify CPU. 如果任务线程包括单个任务,则任务池可在该任务完成时通知CPU。 If the task thread includes a single task, the task can notify the CPU pool when the task is completed. 如果任务线程包括多个任务,则任务池在完成这种任务链时通知CPU。 If the task thread includes more than one task, the task informs the CPU pool at the completion of this quest chain. 由于任务线程可以被逻辑上组合,所以可以想到具有以下情况:任务池在逻辑上组合的任务线程完成之后通知CPU。 Since the task thread can be combined logically, so you can expect the following circumstances: After the task to inform the CPU pool on the logical combination of thread to complete the task.

[0013] 本领域技术人员将理解,可以通过将CPU配置为以独立于与各种协同处理器相关联的指令集架构的抽象级别来组合和/或结构任务来促进CPU与协同处理器之间的互操作性,从而允许组件在任务级别而不是在指令级别进行通信。 [0013] Those skilled in the art will appreciate that the CPU can be configured independently of the level of abstraction to various coprocessor instruction set architecture associated combined and / or structures to facilitate tasks between the CPU and the coprocessor interoperability, allowing the assembly task level rather than at the instruction level for communication. 因此,可以在"即插即用"的基础上将设备及其相关联的协同处理器添加到网络。 Thus, in the "plug and play" device on the basis of their associated coprocessor added to the network. 本发明的另一方面提供具有不同指令集架构的CPU的异构阵列内的互操作性。 Another aspect of the present invention provide interoperability in a heterogeneous array having a different instruction set architecture of the CPU.

[0014] 本发明的各种特征尤其适用于物联网设备和传感器的网络;异构计算环境;高性能计算、二维和三维单片集成电路;运动控制和机器人。 [0014] Various features of the present invention is particularly applicable to network devices and sensors things; heterogeneous computing environment; HPC, two and three dimensional monolithic integrated circuit; and a robot movement control.


[0015] 本发明将在下文中结合附图进行描述,其中,相同的数字表示相似的元件,在附图中: [0015] The present invention will be described hereinafter in conjunction with the drawings, wherein like numerals denote like elements, in which:

[0016] 图1是根据实施例的包括CPU、存储器、任务池和被配置为经由结构(fabric)进行通信的多个协同处理器的并行处理架构的示意框图; [0016] Figure 1 is a CPU, a memory, a schematic block diagram of a task pool, and a parallel processing architecture configured to perform communication with a plurality of coprocessors, via structures (Fabric) embodiment;

[0017] 图2是示出根据实施例的示例性任务池的细节的示意框图; [0017] FIG. 2 is a schematic block diagram illustrating details of an exemplary embodiment of the task pool of;

[0018] 图3是根据实施例的包括协同处理单元以及与任务池进行交互的它们对应的代理的网络的示意框图; [0018] FIG. 3 is a schematic block diagram of a processing unit according to the embodiment comprises a synergistic agents and their corresponding network interact with the task pool;

[0019] 图4是根据实施例的包括可用插头和播放设备的物联网的示意布局; [0019] FIG. 4 is a plug and play device available IOT a schematic layout of an embodiment according;

[0020] 图5是示出根据实施例的附近设备的动态处理的示例性物联网使用案例的示意布局; [0020] FIG. 5 is a diagram illustrating a network using an exemplary case was dynamics processing apparatus near a schematic layout of the embodiment;

[0021] 图6是示出根据实施例的示例性并行计算环境的操作的流程图。 [0021] FIG 6 is a flowchart illustrating operation of an exemplary computing environment in parallel embodiment.

具体实施方式 Detailed ways

[0022] 各种实施例涉及并行处理计算系统和环境,从简单的切换和控制功能到复杂的程序和算法,包括但不限于:数据加密;图形、视频和音频处理;直接内存访问;数学计算;数据挖掘;游戏算法;以太网包和其它网络协议处理,包括外部网络的数据建设、接收和传输;金融服务和商业方法;搜索引擎;互联网数据流和其它基于网络的应用;执行内部或外部软件程序;例如在物联网的环境中接通和断开和/或以其它方式控制或操纵器具、灯泡、消费电子广品等。 [0022] The embodiment relates to a parallel processing computing system and environment, from simple switching and control functions to complex programs and algorithms, including, but not limited to various embodiments: data encryption; mathematical calculations; graphics, video and audio processing; Direct Memory Access ; data mining; game algorithm; Ethernet packets and other network protocol processing, including the construction of an external data network, reception and transmission; financial services and business methods; search engines; Internet streaming and other web-based applications; perform internal or external software program; for example on and off, and / or controlled or manipulated appliance, otherwise the lamp, consumer electronic products such as wide in a networked environment thereof.

[0023] 各种特征可并入任何当前已知或以后开发的计算机架构中。 [0023] Various features may be incorporated into any computer architecture currently known or later developed in the. 例如,涉及同步、数据安全、无序执行和主处理器中断的并行处理问题可以使用本文描述的发明构思来解决。 For example, to synchronize, data security, and parallel processing of order execution issues interrupts the host processor may use the inventive concepts described herein to solve. [0024] 现在参照图1,分布式处理系统10包括单核或多核CPU 11以及被配置为经由横杆切换结构14与任务池13进行通信的一个或多个等同或协同处理单元12A至12。 [0024] Referring now to Figure 1, a distributed processing system 10 includes a single or multi-core CPU 11 and is configured to communicate via the crossbar switch structure 14 and a communication task pool 13 or more identical or synergistic processing units 12A to 12. 等同单元12 还可经由切换结构14或经由单独的单元总线(未示出)彼此通信。 Equivalents unit 12 may also communicate with one another via the switching fabric 14, or (not shown) via a separate bus unit. CPU 11可直接或经由切换结构14与任务池13进行通信。 CPU 11 may communicate directly or via the switching fabric 14 and 13 task pool. 一个或多个存储单元15中的每一个包含数据和/或指令。 One or more memory cells 15 each contains data and / or instructions. 在本上下文中,术语"指令"包括可经由CPU 11执行编译的软件程序。 In the present context, the term "instructions" include a software program of the CPU 11 executes via compilation. 存储单元15、单元12和任务池13可电阻或无线互联以经由切换结构14与CPU和/或彼此相互通信。 A storage unit 15, unit 12 and the task pool 13 may be interconnected to a resistor or a wireless or communication with the CPU 14 via the switching fabric and / or each other. 在某些实施例中,CPU 11仅通过任务池间接与单元12通信。 In certain embodiments, CPU 11 only communicate with the task pool unit 12 indirectly. 在其它实施例中,CPU 11也可在不使用任务池作为中间物直接与单元12进行通信。 In other embodiments, CPU 11 may also be used without a task pool communicates directly with the intermediate unit 12.

[0025] 在某些实施例中,系统10可包括一个以上的CPU 11和一个以上的任务池13,在这种情况下,一个特定的CPU 11可与一个特定的任务池13进行交互,或者多个CPU 11可共享一个或一个以上的任务池13。 [0025] In certain embodiments, system 10 may include more than one CPU 11 or more and a task pool 13, in this case, a particular CPU 11 may interact with a particular task pool 13, or a plurality of CPU 11 may share one or more than one task pool 13. 此外,每个等同单元可被配置为与一个以上任务池13进行交互。 In addition, each equivalent unit may be configured to interact with one or more 13 task pool. 可选地,一个特定的单元可被配置为与单个指定任务池进行交互,例如,在高性能或高安全性环境下。 Alternatively, a particular cell may be configured with a single pool of tasks assigned to interact, for example, in high performance or high security environment.

[0026] 在各种实施例中,当满足以下三个条件时,单元可与任务池动态配对、电阻(插入并播放)或无线(空中)地: [0026] In various embodiments embodiment, when the following three conditions are satisfied, the cell may be paired with dynamic task pool, a resistor (insert and play) or wireless (air) to:

[0027] 1)单元能够与任务池进行电阻通信或无线通信。 [0027] 1) means capable of resistance or wireless communication with the task pool. 到任务池的连接可以通过任务池本身中的端口,或通过连接到任务池的切换结构; Tasks may be connected to the tank through a port in the task pool itself, or by a structure connected to the switching of the task pool;

[0028] 2)任务池识别由单元发送的代理是可信的,例如,使用具有或不具有密码的来自用户的输入,通过传统Wi-Fi、Bl〇〇t〇〇th或类似配对,手动地通过在智能手机或平板电脑上运行的图形软件程序或通过任何其他安全或不安全的方法; [0028] 2) identified by the task pool agent unit transmission is authentic, e.g., with or without the use of a password input from the user, by a conventional Wi-Fi, or the like Bl〇〇t〇〇th pairing manually through a graphics software program running on a smartphone or tablet, or any other security methods or unsafe;

[0029] 3)任务池中的至少一个可用任务与等同单元的能力兼容。 At least one compatible [0029] 3) the capabilities of the available pool of tasks and task unit equivalents.

[0030] 在具有多任务池的多处理器环境的情况下,除了给定单元可以被锁定或被限制为仅与任一个任务池一起工作之外,前述动态配对条件适用;否则,单元可以使用第一查找基础、循环基础或任何其它选择方案,与一个或多个任务池连接。 [0030] In the case of a multi-processor environment having a multi-task pool, except that a given unit may be locked or limited to only work with any other than a task pool, the dynamic matching conditions apply; otherwise, the unit may use first lookup based on a recurring basis, or any other option, is connected to one or more task pool. 还可以向任务池中的任务分配优先级,由此单元给予高优先级任务优先级,并且当没有以其它方式被更高优先级任务占用时,服务较低优先级任务。 May also assign the task to the task priority cell, whereby the cell given a high priority task priority, and when not otherwise occupied by higher priority tasks, service lower priority task.

[0031] CPU 11可以是用于执行软件程序的单核处理器或多核处理器、应用处理器或微控制器。 [0031] CPU 11 may execute the software program for the single-core or multi-core processor, an application processor or microcontroller. 系统10可在个人计算机、智能电话、平板电脑、互联网设备上被实现,在这种情况下, CPU 11可以是任何个人计算机、中央处理器或处理器集群,诸如,英特尔®、奔|聲®或者立即计算环境的本地或远程多核处理器。 The system 10 may be implemented on personal computers, smart phones, tablets, internet device, in this case, CPU 11 can be any personal computer, a central processor or cluster of processors, such as Intel ®, Ben | Sound ® Now computing environment or local or remote multi-core processors. 可选地,系统10可在超级计算机上实现,并且CPU 11可以是精简指令集计算机("RISC")处理器、应用处理器、微处理器等。 Alternatively, the system 10 may be implemented on a supercomputer, and the CPU 11 may be a reduced instruction set computer ( "RISC") processor, an application processor, a microprocessor.

[0032] 在其它实施例中,系统10可在本地连接的一系列个人计算机(诸如,贝奥武夫(Beowulf)集群)上实现,在这种情况下,CPU 11可包括所有的中央处理器、子集或联网计算机中的一个。 [0032] In other embodiments, the system 10 may be implemented in a series of personal computers (such as the Beowulf (the Beowulf) cluster) of the local connection, in this case, CPU 11 may include all of the central processing unit, subset or a networked computer. 可选地,系统10可在远程连接的计算机上的网络上实现,在这种情况下,CPU 11可以是现在已知的或稍后将开发的用于服务器或大型机的中央处理器。 Alternatively, the system 10 may be implemented on a computer remotely connected on the network, in this case, CPU 11 may be now known or to be developed, a central processor for a mainframe or server later. CPU 11在当前描述的系统10内执行对象并行处理方法的具体方式可以受到CPU的操作系统的影响。 DETAILED CPU 11 executes in the system 10 of the presently described parallel processing objects may be affected by the operating system of the CPU. 例如,如下所述,CPU 11可以被配置为通过对其进行编程以识别并与任务池13通信并将计算需求划分为线程而在系统10内使用。 For example, as described below, CPU 11 may be configured to be programmed to divide by 13 to identify and communicate the calculated demand task pool thread used in the system 10.

[0033] 还可以预期,系统10可以在具有操作系统的任何计算机或计算机网络上反作用实现,该操作系统可以被修改或以其它方式配置为实现本文所描述的功能。 [0033] It is also contemplated, the reaction system 10 may be implemented on any computer or network of computers having an operating system, the operating system may be modified or otherwise configured to implement functions described herein. 如本领域中已知的,要处理的数据包含在存储器单元15内,例如在随机存取的可寻址区域或分区或只读存储器的情景下,用于CPU 11的高速缓存存储器,或其它形式数据存储器如闪存和磁存储器。 As is known in the art, the data to be processed in the cache memory comprises a memory unit 15, for example at or partitions the addressable area or read only memory random access scenarios for the CPU 11, or other form data memory and magnetic memory such as flash. 存储器单元15包含要处理的数据以及放置处理的数据的结果的位置。 The memory unit 15 contains the data to be processed and the result is placed in data processing location. 不是每个任务都需要访问存储器单元15,例如在智能仪表和汽车仪表的情况下,其可以将数据返回到系统10,或者在机器人和马达控制器的情况下,其可使机器制动。 Not every task requires access to the memory unit 15 is, for example, in the case of the smart instruments and automotive instrument, which can be returned to the data system 10, or in the case where the robot controller and the motor which cause the machine to brake.

[0034] 每个单元12在概念上或逻辑上是能够运行一个或多个任务/线程的独立的计算单元。 [0034] Each cell 12 on the logical concept or capable of running one or more separate computing unit task / thread. 单元12可以是微控制器、微处理器、应用处理器、"哑巴"开关或独立计算机,如贝奥武夫集群中的机器。 Unit 12 may be a microcontroller, a microprocessor, an application processor, "dumb" switch or standalone computer, such as the Beowulf cluster machines.

[0035] 单元12可以是被配置为补充、执行全部或执行有限范围的CPU的功能的通用或专用协同处理器,或者例如对CPU 11是外部的功能,诸如环境监视和机器人致动器。 [0035] The unit 12 may be configured to supplement, or to perform the functions of all the CPU performs a limited range of general or special purpose co-processor, for example CPU 11 or external functions, such as environmental monitoring and robotic actuators. 专用处理器可以是被设计、编程或以其它方式配置为执行专门任务的专用硬件模块,或者其可以是被配置为执行诸如图形处理、浮点算术或数据加密的专用任务的通用处理器。 It may be a dedicated processor designed, programmed or otherwise configured to perform specialized tasks dedicated hardware module, or it may be configured to perform such as graphics processing, floating-point arithmetic, or data encryption dedicated general purpose processor tasks.

[0036] 在实施例中,作为专用处理器的任何单元12还可被配置为访问并写入存储器并执行如下所述的描述符以及其它软件程序。 [0036] In an embodiment, 12 may also be configured as an access unit of any special purpose processor and written into the memory and executes the descriptor as described below and other software programs.

[0037] 此外,任何数量的单元12可以包括异构计算环境;即,使用一种类型以上的处理器(诸如基于AMD和/或基于Intel的处理器)或32位和64位处理器的混合的系统。 [0037] Further, any number of units 12 may include a heterogeneous computing environment; i.e., the use of more than one type of processor (such as AMD-based and / or based on Intel processors) or a mixed 32-bit and 64-bit processors system.

[0038] 如在以下序列事件中所示,每个单元12被配置为执行一个或多个专用任务。 [0038] As shown in the following sequence of events, each unit 12 is configured to perform one or more specific tasks. 在轮询阶段期间,每个单元周期性地向任务池发送代理,直到找到匹配任务。 During the polling period, each unit periodically sending a proxy to the task pool, until it finds a matching task. 为了便于这种匹配,单元和任务池可以配备有收发器。 To facilitate such matching, and task pool units may be equipped with a transceiver. 在任务池的情况下,收发器可位于任务池本身或者位于与任务池连接的切换结构中。 In the case of the task pool transceiver may be located in the pool itself or task switching and task pool structure is positioned connected. 当在任务池内找到任务匹配时,任务池将确认发送到单元。 When finding matching task in the task pool, pool sends an acknowledgment to the task unit. 接下来的步骤是"通信信道"阶段。 The next step is a "communication channel" stage. 在通信信道阶段,单元接收任务并开始执行任务。 Communication channel phase, and begins the task execution unit receives the task. 在一个实施方案中,一旦第一任务被完成,则维持通信信号,使得等同单元可在不需要重复"轮询" 和"确认"阶段就可抓取其它任务。 In one embodiment, once a first task is completed, the communication signal is maintained, so that the equivalent unit may "poll" and "OK" can fetch stage need not be repeated in other tasks.

[0039] 系统10可包括多个单元,其中,这些单元中的某些单元能够执行与其它单元相同任务类型,从而在系统10中创造冗余。 [0039] The system 10 may include a plurality of cells, wherein some of these units with other units capable of performing the same task type, thereby creating redundancy in the system 10. 由给定单元12执行的任务类型集合可以是由另一单元执行的任务类型的集合的子集。 Type by the task execution unit of a given set may be a subset of the set 12 types of tasks performed by another unit. 例如,在图1中,系统10可将聚集的计算问题划分为任务组,利用第一类型、第二类型和第三类型的任务来填充任务池13。 For example, in FIG. 1, the system 10 may be divided into calculation of aggregate task group, the use of a first type, second type and third type of task to task pool 13 is filled. 第一单元12A可能够仅执行第一类型的任务;第二单元12B可能够执行第二类型的任务;第三单元12C可能够执行第三类型的任务;第四单元12D可能够执行第二或第三类型的任务;第五单元12N可能够执行所有三种任务类型。 The first unit 12A may be capable of executing only the first type task; second unit 12B may be capable of performing a second type of task; third unit 12C may be capable of executing a third type task; fourth unit 12D may be able to perform a second or the third type task; fifth cell 12N may be capable of performing all three types of tasks. 系统10可被配置具有这种冗余,使得如果给定单元从系统10 (或当前忙或其它方式不可用)移除,则系统10可继续无缝运行。 The system 10 may be configured with such a redundancy, so that if a given unit is removed (the current busy or unavailable or otherwise) from the system 10, the system 10 may continue to run seamlessly. 此外,如果单元被动态地添加到系统10,则系统10可在具有更高性能的好处下继续无缝运行。 Further, if the unit is dynamically added to the system 10, the system 10 may continue to operate seamlessly with the benefits of higher performance.

[0040] 现在参照图1和图2,任务池13可占据可由CPU 11访问的物理存储器的区域。 [0040] Referring now to FIGS. 1 and 2, the task pool 13 may occupy areas of physical memory accessible by the CPU 11. 可选地,任务池13可被MAC地址或IP地址访问。 Alternatively, 13 can be accessed task pool MAC address or IP address. 对于任务池13预想了多个实施例;它可与CPU在物理上位于相同的2D或3D单片1C中,或者它可以被实现为独立1C并且物理地互连到计算机板、智能电话、平板电脑、路由器或物联网设备。 For the task pool various embodiments envisioned 13; CPU it may be located in the same monolithic 1C, 2D or 3D physically, or it may be implemented as a separate and physically interconnected to 1C board computer, a smart phone, a tablet computer, router, or things device. 在另一可选实施例中,任务池可以是可以在多个CPU 11系统之间共享或专用于给定CPU 11的独立多端口,有线和/或无线连接的设备。 In another alternative embodiment of the device, the task pool may be shared between multiple CPU 11 specific to a given system or a separate multi-port CPU 11, wired and / or wireless connections embodiment. 任务池13还可以由单元12寻址。 Task pool 13 may also be addressed by the unit 12. 任务池13可以设置在专用硬件块中,以通过CPU 11和单元12提供最大访问速度。 Task pool 13 may be provided in a dedicated hardware block, and the CPU 11 through unit 12 to provide a maximum access speed. 可选地,任务池13可以是基于软件的,其中,类似于基于硬件的实施例,任务池13的内容存储在存储器中,但由数据结构表示。 Alternatively, tank 13 may be a task-based software, which based on similar hardware embodiment, task pool contents stored in the memory 13, but is represented by a data structure.

[0041] 在被CPU 11填充时,任务池13包含一个或多个任务线程21。 [0041] The CPU 11, when filled, task pool 13 comprises a plurality of tasks or threads 21. 每个任务线程21表示计算任务,该计算任务可以是施加在CPU 11上的较大聚合计算需求的组件或子集。 21 shows a calculation task thread for each task, the task may be calculated on a larger polymerization of the CPU 11 is applied to a subset of computing components or requirements. 在一个实施例中,CPU 11可初始化并随后用同时可执行的线程21填充任务池13。 In one embodiment, CPU 11 may be initialized and subsequently with 21 threads simultaneously executable task pool 13 is filled. 每个线程21可以包括一个或多个离散任务22。 Each thread 21 may include one or more discrete tasks 22. 任务22可具有任务类型和描述符。 22 may have a task and a task descriptor type. 任务类型指示哪些单元12 能够执行任务22。 Task indication unit 12 can perform which tasks 22. 任务池13还可以使用任务类型来对具有相同类型的任务22进行优先级排序。 Task pool 13 may also use the type of task to prioritize tasks 22 have the same type. 在一个实施例中,任务池13可维护记录存在于系统10中的等同单元12的优先级表(未示出)、每个单元能够执行的任务22的类型以及每个单元当前是否正在处理。 In one embodiment, the task pool 13 may be present in the system maintain a record of 10 equivalents unit priority table (not shown) 12, each unit is capable of performing the task type and each cell 22 is currently being processed. 如下所述,任务池13可以使用优先级表来确定将哪些合格任务22分配给请求单元。 As described below, cell 13 can use the task priority table 22 to determine which qualified tasks assigned to the requesting unit.

[0042] 在某些实施例中,CPU 11可从任务池检索并执行任务或线程。 [0042] In certain embodiments, CPU 11 may be retrieved from the task and perform the task or thread pool. 此外,CPU 11可中断被确定为过时、损坏、卡住或错误的任何任务。 In addition, CPU 11 can interrupt any task is determined to be out of date, damaged, jammed or error. 在这种情况下,CPU 11可更新任务,使其可用于后续处理。 In this case, CPU 11 can update task so that it can be used for subsequent processing. 没有任何东西阻止CPU 11实现自适应任务管理,例如,如人工智能可能需要的,由此CPU 11可以添加、移除或改变未完成的现有线程21内的任务。 Nothing prevents CPU 11 adaptive management tasks, such as artificial intelligence that may be required, thus CPU 11 can add, remove or change tasks within an existing thread unfinished 21.

[0043] 描述符可包含将被执行的具体指令,执行模式、将被处理的数据的位置(例如,地址)和任务结果的放置位置(如果有的话)中的一个或更多个。 [0043] descriptors may contain specific instructions to be executed, execution mode, the data to be processed location (e.g., address) and place the results of the task (if any) one or more. 结果的放置位置是可选的,诸如,在动画和多媒体任务的情况下,其通常将结果呈现给显示器而不是将它们存储在存储器中。 Results placement is optional, such as, in the case of animation and multimedia tasks, which usually presents the results to the display instead of storing them in a memory. 此外,任务描述符可以链接在一起,如在链表中,使得与如果描述符不被链接在一起相比,可以用更少的存储器调用来访问要处理的数据。 In addition, task descriptors can be linked together as a linked list, such that the data than if the descriptor is not linked together, with fewer calls to access the memory to be processed. 在一个实施例中,描述符是包含头部和到存储器位置的多个引用指针的数据结构,任务22包括数据结构的存储器地址。 In one embodiment, the descriptor comprising a plurality of memory locations to the head and the reference data structure pointer, task 22 includes a memory address of the data structure. 头部定义了要执行的函数或指令。 Or the head defines a function instruction to be executed. 第一指针引用要处理的数据的位置。 A first reference position of the pointer of data to be processed. 第二个可选指针引用处理数据的放置位置。 The second optional placement reference pointer processing data. 如果描述符链接到要被顺序执行的另一描述符,则描述符可以包括引用下一描述符的第三指针。 If the descriptor link to another descriptor to be executed sequentially, the descriptor may include a third reference pointer of the next descriptor. 在描述符是数据结构的替代实施例中,任务22可以包括完整数据结构。 Descriptor is a data structure of an alternative embodiment, task 22 may comprise a complete data structure.

[0044] 线程21还可包括描述可以执行任务22的顺序和影响性能顺序的任何条件的"配方"。 [0044] The threads 21 may further include a description of any conditions may be performed sequentially and 22 affect the performance of the task order "recipe." 根据配方,可以根据布尔运算顺序地、同时地、无序地、相互依赖地或有条件地执行任务22。 The formulation, according to Boolean operations sequentially, simultaneously, out of order, or conditionally interdependent tasks 22. 例如,如图2所示,线程21A包括四个任务:22六、228、22(:和220。在所示实施例中,第一任务22A必须在第二任务22B或第三任务22C可以开始之前完成。根据配方,一旦第二任务22B或第三任务22C完成,则第四任务22D可以开始。 For example, as shown in FIG, 21A the thread comprising four tasks: 22 six, 228,22 (: and 220. In the illustrated embodiment, the first task may begin 22A have a second or third task assignment 22B 22C before completion. according to the recipe, once the second task 22B or 22C to complete the third task, the fourth task 22D can begin.

[0045] 线程21也可以是相互依赖的。 [0045] thread 21 may be interdependent. 例如,如图2所示,由于线程21B中的布尔运算,完成的任务22C可以允许线程21B中的任务的处理继续。 For example, as shown in FIG 2, since the thread Boolean operations 21B, 22C tasks may allow processing to continue the task threads 21B. 任务池13可以锁定任务22,同时任务22 正等待其所依赖的另一任务22的完成。 13 task pool can lock tasks 22, 22 while the task is waiting for another task to complete 22 of which it depends. 当任务22被锁定时,其不能被单元获取。 When task 22 is locked, it can not be acquired unit. 当线程21的任务22完成时,任务池13可以通知CPU 11完成。 When the task thread 21 to complete 22 tasks pool 13 may notify CPU 11 is completed. 然后,CPU可使处理超过完成的线程21。 Then, CPU can handle more than 21 complete thread.

[0046] 这些单元有利地保持彼此和与CPU 11的等同,从而帮助系统10通过自主地和主动地从任务池13检索任务来执行复杂的计算。 [0046] These cells are advantageously equivalent to one another and with the holding of the CPU 11, to help the system 10 and by actively autonomously to perform complex calculations from the retrieval task 13 task pool. 单元12自主地操作,因为它们可以独立于CPU 11或任何其它协同处理器。 Autonomously operating unit 12, since they are independent of the CPU 11 or any other co-processor. 可选地,可以直接由CPU作用或指示单元。 Alternatively, the CPU may be directly acting or instruction unit. 每个单元主动地行动, 因为一旦单元变得可用于进一步处理,它就从任务池13寻找任务22。 Each unit is actively move because once the unit is made available for further processing, it is the task of finding the task 22 from tank 13.

[0047] 更具体地,在一个实施例中,单元12通过发送代理30以询问(搜索)任务池并检索可用任务22从任务池获取任务,可用任务22需要完成、未被锁定并且具有单元可执行的任务类型。 [0047] More specifically, in one embodiment, the agent unit 12 transmits query 30 (search) and retrieve the task pool available task 22 acquires the task from the task pool, need to be used to complete task 22, and has a locking unit may not the type of task to perform. 通常来说,系统10与等同协同处理单元具有相同数量的代理。 Typically, system 10 equivalents synergistic processing unit has the same number of agents. 在这种情况下,代理通常类似于网络意义上的数据帧,因为代理可以配备有源地址、目的地址和负载。 In this case, the agent is generally similar to the data frames on the network sense, the proxy may be provided as source address, destination address and load. 在实施例中,当代理30正在寻找任务22时,目的地址是任务池13的地址,当代理30返回到其具有任务22的单元时,目的地址是相应的单元12的地址。 In an embodiment, the agent 30 when the task 22 is looking for, the destination address is the address of the task pool 13, when the agent unit 30 has returned to its task 22, the destination address is the address of the corresponding unit 12. 相应地,当代理30正在寻找任务22时,源地址是单元12的地址,并且当代理30返回到其具有任务22的单元时,源地址是任务池13的地址。 Accordingly, when the agent is looking for tasks 30 22, the source address is an address unit 12, and when the agent unit 30 has returned to its task 22, the source address is the address of the task pool 13.

[0048] 此外,源地址和目的地址可有利于帧同步。 [0048] In addition, the source and destination addresses may facilitate frame synchronization. 也就是说,系统10可被配置为明确区分地址与负载数据,使得当读取代理30的内容时,目的地址指示帧的开始,并且源地址指示帧的结束,或反之亦然。 That is, the system 10 may be configured to clearly distinguish the address data with the load, so that when reading the content of the agent 30, the destination address indicating the beginning of the frame, and the source address indicates the end of the frame, or vice versa. 这允许负载在放置在地址之间时在大小上变化。 This allows the load variation in size when placed between addresses. 在大小可变的负载的另一实施例中,代理30可包括指示负载大小的头部。 In another embodiment the variable magnitude of the load embodiment, the agent 30 may comprise a header indicating the size of the load. 可将头部信息与负载进行比较以验证数据完整性。 Load header information can be compared to verify data integrity. 在又一个实施例中,负载可以是固定长度。 In yet another embodiment, the load may be a fixed length. 当代理30通过其协同处理器单元被分派到任务池13时,负载包括单元12可以执行的任务类型的标识信息。 When agent 30 is assigned to the task by the synergistic processor unit cell 13, load cell 12 includes a task type identification information may be performed. 当代理30从任务池13返回时,负载包括以存储位置的形式或全部描述符数据结构的形式的任务22的描述符。 When the agent returns from the task pool of 30 13, a load including a storage location of the form described in the form of symbols or all of the data structures in the task descriptor 22. [0049] 在另一实施例中,代理30中的某些或全部代理是其各自对应的单元12的自主代表。 [0049] In another embodiment, the agent 30 in some or all of their respective agents are representative of the corresponding independent unit 12. 也就是说,每个代理30可以由其相应的单元12分派,以在该单元空闲或能够执行附加处理时检索任务22。 That is, each agent 30 may be assigned by the corresponding unit 12 to retrieve the idle or when the unit is capable of performing additional processing tasks 22. 以这种方式,可以更充分地利用等同单元12的处理能力,因为单元不需要空闲地等待来自CPU 11的指令。 In this manner, it is possible to more fully utilize the processing capacity of 12 identical units, because the cell does not need to be free of the CPU 11 waits for instructions from. 此方法具有通过减轻CPU向单元发送请求以从任务池检索任务的需求来减少CPU开销的额外优点。 This method has the additional advantage of a request to reduce the CPU overhead to the demand from the task pool unit transmits the retrieval tasks by relieving the CPU. 这些优点使得系统10比传统计算机架构更有效,其中辅助模块和协同处理器依赖于来自主CHJ的指令。 These advantages make the system 10 more efficient than conventional computer architecture, wherein the auxiliary module and the coprocessor instruction from the host depends on the CHJ.

[0050] 此外,等同单元12A至12η对于线程本身的具体组成是矛盾的。 [0050] Further, the unit 12A is equivalent to the composition for a particular thread itself 12η are contradictory. 相反,代理仅关注找到其相应单元的能力与要在任务池13中完成的可用任务22之间的匹配。 Conversely, a match between the agent 22 is concerned only with the ability to find their respective cells and can be used to complete the task in the task pool 13. 也就是说,只要任务池13中存在可用任务22,并且可用任务22匹配单元的能力,则系统可有效地利用单元的处理能力。 That is, as long as there is available in the task pool 13 task 22, and the capacity of the available tasks matching unit 22, the system can effectively utilize the processing capabilities of the unit.

[0051] 等同单元12Α至12η中的某些或全部可彼此独立地工作,或可通过切换结构14、通过任务池13或根据来自CPU的命令或请求彼此通信以唤醒另一等同单元来帮助处理、移动或发送数据。 [0051] equivalent to the unit 12Α 12η some or all may independently of each other, or 14, or to assist in the task pool 13 according to a command from the CPU or another wake-up request to communicate with each other through the processing by the switching unit equivalent structure , move or transmit data. 在一个实施例中,代理30A可以搜索就绪任务22的任务类型以及单元12A能够执行的任务的类型之间的匹配。 In one embodiment, the agent 30A can search for a match between the types of tasks and a ready task task type unit 12A 22 can be executed. 该架构可涉及CPU 11被配置为创建的任务的类型的硬编码。 The architecture may involve CPU 11 is configured to create a task of the type of hard-coded. 因此,如果任务池13包含三种类型的任务22,并且大的计算需求包括第四类型的任务, 则该第四类型的任务可以不被放置在任务池13中,即使能够执行第四类型的任务包括在系统10中或添加到系统10中。 Therefore, if the task pool 13 contains three types of task 22, and the large computational requirements comprising a fourth type of task, the task of the fourth type may not be placed in the task pool 13, can be performed even if the fourth type 10 comprises a task in the system or added to the system 10. 因此,CPU 11可被配置为"学习"或被教导如何创建第四类型的任务,以便更充分地利用可用的处理资源。 Therefore, CPU 11 can be configured to "learn" or be taught how to create a fourth type of task, in order to more fully utilize the available processing resources.

[0052] 在另一实施例中,代理30在任务22描述符中搜索与单元12A能够执行的指令之一匹配的可执行指令。 [0052] In another embodiment, the agent 30 in one of the tasks executable instructions descriptor 22 matches the instruction unit 12A searches can be executed. 当找到匹配任务22时,代理30A将匹配任务22的描述符分发到单元12A, 因此,单元12A开始处理任务22。 When task 22 finds a match, the agent 30A will match the task descriptor 22 is distributed to the unit 12A, and therefore, task 22 starts processing unit 12A. 具体来说,代理30A可将描述符的存储地址分发到单元12A, 单元12A从存储器检索数据结构。 Specifically, the agent descriptor 30A may be distributed to the address stored in unit 12A, configuration unit 12A retrieves data from the memory. 可选地,描述符的完整数据结构被包括在任务22中,代理30A可将完整数据结构分发到单元12A以进行处理。 Alternatively, a complete data structure descriptor is included in the task 22, 30A agent can be distributed to the complete data structure for processing cells 12A. 描述符通知单元12A执行哪个指令,可找到在存储单元15中数据将被处理的位置以及在存储器15中结构将被放置的位置。 Descriptor which the instruction execution notification unit 12A, the position can be found in the storage unit 15 the position of the data to be processed and will be placed in the structure of the memory 15. 在完成任务22时,单元12A通知任务池13将选择的任务22的状态从"将被完成"改变为"已完成"。 In task 22, task status unit 12A notifies the tank 13 from the selected task 22 "is completed" to "completed." 此外,一旦单元12A完成任务22,则单元可将它的代理30A分派到任务池13以搜索另一任务22。 Further, once the tasks 22 unit 12A, the unit may be assigned to that agent task pool 30A in order to search for another task 22 13. [0053] 代理30A至30η中的某些代理或全部代理可根据系统10的具体架构和/或实施方案,通过有线或无线(例如,使用Wi-Fi网络、无线以太网、无线USB、无线桥、无线中继器、无线路由器、Zigbee®、ANT+®或蓝牙配对)穿过系统10。 [0053] Agent Agent some or all of the agent 30A to 30η according to the specific architecture of the system 10 and / or embodiments, wired or wireless (e.g., using Wi-Fi network, wireless Ethernet, wireless USB, wireless bridge , wireless repeater, a wireless router, Zigbee®, ANT + ® or Bluetooth pairing) through the system 10. 在实施例中,代理30可通过在任务池13包括接收器特征并进一步通过包括具有单元12的发送器特征被无线引导至任务池13。 In an embodiment, the agent 30 may include a receiver task pool 13 and further characterized by comprising a transmitter having a characteristic radio unit 12 is guided to the task pool 13. 相似地,任务池可通过为任务池配备发送器并且为等同单元配备接收器而对单元进行无线应答。 Similarly, a task by task pool the pool is equipped with a transmitter and a receiver unit is provided with the equivalents of the wireless transponder unit. 以这种方式,单元可以在使用或不使用切换结构的情况下与任务池无线地通信。 In this manner, the wireless unit may be in communication with or without using a switching structure with the task pool.

[0054] 在优选实施例中,然而,利用切换结构14的某一形式。 [0054] In a preferred embodiment, however, by the switching structure 14 some form. 切换结构14有利用数据传输的连接以及系统资源之间的仲裁。 Switching mechanism 14 is connected between the arbitration and system resource utilization data transmission. 切换结构14可以是在各种单元与任务池之间提供连接的路由器或纵横开关。 Switching structure 14 may be provided between the router connected to the various units or the crossbar switch and the task pool. 切换结构14还可提供在每个等同单元12A至12η与系统资源(诸如,CPU 11、存储单元15和传统系统组件,包括但不限于,直接存储器访问单元、发送器、硬盘及其控制器、显示器和其它输入/输出设备以及其它协同处理器)之间的连接。 Switching fabric 14 may also be provided in each unit 12A is equivalent to 12η and system resources (eg, CPU 11, storage unit 15, and a conventional assembly systems, including but not limited to, a direct memory access unit, a transmitter, and a hard disk controller, the connection between the monitor and other input / output devices and other coprocessors). 单元12A至12η可被物理地连接到切换结构14,或者单元可被无线连接。 12A to 12η units may be physically connected to the switching mechanism 14, or the unit may be a wireless connection.

[0055] 单元无线连接至系统10有利于在系统10中使用的单元的动态增加和/或移除。 [0055] The radio unit 10 connected to the system unit dynamically increase the beneficial use of the system 10 and / or removed. 例如,CPU 11可以从其他单元系统招募单元,允许动态扩展和提高性能。 For example, CPU 11 can be recruited from the other unit of the system unit to allow dynamic expansion and improved performance. 以这种方式,两个或更多个单元系统(例如,网络)可以共享等同单元。 In this manner, two or more units of the system (e.g., network) can share identical units. 在一个实施例中,变得空闲的单元可以寻找和/或由需要附加处理资源的另一系统招募,即,其具有需要完成的可用处理任务。 In one embodiment, the unit may become free to find and / or recruited by another system requires additional processing resources, i.e., which has available processing tasks to be completed. 相似地,系统10可通过并入用于具体任务的额外单元的群集来扩展性能。 Similarly, the performance of the system 10 can be expanded by incorporating an additional cluster unit for a particular task. 例如,系统10可通过并入能够执行这些任务的附近单元来增强加密功能/解密功能的性能,或对音频数据和/或视频数据的处理。 For example, system 10 may enhance the performance of encryption / decryption function can be incorporated near the unit to perform these tasks, or processes the audio data and / or video data.

[0056] 为了防止不期望的连接,CPU 11可以向任务池13提供用于标识可信和/或不可信单元以及认证要求或协议的列表或者备选地,用于标识可信和/或不可信单元的标准。 [0056] In order to prevent undesirable joining, CPU 11 may be provided to the task pool 13 for identifying trusted and / or untrusted unit and the authentication protocol required or list or alternatively, be used to identify trusted and / or untrusted unit standards. 此外,任务池本身可基于低性能、不可靠连接、差的数据吞吐量或恶意或不正当行为来排除具体单元。 In addition, the task pool itself may be based on low performance, unreliable connections, poor data throughput or malicious or improper acts to exclude specific unit. 在各种实施例中,单元12可由用户通过智能手机、平板电脑或其它设备或应用的使用,而被添加到任务池13或者从任务池13排除。 In various embodiments, unit 12 by the user via a smart phone, tablet, or other device, or use the application, the task is added to the tank 13 or 13 are excluded from the task pool. 在一个实施例中,图形应用接口可向用户提供有用的静态和/或图标信息,诸如,可用单元和其它设备的位置、性能增益或性能代偿,作为增加具体单元或从网络移除具体单元的结果。 In one embodiment, the graphics application interface may provide useful static and / or iconic information to a user, such as the location of the available units and other devices, performance gain or a performance penalty increases as the particular unit or removed from the particular network element the result of.

[0057] 在可选实施例中,协同处理单元中的某些单元或全部单元可诸如通过不需要用于通信的切换结构14的有线配置直接连接到任务池13。 [0057] In an alternative embodiment, the co-processing unit in some or all units connected to the unit may be such as a pool of tasks does not require a switching mechanism 13 via a communication cable 14 is arranged directly. 单元的有线连接还可促进类似于上述无线配置的系统10的动态扩展和收缩,尽管有线连接可以是物理(例如,手动)集成和外围设备的提取。 Wired connection unit may further facilitate expansion and contraction similar to the dynamic configuration of the wireless system 10, although a wired connection may be physical (e.g., manual) extraction and integration of peripheral devices. 在任一情况下,与常规并行处理方案相比,系统的可扩展性大大增强,因为可以添加和移除协同处理器而不对CPU 11进行重新编程以考虑对系统10的改变。 In either case, as compared with the conventional parallel processing scheme, system scalability is greatly enhanced because the coprocessor can be added and removed without re-programming the CPU 11 to account for changes to the system 10.

[0058] 现在参照图3,网络300包括CPU 302、第一存储器304、第二存储器306、任务池308、 切换结构310、被配置为执行(运行)类型A任务的第一协同处理单元312、被配置为执行类型B任务的第二单元314、被配置为执行类型C任务的第三单元316,以及被配置为执行类型A任务和类型B任务两者的第四单元318。 [0058] Referring now to FIG. 3, the network 300 comprises a CPU 302, a first memory 304, second memory 306, task pool 308, switching mechanism 310, a first co-processing unit is configured to execute (run) A type of task 312, the second unit is configured to perform tasks of type B 314, the third unit is configured to perform the tasks of type C 316, and the fourth unit is configured to perform the tasks of both type a and type B task 318. 如上所述,任务池308被任务类型A的任务(或任务线程)330和332;任务类型B的任务334和336以及任务类型C的任务340和342而填入(例如,由CPU 302)。 As described above, task 308 is pool A task of the task type (task or thread) 330 and 332; task 334 and task 336 of the type B and type C mission tasks 340 and 342 fill (e.g., by the CPU 302). 在实施例中,每个单元优选地具有唯一专用的代理。 In an embodiment, each unit preferably has a unique dedicated proxy. 具体来说,单元312包括代理320;单元314包括代理322;单元316包括代理324;单元318包括代理326。 Specifically, unit 312 includes a proxy 320; unit 314 includes a proxy 322; unit 316 includes a proxy 324; unit 318 includes a proxy 326. 每个代理优选地包括信息字段或识别任务的类型的头部,该任务为与其相关联的单元被配置执行的任务,例如,单个任务或任务A、B、C的组合。 Each agent unit preferably includes a task information field identifying the type or head, the task associated therewith are configured task execution, e.g., a combination of a single task or tasks A, B, C of.

[0059] 在操作期间,当单元是空闲的或者以其它方式具有可用处理能力时,它的代理主动询问任务池以确定任何任务是否在任务队列中适合于该具体单元。 [0059] During operation, when the cell are idle or otherwise have available processing capability, its active agent task pool interrogation to determine if any tasks in the task queue is adapted to the particular unit. 例如,单元312可分派其代理320以检索与任务类型A对应的任务330和332中的一个或两个。 For example, unit 312 may dispatch agent 320 which retrieves the corresponding task A task type 330 and 332 to one or two. 相似地,单元314可分派其代理322以检索与任务类型B对应的任务334或336 (根据它们对应的优先级)等。 Similarly, unit 314 may dispatch agent 322 to retrieve its task type corresponding task 334 or B 336 (according to their corresponding priority) and the like. 针对能够执行超过一个任务类型的单元,诸如单元318被配置为执行任务类型A和B、代理326可检索任务330、332、334和/或336中的任意一个。 Can be performed for more than one type of task units, such as unit 318 is configured to perform a task type A and B, the proxy 326 may retrieve any of the task 330,332,334, and / or 336 a.

[0060] 在从任务池检索到任务时,单元可随后处理该任务,通常通过从第一存储器304中的具体位置检索数据、处理该数据并将处理后的数据存储在第二存储器306内的具体位置上。 [0060] When the task is retrieved from the pool to the task, the task processing unit can then, typically by retrieving from the first memory 304 in particular location data, processing the data and stores the processed data in the second memory 306 specific position. 当任务被完成时,单兀通知任务池,任务池将该任务标记为已完成,任务池通知CPU该任务已完成。 When the task is completed, a notification task pool single Wu, task pool mark the task as completed, notifies the CPU of the task pool task has been completed. 可选地,任务池当任务线程已完成可通知CPU,因为任务线程可包括单个任务、任务串或任务的布尔组合。 Alternatively, task pool when the thread has completed the task can notify the CPU, because the task thread may comprise Boolean combinations of a single task, task or task strings. 重要的是,在没有CHJ和各个单元之间的直接通信的情况下,可能发生单元对任务的检索和对数据的处理。 Importantly, in the absence of direct communication between the respective units and CHJ, the task retrieval unit may occur and processing of data.

[0061] 现在参照图4,物联网网络400包括控制器(CPU) 402、任务池408和各种设备410至422,其中,所述设备中的某些或全部包括相关联或嵌入的微控制器,诸如,集成电路(1C)芯片或实现处理能力的其它组件。 [0061] Referring now to Figure 4, network 400 comprises IOT controller (CPU) 402, task pool 408 and the various devices 410-422, wherein the apparatus comprises some or all associated or embedded microcontroller device, such as, other components of an integrated circuit (1C) chip or processing capabilities implemented. 作为非限制示例,该设备可包括灯泡410、恒温器412、电插座414、电源开关416、器具(例如,烤面包机)418、车辆420、键盘422以及能够与网络交互的实际上任何其它即插即用设备或应用。 As a non-limiting example, the apparatus may comprise a lamp 410, a thermostat 412, electrical socket 414, a power switch 416, the appliance (e.g., toaster) 418, a vehicle 420, a keyboard 422, and in fact capable of interacting with any other network i.e. plug devices or applications.

[0062] 在示出的实施例中,控制器402可以是智能电话、平板电脑、膝上型笔记本、或可包括显示器404和用户接口(例如,键盘)406以方便用户与网络中的各种设备进行用户交互的其它设备。 [0062] In the illustrated embodiment, the controller 402 may be a smart phone, a tablet PC, a laptop, or may include a display 404 and a user interface (e.g., keyboard) 406 to facilitate the user with a variety of network other equipment device user interaction. 在控制器402的处理能力(例如,带宽)可能不足以充分支持网络的程度上,控制器可以经由任务池有效地从外围设备获取或招募处理资源,例如如下面结合图5进行解释。 The degree of processing capability of the controller 402 (e.g., bandwidth) may be insufficient to adequately support the network, via the task pool controller may effectively obtain or recruited from the peripheral device processing resources, such as will be explained in conjunction with FIG. [0063] 现在参照图5,物联网网络500使用案例示出附近(或其它方式可用)设备的动态利用。 [0063] Referring now to Figure 5, interconnected network 500 was illustrated using the case of using a dynamic device in the vicinity of (or otherwise available). 网络500包括主控制单元502 (例如,膝上型笔记本、平板电脑或游戏设备)、任务池504、 第一协同处理器设备506和第二协同处理器设备508。 Network 500 includes a main control unit 502 (e.g., a laptop, a tablet PC or game apparatus), task pool 504, the first device 506 and a second co-processor co-processor device 508. 现在将描述在网络500的背景下的示例性使用案例。 Exemplary use cases in the context of the network 500 will now be described.

[0064] 假设用户在她的膝上型计算机502上正播放视频游戏。 [0064] assumes that the user is playing a video game on her laptop computer 502. 视频游戏需要详细的计算机生成图像,并且可能膝上型计算机502中的处理能力足以呈现单个真实外观角色,但是当第二角色被引入到屏幕上时,图像质量劣化,并且角色的移动不再连续。 Video games requires detailed computer generated images, and the laptop computer 502 may be a processing capacity sufficient to exhibit the true appearance of a single character, but when the second character is introduced to the screen, the image quality deteriorates, and the moving character is no longer continuous . 本发明提出一种利用位于用户附近或用户可用的未充分利用的计算机资源的处理能力的方法。 The present invention provides a method for users located near or processing capabilities of the computer resources available to the user using underutilized.

[0065] 为了解决附加处理能力的需求,膝上型计算机502连接到任务池504。 [0065] To address the need for additional processing capability, a laptop computer 502 is connected 504 to the task pool. 在这一方面, 膝上型计算机本身可配备有任务池,或者任务池可以以外部设备或应用位于从膝上型计算机502无线到达的范围内。 In this regard, the laptop computer may be equipped with a task pool itself, or may be in the range of task pool arriving from the laptop computer 502 to an external device or a wireless application. 在外部任务池的情况下,任务池本身可以执行具有端口的切换结构的职责,以允许连接到多个协同处理单元。 In the case of an external task pool, the pool itself may perform task switching duty structure having ports to allow connection to a plurality of synergistic processing units. 膝上型计算机502利用计算密集型任务来填充任务池504。 A laptop computer 502 using the computationally intensive tasks to task pool 504 filled. 附近未充分利用的设备(诸如,智能电话508)随后连接至任务池504,并发送其代理以提取匹配的任务类型。 Device (such as a smart phone 508) near underutilized then connected to the task pool 504, and transmits it to the agent that matches the extracted task type. 因此,智能电话508变成无缝协助膝上型计算机502的协同处理器,从而增强视频游戏体验。 Therefore, the smart phone 508 becomes a seamless assist laptop computer co-processor 502, thereby enhancing the video game experience. 在存在其它未充分利用的处理资源并且需要的情况下,可重复相同的方法。 In the presence of other processing resources underutilized and desired, may be repeated in the same manner. 实际上,即使可用灯泡506的处理能力也可以成为膝上型计算机的协同处理器。 Indeed, even if the available processing power lamp 506 can also be co-processor laptop computer.

[0066]图6是示出示例性并行计算环境的操作的流程图。 [0066] FIG 6 is a flowchart showing an exemplary operation of a parallel computing environment. 具体来说,方法600包括:使用任务填入任务池(步骤602);将一个或多个代理从一个或多个相应单元主动分派到任务池(步骤604);检索并处理任务(步骤606);通知任务池和CPU任务线程已被执行(步骤608)。 Specifically, the method 600 comprising: using a fill task task pool (step 602); one or more agents from one or more respective task units assigned to the active pool (step 604); retrieving and processing task (step 606) ; notification task pool threads and CPU task has been performed (step 608). 所述方法还包括根据需要将附加设备动态地并入网络(步骤610)。 The method further comprises the additional equipment required dynamically incorporated into the network (step 610).

[0067]因此,提供了一种处理系统,所述处理系统包括任务池;控制器,被配置为利用第一任务填充任务池;以及第一协同处理器,被配置为从任务池主动检索第一任务。 [0067] Accordingly, there is provided a processing system, the processing system includes a task pool; a controller, configured to task pool filled with a first task; and a first co-processor is configured to actively retrieve from the task pool of a task.

[0068] 在实施例中,第一协同处理器包括第一代理,被配置为在不需要与控制器进行通信的情况下从任务池检索第一任务。 [0068] In an embodiment, the first co-processor comprises a first agent is configured to retrieve the first task from the task pool without the need to communicate with the controller.

[0069] 在实施例中,第一任务包括第一任务类型的标记,第一协同处理器被配置为执行第一类型的任务,第一代理被配置为在任务池中搜索第一类型的任务。 [0069] In an embodiment, the first task of the task type comprising a first marker, the first co-processor is configured to perform a first type of task, the first agent is configured to search task in the task pool of a first type .

[0070] 在实施例中,第一协同处理器还被配置为处理第一任务并在完成第一任务时通知任务池,任务池被配置为在完成第一任务时通知控制器。 [0070] In an embodiment, the first co-processor is further configured to process and notifies the task pool upon completion of the first task a first task, the task pool is configured to notify the controller upon completion of the first task.

[0071] 在实施例中,控制器和第一协同处理器被配置为仅通过任务池彼此之间进行通ί目。 [0071] In an embodiment, the first co-processor and the controller is configured for ί mesh pass between each other only by the task pool.

[0072] 在实施例中,控制器和第一协同处理器被配置为直接地和通过任务池彼此进行通{目。 [0072] In an embodiment, the first co-processor and the controller is configured to directly pass through and be {another task pool entry.

[0073] 在实施例中,第一协同处理器被配置为确定其具有可用的处理能力并响应于所述确定将代理分配到任务池。 [0073] In an embodiment, the first co-processor is configured to determine which has the available processing power in response to the determination to the agent assigned task pool.

[0074] 在实施例中,控制器还被配置为利用第二任务填入任务池,其中,所述系统还包括第二协同处理器,该第二协同处理器具有被配置为从任务池主动检索第二任务的第二代理。 [0074] In an embodiment, the controller is further configured to utilize the second task the task pool filled, wherein the system further comprises a second co-processor, the second co-processor is configured with the active task pool the second agent retrieves the second task.

[0075] 在实施例中,第二任务包括第二任务类型的标记,第二协同处理器被配置为执行第二类型的任务,第二代理被配置为在任务池中搜索第二类型的任务。 [0075] In an embodiment, the second task the task comprises a second type of marker, the second co-processor is configured to perform a second type of task, the second agent is configured to search task in the task pool of a second type .

[0076] 在实施例中,控制器和任务池常驻在单片集成电路(1C)上,第一协同处理器未常驻在1C上。 [0076] In an embodiment, the task pool controller and resident on a single integrated circuit (1C), a first co-processor is not resident on 1C.

[0077] 在另一实施例中,控制器、任务池以及第一协同处理器和第二协同处理器常驻在单片集成电路(1C)上。 [0077] embodiment, the controller resident, coprocessor task pool, and a first and a second co-processor on a single integrated circuit (1C) in another embodiment.

[0078] 此外,提供一种动态控制在包括中央处理单元(CPU)的类型的网络中的处理资源的方法,该CPU被配置为利用具有第一任务类型的第一任务填入任务池。 [0078] Further, there is provided a method of dynamically controlling comprises processing resources in the type of central processing unit (CPU) in the network, the CPU is configured to utilize a first type task having a first task of the task pool filled. 所述方法包括以下步骤:对第一单元进行编程以执行第一任务类型;将编程后的第一单元添加到网络;将第一代理主动从第一单元发送到任务池;第一代理在任务池中搜索第一类型的任务;第一代理从任务池检索第一任务;第一代理将第一任务传输到第一单元;第一单元处理第一任务;将第一任务任务已完成的通知从第一单元发送到任务池。 Said method comprising the steps of: a first unit programmed to perform a first type task; after adding a first unit programmed to a network; sending a first active agent from the first unit to the task pool; a first agent in the task the first type of cell search task; a first agent retrieves from the task pool first task; a first agent to a first task a first transmission unit; a first task of a first processing unit; the task first task has been completed notification transmitting from the first unit to the task pool.

[0079] 在实施例中,所述方法还包括:任务池将第一任务标记为已完成;将第一任务已完成的通知从任务池发送到CPU。 [0079] In an embodiment, the method further comprising: a first task the task pool marked complete; the first task has been completed notification from the task pool to the CPU.

[0080] 在实施例中,所述方法还包括:配置第一单元以确定第一单元具有可用处理能力作为依据(predicate)以将第一代理主动发送到任务池。 [0080] In an embodiment, the method further comprising: a first unit configured to determine a first unit having available processing power as the basis (the predicateA) to transmit a first active agent to the task pool.

[0081] 在实施例中,所述方法还包括:在将编程后的第一单元添加到网络之前将第一单元集成到第一设备。 [0081] In an embodiment, the method further comprising: adding a first unit programmed before the first network unit to the first integrated device.

[0082] 在实施例中,第一设备包括传感器、灯泡、电源开关、器具、生物识别设备、医疗设备、诊断设备、膝上型笔记本、平板电脑、智能电话、电机控制器和安全设备中的一个。 [0082] In an embodiment, the apparatus comprises a first sensor, a lamp, a power switch, the appliance, biometric devices, medical equipment, diagnostic equipment, a laptop, a tablet PC, a smart phone, a motor controller and the security device One.

[0083] 在实施例中,将编程的第一单元添加到网络包括在第一单元与任务池之间建立通信链接。 [0083] In an embodiment, the first cell is programmed to add to the network comprises establishing a communications link between the first unit and the task pool.

[0084] 在实施例中,CPU还被配置为利用具有第二任务类型的第二任务填入任务池,所述方法还包括以下步骤:对第二单元进行编程以执行第二任务类型;在第二单元与任务池之间建立通信链接;将第二代理从第二单元主动发送到所述任务池;第二代理在任务池中搜索第二类型的任务;第二代理从任务池检索第二任务;第二代理将第二任务发送到第二单元;第二单元处理第二任务;将第二任务已完成的通知从第二单元发送到任务池;任务池将第二任务标记为已完成;以及将第二任务已完成的通知从任务池发送到CPU。 [0084] In an embodiment, CPU is further configured to utilize a second type task with the second task of the task pool fill, said method further comprising the steps of: the second unit is programmed to perform a second type task; in the second unit is established between a communication link and the task pool; second active agent is sent from the second unit to the task pool; second agent searches a second type of task in the task pool; a second agent from a second retrieval task pool task; second agent sends the second task to the second unit; a second task a second processing unit; a second task completed notification sent from the second unit to the task pool; task pool second task as completed ; and the second task has been completed notification from the task pool to the CPU.

[0085] 还提供了一种用于控制物联网(IoT)计算环境下的分布式处理资源的系统,所述系统包括:CPU,被配置为将集群计算需求划分为多个任务并将任务放置在池中;以及多个设备,每个设备具有唯一专用代理,被配置为在不需要与CHJ直接通信的情况下从所述池主动检索任务。 [0085] further provided a distributed processing system resources under the control of things (the IoT) for computing environment, said system comprising: CPU, configured to calculate the demand cluster into a plurality of tasks and tasks placed in the pool; and a plurality of devices, each device has a unique dedicated proxy configured without the need for direct communication with CHJ retrieval tasks from the active cell.

[0086]尽管已经示出了对包括发明人已知的最佳模式的各种实施例的使能描述,但是本领域技术人员将理解,在不脱离本发明的范围的情况下,可以进行各种改变和修改,并且等同物可以替代各种元件。 [0086] Although embodiments have been shown that the various embodiments of the invention are known, including a human can describe the best mode, it will be understood by those skilled in the art, without departing from the scope of the present invention may be made each changes and modifications, and equivalents may be substituted for various elements. 因此,意图是,这里公开的本发明不限于所公开的具体实施例,而是本发明将包括落入权利要求的文字和等同范围内的所有实施例。 Accordingly, it is intended that the invention disclosed herein is not limited to the specific embodiments disclosed, but that the invention will include all embodiments falling within the scope of the text and equivalents falling within the claims.

Claims (20)

1. 一种处理系统,包括: 任务池; 控制器,被配置为用第一任务填入所述任务池;以及第一协同处理器,被配置为从所述任务池主动检索所述第一任务。 1. A processing system, comprising: a task pool; a controller configured to fill the first task with the task pool; and a first co-processor is configured to actively retrieved from said first task pool task.
2. 如权利要求1所述的处理系统,其中,所述第一协同处理器包括第一代理,所述第一代理被配置为在不与所述控制器进行通信的情况下从所述任务池检索所述第一任务。 2. The processing system according to claim 1, wherein said first co-processor comprises a first agent, the first agent is configured to the task from the case does not communicate with the controller in retrieving the first task pool.
3. 如权利要求2所述的处理系统,其中,所述第一任务包括第一任务类型的标识,所述第一协同处理器被配置为执行第一类型的任务,以及所述第一代理被配置为在所述任务池中搜索所述第一类型的任务。 3. The processing system of claim 2, the first agent, wherein the first task identification of the type comprising a first task, the first co-processor is configured to perform a first type of task, and configured to search for a first type of task the task in the pool.
4. 如权利要求1所述的处理系统,其中,所述第一协同处理器还被配置为处理所述第一任务并在完成所述第一任务时通知所述任务池。 4. The processing system according to claim 1, wherein the first and notifies the co-processor is further configured to process the task pool upon completion of the first task in the first task.
5. 如权利要求1所述的处理系统,其中,所述任务池被配置为在完成所述第一任务时通知所述控制器。 5. The processing system according to claim 1, wherein the task pool is configured to notify the controller upon completion of the first task.
6. 如权利要求1所述的处理系统,其中,所述控制器和所述第一协同处理器被配置为仅通过所述任务池彼此进行通信。 The processing system as claimed in claim 1, wherein said controller and said first co-processor is configured to communicate with each other only by the task pool.
7. 如权利要求1所述的处理系统,其中,所述控制器和所述第一协同处理器被配置为直接地彼此进行通信和通过所述任务池彼此进行通信。 7. The processing system according to claim 1, wherein said controller and said first co-processor is configured to directly communicate with each other through the task pool, and communicate with each other.
8. 如权利要求2所述的处理系统,其中,所述第一协同处理器被配置为确定具有可用处理能力,并响应于所述确定将所述代理分配到所述任务池。 8. The processing system according to claim 2, wherein said first co-processor is configured to determine an available processing capacity in response to said determining the agent assigned to the task pool.
9. 如权利要求3所述的处理系统,其中,所述控制器还被配置为用第二任务填入所述任务池,以及其中,所述系统还包括具有第二代理的第二协同处理器,所述第二代理被配置为从所述任务池主动检索所述第二任务。 9. The processing system according to claim 3, wherein the controller is further configured to populate the second task with the task pool, and wherein said system further comprises a second co-processing agents having a second , the second active agent is configured to retrieve from the second task the task pool.
10. 如权利要求9所述的处理系统,其中,所述第二任务包括第二任务类型的标识,所述第二协同处理器被配置为执行第二类型的任务,以及所述第二代理被配置为在所述任务池中搜索所述第二类型的任务。 10. The processing system of the second agent according to claim 9, wherein the second task identification of the type comprising a second task, the second co-processor is configured to perform a second type of task, and configured to search for a second type of task the task in the pool.
11. 如权利要求1所述的处理系统,其中,所述控制器和所述任务池常驻在单片集成电路(1C)上,以及所述第一协同处理器不常驻在所述1C上。 11. The processing system according to claim 1, wherein the controller and the task pool resident on a single integrated circuit (1C), and the first co-processor is not resident in the 1C on.
12. 如权利要求9所述的处理系统,其中,所述控制器、所述任务池以及所述第一协同处理器和所述第二协同处理器常驻在单片集成电路(1C)上。 12. The processing system according to claim 9, wherein the controller, the task pool, and said first and said second co-processor co-processor resident on a single integrated circuit (1C) of the .
13. -种动态控制在包括中央处理器(CPU)的类型的网络中的处理资源的方法,所述CHJ被配置为用具有第一任务类型的第一任务填入任务池,所述方法包括以下步骤: 对第一单元进行编程以执行所述第一任务类型; 将所述编程后的第一单元添加到所述网络; 将第一代理从所述第一单元主动发送到所述任务池; 所述第一代理在所述任务池中搜索第一类型的任务; 所述第一代理从所述任务池检索所述第一任务; 所述第一代理将所述第一任务输送到所述第一单元; 所述第一单元处理所述第一任务;以及将所述第一任务已完成的通知从所述第一单元发送到所述任务池。 13. - The method includes a type of dynamic control of the processing resource type central processing unit (CPU) in the network, the CHJ configured to fill with a first type task having a first task task pool, said method comprising the steps of: a first unit programmed to perform the first task type; a first adding unit after the programming to the network; a first agent from the first transmitting unit to said active task pool ; searching the first agent the first type task pool of tasks; retrieving the first agent from the first task of the task pool; the first agent is delivered to the first task said first unit; the first unit processing the first job; and the first task has been completed notification sent from the first unit to the task pool.
14. 如权利要求13所述的方法,还包括:所述任务池将所述第一任务标记为已完成;以及将所述第一任务已完成的通知从所述任务池发送到所述CPU。 14. The method of claim 13, further comprising: the first task of the task pool marked as completed; and the first task has been completed notification sent from the CPU to the task pool .
15. 如权利要求13所述的方法,还包括:配置所述第一单元以确定所述第一单元具有可用处理能力作为依据以将所述第一代理主动发送到所述任务池。 15. The method according to claim 13, further comprising: a first unit configured to determine whether the first unit has available processing capabilities to transmit said first active agent as the basis to the task pool.
16. 如权利要求13所述的方法,还包括:在将所述编程后的第一单元添加到所述网络之前将所述第一单元集成到第一设备。 16. The method according to claim 13, further comprising: a first unit after the program is added to the network prior to the first unit to the first integrated device.
17. 如权利要求16所述的方法,其中,所述第一设备包括传感器、灯泡、电源开关、器具、 生物识别设备、医疗设备、诊断设备、膝上型笔记本、平板电脑、智能电话、电机控制器和安全设备中的一个。 17. The method as claimed in claim 16, wherein said device comprises a first sensor, a lamp, a power switch, the appliance, biometric devices, medical equipment, diagnostic equipment, a laptop, a tablet PC, a smart phone, a motor controller and a safety device.
18. 如权利要求13所述的方法,其中,将所述编程后的第一单元添加到所述网络包括: 在所述第一单元与所述任务池之间建立通信链接。 18. The method as claimed in claim 13, wherein the first unit is added to the network after the program comprising: establishing a communication link between the first unit and the task pool.
19. 如权利要求13所述的方法,其中,所述(CPU)还被配置为用具有第二任务类型的第二任务填入所述任务池,所述方法还包括以下步骤: 对第二单元进行编程以执行所述第二任务类型; 在所述第二单元与所述任务池之间建立通信链接; 将第二代理从所述第二单元主动发送到所述任务池; 所述第二代理在所述任务池中搜索第二类型的任务; 所述第二代理从所述任务池检索所述第二任务; 所述第二代理将所述第二任务输送到所述第二单元; 所述第二单元处理所述第二任务; 将所述第二任务已完成的通知从所述第二单元发送到所述任务池; 所述任务池将所述第二任务标记为已完成;以及将所述第二任务已完成的通知从所述任务池发送到所述CHJ。 19. The method as claimed in claim 13, wherein said (CPU) is further configured to the task pool filled with a second type task with the second task, the method further comprising the steps of: the second unit is programmed to execute the second task type; establishing a communication link between the second unit and the task pool; second agent transmitted from the second unit to the active task pool; the second Search agent pool in the task of the second type task; the second agent retrieving from the second task the task pool; the second agent to the second task to the second conveying unit; the second processing unit the second task; to the second task has been completed notification sent from the second unit to the task pool; the second task the task pool marked as completed; and the second task has been completed notification from the task pool to the CHJ.
20. -种用于控制物联网(IoT)计算环境下的分布式处理资源的系统,包括: CPU,被配置为将集群计算需求划分为多个任务并将所述任务放置在池中;以及多个设备,每个设备具有唯一专用代理,所述代理被配置为在不需要与所述CHJ直接通信的情况下从所述池主动检索任务。 20. The - method for controlling things (the IoT) distributed processing computing resources in an environment, comprising: CPU, configured to calculate the demand cluster into a plurality of tasks and the task is placed in the pool; and a plurality of devices, each device has a unique dedicated agent, the active agent is configured to retrieve from the task pool without the need for direct communication with the CHJ.
CN201580039190.0A 2013-01-25 2015-07-10 System and method for parallel processing using dynamically configurable proactive co-processing cells CN106537343A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/340,332 US9852004B2 (en) 2013-01-25 2014-07-24 System and method for parallel processing using dynamically configurable proactive co-processing cells
PCT/US2015/039993 WO2016014263A2 (en) 2014-07-24 2015-07-10 System and method for parallel processing using dynamically configurable proactive co-processing cells

Publications (1)

Publication Number Publication Date
CN106537343A true CN106537343A (en) 2017-03-22



Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580039190.0A CN106537343A (en) 2013-01-25 2015-07-10 System and method for parallel processing using dynamically configurable proactive co-processing cells

Country Status (3)

Country Link
EP (1) EP3172669A4 (en)
CN (1) CN106537343A (en)
WO (1) WO2016014263A2 (en)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6222530B1 (en) * 1998-08-21 2001-04-24 Corporate Media Partners System and method for a master scheduler
US8037474B2 (en) * 2005-09-27 2011-10-11 Sony Computer Entertainment Inc. Task manager with stored task definition having pointer to a memory address containing required code data related to the task for execution
US8209702B1 (en) * 2007-09-27 2012-06-26 Emc Corporation Task execution using multiple pools of processing threads, each pool dedicated to execute different types of sub-tasks
US8108867B2 (en) * 2008-06-24 2012-01-31 Intel Corporation Preserving hardware thread cache affinity via procrastination
JP5545288B2 (en) * 2009-02-18 2014-07-09 日本電気株式会社 Task allocation apparatus, task allocation method, and task allocation program
US8732713B2 (en) * 2010-09-29 2014-05-20 Nvidia Corporation Thread group scheduler for computing on a parallel thread processor
US8949853B2 (en) * 2011-08-04 2015-02-03 Microsoft Corporation Using stages to handle dependencies in parallel tasks
US8990833B2 (en) * 2011-12-20 2015-03-24 International Business Machines Corporation Indirect inter-thread communication using a shared pool of inboxes

Also Published As

Publication number Publication date
EP3172669A2 (en) 2017-05-31
WO2016014263A2 (en) 2016-01-28
WO2016014263A3 (en) 2016-03-17
EP3172669A4 (en) 2018-03-14

Similar Documents

Publication Publication Date Title
US7921151B2 (en) Managing a plurality of processors as devices
US7496673B2 (en) SIMD-RISC microprocessor architecture
US6804815B1 (en) Sequence control mechanism for enabling out of order context processing
US8434091B2 (en) System and method for data synchronization for a computer architecture for broadband networks
US7404190B2 (en) Method and apparatus for providing notification via multiple completion queue handlers
US7274706B1 (en) Methods and systems for processing network data
US6809734B2 (en) Resource dedication system and method for a computer architecture for broadband networks
US7093104B2 (en) Processing modules for computer architecture for broadband networks
JP3836840B2 (en) Multi-processor system
US8478834B2 (en) Low latency, high bandwidth data communications between compute nodes in a parallel computer
US9036464B2 (en) Method and system for distributing network traffic among multiple direct hardware access datapaths
US6826662B2 (en) System and method for data synchronization for a computer architecture for broadband networks
US8161480B2 (en) Performing an allreduce operation using shared memory
US8145749B2 (en) Data processing in a hybrid computing environment
US20050081203A1 (en) System and method for asymmetric heterogeneous multi-threaded operating system
US7984450B2 (en) Dispatching packets on a global combining network of a parallel computer
US7830882B2 (en) Switch scaling for virtualized network interface controllers
US7653716B2 (en) Determining a bisection bandwidth for a multi-node data communications network
JP5479802B2 (en) The method for data processing in a hybrid computing environment, apparatus, and program
US8957767B2 (en) Monitoring operating parameters in a distributed computing system with active messages
US8250164B2 (en) Query performance data on parallel computer system having compute nodes
US8140704B2 (en) Pacing network traffic among a plurality of compute nodes connected using a data communications network
US8621446B2 (en) Compiling software for a hierarchical distributed processing system
WO2007084700A2 (en) System and method for thread handling in multithreaded parallel computing of nested threads
JP2008503015A (en) Sharing a single physical device by multiple clients

Legal Events

Date Code Title Description
C06 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1232997

Country of ref document: HK