CN103493037A - 用于机器视觉应用的多核心分布式处理 - Google Patents

用于机器视觉应用的多核心分布式处理 Download PDF

Info

Publication number
CN103493037A
CN103493037A CN201280020357.5A CN201280020357A CN103493037A CN 103493037 A CN103493037 A CN 103493037A CN 201280020357 A CN201280020357 A CN 201280020357A CN 103493037 A CN103493037 A CN 103493037A
Authority
CN
China
Prior art keywords
processor core
core
processor
shared storage
local
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.)
Granted
Application number
CN201280020357.5A
Other languages
English (en)
Other versions
CN103493037B (zh
Inventor
丹尼·S·巴尔内斯
泽格·H·利蒙丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Omron Microscan Systems Inc
Original Assignee
Microscan Systems Inc
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
Application filed by Microscan Systems Inc filed Critical Microscan Systems Inc
Publication of CN103493037A publication Critical patent/CN103493037A/zh
Application granted granted Critical
Publication of CN103493037B publication Critical patent/CN103493037B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)

Abstract

设备的实施例包含:第一处理器核心,其上运行有本地代理,所述代理包括本地进程及委托代理;及第二处理器核心,其上运行有远程代理,所述远程代理是所述本地代理的实例。共享存储器耦合到所述第一处理器核心及所述第二处理器核心,其中所述本地代理及所述远程代理经由所述共享存储器来通信。揭示并主张其它实施例。

Description

