CN102375800A - 用于机器视觉算法的多处理器片上系统 - Google Patents

用于机器视觉算法的多处理器片上系统 Download PDF

Info

Publication number
CN102375800A
CN102375800A CN2011101609598A CN201110160959A CN102375800A CN 102375800 A CN102375800 A CN 102375800A CN 2011101609598 A CN2011101609598 A CN 2011101609598A CN 201110160959 A CN201110160959 A CN 201110160959A CN 102375800 A CN102375800 A CN 102375800A
Authority
CN
China
Prior art keywords
process nuclear
data
scratch
memory
primary memory
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
CN2011101609598A
Other languages
English (en)
Other versions
CN102375800B (zh
Inventor
I·萨尔
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.)
Apple Inc
Original Assignee
Prime Sense Ltd
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 Prime Sense Ltd filed Critical Prime Sense Ltd
Publication of CN102375800A publication Critical patent/CN102375800A/zh
Application granted granted Critical
Publication of CN102375800B publication Critical patent/CN102375800B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • 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
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • 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
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Abstract

一种多处理器系统,包括主存储器和多个处理核,该多个处理核被配置为执行使用存储在该主存储器中的数据的软件。在一些实施方案中,该多处理器系统包括数据流单元,其连接在该多个处理核和该主存储器之间,并被配置为从该主存储器中预取得数据,以供该多个处理核使用。在一些实施方案中,该多处理器包括便笺式处理单元,其连接至该多个处理核并被配置,以为该多个处理核执行所述软件的选定部分,该选定部分使得所述多个处理核中的两个或更多个处理核并发地访问给定的数据项目。

Description

