CN101751268B - 主板、储存装置及其控制器与开机方法 - Google Patents
主板、储存装置及其控制器与开机方法 Download PDFInfo
- Publication number
- CN101751268B CN101751268B CN 200810186830 CN200810186830A CN101751268B CN 101751268 B CN101751268 B CN 101751268B CN 200810186830 CN200810186830 CN 200810186830 CN 200810186830 A CN200810186830 A CN 200810186830A CN 101751268 B CN101751268 B CN 101751268B
- Authority
- CN
- China
- Prior art keywords
- storage device
- cpu
- central processing
- processing unit
- device controller
- 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.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种主板、储存装置及其控制器与开机方法。在本发明中,当激活电源时,首先通过储存装置控制器传送一加载未完成信号至中央处理单元,以使中央处理单元暂停运作。接着,通过储存装置控制器将配置在储存装置中的系统固件加载。在系统固件加载之后,通过储存装置控制器传送一加载完成信号至中央处理单元,以使中央处理单元开始执行开机程序。
Description
技术领域
本发明是有关于一种计算机系统,且特别是有关于一种具有储存装置控制器的主板、具有系统固件的储存装置与开机方法。
背景技术
一般而言,在个人计算机(Personal Computer,PC)激活的过程中,是由基本输出输入系统(Basic Input/Output System,BIOS)来负责初始化硬件、检测硬件功能以及引导操作系统的动作。BIOS通常会储存于一个断电后内容不会遗失的存储器中,而此具有开机程序的存储器一般称为系统固件(System Firmware)只读存储器(Read Only Memory,ROM)。当个人计算机系统过电或被重置(reset)时,中央处理单元(Central Processing Unit,CPU)所欲执行的第一条指令的地址会被定位到系统固件存储器中,由此让开机程序开始执行。
目前系统固件只读存储器是固定地配置在个人计算机的主板系统上,并且透过低脚位数(Low Pin Count)总线或串行外围接口(Serial Peripheral Interface,SPI)总线连接至控制芯片组的南桥芯片中。由于只读存储器是固定地配置在主板上,因此当其发生故障时,在维修方面则显得相当不便。
发明内容
本发明提供一种储存装置,其分割为两大区域以分别储存系统固件与系统数据,并且配置一储存装置控制器来存取系统固件。
另外,本发明提供一种主板,透过储存装置控制器来读取具有系统固件的储存装置。
此外,本发明提供一种开机方法,以解决中央处理单元读取系统固件所产生的读取延迟问题。
详细地说,本发明提出一种储存装置控制器,包括微控制单元、缓冲器、接口控制模块以及周边装置控制单元。其中,微控制单元耦接至主板的中央处理单元,当供电至储存装置控制器时,微控制单元便会发送加载未完成信号至中央处理单元,以使中央处理单元暂停执行开机程序。缓冲器则耦接至微控制单元。另外,周边装置控制单元耦接至微控制单元、缓冲器与一储存模块。周边装置控制单元是用来将储存模块的系统固件(System Firmware)加载至缓冲器。而接口控制模块耦接至微控制单元、缓冲器与中央处理单元。接口控制模块是用来读取缓冲器中的系统固件。其中,当微控制单元透过周边装置控制单元将系统固件加载至缓冲器之后,微控制单元会发送加载完成信号至中央处理单元,以使中央处理单元透过接口控制模块读取缓冲器的系统固件来执行开机程序。
另外,本发明提出一种主板,包括中央处理单元、储存装置控制器与储存模块。其中,上述储存装置控制器耦接至中央处理器,而储存模块耦接至储存装置控制器,使得中央处理单元利用储存装置控制器与储存模块沟通。当供电至主板时,储存装置控制器便会发送加载未完成信号至中央处理单元,以使中央处理单元暂停执行开机程序。而当储存装置控制器加载系统固件的后,储存装置控制器会发送加载完成信号至中央处理单元,以使中央处理单元读取系统固件来执行开机程序。
此外,本发明提出一种储存装置,包括具有系统固件的储存模块与储存装置控制器。上述储存装置控制器分别耦接至一中央处理器与储存模块。当供电至储存装置时,储存装置控制器便会发送加载未完成信号至中央处理单元,以使中央处理单元暂停执行开机程序。当储存装置控制器加载系统固件之后,储存装置控制器会发送加载完成信号至中央处理单元,以使中央处理单元读取系统固件来执行开机程序。
在本发明的一实施例中,上述储存装置控制器包括微控制单元、缓冲器、接口控制模块以及周边装置控制单元。其中,微控制单元耦接至主板的中央处理单元,用以发送加载未完成信号或加载完成信号至中央处理单元,以使中央处理单元暂停或开始执行开机程序。缓冲器则耦接至微控制单元。周边装置控制单元耦接至微控制单元、缓冲器与储存模块。周边装置控制单元是用来将储存模块的系统固件加载至缓冲器。而接口控制模块耦接至微控制单元、缓冲器与中央处理单元。接口控制模块是用来读取缓冲器中的系统固件。
在本发明的一实施例中,上述微控制单元更包括一控制针脚,以利用控制针脚来传送加载未完成信号或加载完成信号。其中,控制针脚与中央处理单元的重置(reset)针脚耦接至逻辑与门(Logic AND Gate)的输入端,且逻辑与门的输出端耦接至中央处理单元。
在本发明的一实施例中,上述接口控制模块包括固件接口控制单元。而固件接口控制单元具有固件地址缓存器以及固件数据缓存器。固件地址缓存器是用来暂时存放中央处理单元所发送的读取要求所载送的地址,使得固件接口控制单元依据此地址自缓冲器中读取系统固件。而固件数据缓存器则是用来暂时存放依据上述地址所读取到的系统固件。
在本发明的一实施例中,上述接口控制模块更包括储存装置接口控制单元。储存装置接口控制单元耦接至微控制单元与中央处理单元。当中央处理单元执行系统固件而将储存装置接口控制单元初始化之后,中央处理单元便可透过储存装置接口控制单元来存取储存模块。
在本发明的一实施例中,上述固件接口控制单元可透过系统固件传输接口耦接至中央处理单元,而储存装置接口控制单元则可透过系统数据传输接口耦接至中央处理单元。上述系统固件传输接口例如为串行外围接口(Serial PeripheralInterface,SPI)总线、工业标准架构(Industry Standard Architecture,ISA)总线以及低脚位数(Low Pin Count,LPC)总线其中之一。而系统数据传输接口例如为周边控制器接口(Peripheral Controller Interface,PCI)总线、PCI Express总线、平行高阶附挂技术(Parallel Advanced Technology Attachment,PATA)总线以及串行高阶附挂技术(Serial Advanced Technology Attachment,SATA)总线其中之一。
在本发明的一实施例中,上述系统固件包括开机区块程序代码与运行区块程序代码。而中央处理单元是透过固件接口控制单元读取开机区块程序代码,以至少初始化储存装置接口控制单元、控制芯片组与主板的主要存储器。之后,中央处理单元便可透过储存装置接口控制单元读取运行区块程序代码,以执行后续的开机程序。
从另一观点来看,本发明提出一种开机方法,适用于一计算机系统。此计算机系统具有中央处理单元、储存装置控制器以及储存模块,而储存装置控制器耦接在中央处理单元与储存模块之间。在此开机方法中,当供电至计算机系统时,首先通过储存装置控制器传送一加载未完成信号至中央处理单元,以使中央处理单元暂停执行开机程序。接着,通过储存装置控制器将配置在储存模块中的系统固件加载。在系统固件加载之后,通过储存装置控制器传送一加载完成信号至中央处理单元,以使中央处理单元开始执行开机程序。
在本发明的一实施例中,上述系统固件包括多个程序区段(Code Segment),而在上述开机方法中,通过储存装置控制器将配置在储存模块中的系统固件加载的步骤,包括将上述系统固件加载至该储存装置控制器内的一缓冲器,且可依据中央处理单元的第一读取要求所载送的第一地址,将上述程序区段其中的一第一程序区段加载至缓冲器。
承上,在传送加载完成信号至中央处理单元的步骤之后,更可通过储存装置控制器接收中央处理单元的第二读取要求,以判断第二读取要求所载送的第二地址是否落在第一程序区段中。当第二地址未落在第一程序区段时,由储存装置控制器将第二地址对应的第二程序区段加载至缓冲器。
在本发明的一实施例中,上述开机方法更可将上述加载完成信号与用来控制中央处理单元的重置信号进行逻辑与运算,据以控制中央处理单元的运作与否。
在本发明的一实施例中,上述在传送加载完成信号至中央处理单元的步骤之后,可透过储存装置控制器的固件接口控制单元来读取缓冲器中的系统固件,以执行开机程序,进而将储存装置控制器的储存装置接口控制单元与计算机系统的主要存储器及控制芯片组初始化。
基于上述,本发明将系统固件与系统数据整合至同一个储存模块中,据此,可节省主板中原本用来放置系统固件只读存储器的空间,亦可节省额外制作系统固件只读存储器的成本。此外,更实作一个接口控制模块,让中央处理单元能够经由此接口控制模块读取储存模块中的系统固件,并且解决了读取延迟问题。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是依照本发明一实施例所绘示的计算机系统的方块图。
图2是依照本发明一实施例所绘示的储存模块的方块图。
图3A是依照本发明一实施例所绘示的储存装置控制器的方块图。
图3B是依照本发明一实施例所绘示的具有储存装置控制器的储存装置的方块图。
图4是依照本发明一实施例所绘示的计算机系统的局部方块图。
图5是依照本发明一实施例所绘示的开机方法的流程图。
图6是依照本发明一实施例所绘示的BIOS的局部程序代码示意图。
图7是依照本发明一实施例所绘示的存取数据的方法流程图。
图8是依照本发明另一实施例所绘示的计算机系统的方块图。
具体实施方式
图1是依照本发明一实施例所绘示的计算机系统的方块图。请参照图1,计算机系统100包括中央处理单元(CPU)110、控制芯片组120、储存装置130以及主要存储器(Main Memory)160。其中,中央处理单元110、控制芯片组120与主要存储器160配置于主板170中。控制芯片组120分别耦接至中央处理单元110与主要存储器160。在本实施例中,主要存储器160例如为动态随机存取存储器(Dynamic Random Access Memory,DRAM)。
中央处理单元110是用来执行在计算机系统100上的指令,藉以控制计算机系统100的运作。
控制芯片组120是用以将中央处理单元110电性连接至计算机系统100上的其它组件,例如,储存装置130与主要存储器160。在本实施例中,控制芯片组120为整合北桥芯片(North Bridge Chip)与南桥芯片(South Bridge Chip)的功能的单一芯片所实作。而在其它实施例中,控制芯片组120亦可包括北桥芯片与南桥芯片两种独立芯片。
储存装置130包括储存模块140与储存装置控制器150。在本实施例中,储存模块140是利用非易失性存储器(Non-Volatile Memory,NVM)来实作,以同时储存系统固件与系统数据。以下列举一例来说明储存模块140。
图2是依照本发明一实施例所绘示的储存模块的方块图。请参照图2,储存模块140包括固件区域141与数据区域143。固件区域141是用来储存一系统固件145。在此,系统固件145例如为基本输入输出系统(Basic Input/Output System,BIOS),或者为统一可延伸固件接口(Unified Extensible Firmware Interface,UEFI)。而数据区域143则是用来储存系统数据,例如:操作系统、驱动程序以及文件系统等。
而上述系统固件145更可区分为开机区块程序代码(Boot Block Code)147与运行区块程序代码(Runtime Block Code)149两大区块。开机区块程序代码147是负责设定计算机系统100开机的初始值、硬件的初始化设定。而运行区块程序代码149则是供计算机系统100运作来使用,用来控制硬设备的效能与其它功能。
一般而言,开机区块程序代码147不需解压缩即可直接执行。而运行区块程序代码149则需在解压缩之后,方能执行。因而,在开机区块程序代码147中至少具备将控制芯片组120与主要存储器160初始化的功能,以在开机区块程序代码147直接执行完毕之后,将运行区块程序代码149传送至主要存储器160且进行解压缩,以加快系统固件145的执行速度。
返回图1,储存装置控制器150耦接在控制芯片组120与储存模块140之间,使得中央处理单元110透过储存装置控制器150来读取储存模块140中的系统固件145。以下再举一例来说明储存装置控制器150的内部构件。
图3A是依照本发明一实施例所绘示的储存装置控制器的方块图。请同时参照图1及图3A,储存装置控制器150包括接口控制模块300、微控制单元310、缓冲器320以及周边装置控制单元330。
其中,微控制单元310耦接至主板170的中央处理单元110,其负责接口控制模块300、缓冲器320以及周边装置控制单元330,并且透过内部数据总线380负责数据交换的动作。
缓冲器320耦接至微控制单元310,其提供了接口控制模块300进行数据搬移时,暂时存放交换数据的空间。另外,在本实施例中,更可将缓冲器320分成两个部分,其中一部分暂时存放微控制单元310所搬移的系统固件,而另一部分则是供微控制单元310暂时存放所搬移的系统数据。
周边装置控制单元330耦接至微控制单元310、缓冲器320与储存模块140,使得微控制单元310能够透过周边装置控制单元330将储存模块140的系统固件加载至缓冲器320。在此,周边装置控制单元330泛指支持所有记忆卡的接口控制单元或是直接存取闪存(Flash Memory)的接口控制单元。
而接口控制模块300耦接至微控制单元310、缓冲器320与中央处理单元110,接口控制模块300是用来读取缓冲器320中的系统固件,以执行开机动作。
以下即以具有储存装置控制器150的储存装置来详细说明储存装置控制器150。
图3B是依照本发明一实施例所绘示的具有储存装置控制器的储存装置的方块图。请同时参照图1及图3B,在本实施例中,接口控制模块300包括固件接口控制单元340以及储存装置接口控制单元350。然,在其它实施例中,接口控制模块300亦可仅为固件接口控制单元340。
此外,在本实施例中,周边装置控制单元330中更具有一数据地址映像缓存器(Address Mapping Register)331与固件地址映像缓存器333,以分别记录系统数据与系统固件的逻辑地址与实体地址之间的映像关系。
固件接口控制单元340耦接至微控制单元310与缓冲器320,并且经由控制芯片组120耦接至中央处理单元110。固件接口控制单元340包括固件地址缓存器341与固件数据缓存器343。固件地址缓存器341是用来暂时存放中央处理单元110所发送的读取要求所载送的地址,使得固件接口控制单元340依据此地址自缓冲器320中读取系统固件。而固件数据缓存器343则是用来暂时存放依据上述地址所读取到的系统固件。
另外,固件接口控制单元340更可透过系统固件传输接口360而经由控制芯片组120耦接至中央处理单元110。也就是说,固件接口控制单元340可用来将经由系统固件传输接口360传送过来的读取要求译码,并依照此读取要求所载送的地址,来进行系统固件的存取动作。在此,系统固件传输接口360例如为串行外围接口(Serial Peripheral Interface,SPI)总线、工业标准架构(Industry StandardArchitecture,ISA)总线以及低脚位数(Low Pin Count,LPC)总线其中之一。
储存装置接口控制单元350耦接至微控制单元310与缓冲器320,并且经由控制芯片组120耦接至中央处理单元110。当中央处理单元110透过固件接口控制单元340读取系统固件而将储存装置接口控制单元350初始化之后,即可透过储存装置接口控制单元350来存取储存模块140。
储存装置接口控制单元350更包括任务缓存器351与固件加载接口353。任务缓存器351用来提供一组接口,以供计算机系统100的软件对储存模块140的数据区域做写入、读取及控制的功能。而固件加载接口353功能与任务缓存器351类似,是用以提供一组硬件组态控制接口,让软件可以透过此一接口写入或读取存放在储存模块140内的系统固件。
另外,储存装置接口控制单元350亦可透过系统数据传输接口370而经由控制芯片组120耦接至中央处理单元110。系统数据传输接口370例如为周边控制器接口(Peripheral Controller Interface,PCI)总线、PCI Express总线、平行高阶附挂技术(Parallel Advanced Technology Attachment,PATA)总线以及串行高阶附挂技术(Serial Advanced Technology Attachment,SATA)总线其中之一。
更进一步地说,当供电至计算机系统100时,储存装置130亦同时被供电。此时,微控制单元310便会发送加载未完成信号至中央处理单元110,以使中央处理单元110暂停执行开机程序。而当微控制单元310透过周边装置控制单元330将系统固件加载至缓冲器320之后,微控制单元310会发送加载完成信号至中央处理单元110,以使中央处理单元110透过固件接口控制单元340读取缓冲器320的系统固件来执行开机程序。
在此,可在微控制单元310上设置一控制针脚311,利用控制针脚311来传送加载未完成信号或加载完成信号。以下列举一例来说明如何控制中央处理单元110的暂停与否。
图4是依照本发明一实施例所绘示的计算机系统的局部方块图。请参照图4,重置针脚401为原本用来与控制中央处理单元110进行重置之用。在图4中,微控制单元310的控制针脚311与重置针脚401耦接至逻辑与门(Logic AND Gate)410的输入端,而逻辑与门410的输出端则耦接至中央处理单元110。然而,必须了解的是,本发明不限于此。在本发明另一范例实施例中,控制针脚311亦可透过系统固件传输接口360或系统数据传输接口370与重置针脚401耦接至逻辑与门410的输入端(未绘示)。据此,假设重置信号为“1”,加载未完成信号为“0”时,则进行逻辑与运算之后,逻辑与门410会输出一信号“0”并传送至中央处理单元110,以使中央处理单元110暂停。反之,假设重置信号为“1”,加载完成信号为“1”时,则进行逻辑与运算之后,逻辑与门410会输出一信号“1”并传送至中央处理单元110,以激活中央处理单元110。然,在此仅为举例说明,并不以此限制本发明的实施态样。
相对于前述的计算机系统100,本发明亦提供对应的开机方法,以下则搭配上述计算机系统100中的各个构件,再举一实施例详细说明。
图5是依照本发明一实施例所绘示的开机方法的流程图。请同时参照图1、图2、图3B及图5,首先,在步骤S505中,当供电至计算机系统100时,微控制单元310会传送一加载未完成信号至中央处理单元110,以使中央处理单元110暂停执行开机程序。例如,加载未完成信号会与用来控制中央处理单元110的重置信号进行逻辑与运算,而使中央处理单元110暂停运作。
接着,在步骤S510中,通过微控制单元310将配置在储存模块140中的系统固件145的第一个程序区段加载至缓冲器320。微控制单元310会先设定周边装置控制单元330内的固件地址映像缓存器333,而后将系统固件145搬移到缓冲器320。这是因为,透过系统固件传输接口360直接读取储存模块140中的系统固件145,可能会产生读取延迟的问题。因此,便先将系统固件145搬移至缓冲器320中。
详细地说,系统固件145可依据缓冲器320的容量而区分为多个程序区段。当电源激活后,储存装置130内部的微控制单元310便开始从储存模块140中读取第一个程序区段的程序代码到储存装置内部的缓冲器320内。而第一个程序区段所指的是中央处理单元110开机时,第一个读取要求所发出的地址所在的区段。在此,假设一个程序区段大小为10000h,并且假设第一个程序区段的地址为F0000h-FFFF0h。
之后,当第一个程序区段全部加载至缓冲器320之后,如步骤S515所示,微控制单元310会传送加载完成信号至中央处理单元110,以使中央处理单元110开始执行开机程序。也就是说,当第一个程序区段的程序代码被读取到缓冲器320之后,微控制单元310利用控制针脚311传送加载完成信号,以让中央处理单元110开始动作。
然后,在步骤S520中,储存装置130透过系统固件传输接口360接收中央处理单元110所传送的读取要求。当中央处理单元110发出读取要求,而储存装置130经由系统固件传输接口360收到此一要求时,储存装置130内部的固件接口控制单元340会判断此一读取要求的地址是否落在目前缓冲器320中所暂存的程序区段的地址内。若成立,则执行步骤S530;若不成立,则执行步骤S535。
以缓冲器320目前所暂存的第一个程序区段为F0000h-FFFF0h而言,当读取要求的地址落在F0000h-FFFF0h内时,如步骤S530所示,固件接口控制单元340便从缓冲器320读取相关内容。也就是说,透过固件接口控制单元340来读取缓冲器320中的开机区块程序代码147,以开始进行初始化的动作。而开机区块程序代码147例如须包含将储存装置接口控制单元350、控制芯片组120及主要存储器160初始化的最低要求。
固件接口控制单元340利用此一读取要求的地址,读取原来预先加载放在缓冲器320中的开机区块程序代码147的程序区段,并将其地址对应的数据,经由内部数据总线380,存放到固件接口控制单元340内的固件数据缓存器343。而固件接口控制单元340再将存放在固件数据缓存器343内的数据,经由系统固件传输接口360回传回去。
而中央处理单元110将不断地经由系统固件传输接口360来读取系统固件145,以完成计算机系统100上其它硬件的初始化动作。
另一方面,当读取要求的地址(例如E2000h)未落在F0000h-FFFF0h内时,如步骤S535所示,固件接口控制单元340可透过系统固件传输接口360回传一笔错误数据至中央处理单元110。
然后,在步骤S540中,微控制单元310便依据读取要求所载送的地址,自储存模块140中加载对应读取要求的程序区段。例如,微控制单元310将根据中央处理单元110读取要求的地址E2000h,自储存模块140中将E0000h-EFFF0h的程序区段加载至缓冲器320内。之后,返回步骤S520。
值得注意的是,在上述步骤S535中,当中央处理单元110接收到固件接口控制单元340所回传的错误数据并不会做任何处理,其用意在使微控制单元310去搬移下一个程序区段。以BIOS程序代码为例,当程序在执行当中需要跳至另一个区段的地址去执行另外一段程序代码时,可在跳跃指令(Jump)之前加入一个读取区段起始地址的指令以及一个等待区段搬移时间的指令。
举例来说,图6是依照本发明一实施例所绘示的BIOS的局部程序代码示意图。请参照图6,“FAR JUMP E2000”为原始程序代码欲跳跃至另一个区段的指令。而“Read E0000”为读取区段起始地址。“Wait 10ms”是用来等待区段搬移的时间。在此,等待区段搬移的时间是依据微控制单元310搬移一个程序区段到缓冲器320的时间来决定。
据此,通过重复执行上述步骤S505-步骤S540以完成储存装置接口控制单元350、控制芯片组120及主要存储器160初始化的工作。之后,中央处理单元110便可透过储存装置接口控制单元350来存取储存模块140中的数据。以下再举一例说明数据存取各步骤。
图7是依照本发明一实施例所绘示的存取数据的方法流程图。请同时参照图1、图2、图3B与图7,首先,在步骤S705中,中央处理单元110透过储存装置接口控制单元350来设定其内部的固件加载接口(ROM Fetch IF)353。其中,固件加载接口353包括系统固件145欲传送至主要存储器160的目标地址(TargetAddress)、欲读取的系统固件145的固件基地址(ROM Base Address)以及欲读取的系统固件145的搬移范围(Move Size)。之后,储存装置接口控制单元350激活一直接存储器存取致能信号(DMA Enable,DMA=Direct Memory Access)以触发微控制单元310。
接着,在步骤S710中微控制单元310便可依据固件加载接口353而将储存模块140中的系统固件145的其它程序区段加载至缓冲器320中。详细地说,微控制单元310会依据固件基地址所设定的起始地址,去设定周边装置控制单元330内的固件地址映像缓存器333,然后将储存模块140内的系统固件145的其它程序区段搬移至缓冲器320中。
之后,如步骤S715所示,透过系统数据传输接口370传送缓冲器320内的数据至主要存储器160中。储存装置接口控制单元350会将加载至缓冲器320中的数据转换成系统数据传输接口370上的传送封包,以传送到目标地址所指定的主要存储器160的地址。
重复执行上述步骤S710与步骤S715,直到所有的系统固件145均被加载至主要存储器160。据此,中央处理单元110便不再透过固件数据传输接口360来读取系统固件145,而是直接到主要存储器160中读取。如此一来将可以节省经由固件数据传输接口360读取系统固件145的时间。
值得一提的是,在上述储存装置控制器150的架构之下,透过储存装置接口控制单元350亦能够进行系统固件的写入。
举例来说,中央处理单元110透过储存装置接口控制单元350的固件加载接口353,设定欲写入的系统固件(例如存放于另一储存装置)的长度、欲写入的固件基地址、欲写入的数据端口(Data Port),然后再激活一写入信号。此一写入信号将会触发微控制单元310,使得微控制单元310依据欲写入的固件基地址设定的起始地址,去设定周边装置控制单元330内的固件地址映像缓存器333。之后,将欲写入的数据搬到缓冲器320内。中央处理单元110将不断地写入系统固件,而被写入的系统固件也会被不断地被搬到缓冲器320内。待缓冲器320的数据达到一个写入的程序区段大小之后,周边装置控制单元330便会把缓冲器320内的系统固件其中一程序区段写入储存模块140中。如此重复写入,直到完整地写入整个系统固件。
在上述实施例中,储存装置控制器150是整合在储存装置130中,然而,在其它实施例中,储存装置控制器150亦可整合于主板170中。如图8所示。图8是依照本发明另一实施例所绘示的计算机系统的方块图。计算机系统800包括中央处理单元810、控制芯片组820、储存装置控制器830、储存模块840以及主要存储器850。其中,中央处理单元810、控制芯片组820、储存装置控制器830与主要存储器850配置于主板860中。控制芯片组820分别耦接至中央处理单元810、储存模块840与主要存储器850。
在本实施例中,储存装置控制器830是整合于控制芯片组820中。而本实施例的中央处理单元810、控制芯片组820、储存装置控制器830、储存模块840以及主要存储器850的功能分别与前述中央处理单元110、控制芯片组120、储存装置控制器150、储存模块140以及主要存储器160的功能相同或相似。故,在此不再赘述。
值得注意的是,储存装置控制器除了可与储存装置或与主板整合的外,亦可为单一装置,在此并不以此限制本发明。
综上所述,在上述实施例中,将系统固件与系统数据整合至同一个储存模块中,据此,可节省主板中原本用来放置系统固件只读存储器的空间,亦可节省额外制作系统固件只读存储器的成本。此外,更实作一个储存装置控制器,让中央处理单元能够经由此储存装置控制器读取储存模块中的系统固件,并且解决了读取延迟问题。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当以权利要求所界定的为准。
Claims (20)
1.一种储存装置控制器,包括:
一微控制单元,耦接至一中央处理单元,当供电至该储存装置控制器时,该微控制单元发送一加载未完成信号至该中央处理单元,以使该中央处理单元暂停执行一开机程序;
一缓冲器,耦接至该微控制单元;
一周边装置控制单元,耦接至该微控制单元与一储存模块,该周边装置控制单元是用来将该储存模块的一系统固件加载至该缓冲器;以及
一接口控制模块,耦接至该微控制单元与该中央处理单元,该接口控制模块是用来读取该缓冲器中的该系统固件;
其中,当该中央处理单元暂停执行该开机程序时,该微控制单元透过该周边装置控制单元将配置在该储存模块中的该系统固件的一第一程序区段加载至该缓冲器,当该第一程序区段全部加载至该缓冲器之后,该微控制单元发送一加载完成信号至该中央处理单元,以使该中央处理单元透过该接口控制模块读取该缓冲器的该系统固件来执行该开机程序;
其中,当该储存装置控制器接收到该中央处理单元发出的一读取要求时,倘若该读取要求的地址落在该缓冲器中所暂存的该第一程序区段的地址内,依据该读取要求的地址,透过该接口控制模块读取该缓冲器中的该系统固件的该第一程序区段的程序代码,以回传给该中央处理单元;倘若该读取要求的地址未落在该第一程序区段,由该微控制单元依据该读取要求的地址,自该储存模块中将该系统固件中对应的一第二程序区段加载至该缓冲器。
2.如权利要求1所述的储存装置控制器,其特征在于,该微控制单元更包括一控制针脚,利用该控制针脚传送该加载未完成信号或该加载完成信号,其中,该控制针脚与该中央处理单元的一重置针脚耦接至一逻辑与门的输入端,且该逻辑与门的输出端耦接至该中央处理单元。
3.如权利要求1所述的储存装置控制器,其特征在于,该接口控制模块包括一固件接口控制单元,该固件接口控制单元包括:
一固件地址缓存器,暂时存放该中央处理单元所发送的该读取要求所载送的该地址,使得该固件接口控制单元依据该地址自该缓冲器中读取该系统固件;以及
一固件数据缓存器,暂时存放依据该地址所读取到的该系统固件。
4.如权利要求3所述的储存装置控制器,其特征在于,该固件接口控制单元更包括一系统固件传输接口,该系统固件传输接口为串行外围接口总线、工业标准架构总线以及低脚位数总线其中之一。
5.如权利要求3所述的储存装置控制器,其特征在于,该接口控制模块更包括:
一储存装置接口控制单元,耦接至该微控制单元与该中央处理单元,当该中央处理单元执行该系统固件而将该储存装置接口控制单元初始化之后,该中央处理单元透过该储存装置接口控制单元来存取该储存模块。
6.如权利要求5所述的储存装置控制器,其特征在于,该储存装置接口控制单元包括:
一任务缓存器,用以提供对该储存模块进行写入、读取及控制的功能;以及
一固件加载接口,用以写入或读取存放在该储存模块内的该系统固件。
7.如权利要求5所述的储存装置控制器,其特征在于,该储存装置接口控制单元更包括一系统数据传输接口,该系统数据传输接口为周边控制器接口总线、PCI Express总线、平行高阶附挂技术总线以及串行高阶附挂技术总线其中之一。
8.一种主板,包括:
一中央处理单元;
一储存装置控制器,耦接至该中央处理单元;以及
一储存模块,耦接至该储存装置控制器,且该储存模块至少具有一系统固件;
其中,当供电至该主板时,该储存装置控制器发送一加载未完成信号至该中央处理单元,以使该中央处理单元暂停执行一开机程序;该储存装置控制器将配置在该储存模块中的该系统固件的一第一程序区段加载至该储存装置控制器的一缓冲器,当该第一程序区段全部加载至该缓冲器之后,该储存装置控制器发送一加载完成信号至该中央处理单元,以使该中央处理单元透过该储存装置控制器读取该系统固件来执行该开机程序;
其中,当该储存装置控制器接收到该中央处理单元发出的一读取要求时,倘若该读取要求的地址落在该缓冲器中所暂存的该第一程序区段的地址内,依据该读取要求的地址,该储存装置控制器读取该缓冲器中的该系统固件的该第一程序区段的程序代码,以回传给该中央处理单元;倘若该读取要求的地址未落在该第一程序区段,该储存装置控制器依据该读取要求的地址,自该储存模块中将该系统固件中对应的一第二程序区段加载至该缓冲器。
9.一种储存装置,包括:
一储存装置控制器,耦接至一中央处理单元;以及
一储存模块,耦接至该储存装置控制器,且该储存模块至少具有一系统固件;
其中,当供电至该储存装置时,该储存装置控制器发送一加载未完成信号至该中央处理单元,以使该中央处理单元暂停执行一开机程序;该储存装置控制器将配置在该储存模块中的该系统固件的一第一程序区段加载至该储存装置控制器的一缓冲器,当该第一程序区段全部加载至该缓冲器之后,该储存装置控制器发送一加载完成信号至该中央处理单元,以使该中央处理单元透过该储存装置控制器读取该系统固件来执行该开机程序;
其中,当该储存装置控制器接收到该中央处理单元发出的一读取要求时,倘若该读取要求的地址落在该缓冲器中所暂存的该第一程序区段的地址内,该储存装置控制器依据该读取要求的地址,读取该缓冲器中的该系统固件的该第一程序区段的程序代码,以回传给该中央处理单元;倘若该读取要求的地址未落在该第一程序区段,该储存装置控制器依据该读取要求的地址,自该储存模块中将该系统固件中对应的一第二程序区段加载至该缓冲器。
10.如权利要求9所述的储存装置,其特征在于,该储存模块包括一固件区域与一数据区域,其中该固件区域储存该系统固件。
11.如权利要求9所述的储存装置,其特征在于,该储存装置控制器包括:
一微控制单元,耦接至该中央处理单元,当供电至该储存装置时,该微控制单元发送该加载未完成信号至该中央处理单元,该缓冲器耦接至该微控制单元;
一周边装置控制单元,耦接至该微控制单元与该储存模块,该周边装置控制单元是用来将该系统固件加载至该缓冲器;以及
一接口控制模块,耦接至该微控制单元与该中央处理单元,该接口控制模块是用来读取该缓冲器中的该系统固件;
其中,当该微控制单元透过该周边装置控制单元将该系统固件加载至该缓冲器之后,该微控制单元发送该加载完成信号至该中央处理单元。
12.如权利要求11所述的储存装置,其特征在于,该微控制单元更包括:
一控制针脚,传送该加载未完成信号或该加载完成信号至该中央处理单元,其中,该控制针脚与该中央处理单元的一重置针脚耦接至一逻辑与门的输入端,且该逻辑与门的输出端耦接至该中央处理单元。
13.如权利要求11所述的储存装置,其特征在于,该接口控制模块包括一固件接口控制单元,该固件接口控制单元包括:
一固件地址缓存器,暂时存放该中央处理单元所发送的该读取要求所载送的该地址,使得该固件接口控制单元依据该地址自该缓冲器中读取该系统固件;以及
一固件数据缓存器,暂时存放依据该地址所读取到的该系统固件。
14.如权利要求13所述的储存装置,其特征在于,该接口控制模块更包括:
一储存装置接口控制单元,耦接至该微控制单元与该中央处理单元,当该中央处理单元执行该系统固件而将该储存装置接口控制单元初始化之后,该中央处理单元透过该储存装置接口控制单元来存取该储存模块。
15.如权利要求14所述的储存装置,其特征在于,该系统固件包括一开机区块程序代码与一运行区块程序代码,而该中央处理单元透过该固件接口控制单元读取该开机区块程序代码,以至少初始化该储存装置接口控制单元与主板的一控制芯片组及一主要存储器,并且该中央处理单元透过该储存装置接口控制单元读取该运行区块程序代码,以执行后续的该开机程序。
16.一种开机方法,适用于一计算机系统,该计算机系统具有一中央处理单元、一储存装置控制器以及一储存模块,其中该储存装置控制器耦接在该中央处理单元与该储存模块之间,而该开机方法包括:
当供电至该计算机系统时,通过该储存装置控制器传送一加载未完成信号至该中央处理单元,以使该中央处理单元暂停执行一开机程序;
通过该储存装置控制器将配置在该储存模块中的一系统固件的一第一程序区段加载至该储存装置控制器的一缓冲器;
在该第一程序区段全部加载至该缓冲器之后,通过该储存装置控制器传送一加载完成信号至该中央处理单元,以使该中央处理单元开始执行该开机程序;以及
当该储存装置控制器接收到该中央处理单元发出的一读取要求时,
倘若该读取要求的地址落在该缓冲器中所暂存的该第一程序区段的地址内,依据该读取要求的地址,透过该储存装置控制器读取该缓冲器中的该系统固件的该第一程序区段的程序代码,以回传给该中央处理单元;以及
倘若该读取要求的地址未落在该第一程序区段,由该储存装置控制器依据该读取要求的地址,自该储存模块中将该系统固件中对应的一第二程序区段加载至该缓冲器。
17.如权利要求16所述的开机方法,其特征在于,更包括:
将该加载完成信号或该加载未完成信号与用来控制该中央处理单元的一重置信号进行逻辑与运算。
18.如权利要求16所述的开机方法,其特征在于,将该系统固件加载至该储存装置控制器内的该缓冲器的步骤,包括:
透过该储存装置控制器的一周边装置控制单元,将该储存模块的该系统固件加载至该缓冲器。
19.如权利要求16所述的开机方法,其特征在于,在通过该储存装置控制器传送该加载完成信号至该中央处理单元的步骤之后,更包括:
透过该储存装置控制器的一固件接口控制单元,读取该缓冲器中的该系统固件,以执行该开机程序而至少将该储存装置控制器的一储存装置接口控制单元与一控制芯片组及一主要存储器初始化。
20.如权利要求19所述的开机方法,其特征在于,在将该储存装置控制器的该储存装置接口控制单元与该控制芯片组及该主要存储器初始化的步骤之后,更包括:
透过该储存装置接口控制单元,读取该系统固件,以执行后续的该开机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810186830 CN101751268B (zh) | 2008-12-12 | 2008-12-12 | 主板、储存装置及其控制器与开机方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810186830 CN101751268B (zh) | 2008-12-12 | 2008-12-12 | 主板、储存装置及其控制器与开机方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101751268A CN101751268A (zh) | 2010-06-23 |
CN101751268B true CN101751268B (zh) | 2013-04-10 |
Family
ID=42478284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810186830 Active CN101751268B (zh) | 2008-12-12 | 2008-12-12 | 主板、储存装置及其控制器与开机方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101751268B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631608A (zh) * | 2012-08-21 | 2014-03-12 | 瑞昱半导体股份有限公司 | 开机引导装置及其开机引导方法 |
CN106484446A (zh) * | 2015-08-28 | 2017-03-08 | 晨星半导体股份有限公司 | 应用程序的程序代码载入方法及应用其方法的电脑系统 |
CN107656584B (zh) * | 2016-07-26 | 2020-08-11 | 佛山市顺德区顺达电脑厂有限公司 | 机箱装置 |
CN107765782A (zh) * | 2016-08-23 | 2018-03-06 | 佛山市顺德区顺达电脑厂有限公司 | 机箱装置 |
TWI622883B (zh) * | 2017-04-20 | 2018-05-01 | 遠東金士頓科技股份有限公司 | 用於控制記憶體模組之控制系統及控制方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101118494A (zh) * | 2006-08-01 | 2008-02-06 | 环达电脑(上海)有限公司 | 嵌入式设备从外接电子卡启动操作系统的系统与方法 |
-
2008
- 2008-12-12 CN CN 200810186830 patent/CN101751268B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101118494A (zh) * | 2006-08-01 | 2008-02-06 | 环达电脑(上海)有限公司 | 嵌入式设备从外接电子卡启动操作系统的系统与方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101751268A (zh) | 2010-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100508087B1 (ko) | 낸드 플래시 메모리를 이용한 부트 시스템 및 그 방법 | |
US6119192A (en) | Circuit and method for configuring a bus bridge using parameters from a supplemental parameter memory | |
EP2330596B1 (en) | Command queue for peripheral component | |
CN100456272C (zh) | 利用快闪存储器引导的系统和方法 | |
CN1307532C (zh) | 利用与非闪速存储器的引导系统及其方法 | |
KR100634436B1 (ko) | 멀티 칩 시스템 및 그것의 부트코드 페치 방법 | |
US7908417B2 (en) | Motherboard system, storage device for booting up thereof and connector | |
US20110219171A1 (en) | Virtual channel support in a nonvolatile memory controller | |
TW200919205A (en) | Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems | |
CN102968289A (zh) | 用于外围组件的高优先级命令队列 | |
CN101751268B (zh) | 主板、储存装置及其控制器与开机方法 | |
JP2003296191A (ja) | 汎用プロセッサおよび周辺装置のプロセッサとして動作可能な集積回路 | |
US8996788B2 (en) | Configurable flash interface | |
US20090049232A1 (en) | Execute-in-place implementation for a nand device | |
CN101266585A (zh) | 直接存储访问控制器数据传输系统与方法 | |
US6748478B1 (en) | System function configurable computing platform | |
CN105607874B (zh) | Sata协议加速模块、主机与硬盘通信方法及固态硬盘控制器 | |
US6622244B1 (en) | Booting from a reprogrammable memory on an unconfigured bus by modifying boot device address | |
CN106354514B (zh) | 一种快速引导申威处理器bios的方法 | |
CN101256541B (zh) | 一种直接存储访问控制器数据传输系统与方法 | |
JP2009181579A (ja) | 機能を呼び出す方法、サブシステムおよびシステム | |
US8117427B2 (en) | Motherboard, storage device and controller thereof, and booting method | |
EA039007B1 (ru) | Устройство прямого отображения адресов данных, располагающихся во внешнем последовательном пзу, в адресное пространство микропроцессорного ядра, компьютерная система и способ передачи данных | |
RU2579949C2 (ru) | Компьютерная система | |
TW201035770A (en) | Dynamic state configuration restore |
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 |