核心逻辑电路、计算机系统及外围设备初始化方法 【技术领域】
本发明涉及一种核心逻辑电路及外围设备初始化方法,尤指应用于计算机系统中的核心逻辑电路及外围设备初始化方法。
背景技术
在现有技术手段中,外设组件互连总线(PeripheralComponent Interconnect bus,以下简称PCI bus)是外设组件连接至计算机系统时常使用的总线,主机板上通常提供多个PCI插槽或接口来让系统建置者利用,以在计算机系统上安装网络卡、音效卡等外设组件互连接口的外设组件附加卡(PCI card)。而为能让外设组件附加卡在操作系统(Operation System)尚未被载入前的计算机系统中可成功被初始化,外设组件附加卡的制造商通常提供相对应的初始化程序码(initialization code)来存放至一PCI扩充只读存储器(PCI Expansion ROM,或称PCI optionROM)中。
而上述PCI扩充只读存储器一开始是设置在外设组件附加卡之上,但是为能节省成本,该PCI扩充只读存储器可能被省去而将其中的初始化程序码(initialization code,也可称为PCI选择只读存储器程序码,PCI option ROM code)改存放到计算机系统中用以存放基本输入输出系统(BIOS)的只读存储器中。于是外设组件附加卡的制造商必须先将PCI选择只读存储器程序码提供给主机板的制造商,用以与基本输入输出系统(BIOS)一并写入主机板上的只读存储器,而于进行基本输入输出系统载入时,一并呼叫到该PCI选择只读存储器程序码以完成外设组件附加卡的初始化。初始化完成以后,该外设组件附加卡即可以在操作系统尚未被载入之前运作以实现一定功能,举例而言,该外设组件附加卡是一PCI网络卡(PCI LAN card),则该PCI网络卡可以实现远程启动操作系统(remote boot)的功能。
但近年来,许多新的外设组件接口被发展出来,例如通用串行总线(USB)、安全数字输入输出(SDIO)以及通用非同步接收器传输总线(UART)等,因此原本以PCI为传输接口的外设组件,都可能改由新的接口来与计算机系统连接。但是新的外设组件接口的初始化程序码皆只能在操作系统被载入时才会一并载入,造成此类外设组件无法在操作系统未被载入的计算机系统上正常运作,造成使用者的困扰。而如何改善上述现有技术手段的缺失,为发展本发明的主要目的。
【发明内容】
本发明为一种核心逻辑电路,应用于具有基本输入输出系统和总线的计算机系统内,该核心逻辑电路包括:第一总线控制器,电连接至第一外围设备;以及第一虚拟总线控制器,电连接至该总线,该第一虚拟总线控制器具有第一外围设备辨识码,而当该计算机系统配置该总线时,该计算机系统根据该第一外围设备辨识码而对应找到该基本输入输出系统中的第一初始化程序码,进而执行该第一初始化程序码而完成该第一外围设备的初始化。
本发明的另一方面为一种计算机系统,其包括基本输入输出系统,总线及外围设备,该外围设备并不电连接至该总线,该计算机系统还包括:总线控制器,电连接至该外围设备;以及虚拟总线控制器,电连接至该总线,该虚拟总线控制器具有外围设备辨识码,而当该计算机系统配置该总线时,该计算机系统根据该外围设备辨识码而对应找到该基本输入输出系统中的初始化程序码,进而执行该初始化程序码以完成该外围设备的初始化。
本发明的又一方面为一种外围设备初始化方法,应用于具有基本输入输出系统与总线的计算机系统,该计算机系统中总线控制器电连接至该计算机系统的外围设备,该外围设备初始化方法包括下列步骤:进行基本输入输出系统载入程序;根据该计算机系统中电连接至该总线的虚拟总线控制器中的外围设备辨识码而对应找到该基本输入输出系统中的初始化程序码;以及执行该初始化程序码而完成该外围设备的初始化。
本发明可使采用新的接口(除PCI传输接口外的接口)与计算机系统连接的外围设备,在计算机系统尚未载入操作系统时,就完成初始化,以实现在载入操作系统之前即能正常运作。在无须改动硬件架构的前提下,大大增强了外围设备的功能。
【附图说明】
图1a是本发明为改善现有手段缺失所发展出来的一计算机系统较佳实施例的功能模块示意图。
图1b是本发明基本输入输出系统程序码中关于第一初始化程序码与第二初始化程序码的格式示意图。
图2是本发明所发展出来可运用在上述外围设备的初始化方法的流程图。
附图中符号的简单说明如下:
计算机系统:1
中央处理单元:10
核心逻辑电路:11
基本输入输出系统程序码:120
只读存储器:12
北桥芯片:111
南桥芯片:112
第一通用串行总线控制器:1121
第二通用串行总线控制器:1122
第一外围设备:191
第二外围设备:192
外设组件互连总线:18
第一虚拟外设组件互连总线控制器:181
第二虚拟外设组件互连总线控制器:182
暂存器组:1810、1820
第一初始化程序码:1201
第二初始化程序码:1202
第一表头:12010
第一PCI扩充只读存储器程序码:12011
第二表头:12020
第二PCI扩充只读存储器程序码:12021
步骤:21~27。
【具体实施方式】
请参见图1a,其是本发明为改善现有手段缺失所发展出来的一计算机系统较佳实施例的功能模块示意图,其中该计算机系统1主要包括有中央处理单元10、核心逻辑电路11以及储存有基本输入输出系统程序码120的只读存储器12,而该核心逻辑电路11通常由一北桥芯片111与一南桥芯片112所构成,而该南桥芯片112上设置有一第一通用串行总线控制器(USBcontroller)1121与一第二通用串行总线控制器(USBcontroller)1122,其上分别连接有一第一外围设备191与一第二外围设备192。这里第一通用串行总线控制器1121和第二通用串行总线控制器1122只是举例说明,第一外围设备191和第二外围设备192还可以是其它传输接口的外围设备,例如安全数字输入输出(SDIO)总线或通用非同步接收器传输总线(UART)等,且第一通用串行总线控制器1121与第二通用串行总线控制器1122还可以是不同的传输接口,这里的通用串行总线(USB)只是举例说明,但并不限于此。
由于在现有技术中通用串行总线只能在操作系统被载入后的计算机系统上才能完成初始化,因此使用通用串行总线接口作为连接接口的第一外围设备191与第二外围设备192在操作系统载入前将无法正常运作。而为能改善此等缺失,本发明于核心逻辑电路11中(本例是于南桥芯片112中,当然也可以是北桥芯片111中)增设有连接至外设组件互连总线(PCI bus)18的多个虚拟外设组件互连总线控制器(PCI bus controller),本例中列出两个,分别是第一虚拟外设组件互连总线控制器181与第二虚拟外设组件互连总线控制器182。而这些虚拟外设组件互连总线控制器并不需要有实际的控制器电路结构,只需要设有可供读写的暂存器组1810、1820即可,而这些暂存器组可被写入代表第一外围设备191与第二外围设备192的辨识码,例如厂商辨识码(Vendor ID)和元件辨识码(device ID)以及类别代码(class code)等,并将相对应第一外围设备191与第二外围设备192的第一初始化程序码1201与第二初始化程序码1202放入基本输入输出系统程序码120之中。在本发明一实施例中,第一虚拟外设组件互连总线控制器181和第二虚拟外设组件互连总线控制器182中的暂存器组1810、1820位于虚拟外设组件互连总线控制器中的可配置空间的表头(configuration space header)内,暂存器组1810、1820可在后门(back door)被设置为可写入。
如图1b所示,其是本发明基本输入输出系统程序码120中关于第一初始化程序码1201与第二初始化程序码1202的格式,其中第一初始化程序码1201由一第一表头12010与第一PCI扩充只读存储器程序码(PCI option ROM code)12011来组成,第二初始化程序码1202由一第二表头12020与第二PCI扩充只读存储器程序码12021来组成,其中第一表头12010与第二表头12020地内容将与暂存器组1810、1820内写入的辨识码相对应。在本发明的一实施方式中,该第一初始化程序码1201与该第二初始化程序码1202由第一外围设备191与第二外围设备192的制造商提供,其中第一表头12010与第二表头12020的内容包括代表第一外围设备191与第二外围设备192的辨识码,例如厂商辨识码(Vendor ID)和元件辨识码(device ID)以及类别代码(classcode)等。因此将外围设备制造商提供的这些辨识码分别写入第一虚拟外设组件互连总线控制器181中的暂存器组1810与第二虚拟外设组件互连总线控制器182中的暂存器组1820中,使暂存器组1810、1820的内容分别与第一表头12010与第二表头12020的内容相对应。
而由于当计算机系统开始执行上电自检程序(POST)后会载入基本输入输出系统程序码120,基本输入输出系统会依照外设组件互连总线配置(PCI bus Configuration)的规格,逐一扫描外设组件互连总线(PCI bus)上连接的外围设备,并根据外围设备的辨识码,在基本输入输出系统程序码120中找到相对应的初始化程序码来完成这些外围设备的初始化。因此,请参见图2,其是本发明所发展出来可运用在上述外围设备的初始化方法的流程图,首先,当载入基本输入输出系统(步骤21)时,便会顺便执行外设组件互连总线配置(PCI bus Configuration)程序,用来进行总线的配置(步骤22),借此判断是否在外设组件互连总线(PCI bus)上扫描到任何外设组件互连总线控制器(PCI buscontroller)的辨识码(步骤23),若无,则直接完成基本输入输出系统的载入(步骤24),并进入到操作系统的载入(步骤25),而若是扫描到有外设组件互连总线控制器(PCI bus controller)的一辨识码时,便可以在基本输入输出系统程序码中找到相对应该辨识码的初始化程序码,举例而言,可扫描该基本输入输出系统,检查该基本输入输出系统中的初始化程序码(例如图1a中的第一初始化程序码1201和第二初始化程序码1202)是否包括该辨识码,如果是则将该初始化程序码与该虚拟外设组件互连总线控制器对应起来(步骤26),进而执行该初始化程序码以成功地对对应该初始化程序码的辨识码但连接至其它总线上的外围设备(例如图1a中的第一外围设备191)进行初始化(步骤27),使其在操作系统载入前便可正常运作。举例而言,由于图1a中的第一虚拟外设组件互连总线控制器(PCI bus controller)181挂在外设组件互连总线(PCI bus)18上,因此第一虚拟外设组件互连总线控制器181会在步骤22和23的外设组件互连总线配置(PCIbus Configuration)程序执行时被扫描到;执行步骤26时,在基本输入输出系统中检查到第一虚拟外设组件互连总线控制器181的暂存器组1810中的辨识码与第一初始化程序码1201的第一表头12010中的辨识码相等,则执行步骤27,执行该第一初始化程序码1201以对第一外围设备191进行初始化。同理,第二虚拟外设组件互连总线控制器182也会在外设组件互连总线配置(PCI bus Configuration)程序执行时被扫描到,则执行与之辨识码对应的该第二初始化程序码1202以对第二外围设备192进行初始化。
由上述说明可知,本发明仅需在核心逻辑电路11中增设暂存器组,进而写入厂商辨识码(Vendor ID)和元件辨识码(deviceID)以及类别代码(class code)等辨识码,实作上可生成一外设组件互连函式(PCI function)作为虚拟外设组件互连总线控制器,用以模拟连接至其它总线上的第一外围设备191或第二外围设备192,由于虚拟外设组件互连总线控制器可在外设组件互连总线配置(PCI bus Configuration)程序执行时被扫描到,如此便可辨认出系统上连接有第一外围设备191或第二外围设备192,进而让第一外围设备191或第二外围设备192成功被初始化,而这些虚拟外设组件互连总线控制器中的暂存器组平时是预设成只读(read-only),但是通过一后门暂存器(back door register)的设定,例如由0改写入1,而让使这些暂存器组转变为可写入(write),进而可以让工程师来配置这些暂存器组的内容。
再举例说明,原本以外设组件互连总线为传输接口的一网络卡,即使为节省接脚而改用通用串行总线为传输接口,根据本发明的技术手段,制造商仅需在核心逻辑电路11中,于外设组件互连总线18上增设一个相对应于该网络卡的一虚拟外设组件互连总线控制器(PCI bus controller),其中具有写入代表该网络卡辨识码的暂存器即可。如此一来,通过本发明的技术手段,主机板制造商在不需大幅更动设计的情况下,便可在操作系统载入前,让网络卡等外围设备可正常运作,进而有效改善现有手段的缺失。本发明的技术手段并不限制外围设备的个数。如果有多个外围设备需要在进入操作系统前完成初始化,即需要选择只读存储器程序码(option ROM code)功能,那么仅需要提供多个虚拟外设组件互连总线控制器就可以达到其功能。
而除了通用串行总线之外,改用其他外设组件接口,例如安全数字输入输出(SDIO)总线或通用非同步接收器传输总线(UART)等的外设组件也可使用本发明手段来完成初始化,而外围设备可以是网络卡、音效卡等各类外设组件。因此本发明可有效改善上述现有技术手段的缺失,达成发展本发明的主要目的。然任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,本发明的保护范围当以本申请的权利要求书所界定的范围为准。