为达到最优性能对输入输出适配器设备编程的方法

文档序号:6562322阅读:402来源:国知局
专利名称:为达到最优性能对输入输出适配器设备编程的方法
技术领域
本发明涉及一种改进型的数据处理系统,更具体地说涉及一种在数据处理系统中为输入输出适配器设置编程的方法。
背景技术
计算机对当今世界经济正变得越来越重要。传统上,计算机不仅被科学家和工程师用来帮助了解物理世界,而且被用以帮助开发和设计解决从制药到建造办公用房和桥梁的办法。然而,计算机也越来越多地在商业领域中用于接收和填写货物及服务定单,例如,通过因特网,而且,计算机还能够帮助进行其他服务,如会计结算和银行事务。
随着对计算机的依赖日益加大以及商业和革新每个增加的前进步伐,对计算机性能不断地提出更多的要求。影响计算机性能的一个重要方面是计算机主要处理、存储单元和计算机的诸如硬盘机、网络接口等外设之间的接口。这些外设和计算机主要组成部件通过适配器连接起来。适配器是使得一个系统与另一个系统连接并共同工作的一种设备。适配器通常是将一组信号转换成另一组信号的简单电路;然而,这一术语常常是指一种被更准确地称之为“控制器”的设备;例如,显示适配器(视频卡),网络适配器(NIC)及进行扩充处理的SCSI主适配器,但是这些都仍然被称为“适配器”。
每个计算机内的适配器都包括必须由计算机编程的设置,以使得和适配器连接的设备能够与计算机其余部分通信。传统的用来给适配器设置编程的方法是,一系列适配器,典型的如PCI适配器,用基于系统的设置来设定。例如,基于PCI的设备需要把它们的等待时间,高速缓存线大小及其他参数根据计算机的要求被初始化。如果计算机的高速缓存线大小为32B,则适配器被编程为32B。如果计算机的高速缓存线大小为64B,则适配器设置中适当的参数应被编程设为64B。
这种方法的问题是,某些设备采用基于系统的设置不能很好地工作。例如,某些FC-AL适配器根据系统设置把高速缓存线大小编程为128B时会出现问题。在这样的设置的条件下,适配器只能以0.25MB/秒的速度运行,并且出现许多对超时错误的AIX错误记录项。然而,如果把这一数值变为64B,则适配器性能将增加36000%,达到90MB/秒。因此,最好是有一种为使计算机适配器性能最优化而以某种方式对适配器设置编程的方法。
技术方案本发明提供了一种在数据处理系统中为适配器设置编程的方法,系统和设备。在一个实施例中,数据处理系统用基于系统的参数为多个适配器中每一个的多个设置编程。该数据处理系统接着判定是否任何基于系统参数被编程的适配器设置与特定适配器的特定要求不相匹配。如果任何适配器中的一个或更多设置与该适配器的要求不相匹配,这些设置就将用适配器特定参数被重新编程,从而确保使用该适配器的数据处理系统的最优性能。


