儲存裝置及其相關系統的制作方法
【技術領域】
[0001]本發明是有關于一種儲存裝置與相關的數據處理系統,且特別是有關于一種儲存裝置以及將儲存裝置運用于巨量數據分析(big data analysis)的計算機系統。
【背景技術】
[0002]眾所周知,巨量數據(big data)是指數據量的規模巨大,無法利用單一電腦在合理的時間之內完成分析與處理。而利用分布式運算(distributed computing)的概念是電腦科學中用來實現巨量數據分析與處理非常重要的方式。
[0003]一般來說,所謂分布式運算的概念就是利用大量電腦的運算資源來處理巨量數據。在實際的運用上,利用連接于網絡上的多個服務器來進行分配數據的存取以及運算,而個別服務器計算完成的結果再通過網絡傳回數據中心的電腦。因此,數據中心的電腦可以分析所有服務器回傳的結果,并完成巨量數據的分析與處理。
[0004]很明顯地,要達成巨量數據的分析與處理需要先由財力雄厚的大型網絡公司采購數以萬計的服務器以組成一個龐大的運算資源,如此才可以讓使用者通過網絡來進行巨量數據的分析與處理。
[0005]因此,如何利用單一電腦搭配周邊裝置在本地(local)完成巨量數據的分析與處理,即為本發明所欲達成的目的。
【發明內容】
[0006]本發明為一種儲存裝置,利用一總線連接至一主機,該儲存裝置包括:一儲存媒體;以及一控制單元,連接至該主機與該儲存媒體,其中該控制單元接收一分析數據或者該控制單元根據該主機的指令將一寫入數據儲存于該儲存媒體或者由該儲存媒體中將一讀取數據輸出至該主機;其中,該控制單元包括一算術邏輯單元,用以根據內建的一運算法則進行該分析數據、該寫入數據或者該讀取數據的分析與處理并產生一分析結果至該主機或將此結果存于該儲存媒體。再者,主機還可以更新或者擴充該運算法則,當此一內建的運算法則不存在或不適用時,主機必須更新此運算法則。
[0007]本發明系為一種具備儲存裝置的計算機系統,包括:多個儲存裝置,其中每一該儲存裝置中包括一算術邏輯單元;與一主機,利用多條總線對應連接至該些儲存裝置,其中該主機系將一巨量數據分成多個子數據分別寫入于每一該儲存裝置,并且每一該儲存裝置中的該算術邏輯單元根據內建的一運算法則分析主機輸入的該些子數據其中之一,并產生一分析結果至該主機,使得該主機根據該些儲存裝置輸出的多個分析結果產生一最終分析結果O
[0008]為了對本發明的上述及其他方面有更佳的了解,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下:
【附圖說明】
[0009]圖1A所繪示為計算機系統中主機與固態硬盤之間的連接示意圖。
[0010]圖1B所繪示為固態硬盤中控制單元內部示意圖。
[0011]圖2所繪示為本發明固態硬盤以及控制單元內部示意圖。
[0012]圖3所繪示為本發明結合多個固態硬盤的計算機系統。
[0013]其中,附圖標記說明如下:
[0014]100、200:計算機系統
[0015]105、255:閃存
[0016]110、210、250:固態硬盤
[0017]112:主機
[0018]120:外部總線
[0019]122:內部總線
[0020]130,230,260:控制單元
[0021]131,231:指令分析單元
[0022]133、233:錯誤校正碼解編器
[0023]135、235:邏輯至物理地址轉換單元
[0024]137、237:高速緩存
[0025]239:算術邏輯單元
【具體實施方式】
[0026]請參照圖1A,其所繪示為計算機系統中主機與固態硬盤之間的連接示意圖。在計算機系統100中,主機112利用一外部總線120連接至固態硬盤110。其中,主機112至少包括中央處理器與芯片集(chipset),且外部總線120可為SATA總線、USB總線、PC1-e總妹坐坐
O
[0027]再者,固態硬盤110中的控制單元130連接于外部總線120,并利用一內部總線122連接至一閃存105。另外,控制單元130中更包括一高速緩存138。基本上,高速緩存138用以暫時儲存主機120輸入的寫入數據、或者暫時儲存主機120要求的讀取數據。且高速緩存138由動態或靜態隨機存取存儲器所組成。
[0028]再者,雖然圖1A將高速緩存138包含于控制單元130中,但是高速緩存138與控制單元130也可以是二個分開的硬件電路。
[0029]請參照圖1B,其所繪示為固態硬盤中控制單元內部示意圖。控制單元130包括一指令分析單元131、錯誤校正碼解編器(ECC codec) 133、邏輯至物理地址轉換單元135、高速緩存137。基本上,在計算機系統100中主機112可以對固態硬盤110進行數據存取。
[0030]當主機112欲將寫入數據寫入特定邏輯區塊地址(logical block address,簡稱LBA)時,主機112會發出寫入指令(write co_and)、特定邏輯區塊地址、以及寫入數據至固態硬盤110。此時,控制單元130中的指令分析單元131確定主機120發出寫入指令,而寫入數據會被暫存于高速緩存137。接著,邏輯至物理地址轉換單元135會將特定邏輯區塊地址轉換為特定物理區塊地址(physical block address,簡稱PBA);而錯誤校正碼解編器133會針對寫入數據進行錯誤校正編碼。最后,被編碼的寫入數據會被寫入閃存105的特定物理地址中。
[0031]當主機112欲讀取固態硬盤110中的數據時,主機112會發出讀取指令(readcommand)與特定邏輯區塊地址。此時,控制單元130中的指令分析單元131確定主機112發出讀取指令,而邏輯至物理地址轉換單元135會將特定邏輯區塊地址轉換為特定物理區塊地址。接著,根據特定物理區塊地址,由閃存105中取出被編碼的讀取數據。接著,被編碼的讀取數據經由錯誤校正碼解編器133的解碼之后,產生讀取數據暫存于高速緩存137。最后,讀取數據即被輸出至主機112。
[0032]由以上的說明可知,現今計算機系統100中固態硬盤100僅能根據主機112寫入命令或者讀取命令來將寫入數據儲存于閃存105或者輸出讀取數據至主機112。而控制單元130本身僅能對于數據進行錯誤校正碼的編碼或者解碼而已。很明顯地,現今計算機系統100中的固態硬盤110并不具備任何數據分析與處理的能力。
[0033]為了讓本發明的計算機系統有足夠的能力自行進行巨量數據的分析與處理,本發明于固態硬盤中增加一算術邏輯單元(Arithmetic Logic Unit,簡稱ALU),使得固態硬盤中具備數據的計算與分析能力。
[0034]請參照圖2,其所繪示為本發明固態硬盤以及控制單元內部示意圖。固態硬盤210中,控制單元230利用外部總線120連接至主機112,并且利用內部總線122連接至閃存105。
[0035]再者,本發明的控制單元230包括一指令分析單元231、錯誤校正碼解編器233、邏輯至物理地址轉換單元235、高速緩存237、與算術邏輯單元239。
[0036]其中,當計算機系統中主機112對固態硬盤110進行數據存取時,指令分析單元231、錯誤校正碼解編器233、邏輯至物理地址轉換單元235、與高速緩存237的動作相同于圖1B,此處不再贅述。
[0037]根據本發明的實施例,算術邏輯單元239中內建有一運算法則(algorithm),可針對閃存105中的數據進行運算與分析。當然,使用者也可以根據需求,經由主機112將更新的運算法則載入算術邏輯單元239中,使得算術邏輯單元239根據更新的運算法則來分析或者運算閃存105中的數據。當然,主機112也可以根據實際需求來進一步擴充算術邏輯單元239中的運算法則。
[0038]根據本發明的實施例,當主機112傳送寫入數據至固態硬盤210且寫入數據儲存至閃存105之前,算術邏輯單元239可以根據內建的運算法則對寫入數據進行分析與處理,并且產生一分析結果,并在適當的時機將分析結果傳送回主機112,或者算術邏輯單元239也可將此分析結果儲存于閃存105。
[0039]或者,當固態硬盤210傳送讀取數據至主機112之前,算術邏輯單元239可以根據內建的運算法則對讀取數據進行分析與處理,并且產生分析結果,并在適當的時機將分析結果傳送回主機112,或者算術邏輯單元239也可將此分析結果儲存于閃存105。再者,當讀取數據是被壓縮過的數據,則此算術邏輯單元239,先對數據解壓縮后,再進行分析與處理。舉例來說,假設讀取數據是經H.264壓縮后的影音文件,則此算術邏輯單元239,先做H.264解壓縮后,再進行數據分析與處理。
[0040]或者,主機112也可以先將所有的寫入數據直接儲存于固態硬盤210。之后,于主機112未對固態硬盤210進行數據存取時,算術邏輯單元239根據內建的運算法則對儲存于閃存105中的寫入數據進行分析與處理,并且產生一分析結果,并在適當的時機將分析結果傳送回主機112,或者算術邏輯單元239也可將此分析結果儲存于閃存105。
[0041]或者,如果主機112僅需要分析結果而不需要寫入數據時。主機112可將分析數據傳遞至固態硬盤210,于算術邏輯單元239產生分析結果之后,控制單元320可直接舍棄分析數據,不再進一步處理分析數據。亦即,