CN101006437A - 处理器存储系统 - Google Patents

处理器存储系统 Download PDF

Info

Publication number
CN101006437A
CN101006437A CNA200580027473XA CN200580027473A CN101006437A CN 101006437 A CN101006437 A CN 101006437A CN A200580027473X A CNA200580027473X A CN A200580027473XA CN 200580027473 A CN200580027473 A CN 200580027473A CN 101006437 A CN101006437 A CN 101006437A
Authority
CN
China
Prior art keywords
data processor
memory
storage
transaction
treatment element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA200580027473XA
Other languages
English (en)
Inventor
雷·麦考康纳利
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.)
Clearspeed Technologies Inc
ClearSpeed科技公司
ClearSpeed Technology PLC
Original Assignee
Clearspeed Technologies 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 Clearspeed Technologies Inc filed Critical Clearspeed Technologies Inc
Publication of CN101006437A publication Critical patent/CN101006437A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • 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
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供一种数据处理器,其包含:复数个处理元件(PE)1,其中存储器3在所述处理元件中的至少一者本地;和数据包交换网络2,其使所述处理元件与所述存储器互连以使所述PE中的任何一者能够存取所述存储器。所述网络由线性地或例如在SIMD阵列中以网格形式配置的节点2组成,以便将所述PE及其本地存储器连接到共用控制器10。可交易式PE和节点设定标识“E”或“T”,维持所述旗标直到完成交易为止,且信号状态例如通过一系列或门13到达所述控制器。所述处理器响应于由所述控制器发送到所述存储器的控制信号而对存储在所述存储器中的数据执行存储器存取。所述本地存储器共享同一存储器映射或空间。外部存储器也可连接到与所述网络介接的“端”节点,例如以便提供高速缓冲存储器。一个或一个以上另外的处理器可类似地连接到所述网络,使得来自所有所述处理器的所有所述PE存储器共享同一存储器映射或空间。所述包交换网络支持PE与存储器之间的多个同时传递。存储器存取包括区块和/或传播读取和写入操作,其中数据可在所述节点内被复制,且根据所述操作被写入到所述共享存储器中或写入到所述本地PE存储器中。

Description

