專利名稱:存儲裝置存取方法及相關(guān)裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種存儲裝置的存取方法與相關(guān)裝置,尤其涉及一種能在不對稱配置的雙通道存儲裝置中提高數(shù)據(jù)存取效率的存儲裝置存取方法與相關(guān)裝置。
背景技術(shù):
微處理器系統(tǒng),如計(jì)算機(jī)系統(tǒng)等等,已成為現(xiàn)代信息社會最重要的硬件基礎(chǔ)之一;而對微處理器系統(tǒng)的效率要求,也日益提高。如本領(lǐng)域技術(shù)人員所知,計(jì)算機(jī)系統(tǒng)是以中央處理器配合芯片組(如北橋芯片)與存儲裝置來運(yùn)作的。舉例來說,存儲裝置可以是隨機(jī)存取存儲裝置,以存儲程序代碼及數(shù)據(jù)等等;中央處理器通過芯片組存取存儲裝置中的程序代碼及相關(guān)數(shù)據(jù)并加以執(zhí)行,就能實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)的功能。由此可知,要提升計(jì)算機(jī)/微處理器系統(tǒng)的效率,其關(guān)鍵之一,就是提升對存儲裝置數(shù)據(jù)存取的效率。
如本領(lǐng)域技術(shù)人員所知,在現(xiàn)行常見的計(jì)算機(jī)系統(tǒng)規(guī)格中,存儲裝置是由一個(gè)或數(shù)個(gè)存儲器模塊(memory module)所共同組合出來的。每個(gè)存儲器模塊可以設(shè)有一或兩個(gè)存儲陣列(rank),而每個(gè)存儲器陣列中又設(shè)有多個(gè)存儲電路顆粒(device),以記錄數(shù)據(jù)。舉例來說,現(xiàn)行計(jì)算機(jī)系統(tǒng)規(guī)格中,有所謂的單邊(single sided)或雙邊(double sided)的雙直列存儲器模塊(DIMM,Dual-Inline Memory Module);單邊的存儲器模塊中僅于一側(cè)設(shè)有存儲電路顆粒,而這些存儲電路顆粒會被統(tǒng)一連接為一個(gè)存儲陣列。相對地,雙邊存儲陣列的兩側(cè)均設(shè)有存儲電路顆粒,各自連接為一個(gè)存儲陣列,故雙邊的存儲器模塊中可提供兩個(gè)存儲容量相同的存儲陣列。現(xiàn)行的計(jì)算機(jī)系統(tǒng)多可容納多個(gè)存儲器模塊,并通過芯片組的控制而將這些存儲器模塊整合為一個(gè)整體的存儲裝置,以統(tǒng)一支持計(jì)算機(jī)系統(tǒng)的存儲器資源。
在存取存儲裝置時(shí),芯片組可通過通道(channel)來傳輸各個(gè)存儲器模塊中記錄于存儲陣列的數(shù)據(jù)?,F(xiàn)行的計(jì)算機(jī)系統(tǒng)中可設(shè)有兩個(gè)通道(雙通道),各個(gè)通道可連接于一個(gè)或多個(gè)對應(yīng)的存儲器模塊。特別是,當(dāng)連接于同一通道上的每個(gè)存儲陣列都在另一個(gè)通道上有一個(gè)存儲容量相同的對應(yīng)存儲陣列時(shí),就可在雙通道上成對地形成對稱配置的存儲裝置。當(dāng)存儲裝置具有對稱配置時(shí),芯片組可同時(shí)在兩個(gè)通道上傳輸數(shù)據(jù),在單位時(shí)間內(nèi)同時(shí)傳輸兩個(gè)通道上的數(shù)據(jù),以雙通道的數(shù)據(jù)傳輸頻寬(數(shù)據(jù)傳輸頻寬即單位時(shí)間內(nèi)數(shù)據(jù)傳輸量與傳輸速率的乘積)來存取存儲裝置。相對地,若存儲裝置并非對稱配置時(shí),芯片組在同一時(shí)間內(nèi)就只能由單一通道存取數(shù)據(jù),在單位時(shí)間內(nèi)傳輸一個(gè)通道上的數(shù)據(jù),也就是以單通道的數(shù)據(jù)傳輸頻寬來存取存儲裝置。
一般來說,即使在每個(gè)通道上的數(shù)據(jù)傳輸速率都是一定的,但由于雙通道的存取方式能同時(shí)以兩個(gè)通道傳輸數(shù)據(jù),故雙通道的傳輸頻寬遠(yuǎn)高于單通道的傳輸頻寬,顯然雙通道的數(shù)據(jù)傳輸具有較高效率。然而,雙通道的數(shù)據(jù)傳輸頻寬只能在存儲裝置具有對稱配置時(shí)才能實(shí)現(xiàn),這也進(jìn)一步限制了存儲裝置在組態(tài)配置上的彈性。舉例來說,使用者在配置存儲裝置時(shí),就一定要使用成對、存儲容量、構(gòu)造相同(如同為雙邊存儲器模塊)的存儲器模塊才能組合出對稱配置的存儲裝置,這也就增加了計(jì)算機(jī)系統(tǒng)配置的成本。另一方面,在現(xiàn)有技術(shù)中,若使用者配置的存儲裝置不具有對稱配置,即使存儲裝置有兩通道,也完全無法利用雙通道來提升存儲裝置存取的傳輸頻寬。
發(fā)明內(nèi)容
因此,本發(fā)明即提供一種能在不對稱的存儲裝置中有效利用雙通道特性以提升數(shù)據(jù)傳輸頻寬的存取方法與相關(guān)裝置,以克服現(xiàn)有技術(shù)的缺點(diǎn)。
本發(fā)明的存取方法及相關(guān)裝置可建構(gòu)于芯片組內(nèi),以配合雙通道存儲裝置的存取。當(dāng)該存儲裝置的配置不對稱時(shí),若一通道上的某一個(gè)存儲陣列在另一個(gè)通道上仍有另一個(gè)存儲容量相同的存儲陣列可與之成對地搭配對應(yīng)時(shí),本發(fā)明就可將這兩個(gè)連接于不同通道的成對存儲陣列劃分為同一個(gè)虛擬的存儲陣列;而虛擬存儲陣列就可視為該存儲裝置的對稱配置部分。相對地,未被劃分為虛擬存儲陣列的不成對存儲陣列就可視為該存儲裝置的不對稱配置部分。
針對存儲裝置中的對稱配置部分,本發(fā)明就可用雙通道傳輸頻寬來加以存取。也就是說,當(dāng)要存取的數(shù)據(jù)是存儲于對稱配置部分時(shí),數(shù)據(jù)就可被劃分為兩部分,在相同時(shí)間內(nèi)分別經(jīng)由兩個(gè)通道來存取、傳輸,達(dá)成雙通道數(shù)據(jù)傳輸頻寬。當(dāng)要存取的數(shù)據(jù)是存儲于不對稱部分時(shí),才以單通道的數(shù)據(jù)傳輸頻寬來加以存取。
換句話說,即使存儲裝置的配置不對稱,本發(fā)明還是可針對對稱配置部分來充分發(fā)揮雙通道的高傳輸頻寬,進(jìn)而提升計(jì)算機(jī)系統(tǒng)的運(yùn)作效率,存儲裝置的配置彈性也較高。相比之下,在現(xiàn)有技術(shù)中,就只能以單通道的傳輸頻寬來存取不對稱配置的存儲裝置。
圖1為本發(fā)明實(shí)施于一計(jì)算機(jī)系統(tǒng)中的功能方塊示意圖。
圖2是以對稱配置來實(shí)現(xiàn)圖1中存儲裝置的示意圖。
圖3為本發(fā)明存取圖2中對稱配置存儲裝置時(shí)各相關(guān)信號的時(shí)序示意圖。
圖4是以一不對稱配置來實(shí)現(xiàn)圖1中存儲裝置的示意圖。
圖5為本發(fā)明存取圖4中不對稱存儲裝置時(shí)各相關(guān)信號的時(shí)序示意圖。
圖6、圖7是以另外兩種不對稱配置來實(shí)現(xiàn)圖1中存儲裝置的示意圖。
圖8為本發(fā)明存取存儲器數(shù)據(jù)的流程圖附圖標(biāo)記說明20 控制電路 22 接口模塊24 判斷模塊 26 存取模塊28 尋址模塊 30 存儲裝置32A-32B 通道 34A-34B、36A-36B 插槽38 芯片組 40 主機(jī)42 計(jì)算機(jī)系統(tǒng) 46A-46B、48A-48B 存儲器模塊460-467 存儲陣列 T 周期S0-S7 控制信號 t0-t4、ta-tb、ta2-tb2 時(shí)刻RDX、RDY 控制指令具體實(shí)施方式
請參考圖1。圖1即為本發(fā)明控制電路20實(shí)施于一計(jì)算機(jī)系統(tǒng)42的芯片組38以對一雙通道的存儲裝置30進(jìn)行存取控制的功能方塊示意圖。在計(jì)算機(jī)系統(tǒng)42(如一個(gè)人計(jì)算機(jī)或其它的微處理器系統(tǒng))中,芯片組38可以是一存儲器存取控制芯片,以作為存儲裝置30的存取接口,使一主機(jī)(host)40可利用存儲裝置30所提供的存儲器資源。其中,主機(jī)40可以是中央處理器,或是其它可進(jìn)行直接存存儲取的裝置或電路;芯片組38中則包括有一接口模塊22與一控制電路20。為實(shí)現(xiàn)本發(fā)明的技術(shù),控制電路20中設(shè)有一判斷模塊24、一存取模塊26及一尋址模塊28。至于存儲裝置30中,則設(shè)有多個(gè)存儲器模塊的插槽(在圖1中以插槽34A至34B、36A至36B做為代表),各插槽可插置安裝一存儲器模塊(如可隨機(jī)存取的雙直列存儲器模塊,DIMM);集合各插槽上存儲器模塊的存儲容量,也就是存儲裝置30所能提供的總存儲器資源。而芯片組38、通道32A、32B以及存儲裝置30中的各個(gè)存儲器模塊也就組合出一多通道(雙通道)的存儲器存取裝置。
為了存取各插槽上存儲器模塊所記錄的數(shù)據(jù),存取模塊26可將各種存取控制的指令、信號經(jīng)由各插槽傳輸至各個(gè)存儲器模塊。舉例來說,若某一插槽上插置的是雙邊的存儲器模塊而具有兩個(gè)存儲陣列,該插槽就能針對各個(gè)存儲陣列而將不同的控制信號分別傳輸至同一存儲器模塊的不同的存儲陣列。為了要響應(yīng)存取控制的指令、信號,各個(gè)存儲器模塊還可經(jīng)通過插槽所連接的通道來傳輸其所記錄的數(shù)據(jù)。如在圖1的實(shí)施例中,插槽34A、36A就連接于通道32A,而插槽34B、36B則連接于通道32B。這樣一來,插置于插槽34A、36A上的存儲器模塊就可經(jīng)由通道32A來將其所記錄的數(shù)據(jù)傳輸出去,或?qū)鬏斨链鎯ζ髂K數(shù)據(jù)記錄起來。同理,安裝于插槽34B、36B的存儲器模塊則可經(jīng)由通道32B來傳輸數(shù)據(jù)。
芯片組38對存儲裝置30進(jìn)行存取控制的情形可描述如下。當(dāng)計(jì)算機(jī)系統(tǒng)42開機(jī)時(shí),其會對存儲裝置30進(jìn)行檢測(如由基本輸出入系統(tǒng),Basic InputOutput System,來進(jìn)行檢測),以檢測存儲裝置30中各存儲器模塊的配置(如在那個(gè)插槽上的存儲器模塊具有多少存儲容量等等),進(jìn)而確認(rèn)存儲裝置30總共能提供的存儲器資源。而芯片組38就會將存儲裝置30所能提供的整體存儲器資源尋址、區(qū)分為不同的地址(如物理地址),并建立地址與各存儲陣列間的映射關(guān)系,使得主機(jī)40可根據(jù)地址來對存儲裝置30進(jìn)行隨機(jī)的數(shù)據(jù)存取。舉例來說,假設(shè)存儲裝置30中安裝的存儲器模塊總共可提供三個(gè)存儲陣列,芯片組38就可將這三個(gè)存儲陣列所能提供的存儲空間映射至不同的地址。當(dāng)主機(jī)40要將數(shù)據(jù)存入某個(gè)地址時(shí),芯片組38可先譯碼出該地址是屬于哪一個(gè)存儲陣列所提供的存儲空間,然后以對應(yīng)的控制信號控制該存儲陣列,并將數(shù)據(jù)傳輸至該存儲陣列,以記錄該筆數(shù)據(jù)。同理,若主機(jī)40要讀出某個(gè)地址對應(yīng)的數(shù)據(jù),芯片組38就可譯碼出該地址對應(yīng)于哪個(gè)存儲陣列,并以對應(yīng)的控制信號由該存儲陣列讀出數(shù)據(jù)。
在對存儲裝置進(jìn)行存取時(shí),針對不同的存儲裝置配置,本發(fā)明控制電路20也可對存儲裝置30進(jìn)行不同模式的存取控制。首先請參考圖2;延續(xù)圖1中的架構(gòu),圖2即為芯片組38針對對稱配置的存儲裝置30進(jìn)行存取控制的示意圖。在圖2的示意例中,假設(shè)在插槽34A、34B上分別安裝有一雙邊的存儲器模塊46A、46B,故存儲器模塊46A具有兩個(gè)存儲陣列460、461,存儲器模塊46B同樣也具有兩個(gè)存儲陣列464、465。通過插槽34A、34B,存儲陣列460至461、464至465可分別接收芯片組38的控制信號S0至S1、S4至S5。在圖2的配置情況下,若存儲陣列460、461分別和存儲陣列464、465具有相同的存儲容量,就可形成進(jìn)一步形成對稱配置的存儲裝置。在此配置下,連接于通道32A的存儲陣列460在另一通道32B上有一存儲容量相同的存儲陣列464與其成對對應(yīng),存儲陣列461也在另一通道上有一存儲容量相同的存儲陣列465與其成對對應(yīng),使得存儲裝置30在雙通道上具有對稱的配置。
當(dāng)存儲裝置30為對稱配置時(shí),本發(fā)明控制電路20就可將雙通道上成對的存儲陣列劃分為同一個(gè)虛擬的存儲陣列,以雙通道的數(shù)據(jù)傳輸頻寬來存取存儲裝置30。以圖2中的對稱配置為例,尋址模塊28就會將雙通道上成對的存儲陣列460與464、存儲陣列461與465分別當(dāng)作是一個(gè)虛擬陣列,并據(jù)此來將存儲裝置30所能提供的整體存儲器資源映射至不同的地址。當(dāng)有一筆數(shù)據(jù)(譬如說是一筆8QW的數(shù)據(jù),一個(gè)16位即一個(gè)quad word(四字),可簡記為QW)要存入虛擬陣列時(shí),存取模塊26實(shí)際上是將這筆數(shù)據(jù)分解為兩部分(如兩個(gè)各4QW的部分),分別記錄于兩通道上成對的存儲陣列中。由于這兩部分的數(shù)據(jù)可以同時(shí)在兩通道上分別傳輸至對應(yīng)的存儲陣列,故可發(fā)揮雙通道的數(shù)據(jù)傳輸頻寬。同理,若要從一虛擬陣列中將一筆數(shù)據(jù)讀出,存取模塊26實(shí)際上是由兩個(gè)通道的成對存儲陣列中將同一筆數(shù)據(jù)的兩個(gè)部分分別經(jīng)由對應(yīng)的通道讀出,再組合為原來的數(shù)據(jù)。為進(jìn)一步說明上述過程進(jìn)行的原理,請繼續(xù)參考圖3(并一并參考圖2)。圖3即為芯片組38針對圖2中對稱配置的存儲裝置而在存儲裝置30中進(jìn)行數(shù)據(jù)存取時(shí),各相關(guān)數(shù)據(jù)信號的時(shí)序圖;圖3的橫軸為時(shí)間。
延續(xù)圖2中的例子,在圖3中,假設(shè)在時(shí)刻t0時(shí),主機(jī)40要求要從存儲裝置30中讀出某個(gè)地址的一筆數(shù)據(jù),該筆數(shù)據(jù)長度為8QW,是由8個(gè)長度為1QW的數(shù)據(jù)Dt0至Dt7所共同組成。假設(shè)此地址映射到的存儲空間是在存儲陣列460、464所形成的虛擬陣列中,存取模塊26就會在時(shí)刻t1同時(shí)以相同的讀取控制指令RDX作為控制信號S0、S4(圖2),分別傳輸至兩個(gè)通道上的存儲陣列460及464。到了時(shí)刻t2,存儲陣列460就會由通道32A依序開始傳輸數(shù)據(jù)Dt0、Dt2、Dt4、Dt6;在此同時(shí),存儲陣列464也會由通道32B依序開始傳輸數(shù)據(jù)Dt1、Dt3、Dt5、Dt7。芯片組38將數(shù)據(jù)Dt0至Dt7組合起來,就可得到原來的8QW數(shù)據(jù)。換句話說,當(dāng)一筆8QW的數(shù)據(jù)要存儲至存儲裝置30時(shí),若存儲裝置30是對稱配置的,芯片組38就可對稱地控制雙通道上成對的存儲陣列,同時(shí)在各個(gè)存儲陣列中分別存入4QW的數(shù)據(jù);就像以上討論的例子,芯片組38可交錯(cuò)地將8QW數(shù)據(jù)的第一、三、五、七個(gè)QW作為一部分,第二、四、六、八個(gè)QW作為另一部分而分別存入兩存儲陣列。要將該筆數(shù)據(jù)讀出時(shí),芯片組38也就可以對稱地由雙通道的成對存儲陣列中同時(shí)將各4QW的數(shù)據(jù)讀出,組合出原來的8QW數(shù)據(jù)。
由上述討論可知,若存儲裝置30在雙通道上具有對稱配置時(shí),芯片組38就可對稱地以相同控制指令及控制信號來分別控制雙通道上成對的存儲陣列進(jìn)行存取。由于同一時(shí)間內(nèi)雙通道都可傳輸數(shù)據(jù),故可實(shí)現(xiàn)較高的數(shù)據(jù)傳輸頻寬。就如圖3中所示,由于一筆8QW的數(shù)據(jù)可在雙通道上平行地傳輸,故僅需2個(gè)周期T的時(shí)間就可完成8QW的數(shù)據(jù)傳輸(假設(shè)使用的存儲器模塊為雙數(shù)據(jù)傳輸速率,Double Data Rate)。此外,雙通道的對稱存取還能降低存取作業(yè)的延遲(latency)。舉例來說,在時(shí)刻t3,存取模塊26還可以向雙通道上成對的存儲陣列同時(shí)發(fā)出另一個(gè)控制指令RDY作為控制信號,使得成對的存儲陣列分別再由雙通道上傳輸8QW的數(shù)據(jù)Dy0至Dy7,以組成另一筆8QW的數(shù)據(jù)。
不過,當(dāng)存儲裝置不是對稱配置時(shí),就完全無法利用雙通道的高傳輸頻寬。由于配置不對稱,芯片組就不會以對稱的控制信號來同時(shí)控制雙通道上的不同存儲陣列;不管數(shù)據(jù)存儲在哪一個(gè)存儲陣列中,芯片組在同一時(shí)間內(nèi)都只會控制單一一個(gè)存儲陣列,經(jīng)由單一一個(gè)通道來傳輸數(shù)據(jù)。換句話說,一筆8QW的數(shù)據(jù)只能完全由單一一個(gè)通道傳輸,故需要4個(gè)周期T的時(shí)間才能完成8QW數(shù)據(jù)的傳輸。
而本發(fā)明可以克服無法在非對稱配置的存儲裝置中運(yùn)用雙通道的缺點(diǎn),進(jìn)而提升非對稱存儲裝置的數(shù)據(jù)傳輸效率。當(dāng)一存儲裝置的配置并非對稱時(shí),本發(fā)明仍然可將該存儲裝置中對稱配置的部分劃分為同一個(gè)虛擬陣列,進(jìn)而利用雙通道的高數(shù)據(jù)傳輸頻寬。以下即以實(shí)例來說明本發(fā)明在不對稱配置的存儲裝置中進(jìn)行數(shù)據(jù)存取的技術(shù)精神。
請參考圖4及圖5;延續(xù)圖1中的計(jì)算機(jī)系統(tǒng)架構(gòu),假設(shè)存儲裝置30的配置是如圖4所示那樣的不對稱配置,圖5即為本發(fā)明對圖4中的存儲裝置進(jìn)行存取時(shí)相關(guān)數(shù)據(jù)信號的時(shí)序示意圖,圖5的橫軸為時(shí)間。在圖4的不對稱配置中,假設(shè)存儲裝置30有三個(gè)插槽34A、36A及34B分別安裝有一存儲器模塊46A、48A及46B。其中,存儲器模塊46A、46B為雙邊的存儲器模塊,分別具有存儲陣列460及461、464及465,且存儲陣列460與464、461與465具有相同的存儲容量,故可將存儲陣列460與464視為成對對稱的存儲陣列,存儲陣列461、465則為另一組成對對稱的存儲陣列。這些成對的存儲陣列就形成存儲裝置30中對稱配置的部分。相對地,另一個(gè)具有存儲陣列462、463的雙邊存儲器模塊48A則成為不對稱配置的部分。由于連接在通道32A上的存儲陣列462、463在另一通道上都沒有相對的存儲陣列與之成對搭配,使得存儲裝置30的整體配置是不對稱的。
雖然存儲裝置30的整體配置是不對稱的,但由于存儲陣列460、461還是在另一通道上具有相同存儲容量的存儲陣列464、465與之成對對應(yīng),故在本發(fā)明中,尋址模塊28就會將雙通道上成對的存儲陣列460、464劃分為同一個(gè)虛擬陣列,并將存儲陣列461、465劃分為另一個(gè)虛擬陣列;而這些虛擬陣列就能以雙通道的數(shù)據(jù)傳輸頻寬來加以存取。像存儲陣列462、463這些無法在另一通道上找到成對存儲陣列的不成對存儲陣列,才以單通道的數(shù)據(jù)傳輸頻寬來加以存取。
換句話說,當(dāng)計(jì)算機(jī)系統(tǒng)42開機(jī)而檢測到存儲裝置30不具有對稱配置時(shí),本發(fā)明尋址模塊28還是會根據(jù)存儲裝置30中具有對稱配置的部分來將雙通道上成對的存儲陣列劃分為同一虛擬陣列,不對稱部分的每個(gè)存儲陣列則視為單通道上的一個(gè)存儲陣列,并根據(jù)上述這些陣列配置來建立存儲空間的映射關(guān)系。當(dāng)主機(jī)40有一筆數(shù)據(jù)要寫入至存儲裝置30中的某個(gè)地址時(shí),本發(fā)明中的判斷模塊24會先判斷該地址是映射至成對存儲陣列所形成的虛擬陣列存儲空間,還是不成對存儲陣列所形成的存儲空間。若該地址映射的是雙通道上成對存儲陣列所形成的存儲空間,存取模塊26就可利用相同的控制信號對稱地控制成對的存儲陣列,同時(shí)將該筆數(shù)據(jù)的不同部分利用雙通道傳輸至成對的存儲陣列中,以雙通道的數(shù)據(jù)傳輸頻寬完成數(shù)據(jù)存取。相對地,若該地址是映射至不成對存儲陣列所提供的存儲空間,存取模塊26則利用單通道來將整筆數(shù)據(jù)傳輸至同一存儲陣列。
請參考圖5中的例子。假設(shè)主機(jī)40要讀取兩筆8QW數(shù)據(jù),一筆數(shù)據(jù)由1QW的數(shù)據(jù)Dt0至Dt7組成,該筆數(shù)據(jù)的地址映射至成對存儲陣列461及465(圖4)所形成的虛擬陣列中,故該筆數(shù)據(jù)實(shí)際上是被分為兩部分而分別被記錄于存儲陣列461及465中。相對地,假設(shè)另一筆8QW數(shù)據(jù)有8個(gè)1QW數(shù)據(jù)Dy0至Dy7,且該筆8QW數(shù)據(jù)的地址映射的存儲空間是在不成對的存儲陣列462中,故這筆8QW數(shù)據(jù)的所有數(shù)據(jù)Dy0至Dy7都記錄于同一存儲陣列462中。當(dāng)主機(jī)40要存取上述兩筆數(shù)據(jù)時(shí),本發(fā)明的判斷模塊24會判斷這兩筆數(shù)據(jù)的地址映射至的存儲空間為何。其中,前一筆8QW數(shù)據(jù)是記錄于成對存儲陣列所形成的虛擬陣列中,故存取電路30就會在同時(shí)以相同的控制指令RDX來作為雙通道上的控制信號S1、S5,使存儲陣列461及465同時(shí)在時(shí)刻tb開始依序傳輸數(shù)據(jù)Dt0、Dt2、Dt4、Dt6以及Dt1、Dt3、Dt5、Dt7,也就是以雙通道的數(shù)據(jù)傳輸頻寬來存取這筆記錄于成對存儲陣列中的數(shù)據(jù)。
要存取另一筆8QW數(shù)據(jù),本發(fā)明的判斷模塊24會根據(jù)該數(shù)據(jù)的地址判斷其記錄于未成對的存儲陣列462中。故存取模塊26會在時(shí)刻ta2以單一通道32A上的控制指令RDY來作為控制信號S2,以控制存儲陣列462在時(shí)刻tb2開始依序傳輸該筆數(shù)據(jù)的8個(gè)1QW數(shù)據(jù)Dy0至Dy7。
由上述描述可知,雖然存儲裝置30的整體配置是不對稱的,但本發(fā)明還是可針對存儲裝置中具有對稱配置的部分來充分發(fā)揮雙通道數(shù)據(jù)傳輸?shù)膬?yōu)點(diǎn)。請注意,在現(xiàn)有技術(shù)中,若其存儲裝置的整體配置不對稱,不論要存取成對或不成對的存儲陣列,現(xiàn)有技術(shù)芯片組都僅能利用單一通道來進(jìn)行數(shù)據(jù)存取。以圖4、圖5中的例子來說明,在存儲裝置不具有對稱配置的情形下,由于現(xiàn)有技術(shù)芯片組不會將成對的存儲模塊劃分為同一虛擬陣列,即使要存取存儲陣列461中的8QW數(shù)據(jù),現(xiàn)有技術(shù)也還是只能利用時(shí)刻tb2之后的時(shí)序,在單一通道上傳輸全部8個(gè)1QW數(shù)據(jù)Dt0至Dt7,而無法像本發(fā)明一樣充分利用“存儲陣列461在另一通道上另有一成對存儲陣列465”的特性。
延續(xù)圖2中的電路架構(gòu),以下將再以圖6、圖7中的兩個(gè)配置例來說明本發(fā)明實(shí)施于不對稱配置存儲裝置的情形。在圖6中,存儲裝置30配置有四個(gè)存儲器模塊46A至46B、48A至48B,其中,存儲器模塊46A、48B是雙邊的,分別設(shè)有存儲陣列460及461、存儲陣列466及467。存儲器模塊48A、46B則是單邊的存儲器模塊,各具有一存儲陣列462、465。假設(shè)存儲陣列460、461及466、467分別具有相同的存儲容量而在雙通道上對稱,本發(fā)明的尋址模塊28就可將雙通道上的存儲陣列460、466搭配成對而視為一虛擬陣列,而雙通道上的另一對存儲陣列461、467則成為另一虛擬陣列;而這兩個(gè)虛擬陣列中的數(shù)據(jù)就可以用雙通道的方式來存取(如在圖4中對成對存儲陣列461及465進(jìn)行存取的方式)。另外,若存儲陣列462、465的存儲容量不相同,就變成單通道上不成對的存儲陣列,而本發(fā)明則是以單通道的方式來存取存儲陣列462、465(就是對圖4中不成對存儲陣列462的存取方式)。
在圖7中,存儲裝置30配置有一個(gè)雙邊存儲器模塊46A及一單邊存儲器模塊48B,存儲器模塊46A具有兩個(gè)存儲陣列460、461;存儲器模塊48B中則設(shè)有一存儲陣列467。假設(shè)存儲陣列460、461及467的存儲容量均相同,但存儲器模塊46A的兩個(gè)存儲陣列之一無法在另一通道上找到成對搭配的存儲陣列,故存儲裝置30的整體配置是不對稱的。在此種配置下,本發(fā)明尋址模塊28可將雙通道上的存儲陣列460與存儲陣列467(或是存儲陣列461與存儲陣列467)視為同一個(gè)虛擬陣列,而不成對的存儲陣列461(或是存儲陣列460)則是單通道上的獨(dú)立存儲陣列。當(dāng)主機(jī)40要存取某一地址的數(shù)據(jù)時(shí),判斷模塊24會判斷該地址映射的存儲空間。若該地址是在不成對存儲陣列461(或是存儲陣列460)所形成的存儲空間中,存取模塊26就可以在通道32A上以單通道的模式加以存取。若該地址是在成對存儲陣列460、467(或是存儲陣列461、467)所形成的虛擬陣列中時(shí),存取模塊26就可同時(shí)利用雙通道來對稱地存取這兩個(gè)成對的存儲陣列,充分利用雙通道高數(shù)據(jù)傳輸頻寬的特性。
圖8為本發(fā)明存取不對稱配置存儲模塊的流程圖。若在一個(gè)通道上有一個(gè)存儲陣列A其容量大小與另一個(gè)通道上的存儲陣列B相同時(shí),則位于不同通道上的存儲陣列A和B即設(shè)成一個(gè)虛擬陣列。當(dāng)存取數(shù)據(jù)的目標(biāo)位置位于虛擬陣列上時(shí),則可以同時(shí)利用雙通道存取數(shù)據(jù)。反之,如果目標(biāo)位置布在虛擬陣列上,則以單通道存取存儲器。
總結(jié)來說,在現(xiàn)有技術(shù)中,若存儲裝置的配置是不對稱的,無論數(shù)據(jù)是記錄于哪一個(gè)存儲陣列,現(xiàn)有技術(shù)芯片組都只會以單通道的方式來加以存取。相比之下,當(dāng)本發(fā)明實(shí)施于不對稱的存儲裝置中時(shí),只有在存取不成對存儲陣列時(shí)才會沿用單通道的存取方式;針對雙通道上成對的存儲陣列,本發(fā)明仍然可以充分發(fā)揮雙通道同時(shí)數(shù)據(jù)傳輸?shù)膬?yōu)點(diǎn)。即使存儲裝置的配置不對稱,本發(fā)明還是可以實(shí)質(zhì)提升此類存儲裝置的存取效率。在本發(fā)明于圖1的實(shí)施架構(gòu)中,判斷模塊24、尋址模塊28的功能可以用軟件(如以芯片組來執(zhí)行軟件程序代碼)或硬件電路來實(shí)現(xiàn),以便在地址譯碼(address decoding)、分頁譯碼(page decoding)及指令排序(command scheduling)時(shí)根據(jù)存取地址是否映射至成對存儲陣列而改變對存儲裝置的存取方式。
以上所述僅為本發(fā)明的較佳實(shí)施例,凡根據(jù)本發(fā)明權(quán)利要求所做的均等變化與修飾,皆應(yīng)屬本發(fā)明專利的涵蓋范圍之內(nèi)。
權(quán)利要求
1.一種多通道存儲器存取方法,其中每一個(gè)該通道分別連接至少一個(gè)存儲陣列,該存取方法包含有判斷一欲存取數(shù)據(jù)的目標(biāo)存儲陣列是否屬于一虛擬陣列;若該數(shù)據(jù)的目標(biāo)存儲陣列不屬于該虛擬陣列,則以一預(yù)設(shè)傳輸頻寬存取該數(shù)據(jù);以及若該數(shù)據(jù)的目標(biāo)存儲陣列屬于該虛擬陣列,則以該預(yù)設(shè)傳輸頻寬的倍數(shù)存取該數(shù)據(jù)。
2.如權(quán)利要求1所述的多通道存儲器存取方法,其中還包含當(dāng)不同的所述通道中皆對應(yīng)有一容量大小相同的一第一存儲陣列時(shí),則將不同的所述通道的多個(gè)該第一存儲陣列劃分成為一虛擬陣列。
3.如權(quán)利要求1所述的多通道存儲器存取方法,其中當(dāng)該數(shù)據(jù)欲存儲的目標(biāo)存儲陣列屬于該虛擬陣列時(shí),在該虛擬陣列所包含的該多個(gè)第一存儲陣列中交錯(cuò)存儲該數(shù)據(jù)的各部分。
4.如權(quán)利要求1所述的多通道存儲器存取方法,其中當(dāng)該數(shù)據(jù)欲讀取的目標(biāo)存儲陣列屬于該虛擬陣列時(shí),則分別從在該虛擬陣列中所包含的該多個(gè)第一存儲陣列中讀取該數(shù)據(jù)的各部分后重疊出該數(shù)據(jù)。
5.如權(quán)利要求1所述的多通道存儲器存取方法,其中該預(yù)設(shè)傳輸頻寬為一該通道的頻寬。
6.一種存儲器存取控制芯片,用以存取外部多通道存儲器模塊,其中每一個(gè)該存儲器模塊對應(yīng)有一通道且該存儲器模塊包含至少一個(gè)存儲陣列,該控制芯片包含有一存取模塊,用以存取該外部多通道存儲器模塊;一尋址模塊,連接至該存取模塊,當(dāng)不同的所述通道中對應(yīng)有相同容量的一存儲陣列時(shí),將所有該通道中相同容量的多個(gè)該存儲陣列當(dāng)作一虛擬陣列;以及一判斷模塊,連接至該存取模塊以及該尋址模塊,用以判斷一欲存取數(shù)據(jù)的目標(biāo)存儲陣列是否屬于該虛擬陣列;其中當(dāng)該判斷模塊判斷該數(shù)據(jù)的目標(biāo)存儲陣列不屬于該虛擬陣列時(shí),則該存取模塊利用該數(shù)據(jù)所對應(yīng)的一該通道存取該數(shù)據(jù),若該判斷模塊判斷該數(shù)據(jù)的目標(biāo)存儲陣列屬于該虛擬陣列時(shí),則該存取模塊同時(shí)利用多個(gè)該通道存取該數(shù)據(jù)。
7.如權(quán)利要求6所述的存儲器存取控制芯片,其中當(dāng)該數(shù)據(jù)欲存儲的目標(biāo)存儲陣列屬于該虛擬陣列時(shí),將該數(shù)據(jù)的各部分交錯(cuò)存儲到該虛擬陣列所包含的該多個(gè)存儲陣列中。
8.如權(quán)利要求6所述的存儲器存取控制芯片,其中當(dāng)該數(shù)據(jù)欲讀取的目標(biāo)存儲陣列屬于該虛擬陣列時(shí),則分別從在該虛擬陣列中所包含的該多個(gè)存儲陣列中讀取該數(shù)據(jù)的各部分后重疊出該數(shù)據(jù)。
9.如權(quán)利要求6所述的存儲器存取控制芯片,其中該通道的傳輸頻寬相同。
全文摘要
本發(fā)明提供一存儲裝置的存取方法及相關(guān)裝置。在本發(fā)明的一實(shí)施例中,該存儲裝置具有雙通道,而各通道上連接的存儲陣列為不對稱的配置;也就是各通道上分別連接有至少一個(gè)相同容量的存儲陣列而形成雙通道上成對的對稱配置部分,但另外至少有一未成對的存儲陣列而形成雙通道的不對稱配置部分。在存取該存儲裝置時(shí),本發(fā)明以單通道的傳輸頻寬來存取不對稱配置部分的數(shù)據(jù),而以雙通道的高傳輸頻寬來存取對稱部分的數(shù)據(jù)。這樣一來,即使配置于雙通道的存儲陣列并不對稱,本發(fā)明仍可利用雙通道的特性來提升存儲裝置的存取效率。
文檔編號G06F13/16GK1588335SQ200410063388
公開日2005年3月2日 申請日期2004年7月8日 優(yōu)先權(quán)日2004年7月8日
發(fā)明者劉明熙, 謝博偉, 賴瑾 申請人:威盛電子股份有限公司