用于机器视觉算法的多处理器片上系统
技术领域
本发明大体涉及多处理器系统,并更具体而言涉及用于在多处理器系统中有效利用共享资源的方法和系统。
背景技术
近年来,随着VLSI器件的密度逐渐增大和越来越复杂的运算任务——诸如实时机器视觉所需的那些运算任务的出现,完全多处理器系统(complete multiprocessor system)——特别是单个单片(monolithic)器件中的对称多处理(SMP)系统——变得流行起来。在一些多处理器系统中,存储器资源由多个多处理器共享。然而,这一共享可能产生存储一致性(memory coherency)问题,并造成瓶颈。
在美国专利7,529,799(其公开内容以引证方式纳入本说明书)中,发明者们介绍了一种大型SMP系统的分布式系统结构,该结构使用基于总线的高速缓存一致性协议(cache-coherence protocol)。所述分布式系统结构包括地址切换、多个存储器子系统以及多个主设备(masterdevice),或者是处理器、I/O代理或者是一致性存储适配器,它们被组织成一组由节点控制器支持的节点。所述节点控制器从主设备接收事务(transaction),作为另一主设备或作为从设备与主设备通信,并为从主设备接收的事务排队。由于一致性的实现在时间上和空间上是分布式的,所以所述节点控制器帮助维持了高速缓存一致性。此外,用于标准总线协议的事务标签格式被扩展,以确保在整个系统中维持唯一的事务标签。边带信号被用来进行干预以及再运行,以在某些情况下将事务标签保留在节点控制器处。
在美国专利7,237,071(其公开内容以引证方式纳入本说明书)中,介绍了一种SMP系统,该系统具有由相同的处理器组成的并行多处理体系结构,并包括单个程序存储器。程序访问仲裁逻辑向单个请求中央处理单元一次提供一个指令。共享存储器访问仲裁逻辑可以从分立的可同时访问的存储器组提供数据,或在中央处理单元之间进行访问仲裁。该系统可以通过以下方式模拟原子读取/修改/写入指令:在对所述共享存储器中的一组预定地址之一进行读取访问之后的一预定数量的存储周期内,禁止另一中央处理单元访问这一地址。
发明内容
本发明的一个实施方案提供了一种多处理器系统,该多处理器系统包括主存储器、多个处理核以及数据流单元(data streaming unit)。所述多个处理核被配置为执行使用存储在所述主存储器中的数据的软件。所述数据流单元,连接在所述多个处理核和所述主存储器之间,并被配置为从所述主存储器中预取得数据,以供所述多个处理核使用。
在一些实施方案中,所述数据流单元被配置,从而为(on behalf of)所述多个处理核将数据存储在所述主存储器中。在一个实施方案中,所述数据流单元包括仲裁电路,该仲裁电路被配置,从而为所述多个处理核中的两个或更多个处理核决定(resolve)对所述主存储器进行的同时访问。
在一些实施方案中,所述数据流单元对于每一处理核包括一个相应的前端单元,该前端单元被配置为从该处理核接收所述主存储器中的相应的地址列表,以及根据所述列表从所述主存储器中预取得所述数据。在本文公开的一个实施方案中,所述多处理器系统包括与每一处理核相关联的相应的局部内存,其中每一处理核和其对应的前端单元被配置为经由该相应的局部内存来交换数据。
在一个实施方案中,每一处理核和其对应的前端单元被配置,从而将所述地址列表维持在循环缓冲器(circular buffer)中,所述循环缓冲器被存储在相应的局部内存中。在一些实施方案中,至少所述多个处理核和所述数据流单元被包括在单个集成电路中。
根据本发明的一个实施方案,还提供了一种多处理器系统,该多处理器系统包括主存储器、多个处理核以及便笺式处理单元(scratch-padprocessing unit)。所述多个处理核被配置为执行使用存储在所述主存储器中的数据的软件。所述便笺式处理单元连接至所述多个处理核并被配置,从而为所述多个处理核执行所述软件的选定部分,所述选定部分使得所述多个处理核中的两个或更多个处理核并发地访问给定的数据项目。
在一些实施方案中,所述便笺式处理单元包括专用存储器,该专用存储器用于存储由所述两个或更多个处理核访问的给定的数据项目。在一个实施方案中,所述便笺式处理单元被配置为从所述多个处理核接受便笺式指令,仲裁所述便笺式指令,以及在所述专用存储器中执行所仲裁的便笺式指令。在本文公开的一个实施方案中,至少所述多个处理核和所述便笺式处理单元被包括在单个集成电路中。
根据本发明的一个实施方案,还提供了一种用于数据处理的方法。该方法包括在多处理器系统的多个处理核中执行使用存储在主存储器中的数据的软件。通过连接在所述多个处理核和所述主存储器之间的数据流单元,从所述主存储器预取得数据,以供多个处理核使用。
根据本发明的一个实施方案,还提供了一种用于数据处理的方法。该方法包括,在多处理器系统的多个处理核中执行使用存储在主存储器中的数据的软件。使用连接至所述多个处理核的便笺式处理单元,为所述多个处理核执行所述软件的选定部分,所述选定部分使得所述多个处理核中的两个或更多个处理核并发地访问给定的数据项目。
结合附图,将从下文对实施方案的详细描述中得到对本发明的更充分理解。
附图说明
图1是根据本发明的一个实施方案的框图,其示意性示出了一个多处理器系统。
图2是根据本发明的一个实施方案的框图,其示意性地示出了一个数据流单元(DSU)
图3是根据本发明的一个实施方案的图示,其示意性地示出了一个循环缓冲器的结构。
图4是根据本发明的一个实施方案的框图,其示意性地示出了一个DSU前端的结构。
图5是根据本发明的一个实施方案的框图,其示意性地示出了该DSU前端中的一个缓冲器管理单元的结构。
图6是根据本发明的一个实施方案的框图,其示意性地示出了一个DSU仲裁器的结构。
图7是根据本发明的一个实施方案的框图,其示意性地示出了一个便笺式单元的结构及其所连接的系统元件。
图8是根据本发明的一个实施方案的框图,其示意性地示出了一个便笺式控制器。
具体实施方式
概况
一些多处理器系统被实现在单个集成电路(片上系统,或SOC)中。该SOC通常包括局部内存单元的一个或多个实例(instance),但是并不包括主存储器——其可以远大于所述局部内存。所述主存储器通常被实现在一个或多个集成电路中,允许满足顺序(猝发(burst))访问的高带宽但具有长的等待时间。当这样的主存储器在多处理器系统中被多个处理器共享时,应实施有效率的仲裁,以避免因排队访问存储器而引起的严重的性能下降。
本发明的实施方案介绍了一种新方法,以减轻多处理器系统中由多个处理器访问共享存储器资源所引起的性能瓶颈。根据本发明的一些实施方案,该多处理器系统包括数据流单元(DSU),该数据流单元在处理器内核需要数据之前就从主存储器取得该数据。该DSU将所取得的数据存储在连接至处理器内核的局部内存中,在该局部内存中这些数据可以在需要时被处理器内核访问。该DSU也将数据从局部内存写入主存储器。
与多处理器系统相关联的另一问题是,当两个或更多个处理器访问相同的存储位置时确保存储器一致性(memory coherency)。在一些由多处理器系统执行的图像处理定向算法中,很少出现多个处理器内核访问主存储器中的同一地址的情形,而这种情形仅发生在例如这样的任务中:从图像的由多个处理器内核处理的各区域中收集图像统计数据。然而,如果未得到有效率的应对,即使这样的情形很少发生,却仍然会产生性能瓶颈。本发明的实施方案引入了减轻这一瓶颈的一种新方法。根据本文公开的实施方案,对共享存储位置的所有访问均由便笺式单元操控,该便笺式单元包括专用处理器和小型局部内存,并执行这样的软件,该软件为执行访问共享存储位置的并行任务而被优化。该便笺式单元通常作为协处理器(co-processor)而附接至该多处理器系统的处理器内核。
系统描述
图1是根据本发明的一个实施方案的框图,其示意性地示出了多处理器系统10。多处理器系统10的所有所示出的元件可以位于单个集成电路中,并构成一个片上系统(SOC)。
多处理器系统10包括主存储器500(也被称为外部存储器)。在一些实施方案中,主存储器500包括一个或多个分立的集成电路,且不是该多处理器SOC的一部分。在另一实施方案中,主存储器和多处理器系统10的其他元件位于同一SOC中。在另一实施方案中,主存储器500可以包括多个部分,其中一些位于该SOC内,另一些位于一个或多个外部芯片中。在接下来的描述中,术语“外部存储器”将被用于主存储器;不过本发明决不限于未在该SOC中实现的主存储器。
存储控制器400,位于该SOC中,控制对外部存储器的访问,并且在一些实施方案中,可以提供存储刷新机制和其他存储控制功能。在一些实施方案中,局部内存单元300被附接至各个处理器内核200。每一局部内存单元可以使用直接存储器访问(DMA)通道通过存储控制器400访问外部存储器500,例如,填充代码段(code segment)。
根据本发明的一些实施方案,由访问主存储器中的共享存储位置导致的性能下降通过数据流单元(DSU)2000得到了减轻。DSU 2000可以被配置为,通常在处理器内核200需要访问来自外部存储器500的数据之前,用该数据预填充局部内存单元300(每个处理器内核一个),从而使由对外部存储器的访问中的读竞争(read contention)导致的处理器200的延迟最小化。通过类似的方式,DSU 2000向外部存储器500发送由处理器内核200写入局部内存300的数据,从而使由对外部存储器访问中的写竞争导致的处理器200的延迟最小化。
DSU 2000包括:DSU仲裁器2200,其控制对存储控制器400的访问;以及DSU前端单元2100,其中每一前端单元连接至相应的局部内存300,并连接至单个相应的处理器内核200。
在一些实施方案中,对共享存储位置的访问由便笺式单元1000操控,便笺式单元1000可以包括指令缓冲器1300,每个指令缓冲器1300连接至相应的处理器内核200。便笺式单元1000包括一个或多个便笺式随机访问存储器(RAM)1100,以及一个或多个便笺式控制器1200,其中每一便笺式RAM通过相应的便笺式控制器1200连接至指令缓冲器1300。
在一个典型的实现中,缓冲器1300暂时性地存储由处理器内核200产生的指令,直到当前指令赢得了对所请求的便笺式控制器的仲裁(根据伴随该指令的目标地址)。在图1的实施方案中(虽然并不是必要的),每一处理器内核200被连接至各自专用的指令缓冲器1300。一旦一个指令在该指令缓冲器中被缓冲,该缓冲器就根据伴随该缓冲指令的目标地址来请求对适合的便笺式控制器1200的访问。当准许访问时,该指令被从该指令缓冲器发送到该便笺式控制器以用于执行。
便笺式单元1000允许了通过便笺式控制器1200来独立执行公共共享多处理器任务,便笺式控制器1200被连接以通过优化的方式来执行公共共享存储器任务,卸载处理器内核200,并通过引进有效率的内存锁机制来确保存储器一致性。这一技术是有效率的,因为所述存储器并非被物理锁定。本文公开的技术确保了通过控制器来原子地进行完整的读取-修改-写入周期。
数据流单元(DSU)
图2是根据本发明的一个实施方案的框图,其示意性地示出了数据流单元(DSU)2000及其所连接的单元,包括存储控制器400、处理器内核200以及局部内存300。DSU 2000包括:多个DSU前端单元2100,每个DSU前端单元2100服务于相应的处理器内核200及其关联的局部内存300;以及单个DSU仲裁器2200,其在由DSU前端单元2100发起的存储器访问请求之间进行仲裁。
所述处理器内核将该DSU预编程,以在初始化时将数据从存储器移动至局部内存。DSU 2000接着将来自外部存储器500的数据预加载至局部内存300,从而降低了对该外部存储器的读取访问的竞争,且因此提高了多处理器系统10的性能。类似地,所述处理器内核将该DSU预编程,以将数据从所述局部内存移动至该外部存储器,从而降低了对外部存储器的写入访问的竞争。
这一配置由于多种原因而提高了性能。例如,去往和来自外部存储器500的通信量可以由知道所有通信量的单个控制器(DSU仲裁器)优化。此外,处理器内核200并未被中止(stall),因为它们所要求的数据被提前取得,这缩短了数据访问等待时间。
在由处理器内核200进行从外部存储器的地址的每一读取操作之前,是从外部存储器500的对应的读取操作和对局部内存300的对应的写入操作,这两项操作均由DSU前端单元2100进行。类似地,在由局部处理器进行的对外部存储器的地址的每一写入操作之后,是从该局部内存的对应读取操作以及随后的对该外部存储器的写入操作,这两项操作均由该DSU进行。
在一些实施方案中,处理器内核200和外部存储器500之间的数据传送是由位于所述局部内存中的多个循环缓冲器进行的,下文将结合图3描述。每一处理器内核将数据写入相应的循环缓冲器,并且DSU从所述循环缓冲器读取数据并将它写入主存储器。在主存储器为外部存储器的实施方案中,这是通过外部存储控制器400进行的。对于读取操作,DSU从主存储器读取数据(如果主存储器是外部存储器的话,则通过外部存储控制器),并将该数据写入所述循环缓冲器;所述处理器内核从所述循环缓冲器读取所取得的数据。
图3示意性地示出了根据本发明的一个实施方案的循环缓冲器310的结构。在本发明的一些实施方案中,在每个局部内存中可以实现多个循环缓冲器。位于给定的局部内存300中的循环缓冲器由DSU前端单元2100管理,并且被连接至这一局部内存的处理器内核200管理。参考图3和在接下来的描述中,术语“读取”和“写入”是指由局部处理器200进行的读取操作和写入操作。
该循环缓冲器具有:开始指针311,其指向局部内存300中的缓冲器开始的位置;以及结束指针316,其指示局部内存300中的最后位置。该缓冲器是循环的,并且,对于对该缓冲器的顺序访问,结束指针316之后的位置是开始指针311。
由局部处理器200处理的数据元由当前元指针313指示,该指针由特定的处理器内核指令推进(待在下文描述)。定义了工作窗口314,其包括用于局部处理器的有效数据。如果该当前元指针达到读取指针的值,则中止该处理器,直到新的数据到来。此外,如果读取指针315的值等于写入指针312的值,则暂停从外部存储器进一步取得读取数据,直到写入存储器指针前进。
图4是根据本发明的一些实施方案的框图,其示意性地示出了DSU前端单元2100。该图中还描绘了附接至该DSU前端单元的处理器内核200和局部内存300。每一DSU前端单元2100包括DSU缓冲器管理单元2110、控制单元2130、缓冲器选择多路复用器2140以及外部存储器访问控制2150。DSU前端单元2100被处理器内核200配置为执行任务列表;这样的配置可以包括对多个位于控制单元2130上的寄存器进行编程,其中每一寄存器可以包括指示读取、写入和数据大小的位,以及指示每一循环缓冲器310的缓冲器开始指针的值和缓冲器结束指针的值的位。
DSU缓冲器管理单元2110(其将在下文详述)管理着循环缓冲器310。单元2110递增读取指针和写入指针,将缓冲器结束指针回转推进至缓冲器开始指针,并且当从该处理器内核接收NLI(1)(待在下文描述)指令时递增当前元指针,并再次回转推进缓冲器结束指针。在当前元指针的递增导致其值等于读取指针的值的情况下,缓冲器管理单元2110发信号通知处理器内核200中止,直到接收到新的数据。
控制单元2130在对循环缓冲器310的访问——伴随着对局部内存200的访问——之间进行仲裁。这样的仲裁可以通过,例如,旋转优先级方案(rotating priority scheme)来进行。缓冲器选择多路复用器2140从控制单元2130取得一个到所选缓冲器的指针,并将由所述缓冲器产生的地址输出到局部内存300。
控制单元2130也控制外部存储器访问控制2150,该外部存储器访问控制2150产生读取请求和写入请求,并从DSU仲裁器2200得到读取响应。来自外部存储器访问单元2150的数据可以直接传送至局部内存300;然而,如果从外部存储器读取或向外部存储器写入的数据的大小与局部内存的数据端口的大小不同,则可以使用附加的缓冲/逻辑(未示出)。
图5是根据本发明的一些实施方案的框图,其示意性地示出了DSU缓冲器管理单元2110。缓冲器管理单元2110被加入DSU前端单元2100中,并控制着对多个循环缓冲器的访问。在一些实施方案中,DSU缓冲器管理单元2110包括多个相同的单缓冲器管理单元(SBM)2120,其中每个SBM控制着局部内存300中的单个相应的循环缓冲器。SBM 2120可以包括:读取指针(RP)寄存器2123,其保持读取指针315的值;写入指针(WP)寄存器2122,其保持写入指针312的值;以及当前元指针(CEP)寄存器2124,其保持CEP 313的值。读取指针指向下一这样的存储位置,在该存储位置处DSU前端写入它从外部存储器读取的数据;并且,写入指针指向下一这样的存储位置,DSU前端从该位置读取它即将写入外部存储器的数据。
SBM 2120还包括:尺寸寄存器(Size Register)2121,其存储在当前数据事务中所传送的数据单元的尺寸(例如,以字节);加法器2126,其将存储在尺寸寄存器2121中的值添加到指针寄存器2122、2123、2124中的值上,以在每一事务之后对它们进行更新;以及比较器2125,其将CEP寄存器2124的值与RP寄存器2123的值作比较,并在它们相等时断言(assert)“中止”输出,从而处理器内核200应被中止。
读取指针寄存器2123和写入指针寄存器2122的更新由一“选择”输入来限定(qualify),该“选择”输入由控制单元2130(见图4)激活,其中对于每一SBM 2120具有一条分立的选择线;该选择线被标记为选择-1、选择-2等。除了所述选择线,控制单元2130还对所有SBM断言公共控制线:读取和写入,以分别更新所选SBM 2120的写入指针寄存器2122和读取指针寄存器2123;以及NLI(1),以更新DSU前端单元2100的所有SBM 2120的所有CEP寄存器2124。
现在返回图4,控制单元2130执行在DSU前端中预编程的任务。该控制单元被处理器内核200预配置有一个存储器传送任务列表;它接着根据一个标准从缓冲器管理单元2110中选择指针,所述标准可以是,例如,旋转优先级。该控制单元接着控制缓冲器选择多路复用器(buffer-select-mux)2140的地址输入,以将所选择的地址输出至局部内存300,并向外部存储器访问控制2150发送指示词,该指示词可以包括该缓冲器的索引和读/写位。此外,当任意SBM 2120设置其“中止”输出时,该控制单元将向处理器内核200断言一个总的(aggregate)“中止”输出,以暂停其操作,直到中止被清除。
除了在初始化时进行的DSU配置,控制单元2130还被两个特定的处理器指令控制:NLI(0)和NLI(1)。NLI(1)用于推进所述循环缓冲器中的当前元指针313。当该处理器需要新的一组参数来计算下一个值或下多个值时,在每一程序循环迭代之后设置NLI(1)。
所更新的参数包括所有活动的SBM的当前元指针。通常在单个周期里对所有SBM进行更新,并考虑循环缓冲器回转位置。NLI指令也验证当前元指针(CEP)的新位置是否已经被填充了从外部存储器取得的所需的数据。若没有,则中止该处理器内核,直到读取指针(RP)和当前元指针符合该需求(即,直到RP>CEP)。
NLI(1)被控制单元2130指向DSU缓冲器管理2110。当程序开始时,NLI(0)由处理器内核200发布。NLI(0)指令的目的在于,验证初始CEP是否被有效处理(即,所要求的数据已经被从外部存储器读取并写入局部内存)。
在NLI(0)被接受之前,读取指针(RP)315和写入指针(WP)312通常不会从它们的初始位置前进。(RP被递增是因为,它需要取得处理第一元所要求的数据。WP未被递增是因为,CEP仍然指向初始位置,其和WP指向的位置相同。处理后的数据尚不可访问,因此没有任何东西被写入外部存储器)。
外部存储器访问控制2150由控制单元2130激活,以向DSU仲裁器2200启动读取请求和写入请求;它也从该DSU仲裁器取得读取响应,并将所读取的数据传送至局部内存。
图6示意性地示出了根据本发明的一些实施方案的DSU仲裁器2200的框图。DSU仲裁器2200从多个DSU前端单元2100接收读取请求和写入请求,在这些请求之间进行仲裁,计算外部存储器中相应的地址,以及将外部存储器访问请求发送至外部存储控制器400。该DSU仲裁器也将从该存储控制器接收的对读取请求的响应路由回进行请求的DSU前端单元。在本发明的一些实施方案中,可以不需要写入响应,并且任意写入请求都被假定为被接受。在另一些实施方案中(未在图6中示出),写入响应被操控,且一个与读取响应锁存器2210类似的单元(待在下文描述)被添加至DSU仲裁器2200。
来自多个DSU前端单元2100的读取请求被锁存在读取请求锁存器2230中。在本发明的一些实施方案中,读取请求锁存器2230对于每一DSU前端单元包括一个索引,该索引指示了该请求对应于哪个循环缓冲器;并且包括一个未决位(pending bit),其指示了该请求是有效的且尚未被操控。来自读取请求锁存器2230的请求被输入读取请求仲裁单元2250,读取请求仲裁单元2250使用例如旋转优先级方案在多个并发的读取请求之间进行仲裁。读取请求仲裁还清除读取请求锁存器2230中的选定请求的未决位。
所选择的读取操作(一个或多于一个,下文将解释)被输出至读取地址计算单元2270,其保持并更新到该外部存储器的指针(对于每一局部内存300中的每一循环缓冲器,均有一个指针),并且基于指针值以及基于与该外部存储器的组织结构有关的参数来计算该外部存储器中的地址;在本发明的一些实施方案中,所处理的目标是视频图像,并且这些参数可以包括图像宽度、高度和每像素的字节。来自读取地址计算2270的输出是对外部存储控制器400的读取请求。
在本发明的一些实施方案中,对外部存储器的访问的带宽大于局部内存300的带宽;这可以由更宽的总线、更快的时钟或它们的任意结合来达成。在这样的实施方案中,可以期望并发地产生多个存储器访问。在这些实施方案中,读取请求仲裁单元2250将选择多个读取请求,且读取地址计算单元2270将同时为多个事务计算地址。
用于写入请求的机制类似于所描述的用于读取请求的机制,并包括:写入请求锁存器2220,以锁存写入请求;写入请求仲裁单元2240,在未决写入请求之间进行仲裁;以及写入地址计算单元2260,计算外部存储器中的地址。在本发明的一些实施方案中,写入请求锁存器2220、写入请求仲裁单元2240以及写入地址计算单元2260可以分别与读取请求锁存器2230、读取请求仲裁单元2250以及读取地址计算单元2270相同。在另一些实施方案中,所述单元在性质上相似,但是由于写入不及读取频繁,所以与写入有关的单元的实现可以在较小的区域和性能方面被优化。
最后,读取响应锁存器2210锁存了来自存储控制器400的对读取请求的响应,并将它们输出至启动这些请求的那些DSU前端单元2100。
便笺式单元
根据本发明的一些实施方案,访问共享存储器资源的多处理器系统10的程序被便笺式单元100操控,它保证了存储器一致性,并减轻了与访问共享存储器资源相关联的延迟。便笺式单元实际上是专用处理器,其带有为有效率地执行共享存储器任务和保证存储器一致性而被优化的指令集。
图7是根据本发明的一个实施方案的框图,其示意性地示出了便笺式单元1000及其到处理器内核200的接口。为处理器内核200定义了一组便笺式指令(SP指令,待在下文描述)。这些SP指令由处理器内核200发送到指令缓冲器1300,指令缓冲器1300接着将它们发送至便笺式控制器1200以用于执行。
如果处理器内核200所连接的指令缓冲器尚未将前一指令转发给便笺式控制器1200,或者如果前一指令期待一个返回值而该返回值尚未被获得,则处理器内核200将避免将新的SP指令发送至该指令缓冲器。这一机制可以,例如,通过中止适合的处理器内核来以硬件实现。
指令缓冲器1300将SP指令发送至两个便笺式控制器1200之一,该便笺式控制器1200在来自多个指令缓冲器1300的多个指令之间进行仲裁,并选择其中一个用于执行。根据本发明的一些实施方案,所述仲裁使用旋转优先级方案。
涉及偶(even)便笺式存储位置的指令被输出至偶便笺式控制器1200,而涉及奇(odd)便笺式存储位置的指令被输出至奇便笺式控制器1200。因此,该指令中指定的地址的最低有效位不被转发至该便笺式控制器,而是用于选择这两个控制器之一。
每一便笺式控制器1200被连接至一个RAM 1100,该RAM 1100是便笺式存储器或其一部分。根据本发明的一些实施方案,便笺式存储器是根据偶地址和奇地址而交错;一个RAM 1100保存偶地址(图7中的RAM偶),而另一RAM 1100(RAM奇)保存奇地址。连接至RAM偶的便笺式控制器1200被命名为“便笺式控制器偶”,连接至RAM奇的便笺式控制器1200被命名为“便笺式控制器奇”。在本发明的另一些实施方案中,也可以使用其他类型的交错,例如根据这两个最低有效地址位划分为四组,或者例如通过哈希函数划分。
一些SP指令可以向调用处理器返回值。为此目的,每一便笺式控制器1200将返回值输出至所有的处理器内核200。此外,为了使每一处理器内核确定输入数据是否是其已发布的指令的返回值,每一便笺式控制器1200断言ID总线上作为从该RAM返回的数据的目的地的处理器的ID码,该ID码被输出至所有的处理器内核200。在仲裁被准许之后,该便笺式控制器中的等待时间被固定。因此,在另外一个实施方案中,指令缓冲器可以计数所述周期,并根据这一计数来抓取该数据。
表1是根据本发明的一些实施方案的一个包括9个SP指令的列表。每个SP指令包括一个操作码——该操作码用来区别各种SP指令,并可以包括4位索引——该索引是便笺式存储器中的地址,还可以包括,例如16至18位和一个或两个操作数。
表1:便笺式指令
图8是根据本发明的一些实施方案的框图,其示意性地示出了便笺式控制器1200的流水线级(pipeline stages)和结构。便笺式控制器1200包括:旋转优先级仲裁器1210(仲裁器)、读取级单元1220、执行级单元1230、写入级单元1240、比较器1260以及多路复用器1250。便笺式控制器1200具有流水线架构,并且指令的执行在流水线级中进行。当写入级1240写入指令n的结果时,执行级1230进行指令n+1的执行部分,读取级1220从指令n+2中指定的存储器地址取得数据,并且仲裁器1210从指令缓冲器1300中取得指令n+3。
仲裁器1210在从所述指令缓冲器输入的指令之间进行仲裁,并可以采用例如旋转优先级方案。当该仲裁器选择指令资源时,它将所选择的指令转发至读取级1220,并断言一个“就绪“输出,这向指令缓冲器指示,可以应用其下一指令(如果可以获得的话)。
从仲裁器1210转发到读取级1220的指令可以包括五个字段,其中头四个字段是从所选择的指令拷贝而来的,包括操作码(opcode)字段、索引字段以及一个或两个操作数——OP1和OP2;上面的表1描绘了由每一指令使用的字段。第五个字段是一个ID字段,其识别所选择的指令缓冲器,并使得能够将返回值路由到原始发出该指令的处理器内核。
在一个时钟周期的延迟后,读取级1220将从该仲裁器接收的指令的各字段输出至执行级1230。此外,读取级1220断言读取地址总线上待从该便笺式存储器取得的操作数的地址,该读取地址总线被连接至RAM 1100的读取地址端口。该地址可以与从仲裁器1210输出的索引字段相同。从该RAM读取的数据经由多路复用器1250(待在下文解释)被路由至执行级1230;由于通过RAM 1100的延迟是一个时钟周期,所以来自该RAM的数据以及相应的指令将在相同的时钟周期到达执行级1230。
执行单元1230执行该指令,这可以包括:进行逻辑/算术操作(如果要求的话),输出从RAM 1100读取的返回值,以及激活写入级1240。该返回值,与已经启动该指令的处理器的I D一起,被输出到所有的处理器内核200。
写入级1240仅在该指令具有写入部分时被激活。它从该执行级获得存储位置的索引(地址)和待写入的数据,以及写入激活信号(writeactivation signal)。如果要求写入,则执行级1230断言一个写入输出,并发送该地址(索引)和该数据,在写入地址端口上断言该写入地址,并在RAM 1100的写入数据端口上断言该写入数据。
如果一个指令从存储器读取数据而新数据被前一指令写入相同的位置,则存储器一致性机制被调用;由于流水线施加的一个时钟周期的延迟,所以这两次访问发生在同一时钟周期。比较器1260将写入地址与读取地址作比较;如果这两个地址是相同的,则多路复用器1250将把写入数据直接路由至执行级1200,并且从RAM 1100读取的数据将被忽略。
图1-8中示出的系统10的配置和各种系统原件的配置均是示例性配置,它们仅是为了澄清概念的目的而示出。在其他实施方案中,也可以使用其他适合的配置。在一些实施方案中,这里描述的控制器和处理器,例如存储控制器400、处理器内核200以及便笺式控制器1200,可以包括通用处理器,其被以软件编程以实现本文所描述的功能。所述软件可以例如通过网络以电子形式下载至该处理器,或者其可以,替代地或补充地,被提供和/或存储在非暂时性有形介质诸如磁、光或电子存储器中。
虽然本文描述的实施方案主要针对SOC多处理器系统,但本文描述的方法和系统也可以被用于其他应用,诸如分布在多个集成电路中、由总线或网络或其任意结合互联的多处理器系统。
应认识到的是,本文所描述的实施方案以实施例的形式给出,并且本发明并不限于上文具体示出和描述的内容。相反,本发明的范围包括上述的各种特征的结合和子结合,以及本领域普通技术人员在阅读上文描述后将了解的、现有技术中未公开的变体和改型。

