亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

內(nèi)存控制器及控制方法

文檔序號:6366685閱讀:190來源:國知局
專利名稱:內(nèi)存控制器及控制方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種內(nèi)存控制器,特別是涉及一種適用于內(nèi)存控制器的混合緩沖器。
背景技術(shù)
接口協(xié)議用以讓電子裝置之間的通信更便利及更快速。一般的接口協(xié)議有CF (compactFlash)、MS PRO(Memory Stick PRO)、SD (Secure Digital)、u SD(microSD)及通用序列總線(USB)。儲存或記憶裝置用以儲存數(shù)據(jù),常見儲存裝置有硬盤、NOR閃存、NAND閃存及動態(tài)隨機(jī)存取內(nèi)存(DRAM)。無論是接口協(xié)議或儲存裝置都要求高傳輸率,以因應(yīng)不斷增加的數(shù)據(jù)傳輸量或處理量。然而,接口協(xié)議與儲存裝置的傳輸率往往無法互相匹配。為了減少非匹配傳輸率所造成的限制,通常在接口與儲存裝置之間使用緩沖器,以調(diào)節(jié)不同速率之間的時序。傳統(tǒng)緩沖器會產(chǎn)生延遲而降低效率,或者需要占用相當(dāng)?shù)碾娐访娣e。因此亟需提出一種具新穎緩沖架構(gòu)的內(nèi)存控制器,用以有效的利用緩沖器。

發(fā)明內(nèi)容
鑒于上述,本發(fā)明實(shí)施例提出一種具混合緩沖器的內(nèi)存控制器及內(nèi)存控制方法,可有效利用單端口內(nèi)存及雙端口內(nèi)存,使得內(nèi)存控制器的整體效能能夠經(jīng)濟(jì)地有效提升。根據(jù)本發(fā)明實(shí)施例,內(nèi)存控制器包含混合緩沖器及仲裁器。混合緩沖器用以管理主機(jī)與儲存裝置之間的數(shù)據(jù)流,該混合緩沖器包含至少一個單端口緩沖器及至少一個多端口緩沖器。仲裁器用以決定多個主裝置存取混合緩沖器的順序。其中,寫入或讀取數(shù)據(jù)可分為至少兩部分,分別搬移至單端口緩沖器及多端口緩沖器。


