多处理器数据处理系统中对分区指派处理器的方法和系统的制作方法

文档序号:6387298阅读:257来源:国知局
专利名称:多处理器数据处理系统中对分区指派处理器的方法和系统的制作方法
技术领域
本发明通常涉及改进的数据处理系统,具体涉及用于在数据处理系统中管理高速缓存的方法和装置。更具体而言,本发明涉及用于在逻辑分区的数据处理系统内优化高速缓存的方法,装置,和计算机指令。
背景技术
越来越大型的对称性多处理器数据处理系统,如可从IBM公司获得的IBM eSever P690,可从Hewlett-Packard公司获得的DHP9000Superdome Enterprise Sever,可从Sun Microsystems公司获得的Sunfire 15K服务器,不再是用作单个大型的数据处理系统。而是将这些类型的数据处理系统进行分区,将其用作更小的系统。这些系统还被称为逻辑分区(LPAR)的数据处理系统。在数据处理系统内进行逻辑分区的功能允许在单个数据处理系统平台上同时运行单个操作系统的多个拷贝或多个异构型操作系统。对其中运行操作系统镜像的分区指派平台资源的非重叠子集。这些平台可分配资源包括一个或多个体系结构不同的具有各自中断管理区域,系统存储器区,和输入/输出(I/O)适配器总线槽的处理器。分区的资源由平台固件表示至操作系统镜像。
运行在平台内的每个不同操作系统或操作系统的镜像彼此之间受到保护,以使在一个逻辑分区上的软件错误不会影响任何其他分区的正确操作。该保护是通过分配所要由各操作系统镜像直接管理的平台资源的不相交集合,以及提供用于确保多种镜像不会控制未分配给那个镜像的任何资源,来提供。此外,防止在操作系统分配资源的控制中出现的软件错误影响任何其他镜像的资源。这样,操作系统的每个镜像或每个不同的操作系统直接控制在平台内可分配资源的不同集合。
至于在逻辑分区的数据处理系统中的硬件资源,这些资源在多个分区之间不相交地共享。这些资源可包括,例如,输入/输出(I/O)适配器,存储器DIMM,非异失性随机存取存储器(NVRAM)和硬盘驱动器。在不必重开启整个数据处理系统的条件下,可对LPAR数据处理系统内的每个分区进行数次引导和关闭。在分区中的处理器数量取决于用户需求,而与处理器对高速缓存之比无关。本发明认识到,依据关于处理器位置的处理器指派以及这些处理器所使用的高速缓存,对那些不同分区指派处理器的方式可对性能产生显著影响。
因此,提供一种用于在逻辑分区的数据处理系统中根据对具体分区的处理器选择来优化高速缓存的改进方法,装置和计算机指令,将会有益。

发明内容
本发明提供了用于在多处理器数据处理系统中对分区指派处理器的方法,装置,和计算机指令。对于高速缓存级别,对多处理器数据处理系统中未分配的处理器产生最优分配集合。每个集合包括对至少一个分区的未分配处理器的分配。判定在最优分配集合中的集合是否匹配对于数据处理系统所选一组分区的要求。当匹配时,从未分配的处理器中去除集合中的处理器,其中,对高速缓存级别使处理器对高速缓存的利用率得到优化。


