CN100437485C - 用于配置计算机系统的系统和方法 - Google Patents
用于配置计算机系统的系统和方法 Download PDFInfo
- Publication number
- CN100437485C CN100437485C CNB2005100701411A CN200510070141A CN100437485C CN 100437485 C CN100437485 C CN 100437485C CN B2005100701411 A CNB2005100701411 A CN B2005100701411A CN 200510070141 A CN200510070141 A CN 200510070141A CN 100437485 C CN100437485 C CN 100437485C
- Authority
- CN
- China
- Prior art keywords
- configuration
- configuration data
- computer system
- control register
- assembly
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
公开了用于配置计算机系统的系统和方法。一个系统实施例包括存储器(20,70),该存储器存储计算机系统(10,50)的多个组件(14,16,58)的配置数据。配置系统(12,52)用于从该存储器(20,70)访问配置数据并根据该存储器中的对应配置数据对所述多个组件中的至少一个组件进行编程,同时禁止所述计算机系统的至少另一部分的操作。
Description
技术领域
本发明涉及计算机系统配置,具体地说涉及一种用于配置计算机系统各组件的系统和方法。
背景技术
为了让不同的组件与计算机系统通信,要对此类组件的一个或多个功能和电气参数进行配置。例如,作为引导过程的一部分,一个或多个处理器会加载操作系统和其它基本软件,这些基本软件足以实施配置过程,以对所需参数进行编程,由此使能系统中组件之间的互操作性。配置计算机系统中的组件的另一种方法采用专用存储器来对各个组件编程。虽然专用存储器可以实现比基于处理器的软件方法更快的配置,但利用此类专用存储器通常会增加成本和系统复杂性。
发明内容
本发明的一个实施例包括一种系统,它具有存储计算机系统中多个组件的配置数据的存储器。配置系统用于从该存储器访问配置数据并根据该存储器中的对应配置数据对所述多个组件中的至少一个组件进行编程,同时禁止所述计算机系统的至少另一部分的操作。
本发明的另一个实施例可以包括一种计算机系统,这种计算机系统包括至少一个处理器和多个控制寄存器,其中每个控制寄存器具有定义该计算机系统的相关组件的至少一个操作特性的值。存储器存储所述多个控制寄存器中至少一些控制寄存器的配置数据。一种配置系统在与所述至少一个处理器的引导过程相关联的配置模式下操作,作为配置模式的一部分,该配置系统访问所述配置数据,以利用对应的配置数据对所述多个控制寄存器中的至少一个控制寄存器编程。
本发明的另一个实施例可以包括一种系统,该系统包括用于在配置模式期间禁止计算机系统的至少一部分的操作的装置;以及用于在所述配置模式期间从相关联的存储器访问配置数据并根据从该相关存储器访问的对应配置数据对多个控制寄存器编程。
本发明的另一个实施例可以包括一种方法,该方法包括在计算机系统的配置模式期间从存储器获取所述计算机系统的多个组件的配置数据。所述配置模式期间禁止至少一个处理器的操作。利用从所述存储器获得的对应配置数据对所述多个组件中的至少一些组件编程。
附图说明
图1说明用于配置计算机系统的系统的一个实施例。
图2说明用于配置计算机系统的系统的另一个实施例。
图3说明可由配置系统的一个实施例利用的数据结构的一个实例。
图4是说明用于配置计算机系统的方法的一个实施例的流程图。
图5是说明用于配置计算机系统的方法的另一个实施例的流程图。
具体实施方式
图1说明实施配置系统12的计算机系统10的一个实例。配置系统12用于配置计算机系统10。配置系统12可以配置计算机系统10的一个或多个组件的参数,例如电气和/或功能参数。配置系统12可以作为计算机系统10初期启动操作模式的一部分来运行。初期启动模式可以在系统固件在计算机系统10的正常引导过程期间执行之前实施。因为配置系统12在固件执行之前运行以将参数设为合法值,所以可以降低总的系统引导时间并且可以确保系统组件的互操作。
例如,计算机系统10包括一个或多个中央处理单元(CPU)14。当实施一个以上的CPU 14时,这些CPU可以通过处理器总线连接在一起。或者,这些CPU可以任何期望的多处理器体系结构分布在整个计算机系统10中。计算机系统10还包括一个或多个其它组件16,组件16具有与之相关联的一个或多个可编程控制寄存器18(此类关联指示用点线19表示)。例如,控制寄存器18定义至少一些组件16的操作特性,包括它们的电气和功能参数。
为了实现计算机系统10中CPU 14与其它组件16之间的互操作性,根据配置数据来对控制寄存器18编程。具体地说,配置系统12利用预定值对控制寄存器18编程,以提供计算机系统10中其它组件16和CPU 14之间的互操作性和通信。例如,通过将这些参数设为合法值,其它组件16与CPU 14之间的通信可以通过将其它组件16与CPU 14互连的系统总线(未示出)进行。
各控制寄存器18的对应配置数据可以存储在存储器20中。存储器20可以相对于构成计算机系统10的主芯片组在内部或外部实施。存储器20可以一个或多个非易失存储装置的形式实施,所述非易失存储装置编程为包含各控制寄存器18的配置数据。例如,存储器20可以实现为只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM,如闪速存储器)、电池供电的存储器或任何其它可被配置系统12访问的非易失存储介质。例如,配置系统12可以通过高速数据链路来访问存储器20。
要理解,存储器20可以是多用途存储器,包含用于对各控制寄存器18编程的配置数据,也包含用于计算机系统10中其它用途的数据(如引导过程的BIOS指令)。因为可以采用多用途存储器,所以实施计算机系统10的设备成本可比其它类型的系统低。
如上所述,存储器20还可以根据例如PROG(编程)输入信号进行编程。可以由例如计算机系统10的一个或多个CPU 14或另一个接口将PROG输入信号提供给存储器20,以便对来自各种数据源的配置数据编程。例如,系统管理员可以选择性地为一个或多个控制寄存器编入新的配置值,而无需将全部固件映像上载到相应存储器20中。
虽然存储器20被表示为一个功能块,但是本领域技术人员还明白该存储器可以实现为一个或多个非易失存储装置。例如,各控制寄存器18的配置数据可以存储在分布于计算机系统上的不同存储装置中(例如在分布式存储体系结构中),或者存储在一个本地存储装置的对应存储位置中。构成配置数据映像的存储器和数据结构的具体布局可能会根据计算机系统10的类型变化。
配置系统12以至少两种模式操作,其中一种模式(例如配置模式)允许配置系统从存储器20访问配置数据并对控制寄存器18进行编程。在另一种操作模式下,禁止配置系统对控制寄存器编程。配置系统12的操作模式可以随状态信息22改变,所述状态信息22可以设为或编程为定义操作模式的值。
例如,在开机或CPU 14执行的引导过程中某早先时刻,将配置系统12的状态信息22设为与第一操作模式(例如初期启动或配置模式)对应的值。在此第一操作模式下,配置系统12禁止计算机系统10的至少另一部分的操作。例如,配置系统12可以通过向CPU 14提供复位信号来禁止CPU 14的操作。在配置系统12使CPU 14保持在复位状态的同时,推迟CPU 14执行的引导过程的正常进行。由此,有效地将计算机系统10的其它组件16的操作暂停,以便在配置模式期间对控制寄存器18进行配置。
在配置系统12在配置模式期间使CPU 14保持在复位状态的同时,配置系统12从存储器20访问配置数据,进而利用相应的配置数据对控制寄存器18编程。例如,配置数据可以作为含配置数据分组的配置数据映像存储在存储器中。从存储器20获得的每个配置数据分组可以包含映射到相应控制寄存器18的系统地址。因此,预定配置数据的目标可以是用于对计算机系统10中的各相应组件16的期望电气和功能特性编程。通过直接从存储器20对计算机系统10中各组件的电气和/或功能特性编程,而不涉及正在由CPU 14执行的软件,可以显著地减少与计算机系统10相关联的总的引导时间。
在配置系统12已对控制寄存器编程之后,可以对该配置系统的状态信息22进行设置,以使该配置系统在第二操作模式下操作。在第二操作模式下,配置系统12使CPU 14从复位状态释放,以使CPU可以恢复正常操作,包括继续引导过程。例如,可以采用存储器20中的上次访问的(last-to-be-accessed)配置数据分组来将状态信息22重新编程到第二操作模式,由此终止配置过程。响应状态信息22的变更,配置系统12改变(或撤销)复位信号的值,由此释放CPU 14和其它组件16。因此,在配置过程之后,可以继续一个或多个CPU执行的正常引导过程。
因为控制寄存器18已用配置数据编程,所以与这些控制寄存器18相关联的各个接口的电气和功能特性可以在使用这些接口之前进行配置。因此,有利于实现计算机系统10中各组件之间的通信和互操作性。此外,通过直接从存储器20对控制寄存器编程,可以减少总的引导时间。例如,配置系统12减少了对多个重新引导过程的需要,在对时钟比(clock ratio)进行配置以及对计算机系统10上的各子系统进行配置时,可能需要多个重新引导过程。
图2说明包括配置系统52的另一个计算机系统50的实例。配置系统52可进行操作以对与计算机系统50相关联的一个或多个电气或功能参数编程,以便于计算机系统50的操作。在图2的实例中,计算机系统50包括由CPU 1、CPU 2和CPU M表示的一个或多个处理器54,其中M是表示处理器编号的整数。处理器54通过处理器总线56以通信方式连接。处理器总线56可以包括允许处理器54之间进行通信的一个或多个互连(例如交换结构)。处理器总线56还可以实施为提供一个或多个处理器板之间的通信,如多处理器分布式计算机体系结构中的单元板(cell board)。
计算机系统50还包括一个或多个组件58,由组件1-N表示,其中N是表示计算机系统50中的其它组件的编号的整数。组件的实例可包括接口、输入/输出驱动器、接收器、互连装置、存储器、时钟电路、电压源、适配器或计算机系统50中所采用的其它硬件组件。组件58可以通过系统总线60与CPU 54互连。系统总线60可以包括在计算机系统50上提供局部和/或全局通信的一个或多个互连装置的配置。一般来说,系统总线60的配置和通信性质取决于所实施的计算机系统50的类型。
与一个或多个组件58相关联的是系统控制寄存器(例如,也称为控制状态寄存器(CSR)或模式寄存器)62。可以有一个或多个控制寄存器62与每个组件58相关联,包括与系统总线60和计算机系统50中的其它总线结构相关联。控制寄存器62可以利用寄存器的值来编程,如一比特或多比特的控制字,以定义计算机系统50中对应组件的操作模式。例如,控制寄存器62可以利用值来编程,以对与对应组件相关联的电气特性(例如,总线的摆率)进行设置。此外或可选地,控制寄存器62还可以利用值来编程,以对用于配置和同步计算机系统50内的子系统的功能参数进行设置。例如,可以对控制寄存器62编程,以定义时钟比(例如存储器和处理器时钟之间的时钟比);为各组件分配存储器;建立要实施的协议以及设置与计算机系统50中的各组件相关联的其它功能特性。
配置系统52还包括配置控制寄存器64。配置控制寄存器64用于根据控制寄存器中状态信息66的编程值控制计算机系统50的配置模式。例如,状态信息66可以设为定义执行配置过程的配置模式的第一值。状态信息66还可以在配置过程完成之后设为第二值。即,状态信息66可以对应于与计算机系统50相关联的配置模式对应的值(例如控制寄存器64中的单比特值)。配置模式可以结合引导过程的初期阶段来执行,例如在计算机系统50开机(例如,操作的初期启动模式)时执行。
例如,可以向控制寄存器64提供使能信号,如通过对应电路的引脚短接(pin-strapping)操作,进而启用配置系统52的配置模式。当启用配置系统52时,配置控制寄存器64可以向系统中的各组件提供信号,例如将与这些组件相关联的系统寄存器62复位到预先编程的缺省值。控制寄存器62的缺省值通常在制造时已经硬编码。因此,常常需要对寄存器62重新编程,因为计算机系统50的需求常常会变更,可能需要不同的值来执行期望的优化。
在配置模式下,配置控制寄存器64还向一个或多个CPU 54提供控制信号以禁止其操作。例如,配置控制寄存器64可以通过处理器总线56向CPU 54提供复位信号,以在配置模式期间使该CPU保持在复位状态。或者,可以直接将复位信号提供给CPU 54。提供给CPU 54的复位信号使计算机系统保持在复位状态,以允许配置系统52进行配置。提供给CPU 54的复位信号的状态(或值)可以随控制寄存器64中存储的状态信息66的值变化。
作为配置模式的一部分,配置控制寄存器64从相关联的存储器70获取配置数据,以对系统控制寄存器62编程。例如,存储器70包括计算机系统50的配置数据映像72,它对数据分组进行了编程,以将寄存器62设为提供计算机系统5的期望的互操作性和操作。配置数据分组包含用于配置电气和功能参数的值。例如,配置数据映像72可以由计算机系统50的制造商编程。可选地或此外,可以根据提供给存储器70的更新程序信号对配置数据映像72进行完全或部分更新或重新编程。更新信号可以由一个或多个CPU 54和/或以远程方式提供(例如由管理员通过相关联的终端提供)。
存储器70可以实现为多用途非易失性存储器,它还可以存储与计算机系统50的操作相关联的其它数据74。本领域技术人员可以理解,可将各种类型的非易失性存储器用于实现包含配置数据映像72的存储器70。例如,存储器70可以包括与计算机系统50相关联的引导ROM、PROM、EPROM(例如闪式EPROM)或其它电池供电的非易失性辅助存储器。存储器70通过高速存储桥76与计算机系统50连接。例如,高速存储桥76可以实现为向业界标准存储器70提供接口以提供高速数据链路的电路(例如IC芯片),这可以减少与计算机系统50相关联的芯片组引脚数。
链路接口68通过高速存储桥接76从存储器70接收配置数据分组。链路接口68包括对配置数据分组进行验证的验证组件78。例如,验证组件78利用配置数据映像72中的校验和来确认配置数据映像中的配置数据是否有效。例如,如果计算的校验和不正确,则可以将该配置数据丢弃,并采用其它备用装置(例如软件和/或硬件)来对各控制寄存器62编程。假设配置数据正确通过验证,则链路接口68从各数据分组中提取地址和数据字段,以用于对对应的控制寄存器62编程。
在图2的实例中,链路接口68将提取的地址和配置数据提供给地址译码块(例如译码器电路)80。地址译码块80确定所提取的地址和配置数据所要路由到的计算机系统50中的位置。在图2的实例中,组件58和相关联的控制寄存器62构成本地芯片组82的一部分。因此,例如当与所提取的配置数据相关联的地址对应于例如某个本地地址时,地址译码块80可以将译码的地址和配置数据提供给对应的本地芯片组寄存器控制器84。芯片组寄存器控制器84可利用根据与配置数据相关联的地址获得的配置数据对各控制寄存器62编程。例如,芯片组寄存器控制器84根据译码的系统地址经系统总线60将配置数据路由到控制寄存器62。
或者,如果地址译码块80确定地址与非芯片组82本地控制寄存器相关联,并因此不可被芯片组寄存器控制器84访问以用于编程,则地址译码块80可以将提取的地址和配置数据通过对应的互连装置88路由到一个或多个其它寄存器控制器86。例如,互连装置88可以将芯片组82与包含一个或多个其它寄存器控制器86和相关联的控制寄存器(未示出)的一个或多个其它对应的芯片组(未示出)连接。
本领域技术人员可以理解,可以利用一个或多个此类互连装置88和寄存器控制器86来实现更大更复杂的计算机系统,如包含多个单元板的分布式多处理器计算机体系结构。在这种多单元板计算机系统50中,存储器70可以包含适当的配置数据,用以执行整个计算机系统的初期启动操作模式。或者,可以在一个以上的单元板中设置适当的存储器,以存储用于实施配置过程的对应配置数据,如上所述。因此,在存储器70中编程的配置数据映像72可以根据计算机系统50的具体情况伸缩。例如,当扩展计算机系统50以实现更大的多处理器分布式计算机系统时,配置数据映像72还可以通过更新信号进行相应地编程以适应此扩展。
芯片组寄存器控制器84还可以对配置控制寄存器64的状态信息66进行编程,以结束初期启动配置模式。例如,可以在初期启动操作模式完成时,即已经对各控制寄存器62编程以设置计算机系统50中的期望电气和功能参数之后,对状态信息66重新编程。例如,配置数据映像72中的上次访问的数据分组可以包含寻址以写入配置控制寄存器64的状态信息66的配置数据。因为配置数据分组具有芯片组82中配置控制寄存器64的系统地址,所以地址译码块80将译码的地址和对应的配置数据提供给芯片组寄存器控制器84。芯片组寄存器控制器84继而提供对应的配置数据以将状态寄存器信息66编程为某个值,以终止计算机系统50中的初期启动操作模式。根据设为终止初期启动模式操作的状态信息66,配置控制寄存器54可以使CPU 54从复位状态释放。因此,整个计算机系统50可以恢复正常操作,包括CPU 54执行的引导过程的剩余部分。
再例如,状态信息66的第一部分(例如一比特寄存器项)可以根据配置数据来设置,以指示初期启动操作模式已完成。状态信息66中的第二部分(例如,一比特或多比特的项)可以用于驱动复位信号,该复位信号使CPU 54(和系统50的其余部分)在初期启动操作模式期间保持在复位状态。当写入状态信息的第一部分以结束初期启动操作模式时,状态信息66的第二部分也会被修改。
图3说明可以用配置数据映像来编程的存储器结构100的实例,如图中标号102所示。利用配置数据映像102,以对具有对应电气和/或功能参数的多个控制寄存器编程,以允许计算机系统中各组件的互操作。配置数据映像102包括存储在存储器100中不同存储器位置上的多个数据分组104。在存储器结构100内,与配置数据映像102相关联的首先存取的数据分组提供存储器结构100中的起始地址。
起始地址可以对应于存储器结构100中含有要用于对计算机系统中的对应控制寄存器编程的第一数据分组的存储位置。或者,起始地址可以标识(或指向)存储器结构100中的一个或多个其它存储位置,以定位并访问用于对各控制寄存器编程的配置数据。存储器结构100中的起始地址位置可以硬编码到配置系统中(例如在图2的链路接口68中),以允许在配置系统执行初期启动操作模式的同时访问配置数据映像。
本领域技术人员可以理解,存储器结构100可以用一个或多个非易失性存储装置(例如,ROM、PROM、EPROM等)实现。虽然为简化说明,将配置数据映像102的数据分组104描述为占据一系列连续的存储位置,但这些分组104也可以排列成一个或多个存储装置中的连续或非连续的数据。例如,数据分组104可以根据存储器结构100的具体实施方案以任何期望的方式间隔或交错设置。
如图3所示,每个数据分组104包含至少一个控制寄存器系统地址106和配置数据108。控制寄存器系统地址106对应于与要用相关联的配置数据108编程的给定控制寄存器相关联的编码系统地址。即,可以将控制寄存器系统地址106译码(例如通过图2的地址译码块80),以识别要用配置数据108编程的计算机系统中给定芯片或相应组件的系统地址。如上所述,配置数据108可以包含一个或多个值(例如多比特数据字段),以设置通过系统地址106识别的组件的期望的电气和/或功能参数。
存储器结构100可以包含其它数据110,例如可由计算机系统用于其它目的数据,例如正常引导过程的后续部分期间处理器使用的数据。通过将配置数据存储在计算机系统的现有存储器中,便可以以比采用专用独立存储器来存储配置数据的其它方法低的系统成本来存储配置数据,以供配置系统使用。
根据上述的结构和功能特征,参考图4和图5可以更好地理解一些方法。应理解,所示操作在其它实施例中可以不同的顺序进行和/或与其它操作同时进行。再者,实施一种方法可能不需要所示的所有特征。还应理解的是,以下方法可以用硬件(例如作为含多个微处理器的一个或多个集成电路或电路板)、固件(例如作为运行于一个或多个处理器或控制器上的可执行指令)或它们的任何组合来实现。
图4说明方法200的实例。方法200包括在计算机系统的配置模式期间从存储器获取用于计算机系统的多个组件中的至少一些组件的配置数据,如图中标号210所示。该方法还包括在所述配置模式期间禁止至少一个处理器的操作,如中标号220所示。该方法还包括利用从所述存储器中获得的对应配置数据对所述多个组件中的至少一些组件编程。
图5显示用于配置计算机系统的方法250的流程图。该方法起始于步骤260,例如与引导过程结合。例如,该方法可以在开机时或响应对实施该方法250的计算机系统的复位或重新引导时开始(260)。在步骤270,判断配置模式是否已经启用。如果配置模式未启用(否),则该方法可以在步骤270循环,由此使能计算机系统的正常操作。例如,可以根据与使计算机系统上电相关联的使能控制线(例如,作为配置为实施方法250的电路中的引脚短接操作的一部分)来启用配置模式。
如果在步骤270配置模式已启用,则该方法进行到步骤280。在步骤280,禁止至少部分计算机系统的操作。此类操作可以通过例如设置控制寄存器的某一比特,进而使计算机系统的至少另一部分保持在复位状态下来禁止。通过使所述一个或多个处理器保持在复位状态下,可以有效地暂停计算机系统的相当大部分的操作。在步骤290,访问配置映像数据。例如,配置映像数据可以存储在计算机系统的非易失性存储器中,所述非易失性存储器可以位于计算机系统主芯片组内部或外部。配置映像数据可以包含多个控制寄存器的配置数据。这些配置数据可以预先编程,以设置期望的计算机系统的电气和功能参数。
在步骤300,验证该配置数据。例如,在步骤300进行的验证可以针对计算机系统的整个配置映像数据进行。例如,可以根据与存储的配置数据映像相关联的校验和来执行验证。或者,可以对含有配置数据映像的多个数据分组中的每个分组执行验证。为了简洁和便于解释,以下实例假定在300的验证操作针对整个映像数据进行。因此,如果配置数据未通过验证(无效),则该方法从步骤300进行到310,在步骤310中,计算机系统从配置模式中释放出来。
例如,可以释放计算机系统,以便可以利用其它装置来对该计算机系统的系统控制寄存器进行配置。例如,计算机系统中的一个或多个处理器可以在引导过程期间执行代码,以对计算机系统中的各控制寄存器编程。此配置过程通常由一个或多个处理器在引导过程的后续阶段中执行。基于处理器的配置可能涉及从存储器访问可执行的指令,然后执行这些指令以在这些组件与处理器之间提供互操作性和通信。由此,软件配置方法通常使引导过程时间大大增加。
如果在步骤300配置数据通过了验证(有效),则该方法从步骤300进行到步骤320。在步骤320,从存储器获取配置数据分组。例如,可以通过高速多位数据链路访问配置数据分组。在步骤330,对配置数据分组数据中的地址进行译码。译码的地址对应于用于对步骤320获取的数据分组中的配置数据进行路由的系统地址。
在步骤340,利用配置数据对译码的地址标识的控制寄存器编程。如上所述,配置数据可以通过将控制寄存器设为预定值来设置一个或多个电气参数。预定值可以在制造计算机系统时,或者在系统操作期间确定(例如,作为系统优化或基于处理器的配置过程的一部分)。此外,必要时可以修改或更新编程到控制寄存器中的配置数据。控制寄存器可以由与总线或连接寄存器控制器和控制寄存器的其它连接相关联的对应寄存器控制器来编程。
在步骤350,判断用于在步骤340对控制寄存器编程的配置数据分组是否包含要停用配置模式的数据。如果存在其它配置数据(否),则该方法从步骤350进行到360,以获取下一个配置数据分组。该方法从步骤360返回到步骤330,在步骤330中对与下一个配置分组相关联的地址译码。该方法可以在步骤330和360之间循环,直到从存储器中得到所有配置数据分组,并将其译码而后用于对相应控制寄存器编程为止。或者,如步骤360至300的点线所示,每个配置分组可以作为配置模式的一部分单独进行验证。这样,可以识别无效的配置数据分组,以便可以在引导过程的后续部分期间通过其它手段(包括通过软件机制)对对应的控制寄存器编程。或者,可以将无效配置数据分组写入并存储在可被访问以允许后续手动更新的日志文件中。
在利用上次配置数据分组来对计算机系统中的对应控制寄存器编程之后,可以利用配置数据来停用配置模式。响应步骤350停用配置模式(是),继续下一步。该方法从步骤350进行到步骤310以释放计算机系统。当配置过程在步骤370结束时,计算机系统的一个或多个处理器可以恢复执行引导过程的剩余部分。根据方法250配置电气和功能参数,便可以显著地减少总的引导时间。采用现有系统存储器来存储配置数据映像可以额外节省成本。
以上描述的是本发明的实例。当然,不可能对所述组件或方法的每种可以设想的组合进行描述以说明本发明,但本领域技术人员会意识到,本发明的许多其它组合和置换方式都是可行的。因此,本发明旨在涵盖属于所附权利要求的精神和范围内的所有改变、修改和变化。
Claims (9)
1.一种系统,它包括:
存储器(20,70),用于存储计算机系统(10,50)的多个组件(14,16,58)的配置数据(72);
配置系统(12,52),用于从所述存储器访问所述配置数据(72)并根据所述存储器中的对应配置数据对所述多个组件中的至少一个组件进行编程,同时禁止所述计算机系统的至少另一部分的操作;以及
其中所述配置数据的第一部分被写入以便对所述多个组件(16,58)中的所述至少一个组件的控制寄存器(18,62,64)编程,以设置至少一个功能参数,并且所述配置数据的第二部分被写入以便对所述多个组件(16,58)中的所述至少一个组件的控制寄存器(18,62,64)编程,以设置所述多个组件中的所述至少一个组件的电气参数。
2.如权利要求1所述的系统,其特征在于:所述计算机系统(10,50)的所述至少另一部分包括所述计算机系统的至少一个处理器(14,54)。
3.如权利要求2所述的系统,其特征在于:以通信方式连接所述配置系统(12,52)以使所述计算机系统(10,50)的所述至少一个处理器(14,54)在复位模式下操作,从而在所述配置系统执行配置模式期间禁止其操作。
4.如权利要求3所述的系统,其特征在于:所述复位模式使所述至少一个处理器(14,54)在所述配置模式期间推迟正常引导过程。
5.如权利要求1所述的系统,其特征在于:所述配置系统(12,52)还包括地址译码器(80),所述地址译码器(80)根据以与所述配置数据相关联的方式存储在所述存储器(20,70)中的系统地址数据,将所述配置数据路由到寄存器控制器(84),以对多个控制寄存器(18,62,64)中对应的一个控制寄存器编程。
6.如权利要求1所述的系统,其特征在于:所述配置系统(12,52)编程为:访问在所述存储器(20,70)中预先编程的基地址位置上的配置数据,所述配置数据包含与所述多个组件相关联的多个控制寄存器(18,62,64)的配置数据分组。
7.如权利要求1所述的系统,其特征在于还包括:
配置控制寄存器(64),所述配置控制寄存器具有状态信息,用于控制所述配置系统(12,52)实施的配置模式,以便对所述多个组件(16,58)中的至少一个组件的至少一个控制寄存器编程,
其中所述计算机系统(10,50)还包括与所述多个组件相关联的多个控制寄存器(18,62),所述存储器(20,70)包含用于对所述多个控制寄存器中的至少一些寄存器编程的配置数据分组;以及
所述多个控制寄存器之一包括所述配置控制寄存器,所述配置控制寄存器包含可编程以控制所述配置模式的状态信息。
8.如权利要求1所述的系统,其特征在于:所述存储器(20,70)还包括通过数据链路与所述配置系统以通信方式连接的非易失性存储器。
9.一种计算机系统(10,50),包括
至少一个处理器(14,54);
多个控制寄存器(18,62,64),其中每个控制寄存器具有用于定义所述计算机系统的相关组件的至少一个操作特性的值;
存储器(20,70),用于存储所述多个控制寄存器中的至少一些控制寄存器的配置数据;以及
配置系统(12,52),其在与所述至少一个处理器的引导过程相关联的配置模式下操作,作为所述配置模式的一部分,所述配置系统访问所述配置数据,以利用对应的配置数据对所述多个控制寄存器中的至少一个控制寄存器编程;以及
所述配置数据的第一部分被写入以便对所述多个组件(16,58)中的所述至少一个组件的所述多个控制寄存器(18,62,64)中的至少一个编程,以设置至少一个功能参数,并且所述配置数据的第二部分被写入以便对所述多个组件(16,58)中的所述至少一个组件的所述多个控制寄存器(18,62,64)中的至少一个编程,以设置所述多个组件中的所述至少一个组件的电气参数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/838,981 US7519802B2 (en) | 2004-05-05 | 2004-05-05 | System and method for configuring a computer system |
US10/838981 | 2004-05-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1694069A CN1694069A (zh) | 2005-11-09 |
CN100437485C true CN100437485C (zh) | 2008-11-26 |
Family
ID=35240693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100701411A Expired - Fee Related CN100437485C (zh) | 2004-05-05 | 2005-04-30 | 用于配置计算机系统的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7519802B2 (zh) |
CN (1) | CN100437485C (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006107127A (ja) * | 2004-10-05 | 2006-04-20 | Nec Electronics Corp | 半導体集積回路装置 |
EP1715427B1 (en) * | 2005-04-22 | 2008-02-27 | Infineon Technologies AG | A system and a method for constructing and deconstructing data packets |
US20100058274A1 (en) * | 2008-09-04 | 2010-03-04 | Alcatel Lucent | Flexible hardware upgrade mechanism for data communications equipment |
US9448276B2 (en) * | 2012-04-11 | 2016-09-20 | Advantest Corporation | Creation and scheduling of a decision and execution tree of a test cell controller |
US10175993B2 (en) * | 2013-09-26 | 2019-01-08 | Hewlett-Packard Development Company, L.P. | Device configuration prior to initialization of a system |
GB2540341B (en) * | 2015-06-16 | 2019-06-26 | Nordic Semiconductor Asa | Event generating unit |
US11604655B2 (en) * | 2020-11-12 | 2023-03-14 | Ati Technologies Ulc | Sync point mechanism between master and slave nodes |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812867A (en) * | 1993-01-13 | 1998-09-22 | Sgs-Thomson Microelectronics, S.A. | Integrated circuit comprising a microprocessor, a memory and internal configurable peripherals |
US20020108032A1 (en) * | 2001-02-07 | 2002-08-08 | Sam Su | Hardware initialization with or without processor intervention |
CN1398372A (zh) * | 2000-02-10 | 2003-02-19 | 先进微装置公司 | 包含在系统自举时使用非系统内存存储资源的存储器存取控制器的计算机系统 |
US6636962B1 (en) * | 1999-12-10 | 2003-10-21 | Intel Corporation | Self-initializing chipset |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5737748A (en) * | 1995-03-15 | 1998-04-07 | Texas Instruments Incorporated | Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory |
US5859987A (en) * | 1995-09-29 | 1999-01-12 | Intel Corporation | Method and apparatus for providing multiple configuration reset modes for an intelligent bridge |
US6587909B1 (en) | 1996-06-05 | 2003-07-01 | Hewlett-Packard Development Company, L.P. | Installation and removal of components of a computer |
JPH10275080A (ja) | 1997-01-24 | 1998-10-13 | Texas Instr Inc <Ti> | マイクロプロセッサ |
US6073233A (en) * | 1997-10-08 | 2000-06-06 | Cisco Technology, Inc. | Method and apparatus for distributing and accessing configuration registers |
US6167365A (en) * | 1998-02-06 | 2000-12-26 | Texas Instruments Incorporated | Method of initializing CPU for emulation |
US6178501B1 (en) | 1998-04-28 | 2001-01-23 | Micron Technology. Inc. | Method and apparatus for initializing a memory device |
US6654847B1 (en) | 2000-06-30 | 2003-11-25 | Micron Technology, Inc. | Top/bottom symmetrical protection scheme for flash |
US6732263B1 (en) | 2000-06-12 | 2004-05-04 | Altera Corporation | Configuring both a programmable logic device and its embedded logic with a single serialized configuration bit stream |
US6442076B1 (en) | 2000-06-30 | 2002-08-27 | Micron Technology, Inc. | Flash memory with multiple status reading capability |
US6578186B1 (en) * | 2000-12-22 | 2003-06-10 | Juniper Networks | Reset control for systems using programmable logic |
JP4745528B2 (ja) | 2001-05-17 | 2011-08-10 | 富士通セミコンダクター株式会社 | レジスタの設定方法及び半導体装置 |
US7043393B2 (en) * | 2001-08-15 | 2006-05-09 | National Instruments Corporation | System and method for online specification of measurement hardware |
US20030233534A1 (en) * | 2002-06-12 | 2003-12-18 | Adrian Bernhard | Enhanced computer start-up methods |
US7197666B1 (en) * | 2003-03-21 | 2007-03-27 | Xilinx, Inc. | Method for checking the reset function in an embedded processor |
US7213142B2 (en) * | 2003-04-22 | 2007-05-01 | Intel Corporation | System and method to initialize registers with an EEPROM stored boot sequence |
US7080164B2 (en) * | 2003-09-23 | 2006-07-18 | Intel Corporation | Peripheral device having a programmable identification configuration register |
US7219167B2 (en) * | 2003-09-25 | 2007-05-15 | Intel Corporation | Accessing configuration registers by automatically changing an index |
US20050086456A1 (en) * | 2003-09-29 | 2005-04-21 | Yaron Elboim | Addressing scheme to load configuration registers |
US7266680B1 (en) * | 2004-07-29 | 2007-09-04 | Marvell International Ltd. | Method and apparatus for loading configuration data |
-
2004
- 2004-05-05 US US10/838,981 patent/US7519802B2/en not_active Expired - Fee Related
-
2005
- 2005-04-30 CN CNB2005100701411A patent/CN100437485C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812867A (en) * | 1993-01-13 | 1998-09-22 | Sgs-Thomson Microelectronics, S.A. | Integrated circuit comprising a microprocessor, a memory and internal configurable peripherals |
US6636962B1 (en) * | 1999-12-10 | 2003-10-21 | Intel Corporation | Self-initializing chipset |
CN1398372A (zh) * | 2000-02-10 | 2003-02-19 | 先进微装置公司 | 包含在系统自举时使用非系统内存存储资源的存储器存取控制器的计算机系统 |
US20020108032A1 (en) * | 2001-02-07 | 2002-08-08 | Sam Su | Hardware initialization with or without processor intervention |
Also Published As
Publication number | Publication date |
---|---|
US20050251640A1 (en) | 2005-11-10 |
CN1694069A (zh) | 2005-11-09 |
US7519802B2 (en) | 2009-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1938200B1 (en) | Initialization of flash storage via an embedded controller | |
CN100437485C (zh) | 用于配置计算机系统的系统和方法 | |
US7363484B2 (en) | Apparatus and method for selectively mapping proper boot image to processors of heterogeneous computer systems | |
JP5220747B2 (ja) | 不揮発性記憶装置および不揮発性記憶システム | |
US6587916B2 (en) | Microcomputer with built-in programmable nonvolatile memory | |
CN107704285B (zh) | 现场可编程门阵列多版本配置芯片、系统和方法 | |
CN107548492B (zh) | 具有增强指令集的中央处理单元 | |
WO2012100145A1 (en) | Method and apparatus for memory management | |
WO2005094281A2 (en) | Device-level address translation within a programmable non-volatile memory device | |
CN105264506A (zh) | 向内存映射配置分配处理器 | |
CN108319465B (zh) | 对fpga配置数据进行升级的电路及方法 | |
CN107408090A (zh) | 输入/输出控制器访问通道的动态配置 | |
TWI783590B (zh) | 晶片驗證系統及其驗證方法 | |
JP2000065899A (ja) | 半導体装置およびそのデータ書き換え方法 | |
CN106227683A (zh) | 电子设备及信息处理方法 | |
CN110765032A (zh) | 基于系统管理总线接口对i2c存储器进行读写的方法 | |
JP2002073407A (ja) | 不揮発性半導体記憶装置 | |
CN105103142A (zh) | 在计算节点中的代理之间共享固件 | |
JPH07271711A (ja) | コンピュータシステム | |
CN110297726B (zh) | 具有串行存在检测数据的计算机系统及内存模块控制方法 | |
CN114489743A (zh) | 一种片上可编程系统的程序烧写及加载运行方法 | |
JP2006293824A (ja) | 半導体装置 | |
US11899974B2 (en) | Method and apparatus for performing automatic setting control of memory device in predetermined communications architecture with aid of auxiliary setting management | |
CN110941452B (zh) | 一种配置方法、bios芯片和电子设备 | |
US20230266963A1 (en) | Firmware updating method, apparatus and data system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081126 Termination date: 20130430 |