使用指令相关性查看深度来改善处理性能的方法和装置的制作方法

文档序号:6556913阅读:145来源:国知局
专利名称:使用指令相关性查看深度来改善处理性能的方法和装置的制作方法
技术领域
本发明涉及用于通过提高在处理系统中的相关性查看电路的深度而改善处理性能的方法和装置。
背景技术
近些年来,因为切边(cutting-edge)计算机应用涉及实时、多媒体功能,因此存在对于更快的计算机处理数据通过量的不能满足的期望。图形应用是对于处理系统有最高的要求的那些应用,因为它们在较短的时间中需要大量的数据存取、数据计算和数据操作,以获得期望的视觉结果。这些应用需要极快的处理速度,诸如处理每秒成千上万兆比特的数据。虽然一些处理系统使用单个处理器来获得快的处理速度,但是其他处理系统是使用多处理器架构而被实现的。在多处理器系统中,多个子处理器可以并行(或至少协调地)工作以获得期望的处理结果。
半导体处理技术以大约每18个月的速度提升,当前的处理技术是90纳米(nm)。随着处理技术的提高,也带来了处理频率的提高和结果产生功耗的增加。虽然频率的提高改善了处理性能,但是功耗的增加是不期望的。虽然一些人已经提出降低工作电压以降低功耗,但是则具有不期望有的复杂性泄露电流增加。

发明内容
本发明的一个或多个实施例可以用于在不提高操作频率的情况下改善在新的处理技术中的处理性能,由此控制功耗。按照本发明,当提高处理流水线的指令相关性查看级的深度时,操作的频率降低。相关性查看深度的提高引起在相关性查看逻辑的复杂性上的对应提高,虽然这被更新的处理技术的改善的传播量度补偿。相关性查看深度的提高降低泡沫(它经常对于双精度浮点指令发生)和改善处理性能。
按照一个或多个实施例,一种方法和装置用于使用X纳米的制造处理来制造处理器,所述处理是比Y纳米处理更先进的处理;并且响应于所述先进制造处理而提高处理器的相关性查看电路的深度,以改善处理功率,其中,所述相关性查看电路用于确定是否流水线的输入指令的操作数依赖于在流水线中正在被执行的任何其他指令的操作数。所述方法也可以包括以频率F来操作处理器,虽然X纳米处理允许大于F的操作频率,以便降低功耗。
所述方法也可以包括实现相关性查看电路,以便所述深度等于或大于执行指令集的任何指令所需要的最大数量的时钟周期。相关性查看电路可以用于确定是否指令的操作数在一个时钟周期中依赖于在流水线中的任何其他指令的操作数。
应当注意,在Y纳米处理中的传播延迟可能未被允许在一个时钟周期中进行确定而不论用于测试的操作数数量如何,但是在X纳米处理中的改善的传播延迟允许这样的确定。
按照一个或多个实施例,处理系统可以包括指令执行电路,用于使用一个或多个时钟周期以流水线方式来执行在一个指令集中的指令;相关性查看电路,用于确定是否指令的操作数依赖于在流水线中的任何其他指令的操作数,其中,相关联性查看电路具有等于或大于执行指令集的任何指令所需要的最大数量的时钟周期的深度。使用X纳米的制造处理技术来制造所述指令执行电路和相关性查看电路,所述X纳米的制造处理技术是比Y纳米处理技术先进的处理技术。所述指令执行电路和相关性查看电路被适配来工作在频率F,虽然它们是使用允许大于F的操作频率的制造处理而被实现的。
通过结合附图来说明本发明,本领域的技术人员容易明白其他方面、特征、优点等。


