向逻辑分区提供反映处理器核的独占使用的硬件线程特定信息的制作方法

文档序号:6497793阅读:144来源:国知局
向逻辑分区提供反映处理器核的独占使用的硬件线程特定信息的制作方法
【专利摘要】用于模拟多个逻辑分区(LPAR)间对处理器核的独占使用的技术包括响应于LPAR的访问请求而提供硬件线程相关状态信息,其反映访问硬件线程相关信息的LPAR对处理器的独占使用。如果请求方是在低于管理程序特权级别的特权级别处执行的程序,则响应于访问请求而返回的信息被转换,从而每个逻辑分区视处理器好像其对处理器具有独占使用。该技术可以通过处理器核内的逻辑电路块来实现,其将硬件线程特定信息转换成硬件线程特定信息的逻辑表示或转换可以由中断处理程序的程序指令来实现,该中断处理程序陷入对包含所述信息的物理寄存器的访问。
【专利说明】向逻辑分区提供反映处理器核的独占使用的硬件线程特定
侉自
I 口 /L./'
【技术领域】
[0001]本发明涉及处理系统和处理器,并且更具体地,涉及用于管理返回给由处理器核的硬件线程所执行的逻辑分区的硬件线程特定信息的值的技术。
【背景技术】
[0002]在大规模的计算机系统中,特别是在其中多个处理器支持多个虚拟操作系统和映像(称为逻辑分区(LPAR))的多用户计算机系统或所谓的云计算系统中,管理程序(hypervisor)管理对LPAR的资源分配,以及在系统开机/关机时的LPAR的开始/停止和上下文切换。当系统用于例如支持对于不同的客户执行不同的LPAR时,优选地是将LPAR彼此隔离。通常,在此类的计算机系统中使用的处理器核支持多个硬件线程的并发执行,例如8个或更多个硬件线程,其对应于在处理器核内的并行执行流水线。另外通常,管理程序向每个LPAR分配多个线程。
[0003]处理器内的状态和其他信息值是特定于硬件线程的,S卩,值可以是针对每个硬件线程号的值,这取决于尝试访问该值的线程,或可以是处理器支持的硬件线程的数目。
[0004]将期望的是提供用于独立于哪个LPAR正在访问信息来管理对硬件线程特定信息的访问和提供LPAR之间的安全性的技术。

【发明内容】

[0005]本发明包括在响应于访问请求而提供硬件线程相关的状态信息的方法、计算机系统、处理器核和计算机程序产品。如果请求方是在低于管理程序特权级别的特权级别处执行的程序,则响应于访问请求而返回的信息被转换,从而每个逻辑分区将处理器视为好像其具有对处理器核的独占使用。
[0006]该方法可以由处理器内的逻辑电路块来实现,其将硬件线程特定信息转换为硬件线程特定信息的逻辑表示,该逻辑表示反映由处理器所执行的给定逻辑分区的线程对处理器核的独占使用。替代地,转换可以由中断处理程序(handler)的程序指令来执行,该中断处理程序陷入对于包含所述信息的处理器核的物理寄存器的访问。中断处理程序或者直接转换寄存器的内容,或经由包含先前转换的线程特定信息的表的存储中的查找来执行所述转换。
[0007]本发明的上述和其他目的、特定和优势将从下面的更为具体的如附图所示出的本发明的优选实施例的描述而明显。
【专利附图】