确信表征本发明的新颖特征在所附权利要求书中陈述。但是,本发明本身以及优选的使用方式、本发明的其它目的和优点,可通过连带着附图参照下面对示范实施例的详细说明得到最好的理解,其中图1为在其中实现本发明的一个数据处理系统的框图;图2描述按照本发明的一个适配器缓冲器管理系统的框图;以及图3描述按照本发明对适配器设置编程的一种典型方法的流程图。
具体实施例参照附图,尤其参照图1所示的在其中可实现本发明的一个数据处理系统框图。数据处理系统100是一台服务器的实例,例如,图1中的服务器104。数据处理系统100可以是一个对称多处理器(SMP)系统,包括连接到系统总线106上的多个处理器101,102,103和104。如,数据处理系统100可以是IBM RS/6000,这是位于纽约州阿芒克的国际商用机器公司的产品,能够在一个网络中充当服务器。也可用一个单处理器系统代替。同时连接到系统总线106上的还有存储器控制器/高速缓存器108,其为多个局部存储器160-163提供一个接口。输入输出总线桥路110连接到系统总线106上并为输入输出总线112提供一个接口。存储器控制器/高速缓存器108和输入输出总线桥路110可以如图所示地集成在一起。一个操作系统,如高级交互执行(AIX)操作系统,位于纽约州阿芒克的国际商用机器公司的一种产品,可以在数据处理系统100中运行。
外围设备互连(PCI)主桥路114连接到输入输出总线112以为PCI局部总线115提供一个接口。若干输入输出适配器120-121经由相应的PCI总线118-119中的一个通过相应的PCI-至-PC桥路116-117中的一个可以连接到PCI总线115。典型的PCI总线实现可以支持4到8个输入输出适配器(即附加连接器的扩展槽)。每个输入输出适配器120-121在数据处理系统100和诸如作为数据处理系统100的客户的其他网络计算机的输入输出设备之间提供一个接口。
一个辅助的PCI主桥路122为一个辅助的PCI总线123提供一个接口。PCI总线123连接到多个PCI-至-PCI桥路124-125上,每一个PCI-至-PCI桥随后都通过相应的PCI总线126-127中的一个连接到相应的输入输出适配器128-129中的一个上。这样,辅助的输入输出设备,如调制解调器或网络适配器,就可以通过PCI输入输出适配器128-129中的每一个得到支持。在这种方式中,数据处理系统100允许连接到多个网络计算机上。PCI-至-PCI桥路116-117,124-125,142-143及132中的每一个连接到一个单独的输入输出适配器。
如图所示,一个存储变换图像适配器148可以经由PCI总线141和144通过PCI主桥路140和PCI-至-PC桥路142连接到输入输出总线112上。一个硬盘150也可以经由PCI总线141和145通过PCI主桥路140和PCI-至-PCI桥路142连接到输入输出总线112上。
一个主桥路130为PCI总线131连接到输入输出总线112上提供一个接口。PCI总线131将PCI主桥路130连接到服务处理器信箱接口和ISA总线访问穿越逻辑194及PCI-PCI桥路132上。ISA总线存取穿越逻辑194转发至PCI/ISA桥路193的PCI访问。NV-RAM存储器连接到ISA总线196上。服务处理器135通过局部PCI总线195耦合到处理器信箱接口194上。
服务处理器135也通过多个的JTAG/I2C总线134连接到处理器101-104上。JTAG/I2C总线134是JTAG/扫描总线(见IEEE 1149.1)和菲立浦I2C总线的组合。然而,另一方面,JTAG/I2C总线134可以仅由菲立浦I2C总线或JTAG/扫描总线所代替。所有主处理器101,102,103和104的SP-ATTN信号都被一起连到服务处理器的中断输入信号上。服务处理器135有它自己的局部存储器191,并可以访问硬件操作面板190。服务处理器135负责存储和报告与服务数据处理系统100中所有受监控项目有关的错误信息。服务处理器135也基于错误的类型和所定义的域值采取行动。
一些或所有的PCI输入输出适配器120-121,128-129,136及148-149可以是小型计算机系统接口(SCSI)和/或串行存储体系结构(SSA)适配器并被连接到SCSI和/或SSA设备上。SSA是一种来自国际商用机器公司的外围接口,可以80M字节/秒的速度传输数据。SSA160将这一速度增加到了160M字节/秒。SSA的环行结构可以使得当一个SSA失灵时其余设备仍工作。SCSI软件能够被映射到SSA上使得现存的SCSI设备可以使用。同时SCSI线缆的距离以英尺度量,SSA线缆在铜下能达到25米和在光纤下可达到2.4千米。
SCSI是一个硬盘接口,其允许7到15个外设连接到单独的一块插入计算机的称为“SCSI主适配器”或“SCSI控制器”的扩展板上。SCSI外设呈菊花链连接在一起,而且所有的设备都有第二端口用以与排列中的下一个设备相连接。单独的SCSI板也可以有两个控制器,其可支持30个外设。
一些或所有的PCI输入输出适配器120-121,128-129,136和148-149用FC-AL(光纤信道仲裁环)技术或IDE适配器也能够实现。FC-AL是一种所有设备都被连接起来成一个环路的光纤信道技术。光纤信道是一种高速传输技术,可用作前端通信网络,后端存储网络或同时用这两种网络。光纤信道在将多个主机连接到专用存储系统的存储区网络(SAN)领域中是一种驱动力。IDE(综合驱动电路)是一种广泛用于把硬盘、光驱和磁带驱动器连接到数据处理系统的硬件接口。
本领域普通的技术人员会理解如图1中所示的硬件是可以变化的。例如,其他外设,诸如光盘驱动器及类似设备,也可以被附加或代替如图所示的硬件。所描述的例子不意味着关于本发明的结构性限制。
现在参照图2,这是一个依据本发明的适配器缓冲器管理系统的方框图。缓冲器管理系统200包括固件202,适配器210-216,系统206及适配器表204。缓冲器管理系统200可以在一个数据处理系统,例如图1的数据处理系统100中实现。给执行固件202的指令可以保存在一个非易失性存储设备,例如图1所示的NVRAM192中,该指令可在一个处理器,例如图1的服务处理器135中执行。适配器210-216中的每一个都包括必须由系统206和缓冲器机构(未示出)编程的适配器设置220-226。适配器210-216中的每一个都可以作为如图1中所示的PCI输入输出适配器120-121,128-129和136中的一个,或图形适配器148或硬盘适配器149中的一个被实现。系统206代表一个数据处理系统,例如图1中的数据处理系统100的其余部件。
系统206包含关于反映该系统所能够处理的最快的,运行最优的相对于适配器210-216的设置的信息。固件202穿过适配器210-216中的每一个并根据系统206决定的最理想的设置来配置适配器设置220-226中的每一个。然后固件参考适配器表204再次穿过适配器210-216以根据从适配器表204得到的对于适配器特定的要求为适配器设置220-226中每一个的特定特征再编程。适配器表204包含当被用于对适配器的参数进行编程时优先于系统要求的适配器要求。
通过最初用系统设置对适配器设置220-226进行设定,确保适配器设置220-226不会被设定到超出系统206能力的区域。如果在参考了适配器表204后判定适配器装置220-226与特定的适配器210-216不匹配,对系统设置来说太大的对于适配器210-216的适配器设置220-226将被减小,以在系统206中得到适配器210-216的更优化的性能。
某些适配器内部缓冲机构与系统参数不匹配。例如,尽管系统200的适配器参数可以要求一个高速缓存线的尺寸为128字节(B),但是为了达到最优性能适配器缓冲器机构的处理能力不能大于64B。然而,当基于适配器的单独要求分别编程时,系统206和适配器210-216中的每一个能以更大的信息通过量工作。
为了帮助理解本发明的优点,考察下面的例子。在一项实验中,在先有技术中一个FC-AL适配器仅仅根据系统的参数被编程。系统参数要求高速缓存线的尺寸为128B。但是,在这样的配置下,FC-AL适配器仅能够以0.25MB/秒的速度运行,并且由于超时错误而产生大量AIX错误登录。通过运用本发明,将设置从128B变为64B,运行速度将增加36000%,达到90MB/秒。这样,通过使用本发明,就可以得到与先有的给适配器设置编程的方法相比优化得多的数据处理系统运行性能。
在本发明其他一些实施例中,一个设备驱动程序可以执行一个测试实例以检测性能参数。固件202接着就根据系统特定的设置运行这个设备驱动程序。该设备驱动程序接着改变系统特定的装置,同时测量它的性能直至找到最优的设置。然后适配器就根据由设备驱动程序决定的优化设置被编程。
那些本领域的普通技术人员将会知道,图2中所述的硬件可以改变。例如,更多的或更少的适配器210-216可以用来代替所述硬件。所述的例子并不意味着是对本发明的结构性限制。例如,适配器的特定要求可以从适配器内部的一个寄存器,从一个适配器传递的标志,或通过一些其他的软件报告机制而不是从适配器表204中获得。
下面参照图3,图3是描述依据本发明对适配器设置编程的一种典型方法的流程图。首先,数据处理系统根据系统参数(步骤302)通过如图2中的固件202那样的系统固件为第一个适配器的设置编程。这些系统的设置代表适配器可能被编程的且与数据处理系统要求相匹配的最大值。下一步需要决定的是是否还有适配器(步骤304)。如果还有适配器,则下一个适配器用基于系统的参数进行编程(步骤302)。
一旦所有的适配器都根据基于系统的参数被编程,固件返回到第一个适配器(步骤306)并且,如果必要的话,基于从诸如图2所示的适配器表204那的适配器表中得到的适配器要求对第一个适配器进行再编程(步骤308)。固件接着判断是否还有适配器(步骤310)并且,如界那样的话,跳到下一个适配器(步骤312),如果必要基于适配器要求对其进行再编程(步骤308)。
一旦每一个适配器都返回过并如果必要被重新编程,处理结束。应当注意,并不是所有的适配器都需要被再编程。而且,还应当注意并不是被再编程的适配器的所有参数都需要重新设置。所以,在本发明的一些实施例中,仅仅那些在适配器设置中与适配器特定的参数相冲突的参数才被重新设置。其它和适配器特定要求相匹配的基于系统参数被编程的适配器设置中的参数无须重新设定。也应当注意,虽然本发明主要是描述关于适配器的缓冲器设置,为达到数据处理系统适配器功能的最优化,其它设置也可以基于适配器特定要求被再编程。
重要的是要注意到,虽然本发明是在完整功能的数据处理系统的环境下说明的但是那些本领域中普通的技术人员将会理解,本发明所述的方式可以以计算机可读指令媒体的形式及各种各样的形式分发,而且,无论实现该分发的信号载体媒体的特定形式是什么,可等同地应用本发明。计算机可读媒体的例子包括可记录型媒体如软盘,硬盘,RAM和CD-ROM以及传输型媒体如数字和模拟通信线路。
对于本发明的描述是为了解释和说明的目的而提供的,但并不是意欲以所公开的方式穷尽本发明或对本发明进行限制。对于本领域普通技术人员来说显然还有许多修改和变型,选择和说明本实施例是为了最好地解释本发明的原理,实际应用以及使本领域其他普通技术人员理解适用于所预想的特定应用的具有各种修改的不同实施例。
权利要求
1.一种数据处理系统中对适配器设置编程的方法,该方法包括用基于系统的参数对多个适配器中的每一个的多个设置编程;对至少一个基于系统的参数与多个适配器中至少一个适配器的特定要求不相匹配之判断作出反应,为多个适配器中该至少一个的适配器再编程多个适配器设置中受影响的设置。
2.如权利要求1所述的方法,其中,至少一个基于系统的参数与适配器特定要求不相匹配的判断包括参考一个适配器表。
3.如权利要求1所述的方法,其中,至少一个基于系统的参数与适配器特定要求不相匹配的判断包括参考多个适配器中至少一个适配器内的一个寄存器。
4.如权利要求1所述的方法,其中,至少一个基于系统的参数与适配器特定要求不相匹配的判断包括接收由多个适配器的至少一个传送的标志。
5.如权利要求1所述的方法,其中,至少一个与适配器特定要求不相匹配的基于系统的参数包括缓冲器大小。
6.一种用于数据处理系统为数据处理系统中的适配器设置编程的置于计算机可读媒体中的计算机程序产品,该计算机程序产品包括用基于系统的参数为多个适配器的每一个的多个设置编程的每一指令;以及对至少一个基于系统的参数与大量适配器中至少一个适配器的特定要求不相匹配之判断作出反应,为多个适配器中该至少一个的适配器再编程多个设置中受影响的设置的第二指令。
7.如权利要求6所述的计算机程序产品,其中,至少一个基于系统的参数与适配器特定要求不相匹配的判断包括参考一个适配器表。
8.如权利要求6所述的计算机程序产品,其中,至少一个基于系统的参数与适配器特定要求不相匹配的判断包括参考多个适配器中至少一个适配器内的一个寄存器。
9.如权利要求6所述的计算机程序产品,至少一个基于系统的参数与适配器特定要求不相匹配的判断包括接收由多个适配器中的至少一个传送的标志。
10.如权利要求6所述的计算机程序产品,其中,至少一个与适配器特定要求不相匹配的基于系统的参数包括缓冲器大小。
11.一种数据处理系统中为适配器设置编程的系统,该系统包括用基于系统的参数为多个适配器中每一个的多个设置编程的第一基础;以及对至少一个基于系统的参数与多个适配器中至少一个适配器的特定要求不相匹配之判断作出反应,为多个适配器中该至少一个的适配器再编程多个设置中受影响的设置的第二装置。
12.如权利要求11所述的系统,其中,至少一个基于系统的参数与适配器特定要求不相匹配的判断包括参考一个适配器表。
13.如权利要求11所述的系统,其中,至少一个基于系统的参数与适配器特定要求不相匹配的判断包括参考多个适配器中至少一个适配器内的一个寄存器。
14.如权利要求11所述的系统,其中,至少一个基于系统的参数与适配器特定要求不相匹配的判断包括接收由多个适配器中的至少一个传送的标志。
15.如权利要求11所述的系统,其中,至少一个与适配器特定要求不相匹配的基于系统的参数包括缓冲器大小。
16.一种为数据处理系统所用的适配器编程的方法,该方法包括用基于系统的参数为适配器内的设置编程;在改变来自基于系统的参数的设置的同时检测适配器的性能,直到确定一个最优设置;并且用所述的最优设置对适配器再编程。
17.一种用于数据处理系统为数据处理系统中的适配器设置编程的置于计算机可读媒体中的计算机程序产品,该计算机程序产品包括用基于系统的参数为一个适配器内的设置进行编程的第一指令;在改变来自基于系统的参数的设置的同时检测适配器的性能,直到确定一个最优设置的第二指令;以及用所述的最优设置对适配器再编程的第三指令。
18.一种为数据处理系统中适配器设置编程的系统,该系统包括用系统基础参数为适配器内的设置编程的第一装置;在改变来自基于系统的参数的设置的同时检测适配器的性能,直到确定一个最优设置的第二装置;以及用所述的最优设置对适配器再编程的第三装置。
全文摘要
提供一种在数据处理系统中为适配器设置编程的方法,系统和设备。在一个实施例中,数据处理系统用基于系统的参数为多个适配器中每一个适配器的多个设置编程。数据处理系统接着判断是否任何基于系统的参数编程的适配器设置与特定适配器的特定要求不相匹配。如果任何适配器中的一个或多个设置与适配器的要求不相匹配,则这些设置用适配器的特定参数重新编程以确保使用该适配器数据处理系统的最优性能。
文档编号G06F9/45GK1340761SQ0112572
公开日2002年3月20日 申请日期2001年8月23日 优先权日2000年8月24日
发明者迈克尔·A·佩雷斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1