处理器存储系统
技术领域
本发明涉及具有增强的内部通信和存储器配置的处理器(例如数据处理器)系统。
背景技术
单指令多数据流(SIMD)处理器的当前实施方案具有用于每一处理元件(PE)的本地存储器。此存储器通常专用于每一PE。为了共享数据,PE必须存取共同享用的存储器中的数据或使用某种PE间通信机制。具有两种不同类型的存储器使编程模型复杂化。必须将数据移动到共享存储器或在PE之间移动数据是一项性能额外开销。
本发明的目的是克服这些和其它问题。
现有技术
已知的各种类别的结构,包括具有共享存储器的SIMD结构。这些结构中的一些结构的概述可查阅http://www.top500.org/ORSC/2003/architecture.html。尤其两种类型的结构值得提及:
分布式存储器系统:在此情况下,每个PE具有其自身的关联的存储器。所述PE由某一网络连接且可在需要时在其各自的存储器之间交换数据。与共享存储机器(见下文)形成对比,用户必须知道数据在本地存储器中的位置,且在需要时将必须显式地移动或分布这些数据。我们先前的结构(和大多数SIMD结构)属于此形式。
共享存储器系统:共享存储器系统具有多个PE,所有PE共享同一地址空间。这意味着,知道数据存储在什么地方对用户来说没有意义,因为在平等的基础上,所有PE仅存取一个存储器。单CPU向量处理器也可被视为此共享存储器系统的一个实例。
以下文件描述路由ALU间网络(routed inter-ALU network),其为用于将指令分布到分布式ALU且将数据分布到寄存器堆及从寄存器堆分布数据的互连:
Efficient Interconnects for Clustered Microarchitectures
Joan-Manuel Parcerisa,Julio Sahuquillo,Antonio Gonzalez,Jose Duato
Routed Inter-ALU Networks for ILP Scalability and Performance
Karthikeyan Sankaralingam Vincent Ajay Singh_Stephen W.KecklerDoug Burger
Computer Architecture and Technology Laboratory,
Department of Computer Sciences.
Department of Electrical and Computer Engineering.
The University of Texas at Austin
Exploiting ILP,TLP,and DLP with the Polymorphous TRIPSArchitecture
Karthikeyan Sankaralingam,Ramadass Nagarajan,Haiming Liu;Changkyu Kim,Jaehyuk Huh,Doug Burger,Stephen W.Keckler,Charles R.Moore,
Computer Architecture and Technology Laboratory,
Department of Computer Sciences.
The University of Texas at Austin
cart@cs.utexas.edu-www.cs.utexas.edu/users/cart
此类网络经由分布式寄存器堆将若干功能单元连接在一起。功能单元与寄存器堆间的操作使用此网络来操纵由指令命令驱动的数据的源和目的地。因此,所述网络将群集ALU处理器的功能单元连接在一起,从而将功能单元连接到寄存器堆。
该方法与此处所述的方法的不同之处在于,不使用申请者的ClearConnect总线(“CCB”)网络来分布指令或将功能单元连接到寄存器堆。并且,源和目的地址由ALU驱动且不是由指令流静态地驱动。
可如下识别共享存储器SIMD的先前实施方案的某些问题,其中它们:
·需要复杂且不可缩放的交叉式(cross-bar)或多端口存储器系统;
·使用对存储器的存取的中央仲裁,增加了延迟和复杂性;
·通常限制所允许的存取的类型:例如,所有PE存取固定的偏移量。
可参考我们较早的一些专利和专利申请案,以获得关于本发明的特征的某些方面的更多背景和信息:
·英国专利2348974(load/store)、2348984(multitasking)、2348973(scoreboarding)
·英国专利申请案:0321186.9(ClearConnect)、0400893.4(multitasking)、0409815.3(unified SIMD)。
发明内容
在本发明的优选实施方案中且为了解决上述问题,本发明提供具有单个一致地址空间的共享PE存储器,所述单个一致地址空间包括PE的所有本地存储器以及全局共享存储器。
本发明简化了SIMD阵列内的处理器间通信,且还使单存储器与多存储器统一到单个地址空间中。这很大程度上为程序员简化了存储器使用,且扩展了编译器优化的潜力。它还组合了本地PE存储器的性能益处与共享存储器的使用的便利性。当PE间通信与计算混合在一程序内时,本发明还增加了SIMD处理器的操作效率。
因此,本发明提供一种数据处理器,其包含复数个处理元件、所述复数个处理元件中的至少一者本地的存储器构件,和数据包交换网络,所述数据包交换网络使所述处理元件与所述存储器构件互连,藉此使所述处理元件中的任何一者都能够存取所述存储器构件。
在本发明的优选实施方案中:
存储器构件包含与所述处理元件中的每一者的个别一者关联的本地存储器,每个本地存储器对应一个处理元件。。
每个处理元件可以是阵列处理器中的处理元件阵列中的一个处理元件。
处理器阵列可以是单指令多数据(Single Instruction multiple data,SIMD)处理器。
存储器构件可包含在复数个处理元件之间共享的单个本地存储器。
外部存储器也可连接到数据包交换网络,使得外部存储器可用于所述处理元件中的任何一者。
包交换网络优选地包含复数个节点,每个节点连接到各自的处理元件,且至少一个节点连接到所述存储器构件。
可在线性网络中连接节点,或可在阵列中连接节点以形成网格。
包交换网络优选地适合于支持所述处理元件与所述存储器构件之间的多个同时传递。
节点优选地连接到共用控制器,所述共用控制器适合于向所述处理元件发出指令且向所述存储器构件发出存储器控制信号,在此情况下,例如个别或门的另外的构件组合来自每个处理元件的状态信号且组合来自每个节点的状态信号以供传送到共用控制器。
所述包交换网络中的所述节点中的一者适合于充当所述节点中的任何一者与所述外部存储器之间的接口。
存储器构件可包含所述本地存储器的复数个实例,所有所述实例都出现在单个存储器映射或存储器空间中以便由处理元件中的任何一者存取。
外部存储器优选地也出现在所述单个存储器映射或存储器空间中以便由处理元件中的任何一者存取。
数据处理器可额外地包含至少一个另外的数据处理器,每个所述另外的数据处理器具有各自的存储器构件,且其中每个所述各自的存储器构件与所述数据处理器的所述存储器构件出现在同一存储器映射或存储器空间中。
存储器构件优选地映射到所述存储器映射或存储器空间中的邻接地址范围中,也可映射到所述存储器映射或存储器空间中的非邻接地址范围中,使得每个处理元件呈现为具有比实体上与其关联的本地存储器多的本地存储器,额外存储器由所述外部存储器中的地址提供。
优选地通过组合个别处理元件的至少一个识别号码与个别本地存储器内的地址来确定所述存储器映射或存储器空间中的每个地址。其中所述数据处理器附接到一个或一个以上另外的数据处理器,所述地址优选地还包括处理器身份号码。
优选地,所述存储器构件中的至少一部分进一步包含高速缓冲存储器,所述高速缓冲存储器也连接到数据包交换网络,使得所述高速缓冲存储器可用于所述处理元件中的任何一者。
处理器优选地适合于在完成至少一个其它指令的时间期间执行一个或一个以上指令,藉此存储器存取的可变等待时间被隐藏。
共用控制器可适合于与其它操作同时且独立于其它操作而执行存储器存取操作。
处理器可响应于由所述共用控制器发送到所述存储器构件的控制信号而对存储在所述存储器构件中的数据执行存储器存取,所述存储器存取仅相对于所述存储器构件的已经从相应节点接收交易的区块而启用。
每个处理元件可设定并维持指示处理元件参与存储器存取的标记,所述状态信号从所述标记产生且被传送到共用控制器,且当存储器存取完成时,标记被清除。
类似地,每个节点可设定并维持指示节点参与交易的标记,所述状态信号从所述标记产生且被传送到共用控制器,且当交易完成时,标记被清除。
数据处理器可发出所述控制信号以对应于系统时钟的每个循环执行所述存储器存取一次。
处理器可在循环所述存储器控制信号一次之前等待,直到每个交易包都已经到达其目标存储器为止,或可在循环所述存储器控制信号一次之前等待,直到每一交易包都已经到达其目标存储器为止。
处理器可对复数个存储器存取进行分批并同时执行所述批存储器存取。
存储器存取可以是缓冲直写式操作(posted write Operation),在所述缓冲直写式操作中处理元件不等待确认写入交易已完成。
存储器存取可以是确认式写入操作(acknowledged writeOperation),在所述确认式写入操作中响应于写入操作的完成而产生确认包并将确认包传回发出请求的处理元件。
存储器存取可以是传播读取操作,在所述传播读取操作中从可交易式处理元件起始读取交易,从存储器位置读取数据,在每个节点处复制数据并将数据输入每个处理元件中的寄存器堆中。
存储器存取可以是区块写入操作,在所述区块写入操作中每个处理元件适合于响应于由共用控制器产生含有存储器地址和计数的区块复制命令而产生写入操作序列,从而使区块中的所有写入操作都能够完成。
存储器存取可以是区块读取操作,在所述区块读取操作中每个处理元件适合于响应于由共用控制器产生含有存储器地址和计数的区块读取命令而产生读取操作序列,从而使区块中的所有读取操作都能够完成。
存储器存取可以是传播写入,在所述传播写入中从可交易式处理元件起始写入交易,在每个节点处复制数据并将数据复制到每个处理元件的本地存储器中。
附图说明
现将参照如下附图描述本发明,
图1传统的SIMD结构;
图2示意说明单独的多存储器映射和单存储器映射;
图3示意说明统一的存储器的地址映射,其展示如何从2K字符存储器(11位地址)和64个PE(6位PE号码)的实例的PE识别符和存储器地址产生共享存储器地址;
图4展示如何从PE识别符和存储器地址产生共享存储器地址;
图5说明虚拟化PE存储器的地址映射;
图6是CCB互连PE存储器的示意图;
图7说明PE间传递的操作,其在PE寄存器与存储器之间投送请求;
图8说明同时传递的操作;
图9说明使用中间端节点的本发明的实例;
图10说明结合根据本发明的存储器配置而使用的共享的加载/存储单元。
具体实施方式
概述
如优选实施的本发明连接与每个SIMD处理器元件(PE)关联的存储器元件,使得可以自然且一致的方式来存取整个系统中的所有存储器元件(包括外部存储器),同时使可用存储器带宽和处理器性能最大化。尽管连接处理器阵列中的PE的网络本质上不是新的,但本发明具有几个使其变得独特的先进特征。
双向包操纵的网络与加载存储存储器控制器的密切组合向寄存器堆处理器模型提供标准存储器,其中PE间和甚至处理器间通信的所有复杂性对程序员来说都是隐藏的。通过使用处理器的多线程能力来隐藏与这些传递的潜在较大等待时间关联的低计算效率。因此,由于向寄存器堆处理器模型提供的标准存储器的缘故,本发明使编译器更容易地优化应用。因此,减轻了程序员使用系统来显式地移动数据的职责。
本发明充分利用如硬件中可用的一样多的平行性和带宽。较大数目的并发存储器操作由于交换网络的分段且无阻塞结构而得以执行。
本发明允许扩展存储器系统,使其超出内部资源。用于操纵网络内的交易的地址也是全局存储器映射中所使用的同一地址。
由于本发明的简单性和上文所列的特征,本发明使软件应用直接获得对资源的有效使用。
这适用于任何SIMD处理器和可能任何类型的处理元件(或处理器)阵列。
细节
图1中示意说明当前SIMD处理器。所述SIMD处理器具有PE阵列,所述PE每一者具有关联的存储器。还存在控制器,其取得指令并将它们发出到PE阵列。所述控制器逻辑上再分为若干用于管理不同类型的指令的执行的单元。举例来说,阵列控制单元发出完全在PE内执行的指令,例如算术和逻辑操作、程序控制和寄存器之间的数据的移动。加载/存储(LS)单元发出用于在PE与其存储器之间移动数据的指令。输入/输出(I/O)单元发出用于将数据移入处理器和将数据从处理器移出的指令。这些单元中的每一者在PE阵列内使用不同的硬件,且因此由每个单元控制的操作可同时执行。
通常,如图1中所示,当前SIMD体系结构提供与每个PE关联的存储器。这意味着存在用于外部/共享存储器(“单”存储器)和用于每个PE存储器(“多”存储器)的单独地址空间,这由图2中的存储器映射来表示。
在当前技术发展水平下,如果需要将数据与其它PE共享或被移入到外部存储器/从外部存储器移出,那么与PE关联的本地存储器必须直接由程序员来管理。必须将数据显式地传递到与每个PE关联的存储器内的工作区位置/从与每个PE关联的存储器内的工作区位置显式地传递数据。此存储器映射为PE专有,此存储器映射对其他实体是不可见的。这增加了程序员对在这些单独空间之间移动数据进行显式管理的负担。
如图3所示,本发明通过将所有PE的存储器映射到单个地址空间作为可唯一地寻址的范围而使得能够存取其它PE的存储器。当需要在阵列内PE之间移动数据时,使用直接存储器复制操作。
在最简单的情况下,用于存取PE存储器的存储器地址是保存数据的PE的识别符号码(图4的左侧)与所述PE的存储器中的地址(图4的右侧)的结合。如图中所示,这将所有PE存储器映射到地址空间中的连续区块中。然而,此简单模型假定PE存储器大小为2的乘方。因此,编译器可容易地在PE与外部存储器之间传送数据,而无需显式地使用数据移动指令序列。所有这一切都可使用常规C语法来实施。程序员可使用这些特征,而无需知道其实际存取机制,也不需要知道它如何执行的。
可使用更复杂的存储器映射,使得PE存储器的区块不连续,或处理不是2的乘方的存储器大小。这可通过允许每个PE存取超过其实体本地存储器的范围的地址来有效地“虚拟化”PE存储器,所述存取将转向全局存储器,但到达被视为似乎专用于所述PE的区域,如图5中所示。从PE的观点来看,唯一的差异在于对对应于PE本地的存储器的地址的存取将更快。
可使用其它地址映射。举例来说,在向量处理中,交错来自每个PE的存储器的字可能是有用的。如果存在N个PE,每一者具有关联的存储器,那么存储器映射中的最初的N个字将对应于来自各个PE中的每一者的第一个字,其次的N个字将对应于来自每个PE的第二个字,等等。此概念的变化可用于DSP或图像处理应用中,尤其在映射可动态地变化,例如对于FFT产生“蝶式”地址时是可用的。
实施方案
如图6中所表示的本发明的优选实施方案使用双向ClearConnect“总线”(CCB)。然而,并非简单地是字面意义上的“总线”,所述总线实际上是数据包交换互连网络。可参考我们的英国专利申请案0321186.9(英国专利第2348974号)来获得ClearConnect总线的更多细节。节点2沿“总线”而间隔排列,使得每一PE1可连接到其相应的存储器区块3,且连接到每一其它存储器区块(不管另一PE的存储器区块或另一存储器是否算在一起)。CCB的端部处的节点4连接到外部接口或另一CCB网络,其总体结构如图6所示。
使ClearConnect总线尤其适合于此应用的ClearConnect总线的特征为:
·其对任何数目的节点来说都是模块化且可缩放的
·所有地址解码、路由、仲裁和控制都在每个节点处分布、在本地且独立地被执行
·模块化结构允许每个总线段上发生多个同时传递。
·另外,在每个节点内,穿过所述节点的每个路线都可支持同时传递。
·总线是无阻塞的;可在每个节点处包括缓冲以确保其始终准备好接受数据。
·存在得到保证的递送:一旦数据包已经发送,发送者就可肯定所述数据包将(最终)到达目的地。
由于CCB的模块化性质及其对多个独立同时交易支持,所以毫无争议地所有PE仍然可存取其自身的存储器。然而,尽管等待时间较长,该体系结构能使每一PE1都能够存取每一其它PE的存储器3。如图7所示,存储器存取被路由到/从适当的PE的适当位置和发出请求的PE单元的寄存器堆5。寄存器地址字段用于指定结果数据的目的地,且PE识别符字段用于将结果路由回发出请求的PE。在图7中的6处一起指示所述两个字段。类似地,PE识别符字段用于将交易路由到目标存储器,且存储器存取字段用于指定根据情况将要读取/写入的位置。图7中的8处总体展示这一情况。PE之间的代表性交易由经由三个节点2连接左上PE与右下存储器的虚线指示,如图7所示。
使用ClearConnect总线的另一益处在于,PE存储器与寄存器堆之间的带宽由于总线的高度同时性的缘故而最大化,如图8所示。在图8中,出于说明性目的而使用多种不同虚线/点划线来展示PE与PE存储器之间的多种示范性交易。
数据在写入到存储器3之前,在ClearConnect节点2中被缓冲。此处的充分缓冲确保总线在多个交易寻址到单个存储器时不会停止。此缓冲也可用于使每一节点处的存储器传递同步;这允许存储器传递占用单个循环周期,而不用占用多个循环周期,因为每个节点都执行其自身的写入。接着,存储器传递可周期挪用;即在存储器原本闲置时发生。当数据被传回PE寄存器时,可完成这项任务。为了简单起见,下文的描述中省略了此细节。
作为以链的形式级联的节点的替代形式,所述节点可以网格的形式配置。实体配置对处理器来说是不重要的,只要节点仍可以刚才对于级联配置所描述的方式操作。
由于向存储器的远程区块进行的传递的等待时间较长,所以提供经修改的加载/存储单元(共享的加载-存储(SLS)单元),其与其它PE操作同时且独立于其它PE操作而处理这些任务。这还允许PE执行过程继续,同时这些存储器操作在进行中,其中SLS单元为对PE存储器的存取进行仲裁。注意,此处的机制可代替用于每个PE到其本地存储器的现存加载/存储机制,或可加上现存加载/存储机制而使用;后一情况允许同时使用两个加载/存储机制。
处理器可在PE间和其它非本地传递发生时执行来自其它线程的指令。在多任务实施方案中,切换到新的线程,持续传递的持续时间,可能不是有效的。然而,编译器可对传递进行排定,使得存在在传递发生时可从同一线程执行的其它指令。在SMT实施方案中,在传递发生时可运行来自任何可用线程的指令。
在PE与存储器区块之间不需要存在一对一映射。如图9所示,可存在由多个PE(在此情况下为两个PE)共享的一个存储器区块。这可能是合乎需要的,因为一个大存储器区块比多个小区块在面积方面更有效。然而,多个小区块可提供较快存取。本发明提供的灵活性允许面积与性能的最佳折衷。
所谓的“端节点”(例如图9中的节点9)可放置在阵列内允许存取等待时间优化的任何地方。端节点用于介接到外部存储器或另一类似处理器。通过具有两个或两个以上此类端节点,可连接多个处理器以创建多处理器系统。接着,可由任何PE使用通常寻址方案来存取系统中的所有存储器,不管是PE存储器还是外部存储器。在多处理器系统中,将通过组合目标存储器中的物理位置、PE识别号码与处理器识别号码来形成全局存储器地址。
附接到总线的所述存储器区块中的一些存储器区块可实施为数据高速缓冲存储器。当所述高速缓冲存储器必须刷新或取得数据时,仅SLS单元将停止,其它PE操作可继续运行。此时可完成线程切换以确保阵列保持占用。
在大阵列中,可通过在节点之间添加额外连接来减少将数据从一端传递到另一端的等待时间。存在用于提供此类路由的多种已知方法,例如网格、树型或超正方体网络。
冗余CCB节点、PE和存储器的添加可用于增加产率。通过将个别地址重新分派给附近的节点并在未经修改的情况下通过有缺陷的PE的CCB节点而投送所有通信量,来跳过发生故障的PE或存储器或两者。
SLS(共享的加载/存储单元)
目前,标准加载/存储(LS)单元在指令序列的控制下处理每个PE的存储器与寄存器堆之间数据的移动。LS单元向所有PE供应控制信号、寄存器堆地址和存储器地址。可从我们的英国专利编号为第2348974号获得我们的标准加载/存储控制器的更多细节。
共享的加载/存储(SLS)单元在负责管理共享存储器交易这一点上是类似的。图10示意说明SLS 10如何与PE 1和“总线”/CC节点2相互作用。共享的加载存储控制器10从每个PE接收“交易激活”(E)标记值为11,且从每个总线节点2接收“交易进行中”(T)标记值为12。共享的加载存储控制器10向所有PE发出控制信号(包括存储器和寄存器地址)。在一个实施方案中,共享的加载存储控制器10还将存储器控制信号发送到存储器区块3。在替代实施方案中,存储器控制信号由每个总线节点2产生。由每个存储器使用的地址(和用于写入的数据)来自总线节点。或门13的链使每个PE1和每个节点2能够将其状态传送回SLS 10。
使SLS不同于现存加载存储单元的特征是,共享交易所花费的时间取决于源PE与目的地PE之间的距离。这是可变且可能未知的值。其也可能对于每一PE来说是不同的。因此,不能预先知道共享的加载或存储交易完成所花费的时间。
数据包可在每次循环时到达存储器中的每一者,因此一个可能的实施方案是SLS单元发送控制信号以在每次循环时执行存储器存取(读取或写入)。仅那些已经从相应的CC节点接收交易的存储器将实际上执行存储器交易。此方法的优势是简单;缺点是存储器写入操作将需要在多个循环内展开,从而可能干扰存取存储器的其它单元。更有效的方法是SLS等待所有交易包都到达其目标存储器且接着对存储器控制信号进行一次循环操作。或者,可使用两种方法的组合,其中一定数目的存储器存取被“分批”并同时执行。
SLS必须接收关于PE和总线节点的全局状态的信息,以确定交易是否发生或是否存在待解决交易未解决。当参与交易的所有PE都已经被满足时,SLS可终止共享的加载/存储交易。这基于每一PE上的“交易激活”标记和CCB活动标记。此全局状态通过任意配置的逻辑网络被收集;可能通过总线结构本身或单独网络被反馈,所述单独网络对状态信号进行或操作使其在一起。每个PE都可设定本地交易激活标记以指示其是否希望参与共享存储器交易。
SLS单元必须以与标准LS单元相同的方式与阵列控制器内的其它控制机制(例如寄存器互锁、其它加载/存储单元和标识机制)相互作用。SLS和LS单元可能同时进行操作,从而以逐个循环的方式对公共资源的存取进行仲裁。
为了控制交易,SLS连续地对全局寄存器堆和存储器控制信号进行排序,直到所有交易都已完成为止。
通常,SLS单元提供用于交易处理的寄存器堆地址,在每个PE本地产生存储器地址。对于一些传递来说,PE可能优选在本地产生寄存器地址,或存储器地址可能优选由SLS单元提供。
存储器地址可由PE使用标准寻址模式中的任何一者来供应。这些地址可隐式地对另一PE进行寻址(基于上文所述的地址映射)。或者,程序员可能希望显式地参考PE号码,在此情况下,识别符与存储器地址在本地组合以形成共享存储器地址。SLS也可能提供基址或偏移量,所述基址或偏移量被添加到由PE提供的存储器地址。所产生的共享存储器地址与数据一起越过CCB而传输,且用于操纵沿CCB到达目的地PE的交易。在目的地PE处,存储器地址字段被提取且用于控制向存储器读取或写入数据。
特定操作
在此部分中,现将描述一些特定操作。
共享写入
共享写入可使用“缓冲直写式”或非缓冲直写式(确认式)操作。缓冲直写式意味着PE不等待确认写入交易已经完成:一旦写入交易已经离开PE的交易缓冲器,则只有CCB上的活动指示其进程。一旦CCB上的所有活动都停止,则所有的写入已经完成。
将详细描述缓冲直写式。为了起始写入操作,SLS单元将寄存器堆地址传播到所有的PE。仅可交易式PE将参与写入操作。接着,SLS单元传递将待写入地址和数据从每个可交易式PE传递到CCB接口上。当CCB“交易进行中”信号被激活时,禁止PE进行进一步交易。CCB使用地址的识别符字段来操纵含有到达目的地PE的地址和数据的包。根据数据必须越过CCB而行进的距离,这可能占用可变数目的循环。CCB自发地操作,沿PE阵列向上或向下投送交易。所有PE可能同时激活交易,从而充分开发CCB的同时传递能力。
当数据到达其目的地时,使用从包中提取的存储器地址将所述数据写入到PE存储器。在每个循环时,包可到达目的地PE存储器,因此SLS单元连续地对SRAM控制进行排序,直到CCB上的所有活动都停止为止。SLS单元接着用信号通知指令/线程排序器单元写入完成。如果发生对单个PE存储器的多次写入,那么不保证次序得到保存,而是排序将仍然进行直到完成为止。
确认式写入
当写入需要被确认时,操作类似于下文所述的读取;当发送写入数据时,PE不关闭其“交易激活”标记。源PE识别符包括在交易包中,使得可将结果传回。当将数据写入到存储器中时,产生响应包(以与读取响应相同的方式,但其不含有数据)。一旦PE接收到结果包,其关闭交易激活标记。
如同共享读取交易一样,处理器可在等待写入被确认时执行来自另一线程的指令。
区块写入
PE可能使用由SLS发出的“区块复制”命令来产生共享写入序列。这提供寄存器和存储器基址及计数。随后的操作对连续的寄存器堆和连续的存储器地址进行排序以实施区块操作。每个PE在交易被发出时对交易进行计数,且一旦已经发送了所请求的数目,那么就清除交易激活标记。SLS进行排序,直到区块中所有PE进行的所有写入都完成为止。
传播写入
也可能使用共享写入机制将数据从PE写入到所有存储器。从所有参与的经启用的PE产生特殊的“传播”多共享写入交易。每个PE可将不同数据传播到不同的存储器地址。CCB检测此模式,且在每个CCB节点处,其复制所述交易,从而将包复制到本地附接的存储器,并将所述包转发到下一节点。到达CCB的端部的任何交易都被抛弃,或在附接有另一处理器时可继续前进。
在操作期间,SLS等待直到所有的CCB活动都停止为止,以确定传播已经完成。如果所有的PE都被启用,即所有的PE都正对所有存储器进行写入,那么可产生相当大数目的交易。
共享读取
共享读取具有两个阶段的分离的交易操作。读取交易阶段产生前往存储器的请求。一旦读取交易到达,就通过使用内嵌于所述请求中的返回地址而将读取交易反射回其来源。因此,共享读取操作比共享写入交易花费更长时间。
为了起始读取操作,SLS单元将寄存器堆地址传播到所有的PE。仅可交易式PE将参与活动的任一部分。接着,SLS单元将共享存储器地址、发出请求的PE的识别符和目的地寄存器地址从每个可交易式PE传递到CCB接口上。激活CCB“交易进行中”信号。PE的识别符和寄存器地址存储在总线上的包中以便被用作读取数据的返回地址。
CCB通过使用共享存储器地址中的目的地PE识别符来使所述包转向目的地PE。视数据必须沿CCB而行进的距离而定,这可能占用可变数目的循环。CCB自发地操作,沿PE阵列向上或向下投送交易。所有PE可能都可激活交易,从而充分开发CCB的同时传递能力。
当包到达目的地PE时,使用从包中提取的存储器地址从存储器中读取数据。将数据、返回PE识别符和寄存器地址加载到CCB包中。产生返回CCB交易,且使数据转向回其来源。当包回到发源的PE时,使用在包中编码的寄存器地址将数据写入到PE寄存器堆。接着,禁止所述PE进行进一步交易。
SLS单元继续对SRAM和寄存器写入控制信号进行排序,直到CCB上的所有活动都停止且所有交易激活标记都关闭为止。SLS单元接着用信号通知排序器单元读取完成。
如果发生从单个PE存储器进行多次读取,那么不保证所述次序,而是排序将仍然进行直到完成为止。
传播读取
如同传播写入一样,单个读取操作可将数据传回所有PE中的相同寄存器。在此情况下,每个CCB节点复制从存储器存取传回的数据,因此所述数据被复制到每一PE。
区块读取
PE可能从由SLS给出的区块读取命令中产生一系列共享读取。SLS区块命令将提供寄存器堆和存储器基址以及计数。随后的操作对连续的寄存器堆和连续的存储器地址进行排序以实施区块操作。PE进行排序,直到所有的交易都完成为止。
外部交易
可扩展相同基础机制以允许存取外部存储器或在不同处理器中的PE阵列之间进行存取。外部装置经由总线的端节点(CCBEN)经由合适的接口而连接。在阵列中的任何PE的范围外的地址将最终到达端节点。这些存取可针对同一芯片上的存储器/处理器或针对芯片外装置。
外部写入
如上文所述,共享写入可为记入式。这意味着如果共享写入中的任一者被寻址使得其转向CCBEN,那么所述交易从总线处有效地消失,且SLS可认为写入交易完成。一旦写入交易已经离开处理器,就不需要关于其活动的任何进一步反馈。
然而,可能需要等待写入的确认,以便使分离的处理器同步或确保数据完整性。确认式写入具有两个阶段的分离的交易操作,即写入交易和确认交易。写入交易阶段产生写入请求,使用数据的地址字段将所述写入请求转向其目的地。一旦写入交易到达其目的地,接收器就产生确认交易包,使用内嵌于所述请求中的返回地址字段将其发送回其来源(在此情况下为作为发送方的CCBEN)。
CCBEN通过在交易离开和返回时对交易进行计数来对已经以此方式转换的所有交易进行记录。一旦已经接收到所有的确认,就为SLS产生指示所有的确认式写入交易都已经完成的信号。此过程中不涉及个别PE。
处理器可在等待所有写入被确认时执行来自其它线程的指令。
外部读取
共享读取具有两个阶段的分离的交易操作。
如果共享读取经由CCBEN寻址到外部装置,那么SLS单元使活动继续,如同正常共享读取操作已经发生那样,只是已经在外部发送的交易可能比本地共享读取占用更多循环来完成。因此,即使不存在更多的CCB活动,许多的交易激活标记也不可能已经停用。SLS单元可使用此状态来向阵列控制器指示现在可发生线程切换。
在以后的某一时间,CCBEN上将出现一个或一个以上返回交易。用信号向阵列控制器通知此情况,以指示线程切换可能是必要的,且恢复所有PE的状态。一旦线程状态恢复,SLS单元就可重新启动且可允许交易进行。现在,操作作为正常共享读取而继续。
传入的交易
当交易从外部来源(通常另一PE阵列)到达CCBEN时,用信号通知SLS交易已经开始。SLS将产生必要的控制信号以对由所述交易寻址的PE存储器进行读取或写入。将如上所述产生读取数据返回交易,唯一的差异是其目的地将在此阵列外。一旦总线上的所有活动都停止,SLS就将停止(不存在可交易式PE)。
如果外部交易在本地共享存储器存取发生时到达,那么传入的交易可能停止,直到本地交易已经完成为止。同一机制允许任何外部装置(例如,主机/调试处理器)存取PE存储器。
总结
虽然上文的描述已经陈述了本发明的主要特征,且权利要求书详细说明了本发明的实质要素,但以下的优势和特征列表是可由本发明以其优选形式或实施方案实现的关键特征的有用概括。
·MTAP的多线程性质隐藏了共享的加载/存储的等待时间。
·PE存储器的全局化和统一的寻址简化了编程模型。
·对程序员来说,对所有存储器类型的存取是完全连续的。因此,针对大批芯片上RAM的透明高带宽交易是可行的。
·编译器可得到关于各种地址范围和传递类型的等待时间的信息;这将允许编译器(使用标准,已知技术)对数据移动进行排定和优化。
·PE存储器可被“虚拟化”,即它们可呈现为具有比每个PE上实体上存在的存储器更多的存储器。
·处理器透明地支持不同处理器中的PE阵列之间的存取。
·到达/来自不同PE和存储器的传输可在总线上(在不同节点处)同时发生,从而使存储器交易带宽自动最大化。
·允许多个对一个(many-to-one)和一个对多个(one-to-many)交易(例如广播)。
·交易自然地在CCB上排队。
·提供同时共享的加载/存储、“正常”多加载/存储和ALU操作。
·共享交易可能比多交易占用更多循环,且因此编译器可预先对共享交易进行排定以使活动交迭。
·允许更有效地分割存储器区块和对PE进行分配。
·通过添加由改变CCB节点寻址而映射到其中的冗余PE来修补有缺陷的部分。
·存储器可提供高速缓存。