用于机器视觉应用的多核心分布式处理
技术领域
本发明一般来说涉及数据处理,且明确地说(但非排他地),涉及用于机器视觉应用的多核心分布式处理。
背景技术
使用多个核心的微处理器对于许多应用具有改进的计算速度,但并非所有应用均显著受益于多核心处理。对于的确受益于多核心实施方案的那些类型的应用,由于需要在核心之间进行通信及协调,因此所需代码可是复杂的且难以维持的。
多核心软件的一个实施方案使用远程过程调用(RPC)来在核心当中进行通信及协调,但此方法具有一些缺点,明显地,客户端及服务器核心实施RPC所需的相关联额外开销及软件复杂度。RPC层的实施方案涉及:将代码分到两个处理器或核心上,所述两个处理器或核心中的一者称为客户端及另一者称为服务器;及提供用以透明地连接客户端与服务器之间的功能调用的层。此涉及两个核心上的RPC模块且不提供可易于维持或升级的架构。此外,数据在核心之间的传送可消耗处理时间及存储器带宽。最后,在大部分RPC实施方案中,不存在客户端主动参与由服务器提供的处理的规定,此意味着处理完全授权给服务器或远程例程。
发明内容
附图说明
参照以下各图描述本发明的非限制性及非穷尽性实施例,其中除非另有说明,否则各个视图中的相似元件符号指代相似部件。
图1是机器视觉系统的实施例的框图。
图2是多核心处理器的实施例的框图。
图3是多核心处理器的替代实施例的框图。
图4A到4B一起是用于多核心处理器的软件架构的实施例的框图。
图5是用于实施图4中所展示的软件架构的方法的实施例的流程图。
具体实施方式
描述用于机器视觉应用的多核心分布式处理的系统及方法的实施例。描述众多特定细节以提供对本发明的实施例的透彻理解,但所属领域的技术人员将认识到,可在不具有所述特定细节中的一者或一者以上的情况下或借助其它方法、组件、材料等实践本发明。在一些例子中,未详细展示或描述众所周知的结构、材料或操作,但尽管如此其仍囊括在本发明的范围内。
本说明书通篇所提及的“一个实施例”或“一实施例”意味着结合所述实施例一起所描述的特定特征、结构或特性包含于至少一个所描述实施例中。因此,在本说明书中出现的短语“在一个实施例中”或“在一实施例中”未必全部指代同一实施例。此外,特定特征、结构或特性可以任何适合方式组合于一个或一个以上实施例中。
图1图解说明机器视觉系统100的实施例。系统100包含计算机102,在一个实施例中,所述计算机可是经由总线103耦合到多个机器视觉相机104、106及108的个人计算机(PC)。在一个实施例中,计算机102可另外(举例来说)经由网络(例如以太网或因特网)耦合到另一计算机110。在一个实施例中,机器视觉相机104、106及108可是相同种类的相机,但在其它实施例中,并不需要全部是相同种类的相机。机器视觉相机104、106及108可是相机或智能相机的混合,其中区别在于:相机图像的处理是在相机自身而非相机连接到的计算机上进行。在仍其它实施例中,系统100可包含比所图解说明的三个多或少的相机。
计算机102可包含存储器、存储装置、显示器及经由其计算机102可与相机104到108或与计算机110通信的通信接口。计算机110可具有类似元件,包含经由其计算机110可与计算机102通信的通信接口。计算机102及110各自包含处理器,所述计算机可使用所述处理器对数据执行其与系统中的其它元件(例如机器视觉相机104到108)进行交换的操作或可直接对相机图像执行图像处理操作。在一个实施例中,计算机102及110各自具有拥有两个或两个以上处理器核心(参见,例如,图2)的多核心处理器。在另一实施例中,计算机102及110可各自具有单核心处理器,但通过使用到计算机110的连接,可使计算机102及110中的单核心处理器一起工作,就好像其是单个多核心处理器(参见,例如,图3)一样。在仍其它实施例中,计算机102及110两者不需要具有相同类型的处理器;举例来说,一个可具有多核心处理器及另一个可具有单核心处理器。
在操作中,数据(例如图像)由机器视觉相机104到108捕获且经由总线103传送到计算机102及110中的一者或两者以供处理。可分配图像数据(其在一个实施例中可是二维图像)以取决于处理器在计算机102及110中的配置而以各种方式进行处理。在其中计算机102具有多核心处理器且将被期望进行所有图像处理的实施例中,可分配个别图像,其中一个核心处理图像的一部分且另一个核心处理图像的另一部分。在另一实施例中,每一核心可对完整图像执行不同处理任务。在其中计算机102及110经耦合以形成多核心处理器(参见,例如,图3)的实施例中,可类似地分配任务。
图2图解说明多核心处理器200的实施例。处理器200形成于单个衬底202上且包含两个处理器核心:第一核心A及第二核心B。每一处理器核心包含存储器高速缓冲存储器(针对核心A为高速缓冲存储器A,针对核心B为高速缓冲存储器B),且两个处理器经由其相应高速缓冲存储器耦合到共享存储器204,所述共享存储器在所图解说明实施例中是在板存储器,但在其它实施例中可在处理器200外部。核心A及B可接着经由其高速缓冲存储器来读取数据及将数据写入到共享存储器204。每一处理器核心还耦合到其自身核心内总线-针对核心A为核心内总线A及针对核心B为核心内总线B。核心内总线提供相同处理器核心内的元件之间的通信。核心内总线A及B进而耦合到核心问总线206,所述核心问总线提供核心A与核心B之间以及与处理器200外侧的其它元件的通信,例如,经由其处理器200可接收及发射包含来自相机传感器(举例来说,来自机器视觉相机)的图像数据的数据的通信接口。在一个实施例中,处理器200可是同质的,此意味着核心A及B两者是相同类型的处理器,但在其它实施例中,处理器200可是异质的,此意味着核心A及B是不同类型的核心。举例来说,在一个异质实施例中,核心A可是高级RISC机器(ARM)核心,而核心B可是数字信号处理器(DSP)核心。此外,处理器200的所图解说明实施例具有两个核心,但在其它实施例中,处理器200可具有两个以上核心。
在处理器200的操作中,核心A及B各自执行致使核心基于在处理器处所接收到的数据起作用的代码(对象、进程、线程等)。指派给每一核心的处理任务可取决于其中将使用处理器200的应用的本质及将处理的数据的本质而变化。举例来说,在其中机器视觉系统(例如系统100)中使用处理器200的实施例中,可分配从机器视觉相机所接收到的每一图像且所述图像的每一部分由不同核心处理。或者,每一核心可对整个图像进行不同处理任务或可将每一图像发送到其自身核心以使得每一核心对图像进行完整处理。
在操作期间,核心A及B经由其相应高速缓冲存储器而从共享存储器204读取及写入到共享存储器204。如果核心A及B上运行的任务是独立的,那么核心A及B可读取及写入到共享存储器204的不同部分(即,不同地址块),但如果所述任务不是独立的,那么核心A及B可读取及写入到共享存储器204的相同部分(即,相同存储器地址块)。基本上,接着,当两个核心使用共享存储器204的相同部分时,共享存储器可在核心之间提供直接通信通道。在操作期间,具有每一核心的元件可使用处理器核心内的通信通道或使用每一核心的相应处理器内总线通信。如果在操作期间需要核心A与B之间的通信,那么核心还可经由核心问总线206来通信。
图3图解说明多核心处理器300的替代实施例。与处理器200不同,处理器300不形成于单个衬底上,而是包含经耦合以使得其一起形成多核心处理器的一对单独单核心处理器。于是,在多核心处理器300中,每一单独单核心处理器被视为一个处理器核心。在一个实施例中,处理器300可是同质的,此意味着处理器A及B两者是相同类型的处理器,但在其它实施例中,处理器A及B可是不同类型的处理器。举例来说,在一个实施例中,处理器A可是高级RISC机器(ARM)核心,而处理器B可是数字信号处理器(DSP)核心。此外,处理器300的所图解说明实施例具有两个核心(处理器),但在其它实施例中,处理器300可具有两个以上核心。在另外其它实施例中,处理器A及B两者不需要具有相同数目个核心;举例来说,一个可为多核心处理器及另一个可为单核心处理器。
多核心处理器300包含两个处理器核心:第一处理器A为第一处理器核心及第二处理器B为第二处理器核心。每一处理器包含存储器高速缓冲存储器-针对处理器A为高速缓冲存储器A及针对处理器B为高速缓冲存储器B。处理器A经由其相应高速缓冲存储器耦合到存储器302,及处理器B经由其相应高速缓冲存储器耦合到存储器304。每一处理器还耦合到其自身核心内总线-针对处理器A为核心内总线A及针对处理器B为核心内总线B。核心内总线提供相同处理器内的元件之间的通信。核心内总线A及B进而耦合到对应通信接口-针对处理器A为接口306及针对处理器B为接口308。通信接口使用某一种类的通信协议使得能够经由通信路径301在处理器A与处理器B之间进行通信。在一个实施例中,通信路径301可是硬连线连接,但在其它实施例中,其可是无线连接且在另外其它实施例中,其可是硬连线与无线连接的某一组合。在不同实施例中,通信接口306及308以及通信路径301所使用的通信协议可是以太网、TCP/IP或某一其它通信协议。
在处理器300的操作中,处理器A及B各自执行致使核心基于数据起作用的代码(对象、进程、线程等)。指派给每一核心的任务可取决于处理器A及B的类型、其中将使用处理器300的应用的本质及将处理的数据的本质而变化。举例来说,在其中机器视觉系统(例如系统100)中使用处理器300的实施例中,可分配从机器视觉相机所接收到的每一图像且所述图像的每一部分由不同处理器处理。或者,每一核心可对整个图像进行不同处理任务或可将每一图像发送到其自身核心以使得每一核心对图像进行完整处理。
在操作期间,如果处理器A及B上运行的任务是独立的,那么核心A及B可读取及写入到其自身相应存储器302及304,但如果存在数据相关性,那么可设置处理器300,因此处理器A及B可读取及写入到共享存储器。在一个实施例中,共享存储器可是现有存储器302或304中的一者,在此情形中,一个处理器读取及写入到其自身存储器及另一个处理器经由通信路径301从所述相同存储器读取及写入。在另一实施例中,第三存储器(未展示)可用作共享存储器,以使得核心A及B两者将均经由通信链路(例如通信链路301)从共享存储器读取及写入。在操作期间,处理器A及B中的每一者内的元件可使用处理器核心内的通道或使用每一核心的相应处理器内总线来通信。
图4A到4B一起图解说明可用于多核心处理器(例如多核心处理器200及300)中的软件架构400的实施例。软件架构400实施于一对处理器核心上:核心A(图4A中所展示),其将称为本地或客户端核心;及核心B(图4B中所展示),其将称为远程或服务器核心。所图解说明实施例展示双核心处理器(例如处理器200)的架构,但在其它实施例中,所述架构可扩展到任何数目个处理器且在仍其它实施例中,其可适合于在多核心处理器(例如处理器300)上起作用。
核心A包含核心内通信总线402,而核心B包含核心内通信总线406。所述核心内通信总线可用于相同核心中的元件之间的通信。核心内通信总线402及406两者进而耦合到核心问总线404,所述核心问总线可用于核心A与核心B之间的通信。在所图解说明实施例中,用于核心内通信总线402及406以及核心问通信总线404的传输协议是由美国加利福尼亚州阿拉米达市的风河系统公司(Wind River Systems of Alameda,California,USA)开发的vxWorks操作系统的多操作系统进程问通信(MIPC)协议。风河系统公司现在是加利福尼亚州圣克拉拉市的英特尔公司(Intel Corporation of Santa Clara,California)的一部分。在其它实施例中,可使用其它通信协议。
每一核心内通信总线包含完成核心之间的连接的N个端口。在不同实施例中,可针对特定任务指派不同端口。举例来说,在机器视觉系统的实施例中,端口可经指派如下:
端口        功能
端口0:     未使用。
端口1:     主要(在处理器/核心B上运行最高优先权的线程)。
端口2:     图像获取。
端口3到n:  视觉代理分布式处理。
一旦在核心之间建立MIPC端口连接,其将永远不会实际上断开。而是,如果移除使用所述端口的任务,那么所述端口将变得可由另一任务加以使用。在一个实施例中,所述端口状态经定义如下:
非作用:    尚未建立核心之间的端口连接。
经连接:    已建立核心之间的端口连接,但所述端口是可用的。
作用:      所建立的端口连接及端口当前在使用中。
在核心A内正运行各种进程,包含本地代理408及本地数据管理进程418。在核心A内还运行主要传输代理414及客户端传输代理416。本地代理408是处理数据的代理;在架构400的机器视觉实施例中,本地代理408将是处理来自机器视觉相机的图像数据的代码。本地代理408包含本地进程412及委托代理410。本地进程412处置由核心A上的本地代理408实施的本地处理,而委托代理410将处理请求传送到核心B上运行的远程代理420。在一个实施例中,委托代理410可提供与远程代理420相同的接口且将把操作请求中的一些操作请求传送到所述远程代理同时仍为自身保留一些操作请求。
本地数据管理进程418在架构400的操作期间读取及写入到共享存储器(参见图2)。在一个实施例中,数据管理进程418使用数据类型类别,所述数据类型类别使用重定向的指针逻辑提供读取及写入到存储器的能力,以使得其为核心提供用以重定向数据流以使得代理将写入/更新用于适当处理器核心的数据的方法。此允许本地代理408及远程代理420就好像其是步骤客户端(step client)所观看到的一个代理一样起作用。此还允许两个代理彼此透明地读取及写入数据,就好像存在数据的单个副本一样,对于单核心实施方案也将是此情形。此通过利用将用作本地及远程代理本机类型的基类的数据参考模板类别而实现。本地数据管理进程418还管理核心A上的高速缓冲存储器的高速缓冲存储器相干性,从而取决于数据流方向而提供高速缓冲存储器失效指令及高速缓冲存储器刷新指令。
在一个实施例中,本地数据管理进程418使用重定向的指针逻辑,其中委托代理410将参考到远程代理数据位置的点使输入类型指针重定向且远程代理将参考本地代理数据位置使输出类型指针重定向。借助重定向的指针逻辑,本地代理及远程代理两者均写入到共享存储器中的与远程数据管理进程428相同的存储器地址框,以使得共享存储器提供核心之间的运行时通信且不需要在核心之间传送数据,从而允许简化且快速进程。
主要传输进程414及客户端传输进程416处置核心A上运行的进程当中的通信以及核心A上的进程与核心B上或(总的来说)所述处理器外的特定进程之间的通信。主要传输进程414与核心内总线402的主要端口且与客户端传输进程416进行通信。客户端传输进程416进而与主要传输进程414、核心内总线402的代理端口及委托代理410通信。
核心B运行大致反映核心A中运行的进程的各种进程。在一个实施例中,所有进程可由任一核心执行,因此存在可在任一核心上实例化或建构的所有软件对象及方法的两个版本。核心B中运行的进程包含远程代理420及远程数据管理进程428。核心B内还运行主要传输代理422及服务器传输代理424。远程代理420是处理数据的代理;在架构400的机器视觉实施例中,远程代理420将是处理来自机器视觉相机的图像数据的代码。远程代理420包括与本地代理408大致相同的代码,且在运行时,大致是本地代理408的另一实例,只不过远程代理420不引发像本地进程412的本地进程。
类似于核心A,核心B运行远程数据管理进程428。与远程代理420一样,远程数据管理进程428包括与本地数据管理进程418大致相同的代码,且在运行时,是本地数据管理进程418的大致另一实例。远程数据管理进程428还管理核心B上的高速缓冲存储器的高速缓冲存储器相干性,从而取决于数据流方向而提供高速缓冲存储器失效指令及高速缓冲存储器清除指令。在一个实施例中,如上文所描述,远程数据管理进程428使用重定向的指针逻辑且写入到共享存储器中的与本地数据管理进程418相同的存储器地址块,以使得共享存储器提供核心之间的运行时通信。
主要传输进程422及服务器传输进程424可处置核心B上运行的进程之间的通信,以及核心B上的进程与核心A上或其它地方的进程之间的通信。主要传输进程422与核心内总线406的主要端口且与客户端传输进程424进行通信。服务器传输进程424进而与主要传输进程422、核心内总线406的代理端口及远程代理420通信。在一个实施例中,所述传输进程在如下期间使用:在于核心B上设置远程进程期间以及在起始远程代理420处理及在完成后旋即将结束信号发射到委托代理410,使得共享存储器作为核心之间的运行时通信的主要构件期间。
在架构400的操作中,首先在核心A及B中设置相关进程(参见图5)。核心A经由适当进程来接收相关数据(举例来说,来自机器视觉相机的图像数据)并将所述数据储存于共享存储器(参见,例如,图2)中。本地代理408开始其处理共享存储器中的数据的部分且致使委托代理410将Go命令经由核心内总线及核心问总线发射到远程代理420,从而致使远程代理428也开始其处理共享存储器中的数据的部分。在一个实施例中,在委托代理410发射Go命令之后,本地代理及远程代理在完成处理之前不具有经由核心内总线及核心问总线的进一步通信,当远程代理428将结束信号发送到委托代理410时,替代地,使用本地数据管理进程418及远程数据管理进程428主要地或排他地经由共享存储器来通信。如上文所论述,为实现此通信,本地及远程数据管理进程从共享存储器内的相同存储器地址框读取及写入,且在一个实施例中,其使用重定向的指针逻辑进行此。
当远程代理420已完成其任务时,远程代理420通过经由核心内总线及核心问总线将结束信号发送到委托代理410而用信号通知完成。远程代理420接着进入等待状态且如果需要进一步处理及在需要进一步处理时,等待来自委托代理的进一步Go命令。当远程代理420及本地代理408两者已完成其处理时,经处理数据可从共享存储器读取且发射到其它地方以供显示、存储或进一步处理。
图5图解说明用于实施图4A到4B中所图解说明的软件架构的方法的实施例。在框502处,所述方法开始。在框504处,所述方法利用委托代理410确定将创建的本地代理408是本地进程412还是分布式进程。如果将在本地执行所述方法,那么使用核心A中的本地进程412建构或导出本地代理408。如果所述方法将是分布式的,那么使用核心A中的委托代理410建构或导出本地代理408。在框508处,实例化本地数据管理进程418,且在框510处,实例化主要传输进程414。
在框512中,所述方法核对是否将执行多核心处理。如果将不执行多核心处理,那么所述方法转到框514,其中使用框514中运行的进程而发生所有处理。如果将发生多核心处理,那么在框516处,在核心A中实例化本地客户端传输进程416,且在框518处,客户端传输进程416使用核心内总线402及406以及核心问总线404实例化核心B中的线程以接收连接请求。在框520处,客户端传输进程416将连接请求发送到核心B。
在框522处,所述方法在接收来自本地代理408的请求后旋即实例化核心B中的主要传输进程422,及主要传输进程422接着实例化服务器传输进程424。在框524处,服务器传输进程424引发任务线程426,且在框526中,建构远程代理420。在框528处,建构远程数据管理进程428。
在框530处,在开始所有所需进程之后,远程代理420将接收请求发射到本地委托代理410以告知委托代理其已准备就绪。在框532处,远程代理420等待接收来自本地委托代理410的Go命令以告知其开始处理。在框534处,所述方法核对是否已接收Go命令。如果其不使所述方法返回到框532,那么否则所述方法转到框536,其中多核心处理开始。
当经由提供重定向指针的能力的数据类型类别来管理数据流时,所揭示的本发明的实施例提供软件模型,所述软件模型提供处理核心之间的最小数据传送。另外,两个核心均含有视觉处理软件,其中一者具有委托实施方案及另一者具有远程实施方案。此允许两个处理器使用相同代码基及具有与远程过程调用(RPC)层相关联的最小代码额外开销。与大部分RPC实施方案相反,本地及远程对象两者主动参与处理,因此显然地充当到其它对象的客户端及服务器两者。由于可复制架构,因此添加新的分布式视觉处理任务是件简单的事情。此外,此架构可(举例来说)经由以太网网络扩展到不与客户端共享相同的存储器地址空间的远程架构。
包含发明摘要中所描述的内容的本发明的所图解说明实施例的以上说明并非打算为穷尽性的或将本发明限于所揭示的确切形式。虽然出于说明性目的而在本文中描述本发明的特定实施例及实例,但如所属领域的技术人员将认识到,可在本发明的范围内做出各种等效修改。可根据以上详细说明对本发明做出这些修改。
所附权利要求书中使用的术语不应理解为将本发明限制于说明书及权利要求书中所揭示的特定实施例。而是,本发明的范围将完全由所附权利要求书来确定,所附权利要求书将根据权利要求阐述的既定原则来加以理解。

