CN1279469C - 一种处理器中处理数据的方法和处理数据的*** - Google Patents
一种处理器中处理数据的方法和处理数据的*** Download PDFInfo
- Publication number
- CN1279469C CN1279469C CNB028063430A CN02806343A CN1279469C CN 1279469 C CN1279469 C CN 1279469C CN B028063430 A CNB028063430 A CN B028063430A CN 02806343 A CN02806343 A CN 02806343A CN 1279469 C CN1279469 C CN 1279469C
- Authority
- CN
- China
- Prior art keywords
- state
- memory cell
- data
- status information
- relevant
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multi Processors (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
提供一种用于宽带网络上的高速处理的计算机体系结构和编程模型。该体系结构使用一致的模块化结构、公用计算模块和统一的软件单元。公用计算模块包括一个控制处理器、多个处理单元、处理单元从其处理程序的多个局部存储器、一个直接存储器存取控制器和一个共享的主存储器。还提供了一种用于协调处理单元从/向共享的主存储器进行数据读/写的同步***和方法。提供了硬件沙箱结构,用于确保处理单元正在处理的程序之间的数据不会被破坏。统一的软件单元包含数据和应用程序并被构造为通过任何网络处理器进行处理。
Description
技术领域
本发明涉及一种处理器中处理数据的方法和处理数据的***。
背景技术
目前的计算机网络,例如,办公室网络中使用的局域网(LAN)、以及象Internet等这样的全局网络,其中的计算机和计算设备主要是为单机计算设计的。通过计算机网络共享数据和应用程序(“应用”)不是这些计算机和计算设备的主要设计目的。这些计算机和计算设备通常被设计为可广泛使用由多个不同的生产商生产的不同种类的处理器,例如,摩托罗拉(Motorola)、英特尔(Intel)、德州仪器(Texas Instruments),索尼(Sony)以及其它一些公司。这些处理器中的每一个都具有它自己独特的指令集和指令集体系结构(ISA,instruction set architecture),即,它自已独特的汇编语言指令集和用于执行这些指令的主要计算单元和存储单元的结构。因此,程序员需要理解每个处理器的指令集和ISA,以便写出用于这些处理器的应用程序。在现今的计算机网络上的这种不同类型的计算机和计算设备的组合使得数据及应用程序的处理和共享变得复杂化。而且,同一个应用程序经常需要多个版本,以便适应这种多机种的环境。
连接到全局网络,尤其是Internet上的计算机和计算设备的种类是非常广泛的。除个人计算机(PC)和服务器外,这些计算设备还包括蜂窝式电话、移动计算机、个人数字助理(PDA)、顶置盒、数字电视以及许多其它设备。在这种分类的计算机和计算设备之间共享数据和应用程序呈现出相当大的问题。
为努力克服这些问题,使用了很多技术。其中,这些技术包括高级的接口和复杂的编程技术。这些解决方案的实现通常需要处理能力有实质性的增加。他们还经常导致在网络上处理应用程序和传输数据时所需的时间实质性地延长。
典型地,数据经由Internet从相应的应用程序独立地进行传送。该方法避免了应用程序必须和与该应用程序对应的每组数据一起发送的必要性。虽然该方法使得带宽需求达到最小,但它还是经常引起用户间的阻塞。可能在客户的计算机上得不到用于所发送数据的正确应用程序或者最新的应用程序。该方法还需要对每个应用程序编写多个版本,以用于网络上的处理器所采用的多种不同ISA和指令集。
Java模式企图解决这个问题。该模式使用服从严格安全协议的小应用程序(“applet”)。applet从服务器通过网络被发送,以便在客户计算机(“client”)上运行。为避免不得不向使用不同ISA的客户发送同一个applet的不同版本,所有的applet都在客户机的Java虚拟机上运行。Java虚拟机是一个模拟具有Java ISA和Java指令集的计算机的软件。然而,该软件运行在客户的ISA和客户的指令集上。为客户的每个不同的ISA和指令集提供一个版本的Java虚拟机。这样,每个applet就不需要有多个不同版本。每个客户仅下载适用于其独特的ISA和指令集的正确的Java虚拟机就可运行所有的Java applet。
Java处理模式为不得不为每个不同的ISA和指令集编写应用程序的不同版本的问题提供了解决方案,尽管如此,在客户计算机上仍需要一个附加的软件层。这个附加的软件层极大地降低了处理器的处理速度。这种速度的降低对于实时、多媒体应用程序尤其明显。下载的Java applet还可能含有病毒、处理故障等。这些病毒和故障会破坏客户的数据库,并造成其它损坏。虽然,Java模式中使用的安全协议试图通过实现软件“沙箱(sandbox)”来解决这个问题,“沙箱”就是客户机存储器中的一个空间,超出此空间则Java applet不能写数据,但是,这个软件驱动的安全模式在其执行过程中经常是不安全的,并且需要更多的处理。
实时、多媒体、网络应用变得越来越重要。这些网络应用极需要快的处理速度。将来,对于这类应用,每秒钟可能需要几千兆比特的数据。目前的网络体系结构,特别是Internet的体系结构,以及当前具体体现为例如Java模式的编程模式,要达到这样的处理速度相当困难。
因此,需要一种新的计算机体系结构、一种新的计算机网络体系结构和一种新的编程模式。这种新的体系结构和编程模式应该解决在各种不同网络成员之间共享数据和应用程序而无需附加计算负担的问题。这种新的计算机体系结构和编程模式还应该解决网络成员之间共享应用程序和数据时所固有的安全问题。
发明内容
本发明提供一种处理器中处理数据的方法,所述处理器包括至少一个处理单元、与所述一个处理单元相关的第一局部存储器和主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主存储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态,所述方法包括:响应来自所述一个处理单元的指令,启动从所述第一局部存储器向所述存储器单元中的一个写入第一数据;评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息;如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态,则禁止写入所述第一数据,其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述方法还包括:如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第三状态,则向所述一个存储器单元写入所述第一数据,并且此后从所述一个存储器单元自动读取所述第一数据到由存储在与所述一个存储器单元相关的附加存储器段中的状态信息所标识的局部存储器的存储单元。
本发明还提供一种处理器中处理数据的方法,所述处理器包括至少一个处理单元、与所述一个处理单元相关的第一局部存储器和主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主存储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态,所述方法包括:响应来自所述一个处理单元的指令,启动从所述一个存储器单元向所述第一局部存储器读取第一数据;评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息;如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态,则允许读取所述第一数据;如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态,则暂时禁止读取所述第一数据,其中所述第一局部存储器包括多个局部存储单元,每个所述局部存储单元包含所述第一局部存储器中与所述局部存储单元相关、专用于存储保留信息的附加存储段,所述保留信息有关所述局部存储单元的保留状态,所述保留状态包含指示所述局部存储单元为数据存储而保留的第一保留状态、和指示所述局部存储单元不为数据存储而保留的第二保留状态,并且所述方法还包括:响应来自所述一个处理单元的所述指令,将存储在与所述局部存储单元中的一个相关的附加存储段中的保留信息,从第二保留状态改变到第一保留状态,其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述方法还包括:如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态,则改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示第三状态,并且为所述一个局部存储单元的地址提供所述状态信息。
本发明还提供一种处理器中处理数据的方法,所述处理器包括至少一个处理单元、与所述一个处理单元相关的第一局部存储器和主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主存储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态,所述方法包括:响应来自所述一个处理单元的指令,启动从所述一个存储器单元向所述第一局部存储器读取第一数据;评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息;如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态,则允许读取所述第一数据;如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态,则暂时禁止读取所述第一数据,其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述方法还包括:如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第三状态,则禁止读取所述第一数据。
本发明还提供一种处理数据的***,包括:处理器,包括至少一个处理单元;第一局部存储器,与所述一个处理单元相关;主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主存储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态;用于响应来自所述一个处理单元的指令,启动从所述第一局部存储器向所述存储器单元中的一个写入第一数据的装置;用于评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息的装置;用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态的情况下,禁止写入所述第一数据的装置,其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述***还包括:用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第三状态的情况下,向所述一个存储器单元写入所述第一数据,并且此后从所述一个存储器单元自动读取所述第一数据到由存储在与所述一个存储器单元相关的附加存储器段中的状态信息所标识的局部存储器的存储单元的装置。
本发明还提供一种处理数据的***,包括:处理器,包括至少一个处理单元;第一局部存储器,与所述一个处理单元相关;主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主存储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态;用于响应来自所述一个处理单元的指令,启动从所述一个存储器单元向所述第一局部存储器读取第一数据的装置;用于评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息的装置;用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态的情况下,允许读取所述第一数据的装置;用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态的情况下,暂时禁止读取所述第一数据的装置,其中所述第一局部存储器包括多个局部存储单元,每个所述局部存储单元包含所述第一局部存储器中与所述局部存储单元相关、专用于存储保留信息的附加存储段,所述保留信息有关所述局部存储单元的保留状态,所述保留状态包含指示所述局部存储单元为数据存储而保留的第一保留状态,和指示所述局部存储单元不为数据存储而保留的第二保留状态,并且所述***还包括:用于响应来自所述一个处理单元的所述指令,将存储在与所述局部存储单元中的一个相关的附加存储段中的保留信息从第二保留状态改变到第一保留状态的装置,其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述***还包括:用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态的情况下,改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示第三状态,并且为所述一个局部存储单元的地址提供所述状态信息的装置。
本发明还提供一种处理数据的***,包括:处理器,包括至少一个处理单元;第一局部存储器,与所述一个处理单元相关;主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主存储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态;用于响应来自所述一个处理单元的指令,启动从所述一个存储器单元向所述第一局部存储器读取第一数据的装置;用于评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息的装置;用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态的情况下,允许读取所述第一数据的装置;用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态的情况下,暂时禁止读取所述第一数据的装置,其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述***还包括:用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第三状态的情况下,禁止读取所述第一数据的装置。
本发明还提供一种处理数据的***,包括:处理器,包括至少一个处理单元;第一局部存储器,与所述一个处理单元相关;主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主存储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态;存储器控制器,用于响应来自所述一个处理单元的指令,启动从所述第一局部存储器向所述存储器单元中的一个写入第一数据,评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息,并且在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态的情况下,禁止写入所述第一数据,其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述存储器控制器还用于,在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第三状态的情况下,向所述一个存储器单元写入所述第一数据,并且此后从所述一个存储器单元自动读取所述第一数据到由存储在与所述一个存储器单元相关的附加存储器段中的状态信息所标识的局部存储器的存储单元。
本发明还提供一种处理数据的***,包括:处理器,包括至少一个处理单元;第一局部存储器,与所述一个处理单元相关;主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主存储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态;存储器控制器,用于响应来自所述一个处理单元的指令,启动从所述一个存储器单元向所述第一局部存储器读取第一数据,评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息,并且在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态的情况下,允许读取所述第一数据,其中所述存储器控制器还用于,在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态的情况下,暂时禁止读取所述第一数据,其中所述第一局部存储器包括多个局部存储单元,每个所述局部存储单元包含所述第一局部存储器中与所述局部存储单元相关、专用于存储保留信息的附加存储段,所述保留信息有关所述局部存储单元的保留状态,所述保留状态包含指示所述局部存储单元为数据存储而保留的第一保留状态,和指示所述局部存储单元不为数据存储而保留的第二保留状态,并且所述存储器控制器还用于,响应来自所述一个处理单元的所述指令,将存储在与所述局部存储单元中的一个相关的附加存储段中的保留信息从第二保留状态改变到第一保留状态,其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述存储器控制器还用于,在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态的情况下,改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示第三状态,并且为所述一个局部存储单元的地址提供所述状态信息。
本发明还提供一种处理数据的***,包括:处理器,包括至少一个处理单元;第一局部存储器,与所述一个处理单元相关;主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主存储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态;存储器控制器,用于响应来自所述一个处理单元的指令,启动从所述一个存储器单元向所述第一局部存储器读取第一数据,评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息,并且在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态的情况下,允许读取所述第一数据,其中所述存储器控制器还用于,在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态的情况下,暂时禁止读取所述第一数据,其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述存储器控制器还用于,在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第三状态的情况下,禁止读取所述第一数据。
本发明还提供一种处理器中处理数据的方法,所述处理器包括:多个处理单元;多个局部存储器,每个局部存储器与一个相应的处理单元相关联并具有多个存储单元;具有多个存储器单元的主存储器,由所述处理单元共享;和状态存储器,用于存储有关所述存储器单元的状态的状态信息,所述状态包括第一状态,当存储在所述存储器单元中的数据不是当前数据时,所述状态信息指示所述第一状态,针对所述第一状态,针对存储器单元的所述状态信息包括存储单元的地址,所述方法包括:响应来自所述处理单元中的一个的指令,启动向所述主存储器的所述存储器单元中的一个写入第一数据;评估存储在针对所述一个存储器单元的状态存储器中的状态信息;如果所述状态信息指示针对所述一个存储器单元的第一状态,则将所述第一数据写入所述一个存储器单元中,并且此后从所述一个存储器单元向存储单元自动读取所述第一数据,其中所述存储单元的地址包含在针对所述一个存储器单元的状态信息中。
本发明还提供一种处理数据的***,包括:多个处理单元;多个局部存储器,每个局部存储器与一个相应的处理单元相关联并具有多个存储单元;由所述处理单元共享的主存储器,具有多个存储器单元;状态存储器,用来存储有关所述存储器单元的状态的状态信息,所述状态包括第一状态,针对第一状态,针对存储器单元的所述状态信息包括存储单元的地址;用于响应来自所述处理单元中的一个的指令,启动向所述主存储器的所述存储器单元中的一个写入第一数据的装置;用来评估存储在针对所述一个存储器单元的状态存储器中的状态信息的装置;以及用于在所述状态信息指示针对所述一个存储器单元的第一状态时,将所述第一数据写入所述一个存储器单元中,然后自动从所述一个存储器单元向存储单元读取所述第一数据的装置,其中所述存储单元的地址包含在针对所述一个存储器单元的状态信息中。
本发明还提供一种处理数据的***,包括:多个处理单元;多个局部存储器,每个局部存储器与一个相应的处理单元相关联并具有多个存储单元;由所述处理单元共享的主存储器,具有多个存储器单元;状态存储器,用来存储有关所述存储器单元的状态的状态信息,所述状态包括第一状态,当存储在所述存储器单元中的数据不是当前数据时,所述状态信息指示所述第一状态,针对所述第一状态,针对存储器单元的所述状态信息包括存储单元的地址;存储器控制器,用于响应来自所述处理单元中的一个的指令,启动向所述主存储器的所述存储器单元中的一个写入第一数据,评估存储在针对所述一个存储器单元的状态存储器中的状态信息,并且在针对所述一个存储器单元的所述状态信息指示第一状态的情况下,将所述第一数据写入所述一个存储器单元,之后自动从所述一个存储器单元向存储单元读取所述第一数据,该存储单元的地址包含在针对所述一个存储器单元的状态信息中。
一方面,本发明提供一种用于计算机、计算设备和计算机网络的新的体系结构。另一方面,本发明提供一种用于这些计算机、计算设备和计算机网络的新的编程模式。
根据本发明,计算机网络的所有成员,即,网络中所有的计算机和计算设备,都用公用的计算模块构建。这种公用计算模块具有一致的结构,并且最好是使用相同的ISA。网络的成员可以是,例如,客户机、服务器、PC、移动计算机、游戏机、PDA、顶置盒、电器设备、数字电视、以及其它使用计算机处理器的设备。一致的模块化结构使能够使网络成员有效、高速地处理应用程序和数据,并使应用程序和数据在网络上快速传输。这种结构还使各种规模和处理能力的网络成员的建立、以及由这些成员处理的应用程序的准备得以简化。另外,根据本发明的一个实施例,提供了一个计算机网络,该计算机网络包含连接到所述网络的多个处理器,每个所述处理器包含具有相同指令集体系结构的多个第一处理单元,以及用于控制所述第一处理单元的第二处理单元,所述第一处理单元可用于处理经由所述网络传输的软件单元,每个所述软件单元包含与所述指令集体系结构兼容的程序、与所述程序相关的数据、以及用于在通过所述网络传输的全部所述软件单元中唯一标识所述软件单元的标识符。该标识符最好是在通过所述网络传输的全部所述软件单元中唯一标识所述软件单元的标识号。
另一方面,本发明提供了一种用于通过网络传输数据和应用程序,以及用于在网络成员之间处理数据和应用程序的新的编程模式。该编程模式采用一个通过网络传输的、由网络成员中的任何一个处理的软件单元。每个软件单元具有相同的结构,并可既包含应用程序又包含数据。由于由模块化的计算机体系结构提供高速处理和传输速度,这些单元可以被快速处理。应用程序的代码最好是依据相同的公用指令集和ISA。每个软件单元最好包含一个全局标识(global ID)和说明该单元处理所需的计算资源量的信息。由于所有的计算资源具有相同的基本结构,并使用相同的ISA,所以执行这个处理的特定资源可以位于网络上的任何地方,并且可以动态分配。
基本的处理模块是一个处理器元件(PE)。一个PE最好包括一个处理单元(PU)、一个直接存储器存取控制器(DMAC)、以及多个附属处理单元(APU)。在优选实施例中,一个PE包含八个APU。该PU和APU与最好具有交错(cross-bar)体系结构的共享动态随机存取存储器(DRAM)相互配合。PU对APU处理的数据和应用程序进行计划和编排。APU以并行和独立的方式执行这种处理。DMAC控制PU和APU对存储在共享DRAM中的数据和应用程序的存取。
根据这种模块化的结构,网络成员所使用的PE的数目根据那个成员所需要的处理能力决定。例如,一个服务器可能使用四个PE,一个工作站可能使用两个PE,而一个PDA可能使用一个PE。被分配用来处理特定软件单元的一个PE中的APU的数目取决于该单元中的程序和数据的复杂程度和量的大小。
在优选实施例中,多个PE与一个共享的DRAM有关。最好将DRAM分割成多个区(section),并将这些区中的每一个分割成多个存储体(memory bank)。在一个特别的优选实施例中,一个DRAM包含64个存储体,并且每个存储体具有一兆字节的存储容量。DRAM的每个区最好由存储体控制器控制,并且一个PE的每个DMAC最好访问每个存储体控制器。因此,该实施例中每个PE的DMAC可访问共享的DRAM中的任何部分。
另一方面,本发明提供用于APU从共享的DRAM读取数据、以及向其写入数据的同步***和方法。该***避免了共享DRAM的多个APU和多个PE之间的冲突。根据该***和方法,将DRAM中的一个区域指定为用于存储多个全空位。这些全空位中的每一个对应于该DRAM的一个指定的区域。将同步***集成到该DRAM的硬件中,因此,避免了用软件实现的数据同步方案的计算上的额外消耗。
本发明还在DRAM中实现沙箱,以提供安全性,防止正由一个APU处理的程序的数据被正由另一个APU处理的程序的数据破坏。每个沙箱定义了共享的DRAM中的一个区域,超出此区域,特定的APU或APU组不能读数据或写数据。
另一方面,本发明提供用于PU向APU发布命令、以启动APU处理应用程序和数据的***和方法。这些命令被称为APU远程过程调用(ARPC),能够使PU配合和协调APU对应用程序和数据进行并行处理,而无需APU执行协处理器的任务。
在另一方面,本发明提供用于建立专用流水线结构以处理流数据(streaming data)的***和方法。根据该***和方法,PU建立协同的APU组、以及与这些APU相关的协同的存储器沙箱组,以用于这些数据的处理。在不处理数据的期间,流水线专用的APU和存储器沙箱仍保留为流水线专用。换句话说,在这些期间中,将专用的APU及其相关的沙箱置于保留状态。
在另一方面,本发明提供用于处理任务的绝对定时器(absolutetimer)。该绝对定时器独立于处理应用程序和数据的APU所使用的时钟频率。根据绝对定时器定义的任务时间周期来写应用程序。如果是由于,例如APU增强的原因,而使APU使用的时钟频率提高了,则由绝对时钟定义的给定任务的时间周期保持不变。该方案能够增强新版本APU的处理时间,同时使这些较新的APU能够处理为较早的APU的较慢的处理时间而编写的较早的应用程序。
本发明还提供使具有较快处理速度的较新APU能够处理为较早的APU的较慢的处理速度而编写的较早的应用程序的另外一种备选方案。在该备选方案中,针对协调APU并行处理中由增强速度所产生的问题,在处理期间,对处理这些较早的应用程序的APU所使用的特殊指令或微代码进行分析。在由这些APU中的某一些执行的指令中***“不操作”(“NOOP”)指令,以使APU保持按程序预期的顺序完成处理。通过在这些指令中***这些NOOP,保持了APU执行所有指令的正确的定时。
在另一方面,本发明提供包含集成光波导的集成电路的芯片封装(chip package)。
附图说明
图1说明了本发明的计算机网络的整体体系结构。
图2说明了本发明的处理器元件(PE)的结构。
图3说明了本发明的宽带引擎(BE)的结构。
图4说明了本发明的附属处理单元(APU)的结构。
图5说明了本发明的处理器元件、观察器(VS)和光接口的结构。
图6说明了本发明的处理器元件的一种组合。
图7说明了本发明的处理器元件的另外一种组合。
图8说明了本发明的处理器元件的另外一种组合。
图9说明了本发明的处理器元件的再一种组合。
图10说明了本发明的处理器元件的再一种组合。
图11A说明了本发明的芯片封装中的光接口的集成。
图11B是使用图11A的光接口的处理器的一种结构图。
图11C是使用图11A的光接口的处理器的另外一种结构图。
图12A说明了本发明的存储器***的结构。
图12B是本发明的从第一宽带引擎向第二宽带引擎写数据的示意图。
图13是本发明的用于处理器元件的共享存储器的结构图。
图14A说明了图13中的存储器的存储体的一种结构。
图14B说明了图13中的存储器的存储体的另一种结构。
图15说明了本发明的直接存储器存取控制器的结构。
图16说明了本发明的直接存储器存取控制器的另一种结构。
图17A-17O说明了本发明的数据同步操作。
图18是根据本发明的数据同步方案的、说明存储单元的不同状态的三状态存储器图。
图19说明了本发明的、用于硬件沙箱的关键字控制表的结构。
图20说明了本发明的、用于存储硬件沙箱的存储器存取关键字的方案。
图21说明了本发明的、用于硬件沙箱的存储器存取控制表的结构。
图22是使用图19的关键字控制表和图21的存储器存取控制表访问存储器沙箱的步骤流程图。
图23说明了本发明的软件单元的结构。
图24是本发明的、向APU发出远程过程调用的步骤流程图。
图25说明了本发明的、用于处理流数据的专用流水线的结构。
图26A-26B是本发明的、图25的专用流水线在处理流数据中执行的步骤的流程图。
图27说明了本发明的、用于处理流数据的专用流水线的另外一替代结构。
图28说明了本发明的、用于协调APU对应用程序和数据的并行处理的绝对定时器的方案。
具体实施方式
图1示出了本发明的计算***101的整体体系结构。
如图中所示,***101包括网络104,其上连接了多个计算机和计算设备。网络104可以是一个LAN、象Internet这样的全局网、或者任何其它的计算机网络。
连接到网络104的计算机和计算设备(网络“成员”)包括,例如,客户计算机106、服务器计算机108、个人数字助理(PDA)110、数字电视(DTV)112、以及其它有线的或无线的计算机和计算设备。网络104的成员使用的处理器由相同的公用计算模块构建。这些处理器最好还都具有相同的ISA,并依据相同的指令集执行处理。任何一个特定的处理器中包含的模块数目取决于该处理器所需的处理能力。
例如,由于***101中的服务器108比客户106执行更多的数据和应用程序处理,所以服务器108比客户106包含的计算模块多。另一方面,PDA 110执行的处理量最少,因此PDA 110包含的计算模块最少。DTV 112执行的处理量介于客户106的和服务器108之间,因此,它包含的计算模块的数目也介于客户106和服务器108之间。如下面讨论的,每个计算模块包含一个处理控制器和多个同样的处理单元,用于对经网络104传输的数据和应用程序执行并行处理。
***101的这种一致的结构促进了适应性、处理速度和处理效率。因为***101的每个成员使用相同的计算模块中的一个或多个(或某些部分)来执行处理,所以执行数据和应用程序的实际处理的具体计算机或计算设备是不重要的。而且,特定应用程序和数据的处理可以在网络成员间共享。通过在整个***中唯一地标识包含由***101处理的数据和应用程序的单元,无论处理在哪儿进行,都可以将该处理结果传输到请求该处理的计算机或计算设备。因为执行该处理的模块具有公用的结构并使用公用的ISA,所以避免了实现处理器之间的兼容性的附加软件层的计算负担。该体系结构和编程模式促进了执行,例如,实时、多媒体应用程序所必需的处理速度。
为了进一步利用***101带来的处理速度和效率,将该***处理的数据和应用程序打包成唯一标识的、统一格式的软件单元102中。每个软件单元102既(可以)包含应用程序又(可以)包含数据。每个软件单元还包含在整个网络104和***101中全局性地标识该单元的ID。软件单元结构的这种一致性以及软件单元在整个网络中的唯一标识,有利于在网络中的任何一个计算机或计算设备上处理应用程序和数据。例如,客户机106可以形成(formulate)一个软件单元102,但是,因为客户106的处理能力有限,可以将该软件单元发送到服务器108来进行处理。因此,软件单元可在整个网络104中迁移,以便根据网络上的可利用处理资源来进行处理。
***101的处理器和软件单元的一致的结构还避免了现今的多机种网络的许多问题。例如,设法在使用任何指令集的任何ISA上处理应用程序,诸如Java虚拟机这样的虚拟机,这种低效的编程模式得以避免。因此,***101可远比现今的网络更有效地、更高效率地实现宽带处理。
用于网络104的所有成员的基本处理模块是处理器元件(PE)。图2说明了一个PE的结构。如图所示,PE 201包含一个处理单元(PU)203、一个直接存储器存取控制器(DMAC)205和多个附属处理单元(APU),即,APU 207、APU 209、APU 211、APU 213、APU215、APU 217、APU 219和APU 221。一条局部PE总线223在APU、DMAC 205和PU 203间传输数据和应用程序。局部PE总线223可具有,例如,传统体系结构,或者被实现为一个分组交换网络。当需要更多的硬件时,实现为一个分组交换网络可增加可用带宽。
可使用用于实现数字逻辑的各种方法来构建PE 201。然而,PE201最好被构成为单个集成电路,通过在硅衬底上使用互补金属氧化物半导体(CMOS)来构建。可替代的衬底材料包括砷化镓、镓铝砷、以及其它使用各种搀杂物的所谓的III-B型化合物。还可使用超导材料,例如,快速单磁通量子(RSFQ)逻辑来实现PE。
PE 201通过高带宽存储器连接227与动态随机存取存储器(DRAM)225紧密相关。DRAM 225用作PE 201的主存储器。虽然DRAM 225最好是一个动态随机存取存储器,但DRAM 225也可使用其它装置实现,例如,静态随机存取存储器(SRAM)、磁性随机存取存储器(MRAM)、光存储器或全息存储器。DMAC 205促进DRAM 225与PE 201的APU和PU之间的数据传输。如下面进一步讨论的,DMAC 205在DRAM 225中为每个APU指定一个独占的区域,只有该APU可以往里写数据和从中读数据。这个独占的区域被称为“沙箱”。
PE 203可以是一个,例如,能够独立处理数据和应用程序的标准处理器。在操作中,PU 203调度并编排APU对数据和应用程序的处理。APU最好是单指令多数据(SIMD)处理器。在PU 203的控制下,这些APU以并行和独立的方式执行这些数据和应用程序的处理。DMAC 205控制PU 203和APU对存储在共享DRAM 225中的数据和应用程序的存取。虽然PE 201最好包括八个APU,但也可根据所需的处理能力在PE中使用更多或更少数目的APU。并且,可将许多的像PE 201这样的PE连接或封装在一起以提供增强的处理能力。
例如,如图3所示,可在,例如,一个或多个芯片封装中,将四个PE封装或连接在一起,以便形成用于网络104的成员的单一的处理器。这种结构被称为宽带引擎(BE)。如图3所示,BE 301包含四个PE,即,PE 303、PE 305、PE 307和PE 309。通过BE总线311进行这些PE之间的通信。宽带宽存储器连接313提供共享DRAM 315与这些PE之间的通信。作为BE总线311的替代,可通过DRAM 315和这个存储器连接器进行BE 301的PE之间的通信。
输入/输出(I/O)接口317和外部总线319提供宽带引擎301和网络104的其它成员之间的通信。与一个PE的APU执行应用程序和数据的处理相类似,BE 301的每个PE以并行和独立的方式执行数据和应用程序的处理。
图4说明了APU的结构。APU 402包括局部存储器406、寄存器410、四个浮点单元412和四个整数单元414。然而,同样,根据所需要的处理能力,可以使用更多或更少数目的浮点单元412和整数单元414。在优选实施例中,局部存储器406包含128千字节的存储量,并且,寄存器410的容量是128×128位。浮点单元412最好以每秒钟320亿次(32GFLOPS)浮点运算的速度工作,整数单元414最好以每秒钟320(32GOPS)亿次运算的速度工作。
局部存储器402不是高速缓冲存储器。局部存储器402最好是一个SRAM。支持APU的超高速缓存相关性是没有必要的。PU可能需要超高速缓存相关性支持,用于由PU启动的直接存储器存取。然而,对于由APU启动的直接存储器存取或从/到外部设备的存取,则不需要超高速缓存相关性支持。
APU 402还包总线404,用于向/从APU传送应用程序和数据。在优选实施例中,该总线的宽度是1024位。APU 402还包括内部总线408、420和418。在优选实施例中,总线408的宽度是256位,提供局部存储器406与寄存器410之间的通信。总线420和418分别提供寄存器410和浮点单元412、寄存器410和整数单元414之间的通信。在优选实施例中,从寄存器410到浮点单元或整数单元的总线418和420的宽度是384位,从浮点或整数单元到寄存器410的总线418和420的宽度是128位。这些总线中,从寄存器410到浮点或整数单元比从这些单元到寄存器410的总线宽度大,这样可适应处理期间来自寄存器410的较大的数据流。每次计算需要三个字的最大值。然而,每次计算的结果通常只是一个字。
图5-10进一步说明了网络104的成员的处理器的模块化结构。例如,如图5所示,处理器可以仅包含一个PE 502。如上所述,该PE典型地包含一个PU、一个DMAC和八个APU。每个APU包括局部存储器(LS)。另一方面,处理器可包含可观察器(VS)505的结构。如图5所示,VS 505包含PU 512、DMAC 514和四个APU,即,APU 516、APU 518、APU 520和APU 522。通常,在芯片封装内由一个PE的其它四个APU占有的空间,在这种情况下被象素引擎508、图象高速缓存510、以及阴极射线管控制器(CRTC)504占用。根据PE 502或VS 505所需要的通信速度,光接口506也可被包括在该芯片封装内。
使用这种标准的、模块化的结构,可以很容易地、有效地构建处理器的许多其他变种。例如,图6所示的处理器包含两个芯片封装,即,包含一个BE的芯片封装602和包含四个VS的芯片封装604。输入/输出(I/O)606提供芯片封装602的BE与网络104之间的接口。总线608提供芯片封装602与芯片封装604之间的通信。输入输出处理器(IOP)610控制流入和流出I/O 606的数据流。I/O 606可以制造成应用程序专用集成电路(ASIC)。从VS输出的是视频信号612。
图7说明了用于带有两个光接口704和706的BE 702的芯片封装,其光接口用于提供与网络104的其它成员(或本地连接的其它芯片封装)的超高速通信。BE 702可用作,例如,网络104上的一个服务器。
图8的芯片封装包含两个PE 802和804、两个VS 806和808。I/O 810提供芯片封装与网络104间的接口。从芯片封装输出的是视频信号。这种结构可用作,例如,一个图形工作站。
图9说明了另外一种结构。该结构包含图8中说明的结构的处理能力的一半。不是两个PE,而是提供一个PE 902,不是两个VS,而是提供一个VS 904。I/O 906的带宽是图8中说明的I/O带宽的一半。然而,这样的处理器也可用作一个图形工作站。
最后一种结构示于图10。该处理器仅由一个单一的VS 1002和一个I/O 1004组成。这种结构可用作,例如,一个PDA。
图11A说明了将光接口集成到网络104的处理器的芯片封装上。这些光接口将光信号转换成电信号,并将电信号转换成光信号,它们可以用多种材料构成,包括,例如,砷化镓、镓铝砷、锗以及其它元素或化合物。如图中所示,光接口1104和1106被做在BE 1102的芯片封装上。BE总线1108提供BE 1102的多个PE,即,PE1110、PE 1112、PE 1114、PE 1116与这些光接口之间的通信。光接口1104包括两个端口,即端口1118和端口1120,并且光接口1106也包括两个端口,即端口1122和端口1124。端口1118、1120、1122和1124分别连接到光波导1126、1128、1130和1132。通过光接口1104和1106的端口、经这些光波导向或从BE 1102传送光信号。
使用每个BE的这种光波导和四个光端口,可将多个BE按各种结构连接在一起。例如,如图11B所示,通过这些光端口可将两个或多个BE,例如,BE 1152、BE 1154和BE 1156,串接在一起。在该例中,BE 1152的光接口1166通过其光端口连接到BE 1154的光接口1160的光端口。以类似的方式,BE 1154上光接口1162的光端口连接到BE 1156上的光接口的光端口。
图11C说明了一种矩阵结构。在该结构中,每个BE的光接口连接到另外两个BE上。如图中所示,BE 1172的光接口1188的光端口之一连接到BE 1176的光接口1182的一个光端口。光接口1188的另一个光端口连接到BE 1178的光接口1184的一个光端口。以类似的方式,BE 1174的光接口1190的光端口之一连接到BE 1178的光接口1184的另一个光端口。光接口1190的另一个光端口连接到BE1180的光接口1186的一个光端口。这种矩阵结构可按类似的方式向其它BE扩展。
使用串联结构或矩阵结构,可构建任何所需大小和能力的用于网络104的处理器。当然,可以向BE的光接口,或者向具有的PE数目比一个BE多或少的处理器增加附加端口,以形成其它的结构。
图12A说明了用于一个BE的DRAM的控制***和结构。类似的控制***和结构在具有其它大小和包含更多或更少PE的处理器中被采用。如图中所示,交错开关(cross-bar switch)将构成BE 1201的四个PE的每个DMAC 1210连接到八个存储体控制器1206。每个存储体控制器1206控制DRAM 1204的八个存储体1208(图中只画出了四个)。因此,DRAM 1204总共包含64个存储体。在优选实施例中,DRAM 1204具有64兆字节的容量,并且每个存储体具有1兆字节的容量。在该优选实施例中,每个存储体中最小的可寻址单位是1024位大小的块。
BE 1201还包括开关单元1212。开关单元1212能够使BE上的其它的APU紧密地耦合到BE 1201,以便访问DRAM 1204。因此,第二BE可以紧密地耦合到第一BE上,并且每个BE的每个APU可以寻址的存储单元的数量是通常可由一个APU访问的存储单元的数量的两倍。通过开关单元,例如开关单元1212,可以从第一BE的DRAM到第二BE的DRAM,或从第二BE的DRAM到第一BE的DRAM直接读或写数据。
例如,如图12B所示,为完成这种写操作,第一BE的APU,例如,BE 1222的APU 1220,向第二BE的DRAM的存储单元,例如,BE 1226的DRAM 1228(而不是象通常的情况那样向BE 1222的DRAM 1224),发出写命令。BE 1222的DMAC 1230通过交错开关1221向存储体控制器1234发送该写命令,并且存储体控制器1234向连接到存储体1234的外部端口1232发送该命令。BE 1226的DMAC 1238接收该写命令,并将该命令传送到BE 1226的开关单元1240。开关单元1240识别包含在写命令中的DRAM地址,并通过BE 1226的存储体控制器1242向DRAM 1228的存储体1244发送存储在该地址中的数据。因此,开关单元1240能够使DRAM 1224和DRAM 1228两者都充当用于BE 1222的APU的单独存储空间。
图13说明了一个DRAM的64个存储体的配置。这些存储体排列成八行,即,行1302、1304、1306、1308、1310、1312、1314和1316,以及八列,即,列1320、1322、1324、1326、1328、1330、1332和1334。每行由一个存储体控制器控制。因此,每个存储体控制器控制存储器的八兆字节。
图14A和14B说明了用于存储和访问DRAM的最小可寻址存储单位,例如,大小为1024位的块,的不同结构。在图14A中,DMAC 1402在单个存储体1404中存储八个1024位的块1406。另一方面,在图14B中,当DMAC 1412读和写包含1024位的数据块时,这些块在两个存储体,即,存储体1414和存储体1416之间交错。因此,这些存储体中的每一个包含16个数据块,并且每个数据块包含512位。这种交错可有利于更快速地访问DRAM,并且在某些应用程序的处理中是非常有用的。
图15说明了用于PE中的DMAC 1506的体系结构。如图中所示,构成DMAC 1506的结构硬件在整个PE中分布,以致于每个APU 1502都具有对DMAC 1506的结构节点1504的直接存取。每个节点执行适合于由该节点能够直接存取的APU进行存储器访问的逻辑。
图16示出DMAC的一个替代实施例,即,非分布型体系结构。在这种情况下,DMAC 1606的结构硬件是集中式的。APU 1602和PU 1604通过局部PE总线1607与DMAC 1606通信。DMAC1606通过交错开关连接到总线1608。总线1608连接到DRAM1610。
如上所述,PE的所有多个APU可独立访问共享DRAM中的数据。结果,在某一时刻,可能第一APU正在对其局部存储器中的特定数据进行操作,而此时第二APU请求这些数据。如果在上述的时刻,将数据从共享DRAM提供到第二APU,则数据可能是无效的,这是因为第一APU正在进行的处理可能改变数据的值。因此,如果在上述时刻第二处理器接收到来自共享DRAM的数据,则第二处理器可能会产生错误的结果。例如,数据可能是用于全局变量的特殊值。如果第一处理器在其处理过程中改变了该值,则第二处理器会接收到一个过时的值。因此,必须有一种方案来同步APU从/向共享DRAM中的存储单元读/写数据。该方案必须防止从另一APU目前正在其局部存储器中进行操作的存储单元中读数据,以及防止向存储当前数据的存储单元写数据,这不一定是当前正在操作的。
为了解决这些问题,对DRAM的每个可寻址的存储单元,在DRAM中分配一个附加的存储段,以用于存储与存储在该存储单元中的数据相关的状态信息。这种状态信息包括一个满/空(F/E)位、请求从存储单元读数据的APU的标识(APU ID)、以及要读入请求数据的APU局部存储器的地址(LS地址)。DRAM的可寻址存储单元可以是任何大小。在优选实施例中,该大小是1024位。
将F/E位设成1表示存储在相关存储单元中的数据是当前的。相反,将F/E位设成0表示存储在相关存储单元中的数据不是当前的。如果APU请求数据时该位被设成0时,则禁止APU立即读取数据。这样,将标识请求数据的APU的APU ID、标识在数据变为当前数据时要读入数据的这个APU的局部存储器中的存储单元的LS地址,记入到附加存储段中。
对于APU的局部存储器中的每个存储单元,也分配一个附加的存储段。该附加存储段存储一个位,称为“忙碌位(busy bit)”。该忙碌位用于保留相关的LS存储单元,用于存储从DRAM取回的特定数据。如果将用于局部存储器中一个特定存储单元的忙碌位设成1,则APU只能将该存储单元用于写这些特定数据。反之,如果用于局部存储器中一个特定存储单元的忙碌位被设成0,则APU可将该存储单元用于写任何数据。
图17A-17O是说明使用F/E位、APU ID、LS地址以及忙碌位来同步从和向一个PE的共享DRAM读和写数据的方式的几个例子。
如图17A所示,一个或多个PE,例如,PE 1720,与DRAM1702相配合。PE 1720包括APU 1722和APU 1740。APU 1722包括控制逻辑1724,而APU 1740包括控制逻辑1742。APU 1722还包括局部存储器1726。该局部存储器包括多个可寻址存储单元1728。APU 1740包括局部存储器1744,该局部存储器还包括多个可寻址存储单元1746。所有这些可寻址存储单元的大小最好都是1024位。
附加的存储段与每个LS可寻址存储单元相关。例如,存储段1729和1734分别与局部存储单元1731和1732相关,并且,存储段1752与局部存储单元1750相关。如上所述,“忙碌位”存储在这些附加存储段的每一个中。局部存储单元1732中的几个X表示该存储单元包含数据。
DRAM 1702包含多个可寻址存储单元1704,包括存储单元1706和1708。这些存储单元的大小最好也是1024位。附加的存储段也与这些存储单元中的每一个相关。例如,附加存储段1760与存储单元1706相关,并且附加存储段1762与存储单元1708相关。与存储在每个存储单元的数据相关的状态信息存储在与该存储单元相关的存储段中。如上所述,该状态信息包括F/E位、APU ID和LS地址。例如,对于存储单元1708,该状态信息包括F/E位1712、APUID 1714和LS地址1716。
使用状态信息和忙碌位,能够实现在一个PE或一组PE的多个的APU之间进行从和向共享DRAM同步读写数据。
图17B说明了从APU 1722的LS存储单元1732向DRAM 1702的存储单元1708进行同步写数据的启动。APU 1722的控制器1724启动这些数据的同步写入。因为存储单元1708是空的,所以F/E位1712设为0。结果,可以将LS存储单元1732中的数据写入存储单元1708中。相反,如果该位设为1,表明存储单元1708是满的,并且包含的数据是当前的和有效的,则控制器1722将收到一个错误信息,并且被禁止向该存储单元写入数据。
图17C示出了成功地向存储单元1708同步写入数据的结果。写入的数据存储在存储单元1708中,并将F/E位1712设成1。该设定表明存储单元1708是满的,并且该存储单元中的数据是当前的和有效的。
图17D说明了从DRAM 1702的存储单元1708同步读数据到局部存储器1744的LS存储单元1750的启动。为启动该读操作,将LS存储单元1750的存储段1752中的忙碌位设成1,以为这些数据保留该存储单元。将该忙碌位设成1可禁止APU 1740在该存储单元中存储其它数据。
接着,如图17E所示,控制逻辑1742对DRAM 1702的存储单元1708发出同步读命令。因为与该存储单元相关的F/E位1712被设成了1,所以存储在存储单元1708中的数据被认为是当前的和有效的。因此,将F/E位1712设成0,以便为将数据从存储单元1708传送到LS存储单元1750中作准备。该设定示于图17F中。将该位设成0表示,在读取这些数据之后,存储单元1708中的数据将成为无效的。
接下来,如图17G所示,将存储单元1708中的数据从存储单元1708读到LS存储单元1750中。图17H示出了最终的状态。将存储单元1708中的数据的一个副本存储到了LS存储单元1750中。F/E位被设成0以表示存储单元1708中的数据是无效的。这种无效是由APU 1740对这些数据进行变更的结果。存储段1752中的忙碌位也被设成0。该设定表示LS存储单元1750现在可被APU 1740用于任何用途,即,该LS存储单元不再处于等待接收特定数据的保留状态。因此,APU 1740可对LS存储单元1750进行用于任何用途的访问。
图17I-17O说明了当DRAM 1702的存储单元的F/E位设成0、以表示该存储单元中的数据不是当前的或有效的时,从DRAM 1702的存储单元同步读数据到APU的局部存储器的LS存储单元的操作,例如,从存储单元1708同步读数据到局部存储器1744的LS存储单元1752。如图17I所示,为启动这种传输,将LS存储单元1750的存储段1752中的忙碌位设成1,以保留该LS存储单元用于该数据传输。接下来,如图17J所示,控制逻辑1742对DRAM 1702的存储单元1708发出同步读命令。由于与该存储单元相关的F/E位1712被设成0,所以存储单元1708中的存储的数据是无效的。结果,向控制逻辑1742发送一个信号,以阻止从该存储单元中立即读取数据。
接着,如图17K所示,将用于该读命令的APU ID 1714和LS地址1716写入到存储段1762中。这样,将用于APU 1740的APUID和用于LS存储单元1750的LS存储单元写入到存储段1762中。因此,当存储单元1708中的数据变成当前的时,使用该APU ID和LS存储单元来确定当前数据要被发送到的位置。
当APU将数据写入该存储单元时,存储单元1708中的数据变为有效的和当前的。图17L说明了从,例如,APU 1722的存储单元1732到存储单元1708的同步写数据的过程。因为用于该存储单元的F/E位被设为0,所以这些数据的这种同步写是许可的。
如图17M所示,在写操作之后,存储单元1708中的数据变成当前的和有效的。因此,立即从存储段1762读取来自存储段1762的APU ID 1714和LS地址,然后将该信息从该存储段中删除。将F/E位1712设成0,以准备立即读取存储单元1708中的数据。如图17N所示,一旦读取了APU ID 1714和LS地址1716,立即将该信息用于将存储单元1708中的有效数据读到APU 1740的LS存储单元1750中。最终状态示于图17O。该图示出从存储单元1708复制到存储单元1750的有效数据,存储段1752中的忙碌位设为0,并且存储段1762中的F/E位1712设为0。将忙碌位设成0可使LS存储单元1750现在能够被APU 1740访问以用于任何用途。将F/E位设成0表示存储单元1708中的数据不再是当前的和有效的。
图18根据该存储单元所对应的存储段中存储的F/E位、APUID和LS地址的状态,概括了以上描述的操作和DRAM的存储单元的各种状态。存储单元可有三种状态。这三种状态是:空状态1880,在这种状态下,F/E位设成0,并且不向APU ID或LS地址提供信息;满状态1882,在这种状态下,F/E位设成1,并且不向APU ID或LS地址提供信息;阻塞状态1884,在这种状态下,F/E位设成0,并且向APU ID和LS地址提供信息。
如图所示,在空状态1880中,允许同步写操作,并且导致向满状态1882转变。而同步读操作导致向阻塞状态1884转变,这是因为当存储单元处于空状态时,存储单元中的数据不是当前的。
在满状态1882中,允许同步读操作,并导致向空状态1880转变。另一方面,在满状态1882中禁止同步写操作,以防止覆盖有效数据。如果在这种状态下试图进行这种写操作,则不发生状态改变,并且向APU的相应控制逻辑发送一个错误消息。
在阻塞状态1884中,允许对存储单元进行同步数据写操作,并导致向空状态1880转变。另一方面,在阻塞状态1884中禁止同步读操作,以防止与较早的、导致这种状态的同步读操作发生冲突。如果在状态1884下试图进行同步读操作,则不发生状态改变,并且向APU的相应控制逻辑发送一个错误消息。
上述用于从和向共享DRAM进行同步读和写数据的方案,还可用于省掉通常由用于从外部设备读数据和向外部设备写数据的处理器专用的计算资源。该输入/输出(I/O)功能可由一个PU执行。然而,使用该同步方案的一个改进方案,一个运行适当程序的APU可执行该功能。例如,使用该方案,接收由外部设备发出的、对从I/O接口传输数据的中断请求的PU可以委托该APU来处理这个请求。然后,该APU向I/O接口发出同步写命令。该接口依次向外部设备发出现在可以向DRAM写数据的信号。接下来,APU向DRAM发出同步读命令,以将DRAM的有关存储空间设成阻塞状态。APU还将用于接收数据所需的APU的局部存储器的存储单元的忙碌位设成1。在阻塞状态中,与DRAM的有关存储空间相关的附加存储段包含APU的ID和APU的局部存储器的有关存储单元的地址。接着,外部设备发出同步写命令,以直接向DRAM的有关存储空间写数据。由于该存储空间处于阻塞状态,所以立即将数据从该空间读到附加存储段所标识的APU的局部存储器的存储单元中。然后将这些存储单元的忙碌位设成0。当外部设备完成数据的写操作时,APU向PU发出传输完成的信号。
因此,使用这个方案,可处理来自外部设备的数据传输,并使PU的计算负荷最小。然而,被委派此功能的APU应该能够向PU发出中断请求,并且外部设备应具有对DRAM的直接访问。
每个PE的DRAM包括多个“沙箱”。一个沙箱定义了共享DRAM的一个区域,超出此区域,特定的一个APU或一组APU就不能读或写数据。这些沙箱可防止正被一个APU处理的数据被另一个APU处理的数据破坏,从而提供安全性。这些沙箱还允许从网络104向特定沙箱下载软件单元,而不存在软件单元破坏DRAM中的任何数据的可能性。在本发明中,用DRAM和DMAC的硬件来实现沙箱。通过用硬件实现沙箱而不是用软件实现,有利于获得速度和安全方面的优势。
一个PE的PU控制分配给APU的多个沙箱。由于PU通常只操作受托(trusted)程序,例如操作***,所以该方案不会危及安全性。根据该方案,PU建立并维护一个关键字控制表。图19示出了该关键字控制表。如图所示,关键字控制表1902的每个表项包含用于APU的标识(ID)1904、用于该APU的APU关键字1906、和关键字掩码(key mask)1908。该关键字掩码的使用将在后面进行说明。关键字控制表1902最好存储在相对较快的存储器中,例如静态随机存取存储器(SRAM),并且与DMAC相关。关键字控制表1902中的表项由PU控制。当APU请求向DRAM的一个特定存储单元写数据,或从其中读数据时,DMAC对照与那个存储单元相关的存储器存取关键字,来评估关键字控制表1902中分配给那个APU的APU关键字1906。
如图20所示,给DRAM 2002的每个可寻址存储单元2006分配一个专用的存储段2010。在该专用存储段中存储用于存储单元的存储器存取关键字2012。如上所述,还有一个附加的专用存储段2008,其也与每个可寻址存储单元2006相关,它存储用于向存储单元写数据和从存储单元读数据的同步信息。
在操作中,一个APU向DMAC发出一个DMA命令。该命令包括DRAM 2002的一个存储单元2006的地址。在执行该命令之前,DMAC使用该APU的ID 1904,在关键字控制表1902中查找发出请求的APU的关键字1906。然后,DMAC将发出请求的APU的APU关键字1906同、与APU试图访问的DRAM的存储单元相关的专用存储段2010中存储的存储器存取关键字2012进行比较。如果这两个关键字不匹配,则不执行该DMA命令。反之,如果这两关键字匹配,则DMA命令继续进行,并且执行被请求的存储器访问。
图21说明了另一替代实施例。在该实施例中,PU同样也维护存储器存取控制表2102。存储器存取控制表2102对DRAM中的每个沙箱包含一个表项。在图21的特定例子中,DRAM包含64个沙箱。存储器存取控制表2102中的每个表项包含沙箱的标识(ID)2104、存储器基地址2106、沙箱大小2108、存储器存取关键字2110和存取关键字掩码2112。存储器基地址2106提供DRAM中的、开始特定存储器沙箱的地址。沙箱大小2108提供沙箱的大小,并且,因此,提供特定沙箱的终点。
图22是使用关键字控制表1902和存储器存取控制表2102执行DMA命令的步骤流程图。在步骤2202中,一个APU向DMAC发出访问沙箱中的一个特定存储单元或多个单元的DMA命令。该命令包括一个沙箱ID 2104,用于标识被请求访问的特定沙箱。在步骤2204中,DMAC使用APU的ID 1904在关键字控制表1902中查找发出请求的APU的关键字1906。在步骤2206中,DMAC使用命令中的沙箱ID 2104,在存储器存取控制表2102中查找与那个沙箱相关的存储器存取关键字2110。在步骤2208中,DMAC将分配给发出请求的APU的APU关键字1906同、与沙箱相关的存取关键字2110进行比较。在步骤2210中,确定这两个关键字是否匹配。如果这两个关键字不匹配,则处理转到步骤2212,在该步骤中,DMA命令不再继续进行,并向发出请求的APU和PU中的任何一个或两个发送一个错误消息。另一方面,如果在步骤2210中,两个关键字匹配,则处理进行到步骤2214,在该步骤中,DMAC执行该DMA命令。
用于APU关键字和存储器存取关键字的关键字掩码为该***提供了更大的灵活性。用于一个关键字的关键字掩码将掩码位(masked bit)转换成通配符。例如,如果与APU关键字1906相关的关键字掩码1908的最后两位被设成1,并以此将这些位设为“mask”,那么APU关键字可以是1或0,并且仍然匹配于存储器存取关键字。例如,APU关键字可能是1010。该APU关键字通常只允许访问具有存取关键字为1010的沙箱。然而,如果将用于该APU关键字的APU关键字掩码设成0001,则可使用该APU关键字来实现访问存取关键字为1010或1011的沙箱。类似地,掩码设为0001的存取关键字1010可被APU关键字为1010或1011的APU访问。因为可同时使用APU关键字掩码和存储器关键字掩码,所以可建立APU对沙箱的可访问性的多种变化。
本发明还提供用于***101的处理器的新的编程模式。该编程模式使用软件单元102。可以将这些单元发送到网络104上的任何处理器来进行处理。这种新的编程模式还利用***101和***101的处理器的唯一的模块化体系结构。
直接由APU从APU局部存储器中处理软件单元。APU不直接对DRAM中的任何数据或程序进行操作。APU先将DRAM中的数据和程序读取到APU的局部存储器中,然后再对这些数据和程序进行处理。因此,APU的局部存储器包括一个程序计数器、堆栈、和用于执行这些程序的其它的软件要素。PU通过向DMAC发出直接存储器存取(DMA)命令来控制APU。
图23示出了软件单元102的结构。如图所示,软件单元,例如,软件单元2302,包含路由信息部分2304和主体(body)2306。路由信息部分2304中包含的信息依赖于网络104的协议。路由信息部分2304包含标头(header)2308、目的ID 2310、源ID 2312和回复ID 2314。目的ID包括一个网络地址。例如,在TCP/IP协议下,网络地址是Internet协议(IP)地址。目的ID 2310还包括要向其发送单元以进行处理的PE和APU的身份。源ID 2314包含一个网络地址,并标识发出单元的PE和APU,以便在必要时使目的PE和APU能够得到关于单元的附加信息。回复ID 2314包含一个网络地址,并标识关于单元的查询和单元处理的结果应该指向的PE和APU。
单元主体2306包含与网络协议无关的信息。图23的分解部分示出了单元主体2306的详细情况。单元主体2306的标头2320标识单元主体的开始。单元接口(cell interface)2322包含使用单元所必需的信息。该信息包括全局唯一ID 2324、所需的APU 2326、沙箱大小2328、以及前一个单元ID 2330。
全局唯一ID 2324在整个网络104中唯一地标识软件单元2302。全局唯一ID 2324根据源ID 2312产生,例如,源ID 2312中的PE或APU的唯一标识、以及软件单元2302的产生或发送时间和日期。所需的APU 2326提供执行该单元所需的最小APU数。沙箱大小2328提供执行单元所需要的、与所需的APU相关的DRAM中的受保护存储器的数量。前一个单元ID 2330提供需要按顺序执行的一组单元,例如,流数据,中的前一个单元的标识。
执行部分2332包含单元的核心信息。该信息包括DMA命令列表2334、程序2336、以及数据2338。程序2336包含要由APU运行的程序(称为“apulets”),例如,APU程序2360和2362,而数据2338包含要与这些程序一起被处理的数据。DMA命令列表2334包含开始程序所需要的一系列DMA命令。这些DMA命令包括DMA命令2340、2350、2355和2358。PU向DMAC发出这些DMA命令。
DMA命令2340包括VID 2342。VID 2342是一个APU的虚拟ID,它在DMA命令发出时被映射到一个物理ID。DMA命令2340还包括装入命令2344和地址2346。装入命令2344指示APU将特定信息从DRAM读取到局部存储器中。地址2346提供包含该信息的DRAM中的虚拟地址。该信息可以是,例如,来自程序部分2336的程序、来自数据部分2338的数据、或者其它数据。最后,DMA命令2340包括局部存储器地址2348。该地址标识局部存储器中信息要装入的地址。DMA命令2350包含类似的信息。也可能有其它的DMA命令。
DMA命令列表2334还包括一系列的跳转命令,例如,跳转(kick)命令2355和2358。跳转命令是由PU向APU发出的、用来启动单元处理的命令。DMA跳转命令2355包括虚拟APU ID2352、跳转命令2354、以及程序计数器2356。虚拟APU ID 2352标识要被跳转的APU,跳转命令2354提供有关的跳转命令,程序计数器2356提供用于执行该程序的程序计数器的地址。DMA跳转命令2358为同一个APU或另一个APU提供类似的信息。
如前面提到的,PU把APU看作独立的处理器,而不是协处理器。因此,为了控制APU执行的处理,PU使用类似于远程过程调用的命令。这些命令被叫做“APU远程过程调用”(ARPC)。一个PU通过向DMAC发出一系列的DMA来执行一次ARPC。DMAC将APU程序及其相关的栈帧装入到APU的局部存储器中。然后,PU向APU发出初始跳转来执行该APU程序。
图24说明了用于执行一个apulet的ARPC的步骤。图24的第一部分2402说明了在由指定的APU启动对apulet进行处理的过程中,PU执行的步骤,并且图24的第二部分2404说明了指定的APU在处理apulet时执行的步骤。
在步骤2410中,PU对apulet进行评估,并且然后指定一个用于处理该apulet的APU。在步骤2412中,PU向DMAC发出一个设定用于所需的一个或多个沙箱的存储器存取关键字的DMA命令,由此在DRAM中分配用于执行apulet的空间。在步骤2414中,PU启用对指定APU的中断请求,以发出apulet完成的信号。在步骤2418中,PU向DMAC发出将apulet从DRAM中装入到APU的局部存储器中的DMA命令。在步骤2420中,执行该DMA命令,并且将apulet从DRAM中读取到APU的局部存储器中。在步骤2422中,PU向DMAC发出将与apulet相关的栈帧从DRAM装入到APU的局部存储器中的DMA命令。在步骤2423中,执行该DMA命令,并且将栈帧从DRAM中读取到APU的局部存储器中。在步骤2424中,PU向DMAC发出向APU分配一个关键字、以允许该APU从/向在步骤2412中指定的一个或多个硬件沙箱中读/写数据的DMA命令。在步骤2426中,DMAC用分配给APU的关键字更新关键字控制表(KTAB)。在步骤2428中,PU向APU发出启动程序处理的DMA命令“跳转”。依据特定的apulet,在执行特定的ARPC时,PU可能发出其它的DMA命令。
如上面所指出的,图24中的第二部分2404说明了在执行apulet的过程中APU所执行的步骤。在步骤2430中,APU响应在步骤2428发出的跳转命令开始执行apulet。在步骤2432中,在apulet的指导下,APU评估apulet的相关栈帧。在步骤2434中,APU向DMAC发出多个DMA命令以将指定为栈帧需要的数据从DRAM装入到APU的局部存储器中。在步骤2436中,执行这些DMA命令,将数据从DRAM读取到APU的局部存储器中。在步骤2438中,APU执行apulet并产生一个结果。在步骤2440中,APU向DMAC发出一个DMA命令以把结果存储在DRAM中。在步骤2442中,执行该DMA命令,并将apulet的结果从APU的局部存储器写到DRAM中。在步骤2444中,APU向PU发出一个中断请求,以发出ARPC已经完成的信号。
APU在一个PU的指导下独立执行任务的能力,使一个PU能够将一组APU、以及与一组APU相关的存储器资源专用于执行长期(extended)的任务。例如,PU可以将一个或多个APU、以及与这一个或多个APU相关的一组存储器沙箱,专用于接收在一个持续的期间内通过网络104发送的数据,并用于将该期间内接收到的数据导向一个或多个其它的APU及其相关的存储器沙箱,以便进行进一步的处理。该能力尤其有利于处理通过网络104传输的流数据,例如,MPEG流或ATRAC音频或视频流数据。一个PU可将一个或多个APU及其相关的存储器沙箱专用于接收这些数据,并将一个或多个其它的APU及其相关的存储器沙箱专用于解压缩和进一步处理这些数据。换句话说,PU可在一组APU及其相关的存储器沙箱之间建立用于处理这些数据的专用的流水线关系。
然而,为了有效地执行这种处理,在不处理包含数据流的apulet时,流水线专用的APU和存储器沙箱也仍要保持为该流水线专用。换句话说,在这些期间中,专用的APU及其相关的沙箱应处于一种保留状态。在完成apulet的处理时进行的APU及其相关的一个或多个存储器沙箱的保留称为“驻留终止(residenttermination)”。响应来自一个PU的指令而发生驻留终止。
图25、图26A和图26B说明了用于处理流数据,例如,MPEG流数据,的由一组APU及其相关沙箱构成的专用流水线结构的建立。如图25所示,该流水线结构的部件包括PE 2502和DRAM2518。PE 2502包括PU 2504、DMAC 2506和多个APU,包括APU2508、APU 2510和APU 2512。PU 2504、DMAC 2506和这些APU之间的通信通过PE总线2514进行。宽带总线2516将DMAC 2506连接到DRAM 2518。DRAM 2518包括多个沙箱,例如,沙箱2520、沙箱2522、沙箱2524和沙箱2526。
图26A说明了建立专用流水线的步骤。在步骤2610中,PU2504分配APU 2508以处理一个网络apulet。一个网络apulet包含一个用于处理网络104的网络协议的程序。在这种情况下,该协议是传输控制协议/网际协议(TCP/IP)。符合该协议的TCP/IP数据包通过网络104进行传输。一旦接收到数据包,APU 2508处理这些数据包,并将包中的数据组合成软件单元102。在步骤2612中,一旦网络apulet的处理完成,PU 2504便命令APU 2508执行驻留终止。步骤2614中,PU 2504指定APU 2510和2512来处理MPEG apulet。在步骤2615中,一旦MEPG apulet处理完成,PU 2504也命令APU2510和2512执行驻留终止。在步骤2616中,PU 2504指定沙箱2520作为由APU 2510访问的源沙箱和由APU 2508访问的目的沙箱。在步骤2618中,PU 2504指定沙箱2522作为由APU 2510访问的目的沙箱和由APU 2512访问的源沙箱。在步骤2620中,PU 2504指定沙箱2524作为由APU 2512访问的目的沙箱和由流水线中的另一APU访问的源沙箱。在步骤2622中,PU 2504指定沙箱2526作为由流水线中的其它APU访问的目的和源沙箱。在步骤2624中,APU 2510和APU 2512分别向源沙箱2520和源沙箱2522中的存储器块发送同步读命令,以便将存储器的这些块设成阻塞状态。最后,处理转到步骤2628,在该步骤中,完成专用流水线的建立,并且保留专用于该流水线的资源。因此,APU 2508、2510、2512等及其的相关的沙箱2520、2522和2524进入保留状态。
图26B说明了通过这个专用流水线处理MPEG流数据的步骤。在步骤2630中,处理网络apulet的APU 2508在其局部存储器中接收来自网络104的TCP/IP数据包。在步骤2632中,APU 2508处理这些TCP/IP数据包,并将这些包中的数据组合成软件单元102。在步骤2634中,APU 2508检查软件单元的标头2320(图23),以确定这些单元中是否包含MEPG数据。如果一个单元中不包含MPEG数据,则在步骤2636中,APU 2508将该单元发送到在DRAM 2518中指定的一个通用沙箱,该通用沙箱用于由不包括在专用流水线中的其它APU来处理其它数据。APU 2508还将此次发送通知给PU 2504。
另一方面,如果一个软件单元中包含MPEG数据,则在步骤2638中,APU 2508检查该单元的前一个单元ID 2330(图23),以识别该单元所属的MPEG数据流。在步骤2640中,APU 2508选择用于处理该单元的专用流水线的一个APU。在这种情况下,APU 2508选择APU 2510来处理这些数据。该选择是根据前一个单元ID 2330和负荷平衡因素来进行的。例如,如果前一个单元ID 2330表明该软件单元所属的MPEG数据流的前一个软件单元已被发送到APU 2510进行处理,则通常也会将当前的软件单元发送到APU 2510进行处理。在步骤2642中,APU 2508发出将MPEG数据写到沙箱2520的同步写命令。由于该沙箱在此之前已被设成阻塞状态,所以在步骤2644中,自动将MPEG数据从沙箱2520读到APU 2510的局部存储器中。在步骤2646中,APU 2510在其局部存储器中处理MPEG数据以产生视频数据。在步骤2648中,APU 2510将视频数据写到沙箱2522中。在步骤2650中,APU 2510向沙箱2520发出一个同步读取命令,以使该沙箱准备接收另外的MPEG数据。在步骤2652中,APU 2510处理驻留终止。这种处理使这个APU进入保留状态,在该保留状态下,该APU等待处理MPEG数据流中另外的MPEG数据。
在一组APU及其相关的沙箱之间可建立用于处理其它类型数据的其它专用结构。例如,如图27所示,可以建立专用的APU组,例如,APU 2702、2708和2714,用于对三维物体执行几何变换以产生二维显示表。其它的APU可进一步处理(表现(rendered))这些二维显示表以产生象素数据。为执行这种处理,将沙箱专用于APU2702、2708和2414,以存储三维物体、以及对这些物体进行处理而产生的显示表。例如,源沙箱2704、2710和2716专用于存储分别由APU 2702、APU 2708和APU 2714处理的三维物体。以类似的方式,目的沙箱2706、2712和2718专用于存储分别由APU 2702、APU 2708和APU 2714对这些三维物体进行处理而得到的显示表。
协调APU 2720专用于在其局部存储器中接收来自目的沙箱2706、2712和2718的显示表。APU 2720在这些显示表中进行判优,并把它们发送到其它用于表现象素数据的APU。
***101的处理器还使用一个绝对定时器。绝对定时器向APU及PE的其它元件提供一个时钟信号,该时钟信号独立于并快于驱动这些元件的时钟信号。绝对定时器的使用示于图28。
如图所示,绝对定时器为APU执行任务建立时间预算。该时间预算提供完成这些任务的时间,该时间要比APU处理这些任务所需的时间长。结果,对于每项任务,在时间预算内都有一个忙用期间和一个等待期间。所有的apulet都编写成根据该与APU的实际处理时间和速度无关的时间预算进行处理。
例如,对于一个PE的特定APU,可在时间预算2804的忙用期间2802中执行一个特定任务。由于忙用期间2802比时间预算2804短,所以在时间预算中出现等待期间2806。在该等待期间中,APU进入休眠模式,在该模式下,APU消耗的功率较小。
直到时间预算2804期满,其它的APU或PE的其它元件才有可能得到处理任务的结果。因此,使用由绝对定时器建立的时间预算,不管APU的实际处理速度如何,APU的处理结果总是协调的。
将来,APU的处理速度会变得更快。然而,由绝对定时器建立的时间预算将保持不变。例如,如图28所示,将来的APU将在更短的时间内执行一个任务,因而将有更长的等待期间。因此,忙用期间2808比忙用期间2802短,而等待期间2810比等待期间2806长。然而,由于程序编写是根据由绝对定时器建立的相同的时间预算进行处理,因此,仍然保持APU之间处理结果的协调。结果,较快的APU可以处理为较慢的APU编写的处理程序,而不会在期待该处理结果的时间上引起冲突。
代替在APU之间建立用于协调的绝对定时器,对于由增强的或不同的运算速度而产生的APU并行处理的协调方面的问题,PU、或一个或多个指定的APU可在处理apulet过程中,对正由APU执行的特定指令或微代码进行分析。可以在指令中***“不操作”(“NOOP”)指令,并由某些APU来执行,以便使APU保持按apulet预期的正确时序完成处理。通过在指令中***这些NOOP,可以保持APU执行所有指令的正确的定时。
虽然这里参照特定实施例对本发明进行了说明,但是我们应该理解,这些实施例只是为了示例性地说明本发明的原理和应用。因此,我们应该理解,在不脱离由所附权利要求限定的本发明的精神和范围的条件下,可以对示例性的实施例进行许多种修改,以及,可以设计出其它的方案。
Claims (48)
1.一种处理器中处理数据的方法,所述处理器包括至少一个处理单元、与所述一个处理单元相关的第一局部存储器和主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主存储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态,所述方法包括:
响应来自所述一个处理单元的指令,启动从所述第一局部存储器向所述存储器单元中的一个写入第一数据;
评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息;
如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态,则禁止写入所述第一数据,
其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述方法还包括:如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第三状态,则向所述一个存储器单元写入所述第一数据,并且此后从所述一个存储器单元自动读取所述第一数据到由存储在与所述一个存储器单元相关的附加存储器段中的状态信息所标识的局部存储器的存储单元。
2.如权利要求1所述的处理数据的方法,还包括,如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态,则允许写入所述第一数据。
3.如权利要求2所述的处理数据的方法,还包括,如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态,则向所述一个存储器单元写入所述第一数据,并且改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示所述第一状态。
4.如权利要求1所述的处理数据的方法,其中针对第三状态,所述状态信息还包括处理单元的标识和局部存储器的标识中的一个或两个。
5.一种处理器中处理数据的方法,所述处理器包括至少一个处理单元、与所述一个处理单元相关的第一局部存储器和主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主存储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态,所述方法包括:
响应来自所述一个处理单元的指令,启动从所述一个存储器单元向所述第一局部存储器读取第一数据;
评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息;
如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态,则允许读取所述第一数据;
如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态,则暂时禁止读取所述第一数据,
其中所述第一局部存储器包括多个局部存储单元,每个所述局部存储单元包含所述第一局部存储器中与所述局部存储单元相关、专用于存储保留信息的附加存储段,所述保留信息有关所述局部存储单元的保留状态,所述保留状态包含指示所述局部存储单元为数据存储而保留的第一保留状态、和指示所述局部存储单元不为数据存储而保留的第二保留状态,并且所述方法还包括:响应来自所述一个处理单元的所述指令,将存储在与所述局部存储单元中的一个相关的附加存储段中的保留信息,从第二保留状态改变到第一保留状态,
其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述方法还包括:如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态,则改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示第三状态,并且为所述一个局部存储单元的地址提供所述状态信息。
6.如权利要求5所述的处理数据的方法,还包括,如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态,则从所述一个存储器单元向所述第一局部存储器读取所述第一数据,并且改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示所述第二状态。
7.如权利要求5所述的处理数据的方法,还包括,如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第三状态,则向所述一个存储器单元写入第二数据,改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示第二状态,从所述一个存储器单元向所述一个局部存储单元自动读取所述第二数据,并且改变存储在与所述一个局部存储单元相关的附加存储段中的保留信息,使之指示所述第二保留状态。
8.如权利要求5所述的处理数据的方法,其中针对第三状态,所述状态信息还包括处理单元的标识和局部存储器的标识中的一个或两个。
9.一种处理器中处理数据的方法,所述处理器包括至少一个处理单元、与所述一个处理单元相关的第一局部存储器和主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主存储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态,所述方法包括:
响应来自所述一个处理单元的指令,启动从所述一个存储器单元向所述第一局部存储器读取第一数据;
评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息;
如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态,则允许读取所述第一数据;
如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态,则暂时禁止读取所述第一数据,
其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述方法还包括:如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第三状态,则禁止读取所述第一数据。
10.如权利要求9所述的处理数据的方法,其中针对第三状态,所述状态信息还包括处理单元的标识和局部存储器的标识中的一个或两个。
11.如权利要求9所述的处理数据的方法,还包括,如果存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态,则从所述一个存储器单元向所述第一局部存储器读取所述第一数据,并且改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示所述第二状态。
12.一种处理数据的***,包括:
处理器,包括至少一个处理单元;
第一局部存储器,与所述一个处理单元相关;
主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主存储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态;
用于响应来自所述一个处理单元的指令,启动从所述第一局部存储器向所述存储器单元中的一个写入第一数据的装置;
用于评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息的装置;
用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态的情况下,禁止写入所述第一数据的装置,
其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述***还包括:用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第三状态的情况下,向所述一个存储器单元写入所述第一数据,并且此后从所述一个存储器单元自动读取所述第一数据到由存储在与所述一个存储器单元相关的附加存储器段中的状态信息所标识的局部存储器的存储单元的装置。
13.如权利要求12所述的处理数据的***,还包括用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态的情况下,允许写入所述第一数据的装置。
14.如权利要求13所述的处理数据的***,还包括用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态的情况下,向所述一个存储器单元写入所述第一数据,并且改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示所述第一状态的装置。
15.如权利要求12所述的处理数据的***,其中针对第三状态,所述状态信息还包括处理单元的标识和局部存储器的标识中的一个或两个。
16.一种处理数据的***,包括:
处理器,包括至少一个处理单元;
第一局部存储器,与所述一个处理单元相关;
主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主存储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态;
用于响应来自所述一个处理单元的指令,启动从所述一个存储器单元向所述第一局部存储器读取第一数据的装置;
用于评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息的装置;
用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态的情况下,允许读取所述第一数据的装置;
用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态的情况下,暂时禁止读取所述第一数据的装置,
其中所述第一局部存储器包括多个局部存储单元,每个所述局部存储单元包含所述第一局部存储器中与所述局部存储单元相关、专用于存储保留信息的附加存储段,所述保留信息有关所述局部存储单元的保留状态,所述保留状态包含指示所述局部存储单元为数据存储而保留的第一保留状态,和指示所述局部存储单元不为数据存储而保留的第二保留状态,并且所述***还包括:用于响应来自所述一个处理单元的所述指令,将存储在与所述局部存储单元中的一个相关的附加存储段中的保留信息从第二保留状态改变到第一保留状态的装置,
其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述***还包括:用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态的情况下,改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示第三状态,并且为所述一个局部存储单元的地址提供所述状态信息的装置。
17.如权利要求16所述的处理数据的***,还包括用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第三状态的情况下,向所述一个存储器单元写入第二数据,改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示第二状态,从所述一个存储器单元向所述一个局部存储单元自动读取所述第二数据,并且改变存储在与所述一个局部存储单元相关的附加存储段中的保留信息,使之指示所述第二保留状态的装置。
18.如权利要求16所述的处理数据的***,其中针对第三状态,所述状态信息还包括处理单元的标识、局部存储器的标识中的一个或两个。
19.如权利要求16所述的处理数据的***,还包括用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态的情况下,从所述一个存储器单元向所述第一局部存储器读取所述第一数据,并且改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示所述第二状态的装置。
20.一种处理数据的***,包括:
处理器,包括至少一个处理单元;
第一局部存储器,与所述一个处理单元相关;
主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主存储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态;
用于响应来自所述一个处理单元的指令,启动从所述一个存储器单元向所述第一局部存储器读取第一数据的装置;
用于评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息的装置;
用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态的情况下,允许读取所述第一数据的装置;
用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态的情况下,暂时禁止读取所述第一数据的装置,
其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述***还包括:用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第三状态的情况下,禁止读取所述第一数据的装置。
21.如权利要求20所述的处理数据的***,还包括用于在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态的情况下,从所述一个存储器单元向所述第一局部存储器读取所述第一数据,并且改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示所述第二状态的装置。
22.如权利要求20所述的处理数据的***,其中针对第三状态,所述状态信息还包括处理单元的标识、局部存储器的标识中的一个或两个。
23.一种处理数据的***,包括:
处理器,包括至少一个处理单元;
第一局部存储器,与所述一个处理单元相关;
主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主存储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态;
存储器控制器,用于响应来自所述一个处理单元的指令,启动从所述第一局部存储器向所述存储器单元中的一个写入第一数据,评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息,并且在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态的情况下,禁止写入所述第一数据,
其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述存储器控制器还用于,在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第三状态的情况下,向所述一个存储器单元写入所述第一数据,并且此后从所述一个存储器单元自动读取所述第一数据到由存储在与所述一个存储器单元相关的附加存储器段中的状态信息所标识的局部存储器的存储单元。
24.如权利要求23所述的处理数据的***,其中所述存储器控制器还用于,在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态的情况下,允许写入所述第一数据。
25.如权利要求24所述的处理数据的***,其中所述存储器控制器还用于,在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态的情况下,向所述一个存储器单元写入所述第一数据,并且改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示所述第一状态。
26.如权利要求23所述的处理数据的***,其中针对第三状态,所述状态信息还包括处理单元的标识和局部存储器的标识中的一个或两个。
27.一种处理数据的***,包括:
处理器,包括至少一个处理单元;
第一局部存储器,与所述一个处理单元相关;
主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主在储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态;
存储器控制器,用于响应来自所述一个处理单元的指令,启动从所述一个存储器单元向所述第一局部存储器读取第一数据,评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息,并且在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态的情况下,允许读取所述第一数据,
其中所述存储器控制器还用于,在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态的情况下,暂时禁止读取所述第一数据,
其中所述第一局部存储器包括多个局部存储单元,每个所述局部存储单元包含所述第一局部存储器中与所述局部存储单元相关、专用于存储保留信息的附加存储段,所述保留信息有关所述局部存储单元的保留状态,所述保留状态包含指示所述局部存储单元为数据存储而保留的第一保留状态,和指示所述局部存储单元不为数据存储而保留的第二保留状态,并且所述存储器控制器还用于,响应来自所述一个处理单元的所述指令,将存储在与所述局部存储单元中的一个相关的附加存储段中的保留信息从第二保留状态改变到第一保留状态,
其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述存储器控制器还用于,在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态的情况下,改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示第三状态,并且为所述一个局部存储单元的地址提供所述状态信息。
28.如权利要求27所述的处理数据的***,其中所述存储器控制器还用于,在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第三状态的情况下,向所述一个存储器单元写入第二数据,改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示所述第二状态,从所述一个存储器单元向所述一个局部存储单元自动读取所述第二数据,并且改变存储在与所述一个局部存储单元相关的附加存储段中的保留信息,使之指示所述第二保留状态。
29.如权利要求27所述的处理数据的***,其中针对第三状态,所述状态信息还包括处理单元的标识和局部存储器的标识中的一个或两个。
30.如权利要求27所述的处理数据的***,其中所述存储器控制器还用于,在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态的情况下,从所述一个存储器单元向所述第一局部存储器读取所述第一数据,并且改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示所述第二状态。
31.一种处理数据的***,包括:
处理器,包括至少一个处理单元;
第一局部存储器,与所述一个处理单元相关;
主存储器,所述主存储器包含多个存储器单元,每个所述存储器单元包含所述主存储器中与所述存储器单元相关、专用于存储状态信息的附加存储器段,所述状态信息有关所述存储器单元中存储的数据的状态,所述状态包括第一状态和第二状态;
存储器控制器,用于响应来自所述一个处理单元的指令,启动从所述一个存储器单元向所述第一局部存储器读取第一数据,评估存储在与所述一个存储器单元相关的附加存储器段中的状态信息,并且在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态的情况下,允许读取所述第一数据,
其中所述存储器控制器还用于,在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第二状态的情况下,暂时禁止读取所述第一数据,
其中所述状态包括第三状态,针对所述第三状态,所述状态信息包括与所述处理器的处理单元相关的局部存储器中的存储单元的地址,并且所述存储器控制器还用于,在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第三状态的情况下,禁止读取所述第一数据。
32.如权利要求31所述的处理数据的***,其中所述存储器控制器还用于,在存储在与所述一个存储器单元相关的附加存储器段中的状态信息指示第一状态的情况下,从所述一个存储器单元向所述第一局部存储器读取所述第一数据,并且改变存储在与所述一个存储器单元相关的附加存储器段中的状态信息,使之指示所述第二状态。
33.如权利要求31所述的处理数据的***,其中针对第三状态,所述状态信息还包括处理单元的标识和局部存储器的标识中的一个或两个。
34.一种处理器中处理数据的方法,所述处理器包括:多个处理单元;多个局部存储器,每个局部存储器与一个相应的处理单元相关联并具有多个存储单元;具有多个存储器单元的主存储器,由所述处理单元共享;和状态存储器,用于存储有关所述存储器单元的状态的状态信息,所述状态包括第一状态,当存储在所述存储器单元中的数据不是当前数据时,所述状态信息指示所述第一状态,针对所述第一状态,针对存储器单元的所述状态信息包括存储单元的地址,所述方法包括:
响应来自所述处理单元中的一个的指令,启动向所述主存储器的所述存储器单元中的一个写入第一数据;
评估存储在针对所述一个存储器单元的状态存储器中的状态信息;
如果所述状态信息指示针对所述一个存储器单元的第一状态,则将所述第一数据写入所述一个存储器单元中,并且此后从所述一个存储器单元向存储单元自动读取所述第一数据,其中所述存储单元的地址包含在针对所述一个存储器单元的状态信息中。
35.如权利要求34所述的方法,其中针对所述第一状态,针对存储器单元的所述状态信息包括与存储单元相关的处理单元的标识,其中该存储单元的地址包含在针对存储器单元的状态信息中。
36.如权利要求34所述的方法,进一步包括:
响应来自所述一个处理单元的指令,启动从所述一个存储器单元向与所述一个处理单元的局部存储器相关的存储单元读取第二数据;
如果存储在针对所述一个存储器单元的状态存储器中的状态信息指示第一状态,则禁止从所述一个存储器单元读取所述第二数据。
37.如权利要求34所述的方法,其中所述状态进一步包括第二状态,当存储在所述存储器单元中的数据是当前数据时,所述状态信息指示所述第二状态,针对第二状态,所述状态信息指示,被存储在与第二状态相对应的存储器单元中的数据正由处理单元进行处理,且所述方法进一步包括:
响应来自所述一个处理单元的指令,启动从所述一个存储器单元向与所述一个处理单元的局部存储器相关的存储单元读取第二数据;
如果存储在针对所述一个存储器单元的状态存储器中的状态信息指示第二状态,则暂时禁止从所述一个存储器单元读取所述第二数据并将针对所述一个存储器单元的状态改变成第一状态。
38.如权利要求34所述的方法,其中所述状态存储器是所述主存储器的一部分。
39.一种处理数据的***,包括:
多个处理单元;
多个局部存储器,每个局部存储器与一个相应的处理单元相关联并具有多个存储单元;
由所述处理单元共享的主存储器,具有多个存储器单元;
状态存储器,用来存储有关所述存储器单元的状态的状态信息,所述状态包括第一状态,针对第一状态,针对存储器单元的所述状态信息包括存储单元的地址;
用于响应来自所述处理单元中的一个的指令,启动向所述主存储器的所述存储器单元中的一个写入第一数据的装置;
用来评估存储在针对所述一个存储器单元的状态存储器中的状态信息的装置;以及
用于在所述状态信息指示针对所述一个存储器单元的第一状态时,将所述第一数据写入所述一个存储器单元中,然后自动从所述一个存储器单元向存储单元读取所述第一数据的装置,其中所述存储单元的地址包含在针对所述一个存储器单元的状态信息中。
40.如权利要求39所述的***,其中针对所述第一状态,针对存储器单元的所述状态信息包括与存储单元相关的处理单元的标识,其中所述存储单元的地址包含在针对所述存储器单元的状态信息中。
41.如权利要求39所述的***,进一步包括:
用来响应来自所述一个处理单元的指令,启动从所述一个存储器单元向与所述一个处理单元的局部存储器相关的存储单元读取第二数据的装置;
用来在存储在针对所述一个存储器单元的状态存储器中的状态信息指示第一状态时,禁止从所述一个存储器单元读取所述第二数据的装置。
42.如权利要求39所述的***,其中所述状态进一步包括第二状态,针对第二状态,所述状态信息指示,被存储在与第二状态相对应的存储器单元中的数据正由处理单元进行处理,且所述***进一步包括:
用来响应来自所述一个处理单元的指令,启动从所述一个存储器单元向与所述一个处理单元的局部存储器相关的存储单元读取第二数据的装置;
用来在存储在针对所述一个存储器单元的状态存储器中的状态信息指示第二状态时,暂时禁止从所述一个存储器单元读取所述第二数据并将针对所述一个存储器单元的状态改变成第一状态的装置。
43.如权利要求39所述的***,其中所述状态存储器是所述主存储器的一部分。
44.一种处理数据的***,包括:
多个处理单元;
多个局部存储器,每个局部存储器与一个相应的处理单元相关联并具有多个存储单元;
由所述处理单元共享的主存储器,具有多个存储器单元;
状态存储器,用来存储有关所述存储器单元的状态的状态信息,所述状态包括第一状态,当存储在所述存储器单元中的数据不是当前数据时,所述状态信息指示所述第一状态,针对所述第一状态,针对存储器单元的所述状态信息包括存储单元的地址;
存储器控制器,用于响应来自所述处理单元中的一个的指令,启动向所述主存储器的所述存储器单元中的一个写入第一数据,评估存储在针对所述一个存储器单元的状态存储器中的状态信息,并且在针对所述一个存储器单元的所述状态信息指示第一状态的情况下,将所述第一数据写入所述一个存储器单元,之后自动从所述一个存储器单元向存储单元读取所述第一数据,该存储单元的地址包含在针对所述一个存储器单元的状态信息中。
45.如权利要求44所述的***,其中针对所述第一状态,针对一个存储器单元的所述状态信息包括与存储单元相关的处理单元的标识,所述存储单元的地址包含在针对所述存储器单元的状态信息中。
46.如权利要求44所述的***,其中所述存储器控制器还用于响应来自所述一个处理单元的指令,启动从所述一个存储器单元向与所述一个处理单元的局部存储器相关的存储单元读取第二数据,并且在存储在针对所述一个存储器单元的状态存储器中的状态信息指示第一状态的情况下,禁止从所述一个存储器单元读取所述第二数据。
47.如权利要求44所述的***,其中所述状态进一步包括第二状态,当存储在所述存储器单元中的数据是当前数据时,所述状态信息指示所述第二状态,针对第二状态,所述状态信息指示,被存储在与第二状态相对应的存储器单元中的数据正由处理单元进行处理,并且所述存储器控制器还用于响应来自所述一个处理单元的指令,启动从所述一个存储器单元向与所述一个处理单元的局部存储器相关的存储单元读取第二数据,并且在存储在针对所述一个存储器单元的状态存储器中的状态信息指示第二状态的情况下,暂时禁止从所述一个存储器单元读取第二数据并将针对所述一个存储器单元的状态改变成第一状态。
48.如权利要求44所述的***,其中所述状态存储器是所述主存储器的一部分。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/815,554 | 2001-03-22 | ||
US09/815,554 US6826662B2 (en) | 2001-03-22 | 2001-03-22 | System and method for data synchronization for a computer architecture for broadband networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1496517A CN1496517A (zh) | 2004-05-12 |
CN1279469C true CN1279469C (zh) | 2006-10-11 |
Family
ID=25218147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028063430A Expired - Lifetime CN1279469C (zh) | 2001-03-22 | 2002-03-19 | 一种处理器中处理数据的方法和处理数据的*** |
Country Status (7)
Country | Link |
---|---|
US (1) | US6826662B2 (zh) |
EP (1) | EP1370969B1 (zh) |
JP (3) | JP3411273B2 (zh) |
KR (1) | KR100866739B1 (zh) |
CN (1) | CN1279469C (zh) |
TW (1) | TW594492B (zh) |
WO (1) | WO2002077846A1 (zh) |
Families Citing this family (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7233998B2 (en) * | 2001-03-22 | 2007-06-19 | Sony Computer Entertainment Inc. | Computer architecture and software cells for broadband networks |
US6826662B2 (en) | 2001-03-22 | 2004-11-30 | Sony Computer Entertainment Inc. | System and method for data synchronization for a computer architecture for broadband networks |
US6526491B2 (en) | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
US7024519B2 (en) * | 2002-05-06 | 2006-04-04 | Sony Computer Entertainment Inc. | Methods and apparatus for controlling hierarchical cache memory |
US7225301B2 (en) * | 2002-11-22 | 2007-05-29 | Quicksilver Technologies | External memory controller node |
JP4542308B2 (ja) * | 2002-12-16 | 2010-09-15 | 株式会社ソニー・コンピュータエンタテインメント | 信号処理用デバイス及び情報処理機器 |
JP4271478B2 (ja) * | 2003-04-08 | 2009-06-03 | パナソニック株式会社 | 中継装置及びサーバ |
US7549145B2 (en) * | 2003-09-25 | 2009-06-16 | International Business Machines Corporation | Processor dedicated code handling in a multi-processor environment |
US7475257B2 (en) * | 2003-09-25 | 2009-01-06 | International Business Machines Corporation | System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data |
US7523157B2 (en) * | 2003-09-25 | 2009-04-21 | International Business Machines Corporation | Managing a plurality of processors as devices |
US20050071578A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | System and method for manipulating data with a plurality of processors |
US20050071828A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | System and method for compiling source code for multi-processor environments |
US7415703B2 (en) * | 2003-09-25 | 2008-08-19 | International Business Machines Corporation | Loading software on a plurality of processors |
US7516456B2 (en) * | 2003-09-25 | 2009-04-07 | International Business Machines Corporation | Asymmetric heterogeneous multi-threaded operating system |
US7146529B2 (en) * | 2003-09-25 | 2006-12-05 | International Business Machines Corporation | System and method for processor thread acting as a system service processor |
US7478390B2 (en) * | 2003-09-25 | 2009-01-13 | International Business Machines Corporation | Task queue management of virtual devices using a plurality of processors |
US7444632B2 (en) | 2003-09-25 | 2008-10-28 | International Business Machines Corporation | Balancing computational load across a plurality of processors |
US7496917B2 (en) * | 2003-09-25 | 2009-02-24 | International Business Machines Corporation | Virtual devices using a pluarlity of processors |
US7236998B2 (en) * | 2003-09-25 | 2007-06-26 | International Business Machines Corporation | System and method for solving a large system of dense linear equations |
US7318218B2 (en) * | 2003-09-25 | 2008-01-08 | International Business Machines Corporation | System and method for processor thread for software debugging |
US7389508B2 (en) * | 2003-09-25 | 2008-06-17 | International Business Machines Corporation | System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment |
US7093080B2 (en) * | 2003-10-09 | 2006-08-15 | International Business Machines Corporation | Method and apparatus for coherent memory structure of heterogeneous processor systems |
TW200532466A (en) | 2004-02-03 | 2005-10-01 | Sony Corp | Information processing device, information processing method, information processing system and information processing program of accessible media |
JP2005235019A (ja) | 2004-02-20 | 2005-09-02 | Sony Corp | ネットワークシステム、分散処理方法、情報処理装置 |
JP2005242598A (ja) * | 2004-02-26 | 2005-09-08 | Sony Corp | 情報処理システム及び情報処理方法、並びにコンピュータ・プログラム |
JP4586526B2 (ja) | 2004-02-27 | 2010-11-24 | ソニー株式会社 | 情報処理装置、情報処理方法、情報処理システムおよび情報処理用プログラム |
JP4325438B2 (ja) | 2004-03-01 | 2009-09-02 | ソニー株式会社 | 情報処理システム及び情報処理方法、並びにコンピュータ・プログラム |
JP4784912B2 (ja) * | 2004-03-02 | 2011-10-05 | パナソニック株式会社 | 情報処理装置 |
JP2005277655A (ja) * | 2004-03-24 | 2005-10-06 | Sony Corp | 入出力端末、マスタ装置、スレーブ装置、情報処理システムおよび方法、ならびに入出力端末用、マスタ装置用およびスレーブ装置用プログラム |
US7505457B2 (en) * | 2004-04-22 | 2009-03-17 | Sony Computer Entertainment Inc. | Method and apparatus for providing an interconnection network function |
US7302554B2 (en) * | 2004-04-22 | 2007-11-27 | Sony Computer Entertainment Inc. | Methods and apparatus for multi-processor pipeline parallelism |
US7383427B2 (en) * | 2004-04-22 | 2008-06-03 | Sony Computer Entertainment Inc. | Multi-scalar extension for SIMD instruction set processors |
US7401316B2 (en) * | 2004-04-23 | 2008-07-15 | Sony Computer Entertainment Inc. | Methods and apparatus for synthesizable pipeline control |
US20050251649A1 (en) * | 2004-04-23 | 2005-11-10 | Sony Computer Entertainment Inc. | Methods and apparatus for address map optimization on a multi-scalar extension |
US7526608B2 (en) | 2004-05-28 | 2009-04-28 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a software implemented cache memory |
JP4465598B2 (ja) | 2004-07-05 | 2010-05-19 | ソニー株式会社 | 集積回路およびその処理制御方法、並びに、プログラム |
JP2006031480A (ja) * | 2004-07-16 | 2006-02-02 | Sony Corp | 情報処理システム及び情報処理方法、並びにコンピュータプログラム |
JP4599923B2 (ja) * | 2004-07-16 | 2010-12-15 | ソニー株式会社 | 情報処理システム及び情報処理方法、並びにコンピュータプログラム |
JP2006033646A (ja) | 2004-07-20 | 2006-02-02 | Sony Corp | 情報処理システム及び情報処理方法、並びにコンピュータプログラム |
JP2006031525A (ja) | 2004-07-20 | 2006-02-02 | Sony Corp | 情報処理装置および情報処理方法、並びに、プログラム |
US7363397B2 (en) | 2004-08-26 | 2008-04-22 | International Business Machines Corporation | System and method for DMA controller with multi-dimensional line-walking functionality |
US7240137B2 (en) * | 2004-08-26 | 2007-07-03 | International Business Machines Corporation | System and method for message delivery across a plurality of processors |
EP1786205A1 (en) * | 2004-08-30 | 2007-05-16 | Matsushita Electric Industrial Co., Ltd. | Recorder |
WO2006025255A1 (ja) * | 2004-08-30 | 2006-03-09 | Matsushita Electric Industrial Co., Ltd. | 多人数参加型アプリケーションを実行するクライアント端末装置、グループ形成方法及びグループ形成プログラム |
JP2006079280A (ja) | 2004-09-08 | 2006-03-23 | Sony Corp | 情報処理システムおよび方法、情報処理装置および方法、並びにプログラム |
US7240182B2 (en) * | 2004-09-16 | 2007-07-03 | International Business Machines Corporation | System and method for providing a persistent function server |
US8001294B2 (en) * | 2004-09-28 | 2011-08-16 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a compressed network in a multi-processing system |
US20060070069A1 (en) * | 2004-09-30 | 2006-03-30 | International Business Machines Corporation | System and method for sharing resources between real-time and virtualizing operating systems |
US7290112B2 (en) * | 2004-09-30 | 2007-10-30 | International Business Machines Corporation | System and method for virtualization of processor resources |
JP2007334379A (ja) | 2004-10-05 | 2007-12-27 | Matsushita Electric Ind Co Ltd | 処理装置 |
US20060080661A1 (en) * | 2004-10-07 | 2006-04-13 | International Business Machines Corporation | System and method for hiding memory latency |
US7506325B2 (en) | 2004-10-07 | 2009-03-17 | International Business Machines Corporation | Partitioning processor resources based on memory usage |
US7512699B2 (en) * | 2004-11-12 | 2009-03-31 | International Business Machines Corporation | Managing position independent code using a software framework |
US7502928B2 (en) * | 2004-11-12 | 2009-03-10 | Sony Computer Entertainment Inc. | Methods and apparatus for secure data processing and transmission |
US20060155955A1 (en) * | 2005-01-10 | 2006-07-13 | Gschwind Michael K | SIMD-RISC processor module |
US7680972B2 (en) | 2005-02-04 | 2010-03-16 | Sony Computer Entertainment Inc. | Micro interrupt handler |
WO2006082990A1 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for secure processor collaboration in a multi-processor system |
JP4606339B2 (ja) * | 2005-02-07 | 2011-01-05 | 株式会社ソニー・コンピュータエンタテインメント | セキュアなプロセッサの処理の移行を実施する方法および装置 |
JP4522372B2 (ja) * | 2005-02-07 | 2010-08-11 | 株式会社ソニー・コンピュータエンタテインメント | プロセッサと外部のデバイスとの間にセキュアセッションを実現する方法および装置 |
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 |
US20060184296A1 (en) * | 2005-02-17 | 2006-08-17 | Hunter Engineering Company | Machine vision vehicle wheel alignment systems |
US7398482B2 (en) * | 2005-07-28 | 2008-07-08 | International Business Machines Corporation | Modular design method and apparatus |
JP4536618B2 (ja) * | 2005-08-02 | 2010-09-01 | 富士通セミコンダクター株式会社 | リコンフィグ可能な集積回路装置 |
US20070030280A1 (en) * | 2005-08-08 | 2007-02-08 | Via Technologies, Inc. | Global spreader and method for a parallel graphics processor |
US7659899B2 (en) * | 2005-08-08 | 2010-02-09 | Via Technologies, Inc. | System and method to manage data processing stages of a logical graphics pipeline |
US20070030277A1 (en) * | 2005-08-08 | 2007-02-08 | Via Technologies, Inc. | Method for processing vertex, triangle, and pixel graphics data packets |
US7659898B2 (en) * | 2005-08-08 | 2010-02-09 | Via Technologies, Inc. | Multi-execution resource graphics processor |
KR100655078B1 (ko) * | 2005-09-16 | 2006-12-08 | 삼성전자주식회사 | 비트 레지스터링 레이어를 갖는 반도체 메모리 장치 및그의 구동 방법 |
JP2007148709A (ja) * | 2005-11-28 | 2007-06-14 | Hitachi Ltd | プロセッサシステム |
DE102006052757B4 (de) * | 2006-11-08 | 2014-10-09 | Siemens Aktiengesellschaft | Verfahren zum Betrieb eines Automatisierungsgerätes mit einer Verarbeitungseinheit mit mehreren Verarbeitungskernen |
US8041912B2 (en) | 2007-09-28 | 2011-10-18 | Macronix International Co., Ltd. | Memory devices with data protection |
US8271747B2 (en) * | 2008-07-31 | 2012-09-18 | Rambus Inc. | Mask key selection based on defined selection criteria |
KR20150054826A (ko) * | 2012-09-13 | 2015-05-20 | 톰슨 라이센싱 | 선입 선출 전송 메커니즘으로부터의 랜덤 액세스 메시지 검색 방법 |
US9189446B2 (en) * | 2013-01-04 | 2015-11-17 | Microsoft Technology Licensing, Llc | Immutable sharable zero-copy data and streaming |
US9552365B2 (en) | 2014-05-31 | 2017-01-24 | Institute For Information Industry | Secure synchronization apparatus, method, and non-transitory computer readable storage medium thereof |
US9766981B2 (en) | 2014-06-10 | 2017-09-19 | Institute For Information Industry | Synchronization apparatus, method, and non-transitory computer readable storage medium |
US10255202B2 (en) * | 2016-09-30 | 2019-04-09 | Intel Corporation | Multi-tenant encryption for storage class memory |
Family Cites Families (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3576544A (en) | 1968-10-18 | 1971-04-27 | Ibm | Storage protection system |
JPS5323052B2 (zh) * | 1973-09-11 | 1978-07-12 | ||
US4037214A (en) | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | Key register controlled accessing system |
JPS5412643A (en) | 1977-06-30 | 1979-01-30 | Hitachi Ltd | Main memory protective device |
JPS54146555A (en) | 1978-05-09 | 1979-11-15 | Nec Corp | Data transfer system between processors |
JPS55146682A (en) * | 1979-05-01 | 1980-11-15 | Nec Corp | Data transfer system |
US4332009A (en) | 1980-01-21 | 1982-05-25 | Mostek Corporation | Memory protection system |
JPS5812613B2 (ja) | 1980-02-08 | 1983-03-09 | 工業技術院長 | 並列デ−タ処理装置 |
JPS56117384A (en) * | 1980-02-20 | 1981-09-14 | Nec Corp | Cash controller |
JPS5835295B2 (ja) | 1980-03-03 | 1983-08-02 | オムロン株式会社 | マスタ・スレ−ブ・システムにおけるデ−タ転送方式 |
US4430705A (en) | 1980-05-23 | 1984-02-07 | International Business Machines Corp. | Authorization mechanism for establishing addressability to information in another address space |
JPS576952A (en) | 1980-06-16 | 1982-01-13 | Nippon Telegr & Teleph Corp <Ntt> | Storage protecting system |
JPS57176456A (en) | 1981-04-22 | 1982-10-29 | Fanuc Ltd | Data processing system |
DE3171379D1 (en) | 1981-04-28 | 1985-08-22 | Ibm | Bus arrangement for interconnectiong circuit chips |
AU542447B2 (en) | 1982-02-27 | 1985-02-21 | Fujitsu Limited | System for controlling key storage unit |
JPS5958700A (ja) | 1982-09-29 | 1984-04-04 | Fujitsu Ltd | 記憶保護判定方式 |
US4545016A (en) | 1983-01-07 | 1985-10-01 | Tandy Corporation | Memory management system |
US4622631B1 (en) * | 1983-12-30 | 1996-04-09 | Recognition Int Inc | Data processing system having a data coherence solution |
US5159700A (en) | 1984-01-16 | 1992-10-27 | Texas Instruments Incorporated | Substrate with optical communication systems between chips mounted thereon and monolithic integration of optical I/O on silicon substrates |
JPS61180352A (ja) | 1984-12-30 | 1986-08-13 | Fujitsu Ltd | プログラムダウンロ−ド方式 |
US4732446A (en) | 1985-10-02 | 1988-03-22 | Lamar Gipson | Electrical circuit and optical data buss |
AU571377B2 (en) | 1985-11-13 | 1988-04-14 | Fujitsu Limited | Main storage access control system |
JPS6319058A (ja) | 1986-07-11 | 1988-01-26 | Fujitsu Ltd | メモリ装置 |
JP2960415B2 (ja) | 1987-05-22 | 1999-10-06 | 株式会社日立製作所 | 記憶保護方法および装置 |
JPS6412364A (en) | 1987-07-06 | 1989-01-17 | Nippon Telegraph & Telephone | System constitution control system |
JPS6423342A (en) | 1987-07-20 | 1989-01-26 | Mitsubishi Electric Corp | Programmable controller |
JP2677589B2 (ja) | 1988-02-26 | 1997-11-17 | 株式会社東芝 | 携帯可能電子装置およびicチップ |
JPH01229357A (ja) * | 1988-03-09 | 1989-09-13 | Fanuc Ltd | 複数プロセッサ間のデータ授受方法 |
JPH0212361A (ja) | 1988-06-29 | 1990-01-17 | Fujitsu Ltd | 階層化バスによる並列計算機システム |
US4939682A (en) | 1988-07-15 | 1990-07-03 | The Boeing Company | Integrated electro-optic arithmetic/logic unit and method for making the same |
JP2837413B2 (ja) | 1988-08-24 | 1998-12-16 | 株式会社日立メディコ | 複数端末cpuを有するct装置 |
EP0369052A1 (en) | 1988-11-17 | 1990-05-23 | International Business Machines Corporation | Data base access system |
JPH02210542A (ja) | 1989-02-10 | 1990-08-21 | Fujitsu Ltd | 仮想計算機システムにおける実行制御方式 |
JP2545627B2 (ja) * | 1990-02-21 | 1996-10-23 | 富士通株式会社 | Cpu間インタフェース方式 |
CA2044689A1 (en) | 1990-06-15 | 1991-12-16 | Roger E. Tipley | Multilevel inclusion in multilevel cache hierarchies |
US5144691A (en) | 1990-07-20 | 1992-09-01 | Cray Research, Inc. | Computer signal interconnect apparatus |
EP0481735A3 (en) | 1990-10-19 | 1993-01-13 | Array Technology Corporation | Address protection circuit |
KR940004404B1 (ko) | 1990-11-30 | 1994-05-25 | 삼성전자 주식회사 | 불휘발성 반도체 메모리장치 |
JPH04288643A (ja) | 1991-03-18 | 1992-10-13 | Nec Corp | マルチプロセッサシステムのメモリマッピング方式 |
JPH04128350U (ja) * | 1991-05-08 | 1992-11-24 | 株式会社日立製作所 | データ送信方式 |
JPH0535693A (ja) * | 1991-07-31 | 1993-02-12 | Nec Corp | データ転送装置 |
JPH0554009A (ja) | 1991-08-29 | 1993-03-05 | Nec Eng Ltd | プログラムロード方式 |
JP3364937B2 (ja) | 1991-11-29 | 2003-01-08 | 株式会社日立製作所 | 並列演算装置 |
US5268973A (en) | 1992-01-21 | 1993-12-07 | The University Of Texas System | Wafer-scale optical bus |
JPH05233531A (ja) * | 1992-02-18 | 1993-09-10 | Nippon Telegr & Teleph Corp <Ntt> | バス制御システム |
JPH05242057A (ja) | 1992-02-27 | 1993-09-21 | Sanyo Electric Co Ltd | マルチプロセッサシステムの起動方式 |
JPH0612333A (ja) | 1992-06-25 | 1994-01-21 | Hitachi Ltd | 情報処理装置の記憶保護方式 |
US5619671A (en) * | 1993-04-19 | 1997-04-08 | International Business Machines Corporation | Method and apparatus for providing token controlled access to protected pages of memory |
JP2642851B2 (ja) * | 1993-09-20 | 1997-08-20 | 工業技術院長 | キャッシュメモリ制御方式 |
JPH07287064A (ja) | 1994-04-20 | 1995-10-31 | Mitsubishi Electric Corp | レーダ信号処理装置 |
US5513337A (en) | 1994-05-25 | 1996-04-30 | Intel Corporation | System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type |
JPH08161283A (ja) | 1994-12-07 | 1996-06-21 | Sony Corp | 複数プロセツサシステム |
JPH08180018A (ja) | 1994-12-26 | 1996-07-12 | Toshiba Corp | 分散処理システム及び分散処理方法 |
JPH08212178A (ja) | 1995-02-08 | 1996-08-20 | Hitachi Ltd | 並列計算機 |
JP2731742B2 (ja) | 1995-02-28 | 1998-03-25 | 甲府日本電気株式会社 | クラスタ構成の並列計算機 |
EP0730237A1 (en) | 1995-02-28 | 1996-09-04 | Nec Corporation | Multi-processor system with virtually addressable communication registers and controlling method thereof |
JPH08249261A (ja) | 1995-03-08 | 1996-09-27 | Mitsubishi Electric Corp | メッセージ管理システム |
DE19508723A1 (de) | 1995-03-10 | 1996-09-12 | Siemens Ag | Mehrbenutzerdatenverarbeitungsanlage mit Speicherschutz |
US5850534A (en) | 1995-06-05 | 1998-12-15 | Advanced Micro Devices, Inc. | Method and apparatus for reducing cache snooping overhead in a multilevel cache system |
JP3786993B2 (ja) | 1995-12-14 | 2006-06-21 | 株式会社日立製作所 | データ記憶ユニット及び該ユニットを用いたデータ記憶装置 |
JPH09198361A (ja) | 1996-01-23 | 1997-07-31 | Kofu Nippon Denki Kk | マルチプロセッサシステム |
US5729712A (en) | 1996-01-26 | 1998-03-17 | Unisys Corporation | Smart fill system for multiple cache network |
JPH09218864A (ja) * | 1996-02-08 | 1997-08-19 | Nippon Telegr & Teleph Corp <Ntt> | データ中継システム |
JPH09311839A (ja) * | 1996-05-21 | 1997-12-02 | Hitachi Ltd | データ共用方式 |
US5900019A (en) * | 1996-05-23 | 1999-05-04 | International Business Machines Corporation | Apparatus for protecting memory storage blocks from I/O accesses |
US5787309A (en) | 1996-05-23 | 1998-07-28 | International Business Machines Corporation | Apparatus for protecting storage blocks from being accessed by unwanted I/O programs using I/O program keys and I/O storage keys having M number of bits |
US5724551A (en) | 1996-05-23 | 1998-03-03 | International Business Machines Corporation | Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers |
JPH10126771A (ja) | 1996-10-15 | 1998-05-15 | Toshiba Corp | 画像データ転送システムにおける画像データ送出レート制御方法および画像データ転送方法 |
JP3421526B2 (ja) | 1997-02-14 | 2003-06-30 | モトローラ株式会社 | デ−タ処理装置 |
US6289434B1 (en) | 1997-02-28 | 2001-09-11 | Cognigine Corporation | Apparatus and method of implementing systems on silicon using dynamic-adaptive run-time reconfigurable circuits for processing multiple, independent data and control streams of varying rates |
JPH10240700A (ja) * | 1997-02-28 | 1998-09-11 | Hitachi Ltd | グラフィックス並列処理装置 |
JP3739888B2 (ja) | 1997-03-27 | 2006-01-25 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および方法 |
US6212605B1 (en) * | 1997-03-31 | 2001-04-03 | International Business Machines Corporation | Eviction override for larx-reserved addresses |
JPH1139215A (ja) | 1997-05-22 | 1999-02-12 | Matsushita Electric Ind Co Ltd | キャッシュメモリおよびキャッシュメモリを制御する方法 |
JPH10334055A (ja) | 1997-06-03 | 1998-12-18 | Sony Corp | マルチプロセッサ・システム |
JP3490256B2 (ja) | 1997-06-12 | 2004-01-26 | 三菱電機株式会社 | エージェント方式 |
US5892966A (en) | 1997-06-27 | 1999-04-06 | Sun Microsystems, Inc. | Processor complex for executing multimedia functions |
JP3247330B2 (ja) * | 1997-12-25 | 2002-01-15 | 株式会社神戸製鋼所 | 複数プロセッサシステム |
JPH11232247A (ja) | 1998-02-10 | 1999-08-27 | Hitachi Ltd | データフロー計算機およびデータフロー制御方法 |
JPH11338833A (ja) | 1998-05-22 | 1999-12-10 | Hitachi Ltd | マルチプロセッサ型コントローラ及びスケーラブルコントローラシステム |
US6336187B1 (en) | 1998-06-12 | 2002-01-01 | International Business Machines Corp. | Storage system with data-dependent security |
JP3224782B2 (ja) | 1998-08-03 | 2001-11-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 処理分担動的変更方法及びコンピュータ |
JP3790060B2 (ja) | 1999-01-29 | 2006-06-28 | 株式会社山武 | 演算処理装置 |
US6311255B1 (en) * | 1999-04-29 | 2001-10-30 | International Business Machines Corporation | System and method for selectively restricting access to memory for bus attached unit IDs |
US6477170B1 (en) | 1999-05-21 | 2002-11-05 | Advanced Micro Devices, Inc. | Method and apparatus for interfacing between systems operating under different clock regimes with interlocking to prevent overwriting of data |
JP4640880B2 (ja) | 2000-07-14 | 2011-03-02 | 国立大学法人東京工業大学 | マイクロプロセッサシステム |
US6779049B2 (en) | 2000-12-14 | 2004-08-17 | International Business Machines Corporation | Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism |
US6865631B2 (en) | 2000-12-14 | 2005-03-08 | International Business Machines Corporation | Reduction of interrupts in remote procedure calls |
US6748501B2 (en) * | 2000-12-30 | 2004-06-08 | International Business Machines Corporation | Microprocessor reservation mechanism for a hashed address system |
US6809734B2 (en) * | 2001-03-22 | 2004-10-26 | Sony Computer Entertainment Inc. | Resource dedication system and method for a computer architecture for broadband networks |
US7093104B2 (en) * | 2001-03-22 | 2006-08-15 | Sony Computer Entertainment Inc. | Processing modules for computer architecture for broadband networks |
US6526491B2 (en) | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
US7233998B2 (en) * | 2001-03-22 | 2007-06-19 | Sony Computer Entertainment Inc. | Computer architecture and software cells for broadband networks |
US6826662B2 (en) * | 2001-03-22 | 2004-11-30 | Sony Computer Entertainment Inc. | System and method for data synchronization for a computer architecture for broadband networks |
-
2001
- 2001-03-22 US US09/815,554 patent/US6826662B2/en not_active Expired - Lifetime
-
2002
- 2002-03-19 WO PCT/JP2002/002605 patent/WO2002077846A1/en active Application Filing
- 2002-03-19 EP EP02705344A patent/EP1370969B1/en not_active Expired - Lifetime
- 2002-03-19 KR KR1020037012341A patent/KR100866739B1/ko active IP Right Grant
- 2002-03-19 CN CNB028063430A patent/CN1279469C/zh not_active Expired - Lifetime
- 2002-03-20 JP JP2002079357A patent/JP3411273B2/ja not_active Expired - Lifetime
- 2002-03-22 TW TW091105674A patent/TW594492B/zh not_active IP Right Cessation
-
2003
- 2003-02-17 JP JP2003039037A patent/JP3483877B2/ja not_active Expired - Lifetime
- 2003-09-26 JP JP2003335660A patent/JP4489399B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP1370969B1 (en) | 2012-03-14 |
EP1370969A4 (en) | 2009-02-25 |
WO2002077846A1 (en) | 2002-10-03 |
US6826662B2 (en) | 2004-11-30 |
JP2003281107A (ja) | 2003-10-03 |
CN1496517A (zh) | 2004-05-12 |
KR100866739B1 (ko) | 2008-11-03 |
TW594492B (en) | 2004-06-21 |
KR20030086319A (ko) | 2003-11-07 |
US20020138707A1 (en) | 2002-09-26 |
EP1370969A1 (en) | 2003-12-17 |
JP3483877B2 (ja) | 2004-01-06 |
JP2004078979A (ja) | 2004-03-11 |
JP2002351850A (ja) | 2002-12-06 |
JP4489399B2 (ja) | 2010-06-23 |
JP3411273B2 (ja) | 2003-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1279469C (zh) | 一种处理器中处理数据的方法和处理数据的*** | |
CN1291327C (zh) | 计算机处理***和计算机处理方法 | |
CN1279470C (zh) | 宽带网络计算机体系结构的计算机处理器和处理设备 | |
CN1494690A (zh) | 用于宽带网络的计算机体系结构和软件单元 | |
CN1496516A (zh) | 宽带网络计算机体系结构的资源专用***和方法 | |
CN101040268A (zh) | 宽带网络计算机体系结构中的外部数据接口 | |
CN1815438A (zh) | 信息处理方法和*** | |
CN1292366C (zh) | 用于使用多个处理器操纵数据的***和方法 | |
CN1300723C (zh) | 将处理器用作虚拟设备的方法和信息处理*** | |
US20130318333A1 (en) | Operating processors over a network | |
CN1991768A (zh) | 与不同种类的资源通信的基于指令***结构的内定序器 | |
CN103999051A (zh) | 用于着色器核心中着色器资源分配的策略 | |
EP1768024B1 (en) | Processing management device, computer system, distributed processing method, and computer program | |
CN103377034B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1061289 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1061289 Country of ref document: HK |
|
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20061011 |