用于仿真软件应用的方法和设备的制作方法

文档序号:6654969阅读:344来源:国知局
专利名称:用于仿真软件应用的方法和设备的制作方法
技术领域
本发明涉及一种用于调整处理器的处理能力以改善当在处理器上执行软件程序时获得的结果的方法和设备。
背景技术
关于零售和商业用途的软件程序的设计的营销和销售继续作为经济的持续发展和扩展的部门。事实上,软件开发者正在持续地寻求满足消费者对于新的和改进的软件应用的看起来无法满足的欲望。关于这一点没有比在诸如用于视频游戏、电影动画和特技等的计算机图形软件的领域中更明显。
更复杂且高性能的软件程序的此发展已经成为与在其上执行这样的软件程序的硬件的处理能力的发展对应的发展。事实上,自从在1971年引入第一微处理器英特尔(Intel)的4004,已经在微处理器的处理能力上作出了难于置信的进步,所述英特尔的4004是能够仅仅相加和相减的4位处理器。在1979年,英特尔引入了其8080微处理器,它被并入IBM个人计算机中。所述英特尔8080微处理器以5MHz的时钟速度使用大约29,000个晶体管,可以执行每秒0.33百万的指令(MIPS)。从1982到1989年,英特尔引入了80286、80386和80486微处理器。英特尔80486微处理器以25MHz的时钟速度使用1.2百万个晶体管,可以执行20MIPS。从1993到2000年,英特尔引入了奔腾(Pentium)系列的微处理器,其中,奔腾4微处理器以时钟速度1.5GHz使用42百万个晶体管,可以执行大约17,000MIPS。这些数据示出了其上正在执行软件程序的硬件的速度和功率正在增长(注意英特尔奔腾4比英特尔8088微处理器运行快大约5,000倍)。将在本说明书中进一步论述,当前正在开发更新和更强大的微处理器,可以实现大约4GHz的时钟频率和更高的MIPS级。
实时、多媒体的应用正在变得越来越重要。这些应用需要极快的处理速度,诸如每秒数千兆比特的数据。虽然单个处理单元能够有快速的处理速度,但是它们一般不能匹配多处理器架构的处理速度。事实上,在多处理器系统中,多个处理器可以并行(或至少协调地)操作以获得希望的处理结果。
可以使用多处理技术的计算机和计算设备的类型是大量的。除了个人计算机(PC)和服务器之外,这些计算设备还包括蜂窝电话、移动计算机、个人数字助理(PDA)、机顶盒、数字电视机和许多其它类型。
现在参见图1,它图解了软件程序和用于执行其的硬件的相应发展。在具体时间点上的硬件系统102不如诸如硬件系统106或硬件系统112的其它硬件系统强大。甚至这些硬件系统不如作为本发明的主题的硬件系统118强大。而且,软件程序104(被图解为存储在光盘上)被设计来执行在那时存在的硬件系统102上。例如,可能在了解软件程序104将在具有由例如英特尔80286微处理器提供的处理特性的处理单元上执行的情况下,已经编写了软件程序104。在软件程序104后设计和购买的软件程序110可能已经被设计来在具有由例如英特尔80486微处理器提供的处理特性的处理单元上执行。或者,软件程序110可能已经被设计和开发来在具有1994年引入的申请者的游戏站(PlayStation)游戏控制台的处理能力的处理单元上执行。而且,软件程序116可能已经被设计和开发来在具有由英特尔的奔腾3微处理器提供的处理能力的处理单元上执行。或者,软件程序116可能已经被设计和开发来在被特别设计来执行视频游戏软件程序的申请者的游戏站2控制台上执行。
传统的观念是被开发来在具有具体处理特性的给定处理单元上执行的任何软件程序将在具有更强大处理特性的另一处理单元上执行。虽然这在许多情况下可能是真实的,但是不总是这样,特别是当软件程序被设计来在显示器上向用户提供多媒体体验时,诸如在视频游戏软件程序的情况下。事实上,运行被设计用于适度高性能的处理单元的软件程序于具有实质上更高处理能力的处理单元上可能导致运动图像的过快移动对象、在运动图像的音频和视频分量之间的同步性缺失等。一般,当不保证程序线程(并行处理单元)之间的相互依存性时出现这些问题。
除非已经向给定的处理单元设计了允许执行特别为其设计的软件程序、和被设计来运行在性能不太高的处理单元上的软件程序的特征,否则用户必须保持两个分离的处理单元来支持他的或她的软件程序的完全充实。对于此的一个例外是申请人的游戏站控制台和游戏站2控制台。申请人的游戏站2控制台使用多于一个微处理器来适应对所述游戏站控制台特别编写的软件程序和对游戏站2控制台特别编写的软件程序。具体上,所述游戏站2控制台包含在游戏站控制台中发现的微处理器,以便执行游戏站视频游戏软件程序。在申请人的游戏站2控制台中的其它微处理器用于执行被特别地设计用于游戏站2控制台的视频游戏软件程序。
虽然通过不同处理能力的多个微处理器来设计未来的处理单元,可以处理与支持软件程序的充实相关联的一些问题,但是希望实现一种更好的解决方案,优选的是一种更为多功能、有效且成本效率高的解决方案。

发明内容
按照本发明的一个或多个方面,一种使得能够执行软件程序的方法,包括获得指示软件程序的版本的识别信息;确定是否应当按照所述软件程序的版本来调整其上要执行所述软件程序的至少一个处理器的处理能力;以及当所述确定是肯定时,调整所述至少一个处理器的处理能力。
所述识别信息可以被存储在存储介质中,所述存储介质是光盘介质、磁介质和电子介质中的至少一个。或者,所述软件程序可以包括识别信息,并且从其获得所述识别信息。
调整的处理能力可以包括改变下述的至少一个处理单元的时钟频率;处理单元的存储器映射(memory map);处理单元的数据总线的总线利用率;处理单元的数据总线的带宽;处理单元的高速缓冲存储器大小;处理单元的高速缓冲存储器组织;处理单元的指令等待时间(latency);处理单元的指令吞吐量;处理单元的存储器等待时间;以及处理单元的存储器吞吐量。
所述方法可以还包括访问表格,所述表格将多个软件程序各自的识别信息与指示要针对所述至少一个处理器的处理能力进行的调整的一个或多个参数相关联;以及使用与所述给定的识别信息相关联的所述参数来调整所述至少一个处理器的处理能力。
所述表格可以被本地存储在所述至少一个处理器中,被远程存储在管理实体中,并且/或者被存储在另一个位置以由管理实体访问。当远程存储所述表格时,所述方法可以还包括使用通信信道在所述至少一个处理器和所述管理实体之间建立链路;以及在所述通信信道上从所述至少一个处理器向所述管理实体发送所述识别信息。所述管理实体可以访问所述表格以获得指示要针对所述至少一个处理器的处理能力而进行的调整的、相关联的一个或多个参数。其后,所述方法可以包括通过所述通信信道在所述至少一个处理器从所述管理实体接收所述参数;以及使用与所给定的识别信息相关联的所述参数来调整所述至少一个处理器的处理能力。
所述表格可以进一步将所述多个软件程序各自的识别信息的每个与多组参数相关联,所述多组参数用于指示要针对多个不同处理器的处理能力进行的调整。在这个方面,所述方法可以还包括获得所述至少一个处理器的处理能力的处理标识符;使用所述识别信息和所述标识符两者来访问所述表格,以获得指示要针对所述至少一个处理器的处理能力进行的调整的所述多组参数之一;以及使用所述组的参数来调整所述至少一个处理器的处理能力。
当在管理实体中远程存储所述表格时,所述方法可以包括使用通信信道在所述至少一个处理器和所述管理实体之间建立链路;以及通过所述通信信道从所述至少一个处理器向所述管理实体发送所述识别信息和所述处理标识符。在这种情况下,所述管理实体可以使用所述识别信息和所述处理标识符来访问所述表格,以获得指示要针对至少一个处理器的处理能力而进行的调整的相关联的组的参数。
优选的是,所述至少一个处理器包括(i)多个子处理单元,用于执行处理器任务,(ii)主处理单元,可操作以对所述子处理单元执行至少一些管理处理任务,(iii)主存储器,可以由所述主处理单元和所述子处理单元访问,以及(iv)数据总线,可操作地耦接所述主处理单元、所述子处理单元和所述主存储器。
所述方法因此可以还包括调整上述的子处理单元的至少一个的处理特性,并且使用它来执行软件程序;以及不调整至少一个其它子处理单元的处理特性,以便它具有更高的处理特性,并且可用于执行其它的处理任务。
所述调整步骤可以包括至少改变所述至少一个处理器的时钟频率。更具体地说,所述调整步骤可以包括将所述主处理单元、子处理单元和所述数据总线中至少一个的时钟频率调整到与其它不同的频率。
而且,所述调整步骤可以包括至少改变所述至少一个处理器的数据总线的总线利用率,通过限制对所述数据总线的访问(由例如主处理单元),来改变所述数据总线的总线利用率,以便调整处理能力。
而且,所述调整步骤可以包括通过调整所述数据总线的位数来至少改变所述数据总线的带宽,以便调整处理能力。例如,可以在128位、64位、32位、16位和8位之间调整所述数据总线的位数。
或者,所述至少一个处理器的本地存储器可以作为数据高速缓冲存储器而操作,并且所述调整步骤可以包括改变所述数据高速缓冲存储器的高速缓冲存储器大小,以便调整所述至少一个处理器的处理能力。例如,可以将至少一个所述子处理单元的高速缓冲存储器大小调整为与其它不同的大小。而且,所述调整步骤可以包括改变所述数据高速缓冲存储器的高速缓冲存储器组织,以便调整所述处理能力。例如,可以调整所述高速缓冲存储器的存储器的线路(way)大小和块大小中的至少一个。而且,可以将所述至少一个处理器的高速缓冲存储器组织调整为例如与其它不同的组织。
类似地,主存储器可以用作所述至少一个处理器的数据高速缓冲存储器,并且所述调整步骤可以包括改变所述数据高速缓冲存储器的高速缓冲存储器大小,以便调整所述至少一个处理器的处理能力。而且,可以操纵所述数据高速缓冲存储器的高速缓冲存储器组织以便调整处理能力。例如,可以改变所述高速缓冲存储器的存储器的线路大小和块大小的至少一个。
或者,所述调整步骤可以包括通过要求给定指令的指令读取序列、指令解码序列、指令执行序列和写回序列中的至少一个之间的时间延迟,来调整所述至少一个处理器的指令等待时间,以便调整所述至少一个处理器的处理能力。优选的是,所述时间延迟在所述写回序列和下个指令读取序列之间。
而且,所述调整步骤可以包括通过在给定指令的指令读取序列、指令解码序列、指令执行序列和写回序列的至少一个之间插入一个或多个空操作(no-operation)序列来调整所述至少一个处理器的指令吞吐量,以便调整所述至少一个处理器的处理能力。优选的是,所述空操作序列在所述执行序列和所述写回序列之间。
或者,所述调整步骤可以包括通过要求地址读取序列、地址解码序列、以及数据读取和写入序列之一中的至少一个之间的时间延迟,来调整所述至少一个处理器和主存储器的存储器等待时间,以便调整所述至少一个处理器的处理能力。而且,所述调整步骤可以包括通过在地址读取序列、地址解码序列、以及数据读取和写入序列之一中的至少一个之间插入或去除一个或多个空操作序列来调整至少一个所述子处理单元和所述处理单元的主存储器的存储器吞吐量,以便调整所述处理单元的处理能力。
按照本发明的一个或多个其它方面,一种处理调整设备(arrangement)包括至少一个处理器,一种处理系统包括至少一个处理设备,所述处理设备包括多个子处理单元,用于执行处理器任务;主处理单元,可用于对所述子处理单元执行至少一些管理处理任务;主存储器,可由主处理单元和子处理单元访问;以及数据总线,可操作地耦接至所述主处理单元、子处理单元和主存储器。所述至少一个处理器或所述主处理单元和所述子处理单元的至少一个优选地用于(i)获得指示软件程序的版本的识别信息;(ii)确定是否应当按照所述软件程序的版本来调整所述至少一个处理器的处理能力或所述处理单元或子处理单元的处理能力;(iii)当所述确定是肯定时,调整上述处理能力。
所述处理器或所述主处理单元和所述子处理单元的至少一个可以进一步用于(i)访问表格,所述表格将多个软件程序各自的识别信息与一个或多个参数相关联,所述一个或多个参数指示针对处理能力所进行的调整;(ii)使用与所给定的识别信息相关联的参数来便利所述处理能力的调整。
如上所述,所述表格以下述方式的至少一个被存储本地存储在所述至少一个处理器或处理单元中,远程存储在管理实体中,或者存储在另一位置。所述至少一个处理器或所述处理单元可以用于使用通信信道在所述至少一个处理器或处理单元和管理实体之间建立链路,并且通过所述通信信道向所述管理实体发送所述识别信息。所述管理实体可以访问所述表格以获得指示要针对所述至少一个处理器或处理单元的处理能力而进行的调整的、相关联的一个或多个参数。所述至少一个处理器或所述处理单元可以进一步用于通过所述通信信道从所述管理实体接收所述参数,并且使用与所给定的识别信息相关联的所述参数来调整所述处理能力。
当所述表格也与处理标识符相关联时,所述至少一个处理器或所述主处理单元和所述子处理单元的至少一个可以进一步用于(i)获得所述至少一个处理器或处理单元的处理能力的处理标识符;(ii)使用所述识别信息和所述标识符两者来访问所述表格,以获得指示要针对所述至少一个处理器或处理单元的处理能力而进行的调整的所述多组参数之一;以及(iii)使用所述组的参数来便利对于至少一个处理器或处理单元的处理能力的调整。
当在管理实体中远程存储所述表格时,所述至少一个处理器或处理单元可以用于(i)使用通信信道在所述至少一个处理器或处理单元和所述管理实体之间建立链路;以及(ii)通过所述通信信道向所述管理实体发送所述识别信息和所述处理标识符。而且,所述至少一个处理器或处理单元可以用于通过通信信道从所述管理实体接收所述组的参数,并且用于使用与所给定识别信息和处理标识符相关联的参数来调整所述至少一个处理器或处理单元的处理能力。
可以调整例如所述至少一个处理器或子处理单元的处理特性,而不调整至少一个其它这样的处理器或单元的处理特性。例如,优选的是,可以通过至少改变处理器或处理单元的时钟频率来调整所述至少一个处理器或处理单元的处理特性。更具体地说,可以通过将所述主处理单元、所述子处理单元和所述数据总线的至少一个的时钟频率改变到与其它不同的频率,来调整至少一个处理器或处理单元的处理特性。
或者,可以通过至少改变所述处理单元的数据总线的总线利用率来调整所述至少一个处理器或处理单元的处理特性,通过限制(例如由主处理单元)对数据总线的访问来改变数据总线的总线利用率,以便调整其处理能力。
而且,通过调整所述数据总线的位数来调整所述至少一个处理器或处理单元的处理能力,从而可以通过至少改变所述至少一个处理器或处理单元的数据总线的带宽,来调整至少一个处理器或处理单元的处理特性。例如,可以在128位、64位、32位、16位和8位之间调整所述数据总线的位数。
优选的是,所述至少一个处理器或子处理单元的本地存储器可以用作数据高速缓冲存储器,并且,通过改变所述数据高速缓冲存储器的高速缓冲存储器大小,以便调整所述至少一个处理器或处理单元的处理能力,来调整至少一个处理器或处理单元的处理特性。而且,通过改变所述数据高速缓冲存储器的高速缓冲存储器组织以便调整至少一个处理器或处理单元的处理能力,可以调整所述至少一个处理器或处理单元的处理特性。例如,可以改变至少一个子处理单元的高速缓冲存储器的存储器的线路大小和块大小的至少一个。优选的是,可以将所述至少一个处理器或至少一个子处理单元的高速缓冲存储器组织调整为与其它不同的组织。
或者,所述至少一个处理器或处理单元的主存储器可以用作一个或多个子处理单元的数据高速缓冲存储器,并且,可以通过改变所述数据高速缓冲存储器的高速缓冲存储器大小,以便调整所述处理能力,来调整所述至少一个处理器或处理单元的处理特性。而且,可以通过改变所述数据高速缓冲存储器的高速缓冲存储器组织以便调整所述至少一个处理器或处理单元的处理能力,来调整所述至少一个处理器或处理单元的处理特性。例如,可以通过改变所述高速缓冲存储器的存储器的线路大小和块大小的至少一个,来调整所述处理特性。
而且,可以通过要求给定指令的指令读取序列、指令解码序列、指令执行序列、和写回序列的至少一个之间的时间延迟,来调整处理单元的处理能力,从而改变所述至少一个处理器或至少一个子处理单元的指令等待时间,来调整所述至少一个处理器或处理单元的处理特性。所述时间延迟可以在所述写回序列和下个指令读取序列之间。或者,可以通过在给定指令的指令读取序列、指令解码序列、指令执行序列、和写回序列的至少一个之间插入或删除一个或多个空操作序列,来调整处理能力,从而改变所述至少一个处理器或所述处理单元的至少一个子处理单元的指令吞吐量,来调整处理特性。优选的是,所述空操作序列在所述执行序列和所述写回序列之间。
而且,可以通过要求在地址读取序列、地址解码序列、以及数据读取和写入序列之一中的至少一个之间的时间延迟,来调整至少一个处理器或处理单元的处理能力,从而改变所述至少一个处理器或至少一个子处理单元和处理单元的主存储器的存储器等待时间,来调整所述至少一个处理器或处理单元的处理特性。而且,可以通过在地址读取序列、地址解码序列、以及数据读取和写入序列之一中的至少一个之间插入或删除一个或多个空操作序列,来调整处理能力,从而改变所述至少一个处理器或至少一个子处理单元和所述处理单元的主存储器的存储器吞吐量,来调整处理特性。
按照本发明的一个或多个其它方面,向记录介质记录使用如上所述的方法来操作处理单元的程序。
按照本发明的上述方面,已经开发了一种新的计算机架构,它超过了当今的微处理器的处理能力。按照这种新的计算机架构,从公共的计算模块(或单元)来构造多处理器计算机系统的所有处理器。这个公共计算模块具有一致的结构,并且最好使用相同的指令集架构。所述多处理器计算机系统可以由使用计算机处理器的一个或多个客户机、服务器、PC、移动计算机、游戏机、PDA、机顶盒、器具、数字电视机和其它设备组成。
如果希望的话,多个计算机系统可以是网络的成员。所述一致的模块化结构使得能够通过多处理器计算机系统而有效地、高速地处理应用和数据,并且如果使用网络,则使得能够通过网络快速传输应用和数据。这个结构也简化了各种大小和处理功率的网络成员的建立、以及由这些成员处理的应用的准备。
所述基本处理模块是处理器元件(PE)。PE最好包括通过公共内部地址和数据总线而耦接的处理单元(PU)、直接存储器存取控制器(DMAC)和多个子处理单元(SPU),诸如4个SPU。所述PU和SPU与可以具有交叉(cross-bar)结构的共享动态随机存取存储器(DRAM)交互。PU调度和协调由SPU进行的数据和应用的处理。SPU以并行和独立的方式来执行这个处理。DMAC控制由PU和SPU对在共享DRAM中存储的数据和应用的访问。
按照这种模块化结构,由具体计算机系统使用的PE的数量基于由那个系统要求的处理功率。例如,服务器可以使用4个PE,工作站可以使用两个PE,PDA可以使用一个PE。被分配来处理具体软件单元的PE的SPU的数量依赖于在所述单元内的程序和数据的复杂度和幅度。
所述多个PE可以与共享DRAM相关联,并且所述DRAM可以被分离为多个区间,这些区间的每个被分离为多个存储体。DRAM的每个区间可以由体控制器控制,PE的每个DMAC可以访问每个体控制器。在这个配置中,每个PE的DMAC可以访问所述共享DRAM的任何部分。
所述新计算机架构也使用新的编程模型,该新的编程模型提供通过网络传输数据和应用,并且提供在网络成员之间处理数据和应用。这种编程模型使用通过网络传输、并由任何网络成员处理的软件单元。每个软件单元具有相同的结构,并且可以包含应用和数据两者。作为由模块化计算机架构提供高速处理和传输速度的结果,这些单元可以被迅速地处理。所述应用的代码最好基于相同的公共指令集和ISA。每个软件单元最好包含全局标识(全局ID)和描述单元的处理所要求的计算资源量的信息。因为所有的计算资源具有相同的基本结构并且使用相同的ISA,因此执行这个处理的具体资源可以位于网络上的任何位置,并且可以被动态分配。
通过结合附图在此进行的说明,本发明的其它方面、特征和优点将会对于本领域技术人员显而易见。