为了说明本发明的各个方面,在附图中示出了当前优选的形式,但是应当明白,本发明不限于所示出的精密装置和仪器。
图1示出了可按照本发明的一个或多个方面而适配的处理系统的结构的框图;图2示出了按照本发明的一个或多个方面的图1的系统的特定性能参数的图;图3示出了按照本发明的一个或多个方面的处理系统的传播量度的一些属性的框图;图4示出了可按照本发明的一个或多个方面而执行的处理步骤的流程图;图5示出了具有可按照本发明的一个或多个方面而适配的两个或多个处理器的多处理系统的结构图;图6示出了可用于实现的本发明的一个或多个方面的优选的处理器元件(PE)的图;图7示出了可按照本发明的一个或多个方面而适配的图6的系统的示例性子处理单元(SPU)的结构图;图8示出了可按照本发明的一个或多个方面而适配的图6的系统的示例性处理单元(PU)的结构的图。
具体实施例方式
参照附图,其中相同的附图标号表示相同的元件,在图1中示出了可被适配来执行本发明的一个或多个特征的处理系统100的至少一部分。为了简洁和清楚,将在此参照和说明用于图解装置100的图1的框图,但是应当明白,所述说明可以容易地以等同的效力而被应用到方法的各个方面。
最好是使用处理流水线来实现处理系统100,在所述处理流水线中,以流水线方式来处理逻辑指令。虽然所述流水线可以被划分为任何数量的用于处理指令的级,但是所述流水线一般包括获得一个或多个指令,解码所述指令,查看在指令之间的相关性,发出所述指令,并且执行所述指令。在这方面,处理系统100可以包括指令缓冲器(未示出)、指令获取电路102、指令解码电路104、相关性查看电路106、指令发出电路(未示出)和指令执行级108。
所述指令获取电路最好是可操作使从存储器向指令缓冲器传送一个或多个指令变得容易,其中,它们被排队来进入流水线。指令缓冲器可以包括多个寄存器,它们可操作以暂时存储被获取的指令。指令解码电路104被适配来中止指令并且产生用于执行对应的指令的功能的逻辑微操作。例如,所述逻辑微操作可以指定算术和逻辑运算,向存储器安装和存储的操作,登记源操作数和/或立即数据操作数。指令解码电路104也可以指示指令使用那些资源,诸如目标寄存器地址、结构资源、功能单元和/或总线。指令解码电路104也可以提供用于指示其中需要资源的指令流水线级的信息。
在说明相关性查看电路106之前,将简述指令执行电路108。指令执行电路108最好是包括多个浮点和/或定点执行级,用于执行算术指令。根据所需要的处理功率,可以使用更多或更少数量的浮点执行级和定点执行级。最为优选的是,指令执行电路108(以及处理系统100的其他电路)是超级标量体系结构的,因此每个时钟周期发出和执行多个指令。但是,参照任何给定的指令,指令执行电路108以多个级来执行所述指令,其中,每级需要一个或多个时钟周期,通常是一个时钟周期。
相关性查看电路106包括多个寄存器,其中,一个或多个寄存器与流水线的每个执行级相关联。所述寄存器存储在流水线中正在被执行的指令的操作数的指示(识别编号、注册编号等)。以图1中的深度106A元件来表示这些寄存器(或其他的适当存储机构)。相关性查看电路106还包括数字逻辑电路,用于执行测试以确定是否要输入到流水线的指令的操作数依赖于已经在流水线中存在的其他指令的操作数。如果如此的话,则不应当执行给定的指令,直到这样的其他指令被更新(例如,通过允许其他指令来完成执行)。
在一个实施例中,所述逻辑电路可以包括多个异或(XOR)门,用于测试指令操作数相关性。具体地说,输入指令的每个操作数通过与在寄存器106A中的每一项进行异或运算而被比较,以确定是否所述操作数已经存在于流水线中。当使用多个流水线(在此优选)时,XOR计算的数量增加。更一般而言,由相关性查看电路106对于给定指令执行的比较(例如异或运算)的次数是在所述给定指令中的操作数的数量乘以可以同时被分派的指令的数量、再乘以可以在每个流水线中的指令的数量的函数。因此,相关性查看电路106的复杂性可能变得有问题,具体地说是因为相关性查看电路106优选地确定在一个时钟周期中的相关性。
现有技术通过降低相关性查看的深度、由此降低完成相关性查看所需要的比较数量而解决了所述问题。这在当输入的指令需要大量的级(时钟周期)来完成相关性查看的深度时导致在流水线中的不期望的泡沫。但是,按照本发明,相关性查看电路106的深度不被复杂性问题所限,而是被允许匹配需要完成最大(或至少近乎最大)数量的执行级的指令。通过指令执行电路108的CYCLE N级——它与相关性查看电路106的DEPTH N匹配——而说明了最大或最高数量的执行级。需要完成最高数量的执行级的指令的示例是双精确浮点指令。
现在参见图2,它是按照本发明的一个或多个方面的图1的系统100的特定性能参数的图形。虽然本发明不限于任何操作理论,但是已经发现当在系统的开发的制造、设计、实现和编程阶段考虑到这些性能特性时,可以实现以上说明的系统100的有益操作。图2的图示出了沿着横坐标轴的时间和沿着纵坐标轴的幅度的相对变化。作为时间的函数的所绘制的幅度包括用于半导体处理系统的可获得制造处理、用于所述制造处理的传播量度、所述处理的操作的可能频率和工作在这样的频率的系统的功耗。
所述半导体制造处理技术以大约每18个月的速度提升,其中,当前的处理是90纳米。未来的制造处理将可能是65纳米、45纳米等。当制造处理技术随着时间而提升时,使用所述制造处理的处理系统的操作频率以对应的方式提升。操作频率的提升一般改善了系统的处理性能,但是,这样的频率的提升伴随功耗的提高是不期望的。传播量度也作为制造处理的进步的功能而改善。
参照图3,在此所关心的传播量度是通过按照所述制造处理而制造的一系列逻辑门的理论信号传播延迟。为了在此讨论的目的,将信号传播延迟与特定的时段——诸如一个时钟周期——相比较。1F04传播量度表示通过反相器逻辑门的单个级的传播延迟需要一个时钟周期。2F04传播量度表示通过反相器逻辑门的两个级的单个传播延迟需要一个时钟周期。3F04传播量度表示通过反相器逻辑门的三个级的单个传播延迟需要一个周期,等等。因此,在从90纳米处理到65纳米处理的制造处理上的进步导致传播量度的很大改善,诸如从10F04到15F04或20F04等。
参照图4,按照本发明的一个或多个方面,使用与90纳米不同的例如65纳米的先进制造处理来制造处理系统100(步骤300)。但是,与传统方式相反,处理系统100的操作频率不被提高到与所述先进制造处理相关联的理论水平。而是,以较低的水平来建立操作频率,所述较低水平诸如与先前的制造处理相关联的水平,例如与90纳米的处理相关联的理论最大频率(步骤302)。为了防止向较低的处理性能发展的趋势(由于较低的、或非最大化的操作频率),相关性查看电路106的深度被提高(步骤304)。虽然当所述深度增加时与执行相关性查看的比较相关联的数字逻辑电路的复杂性大大增加,但是,由于改善了传播量度,可以在所述高级处理中包容这样的复杂性。事实上,当传播量度例如从10F04向20F04提高时,可能大大地提高可以在相关性查看电路106的逻辑电路中使用的逻辑门的数量,而不会折衷在一个时钟周期内进行相关性查看确定的能力。
在题目为“用于通过控制锁存器点而改善处理性能的方法和装置”,律师档案编号535/21,2005年3月14日提交的美国专利申请第____号中给出了可以用于在降低在处理系统中的功耗的同时改善处理性能的其他特征,其在此作为参考而被全部引用。
图5图解了被适配来实现本发明的一个或多个其他实施例的多处理系统600A。系统600A包括多个处理器602A-D、相关联的逻辑存储器604A-D和通过总线508而互连的共享存储器506。共享存储器606也可以在此被称为组存储器或系统存储器。虽然通过举例来图解了四个处理器602,但是可以在不脱离本发明的精神和范围的情况下使用任何数量的处理器。处理器602每个可以具有类似的结构或具有不同的结构。
本地存储器604最好是位于与它们各自的处理器602相同的芯片(相同的半导体基底)上;但是,本地存储器604最好不是传统的硬件高速缓冲存储器,因为传统的硬件高速缓冲存储器芯片上或芯片外没有硬件高速缓冲存储器电路、高速缓冲存储器寄存器、高速缓冲存储器控制器等来实现硬件高速缓冲存储器功能。
处理器602最好是提供数据访问请求,用于请求通过总线608从系统存储器606向它们各自的本地存储器604复制数据(可以包括程序数据),以进行程序执行和数据操作。最好是,使用未示出的直接存储器访问控制器(DMAC)来实现用于简化数据访问的机构。每个处理器的DMAC最好是具有与参照本发明的其他特征的上面讨论的基本上相同的能力。
系统存储器606最好是通过高带宽存储器连接(未示出)而耦接到处理器602的动态随机存取存储器(DRAM)。虽然系统存储器606最好是DRAM,但是存储器606也可以使用其他部件来实现,所述其他部件例如静态随机存取存储器(SRAM)、磁随机存取存储器(MRAM)、光存储器、全息存储器等。
最好使用处理流水线来实现每个处理器602,在所述处理流水线中,以流水线方式来处理逻辑指令。虽然可以将流水线划分为处理指令的任何数量的级,但是所述流水线一般包括获取一个或多个指令,解码所述指令,查看在所述指令之间的相关性,发出所述指令,并且执行所述指令。在这个方面,处理器602可以包括指令缓冲器、指令解码电路、相关性查看电路、指令发出电路和执行级。
与上述的本发明的实施例相同,一个或多个处理器602(最好是它们全部)是使用高级制造处理(例如与Y纳米不同的X纳米)而被制造的,并且被适配工作在频率F,虽然X纳米处理允许大于频率F的操作频率。(这导致功耗的降低)。而且,响应于所述高级制造处理而提高所述一个或多个处理器602的相关性查看电路的深度,以改善处理功率。相关性查看电路可以使用逻辑电路来确定是否处理器602的流水线的输入指令的操作数依赖于在流水线中正在被执行的任何其他指令的操作数。X纳米制造处理的传播量度的提高包容了逻辑电路的复杂性的增加。
在一个或多个实施例中,处理器602和本地存储器604可以被设置在公共的半导体基底上。在一个或多个实施例中,共享的存储器606也可以被设置在公共半导体基底上,或者可以将其独立地设置。
在一个或多个另外的实施例中,一个或多个处理器602可以作为主处理器工作,它与其他处理器602工作耦接,并且能够通过总线608而耦接到共享存储器606。主处理器可以通过其他处理器602来调度和编制数据的处理。但是,不像其他的处理器602那样,主处理器可以耦接到硬件高速缓冲存储器,它用于高速缓冲从所述共享存储器606和处理器602的一个或多个本地存储器504中的至少一个获得的数据。主处理器可以提供数据访问请求,用于请求通过总线608从系统存储器606向高速缓冲存储器中复制数据(它可以包括程序数据),以使用任何公知的技术——诸如DMA技术——来进行程序执行和数据操作。
现在说明适合于执行在此说明的一个或多个特征的多处理器系统的优选计算机架构。按照一个或多个实施例,所述多处理器系统可以被实现为可用于媒体丰富应用的单独和/或分布处理的单片解决方案,所述媒体丰富应用诸如游戏系统、家用终端、PC系统、服务器系统和工作站。在诸如游戏系统和家用终端之类的一些应用中,可能需要实时计算。例如,在实时的分布游戏应用中,需要足够迅速地执行一个或多个联网图像解压缩、3D计算机图形、音频产生、网络通信、物理模拟和人工智能处理,以向用户提供实时体验的幻觉。因此,在多处理器系统中的每个处理器必须在短的和可预测的时间中完成任务。
为此并且按照这种计算机架构,从公共计算模块(或单元)构造多处理器计算机系统的所有处理器。这个公共计算模块具有相容的结构,并且最好使用相同的指令集架构。多处理计算机系统可以由一个或多个客户机、服务器、PC、移动计算机、游戏机、PDA、机顶盒、电器、数字电视机和使用计算机处理器的其他器件形成。
如果期望的话,则多个计算机系统也可以是网络的成员。所述相容部件结构使得多处理计算机系统进行有效地高速处理应用和数据,并且如果使用网络,则使得能够迅速通过网络来传输应用和数据。这种结构也简化了建立各种大小和处理功率的网络的成员以及通过这些成员处理的应用的准备。
参照图6,基本处理模块是处理元件(PE)500。PE 500包括输入/输出接口502、处理单元(PU)504和多个子处理单元508,即子处理单元508A、子处理单元508B、子处理单元508C和子处理单元508D。本地(或内部)PE总线512在PU 504、子处理单元508和存储器接口511之间传输数据和应用。本地PE总线512可以具有例如传统的架构,或者可以被实现为分组交换的网络。如果被实现为分组交换网络,则在需要更多的硬件的同时提高了可用带宽。
可以使用用于实现数字逻辑电路的各种方法来构建PE 500。但是,最好将PE 500构建为使用在硅基底上的互补金属氧化物半导体(CMOS)的单片集成电路。基底的替代材料包括砷化镓、砷化镓铝和使用大量掺杂剂的其他所谓III-B化合物。也可以使用超导材料——诸如快速单通量(rapidsingle-flux-quantum)(RSFQ)逻辑——来实现PE 500。
PE 500通过高带宽存储器连接516而与共享(主)存储器514紧密相关联。虽然存储器514最好是动态随机存取存储器(DRAM),但是也可以使用其他部件来实现存储器514,所述其他部件诸如静态随机存取存储器(SRAM)、磁随机存取存储器(MRAM)、光存储器、全息存储器等。
PE 504和子处理单元508最好每个耦接到包括直接存储器存取DMA功能的存储流控制器(MFC),它与存储器接口511相结合来简化在DRAM 514和PE 500的子处理单元508和PU 504之间的数据传送。应当注意,所述DMAC和/或存储器接口511可以相对于子处理单元508和PU 504而集成地或分离地设置。事实上,DMAC功能和/或存储器接口511功能可以与子处理单元508和PU 504的一个或多个(最好全部)集成。还应当注意,DRAM 514可以相对于PE 500而集成地或分离地设置。例如,DRAM 514可以如图所示被设置在芯片外,或者,DRAM 514可以以集成的方式而被设置在芯片上。
PU 504可以是例如能够单独处理数据和应用的标准处理器。在操作中,PU 504最好调度和编制通过子处理单元的数据和应用的处理。子处理单元最好是单个指令、多数据(SIMD)处理器。在PU 504的控制下,子处理单元以并行和独立的方式执行这些数据和应用的处理。最好使用PowerPC芯来实现PU504,所述PowerPC芯是使用精简指令集计算(RISC)技术的微处理器架构。RISC使用简单指令的组合来执行更复杂的指令。因此,处理器的定时可以基于更简单和更快的操作,使得微处理器能够对于给定的时钟速度执行更多的指令。
应当注意,可以通过作为主处理单元的角色的子处理单元508之一来实现PU 504,所述主处理单元通过子处理单元508调度和编制数据和应用的处理。而且,可以有在处理器元件500中实现的多个PU。
按照这种模块结构,由特定计算机系统使用的PE 500的数量基于那个系统所需要的处理功率。例如,服务器可以使用四个PE 500,工作站可以使用两个PE 500,PDA可以使用一个PE 500。被分配来处理特定软件单元的PE500的子处理单元的数量依赖于在所述单元中的程序和数据的复杂性和量值。
图7示出了子处理单元(SPU)508的优选结构和功能。SPU 508架构最好填充在通用处理器(被设计为在一宽的应用范围实现高平均性能)和专用处理器(被设计为在单个应用范围的获得高性能)之间的空白。SPU 508被设计来实现在游戏应用、媒体应用、宽带系统等上的高性能,并且向实时应用的程序员提供高度的控制。SPU 508的一些能力包括图形几何流水线、表面细分、快速傅立叶变换、图像处理关键字、流处理、MPEG编码/解码、加密、解密、器件驱动器扩展、模型化、游戏物理、内容建立和音频合成及处理。
子处理单元508包括两个基本功能单元,即SPU芯510A和存储流控制器(MFC)510B。SPU芯510A进行程序执行、数据操作等,而MFC 510B执行与在系统的SPU芯510A和DRAM 514之间的数据传送相关联的功能。
SPU芯510A包括本地存储器550、指令单元(IU)552、寄存器554、一个或多个浮点执行级556和一个或多个定点执行级558。最好使用诸如SRAM之类的单端口随机存取存储器来实现本地存储器550。尽管多数处理器通过使用高速缓冲存储器而减少对存储器的等待时间,但是SPU芯510A实现了较小的本地存储器550而不是一个高速缓冲存储器。事实上,为了向实时应用(和在此所述的其他应用)的程序员提供相容和可预测的存储器访问等待时间,不优选在SPU 508A内的高速缓冲存储器架构。高速缓冲存储器的高速缓冲存储器选中/丢失特性导致易失性存储器访问次数从几个周期到几百个周期的变化。这样的易变性削减了在例如实时应用编程中期望的访问定时可预测性。可以通过将DMA传送与数据计算重叠来在本地存储器SRAM 550中实现等待时间隐藏。这向实时应用的编程提供了高度的控制。在与DMA传送相关联的等待时间和指令开销超过服务高速缓冲存储器丢失的等待时间的开销的情况下,SRAM本地存储器手段当DMA传送大小足够大并且充分可预测时获得优点(例如,可以在需要数据之前发出DMA命令)。
在给定的一个子处理单元508上运行的程序使用本地地址来引用相关联的本地存储器550,但是,本地存储器550的每个位置也被在整个系统的存储空间分配中赋于一实际地址(RA)。这就允许特权软件可以将本地存储器550映射到一处理的有效地址(EA)以简单化在一个本地存储器550和另一个本地存储器550之间的DMA传送。PU 504也可以使用有效地址来直接地访问本地存储器550。在一个优选实施例中,本地存储器550包含256千字节的存储量,并且寄存器552的容量是128×128比特。
最好是使用处理流水线来实现SPU芯504A,在所述处理流水线中,以流水线方式来处理逻辑指令。虽然可以将流水线划分为任何数量的处理指令的级,但是流水线一般包括获取一个或多个指令、解码所述指令、查看在所述指令之间的相关性,发出所述指令,并且执行所述指令。在这个方面,IU 552包括指令缓冲器、指令解码电路、相关性查看电路和指令发出电路。
指令缓冲器最好是包括多个寄存器,它们耦接到本地存储器550,并且用于暂时存储被获取的指令。指令缓冲器最好是工作使得所有的指令作为一个组、即基本上同时地离开寄存器。虽然指令缓冲器可以是任何大小,但是最好是具有不大于大约2或3个寄存器的大小。
一般,解码电路中止指令,并且产生用于执行对应的指令的功能的逻辑微操作。例如,逻辑微操作可以指定算术和逻辑操作,向本地存储器550安装和存储的操作,登记源操作数和/或即时的数据操作数。解码电路也可以指示指令使用那些资源,诸如目标寄存器地址、结构资源、功能单元和/或总线。解码电路也可以提供指示其中需要资源的指令流水线级的信息。最好是指令解码电路用于基本上同时地解码等于指令缓冲器的寄存器数量的多个指令。
相关性查看电路包括数字逻辑电路,用于执行测试以确定是否给定指令的操作数依赖于在流水线中的其他指令的操作数。如果是的话,则不执行给定的指令,直到这样的其他操作数被更新(例如通过其他指令完成执行)。最好是相关性查看电路确定同时从解码器电路112分发的多个指令的相关性。
指令发出电路用于向浮点执行级556和/或定点执行级558发出指令。
最好是寄存器554作为较大的同一寄存器文件被实施,诸如128个输入项寄存器文件。这允许深度流水线高频实施,而不需要寄存器重新命名以避免寄存器不足的情况。重新命名硬件通常在处理系统中消耗大部分区域和功率。因此,当通过软件循环展开或其他交织技术来覆盖等待时间时,可以实现有益的操作。
最好是SPU芯510A具有超标量体系结构,以便每个时钟周期发出多个指令。最好是SPU芯510A作为超标量体系结构工作在对应于从指令缓冲器的同时指令分配的数量——诸如在2和3之间(表示每个时钟周期发出两个或三个指令)——的程度。根据所需要的处理功率,可以使用更大或更小数量的浮点执行级556和定点执行级558。在一个优选实施例中,浮点执行级556工作在每秒32千兆浮点操作的速度(32GFLOPS),而定点执行级558工作在每秒32千兆操作的速度(32GOPS)。
MFC 510B最好是包括总线接口单元(BIU)564、存储器管理单元(MMU)562和直接存储器访问控制器(DMAC)560。除了DMAC之外,MFC510B最好与SPU芯510A和总线512相比较以半频率(半速)来运行以满足低功耗设计目标。MFC 510B用于处理从总线512进入SPU 508的数据和指令,向DMAC提供地址解译,并且执行用于数据相关性的探听操作。BIU 564在总线512和MMU 562和DMAC 560之间提供接口。因此,SPU 508(包括SPU芯510A和MFC 510B)和DMAC 560物理地和/或逻辑地连接到总线512。
最好是MMU 562用于将(从DMA命令获得的)有效地址解译为用于存储器访问的真实地址。例如,MMU 562可以将所述有效地址的高阶比特解译为真实地址比特。但是,最好是低阶地址比特是不可解译的,并且在用于形成真实地址和请求访问存储器中被当作逻辑和物理的。在一个或多个实施例中,MMU 562可以根据64比特存储器管理模型而被实现,并且可以提供264字节的有效地址空间,它具有4K-、64K-、1M-和16M-字节的页面大小和256MB的段大小。最好是MMU 562用于支持最多265字节的虚拟存储器和242字节(4个万亿字节)的用于DMA命令的物理存储器。MMU 562的硬件可以包括8输入项的全关联的SLB、256输入项的4路设置关联TLB和TLB的4x4替代管理表(RMT)——用于硬件TLB丢失处理。
最好是DMAC 560用于管理来自SPU芯510A和诸如PU 504和/或其他SPU之类的一个或多个其他器件的DMA命令。可以有三种DMA命令放置(Put)命令,它用于将数据从本地存储器550移动到共享存储器514;获取(Get)命令,它用于将数据从共享存储器514移动到本地存储器550;以及存储控制(Storage Control)命令,它包括SLI命令和同步命令。所述同步命令可以包括原子(atomic)命令、发送信号命令和专用的势垒(barrier)命令。响应于DMA命令,MMU 562将有效地址解译为真实地址,并且真实地址被转发到BIU 564。
最好是SPU芯510A使用通道接口和数据接口来与在DMAC 560中的接口通信(发送DMA命令、状态等)。SPU芯510A通过通道接口向在DMAC 560中的DMA队列分派DMA命令。一旦DMA命令在DMA队列中,则它由在DMAC 560中的发出和完成逻辑处理。当结束DMA命令的所有总线事务时,通过通道接口向SPU芯510A发回完成信号。
图8示出了PU 504的优选结构和功能。PU 504包括两个基本功能单元PU芯504A和存储流控制器(MFC)504B。PU芯504A执行程序操作、数据操作、多处理器管理功能等,而MFC 504B执行与在PU芯504A和系统100的存储器空间之间的数据传送相关联的功能。
PU芯504A可以包括L1高速缓冲存储器570、指令单元572、寄存器574、一个或多个浮点执行级576和一个或多个定点执行级578。L1高速缓冲存储器提供了对于通过MFC 504B从共享存储器606、处理器602或存储空间的其他部分接收的数据的数据高速缓冲功能。当PU芯504A最好被实现为超级流水线时,指令单元572最好被实现为具有多个级的指令流水线,所述多个级包括获取、解码、相关性查看、发出等。PU芯504A最好是具有超标量配置,由此每个时钟周期从指令单元572发出多个指令。为了实现高处理功率,浮点执行级576和定点执行级578包括在流水线配置中的多个级。根据所需要的处理功率,可以使用更多或更少数量的浮点执行级576和定点执行级578。
MFC 504B包括总线接口单元(BIU)580、L2高速缓冲存储器、非可高速缓冲单元(NCU)584、芯接口单元(CIU)586和存储器管理单元(MMU)588。与PU芯504A和总线108相比较,多数MFC 504B以半频(半速)运行,以满足低功耗设计目标。
BIU 580提供了在总线608和L2高速缓冲存储器582和NCU 584逻辑块之间的接口。为此,BIU 580可以作为在总线608上的主器件以及从器件,以便完全地执行全相干的存储器操作。作为主器件,它可以向总线608发送安装/存储请求以代表L2高速缓冲存储器582和NCU 584来进行服务。BIU580也可以实现命令的流控制机制,用于限制可以被发送到总线608的命令的总数。在总线608上的数据操作可以被设计来获得8个节拍(bear),因此,BIU 580最好被设计为围绕128字节的高速缓冲存储器线,并且相干和同步粒度(granularity)是128KB。
最好是L2高速缓冲存储器582(和支持硬件逻辑电路)被设计来高速缓冲512KB的数据。例如,L2高速缓冲存储器582可以处理可高速缓冲的安装/存储、数据预先获取、指令获取、指令预先获取、高速缓冲存储器操作和势垒操作。L2高速缓冲存储器582最好是8路设置关联系统。L2高速缓冲存储器582可以包括匹配6个舍去(castout)队列(例如6个RC装置)的六个重新安装队列和8个(64字节宽的)存储队列。L2高速缓冲存储器582可以用于提供在L1高速缓冲存储器570中的一些或全部数据的备份拷贝。有益的是,当处理节点被热交换时在恢复状态中是有用的。这种配置还允许L1高速缓冲存储器570使用较少的端口来更快地操作,并且允许更快的高速缓冲存储器到高速缓冲存储器的传送(因为所述请求可能在L2高速缓冲存储器582停止)。这种配置还提供了用于将高速缓冲存储器相干管理传送到L2高速缓冲存储器582的机制。
NCU 584与CIU 586、L2高速缓冲存储器582和BIU 580连接,并且一般作为用于在PU芯504A和存储器系统之间的非可高速缓冲的操作的排队/缓冲电路。NCU 584最好是处理与不由L2高速缓冲存储器582处理的诸如禁止高速缓冲的安装/存储、势垒操作和高速缓冲存储器相干操作的PU芯504A的所有通信。NCU 584最好是以半速来运行以满足上述的功耗目标。
CIU 586被设置在MFC 504B和PU芯504A的边界上,并且对于来自执行级576、578、指令单元572和MMU单元588并且去往L2高速缓冲存储器582和NCU 584的请求作为取路由、仲裁和流控制点。PU芯504A和MMU588最好以全速来运行,而L2高速缓冲存储器582和NCU 584以2∶1的速度比可操作。因此,在CIU 586中存在频率边界,并且其功能之一是当它转发请求和在两个频域之间重新安装数据时正确地处理频率交叉。
CIU 586包括三个功能块安装单元、存储单元和重新安装单元。另外,数据预先获取功能由CIU 586执行,并且最好是是安装单元的一个功能元件。CIU 586最好是用于(i)接受来自PU芯504A和MMU 588的安装和存储请求;(ii)将请求从全速时钟频率转换为半速(2∶1时钟频率转换);(iii)将可高速缓冲的请求取路由到L2高速缓冲存储器582,并且将不可高速缓冲的请求取路由到NCU 584;(iv)在到L2高速缓冲存储器582的请求和到NCU 584的请求之间合理地仲裁;(v)对于向L2高速缓冲存储器582和NCU 584的分配提供流控制,以便在目标窗口中接收到请求,并且避免溢出;(vi)接受安装返回数据,并且将其路由到执行级576、578、指令单元572或MMU 588;(vii)向执行级576、578、指令单元572或MMU 588传送探听请求;(viii)将安装返回数据和探听通信量从半速转换到全速。
MMU 588最好诸如通过第二级地址解译装置而提供PU芯540A的地址解译。最好是通过可以比MMU 588更小和更快的独立指令和数据ERAT(对真实地址解译有效)阵列来在PU芯504A中提供第一级解译。
在一个优选实施例中,PU 504使用64比特实现方式以4-6GHz、10F04来操作。寄存器最好64比特长(虽然一个或多个专用的寄存器可能更小),并且有效地址是64比特长。最好是使用PowerPC技术来实现指令单元572、寄存器574和执行级576和578,用于实现(RISC)计算技术。
在美国专利第6,526,491——作为参考在此引用其全部内容——中提供了关于这种计算机系统的模块结构的另外的细节。
按照本发明的至少-个另一个方面,可以利用适当的硬件——诸如在附图中所示的——来实现上述的方法和装置。可以利用任何公知技术、可操作来执行软件和/或固件程序的任何公知处理器、一个或多个可编程数字器件或系统、可编程阵列逻辑器件(PAL)等来实现这样的硬件,所述公知技术诸如标准数字电路,所述可编程数字器件或系统诸如可编程只读存储器(PROM)。而且,虽然在附图中所示的装置被示出为被划分为特定的功能块,但是这样的块可以通过独立的电路来被实现,并且/或者被组合为一个或多个功能单元。另外,可以通过软件和/或固件程序来实现本发明的各个方面,所述软件和/或固件程序可以被存储在适当的存储介质或媒体(诸如软盘、存储芯片等)上以便携和/或分发。
虽然在此已经参照特定的实施例而说明了本发明,但是应当明白,这些实施例仅仅是说明本发明的原理和应用。因此应当明白,可以对于所述说明性实施例进行多种修改,并且可以在不脱离所附的权利要求所定义的本发明的精神和范围的情况下设计其他的设置。
权利要求
1.一种方法,包括使用X纳米的制造处理来制造处理器,所述X纳米制造处理是比Y纳米处理更高级的处理;并且响应于改善处理功率的高级制造处理而提高所述处理器的相关性查看电路的深度,其中,所述相关性查看电路可用于确定是否输入流水线的指令的操作数依赖于正在流水线中执行的任何其他指令的操作数。
2.按照权利要求1的方法,还包括虽然所述X纳米的处理允许大于F的操作频率,但是以频率F来操作所述处理器,以便降低功耗。
3.按照权利要求2的方法,其中,相关性查看电路的深度的提高了防止由操作的低频导致的降低处理功率的趋势。
4.按照权利要求1-3中的一个权利要求的方法,还包括实现相关性查看电路,以便所述深度等于或大于执行指令集的任何指令所需要的时钟周期的最大数量。
5.按照权利要求1-3中的一个权利要求的方法,还包括进行确定是否指令的操作数在一个时钟周期内依赖于在流水线中的任何其他指令的操作数。
6.按照权利要求5的方法,其中,在Y纳米处理中的传播延迟不允许在一个时钟周期内进行确定,而不论要测试的操作数的数量如何,但是在X纳米处理中的改善的传播延迟允许这样的确定。
7.一种方法,包括以流水线方式执行在处理器的指令执行电路中的指令集的指令,以便在一个或多个时钟周期中执行每个指令;并且使用所述处理器的相关性查看电路来确定是否指令的操作数依赖于在流水线中的任何其他指令的操作数,其中,相关性查看电路具有等于或大于执行所述指令集中的任何指令所需要的时钟周期的最大数量的深度。
8.按照权利要求7的方法,还包括进行确定是否指令的操作数在一个时钟周期中依赖于在流水线中的任何其他指令的操作数。
9.按照权利要求8的方法,还包括虽然使用允许大于F的频率的制造处理来实现处理器,但是以频率F来操作处理器。
10.一种处理系统,包括指令执行电路,用于使用一个或多个时钟周期以流水线方式执行指令集的指令;以及相关性查看电路,用于确定是否指令的操作数依赖于在流水线中的任何其他指令的操作数,其中,相关性查看电路具有等于或大于执行指令集的任何指令所需要的时钟周期的最大数量的深度。
11.按照权利要求10的处理系统,还包括指令获取电路,用于检索用于在流水线中的处理的指令集的指令;以及,指令解码电路,用于将所检索的指令在执行之前转换为微操作。
12.按照权利要求10或11的操作系统,其中使用X纳米的制造处理来制造至少指令执行电路和相关性查看电路,所述X纳米的制造处理是比Y纳米处理更高级的处理;由于传播延迟而不允许使用Y纳米处理的所述相关性查看电路的深度;并且在X纳米处理中的改善的传播延迟允许所述相关性查看电路的这样的深度。
13.按照权利要求10或11的处理系统,其中,所述相关性查看电路用于进行确定是否指令的操作数在一个时钟周期内依赖于在流水线中的任何其他指令的操作数。
14.按照权利要求13的处理系统,其中使用X纳米的制造处理来制造至少指令执行电路和相关性查看电路,所述X纳米的制造处理是比Y纳米处理更高级的处理;在Y纳米处理中的传播延迟将不允许在一个时钟周期中进行确定,而不论要测试的操作数的数量如何;并且在X纳米处理中的改善的传播延迟允许这样的确定。
15.按照权利要求10或11的处理系统,其中使用X纳米的处理来制造至少指令执行电路和相关性查看电路,所述X纳米的制造处理是比Y纳米处理更高级的处理;并且虽然X纳米处理将允许大于F的操作频率,所述处理系统被适配来以频率F操作,以便降低功耗。
16.按照权利要求15的处理系统,其中,所述相关性查看电路的深度的提高了防止从较低的操作频率导致的降低处理功率的趋势。
17.一种装置,包括指令执行电路,用于执行在流水线中的指令集的指令,所述流水线包括多个级,它们具有足够的深度来执行所述指令集的任何指令;以及相关性查看电路,具有(i)与流水线的每个集相关联的一个或多个寄存器,该寄存器用于存储在流水线中正在被执行的指令的操作数的指示,(ii)逻辑电路,用于确定是否随后的指令的操作数依赖于由寄存器指示的操作数,其中,所述指令执行电路和相关性查看电路被适配来以频率F操作,虽然它们是使用允许大于F的操作频率的制造处理而被实现的。
18.按照权利要求17的装置,其中,所述相关性查看电路具有等于或大于执行指令集的任何指令所需要的时钟周期的最大数量的深度。
19.按照权利要求17或18的装置,其中,所述相关性查看电路用于进行确定是否指令的操作数在一个时钟周期内依赖于在流水线中的任何其他指令的操作数。
20.按照权利要求17或18的装置,还包括多个处理器,每个处理器包括所要求保护的指令执行电路和相关性查看电路。
21.按照权利要求20的装置,其中,在公共半导体基底上制造处理器。
22.按照权利要求21的装置,其中,每个处理器还包括本地存储器,其中,存储用于要执行的指令。
23.按照权利要求21的装置,其中使用X纳米的制造处理来制造处理器,所述X纳米的制造处理是比Y纳米处理更高级的处理;由于传播延迟,相关性查看电路的寄存器和逻辑电路不可用于使用Y纳米处理来在一个时钟周期内确定是否随后的指令的操作数依赖于由寄存器指示的操作数;并且在X纳米处理中的改善的传播延迟允许所述相关性查看电路的这样的操作。
全文摘要
本发明的方法和装置用于使用X纳米的制造处理而制造处理器,所述X纳米的制造处理是比Y纳米处理更高级的处理;响应于所述高级制造处理而提高所述处理器的相关性查看电路的深度,以改善处理功率,其中,所述相关性查看电路用于确定是否输入流水线的指令的操作数依赖于在流水线中正在被执行的任何其他指令的操作数。
文档编号G06F9/38GK1834852SQ20061005912
公开日2006年9月20日 申请日期2006年3月14日 优先权日2005年3月14日
发明者笠原荣二 申请人:索尼计算机娱乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1