HK1099951B - 用於管理多個熱插拔操作的系統和方法 - Google Patents
用於管理多個熱插拔操作的系統和方法 Download PDFInfo
- Publication number
- HK1099951B HK1099951B HK07102640.3A HK07102640A HK1099951B HK 1099951 B HK1099951 B HK 1099951B HK 07102640 A HK07102640 A HK 07102640A HK 1099951 B HK1099951 B HK 1099951B
- Authority
- HK
- Hong Kong
- Prior art keywords
- hot plug
- ongoing
- plug operation
- hot
- devices
- Prior art date
Links
Description
技术领域
本发明所公开的内容一般涉及信息处理系统,更确切的说,涉及用于管理多个热插拔(hot plug)操作的系统和方法。
背景技术
随着信息值和使用的持续增加,个人和商家正寻找其它方法来处理和存储信息。用户的一个可利用选择就是信息处理系统。信息处理系统通常处理、编辑、存储、和/或通信用于商家、个人、或其它目的的信息或数据,从而允许用户利用信息的价值。由于技术和信息处理需要和规定在不同用户或应用之间变化,因而信息处理系统也可以根据处理的何种信息、如何处理的信息、处理、存储或通信信息量、以及可以处理、存储、或通信该信息的迅速和有效程度而变化。在信息处理系统中的变化允许信息处理系统是通用或者为特定用户或特定使用而配置,诸如金融处理处理、航线预定、企业数据存储、或者全球通信。此外,信息处理系统可以包括各种可配置为处理、存储、和通信信息的硬件和软件组件,并且可以包括一个或多个计算机系统、数据存储系统、和网络系统(Networking System)。
一些包括计算机系统的信息处理系统支持各种热插拔组件、外部设备、或者外围设备的热插拔功能,诸如存储卡、PCI设备、或者磁盘驱动器。热插拔,其常常称作是热交换(hot swap),指的是除去或者增加设备到的系统的处理,而不停机或者“悬挂”该系统。在特定情形下,热插拔可以指当在总线上发生涉及其它设备或者系统组件的处理处理时增加设备到总线或者从总线除去设备。
为了增加热插拔设备至信息处理系统或者从信息处理系统除去热插拔设备,系统可以需要执行热插拔操作,该热插拔操作可以包括一系列包含一定数目的系统管理中断(SMI)的功能。由于该SMI,系统可以典型地一次仅仅处理一个热插拔操作。当同时请求多个热插拔操作时,系统可以悬挂或者可以导致其它错误。
发明内容
因此,出现了用于管理多个热插拔操作的系统和方法的需要,所述操作减少或者消除与接收多个热插拔操作相关的问题。
根据本公开的一个实施方式,提供了一种用于管理信息处理系统中的多个热插拔操作的方法,包含:接收用于启动新热插拔操作的热插拔系统管理中断信号,该系统管理中断信号接收自第一热插拔设备的芯片集,该第一热插拔设备与该信息处理系统连接,该系统管理中断信号由该芯片集产生,以响应在该第一热插拔设备上通过用户输入设备的用户输入;响应于接收来自该第一热插拔设备的该系统管理中断信号,检查与该信息处理系统连接的一个或多个热插拔设备的每个中的芯片集,以确定是否有当前正进行的另一个热插拔设备的另一热插拔操作;作为检查一个或多个其他热插拔设备的结果,在接收来自该第一热插拔设备的用于启动所述新热插拔操作的指令时,标识当前正在进行的另一热插拔设备的另一热插拔操作,所述正进行的热插拔操作包括一个或多个热插拔SMI;以及响应于标识正进行的热插拔操作,限制所述新热插拔操作的启动以便可完成该正进行的热插拔操作。例如,可以禁能不涉及正进行的热插拔操作的热插拔SMI,直至完成正进行的热插拔操作。作为另一实例,根据正进行热插拔操作的完成可以排队并执行新热插拔操作。
根据本说明书的另一实施方式,提供一种用于管理多个热插拔操作的信息处理系统,包含:用于接收热插拔设备的多个热插拔槽;处理器;通信地连接于所述处理器并包括BIOS程序的BIOS存储器;接收装置,接收用于为第一热插拔槽中的第一热插拔设备启动新热插拔操作的热插拔系统管理中断信号,该系统管理中断信号接收自第一热插拔设备的芯片集,该系统管理中断信号由该芯片集产生,以响应在该第一热插拔设备上通过用户输入设备的用户输入;检查装置,响应于接收来自该第一热插拔设备的该系统管理中断信号,检查一个或多个其他热插拔槽的热插拔设备中的芯片集,以确定是否有当前正进行的另一个热插拔设备的另一热插拔操作;标识装置,作为检查一个或多个其他热插拔设备的结果,在接收来自该第一热插拔设备的用于启动所述新热插拔操作的指令时标识当前正在进行的另一热插拔设备的另一热插拔操作,所述正进行的热插拔操作包括一个或多个热插拔SMI;以及限制装置,响应于标识所述正进行的热插拔操作,限制所述新热插拔操作的启动以便可以完成所述正进行的热插拔操作。
根据本公开的再一实施方式,提供了具有计算机可执行指令的计算机可读介质,所述指令用于管理信息处理系统中的多个热插拔操作。计算机可执行指令包括用于标识所接收用于启动新热插拔操作的指令,该新热插拔操作包括一个或多个热插拔系统管理中断(SMI),以及用于标识在接收用于启动第一热插拔操作的指令时当前正进行的另一热插拔操作的指令,该正进行的热插拔操作包括一个或多个热插拔SMI,以及用于响应于标识正进行的热插拔操作而限制新热插拔操作的启动的指令,以便可以完成正进行的热插拔操作。
换言之,本发明提供一种用于管理信息处理系统中的多个热插拔操作的方法:
接收用于启动新热插拔操作的指令,所述新热插拔操作包括一个或多个热插拔系统管理中断;
在接收用于启动第一热插拔操作的指令时,标识当前正进行的另一热插拔操作,所述正进行的热插拔操作包括一个或多个热插拔系统管理中断;以及
响应于标识所述正进行的热插拔操作,限制新热插拔操作的启动以便可以完成所述正进行的热插拔操作。
本发明还提供一种用于管理多个热插拔操作的信息处理系统,包含:
用于接收热插拔设备的多个热插拔槽;
处理器;
通信地连接于所述处理器并包括BIOS程序的BIOS存储器;
其中所述处理器和BIOS程序协作用于:
接收用于为特定热插拔槽中的特定热插拔设备启动新热插拔操作的指令,所述新热插拔操作包括一个或多个热插拔系统管理中断;
在接收用于启动所述第一热插拔操作的指令时标识当前正进行的另一热插拔操作,所述正进行的热插拔操作包括一个或多个热插拔系统管理中断;以及
响应于标识正进行的热插拔操作,限制新热插拔操作的启动以便可以完成正进行的热插拔操作。
此外,本发明还提供一种计算机可读介质,其具有用于管理信息处理系统中的多个热插拔操作的计算机可执行指令,所述计算机可读介质包含:
用于标识所接收的用于启动新热插拔操作的指令的指令,该新热插拔操作包括一个或多个热插拔系统管理中断;
用于标识在接收用于启动第一热插拔操作的指令时当前正进行的另一热插拔操作的指令,正进行的热插拔操作包括一个或多个热插拔系统管理中断;以及
响应标识正进行的热插拔操作以便可以完成正进行的热插拔操作以限制新热插拔操作的启动的指令。
本公开的一个技术优势在于提供了用于管理或者来自同一热插拔设备、或者来自不同热插拔设备的多个热插拔操作的系统和方法。在某些情况下,通过用户按压相关热插拔设备上的注意按钮来请求热插拔操作,诸如以便往信息处理系统上增加或者从信息处理系统上除去热插拔设备。尤其是,这种系统和方法可以管理在另一热插拔操作正进行时所请求的新热插拔操作(或者多个新热插拔操作)以便防止系统悬挂并以允许正进行的热插拔操作不受中断地完成。
例如,在一些实施方式中,当另一热插拔操作正进行时作出的新热插拔操作的请求被系统忽略,以便防止系统悬挂并且以允许正进行的热插拔操作不受中断地完成。在其它实施方式中,当其它热插拔操作正进行时作出的新热插拔操作的请求(或者对多个新热插拔操作的请求)由系统来排列并且在正进行的热插拔操作完成后执行。以这种方式,可以以适当的次序来维护和执行所请求的热插拔操作,而不导致系统悬挂或者其它错误,并且允许正进行的热插拔操作不受中断地完成。
在特定实施方式中,例如,可以根据任适合地准则来排列所排列的热插拔操作,所述准则诸如接收过的各个悬挂热插拔操作的请求的时间,相关热插拔设备的类型,和相关热插拔设备所位于的槽。可以为任一想要的热插拔操作的优先权而配置系统。
鉴于以下说明书和附图,其它技术优点对于本领域技术人员而言将变得显而易见。
附图说明
连同附图通过参照以下描述,可以获得对本实施方式和优势的更加完整的理解,在附图中相同的附图标记表示相同的特征,其中:
图1表示根据说明书的一个实施方式的信息处理系统的实例;
图2表示根据说明书的一个实施方式的位于图1的信息处理系统的热插拔槽中的若干热插拔设备;
图3表示根据本的一个实施方式的实例数据,该实例数据包括表示由图1信息处理系统支持的多个热插拔设备当前状态的值;
图4表示根据本公开的另一个实施方式的实例数据,该实例数据包括表示由图1信息处理系统支持的多个热插拔设备当前状态的值;
图5表示根据本公开的管理多个热插拔操作的图1信息处理系统的方法的一个实施方式;
图6-7D表示根据本公开多个热插拔操作的图1信息处理系统的方法的另一个实施方式。
具体实施方式
通过参照图1至图7D,将最好地理解了优选实施方式及其优势,其中相同的序号用于表示相同和相应的部分。
为了本公开的目的,信息处理系统可包括可操作以计算、归类、处理、发送、接收、检索、生成、切换、存储、显示、显现(manifest)、检测、记录、重现、处理、或利用任何形式用于商业、科学、控制或者其它目的的信息、情报、或者数据的任一工具或者工具的集合。例如,信息处理系统可以是个人计算机,网络存储设备、或者任何适用的设备,并且可以在大小、形状、性能、功能、和价格上变化。信息处理系统可以包括随机存取存储器(RAM),一个或多个处理资源诸如中央处理单元(CPU)或者硬件或软件控制逻辑,ROM,和/或其它类型的非易失性存储器。信息处理系统的其他组件可以包括一个或多个硬盘驱动器,用于与外部设备以及各种输入和输出(I/O)设备(诸如键盘、鼠标、和视频显示器)通信的一个或多个网络端口。信息处理系统也可以包括一个或多个可操作的在各种硬件组件之间发送通信的总线。
图1表示根据本公开的一个实施方式的实例信息处理系统10。正如以下更加详细的讨论的,信息处理系统19可以支持一个或多个热插拔设备12,诸如一个或多个热插拔存储器设备14和/或一个或多个热插拔PCI设备16。信息处理系统10可以管理与该热插拔设备12相关的多个热插拔操作,以便完成热插拔操作而可以不被中断以及不导致信息处理系统10悬挂,否则导致系统错误。
信息处理系统10或者计算机系统优选包括一个或多个微处理器诸如中央处理单元(CPU)18。CPU 18可以包括处理整数操作的处理器20以及处理浮点操作的协处理器22。CPU 18优选地经由前端总线(Frontside Bus)28连接于高速缓冲存储器,诸如L1高速缓冲存储器24和L2高速缓冲存储器25和通常称作北桥芯片集26的芯片集。北桥芯片集26优选将CPU 18经由存储器控制器30连接于存储器。存储器控制器30可以连接于一个或多个热插拔存储器槽32,热插拔存储器槽32被配置以接收一个或多个热插拔存储器设备14。例如,热插拔存储器设备14可以包括任一热可插存储器设备,诸如带有存储器DIMM的存储器卡。
信息处理系统10可以包括其他(非热插)存储器,诸如随机存取存储器(RAM),只读存储器(ROM),动态随机存取存储器(DRAM),快速循环RAM(FCRAM),静态RAM(SRAM),场可编程门阵列(FPGA),可擦除可编程只读存储器(EPROM),电可擦除可编程只读存储器(EEPROM),或者任何其它适用的易失或者非易失存储器设备。
视频控制器36优选地连接于北桥芯片集26和视频存储器38。视频存储器38优选地可操作以存储要在一个或多个显示板40上显示的信息。显示板40可以是主动矩阵或被动矩阵的液晶显示器(LCD),阴极射线管(CRT)显示器或者其它显示技术。在一些使用或者实例的应用中,诸如在便携式信息处理系统实施方式中,视频控制器36也可以连接于集成显示器。
北桥芯片集26充当CPU总线28和连接的总线之间的“桥”。一般地,当从一条总线走向另一条总线时,需要一座桥提供转化(translation)或者改变方向(redirection)到正确总线。典型地,每个总线使用其自己的协议或者规则的集合(通常称作为总线结构)来定义沿着总线的数据或信息的传送。为了防止总线之间引起通信问题,芯片集诸如北桥芯片集26和南桥芯片集42,能够转化和调整各种总线和/或通过其各个桥通信的设备之间的信息交换。
基本输入/输出系统(BIOS)存储器44也优选地连接于与南桥芯片集42连接的系统总线46。FLASH存储器或者其它再可编程、非易失性存储器可以用作BIOS存储器44。BIOS程序50典型地存储在BIOS存储器44中。BIOS程序50优选地包括便于与信息处理系统10设备以及在信息处理系统10设备(诸如键盘52、指示器诸如触摸垫54或者鼠标56、一个或多个其它I/O设备、和位于一个或多个热插拔扩展槽62中的一个或多个热插拔PCI设备16)之间交互的软件。BIOS存储器44也包括存储系统代码,存储系统代码可操作以控制多个基本信息处理系统10操作。
例如,优选地提供通信控制器66,其使能信息处理系统10与通信网络68进行通信,诸如以太网。通信网络68可以包括任一局域网络(LAN),大城市区通信网(MAN)、广域网(WAN)、无线局域网(WLAN)、虚拟专用网(VPN)、企业内部网、因特网、或者便于数据通信的任一适合地结构或者系统。可以利用通信控制器66来形成网络接口以便与连接到通信网络68的其它信息处理系统(没有表示出来)通信。
信息处理系统可以包括扩展卡控制器70,扩展卡控制器70可以连接到所示系统总线46。例如,扩展卡控制器72连接到多个热插拔扩展槽62,热插拔扩展槽62可以配置以接收一个或多个热插拔PCI设备16,诸如任一适合PCI、PCI-X、或者PCI-E卡或者设备。
南桥芯片集42也称作总线接口控制器或者扩展总线控制器,其优选地将扩展总线46连接于扩展总线。在一个实施方式中,扩展总线可以配置为工业标准结构(“ISA”)总线。然而,例如也可以使用其它总线诸如外围组件互联(“PCI”)总线。
中断请求产生器74也可以连接到南桥芯片集42。中断请求产生器74优选地可操作以在预先确定的中断请求线路上发布中断服务请求,以响应请求的接收以从CPU 18发布中断指令。南桥芯片集42优选接口于一个或多个通用串行总线(USB)端口76,CD-ROM(只读光盘存储器)或者多功能数码光盘(DVD)驱动78,集成驱动电子(IDE)硬驱动设备(HDD)80和/或软盘驱动(FDD)82。在一个实例实施方式中,南桥芯片集42经由IDE总线与HDD 80接口。可以与南桥芯片集42接口的其它硬驱动设备例如包括可移动硬驱动、压缩驱动器、CD-ROM(光盘-读/写)驱动、和CD-DVD(光盘-多功能数码光盘)驱动。
实时时钟(RTC)86也可以连接于南桥芯片集42。在信息处理系统10中,实时时钟(RTC)86允许定时的事件或者警报被激活。实时时钟86可以被编程以在预先确定的时间产生警报信号以及执行其它操作。
I/O控制器90,通常称作超I/O控制器,也优选地连接于南桥芯片集42。I/O控制器90优选地接口于一个或多个并行端口92、键盘52,可操作以驱动并与触摸垫54和/或鼠标56、和PS/2端口96接口的设备控制器94。可以利用I/O控制器90使用FLASH存储器98或者其它非易失性存储器。
正如所讨论的,信息处理系统10可以支持一个或多种类型的热插拔设备12,诸如热插拔存储器设备14,热插拔PCI设备16和/或任何其它适用类型的热插拔设备。热插拔设备12可以包括任何能够由热插拔添加到信息处理器系统10或者从其上去掉的设备。通常称之为热交换的热插拔,指的是从系统去掉设备或者增加设备到系统而不停止、或“悬挂、”系统的处理。在特定情形中,热插拔可以指当在总线上发生涉及其它设备或系统组件的处理时,增加设备至总线(例如,诸如总线28或者总线46)或者从总线去掉设备12。
图2是一框图,其表示根据说明书的一个实施方式的信息处理系统10的热插拔槽100中的若干热插拔设备12。在该实施方式中,信息处理系统10包含服务器,该服务器包括由槽100A-100D表示的四个热插拔槽32和/或62,其可操作以接收多达四个热插拔设备12,并如当前容纳三个热插拔设备12A-12C所示。在特定实施方式中,信息处理系统10包含包括四个热插拔存储器槽32的四处理器(4P)服务器,其可操作以接收多达四个热插拔存储器设备14。例如,在其它实施方式中,信息处理系统10可以包含支持并管理用于热插拔设备12(诸如高末端服务器)的任意适用数目和/或类型的多个热插拔操作(诸如在此讨论的)的任一系统。
如图2所示,各个热插拔设备12包括芯片集102,芯片集102产生与热插拔操作关联的系统管理中断(SMI)。如图2所示,系统管理中断(SMI)代码104可以存储在热插拔设备12之一上,诸如热插拔设备12A。例如,SMI代码104可以诸如在服务器10上电期间,从BIOS存储器50被复制到热插拔设备12A。在其它实施方式中或者在镜像模式情形(即,在多个热插拔设备12的内容被镜像、或者相同的情况下)中,SMI代码104可以被存储在多余一个的热插拔设备12上。例如,在其中存储卡A和B的内容被镜像的镜像模式中,SMI代码104可以存储在热插拔设备12A和12B两者上。
各个热插拔设备12也可以包括可操作以被开动的热插拔操作启动设备108,以便为热插拔设备12启动热插拔操作、或项目,诸如增加热插拔设备12至服务器10,或者从服务器10去掉热插拔设备12。在图2所示特定实施方式中,各个热插拔设备12包括可由用户按压的注意按钮108,以便为该热插拔设备12启动热插拔操作。
热插拔操作允许热插拔设备12增加到服务器10或者从服务器10将其除去。例如,为了将热插拔设备12从服务器10除去,用户按压热插拔设备12上的注意按钮108,其启动热插拔操作或者从服务区除去热插拔设备12。一旦热插拔操作已经完成,那么可以将一表示热插拔操作已经完成的指示显示(例如,通过诸如光或者声音)给用户。然后用户可以从服务器10的特定槽100除去热插拔设备12。为了将热插拔设备12添加到服务器10,用户将热插拔设备12插入服务器10的开槽100中,并按压热插拔设备12上的注意按钮108,其启动热插拔操作以将热插拔设备12添加到服务器。一旦热插拔操作完成,那么可以将表示热插拔操作已经完成并且热插拔设备12已经成功添加到服务器10的指示显示(例如,通过诸如光或者声音)给用户。热插拔操作(或者添加或者除去热插拔设备12)可以包括一定数目(例如,几百)的系统管理中断(SMI)。
服务器10可操作以接收用于启动特定热插拔设备12的新热插拔操作的指令,确定在接收用于启动第一热插拔操作的指令时正进行另一热插拔操作,并响应确定正在进行另一热插拔操作,限制新热插拔操作的启动以便可以完成正进行的热插拔操作。
新热插拔操作可以关于与正进行热插拔操作的相同的或者不同的热插拔设备12热插拔设备12。例如,假设用户按压特定热插拔设备12上的注意按钮108,其启动热插拔操作(诸如增加或者除去特定热插拔设备12)。在该热插拔操作完成之前,用户(或者另一用户)再次按压特定热插拔设备12上的注意按钮108。服务器10可以接收通过注意按钮108的二次按压产生的指令,确定当前正为该热插拔设备12进行的热插拔操作,作为响应,限制第二热插拔操作以便可以完成第一热插拔操作。
作为另一实施例,假设用户按压第一热插拔设备12上的注意按钮108,即热插拔设备12A,启动热插拔设备12A的的热插拔操作(诸如增加或者去除热插拔设备12A)。在完成热插拔设备12A的热插拔操作之前,该用户(或者另一用户)按压第二热插拔设备12,,即热插拔设备12B,上的注意按钮108。服务器10可以接收通过按压热插拔设备12B上的注意按钮108所产生的指令,确定当前正为热插拔设备12A进行热插拔操作,并且作为响应,限制热插拔设备12B的热插拔操作的启动以便可以完成热插拔设备12A的热插拔操作。
在以上任一所讨论的实例中,由于另一正进行的热插拔操作而对新热插拔操作的启动的限制可以包括任何适用的功能以便可以成功完成正进行的热插拔操作。例如,如下文参照图5所详细讨论的,对新热插拔操作的启动的限制包括在正进行热插拔操作期间,禁能所有或者特定热插拔设备12的热插拔SMI,以及在正进行的热插拔操作之后重新使能所有或者特定热插拔设备12的热插拔SMI。
如以下参照图6-7所详细讨论的,作为另一实例,限制新热插拔操作的启动包括存储所接收的用于启动新热插拔操作的指令,以便悬挂新热插拔操作,并且在正进行热插拔操作之时或者之后顺序启动悬挂的新热插拔操作。
在一些实施方式中,服务器10可以管理多个热插拔设备12中的各个设备的当前状态,各个热插拔设备12的状态可以表示(a)当前是否正在进行热插拔设备12的热插拔操作和/或(b)当前是否悬挂热插拔设备12的热插拔操作。由多个值中的一个值来表示多个热插拔设备的各个设备的当前状态,这些值可以存储在一个或多个热插拔设备12的SMI代码104中。在特定实施方式中,用于各个热插拔设备23的这种值包括表示当前正进行热插拔设备12的热插拔操作的第一值,表示该热插拔设备12悬挂热插拔操作的第二值,和表示当前既不进行也不悬挂热插拔设备12的热插拔操作的第三值。
图3表示根据本公开的一个实施方式的包括表示由信息处理系统10支持的多个热插拔设备12当前状态154的值152的实例数据150。数据150可以存储在一个或多个热插拔设备12上的SMI代码104中,并且由信息处理系统10的BIOS程序50来管理。在该实施方式中,用于特定热插拔设备12的值“2”表示热插拔设备12当前正进行热插拔操作。值“1”表示热插拔设备12的热插拔操作为悬挂。值“0”表示热插拔设备12的热插拔操作当前既不进行也不悬挂。应当理解的是,值0,1,2仅仅用于举例说明的目的,可以使用任何其它适用值。
当任一存储设备12热插拔操作没有正在进行或者悬挂时,用于各个热插拔设备12的值152为“0”。当用于第一热插拔设备12的热插拔操作正在进行、并用于一个或多个热插拔设备12的热插拔操作悬挂操作时,用于第一存储设备12的值152是“2”并且用于悬挂其热插拔操作的各个存储器设备12的值152是“1”。
操作中,当请求用于第一特定热插拔设备12的热插拔操作时,诸如当用户按压第一特定热插拔设备12上的注意按钮108时,信息处理系统10可以确定另一热插拔设备12的热插拔操作是否正在进行。该确定可以包括检查各个热插拔设备12上的芯片集102以确定各个热插拔设备12上的热插拔状态。如果信息处理系统10确定用于第二特定热插拔设备的热插拔操作正在进行时,那么信息处理系统10可以暂时限制用于第一特定热插拔设备12的所请求的热插拔操作的启动,并利用数据150的值“1”(即,悬挂热插拔操作)更新第一特定热插拔设备12的状态。在完成第二特定热插拔设备12的正进行的热插拔操作之时或者之后,信息处理系统10可以基于数据150标识第一特定热插拔设备12的悬挂热插拔操作,启动悬挂热插拔操作,并利用值“2”(即,正进行热插拔操作)更新第一特定热插拔设备12的状态,并利用值“0”(即,不进行或者悬挂热插拔操作)更新第二特定热插拔设备12的状态。在完成第一特定热插拔设备12的热插拔操作之时或者之后,信息处理系统10可以类似地利用值“0”(即,不进行或者悬挂热插拔操作)更新第一特定热插拔设备12的状态。
图4表示由根据说明书的另一个实施方式的信息处理系统10支持的包括表示多个热插拔设备12当前状态154的值152的实例数据150。在该实施方式中,例如,数据150还表示定时或者优先信息160,其表示悬挂热插拔操作的时间或者其它优先权,以便如果悬挂多于一个的热插拔操作,那么根据一个或多个优先因素顺序执行悬挂热插拔操作,所述因素诸如各个悬挂热插拔操作的时间,热插拔设备12的类型,和热插拔设备12所位于的槽62。
例如,在图4所示的可以用于包括八个热插拔槽62的实施方式的示例性实施方式中,用于特定热插拔设备12的值“0”表示用于热插拔设备12的热插拔操作既不当前进行又不悬挂,值“1”表示热插拔热插拔设备12当前正进行热插拔操作。值“2”至“8”表示(a)用于热插拔设备12的热插拔操作悬挂以及(b)该悬挂热插拔操作相对于其它当前正悬挂热插拔操作的优先权。特别地,数字2-8越低,该悬挂热插拔操作的优先权就越高。因而,将在分配了值“3”的悬挂热插拔操作之前执行分配了值“2”的悬挂热插拔操作,其分配了值“3”的悬挂热插拔操作之前执行分配了值“4”的悬挂热插拔操作,等等。可以随着正进行的热插拔操作的完成而更新这些值,并且启动悬挂热插拔操作。应当理解的是,值“0”至值“8”仅仅用于举例说明,可以使用任何其它适用的值。
例如可以根据一个或多个优先因素,诸如各个悬挂热插拔操作时间、热插拔设备12的类型、和热插拔设备12所位于的槽62,来由信息处理系统10确定分配给各个悬挂热插拔操作的值。例如,在纯FIFO系统中,当热插拔操作正进行时,用于另一热插拔操作的第一接收的请求被分配值“2”,用于另一热插拔操作的下一接收的请求被分配值“3”,等等。作为示例,在信息处理系统10支持热插拔存储器14和热插拔PCI设备16两者的实施方式中,可以给热插拔设备12较高的优先级以便给予用于热插拔设备12的热插拔操作的请求比用于热插拔PCI设备16的热插拔操作的请求更高的优先级,而不管是否首先接收到请求。
图5表示根据本公开的一个实施方式的信息处理系统10管理多个热插拔操作的方法。在该实施方式中,限制用于特定热插拔设备12的新热插拔操作的启动包括在正进行的热插拔操作期间禁能热插拔设备12和/或所有其他热插拔设备12)的热插拔SMI,并在正进行的热插拔操作的完成之后重新使能热插拔设备12和/或所有其它热插拔设备12)的热插拔SMI。
在步骤200中,例如诸如图2所示,若干热插拔设备12被连接到信息处理系统10。在步骤202中,用户按压第一热插拔设备12上的注意按钮108,按钮108产生热插拔SMI信号,热插拔SMI信号传递到BIOS程序50。作为响应,BIOS程序50启动第一热插拔设备12的热插拔操作。例如,用户可以希望增加第一热插拔设备12至信息处理系统10或者从信息处理系统10除去第一热插拔12。在步骤204,响应于启动用于第一热插拔设备12的热插拔操作,信息处理系统10在正进行的热插拔操作期间禁能所有热插拔设备12的热插拔SMI。例如,BIOS程序50可以将命令传达到各个热插拔设备12中的芯片集102以忽略任一热插拔SMI直至进一步通知。
在步骤206,在第一热插拔设备12的热插拔操作期间,用户(或者另一用户)按压或者第一热插拔设备12或者第二热插拔设备12上的注意按钮108,按钮108产生热插拔SMI信号。在步骤208中,基于在步骤204实施的命令,热插拔SMI被忽略。因此,第一热插拔设备12的正进行的热插拔操作继续直至完成。在步骤210,用于第一热插拔设备12的热插拔操作完成(并因此第一热插拔设备12或者增加到信息处理系统10或者准备从信息处理系统10安全除去)。在一些实施方式中,可以将一表示用于第一热插拔设备12的热插拔操作已经完成的指示(例如,诸如通过光或者声音)显示给用户。在步骤212,响应于正进行热插拔操作的完成,信息处理系统10再使能所有热插拔设备12的热插拔SMI。例如,BIOS程序50可以传达命令至各个热插拔设备12中的芯片集102以再使能热插拔SMI。因此,可以再启动用于热插拔存储设备12的热插拔操作。在步骤214,用户按压第二热插拔设备12上的注意按钮108,注意按钮108产生热插拔SMI信号,热插拔SMI信号传达至BIOS程序50。作为响应,在步骤216,BIOS程序50启动第一热插拔设备12的热插拔操作。此外,诸如在上述步骤204中描述的,BIOS程序50传达命令至各个热插拔设备12中的芯片集102以忽略任一热插拔SMI直至进一步通知。
以这种方式,信息处理系统10可以防止多个热插拔操作的重叠(overlap),从而允许正进行的热插拔操作不被中断地完成,从而消除或者减少系统悬挂的可能性。
图6-7举例说明根据本公开的另一实施方式的信息处理系统10管理多个热插拔操作的方法。在该实施方式中,限制新热插拔操作的启动包括存储所接收的启动新热插拔操作的指令以便悬挂新热插拔操作,以及在正进行的热插拔操作之时或者之后,顺序启动悬挂新热插拔操作。
尤其是,信息处理系统10管理各个热插拔设备12的当前状态,该状态由存储在一个或多个热插拔设备12上的SMI代码104中的值来表示。在该实施方式中,诸如参照图3所讨论的,这些值包括第一值“2”表示热插拔操作当前正对热插拔设备12进行,第二个值“1”表示热插拔操作正对热插拔操作12悬挂,以及第三个值“0”表示热插拔操作当前对热插拔设备12既不是正在进行也不悬挂。
在步骤300,例如,若干热插拔设备12A被连接到信息处理系统10,诸如图2所示。如图7所示,当前不为任一热插拔设备12A而进行热插拔操作,并且因此值“0”存储在数据150中各个热插拔设备12A的SMI代码104中。在步骤302,用户按压第一热插拔设备12A上的注意按钮108(诸如增加第一热插拔设备12A或者从信息处理系统10除去第一热插拔设备12A),注意按钮108产生传达到BIOS程序50的SMI信号。在步骤304,作为响应,BIOS程序50检查每个热插拔设备12上的芯片集102以确定(a)SMI信号的原因,和(b)各个热插拔设备12的热插拔状态。如图7B所示,在步骤306,基于该检查,BIOS程序50确定来自第一热插拔设备12A的SMI信号是热插拔SMI,并为各个热插拔设备12更新存储在SMI代码104中的值,包括为第一热插拔设备12A从“0”到“2”更新值。然后在步骤308,BIOS程序50为第一热插拔设备12启动所请求的热插拔操作。
在第一热插拔设备12A的热插拔操作期间,用户(或者另一用户)按压或者第一热插拔设备12A或者第二热插拔设备12B上的注意按钮108。如图6所示,该方法根据是按压了第一热插拔设备12A还是第二热插拔设备12B上的注意按钮108而分为两支。如果按压了第一热插拔设备12A上的注意按钮108,那么方法继续到步骤310。如果按压了第二热插拔设备12B上的注意按钮108,那么方法继续到步骤320。
在步骤310,用户(或者另一用户)按压第一热插拔设备12A上的注意按钮108,注意按钮108产生传达到BIOS程序50的热插拔SMI信号。作为响应,在步骤312,BIOS程序50检查各个热插拔设备12上的芯片集102以确定(a)SMI信号的原因,和(b)各个热插拔设备12的热插拔状态。在步骤314,基于该检查,BIOS程序50确定(a)来自第一热插拔设备12A的SMI信号是热插拔SMI和(b)第一热插拔设备12A已经正在进行热插拔操作。作为响应,在步骤316,BIOS程序50忽略热插拔SMI信号并允许为第一热插拔设备12A继续正进行的热插拔操作。然后在步骤318,一旦对第一热插拔设备12A的热电热插拔操作完成,BIOS程序50就为第一热插拔设备12A的存储在SMI代码104中的值从“2”更新到“0”,从而返回到图7A所示状态。
在步骤320,用户(或者另一用户)按压第二热插拔设备12B上的注意按钮108(诸如增加第二热插拔设备12B或者从信息处理系统10除去第二热插拔设备12B),注意按钮108产生传达到BIOS程序50的SMI信号。在步骤322,作为响应,BIOS程序50检查每个热插拔设备12上的芯片集102以确定(a)SMI信号的原因,和(b)各个热插拔设备12的热插拔状态。在步骤324,基于该检查,BIOS程序50确定(a)来自第二热插拔设备12B的SMI信号是热插拔SMI,并(b)另一热插拔设备12(第一热插拔设备12A)已经在进行热插拔操作。作为响应,如图7C所示在步骤326,BIOS程序50(a)延迟所请求的对第二热插拔设备12B热插拔操作的启动并(b)为各个热插拔设备12更新存储SMI代码104在中的值,包括从“0”到“1”更新第二热插拔设备12B的值。
在步骤328,第一热插拔设备12A的正进行的热插拔操作完成。作为响应,在步骤330,BIOS程序50检查各个热插拔设备12上的芯片集以确定是否存在悬挂的热插拔操作。基于该检查,如图7D所示,在步骤332,BIOS为第二热插拔设备12B标识悬挂的热插拔操作,并为各个热插拔设备12更新存储在SMI代码104中的值,包括为第一热插拔设备12A从“2”到“0”更新值以及为第二热插拔设备12B从“1”到“2”更新值。然后在步骤334,BIOS程序50为第二热插拔设备12B启动所请求的热插拔操作。
以这种方式,在另一热插拔操作正进行时作出的新热插拔操作的请求(多个新热插拔操作的请求)由系统10排列,并且在正进的热插拔操作结束之后执行。因此,所请求的热插拔操作可以以适当的顺序保持(即,不丢失)并执行,而不导致系统悬挂或者其它错误,并允许正进行的热插拔操作不被中断地完成。如上所讨论的,例如,排列的热插拔操作可以根据任一准则来排列,诸如接收到对各个悬挂热插拔操作的时间、相关热插拔设备的类型、和相关热插拔设备所位于的槽。系统10可以被配置为热插拔操作的任一想要的优先顺序。
尽管已经详细描述了所公开的实施方式,应当理解的是,可以在不脱离其精神和范围的情况下,对实施方式作出各种改变、替代和改变。
Claims (12)
1.一种用于管理信息处理系统中的多个热插拔操作的方法,包含:
接收用于启动新热插拔操作的热插拔系统管理中断信号,该系统管理中断信号接收自第一热插拔设备的芯片集,该第一热插拔设备与该信息处理系统连接,该系统管理中断信号由该芯片集产生,以响应在该第一热插拔设备上通过用户输入设备的用户输入;
响应于接收来自该第一热插拔设备的该系统管理中断信号,检查与该信息处理系统连接的一个或多个热插拔设备的每个中的芯片集,以确定是否有当前正进行的另一个热插拔设备的另一热插拔操作;
作为检查一个或多个其他热插拔设备的结果,在接收来自该第一热插拔设备的用于启动所述新热插拔操作的指令时,标识当前正进行的另一热插拔设备的另一热插拔操作,所述正进行的热插拔操作包括一个或多个热插拔系统管理中断;以及
响应于标识所述正进行的热插拔操作,限制所述新热插拔操作的启动以便可以完成所述正进行的热插拔操作。
2.权利要求1所述的方法,其中该用户输入设备包括该第一热插拔设备上的注意按钮。
3.权利要求1所述的方法,其中:
限制所述新热插拔操作以便可以完成所述正进行的热插拔操作的启动的步骤包含:
在所述正进行的热插拔操作期间禁能该第一热插拔设备的热插拔系统管理中断;以及
在所述正进行的热插拔操作完成之后再使能该第一热插拔设备的热插拔系统管理中断。
4.权利要求1的方法,其中限制所述新热插拔操作的启动以便可以完成所述正进行的热插拔操作的步骤包含:
存储所接收的用于所述启动新热插拔操作的系统管理中断信号以便悬挂新热插拔操作;以及
根据所述正进行的热插拔操作的完成,启动所述悬挂新热插拔操作。
5.权利要求1的方法,还包含:
管理多个热插拔设备的各个设备的当前状态,各个热插拔设备的当前状态至少表示是否当前正在为该设备进行热插拔操作,以及是否为该设备悬挂热插拔操作;
其中标识正进行的热插拔操作包含:
访问该热插拔设备的每个中的芯片集,以确定所述多个热插拔设备的状态;以及
根据多个热插拔设备的访问状态确定为第二热插拔设备当前正进行热插拔操作;
其中限制所述新热插拔操作的启动以便可以完成所述正进行的热插拔操作的步骤包含更新与所述新热插拔操作相关的第一热插拔设备的状态以表示为第一热插拔设备悬挂热插拔操作;以及
根据所述正进行的热插拔操作的完成,为第一热插拔设备启动悬挂的热插拔操作。
6.根据权利要求5所述的方法,还包含,根据所述正进行的热插拔操作的完成:
更新该第二热插拔设备的状态以表示对该第二热插拔设备不进行热插拔操作或者悬挂热插拔操作;以及
更新该第一热插拔设备的状态以表示为该第一热插拔设备进行热插拔操作。
7.根据权利要求5所述的方法,其中:
由多个值中的一个值标识多个热插拔设备的每个设备的当前状态,所述值包括表示为该设备当前正进行热插拔操作的第一值,表示为该设备悬挂热插拔操作的第二值,和表示为该设备既不进行热插拔操作也不悬挂热插拔操作的第三值;以及
管理多个热插拔设备的各个设备的当前状态包含为所述热插拔设备适当地更新当前状态。
8.一种用于管理多个热插拔操作的信息处理系统,包含:
用于接收热插拔设备的多个热插拔槽;
处理器;
通信地连接于所述处理器并包括BIOS程序的BIOS存储器;
接收装置,接收用于为第一热插拔槽中的第一热插拔设备启动新热插拔操作的热插拔系统管理中断信号,该系统管理中断信号接收自第一热插拔设备的芯片集,该系统管理中断信号由该芯片集产生,以响应在该第一热插拔设备上通过用户输入设备的用户输入;
检查装置,响应于接收来自该第一热插拔设备的该系统管理中断信号,检查一个或多个其他热插拔槽的热插拔设备中的芯片集,以确定是否有当前正进行的另一个热插拔设备的另一热插拔操作;
标识装置,作为检查一个或多个其他热插拔设备的结果,在接收来自该第一热插拔设备的用于启动所述新热插拔操作的指令时标识当前正进行另一热插拔设备的另一热插拔操作,所述正进行的热插拔操作包括一个或多个热插拔系统管理中断;以及
限制装置,响应于标识所述正进行的热插拔操作,限制所述新热插拔操作的启动以便可以完成所述正进行的热插拔操作。
9.根据权利要求8的信息处理系统,其中所述限制装置包括:
禁能装置,在所述正进行的热插拔操作期间禁能该第一热插拔设备的任一热插拔系统管理中断;以及
再使能装置,在所述正进行的热插拔操作完成之后再使能该第一热插拔设备的热插拔系统管理中断。
10.根据权利要求8的信息处理系统,进一步包括:
存储装置,存储所接收的用于启动新热插拔操作的系统管理中断信号以便新热插拔操作悬挂;以及
启动装置,在正进行热插拔操作完成时,启动所述悬挂的新热插拔操作。
11.根据权利要求8的信息处理系统,进一步包括:
管理装置,用于管理多个热插拔设备的各个设备的当前状态,各个热插拔设备的当前状态至少表示当前是否正为该设备进行热插拔操作以及是否为该设备悬挂热插拔操作;
以及其中该标识装置包括:
访问装置,访问该热插拔设备的每个中的芯片集,以确定多个热插拔设备的状态;以及
确定装置,根据多个热插拔设备的访问状态,确定当前正为第二热插拔设备进行热插拔操作;
其中所述限制装置包括更新装置,更新与所述新热插拔操作相关的该第一热插拔设备的状态,以表示为该第一热插拔设备悬挂热插拔操作;以及
其中所述信息处理系统进一步包括启动装置,用于在正进行的热插拔操作完成时,启动为该第一热插拔设备悬挂的热插拔操作。
12.根据权利要求11的信息处理系统,其中:
由多个值中的一个值标识多个热插拔设备的每个设备的当前状态,所述值包括表示为该设备当前正进行热插拔操作的第一值,表示为该设备悬挂热插拔操作的第二值,和表示为该设备既不进行热插拔操作也不悬挂热插拔操作的第三值;以及
其中所述管理装置包括更新装置,为所述热插拔设备适当地更新当前状态。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/077,443 | 2005-03-10 | ||
| US11/077,443 US7321947B2 (en) | 2005-03-10 | 2005-03-10 | Systems and methods for managing multiple hot plug operations |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1099951A1 HK1099951A1 (zh) | 2007-08-31 |
| HK1099951B true HK1099951B (zh) | 2009-04-09 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7500040B2 (en) | Method for synchronizing processors following a memory hot plug event | |
| CN102067083B (zh) | 对虚拟化环境中的中断结束消息的懒惰处理 | |
| CN100592271C (zh) | 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法 | |
| US7321947B2 (en) | Systems and methods for managing multiple hot plug operations | |
| US10423425B2 (en) | System and method for runtime update of ESRT table for hot-pluggable disks | |
| US7200701B2 (en) | System and method for processing system management interrupts in a multiple processor system | |
| CN100555257C (zh) | 处理页面复制期间的dma操作的存储控制器和方法 | |
| JP5583849B2 (ja) | ポート共有ハードウェアを介した記憶装置への帯域外アクセス | |
| US9372702B2 (en) | Non-disruptive code update of a single processor in a multi-processor computing system | |
| CN114003514A (zh) | 用于处理复制命令的系统和方法 | |
| US20090282210A1 (en) | Partition Transparent Correctable Error Handling in a Logically Partitioned Computer System | |
| CN101405700B (zh) | 错误管理拓扑结构 | |
| US10700869B2 (en) | Access control and security for synchronous input/output links | |
| US20060242453A1 (en) | System and method for managing hung cluster nodes | |
| US20070260769A1 (en) | Computer-implemented method, apparatus, and computer program product for managing DMA write page faults using a pool of substitute pages | |
| CN100589089C (zh) | 处理直接存储器访问请求的设备和方法 | |
| US20070192520A1 (en) | System control unit, system control method, and computer readable medium storing system control program | |
| US10838737B1 (en) | Restoration of memory content to restore machine state | |
| US7552269B2 (en) | Synchronizing a plurality of processors | |
| JP6954864B2 (ja) | 半導体装置およびufsシステム | |
| HK1099951B (zh) | 用於管理多個熱插拔操作的系統和方法 | |
| GB2443097A (en) | Hot plug device with means to initiate a hot plug operation on the device. | |
| IE85184B1 (en) | Systems and methods for managing multiple hot plug operations | |
| US9798479B2 (en) | Relocatable and resizable tables in a computing device | |
| US10613850B1 (en) | Performant and secure storage and retrieval of firmware variables |