專利名稱:主板、儲存裝置及其控制器與開機方法
技術領域:
本發明是有關于一種計算機系統,且特別是有關于一種具有儲存裝置控制器的主
板、具有系統固件的儲存裝置與開機方法。
背景技術:
—般而言,在個人計算機(Personal Computer, PC)激活的過程中,是由基本輸出 輸入系統(Basic Input/Output System, BIOS)來負責初始化硬件、檢測硬件功能以及引 導操作系統的動作。BIOS通常會儲存于一個斷電后內容不會遺失的存儲器中,而此具有開 機程序的存儲器一般稱為系統固件(System Firmware)只讀存儲器(Read Only Memory, R0M)。當個人計算機系統過電或被重置(reset)時,中央處理單元(Central Processing Unit, CPU)所欲執行的第一條指令的地址會被定位到系統固件存儲器中,由此讓開機程序 開始執行。 目前系統固件只讀存儲器是固定地配置在個人計算機的主板系統上,并且透過低 腳位數(Low Pin Count)總線或串行外圍接口 (Serial Peripheral Interface, SPI)總線 連接至控制芯片組的南橋芯片中。由于只讀存儲器是固定地配置在主板上,因此當其發生 故障時,在維修方面則顯得相當不便。
發明內容
本發明提供一種儲存裝置,其分割為兩大區域以分別儲存系統固件與系統數據, 并且配置一儲存裝置控制器來存取系統固件。 另外,本發明提供一種主板,透過儲存裝置控制器來讀取具有系統固件的儲存裝置。 此外,本發明提供一種開機方法,以解決中央處理單元讀取系統固件所產生的讀 取延遲問題。 詳細地說,本發明提出一種儲存裝置控制器,包括微控制單元、緩沖器、接口控制 模塊以及周邊裝置控制單元。其中,微控制單元耦接至主板的中央處理單元,當供電至儲 存裝置控制器時,微控制單元便會發送加載未完成信號至中央處理單元,以使中央處理單 元暫停執行開機程序。緩沖器則耦接至微控制單元。另外,周邊裝置控制單元耦接至微控 制單元、緩沖器與一儲存模塊。周邊裝置控制單元是用來將儲存模塊的系統固件(System Firmware)加載至緩沖器。而接口控制模塊耦接至微控制單元、緩沖器與中央處理單元。接 口控制模塊是用來讀取緩沖器中的系統固件。其中,當微控制單元透過周邊裝置控制單元 將系統固件加載至緩沖器之后,微控制單元會發送加載完成信號至中央處理單元,以使中 央處理單元透過接口控制模塊讀取緩沖器的系統固件來執行開機程序。
另外,本發明提出一種主板,包括中央處理單元、儲存裝置控制器與儲存模塊。其 中,上述儲存裝置控制器耦接至中央處理器,而儲存模塊耦接至儲存裝置控制器,使得中央 處理單元利用儲存裝置控制器與儲存模塊溝通。當供電至主板時,儲存裝置控制器便會發送加載未完成信號至中央處理單元,以使中央處理單元暫停執行開機程序。而當儲存裝置 控制器加載系統固件的后,儲存裝置控制器會發送加載完成信號至中央處理單元,以使中 央處理單元讀取系統固件來執行開機程序。 此外,本發明提出一種儲存裝置,包括具有系統固件的儲存模塊與儲存裝置控制 器。上述儲存裝置控制器分別耦接至一中央處理器與儲存模塊。當供電至儲存裝置時,儲 存裝置控制器便會發送加載未完成信號至中央處理單元,以使中央處理單元暫停執行開機 程序。當儲存裝置控制器加載系統固件之后,儲存裝置控制器會發送加載完成信號至中央 處理單元,以使中央處理單元讀取系統固件來執行開機程序。 在本發明的一實施例中,上述儲存裝置控制器包括微控制單元、緩沖器、接口控制 模塊以及周邊裝置控制單元。其中,微控制單元耦接至主板的中央處理單元,用以發送加 載未完成信號或加載完成信號至中央處理單元,以使中央處理單元暫停或開始執行開機程 序。緩沖器則耦接至微控制單元。周邊裝置控制單元耦接至微控制單元、緩沖器與儲存模 塊。周邊裝置控制單元是用來將儲存模塊的系統固件加載至緩沖器。而接口控制模塊耦接 至微控制單元、緩沖器與中央處理單元。接口控制模塊是用來讀取緩沖器中的系統固件。
在本發明的一實施例中,上述微控制單元更包括一控制針腳,以利用控制針腳來傳 送加載未完成信號或加載完成信號。其中,控制針腳與中央處理單元的重置(reset)針腳耦 接至邏輯與門(Logic AND Gate)的輸入端,且邏輯與門的輸出端耦接至中央處理單元。
在本發明的一實施例中,上述接口控制模塊包括固件接口控制單元。而固件接口 控制單元具有固件地址緩存器以及固件數據緩存器。固件地址緩存器是用來暫時存放中央 處理單元所發送的讀取要求所載送的地址,使得固件接口控制單元依據此地址自緩沖器中 讀取系統固件。而固件數據緩存器則是用來暫時存放依據上述地址所讀取到的系統固件。
在本發明的一實施例中,上述接口控制模塊更包括儲存裝置接口控制單元。儲存 裝置接口控制單元耦接至微控制單元與中央處理單元。當中央處理單元執行系統固件而將 儲存裝置接口控制單元初始化之后,中央處理單元便可透過儲存裝置接口控制單元來存取 儲存模塊。 在本發明的一實施例中,上述固件接口控制單元可透過系統固件傳輸接口耦接至 中央處理單元,而儲存裝置接口控制單元則可透過系統數據傳輸接口耦接至中央處理單 元。上述系統固件傳輸接口例如為串行外圍接口 (Serial Peripherallnterface, 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是依照本發明一實施例所繪示的計算機系統的方塊圖。請參照圖l,計算機系統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的執 行速度。 返回圖l,儲存裝置控制器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暫時
8存放所搬移的系統數據。 周邊裝置控制單元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 M即ping 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)總線以及串行高階附掛技術(SerialAdvanced 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暫停。反之,假設重置信號為"l",加載完 成信號為"1"時,則進行邏輯與運算之后,邏輯與門410會輸出一信號"1"并傳送至中央處 理單元110,以激活中央處理單元110。然,在此僅為舉例說明,并不以此限制本發明的實施 態樣。 相對于前述的計算機系統IOO,本發明亦提供對應的開機方法,以下則搭配上述計 算機系統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開始執行開機程
10序。也就是說,當第一個程序區段的程序代碼被讀取到緩沖器320之后,微控制單元310利 用控制針腳311傳送加載完成信號,以讓中央處理單元110開始動作。
然后,在步驟S520中,儲存裝置130透過系統固件傳輸接口 360接收中央處理單 元110所傳送的讀取要求。當中央處理單元110發出讀取要求,而儲存裝置130經由系統 固件傳輸接口 360收到此一要求時,儲存裝置130內部的固件接口控制單元340會判斷此 一讀取要求的地址是否落在目前緩沖器320中所暫存的程序區段的地址內。若成立,則執 行步驟S530 ;若不成立,則執行步驟S535。 以緩沖器320目前所暫存的第一個程序區段為F0000h-FFFF0h而言,當讀取要求
的地址落在FOOOOh-FFFFOh內時,如步驟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的功能相同或相似。故,在此不再贅述。 值得注意的是,儲存裝置控制器除了可與儲存裝置或與主板整合的外,亦可為單 一裝置,在此并不以此限制本發明。
12
綜上所述,在上述實施例中,將系統固件與系統數據整合至同一個儲存模塊中,據 此,可節省主板中原本用來放置系統固件只讀存儲器的空間,亦可節省額外制作系統固件 只讀存儲器的成本。此外,更實作一個儲存裝置控制器,讓中央處理單元能夠經由此儲存裝 置控制器讀取儲存模塊中的系統固件,并且解決了讀取延遲問題。 雖然本發明已以實施例揭露如上,然其并非用以限定本發明,任何所屬技術領域 中具有通常知識者,在不脫離本發明的精神和范圍內,當可作些許的更動與潤飾,故本發明 的保護范圍當以權利要求所界定的為準。
權利要求
一種儲存裝置控制器,包括一微控制單元,耦接至一中央處理單元,當供電至該儲存裝置控制器時,該微控制單元發送一加載未完成信號至該中央處理單元,以使該中央處理單元暫停執行一開機程序;一緩沖器,耦接至該微控制單元;一周邊裝置控制單元,耦接至該微控制單元與一儲存模塊,該周邊裝置控制單元是用來將該儲存模塊的一系統固件加載至該緩沖器;以及一接口控制模塊,耦接至該微控制單元與該中央處理單元,該接口控制模塊是用來讀取該緩沖器中的該系統固件;其中,當該微控制單元透過該周邊裝置控制單元將該系統固件加載至該緩沖器的后,該微控制單元發送一加載完成信號至該中央處理單元,以使該中央處理單元透過該接口控制模塊讀取該緩沖器的該系統固件來執行該開機程序。
2. 如權利要求1所述的儲存裝置控制器,其特征在于,該微控制單元更包括一控制針腳,利用該控制針腳傳送該加載未完成信號或該加載完成信號,其中,該控制針腳與該中央處理單元的一重置針腳耦接至一邏輯與門的輸入端,且該邏輯與門的輸出端耦接至該中央處理單元。
3. 如權利要求1所述的儲存裝置控制器,其特征在于,該接口控制模塊包括一固件接口控制單元,該固件接口控制單元包括一固件地址緩存器,暫時存放該中央處理單元所發送的一讀取要求所載送的一地址,使得該固件接口控制單元依據該地址自該緩沖器中讀取該系統固件;以及一固件數據緩存器,暫時存放依據該地址所讀取到的該系統固件。
4. 如權利要求3所述的儲存裝置控制器,其特征在于,該固件接口控制單元更包括一系統固件傳輸接口,該系統固件傳輸接口為串行外圍接口總線、工業標準架構總線以及低腳位數總線其中之一。
5. 如權利要求3所述的儲存裝置控制器,其特征在于,該接口控制模塊更包括一儲存裝置接口控制單元,耦接至該微控制單元與該中央處理單元,當該中央處理單元執行該系統固件而將該儲存裝置接口控制單元初始化之后,該中央處理單元透過該儲存裝置接口控制單元來存取該儲存模塊。
6. 如權利要求5所述的儲存裝置控制器,其特征在于,該儲存裝置接口控制單元包括一任務緩存器,用以提供對該儲存模塊進行寫入、讀取及控制的功能;以及一固件加載接口 ,用以寫入或讀取存放在該儲存模塊內的該系統固件。
7. 如權利要求5所述的儲存裝置控制器,其特征在于,該儲存裝置接口控制單元更包括一系統數據傳輸接口,該系統數據傳輸接口為周邊控制器接口總線、PCI E鄧ress總線、平行高階附掛技術總線以及串行高階附掛技術總線其中之一。
8. —種主板,包括一中央處理單元;一儲存裝置控制器,耦接至該中央處理單元;以及一儲存模塊,耦接至該儲存裝置控制器,且該儲存模塊至少具有一系統固件;其中,當供電至該主板時,該儲存裝置控制器發送一加載未完成信號至該中央處理單元,以使該中央處理單元暫停執行一開機程序;且當該儲存裝置控制器加載該系統固件后,該儲存裝置控制器發送一加載完成信號至該中央處理單元,以使該中央處理單元透過該儲存裝置控制器讀取該系統固件來執行該開機程序。
9. 一種儲存裝置,包括一儲存裝置控制器,耦接至一中央處理單元;以及一儲存模塊,耦接至該儲存裝置控制器,且該儲存模塊至少具有一系統固件;其中,當供電至該儲存裝置時,該儲存裝置控制器發送一加載未完成信號至該中央處理單元,以使該中央處理單元暫停執行一開機程序;且當該儲存裝置控制器加載該系統固件后,該儲存裝置控制器發送一加載完成信號至該中央處理單元,以使該中央處理單元透過該儲存裝置控制器讀取該系統固件來執行該開機程序。
10. 如權利要求9所述的儲存裝置,其特征在于,該儲存模塊包括一固件區域與一數據區域 ,其中該固件區域儲存該系統固件。
11. 如權利要求9所述的儲存裝置,其特征在于,該儲存裝置控制器包括一微控制單元,耦接至該中央處理單元,當供電至該儲存裝置時,該微控制單元發送該加載未完成信號至該中央處理單元;一緩沖器,耦接至該微控制單元;一周邊裝置控制單元,耦接至該微控制單元與該儲存模塊,該周邊裝置控制單元是用來將該系統固件加載至該緩沖器;以及一接口控制模塊,耦接至該微控制單元與該中央處理單元,該接口控制模塊是用來讀取該緩沖器中的該系統固件;其中,當該微控制單元透過該周邊裝置控制單元將該系統固件加載至該緩沖器之后,該微控制單元發送該加載完成信號至該中央處理單元。
12. 如權利要求11所述的儲存裝置,其特征在于,該微控制單元更包括一控制針腳,傳送該加載未完成信號或該加載完成信號至該中央處理單元,其中,該控制針腳與該中央處理單元的一重置針腳耦接至一邏輯與門的輸入端,且該邏輯與門的輸出端耦接至該中央處理單元。
13. 如權利要求11所述的儲存裝置,其特征在于,該接口控制模塊包括一固件接口控制單元,該固件接口控制單元包括一固件地址緩存器,暫時存放該中央處理單元所發送的一讀取要求所載送的一地址,使得該固件接口控制單元依據該地址自該緩沖器中讀取該系統固件;以及一固件數據緩存器,暫時存放依據該地址所讀取到的該系統固件。
14. 如權利要求13所述的儲存裝置,其特征在于,該接口控制模塊更包括一儲存裝置接口控制單元,耦接至該微控制單元與該中央處理單元,當該中央處理單元執行該系統固件而將該儲存裝置接口控制單元初始化之后,該中央處理單元透過該儲存裝置接口控制單元來存取該儲存模塊。
15. 如權利要求14所述的儲存裝置,其特征在于,該系統固件包括一開機區塊程序代碼與一運行區塊程序代碼,而該中央處理單元透過該固件接口控制單元讀取該開機區塊程序代碼,以至少初始化該儲存裝置接口控制單元與該主板的一控制芯片組及一主要存儲器,并且該中央處理單元透過該儲存裝置接口控制單元讀取該運行區塊程序代碼,以執行后續的該開機程序。
16. —種開機方法,適用于一計算機系統,該計算機系統具有一中央處理單元、一儲存 裝置控制器以及一儲存模塊,其中該儲存裝置控制器耦接在該中央處理單元與該儲存模塊 之間,而該開機方法包括當供電至該計算機系統時,通過該儲存裝置控制器傳送一加載未完成信號至該中央處理單元,以使該中央處理單元暫停執行一開機程序;通過該儲存裝置控制器將配置在該儲存模塊中的一系統固件加載;以及 在該系統固件加載之后,通過該儲存裝置控制器傳送一加載完成信號至該中央處理單元,以使該中央處理單元開始執行該開機程序。
17. 如權利要求16所述的開機方法,其特征在于,更包括將該加載完成信號或該加載未完成信號與用來控制該中央處理單元的一重置信號進 行邏輯與運算。
18. 如權利要求16所述的開機方法,其特征在于,該系統固件包括多個程序區段,而通 過該儲存裝置控制器將配置在該儲存模塊中的該系統固件加載的步驟,包括將該系統固件加載至該儲存裝置控制器內的一緩沖器,且依據該中央處理單元的一第 一讀取要求所載送的一第一地址,加載該些程序區段其中之一的一第一程序區段至該緩沖 器。
19. 如權利要求18所述的開機方法,其特征在于,更包括 透過該儲存裝置控制器接收該中央處理單元的一第二讀取要求; 判斷該第二讀取要求所載送的一第二地址是否落在該第一程序區段中;以及 當該第二地址未落在該第一程序區段時,由該儲存裝置控制器將該第二地址對應的該些程序區段其中之一的一第二程序區段加載至該緩沖器。
20. 如權利要求18所述的開機方法,其特征在于,將該系統固件加載至該儲存裝置控 制器內的該緩沖器的步驟,包括透過該儲存裝置控制器的一周邊裝置控制單元,將該儲存模塊的該系統固件加載至該 緩沖器。
21. 如權利要求18所述的開機方法,其特征在于,在通過該儲存裝置控制器傳送該加 載完成信號至該中央處理單元的步驟之后,更包括透過該儲存裝置控制器的一固件接口控制單元,讀取該緩沖器中的該系統固件,以執 行該開機程序而至少將該儲存裝置控制器的一儲存裝置接口控制單元與一控制芯片組及 一主要存儲器初始化。
22. 如權利要求21所述的開機方法,其特征在于,在將該儲存裝置控制器的該儲存裝 置接口控制單元與該控制芯片組及該主要存儲器初始化的步驟之后,更包括透過該儲存裝置接口控制單元,讀取該系統固件,以執行后續的該開機程序。
全文摘要
本發明公開了一種主板、儲存裝置及其控制器與開機方法。在本發明中,當激活電源時,首先通過儲存裝置控制器傳送一加載未完成信號至中央處理單元,以使中央處理單元暫停運作。接著,通過儲存裝置控制器將配置在儲存裝置中的系統固件加載。在系統固件加載之后,通過儲存裝置控制器傳送一加載完成信號至中央處理單元,以使中央處理單元開始執行開機程序。
文檔編號G06F11/00GK101751268SQ200810186830
公開日2010年6月23日 申請日期2008年12月12日 優先權日2008年12月12日
發明者羅友成 申請人:群聯電子股份有限公司