Claims (43)

1.一种数据处理器,其包含多线程控制器;复数个处理元件;存储器构件,其在所述复数个处理元件中的至少一者本地;数据包交换网络,其使所述处理元件与所述存储器构件互连,藉此使所述处理元件中的任何一者能够存取所述存储器构件;和依靠所述网络的活动来向所述控制器指示可发生线程交换的构件。
2.根据权利要求1所述的数据处理器,其中所述存储器构件包含与所述处理元件中的每一者的个别一者关联的本地存储器,每个本地存储器对应一个处理元件。
3.根据权利要求1或权利要求2所述的数据处理器,其中每个处理元件是阵列处理器中的处理元件阵列的一个处理元件。
4.根据权利要求3所述的数据处理器,其中所述处理器阵列是单指令多数据(SIMD)处理器。
5.根据权利要求1所述的数据处理器,其中所述存储器构件包含在复数个处理元件之间共享的单个本地存储器。
6.根据前述权利要求中任一权利要求所述的数据处理器,其进一步包含外部存储器,所述外部存储器也连接到所述数据包交换网络,使得所述外部存储器可用于所述处理元件中的任何一者。
7.根据前述权利要求中任一权利要求所述的数据处理器,其中所述包交换网络包含复数个节点,每个节点连接到个别处理元件,且至少一个节点连接到所述存储器构件。
8.根据权利要求7所述的数据处理器,其中所述节点以线性网络的形式连接。
9.根据权利要求7所述的数据处理器,其中所述节点以阵列的形式连接以形成网格。
10.根据前述权利要求中任一权利要求所述的数据处理器,其中所述包交换网络适合于支持所述处理元件与所述存储器构件之间的多个同时传递。
11.根据权利要求7所述的数据处理器,其中所述节点连接到所述控制器,所述控制器适合于向所述处理元件发出指令且向所述存储器构件发出存储器控制信号。
12.根据权利要求11所述的数据处理器,其进一步包含用于组合来自每个处理元件的状态信号且组合来自每个节点的状态信号以供传送到所述控制器的构件。
13.根据权利要求7所述的附属于权利要求6的数据处理器,其中所述包交换网络中的所述节点中的一者适合于充当所述节点中的任一者与所述外部存储器之间的接口。
14.根据权利要求2所述的数据处理器,其中所述本地存储器构件出现在单个存储器映射或存储器空间中以便由所述处理元件中的任一者存取。
15.根据权利要求14和权利要求6所述的数据处理器,其中所述外部存储器也出现在所述单个存储器映射或存储器空间中以便由所述处理元件中的任一者存取。
16.根据权利要求14或权利要求15所述的数据处理器,其额外地包含至少一个另外的数据处理器,每个所述另外的数据处理器具有各自的存储器构件,且其中每个所述各自的存储器构件与所述数据处理器的所述存储器构件出现在同一存储器映射或存储器空间中。
17.根据权利要求14到16中任一权利要求所述的数据处理器,其中所述存储器构件映射到所述存储器映射或存储器空间中的邻接地址范围中。
18.根据权利要求14到17中任一权利要求所述的数据处理器,其中所述存储器构件映射到所述存储器映射或存储器空间中的非邻接地址范围中,使得每个处理元件呈现为具有比实体上与其关联的本地存储器更多的本地存储器,所述额外存储器由所述外部存储器中的位置提供。
19.根据权利要求14到17中任一权利要求所述的数据处理器,其中通过组合个别处理元件的至少一识别号码与个别本地存储器内的地址来确定所述存储器映射或存储器空间中的每个地址。
20.根据权利要求16和19所述的数据处理器,其中每个地址进一步由个别另外的数据处理器的识别号码来确定。
21.根据前述权利要求中任一权利要求所述的数据处理器,其中所述存储器构件的至少一部分进一步包含高速缓冲存储器,所述高速缓冲存储器也连接到所述数据包交换网络,使得所述高速缓冲存储器可用于所述处理元件中的任何一者。
22.根据任一前述权利要求所述的数据处理器,其中所述处理器适合于在执行至少一个其它指令的期间发出一个或一个以上指令,藉此指令的可变等待时间对用户来说是隐藏的。
23.根据任一前述权利要求所述的数据处理器,其中所述处理器适合于在执行至少一个加载存储指令的期间发出一个或一个以上指令,藉此交易的可变等待时间对用户来说是隐藏的。
24.根据权利要求11所述的数据处理器,其中所述控制器适合于与其它操作同时且独立于其它操作而执行存储器存取操作。
25.根据权利要求22所述的数据处理器,其中所述处理器适合于响应于由所述控制器发送到所述存储器构件的控制信号而对存储在所述存储器构件中的数据执行存储器存取,所述存取仅相对于所述存储器构件的已经从相应节点接收交易的区块而启用。
26.根据权利要求12所述的数据处理器,其中每个处理元件适合于设定并维持指示所述处理元件参与存储器存取的标记,所述状态信号从所述标记产生且被传送到所述控制器,且当所述存储器存取完成时,所述标记被清除。
27.根据权利要求12或权利要求26所述的数据处理器,其中节点适合于设定并维持指示所述节点参与交易的标记,所述状态信号从所述标记产生且被传送到所述控制器,且当所述交易完成时,所述标记被清除。
28.根据权利要求25所述的数据处理器,其中所述处理器适合于发出所述控制信号以对应于系统时钟的每个循环执行所述存储器存取一次。
29.根据权利要求25所述的数据处理器,其中所述处理器适合于在循环所述存储器控制信号一次之前,等待直到每个交易包都已经到达其目标存储器为止。
30.根据权利要求25所述的数据处理器,其中所述处理器适合于在循环所述存储器控制信号一次之前,等待直到每一交易包都已经到达其目标存储器为止。
31.根据权利要求25所述的数据处理器,其中所述处理器适合于对复数个存储器存取进行分批,且同时执行所述批存储器存取。
32.根据权利要求28到31中任一权利要求所述的数据处理器,其中所述存储器存取是缓冲直写式操作,在所述缓冲直写式操作中所述处理元件不等待确认所述写入交易已经完成。
33.根据权利要求28到31中任一权利要求所述的数据处理器,其中所述存储器存取是确认式写入操作,在所述确认式写入操作中响应于所述写入操作的完成而产生确认包,且将所述确认包传回发出请求的处理元件。
34.根据权利要求28到31中任一权利要求所述的数据处理器,其中所述存储器存取是传播读取,在所述传播读取中从可交易式处理元件起始读取交易,从存储器位置读取数据,在每个节点处复制数据并将数据输入每个处理元件中的寄存器堆中。
35.根据权利要求28到31中任一权利要求所述的数据处理器,其中所述存储器存取是区块写入,在所述区块写入中每个处理元件适合于响应于由所述控制器产生含有存储器地址和计数的区块复制命令而产生写入操作序列,从而使所述区块中的所有所述写入操作都能够完成。
36.根据权利要求28到31中任一权利要求所述的数据处理器,其中所述存储器存取是区块读取,在所述区块读取中每个处理元件适合于响应于由所述控制器产生含有存储器地址和计数的区块读取命令而产生读取操作序列,从而使所述区块中的所有所述读取操作都能够完成。
37.根据权利要求28到31中任一权利要求所述的数据处理器,其中所述存储器存取是传播写入,在所述传播写入中从可交易式处理元件起始写入交易,在每个节点处复制数据并将数据复制到每个处理元件的所述本地存储器中。
38.根据权利要求1所述的数据处理器,其中所述用于向所述控制器指示的构件包含共享的加载存储单元,所述共享的加载存储单元为所述处理元件所共用且适合于向所述控制器指示所述网络上的活动何时已经停止。
39.根据权利要求38所述的数据处理器,其进一步包含用于对离开和返回所述网络的交易的数目进行记录的记录构件。
40.根据权利要求39所述的数据处理器,其中所述记录帐构件包含所述包交换网络中的端节点,所述端节点适合于对经由所述端节点离开和返回所述网络的所述交易的数目进行记录。
41.根据权利要求40所述的数据处理器,其中所述端节点适合于将离开所述网络的交易的数目与返回所述网络的交易的数目进行比较,藉此向所述共享的加载存储单元指示离开和返回所述网络的所有交易都已经完成。
42.根据权利要求41所述的数据处理器,其中所述共享的加载存储单元响应来自所述端节点的所述指示以用信号通知所述控制器所述网络上的活动已经停止。
43.一种大体上如本文参考附图所描述的数据处理器。
CNA200580027473XA 2004-08-13 2005-08-11 处理器存储系统 Pending CN101006437A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0418177A GB2417105B (en) 2004-08-13 2004-08-13 Processor memory system
GB0418177.2 2004-08-13

