CN1291327C - 计算机处理系统和计算机处理方法 - Google Patents
计算机处理系统和计算机处理方法 Download PDFInfo
- Publication number
- CN1291327C CN1291327C CNB028063481A CN02806348A CN1291327C CN 1291327 C CN1291327 C CN 1291327C CN B028063481 A CNB028063481 A CN B028063481A CN 02806348 A CN02806348 A CN 02806348A CN 1291327 C CN1291327 C CN 1291327C
- Authority
- CN
- China
- Prior art keywords
- processing unit
- relevant
- key
- memory
- key word
- 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/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
-
- 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
Abstract
提供一种用于宽带网络上的高速处理的计算机体系结构和编程模型。该体系结构使用一致的模块化结构,公用计算模块和统一的软件单元。公用计算模块包括控制处理器,多个处理单元,由处理单元处理其程序的多个局部存储器,直接存储器存取控制器和共享主存储器。还提供了一种用于协调处理单元从共享主存储器读数据和向其写数据的同步系统和方法。提供了硬件沙箱结构,用于确保处理单元正在处理的程序中间的数据不会被破坏。
Description
技术领域
本发明涉及计算机处理器和计算机网络的体系结构,特别涉及宽带环境中计算机处理器和计算机网络的体系结构。本发明还涉及这种体系结构的编程模型。
背景技术
对于当前计算机网络,例如办公室网络中使用的局域网(LAN),以及象Internet等这样的全球网络,其计算机和计算设备主要是为单机计算设计的。通过计算机网络共享数据和应用程序不是这些计算机和计算设备的主要设计目的。通常还使用各种类型的、由不同生产商生产的处理器来设计这些计算机和计算设备,这些生产商例如是摩托罗拉、英特尔、德州仪器,索尼以及其它一些公司。这些处理器中的每一个都具有其独特的指令集和指令集体系结构(ISA),即,具有其独特的汇编语言指令集,和用于执行这些指令的基本计算单元和存储单元的结构。因此,程序员需要理解每个处理器的指令集和ISA,以便写出针对这些处理器的应用程序。当前计算机网络上计算机和计算设备的这种异构组合使得数据及应用程序的处理和共享复杂化。而且,经常需要同一应用程序的多个版本,以适应这种异构环境。
连接到全球网络,尤其是连接到Internet的计算机和计算设备的种类是非常广泛的。除个人计算机(PC)和服务器外,这些计算设备还包括蜂窝电话、移动计算机、个人数字助理(PDA)、机顶盒、数字电视以及许多其它设备。在如此多样的计算机和计算设备之间共享数据和应用程序带来了相当大的问题。
为克服这些问题,已使用了很多技术。尤其是,这些技术包括高级的接口和复杂的编程技术。这些解决方案的实现通常需要处理能力有相当大的增加。它们还经常大大增加在网络上处理应用程序和传输数据所需的时间。
通常,通过Internet从相应应用程序分别发送数据。这个解决方案不必发送应用程序和与该应用程序对应的每组发送数据。虽然该方案使得带宽需求达到最小,但它还是经常引起用户间的干扰(frustration)。可能在客户端计算机上得不到用于所发送数据的正确应用程序或者最新应用程序。该方案还需要针对网络上处理器的不同ISA和指令集的多样性编写每个应用程序的多个版本。
Java模型试图解决这个问题。该模型使用服从严格安全协议的小应用程序(“applet”)。applet由服务器通过网络发送,以便在客户端计算机(“client”)上运行。为避免必须向使用不同ISA的客户端发送相同applet的不同版本,所有applet均在客户端的Java虚拟机上运行。Java虚拟机是模拟具有Java ISA和Java指令集的计算机的软件。然而,该软件运行在客户端的ISA和客户端的指令集上。为客户端的每个不同ISA和指令集提供一个版本的Java虚拟机。这样,就不需要每个applet的不同版本的多样性。每个客户端仅下载针对其特定ISA和指令集的正确Java虚拟机,以运行所有Javaapplet。
虽然对必须为每个不同ISA和指令集编写应用程序的不同版本的问题提供了解决方案,然而Java处理模型在客户端计算机上仍需要一个附加软件层。这个附加软件层极大地降低了处理器的处理速度。这种速度降低对于实时、多媒体应用尤其明显。下载的Javaapplet还可能含有病毒、处理故障等。这些病毒和故障会破坏客户端的数据库,并造成其它损坏。虽然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充当协处理器的角色。
在另一方面,本发明提供用于建立专用流水线结构以处理流数据的系统和方法。根据该系统和方法,PU建立协同的APU组,以及与这些APU相关的协同存储器沙箱组,以用于这些数据的处理。在不处理数据的时候,流水线的专用APU和存储器沙箱仍保留为流水线专用。换句话说,在这些期间中,将专用APU及其相关沙箱置于保留状态。
在另一方面,本发明提供用于处理任务的绝对定时器。该绝对定时器独立于处理应用程序和数据的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,visualizer)和光接口的结构。
图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可以形成软件单元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、APU 215、APU 217、APU 219和APU 221。局部PE总线223在APU、DMAC 205和PU
203间传输数据和应用程序。局部PE总线223可具有例如传统体系结构,或者可以被实现成分组交换网络。虽然需要更多的硬件,然而实现成分组交换网络可增加可用带宽。
可使用用于实现数字逻辑的各种方法来构建PE 201。然而,PE
201最好被构造成使用硅衬底上的互补金属氧化物半导体(CMOS)的单个集成电路。可选的衬底材料包括砷化镓,镓铝砷化物,以及其它使用各种搀杂物的所谓III-B化合物。还可使用超导材料,例如快速单磁通量子(RSFQ)逻辑来实现PE 201。
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亿(32billion)次浮点运算每秒(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,visualizer)505的结构。如图5所示,VS 505包含PU 512、DMAC 514和四个APU,即APU 516、APU 518、APU 520和APU 522。在这种情况下,通常由PE的其它四个APU占有的芯片封装内空间则由像素引擎508,图象高速缓存510,以及阴极射线管控制器(CRTC)504占用。根据PE502或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 902,而不是两个PE,并且提供一个VS 904,而不是两个VS。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的另一个光端口连接到BE 1180的光接口1186的光端口。这种矩阵结构可按类似的方式延及其它BE。
通过使用串联结构或矩阵结构,可构建网络104的具有任何期望大小和能力的处理器。当然,可以向BE的光接口,或其PE数目多于或少于BE的PE数目的处理器增加附加端口,以形成其它的结构。
图12A说明了用于BE的DRAM的控制系统和结构。类似的控制系统和结构被用于具有其它大小和包含或多或少的PE的处理器中。如图中所示,交叉开关将构成BE 1201的四个PE的各个DMAC
1210连接到八个存储体控制器1206。每个存储体控制器1206控制DRAM 1204的八个存储体1208(图中只画出了四个)。因此,DRAM1204总共包含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的DMAC1238接收该写命令,并将该命令传送到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中分布,使得每个APU1502直接访问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的局部存储器中的特定数据时,第一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,和LS地址被记入到附加存储段中,其中LS地址标识在数据变为最新数据时,向读入数据的APU的局部存储器中的存储器位置。
对于APU的局部存储器中的每个存储器位置,也分配附加存储段。该附加存储段存储一个位,称为“忙位(busy bit)”。该忙位用于保留相关的LS存储器位置,用于存储从DRAM取回的特定数据。如果针对局部存储器中特定存储器位置的忙位被设成1,则APU只能将该存储器位置用于写入这些特定数据。反之,如果针对局部存储器中特定存储器位置的忙位被设成0,则APU可将该存储器位置用于写入任何数据。
图17A-17O说明了使用F/E位,APU ID,LS地址以及忙位来同步针对PE的共享DRAM的数据读写的方式的几个例子。
如图17A所示,一或多个例如PE 1720的PE与DRAM 1702交互。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位,APUID和LS地址。例如,对于存储器位置1708,该状态信息包括F/E位1712,APU ID 1714和LS地址1716。
通过使用状态信息和忙位,能够实现在PE或一组PE的APU中间对共享DRAM的数据读写同步。
图17B说明了从APU 1722的LS存储器位置1732向DRAM1702的存储器位置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以指示该存储器位置中的数据不是最新或有效时,从DRAM1702的存储器位置(例如存储器位置1708)同步读数据到APU的局部存储器的LS存储器位置(例如局部存储器1744的LS存储器位置1752)的操作。如图17I所示,为启动这种传送,将LS存储器位置1750的存储段1752中的忙位设成1,以保留该LS存储器位置用于该数据传输。接下来,如图17J所示,控制逻辑1742针对DRAM
1702的存储器位置1708发出同步读命令。由于与该存储器位置相关的F/E位,即F/E位1712被设成0,所以存储器位置1708中存储的数据是无效的。结果,向控制逻辑1742发送信号,以阻止从该存储器位置立即读取数据。
接着,如图17K所示,将用于该读命令的APU ID 1714和LS地址1716写入到存储段1762中。在这种情况下,将针对APU 1740的APU ID和针对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位的状态,APU ID和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通常只操作受信的程序,例如操作系统,该方案不会危及安全性。根据该方案,PU建立并维护关键字控制表。图19示出了该关键字控制表。如该图所示,关键字控制表1902的每个条目包含针对APU的标识(ID)1904,针对该APU的APU关键字1906,和关键字掩码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与专用存储段2010中存储的、和APU试图访问的DRAM存储器位置相关的存储器存取关键字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关键字和存储器存取关键字的关键字掩码为该系统提供了更大的灵活性。针对关键字的关键字掩码将被屏蔽位转换成通配符。例如,如果与APU关键字1906相关的关键字掩码1908的最后两位被设成“掩码”(例如通过将关键字掩码1908中的这些位设为1来指定),那么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和主体2306。路由信息部份2304中包含的信息取决于网络104的协议。路由信息部份2304包含标头(header)2308,目的ID 2310,源ID 2312和回复ID 2314。目的ID包括网络地址。例如,在TCP/IP协议下,网络地址是网际协议(IP)地址。目的ID 2310还包括PE和APU的身份信息,其中应当向该PE和APU发送单元以进行处理。源ID 2314包含网络地址,并标识发出单元的PE和APU,以便在必要时允许目的PE和APU得到关于单元的附加信息。回复ID 2314包含网络地址,并标识关于单元的查询,和单元处理的结果应当被送往的PE和APU。
单元主体2306包含与网络协议无关的信息。图23的分解部分示出了单元主体2306的详细情况。单元主体2306的标头2320标识单元主体的开始。单元接口2322包含使用单元所必需的信息。该信息包括全局唯一ID 2324,所需的APU 2326,沙箱大小2328,以及前一个单元ID 2330。
全局唯一ID 2324在整个网络104中唯一标识软件单元2302。根据源ID 2312,例如源ID 2312中的PE或APU的唯一标识,以及软件单元2302的产生或发送时间和日期产生全局唯一ID 2324。所需的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 ID 2352,启动命令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发出设定用于所需的一或多个沙箱的存储器存取关键字的命令,在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分配关键字的DMA命令,以允许APU针对在步骤2412中指定的一或多个硬件沙箱读/写数据。在步骤2426中,DMAC用分配给APU的关键字更新关键字控制表(KTAB)。在步骤2428中,PU向APU发出启动程序处理的DMA命令“启动”。依据特定的apulet,PU在执行特定ARPC时可以发出其它DMA命令。
如上面所指出的,图24中的第二部分2404说明了APU在执行apulet时所执行的步骤。在步骤2430中,APU响应在步骤2428发出的启动命令而开始执行apulet。在步骤2432中,在apulet的指示下,APU评估apulet的相关栈帧。在步骤2434中,APU向DMAC发出多个DMA命令,以便将根据栈帧的需要而指定的数据从DRAM装入到APU的局部存储器中。在步骤2436中,执行这些DMA命令,并且将数据从DRAM读取到APU的局部存储器中。在步骤2438中,APU执行apulet并产生结果。在步骤2440中,APU向DMAC发出把结果存储在DRAM中的DMA命令。在步骤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及其相关一或多个存储器沙箱的保留被称为“常驻终止(resident termination)”。响应来自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也命令APU 2510和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中,PU2504指定沙箱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处理其它数据。APU2508还将此次发送通知给PU 2504。
另一方面,如果软件单元包含MPEG数据,则在步骤2638中,APU 2508检查单元的前一个单元ID 2330(图23),以识别单元所属的MPEG数据流。在步骤2640中,APU 2508选择专用流水线中用于处理该单元的APU。在这种情况下,APU 2508选择APU2510来处理这些数据。该选择是根据前一个单元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可进一步处理(呈现)这些二维显示表以产生像素数据。为执行这种处理,将沙箱专用于APU 2702、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可分析APU在处理apulet时执行的特定指令或微代码。可以在指令中插入“无操作”(“NOOP”)指令,并由某些APU来执行,以便保持APU的处理按apulet预期的正确顺序完成。通过在指令中插入这些NOOP,可以保持APU执行所有指令的正确定时。
虽然这里参照特定实施例对本发明进行了说明,但是我们应该理解,这些实施例只是为了示例性地说明本发明的原理和应用。因此,我们应该理解,在不脱离由所附权利要求限定的本发明的精神和范围的条件下,可以对示例性的实施例进行许多种修改,并且可以设计出其它的方案。
Claims (40)
1.一种计算机处理系统,所述处理系统包括:
第一存储器区,用于存储程序和与所述程序相关的数据;
多个第一处理单元,用于处理所述程序和与所述程序相关的所述数据;
存储器控制器,用于控制所述第一处理单元对所述第一存储器区的访问;
第二存储器区,用于存储存取表,所述存取表包括多个存取条目,每个所述存取条目包含存取关键字,和所述第一存储器区内与所述存取关键字相关的存储器空间的标识,
第三存储器区,用于存储关键字表,所述关键字表包括多个关键字条目,每个所述关键字条目包含所述第一处理单元之一的标识,和与该所述第一处理单元之一相关的请求关键字;
第二处理单元,用于控制所述第一处理单元对所述程序和与所述程序相关的所述数据的所述处理,所述第二处理单元可以基于该与所述程序相关的数据构造和维护所述存取表和所述关键字表,所述第二处理单元还可以指示一个所述第一处理单元处理一个所述程序,
该一个所述第一处理单元在处理该一个所述程序时可以向所述存储器控制器发出请求以便访问所述第一存储器区内的存储位置,
所述存储器控制器可以在存储位置对应于和所述存取表中标识的一个所述存取关键字相关的存储器空间的情况下,响应所述请求而基于所述关键字表中与该一个所述第一处理单元相关的请求关键字和所述存取表中的该一个所述存取关键字之间的比较的结果,来执行所述请求。
2.如权利要求1所述的计算机处理系统,还包括多个局部存储器,每个所述局部存储器与所述第一处理单元中的相应一个相关,其中通过指示所述存储器控制器从所述第一存储器区向与该一个所述第一处理单元相关的局部存储器传送该一个所述程序,所述第二处理单元可以指示该一个所述第一处理单元处理该一个所述程序,该一个所述第一处理单元此后处理来自所述局部存储器的该一个所述程序。
3.如权利要求1所述的计算机处理系统,其中该一个所述存取关键字包括多个第一位,并且与该一个所述第一处理单元相关的所述请求关键字包括多个第二位,所述存储器控制器可以仅在所有所述多个第一位与所有所述多个第二位匹配时执行所述请求。
4.如权利要求1所述的计算机处理系统,其中该一个所述存取关键字包括多个第一位,和关键字掩码,并且与该一个所述第一处理单元相关的所述请求关键字包括多个第二位,所述存储器控制器可以仅在所有所述多个第一位与所述多个第二位匹配,或者所述多个第一位中不与所述多个第二位匹配的所有位被所述关键字掩码屏蔽时,执行所述请求。
5.如权利要求1所述的计算机处理系统,其中该一个所述存取关键字包括多个第一位,并且与该一个所述第一处理单元相关的所述请求关键字包括多个第二位,和关键字掩码,所述存储器控制器可以仅在所有所述多个第二位与所述多个第一位匹配,或者所述多个第二位中不与所述多个第一位匹配的所有位被所述关键字掩码屏蔽时,执行所述请求。
6.如权利要求1所述的计算机处理系统,其中每个所述关键字条目还包含关键字掩码。
7.如权利要求1所述的计算机处理系统,其中每个所述存取条目还包含关键字掩码。
8.如权利要求1所述的计算机处理系统,其中每个所述关键字条目还包含关键字掩码,而每个所述存取条目还包含关键字掩码。
9.如权利要求1所述的计算机处理系统,其中每个所述存取条目还包含基位置条目和尺寸条目,所述基位置条目提供所述存储器空间中与所述存取条目相关的所述第一存储器区内的起始地址,而所述尺寸条目提供所述存储器空间中与所述存取条目相关的所述第一存储器区内的尺寸。
10.如权利要求1所述的计算机处理系统,其中所述第一存储器区在动态随机存取存储器中,并且在所述计算机处理系统的主存储器中。
11.一种计算机处理方法,所述方法包括:
在第一存储器区中存储程序和与所述程序相关的数据;
通过多个第一处理单元处理所述程序和与所述程序相关的所述数据;
通过存储器控制器控制所述第一处理单元对所述第一存储器区的访问;
通过第二处理单元在第二存储器区中基于该与所述程序相关的数据构造存取表和在第三存储器区中基于该与所述程序相关的数据构造关键字表,所述存取表包括多个存取条目,每个所述存取条目包含存取关键字,和所述第一存储器区内与所述存取关键字相关的存储器空间的标识,所述关键字表包括多个关键字条目,每个所述关键字条目包含所述第一处理单元之一的标识,和与该所述第一处理单元之一相关的请求关键字;
通过所述第二处理单元控制所述第一处理单元对所述程序和与所述程序相关的所述数据的所述处理;
通过所述第二处理单元指示一个所述第一处理单元处理一个所述程序;
在处理该一个所述程序时从该一个所述第一处理单元发出请求到所述存储器控制器,以便访问所述第一存储器区内的存储位置;
响应所述请求,将所述关键字表中与该一个所述第一处理单元相关的请求关键字与所述存取表中的存取关键字相比较;
如果所述存储位置对应于与一个所述存取关键字相关的存储器空间,则基于所述关键字表中与该一个所述处理单元相关的请求关键字和所述存取表中的该一个所述存取关键字之间的比较的结果,来执行所述请求。
12.如权利要求11所述的计算机处理方法,还包括通过从所述第二处理单元向所述存储器控制器发出命令以便从所述第一存储器区向与该一个所述第一处理单元相关的局部存储器传送该一个所述程序,通过所述第二处理单元指示该一个所述第一处理单元处理该一个所述程序,并且此后通过该一个所述第一处理单元处理来自所述局部存储器的该一个所述程序。
13.如权利要求11所述的计算机处理方法,其中该一个所述存取关键字包括多个第一位,并且与该一个所述第一处理单元相关的所述请求关键字包括多个第二位,还包括通过所述存储器控制器仅在所有所述多个第一位与所有所述多个第二位匹配时执行所述请求。
14.如权利要求11所述的计算机处理方法,其中该一个所述存取关键字包括多个第一位,和关键字掩码,并且与该一个所述第一处理单元相关的所述请求关键字包括多个第二位,还包括通过所述存储器控制器仅在所有所述多个第一位与所述多个第二位匹配,或者所述多个第一位中不与所述多个第二位匹配的所有位被所述关键字掩码屏蔽时,执行所述请求。
15.如权利要求11所述的计算机处理方法,其中该一个所述存取关键字包括多个第一位,并且与该一个所述第一处理单元相关的所述请求关键字包括多个第二位,和关键字掩码,还包括通过所述存储器控制器仅在所有所述多个第二位与所述多个第一位匹配,或者所述多个第二位中不与所述多个第一位匹配的所有位被所述关键字掩码屏蔽时,执行所述请求。
16.如权利要求11所述的计算机处理方法,其中每个所述关键字条目还包含关键字掩码。
17.如权利要求11所述的计算机处理方法,其中每个所述存取条目还包含关键字掩码。
18.如权利要求11所述的计算机处理方法,其中每个所述关键字条目还包含关键字掩码,而每个所述存取条目还包含关键字掩码。
19.如权利要求11所述的计算机处理方法,其中每个所述存取条目还包含基位置条目和尺寸条目,所述基位置条目提供所述存储器空间中与所述存取条目相关的所述第一存储器区内的起始地址,而所述尺寸条目提供所述存储器空间中与所述存取条目相关的所述第一存储器区内的尺寸。
20.如权利要求11所述的计算机处理方法,其中所述第一存储器区在动态随机存取存储器中,并且在所述计算机的主存储器中。
21.一种计算机处理系统,所述处理系统包括:
第一存储器区,用于存储程序和与所述程序相关的数据,所述第一存储器区包括多个可寻址存储位置,每个所述可寻址存储位置包括与所述可寻址存储位置相关的附加存储段,并且包含针对所述可寻址存储位置的存取关键字;
多个第一处理单元,用于处理所述程序和与所述程序相关的所述数据;
存储器控制器,用于控制所述第一处理单元对所述第一存储器区的访问;
第二存储器区,用于存储包括多个关键字条目的关键字表,每个所述关键字条目包含所述第一处理单元之一的标识,和与该所述第一处理单元之一相关的请求关键字;
第二处理单元,用于控制所述第一处理单元对所述程序和与所述程序相关的所述数据的所述处理,所述第二处理单元可以基于该与所述程序相关的数据分配和维护所述存取关键字,并且基于该与所述程序相关的数据构造和维护所述关键字表,所述第二处理单元还可以指示一个所述第一处理单元处理一个所述程序,
该一个所述第一处理单元在处理该一个所述程序时可以向所述存储器控制器发出请求以便访问一个所述可寻址存储位置,
所述存储器控制器可以响应所述请求,基于所述关键字表中与该一个所述第一处理单元相关的请求关键字和附加存储段中包含的、和该一个所述可寻址存储位置相关的存取关键字之间的比较的结果,来执行所述请求。
22.如权利要求21所述的计算机处理系统,还包括多个局部存储器,每个所述局部存储器与所述第一处理单元中的相应一个相关,其中通过指示所述存储器控制器从所述第一存储器区向与该一个所述第一处理单元相关的局部存储器传送该一个所述程序,所述第二处理单元可以指示该一个所述第一处理单元处理该一个所述程序,该一个所述第一处理单元此后处理来自所述局部存储器的该一个所述程序。
23.如权利要求21所述的计算机处理系统,其中所述存储段中包含的、与该一个所述可寻址存储位置相关的所述存取关键字包括多个第一位,并且与该一个所述第一处理单元相关的所述请求关键字包括多个第二位,所述存储器控制器可以仅在所有所述多个第一位与所有所述多个第二位匹配时执行所述请求。
24.如权利要求21所述的计算机处理系统,其中所述存储段中包含的、与该一个所述可寻址存储位置相关的所述存取关键字包括多个第一位,和关键字掩码,并且与该一个所述第一处理单元相关的所述请求关键字包括多个第二位,所述存储器控制器可以仅在所有所述多个第一位与所述多个第二位匹配,或者所述多个第一位中不与所述多个第二位匹配的所有位被所述关键字掩码屏蔽时,执行所述请求。
25.如权利要求21所述的计算机处理系统,其中所述存储段中包含的、与该一个所述可寻址存储位置相关的所述存取关键字包括多个第一位,并且与该一个所述第一处理单元相关的所述请求关键字包括多个第二位,和关键字掩码,所述存储器控制器可以仅在所有所述多个第二位与所述多个第一位匹配,或者所述多个第二位中不与所述多个第一位匹配的所有位被所述关键字掩码屏蔽时,执行所述请求。
26.如权利要求21所述的计算机处理系统,其中每个所述关键字条目还包含关键字掩码。
27.如权利要求21所述的计算机处理系统,其中每个所述附加存储段还包含关键字掩码。
28.如权利要求21所述的计算机处理系统,其中每个所述关键字条目还包含关键字掩码,而每个所述附加存储段还包含关键字掩码。
29.如权利要求21所述的计算机处理系统,其中每个所述附加存储段还包含状态信息,所述状态信息有关与所述附加存储段相关的可寻址存储位置中存储的数据的状态。
30.如权利要求21所述的计算机处理系统,其中所述第一存储器区在动态随机存取存储器中,并且在所述计算机处理系统的主存储器中。
31.一种计算机处理方法,所述方法包括:
在第一存储器区中存储程序和与所述程序相关的数据,所述第一存储器区包含多个可寻址存储位置,每个所述可寻址存储位置包含与所述可寻址存储位置相关的附加存储段;
在每个所述可寻址存储位置的每个所述附加存储段中存储针对所述可寻址存储位置的存取关键字;
通过多个第一处理单元处理所述程序和与所述程序相关的所述数据;
通过存储器控制器控制所述第一处理单元对所述第一存储器区的访问;
在第二存储器区中存储包括多个关键字条目的关键字表,每个所述关键字条目包含所述第一处理单元之一的标识,和与该所述第一处理单元之一相关的请求关键字;
通过所述第二处理单元控制所述第一处理单元对所述程序和与所述程序相关的所述数据的所述处理;
通过所述第二处理单元基于该与所述程序相关的数据分配每个所述存取关键字;
通过所述第二处理单元基于该与所述程序相关的数据构造所述关键字表;
通过所述第二处理单元指示一个所述第一处理单元处理一个所述程序;
在处理该一个所述程序时从该一个所述第一处理单元发出请求到所述存储器控制器,以便访问一个所述可寻址存储位置;
响应所述请求,将所述关键字表中与该一个所述第一处理单元相关的请求关键字,与附加存储段中包含的、与该一个所述可寻址存储位置相关的存取关键字相比较;
基于所述关键字表中与该一个所述第一处理单元相关的请求关键字和所述附加存储段中包含的、与该一个所述可寻址存储位置相关的所述存取关键字之间的比较的结果,执行所述请求。
32.如权利要求31所述的计算机处理方法,还包括通过指示所述存储器控制器从所述第一存储器区向与该一个所述第一处理单元相关的局部存储器传送该一个所述程序,通过所述第二处理单元指示该一个所述第一处理单元处理该一个所述程序,并且此后通过该一个所述第一处理单元处理来自所述局部存储器的该一个所述程序。
33.如权利要求31所述的计算机处理方法,其中所述附加存储段中包含的、与该一个所述可寻址存储位置相关的所述存取关键字包括多个第一位,并且与该一个所述第一处理单元相关的所述请求关键字包括多个第二位,还包括通过所述存储器控制器仅在所有所述多个第一位与所有所述多个第二位匹配时执行所述请求。
34.如权利要求31所述的计算机处理方法,其中所述附加存储段中包含的、与该一个所述可寻址存储位置相关的所述存取关键字包括多个第一位,和关键字掩码,并且与该一个所述第一处理单元相关的所述请求关键字包括多个第二位,还包括通过所述存储器控制器仅在所有所述多个第一位与所述多个第二位匹配,或者所述多个第一位中不与所述多个第二位匹配的所有位被所述关键字掩码屏蔽时,执行所述请求。
35.如权利要求31所述的计算机处理方法,其中所述附加存储段中包含的、与该一个所述可寻址存储位置相关的所述存取关键字包括多个第一位,并且与该一个所述第一处理单元相关的所述请求关键字包括多个第二位,和关键字掩码,还包括通过所述存储器控制器仅在所有所述多个第二位与所述多个第一位匹配,或者所述多个第二位中不与所述多个第一位匹配的所有位被所述关键字掩码屏蔽时,执行所述请求。
36.如权利要求31所述的计算机处理方法,其中每个所述关键字条目还包含关键字掩码。
37.如权利要求31所述的计算机处理方法,其中每个所述附加存储段还包含关键字掩码。
38.如权利要求31所述的计算机处理方法,其中每个所述关键字条目还包含关键字掩码,而每个所述附加存储段还包含关键字掩码。
39.如权利要求31所述的计算机处理方法,其中每个所述附加存储段还包含状态信息,所述状态信息有关与所述附加存储段相关的可寻址存储位置中存储的数据的状态。
40.如权利要求31所述的计算机处理方法,其中所述第一存储器区在动态随机存取存储器中,并且在所述计算机的主存储器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/816,020 | 2001-03-22 | ||
US09/816,020 US6526491B2 (en) | 2001-03-22 | 2001-03-22 | Memory protection system and method for computer architecture for broadband networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1496511A CN1496511A (zh) | 2004-05-12 |
CN1291327C true CN1291327C (zh) | 2006-12-20 |
Family
ID=25219464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028063481A Expired - Lifetime CN1291327C (zh) | 2001-03-22 | 2002-03-19 | 计算机处理系统和计算机处理方法 |
Country Status (9)
Country | Link |
---|---|
US (7) | US6526491B2 (zh) |
EP (1) | EP1370948B1 (zh) |
JP (2) | JP3454808B2 (zh) |
KR (1) | KR100890134B1 (zh) |
CN (1) | CN1291327C (zh) |
DE (1) | DE60236416D1 (zh) |
ES (1) | ES2346045T3 (zh) |
TW (1) | TW556087B (zh) |
WO (1) | WO2002077826A1 (zh) |
Families Citing this family (240)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7162493B2 (en) * | 2000-02-23 | 2007-01-09 | Penta Trading Ltd. | Systems and methods for generating and providing previews of electronic files such as web files |
US7194557B1 (en) * | 2004-11-08 | 2007-03-20 | Palmsource, Inc. | Data exchange between a handheld device and another computer system using an exchange manager via synchronization |
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 |
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 |
US7231500B2 (en) * | 2001-03-22 | 2007-06-12 | Sony Computer Entertainment Inc. | External data interface in a 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 |
US6526491B2 (en) | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
US6865639B2 (en) * | 2001-12-19 | 2005-03-08 | Northrop Grumman Corporation | Scalable self-routing superconductor switch |
US6980209B1 (en) * | 2002-06-14 | 2005-12-27 | Nvidia Corporation | Method and system for scalable, dataflow-based, programmable processing of graphics data |
US8108656B2 (en) * | 2002-08-29 | 2012-01-31 | Qst Holdings, Llc | Task definition for specifying resource requirements |
US7225431B2 (en) * | 2002-10-24 | 2007-05-29 | International Business Machines Corporation | Method and apparatus for setting breakpoints when debugging integrated executables in a heterogeneous architecture |
US7213123B2 (en) * | 2002-10-24 | 2007-05-01 | International Business Machines Corporation | Method and apparatus for mapping debugging information when debugging integrated executables in a heterogeneous architecture |
US7243333B2 (en) * | 2002-10-24 | 2007-07-10 | International Business Machines Corporation | Method and apparatus for creating and executing integrated executables in a heterogeneous architecture |
US7222332B2 (en) * | 2002-10-24 | 2007-05-22 | International Business Machines Corporation | Method and apparatus for overlay management within an integrated executable for a heterogeneous architecture |
US7225301B2 (en) * | 2002-11-22 | 2007-05-29 | Quicksilver Technologies | External memory controller node |
JP2004220070A (ja) * | 2003-01-09 | 2004-08-05 | Japan Science & Technology Agency | コンテキスト切り替え方法及び装置、中央演算装置、コンテキスト切り替えプログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体 |
US7577636B2 (en) * | 2003-05-28 | 2009-08-18 | Fernandez Dennis S | Network-extensible reconfigurable media appliance |
JP4028444B2 (ja) * | 2003-06-27 | 2007-12-26 | 株式会社東芝 | スケジューリング方法およびリアルタイム処理システム |
JP4624732B2 (ja) * | 2003-07-16 | 2011-02-02 | パナソニック株式会社 | アクセス方法 |
US11106424B2 (en) | 2003-07-28 | 2021-08-31 | Sonos, Inc. | Synchronizing operations among a plurality of independently clocked digital data processing devices |
US8290603B1 (en) | 2004-06-05 | 2012-10-16 | Sonos, Inc. | User interfaces for controlling and manipulating groupings in a multi-zone media system |
US8234395B2 (en) | 2003-07-28 | 2012-07-31 | Sonos, Inc. | System and method for synchronizing operations among a plurality of independently clocked digital data processing devices |
US11650784B2 (en) | 2003-07-28 | 2023-05-16 | Sonos, Inc. | Adjusting volume levels |
US8086752B2 (en) | 2006-11-22 | 2011-12-27 | Sonos, Inc. | Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices that independently source digital data |
US11294618B2 (en) | 2003-07-28 | 2022-04-05 | Sonos, Inc. | Media player system |
US10613817B2 (en) | 2003-07-28 | 2020-04-07 | Sonos, Inc. | Method and apparatus for displaying a list of tracks scheduled for playback by a synchrony group |
US11106425B2 (en) | 2003-07-28 | 2021-08-31 | Sonos, Inc. | Synchronizing operations among a plurality of independently clocked digital data processing devices |
US7523157B2 (en) * | 2003-09-25 | 2009-04-21 | International Business Machines Corporation | Managing a plurality of processors as devices |
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 |
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 |
US7318218B2 (en) * | 2003-09-25 | 2008-01-08 | International Business Machines Corporation | System and method for processor thread for software debugging |
US7236998B2 (en) * | 2003-09-25 | 2007-06-26 | International Business Machines Corporation | System and method for solving a large system of dense linear equations |
US20050071828A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | System and method for compiling source code for multi-processor environments |
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 |
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 |
US20050071578A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | System and method for manipulating data with a plurality of processors |
US7516456B2 (en) | 2003-09-25 | 2009-04-07 | International Business Machines Corporation | Asymmetric heterogeneous multi-threaded operating system |
US7415703B2 (en) * | 2003-09-25 | 2008-08-19 | International Business Machines Corporation | Loading software on a plurality of processors |
US20050086040A1 (en) * | 2003-10-02 | 2005-04-21 | Curtis Davis | System incorporating physics processing unit |
US7739479B2 (en) * | 2003-10-02 | 2010-06-15 | Nvidia Corporation | Method for providing physics simulation data |
US7895411B2 (en) * | 2003-10-02 | 2011-02-22 | Nvidia Corporation | Physics processing unit |
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 |
US7614053B2 (en) * | 2004-02-20 | 2009-11-03 | Sony Computer Entertainment Inc. | Methods and apparatus for task management in a multi-processor system |
JP2005235019A (ja) * | 2004-02-20 | 2005-09-02 | Sony Corp | ネットワークシステム、分散処理方法、情報処理装置 |
US8028292B2 (en) | 2004-02-20 | 2011-09-27 | Sony Computer Entertainment Inc. | Processor task migration over a network in a multi-processor system |
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 | ソニー株式会社 | 情報処理システム及び情報処理方法、並びにコンピュータ・プログラム |
US7657186B2 (en) * | 2004-03-05 | 2010-02-02 | Finisar Corporation | Consistency checking over internal information in an optical transceiver |
CN100418074C (zh) * | 2004-03-05 | 2008-09-10 | 菲尼萨公司 | 光学收发机中的分级和字节可配置存储器 |
US7657667B2 (en) * | 2004-03-25 | 2010-02-02 | International Business Machines Corporation | Method to provide cache management commands for a DMA controller |
US8224639B2 (en) | 2004-03-29 | 2012-07-17 | Sony Computer Entertainment Inc. | Methods and apparatus for achieving thermal management using processing task scheduling |
US9374607B2 (en) | 2012-06-26 | 2016-06-21 | Sonos, Inc. | Media playback system with guest access |
US9977561B2 (en) | 2004-04-01 | 2018-05-22 | Sonos, Inc. | Systems, methods, apparatus, and articles of manufacture to provide guest access |
US20050251649A1 (en) * | 2004-04-23 | 2005-11-10 | Sony Computer Entertainment Inc. | Methods and apparatus for address map optimization on a multi-scalar extension |
US7437536B2 (en) | 2004-05-03 | 2008-10-14 | Sony Computer Entertainment Inc. | Systems and methods for task migration |
US20050251644A1 (en) * | 2004-05-06 | 2005-11-10 | Monier Maher | Physics processing unit instruction set architecture |
US7526608B2 (en) * | 2004-05-28 | 2009-04-28 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a software implemented cache memory |
US8326951B1 (en) | 2004-06-05 | 2012-12-04 | Sonos, Inc. | Establishing a secure wireless network with minimum human intervention |
US8868698B2 (en) | 2004-06-05 | 2014-10-21 | Sonos, Inc. | Establishing a secure wireless network with minimum human intervention |
JP4465598B2 (ja) | 2004-07-05 | 2010-05-19 | ソニー株式会社 | 集積回路およびその処理制御方法、並びに、プログラム |
JP4599923B2 (ja) * | 2004-07-16 | 2010-12-15 | ソニー株式会社 | 情報処理システム及び情報処理方法、並びにコンピュータプログラム |
JP2006031480A (ja) * | 2004-07-16 | 2006-02-02 | Sony Corp | 情報処理システム及び情報処理方法、並びにコンピュータプログラム |
JP2006033646A (ja) | 2004-07-20 | 2006-02-02 | Sony Corp | 情報処理システム及び情報処理方法、並びにコンピュータプログラム |
JP2006031525A (ja) | 2004-07-20 | 2006-02-02 | Sony Corp | 情報処理装置および情報処理方法、並びに、プログラム |
US7779177B2 (en) * | 2004-08-09 | 2010-08-17 | Arches Computing Systems | Multi-processor reconfigurable computing system |
US7304646B2 (en) * | 2004-08-19 | 2007-12-04 | Sony Computer Entertainment Inc. | Image data structure for direct memory access |
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 |
WO2006025322A1 (ja) * | 2004-08-30 | 2006-03-09 | Matsushita Electric Industrial Co., Ltd. | 記録装置 |
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 |
EP1805627B1 (en) * | 2004-10-15 | 2011-02-16 | Sony Computer Entertainment Inc. | Methods and apparatus for supporting multiple configurations in a multi-processor system |
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 |
US20060129999A1 (en) * | 2004-11-16 | 2006-06-15 | Sony Computer Entertainment Inc. | Methods and apparatus for using bookmarks in a trace buffer |
JP4606142B2 (ja) * | 2004-12-01 | 2011-01-05 | 株式会社ソニー・コンピュータエンタテインメント | スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム |
US7707385B2 (en) * | 2004-12-14 | 2010-04-27 | Sony Computer Entertainment Inc. | Methods and apparatus for address translation from an external device to a memory of a processor |
US20060126770A1 (en) * | 2004-12-15 | 2006-06-15 | Takeshi Yamazaki | Methods and apparatus for providing an asynchronous boundary between internal busses in a multi-processor device |
US7689814B2 (en) | 2004-12-20 | 2010-03-30 | Sony Computer Entertainment Inc. | Methods and apparatus for disabling error countermeasures in a processing system |
US7698473B2 (en) * | 2005-01-05 | 2010-04-13 | Sony Computer Entertainment Inc. | Methods and apparatus for list transfers using DMA transfers in a multi-processor system |
US7386687B2 (en) * | 2005-01-07 | 2008-06-10 | Sony Computer Entertainment Inc. | Methods and apparatus for managing a shared memory in a multi-processor system |
US20060155955A1 (en) * | 2005-01-10 | 2006-07-13 | Gschwind Michael K | SIMD-RISC processor module |
US7644255B2 (en) * | 2005-01-13 | 2010-01-05 | Sony Computer Entertainment Inc. | Method and apparatus for enable/disable control of SIMD processor slices |
US20060179436A1 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a task change application programming interface |
WO2006082990A1 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for secure processor collaboration in a multi-processor system |
WO2006082985A2 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a secure booting sequence in a processor |
US20060177122A1 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Method and apparatus for particle manipulation using graphics processing |
WO2006082994A2 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for facilitating a secure session between a processor and an external device |
WO2006082988A2 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for facilitating a secure processor functional transition |
US20060179275A1 (en) * | 2005-02-08 | 2006-08-10 | Takeshi Yamazaki | Methods and apparatus for processing instructions in a multi-processor system |
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 |
US7774512B2 (en) | 2005-02-08 | 2010-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for hybrid DMA queue and DMA table |
US7818724B2 (en) * | 2005-02-08 | 2010-10-19 | Sony Computer Entertainment Inc. | Methods and apparatus for instruction set emulation |
US7418541B2 (en) * | 2005-02-10 | 2008-08-26 | International Business Machines Corporation | Method for indirect access to a support interface for memory-mapped resources to reduce system connectivity from out-of-band support processor |
US7467204B2 (en) * | 2005-02-10 | 2008-12-16 | International Business Machines Corporation | Method for providing low-level hardware access to in-band and out-of-band firmware |
US20060184296A1 (en) * | 2005-02-17 | 2006-08-17 | Hunter Engineering Company | Machine vision vehicle wheel alignment systems |
US7685601B2 (en) * | 2005-02-28 | 2010-03-23 | Sony Computer Entertainment Inc. | Methods and apparatus for segmented stack management in a processor system |
US7395411B2 (en) * | 2005-03-14 | 2008-07-01 | Sony Computer Entertainment Inc. | Methods and apparatus for improving processing performance by controlling latch points |
US20060206732A1 (en) * | 2005-03-14 | 2006-09-14 | Sony Computer Entertainment Inc. | Methods and apparatus for improving processing performance using instruction dependency check depth |
JP5268144B2 (ja) * | 2005-03-17 | 2013-08-21 | ルブリゾル アドバンスド マテリアルズ, インコーポレイテッド | ナノ粒子/ビニル重合体複合材料 |
US7689784B2 (en) * | 2005-03-18 | 2010-03-30 | Sony Computer Entertainment Inc. | Methods and apparatus for dynamic linking program overlay |
US7451249B2 (en) * | 2005-03-21 | 2008-11-11 | Hewlett-Packard Development Company, L.P. | Method and apparatus for direct input and output in a virtual machine environment containing a guest operating system |
US7818507B2 (en) | 2005-04-04 | 2010-10-19 | Sony Computer Entertainment Inc. | Methods and apparatus for facilitating coherency management in distributed multi-processor system |
US7650266B2 (en) * | 2005-05-09 | 2010-01-19 | Nvidia Corporation | Method of simulating deformable object using geometrically motivated model |
US7409570B2 (en) * | 2005-05-10 | 2008-08-05 | Sony Computer Entertainment Inc. | Multiprocessor system for decrypting and resuming execution of an executing program after transferring the program code between two processors via a shared main memory upon occurrence of predetermined condition |
US20060259733A1 (en) * | 2005-05-13 | 2006-11-16 | Sony Computer Entertainment Inc. | Methods and apparatus for resource management in a logically partitioned processing environment |
US7444525B2 (en) * | 2005-05-25 | 2008-10-28 | Sony Computer Entertainment Inc. | Methods and apparatus for reducing leakage current in a disabled SOI circuit |
JP5079988B2 (ja) * | 2005-06-13 | 2012-11-21 | オリンパス株式会社 | 分散処理システム、分散処理方法及びプログラム |
US8037474B2 (en) * | 2005-09-27 | 2011-10-11 | Sony Computer Entertainment Inc. | Task manager with stored task definition having pointer to a memory address containing required code data related to the task for execution |
US7522168B2 (en) * | 2005-09-27 | 2009-04-21 | Sony Computer Entertainment Inc. | Cell processor task and data management |
US7398482B2 (en) * | 2005-07-28 | 2008-07-08 | International Business Machines Corporation | Modular design method and apparatus |
US20070083870A1 (en) * | 2005-07-29 | 2007-04-12 | Tomochika Kanakogi | Methods and apparatus for task sharing among a plurality of processors |
JP4536618B2 (ja) * | 2005-08-02 | 2010-09-01 | 富士通セミコンダクター株式会社 | リコンフィグ可能な集積回路装置 |
US7659899B2 (en) * | 2005-08-08 | 2010-02-09 | Via Technologies, Inc. | System and method to manage data processing stages of a logical graphics pipeline |
US20070030280A1 (en) * | 2005-08-08 | 2007-02-08 | Via Technologies, Inc. | Global spreader and method for a parallel graphics processor |
US7659898B2 (en) * | 2005-08-08 | 2010-02-09 | Via Technologies, Inc. | Multi-execution resource graphics processor |
US20070030277A1 (en) * | 2005-08-08 | 2007-02-08 | Via Technologies, Inc. | Method for processing vertex, triangle, and pixel graphics data packets |
US7500039B2 (en) | 2005-08-19 | 2009-03-03 | International Business Machines Corporation | Method for communicating with a processor event facility |
US7386636B2 (en) * | 2005-08-19 | 2008-06-10 | International Business Machines Corporation | System and method for communicating command parameters between a processor and a memory flow controller |
US7778271B2 (en) | 2005-08-19 | 2010-08-17 | International Business Machines Corporation | Method for communicating instructions and data between a processor and external devices |
US8316220B2 (en) * | 2005-09-27 | 2012-11-20 | Sony Computer Entertainment Inc. | Operating processors over a network |
US7506123B1 (en) * | 2005-09-27 | 2009-03-17 | Sony Computer Entertainment Inc. | Method and system for performing memory copy function on a cell processor |
US7734827B2 (en) * | 2005-09-27 | 2010-06-08 | Sony Computer Entertainment, Inc. | Operation of cell processors |
US7975269B2 (en) * | 2005-09-27 | 2011-07-05 | Sony Computer Entertainment Inc. | Parallel processor methods and apparatus |
US8141076B2 (en) * | 2005-09-27 | 2012-03-20 | Sony Computer Entertainment Inc. | Cell processor methods and apparatus |
US7644198B2 (en) * | 2005-10-07 | 2010-01-05 | International Business Machines Corporation | DMAC translation mechanism |
KR100866951B1 (ko) * | 2005-10-28 | 2008-11-05 | 삼성전자주식회사 | 메모리에 저장된 데이터를 보호할 수 있는 프로그래머블프로세서 및 방법 |
US8595747B2 (en) * | 2005-12-29 | 2013-11-26 | Sony Computer Entertainment Inc. | Efficient task scheduling by assigning fixed registers to scheduler |
US20070174411A1 (en) * | 2006-01-26 | 2007-07-26 | Brokenshire Daniel A | Apparatus and method for efficient communication of producer/consumer buffer status |
US7814166B2 (en) * | 2006-01-27 | 2010-10-12 | Sony Computer Entertainment Inc. | Methods and apparatus for virtualizing an address space |
US7768287B2 (en) | 2006-01-27 | 2010-08-03 | Sony Computer Enterainment Inc. | Methods and apparatus for managing defective processors through power gating |
US20070234385A1 (en) * | 2006-03-31 | 2007-10-04 | Rajendra Bopardikar | Cross-layer video quality manager |
CN101326501B (zh) * | 2006-04-06 | 2010-12-15 | 索尼株式会社 | 电桥、处理器单元、信息处理装置以及存取控制方法 |
US7886112B2 (en) * | 2006-05-24 | 2011-02-08 | Sony Computer Entertainment Inc. | Methods and apparatus for providing simultaneous software/hardware cache fill |
US8082289B2 (en) | 2006-06-13 | 2011-12-20 | Advanced Cluster Systems, Inc. | Cluster computing support for application programs |
US20090293072A1 (en) * | 2006-07-21 | 2009-11-26 | Sony Service Centre (Europe) N.V. | System having plurality of hardware blocks and method of operating the same |
US7676683B2 (en) * | 2006-08-24 | 2010-03-09 | Sony Computer Entertainment Inc. | Method and system for rebooting a processor in a multi-processor system |
US9202509B2 (en) | 2006-09-12 | 2015-12-01 | Sonos, Inc. | Controlling and grouping in a multi-zone media system |
US8483853B1 (en) | 2006-09-12 | 2013-07-09 | Sonos, Inc. | Controlling and manipulating groupings in a multi-zone media system |
US8788080B1 (en) | 2006-09-12 | 2014-07-22 | Sonos, Inc. | Multi-channel pairing in a media system |
US20080229143A1 (en) * | 2006-09-21 | 2008-09-18 | Sony Computer Entertainment Inc. | Management of available circuits to repair defective circuits |
US7917667B2 (en) * | 2006-09-22 | 2011-03-29 | Sony Computer Entertainment Inc. | Methods and apparatus for allocating DMA activity between a plurality of entities |
US7882379B2 (en) | 2006-09-22 | 2011-02-01 | Sony Computer Entertainment Inc. | Power consumption reduction in a multiprocessor system |
US7546405B2 (en) * | 2006-09-26 | 2009-06-09 | Sony Computer Entertainment Inc. | Methods and apparatus for dynamic grouping of requestors of resources in a multi-processor system |
US20080091886A1 (en) * | 2006-10-17 | 2008-04-17 | Sony Computer Entertainment Inc. | Dynamic Path Determination To An Address Concentrator |
US7693053B2 (en) * | 2006-11-15 | 2010-04-06 | Sony Computer Entertainment Inc. | Methods and apparatus for dynamic redistribution of tokens in a multi-processor system |
JP5079342B2 (ja) * | 2007-01-22 | 2012-11-21 | ルネサスエレクトロニクス株式会社 | マルチプロセッサ装置 |
US8856782B2 (en) * | 2007-03-01 | 2014-10-07 | George Mason Research Foundation, Inc. | On-demand disposable virtual work system |
US8001390B2 (en) * | 2007-05-09 | 2011-08-16 | Sony Computer Entertainment Inc. | Methods and apparatus for secure programming and storage of data using a multiprocessor in a trusted mode |
US8001592B2 (en) | 2007-05-09 | 2011-08-16 | Sony Computer Entertainment Inc. | Methods and apparatus for accessing resources using a multiprocessor in a trusted mode |
US7788467B2 (en) | 2007-05-09 | 2010-08-31 | Sony Computer Entertainment Inc. | Methods and apparatus for latency control in a multiprocessor system |
US8726041B2 (en) * | 2007-05-09 | 2014-05-13 | Sony Corporation | Methods and apparatus for generating a random number in one or more isolated processors |
US7958371B2 (en) * | 2007-05-09 | 2011-06-07 | Sony Computer Entertainment Inc. | Methods and apparatus for secure operating system distribution in a multiprocessor system |
EP2026147A1 (de) * | 2007-08-13 | 2009-02-18 | Siemens Aktiengesellschaft | Verfahren zum Übermitteln von Telegrammen zwischen einer Steuereinrichtung und einem Peripherieelement über ein Zwischengerät |
CN101855606B (zh) * | 2007-11-13 | 2012-08-29 | 惠普开发有限公司 | 从功率管理状态启动应用程序 |
US20100037020A1 (en) * | 2008-08-07 | 2010-02-11 | Seagate Technology Llc | Pipelined memory access method and architecture therefore |
US20100058016A1 (en) * | 2008-08-26 | 2010-03-04 | Jari Nikara | Method, apparatus and software product for multi-channel memory sandbox |
US9098698B2 (en) | 2008-09-12 | 2015-08-04 | George Mason Research Foundation, Inc. | Methods and apparatus for application isolation |
US10880340B2 (en) | 2008-11-26 | 2020-12-29 | Free Stream Media Corp. | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
US10631068B2 (en) | 2008-11-26 | 2020-04-21 | Free Stream Media Corp. | Content exposure attribution based on renderings of related content across multiple devices |
US10334324B2 (en) | 2008-11-26 | 2019-06-25 | Free Stream Media Corp. | Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device |
US9961388B2 (en) | 2008-11-26 | 2018-05-01 | David Harrison | Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements |
US10977693B2 (en) | 2008-11-26 | 2021-04-13 | Free Stream Media Corp. | Association of content identifier of audio-visual data with additional data through capture infrastructure |
US8180891B1 (en) | 2008-11-26 | 2012-05-15 | Free Stream Media Corp. | Discovery, access control, and communication with networked services from within a security sandbox |
US9386356B2 (en) | 2008-11-26 | 2016-07-05 | Free Stream Media Corp. | Targeting with television audience data across multiple screens |
US10419541B2 (en) | 2008-11-26 | 2019-09-17 | Free Stream Media Corp. | Remotely control devices over a network without authentication or registration |
US10567823B2 (en) | 2008-11-26 | 2020-02-18 | Free Stream Media Corp. | Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device |
US9519772B2 (en) | 2008-11-26 | 2016-12-13 | Free Stream Media Corp. | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
US9026668B2 (en) | 2012-05-26 | 2015-05-05 | Free Stream Media Corp. | Real-time and retargeted advertising on multiple screens of a user watching television |
US9154942B2 (en) | 2008-11-26 | 2015-10-06 | Free Stream Media Corp. | Zero configuration communication between a browser and a networked media device |
US9986279B2 (en) | 2008-11-26 | 2018-05-29 | Free Stream Media Corp. | Discovery, access control, and communication with networked services |
US8555089B2 (en) * | 2009-01-08 | 2013-10-08 | Panasonic Corporation | Program execution apparatus, control method, control program, and integrated circuit |
US8839422B2 (en) | 2009-06-30 | 2014-09-16 | George Mason Research Foundation, Inc. | Virtual browsing environment |
US8225061B2 (en) | 2009-07-02 | 2012-07-17 | Apple Inc. | Method and apparatus for protected content data processing |
US9015440B2 (en) | 2009-09-11 | 2015-04-21 | Micron Technology, Inc. | Autonomous memory subsystem architecture |
US9779057B2 (en) | 2009-09-11 | 2017-10-03 | Micron Technology, Inc. | Autonomous memory architecture |
WO2012015432A1 (en) * | 2010-07-30 | 2012-02-02 | Hewlett-Packard Development Company, L.P. | Computer system and method for sharing computer memory |
US11429343B2 (en) | 2011-01-25 | 2022-08-30 | Sonos, Inc. | Stereo playback configuration and control |
US11265652B2 (en) | 2011-01-25 | 2022-03-01 | Sonos, Inc. | Playback device pairing |
US9081959B2 (en) | 2011-12-02 | 2015-07-14 | Invincea, Inc. | Methods and apparatus for control and detection of malicious content using a sandbox environment |
TWI483098B (zh) * | 2012-02-23 | 2015-05-01 | Acer Inc | 電腦系統及其功率分享方法 |
JP5598493B2 (ja) * | 2012-03-30 | 2014-10-01 | 富士通株式会社 | 情報処理装置、演算装置および情報転送方法 |
US9729115B2 (en) | 2012-04-27 | 2017-08-08 | Sonos, Inc. | Intelligently increasing the sound level of player |
US9348385B2 (en) | 2012-07-09 | 2016-05-24 | L. Pierre deRochement | Hybrid computing module |
US9008330B2 (en) | 2012-09-28 | 2015-04-14 | Sonos, Inc. | Crossover frequency adjustments for audio speakers |
US9510055B2 (en) | 2013-01-23 | 2016-11-29 | Sonos, Inc. | System and method for a media experience social interface |
CN103150286A (zh) * | 2013-03-09 | 2013-06-12 | 郏惠忠 | 一种智能计算机系统 |
US9307508B2 (en) | 2013-04-29 | 2016-04-05 | Google Technology Holdings LLC | Systems and methods for syncronizing multiple electronic devices |
CN104375946B (zh) * | 2013-08-16 | 2018-04-20 | 华为技术有限公司 | 一种数据处理的方法及装置 |
US9288596B2 (en) | 2013-09-30 | 2016-03-15 | Sonos, Inc. | Coordinator device for paired or consolidated players |
US20150095679A1 (en) | 2013-09-30 | 2015-04-02 | Sonos, Inc. | Transitioning A Networked Playback Device Between Operating Modes |
US9720576B2 (en) | 2013-09-30 | 2017-08-01 | Sonos, Inc. | Controlling and displaying zones in a multi-zone system |
US9654545B2 (en) | 2013-09-30 | 2017-05-16 | Sonos, Inc. | Group coordinator device selection |
US10003675B2 (en) | 2013-12-02 | 2018-06-19 | Micron Technology, Inc. | Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data |
US9300647B2 (en) | 2014-01-15 | 2016-03-29 | Sonos, Inc. | Software application and zones |
US9313591B2 (en) | 2014-01-27 | 2016-04-12 | Sonos, Inc. | Audio synchronization among playback devices using offset information |
US20150220498A1 (en) | 2014-02-05 | 2015-08-06 | Sonos, Inc. | Remote Creation of a Playback Queue for a Future Event |
US9226087B2 (en) | 2014-02-06 | 2015-12-29 | Sonos, Inc. | Audio output balancing during synchronized playback |
US9226073B2 (en) | 2014-02-06 | 2015-12-29 | Sonos, Inc. | Audio output balancing during synchronized playback |
US9679054B2 (en) | 2014-03-05 | 2017-06-13 | Sonos, Inc. | Webpage media playback |
US10587693B2 (en) | 2014-04-01 | 2020-03-10 | Sonos, Inc. | Mirrored queues |
US20150324552A1 (en) | 2014-05-12 | 2015-11-12 | Sonos, Inc. | Share Restriction for Media Items |
US20150356084A1 (en) | 2014-06-05 | 2015-12-10 | Sonos, Inc. | Social Queue |
US9874997B2 (en) | 2014-08-08 | 2018-01-23 | Sonos, Inc. | Social playback queues |
WO2016049342A1 (en) | 2014-09-24 | 2016-03-31 | Sonos, Inc. | Social media connection recommendations based on playback information |
US9690540B2 (en) | 2014-09-24 | 2017-06-27 | Sonos, Inc. | Social media queue |
US10645130B2 (en) | 2014-09-24 | 2020-05-05 | Sonos, Inc. | Playback updates |
US9959087B2 (en) | 2014-09-24 | 2018-05-01 | Sonos, Inc. | Media item context from social media |
US9860286B2 (en) | 2014-09-24 | 2018-01-02 | Sonos, Inc. | Associating a captured image with a media item |
US9723038B2 (en) | 2014-09-24 | 2017-08-01 | Sonos, Inc. | Social media connection recommendations based on playback information |
US9667679B2 (en) | 2014-09-24 | 2017-05-30 | Sonos, Inc. | Indicating an association between a social-media account and a media playback system |
US10868880B2 (en) | 2015-04-30 | 2020-12-15 | V2Com S.A. | Control system with persistent and transient data stores for registration, production and status data for networked devices |
US10761900B1 (en) * | 2015-04-30 | 2020-09-01 | V2Com S.A. | System and method for secure distributed processing across networks of heterogeneous processing nodes |
US10248376B2 (en) | 2015-06-11 | 2019-04-02 | Sonos, Inc. | Multiple groupings in a playback system |
US9886234B2 (en) | 2016-01-28 | 2018-02-06 | Sonos, Inc. | Systems and methods of distributing audio to one or more playback devices |
US10712997B2 (en) | 2016-10-17 | 2020-07-14 | Sonos, Inc. | Room association based on name |
JP2018156289A (ja) * | 2017-03-16 | 2018-10-04 | 東芝メモリ株式会社 | 共有メモリコントローラ、共有メモリモジュールおよびメモリ共有システム |
US10698686B2 (en) | 2017-11-14 | 2020-06-30 | International Business Machines Corporation | Configurable architectural placement control |
US10664181B2 (en) | 2017-11-14 | 2020-05-26 | International Business Machines Corporation | Protecting in-memory configuration state registers |
US10901738B2 (en) | 2017-11-14 | 2021-01-26 | International Business Machines Corporation | Bulk store and load operations of configuration state registers |
US10761751B2 (en) | 2017-11-14 | 2020-09-01 | International Business Machines Corporation | Configuration state registers grouped based on functional affinity |
US10592164B2 (en) | 2017-11-14 | 2020-03-17 | International Business Machines Corporation | Portions of configuration state registers in-memory |
US10552070B2 (en) | 2017-11-14 | 2020-02-04 | International Business Machines Corporation | Separation of memory-based configuration state registers based on groups |
US10558366B2 (en) | 2017-11-14 | 2020-02-11 | International Business Machines Corporation | Automatic pinning of units of memory |
US10761983B2 (en) | 2017-11-14 | 2020-09-01 | International Business Machines Corporation | Memory based configuration state registers |
US10642757B2 (en) | 2017-11-14 | 2020-05-05 | International Business Machines Corporation | Single call to perform pin and unpin operations |
US10635602B2 (en) | 2017-11-14 | 2020-04-28 | International Business Machines Corporation | Address translation prior to receiving a storage reference using the address to be translated |
US10496437B2 (en) | 2017-11-14 | 2019-12-03 | International Business Machines Corporation | Context switch by changing memory pointers |
CN109472133B (zh) * | 2017-12-01 | 2021-09-28 | 北京安天网络安全技术有限公司 | 一种沙箱监控方法和装置 |
Family Cites Families (145)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3576544A (en) | 1968-10-18 | 1971-04-27 | Ibm | Storage protection system |
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 |
US4314349A (en) | 1979-12-31 | 1982-02-02 | Goodyear Aerospace Corporation | Processing element for parallel array processors |
US4332009A (en) | 1980-01-21 | 1982-05-25 | Mostek Corporation | Memory protection system |
JPS5812613B2 (ja) | 1980-02-08 | 1983-03-09 | 工業技術院長 | 並列デ−タ処理装置 |
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 |
US4414624A (en) * | 1980-11-19 | 1983-11-08 | The United States Of America As Represented By The Secretary Of The Navy | Multiple-microcomputer processing |
JPS57176456A (en) * | 1981-04-22 | 1982-10-29 | Fanuc Ltd | Data processing system |
EP0063626B1 (en) | 1981-04-28 | 1985-07-17 | International Business Machines Corporation | Bus arrangement for interconnectiong circuit chips |
JPS5877404A (ja) | 1981-10-28 | 1983-05-10 | Heian Tekkosho:Kk | ハニカムの薄切削方法 |
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 |
CA1280829C (en) * | 1985-11-13 | 1991-02-26 | Toshio Matsumoto | Main storage access control system for virtual computing function system |
JPS6319058A (ja) | 1986-07-11 | 1988-01-26 | Fujitsu Ltd | メモリ装置 |
US4914657A (en) * | 1987-04-15 | 1990-04-03 | Allied-Signal Inc. | Operations controller for a fault tolerant multiple node processing system |
JP2960415B2 (ja) | 1987-05-22 | 1999-10-06 | 株式会社日立製作所 | 記憶保護方法および装置 |
JPS6412364A (en) | 1987-07-06 | 1989-01-17 | Nippon Telegraph & Telephone | System constitution control system |
JPS6412364U (zh) | 1987-07-11 | 1989-01-23 | ||
JPS6423342A (en) | 1987-07-20 | 1989-01-26 | Mitsubishi Electric Corp | Programmable controller |
JPH0719704Y2 (ja) | 1987-07-31 | 1995-05-10 | シャープ株式会社 | 生産ラインの生産管理装置 |
JP2677589B2 (ja) | 1988-02-26 | 1997-11-17 | 株式会社東芝 | 携帯可能電子装置およびicチップ |
US5056000A (en) * | 1988-06-21 | 1991-10-08 | International Parallel Machines, Inc. | Synchronized parallel processing with shared memory |
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 | 仮想計算機システムにおける実行制御方式 |
EP0424618A3 (en) * | 1989-10-24 | 1992-11-19 | International Business Machines Corporation | Input/output system |
US5037173A (en) * | 1989-11-22 | 1991-08-06 | Texas Instruments Incorporated | Optical interconnection network |
AU645785B2 (en) * | 1990-01-05 | 1994-01-27 | Maspar Computer Corporation | Parallel processor memory system |
US5357632A (en) | 1990-01-09 | 1994-10-18 | Hughes Aircraft Company | Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors |
ATE170642T1 (de) | 1990-06-15 | 1998-09-15 | Compaq Computer Corp | Mehrstufeneinschluss in mehrstufigen cache- speicherhierarchien |
US5093879A (en) * | 1990-06-22 | 1992-03-03 | International Business Machines Corporation | Electro-optical connectors |
US5144691A (en) | 1990-07-20 | 1992-09-01 | Cray Research, Inc. | Computer signal interconnect apparatus |
US5303369A (en) * | 1990-08-31 | 1994-04-12 | Texas Instruments Incorporated | Scheduling system for multiprocessor operating system |
EP0481735A3 (en) | 1990-10-19 | 1993-01-13 | Array Technology Corporation | Address protection circuit |
US5590345A (en) * | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
US5630162A (en) | 1990-11-13 | 1997-05-13 | International Business Machines Corporation | Array processor dotted communication network based on H-DOTs |
KR940004404B1 (ko) | 1990-11-30 | 1994-05-25 | 삼성전자 주식회사 | 불휘발성 반도체 메모리장치 |
US5131054A (en) * | 1991-01-09 | 1992-07-14 | Thinking Machines Corporation | Character recognition system using massively parallel computer that identifies a query character using degree of similarity with plurality of training characters of known identity |
JPH04284754A (ja) * | 1991-03-14 | 1992-10-09 | Fujitsu Ltd | Atm交換装置 |
JPH04288643A (ja) | 1991-03-18 | 1992-10-13 | Nec Corp | マルチプロセッサシステムのメモリマッピング方式 |
US5519875A (en) * | 1991-08-08 | 1996-05-21 | Hitachi, Ltd. | Distributed processing system for modules, each having modularized objects |
US5404563A (en) * | 1991-08-28 | 1995-04-04 | International Business Machines Corporation | Scheduling normally interchangeable facilities in multiprocessor computer systems |
JPH0554009A (ja) | 1991-08-29 | 1993-03-05 | Nec Eng Ltd | プログラムロード方式 |
US5361370A (en) * | 1991-10-24 | 1994-11-01 | Intel Corporation | Single-instruction multiple-data processor having dual-ported local memory architecture for simultaneous data transmission on local memory ports and global port |
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 |
JPH05242057A (ja) | 1992-02-27 | 1993-09-21 | Sanyo Electric Co Ltd | マルチプロセッサシステムの起動方式 |
JPH05324589A (ja) * | 1992-03-25 | 1993-12-07 | Nippon Sheet Glass Co Ltd | 並列コンピュータ装置および光結合装置 |
JPH0612333A (ja) | 1992-06-25 | 1994-01-21 | Hitachi Ltd | 情報処理装置の記憶保護方式 |
US5394524A (en) * | 1992-08-07 | 1995-02-28 | International Business Machines Corporation | Method and apparatus for processing two graphics data streams in parallel |
EP0610583A1 (en) * | 1993-02-08 | 1994-08-17 | International Business Machines Corporation | Multizone relocation facility computer memory system |
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 |
US5487146A (en) * | 1994-03-08 | 1996-01-23 | Texas Instruments Incorporated | Plural memory access address generation employing guide table entries forming linked list |
US5815403A (en) | 1994-04-19 | 1998-09-29 | Lsi Logic Corporation | Fail-safe distributive processing method for producing a highest fitness cell placement for an integrated circuit chip |
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 | 複数プロセツサシステム |
US5754436A (en) * | 1994-12-22 | 1998-05-19 | Texas Instruments Incorporated | Adaptive power management processes, circuits and systems |
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 | 甲府日本電気株式会社 | クラスタ構成の並列計算機 |
CA2170468A1 (en) | 1995-02-28 | 1996-08-29 | Noriyuki Ando | Multi-processor system with virtually addressable communication registers and controlling method thereof |
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 |
US6331856B1 (en) * | 1995-11-22 | 2001-12-18 | Nintendo Co., Ltd. | Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing |
JP3786993B2 (ja) | 1995-12-14 | 2006-06-21 | 株式会社日立製作所 | データ記憶ユニット及び該ユニットを用いたデータ記憶装置 |
US6886167B1 (en) * | 1995-12-27 | 2005-04-26 | International Business Machines Corporation | Method and system for migrating an object between a split status and a merged status |
US5729712A (en) * | 1996-01-26 | 1998-03-17 | Unisys Corporation | Smart fill system for multiple cache network |
US5761516A (en) * | 1996-05-03 | 1998-06-02 | Lsi Logic Corporation | Single chip multiprocessor architecture with internal task switching synchronization bus |
JPH09311839A (ja) | 1996-05-21 | 1997-12-02 | Hitachi Ltd | データ共用方式 |
US5940870A (en) | 1996-05-21 | 1999-08-17 | Industrial Technology Research Institute | Address translation for shared-memory multiprocessor clustering |
US5900019A (en) * | 1996-05-23 | 1999-05-04 | International Business Machines Corporation | Apparatus for protecting memory storage blocks from I/O accesses |
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 |
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 |
US5740409A (en) * | 1996-07-01 | 1998-04-14 | Sun Microsystems, Inc. | Command processor for a three-dimensional graphics accelerator which includes geometry decompression capabilities |
AT1751U1 (de) * | 1996-09-30 | 1997-10-27 | Kuehn Eva | Koordinations-system |
JP3421526B2 (ja) | 1997-02-14 | 2003-06-30 | モトローラ株式会社 | デ−タ処理装置 |
US6192514B1 (en) * | 1997-02-19 | 2001-02-20 | Unisys Corporation | Multicomputer system |
US6424988B2 (en) * | 1997-02-19 | 2002-07-23 | Unisys Corporation | Multicomputer system |
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 |
JP3681026B2 (ja) | 1997-03-27 | 2005-08-10 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および方法 |
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 |
JPH10340165A (ja) | 1997-06-09 | 1998-12-22 | Canon Inc | 情報処理装置及びその方法並びにメモリ媒体 |
US6457012B1 (en) * | 1997-06-10 | 2002-09-24 | Pitney Bowes Inc. | Method and system of updating address records utilizing a clientserver interface |
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 |
US6360303B1 (en) * | 1997-09-30 | 2002-03-19 | Compaq Computer Corporation | Partitioning memory shared by multiple processors of a distributed processing system |
US6567839B1 (en) * | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
US6209065B1 (en) * | 1997-10-24 | 2001-03-27 | Compaq Computer Corporation | Mechanism for optimizing generation of commit-signals in a distributed shared-memory system |
US6002409A (en) * | 1997-10-29 | 1999-12-14 | Cirrus Logic, Inc. | Arbitration for shared graphics processing resources |
US6542926B2 (en) * | 1998-06-10 | 2003-04-01 | Compaq Information Technologies Group, L.P. | Software partitioned multi-processor system with flexible resource sharing levels |
US6965974B1 (en) * | 1997-11-14 | 2005-11-15 | Agere Systems Inc. | Dynamic partitioning of memory banks among multiple agents |
US6173389B1 (en) * | 1997-12-04 | 2001-01-09 | Billions Of Operations Per Second, Inc. | Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor |
US6167430A (en) * | 1998-05-12 | 2000-12-26 | Unisys Corporation | Multicomputer with distributed directory and operating system |
US6336187B1 (en) * | 1998-06-12 | 2002-01-01 | International Business Machines Corp. | Storage system with data-dependent security |
US6209066B1 (en) * | 1998-06-30 | 2001-03-27 | Sun Microsystems, Inc. | Method and apparatus for memory allocation in a multi-threaded virtual machine |
US6141762A (en) * | 1998-08-03 | 2000-10-31 | Nicol; Christopher J. | Power reduction in a multiprocessor digital signal processor based on processor load |
JP3224782B2 (ja) | 1998-08-03 | 2001-11-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 処理分担動的変更方法及びコンピュータ |
JP2000132529A (ja) * | 1998-10-23 | 2000-05-12 | Sony Corp | 並列処理装置、並列処理方法および記録媒体 |
US6643708B1 (en) * | 1998-10-29 | 2003-11-04 | International Business Machines Corporation | Systems, methods and computer program products for chaining Java servlets across networks |
US6633563B1 (en) * | 1999-03-02 | 2003-10-14 | Nortel Networks Limited | Assigning cell data to one of several processors provided in a data switch |
JP3790060B2 (ja) | 1999-01-29 | 2006-06-28 | 株式会社山武 | 演算処理装置 |
US6341338B1 (en) * | 1999-02-04 | 2002-01-22 | Sun Microsystems, Inc. | Protocol for coordinating the distribution of shared memory |
JP4123621B2 (ja) * | 1999-02-16 | 2008-07-23 | 株式会社日立製作所 | 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法 |
US6480941B1 (en) * | 1999-02-23 | 2002-11-12 | International Business Machines Corporation | Secure partitioning of shared memory based multiprocessor system |
US6753878B1 (en) | 1999-03-08 | 2004-06-22 | Hewlett-Packard Development Company, L.P. | Parallel pipelined merge engines |
US6647208B1 (en) * | 1999-03-18 | 2003-11-11 | Massachusetts Institute Of Technology | Hybrid electronic/optical switch system |
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 |
DE60039554D1 (de) * | 1999-06-25 | 2008-09-04 | Canon Res Ct France S A | Verteilte Verwaltung von Datenobjekten in einem Kommunikations-Netzwerk |
US6467012B1 (en) * | 1999-07-08 | 2002-10-15 | International Business Machines Corporation | Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors |
US6668317B1 (en) * | 1999-08-31 | 2003-12-23 | Intel Corporation | Microengine for parallel processor architecture |
US6577311B1 (en) * | 1999-12-16 | 2003-06-10 | Picture Iq Corporation | Techniques for automatically providing a high-resolution rendering of a low resolution digital image in a distributed network |
US6564328B1 (en) | 1999-12-23 | 2003-05-13 | Intel Corporation | Microprocessor with digital power throttle |
US6694380B1 (en) * | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
JP2001195230A (ja) | 2000-01-14 | 2001-07-19 | Mitsubishi Electric Corp | 描画処理システム、及び描画演算を行う半導体集積回路 |
US6694336B1 (en) * | 2000-01-25 | 2004-02-17 | Fusionone, Inc. | Data transfer and synchronization system |
US6807620B1 (en) | 2000-02-11 | 2004-10-19 | Sony Computer Entertainment Inc. | Game system with graphics processor |
US6799207B1 (en) * | 2000-04-10 | 2004-09-28 | International Business Machines Corporation | Method and system for downloading software managed trees in a network processing system |
JP4640880B2 (ja) | 2000-07-14 | 2011-03-02 | 国立大学法人東京工業大学 | マイクロプロセッサシステム |
US7681018B2 (en) * | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
US20030069985A1 (en) | 2000-10-02 | 2003-04-10 | Eduardo Perez | Computer readable media for storing video data |
US6865631B2 (en) * | 2000-12-14 | 2005-03-08 | International Business Machines Corporation | Reduction of interrupts in remote procedure calls |
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 |
US7020871B2 (en) * | 2000-12-21 | 2006-03-28 | Intel Corporation | Breakpoint method for parallel hardware threads in multithreaded processor |
US6748501B2 (en) * | 2000-12-30 | 2004-06-08 | International Business Machines Corporation | Microprocessor reservation mechanism for a hashed address system |
US6779045B2 (en) | 2001-03-21 | 2004-08-17 | Intel Corporation | System and apparatus for increasing the number of operations per transmission for a media management system |
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 |
US7233998B2 (en) | 2001-03-22 | 2007-06-19 | Sony Computer Entertainment Inc. | Computer architecture and software cells for broadband networks |
US7254812B1 (en) | 2002-05-31 | 2007-08-07 | Advanced Micro Devices, Inc. | Multi-processor task scheduling |
JP3673245B2 (ja) * | 2002-06-28 | 2005-07-20 | 株式会社東芝 | 情報処理装置および同装置における電源制御方法 |
JP2004103347A (ja) * | 2002-09-09 | 2004-04-02 | Sumitomo Wiring Syst Ltd | コネクタ |
US7361220B2 (en) * | 2003-03-26 | 2008-04-22 | Matsushita Electric Industrial Co., Ltd. | Method of manufacturing group III nitride single crystal, device used for the method and group III nitride single crystal obtained by the method |
-
2001
- 2001-03-22 US US09/816,020 patent/US6526491B2/en not_active Expired - Lifetime
-
2002
- 2002-03-19 KR KR1020037012342A patent/KR100890134B1/ko active IP Right Grant
- 2002-03-19 CN CNB028063481A patent/CN1291327C/zh not_active Expired - Lifetime
- 2002-03-19 EP EP02705345A patent/EP1370948B1/en not_active Expired - Lifetime
- 2002-03-19 ES ES02705345T patent/ES2346045T3/es not_active Expired - Lifetime
- 2002-03-19 WO PCT/JP2002/002606 patent/WO2002077826A1/en active Application Filing
- 2002-03-19 DE DE60236416T patent/DE60236416D1/de not_active Expired - Lifetime
- 2002-03-20 JP JP2002079358A patent/JP3454808B2/ja not_active Expired - Lifetime
- 2002-03-22 TW TW091105566A patent/TW556087B/zh not_active IP Right Cessation
-
2003
- 2003-02-21 US US10/371,322 patent/US7139882B2/en not_active Expired - Lifetime
- 2003-03-31 JP JP2003097175A patent/JP4334901B2/ja not_active Expired - Lifetime
-
2004
- 2004-10-18 US US10/967,363 patent/US7999813B2/en not_active Expired - Fee Related
- 2004-10-18 US US10/967,362 patent/US8434091B2/en active Active
- 2004-10-18 US US10/967,433 patent/US8028288B2/en active Active
- 2004-10-18 US US10/967,579 patent/US7457939B2/en not_active Expired - Lifetime
-
2011
- 2011-08-10 US US13/206,968 patent/US8321866B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US6526491B2 (en) | 2003-02-25 |
EP1370948B1 (en) | 2010-05-19 |
US8028288B2 (en) | 2011-09-27 |
KR20030086320A (ko) | 2003-11-07 |
KR100890134B1 (ko) | 2009-03-20 |
US7999813B2 (en) | 2011-08-16 |
US20050081209A1 (en) | 2005-04-14 |
US20030229765A1 (en) | 2003-12-11 |
US20050081213A1 (en) | 2005-04-14 |
JP4334901B2 (ja) | 2009-09-30 |
EP1370948A4 (en) | 2007-09-05 |
JP2002342165A (ja) | 2002-11-29 |
JP3454808B2 (ja) | 2003-10-06 |
US20050097302A1 (en) | 2005-05-05 |
US20050078117A1 (en) | 2005-04-14 |
US7139882B2 (en) | 2006-11-21 |
WO2002077826A1 (en) | 2002-10-03 |
US7457939B2 (en) | 2008-11-25 |
JP2003303134A (ja) | 2003-10-24 |
EP1370948A1 (en) | 2003-12-17 |
ES2346045T3 (es) | 2010-10-08 |
US20110302591A1 (en) | 2011-12-08 |
US20020138701A1 (en) | 2002-09-26 |
DE60236416D1 (de) | 2010-07-01 |
TW556087B (en) | 2003-10-01 |
CN1496511A (zh) | 2004-05-12 |
US8321866B2 (en) | 2012-11-27 |
US8434091B2 (en) | 2013-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1291327C (zh) | 计算机处理系统和计算机处理方法 | |
CN1279470C (zh) | 宽带网络计算机体系结构的计算机处理器和处理设备 | |
CN1279469C (zh) | 一种处理器中处理数据的方法和处理数据的系统 | |
CN1496516A (zh) | 宽带网络计算机体系结构的资源专用系统和方法 | |
CN1494690A (zh) | 用于宽带网络的计算机体系结构和软件单元 | |
CN101040268A (zh) | 宽带网络计算机体系结构中的外部数据接口 | |
CN1815438A (zh) | 信息处理方法和系统 | |
CN1292366C (zh) | 用于使用多个处理器操纵数据的系统和方法 | |
CN1601512A (zh) | 使用多个处理器的虚拟设备的系统和方法 | |
CN111970249A (zh) | 一种基于DPDK的Modbus协议实现方法和装置 | |
CN1558329A (zh) | 单片机操作系统的模块化实现方法 | |
Flanagan et al. | Accelerate multicore application development with KeyStone software |
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: 1061290 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: 1061290 Country of ref document: HK |
|
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20061220 |