一种处理器的制造方法_2

文档序号:10036276阅读:来源:国知局
是对于32位软件有差异地运行。
[0042]存在为什么用户可能希望在64位硬件上运行32位软件的许多原因。不是所有的操作需要64位软件的额外的容量,且具有大量的遗留32位软件。在不同示例中,用户可能使用虚拟化来在根OS的顶上托管客户OS,其中根OS是64位软件,且客户OS可以是32位或64位软件。在不同示例中,除了客户OS在进行大的乘法之外,可能不需要64位,因此用户可只使用32位客户OS或可在64位客户OS和32位客户OS之间转换。在一些示例中,用户可在根OS的顶上运行两个或多于两个客户操作系统(例如,工作OS和家庭OS),其中一个或两个均可以是32位OS。与在64位硬件上的单一 32位线程相比,可通过以两个32位线程运行的这种方式来获得性能的提高。
[0043]为了起双线程核的作用,当运行32位软件的时候,处理器中(例如,在处理器中的寄存器文件中)的通用寄存器(GPR)在逻辑上被分为两个部分,其中每个线程使用GPR的两个部分中的一个部分。例如,第一线程(线程O)可使用每个GPR的下半部分(例如,GPR[O]的下半部分、GPR[1]的下半部分等),且第二线程(线程I)可使用每个GPR的上半部分(例如,GPR[0]的上半部分、GPR[1]的上半部分等)。此外,处理器中的一些算术逻辑单元(ALU)可被设计,从而可将64位ALU使用于并行实施两个32位操作。可在线程之间共享或者复制其他ALU,以为每个线程提供逻辑实例。
[0044]尽管方法和硬件在本文中被描述为用于在64位硬件上运行32位软件,但是本技术也可被使用于:在128位硬件上运行32位软件(这种情况下,硬件作为四线程32位处理器);在128位硬件上运行64位软件(这种情况下,硬件作为双线程64位处理器);在96位硬件上运行32位软件(这种情况下,硬件作为三线程32位处理器)等等。总之,本文所述的方法和硬件可被使用于在(η.X)位硬件上(其中η为大于I的正整数)运行X位软件(其中,例如,乂 = 32、64等),其中该(η.Χ)位硬件作为η线程X位处理器。产生的硬件具有多个操作模式:第一操作模式,其中它作为单线程(η.X)位核;以及至少一个额外的操作模式,其中它作为η线程X位处理器(其中每个GPR被分为η个部分,每个线程使用GPR的部分中的一个)。
[0045]在不同示例中,硬件可具有多于两个的操作模式,例如,128位硬件可在第一操作模式中作为单线程128位处理器、在第二操作模式中作为双线程64位处理器和在第三操作模式中作为四线程32位处理器操作。通常,硬件至少有两个操作模式。在一个操作模式中,它作为单线程核(且这个可被称为操作的“普通操作模式”),以及在每个额外的操作模式中,它作为多线程核(且额外的操作模式可被称为操作的“多线程操作模式”)。
[0046]图1示出示例性乱序处理器100的原理图,乱序处理器100中可实现本文所述的方法。尽管图1示出了乱序处理器,该方法也可以在如图5所示的有序处理器(即,不乱序地处理指令的处理器)中实现。在此示例中,处理器100为单线程处理器;然而,该方法也可被使用于多线程处理器,且在多线程处理器中,该方法可被使用于所有线程(例如,双线程64位核可使用本文所述方法来在四线程32位操作模式中操作,或者用于线程的只有一个(合适的)子集(例如,双线程64位核能使用本文所述的方法来在双线程32位操作模式中使用一个线程操作以及在单线程64位操作模式中使用另一个线程))。
[0047]处理器100包括取指级102、解码和重命名级104、重排序缓冲器106、提交级108、一个或多个功能单元110和寄存器文件(RF) 116,每个功能单元110包括一个或多个执行管道。图1的下半部分示出寄存器文件116和功能单元110的部分的展开图。
[0048]取指级102被配置成按程序计数器(PC)所指示地从程序中(以程序顺序)提取指令。当在64位硬件上运行64位软件时,取指级102正常运行;然而,当在64位硬件上运行32位软件时,取指级102为两个线程提取指令。例如,取指级102可选择地为两个线程提取指令,或可使用任何技术来确定是为第一线程(线程O)提取指令,还是为第二线程(线程I)提取指令。在不同示例中,取指级102可能包括额外的逻辑103,逻辑103确定是将处理器运行在第一操作模式(对于64位软件是单线程的)中,还是在第二操作模式(对于32位软件是双线程的)中,并且这个可是基于一个或多个配置寄存器105的值确定的,其中配置寄存器105指示软件可读寄存器的宽度(例如,对于32位软件为32位宽度)。在一个示例中,可能具有表示操作系统是64位或32位的单一配置位,以及在一个示例中,对于64位可将其设为“1”,对于32位可将其设为“O”。尽管在图1中将配置寄存器105示为独立于RF 116,在其他示例中它们可以是RF的一部分。
[0049]取指级102中的额外逻辑103使得取指级能够处理来自双线程的指令,尤其是当可能在线程之间共享PC时(例如,以对GPR的相似方式,因为PC的宽度与GPR的相同,例如对于线程O为31:0和对于线程I为63:32)。该额外逻辑103选择从哪个线程取指(例如,对于在32位操作模式中运行的64位硬件是线程O还是线程I)。
[0050]在使用虚拟化和根OS是64位OS的情况下,配置寄存器105只被硬件使用,以识别客户环境是32位还是64位软件。配置寄存器105可被管理程序设置(例如,当在客户OS的环境中转换)。然而,在整个核被启动到第一操作模式(64位操作)或第二操作模式(双线程32位操作)的情况下,CPU之外的某物可以设置配置参数。在各种示例中,可在外部引脚上设置配置参数,如果不重启核,配置参数将不改变。
[0051]—旦提取了指令,就向解码和重命名级104提供该指令,解码和重命名级104被安排成解释该指令并进行寄存器重新命名。具体地,每个指令可包括:寄存器写入操作;一个或多个寄存器读取操作;和/或算术操作或逻辑操作。寄存器写入操作向目标寄存器写入,以及寄存器读取操作从源寄存器读取。在寄存器重新命名期间,指令中所引用的每个结构寄存器(例如,每个源和目标寄存器)用物理寄存器替代(或重命名)。
[0052]对于寄存器写入操作,所引用的结构寄存器(例如,目标寄存器)被分配未使用的(或可用的)物理寄存器。任何分配可被存储在寄存器重新命名表格中,其中寄存器重新命名表格为数据结构,该数据结构示出每个结构寄存器和在程序流中分配给该指令的物理寄存器之间的映射。对于寄存器读取操作,用于特定结构寄存器(例如,源寄存器)的正确物理寄存器可从由结构寄存器索弓I的寄存器重新命名表格中的条目确定。
[0053]在指令通过解码和重命名级104之后,其被插入重排序缓冲器106 (ROB)并派给功能单元110,以便执行。指令被派给的功能单元110可基于指令的类型。重排序缓冲器106为使得指令能够乱序地被执行、但有序地被提交的缓冲器。重排序缓冲器106以程序顺序保持被插入其中的指令,但是ROB 106里的指令可由功能单元110失序地执行。在一些示例中,重排序缓冲器106可被形成为循环缓冲器,其具有指向ROB 106中的最旧的指令的头和指向ROB 106中的最新的指令的尾。将指令从重排序缓冲器106以程序的顺序输出到提交级108。换言之,当已经执行了指令时,将指令从ROB 106的头输出,并且将头增加到ROB106中的下个指令。将输出自重排序缓冲器106的指令提供给提交级108,提交级108将指令的结果提交给寄存器/存储器。
[0054]每个功能单元110负责执行指令,并且可被配置成执行特定类型的指令。功能单元110可包括:一个或多个存取单元;整数单元;浮点单元(FPU);数字信号处理(DSP)/单指令多数据(Sn?)单元;或乘积累加(MAC)单元。存取单元将数据读给LI缓存和超过其的内存,且从LI缓存和超过其的内存写入数据。在一些实例中,存取单元可计算地址,且它可能(或可能不)包含LI缓存,并进行数据/标签RAM查找。当在多线程操作模式中运行的时候,LI缓存本身可以“硬”和“软”的方式在线程之间被分开(但是当在普通操作模式中以只有一个线程运行时候不被分开)。在硬分割中,每个缓存被分割成使得物理缓存的部分专用于每个线程,以及在不刷新缓存的情况下不能改变分区的尺寸,例如基于索引划分LI缓存。在软分割中,缓存被分割成使得运行时候可以改变分区的尺寸。在不同示例中,可基于使用任何合适的方法的方式(对于相关缓存)来分割LI缓存,且可根据所用方法将其视为硬或软分割。整数单元执行整数指令,FPU执行浮点指令,DSP/S頂D单元具有对多个数据点同时执行相同操作的多个处理元件,以及MAC单元计算两个数字的乘积并将该乘积加到累加器中。功能单元内的管道可具有不同的长度和/或复杂度。例如,FPU管道通常长于整数执行管道,因为它通常执行更复杂的操作。
[0055]当执行接收自解码和重命名级104的指令时,每个功能单元110对一个或多个共享的寄存器文件116中的物理寄存器执行读取和写入。当在64位硬件上运行32位软件时(第二操作模式),寄存器文件116 (和具体地RF里的GPR)在逻辑上被分成两个部分120、122,寄存器文件116在不同示例中可被安排成存储32个64位地址。第一部分RF-A 120被第一线程(线程O)使用,并且其尺寸为32x32位。第二部分RF-B 122被第二线程(线程I)使用,并且其尺寸也为32x32位。相比之下,当运行64位软件时(第一操作模式),单线程从RF-A 120读取GPR的底部32位并从RF-B 122读取GPR的顶部32位,表现出具有包含全部32x64位的单一寄存
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1