对管理控制器的存储器子系统进行初始化的制作方法

文档序号:6352196阅读:127来源:国知局
专利名称:对管理控制器的存储器子系统进行初始化的制作方法
对管理控制器的存储器子系统进行初始化
背景技术
管理控制器是专用于管理主机系统的硬件的一件硬件。主机系统可以是服务器系统、个人计算机或任何其他物理计算系统。物理计算系统典型地包括母板,其为用来容纳诸如存储器、处理器、输入/输出控制器等之类的各种部件的主电路板。管理控制器可以独立于这些部件进行操作以对它们进行管理。为了独立地操作,管理控制器典型地包括其自己的存储器系统和固件。该固件包括用于操作管理控制器的多个指令。该固件还包括用于对管理控制器的存储器子系统进行初始化的指令。对存储器子系统进行初始化指的是使存储器控制器和存储器准备好进行正常操作的过程。每当管理控制器被通电时,必须执行存储器初始化过程。在某些现代物理计算系统中,将用于主机系统的视频控制器与管理控制器集成以节省成本。视频控制器是专用于向诸如监视器的显示设备上呈现用于显示的图形的一件硬 件。视频控制器使用管理控制器所使用的相同存储器子系统。因此,如果管理控制器存储器未被正确地(properly)初始化,则视频控制器将不能运行。当管理控制器被通电时,其执行启动过程。该启动过程特别地包括对管理处理器的存储器子系统进行初始化。在某些情况下,硬件可能易于发生故障。因此,如果由于某种原因,管理控制器未能正确地启动或正确地对存储器子系统进行初始化,则管理控制器存储器子系统将不会运行。由于视频控制器依赖于管理控制器存储器子系统,所以视频控制器也将不能运行。主机系统可以在没有管理控制器的标准功能的情况下操作。然而,主机系统需要使用视频控制器以提供人机交互。