在所附权利要求中给出了认为是本发明特性的新颖特征。不过,结合附图,参照后面说明性实施例的详细描述,将更好地理解本发明本身,和优选实施方式,以及其目的和优点,其中图1的方块图表示在其中可实现本发明的数据处理系统;图2的方块图表示在其中可实现本发明的示例性逻辑分区的平台;图3A表示处理器的较差分配;图3B表示根据本发明优选实施例的最优处理器分配的示例;
图4表示根据本发明优选实施例用于在逻辑分区处理系统中分配处理器的处理流程图;和图5表示根据本发明的优选实施例执行通过(pass)的流程图。
具体实施例方式
现参照附图,具体参照图1,图1的方块图表示在其中可实现本发明的数据处理系统。数据处理系统100为可使用本发明分配处理器以优化高速缓存利用率的数据处理系统示例。数据处理系统100可为包括与系统总线106相连的多个处理器单元101,102,103和104的对称性多处理器(SMP)系统。例如,数据处理系统100可为IBM公司(在Armonk处)的产品IBM eSever,该产品作为在网络内的服务器。
与系统总线106相连的还有存储器控制器/高速缓存108,存储器控制器/高速缓存108提供到多个局部存储器160~163的接口。I/O总线桥110与系统总线106相连,并提供到I/O总线112的接口。可按如所述方式集成存储器控制器/高速缓存108和I/O总线桥110。
数据处理系统100为逻辑分区(LRAR)的数据处理系统。从而,数据处理系统100可具有同时运行的多个异构型操作系统(或单个操作系统的多个实例)。这些多操作系统的每个均可在其中具有任何数量的软件程序执行。对数据处理系统100进行逻辑分区,以便可将不同的PCI I/O适配器120~121,128~129和136,图形适配器148,和硬盘适配器149指派给不同的逻辑分区。在此情形中,图形适配器148提供用于显示设备(未显示出)的连接,而硬盘适配器149提供用于控制硬盘150的连接。
从而,例如假设将数据处理系统100分为三个逻辑分区,P1,P2和P3。各PCI I/O适配器120~121,128~129,136,图形适配器148,硬盘适配器149,各处理器单元101~104,以及自局部存储器160~163的存储器被指派给三个分区的每个分区。在这些示例中,存储器160~163可采用双列直插式存储器模块(DIMM)的形式。通常不会基于每个DIMM向分区指派DIMM。而是,分区将获得由平台所看到的整个存储器的一部分。例如,可将处理器101,自局部存储器160~163某些部分的存储器,以及I/O适配器120,128和129指派给逻辑分区P1;将处理器102~103,自局部存储器160~163某些部分的存储器,以及PCI I/O适配器121和136指派给逻辑分区P2;将处理器104,自局部存储器160~163某些部分的存储器,图形适配器148和硬盘适配器149指派给逻辑分区P3。
将执行在数据处理系统100内的各操作系统指派给不同的逻辑分区。这样,执行在数据处理系统100内的各操作系统可访问仅在其逻辑分区内的那些I/O单元。从而,例如高级交互执行程序(AIX)操作系统的一个实例可执行在分区P1内,AIX操作系统的第二个实例(镜像)可执行在分区P2内,Windows XP操作系统可操作在逻辑分区P3内。Windows XP为微软公司(华盛顿,Redmond)的产品和商标。
与I/O总线112相连的外设部件互连(PCI)主机桥114提供到PCI局部总线115的接口。可通过PCI至PCI桥116,PCI总线118,PCI总线119,I/O槽170,和I/O槽171将多个PCI输入/输出适配器120~121与PCI总线115相连。PCI至PCI桥116提供到PCI总线118和PCI总线119的接口。PCI I/O适配器120和121分被设置在I/O槽170和171中。典型的PCI总线装置将支持四和八个之间的I/O适配器(即用于内插连接器的扩展槽)。各PCI I/O适配器120~121在数据处理系统100与输入/输出设备(例如作为连接数据处理系统100的客户机的其他网络计算机)之间提供接口。
附加PCI主机桥122为附加PCI总线123提供接口。PCI总线123与多个PCI I/O适配器128~129相连。PCI I/O适配器128~129可通过PCI至PCI桥124,PCI总线126,PCI总线127,I/O槽172,和I/O槽173与PCI总线123相连。PCI至PCI桥124提供到PCI总线126和PCI总线127的接口。PCI I/O适配器128和129分别设置在I/O槽172和173中。以此方式,可通过各PCI I/O适配器128~129支持附加I/O设备,如调制解调器或网络适配器。从而,数据处理系统100允许到多个网络计算机的连接。
插到I/O槽174中的存储器映射图形适配器148可通过PCI总线144,PCI至PCI桥142,PCI总线141,和PCI主机桥140与I/O总线112相连。硬盘适配器149可放置在I/O槽175中,I/O槽175与PCI总线145相连。该总线又与PCI至PCI桥142相连,PCI至PCI桥142通过PCI总线141与PCI主机桥140相连。
PCI主机桥130提供用于PCI总线131连接到I/O总线112的接口。PCI I/O适配器136与I/O槽176相连,I/O槽176通过PCI总线133与PCI至PCI桥132相连。PCI至PCI桥132与PCI总线131相连。该PCI总线还将PCI主机桥130与服务处理器邮箱接口和ISA总线访问直通式逻辑194以及PCI至PCI桥132相连。服务处理器邮箱接口和ISA总线访问直通式逻辑194转发目的地到PCI/ISA桥193的PCI访问。NVRAM存储装置192与ISA总线196相连。服务处理器135通过其局部PCI总线195与服务处理器邮箱接口和ISA总线访问直通式逻辑194相连。服务处理器135还通过多个JTAG/I2C总线134与处理器101~104相连。JTAG/I2C总线134为JTAG/scan总线(参见IEEE 1149.1)和菲利普I2C总线的组合。不过,或者,可仅用菲利普I2C总线或仅用JTAG/scan总线来代替JTAG/I2C总线134。主机处理器101,102,103和104的所有SP-ATTN信号连接在一起成为服务处理器的中断输入信号。服务处理器135具有其自身的局部存储器191,并具有到硬件OP-面板(hardware OP-panel)190的访问。
当初次给数据处理系统100加电时,服务处理器135使用JTAG/I2C总线134询问系统(主机)处理器101~104,存储器控制器/高速缓存108,和I/O桥110。完成该步骤后,服务处理器135具有关于数据处理系统的清单(inventory)和拓扑理解。服务处理器135还对通过询问主机处理器101~104,存储器控制器/高速缓存108,和I/O桥110而发现的所有部件执行内置自检(BIST,Built-In-Self-Test),基本保证测试(BAT,Basic Assurance Test),和存储器测试。由服务处理器135收集和报告在BIST,BAT,以及存储器测试期间所检测的对于失效的所有错误信息。
如果在BIST,BAT以及存储器测试期间发现部件有错误而系统资源的配置仍可能有意义/有效,则允许数据处理系统100继续将可执行码装载到局部(主机)存储器160~163中。然后,服务处理器135释放处理器单元101~104,以执行加载到局部存储器160~163中的码。当处理器单元101~104执行来自数据处理系统内各自操作系统的码时,服务处理器135进入监控并报告错误的模式。由服务处理器135所监控的项目类型包括,例如,冷却风扇的转速和操作,热传感器,电源调节器,和由处理器单元101~104,局部存储器160~163,和I/O桥110报告的可恢复和不可恢复错误。
服务处理器135负责保存和报告关于在数据处理系统100中所有监控项目的错误信息。服务处理器135还基于错误类型和所定义的阈值采取行动。例如,服务处理器135可在处理器的高速缓存存储器上记录过多的可恢复错误,并判定这是否预示存在有硬失效。基于此判定,服务处理器135可标记在当前运行会话和未来初始程序装入(IPL,InitialProgram Load)期间用于重新配置的资源。IPL有时又称为“引导”或“自举”。
数据处理系统100可使用市场上可获得的多种计算机系统来实现。例如,可使用可从IBM公司获得的IBM eSever iSeries Model 840系统来实现数据处理系统100。这种系统可支持使用OS/400操作系统进行逻辑分区,OS/400操作系统也可从IBM公司获得。
本领域普通技术人员应该理解,可对在图1中所示硬件进行变化。例如,除所示硬件外,还可使用其他外设,如光盘驱动器等,或者用这些外设代替所示硬件。所述示例并不意在表示对本发明进行结构上的限制。
现参照图2,图2的方块图表示在其中可实现本发明的示例性逻辑分区的平台。可将在逻辑分区平台200中的硬件实现为,例如,如图1所示的数据处理系统100。逻辑分区平台200包括分区硬件230,操作系统202,204,206,208,和系统管理程序210。操作系统202,204,206,208可为同时运行在平台200上的单个操作系统的多个拷贝或多个异构型操作系统。可使用OS/400实现这些操作系统,OS/400被设计用来与系统管理程序相接口。操作系统202,204,206,208处在分区203,205,207,和209中。
另外,这些分区还包括固件加载器211,213,215,和217。可使用IEEE-1275标准开放固件(Standard Open Firmware)和运行时抽象软件(RTAS,runtime abstraction software)来实现固件加载器211,213,215,和217,RTAS可从IBM公司获得。当实例化分区203,205,207,和209时,通过系统管理程序的分区管理器将开放固件的拷贝加载到每个分区中。然后,将与分区相关联的或指派给分区的处理器指派给分区的存储器,以执行分区固件。
分区硬件230包括多个处理器232~238,多个系统存储器单元240~246,多个输入/输出(I/O)适配器248~262,和存储单元270。分区硬件230还包括服务处理器290,服务处理器290可用于提供多种服务,如对分区中错误的处理。可将各处理器232~238,存储器单元240~246,NVRAM存储装置298,和I/O适配器248~262指派给在逻辑分区平台200内多个分区的其中一个,每个分区与操作系统202,204,206,和208中的一个相对应。
分区管理固件(系统管理程序)210执行用于分区203,205,207,和209的多个功能和服务,以创建并强制进行逻辑分区平台200的分区。系统管理程序210是实现为等同于基本硬件的虚拟机的固件。系统管理程序软件可从IBM公司获得。固件为存储在存储器芯片中的“软件”,存储器芯片在无需供电的条件下即可保持其内容,如只读存储器(ROM),可编程ROM(PROM),可擦可编程ROM(EPROM),电可擦可编程ROM(EEPROM),和非异失性随机存取存储器(非异失性RAM)。从而,系统管理程序210允许通过虚拟化逻辑分区平台200的所有硬件资源使独立的OS镜像202,204,206,和208同时执行。
可通过硬件管理控制台,如控制台264,来控制不同分区的操作。控制台264为分离的数据处理系统,系统管理员通过该分离数据处理系统可对不同分区执行包括资源再分配的多种功能。
逻辑分区平台200中资源的分配方式影响着高速缓存的利用率。尤其是,处理器的分配方式能影响系统的性能。对分区较差的处理器分配可导致在逻辑分区平台200中高速缓存的低效使用。如果使处理器分配得更高效,则可能需要保留数据的多个拷贝。
现参看图3A,图3A表示处理器的较差分配。该示例表示出现了对分区较差分配处理器的问题。在该示例中,表示出包含有多个芯片模块300,302,304,和306的32处理器系统。多芯片模块300包含处理器308,310,312,314,316,318,320,和322。处理器308分配给分区P1,处理器310分配给分区P2,处理器312分配给分区P3,处理器314分配给分区P4,处理器316分配给分区P3,处理器318分配给分区P4,处理器320分配给分区P1,以及处理器322分配给分区P2。该多芯片模块还包括第二级高速缓存324,326,328,和330。在多芯片模块300中还存在第三级高速缓存332。
其次,多芯片模块302包含处理器334,336,338,340,342,344,346,和348。处理器334分配给分区P1,处理器336分配给分区P2,处理器338分配给分区P3,处理器340分配给分区P4,处理器342分配给分区P3,处理器344分配给分区P4,处理器346分配给分区P1,以及处理器348分配给分区P2。多芯片模块302还包括第二级高速缓存350,352,354,和356。在多芯片模块302中还存在第三级高速缓存358。
再者,在多芯片模块304中,存在处理器360,362,364,366,368,370,372,和374。处理器360分配给分区P1,处理器362分配给分区P2,处理器364分配给分区P3,处理器366分配给分区P4,处理器368分配给分区P3,处理器370分配给分区P4,处理器372分配给分区P1,以及处理器374分配给分区P2。在多芯片模块304中存在第二级高速缓存376,378,380,和382,以及第三级高速缓存384。
在多芯片模块306中,存在处理器386,388,390,392,394,396,398,和301。处理器386分配给分区P1,处理器388分配给分区P2,处理器390分配给分区P3,处理器392分配给分区P4,处理器394分配给分区P3,处理器396分配给分区P4,处理器398分配给分区P1,以及处理器301分配给分区P2。在多芯片模块306中存在第二级高速缓存303,305,307,和309,以及第三级高速缓存311。
正如所看到的,在该示例中,由于在具体分区的每个处理器不与同一分区中的任何其他处理器共享第二级高速缓存,对分区的处理器分配较差。此外,仅仅与同一分区内的一个其他处理器共享每个模块中的第三级高速缓存。这些多芯片模块表示处理单元,如图1所示处理单元101,102,103,和104,的示例。
在访问数据时,更坏的情形是,在第二级高速缓存中存储数据的8份拷贝,在第三级高速缓存中存储数据的4份拷贝。在该示例中,对于最好的情形,分区1处在首8个处理器中,分区2包含其次8个处理器,依次类推。这种类型的分配仅在其中4个第二级高速缓存和1个第三级高速缓存放置同样的数据。对于更坏的情形,使第二级高速缓存的尺寸加倍,使第三级高速缓存的大小增至三倍。
当前已知的解决方法是沿物理边界建立分区,忽略问题,并承受性能损失,或者使用蛮力且尝试各种组合。对于16个分区和32个处理器,具有20.9万亿种可能的组合。
本发明提供了用于根据分配处理器使分区设置最优化的一种方法,装置和计算机指令。此外,如果处理未运行结束,该机制可最优化设置分区的子集。这以次优化方式使设置剩余分区的影响最小化。本发明的机制不搜索将要被分配的分区以及使它们与硬件相匹配。相反,本发明的机制通过产生对于硬件而言最优的分区并查找是否存在那样类型的分区来进行搜索。该机制可在HSC,如图2所示的硬件系统控制台280,中实现。
该机制进行搜索使用了利用以下事实的方法在定义上,更高级高速缓存是更低级高速缓存的更低倍数。从而,搜索可对于高速缓存级别向下进行。本发明的机制通过搜索更大高速缓存级别而启动,首先去除更大的分区。当对于处理器发现最优设置时,考虑去除处理器和分区。在所示示例中,每个搜索级别具有多个通过(pass)。每个级别的通过数量由处理器数量与当前搜索级别以及前一搜索级别之间的扇出因数来决定。根据图3A中所示示例,由于在更高级存在32个处理器,在当前级存在8个处理器,从而在第三级执行4个通过。
此外,对于每个通过,在所产生的所有分区组中,每个分区中CPU的数量为当前级别处理器数量的倍数,且其中,在所有分区中处理器的数量总计达到前一级别处理器的数量。如果发现匹配,自未分配的机器去除那些处理器,并从未分配的分区去除该分区。在所示示例中,所产生的集合将如下通过1{32};通过2{24,8}{16,16};通过3{16,8,8};和通过4{8,8,8,8},通过1产生将32个处理器指派给单个分区的情形。通过2产生对两个分区显示出最优处理器分配的两个集合。通过3显示出对于三个分区的最优处理器分配。通过4产生对于4个分区的处理器分配。这些是对于不同分区数量的最优集合示例。
这些集合表示通用处理器资源(generic processor resource)。当生成这些集合时,集合并不表示专用处理器分配。相反,集合表示通用最优处理器集合。可能会发现将与通用最优处理器集合相匹配的多个专用处理器分配。例如在图3中,如果未分配任何处理器,且产生诸如{8,8,8,8}的集合,表示4个用于任何8个处理器的最优处理器集合。在处理器单元300,302,304,和306中的处理器分别作为示例。出于简单考虑,最容易的是按照某些类型相似性顺序设置处理器。该顺序通常为由系统所表示处理器的顺序,如1,2,3,4,和5。
如果处理器已不按正确的顺序,可将处理器按树形结构设置。那么,可能会使用十分简单的最左边树遍历来设置处理器的选择。一旦处理器排好顺序,则可使用该顺序分配处理器。
在这些示例中,对于最高级别的通过数量为0,这是由于没有用于进行比较的更高级别。从而,在最高级别上的通过是不可能的。通过利用是在该级别处理器数量倍数的或示例中所给出数量或分区数量进行的最小化,可进一步缩减通过的数量。该规则阻止对不可能具有匹配的多个通过进行搜索。此外,不会产生冗余集合。例如,将{1,3,1}和{1,1,3}认为是相同的集合,只产生这样集合中的仅一个。
此外,如果没有产生任何匹配的集合,其总处理器利用率总计至最高级别,在以下的级别上重复进行搜索。如果搜索处在第三级高速缓存级别上,则搜索移动到以下的级别,即第二级高速缓存级别。如果存在多于一个的前一级别,首先,必须产生恰好落在前一级别上的组合,顺利移除对恰好落在更低级别上级别的限制。
下面,参看图3B,图3B表示根据本发明优选实施例的最优处理器分配的示例。在该示例中,在图3A中的32处理器系统显示出包含具有最优处理器分配以优化高速缓存利用率的多芯片模块300,302,304,和306。这如所看到的,在多芯片模块300中的所有处理器都分配给分区P1,在多芯片模块302中的处理器分配给分区P2,在多芯片模块304中的处理器分配给分区P3,以及在多芯片模块306中的处理器分配给分区P4。
现参看图4,图4表示根据本发明优选实施例在逻辑分区处理系统中分配处理器的处理流程图。可在硬件管理控制台(如图2中所示的硬件管理控制台208)中实现如图4中所示的处理。
处理由设置变量level(级别)等于最高高速缓存级别开始,且变量n等于处理器的总数(步骤400)。例如,在图3所示示例中最高高速缓存级为3。在该示例中,处理器的总数为32。
然后执行通过(步骤402)。判定所有通过是否会导致匹配(步骤404)。如果出现匹配,则从n中除去所匹配的处理器(步骤406)。这些匹配的处理器不再是未分配的处理器,且在以后的通过中不加以考虑。从未分配的分区中去除匹配的分区(步骤408)。
此后,判定n是否小于或等于1(步骤410)。此步骤用于判定处理是否完成。如果n不小于或等于1,处理返回到步骤402,进行如上所述的处理。否则,处理结束。
再次参看步骤404,如果在步骤402中不出现匹配,则将level设置成等于level减1(步骤412)。换而言之,使级别递减以在下一个更低级别进行搜索。判定在级别中的处理器数量是否大于1(步骤414)。如果在级别中的处理器数量大于1,则处理返回到步骤402。否则,处理结束。
下面参看图5,图5表示根据本发明优选实施例执行通过的流程图。在图5中所示处理更详细地描述了在图4中的步骤402。
处理由设置变量pass(通过)等于1开始(步骤500)。对于level和pass生成集合(步骤502)。步骤502相当于求出整个级别的通过。通过的值等于需要处理器的分区数量。所求出的通过数可达处理器数量除以级别。如果有四个分区,用于向分区分配处理器的通过数为4。在对pass生成集合中,产生等于通过数的成员数。换而言之,在集合中每个成员的数量为级别中处理器数量的倍数,且少于或等于[n-n(level)(pass-1)],其中,n为处理器的数量,n(level)为在级别中的处理器数量。有效的集合数增至n。
在集合中的每个成员可仅与可获得处理器的数量n同样大。在集合中的每个成员可仅同级别n(level)中的处理器数量同样少。由于所有成员的总数必须小于或等于可获得处理器的数量n。当存在多于一个的成员时,没有单个成员能够与n同样大,这是由于其他成员将不得不为0。当pass大于1时,存在多于一个的成员。以上方程显示出,对于在集合中的成员,最大可能值为n减去对于在集合中其他成员的最小值。根据集合生成如果实现,当生成集合时,了解这些将是有用的。这表示,当通过增多时,集合成员的可能值范围会减小,这稍稍抵消生成更大集合的额外工作。
然后判定在集合中的处理器是否匹配分区要求(步骤504)。如果向某一分区指派了处理器,在分配处理器中不会再考虑该分区。从而,如果四个分区需要分配,那么,将通过数设置为3的值,而不是4。如果在集合中的处理器匹配分区要求,则表示匹配(步骤506),此后处理结束。
再次参看步骤504,如果在集合中的处理器不匹配分区要求,变量pass递增(步骤508)。判定变量pass是否大于处理器数量除以级别中处理器的数量(步骤510)。如果变量pass不大于处理器数量除以级别中处理器的数量,处理按如上所述返回到步骤502。否则,表明不匹配(步骤512),此后处理结束。
从而,本发明提供用于向分区分配处理器的改进方法,装置,和计算机指令。本发明的机制通过对硬件产生最优分区并检查这些分区是否存在而分配处理器。换而言之,对不同分区进行最优处理器分配,以产生集合,并对集合进行检查,以查看分区是否具有那些类型处理器分配的要求。此外,本发明的机制以更大高速缓存级别启动搜索,如宁肯用第三级高速缓存也不用第二级高速缓存。以此方式,可避免或减少在较差分配的系统中与较差高速缓存利用率相关的问题。
重要的是应注意,即便鉴于完全功能的数据处理系统来描述本发明,本领域普通技术人员应该理解,本发明的处理能够以指令性计算机可读介质的形式以及多种形式分布,且同样本发明的应用不在乎实际用于实现分布的信号承载介质的具体类型。计算机可读介质的示例包括可读类型介质,如软盘,硬盘驱动器,RAM,CD-ROM,DVD-ROM,和传输类型介质,诸如使用例如无线电频率和光波传输的传输形式的数据和模拟通信链路,有线或无线通信链路。计算机可读介质可采用编码形式,并在具体数据处理系统中为实际应用要进行解码。
本发明的描述是出于说明及描述目的,并不意在以所批露的形式详尽列举出本发明或限制本发明。显而易见,本领域普通技术人员能够易于想到多种修改和变形。所选及所述实施例是出于更好地说明本发明的原理以及实际应用,并能够使本领域其他普通技术人员以多种修改的多种实施例想到本发明,这些修改的实施例适用于他们所想到的具体应用。
权利要求
1.一种在多处理器数据处理系统中向分区指派处理器的方法,所述方法包括针对高速缓存级别在多处理器数据处理系统中为未分配的处理器产生最优分配集合,其中,每个集合包括对至少一个分区的未分配处理器的分配;判定在最优分配集合中的集合是否匹配对数据处理系统所选一组分区的要求;以及当匹配时,从未分配处理器中去除集合中的处理器,其中,针对高速缓存级别使处理器对高速缓存的利用率得到优化。
2.根据权利要求1的方法,还包括对每个高速缓存级别,重复执行产生步骤、判定步骤、和去除步骤。
3.根据权利要求2的方法,其中,所述方法在最高高速缓存级别启动,依次移向更低高速缓存级别,直到处理所有高速缓存级别。
4.根据权利要求1的方法,还包括当向分区分配集合时,从分区组中去除分区。
5.根据权利要求1的方法,其中,多处理器数据处理系统为对称性多处理数据处理系统。
6.根据权利要求1的方法,其中,多处理器数据处理系统包括L3高速缓存和L2高速缓存。
7.根据权利要求1的方法,其中,处理器处在多芯片模块上,在多芯片模块中,依据多芯片模块上的处理器位置,对分区的最优处理器分配用于优化高速缓存利用率。
8.一种在多处理器数据处理系统中分配处理器以使高速缓存利用率得到优化的方法,所述方法包括选择在多处理器数据处理系统中未进行处理的最高高速缓存级别;产生具有所需高速缓存优化级别的处理器分配集合,其中,集合包括未分配的处理器;当执行产生步骤时,判定集合是否匹配分区组内分区的要求;当匹配时,将集合中的处理器分配给分区,以形成分配的处理器;以及当不匹配时,重复产生集合,以产生处理器分配的不同集合。
9.一种在多处理器数据处理系统中对分区指派处理器的数据处理系统,所述数据处理系统包括总线系统;与总线系统相连的通信单元;与总线系统相连的存储器,其中,存储器包括一组指令;以及与总线系统相连的处理单元,其中,处理单元执行该组指令以对于高速缓存级别为多处理器数据处理系统中未分配的处理器产生最优分配集合,其中每个集合包括对至少一个分区的未分配处理器的分配;判定在最优分配集合中的集合是否匹配对数据处理系统所选一组分区的要求;当匹配时,从未分配的处理器中去除集合中的处理器,其中对高速缓存级别使处理器对高速缓存的利用率得到优化。
10.一种在多处理器数据处理系统中向分区指派处理器的数据处理系统,所述数据处理系统包括产生单元,用于对高速缓存级别在多处理器数据处理系统中为未分配的处理器产生最优分配集合,其中,每个集合包括对至少一个分区的未分配处理器的分配;判定单元,用于判定在最优分配集合中的集合是否匹配对数据处理系统所选一组分区的要求;以及去除单元,用于当匹配时,从未分配处理器中去除集合中的处理器,其中,对高速缓存级别使处理器对高速缓存的利用率得到优化。
11.根据权利要求10的数据处理系统,还包括对每个高速缓存级别,重复执行产生单元、判定单元、和去除单元。
12.根据权利要求11的数据处理系统,其中,所述系统在最高高速缓存级别启动,依次移向更低高速缓存级别,直到处理所有高速缓存级别。
13.根据权利要求10的数据处理系统,其中,去除单元为第一去除单元,此外还包括第二去除单元,用于当向分区分配集合时,从分区组中去除分区。
14.根据权利要求10的数据处理系统,其中,多处理器数据处理系统为对称性多处理数据处理系统。
15.根据权利要求10的数据处理系统,其中,多处理器数据处理系统包括L3高速缓存和L2高速缓存。
16.根据权利要求10的数据处理系统,其中,处理器处在多芯片模块上,在多芯片模块中,依据多芯片模块上的处理器位置,对分区的最优处理器分配用于优化高速缓存利用率。
17.一种在计算机可读介质中用于在多处理器数据处理系统中向分区指派处理器的计算机程序产品,所述计算机程序产品包括第一指令,用于对高速缓存级别在多处理器数据处理系统中为未分配的处理器产生最优分配集合,其中,每个集合包括对至少一个分区的未分配处理器的分配;第二指令,用于判定在最优分配集合中的集合是否匹配对数据处理系统所选一组分区的要求;第三指令,当匹配时,用于从未分配处理器中去除集合中的处理器,其中,对高速缓存级别使处理器对高速缓存的利用率得到优化。
18.根据权利要求17的计算机程序产品,还包括第四指令,用于对每个高速缓存级别重复执行产生步骤、判定步骤、和去除步骤。
19.根据权利要求18的计算机程序产品,其中,在最高高速缓存级别启动,依次移向更低高速缓存级别,直到处理所有高速缓存级别。
20.根据权利要求17的计算机程序产品,还包括子指令,用于当向分区分配集合时,从分区组中去除分区。
21.根据权利要求17的计算机程序产品,其中,多处理器数据处理系统为对称性多处理数据处理系统。
22.根据权利要求17的计算机程序产品,其中,多处理器数据处理系统包括L3高速缓存和L2高速缓存。
23.根据权利要求17的计算机程序产品,其中,处理器处在多芯片模块上,在多芯片模块中,依据多芯片模块上的处理器位置,对分区的最优处理器分配用于优化高速缓存利用率。
全文摘要
一种用于在多处理器数据处理系统中对分区指派处理器的方法,装置,和计算机指令。对于高速缓存级别,对多处理器数据处理系统中未分配的处理器产生最优分配集合。每个集合包括对至少一个分区的未分配处理器的分配。判定在最优分配集合中的集合是否匹配对于数据处理系统所选一组分区的要求。当匹配时,从未分配的处理器中去除集合中的处理器,其中,对高速缓存级别使处理器对高速缓存的利用率得到优化。
文档编号G06F12/00GK1604041SQ20041001174
公开日2005年4月6日 申请日期2004年9月24日 优先权日2003年10月2日
发明者乔尔·霍华德·舒普 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1