專利名稱:芯片組、北橋芯片以及磁盤數(shù)據(jù)存取方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種計算機系統(tǒng),且特別是有關(guān)于一種冗余磁盤陣列的計算機系統(tǒng)。
背景技術(shù):
為了提供更大的容量、更高的讀寫效能,或是安全性,現(xiàn)代的計算機系統(tǒng)通常都支持冗余磁盤陣列(Redundant Array of Independent Disks,RAID)的功能。簡單的來說,RAID就是將數(shù)個磁盤利用陣列的方式來作磁盤組,配合數(shù)據(jù)分散排列的設(shè)計,提升數(shù)據(jù)的安全性。同時儲存數(shù)據(jù)的時候,可將數(shù)據(jù)切割成許多區(qū)段在分別儲存于各個磁盤中,因此利用各磁盤分別提供數(shù)據(jù)的加成效果,可以提升整個計算機系統(tǒng)的效能。此外RAID還可以利用奇偶校驗(parity check),使得再陣列中的任何一顆磁盤損壞時,仍可讀出數(shù)據(jù)。
圖1顯示一冗余磁盤陣列的計算機系統(tǒng)100的示意圖。計算機系統(tǒng)100包括有磁盤陣列130、南橋芯片108、北橋芯片104、系統(tǒng)存儲器106以及中央處理器102。
在圖1中,假設(shè)磁盤陣列130是由3個磁盤所組成,包括有磁盤132、134以及136。南橋芯片108中包含有一磁盤控制器110,用以分別控制磁盤132、134以及136的存儲。而北橋芯片104耦接于南橋芯片108、系統(tǒng)存儲器106以及中央處理器102之間。
圖1中所示的磁盤控制器110可為集成驅(qū)動電子(Integrated DriverElectronic,IDE)或是高級主機控制器(Advanced Host Controller,AHC)。系統(tǒng)存儲器106可為動態(tài)隨機存取存儲器(Dynamic Random Access Memory,DRAM)。
圖2所示為計算機系統(tǒng)100執(zhí)行RAID數(shù)據(jù)寫入示例的流程圖。首先中央處理器102會先將數(shù)據(jù)D1寫到系統(tǒng)存儲器106中(步驟S201),接著磁盤控制器110從磁盤134中讀出另一筆數(shù)據(jù)D2,并將數(shù)據(jù)D2寫到系統(tǒng)存儲器106中(步驟S202),之后,中央處理器102從系統(tǒng)存儲器106中讀取出數(shù)據(jù)D2(步驟S203),接著中央處理器102將數(shù)據(jù)D1以及D2做異或(XOR)的運算以得到奇偶數(shù)據(jù)DP(步驟S204),之后中央處理器102將奇偶數(shù)據(jù)DP寫到系統(tǒng)存儲器106中(步驟S205),最后磁盤控制器110使得數(shù)據(jù)D1寫到磁盤132中(步驟S206),再接著磁盤控制器110使得奇偶數(shù)據(jù)DP寫到磁盤136中(步驟S207)。
如上述的例子中可以發(fā)現(xiàn)到中央處理器106必需處理幾乎所有的步驟,如此會使得計算機系統(tǒng)的整體效能變差。
發(fā)明內(nèi)容
本發(fā)明提供一種用于冗余磁盤陣列數(shù)據(jù)存取的芯片組,該芯片組連結(jié)于一中央處理器,一系統(tǒng)存儲器以及一磁盤陣列間,該芯片組包括一北橋芯片,連接于該中央處理器以及該系統(tǒng)存儲器間,包含有一磁盤陣列加速器用以執(zhí)行磁盤陣列數(shù)據(jù)存取的功能;以及一南橋芯片,連接于該北橋芯片以及該磁盤陣列間,用以存取該磁盤陣列的數(shù)據(jù)。
再者,本發(fā)明提供一種用于冗余磁盤陣列數(shù)據(jù)存取的北橋芯片,該北橋芯片連結(jié)于一中央處理器,一系統(tǒng)存儲器間,該北橋芯片透過一南橋芯片連結(jié)至一磁盤陣列,該北橋芯片包括一磁盤陣列加速器,用以根據(jù)一磁盤陣列控制命令執(zhí)行磁盤陣列數(shù)據(jù)存取的功能;以及一北橋芯片緩存器,用以儲存該磁盤陣列控制命令。
再者,本發(fā)明提供一種磁盤陣列數(shù)據(jù)存取方法,包含有將一磁盤陣列控制命令映像至一北橋芯片緩存器中;一磁盤陣列加速器根據(jù)該磁盤陣列控制命令存取儲存于該系統(tǒng)存儲器的一第一數(shù)據(jù)以及一第二數(shù)據(jù);以及該磁盤陣列加速器根據(jù)該磁盤陣列控制命令對該第一數(shù)據(jù)以及該第二數(shù)據(jù)執(zhí)行邏輯運算以得到一第三數(shù)據(jù),并將該第三數(shù)據(jù)寫入該系統(tǒng)存儲器。
圖1是顯示一支持RAID的計算機系統(tǒng)示意圖。
圖2是顯示一執(zhí)行RAID數(shù)據(jù)寫入的流程圖。
圖3是顯示本發(fā)明一支持RAID的計算機系統(tǒng)示意圖。
圖4是顯示本發(fā)明一執(zhí)行RAID數(shù)據(jù)寫入的流程圖。
圖5是顯示本發(fā)明另一支持RAID的計算機系統(tǒng)示意圖。
圖6是顯示本發(fā)明另一執(zhí)行RAID數(shù)據(jù)寫入的流程圖。
圖7是顯示本發(fā)明一執(zhí)行RAID數(shù)據(jù)讀取的流程圖。
主要組件符號說明100、300、500~計算機系統(tǒng)102、302、502~中央處理器104、304、504~北橋芯片106、306、506~系統(tǒng)存儲器108、308、508~南橋芯片110、310、510~磁盤控制器130、330、530~磁盤陣列350、550~磁盤陣列加速器132、134、136、332、334、336、532、534、536~磁盤512~南橋芯片緩存器560~北橋芯片緩存器562~存儲器映像暫存區(qū)564~影像暫存區(qū)具體實施方式
為使本發(fā)明的上述和其它目的、特征、和優(yōu)點能更明顯易懂,下文特舉出較佳實施例,并配合附圖,作詳細說明如下。
圖3是顯示本發(fā)明一計算機系統(tǒng)300的示意圖。計算機系統(tǒng)300包括有磁盤陣列330、南橋芯片308、北橋芯片304、系統(tǒng)存儲器306以及中央處理器302。
在圖3中,假設(shè)磁盤陣列330是由3個磁盤所組成,包括有磁盤332、334以及336。南橋芯片308中包含有一個磁盤控制器310用以控制磁盤332、334以及336的存儲,以及一個磁盤陣列加速器(RAIDA)350用以執(zhí)行磁盤陣列的功能。北橋芯片304耦接于南橋芯片308、系統(tǒng)存儲器306以及中央處理器302之間。
圖4所示為計算機系統(tǒng)300執(zhí)行RAID數(shù)據(jù)寫入示例的流程圖。首先中央處理器302會先將數(shù)據(jù)D1寫到系統(tǒng)存儲器306中(步驟S401),接著磁盤控制器310從磁盤334中讀出另一筆數(shù)據(jù)D2并將數(shù)據(jù)D2經(jīng)由北橋芯片304寫到系統(tǒng)存儲器306中(步驟S402)。之后,磁盤陣列加速器350經(jīng)由北橋芯片304從系統(tǒng)存儲器106中讀取出數(shù)據(jù)D1以及D2(步驟S403),接著磁盤陣列加速器350將數(shù)據(jù)D1以及D2做異或(XOR)運算以得到奇偶數(shù)據(jù)DP(步驟S404),之后磁盤陣列加速器350將奇偶數(shù)據(jù)DP經(jīng)由北橋芯片304寫到系統(tǒng)存儲器306中(步驟S405),最后磁盤控制器310使得奇偶數(shù)據(jù)DP從系統(tǒng)存儲器306寫到磁盤336中(步驟S406),再接著磁盤控制器310使得數(shù)據(jù)D1從系統(tǒng)存儲器306寫到磁盤332中(步驟S407)。
由上述可知在南橋芯片308中置入一個磁盤陣列加速器可使得中央處理器302的負載降低進而提升計算機系統(tǒng)300的效能。但由于數(shù)據(jù)不斷透過北橋芯片304與南橋芯片306間的總線傳送,因此也占用了其總線的頻寬。
圖5顯示為本發(fā)明另一計算機系統(tǒng)500的示意圖。計算機系統(tǒng)500包括有磁盤陣列530、芯片組570、系統(tǒng)存儲器506以及中央處理器502。
在圖5中,芯片組570包含北橋芯片504以及南橋芯片508。假設(shè)磁盤陣列530是由3個磁盤所組成,包括有磁盤532、534以及536。南橋芯片508中包含有磁盤控制器510用以控制磁盤532、534以及536的存儲;以及南橋芯片緩存器512,用以暫存磁盤陣列加速器550的相關(guān)控制命令。北橋芯片504耦接于南橋芯片508、系統(tǒng)存儲器506以及中央處理器502之間。在本實施例中,磁盤陣列加速器(RAIDA)550設(shè)置于北橋芯片504中,用以執(zhí)行磁盤陣列(RAID)的功能。此外北橋芯片504還包含有一個北橋芯片緩存器560用以暫存相關(guān)的控制命令。
本發(fā)明圖3中由于磁盤陣列加速器350位于南橋芯片308中,因此磁盤陣列加速器350可以很容易的根據(jù)儲存于南橋芯片緩存器(圖中未顯示)中相關(guān)控制指令的設(shè)定而執(zhí)行RAID的功能。
而在本發(fā)明圖5中由于磁盤陣列加速器550置于北橋芯片504,因此在執(zhí)行RAID功能之前必需先將磁盤陣列加速器550相關(guān)的控制命令由南橋芯片緩存器512復(fù)制到北橋芯片緩存器560,以提供給磁盤陣列加速器550使用。
為了復(fù)制相關(guān)的控制指令至北橋芯片緩存器560,北橋芯片504會窺視(snoop)北橋芯片緩存器560中儲存關(guān)于磁盤控制器510相關(guān)控制命令的存儲器映像暫存區(qū)562,當操作系統(tǒng)或其它外部指令對存儲器映像暫存區(qū)562執(zhí)行寫入操作的時候,北橋芯片504將南橋芯片緩存器512中儲存關(guān)于磁盤陣列加速器550的磁盤陣列控制命令映像(mapping)到北橋芯片緩存器560的影像暫存區(qū)(shadow register)564中。而影像暫存區(qū)564可以是北橋芯片暫存區(qū)560中的特定區(qū)域,例如可以使用存儲器映像輸出輸入周期(MMIO cycle)的區(qū)域。
為了更具體的說明本發(fā)明,請參考圖6,其所示為計算機系統(tǒng)500執(zhí)行RAID數(shù)據(jù)寫入示例的流程圖600。
首先中央處理器502會先將數(shù)據(jù)D1寫到系統(tǒng)存儲器506中(步驟S601),接著磁盤控制器510從磁盤534中讀出另一筆數(shù)據(jù)D2并將數(shù)據(jù)D2經(jīng)由北橋芯片504寫到系統(tǒng)存儲器506中(步驟S602)。接著,北橋芯片504窺視存儲器映像暫存區(qū)562(步驟S603)。若操作系統(tǒng)或其它外部指令對存儲器映像暫存區(qū)562執(zhí)行寫入操作的時候,北橋芯片504將南橋芯片緩存器512中儲存關(guān)于磁盤陣列加速器550的磁盤陣列控制命令映像(mapping)到北橋芯片緩存器560的影像暫存區(qū)(shadow register)564中(步驟S604)。之后,磁盤陣列加速器550根據(jù)影像暫存區(qū)564的磁盤陣列控制命令從系統(tǒng)存儲器506中讀取出數(shù)據(jù)D1以及D2(步驟S605),接著磁盤陣列加速器550將數(shù)據(jù)D1以及D2做異或(Exclusive-OR XOR)的運算以得到奇偶數(shù)據(jù)DP(步驟S606),之后磁盤陣列加速器550將奇偶數(shù)據(jù)DP寫到系統(tǒng)存儲器506中(步驟S607),最后磁盤控制器510使得數(shù)據(jù)D1以及奇偶數(shù)據(jù)DP從系統(tǒng)存儲器506分別寫到磁盤532以及磁盤536中(步驟S608)。
圖7所示為本發(fā)明另一實施例計算機系統(tǒng)500執(zhí)行RAID數(shù)據(jù)讀取示例的流程圖700。
首先磁盤控制器510將儲存于磁盤532中的數(shù)據(jù)D1經(jīng)過南橋芯片508與北橋芯片504而儲存至系統(tǒng)存儲器506(步驟S701)。接著判斷數(shù)據(jù)D1是否為正確的數(shù)據(jù)(步驟S702)。如果數(shù)據(jù)D1為正確的數(shù)據(jù),則中央處理器502直接讀取儲存于系統(tǒng)存儲器506中的數(shù)據(jù)D1(步驟S703)。
如果數(shù)據(jù)D1不正確,則計算機系統(tǒng)500必須根據(jù)另一筆數(shù)據(jù)D2與奇偶數(shù)據(jù)DP來還原正確的數(shù)據(jù)D1。因此磁盤控制器510會將儲存于磁盤534中的數(shù)據(jù)D2以及儲存于磁盤536中的奇偶數(shù)據(jù)DP分別透過南橋芯片508與北橋芯片504而儲存到系統(tǒng)存儲器506(步驟S704)。而北橋芯片504窺視儲存磁盤控制器510相關(guān)控制指令的存儲器映像暫存區(qū)562(步驟S705)。若操作系統(tǒng)對存儲器映像暫存區(qū)562執(zhí)行寫入操作,則北橋芯片504會將南橋芯片緩存器512中儲存關(guān)于磁盤陣列加速器550的磁盤陣列控制命令映像(mapping)到北橋芯片緩存器560的影像暫存區(qū)564中(步驟S706)。接著,磁盤陣列加速器550根據(jù)影像暫存區(qū)564的磁盤陣列控制命令讀取儲存于系統(tǒng)存儲器506中的數(shù)據(jù)D2以及奇偶數(shù)據(jù)DP,并執(zhí)行反異或(EXCLUSIVE-NOR,XNOR)邏輯運算以得到正確的數(shù)據(jù)D1(步驟S707)。最后,磁盤陣列加速器550將正確的數(shù)據(jù)D1寫入系統(tǒng)存儲器506(步驟S708),如此中央處理器502即可從系統(tǒng)存儲器506中讀取到正確的數(shù)據(jù)D1(步驟S709),而后磁盤控制器510將正確的數(shù)據(jù)D1寫入磁盤532中(步驟S710)。
由上述可以發(fā)現(xiàn)由于本發(fā)明將磁盤陣列加速器550置于北橋芯片504中,如此可以減少數(shù)據(jù)在北僑芯片504與南橋芯片506間的總線傳送,使得總線的頻寬可以釋放,進而也減少了讀取系統(tǒng)存儲器數(shù)據(jù)506的等待時間(latency)。
本發(fā)明雖以較佳實施例公開如上,但其并非用以限定本發(fā)明的范圍,任何本領(lǐng)域的技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當可做些許的更動與潤飾,因此本發(fā)明的保護范圍當視后附的權(quán)利要求書所界定者為準。
權(quán)利要求
1.一種用于冗余磁盤陣列數(shù)據(jù)存取的芯片組,該芯片組連結(jié)于中央處理器、系統(tǒng)存儲器以及磁盤陣列間,該芯片組包括北橋芯片,連接于該中央處理器以及該系統(tǒng)存儲器間,包含有磁盤陣列加速器用以執(zhí)行磁盤陣列數(shù)據(jù)存取的功能;以及南橋芯片,連接于該北橋芯片以及該磁盤陣列間,用以存取該磁盤陣列的數(shù)據(jù)。
2.如權(quán)利要求1所述的芯片組,其中該北橋芯片還包含北橋芯片緩存器,包含有存儲器映像暫存區(qū),用以儲存磁盤控制器控制命令;以及影像暫存區(qū),用以儲存磁盤陣列控制命令,該磁盤陣列加速器根據(jù)該磁盤陣列控制命令執(zhí)行磁盤陣列數(shù)據(jù)存取的功能。
3.如權(quán)利要求2所述的芯片組,其中該影像暫存區(qū)使用存儲器映像輸出輸入周期,該北橋芯片窺視該存儲器映像暫存區(qū),當操作系統(tǒng)或外部指令對該存儲器映像暫存區(qū)執(zhí)行寫入操作時,該北橋芯片將儲存于該南橋芯片的該磁盤陣列加速器的控制命令映像到該影像暫存區(qū)。
4.如權(quán)利要求1所述的芯片組,其中該南橋芯片包含磁盤控制器,用以控制該磁盤陣列的數(shù)據(jù)存??;以及南橋芯片緩存器,用以儲存該磁盤陣列控制命令。
5.如權(quán)利要求1所述的芯片組,其中當執(zhí)行磁盤陣列數(shù)據(jù)存取功能時,該磁盤陣列加速器存取儲存于該系統(tǒng)存儲器的第一數(shù)據(jù)以及第二數(shù)據(jù),并對該第一數(shù)據(jù)以及該第二數(shù)據(jù)執(zhí)行邏輯運算以得到奇偶數(shù)據(jù)。
6.一種用于冗余磁盤陣列數(shù)據(jù)存取的北橋芯片,該北橋芯片連結(jié)于中央處理器、系統(tǒng)存儲器間,該北橋芯片透過南橋芯片連結(jié)至磁盤陣列,該北橋芯片包括磁盤陣列加速器,用以根據(jù)磁盤陣列控制命令執(zhí)行磁盤陣列數(shù)據(jù)存取的功能;以及北橋芯片緩存器,用以儲存該磁盤陣列控制命令。
7.如權(quán)利要求6所述的北橋芯片,其中該北橋芯片緩存器包含有影像暫存區(qū),用以儲存該磁盤陣列控制命令;以及存儲器映像暫存區(qū),用以儲存磁盤控制器控制命令。
8.如權(quán)利要求7所述的北橋芯片,其中該影像暫存區(qū)使用存儲器映像輸出輸入周期;該北橋芯片窺視該存儲器映像暫存區(qū),當操作系統(tǒng)或外部指令對該存儲器映像暫存區(qū)執(zhí)行寫入操作時,該北橋芯片將原本儲存于南橋芯片緩存器的該磁盤陣列控制命令映像到該影像暫存區(qū)。
9.如權(quán)利要求6所述的北橋芯片,其中當執(zhí)行磁盤陣列數(shù)據(jù)存取功能時,該磁盤陣列加速器存取儲存于該系統(tǒng)存儲器的第一數(shù)據(jù)以及第二數(shù)據(jù),并對該第一數(shù)據(jù)以及該第二數(shù)據(jù)執(zhí)行邏輯運算以得到奇偶數(shù)據(jù)。
10.一種磁盤陣列數(shù)據(jù)存取方法,包含有將磁盤陣列控制命令映像至北橋芯片緩存器中;磁盤陣列加速器根據(jù)該磁盤陣列控制命令存取儲存于該系統(tǒng)存儲器的第一數(shù)據(jù)以及第二數(shù)據(jù);以及該磁盤陣列加速器根據(jù)該磁盤陣列控制命令對該第一數(shù)據(jù)以及該第二數(shù)據(jù)執(zhí)行邏輯運算以得到第三數(shù)據(jù),并將該第三數(shù)據(jù)寫入該系統(tǒng)存儲器。
11.如權(quán)利要求10所述的磁盤陣列數(shù)據(jù)存取方法,其中該北橋芯片緩存器包含有存儲器映像暫存區(qū)以及影像暫存區(qū),其中窺視該存儲器映像暫存區(qū),當操作系統(tǒng)或外部指令對該存儲器映像暫存區(qū)執(zhí)行寫入操作時,將該磁盤陣列控制命令映像至該影像暫存區(qū)。
12.如權(quán)利要求11所述的磁盤陣列數(shù)據(jù)存取方法,還包括將該磁盤陣列控制命令自南橋芯片緩存器映像至該影像暫存區(qū),其中該影像暫存區(qū)使用存儲器映像輸出輸入周期。
13.如權(quán)利要求10所述的磁盤陣列數(shù)據(jù)存取方法,其中當執(zhí)行磁盤陣列數(shù)據(jù)寫入功能時,中央處理器將該第一數(shù)據(jù)寫入該系統(tǒng)存儲器,磁盤控制器將儲存于磁盤陣列的該第二數(shù)據(jù)寫入至該系統(tǒng)存儲器,該磁盤陣列加速器將該第一數(shù)據(jù)以及該第二數(shù)據(jù)進行異或邏輯運算以得到奇偶數(shù)據(jù),并使得該磁盤控制器使得該第一數(shù)據(jù)以及該奇偶數(shù)據(jù)寫入該磁盤陣列中。
14.如權(quán)利要求10所述的磁盤陣列數(shù)據(jù)存取方法,其中當執(zhí)行磁盤陣列數(shù)據(jù)讀取功能時,磁盤控制器將儲存于磁盤陣列的該第一數(shù)據(jù)以及該第二數(shù)據(jù)寫入至該系統(tǒng)存儲器,該磁盤陣列加速器將該第一數(shù)據(jù)以及該第二數(shù)據(jù)進行反異或邏輯運算以得到該第三數(shù)據(jù),其中該第一數(shù)據(jù)為奇偶數(shù)據(jù),其中中央處理器讀取儲存于該系統(tǒng)存儲器的第三數(shù)據(jù),而該磁盤控制器使得該第三數(shù)據(jù)寫入該磁盤陣列中。
全文摘要
一種用于冗余磁盤陣列數(shù)據(jù)存取的芯片組,連結(jié)于中央處理器、系統(tǒng)存儲器以及磁盤陣列間。北橋芯片連接于中央處理器以及系統(tǒng)存儲器間,包含有磁盤陣列加速器,用以執(zhí)行磁盤陣列數(shù)據(jù)存取的功能。南橋芯片連接于北橋芯片以及磁盤陣列間,用以存取磁盤陣列的數(shù)據(jù)。
文檔編號G06F12/00GK1959620SQ20061014353
公開日2007年5月9日 申請日期2006年11月10日 優(yōu)先權(quán)日2006年11月10日
發(fā)明者蘇俊源, 蔡兆爵, 賴瑾 申請人:威盛電子股份有限公司