为了说明性目的,在附图中示出了当前优选的形式,但是可以明白,本发明不限于所示出的具体调整设备和仪器。
图1是在软件程序及其所运行的处理系统的设计中进行的进展的图示,包括按照本发明的处理或多处理调整设备;图2A是图解按照本发明的实施例的处理器元件(PE)的示例性结构的图;图2B是图解按照本发明的方面的PE的多处理系统的示例性结构的图;图3是图解按照本发明的示例性子处理单元(SPU)的结构的图;图4是按照本发明的一个或多个方面的适合于实现多处理器系统的替代配置;图5是流程图,图解了按照本发明的一个或多个方面的可以至少部分地由处理系统执行以便改变其处理能力的处理步骤;图6是按照本发明的一个或多个方面的整体计算机网络的方框图;图7是图解与图5所示相关联的进一步的处理步骤的流程图;图8是由按照本发明的一个或多个方面的处理器元件使用的变换表格;图9是按照本发明的一个或多个方面的、能够进行网络通信且可用于改变其处理能力的处理系统的方框图;图10是图解与图7所示相关联的进一步的处理步骤的流程图;图11是向一个或多个用户分发软件程序或参数集的系统的方框图;图12是图解由图11的系统的具体部分执行的具体处理步骤的概念方框图和流程图;图13是图解由图11的系统的具体部分执行的另一步骤的另一概念方框图和流程图;图14是示出图13中图解的所执行的具体处理步骤的流程图;图15是图解由例如图11的管理服务器601执行的具体处理步骤的进一步的流程图;图16是图解具体的数据库内容的方框图;图17是图解由图11的系统的部分执行的具体处理步骤的另一概念方框图和流程图;图18是图解按照图17而执行的另外的处理步骤的流程图;图19是由例如图11的客户机终端设备604执行的一个或多个另外的处理步骤的另一个概念方框图和流程图;图20是图解按照图19而执行的另外的处理步骤的流程图;图21是图解另外的处理步骤的概念方框图和流程图;
图22是图解涉及图21的处理步骤的进一步的细节的流程图;图23是图解可以执行的替代处理步骤的概念方框图和流程图;图24是图解关于图23的处理步骤的进一步的细节的流程图;图25是图解按照图23的替代概念的另外的处理步骤的概念方框图和流程图;图26是图解关于图25的处理步骤的进一步的细节的流程图;图27是用于向一个或多个用户分发软件程序或参数集的另外的系统的方框图;图28是图解由图27的系统的具体部分执行的具体处理步骤的概念方框图和流程图;图29是图解由图27的系统的具体部分执行的另外的步骤的另一个概念方框图和流程图;图30是示出如图29所图解而执行的具体处理步骤的流程图;图31是图解由例如图27的管理服务器和客户机终端执行的具体处理步骤的概念方框图和流程图;图32是图解由图31的设备执行的另外的处理步骤的流程图;图33是图解具体数据库内容的方框图;图34是图解由图27的系统的部分执行的具体处理步骤的另一个概念方框图和流程图;图35是图解由图34的设备执行的另外的处理步骤的流程图;图36是图解具体数据库内容的方框图;图37是按照本发明的一个或多个方面的用于改变具体时钟频率以便改变其处理能力的处理器元件系统的方框图;图38是按照本发明的一个或多个方面的用于改变具体时钟频率以便改变其处理能力的替代处理系统的方框图;图39是图12的具体时钟电路元件的替代配置的方框图;图40是按照本发明的一个或多个方面的用于改变其处理能力的其它方面的另一个替代处理系统的方框图;图41是图解按照本发明的一个或多个方面的指令等待时间和/或吞吐量的可调整特征的流程图;图42是图解按照本发明的一个或多个方面的指令等待时间和/或吞吐量的可调整特征的另一个流程图;图43是图解从租用程序内容的分发器安全分发程序内容的处理的示例的步骤的流程图;图44是图解图43的处理的另外的步骤的流程图;图45是图解图44的处理的另外的步骤的流程图;图46是图解图45的处理的另外的步骤的流程图。
具体实施例方式
参见附图,其中,相同的标号表示相同的元件,在图1中示出了按照本发明的一个或多个方面的处理调整设备118。所述处理调整设备118可以用于利用例如下面将更详细地论述的微处理系统来执行软件程序。显示器120和音频能力(未示出)用于使得用户能够进行多媒体体验。
可以通过任意多种方式来加载软件程序,诸如通过向处理调整设备118中插入包含所述软件程序的存储介质,并且将所述软件程序读取到随机存取存储器(RAM)中。所述存储介质可以是光介质、磁介质、电介质等。按照本发明的一些方面,可以通过经由诸如因特网124之类的网络来下载所述软件程序而将所述软件程序加载到所述处理调整设备118中。
已经发现,可以利用用于实现按照本发明的处理调整设备118的很强大的多处理系统来实现有益的处理特性。所述处理调整设备118最好用于确定是否应当按照要执行的软件程序的版本来向下或向上调整其处理能力,并且当所述确定是肯定时调整所述处理能力。下面论述如何实现这种功能及其多种修改的各种细节和示例。在这个方面,现在论述所述处理调整设备118的内部结构的具体方面的详细情况。
现在参见图2A,它是基本处理模块或处理器元件(PE)200的示例的方框图。如在此附图中所示,PE 200包括I/O接口202、处理单元(PU)204、直接存储器存取控制器(DMAC)206和多个SPU 208,即SPU1(208A)、SPU2(208B)、SPU3(208C)和SPU4(208D)。本地(或内部)PE总线212在PU 204、SPU 208、DMAC 206和存储器接口210之间发送数据和应用。本地PE总线212可以具有例如传统架构,或者可以被实现为分组交换网络。实现为分组交换网络在要求更多的硬件的同时提高了可用带宽。
可以使用用于实现数字逻辑的各种方法来构造PE 200。但是,最好将PE200构造为在硅衬底上使用互补金属氧化物半导体(CMOS)的单个集成电路芯片。衬底的替代材料包括砷化镓、镓铝砷和使用多种掺杂剂的其它所谓的III-B化合物。也可以使用超导体材料,例如快速单通量量子(RSFQ)逻辑,来实现PE 200。
PE 200通过高带宽存储器连接216来与动态随机存取存储器(DRAM)214紧密地相关联。DRAM 214作为PE 200的主(或共享)存储器。虽然DRAM 214最好是动态随机存取存储器,但是可以使用其它装置将DRAM 214实现为静态随机存取存储器(SRAM)、磁随机存取存储器(MRAM)、光存储器或全息存储器。DRAM 214或其其它的实现方式可以被并入作为PE 200的同一集成电路芯片中,或作为替代方式,被提供作为分离的外部存储器。当将DRAM 214并入作为PE 200的同一芯片中时,可以将DRAM 214放置在所述芯片上的独立位置或与包括PE的一个或多个处理器集成。DMAC 206和存储器接口210便利了在DRAM 214、SPU 208和PE 200的PU 204之间的数据传送。注意可以将DMAC 206和/或存储器接口210相对于子处理单元208和PU 204而集成或独立地放置。实际上,取代所示出的独立配置,DMAC 206功能和/或存储器接口210功能可以与一个或多个(最好全部)子处理单元208和PU 204集成。
PU 204可以例如是能够单独地处理数据和应用的标准处理器。在操作中,PU 204调度和协调由SPU 208进行的数据和应用的处理。在替代配置中,PE 200可以包括多个PU 204。每个PU 204可以控制SPU 208的一个、全部或一些指定的组。SPU 208最好是单指令、多数据(SIMD)处理器。在PU 204的控制下,SPU 208并行和独立地执行这些数据和应用的处理。DMAC 206控制由PU 204和SPU对于在共享DRAM 214中存储的数据和应用的访问。注意,可以通过发挥主处理单元角色的一个或多个子处理单元208来实现PU204。
诸如PE 200之类的多个PE可以被结合或封装在一起,以提供增强的处理能力。这种配置可以被称为宽带引擎(BE)。
图2B图解了由可以按照本发明的方面而操作的多个PE 250(PE 1、PE 2、PE 3和PE 4)组成的处理架构的示例。优选的是,PE 250在单个芯片上。PE 250可以,或可以不,包括诸如关于图2A的PE 200上述的PU和/或SPU的子系统。根据所要求的处理的类型,PE 250可以具有相同或不同的类型。例如,一个或多个PE 250可以是一般微处理器、数字信号处理器、图形处理器、微控制器等。
PE 250最好被结合到共享总线252。存储器控制器或DMAC 256可以通过存储器总线254而连接到共享总线252。DMAC 256连接到存储器258,存储器258可以是关于存储器230上述的类型之一。I/O控制器262也可以通过I/O总线260而连接到共享总线252。I/O控制器262可以连接到一个或多个I/O设备264,诸如帧缓冲器、盘驱动器等。应当明白,上述的处理模块和架构仅仅是示例性的,可以通过其它的结构来使用本发明的各个方面,所述其它结构包括、但是不限于在下述文件中公开的类型的多处理器系统U.S.Patent No.6,526,491,entitled“Memory Protection System and Method forComputer Architecture for Broadband Networks,”issued on February 25,2003(美国专利第6,526,491号,名称为“宽带网络的计算机架构的存储器保护系统和方法”,2003年2月25日发布)和U.S.Application No.09/816,004,entitled“Computer Architecture and Software Cells for Broadband Networks,”filed onMarch 22,2001(美国申请第09/816,004号,名称为“宽带网络的计算机架构和软件单元”,2001年3月22日提交),在此明确地并入上述文件作为参照。
图3图解了SPU 208的结构和功能的示例。SPU 208包括本地存储器270、寄存器272、一个或多个浮点单元274和一个或多个整数单元276。但是,再次,根据所要求的处理能力,可以使用更多或更少数目的浮点单元274和整数单元276。在优选实施例中,本地存储器270包含128千字节的存储量,并且寄存器272的容量是128×128比特。浮点单元274最好以每秒320亿浮点操作(32GFLOPS)的速度操作,并且整数单元276最好以每秒320亿操作(32GOPS)的速度操作。
在优选实施例中,本地存储器270包含256千字节的存储量,并且寄存器272的容量是128×128比特。注意,不使用共享存储器214来执行处理器任务。而是,将任务复制到给定子处理单元208的本地存储器270中,并且本地执行。
本地存储器270可以是,或可以不是,高速缓冲存储器。本地存储器270最好被构造为静态随机存取存储器(SRAM)。PU 204可以要求高速缓冲存储器的一致性,以支持由PU 204启动的直接存储器存取。但是,对于由SPU 208启动的直接存储器存取、或者对于从外部设备或到外部设备的存取,不要求高速缓冲存储器一致性支持。
SPU 208还包括总线288,用于向SPU 208和从SPU 208传输应用和数据。所述子处理单元208还包括总线接口(I/F)278,用于向子处理单元208或从子处理单元208传输应用和数据。在优选实施例中,总线接口278耦接到在子处理单元208内集成地放置的DMAC(未示出)。注意,DMAC 206可以被外部放置(如图3中所示)。一对总线互连在总线接口278和本地存储器270之间集成地放置的DMAC。所述总线优选是256位宽。在优选实施例中,总线289是1,024位宽。
SPU 208还包括内部总线281、283和285。在优选实施例中,总线281具有256位的宽度,并且在本地存储器270和寄存器272之间提供通信。总线283和285分别在寄存器272和浮点单元274之间与寄存器272和整数单元276之间提供通信。在优选实施例中,从寄存器272到浮点或整数单元的总线285和283的宽度是384位,并且从浮点或整数单元274、276到寄存器272的总线285和283的宽度是128位。从寄存器272到浮点或整数单元274、276的这些总线的宽度比从这些单元到寄存器272的更宽,因此在处理期间能够容纳来自寄存器272的更大量的数据流。对于每个计算需要最大三个字。但是,每个计算的结果通常仅仅是一个字。
注意,虽然最好使用图2的PE 200来执行本发明,但是也可以使用替代的单处理器或多处理器系统。例如,可以使用图4的多处理器系统300来执行本发明的一个或多个方面。所述多处理器系统300包括通过总线308而耦接到存储器接口304的多个处理器302(可以使用任何数量)。存储器接口304通过另一总线310与诸如DRAM之类的共享存储器306通信。所述存储器接口304可以在处理器302之间分布,并且如果希望的话,也可以与DMAC结合工作。可以使用图3的相同或类似结构或者任何其它已知或以后开发的技术来实现处理器302。
现在参见图5,它是图解处理步骤的流程图,所述处理步骤通过使用例如PE 200(图2)而至少部分地由处理调整设备118实施,以便按照本发明的一个或多个方面改变其处理能力。可以明白,可以通过与PE 200集成或在PE 200外部的软件、硬件及其组合来实现图5中图解的一些或所有的处理步骤(和随后的处理步骤)。例如,在步骤400,从存储介质向处理调整设备118(它可以是软件播放器控制台)的随机存取存储器(RAM)读软件程序。在此语境中,PE200是能够从存储介质读取软件程序的整体软件播放器控制台的一部分,所述存储介质诸如光存储介质122(图1)、磁存储介质或电子存储介质。作为示例,当存储介质是光存储介质时,所述存储介质可以是CD、DVD或蓝光盘,并且可以被配置为“只读”、“可写”或“可重写”设备。作为替代,或附加于这些能力,处理调整设备118可以通过网络,诸如经由因特网124,下载这样的软件程序。
在此转向图5,在步骤402,处理调整设备118获得指示软件程序版本的识别信息。当从存储介质读取软件程序时,所述识别信息可以是位于光存储介质122的程序ID。或者,所述软件程序可以是文件首标的一部分,或被包含在同样在光存储介质122上发现的软件程序表格内。在许多情况下,用户从光存储介质122向处理调整设备118内包含的另一存储介质复制软件程序,所述另一存储介质诸如硬盘驱动器、电子存储介质等。在这样的情况下,获得软件程序ID的步骤可以涉及从在处理调整设备118内的内部存储介质提取ID,而与从外部存储介质获得软件程序ID相反。
当诸如经由因特网124而下载软件程序时,所述识别信息可以是程序ID、用户ID等。所述识别信息最好被包含在所下载的软件程序内,诸如在程序表格或文件首标内,但是或者可以被存储在处理调整设备118内或由用户输入到处理调整设备或另一个设备内。
也应注意,不要求步骤400来实施本发明,虽然有可能当在诸如硬盘之类的处理调整设备118的内部存储介质上存储软件程序时在步骤402之前执行。而且,诸如当在下载或读取软件程序之前认证用户时,可以在步骤400之前执行步骤402。
在步骤404,确定是否应当向下或向上调整处理调整设备118的处理能力。作为示例,如果处理调整设备118的处理能力远超过当所述软件程序开发时软件设计者考虑的能力,在处理调整设备118上运行所述软件程序将产生不希望的结果,则需要向下调整处理调整设备118的处理能力。在这个方面,处理调整设备118最好利用用于确定软件程序版本的软件ID或其它识别信息和/或正常地运行软件程序所需要的处理能力的指示。所述处理调整设备118可以然后将运行软件程序所需要的处理能力与处理调整设备118的处理能力相比较。如果处理调整设备118的处理能力低于运行软件程序所需要的处理能力达到引起不希望的结果的程度,则在步骤404的确定结果可以是否定的,并且处理流程可以进行到步骤406。
在步骤406,处理调整设备118可以使用其全部处理能力来执行软件程序,或至少不需要步骤来降低其处理能力。在执行软件程序后,所述处理流程可以终止。
如果处理调整设备118的处理能力远高于运行所述软件程序所需要的处理能力,则在步骤404的确定可以是肯定的,并且分支到节点A(图7)。注意,对于处理调整设备118的处理能力的确定可以根据可用于处理调整设备118的处理器元件200的数量。实际上,可以在处理调整设备118中包含一个或多个处理器元件200,同时可以从处理调整设备118远程定位一个或多个其它处理器元件。在这个方面,参见图6,它是按照本发明的一个或多个方面的整体计算机网络的方框图。在此,PE 200和/或宽带引擎(由多个PE组成)可以用于实现计算机系统500的整体分布架构。系统500包括多个计算机和/或计算设备可以连接到的网络504。网络504可以是局域网(LAN)、诸如因特网的全球网或任何其它的计算机网络。连接到网络504的计算机和计算设备(网络的“成员”)包括例如客户机计算机506、服务器计算机508、个人数字助理(PDA)510、数字电视机(DTV)512和其它有线或无线计算机和计算设备。由网络504的成员使用的处理器最好由PE 200或其它适当的多处理器系统构造。
因为系统500的服务器508比客户机506对数据和应用执行更多的处理,因此服务器508比客户机506包含更多的计算模块(例如PE 200)。另一方面,PDA 510在这个示例中执行最少量的处理。因此,PDA 510包含最小数量的PE 200,诸如单个PE 200。DTV 512执行实质上在客户机506和服务器508的处理水平之间的处理水平。因此,DTV 512包含在客户机506和服务器508的处理器的元件数量之间的数量的处理器元件。
因此,注意,在步骤404(图5)执行的处理调整设备118的处理能力的确定、和关于是否调整其处理能力的结果的确定,可以包含在处理调整设备118内和在处理调整设备118外的处理器元件200的数量的确定。图6图解了其中可以使用许多内部和外部处理器元件200的处理能力的分布式系统500。
在返回到图5中图解的处理步骤的说明之前,将提供关于图6的分布系统500的进一步的细节。系统500的同构的(homogeneous)配置便利了适配性、处理速度和处理效率。因为系统500的每个成员使用一个或多个(或某部分)相同的计算模块,例如处理器元件200,来执行处理,因此执行数据和/或应用的处理的具体计算机或计算设备不重要,因为可以在网络的成员之间共享这样的数据和应用的处理。通过唯一地识别包括由系统500处理的数据和应用的软件单元,可以向请求处理的计算机或计算设备发送处理结果,而与这个处理在何处发生无关。因为执行这个处理的模块具有共同的结构并且使用共同的指令集架构,因此避免了用于在处理器之间实现兼容性的软件的添加层的计算负担。这个架构和编程模型便利了执行例如实时的多媒体应用所需要的处理速度。
为了进一步利用由系统500提供便利的处理速度和效率,可以将由这个系统处理的数据和应用封装到唯一地识别的、统一格式化的软件单元502中。每个软件单元502包含或能够包含应用和数据两者。每个软件单元也包含ID,用于全局地识别在网络504和系统500中的单元。软件单元的这种结构统一性和在网络中软件单元的唯一标识便利了在网络504的任何计算机或计算设备上的应用和数据的处理。例如,客户机506可以构成软件单元502,但是因为客户机506的有限的处理能力,客户机506可以向服务器508发送软件单元502以处理。软件单元502因此可以根据在当时网络504上的处理资源的可用性而在网络504中迁移以进行处理。
系统500的处理器和软件单元502的同构结构也避免了今天的异构(heterogeneous)网络的许多问题。例如,避免了使用任何指令集、寻求在任何ISA上允许处理应用的低效率的编程模块,例如,诸如Java虚拟机之类的虚拟机。因此,与传统网络相比,系统500可以远为有效地并且有效率地实现宽带处理。
再次转向图5,处理调整设备118享有的处理能力很显著(特别是当它可以利用如图6中所示的外部设备的处理能力时)。在一些情况下,这可能对被设计来在性能不高的系统上运行的软件程序的执行有不利的影响。因此,当在步骤404确定应当按照软件程序的版本而调整处理调整设备118的处理能力(可以包括外部能力)时,处理流程最好进行到节点A(图7)。在步骤408,启动用于改变处理调整设备118的处理能力的序列。
可以按照本发明而调整的处理能力的示例包括改变由处理调整设备利用的一个或多个时钟频率以处理数据和应用。对于本领域内的技术人员,显然,当给定的SPU 208(图2)例如以大约4GHz的时钟频率来正常地操作并且将该频率向上或向下调整时,该SPU 208的处理能力将在一些方面被相应地提高或降低。实际上,在给定的时间单元内可以执行的浮点运算的数量将提高或降低,在给定的时间单元内可以执行的整数计算的数量将提高或降低,在给定的时间单元内可以执行的指令的数量可以提高或降低,等等。作为另一个示例,在处理器元件200中执行许多管理功能的PU 204也依赖于时钟频率,以便执行其功能,可以通过调整时钟频率来增强或降低所述功能。作为另一个示例,总线212也可以按照时钟频率而操作,该时钟频率可以按照本发明而提高或降低,以增强或降低处理器元件200和作为整体的处理调整设备118的处理能力。
可以按照本发明而调整的处理调整设备118的其它方面和参数包括例如本地存储器250和/或共享存储器214的存储器映射、总线212的总线利用率(诸如通过PU 204)、总线212的带宽(诸如128比特、64比特、32比特等)。可以被调整以便在处理调整设备118的处理能力中产生改变的另外的参数包括例如本地存储器250和/或共享存储器214的高速缓冲存储器大小、其高速缓冲存储器组织、处理调整设备118的PU 204的一个或多个SPU 208的指令等待时间、其指令吞吐量、本地存储器250和/或共享存储器214的存储器等待时间及其存储器吞吐量。
作为另一个示例,可以操纵字节存储次序(endian),例如从小字节存储次序(最低有效字节在串的尾端)向大字节存储次序(最高有效字节在串的尾端)改变,反之亦然。可以被调整的另一个参数与指令类型相关联,例如从MIPS转换到powerPC,反之亦然。在本说明书的后面将更详细地论述这些参数及其操纵。
当确定应当调整处理调整设备118的处理能力时,优选的是,参照变换表格以确定应当调整处理调整设备118的参数的哪个以及作多大量的调整。在此方面,现在参照图8,图8是按照本发明的一个或多个方面的变换表格550的图示。在一般的意义上,变换表格550将相应的识别信息(例如软件程序ID)与指示对于处理调整设备118的处理能力进行的调整的一个或多个参数相关联。作为图示,所述识别信息被示出为定位在垂直行552中,其中,每个条目(0010,0020,0030,...,N)代表给定的一条识别信息,诸如软件程序ID。一个或多个参数P1-i、P2-i、P3-i、P4-i、...、PM-i与每条识别信息相关联,其中,每个参数指示要对于处理调整设备118的处理能力进行的调整,i表示所给定参数可能取的多个值之一。
作为例子,被标注为0040的识别信息可以与要对于处理调整设备118执行的软件程序的给定版本相对应,并且可能已经确定处理调整设备118的处理能力远超过在开发软件程序时考虑的处理能力。可能还已经确定了处理调整设备118的处理能力很大,以至于如果要以处理调整设备118的全能力来执行给定的软件程序,则将获得不希望的结果。因此,变换表格550可以包括与识别信息0040相关联的多个参数,即参数P2-2、参数P3-1、参数P4-4、...、参数PM-7。这些参数的每个最好表示处理调整设备118的处理能力的给定方面或当执行相关联的软件程序时为了获得希望的结果这样的方面应当被改变的量。
作为例子,参数P2-2可以表示将用于执行软件程序的给定SPU或一组SPU 208的时钟频率。参数P2-2也可以表示给定处理器元件200的诸如PU204、总线212等的其它部分的时钟频率。注意,诸如参数P2-2的给定参数的实际值可以直接地与诸如实际时钟频率之类的、处理调整设备118的给定处理能力相关联,或者它可以间接地与诸如时钟频率应当改变的值这样的能力相关联。本领域内的技术人员可以明白,可以在不脱离本发明的精神和范围的情况下考虑其它的间接关系。作为另一个示例,参数P3-1可以表示当执行相关联的软件程序时应当调整以便获得希望的结果的处理调整设备118的处理能力的另一个方面。在任何情况下,优选的是,由处理调整设备118使用参数P2-2、P3-1、P4-4、...、PM-7来调整其处理能力以获得希望的平台,在所述平台上执行相关联的软件程序(例如0040)。
按照本发明的实施例的其它方面,变换表格550优选地包括其它的维度,它允许相应的组的参数与给定的一条识别信息相关联。在此方面,变换表格550优选地包括维度556,沿着维度556放置多个处理标识符C001、C002、...、C00X。每个处理标识符与参数的超集(super-set)相关联,所述超集即在维度556的给定单元内的多个参数集。因此,沿着列552的软件程序标识符的每个与沿着维度556的每个处理标识符相关联。同样,对于诸如标识符0040之类的给定的标识符,多个参数集的每个与处理标识符C001、C002、...、C00X的相应一个相关联。
在图8中图解的所述示例中,与标识符0040相关联的参数P2-2、P3-1、P4-4、...、PM-7也与处理标识符C001相关联。与标识符0040相关联地存在潜在不同的参数集,即,与标识符0040和处理标识符C001、C002、...、C00X二者相关联的那些。有益的是,这种调整设备在如何设置每个参数的具体值方面使能了多个自由度,特别是当可以对具有很不同的处理能力的处理调整设备执行软件程序的给定版本时,例如,如图6的系统500的情况。
再次转向图7,在步骤410,确定是否变换表格550被本地存储在处理调整设备118中或定位在处理调整设备118的远处,诸如在网络124(它可以是图6的相同网络504)的节点。在这一点上,变换表格550可以被存储在一个或多个本地存储器250(图3)中和/或在一个或多个处理器元件200的共享存储器214(图2)中。本地存储变换表格550的优点是避免访问位于远处的变换表格所需的时间和精力。另一方面,为了保证变换表格550的内容是精确的和更新的,有益的是,可以远程存储变换表格550,在远处,它可以被管理实体控制和保持。
在这一点上,参见图9,它是处理系统380的方框图,所述处理系统380包括处理调整设备118(优选地包括监控器120),处理调整设备118可操作地连接到诸如因特网124的网络。作为管理实体的管理器382也可连接到因特网124。管理器382优选地包括网络和/或数据库服务器384,数据库服务器384可操作地连接到数据库386。数据库386可以驻留在与服务器384相同的位置或可以经由另一个网络连接而远程连接到服务器。虽然未示出,多个其它的处理调整设备(它可以具有不同的处理能力)也可以连接到因特网124,并且可以利用由管理器382提供的服务,这将在下面论述。
当变换表格550未本地存储在诸如处理调整设备118的一个或多个处理调整设备上时(或即使本地存储了其版本),优选的是,在管理器382的数据库386中存储变换表格550的实质上精确的和更新的版本。再次转向图7,如果未本地存储变换表格550,则处理流程优选地进行到步骤412,其中,诸如处理调整设备118之类的给定处理调整设备经由因特网124而建立与管理器382的通信链路。可以明白,虽然因特网124提供了优选的链路,但是,在不脱离本发明的精神和范围的情况下可以使用任何所知的通信技术来建立链路。与管理器382建立通信链路的步骤的一部分可以包括认证处理调整设备118或其用户。实际上,由管理器382提供的服务不需要由不愿意支付或通过其它方式补偿的用户享用。因此,所述认证处理可以涉及按照已知技术来从处理调整设备118向管理器382发送某些实质上唯一的或其它的控制信息。这个信息可以包括用户名和/或密码、会员号、某种序号、软件的购买证明等。
一旦在处理调整设备118和管理器382之间建立了通信链路,则所述处理最好进行到步骤414,在此,通过因特网124从处理调整设备118向管理器382至少发送关于软件程序的识别信息(诸如软件程序ID或其它标记)。虽然不要求,但是优选的是,变换表格550包括维度556,它指示通过因特网124从处理调整设备118向管理器382发送诸如播放器ID号或处理能力的其它标记的处理标识符。
然后,管理器382优选地使用服务器384来处理输入的数据,并且访问变换表格550(步骤416)。具体上,服务器384优选地使用识别信息(和处理标识符,如果使用的话)来获得一组参数,用于指示当运行软件程序时为了获得希望的结果应当对处理调整设备118的处理能力进行的调整。其后,服务器384最好以适当的形式来封装所述参数(例如,如上所述的单元格式),并且将其通过因特网124发送到处理调整设备118。处理流程然后最好进行到节点B,在图10中图解了节点B,现在参见节点B。
在步骤418,处理调整设备118优选地需要步骤来使用从变换表格550接收的参数以改变其处理能力(不论这些参数是从本地存储的版本还是从管理实体接收)。假定处理调整设备118在操作系统或其它系统级控制程序的控制下,则所述参数最好被提供到这样的程序,以便可以采取行动来改变处理调整设备118的处理能力。另一方面,如果采取全硬件方法和/或如果采取组合软件和硬件的方法,则优选地将所述参数路由传输到适当的目的地,诸如存储器位置、寄存器等。在步骤420,处理调整设备118优选地按照所提供的参数来改变其处理特性。
虽然可以在给定处理器元件200的多功能性的情况下采取许多方法来改变处理调整设备118的处理特性,但是在本说明书中后面提供一些示例。但是,在这一点上,假定已经成功地改变了这样的处理特性,则处理流程优选地进行到步骤422,在此,使用这样的被改变的处理特性来执行所述软件程序。有益的是,由于处理调整设备118模仿当开发软件程序时考虑的处理能力,因此避免了软件程序执行中的异常。
图11示出了系统610的示例,系统610允许处理调整设备118以安全的方式下载诸如如上所述的软件程序和/或参数集的程序内容,使得例如程序内容的未经授权的拷贝被防止或被使得无用。在U.S.Application No.10/316,675titled“METHODS AND APPARATUS FOR SECURE DISTRIBUTION OFPROGRAM CONTENT”,filed December 11,2002(美国申请第10/316,675号,名称为“用于程序内容的安全分布的方法和设备”,2002年12月11日提交)中描述了这样的系统,其公开并入在此作为参照。
系统610优选地包括管理服务器601、第三方服务器602、加密服务器603和诸如处理调整设备118的多个客户机终端设备604,都连接到诸如因特网的网络605。注意,系统610可以包括多个管理服务器601、多个第三方服务器602和多个加密服务器603。为了简洁和清楚,在此仅仅详细说明一个这样的服务器。
服务器601、602、603的每个优选地由实体或个人维持、控制和/或以其它方式与该实体相关联。注意,可以在此参照服务器和与其可交换地相关联的实体。
诸如上述的服务器384之类的管理服务器601最好可操作地耦接到诸如上述的数据库386之类的个人化数据库606,最好由负责执行具体管理功能的实体维持、控制和/或以其它方式与该实体相关联。可以使用适合于执行网络服务器功能和数据库功能的任何已知硬件来实现管理服务器601和个人化数据库606。
第三方服务器602最好由除诸如软件程序的开发者的管理服务器601的实体之外的实体控制、维持和/或以其它方式与该实体相关联。作为例子,第三方服务器602可以是计算机应用程序、计算机系统程序等的开发者,并且/或者可以提供由处理调整设备118使用来调整其处理能力的参数集,如上所述。但是,注意,与第三方服务器602相关联的实体不必与管理服务器601的不同,并且实际上可以是同一实体。例如,由第三方服务器602执行的功能可以由管理服务器601执行。可以使用用于执行服务器相关功能的任何已知硬件来实现所述第三方服务器602。
加密服务器603最好由与管理服务器601的实体相同的实体控制、维持和/或以其它方式与该实体相关联。作为示例,加密服务器可以与服务器384共存在管理器382内。但是,注意,加密服务器603可以与另一个实体相关联。可以使用用于执行服务器相关功能的任何已知硬件来实现加密服务器603。可以在控制、维持那些服务器和/或以其它方式与其相关联的一个或多个服务器和/或一个或多个实体之间分布由管理服务器601、第三方服务器602和加密服务器603执行的相应功能,虽然这样的分布最好与在图11中图解的一致。
总体上,每个客户机终端设备604最好可操作地耦接到诸如任何已知的硬盘驱动器硬件的硬盘驱动器607和诸如索尼记忆棒之类的存储卡608。或者,客户机终端设备耦接到如上所述运行的光设备,诸如CD驱动器、DVD驱动器或蓝光盘驱动器。虽然硬盘驱动器607、存储卡608和/或光设备(最好可拆卸地耦接到客户机终端设备604)被示出为与设备604分离的项目,但是应当明白它们可以与设备604集成地定位。可以使用任何已知的硬件来实现客户机终端设备604,所述硬件诸如个人计算机、申请者的游戏站602等。
客户机终端设备604优选地包括一个或多个处理调整设备118,并且优选地可用于通过经由网络605下载而接收源加密程序或源加密的参数集。虽然可以从任何被授权的实体获得源加密程序或源加密的参数集,但是优选的是,客户机终端设备604从第三方服务器602(例如通过经由网络605下载)或从管理服务器603接收源加密计算机程序或源加密参数集。
终端用户可以以某种形式(即源加密)来接收计算机程序和/或参数集,在所述形式中,不首先获得解密密钥并且解密所述源加密程序,则不能用于执行调整客户机终端设备604的处理调整设备的处理能力的程序。所述解密密钥仅仅可以由被授权的客户机终端设备604获得。
现在参见图12,它是图解由加密服务器603和第三方服务器602执行的具体处理步骤的概念方框图和流程图。此图提供了如何产生源加密计算机程序或源加密参数集的示例。在此示例中,第三方服务器602与软件开发者相关联,所述软件开发者或者本身或者与另一个实体相结合地获得程序和/或参数集。如图12中所示,第三方服务器602可以包含诸如系统程序或应用程序的至少一个程序、和/或至少一个参数集。这些程序或参数集的一个或多个通过网络605而被发送到加密服务器603。
加密服务器603最好加密所述程序或参数集,并且向第三方服务器602返回加密程序或加密的参数集。加密处理可以使用任何已知的加密技术,诸如公共密钥加密、对称密钥加密等,以便产生加密的软件程序或参数集。而且,加密服务器603可以向第三方服务器602提供解密密钥,该解密密钥能够解密加密的软件程序或参数集。第三方服务器602可以通过经由网络605进行电子下载而向客户机终端设备604分发加密程序或加密的参数集。不论如何分发源加密程序或源加密参数集,最好,在未执行具体注册步骤的情况下,终端用户不能使用所述参数集来执行所述程序或调整处理能力。
现在参见图13,它是图解优选地被执行以便处理源加密计算机程序和/或源加密参数集的具体处理步骤的概念方框图和流程图。客户机终端设备604最好已经通过经由网络605的下载操作而接收到源加密计算机程序或源加密的参数集。但是,为了执行源加密计算机程序或使用源加密的参数集,客户机终端设备604必须优选地通过网络605在管理服务器601中注册源加密的计算机程序或源加密的参数集。
在图14的流程图中至少图解了注册过程中的一些步骤。在步骤S20,客户机终端设备604接收源加密的计算机程序或源加密的参数集,并且如上所述将其存储。在步骤S22,用户最好提供指令,用于指示他或她希望安装计算机程序并且使其就绪以执行,或者希望使用参数集。在这一点上,客户机终端设备604优选地包括响应于用户的安装指令而被调用的另一个计算机程序。此另一个程序向用户提示注册源加密计算机程序或源加密参数集,并且调用通信功能(步骤S24)。
注意,客户机终端设备604优选地包括网络接口,用于如在本领域中已知经由网络605提供通信。可以使用任何已知的网络接口硬件来用于此目的。在步骤S26,优选的是,通信信道由客户机终端设备604启动,并且在所述设备604和管理服务器601之间建立。客户机终端设备604的网络接口最好可用于便利经由网络605向管理服务器601发送至少一些与设备604相关联的识别信息。特别是,所述识别信息优选地包括机器ID,诸如播放器ID,对于客户机终端设备604实质上是唯一的。所述识别信息也可以包括介质ID,指示由客户机终端设备604使用来存储源加密计算机程序的存储器类型。
优选的是,客户机终端设备604包括第一存储设备,诸如硬盘驱动器607、存储卡608等,可用于一起存储如下所述的具体的其它信息与源加密的计算机程序或源加密的参数集;以及第二存储设备,诸如只读存储器(ROM),可用于存储机器ID。客户机终端设备604的网络接口优选地还可用于(从所述ROM)经由网络605向管理服务器601发送机器ID(步骤S28)。也可以从客户机终端设备604向管理服务器601发送介质ID。
参见图15,管理服务器601通过网络605从客户机终端设备604接收诸如机器ID(和可能的介质ID)之类的识别信息(步骤S30)。在这一点上,管理服务器601最好包括网络接口,可用于便利与网络605的通信,以便可以通过网络5从客户机终端设备604接收识别信息。在步骤S32,管理服务器601分配另一个ID,在此被称为虚拟ID,对应于从客户机终端设备604接收的机器ID。注意,可以从多个预存的ID选择所述虚拟ID,可以通过对机器ID或某个其它的操作数执行的数值运算来导出虚拟ID,或者可以使用任何已知的或以后开发的技术来产生虚拟ID。
在步骤S34,管理服务器601在个人化数据库606搜索与从客户机终端设备604接收的机器ID(即在其第二存储设备(ROM)中存储的机器ID)匹配的现存机器ID。参见图16,个人化数据库606优选地可用于存储相应的注册信息,每组注册信息对应于相应的一个客户机终端设备604。在注册信息中包括客户机终端设备604的至少某个识别信息,诸如机器ID。如图16中所示,在个人化数据库606中预先存储了多个机器ID,如在图16的左列中所示。优选的是,这些机器ID的每个对应于给定的一个客户机终端设备604,并且这样的机器ID对于相应的客户机终端设备604实质上是唯一的。管理服务器601也优选地包括数据处理器,可用于在个人化数据库606搜索与通过网络605从客户机终端设备604接收的机器ID匹配的注册信息(例如机器ID)。可以使用任何已知或以后开发的数据处理硬件来用于此目的。
再次转向图15,在步骤S36,虚拟ID与在个人化数据库606中存储的机器ID相关联,即虚拟ID与向管理服务器601发送了所接收的机器ID的具体客户机终端设备604相关联。最好通过以对应于所存储的机器ID的方式来在个人化数据库606中存储虚拟ID,来实现这种关联性。
如上所述,通过网络605从客户机终端设备604向管理服务器601发送的识别信息(图14的步骤S28)可以包括介质ID(或介质ID)的发送,所述介质ID对应于由客户机终端设备604使用来存储源加密计算机程序或源加密参数集的存储设备的类型。例如,介质ID可以指示客户机终端设备604在硬盘驱动器607、在存储卡608或在某种其它类型的存储介质中存储源加密的计算机程序或源加密的参数集。作为响应,管理服务器601可以通过在个人化数据库606中对应于所存储的机器ID的位置存储所接收的介质ID,来将虚拟ID与所存储的机器ID和所接收的介质ID相关联。
参见图17和18,管理服务器601最好可用于产生加密的解密密钥和加密的虚拟ID,其中,所述解密密钥可用于在客户机终端设备604解密源加密的计算机程序或源加密的参数集。注意,管理服务器601可以访问可用于解密由加密服务器603产生的相应源加密计算机程序的任何数量的解密密钥(图11-12)。这些解密密钥可以被加密服务器603和/或被第三方服务器602提供到管理服务器601。而且,解密密钥可以通过网络605、通过另一个网络被发送到管理服务器601,或者可以通过存储介质等而人工地提供。
在步骤S40,管理服务器601优选地使用与客户机终端设备604相关联的虚拟ID来加密所述解密密钥。而且,所述管理服务器601优选地使用客户机终端设备604的相关联的机器ID来加密所述虚拟ID,每个所述虚拟ID优选地从个人化数据库606获得(步骤S42)。
管理服务器601的网络接口优选地还可用于便利通过网络605向客户机终端设备604发送加密的解密密钥和加密的虚拟ID(步骤S44)。在步骤S46,客户机终端设备604优选地通过网络605来接收加密的解密密钥和加密的虚拟ID,并且将其存储在第一存储设备(例如硬盘驱动器607、存储卡608等)中。
所述加密的解密密钥仅仅被提供到被授权的客户机终端设备604,例如已经提供有效机器ID并且已经与用于加密所述解密密钥的虚拟ID相关联地注册了这样的机器ID的客户机终端设备604。而且,诸如通过网络窃取或未经授权的复制之类的对加密的解密密钥的任何截取,将不能提供解密源加密计算机程序或源加密的参数集所必要的信息(即可使用的解密密钥)。实际上,使用实质上唯一的虚拟ID来加密这样的解密密钥。类似地,仅仅在已经完成了所述注册过程并且客户机终端设备604已经被视为授权之后,才向客户机终端设备604提供加密的虚拟ID。当以加密的方式(即使用客户机终端设备604的机器ID来加密)从管理服务器601向客户机终端设备604发送虚拟ID时,任何未经授权地获得加密的虚拟ID将不能得出解密所加密的解密密钥所必要的信息。
现在参见图19和20,它们图解了被执行以便在客户机终端设备604中加载/安装源加密的计算机程序和/或源加密的参数集的具体处理。图19图解了客户机终端设备604与诸如硬盘驱动器607、存储卡608等的第一存储设备相分离。但是,如上所述,可以集成或半集成这些元件。注意,在处理的这个阶段,客户机终端设备604包括在诸如ROM之类的第二存储设备中存储的机器ID,并且第一存储设备607、608包含下面的项目机器ID、加密的虚拟ID、加密的解密密钥、和源加密的计算机程序。
在步骤S50,用户可以向客户机终端设备604提供指令以加载/安装源加密的计算机程序或使用源加密的参数集来调整处理能力。作为响应,客户机终端设备604使用适当的硬件和软件处理来从第一存储设备607、608读取机器ID,并且从诸如ROM之类的第二存储设备读取机器ID(步骤S52)。在步骤S54,确定是否这些机器ID匹配。如果它们不匹配,则所述处理终止,并且/或者进入替代的处理。但是,如果它们匹配,则处理流程进行到步骤S56,在此,使用机器ID(优选的是在ROM中存储的机器ID)来解密加密的虚拟ID。一旦获得了机器ID,则使用虚拟ID来解密所加密的解密密钥(步骤S58)。然后,使用解密密钥来解密源加密的计算机程序或源加密的参数集(步骤S60)。在步骤S62,可以使用在步骤S56获得的虚拟ID来重新加密所述计算机程序或参数集,以获得客户机加密的计算机程序或客户机加密的参数集。所述客户机加密的计算机程序或客户机加密的参数集被存储在第一存储设备607、608中(步骤S64)。在此阶段,不需要在第一存储设备607、608中保留加密的解密密钥、源加密的计算机程序、或源加密的参数集。
客户机终端设备604优选地包括解密设备和加密设备,以便执行如上所述的加密和解密功能。所述解密设备和所述加密设备可以被集成在一起,并且为了简化被称为加密设备。可以按照本发明使用用于执行这样的加密和解密的任何已知或以后开发的硬件和/或软件。例如,可以使用解密库、加密库等。
客户机加密的计算机程序和/或客户机加密的参数集是安全的,因为未经授权的终端用户不能在不同的客户机终端设备604上执行其未经授权的拷贝。实际上,必须首先解密客户机加密的计算机程序和/或客户机加密的参数集,如下所述,在除了在管理服务器601中登记了计算机程序的客户机终端设备之外的任何其它客户机终端设备604上不能执行所述客户机加密的计算机程序和/或客户机加密的参数集。
参见图21和22,现在说明由客户机终端设备604执行计算机程序的处理。在所述处理中的此阶段,客户机终端设备604包括第二存储设备,诸如ROM,包含机器ID;第一存储设备607、608,包含机器ID、加密的虚拟ID和客户机加密的计算机程序。
在步骤S70,用户可以向客户机终端设备604提供指令以执行计算机程序。作为响应,在适当的计算机程序的控制下运行的客户机终端设备从第一存储设备607、608读取机器ID,并且从第二存储设备(ROM)读取机器ID(步骤S72)。在步骤S74,确定是否所述机器ID彼此匹配。如果所述机器ID匹配,则处理流程进行到步骤S76,在此,客户机终端设备604的解密设备使用机器ID(优选的是在ROM中包含的机器ID)来解密被加密的虚拟ID。在步骤S78,客户机终端设备604的解密设备使用在步骤S76获得的虚拟ID来解密客户机加密的计算机程序或客户机加密的参数集。在这一点上,客户机终端设备604可以执行驻留在RAM中的计算机程序,或调整处理调整设备的处理能力。
仅仅可以使用与用于加密客户机加密的计算机程序或客户机加密的参数集的虚拟ID相关联的客户机终端设备604来解密客户机加密的计算机程序或客户机加密的参数集。因此,如果向未授权的终端用户提供客户机加密的计算机程序或客户机加密的参数集的未经授权的拷贝,则在其上这样的未经授权的终端用户试图执行计算机程序或使用参数集的所述设备将不能解密客户机加密的计算机程序或客户机加密的参数集。而且,如果第一存储设备607、608被提供到未经授权的终端用户(例如,使得存储设备607、608耦接到不同的客户机终端设备604),则不能解密被加密的虚拟ID,因为在ROM中存储的任何机器ID将不匹配在第一存储设备607、608中包含的机器ID。因此,不能解密客户机加密的计算机程序或客户机加密的参数集。这种安全分发计算机程序或客户机加密的参数集的方法保证未经授权的拷贝无用,并且仅仅特定的客户机终端设备604能够执行计算机程序和/或调整处理能力。
虽然如上所述的方面考虑了通过网络605向客户机终端设备604提供解密密钥,但是替代方面考虑了可以通过人工分发的存储介质(例如CD-ROM等)向客户机终端设备604提供解密密钥。现在参见图23和24来说明本发明的这些方面。如图23中所示,客户机终端设备604通过存储介质609A来接收加密的第一解密密钥。所述第一解密密钥最好可用于在客户机终端设备604解密源加密计算机程序或源加密参数集。管理服务器601最好可用于产生加密的第二解密密钥和加密的虚拟ID,其中,第二解密密钥可用于解密被加密的第一解密密钥。注意,管理服务器601可以访问可用于解密相应的被加密的第一解密密钥的任何数量的第二解密密钥。这些第二解密密钥可以被加密服务器603和/或被第三方服务器602提供到管理服务器601。而且,可以通过网络605、通过另一个网络来向管理服务器601发送这些第二解密密钥,或者可以通过存储介质等来人工地提供这些第二解密密钥。
在步骤S40A,管理服务器601优选地使用与客户机终端设备604相关联的虚拟ID来加密第二解密密钥。而且,管理服务器601优选地使用客户机终端设备604的相关联的机器ID来加密虚拟ID,其中每个机器ID优选地从个人化数据库606获得(步骤S42)。管理服务器601的网络接口优选地还可用于便利通过网络605向客户机终端设备604发送加密的第二解密密钥和加密的虚拟ID(步骤S44A)。在步骤S46A,客户机终端设备604优选地通过网络605接收加密的第二解密密钥和加密的虚拟ID,并且将其存储在第一存储设备(例如硬盘驱动器607、存储卡608等)中。
加密的第二解密密钥仅仅被提供到被授权的客户机终端设备604,例如已经提供了有效的机器ID并已经与用于加密第二解密密钥的虚拟ID相关联地注册了这样的机器ID的客户机终端设备604。诸如通过网络窃取或未经授权的复制之类的加密的第二解密密钥的任何截取将不能提供解密被加密的第一解密密钥所需要的信息(即可使用的第二解密密钥)。实际上,使用实质上唯一的虚拟ID来加密这样的第二解密密钥。类似地,仅仅在已经完成了所述注册过程并且客户机终端设备604已经被视为授权之后,才向客户机终端设备604提供加密的虚拟ID。当以加密的方式(即使用客户机终端设备604的机器ID来加密)从管理服务器601向客户机终端设备604发送虚拟ID时,加密的虚拟ID的任何未经授权的获得将不能得到解密被加密的第二解密密钥所需要的信息。
现在参见图25和26,它们图解了被执行以便在客户机终端设备604中加载/安装源加密的计算机程序或源加密的参数集的具体处理。图25图解了在处理的这个阶段,客户机终端设备604包括在第二存储设备(ROM)中存储的机器ID,并且第一存储设备607、608包含下面的项目机器ID、加密的虚拟ID、加密的第二解密密钥、加密的第一解密密钥、以及源加密的计算机程序和/或源加密的参数集。
在步骤S50,用户可以向客户机终端设备604提供指令以加载/安装源加密的计算机程序和/或源加密的参数集以用于将来的使用。作为响应,客户机终端设备604使用适当的硬件和软件处理来从第一存储设备607、608读取机器ID,并且从诸如ROM之类的第二存储设备读取机器ID(步骤S52)。在步骤S54,确定是否这些机器ID匹配。如果它们不匹配,则所述处理终止,并且/或者进入替代的处理。但是,如果它们匹配,则处理流程进行到步骤S56,在此,使用机器ID(优选的是在ROM中存储的机器ID)来解密加密的虚拟ID。一旦获得了虚拟ID,则使用虚拟ID来解密被加密的第二解密密钥,使用第二解密密钥来解密被加密的第一解密密钥(步骤S58A)。接着,使用第一解密密钥来解密源加密的计算机程序或源加密的参数集(步骤S60A)。在步骤S62,可以使用在步骤S56获得的虚拟ID来重新加密所述计算机程序或参数集以获得客户机加密的计算机程序。所述客户机加密的计算机程序或客户机加密的参数集被存储在第一存储设备607、608中(步骤S64)。在此阶段,不需要在第一存储设备607、608中保留加密的第一解密密钥、加密的第二解密密钥、源加密的计算机程序、或源加密的参数集。
一旦获得并且在第一存储设备607、608中存储了客户机加密的计算机程序或客户机加密的参数集,则可以使用参见图21和22所述的处理来执行所述计算机程序。
图27示出了可用于使得处理调整设备118能够以安全的方式来下载如上所述的计算机程序或参数集的另一个系统710,例如从而能够防止未经授权的拷贝或使得未经授权的拷贝无用。在U.S.Application No.10/316,309,titled“METHODS AND APPARATUS FOR SECURE DISTRIBUTION OFCONTENT,”filed December 1,2002(美国申请第10/316,309号,名称为“用于安全分发内容的方法和设备”,2002年12月1日提交)中描述了这样的系统,其公开被并入在此作为参照。
系统710优选地包括第三方服务器701、加密服务器702、分发服务器703、管理服务器704和诸如处理调整设备118的多个客户机终端设备705,它们都耦接到诸如因特网之类的网络706。注意,系统710可以包括多个第三方服务器701、多个加密服务器702、多个分发服务器703和/或多个管理服务器704。为了简洁和清楚,在此将仅仅说明每种这样的服务器中的一个。服务器701、702、703、704的每个最好由实体或个人维持、控制和/或与实体或个人相关联。注意,在此可以参照服务器以及与其可交换地相关联的实体。
第三方服务器701最好被实体控制、维持和/或与实体相关联,所述实体诸如参见图11所述的软件程序的开发者。
加密服务器702最好被负责管理功能的实体控制、维持和/或与所述实体相关联。优选的是,这个实体是与管理服务器704的实体相同的实体。但是,注意,加密服务器702可以与另一个实体相关联。可以使用用于执行与服务器相关的功能的任何已知硬件来实现加密服务器702。
分发服务器703优选地被负责诸如通过网络706来向客户机终端设备705分发软件程序或参数集的实体控制、维持和/或与该实体相关联。分发服务器703优选地耦接到个人化数据库707,诸如数据库386,以下详细对此说明。可以使用用于执行网络服务器功能和数据库功能的任何已知硬件来实现分发服务器703和个人化数据库707。
诸如服务器384之类的管理服务器704优选地由负责执行具体管理功能的实体维持、控制和/或以其它方式与该实体相关联。可以使用用于执行网络服务器功能和数据库功能的任何已知硬件来实现管理服务器704。
可以在一个或多个服务器和/或控制、维持那些服务器和/或以其它方式与那些服务器相关联的一个或多个实体之间分布由第三方服务器701、加密服务器702、分发服务器703和管理服务器704执行的相应功能。实际上,不需要针对每个服务器有分别的实体,例如,一个实体可以与加密服务器703和管理服务器704相关联。但是,所述分布优选地与图27中图解的一致。
总体上,每个客户机终端设备705包括一个或多个处理调整设备118,并且优选可操作地耦接到硬盘驱动器708和存储卡709,所述硬盘驱动器708诸如任何已知的硬盘驱动器硬件,所述存储卡709诸如索尼的记忆棒。或者,所述客户机终端设备耦接到如上所述运行的光设备,诸如CD驱动器、DVD驱动器或蓝光盘驱动器。虽然硬盘驱动器708、存储卡709和/或光设备(它最好可拆卸地耦接到客户机终端设备705)被示出为与设备705分离的项目,但是应当明白它可以与设备705集成地定位。可以使用任何已知的硬件来实现客户机终端设备705,所述硬件诸如个人计算机、申请者的游戏站702等。
客户机终端设备705优选地以关于图11的客户机终端设备604如上所述的方式,通过经由网络706下载来如上所述地接收源加密的程序和/或源加密的参数集。
现在参见图28,它是图解由加密服务器702和第三方服务器701执行的具体处理步骤的概念方框图和流程图。所述附图提供了如何产生源加密计算机程序或源加密的参数集的例子。在这个示例中,第三方服务器701与软件开发者相关联,所述软件开发者或者其本身或者与另一个实体相结合来获得计算机程序或参数集,所述计算机程序或参数集通过网络706被发送到加密服务器702。但是,注意,可以例如通过存储介质人工地向加密服务器702提供所述计算机程序或参数集。
加密服务器702优选地加密所述程序和/或参数集,并且向第三方服务器701返回加密的程序或加密的参数集。所述加密处理可以使用任何已知的加密技术,诸如公共密钥加密、对称密钥加密等,以便产生加密的程序或加密的参数集。作为示例,加密服务器702向第三方服务器701返回加密程序,诸如源加密的系统程序(源加密的系统程序)或加密的应用程序(源加密的应用程序),或返回源加密的参数集。而且,加密服务器702可以向第三方服务器701提供解密密钥,该解密密钥能够解密加密的程序或加密的参数集。优选的是,所述解密密钥在非激活状态中,即以它可能不容易用于解密源加密的计算机程序或源加密的参数集的方式,被提供到分发服务器703。例如,解密密钥可以被实体初始加密,诸如被加密服务器702加密,使得它是非激活的。如下所述,这提供了有益的安全级别。
现在参见图29,它是图解优选在分发服务器703和管理服务器704之间执行的具体处理步骤的概念方框图和流程图。分发服务器703优选地建立通过网络706与管理服务器704的通信链路。管理服务器704优选地通过网络706向分发服务器703发送密钥分发程序711、密钥管理数据712和密钥注册程序713。如下所述,密钥分发程序711被分发服务器703执行以便使得可以向终端用户分发解密密钥。所述密钥管理数据优选是信息的安全集合,其中包括分发ID,所述分发ID优选地对于每个分发服务器703是实质上唯一的。密钥注册程序713优选地由分发服务器703执行以便将非激活的解密密钥转换为激活的解密密钥(即,可用于解密源加密的计算机程序)。
现在参见图30,它是图解优选在分发服务器703和管理服务器704之间执行的另外的处理步骤的流程图。总体上,分发服务器703可以通过网络706向管理服务器704发出激活请求,并且作为响应从管理服务器704接收激活许可信息。具体上,在步骤S1,分发服务器703优选地通过网络706而连接到管理服务器704。在步骤S2,分发服务器703向管理服务器704发送密钥管理数据(其中包括分发器ID)。
在步骤S3,管理服务器704优选地使用适当的认证处理来认证分发服务器703。例如,管理服务器704可以要求分发服务器703提供用户ID、密码等或某些其它的可验证信息,以便允许认证。但是,优选的是,管理服务器704从密钥管理数据712提取分发器ID,以便认证分发服务器703。在步骤S4,确定是否认证是成功的。如果认证不成功,则处理进行到步骤S5,在该处,不允许激活,并且处理结束。如果认证成功,则处理流程优选地进行到步骤S6,在该处,通过网络706从管理服务器704向分发服务器703发送激活许可信息。
在步骤S7,分发服务器703优选地激活与源加密计算机程序或与源加密的参数集相关联的解密密钥。具体上,分发服务器703优选地执行密钥注册程序713,该密钥注册程序713要求激活许可信息作为输入。作为响应,密钥注册程序713激活解密密钥,以便它可以用于解密源加密的计算机程序。作为例子,所述激活许可信息可以包括适合于解密初始加密的解密密钥的解密密钥。在这种情况下,密钥注册程序713包括解密能力,该解密能力使用激活许可信息来解密初始加密的解密密钥。
与如何或是否激活解密密钥无关,分发服务器703优选地在个人化数据库707中存储解密密钥。在这个阶段,分发服务器703包含(或访问)源加密的计算机程序或源加密的参数集以及能够解密这样的程序或参数集的解密密钥。
现在参见图31,它是图解优选地执行以便处理源加密的计算机程序或源加密的参数集的具体处理步骤的概念方框图和流程图。但是,为了执行源加密的计算机程序或使用源加密的参数集来调整处理调整设备的处理能力,客户机终端设备705必须执行具体的注册步骤。优选的是,用网络706上的管理服务器704来图解这些步骤。
在图32的流程图中图解在注册处理中的至少一些步骤。步骤S20、S22、S24、S26和S28类似于具有在图16中示出的相同附图标号的步骤。
其后,在步骤S30,管理服务器704优选地产生和通过网络706向客户机终端设备705发送注册数据。作为例子,可以从机器ID和分发器ID形成注册数据,优选地使得这些ID可以随后通过注册数据的适当分析而被识别。在接收到注册数据时,客户机终端设备优选地在诸如硬盘驱动器和/或存储卡709的第一存储设备中存储它们。
参见图33,注意,诸如服务器384的管理服务器704可以耦接到诸如数据库386之类的数据库707A。数据库707A可以包含在上述的注册处理期间接收的任何设备ID和/或分发器ID。优选的是,所述设备ID和分发器ID彼此相关联地被存储,以便可以获得有用的历史数据及其分析。例如,可以从这样的分析确定具体的客户机终端设备705已经从具体的分发服务器703接收到源加密的计算机程序或源加密的参数集。与从分发服务器703获得的数据相结合,所述设备ID、分发器ID和/或其间的关联可以用于保证满足在分发服务器703部分上的任何义务(例如通过合同)。
现在参见图34和35,它们分别是图解优选地被执行以便注册计算机程序或参数集并且使得终端用户可以执行其或调整所述处理的另外的处理步骤的概念方框图和流程图。用户优选地向客户机终端设备705提供指令,以指示获得适合于解密源加密的计算机程序的解密密钥的希望。在步骤S21,客户机终端设备705建立通过网络706与分发服务器703的通信链路。其后,客户机终端设备705向分发服务器703发送注册数据(先前从管理服务器704获得)(步骤S22)。
在步骤S23,分发服务器703通过网络706从客户机终端设备705接收注册数据,所述注册数据例如包含机器ID(并且可能包括分发器ID)。在这一点上,分发服务器703优选地包括网络接口,可用于便利与网络706的通信,以便可以通过网络706从客户机终端设备705接收注册数据。在步骤S23,管理服务器704也分配另一个ID,在此被称为虚拟ID,它优选地对应于从客户机终端设备705接收的机器ID。注意,可以从多个预先存在的ID选择所述虚拟ID,可以通过对机器ID、分发器ID和/或某个其它操作数执行的数值运算来导出虚拟ID,或者可以使用任何其它已知的或以后开发的技术来产生虚拟ID。
分发服务器703在个人化数据库707搜索与从客户机终端设备705接收的机器ID(即在其第二存储设备(ROM)中存储的机器ID)匹配的现存的机器ID。参见图36,个人化数据库707优选地可用于存储相应的机器ID,每个ID对应于相应的一个客户机终端设备705。多个机器ID被预先存储在个人化数据库707中,例如图36的左列中。优选的是,这些机器ID的每个对应于给定的一个客户机终端设备705,并且这样的机器ID对于相应的客户机终端设备705实质上是唯一的。分发服务器703也优选地包括数据处理器,可用于在个人化数据库707搜索与通过网络706从客户机终端设备705接收的机器ID匹配的注册信息(例如机器ID)。可以使用任何已知或以后开发的数据处理硬件来用于此目的。
再次参见图35,在步骤S23,虚拟ID与在个人化数据库707中存储的机器ID相关联,即,所述虚拟ID与向分发服务器703发送了所接收的机器ID的具体客户机终端设备705相关联。最好通过以使得与所存储的机器ID对应的方式将虚拟ID存储在个人化数据库707中而实现这种关联。
如上所述,从客户机终端设备705通过网络706向分发服务器703发送的注册数据(图35的步骤S22)可以包括发送对应于分发服务器703的分发器ID,从所述分发服务器703获得了源加密的计算机程序或源加密的参数集。或者,在注册数据中包含的分发器ID也可以与机器ID相关联地被存储在个人化数据库707中。
参见图35,分发服务器703优选地可用于产生加密的解密密钥和加密的虚拟ID,其中,解密密钥可用于在客户机终端设备705解密源加密的计算机程序或源加密的参数集。应注意,分发服务器703可以访问可用于解密由加密服务器702(图27-28)产生的相应源加密计算机程序的任何数量的解密密钥。所述解密密钥可以被加密服务器702和/或被任何其它适当的实体提供到分发服务器703。而且,所述解密密钥可以通过网络706、通过另一个网络被发送到分发服务器703,或者可以人工地通过存储介质等提供。
在步骤S24,分发服务器703优选地使用与客户机终端设备705相关联的虚拟ID来加密解密密钥。而且,分发服务器703优选地使用客户机终端设备705的相关联的机器ID来加密虚拟ID,其中每个所述机器ID优选地从个人化数据库707获得。
分发服务器703的网络接口优选地还可用于便利于通过网络706向客户机终端设备705发送加密的解密密钥和加密的虚拟ID(步骤S25)。在步骤S26,客户机终端设备705优选地通过网络706接收加密的解密密钥和加密的虚拟ID,并且将其存储在第一存储设备(例如硬盘驱动器708、存储卡709等)中。在步骤S27,分发服务器703优选地记录(作为历史数据)向客户机终端设备705发送了具体的解密密钥。这个信息优选地以后例如通过网络706提供到管理服务器704。优选的是,分发服务器703不能够访问在历史数据中包含的数据。这个数据可以用于记帐目的,用于跟踪义务等。
加密的解密密钥仅仅被提供到授权的客户机终端设备705,例如已经提供了有效的机器ID并且已经与用于加密所述解密密钥的虚拟ID相关联地注册了这样的机器ID的客户机终端设备705。而且,对加密的解密密钥的诸如通过网络窃取或未经授权的复制之类的任何截取将不能提供解密源加密的计算机程序或解密源加密的参数集所需要的信息(即可使用的解密密钥)。实际上,使用实质上唯一的虚拟ID来加密这样的解密密钥。类似地,仅仅在已经完成了所述注册过程并且客户机终端设备705已经被视为授权之后,才向客户机终端设备705提供加密的虚拟ID。当以加密的方式(即使用客户机终端设备705的机器ID来加密)从分发服务器703向客户机终端设备705发送虚拟ID时,任何未经授权地获得加密的虚拟ID不能得到解密被加密的解密密钥所需要的信息。
参见图19和图20而如上所述被执行来在客户机终端设备705中加载/安装源加密的计算机程序或源加密的参数集的处理。
参见图21和22而如上所述由客户机终端设备705执行计算机程序或由客户机终端设备705使用参数集以控制处理的处理。
向回参见图10,用于获得处理调整设备118的处理特性的改变的在步骤420采取的具体步骤太多以至于不能在每个细节和每个情况上描述。因此,现在说明一些说明性示例,可以明白,在不脱离本发明的精神和范围的情况下,可以使用其它的方法和技术来获得这样的改变。按照本发明的一个方面,优选的是,调整至少一个SPU 208的处理特性,以便一个或多个SPU 208可以以希望的方式来执行软件程序,而不调整一个或多个其它SPU 208的处理特性以便可以获得其较高的处理特性来执行其它的处理任务。作为例子,可以在不调整一个或多个其它SPU 208的时钟频率的同时调整具体参数,诸如一个或多个SPU 208的时钟频率。
在这一点上,现在参见图37,它是处理器元件200A的方框图,所述处理器元件200A可用于改变一些(例如一些SPU的)时钟频率以便改变它们的处理能力,而不改变其它SPU 208的一个或多个其它时钟频率。如图37中所示,SPU 208A-D的每个包括诸如使用共知的锁相环技术的相应的时钟电路。具体上,SPU 208A包括被标注为PLL1的锁相环电路,而SPU 208B-D包括被分别标注为PLL2、PLL3和PLL4的相应的锁相环电路。每个所述锁相环电路优选地可用于在相对宽的频率范围上锁定,以便可以获得显著不同的时钟频率来运行相关联的SPU 208。例如,优选的是,每个锁相环电路可用于锁定在从大约1MHz到大约4GHz的时钟频率上。
按照本发明的这个实施例,处理器元件200A包括可以是软件控制的系统控制280、硬件控制或其组合。在任何情况下,系统控制280优选地可用于从例如变换表格550接收指示希望的时钟频率的参数,并且将其转换为对与SPU 208A相关联的一个或多个锁相环电路的命令信号。优选的是,系统控制280输出由给定的SPU 208识别的信号,以便可以改变其相关联的锁相环电路,而不改变一个或多个其它SPU 208的锁相环电路。注意,为了实现这种功能,每个SPU 208将要求其本身的时钟网格,例如其本身的时钟频率分发网络,诸如H树分发网络等。而且,优选的是,PU 204包括锁相环电路(被标注为PLL6),它能够按照从系统控制280发布的控制信号而被改变。也优选的是,总线212包括相关联的锁相环电路(被标注为PLL5),它能够响应于从系统控制280发布的控制信号而被改变。有益的是,可以按照来自系统控制280的控制信号来改变处理器元件200A的任何或所有锁相环电路,该控制信号可以被如上所述的变换表格550中的参数影响。
在图38中示出了实现了与在图37中图解的功能实质上相同的功能的替代配置。在本发明的这个实施例中,处理器元件200B包括多个时钟电路284,诸如CLK1、CLK2、CLK3、...、CLKN,它们共同地通过SPU 208、PU 204和总线212。时钟电路284的各个输出被输入到例如SPU 208、PU 204和总线212的每个,其中这些元件的每个包括相应的多路复用器286或其它类似地功能的电路。多路复用器286可用于接收从时钟电路284发送的每个可能不同的时钟信号,并且响应于从控制寄存器282发出的控制信号而输出时钟信号之一。所述控制寄存器可以直接地从变换表格550的参数接收其内容,或作为操纵所述参数的值的结果而接收其内容。再次,在这种配置中,SPU208、PU 204和总线212的每个要求分别的时钟网格,以便在一个元件而不是一个或多个其它元件中,获得不同的时钟频率,。
参见图39,可以使用一个锁相环电路和各种屏蔽信号来实现相应的时钟电路284,所述屏蔽信号诸如MASK 1,它产生1/3频率的时钟信号;MASK2信号,它产生1/2频率的时钟信号,等等。按照本发明的这个实施例,一种控制电路(未示出)可以产生相应的MASK(屏蔽)信号。寄存器282和多路复用器286组合可以用于接收由固定的一组屏蔽产生的相应时钟信号,其中,将按照寄存器282来选择时钟信号之一。
如上所述,在可以按照本发明来操纵的处理调整设备118的处理能力的示例之间使用处理器元件200(图2)的总线212。在这一点上,现在参见图40,它是图解可以如何实现处理器元件200C以便使得能够特别相对于PU 204而调整总线利用率的方框图。作为实际事物,用于实现有效的处理的处理器元件200C的能力要求PU 204和SPU 208A-D随时获得对于总线212的访问。如果对总线212的访问被改善或阻碍,则可以相应地提高或降低处理器元件200C的处理能力。按照本发明,系统控制280可用于通过限制器电路288来限制或增加由PU 204对总线212的访问。具体上,与限制器288组合的系统控制280可以调整PU 204被允许访问总线212的具体周期和/或处理周期的百分比。例如,可以通过允许PU在有限数量的处理周期上访问总线212的系统控制280来建立调度280A。因此,如果没有系统控制280和限制器288,PU 204可能试图以比它被允许的少得多或多得多的次数来访问总线212。这可能提高或降低在PU 204和共享DRAM 214之间的处理速度,并且也可能增加或减少在PU 204和一个或多个SPU 208之间执行的处理。对于对总线212的访问的这种限制可以特征在于诸如由PU 204对总线212的30%的利用率的百分比或某个其它的百分比。
注意,限制器288也可以用于以与关于PU 204上述的实质上类似的方式来通过一个或多个SPU 208来改善或限制对于总线212的访问。这可以与调整处理器200C的处理能力相结合地提供另外的自由度。
如上所述,改变处理调整设备118的指令等待时间和指令吞吐量之一或两者可能影响处理调整设备118的处理能力。在这一点上,参见图41和42,它们是处理调整设备118可以如何操纵指令等待时间和/或指令吞吐量的图示。具体上,可以在指令流水线的一个或多个级之间插入或去除定时延迟、空操作等。例如,指令流水线可以包括指令读取序列、指令解码序列、指令执行序列和写回序列。如图41中所示,可以通过在其间插入或删除空操作、气泡(bubble)、定时延迟等来在指令执行序列和写回序列之间实现定时调整。如图42中图解,可以在已经完成了影响指令的等待时间的写回序列之后插入或去除定时调整。按照本发明,一个或多个SPU 208或PU 204可以使用这些技术以便调整处理器元件200的处理能力。
而且,可以通过操纵其存储器等待时间和/或存储器吞吐量来调整处理调整设备118的处理能力。具体上,可以调整与其本地存储器250对应的、或与共享DRAM 214对应的SPU 208的存储器等待时间和/或存储器吞吐量,以便获得处理器元件200的希望的处理能力。类似地,可以调整与共享DRAM214相对应的PU 204的存储器等待时间和/或存储器吞吐量。可以以与关于图15和16上述的实质上类似的方式来实现调整存储器等待时间和/或存储器吞吐量的具体细节,可以明白,在存储器访问中的基本序列包括获得地址、解码地址和按照指定地址从存储器读取数据(或向存储器写入数据)。
现在参见图43,它是图解从租用程序内容的分发器安全地分发诸如软件程序之类的程序内容的示例的处理流程图。在上述的美国申请第10/316,309和10/316,675号中描述了这样的分发。
租用程序内容的分发器可以是管理服务器601、704、第三方服务器602、701、分发服务器703或某个其它的服务器(未示出)。当用户希望租用程序内容时,最好要求该用户首先变为租用系统的成员。在这一点上,在步骤S70,用户例如通过客户机终端设备604、705的激活机制而指示他或她希望变为系统的成员。作为例子,客户机终端设备604、705可以是同一设备,其中,用户将运行租用的程序内容,或者客户机终端设备604、705可以是分别的设备。而且,客户机终端设备604、705可以包含和执行便利成员处理的适当计算机程序。
在步骤S72,客户机终端设备604、705最好通过网络605、706与管理服务器601、704建立通信链路。在步骤S74,由客户机终端设备604、705发送请求,用于指示用户希望变为租用系统的成员。客户机终端设备604、705可以例如当该用户将仅仅使用当前的客户机终端设备来租用和执行内容时通过网络605、706向管理服务器601、704发送机器ID,或例如当该用户也经由其它设备而租用程序内容时可以发送用户特有的其它ID信息。作为响应,管理服务器601、704产生电子成员证书,它可以当用户使用同一客户机终端设备来仅仅租用和执行程序内容时对于客户机终端设备604、705是实质上唯一的。管理服务器601、704也可以例如使用如上所述的数据库关联技术来将客户机终端设备604、705的机器ID或用户信息与电子成员证书相关联。在步骤S80,管理服务器601、704最好通过网络605、706向客户机终端设备604、705发送电子成员证书。如下所述,在租用处理中使用所述电子成员证书。
一旦,用户已经变为租用系统的成员,则最好允许所述用户租用程序内容,诸如应用程序和系统程序。优选的是,所述程序内容是视频游戏计算机程序。参见图44,运行在客户机终端设备604、705上的所述计算机软件最好使得用户能够指示他或她希望租用计算机程序。在此,其中用户希望租用程序内容的客户机终端设备可以是用于建立成员身份的同一设备,可以是另一个设备,或可以都不是。作为示例,用户可以租用软件程序以用于游戏控制台,但是可以通过从另一个设备,例如从用户的移动电话、PDA或其它设备,传输成员证书或其它数据,来启动用户认证。通过人工输入数据、交换磁卡或智能卡、或读取已经在所述设备中存储的数据,来将所述成员证书或其它数据输入到所述设备中。
在这一点上,响应于来自用户的指示(步骤82),客户机终端设备604、705最好建立与分发器的通信链路(步骤S84),通过它,向分发器发送用户的租用请求。在步骤S86,分发器最好通过例如当所述设备是由要变为成员的用户使用的同一设备时分析客户机终端设备604、705的机器ID并且/或者通过分析电子成员证书来认证客户机终端设备604、705。其实现是通过要求客户机终端设备604、705向分发器提供机器ID和/或电子成员证书,并且分发器访问数据库,在所述数据库可以验证这个信息。
当已经认证了用户时,分发器优选地通过网络605、706向客户机终端设备604、705提供用于租用的可获得标题的列表或菜单(步骤S88)。运行在客户机终端设备604、705上的计算机软件优选地便利向用户显示标题的列表或菜单,以便用户可以选择标题和指定租用时间(步骤S90)。用户的选择和指定的租用时间最好通过网络605、706被发送到分发器。
在步骤S92,分发器最好要求用户提供汇款来支付指定时间的计算机程序的租用费用。使用客户机终端设备604、705或其它设备,例如,通过发送信用卡号、活期存款账号,通过发票等,可以通过使用任何已知技术来实现。一旦已经进行了汇款,则分发器最好产生电子支付票,用于指示已经对于所指示的标题和租用时间进行了汇款(步骤S94)。在步骤S96,分发器最好通过网络605、706向客户机终端设备604、705或另一个设备发送电子支付票。
所述电子支付票最好向用户(或接收到电子支付票时的客户机终端设备604、705)提供租用权的具体级别以交换被提供到分发器的汇款。例如,所述租用权可以限于计算机程序的具体标题、租用时间、汇款值等。另外,所述电子支付票可以包括另外的信息,诸如能够解密计算机程序的解密密钥。不要求电子支付票包括解密密钥,给出该包括仅仅是作为例子。也考虑所述电子支付票可以包括加密形式的解密密钥,例如通过使用机器ID或使用可以是电子成员证书的一部分的其它信息(诸如虚拟ID等)来加密它。在任何情况下,在所述处理的此处,最好用户接收到租用权的具体级别,但是还没有接收到计算机程序或计算机程序的加密版本。
在所述处理的此阶段,客户机终端设备604、705或其它设备具有电子支付票,用于指示已经对于给定的时间段的标题进行了汇款,并且所述客户机终端设备604、705或其它设备也可以持有用户的电子成员证书。参见图45,所述客户机终端设备604、705或其它设备最好通过网络605、706与管理服务器601、704建立通信链路(步骤S98)。在步骤S100,管理服务器601、704最好通过机器ID和/或电子成员证书来认证客户机终端设备604、705或其它设备。注意,可以通过访问适当的数据库,诸如个人化数据库606、707,来实现它。在步骤S102,客户机终端设备604、705或其它设备最好通过网络605、706来向管理服务器601、704发送电子支付票。作为响应,管理服务器601、704最好产生电子租用票(步骤104),并且通过网络605、706向客户机终端设备604、705或其它设备发送电子租用票(步骤S106)。
所述电子租用票最好向用户(或客户机终端设备604、705)提供租用权级别,它可以同于或大于由电子支付票提供的租用权。例如,所述电子租用票可以指定计算机程序标题、租用时间、汇款值,并且也可以包括另外的信息,诸如解密密钥,所述解密密钥能够解密被加密的计算机程序(假定所述解密密钥不被包含在电子支付票中)。不要求所述电子租用票包括解密密钥,并且该包括仅仅是作为例子而给出。也考虑所述电子租用票可以包括加密形式的解密密钥,例如,通过使用机器ID或使用可以是电子成员证书的一部分的其它信息(诸如虚拟ID等)来加密它。在任何情况下,在所述处理的此处,最好用户已经接收到租用权的具体级别,但是还没有接收到计算机程序或计算机程序的加密版本。
参见图46,客户机终端设备604、705最好通过网络605、706而建立与分发器的通信链路(步骤S108)。作为响应,分发器可以例如通过分析如上所述的机器ID和/或电子成员证书来认证客户机终端设备604、705(步骤S110)。接着,客户机终端设备604、705或其它设备例如最好通过网络605、706向分发器发送电子租用票(或至少其一部分)(步骤S112)。优选的是,其向分发器指示客户机终端设备604、705或其它设备已经完成了所有先前的必要步骤,以便客户机终端设备被授权来接收用于租用的计算机程序的加密版本(步骤S114)。在所述处理的此处,客户机终端设备604、705或其它设备最好拥有机器ID、电子支付票、电子租用票、加密的解密密钥和加密的计算机程序。
用户可以使用相对于本发明的先前实施例所述的处理,来加载、安装、和执行计算机程序以及调整客户机终端设备的处理能力。所述租用系统因此使能能够通过网络605、706使用任何客户机终端设备604、705来向用户安全地分发租用程序内容。
本发明也适合于这样的应用,其中,用户购买运行具体软件程序或这样的程序的具体版本以独立于任何具体设备而运行的权利。作为示例,用户可以购买用于在任何控制台上运行具体游戏程序或其它软件程序的权利,所述控制台诸如用户自有的控制台、另一个用户拥有的控制台、或位于具有许多这样的控制台的娱乐厅的控制台。
用户也可以拥有存储在诸如盘或其它存储设备之类的可携带的软件介质上的游戏程序或其它软件程序的特定版本的拷贝,并且可以从存储介质向用户的控制台、另一个用户的控制台或娱乐厅控制台上复制程序。或者,用户可以仅仅拥有用于运行游戏程序或其它软件程序的具体版本的权利。在任何一种情况下,用户也拥有用户ID或其它的认证信息,诸如电子证书(虚拟ID等)。
当这样的用户希望在诸如用户的控制台、另一个用户的控制台或娱乐厅控制台之类的设备上执行游戏程序或其它软件程序,并且所述程序的拷贝已经被存储在控制台中时,可以要求用户认证信息以在所述控制台上执行所述程序,并且/或者可以要求用户认证信息以使得所述控制台可以获得必要的软件和/或数据模块以允许在控制台上正常地执行所述程序。或者,当所述游戏程序或其它软件程序未被存储在用户的控制台、另一个用户的控制台或娱乐厅控制台中时,可以要求所述认证信息来允许所述控制台下载用户已经购买了权利的程序的版本,并且/或者可以要求所述认证信息以便其后获得用于获得控制台的正常的软件版本所需要的软件和/或数据模块。
可以以参见图43-46而如上所述的方式来执行用户认证,即,通过从另一个设备,诸如从用户的移动电话、PDA或其它设备,发送认证信息,或者,可以通过人工地输入数据、交换磁卡或智能卡,或当所述控制台是用户的控制台时读取已经存储在用户的控制台中的数据,来向控制台中输入所述成员证书或其它数据。
所述用户认证信息可以被发送到管理服务器601、704、第三方服务器602、701、分发服务器703或某个其它服务器(未示出)中的一个或多个,如上参见图11和27所述。另外,可以以参见图5-36所述的方式经由一个或多个服务器下载其权利由用户拥有的游戏程序或其它软件程序和在控制台上正常操作游戏程序或其它软件程序所需要的软件和/或数据模块。
以这种方式,运行游戏程序或其它软件程序的权利的拥有者可以使用最适合于所述控制台的软件的版本来在诸如拥有者的控制台、另一个的控制台或公共(娱乐厅)控制台之类的任何设备上执行所述程序。
虽然已经参见具体的实施例而在此说明了本发明,但是应当明白,这些实施例仅仅是说明本发明的原理和应用。因此,应当明白,在不脱离由所附的权利要求所限定的本发明的精神和范围的情况下,可以对于所述说明性实施例进行多种修改,并且可以设计其它的调整设备。
工业实用性本发明可用于具有多个微处理器的处理单元,所述多个微处理器具有与支持软件程序的充实相关联的一些问题。
权利要求
1.一种使得能够执行软件程序的方法,所述方法包括获得指示软件程序的版本的识别信息;确定是否应当按照所述软件程序的版本来调整要执行所述软件程序的至少一个处理器的处理能力;以及当所述确定是肯定时,调整所述至少一个处理器的处理能力。
2.按照权利要求1所述的方法,其中,所述识别信息存储在存储介质中,所述存储介质包括光盘介质、磁介质和电子介质中的至少一个;以及所述获得步骤包括从所述存储介质提取所述识别数据。
3.按照权利要求1所述的方法,其中,所述软件程序包括所述识别信息,并且所述获得步骤包括从所述软件程序中获得所述识别信息。
4.按照权利要求1所述的方法,还包括访问表格,所述表格将多个软件程序各自的识别信息与指示要针对所述至少一个处理器的处理能力进行的调整的一个或多个参数相关联;以及使用与所述给定的识别信息相关联的所述参数来调整所述至少一个处理器的处理能力。
5.按照权利要求4所述的方法,其中,所述表格通过下述方式中的至少一种存储本地存储在与所述至少一个处理器共同的位置中,存储在远程定位的管理实体中,以及存储在由远程定位的管理实体访问的另一个位置。
6.按照权利要求5所述的方法,还包括使用通信信道在所述至少一个处理器和所述管理实体之间建立链路;以及经由所述通信信道,从所述至少一个处理器向所述管理实体发送所述识别信息。
7.按照权利要求6所述的方法,其中,所述管理实体访问所述表格以获得指示要针对所述至少一个处理器的处理能力而进行的调整的、相关联的一个或多个参数。
8.按照权利要求7所述的方法,还包括通过所述通信信道在所述至少一个处理器从所述管理实体接收所述参数;以及使用与所给定的识别信息相关联的所述参数来调整所述至少一个处理器的处理能力。
9.按照权利要求4所述的方法,其中,所述表格进一步将所述多个软件程序各自的识别信息的每个与多个参数集合相关联,所述多个参数集合指示要针对多个不同处理器的处理能力而进行的调整。
10.按照权利要求9所述的方法,还包括获得所述至少一个处理器的处理能力的处理标识符;使用所述识别信息和所述标识符两者来访问所述表格,以获得指示要针对所述至少一个处理器的处理能力而进行的调整的所述参数集合之一;以及使用所述一个参数集合来调整所述至少一个处理器的处理能力。
11.按照权利要求10所述的方法,其中,所述表格通过下述方式中的至少一种存储本地存储在与所述至少一个处理器共同的位置中,存储在远程定位的管理实体中,以及存储在由远程定位的管理实体访问的另一个位置。
12.按照权利要求11所述的方法,还包括使用通信信道在所述至少一个处理器和所述管理实体之间建立链路;以及通过所述通信信道从所述至少一个处理器向所述管理实体发送所述识别信息和所述处理标识符。
13.按照权利要求12所述的方法,其中,所述管理实体使用所述识别信息和所述处理标识符来访问所述表格,以获得指示要针对至少一个处理器的处理能力而进行的调整的相关联的参数集合。
14.按照权利要求13所述的方法,还包括通过所述通信信道在所述至少一个处理器从所述管理实体接收所述参数集合;以及使用与所给定的识别信息和处理标识符相关联的所述参数来调整所述至少一个处理器的处理能力。
15.按照权利要求14所述的方法,还包括响应于所述识别信息而通过通信信道从管理实体接收加密的解密密钥;解密加密的解密密钥;以及使用解密密钥来解密相关联的参数。
16.按照权利要求14所述的方法,还包括响应于所述识别信息而通过通信信道从管理实体接收注册数据;通过通信信道向分发器发送注册数据;响应于注册数据而通过网络在处理设备从分发器接收加密的解密密钥和加密的虚拟ID;使用虚拟ID来解密加密的解密密钥;以及使用解密密钥来解密相关联的参数。
17.按照权利要求14所述的方法,还包括从管理实体接收非激活的解密密钥;通过通信信道向管理实体发送激活请求,并且响应于激活请求而通过通信信道从管理实体接收激活许可信息;响应于激活许可信息而将非激活的解密密钥转换为激活的解密密钥;以及使用激活的解密密钥来解密相关联的参数。
18.按照权利要求1所述的方法,其中,所述至少一个处理器包括(i)多个子处理单元,用于执行处理器任务,(ii)主处理单元,用于对所述子处理单元执行至少一些管理处理任务,以及(iii)数据总线,可操作地耦接所述主处理单元和所述子处理单元。
19.按照权利要求18所述的方法,其中,当所述处理单元的处理能力超过按照获得更希望的结果的程度而执行软件程序所需要的处理能力时,向下调整所述处理单元的处理能力,以及当所述处理单元的处理能力低于按照获得更希望的结果的程度而执行软件程序所需要的处理能力时,向上调整所述处理单元的处理能力。
20.按照权利要求18所述的方法,还包括调整所述子处理单元的至少一个的处理特性,并且使用它来执行所述软件程序;以及不调整至少一个其它子处理单元的处理特性,使得它具有更高或更低的处理特性,并且可用于执行其它的处理任务。
21.按照权利要求18所述的方法,其中,所述调整步骤包括将所述主处理单元、子处理单元和数据总线的至少一个的时钟频率调整到与其它不同的频率。
22.按照权利要求1所述的方法,其中,所述调整步骤包括至少改变至少一个处理器的时钟频率。
23.按照权利要求1所述的方法,其中,所述调整步骤包括至少改变所述至少一个处理器的数据总线的总线利用率,通过改变所述至少一个处理器对所述数据总线的访问,来改变所述数据总线的总线利用率,以调整所述至少一个处理器的处理能力。
24.按照权利要求1所述的方法,其中,所述调整步骤包括通过向上或向下调整所述数据总线的位数,以至少改变所述至少一个处理器的数据总线的带宽,来相应地调整所述至少一个处理器的处理能力。
25.按照权利要求24所述的方法,其中,可以在128位、64位、32位、16位和8位之间调整所述数据总线的位数。
26.按照权利要求1所述的方法,其中,所述至少一个处理器的至少一个本地存储器可以作为一个或多个数据高速缓冲存储器而操作,并且所述调整步骤包括改变所述数据高速缓冲存储器的高速缓冲存储器大小,以调整所述至少一个处理器的处理能力。
27.按照权利要求1所述的方法,其中,所述调整步骤包括将至少一个处理器的高速缓冲存储器大小调整为与其它处理器不同的大小。
28.按照权利要求1所述的方法,其中,所述至少一个处理器的至少一个本地存储器可以作为一个或多个数据高速缓冲存储器而操作,并且所述调整步骤包括改变所述数据高速缓冲存储器的高速缓冲存储器组织,以调整所述至少一个处理器的处理能力。
29.按照权利要求28所述的方法,其中,所述调整步骤包括调整所述数据高速缓冲存储器的存储器的线路大小和块大小中的至少一个。
30.按照权利要求1所述的方法,其中,所述调整步骤包括将至少一个处理器的高速缓冲存储器组织调整为与其它处理器不同的组织。
31.按照权利要求1所述的方法,其中,主存储器可以由至少一个处理器访问,并且可以用作至少一个处理器的数据高速缓冲存储器,并且所述调整步骤包括改变所述数据高速缓冲存储器的高速缓冲存储器大小,以调整所述至少一个处理器的处理能力。
32.按照权利要求1所述的方法,其中,主存储器可以由至少一个处理器访问,并且可以用作至少一个处理器的数据高速缓冲存储器,并且所述调整步骤包括改变所述数据高速缓冲存储器的高速缓冲存储器组织,以调整所述至少一个处理器的处理能力。
33.按照权利要求32所述的方法,其中,所述调整步骤包括调整所述高速缓冲存储器的存储器的线路大小和块大小的至少一个。
34.按照权利要求1所述的方法,其中,所述调整步骤包括通过要求或去除给定指令的指令读取序列、指令解码序列、指令执行序列和写回序列中的至少一个之间的时间延迟,来调整所述至少一个处理器的指令等待时间,以相应地调整所述至少一个处理器的处理能力。
35.按照权利要求34所述的方法,其中,所述时间延迟在所述写回序列和下个指令读取序列之间。
36.按照权利要求1所述的方法,其中,所述调整步骤包括通过在给定指令的指令读取序列、指令解码序列、指令执行序列和写回序列的至少一个之间插入或删除一个或多个空操作序列来调整所述至少一个处理器的指令吞吐量,来相应地调整所述至少一个处理器的处理能力。
37.按照权利要求36所述的方法,其中,所述空操作序列在所述执行序列和所述写回序列之间。
38.按照权利要求1所述的方法,其中,主存储器可以由至少一个处理器访问,并且所述调整步骤包括通过要求或去除地址读取序列、地址解码序列、以及数据读取和写入序列之一中的至少一个之间的时间延迟,来调整所述至少一个处理器的存储器等待时间,以相应地调整所述至少一个处理器的处理能力。
39.按照权利要求1所述的方法,其中,主存储器可以由至少一个处理器访问,并且所述调整步骤包括通过在地址读取序列、地址解码序列、以及数据读取和写入序列之一中的至少一个之间插入或删除一个或多个空操作序列,来调整至少一个处理器的存储器吞吐量,以相应地调整所述至少一个处理器的处理能力。
40.按照权利要求1所述的方法,其中,所述软件程序包括游戏程序。
41.按照权利要求1所述的方法,其中,所述识别信息指示用户在多个处理设备的任何一个上执行所述软件程序的权利。
42.按照权利要求1所述的方法,还包括在调整所述至少一个处理器的处理能力的所述步骤之前使用识别信息来获得软件程序的版本。
43.按照权利要求42所述的方法,其中,所述软件程序的版本通过下述方式中的至少一种存储本地存储在与所述至少一个处理器共同的位置,存储在远程定位的管理实体中,或存储在由远程定位的管理实体访问的另一个位置。
44.按照权利要求43所述的方法,还包括使用通信信道来在至少一个处理器和所述管理实体之间建立链路;通过所述通信信道从所述至少一个处理器向所述管理实体发送所述识别信息,所述管理实体使用所述识别信息来获得软件程序的版本;以及通过所述通信信道在至少一个处理器从所述管理实体接收软件程序的版本。
45.按照权利要求43所述的方法,还包括使用通信信道在另一个设备和管理实体之间建立链路;通过所述通信信道从另一个设备向管理实体发送识别信息,所述管理实体使用所述识别信息来获得软件程序的版本;以及通过所述通信信道在至少一个处理器从所述管理实体接收所述软件程序的版本。
46.一种处理系统,包括多个子处理单元,每个用于执行处理器任务;主处理单元,可用于对所述子处理单元执行至少一些管理处理任务;以及数据总线,可操作地耦接至所述主处理单元、子处理单元,其中,所述主处理单元和所述子处理单元的至少一个用于(i)获得指示软件程序的版本的识别信息;(ii)确定是否应当按照所述软件程序的版本来调整所述处理单元或子处理单元的处理能力;以及(iii)当所述确定是肯定时,调整处理单元的处理能力。
47.一种系统,包括多个处理设备,每个包括多个子处理单元,每个可用于执行处理器任务,主处理单元,可用于对子处理单元执行至少一些管理处理任务,以及数据总线,可操作地耦接主处理单元和子处理单元;远程定位的管理实体;以及通信信道,可用于在多个处理设备的每个和管理实体之间提供通信链路;所述多个处理设备的每个的主处理单元和子处理单元的至少一个还可用于(i)获得指示软件程序的版本的识别信息,(ii)确定是否应当按照所述软件程序的版本来调整要执行软件程序的处理单元或子处理单元的处理能力;以及(iii)当所述确定是肯定时通过通信信道向管理实体发送所述识别信息和与该处理设备相关联的至少一个标识符;所述管理实体可用于(i)使用所述识别信息和所述至少一个标识符来获得指示要针对处理能力而进行的调整的一个或多个参数,以及(ii)向所述相关联的处理设备的主处理单元和子处理单元的至少一个发送所述一个或多个参数;所述相关联的处理设备的所述主处理单元和所述子处理单元的至少一个还可用于当所述确定是肯定时调整处理单元的处理能力。
48.一种记录介质,记录了其上要执行软件程序的至少一个处理器的调整的处理能力,所述处理能力通过一种使得能够执行软件程序的方法调整,所述方法包括获得软件程序的版本;获得指示软件程序的版本的识别信息;确定是否应当按照软件程序的版本来调整至少一个处理器的处理能力;当所述确定是肯定时调整所述至少一个处理器的处理能力;以及在记录介质上存储所述软件程序的版本和所述至少一个处理器的调整的处理能力。
49.一种记录介质,记录有第一软件程序,所述第一软件程序用于执行使得能够执行第二软件程序的方法,所述方法包括获得指示第二软件程序的版本的识别信息;确定是否应当按照软件程序的版本来调整其上要执行软件程序的至少一个处理器的处理能力;以及当所述确定为肯定时,调整所述至少一个处理器的处理能力。
50.一种设备,使得能够执行软件程序,所述设备包括装置,获得指示软件程序的版本的识别信息;装置,确定是否应当按照软件程序的版本来调整其上要执行软件程序的至少一个处理器的处理能力;以及装置,当所述确定为肯定时,调整所述至少一个处理器的处理能力。
全文摘要
用于调整处理能力的方法和设备允许获得指示在存储介质中存储的软件程序的版本的识别信息;按照所述软件程序的版本来确定是否应当调整其上要执行所述软件程序的一个或多个处理器的处理能力;并且,当所述确定是肯定时,调整所述一个或多个处理器的处理能力。
文档编号G06F9/455GK1914600SQ200580003820
公开日2007年2月14日 申请日期2005年9月16日 优先权日2004年9月20日
发明者笠原荣二 申请人:索尼计算机娱乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1