Claims (22)

1.一种设备,其包括:
第一处理器核心,其上运行有本地代理,所述本地代理包括本地进程及委托代理;
第二处理器核心,其上运行有远程代理,所述远程代理是所述本地代理的实例;及
共享存储器,其耦合到所述第一处理器核心及所述第二处理器核心,其中本地处理代理及远程处理代理经由所述共享存储器来通信。
2.根据权利要求1所述的设备,其进一步包括所述第一处理器核心与所述第二处理器核心之间的通信链路。
3.根据权利要求2所述的设备,其中所述通信链路是多操作系统进程问通信MIPC传输。
4.根据权利要求2所述的设备,其中所述委托代理经由所述通信链路来建构所述远程代理。
5.根据权利要求1所述的设备,其中所述第一处理器核心不同于所述第二处理器核心。
6.根据权利要求5所述的设备,其中所述第一处理器核心是高级RISC机器ARM处理器,且所述第二处理器核心是数字信号处理器DSP。
7.根据权利要求1所述的设备,其中所述第一处理器核心上运行有本地数据管理进程,所述第二处理器核心上运行有远程数据管理进程,且所述本地及远程数据管理进程经由所述共享存储器来管理数据交换。
8.根据权利要求7所述的设备,其中所述本地及远程数据管理进程使用重定向的指针逻辑经由所述共享存储器来管理数据交换。
9.根据权利要求8所述的设备,其中第一及第二数据管理进程从所述共享存储器中的相同地址空间读取且写入到所述共享存储器中的相同地址空间。
10.根据权利要求7所述的设备,其中所述第一处理器核心包含其高速缓冲存储器相干性由所述本地数据管理进程管理的第一高速缓冲存储器,且所述第二处理器核心包含其高速缓冲存储器相干性由所述远程数据管理进程管理的第二高速缓冲存储器。
11.根据权利要求1所述的设备,其中所述共享存储器是所述第一处理器核心与所述第二处理器核心之间的专用运行时通信构件。
12.一种方法,其包括:
在第一处理器核心上运行本地代理,所述代理包括本地进程及委托代理;
在第二处理器核心上建构远程代理,所述远程代理是所述本地代理的实例;及
经由耦合到所述第一处理器核心及所述第二处理器核心的共享存储器在所述本地代理与所述远程代理之间进行通信。
13.根据权利要求12所述的方法,其进一步包括使用所述第一处理器核心与所述第二处理器核心之间的通信链路进行通信。
14.根据权利要求13所述的方法,其中所述通信链路是多操作系统进程问通信MIPC传输。
15.根据权利要求13所述的方法,其中建构所述远程代理包括使用所述委托代理经由所述通信链路来建构所述远程代理。
16.根据权利要求12所述的方法,其中所述第一处理器核心不同于所述第二处理器核心。
17.根据权利要求16所述的方法,其中所述第一处理器核心是高级RISC机器ARM处理器,且所述第二处理器核心是数字信号处理器DSP。
18.根据权利要求12所述的方法,其进一步包括:
运行在所述第一处理器核心上运行的本地数据管理进程;及
在所述第二处理器核心上运行远程数据管理进程,其中所述本地及远程数据管理进程经由所述共享存储器来管理通信。
19.根据权利要求18所述的方法,其中所述本地及远程数据管理进程使用重定向的指针逻辑经由所述共享存储器来通信。
20.根据权利要求19所述的方法,其中第一及第二数据管理进程从所述共享存储器中的相同地址空间读取且写入到所述共享存储器中的相同地址空间。
21.根据权利要求18所述的方法,其中所述第一处理器核心包含其高速缓冲存储器相干性由所述本地数据管理进程管理的第一高速缓冲存储器,且所述第二处理器核心包含其高速缓冲存储器相干性由所述远程数据管理进程管理的第二高速缓冲存储器。
22.根据权利要求12所述的方法,其中所述共享存储器是所述第一处理器核心与所述第二处理器核心之间的专用运行时通信构件。
CN201280020357.5A 2011-03-16 2012-02-29 用于机器视觉应用的多核心分布式处理 Active CN103493037B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/049,604 US9235455B2 (en) 2011-03-16 2011-03-16 Multi-core distributed processing using shared memory and communication link
US13/049,604 2011-03-16
PCT/US2012/027155 WO2012125296A2 (en) 2011-03-16 2012-02-29 Multi-core distributed processing for machine vision applications