圖1顯示本發(fā)明實(shí)施例的內(nèi)存控制器的方塊圖。圖2A顯示本發(fā)明實(shí)施例依主從觀點(diǎn)的內(nèi)存控制器的細(xì)部方塊圖。圖2B例示圖2A的內(nèi)存控制器。圖3顯示本發(fā)明實(shí)施例的混合緩沖器的細(xì)部方塊圖。圖4A顯示圖3的單端口緩沖器及雙端口緩沖器所使用的地址重迭映像(wrapping)機(jī)制。圖4B顯示圖3的單端口緩沖器及雙端口緩沖器所使用的內(nèi)部數(shù)據(jù)搬移機(jī)制。圖5A顯示傳統(tǒng)內(nèi)存控制器的方塊圖,其使用單端口緩沖器及兩個后端裝置。圖5B顯示本發(fā)明實(shí)施例的內(nèi)存控制器與兩個后端裝置的簡化方塊圖。圖6顯示本發(fā)明實(shí)施例之內(nèi)存控制方法的流程圖。圖7A顯示圖6的寫入程序的細(xì)部流程圖。圖7B至圖7C顯示圖7A的寫入程序的數(shù)據(jù)流。圖8A顯示圖6的讀取程序的細(xì)部流程圖。
圖8B至圖8C顯示圖8A的讀取程序的數(shù)據(jù)流。圖9A至圖9B顯示本發(fā)明另一實(shí)施例的雙面(two-plane)儲存裝置的寫入程序的流程圖。圖1OA至圖1OB顯示本發(fā)明另一實(shí)施例的雙面(two-plane)儲存裝置的讀取程序的流程圖。主要組件符號說明2緩沖器10內(nèi)存控制器101接口控制器102混合緩沖器102A單端口緩沖器102B雙端口緩沖器103仲裁器104 模塊104A 用戶104B 主裝置1041 USB 界面1041A USB 實(shí)體層(PHY)1041B USB 鏈接層1042 微處理器(U P)1043內(nèi)存接口控制器1043A ECC 單元1043B隨機(jī)產(chǎn)生器12 主機(jī)14儲存裝置51-57 步驟561-564 步驟571-574 步驟
具體實(shí)施例方式圖1顯示本發(fā)明實(shí)施例之內(nèi)存控制器10的方塊圖。內(nèi)存控制器10包含接口控制器101,用以處理和主機(jī)12 (例如計算機(jī))的通信協(xié)議,例如CF (compactFlash)、MSPRO (Memory Stick PRO)、SD (Secure Digital)、u SD (microSD) > eMMC (embedded MultiMedia Card)及通用序列總線(USB)。內(nèi)存控制器10還包含混合緩沖器102,用以管理主機(jī)12與儲存裝置14間的數(shù)據(jù)流,該儲存裝置14可為硬盤、NOR閃存、NAND閃存或動態(tài)隨機(jī)存取內(nèi)存(DRAM)。混合緩沖器102可包含隨機(jī)存取內(nèi)存(RAM),但不限定于此。內(nèi)存控制器10可整合于儲存裝置14。圖2A顯示本發(fā)明實(shí)施例依主從(master-slave)觀點(diǎn)的內(nèi)存控制器10的細(xì)節(jié)方塊圖。在本實(shí)施例中,仲裁器103決定多個模塊104存取混合緩沖器102(其作為從裝置)的順序,其中每一模塊104包含一用戶104A,其對相應(yīng)的主裝置104B作請求(request)。本實(shí)施例的仲裁器103使用循環(huán)排程(round-robin scheduling),以循環(huán)方式且不具優(yōu)先級依序分派時間片段給每一模塊104。圖2B例示內(nèi)存控制器10,其位于主機(jī)12與閃存14之間。內(nèi)存控制器10包含以下作為主裝置的多個模塊:USB接口 1041,其具有USB實(shí)體層(PHY) 104IA及USB鏈接層(link layer)1041B ;微處理器(U P) 1042 ;及內(nèi)存接口控制器1043,其具有錯誤更正(error-correcting code, ECC)單兀 1043A 及隨機(jī)產(chǎn)生器 1043B。所述模塊 1041、1042 及1043通常分屬于不同的頻率領(lǐng)域。內(nèi)存控制器10還包含數(shù)據(jù)先進(jìn)先出(FIFO)緩沖器102,作為從裝置。圖3顯示本發(fā)明實(shí)施例的混合緩沖器102的細(xì)節(jié)方塊圖。在本實(shí)施例中,混合緩沖器102包含單端口(single-port)緩沖器102A及雙端口(dual-port)緩沖器102B (或多端口緩沖器)。圖標(biāo)的每一區(qū)塊可表示(實(shí)體)數(shù)據(jù)傳輸單位,例如512字節(jié)的大小。單端口緩沖器102A為一種內(nèi)存裝置(例如RAM),在每一時間僅允許進(jìn)行單一讀取或?qū)懭氲拇嫒?。因此,?dāng)交替執(zhí)行讀取及寫入操作時,單端口緩沖器102A會造成延遲(latency)。雙端口緩沖器102B為一種內(nèi)存裝置,在每一時間允許多個讀取或?qū)懭氲拇嫒?,而不會造成延遲。值得注意的是,雙端口緩沖器102B的執(zhí)行快于單端口緩沖器102A,但是具有較大的電路面積或閘門數(shù)目(gate count)。鑒于此,本實(shí)施例同時使用單端口緩沖器102A及雙端口緩沖器102B(或多端口緩沖器),有效利用這兩者以得到較佳的效能。本實(shí)施例可將寫入/讀取數(shù)據(jù)分為兩部分,分別搬移至單端口緩沖器102A與雙端口緩沖器102B。在本實(shí)施例中,如圖3所示,單端口緩沖器102A的(數(shù)據(jù))大小為兩個數(shù)據(jù)頁,而雙端口緩沖器102B的大小為ECC單元(例如圖2B的1043A)所能處理最大數(shù)據(jù)量的二倍。一般來說,由于雙端口緩沖器102B具有同時進(jìn)行多個讀取/寫入的能力,因此雙端口緩沖器102B的大小遠(yuǎn)小于單端口緩沖器102A的大小。本實(shí)施例的單端口緩沖器102A或雙端口緩沖器102B可使用地址重迭映像(wrapping)機(jī)制,如圖4A所示。在圖式中,實(shí)線區(qū)塊表示物理內(nèi)存區(qū)塊,而虛線區(qū)塊則表示虛擬內(nèi)存區(qū)塊。例如,虛擬內(nèi)存區(qū)塊5可映像至物理內(nèi)存區(qū)塊O。藉此,對于內(nèi)存區(qū)塊5的存取將等同于對內(nèi)存區(qū)塊0的存取。藉由地址重迭映像機(jī)制,可大量減少單端口緩沖器102A或雙端口緩沖器102B的大小。此外,本實(shí)施例的單端口緩沖器102A或雙端口緩沖器102B可使用內(nèi)部數(shù)據(jù)搬移機(jī)制,如圖4B所示。例如,內(nèi)存區(qū)塊2及4的內(nèi)容可在內(nèi)部進(jìn)行互換。圖5A顯示傳統(tǒng)內(nèi)存控制器的方塊圖,其使用單端口緩沖器2及兩(或多)個后端裝置BEO及BE1,其作為與儲存裝置(未顯示)的接口,以實(shí)現(xiàn)多信道的實(shí)施。后端裝置BEO及BEl可進(jìn)行儲存裝置的復(fù)制(copyback)操作,或者執(zhí)行ECC。根據(jù)此架構(gòu),緩沖器2的大小為一般緩沖器大小的二倍,用以調(diào)適兩個后端裝置BEO及BE1。圖5B顯示本發(fā)明實(shí)施例的內(nèi)存控制器10與兩(或多)個后端裝置BEO及BEl的簡化方塊圖。由于本實(shí)施例的內(nèi)存控制器10使用單端口緩沖器102A及雙端口緩沖器102B (如圖3所示),因此單端口緩沖器102A的大小僅為圖5A的單端口緩沖器2的一半。圖6顯示本發(fā)明實(shí)施例的內(nèi)存控制方法的流程圖。在系統(tǒng)初始化(步驟51)之后,仲裁器103選擇多個主裝置之一(步驟52)。在步驟53,主機(jī)12接收一命令,并剖析(parse)該接收命令(步驟54)。根據(jù)剖析結(jié)果,步驟55確定所請求者為寫入程序或者為讀取程序。如果所請求者為寫入程序,則流程進(jìn)入步驟56,否則進(jìn)入步驟57。圖7A顯示圖6的寫入程序的細(xì)節(jié)流程圖,而圖7B至圖7C顯示本發(fā)明實(shí)施例的寫入程序的數(shù)據(jù)流。在緩沖狀態(tài)初始化(步驟561)之后,執(zhí)行步驟562以決定自主機(jī)12寫入儲存裝置14的數(shù)據(jù)是否對齊于具預(yù)設(shè)長度的數(shù)據(jù)單位邊界(例如后端裝置邊界)。如圖7B所示,由于寫入數(shù)據(jù)對齊于數(shù)據(jù)單位邊界(例如頁邊界),因此將寫入數(shù)據(jù)搬移至雙端口緩沖器102B(步驟563)。如果步驟562決定寫入數(shù)據(jù)并未對齊于數(shù)據(jù)單位邊界,如圖7C所示,則將非對齊數(shù)據(jù)(例如圖7C第一及第五筆數(shù)據(jù))搬移至單端口緩沖器102A (步驟564),而將對齊數(shù)據(jù)(例如第二至第四筆數(shù)據(jù))搬移至雙端口緩沖器102B (步驟563)。重復(fù)上述流程,直到寫入資料已結(jié)束為止。圖8A顯示圖6的讀取程序的細(xì)節(jié)流程圖,而圖8B至圖8C顯示本發(fā)明實(shí)施例的讀取程序的數(shù)據(jù)流。在緩沖狀態(tài)初始化(步驟571)之后,執(zhí)行步驟572以決定從儲存裝置14讀取至主機(jī)12的數(shù)據(jù)是否對齊于數(shù)據(jù)單位邊界(例如后端裝置邊界)。如圖SB所示,由于讀取數(shù)據(jù)對齊于數(shù)據(jù)單位邊界(例如頁邊界),因此將讀取數(shù)據(jù)搬移至雙端口緩沖器102B (步驟573)。如果步驟572決定讀取數(shù)據(jù)并未對齊于數(shù)據(jù)單位邊界,如圖SC所示,則將非對齊數(shù)據(jù)(例如圖8C的第五筆數(shù)據(jù))搬移至單端口緩沖器102A (步驟574)。在本實(shí)施例中,第一數(shù)據(jù)單位的非對齊數(shù)據(jù)可搬移至雙端口緩沖器102B。此外,最后一數(shù)據(jù)單位的讀取數(shù)據(jù)中,位于非對齊數(shù)據(jù)的后續(xù)數(shù)據(jù)(如圖標(biāo)交叉斜線區(qū)域)也一并搬移至單端口緩沖器102A,使得這些后續(xù)數(shù)據(jù)可預(yù)擷取(pre-fetch)至主機(jī)12。重復(fù)上述流程,直到讀取數(shù)據(jù)已結(jié)束為止。圖9A至圖9B顯示本發(fā)明另一實(shí)施例的雙面(two-plane)儲存裝置(或多面儲存裝置)的寫入程序的流程圖。在本實(shí)施例中,決定寫入資料是否對齊于具預(yù)設(shè)長度的資料面(data plane)邊界。如圖9A所示,由于寫入數(shù)據(jù)對齊于數(shù)據(jù)面邊界,因此將寫入數(shù)據(jù)搬移至雙端口緩沖器102B。如果寫入數(shù)據(jù)并未對齊于相應(yīng)數(shù)據(jù)面邊界,如圖9B所示,則將非對齊數(shù)據(jù)(例如圖9B的第一筆數(shù)據(jù)的左半面以及第五筆數(shù)據(jù)的左半面)搬移至單端口緩沖器102A,而其它對齊數(shù)據(jù)則搬移至雙端口緩沖器102B。圖1OA至圖1OB顯示本發(fā)明另一實(shí)施例的雙面(two-plane)儲存裝置(或多面儲存裝置)的讀取程序的流程圖。在本實(shí)施例中,決定從儲存裝置14讀取至主機(jī)12的數(shù)據(jù)(特別是最后一個數(shù)據(jù)單位的數(shù)據(jù))是否對齊于資料面(data plane)邊界。如圖1OA所示,由于讀取數(shù)據(jù)對齊于數(shù)據(jù)面邊界,因此將讀取數(shù)據(jù)搬移至雙端口緩沖器102B。如果最后一個數(shù)據(jù)面的讀取數(shù)據(jù)并未對齊于相應(yīng)數(shù)據(jù)面邊界,如圖1OB所示,則將非對齊數(shù)據(jù)(例如圖1OB的最后一筆左半面數(shù)據(jù))搬移至單端口緩沖器102A。在本實(shí)施例中,最后一個數(shù)據(jù)面的讀取數(shù)據(jù)中,位于非對齊數(shù)據(jù)的后續(xù)數(shù)據(jù)(如圖標(biāo)交叉斜線區(qū)域)也一并搬移至單端口緩沖器102A,使得該些后續(xù)數(shù)據(jù)可預(yù)擷取(pre-fetch)至主機(jī)12。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并非用以限定本發(fā)明;凡其它未脫離發(fā)明所揭示的精神下所完成的等效改變或修飾,均應(yīng)包含在權(quán)利要求所限定的范圍內(nèi)。
權(quán)利要求
1.一種內(nèi)存控制器,包含: 一混合緩沖器,用以管理一主機(jī)與一儲存裝置之間的數(shù)據(jù)流,該混合緩沖器包含至少一個單端口緩沖器及至少一個多端口緩沖器;及 一仲裁器,用以決定多個主裝置存取所述混合緩沖器的順序; 其中寫入或讀取數(shù)據(jù)可分為至少兩部分,分別搬移至所述單端口緩沖器及所述多端口緩沖器。
2.如權(quán)利要求1所述的內(nèi)存控制器,其中,所述混合緩沖器包含一隨機(jī)存取內(nèi)存。
3.如權(quán)利要求1所述的內(nèi)存控制器,其中,所述主裝置包含一通用序列總線接口、一微處理器或一內(nèi)存接口控制器。
4.如權(quán)利要求1所述的內(nèi)存控制 器,其中,所述單端口緩沖器或所述多端口緩沖器使用地址重迭映像機(jī)制。
5.如權(quán)利要求1所述的內(nèi)存控制器,如果寫入所述儲存裝置的數(shù)據(jù)對齊于一具預(yù)設(shè)長度的數(shù)據(jù)單位邊界,則對齊的該數(shù)據(jù)搬移至所述多端口緩沖器;如果寫入的數(shù)據(jù)未對齊于所述數(shù)據(jù)單位邊界,則非對齊數(shù)據(jù)搬移至所述單端口緩沖器。
6.如權(quán)利要求1所述的內(nèi)存控制器,如果讀取至所述主機(jī)的數(shù)據(jù)對齊于一具預(yù)設(shè)長度的數(shù)據(jù)單位邊界,則對齊的數(shù)據(jù)搬移至所述多端口緩沖器;如果最后一個數(shù)據(jù)單位的讀取數(shù)據(jù)未對齊于所述數(shù)據(jù)單位邊界,則非對齊數(shù)據(jù)搬移至所述單端口緩沖器。
7.如權(quán)利要求6所述的內(nèi)存控制器,其中,在所述最后一個數(shù)據(jù)單位的讀取數(shù)據(jù)中,位于非對齊數(shù)據(jù)的后續(xù)數(shù)據(jù)一并搬移至所述單端口緩沖器,使得該后續(xù)數(shù)據(jù)被預(yù)擷取至所述主機(jī)。
8.如權(quán)利要求1所述的內(nèi)存控制器,其中,所述儲存裝置包含多個數(shù)據(jù)面,如果寫入所述儲存裝置的數(shù)據(jù)對齊于一具預(yù)設(shè)長度的數(shù)據(jù)面邊界,則對齊的數(shù)據(jù)搬移至所述多端口緩沖器;如果寫入的數(shù)據(jù)未對齊于所述數(shù)據(jù)面邊界,則非對齊數(shù)據(jù)搬移至所述單端口緩沖器。
9.如權(quán)利要求1所述的內(nèi)存控制器,其中,所述儲存裝置包含多個數(shù)據(jù)面,如果讀取至所述主機(jī)的數(shù)據(jù)對齊于一具預(yù)設(shè)長度的數(shù)據(jù)面邊界,則對齊的該數(shù)據(jù)搬移至所述多端口緩沖器;如果最后一個數(shù)據(jù)面的讀取數(shù)據(jù)未對齊于所述數(shù)據(jù)面邊界,則非對齊數(shù)據(jù)搬移至所述單端口緩沖器。
10.如權(quán)利要求9所述的內(nèi)存控制器,其中位于所述非對齊數(shù)據(jù)的后續(xù)數(shù)據(jù)一并搬移至所述單端口緩沖器,使得該后續(xù)數(shù)據(jù)被預(yù)擷取至所述主機(jī)。
11.一種內(nèi)存控制方法,包含: 提供一混合緩沖器,用以管理一主機(jī)與一儲存裝置之間的數(shù)據(jù)流,所述混合緩沖器包含至少一個單端口緩沖器及至少一個多端口緩沖器; 仲裁以決定多個主裝置存取所述混合緩沖器的順序; 剖析接收自所述主機(jī)的一命令,以決定所請求者為一寫入程序或?yàn)橐蛔x取程序;及 將寫入或讀取數(shù)據(jù)分為至少兩部分,并分別搬移至所述單端口緩沖器及所述多端口緩沖器。
12.如權(quán)利要求11所述的內(nèi)存控制方法,其中,所述混合緩沖器包含一隨機(jī)存取內(nèi)存。
13.如權(quán)利要求11所述的內(nèi)存控制方法,其中,所述單端口緩沖器或所述多端口緩沖器使用地址重迭映像機(jī)制。
14.如權(quán)利要求11所述的內(nèi)存控制方法,還包括一步驟以決定寫入所述儲存裝置的數(shù)據(jù)是否對齊于一具預(yù)設(shè)長度的數(shù)據(jù)單位邊界,如果寫入的數(shù)據(jù)對齊于該數(shù)據(jù)單位邊界,則對齊的數(shù)據(jù)搬移至所述多端口緩沖器;如果寫入的該數(shù)據(jù)未對齊于所述數(shù)據(jù)單位邊界,則非對齊數(shù)據(jù)搬移至該單端口緩沖器。
15.如權(quán)利要求11所述的內(nèi)存控制方法,還包括一步驟以決定讀取至所述主機(jī)的數(shù)據(jù)是否對齊于一具預(yù)設(shè)長度的數(shù)據(jù)單位邊界,如果所述讀取數(shù)據(jù)對齊于該數(shù)據(jù)單位邊界,則對齊的數(shù)據(jù)搬移至該多端口緩沖器;如果最后一個數(shù)據(jù)單位的讀取數(shù)據(jù)未對齊于該數(shù)據(jù)單位邊界,則非對齊數(shù)據(jù)搬移至所述單端口緩沖器。
16.如權(quán)利要求15所述的內(nèi)存控制方法,還包括將在所述最后一個數(shù)據(jù)單位的讀取數(shù)據(jù)中,位于所述非對齊數(shù)據(jù)的后續(xù)數(shù)據(jù)一并搬移至所述單端口緩沖器,使得所述后續(xù)數(shù)據(jù)被預(yù)擷取至所述主機(jī)。
17.如權(quán)利要求11所述的內(nèi)存控制方法,還包括一步驟以決定寫入所述儲存裝置的數(shù)據(jù)是否對齊于一 具預(yù)設(shè)長度的數(shù)據(jù)面邊界,其中所述儲存裝置包含多個數(shù)據(jù)面,如果寫入的數(shù)據(jù)對齊于所述數(shù)據(jù)面邊界,則對齊的數(shù)據(jù)搬移至所述多端口緩沖器;如果寫入的數(shù)據(jù)未對齊于所述數(shù)據(jù)面邊界,則非對齊數(shù)據(jù)搬移至所述單端口緩沖器。
18.如權(quán)利要求11所述的內(nèi)存控制方法,還包括一步驟以決定讀取至所述主機(jī)的數(shù)據(jù)是否對齊于一具預(yù)設(shè)長度的數(shù)據(jù)面邊界,其中所述儲存裝置包含多個數(shù)據(jù)面,如果讀取數(shù)據(jù)對齊于所述該數(shù)據(jù)面邊界,則對齊的數(shù)據(jù)搬移至所述多端口緩沖器;如果最后一個數(shù)據(jù)面的讀取數(shù)據(jù)未對齊于所述數(shù)據(jù)面邊界,則非對齊數(shù)據(jù)搬移至所述單端口緩沖器。
19.如權(quán)利要求18所述的內(nèi)存控制方法,還包括將位于所述非對齊數(shù)據(jù)的后續(xù)數(shù)據(jù)一并搬移至所述單端口緩沖器,使得所述后續(xù)數(shù)據(jù)被預(yù)擷取至所述主機(jī)。
全文摘要
一種內(nèi)存控制器,包含混合緩沖器及仲裁器?;旌暇彌_器包含至少一個單端口緩沖器及至少一個多端口緩沖器,用以管理主機(jī)與儲存裝置之間的數(shù)據(jù)流。仲裁器決定多個主裝置存取混合緩沖器的順序。其中,寫入或讀取數(shù)據(jù)可分為至少兩部分,分別搬移至單端口緩沖器及多端口緩沖器。
文檔編號G06F13/18GK103207846SQ20121007644
公開日2013年7月17日 申請日期2012年3月21日 優(yōu)先權(quán)日2012年1月17日
發(fā)明者林庭瑋, 張哲瑋 申請人:擎泰科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1