Publications (1)

Publication Number Publication Date
CN101006437A true CN101006437A (zh) 2007-07-25

Family

ID=33017526

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA200580027473XA Pending CN101006437A (zh) 2004-08-13 2005-08-11 处理器存储系统

Country Status (5)

Country Link
US (3) US7890733B2 (zh)
JP (1) JP2008509493A (zh)
CN (1) CN101006437A (zh)
GB (1) GB2417105B (zh)
WO (1) WO2006015868A2 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102025634A (zh) * 2010-12-16 2011-04-20 中兴通讯股份有限公司 数据包缓存管理方法和设备
CN101630155B (zh) * 2009-08-21 2011-04-20 上海奈凯电子科技有限公司 数控机床系统中实现指令交互的方法
CN106294214A (zh) * 2012-08-17 2017-01-04 英特尔公司 通过统一存储器架构的存储器共享
CN111630487A (zh) * 2017-12-22 2020-09-04 阿里巴巴集团控股有限公司 用于神经网络处理的共享存储器的集中式-分布式混合组织
CN111630505A (zh) * 2018-01-24 2020-09-04 阿里巴巴集团控股有限公司 深度学习加速器系统及其方法
CN112639738A (zh) * 2018-07-04 2021-04-09 图核有限公司 通过网关的数据
CN114003547A (zh) * 2017-03-14 2022-02-01 珠海市芯动力科技有限公司 可重构并行处理
CN116089843A (zh) * 2023-04-10 2023-05-09 国网浙江省电力有限公司 一种基于数据聚类的新能源结算数据异常检测与预警方法

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2417105B (en) * 2004-08-13 2008-04-09 Clearspeed Technology Plc Processor memory system
CN1993709B (zh) * 2005-05-20 2010-12-15 索尼株式会社 信号处理设备
JP2008097498A (ja) * 2006-10-16 2008-04-24 Olympus Corp プロセッシング・エレメント、コントロール・ユニット、及びこれらを備える処理システム、分散処理方法
US20090300324A1 (en) * 2007-01-19 2009-12-03 Nec Corporation Array type processor and data processing system
KR100895298B1 (ko) 2007-04-30 2009-05-07 한국전자통신연구원 멀티미디어 데이터의 효율적인 병렬 처리를 위한 장치,방법, 데이터 처리 엘리먼트
US8068114B2 (en) * 2007-04-30 2011-11-29 Advanced Micro Devices, Inc. Mechanism for granting controlled access to a shared resource
JP4888556B2 (ja) * 2007-06-20 2012-02-29 富士通株式会社 ユニット間設定同期装置
FR2918190B1 (fr) * 2007-06-26 2009-09-18 Thales Sa Dispositif d'adressage pour processeur parallele.
JP4913685B2 (ja) * 2007-07-04 2012-04-11 株式会社リコー Simd型マイクロプロセッサおよびsimd型マイクロプロセッサの制御方法
EP2257874A4 (en) 2008-03-27 2013-07-17 Rocketick Technologies Ltd DESIGN SIMULATION ON THE BASIS OF PARALLEL PROCESSORS
JP5461533B2 (ja) 2008-05-30 2014-04-02 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ローカル及びグローバルのデータ共有
JP2010033555A (ja) * 2008-06-30 2010-02-12 Olympus Corp コントロール・ユニット、分散処理システム及び分散処理方法
US9032377B2 (en) * 2008-07-10 2015-05-12 Rocketick Technologies Ltd. Efficient parallel computation of dependency problems
WO2010060243A1 (en) 2008-11-28 2010-06-03 Siemens Aktiengesellschaft Automatic control system and method for executing control program in parallel
KR101553648B1 (ko) 2009-02-13 2015-09-17 삼성전자 주식회사 재구성 가능한 구조의 프로세서
JP5488609B2 (ja) * 2009-03-30 2014-05-14 日本電気株式会社 リングバスによって相互接続された複数の処理要素を有する単一命令多重データ(simd)プロセッサ
WO2010113340A1 (en) * 2009-03-30 2010-10-07 Nec Corporation Single instruction multiple data (simd) processor having a plurality of processing elements interconnected by a ring bus
US20120001905A1 (en) * 2010-06-30 2012-01-05 Ati Technologies, Ulc Seamless Integration of Multi-GPU Rendering
US20120001925A1 (en) 2010-06-30 2012-01-05 Ati Technologies, Ulc Dynamic Feedback Load Balancing
JP5829331B2 (ja) * 2011-09-27 2015-12-09 ルネサスエレクトロニクス株式会社 Simdプロセッサシステムにおいて複数の対象領域(roi)を同時並列的にデータ転送するための装置
US9448940B2 (en) * 2011-10-28 2016-09-20 The Regents Of The University Of California Multiple core computer processor with globally-accessible local memories
US9317472B2 (en) 2013-06-07 2016-04-19 International Business Machines Corporation Processing element data sharing
CN106095730B (zh) * 2016-06-23 2018-10-23 中国科学技术大学 一种基于指令级并行ilp和数据级并行dlp的fft浮点优化方法
CN106380610B (zh) * 2016-09-23 2018-08-21 江西师范大学 激光烧结成形3d打印用聚醚砜粉末耗材的制备方法
US11036438B2 (en) * 2017-05-31 2021-06-15 Fmad Engineering Kabushiki Gaisha Efficient storage architecture for high speed packet capture
US10990326B2 (en) 2017-05-31 2021-04-27 Fmad Engineering Kabushiki Gaisha High-speed replay of captured data packets
US11392317B2 (en) 2017-05-31 2022-07-19 Fmad Engineering Kabushiki Gaisha High speed data packet flow processing
US10394558B2 (en) 2017-10-06 2019-08-27 International Business Machines Corporation Executing load-store operations without address translation hardware per load-store unit port
US11175924B2 (en) 2017-10-06 2021-11-16 International Business Machines Corporation Load-store unit with partitioned reorder queues with single cam port
US10606591B2 (en) 2017-10-06 2020-03-31 International Business Machines Corporation Handling effective address synonyms in a load-store unit that operates without address translation
US10606590B2 (en) 2017-10-06 2020-03-31 International Business Machines Corporation Effective address based load store unit in out of order processors
US10417002B2 (en) 2017-10-06 2019-09-17 International Business Machines Corporation Hazard detection of out-of-order execution of load and store instructions in processors without using real addresses
US10572256B2 (en) 2017-10-06 2020-02-25 International Business Machines Corporation Handling effective address synonyms in a load-store unit that operates without address translation
US11436143B2 (en) 2017-12-22 2022-09-06 Alibaba Group Holding Limited Unified memory organization for neural network processors
US11275632B2 (en) * 2018-09-14 2022-03-15 Advanced Micro Devices, Inc. Broadcast command and response
CN113010173A (zh) 2019-12-19 2021-06-22 超威半导体(上海)有限公司 并行处理中矩阵数据广播的方法
CN113094099A (zh) 2019-12-23 2021-07-09 超威半导体(上海)有限公司 矩阵数据广播架构
US11922292B2 (en) 2020-01-27 2024-03-05 Google Llc Shared scratchpad memory with parallel load-store
US11403221B2 (en) 2020-09-24 2022-08-02 Advanced Micro Devices, Inc. Memory access response merging in a memory hierarchy
CN112967172A (zh) * 2021-02-26 2021-06-15 成都商汤科技有限公司 一种数据处理装置、方法、计算机设备及存储介质
US20220318137A1 (en) * 2021-03-30 2022-10-06 Ati Technologies Ulc Method and system for sharing memory

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5945527A (ja) * 1982-09-07 1984-03-14 Hitachi Ltd バス制御方法
JPS63168761A (ja) * 1987-01-07 1988-07-12 Fujitsu Ltd 並列処理系構成方式
GB2203574A (en) * 1987-04-03 1988-10-19 Univ Southampton Parallel processor arrays
JPH01134656A (ja) * 1987-11-20 1989-05-26 Nippon Telegr & Teleph Corp <Ntt> 主記憶分散構成をもつ情報処理装置
EP0541534A1 (en) * 1990-08-03 1993-05-19 Du Pont Pixel Systems Limited Data-array processing systems
US6088370A (en) * 1997-09-22 2000-07-11 Intel Corporation Fast 16 bit, split transaction I/O bus
JP3099290B2 (ja) * 1997-10-03 2000-10-16 啓介 進藤 マルチスレッドプログラムを使用する情報処理装置
EP1181648A1 (en) * 1999-04-09 2002-02-27 Clearspeed Technology Limited Parallel data processing apparatus
GB2391093B (en) 1999-04-09 2004-04-07 Clearspeed Technology Ltd Parallel data processing systems
GB2348984B (en) 1999-04-09 2004-05-12 Pixelfusion Ltd Parallel data processing systems
GB2348974B (en) * 1999-04-09 2004-05-12 Pixelfusion Ltd Parallel data processing systems
US6606704B1 (en) * 1999-08-31 2003-08-12 Intel Corporation Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
US6557096B1 (en) * 1999-10-25 2003-04-29 Intel Corporation Processors with data typer and aligner selectively coupling data bits of data buses to adder and multiplier functional blocks to execute instructions with flexible data types
US6925547B2 (en) * 2000-12-14 2005-08-02 Silicon Graphics, Inc. Remote address translation in a multiprocessor system
US7856543B2 (en) 2001-02-14 2010-12-21 Rambus Inc. Data processing architectures for packet handling wherein batches of data packets of unpredictable size are distributed across processing elements arranged in a SIMD array operable to process different respective packet protocols at once while executing a single common instruction stream
JP3999943B2 (ja) * 2001-03-13 2007-10-31 株式会社東芝 マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法
JP3735057B2 (ja) * 2001-10-17 2006-01-11 株式会社日立製作所 マルチノードシステム
US6922766B2 (en) * 2002-09-04 2005-07-26 Cray Inc. Remote translation mechanism for a multi-node system
US7334102B1 (en) * 2003-05-09 2008-02-19 Advanced Micro Devices, Inc. Apparatus and method for balanced spinlock support in NUMA systems
GB0323950D0 (en) 2003-10-13 2003-11-12 Clearspeed Technology Ltd Unified simid processor
US7668165B2 (en) * 2004-03-31 2010-02-23 Intel Corporation Hardware-based multi-threading for packet processing
GB2417105B (en) * 2004-08-13 2008-04-09 Clearspeed Technology Plc Processor memory system
US20060069579A1 (en) * 2004-09-29 2006-03-30 Siemens Aktiengesellschaft Method of monitoring a facility
US7613886B2 (en) * 2005-02-08 2009-11-03 Sony Computer Entertainment Inc. Methods and apparatus for synchronizing data access to a local memory in a multi-processor system

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101630155B (zh) * 2009-08-21 2011-04-20 上海奈凯电子科技有限公司 数控机床系统中实现指令交互的方法
WO2012079423A1 (zh) * 2010-12-16 2012-06-21 中兴通讯股份有限公司 数据包缓存管理方法和设备
CN102025634B (zh) * 2010-12-16 2015-06-03 中兴通讯股份有限公司 数据包缓存管理方法和设备
CN102025634A (zh) * 2010-12-16 2011-04-20 中兴通讯股份有限公司 数据包缓存管理方法和设备
CN106294214A (zh) * 2012-08-17 2017-01-04 英特尔公司 通过统一存储器架构的存储器共享
CN114003547B (zh) * 2017-03-14 2023-12-19 珠海市芯动力科技有限公司 可重构并行处理
CN114003547A (zh) * 2017-03-14 2022-02-01 珠海市芯动力科技有限公司 可重构并行处理
CN111630487B (zh) * 2017-12-22 2023-06-20 阿里巴巴集团控股有限公司 用于神经网络处理的共享存储器的集中式-分布式混合组织
CN111630487A (zh) * 2017-12-22 2020-09-04 阿里巴巴集团控股有限公司 用于神经网络处理的共享存储器的集中式-分布式混合组织
CN111630505A (zh) * 2018-01-24 2020-09-04 阿里巴巴集团控股有限公司 深度学习加速器系统及其方法
CN112639738A (zh) * 2018-07-04 2021-04-09 图核有限公司 通过网关的数据
CN116089843A (zh) * 2023-04-10 2023-05-09 国网浙江省电力有限公司 一种基于数据聚类的新能源结算数据异常检测与预警方法
CN116089843B (zh) * 2023-04-10 2023-09-08 国网浙江省电力有限公司 一种基于数据聚类的新能源结算数据异常检测与预警方法