Claims (22)

1.一种多处理器系统,包括:
主存储器;
多个处理核,被配置为执行使用存储在所述主存储器中的数据的软件;
数据流单元,连接在所述多个处理核和所述主存储器之间,并被配置为从所述主存储器中预取得所述数据,以供所述多个处理核使用。
2.根据权利要求1所述的多处理器系统,其中所述数据流单元被配置,从而为所述多个处理核将数据存储在所述主存储器中。
3.根据权利要求1所述的多处理器系统,其中所述数据流单元包括仲裁电路,该仲裁电路被配置,从而为所述多个处理核中的两个或更多个处理核决定对所述主存储器进行的同时访问。
4.根据权利要求1所述的多处理器系统,其中所述数据流单元对于每一处理核包括一个相应的前端单元,该前端单元被配置为从该处理核接收所述主存储器中的相应的地址列表,以及根据该列表从所述主存储器中预取得所述数据。
5.根据权利要求4所述的多处理器系统,还包括与每一处理核相关联的相应的局部内存,其中该每一处理核和其对应的前端单元被配置为经由该相应的局部内存来交换数据。
6.根据权利要求5所述的多处理器系统,其中所述每一处理核和其对应的前端单元被配置为将所述地址列表维持在循环缓冲器中,所述循环缓冲器被存储在相应的局部内存中。
7.根据权利要求1所述的多处理器系统,其中至少所述多个处理核和所述数据流单元被包括在单个集成电路中。
8.一种多处理器系统,包括:
主存储器;
多个处理核,被配置为执行使用存储在所述主存储器中的数据的软件;
便笺式处理单元,连接至所述多个处理核并被配置,从而为所述多个处理核执行所述软件的选定部分,该选定部分使得所述多个处理核中的两个或更多个处理核并发地访问给定的数据项目。
9.根据权利要求8所述的多处理器系统,其中所述便笺式处理单元包括专用存储器,该专用存储器用于存储由所述两个或更多个处理核访问的给定的数据项目。
10.根据权利要求9所述的多处理器系统,其中所述便笺式处理单元被配置为从所述多个处理核接受便笺式指令,仲裁所述便笺式指令,以及在所述专用存储器中执行所仲裁的便笺式指令。
11.根据权利要求8所述的多处理器系统,其中至少所述多个处理核和所述便笺式处理单元被包括在单个集成电路中。
12.一种用于数据处理的方法,包括:
在多处理器系统的多个处理核中执行使用存储在主存储器中的数据的软件;以及
通过连接在所述多个处理核和所述主存储器之间的数据流单元,从所述主存储器预取得所述数据,以供所述多个处理核使用。
13.根据权利要求12所述的方法,还包括,通过所述数据流单元为所述多个处理核将数据存储在所述主存储器中。
14.根据权利要求12所述的方法,其中预取得所述数据包括,为所述多个处理核中的两个或更多个处理核决定对所述主存储器进行的同时访问。
15.根据权利要求12所述的方法,其中预取得所述数据包括,从每一处理核向相应的前端单元提供所述主存储器中的相应的地址列表,以及根据所述列表通过所述前端单元从所述主存储器中预取得所述数据。
16.根据权利要求15所述的方法,其中预取得所述数据包括,经由与每一处理核关联的相应的局部内存,在该每一处理核和相应的前端单元之间交换所述数据。
17.根据权利要求16所述的方法,其中交换所述数据包括,将所述地址列表维持在相应的循环缓冲器中,所述相应的循环缓冲器存储在相应的局部内存中。
18.根据权利要求12所述的方法,其中至少所述多个处理核和所述数据流单元被包括在单个集成电路中。
19.一种用于数据处理的方法,包括:
在多处理器系统的多个处理核中执行使用存储在主存储器中的数据的软件;以及
使用便笺式处理单元,所述便笺式处理单元连接至所述多个处理核,为所述多个处理核执行所述软件的选定部分,所述选定部分使得所述多个处理核中的两个或更多个处理核并发地访问给定的数据项目。
20.根据权利要求19所述的方法,其中执行所述软件的选定部分包括,将由所述两个或更多个处理核访问的所述给定的数据项目存储在所述便笺式处理单元的专用存储器中。
21.根据权利要求20所述的方法,还包括,在所述便笺式处理单元中从所述多个处理核接受便笺式指令,仲裁所述便笺式指令,以及在所述专用存储器中执行所仲裁的便笺式指令。
22.根据权利要求19所述的方法,其中至少所述多个处理核和所述便笺式处理单元被包括在单个集成电路中。
CN201110160959.8A 2010-08-11 2011-06-09 用于机器视觉算法的多处理器片上系统 Active CN102375800B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US37256310P 2010-08-11 2010-08-11
US61/372,563 2010-08-11
US13/074,034 2011-03-29
US13/074,034 US9075764B2 (en) 2010-08-11 2011-03-29 Multiprocessor system-on-a-chip for machine vision algorithms