【附图说明】
[0008]在所附权利要求书中陈述本发明的相信为新颖性特征的特性。然而,本发明本身以及优选的使用模式、进一步的目的及其优势在结合附图阅读时、通过参考本发明的下面详细描述而得到最佳的理解,其中类似的参考标号指示类似的组件,其中:[0009]图1是示出其中实践本发明的实施例的技术的处理系统的框图;
[0010]图2是示出根据本发明的实施例的处理器核20的细节的框图;
[0011]图3是示出根据本发明的实施例的图2的处理器核20内的逻辑线程信息块50的细节的框图;
[0012]图4是绘出根据本发明的另一实施例的方法的流程图。
【具体实施方式】
[0013]本发明涉及处理器核和处理系统,其中当由访问硬件线程相关信息的逻辑分区(LPAR)访问时,处理器核内存储的硬件线程相关信息被转换。执行转换,使得对于每个LPAR看起来该LPAR具有对处理器核的独占使用。例如,如果处理器核支持8个硬件线程,并且该线程在由处理器核所执行的两个LPAR之间平均分配,则当LPAR访问处理器所支持的硬件线程的数目的信息时,对于处理器所支持的硬件线程的数目的请求将被返回为4。类似地,硬件线程特定信息的阵列或包括线程特定信息的字段的字将被修改为包含从零处开始的仅4个条目(或由处理器所使用的其他基础线程号)。硬件线程特定信息的转换由来自于低于管理程序特权级别的特权级别的访问所触发,从而当管理程序访问硬件线程特定信息时,针对所有硬件线程的硬件线程特定信息被返回。硬件线程特定寄存器值的转换可以由逻辑电路来执行,或由陷入对寄存器的访问并且返回转换的值的中断处理程序来执行,该转换的值可以从存储器中的表来取回,或由中断处理程序直接计算。
[0014]现在参考图1,示出了根据本发明的实施例的处理系统。所绘出的处理系统包括多个处理器10A-10D,每个处理器符合本发明的实施例。所绘出的多处理系统是说明性的,并且根据本发明的其他实施例的处理系统包括单处理器系统,其具有对称的多线程(SMT)核。处理器10A-10D在结构上是相同的并且包括核20A-20B和逻辑存储器12,该逻辑存储器12可以是高速缓存级或内部系统存储器的级别。处理器10A-10B耦合到主系统存储器14,存储器子系统16,该存储器子系统16包括非可移动驱动器和光驱动器,用于读取例如CD-R0M17的介质,该介质形成计算机程序产品并且包含实现管理程序的程序指令,该管理程序用于控制由处理器10A-10D所执行的多个逻辑分区(LPAR),并且也包含操作系统,每个操作系统具有至少一个管理程序线程,用于管理操作系统调度器和其他服务,并且也包含可执行程序,该可执行程序实现在逻辑分区内运行的应用和服务。所示出的处理系统也包括输入/输出(I/O)接口和用于接收用户输入的装置18 (例如,鼠标和键盘)和用于显示信息的图形显示器。尽管图1的系统用于提供其中实现本发明的处理器架构的一种系统的说明,将理解到的是所绘出的架构并非是限制性的,而是旨在提供其中本发明的技术被应用的适当计算机系统的一个例子。
[0015]现在参考图2,在绘出的核20中示出图1的处理器核20A-20B的细节。核20包括指令提取单元(IFU) 22,其从高速缓存或系统存储器提取一个或多个指令流,并且将指令流提供给指令解码单元24。全局分发单元25将解码的指令分发给多个内部处理器流水线。每个处理器流水线包括寄存器映射器26,发射队列27A-27D之一,以及由分支执行单元(BXU) 28所提供的执行单元,条件结果单元(CRU) 29、定点单元加载-存储单元(FXU/LSU) 30或浮点单元(FPU) 31A-31B。例如计数器寄存器(CTR) 23A、条件寄存器(CR) 23B、通用寄存器(GPR) 23D和浮点结果寄存器(FPR) 23C的寄存器提供由相应的执行单元所执行操作的结果的位置。当指令的结果被传输到结果寄存器23A-23D的相应之一时,全局完成表(GCT) 21提供被标记为完成的挂起操作的指示。寄存器映射器26在各种寄存器集中分配存储,从而可以由各种流水线来支持程序代码的并发执行。FXU/LSU30耦合到数据高速缓存44,该数据高速缓存44提供加载和在存储器中存储核20中的流水线所需要或修改的数据值。数据高速缓存44耦合到一个或多个变换索引(look-aside)缓冲器(TLB) 45,其将数据高速缓存44中的实或虚地址映射到外部存储器空间中的地址。
[0016]示例性的处理器核20也包括逻辑线程信息块50,其在说明性的例子中并且为了便于说明,其包含处理器核20内的所有硬件线程特定寄存器。尽管硬件线程特定寄存器可以通常与其他寄存器位于相同的位置或在任意的位置,在绘出的处理器核的实施例中,它们以另外的逻辑来组织,该逻辑控制由FXU/LSU30对核20内的硬件线程相关状态信息的访问,或由控制程序和由LPAR对核20内的硬件线程相关状态信息的访问,以及由LPAR内执行的应用对核20内的硬件线程相关状态信息的访问。示例性的硬件线程相关状态信息包括线程标识寄存器(TIR)41和线程状态寄存器(CR)42,连同内部线程消息递送状态寄存器43。下面的表1列出示例性的硬件线程特定状态寄存器和它们的功能以及物理寄存器内容/范围。表1也示出将或者通过下面参考图3所描述的控制逻辑,或者通过下面参考图4所描述的中断处理软件,返回给尝试访问物理硬件线程特定寄存器的LPAR的逻辑范围/内容。
[0017]
【权利要求】
1.一种用于在执行多个逻辑分区的多线程处理器中提供硬件线程特定状态信息的方法,所述方法包括: 维护所述多线程处理器内的寄存器中的所述硬件线程特定状态信息; 检测由当前执行的进程对所述硬件线程特定状态信息的访问; 确定所述当前执行的进程的特权级别;以及 响应于确定所述当前执行的进程的所述特权级别对应于所述多个逻辑分区中的给定一个逻辑分区内的进程,以看起来像由给定的逻辑分区的线程对所述处理器的独占使用的方式来转换所述硬件线程特定状态信息,而所述处理器的多个硬件线程被分配给除所述给定逻辑分区以外的另一逻辑分区,其中对于所述给定逻辑分区分配少于所述处理器所支持的所有硬件线程的硬件线程。
2.根据权利要求1所述的方法,进一步包括响应于确定所述当前执行的进程的所述特权级别对应于管理所述多个逻辑分区的管理程序,以对于所述处理器所支持的所有硬件线程示出所有硬件线程特定状态信息的方式来格式化所述硬件线程特定状态信息。
3.根据权利要求1所述的方法,其中所述处理器维护所述处理器内的寄存器中由所述处理器所支持的所有硬件线程的所述硬件线程特定状态信息,并且其中由电路来执行所述转换,所述电路包括: 逻辑块,其从所述寄存器中的所述硬件线程特定信息生成逻辑寄存器值,以模拟所述给定分区对所述处理器 的独占使用,其中所述逻辑寄存器值不同于所述寄存器中的实际值;以及 数据选择器,其耦合到所述逻辑块,所述数据选择器响应于所述访问,选择所述逻辑块的输出来向所述当前执行的进程提供所述逻辑寄存器值。
4.根据权利要求1所述的方法,其中所述处理器维护所述处理器内的寄存器中由所述处理器所支持的所有硬件线程的所述硬件线程特定状态信息,并且其中所述格式化通过以下来执行: 当对所述硬件线程特定信息的所述访问由所述检测来检测到时,生成陷阱中断; 由执行服务所述陷阱中断的中断服务例程的所述处理器将所述寄存器中的所述硬件线程特定信息转换,以模拟所述给定分区对所述处理器的独占使用,以生成不同于所述寄存器中的实际值的逻辑寄存器值;以及 以所述逻辑寄存器值来替代用于对所述硬件线程特定信息的访问的返回值。
5.根据权利要求1所述的方法,其中所述硬件线程特定状态信息是由所述处理器所支持的多个硬件线程,并且所述转换返回分配给所述给定分区的硬件线程的数目。
6.根据权利要求1所述的方法,其中所述硬件线程特定状态信息是取决于分配给所述给定分区并且由所述进程指定的具体硬件线程的逻辑硬件线程号的值,并且其中所述转换包括: 改变所述逻辑硬件线程号以确定所述实际硬件线程号; 取回针对实际硬件线程的所述硬件线程特定信息;以及 响应于所述访问而返回取回的所述硬件线程特定信息。
7.根据权利要求6所述的方法,其中所述硬件线程特定状态信息是执行所述访问的硬件线程的硬件线程号,并且其中所述改变减去针对所述给定分区的基础线程号,以获得所述实际硬件线程号。
8.—种处理器核,包括: 一个或多个执行单元,用于执行多个硬件线程的指令; 指令提取单元,用于提取所述指令; 指令分发单元,用于向所述执行单元分发所述指令; 第一寄存器,其包含硬件线程特定信息; 逻辑电路,用于将所述硬件线程特定信息转换为所述硬件线程特定信息的逻辑表示,以反映由所述处理器所执行的给定逻辑分区的线程对所述处理器的独占使用,而所述处理器的多个硬件线程被分配给除所述给定逻辑分区以外的另一逻辑分区。
9.根据权利要求8所述的处理器核,其中当在低于管理程序特权级别的特权级别处访问所述第一寄存器时,选择所述逻辑电路的输出。
10.根据权利要求9所述的处理器核,进一步包括数据选择器,用于在当从低于所述管理程序特权级别的特权级别访问所述第一寄存器时的所述逻辑电路的输出和当从所述管理程序特权级别访问所述第一寄存器时的所述第一寄存器中的值之间进行选择。
11.根据权利要求8所述的处理器核,其中所述硬件线程特定状态信息是由所述处理器所支持的硬件线程数目,并且其中所述硬件线程特定信息的所述逻辑表示是分配给所述给定分区的硬件线程的数目。
12.根据权利要求8所述的处理器核,其中所述硬件线程特定状态信息是取决于分配给所述给定分区并且当访问所述第一寄存器时被指定的具体硬件线程的逻辑硬件线程号的值,并且其中所述逻辑电路改变所述逻辑硬件线程号以确定所述实际硬件线程号,取回针对实际硬件线程的所述硬件线程特定信息,并且提供取回的所述硬件线程特定信息作为输出。
13.根据权利要求12所述的处理器核,其中所述硬件线程特定状态信息是执行所述访问的硬件线程的硬件线程号,并且其中所述逻辑电路减去针对所述给定分区的基础线程号,以获得所述实际硬件线程号。
14.一种计算机系统,包括: 存储器,用于存储程序指令和数据值;以及 耦合到所述存储器的处理器,用于执行所述程序指令,其中所述处理器包括一个或多个执行单元,用于执行多个硬件线程的指令;指令提取单元,用于提取所述指令;指令分发单元,用于向所述执行单元分发所述指令;第一寄存器,其包含硬件线程特定信息;逻辑电路,用于将所述硬件线程特定信息转换为所述硬件线程特定信息的逻辑表示,以反映由所述处理器所执行的给定逻辑分区的线程对所述处理器的独占使用,而所述处理器的多个硬件线程被分配给除所述给定逻辑分区以外的另一逻辑分区。
15.根据权利要求14所述的计算机系统,其中当在低于管理程序特权级别的特权级别处访问所述第一寄存器时,选择所述逻辑电路的输出。
16.根据权利要求15所述的计算机系统,其中所述处理器进一步包括数据选择器,用于在当从低于所述管理程序特权级别的特权级别访问所述第一寄存器时的所述逻辑电路的输出和当从所述管理程序特权级别访问所述第一寄存器时的所述第一寄存器中的值之间进行选择。
17.根据权利要求14所述的计算机系统,其中所述硬件线程特定状态信息是由所述处理器所支持的硬件线程数目,并且其中所述硬件线程特定信息的所述逻辑表示是分配给所述给定分区的硬件线程的数目。
18.根据权利要求14所述的计算机系统,其中所述硬件线程特定状态信息是取决于分配给所述给定分区并且当访问所述第一寄存器时被指定的具体硬件线程的逻辑硬件线程号的值,并且其中所述逻辑电路改变所述逻辑硬件线程号以确定所述实际硬件线程号,取回实际硬件线程的所述硬件线程特定信息,并且提供取回的硬件线程特定信息作为输出。
19.根据权利要求18所述的计算机系统,其中所述硬件线程特定状态信息是执行所述访问的所述硬件线程的硬件线程号,并且其中所述逻辑电路减去针对所述给定分区的基础线程号,以获得所述实际硬件线程号。
20.一种计算机程序产品,包括计算机可读存储介质,其存储由计算机系统执行的程序指令,其中所述程序指令是用于管理处理器核内执行的多个逻辑分区的管理程序的程序指令,其中所述程序指令包括: 中断处理程序的程序指令,用于响应于在访问包含硬件线程特定信息的寄存器时生成的陷阱中断,转换所述寄存器中的所述硬件线程特定信息来模拟由给定分区对所述处理器核的独占使用,以产生不同于所述寄存器中的实际值的逻辑寄存器值;以及 所述中断处理程序的程序指令,用于以所述逻辑寄存器值来替代用于对所述硬件线程特定信息的访问的返回值。
21.根据权利要求2 0所述的计算机程序产品,其中所述硬件线程特定状态信息是由所述处理器核所支持的硬件线程数目,并且其中进行转换的程序指令返回分配给所述给定分区的硬件线程的数目。
22.根据权利要求20所述的计算机程序产品,其中所述硬件线程特定状态信息是取决于分配给所述给定分区并且由所述访问指定的具体硬件线程的逻辑硬件线程号的值,并且其中所述进行转换的程序指令包括用于以下的程序指令: 改变所述逻辑硬件线程号以确定所述实际硬件线程号; 取回针对所述实际硬件线程的硬件线程特定信息;以及 响应于所述访问来返回取回的所述硬件线程特定信息。
23.根据权利要求22所述的计算机程序产品,其中所述硬件线程特定状态信息是执行所述访问的硬件线程的硬件线程号,并且其中所述改变减去针对所述给定分区的基础线程号,以获得所述实际硬件线程号。
24.—种计算机系统,包括: 存储器,用于存储程序指令和数据值;以及 耦合到所述存储器的处理器,用于执行所述程序指令,其中所述程序指令是用于管理处理器内执行的多个逻辑分区的管理程序的程序指令,其中所述程序指令包括:中断处理程序的程序指令,用于响应于在访问包含硬件线程特定信息的寄存器时生成的陷阱中断,转换所述寄存器中的所述硬件线程特定信息以模拟由给定分区对所述处理器核的独占使用,以产生不同于所述寄存器中的实际值的逻辑寄存器值,以及所述中断处理程序的程序指令,用于以所述逻辑寄存器值来替代用于对所述硬件线程特定信息的访问的返回值。
25.根据权利要求24所述的计算机系统,其中所述硬件线程特定状态信息是由所述处理器所支持的硬件线程数目,并且其中进行转换的程序指令返回分配给所述给定分区的硬件线程的数目。
26.根据权利要求24所述的计算机系统,其中所述硬件线程特定状态信息是取决于分配给所述给定分区并且由所述访问指定的具体硬件线程的逻辑硬件线程号的值,并且其中进行转换的程序指令包括用于以下的程序指令: 改变所述逻辑硬件线程号以确定所述实际硬件线程号; 取回针对所述实际硬件线程的所述硬件线程特定信息;以及 响应于所述访问来返回取回的所述硬件线程特定信息。
27.根据权利要求26所述的计算机系统,其中所述硬件线程特定状态信息是执行所述访问的所述硬件线程的硬件线程号,并且其中所述改变减去针对所述给定分区的基础线程号,以获得所述实 际硬件线程号。
【文档编号】G06F9/455GK104011681SQ201280064372
【公开日】2014年8月27日 申请日期:2012年12月10日 优先权日:2012年1月6日
【发明者】G·R·弗雷泽, N·纳亚, B·米利 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1