專利名稱::進行硬盤陣列同位運算的裝置與相關方法
技術領域:
:本發明提供一種進行硬盤陣列同位運算的裝置與相關方法,特別指一種以硬件運算模塊配合直接存儲器存取(memoryaccess)機制來進行硬盤陣列同位運算的裝置與相關方法。
背景技術:
:計算機系統是現代信息社會不可或缺的硬件基礎之一。為了要運算、管理各種各樣的電子信號與數據、資料,計算機系統中都設有硬盤作為存儲裝置,用來以非易失的方式存儲電子信息、文件及多媒體文檔。隨著數據量的增加,如何快速、安全地由硬盤中存取大量的資料數據,也成為現代信息廠商研發的重點。隨著硬盤容量增加、價格降低,現代的計算機系統中已經能以多個硬盤來組合成硬盤陣列(RAID),以多個硬盤合并運作的方式,使數據的存取效率增加,還具備有容錯能力,能在數據存取過程中容忍相當的錯誤。如熟知技術者所知,依運作方式不同,現行的硬盤陣列結構也分為許多種類,如RAID0、RAID1、RAID0+1、RAID2至RAID5等種類。其中,RAID3至RAID5的硬盤陣列皆使用異或(XOR,exclusiveOR)來產生同位檢查碼,并利用同位檢查的方式來實現硬盤陣列的容錯能力。舉例來說,在以二個硬盤所組成的RAID5硬盤陣列中,當有一批數據要存儲入該硬盤陣列中時,該批數據會被劃分(stripe)為兩組不同的成分數據,分別被存儲至不同的硬盤;此外,還要根據這兩組成份數據進行異或(XOR)的邏輯運算,以產生對應的同位檢查數據;該同位檢查數據也會被存儲至硬盤陣列中。當有一個硬盤故障時,根據另一硬盤上的同位檢查數據及該硬盤上剩下的成分數據,還是能復原出原來那批數據,達到容錯的目的。由以上描述可知,在存取硬盤陣列(尤其是RAID3至5的硬盤陣列)時,需要頻繁地進行異或的同位運算,才能順利地實現硬盤陣列的容錯功能。而在常規的技術中,這種同位運算會以硬件或軟件技術來實現。在硬件的實現技術方面,現有的常規技術除了會在硬盤陣列控制器設置同位運算的處理硬件,還會附加上專用的存儲器來支援同位運算所需的存儲資源。由于這種常規的硬盤陣列控制器具有專用的存儲器,連帶地,控制器中也要有對應的硬件來管理該存儲器的存取,如地址解碼器(decoder)等。而這也使得該類硬盤陣列控制器的構造復雜,成本高昂,耗能、發熱量均較高,電路的體積也較大,不適合內建于主機板或芯片組中,只適合以附插卡的形式安裝于計算機系統中。另一方面,在以軟件來實現同位運算的常規技術中,則需要以中央處理器執行軟件來進行異或運算。明顯地,這種常規技術將會增加中央處理器的運算負擔,降低計算機系統整體的運作效能。
發明內容因此,本發明的主要目的,即是提出一種利用直接存儲器存取機制實現的硬件同位運算技術,以克服前述常規技術的各種缺點。本發明主要是以硬盤陣列控制器中的硬件來進行同位運算,但本發明還進一步地利用硬盤陣列控制器的直接存儲器存取機制,使硬盤陣列控制器能直接利用計算機系統本身的系統存儲器來支援同位運算所需的存儲資源。如此一來,本發明就能在不占用中央處理器的情形下,快速、高效能地進行硬件同位運算,卻不必在硬盤陣列控制器中設置專用的存儲器及相關電路。因此,本發明的硬盤陣列控制器具有精簡的結構、低廉的成本、較低的耗能與發熱量,不僅能以附插卡的形式安裝于計算機系統中,也能綜合于主機板或芯片組中。一般來說,在現行的計算機系統結構下,是以芯片組電連接在中央處理器與系統存儲器之間,而各種周邊裝置的控制器,如硬盤控制器(IDEcontroller,IDE即integrateddeviceelectronics)或是硬盤陣列控制器等則可綜合于芯片組內,或是通過總線(如PCI總線,peripheralcomponentinterconnectbus)連接到芯片組。為了減輕中央處理器的工作負擔,這些控制器可啟動總線主控(busmaster)事件而進行直接存儲器存取,經由芯片組中的北橋電路直接存取系統存儲器中的數據。為了協調控制器的直接存儲器存取作業,控制器中會設有一些暫存器,用來暫存直接存儲器存取所需的指針及狀態等數據。舉例來說,控制器中的暫存器可包括有符表指針(descriptortablepointer)的暫存器以及一個代表直接存儲器存取作業情形的狀態暫存器。當控制器要開始總線主控(busmaster)而直接存取系統存儲器中的數據時,這些數據于系統存儲器中的地址會被記錄于一描述符表(PRDT,physicalregiondescriptortable)中,而中央處理器可執行對應的軟件(如驅動程序)來將一符表指針(PRDTpointer)存儲至控制器的對應暫存器,該符表指針就是用來記錄描述符表于系統存儲器中的地址。而在控制器進行直接存儲器存取時,就可根據符表指針而在系統存儲器中找到描述符表,再根據描述符表存取到對應的數據。除了符表指針與描述符表的機制外,直接存儲器存取中控制器的狀態暫存器則能響應控制器對直接存儲器存取的進行狀況。為了實現數據同步(datasynchronization),在現行的直接存儲器存取結構下,只要中央處理器依軟件執行情形而讀取該狀態暫存器中暫存的狀態數據,控制器就會在響應狀態數據之前,完成對系統存儲器的存取。換句話說,只要中央處理器在讀取狀態暫存器后取得控制器響應的狀態數據,就代表控制器已經完成直接存儲器存取;而這種機制就可成為控制器響應軟件層控制的管道。利用直接存儲器存取中各種相關的機制,就可實現本發明的技術。在本發明中,會在硬盤陣列的控制器內設置同位運算的硬件,再利用符表指針-描述符表的機制,使控制器可取得各批要進行同位運算的數據。在進行硬件的同位運算后,本發明同樣也可利用符表指針-描述符表的機制,將同位運算的結果直接回存至系統存儲器。換句話說,在本發明中,硬盤陣列控制器中的同位運算硬件可直接利用系統存儲器來支援同位運算所需的存儲資源,故本發明能以精簡的結構在硬盤陣列控制器中實現硬件同位運算。在本發明中,可利用三種不同的方式來利用符表指針-描述符表的機制,讓控制器能存取到需要進行同位運算的各批數據,并將同位運算的結果回存至系統存儲器。另一方面,本發明也可利用硬盤陣列控制器中的狀態暫存器機制,來提供硬件同位運算對軟件層響應的管道。當中央處理器在執行硬盤陣列控制器的軟件驅動程序而要利用控制器中的硬件來進行同位運算時,中央處理器只要讀取控制器中的狀態暫存器,控制器就可開始進行硬件的同位運算處理,并在將狀態暫存器的狀態數據響應給中央處理器之前,完成同位運算,將結果回存至系統存儲器。換句話說,只要中央處理器在驅動程序的軟件層得到控制器響應的狀態數據,就代表硬盤陣列控制器已經完成硬件同位運算。利用直接存儲器存取,本發明在進行硬件同位運算時就不需占用中央處理器的效能,硬盤陣列控制器也能以精簡、低成本、低耗能的結構實現硬件同位運算,快速、有效率地支援硬盤陣列的各種相關運作。圖1為本發明計算機系統的功能方塊示意圖。圖2為圖1中計算機系統進行同位運算的第一實施例的示意圖。圖3為圖1中計算機系統進行同位運算的第二實施例的示意圖。圖4為圖1中計算機系統進行同位運算的第三實施例的示意圖。圖5為圖1中計算機系統進行同位運算時的流程示意圖。附圖符號說明10計算機系統12中央處理器14北橋電路16接口電路18存取模塊20控制器22運算模塊24暫存模塊28驅動程序30存儲器102-108步驟HD(1)-HD(M)硬盤T(1)-T(N)、Tr描述符表P(1)-P(N)、Pr符表指針D(1)-D(N)、Dr數據S狀態數據P0總符表指針具體實施方式請參考圖1。圖1為本發明計算機系統10一實施例的示意圖。計算機系統10中設有一中央處理器12、一北橋電路14、一接口電路16、一存儲器30以及一控制器20。中央處理器12用來主控計算機系統10,作為系統存儲器的存儲器30可以是一動態隨機存取存儲器,用來支援中央處理器12運作所需的存儲資源;北橋電路14則電連接在中央處理器12與存儲器30之間,管理對存儲器30的數據存取。本發明的控制器20可以是一硬盤陣列控制器,其可經由總線(如ATA/ATAPI、serialATA或是SCSI規格的總線,其中ATA/ATAPI為AdvancedTechnologyAttachment/ATApacketinterface,SCSI為SmallComputerSystemInterface)通道電連接到多個存儲裝置(圖1中以硬盤HD(1)至HD(M)做為代表),以將這多個存儲裝置綜合為一硬盤陣列,并管理其數據存取。而控制器20本身則通過接口電路16電連接到北橋電路14。舉例來說,若控制器20是綜合于南橋電路中的,接口電路16就可以是南橋電路中的其他電路,與北橋電路14、控制器20綜合為一芯片組。若控制器20是以附插卡形式安裝于計算機系統10中,則接口電路16可以是南橋電路,而控制器20則通過總線(如PCI總線)電連接到接口電路16。為了實現硬盤陣列運作中所需的同位運算,本發明的控制器20中還設有一存取模塊18、一運算模塊22以及一暫存模塊24。存取模塊18可經由北橋電路14來存取存儲器30,運算模塊22即用來以硬件進行同位運算,如對多批輸入數據進行異或(XOR)的邏輯運算后,算出對應的同位數據。而暫存模塊24用來提供控制器20所需的暫存空間,如用來暫存狀態數據的狀態暫存器以及暫存符表指針的符表指針暫存器,皆可由暫存模塊24來提供。另外,在硬盤陣列運作期間,中央處理器12則可通過對驅動程序28的執行,來操作管理控制器20,進而通過控制器20來控制硬盤陣列。如前面提到過的,本發明可利用三種不同的方式來運用直接存儲器存取的符表指針-描述符表機制以及狀態暫存器機制,以支援硬盤陣列運作期間所需的同位運算。以下就以三個實施例來分別加以說明。首先,請參考圖2(并一并參考圖1);圖2即為圖1的計算機系統10在本發明的第一實施例中進行硬件同位運算的示意圖。假設在硬盤陣列運作期間,控制器20有需要對數據D(1)、D(2)至D(N)進行硬件同位運算以產生一對應的同位數據Dr;此時,中央處理器12除了在存儲器30中準備好各批同位運算的輸入數據D(1)至D(N),還能通過對驅動程序28的執行,在存儲器30中準備好各個描述符表T(1)至T(N)及Tr,并將各個符表指針P(1)至P(N)以及Pr填入至控制器20的暫存模塊24中。在存儲器30中,每一描述符表T(n)對應于一批數據D(n),用來記錄數據D(n)在存儲器30中的地址區域。更具體地說,各個描述符表T(n)中可另外包含有多個描述符(physicalregiondescriptor,未示于圖2),各個描述符用來描述數據D(n)一部份的數據于存儲器30中的地址區域。集合各個描述符中記錄的信息,描述符表T(n)就能描述整批數據D(n)于存儲器30中所占用的地址區域。描述符表Tr則用來記錄數據Dr于存儲器30中的地址區域。而在暫存模塊24中,符表指針P(1)至P(N)則分別對應于描述符表T(1)至T(N),各符表指針P(n)用來記錄描述符表T(n)于存儲器30中所占用的地址區域;符表指針Pr則記錄有描述符表Tr于存儲器30中的地址區域。當控制器20由暫存模塊24中得到各個符表指針P(1)至P(N)后,控制器20中的存取模塊18就能根據各符表指針P(1)至P(N)中所記錄的地址區域而在存儲器30中存取到各個描述符表T(1)至T(N)。根據這些描述符表T(1)至T(N),控制器20就能進一步由存儲器30中存取到數據D(1)至D(N)。然后,硬件的運算模塊22就能對數據D(1)至D(N)進行同位運算,算出對應的同位數據Dr。根據符表指針Pr,存取模塊18能存取到描述符表Tr,進而將運算模塊22算出來的同位數據Dr存入描述符表Tr所記錄的地址區域,完成整個同位運算的過程。至于上述同位運算進行的時機,中央處理器12可以利用對狀態暫存器的讀取來加以控制。如圖2所示,控制器20可另外在暫存模塊24中暫存一狀態數據S,由暫存模塊24來實現一狀態暫存器的功能。中央處理器12在準備好各個描述符表T(1)至T(N)、Tr以及各個符表指針P(1)至P(N)、Pr后,就可由狀態暫存器中讀取狀態數據S。而控制器20就會開始取得數據D(1)至D(N),進行硬件同位運算以計算出對應的同位數據Dr,并在將同位數據Dr回存至存儲器30后,才將狀態數據S回傳給中央處理器12。換句話說,當中央處理器12進行讀取并得到控制器20響應的狀態數據,就代表控制器20已經完成硬件同位運算,并將運算結果的同位數據Dr回存至存儲器30。在本發明于圖2的實施例中,要完成一次硬件同位運算,控制器20中的暫存模塊24要暫存N+1個符表指針(也就是符表指針Tr及T(1)至T(N))及一個狀態數據S,相當于要實現N+1個符表指針暫存器與一個狀態暫存器;而中央處理器12則要從控制器20的暫存模塊24中存取這N+1個符表指針暫存器。舉例來說,若控制器20是將兩個硬盤綜合為一個RAID5硬盤陣列,當要存取該硬盤陣列時,控制器20會需要對兩批數據(即N=2)進行同位運算而得到一批同位數據,在該情況下,控制器20中的暫存模塊24就要實現出3個符表指針暫存器及一個狀態暫存器。不過,在現行的技術中,管理多硬盤的控制器本來就需要為每一個硬盤設置一個對應的符表指針暫存器,故本發明于圖2的實施例其實并不會比現行技術的控制器需要更多的符表指針暫存器。請參考圖3(并一并參考圖1)。圖3為計算機系統10于本發明的第二實施例中進行硬件同位運算的示意圖。類似于圖2中的實施例,在圖3的實施例中,當硬盤陣列控制器20在硬盤陣列運作期間要對數據D(1)、D(2)至D(N)做硬件同位運算時,中央處理器12仍會配合驅動程序28的執行而在存儲器30中準備好各個對應的描述符表T(1)至T(N)及Tr,以及各個對應的符表指針P(1)至P(N)以及Pr。較為不同的是,在圖3的實施例中,控制器20中的暫存模塊24僅需實現一個符表指針暫存器及一個狀態暫存器,而各個符表指針P(1)至P(N)、Pr則是依序被一一填入至符表指針暫存器中,讓控制器20能依序存取到各批數據D(1)至D(N)。舉例來說,符表指針P(1)會先被填入至控制器20中的符表指針暫存器中,讓控制器20能根據符表指針P(1)存取到存儲器30中的描述符表T(1),并進一步根據描述符表T(1)存取到數據D(1)。然后符表指針P(2)會被填入至符表指針暫存器中,讓控制器20能經由描述符表T(2)存取到數據D(2);以此類推。存取到各批數據D(1)至D(N)后,控制器20中的硬件運算模塊22就能進行同位運算而得出對應的同位數據Dr;而且,符表指針Pr也會被填入至符表指針暫存器中,讓控制器20能根據描述符表Tr知道要將該同位數據Dr存入至存儲器30中的哪些地址區域。類似于圖2中的實施例,本發明于圖3中的實施例仍可沿用狀態暫存器的機制來作為控制器20與軟件層溝通的管道。也就是說,中央處理器12可向控制器20要求讀取狀態暫存器中的狀態數據S,而當控制器20將狀態數據S響應給中央處理器12時,就代表控制器20已經完成硬件的同位運算了。對本發明于圖3的實施例來說,在對N批數據D(1)至D(N)進行同位運算時,控制器20中僅需實現出一個符表指針暫存器及一個狀態暫存器,不過要對此一符表指針暫存器進行N+1次存取,以依序填入符表指針P(1)至P(N)以及Pr。舉例來說,當要對兩批數據進行同位運算時,控制器20中僅需一個符表指針暫存器及一個狀態暫存器,但要對該單一符表指針暫存器進行3次存取。由于現代的計算機系統所能支援的存儲空間越來越大,用來定址數據的地址本身也會更長(具有更多位),也使得符表指針的數據量增加。因此,現行的計算機系統也已經可以運用多次填入的方式來利用單一的符表指針暫存器,如可支援ATA48位規格的直接存儲器存取,就會利用符表指針暫存器的多次填入,來將一個較長的符表指針分成不同的片段依序填入至符表指針暫存器。因此,本發明于圖3中的實施例,不論是電路結構或是控制時序,都不會逾越現行計算機系統的規格,也不會增加計算機系統運作的復雜程度。請參考圖4。圖4為本發明計算機系統10以直接存儲器存取實現硬件同位運算的第三實施例的示意圖。類似于前兩個實施例,在圖4的實施例中,當控制器20要對數據D(1)至D(N)進行同位運算時,中央處理器12會配合驅動程序28的執行而在存儲器30中準備好數據D(1)至D(N),以及對應的描述符表T(1)至T(N)及Tr。同樣地,中央處理器12還是要準備符表指針P(1)至P(N)及Pr來指示各個描述符表于存儲器30中的地址。比較不同的是,在圖4的實施例中,符表指針P(1)至P(N)及Pr會被存入至存儲器30,而這些符表指針P(1)至P(N)于存儲器30中的地址,則會被紀錄至一總符表指針P0。而該總符表指針P0會被填入至控制器20的暫存模塊24中。因此,在圖4的實施例中,控制器20的暫存模塊24也只需要實現出一個符表指針暫存器及一個狀態暫存器,該符表指針暫存器暫存的就是總符表指針P0。整體來說,當控制器20要對數據D(1)至D(N)進行硬件同位運算時,控制器20會先根據符表指針暫存器中的總符表指針P0存取到存儲器30中的各個符表指針P(1)至P(N)以及Pr,再根據這些符表指針存取到描述符表T(1)至T(N)及Tr。根據描述符表T(1)至T(N),控制器20就能在存儲器30中存取到數據D(1)至D(N)來進行硬件同位運算,并根據描述符表Tr,將算出來的同位數據Dr存入存儲器30中,完成硬件同位運算。同樣地,上述運作過程的時機可以用狀態暫存器的讀取來控制;當中央處理器12讀取狀態暫存器中的狀態數據S時,控制器20就會以直接存儲器存取進行硬件同位運算;當中央處理器12在軟件層得到控制器20響應的狀態數據S時,就代表控制器20已經完成硬件同位運算,并已將算出的同位數據Dr回存至存儲器30。由以上描述可知,在本發明于圖4的實施例中,當要對N批數據D(1)至D(N)進行同位運算時,僅需在控制器20中實現一個符表指針暫存器以及一個狀態暫存器,也僅需對該符表指針暫存器進行一次存取(也就是填入總符表指針P0);相對地,各個符表指針P(1)至P(N)、Pr則要被填入(存儲至)存儲器30中。等效上來說,存儲器30中的各個符表指針P(1)至P(N)及Pr可視為一個描述符表中的各個符表單元(tableentry),而總符表指針P0就可指引控制器20來存取到這個包含有各個符表指針的等效描述符表。因此,本發明于圖4的實施例還是可沿用現行直接存儲器存取下的符表指針-描述符表機制來加以實現,并不會增加實現上的復雜程度。與本發明于圖2、圖3的實施例相比,本發明于圖4的實施例應會有較高的效能,因為在圖4的實施例中,對暫存模塊24的存取最少。同樣要對N批數據D(1)至D(N)進行同位運算,圖2的實施例需要對暫存模塊24進行N+1次的符表指針存取(也就是在N+1個符表指針暫存器中填入各個符表指針),圖3的實施例也要對暫存模塊24進行N+1次的符表指針存取(對單一符表指針暫存器依序進行N+1次存取)。而在圖4的實施例中,則僅需對控制器20的暫存模塊24進行一次的符表指針存取(填入總符表指針P0);雖然,在圖4的實施例進行同位運算期間,還要額外在存儲器30中存取各個符表指針P(1)至P(N)及Pr,但由于對存儲器30的存取會比對暫存模塊24的存取來得更快、更有效率,因此,可減少對暫存模塊24存取的圖4實施例會具有較高的效能,其硬件同位運算所花的時間應會較短。本發明于上述各實施例中進行硬件同位運算的過程可歸納于圖5。請參考圖5(并一并參考圖1);圖5即為本發明計算機系統10藉由直接存儲器存取機制進行硬件同位運算的流程示意圖,其具有下列步驟步驟102在硬盤陣列運作期間,當要各批輸入數據D(1)至D(N)進行同位運算時,中央處理器12可配合軟件驅動程序28的執行而為各批數據準備好對應的描述符表,并將這些描述符表存儲在存儲器30中。當然,也要將相關的符表指針(或圖4實施例中的總符表指針)填入至控制器20的暫存模塊24。步驟104利用直接存儲器存取中符表指針-描述符表的機制,直接由存儲器30中取得同位運算所需的數據D(1)至D(N)。步驟106由控制器20中的運算模塊22進行硬件的同位運算。步驟108利用直接存儲器存取中狀態暫存器的機制,使控制器20將同位運算的結果(也就是同位數據Dr)回存至存儲器30中。當中央處理器12在驅動程序28的軟件層面取得控制器20響應的狀態數據時,就代表控制器20已經完成硬件同位運算,并已將同位運算的結果回存至系統存儲器(也就是存儲器30)總結來說,本發明可利用直接存儲器存取的機制而在硬盤陣列控制器中實現結構精簡的硬件同位運算,以便在硬盤陣列運作期間服務其所需的同位運算需求。與常規技術中以軟件來實現的同位運算相比較,本發明的同位運算可減輕中央處理器的運作負擔,使整個計算機系統具有更高的效能。與常規技術中以硬件來實現的同位運算相比較,本發明則可利用計算機系統中原本已設置的系統存儲器及相關電路(如北橋電路)來支援同位運算期間所需要的存儲資源,故本發明控制器的硬件結構精簡,不需設置專用存儲器,成本較低,體積較小,耗能發熱均較少,不僅可利用附插卡的形式安裝于計算機系統中,還可綜合設置于主機板或芯片組內,符合現代計算機力求輕薄短小的需求。另外,本發明利用直接存儲器存取中的狀態暫存器機制來溝通控制器與軟件層,也能減少對中央處理器效能的干擾。在常規技術中,不論是用硬件或軟件來實現同位運算,都要在同位運算完成后對中央處理器發出中斷(interrupt)信號,通知中央處理器;此時,中央處理器就需要耗用相當的效能來處理中斷信號。相較之下,本發明以狀態暫存器機制來做為中央處理器與控制器間的溝通管道,中央處理器就不需要像處理中斷信號那樣耗用較多效能。另外,除了在硬盤陣列所需的同位運算之外,只要改變運算模塊22的硬件功能,本發明就可以利用直接存儲器存取來進行其他種類的硬件運算。舉例來說,在RAID2的硬盤陣列中,會需要將數據進行漢明碼(hammingcode)的編碼;若將運算模塊22的硬件運算功能擴充為漢明碼的編碼,本發明就能利用系統存儲器來支援硬件漢明碼編碼所需的存儲資源,在硬盤陣列控制器中以精簡的結構來實現硬件漢明碼編碼。以上所述僅為本發明的較佳實施例,凡依本發明權利要求所進行的等效變化與修改,皆應屬本發明的涵蓋范圍。權利要求1.一種計算機系統,其包含有一中央處理器;一存儲器;一北橋電路,電連接到該中央處理器及該存儲器之間;以及一控制器,電連接到該北橋電路;該控制器中包含有一存取模塊,其可經由該北橋電路由該存儲器中讀取至少兩批輸入數據;以及一運算模塊,用來對該存取模塊讀取的各批輸入數據進行邏輯運算以提供一對應的同位數據,而該存取模塊還可將該同位數據經由該北橋電路存儲至該存儲器。2.如權利要求1所述的計算機系統,其中該控制器還包含有一暫存模塊,其可暫存一狀態數據;而該運算模塊于該中央處理器讀取該狀態數據時進行邏輯運算,且該存取模塊可在該中央處理器取得該狀態數據之前,將該運算模塊提供的同位數據經由該北橋電路存儲至該存儲器。3.如權利要求2所述的計算機系統,其中該中央處理器還可將至少一符表指針存儲至該暫存模塊,而該存取模塊根據該符表指針由該存儲器中讀取該各批輸入數據。4.如權利要求3所述的計算機系統,其中該存儲器存儲有至少一描述符表,各描述符表用來記錄一對應的輸入數據于該存儲器中的地址區域;而各符表指針用來記錄一對應的描述符表于該存儲器中的地址;當該存取模塊由該存儲器中讀取該各批輸入數據時,先根據該符表指針由該存儲器中讀取各描述符表,再根據各描述符表由該存儲器中讀取該各批輸入數據。5.如權利要求2所述的計算機系統,其中該中央處理器可依序于不同時間在該暫存模塊中分別存儲一符表指針,各符表指針用來記錄一對應的描述符表于該存儲器中的地址,而各描述符表用來記錄一對應的輸入數據于該存儲器中的地址區域;而當該存取模塊由該存儲器中讀取該各批輸入數據時,在該中央處理器將每一符表指針存儲于該暫存模塊后,依據該符表指針及對應的描述符表而由該存儲器中讀取對應的輸入數據。6.如權利要求2所述的計算機系統,其中該存儲器中存儲有多個符表指針及多個描述符表,各描述符表用來記錄一對應的輸入數據于該存儲器中的地址區域,各符表指針用來記錄一對應的描述符表于該存儲器中的地址;且該中央處理器可將一總符表指針存儲至該暫存模塊,該總符表指針用來記錄各符表指針于該存儲器中的地址;而當該存取模塊由該存儲器中讀取該各批輸入數據時,先根據該總符表指針由該存儲器中讀取各符表指針,再根據各符表指針讀取各描述符表,并根據各描述符表由該存儲器中讀取該各批輸入數據。7.如權利要求1所述的計算機系統,其還包含有至少一存儲裝置,電連接到該控制器;而該控制器還可將各輸入數據及對應的同位數據傳輸至各存儲裝置。8.一種于一計算機系統中進行同位運算的方法,該計算機系統中設有一存儲器及一暫存模塊,而該方法包含有由該存儲器中讀取至少兩批輸入數據;于該暫存模塊中暫存一狀態數據;在讀取該狀態數據時,對該各批輸入數據進行邏輯運算以提供一對應的同位數據;以及在由該暫存模塊取得該狀態數據前,將該同位數據存儲至該存儲器。9.如權利要求8所述的方法,其還包含有將至少一描述符表存儲至該存儲器,其中各描述符表分別用來記錄一對應的輸入數據于該存儲器中的地址區域;以及將至少一符表指針存儲于該暫存模塊,其中各符表指針用來記錄一對應的描述符表于該存儲器中的地址;而當要由該存儲器中讀取該各批輸入數據時,先根據該符表指針由該存儲器中讀取各描述符表,再根據各描述符表由該存儲器中讀取該各批輸入數據。10.如權利要求8所述的方法,其還包含有將多個符表指針及多個描述符表存儲至該存儲器,其中各描述符表分別用來記錄一對應的輸入數據于該存儲器中的地址區域,各符表指針用來記錄一對應的描述符表于該存儲器中的地址;以及將一總符表指針存儲至該暫存模塊,該總符表指針用來記錄各符表指針于該存儲器中的地址;而當要由該存儲器中讀取該各批輸入數據時,先根據該總符表指針由該存儲器中讀取各符表指針,再根據各符表指針讀取各描述符表,并根據各描述符表由該存儲器中讀取該各批輸入數據。11.如權利要求8所述的方法,其還包含有依序于不同時間在該暫存模塊中分別存儲一符表指針,各符表指針用來記錄一對應的描述符表于該存儲器中的地址,而各描述符表用來記錄一對應的輸入數據于該存儲器中的地址區域;而當要由該存儲器中讀取該各批輸入數據時,在將每一符表指針存儲于該暫存模塊后,依據該符表指針及對應的描述符表而由該存儲器中讀取對應的輸入數據。全文摘要本發明提供一種進行硬盤陣列同位運算的裝置與相關方法。在可容錯的硬盤陣列中,要以硬盤陣列存取各硬盤中的數據時,有需要根據各批數據計算出一對應的同位數據;而在本發明中,即是在硬盤陣列控制器中設置同位運算的硬件,再配合硬盤陣列控制器的直接存儲器存取機制,于系統存儲器中直接存取各批數據及運算后的同位數據,以運用系統存儲器來支援同位運算所需的存儲資源,并減少同位運算對中央處理器的負擔。文檔編號G06F3/06GK1588300SQ200410056440公開日2005年3月2日申請日期2004年8月9日優先權日2004年8月9日發明者李勇申請人:威盛電子股份有限公司