Publications (2)

Publication Number Publication Date
CN102375800A true CN102375800A (zh) 2012-03-14
CN102375800B CN102375800B (zh) 2015-11-25

Family

ID=45565631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110160959.8A Active CN102375800B (zh) 2010-08-11 2011-06-09 用于机器视觉算法的多处理器片上系统

Country Status (5)

Country Link
US (1) US9075764B2 (zh)
JP (1) JP5787629B2 (zh)
KR (1) KR101753913B1 (zh)
CN (1) CN102375800B (zh)
TW (1) TWI528279B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104951424A (zh) * 2015-07-09 2015-09-30 天津瑞发科半导体技术有限公司 一种具有多处理器和共用外存储器的计算机系统
CN114817120A (zh) * 2022-06-29 2022-07-29 湖北芯擎科技有限公司 一种跨域数据共享方法、系统级芯片、电子设备及介质
CN117312330A (zh) * 2023-11-29 2023-12-29 中国人民解放军国防科技大学 基于便签式存储的向量数据聚集方法、装置及计算机设备

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9857868B2 (en) 2011-03-19 2018-01-02 The Board Of Trustees Of The Leland Stanford Junior University Method and system for ergonomic touch-free interface
US8840466B2 (en) 2011-04-25 2014-09-23 Aquifi, Inc. Method and system to create three-dimensional mapping in a two-dimensional game
US8854433B1 (en) 2012-02-03 2014-10-07 Aquifi, Inc. Method and system enabling natural user interface gestures with an electronic system
US10937239B2 (en) 2012-02-23 2021-03-02 Charles D. Huston System and method for creating an environment and for sharing an event
WO2013126784A2 (en) 2012-02-23 2013-08-29 Huston Charles D System and method for creating an environment and for sharing a location based experience in an environment
US10600235B2 (en) 2012-02-23 2020-03-24 Charles D. Huston System and method for capturing and sharing a location based experience
US8934675B2 (en) 2012-06-25 2015-01-13 Aquifi, Inc. Systems and methods for tracking human hands by performing parts based template matching using images from multiple viewpoints
US9111135B2 (en) 2012-06-25 2015-08-18 Aquifi, Inc. Systems and methods for tracking human hands using parts based template matching using corresponding pixels in bounded regions of a sequence of frames that are a specified distance interval from a reference camera
US8836768B1 (en) 2012-09-04 2014-09-16 Aquifi, Inc. Method and system enabling natural user interface gestures with user wearable glasses
US9129155B2 (en) 2013-01-30 2015-09-08 Aquifi, Inc. Systems and methods for initializing motion tracking of human hands using template matching within bounded regions determined using a depth map
US9092665B2 (en) 2013-01-30 2015-07-28 Aquifi, Inc Systems and methods for initializing motion tracking of human hands
US9298266B2 (en) 2013-04-02 2016-03-29 Aquifi, Inc. Systems and methods for implementing three-dimensional (3D) gesture based graphical user interfaces (GUI) that incorporate gesture reactive interface objects
US9798388B1 (en) 2013-07-31 2017-10-24 Aquifi, Inc. Vibrotactile system to augment 3D input systems
US9507417B2 (en) 2014-01-07 2016-11-29 Aquifi, Inc. Systems and methods for implementing head tracking based graphical user interfaces (GUI) that incorporate gesture reactive interface objects
US9619105B1 (en) 2014-01-30 2017-04-11 Aquifi, Inc. Systems and methods for gesture based interaction with viewpoint dependent user interfaces
US10394731B2 (en) 2014-12-19 2019-08-27 Amazon Technologies, Inc. System on a chip comprising reconfigurable resources for multiple compute sub-systems
US10523585B2 (en) 2014-12-19 2019-12-31 Amazon Technologies, Inc. System on a chip comprising multiple compute sub-systems
US11200192B2 (en) 2015-02-13 2021-12-14 Amazon Technologies. lac. Multi-mode system on a chip
US9588921B2 (en) * 2015-02-17 2017-03-07 Amazon Technologies, Inc. System on a chip comprising an I/O steering engine
TWI655548B (zh) * 2017-10-13 2019-04-01 技嘉科技股份有限公司 介面優先排程及解決衝突之控制電路及介面優先排程及解決衝突之操作方法
US10866900B2 (en) * 2017-10-17 2020-12-15 Samsung Electronics Co., Ltd. ISA extension for high-bandwidth memory
CN113835898B (zh) * 2017-11-29 2024-03-01 北京忆芯科技有限公司 存储器分配器
TWI719741B (zh) 2019-12-04 2021-02-21 財團法人工業技術研究院 改變冗餘處理節點的處理器及其方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761706A (en) * 1994-11-01 1998-06-02 Cray Research, Inc. Stream buffers for high-performance computer memory system
CN1384935A (zh) * 1999-11-01 2002-12-11 先进微装置公司 紧密耦合式多处理器的快速多线程执行
US7237071B2 (en) * 2001-12-20 2007-06-26 Texas Instruments Incorporated Embedded symmetric multiprocessor system with arbitration control of access to shared resources

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06243037A (ja) * 1993-02-18 1994-09-02 Mitsubishi Electric Corp データ先読み装置
US5721830A (en) * 1995-09-12 1998-02-24 Pc-Tel, Inc. Host signal processing communication system that compensates for missed execution of signal maintenance procedures
US6243836B1 (en) * 1998-08-17 2001-06-05 Lucent Technologies, Inc. Apparatus and method for circular buffering on an on-chip discontinuity trace
JP2001060169A (ja) * 1999-08-24 2001-03-06 Hitachi Ltd キャッシュコントローラ及びコンピュータシステム
US7529799B2 (en) 1999-11-08 2009-05-05 International Business Machines Corporation Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
US6977897B1 (en) * 2000-05-08 2005-12-20 Crossroads Systems, Inc. System and method for jitter compensation in data transfers
JP2002041358A (ja) 2000-07-24 2002-02-08 Sony Corp プロセッサシステム
US7177985B1 (en) * 2003-05-30 2007-02-13 Mips Technologies, Inc. Microprocessor with improved data stream prefetching
US8683132B1 (en) * 2003-09-29 2014-03-25 Nvidia Corporation Memory controller for sequentially prefetching data for a processor of a computer system
US20050144416A1 (en) * 2003-12-29 2005-06-30 Intel Corporation, A Delaware Corporation Data alignment systems and methods
JP4910576B2 (ja) * 2006-09-04 2012-04-04 富士通株式会社 動画像処理装置
US20100070730A1 (en) * 2008-09-17 2010-03-18 Sebastian Pop Minimizing memory access conflicts of process communication channels
US8140769B2 (en) * 2009-04-20 2012-03-20 Oracle America, Inc. Data prefetcher
US8762649B2 (en) * 2010-03-29 2014-06-24 Via Technologies, Inc. Bounding box prefetcher

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761706A (en) * 1994-11-01 1998-06-02 Cray Research, Inc. Stream buffers for high-performance computer memory system
CN1384935A (zh) * 1999-11-01 2002-12-11 先进微装置公司 紧密耦合式多处理器的快速多线程执行
US7237071B2 (en) * 2001-12-20 2007-06-26 Texas Instruments Incorporated Embedded symmetric multiprocessor system with arbitration control of access to shared resources

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104951424A (zh) * 2015-07-09 2015-09-30 天津瑞发科半导体技术有限公司 一种具有多处理器和共用外存储器的计算机系统
CN114817120A (zh) * 2022-06-29 2022-07-29 湖北芯擎科技有限公司 一种跨域数据共享方法、系统级芯片、电子设备及介质
CN117312330A (zh) * 2023-11-29 2023-12-29 中国人民解放军国防科技大学 基于便签式存储的向量数据聚集方法、装置及计算机设备
CN117312330B (zh) * 2023-11-29 2024-02-09 中国人民解放军国防科技大学 基于便签式存储的向量数据聚集方法、装置及计算机设备