了本文所述的原理的实施例,并且是本说明书的一部分。所示的实施例仅仅是示例,并且不限制权利要求的范围。图I是示出了根据本文所述原理的一个示例的主机系统与管理控制器之间的关系的图。图2是示出了根据本文所述原理的一个示例的管理控制器的说明性部件的图。图3是示出了根据本文所述原理的一个示例的存储器子系统的说明性部件的图。图4是示出了根据本文所述原理的一个示例的用于对存储器控制器和存储器进行初始化的说明性方法的流程图。图5是示出了根据本文所述原理的一个示例的用于使用存储器初始化模块来对存储器进行初始化的说明性方法的流程图。遍及各图,相同的附图标记指示类似但不一定相同的元件。
具体实施例方式如上所述,当管理控制器被通电时,其执行启动过程。该启动过程特别地包括对管理处理器的存储器子系统进行初始化。在某些情况下,硬件可能易于发生故障。因此,如果由于某种原因,管理控制器未能正确地启动或正确地对存储器子系统进行初始化,则管理控制器存储器子系统将不会运行。由于视频控制器依赖于管理控制器存储器子系统,所以视频控制器也将不能运行。主机系统可以在没有管理控制器的标准功能的情况下操作。然而,主机系统需要使用视频控制器以提供人机交互。某些主机系统包括可选只读存储器(ROM)。可选ROM是主机系统的基本输入输出系统(BIOS)能够可选地使用的一件固件。如果管理控制器的固件未能对存储器子系统进行初始化,则可选ROM可以对管理控制器内的存储器子系统进行初始化。然而,此过程导致安全问题,因为为主机系统提供了对管理控制器存储器子系统的存储器控制器的访问。考虑到这些及其他问题,本说明书公开了一种用于在管理控制器的固件未能对存储器子系统进行初始化的情况下对管理控制器的存储器子系统进行初始化的安全方法。根据某些说明性示例,所述管理控制器包括附加存储器初始化模块,诸如具体地被设计成用于对存储器子系统进行初始化的硬件状态机。硬件状态机是被设计成响应于特定条件而执 行特定功能的一件硬件。下面将给出关于硬件状态机的功能的更多细节。使用故障安全(failsafe)启动定时器来确定固件是否成功地对管理控制器的存储器子系统进行初始化。如果存储器子系统未被管理控制器成功地初始化,则故障安全启动定时器可以向硬件状态机发送信号。此信号将提示硬件状态机执行存储器子系统初始化功能。通过使用体现本文所述原理的方法或系统,即使固件未能正确地启动或对管理控制器的存储器子系统进行初始化,与视频控制器集成的管理控制器仍可以向主机系统提供视频控制器功能。此外,未向主机系统提供对存储器子系统的存储器控制器的访问。这允许实现更安全的系统。在以下描述中,出于说明的目的,阐述了许多特定细节以便提供对本系统和方法的透彻理解。然而,对于本领域的技术人员而言将显而易见的是可以在没有这些特定细节的情况下实施本设备、系统和方法。本说明书中的对“实施例”、“示例”或类似语言的提及意指结合该实施例或示例所描述的特定特征、结构或特性被包括在至少那一个实施例中,但不一定在其他实施例中。短语“在一个实施例中”或类似短语在本说明书中的不同位置的各种实例不一定全部指代同一实施例。图I是示出了主机系统(102)与管理控制器(104)之间的关系的图。根据某些说明性示例,使用管理控制器(104)来管理主机系统(102)的各种硬件部件。管理控制器(104)的管理任务可以包括监视主机系统(102)的功率状态、温度以及冷却风扇速度。管理控制器(104)然后可以将此信息报告给主机系统(102)的操作系统。如上所述,有时将视频控制器(106)与管理控制器(104)集成。在此类实施方式中,视频控制器(106)使用管理控制器(104)所使用的相同存储器子系统(110)。存储器子系统(110 )包括存储器控制器和存储器本身两者。此存储器子系统(110)在管理控制器(104)第一次被通电时被初始化。响应于被通电,管理控制器(104)执行对存储器子系统(110)进行初始化的任务。对存储器子系统(110)进行初始化的过程涉及多个步骤,其使得存储器从其断电状态变成可用状态。下面将给出存储器子系统(110)初始化过程的细节。虽然主机系统(102)在没有管理控制器(104)的功能的情况下仍能够进行操作,但主机系统在没有运行的视频控制器(106)的情况下可能不是完全可操作的。如果管理控制器(104)的存储器子系统(110)未被正确地初始化,则视频控制器(106)将不会运行。因此,如果负责对存储器子系统(110)进行初始化的固件未能正确地工作,则视频控制器(106)将不能运行。这是因为视频控制器(106)需要使用已初始化和完全可操作的存储器子系统(110)。如上所述,一些主机系统(102)包括能够对管理控制器(104)的存储器子系统进行初始化的可选ROM (108)。可选ROM (108)是被设计成执行多种任务的一件固件。例如,可选ROM可以对视频控制器(106)进行初始化。还可以使得可选ROM能够对管理控制器(104)的存储器子系统(110)进行初始化。然而,这不是期望的,因为其允许主机系统(102)访问用于管理控制器的存储器的存储器控制器。这打开了可能允许恶意软件危害管理控制器(104)的安全的安全漏洞。图2是示出了管理控制器的说明性部件的图。根据某些说明性示例,管理控制器包括存储器子系统(212)。存储器子系统(212)包括存储器控制器(214)和存储器(216)。存储器子系统(212)典型地被执行来自管理控制器(200)的固件(208)的指令的处理器(218)初始化。存储器子系统(212)被视频控制器(202)以及管理控制器(200)的其他部件(204)使用。管理控制器(200)还包括存储器初始化模块(206)和故障安全启动定时器(210)。 存储器子系统(212)的存储器(216)典型地是易失性形式的存储器。易失性存储器在其被断电时丢失其数据。易失性存储器在其被断电时还丢失其正确地运行所需的设置。这是为什么每当管理控制器(200)被通电时必须将存储器子系统(212)初始化的原因。存储器控制器(214)是与存储器(216)分离的数字电路。存储器控制器(214)负责管理存储器(216)与使用该存储器(216)的部件(204)、包括视频控制器(202)之间的数据流动。如上所述,视频控制器(202)是专用于向诸如监视器的显示设备上呈现用于显示的图形的一件硬件。在正常操作期间,视频控制器(202)从主机系统接收数据和命令。视频控制器(202 )然后与管理控制器的存储器系统相交互以向显示设备上呈现用于显示的图像。该视频控制器同时地读取被呈现到存储器(216)中的帧缓冲器的内容并产生适合于显示的输出。该帧缓冲器被每秒扫描多次以向显示设备上产生稳定的图像。由于视频控制器(202)需要存储器子系统(212)以进行操作,所以该视频控制器(202)不能执行其功能直至存储器子系统(212)被正确地初始化。如上所述,管理控制器(200)上的固件(208)通常负责对存储器子系统(212)进行初始化。固件(208)是被编程到诸如闪速存储器之类的非易失性存储器件上的一组处理器指令。当管理控制器(200)第一次被通电时,固件(208)命令处理器(218)执行启动过程以使管理控制器(200)的部件准备好进行操作。此启动过程包括存储器子系统(212)初始化过程。由于各种原因,硬件有时易于发生故障。在某些情况下,固件(208)和/或处理器(218)可能未正确地执行启动过程,使得存储器子系统(212)未初始化或处于未知状态。根据某些说明性示例,使用故障安全启动定时器(210)来确定存储器子系统(212)是否被正确地初始化。故障安全启动定时器(210)可以在管理控制器(200)已被通电之后等待预定时间段以接收存储器子系统(212)被正确地初始化的确认。如果故障安全启动定时器在预定时间段之后未接收到此类确认,则故障安全启动定时器(210)向存储器初始化模块(206)发送信号。存储器初始化模块(206)然后可以执行存储器子系统初始化过程。根据某些说明性示例,存储器初始化模块(206)是专用于对存储器进行初始化的过程的硬件状态机。硬件状态机是被设计成基于特定输入来产生特定输出或输出序列的一组硬件。在操作期间,硬件状态机前进通过多个“状态”。状态指的是硬件状态机的晶体管及其他数字部件的当前配置。从一个状态到下一个的转移是由指定条件引起的。前进通过状态的过程可以产生输出序列,其可以被设计成执行存储器初始化过程。因此,存储器初始化模块(206)与存储器子系统(212)相交互以执行存储器子系统(212)初始化过程。图3是示出了存储器子系统(300)的说明性部件的图。如上所述,存储器子系统(300)包括存储器控制器(302)和存储器(310)。存储器控制器(302)负责管理存储器(310)与管理控制器(例如200,图2)的其他部件之间的数据流动。根据某些说明性实施例,存储器控制器(302)包括存储器控制器配置寄存器(304)和包括延迟锁定回路(DLL) (306)的终端控制器(308)。·
存储器控制器(302)的配置寄存器(304)用来存储关于存储器(310)的各种特性的信息。这些特性包括但不限于存储器大小、存储器类型、存储器定时设置、存储器映射以及存储器接口特性。在某些情况下,可以由硬件带(hardware strap )来提供这些设置。终端控制器(308)是存储器控制器与存储器(310)之间的物理接口。物理接口包括向存储器控制器(302)和存储器(310)发送电信号和从存储器控制器(302)和存储器(310)接收电信号所需的硬件。终端控制器(308)包括DLL (306)。DLL (306)是用来调整时钟信号的相位的数字电路。由于存储器(310)可以在与使用该存储器(310)的其他设备不同的时钟信号上运行,所以DLL (306)用来使时钟信号同步以允许高效且准确的数据流动。存储器(310)典型地是易失性形式的存储器。易失性形式的存储器一般以比非易失性形式存储器更快的速度进行操作。因此,易失性形式的存储器更适合于其中处理器定期地读和写数据的应用。在一个说明性示例中,管理控制器是动态随机存取存储器(DRAM)。DRAM是通常使用的易失性形式的存储器。DRAM包括每个存储位一个晶体管和一个电容元件。与其他形式的存储器相比,这是少量的部件。因此,DRAM—般具有比其他形式的存储器更高的密度。DRAM的类型的示例包括但不限于同步动态随机存取存储器(SDRAM)、双倍数据速率(DDR)、DDR-2以及DDR-3。DRAM存储器典型地包括一组模式寄存器设置(MRS)配置寄存器(316)。在建立存储器控制器(302)与存储器(310)之间的稳定且可靠的数据通道(318)之前必须对这些配置寄存器进行初始化。放置在MRS配置寄存器(316)中的数据一般由存储器(310)的类型确定。例如,不同类型的DRAM具有不同但已定义的初始化序列,称为MRS序列。这些序列的命令是使用存储器控制器与存储器(310 )之间的地址总线(318 )来发布的。在MRS配置寄存器(316)被编程的情况下,在存储器控制器(302)与存储器(310)之间的数据通道(318)上存在稳定的通信接口。存储器(310)包括地址空间(312)。地址空间(312)定义对应于多个存储器元件的离散值的范围。每个存储器元件存储一个或多个位。可以对地址空间(312)进行划分,每个分区被分配给供特定设备使用。例如,可以将地址空间(312)的一部分划分为供视频控制器(例如202,图2)使用。此分区可以称为视频存储器(314)。
图4是示出了用于对存储器子系统(例如300,图3)进行初始化的说明性过程(400)的流程图。存储器子系统初始化过程包括对存储器控制器和存储器本身两者执行操作。存储器子系统初始化过程在存储器第一次被通电时使其准备好使用。下面描述在存储器子系统初始化过程期间可能发生的一些过程。为了对存储器子系统进行初始化,对存储器控制器配置寄存器进行初始化(方框402),使延迟锁定回路进入复位(reset) (404),对终端控制器进行校准(方框406),使存储器离开复位(方框408),执行MRS序列(方框410),并且开启存储器刷新(方框412)。为了执行这些任务并为这些部件提供正确设置,存储器初始化模块(例如206,图2)可以包括或者可访问包括用于这些存储器子系统部件的默认设置的存储器部件。例如,存储器初始化模块可访问硬件捆绑(hardware strapping)设备。硬件捆绑设备可以提供正确地对存储器子系统进行初始化所需的设置。存储器控制器配置寄存器(例如304,图3)是易失性形式的存储器。因此,它们在管理控制器被断电时丢失其数据。当管理控制器再次被上电时,将需要加载配置寄存器。加载一般指的是将数据从非易失性形式的存储器传送至易失性形式的存储器的过程。然后可 以将与管理控制器存储器特性有关的数据加载到配置寄存器。配置寄存器可以从与存储器初始化模块相关联的非易失性存储器件接收适当的设置。如上所述,使用DLL来使部件之间的时钟信号同步以允许准确且高效的数据传输。当被断电时,DLL处于复位状态。当管理控制器被通电时,需要使DLL离开该复位状态以便执行其功能。DLL可以从存储器初始化模块接收适当的设置。对终端控制器(例如308,图3)进行校准,以便提供存储器控制器与存储器之间的准确且高效的数据流动。例如,存储器控制器与存储器之间的总线线路(bus line)的长度将影响应如何跨越总线线路传送数据。由于正在以高速率传输数据,所以总线线路的长度对于对数据传输进行定时而言是重要的。终端控制器可以从存储器初始化模块接收适当的设置。当存储器被断电时,用来存储一个位的每个晶体管和电容器处于复位状态。当被通电时,需要使晶体管和电容器离开该复位状态以便能够正确地存储数据。然后执行MRS序列。这是由一组MRS配置寄存器(例如316,图3)定义的序列。此序列进一步使存储器子系统准备好使用。在管理控制器存储器(310)是DRAM形式的存储器的情况下,作为存储器子系统初始化过程的一部分来开启该存储器(310)的刷新功能。由于DRAM存储器的数据被存储在电容性元件中,所以必须周期性地刷新数据。这是因为电容性元件将仅在很小时间段内保持其数据。根据DRAM存储器的类型,存储器子系统初始化过程可以包括ZQ校准过程。ZQ校准过程配置用于DRAM存储器的输出驱动器和片内端接(0DT)。此校准步骤可以用来控制DRAM存储器的输出端子的阻抗匹配,使到和来自DRAM存储器的数据的流动最优化。图5是示出了用于对存储器进行初始化的说明性方法的流程图。根据某些说明性不例,该方法(500)包括使管理控制器通电(方框502),管理控制器被与用于主机系统的视频控制器集成在一起。然后确定(判定504)存储器子系统被正确地初始化的确认是否被故障安全启动定时器接收到。如果确实接收到(判定504,是)该确认,则该方法结束。
如果未接收到该确认(判定504,否),则该方法以管理控制器的故障安全启动定时器向硬件状态机发送(方框506)信号;以及硬件状态机对管理控制器的存储器子系统进行初始化(方框508)继续。总而言之,通过使用体现本文所述原理的方法或系统,即使固件未能正确地启动或初始化管理控制器存储器,与视频控制器集成的管理控制器仍可以向主机系统提供视频控制器功能。此外,主机系统不需要可访问存储器控制器。这允许实现更安全的系统。先前的描述仅仅是为了说明和描述所述原理的实施例和示例而给出的。本描述并 不意图是穷举的或使这些原理局限于所公开的任何确切形式。根据以上讲授内容,可以进行许多修改和变更。
权利要求
1.一种用于对管理控制器(200)的存储器子系统(212)进行初始化的方法,该方法包括 用所述管理控制器(200)的附加存储器初始化模块(206),响应于所述存储器子系统(212)未被正确地初始化而对所述管理控制器(200)的所述存储器子系统(212)进行初始化。
2.权利要求I的方法,其中,视频控制器(202)与所述管理控制器(200)集成在一起,所述视频控制器(202)利用所述存储器子系统(212)。
3.权利要求I 2中的任一项的方法,其中,使用故障安全启动定时器(210)来确认所述存储器子系统(212)是否被正确地初始化。
4.权利要求I 2中的任一项的方法,其中,所述存储器初始化模块(206)包括专用于对所述存储器子系统(212 )进行初始化的硬件状态机。
5.权利要求I 2中的任一项的方法,其中,对所述存储器子系统(212)进行初始化包括对所述存储器子系统(216)的存储器控制器(214)的配置寄存器(304)进行初始化。
6.权利要求I 2中的任一项的方法,其中,对所述存储器子系统(212)进行初始化包括对所述存储器子系统(212)的存储器控制器(214)的终端控制器(308)进行校准并使所述存储器控制器(214)的延迟锁定回路(DLL) (306)离开复位。
7.权利要求I 2中的任一项所述的方法,其中,对所述存储器子系统(212)进行初始化包括使所述存储器子系统(212)的存储器(216)离开复位并执行模式寄存器设置(MRS)序列。
8.权利要求I 2中的任一项的方法,其中,对所述存储器子系统(212)进行初始化包括开启存储器刷新。
9.一种管理控制器(200),包括 存储器子系统(212),其包括存储器控制器(214)和存储器(216); 固件(208),其能够对所述存储器子系统(212)进行初始化;以及 存储器初始化模块(206),其在所述存储器子系统(212)未被正确地初始化的情况下对所述存储器子系统(212)进行初始化。
10.权利要求9的管理控制器(200),还包括用以确认所述存储器子系统(212)是否被正确地初始化的故障安全启动定时器(210 )。
11.权利要求9 10中的任一项的管理控制器(200),其中,所述存储器初始化模块(206)包括专用于对所述存储器子系统(212)进行初始化的硬件状态机。
12.权利要求9 10中的任一项的管理控制器(200),其中,为了对所述存储器子系统(212 )进行初始化,所述存储器初始化模块(206 )对所述存储器控制器(214 )和所述存储器(216)的配置寄存器(304、316)进行初始化。
13.权利要求9 10中的任一项的管理控制器(200),其中,为了对所述存储器子系统(212)进行初始化,所述存储器初始化模块(206)对所述存储器控制器的终端控制器进行校准并使所述终端控制器的延迟锁定回路(DLL)离开复位。
14.权利要求9 10中的任一项的管理控制器(200),其中,为了对所述存储器子系统(212)进行初始化,所述存储器初始化模块(206)使存储器(216)离开复位并执行模式寄存器设置(MRS)序列。
15.权利要求9的管理控制器,其中,为了对所述存储器子系统(212)进行初始化,所述存储器初始化模块(206)开启存储器刷新。
16.一种用于对管理控制器(200)的存储器子系统(212)进行初始化的方法,该方法包括 对所述管理控制器(200)通电,所述管理控制器与用于主机系统的视频控制器(202)集成; 用所述管理控制器(200)的故障安全启动定时器(210),确定所述管理控制器的固件(208)是否正确地对所述管理控制器(200)的存储器子系统(212)进行初始化,所述视频控制器(202)需要对所述存储器子系统(212)的使用; 用所述故障安全启动定时器(210),响应于所述固件(208)未能对所述存储器子系统(212)进行初始化而向存储器初始化模块(206)发送信号;以及 用所述存储器初始化模块(206 ),对所述管理控制器(200 )的所述存储器子系统(212)进行初始化。
17.权利要求16的方法,其中,对所述存储器子系统(212)进行初始化包括对所述存储器子系统(212)的存储器控制器(214)的配置寄存器(304)进行初始化。
18.权利要求17的方法,其中,对所述存储器子系统(212)进行初始化包括对所述存储器子系统(212)的存储器控制器(214)的终端控制器(308)进行校准并使所述终端控制器(308)的延迟锁定回路(DLL) (306)离开复位。
19.权利要求16的方法,其中,对所述存储器子系统(212)进行初始化包括使所述存储器子系统(212)的存储器(216)离开复位并执行模式寄存器设置(MRS)序列。
20.权利要求16的方法,其中,对所述存储器子系统(212)进行初始化包括开启存储器刷新。
全文摘要
一种用于对管理控制器(200)的存储器子系统(212)进行初始化的方法包括响应于存储器子系统(212)未被正确地初始化而用管理控制器(200)的附加存储器初始化模块(206)对管理控制器(200)的存储器子系统(212)进行初始化。管理控制器(200)包括存储器子系统(212),其包括存储器控制器(214)和存储器(216);固件(208),其能够对存储器子系统(212)进行初始化;以及存储器初始化模块(206),其在存储器子系统(212)未被正确地初始化的情况下对存储器子系统(212)进行初始化。
文档编号G06F1/24GK102906717SQ201080067095
公开日2013年1月30日 申请日期2010年5月28日 优先权日2010年5月28日
发明者D.F.海恩里希, T.F.埃默森, H.Q.乐 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1