Publications (2)

Publication Number Publication Date
CN103493037A true CN103493037A (zh) 2014-01-01
CN103493037B CN103493037B (zh) 2016-11-30

Family

ID=

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108027804A (zh) * 2015-09-23 2018-05-11 甲骨文国际公司 片上原子事务引擎
CN109906440A (zh) * 2016-10-31 2019-06-18 施耐德电子系统美国股份有限公司 处理控制系统中的具有分开的冗余方案的多核心设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1405679A (zh) * 2001-04-26 2003-03-26 德克萨斯仪器股份有限公司 多处理器对象控制
CN101535958A (zh) * 2006-11-29 2009-09-16 高通股份有限公司 用于跨越保护域边界的对象调用的方法、系统和设备
US20100034328A1 (en) * 2008-08-08 2010-02-11 Samsung Electronics Co., Ltd. Signal receiving apparatus, broadcast receiving apparatus and signal processing method using the same
CN101667138A (zh) * 2008-09-04 2010-03-10 国际商业机器公司 混合计算环境以及混合计算环境中的数据处理方法
CN101901207A (zh) * 2010-07-23 2010-12-01 中国科学院计算技术研究所 异构共享存储多处理机系统的操作系统及其工作方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1405679A (zh) * 2001-04-26 2003-03-26 德克萨斯仪器股份有限公司 多处理器对象控制
CN101535958A (zh) * 2006-11-29 2009-09-16 高通股份有限公司 用于跨越保护域边界的对象调用的方法、系统和设备
US20100034328A1 (en) * 2008-08-08 2010-02-11 Samsung Electronics Co., Ltd. Signal receiving apparatus, broadcast receiving apparatus and signal processing method using the same
CN101667138A (zh) * 2008-09-04 2010-03-10 国际商业机器公司 混合计算环境以及混合计算环境中的数据处理方法
CN101901207A (zh) * 2010-07-23 2010-12-01 中国科学院计算技术研究所 异构共享存储多处理机系统的操作系统及其工作方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108027804A (zh) * 2015-09-23 2018-05-11 甲骨文国际公司 片上原子事务引擎
US11334262B2 (en) 2015-09-23 2022-05-17 Oracle International Corporation On-chip atomic transaction engine
US11868628B2 (en) 2015-09-23 2024-01-09 Oracle International Corporation On-chip atomic transaction engine
CN109906440A (zh) * 2016-10-31 2019-06-18 施耐德电子系统美国股份有限公司 处理控制系统中的具有分开的冗余方案的多核心设备
CN109906440B (zh) * 2016-10-31 2023-04-18 施耐德电子系统美国股份有限公司 处理控制系统中的具有分开的冗余方案的多核心设备