Also Published As

Publication number Publication date
CN102375800B (zh) 2015-11-25
TW201209709A (en) 2012-03-01
US20120042150A1 (en) 2012-02-16
KR20120015261A (ko) 2012-02-21
TWI528279B (zh) 2016-04-01
US9075764B2 (en) 2015-07-07
JP5787629B2 (ja) 2015-09-30
KR101753913B1 (ko) 2017-07-04
JP2012038293A (ja) 2012-02-23

Similar Documents

Publication Publication Date Title
CN102375800A (zh) 用于机器视觉算法的多处理器片上系统
CN110741356B (zh) 多处理器系统中的中继一致存储器管理
US6895482B1 (en) Reordering and flushing commands in a computer memory subsystem
US9755994B2 (en) Mechanism for tracking age of common resource requests within a resource management subsystem
US10095526B2 (en) Technique for improving performance in multi-threaded processing units
US7613886B2 (en) Methods and apparatus for synchronizing data access to a local memory in a multi-processor system
US10210117B2 (en) Computing architecture with peripherals
US9836325B2 (en) Resource management subsystem that maintains fairness and order
US8335892B1 (en) Cache arbitration between multiple clients
JP2012038293A5 (zh)
US20130145124A1 (en) System and method for performing shaped memory access operations
US8539130B2 (en) Virtual channels for effective packet transfer
US10095548B2 (en) Mechanism for waking common resource requests within a resource management subsystem
US20120311266A1 (en) Multiprocessor and image processing system using the same
US11321248B2 (en) Multiple-requestor memory access pipeline and arbiter
US8180998B1 (en) System of lanes of processing units receiving instructions via shared memory units for data-parallel or task-parallel operations
US8667200B1 (en) Fast and highly scalable quota-based weighted arbitration
US8464001B1 (en) Cache and associated method with frame buffer managed dirty data pull and high-priority clean mechanism
US9262348B2 (en) Memory bandwidth reallocation for isochronous traffic
Kalokerinos et al. Prototyping a configurable cache/scratchpad memory with virtualized user-level RDMA capability
JP6303632B2 (ja) 演算処理装置および演算処理装置の制御方法
US20130159684A1 (en) Batched replays of divergent operations
KR20240034258A (ko) Ram으로서의 캐시 메모리의 동적 할당
NZ716954B2 (en) Computing architecture with peripherals

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: APPLE COMPUTER, INC.

Free format text: FORMER OWNER: PRIME SENSE LTD.

Effective date: 20141023

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20141023

Address after: American California

Applicant after: Apple Computer, Inc.

Address before: Tel Aviv

Applicant before: Prime Sense Ltd.

C14 Grant of patent or utility model
GR01 Patent grant