Also Published As

Publication number Publication date
US7890733B2 (en) 2011-02-15
JP2008509493A (ja) 2008-03-27
GB2417105A (en) 2006-02-15
GB2417105B (en) 2008-04-09
WO2006015868A2 (en) 2006-02-16
US20110107058A1 (en) 2011-05-05
US9037836B2 (en) 2015-05-19
GB0418177D0 (en) 2004-09-15
US20090164752A1 (en) 2009-06-25
US20150248353A1 (en) 2015-09-03
WO2006015868A3 (en) 2006-09-28
US9836412B2 (en) 2017-12-05

Similar Documents

Publication Publication Date Title
CN101006437A (zh) 处理器存储系统
US6363453B1 (en) Parallel processor with redundancy of processor pairs
US5197130A (en) Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5859981A (en) Method for deadlock-free message passing in MIMD systems using routers and buffers
US5664214A (en) Parallel processing computer containing a multiple instruction stream processing architecture
RU2427895C2 (ru) Оптимизированная для потоков многопроцессорная архитектура
KR20190044565A (ko) 호스트 프로세서와의 동기화
JP2001184321A (ja) 主記憶共有型並列計算機及びそれに用いるノード制御装置
CN101013415A (zh) 用于多处理器阵列的线程感知分布式软件系统
Bell Scalable, parallel computers: alternatives, issues, and challenges
EP0553158B1 (en) A scalable parallel vector computer system
CN103635875A (zh) 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段
CN103562866A (zh) 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段
JPH07311751A (ja) 共用メモリを有するマルチプロセッサ・システム
TW201923612A (zh) 平行計算
Ramanathan et al. Survey of commercial parallel machines
US5465369A (en) Network structure for parallel software processing
Baillie Comparing shared and distributed memory computers
US20230289189A1 (en) Distributed Shared Memory
Jordan Shared versus distributed memory multiprocessors
Lundstrom A decentralized control, highly concurrent multiprocesssor
CN103257943A (zh) 集中式中断控制器
CN101035055A (zh) Simd处理器中局部数据的全局共享方法及装置
Liou Design of pipelined memory systems for decoupled architectures
CN116775265A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20070725