Also Published As

Publication number Publication date
EP2686777B1 (en) 2021-08-18
KR20130137681A (ko) 2013-12-17
WO2012125296A3 (en) 2012-11-29
WO2012125296A2 (en) 2012-09-20
US20120239905A1 (en) 2012-09-20
US9235455B2 (en) 2016-01-12
EP2686777A4 (en) 2016-03-23
EP2686777A2 (en) 2014-01-22
KR101557833B1 (ko) 2015-10-06

Similar Documents

Publication Publication Date Title
US11277469B2 (en) Efficient and reliable host distribution of totally ordered global state
EP2686777B1 (en) Multi-core distributed processing for machine vision applications
US10178163B2 (en) Server-processor hybrid system for processing data
CN104123265A (zh) 一种众核间通信方法及系统
CN101383839A (zh) 基于数据服务器的数据分发系统及其实现方法
US8849905B2 (en) Centralized computing
CN113760578B (zh) 跨进程快速传输大数据的方法、装置、设备及计算机程序
CN109416673A (zh) 存储器请求仲裁
CN108874549A (zh) 资源复用方法、装置、终端和计算机可读存储介质
CN110392106A (zh) 一种作业状态的推送方法及装置
CN105607940A (zh) 一种arm平台中bdk向uefi bios传递信息的方法
US20090132582A1 (en) Processor-server hybrid system for processing data
CN111767995A (zh) 运算方法、装置及相关产品
CN115361382B (zh) 基于数据群组的数据处理方法、装置、设备和存储介质
CN106911739B (zh) 一种信息分发方法及装置
CN106154876A (zh) 一种智能机器人及机器人操作系统
CN103493037B (zh) 用于机器视觉应用的多核心分布式处理
KR101591061B1 (ko) 실시간 처리를 위한 전송 라이브러리 시스템 및 그 시스템에서의 송/수신 방법
CN112615928B (zh) 数据的处理方法、设备以及存储介质
Sobers Smiles David et al. Introduction to Cloud Resource Management
CN110060198B (zh) 基于多核处理器的图形库应用支持装置、方法及应用
CN113783830B (zh) 用于数据通信的方法和装置
JP2018147430A (ja) 通信装置、通信方法およびプログラム
CN116302425A (zh) 故障任务的转移方法、装置、计算机设备和存储介质
CN117851333A (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
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: Washington State

Patentee after: Omron Maisken Systems Inc.

Address before: Washington State

Patentee before: MICROSCAN SYSTEMS, Inc.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20190328

Address after: Tokyo, Japan

Patentee after: Omron Corp.

Address before: Washington State

Patentee before: Omron Maisken Systems Inc.

TR01 Transfer of patent right
CP02 Change in the address of a patent holder

Address after: Kyoto Japan

Patentee after: Omron Corp.

Address before: Tokyo, Japan

Patentee before: Omron Corp.

CP02 Change in the address of a patent holder