專(zhuān)利名稱(chēng):緩沖存儲(chǔ)器管理方法與相關(guān)緩沖存儲(chǔ)器控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明公開(kāi)一種緩沖存儲(chǔ)器控制方法與相關(guān)緩沖存儲(chǔ)器控制器,尤指一種將緩沖存儲(chǔ)器控制器包括的各單元同步化的緩沖存儲(chǔ)器管理方法與相關(guān)緩沖存儲(chǔ)器控制器。
背景技術(shù):
與大量數(shù)據(jù)處理相關(guān)的緩沖存儲(chǔ)器控制機(jī)制是很重要的問(wèn)題,其中所述大量數(shù)據(jù)包括多媒體數(shù)據(jù)流。為了在處理時(shí)能夠暫存大量數(shù)據(jù),緩沖存儲(chǔ)器需要具有兼容于不同操作系統(tǒng)的多種類(lèi)高速接口與驅(qū)動(dòng)程序。然而,在緩沖存儲(chǔ)器控制器中使用多種類(lèi)的接口或驅(qū)動(dòng)程序需要考慮兼容性的問(wèn)題,例如單一緩沖存儲(chǔ)器控制器中不同組件間的異步頻率。請(qǐng)參閱圖1,其圖示一種現(xiàn)有的緩沖存儲(chǔ)器控制器100及其與主機(jī)端110與閃存120共同運(yùn)作的方式,以解釋上述的兼容性問(wèn)題。如圖1所示,在數(shù)據(jù)傳輸?shù)倪^(guò)程中,緩沖存儲(chǔ)器控制器100用來(lái)當(dāng)作主機(jī)端110與閃存120間的橋梁,其中緩沖存儲(chǔ)器控制器110與閃存120可被設(shè)置于同一硬件裝置內(nèi)。緩沖存儲(chǔ)器控制器100包括接口 130、數(shù)據(jù)處理單元140、后端處理引擎150、微處理器160、及緩沖存儲(chǔ)器170。接口 130用來(lái)對(duì)應(yīng)于主機(jī)端110所使用的操作系統(tǒng),以接收由主機(jī)端110傳輸而來(lái)的數(shù)據(jù)。數(shù)據(jù)處理單元140用來(lái)處理接口 130所接收到的數(shù)據(jù)。后端處理引擎150用來(lái)檢查數(shù)據(jù)處理單元140所處理的數(shù)據(jù),以確保傳輸至閃存120的數(shù)據(jù)的正確性,其中所述檢查可為錯(cuò)誤校正程序(Error Correction)。微處理器160用來(lái)協(xié)調(diào)接口 130、數(shù)據(jù)處理單元140、后端處理引擎150、與緩沖存儲(chǔ)器170間的運(yùn)作。緩沖存儲(chǔ)器170用來(lái)暫存微處理器160在處理數(shù)據(jù)過(guò)程中產(chǎn)生的處理參數(shù)或信息。觀(guān)察圖1可知,若接口 130、數(shù)據(jù)處理單元140、后端處理引擎150、微處理器160、與緩沖存儲(chǔ)器170各自操作于相異的異步頻率,緩沖存儲(chǔ)器控制器100所包括的各組件在處理數(shù)據(jù)上的正確性將會(huì)大幅降低。
發(fā)明內(nèi)容
本發(fā)明公開(kāi)數(shù)種緩沖存儲(chǔ)器管理方法與實(shí)施所述緩沖存儲(chǔ)器管理方法的緩沖存儲(chǔ)器控制器,以解決公知技術(shù)中緩沖存儲(chǔ)器控制器內(nèi)各組件間頻率不同步引起的問(wèn)題。本發(fā)明公開(kāi)一種緩沖存儲(chǔ)器管理方法,其包括當(dāng)用來(lái)參照物理內(nèi)存區(qū)段的緩沖存儲(chǔ)器存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前可被修改,且當(dāng)對(duì)應(yīng)于所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)的區(qū)塊式存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前為數(shù)據(jù)接收目標(biāo)時(shí),由主機(jī)端接收數(shù)據(jù)至所述物理內(nèi)存區(qū)段;及當(dāng)所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前不可被修改,且當(dāng)所述區(qū)塊式存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前為數(shù)據(jù)輸出源時(shí),將數(shù)據(jù)由所述物理內(nèi)存區(qū)段輸出至閃存。所述物理內(nèi)存區(qū)段被緩沖存儲(chǔ)器控制器內(nèi)緩沖存儲(chǔ)器所包括。所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)為組成緩沖存儲(chǔ)器狀態(tài)數(shù)組的單元,所述區(qū)塊式存取狀態(tài)區(qū)為組成區(qū)塊式存取狀態(tài)數(shù)組的單元,所述區(qū)塊式存取狀態(tài)數(shù)組用來(lái)同時(shí)存取多個(gè)連續(xù)緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的多個(gè)物理內(nèi)存區(qū)段。本發(fā)明一種緩沖存儲(chǔ)器管理方法。所述方法包括當(dāng)用來(lái)參照物理內(nèi)存區(qū)段的緩沖存儲(chǔ)器存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前可被修改,且當(dāng)對(duì)應(yīng)于所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)的離散式存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前為數(shù)據(jù)接收目標(biāo)時(shí),由主機(jī)端接收數(shù)據(jù)至所述物理內(nèi)存區(qū)段;及當(dāng)所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前不可被修改,且當(dāng)所述離散式存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前為數(shù)據(jù)輸出源時(shí),將數(shù)據(jù)由所述物理內(nèi)存區(qū)段輸出至閃存。所述物理內(nèi)存區(qū)段被緩沖存儲(chǔ)器控制器內(nèi)緩沖存儲(chǔ)器所包括。所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)為組成緩沖存儲(chǔ)器狀態(tài)數(shù)組的單元,所述離散式存取狀態(tài)區(qū)為組成離散式存取狀態(tài)數(shù)組的單元,所述離散式存取狀態(tài)數(shù)組用來(lái)存取多個(gè)離散分布的緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的多個(gè)物理內(nèi)存區(qū)段。本發(fā)明公開(kāi)一種緩沖存儲(chǔ)器管理方法。所述方法包括當(dāng)對(duì)應(yīng)于第一緩沖存儲(chǔ)器存取狀態(tài)區(qū)的區(qū)塊式存取狀態(tài)區(qū)指示其所參照的第一物理內(nèi)存區(qū)段目前為數(shù)據(jù)移動(dòng)指令所指定的數(shù)據(jù)來(lái)源,且當(dāng)對(duì)應(yīng)于第二緩沖存儲(chǔ)器存取狀態(tài)區(qū)的離散式存取狀態(tài)區(qū)指示其所參照的第二物理內(nèi)存區(qū)段目前為所述數(shù)據(jù)移動(dòng)指令所指定的現(xiàn)行目標(biāo)時(shí),將數(shù)據(jù)由所述第一物理內(nèi)存區(qū)段移動(dòng)至所述第二物理內(nèi)存區(qū)段。緩沖存儲(chǔ)器包括所述第一物理內(nèi)存區(qū)段與所述第二物理內(nèi)存區(qū)段。所述第一緩沖存儲(chǔ)器存取狀態(tài)區(qū)與所述第二緩沖存儲(chǔ)器存取狀態(tài)區(qū)皆為組成緩沖存儲(chǔ)器狀態(tài)數(shù)組的單元。其中所述區(qū)塊式存取狀態(tài)區(qū)為組成區(qū)塊式存取狀態(tài)數(shù)組的單元,所述區(qū)塊式存取狀態(tài)數(shù)組用來(lái)同時(shí)存取多個(gè)連續(xù)緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的多個(gè)物理內(nèi)存區(qū)段。所述離散式存取狀態(tài)區(qū)為組成離散式存取狀態(tài)數(shù)組的單元,所述離散式存取狀態(tài)數(shù)組用來(lái)存取多個(gè)離散分布的緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的多個(gè)物理內(nèi)存區(qū)段。本發(fā)明公開(kāi)一種緩沖存儲(chǔ)器管理方法。所述方法包括當(dāng)離散式存取狀態(tài)數(shù)組的第一狀態(tài)區(qū)允許物理內(nèi)存區(qū)段被存取,且當(dāng)區(qū)塊式存取狀態(tài)數(shù)組的第三狀態(tài)區(qū)允許所述物理內(nèi)存被存取時(shí),根據(jù)數(shù)據(jù)移動(dòng)指令,存取所述物理內(nèi)存區(qū)段所暫存的數(shù)據(jù)。所述物理內(nèi)存區(qū)段被包括于緩沖存儲(chǔ)器,所述第一狀態(tài)區(qū)與所述第三狀態(tài)區(qū)皆對(duì)應(yīng)于緩沖存儲(chǔ)器狀態(tài)數(shù)組包括的第二狀態(tài)區(qū),且所述第二狀態(tài)區(qū)用來(lái)參照所述物理內(nèi)存區(qū)段。所述第二狀態(tài)區(qū)為緩沖存儲(chǔ)器存取狀態(tài)區(qū),且所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)為組成所述緩沖存儲(chǔ)器狀態(tài)數(shù)組的單元。所述第三狀態(tài)區(qū)為區(qū)塊式存取狀態(tài)區(qū),所述區(qū)塊式存取狀態(tài)區(qū)為組成區(qū)塊式存取狀態(tài)數(shù)組的單元,且所述區(qū)塊式存取狀態(tài)數(shù)組用來(lái)同時(shí)存取多個(gè)連續(xù)緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的多個(gè)物理內(nèi)存區(qū)段。所述第一狀態(tài)區(qū)為離散式存取狀態(tài)區(qū),所述離散式存取狀態(tài)區(qū)為組成離散式存取狀態(tài)數(shù)組的單元,且所述離散式存取狀態(tài)數(shù)組用來(lái)存取多個(gè)離散分布的緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的多個(gè)物理內(nèi)存區(qū)段。本發(fā)明公開(kāi)一種緩沖存儲(chǔ)器控制器,其包括緩沖存儲(chǔ)器、至少一主單元、及仲裁模塊。所述緩沖存儲(chǔ)器包括多個(gè)物理內(nèi)存區(qū)段、緩沖存儲(chǔ)器狀態(tài)數(shù)組、區(qū)塊式存取狀態(tài)數(shù)組、與離散式存取狀態(tài)數(shù)組。所述緩沖存儲(chǔ)器狀態(tài)數(shù)組包括參照所述多個(gè)物理內(nèi)存區(qū)段的多個(gè)緩沖存儲(chǔ)器存取狀態(tài)區(qū)。所述區(qū)塊式存取狀態(tài)數(shù)組包括對(duì)應(yīng)于所述多個(gè)緩沖存儲(chǔ)器存取狀態(tài)區(qū)的多個(gè)區(qū)塊式存取狀態(tài)區(qū)。所述離散式存取狀態(tài)數(shù)組包括對(duì)應(yīng)于所述多個(gè)緩沖存儲(chǔ)器存取狀態(tài)區(qū)的多個(gè)離散式存取狀態(tài)區(qū)。所述至少一主單元用來(lái)存取所述緩沖存儲(chǔ)器。所述仲裁模塊用來(lái)在所述緩沖存儲(chǔ)器執(zhí)行指令時(shí),使用防饑饉算法,以由所述至少一主單元中選出主單元。
圖1圖示一種現(xiàn)有的緩沖存儲(chǔ)器控制器及其與主機(jī)端及閃存共同運(yùn)作的方式。圖2圖示用來(lái)實(shí)施本發(fā)明公開(kāi)的緩沖存儲(chǔ)器管理方法的緩沖存儲(chǔ)器控制器。圖3例示一種本發(fā)明公開(kāi)的緩沖存儲(chǔ)器管理機(jī)制,用來(lái)在緩沖存儲(chǔ)器中指出各物理內(nèi)存區(qū)段的存取狀態(tài)。圖4用來(lái)解釋內(nèi)存繞返技術(shù)的概念。圖5為根據(jù)本發(fā)明的實(shí)施例來(lái)解釋使用范圍存取狀態(tài)數(shù)組來(lái)讀取或?qū)懭胛锢韮?nèi)存區(qū)段的概略示意圖。圖6為根據(jù)本發(fā)明的實(shí)施例說(shuō)明使用隊(duì)列存取狀態(tài)數(shù)組來(lái)讀取或?qū)懭胛锢韮?nèi)存區(qū)段的概略示意圖。圖7根據(jù)本發(fā)明的實(shí)施例,圖示如何使用范圍存取狀態(tài)數(shù)組、隊(duì)列存取狀態(tài)數(shù)組、緩沖存儲(chǔ)器狀態(tài)數(shù)組、以及物理內(nèi)存區(qū)域來(lái)實(shí)施內(nèi)部數(shù)據(jù)移動(dòng)指令。圖8為根據(jù)本發(fā)明的實(shí)施例,公開(kāi)部分有效式數(shù)據(jù)移動(dòng)指令的實(shí)施方式。圖9圖示本發(fā)明的緩沖存儲(chǔ)器管理方法的基本流程。圖10為根據(jù)本發(fā)明的部分實(shí)施例所公開(kāi)緩沖存儲(chǔ)器控制器實(shí)施寫(xiě)入指令時(shí)的流程圖。圖11為根據(jù)本發(fā)明的部分實(shí)施例所公開(kāi)緩沖存儲(chǔ)器控制器用來(lái)執(zhí)行讀取指令的流程圖。圖12根據(jù)本發(fā)明的部分實(shí)施例圖示由緩沖存儲(chǔ)器控制器所執(zhí)行的內(nèi)部數(shù)據(jù)移動(dòng)指令。圖13為根據(jù)本發(fā)明的部分實(shí)施例所公開(kāi)緩沖存儲(chǔ)器控制器執(zhí)行部分有效式數(shù)據(jù)移動(dòng)指令的流程圖。其中,附圖標(biāo)記說(shuō)明如下:100、200緩沖存儲(chǔ)器控制器110主機(jī)端120閃存130界面140、240數(shù)據(jù)處理單元150后端處理引擎160微處理器170緩沖存儲(chǔ)器180仲裁模塊RSA、RSA_R范圍狀態(tài)數(shù)組QSA、QSA_I隊(duì)列狀態(tài)數(shù)組MSA緩沖存儲(chǔ)器存取狀態(tài)數(shù)組
MO、Ml、M2、M3、M4、M5、M6、緩沖存儲(chǔ)器存取狀態(tài)區(qū)
M7、M8、M9、MNR0、R1、R2、R3、R4、R5、R6、R7、范圍存取狀態(tài)區(qū)R8、R9、RN、RRO、RRl、RR2、RR3Q0、Q1、Q2、Q3、Q4、Q5、Q6、隊(duì)列存取狀態(tài)區(qū)Q7、Q8、Q9、QN、Q10、QI1、QI2、QI3S0、S1、S2、S3、S4、S5、S6、S7、 內(nèi)存地址S8、S9PHM物理內(nèi)存區(qū)域D0、D1、D2、D3、D6、D9、D12物理內(nèi)存區(qū)段302、304、306、308、402、404、406、步驟408、410、412、502、504、506、508、510、512、602、70具體實(shí)施例方式為了解決緩沖存儲(chǔ)器控制器100包括的各組件間的異步頻率問(wèn)題,本發(fā)明公開(kāi)一種可實(shí)施于緩沖存儲(chǔ)器控制器的緩沖存儲(chǔ)器管理方法。請(qǐng)參閱圖2,其圖示用來(lái)實(shí)施本發(fā)明公開(kāi)的緩沖存儲(chǔ)器管理方法的緩沖存儲(chǔ)器控制器200。相較于圖1所示的緩沖存儲(chǔ)器控制器100,緩沖存儲(chǔ)器200另包括仲裁模塊180以及數(shù)據(jù)處理單元240,其中數(shù)據(jù)處理單元240是以本發(fā)明公開(kāi)的緩沖存儲(chǔ)器管理方法所實(shí)施,并用來(lái)替換圖1所示的數(shù)據(jù)處理單元140。在圖2中,緩沖存儲(chǔ)器170用來(lái)當(dāng)作從屬單元(Slave Unit),而接口 130、微處理器160、與后端處理引擎150則用來(lái)當(dāng)作主單元(Master Unit)。如此一來(lái),可以緩沖存儲(chǔ)器170所使用的頻率來(lái)將接130、微處理器160、以及后端處理引擎150各自所使用的頻率加以同步。本發(fā)明所公開(kāi)緩沖存儲(chǔ)器管理方法的其中一個(gè)主要目的,即為使緩沖存儲(chǔ)器170可以作為接口 130、微處理器160、以及后端處理引擎150間的頻率同步中心。仲裁模塊180用來(lái)在包括接口 130、微處理器160、與后端處理引擎150的多個(gè)主單元爭(zhēng)取緩沖存儲(chǔ)器170(亦即從屬單元)的資源時(shí),選取其中一個(gè)來(lái)當(dāng)作可存取資源的主單元。在本發(fā)明的一實(shí)施例中,是以循環(huán)式排程算法(Round-Robin Algorithm)作為仲裁模塊180選取可存取緩沖存儲(chǔ)器170的主單元的基準(zhǔn);然而,在本發(fā)明的其它實(shí)施例中,仲裁模塊180亦可使用其它種類(lèi)的防饑饉算法(Starvation-preventing Algorithm)來(lái)實(shí)施仲裁機(jī)制,以選取可存取緩沖存儲(chǔ)器170的主單元,以防止任一主單元過(guò)久的等待存取緩沖存儲(chǔ)器170的資源。在緩沖存儲(chǔ)器170中,可指定特定的物理內(nèi)存區(qū)段(Physical Memory Segment)來(lái)指示其它緩沖存儲(chǔ)器170中物理內(nèi)存的現(xiàn)行存取狀態(tài),其中物理內(nèi)存區(qū)段的現(xiàn)行存取狀態(tài)可指示所述物理內(nèi)存目前是否可被寫(xiě)入、讀取、或兩者皆否的狀態(tài)。通過(guò)所述從屬單元(亦即緩沖存儲(chǔ)器170)的輔助,緩沖存儲(chǔ)器控制器200中所述從屬單元與其它主單元間的頻率可被協(xié)調(diào);然而,本發(fā)明所公開(kāi)的緩沖存儲(chǔ)器管理方法對(duì)實(shí)施所述協(xié)調(diào)機(jī)制來(lái)說(shuō)是必要的。
以下所公開(kāi)的各圖示用來(lái)解釋本發(fā)明的緩沖存儲(chǔ)器管理方法在各種情況下的實(shí)施方式。請(qǐng)參閱圖3,其例示一種本發(fā)明公開(kāi)的緩沖存儲(chǔ)器管理機(jī)制,用來(lái)在緩沖存儲(chǔ)器170中指出各物理內(nèi)存區(qū)段的存取狀態(tài)。在圖3中,范圍狀態(tài)數(shù)組(Range Status Array)RSA與隊(duì)列狀態(tài)數(shù)組(Queue Status Array) QSA被指定于緩沖存儲(chǔ)器170中,以指示緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA中(N+1)個(gè)緩沖存儲(chǔ)器存取狀態(tài)區(qū)M0、M1、M2、M3、M4、M5、M6、M7、M8、M9、…、MN的下一步存取狀態(tài),其中緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA亦被指定于緩沖存儲(chǔ)器 170 中,(N+1)個(gè)緩沖存儲(chǔ)器存取狀態(tài)區(qū) M0、M1、M2、M3、M4、M5、M6、M7、M8、M9、.'MN 用來(lái)一一對(duì)應(yīng)參照緩沖存儲(chǔ)器170中共(N+1)個(gè)物理內(nèi)存區(qū)段,且N為正整數(shù)。所述(N+1)個(gè)物理內(nèi)存區(qū)段在緩沖存儲(chǔ)器170中未必為連續(xù)地址的物理內(nèi)存區(qū)段。范圍存取狀態(tài)數(shù)組RSA包括(N+1)個(gè)范圍存取狀態(tài)區(qū)R0、R1、R2、R3、R4、R5、R6、R7、R8、R9、…、RN,且與緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA包括的(N+1)個(gè)緩沖存儲(chǔ)器存取狀態(tài)區(qū)M0、M1、M2、M3、M4、M5、M6、M7、M8、M9、…、MN及其各自參照的物理內(nèi)存區(qū)段具有一一對(duì)應(yīng)的關(guān)系。同樣的,隊(duì)列存取狀態(tài)數(shù)組QSA包括(N+1)個(gè)隊(duì)列存取狀態(tài)區(qū)00、01、02、03、04、05、06、07、08、09、…、QN,且亦與緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA包括的(N+1)個(gè)緩沖存儲(chǔ)器存取狀態(tài)區(qū)MO、Ml、M2、M3、M4、M5、M6、M7、M8、M9、…、MN及其各自參照的物理內(nèi)存區(qū)段具有——對(duì)應(yīng)的關(guān)系。舉例來(lái)說(shuō),緩沖存儲(chǔ)器存取狀態(tài)區(qū)M5的范圍存取狀態(tài)會(huì)由范圍存取狀態(tài)區(qū)R5的現(xiàn)行值來(lái)決定;同樣的,緩沖存儲(chǔ)器存取狀態(tài)區(qū)M5的隊(duì)列存取狀態(tài)也會(huì)由隊(duì)列存取狀態(tài)區(qū)Q5的現(xiàn)行值所決定。在本發(fā)明的一實(shí)施例中,緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA、隊(duì)列存取狀態(tài)數(shù)組QSA、與范圍存取狀態(tài)數(shù)組RSA中各范圍存取狀態(tài)區(qū)的值可為O或1,亦即可為二進(jìn)制值。圖3所圖示的緩沖存儲(chǔ)器管理架構(gòu)中包括有以下規(guī)則:(a)緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA與范圍存取狀態(tài)數(shù)組RSA兩者的存取狀態(tài)區(qū)間具有一對(duì)一參照(One-by-one Mapping)的關(guān)系,且緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA與隊(duì)列存取狀態(tài)數(shù)組QSA兩者的存取狀態(tài)區(qū)間亦具有一對(duì)一參照的關(guān)系。再者,緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA中值為O的緩沖存儲(chǔ)器存取狀態(tài)區(qū)代表所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)參照的物理內(nèi)存區(qū)段當(dāng)時(shí)允許被寫(xiě)入,且在所述物理內(nèi)存區(qū)段被寫(xiě)入后,所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)的值會(huì)被更新為I ;同理, 緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA中值為I的緩沖存儲(chǔ)器存取狀態(tài)區(qū)代表所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)參照的物理內(nèi)存區(qū)段當(dāng)時(shí)允許被讀取,且在所述物理內(nèi)存區(qū)段被讀取后,所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)的值會(huì)被更新為O。(b)范圍存取狀態(tài)數(shù)組RSA中值為O的范圍存取狀態(tài)區(qū)代表其對(duì)應(yīng)的物理內(nèi)存區(qū)段當(dāng)時(shí)禁止被存取或修改,而范圍存取狀態(tài)數(shù)組RSA中值為I的范圍存取狀態(tài)區(qū)代表其對(duì)應(yīng)的物理內(nèi)存區(qū)段當(dāng)時(shí)允許被存取或修改。在寫(xiě)入數(shù)據(jù)至物理內(nèi)存區(qū)段后,緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA中對(duì)應(yīng)的緩沖存儲(chǔ)器存取狀態(tài)區(qū)的值會(huì)被更新為I ;而當(dāng)由物理內(nèi)存區(qū)段讀出數(shù)據(jù)后,緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA中對(duì)應(yīng)的緩沖存儲(chǔ)器存取狀態(tài)區(qū)的值會(huì)被更新為O。除此以外,當(dāng)范圍存取狀態(tài)數(shù)組RSA用來(lái)指出對(duì)應(yīng)的物理內(nèi)存區(qū)段目前的存取狀態(tài)時(shí),范圍存取狀態(tài)數(shù)組RSA會(huì)一次同時(shí)允許緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA中多個(gè)連續(xù)(亦即區(qū)塊式分布)的緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的物理內(nèi)存區(qū)段可被存取(亦即值為I的范圍存取狀態(tài)區(qū)),如圖5的范圍存取狀態(tài)數(shù)組RSA中多個(gè)連續(xù)且值為I的范圍存取狀態(tài)區(qū)與其一一對(duì)應(yīng)的多個(gè)緩沖存儲(chǔ)器存取狀態(tài)區(qū)所示。(c)隊(duì)列存取狀態(tài)數(shù)組QSA中各隊(duì)列存取狀態(tài)區(qū)取值為O或I的定義與范圍存取狀態(tài)數(shù)組RSA相同,然而在使用方式上卻完全不同。當(dāng)隊(duì)列存取狀態(tài)數(shù)組QSA用來(lái)指示其所參照的各物理內(nèi)存區(qū)段的存取狀態(tài)時(shí),隊(duì)列存取狀態(tài)數(shù)組QSA會(huì)允許緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA中多個(gè)不連續(xù)(亦即離散分布)的緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的物理內(nèi)存區(qū)段的存取,如圖6中隊(duì)列存取狀態(tài)數(shù)組QSA中多個(gè)不連續(xù)且值為I的隊(duì)列存取狀態(tài)區(qū)與其一一對(duì)應(yīng)的多個(gè)緩沖存儲(chǔ)器存取狀態(tài)區(qū)所示。
(d)緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA中各緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的物理內(nèi)存區(qū)段在大小上不見(jiàn)得相同。(e)在讀取或?qū)懭胛锢韮?nèi)存區(qū)段時(shí),在同一時(shí)間內(nèi),范圍存取狀態(tài)數(shù)組RSA與隊(duì)列存取狀態(tài)數(shù)組QSA兩者只會(huì)有其一被用于允許對(duì)應(yīng)的物理內(nèi)存區(qū)段可被存取的操作,亦即范圍存取狀態(tài)數(shù)組RSA與隊(duì)列存取狀態(tài)數(shù)組QSA兩者在實(shí)施物理內(nèi)存區(qū)段的讀取指令或?qū)懭胫噶顣r(shí)彼此為互斥。(f)緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA、范圍存取狀態(tài)數(shù)組RSA、與隊(duì)列存取狀態(tài)數(shù)組QSA三者皆可使用內(nèi)存繞返(Memory Wrapping)技術(shù)。請(qǐng)參閱圖4,其用來(lái)解釋上述(f)部分中內(nèi)存繞返技術(shù)的概念。在圖4中例示有多個(gè)連續(xù)內(nèi)存地址S0、S1、…、S9。當(dāng)以?xún)?nèi)存繞返技術(shù)存取所述連續(xù)內(nèi)存地址S0、S1、…、S9時(shí),其意指所述內(nèi)存地址會(huì)以依序(In-order)、循環(huán)式(Cyclic)、且逐區(qū)塊(Block_by-block)的方式來(lái)被存取。舉例來(lái)說(shuō),假設(shè)目前內(nèi)存是以一次四個(gè)地址的方式被存取,且內(nèi)存地址S7目前為目前存取中的起始地址時(shí),則接下來(lái)的內(nèi)存地址存取順序可被預(yù)期為(S7、S8、S9、SO)、(S1、S2、S3、S4)、(S5、S6、S7、S8)、(S9、SO、S1、S2),依此類(lèi)推。本發(fā)明所公開(kāi)的緩沖存儲(chǔ)器管理方法是基于圖3所示的架構(gòu)來(lái)進(jìn)行,并包括基本流程如下:(Tl)決定使用范圍存取狀態(tài)數(shù)組RSA或隊(duì)列存取狀態(tài)數(shù)組QSA,來(lái)允許對(duì)應(yīng)的物理內(nèi)存區(qū)段被存取。(T2)設(shè)定所決定使用的存取狀態(tài)數(shù)組,并根據(jù)現(xiàn)行系統(tǒng)需求,決定一次存取中所存取物理內(nèi)存區(qū)段的數(shù)量。(T3)決定使用存取狀態(tài)數(shù)組進(jìn)行存取時(shí),在所使用的存取狀態(tài)數(shù)組與緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA中的存取方向,以根據(jù)所述存取方向參照并存取對(duì)應(yīng)的物理內(nèi)存區(qū)段。(T4)設(shè)定初始前端指標(biāo)。根據(jù)步驟(Tl)至(T4),本發(fā)明所公開(kāi)的緩沖存儲(chǔ)器管理方法可對(duì)應(yīng)于不同狀況而實(shí)施如下所述功能:(A)使用范圍存取狀態(tài)數(shù)組RSA來(lái)讀取或?qū)懭胛锢韮?nèi)存區(qū)段。(B)使用隊(duì)列存取狀態(tài)數(shù)組QSA來(lái)讀取或?qū)懭胛锢韮?nèi)存區(qū)段。(C)使用范圍存取狀態(tài)數(shù)組RSA與隊(duì)列存取狀態(tài)數(shù)組QSA來(lái)執(zhí)行內(nèi)部數(shù)據(jù)移動(dòng)指令。(D)使用范圍存取狀態(tài)數(shù)組RSA與隊(duì)列存取狀態(tài)數(shù)組QSA來(lái)執(zhí)行局部有效式數(shù)據(jù)移動(dòng)指令(Partial Valid Data Moving Instruction)。上述的功能㈧至⑶詳述如下:(A)使用范圍存取狀態(tài)數(shù)組RSA來(lái)讀取或?qū)懭胛锢韮?nèi)存區(qū)段:根據(jù)上述的基本流程,當(dāng)選取主單元來(lái)作為從屬單元時(shí)(例如選取數(shù)據(jù)處理單元140作為從屬單元時(shí)),會(huì)根據(jù)上述的步驟(Tl)與(T2),決定以范圍存取狀態(tài)數(shù)組RSA作為決定欲存取的物理內(nèi)存區(qū)段的參考。請(qǐng)參閱圖5,其為根據(jù)本發(fā)明的一實(shí)施例來(lái)解釋上述的功能(A)的概略示意圖。范圍存取狀態(tài)數(shù)組RSA與緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA的初始值如圖5左側(cè)所示。在圖5中,假設(shè)數(shù)據(jù)處理單元140會(huì)先接收到讀取指令,再接著接收到寫(xiě)入指令。請(qǐng)注意,在緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA中,只有被范圍存取狀態(tài)數(shù)組RSA中值為I的范圍存取狀態(tài)區(qū)所對(duì)應(yīng)到的緩沖存儲(chǔ)器存取狀態(tài)區(qū)才會(huì)被更新,亦即如上述規(guī)則(b)所述的允許存取狀況;而被范圍存取狀態(tài)數(shù)組RSA中值為O的范圍存取狀態(tài)區(qū)所對(duì)應(yīng)到的緩沖存儲(chǔ)器存取狀態(tài)區(qū)則不會(huì)被更新,亦即如上述規(guī)則(b)所述的禁止存取狀況。當(dāng)接收到讀取指令時(shí),根據(jù)上述的規(guī)則(a)與規(guī)則(b),范圍存取狀態(tài)數(shù)組RSA中值為I的范圍存取狀態(tài)區(qū)在緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA中對(duì)應(yīng)的緩沖存儲(chǔ)器存取狀態(tài)區(qū)(值為I)所參照的物理內(nèi)存區(qū)段此時(shí)會(huì)被允許讀?。怀艘酝?,所述值為I的緩沖存儲(chǔ)器存取狀態(tài)區(qū)的值會(huì)在這些物理內(nèi)存區(qū)段被讀取后被更新為O ;范圍存取狀態(tài)數(shù)組RSA中值為O的范圍存取狀態(tài)區(qū)在緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA中對(duì)應(yīng)的緩沖存儲(chǔ)器存取狀態(tài)區(qū)的值不會(huì)被更動(dòng),且所述不被更動(dòng)值的緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的物理內(nèi)存區(qū)段此時(shí)亦不被允許讀取。觀(guān)察圖5可知,在范圍存取狀態(tài)數(shù)組RSA中值為I的范圍存取狀態(tài)區(qū)是連續(xù)分布的,而值為O的范圍存取狀態(tài)區(qū)也是連續(xù)分布的。這代表每一次使用范圍存取狀態(tài)數(shù)組RSA執(zhí)行寫(xiě)入指令或讀取指令時(shí),在緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA中會(huì)被存取且值會(huì)被更新的緩沖存儲(chǔ)器存取狀態(tài)區(qū)分布也是連續(xù)的;換句話(huà)說(shuō),范圍存取狀態(tài)數(shù)組RSA的存取型態(tài)使其成為區(qū)塊式存取(Accessing-by-block)狀態(tài)數(shù)組,且上述值為I的連續(xù)范圍存取狀態(tài)區(qū)數(shù)目(亦即長(zhǎng)度)即為一次指令執(zhí)行中所同時(shí)存取的物理內(nèi)存區(qū)段數(shù)目,且所述長(zhǎng)度可在使用范圍存取狀態(tài)數(shù)組RSA前就先行決定。如此一來(lái),如圖5所示,當(dāng)使用范圍存取狀態(tài)數(shù)組RSA執(zhí)行讀取或?qū)懭胫噶顣r(shí),范圍存取狀態(tài)數(shù)組RSA可指定前端指標(biāo)(Front Pointer)FPl指向存取緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA時(shí)的起始緩沖存儲(chǔ)器存取狀態(tài)區(qū),并指定后端指標(biāo)(RearPointer) RPl指向存取緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA時(shí)的終點(diǎn)緩沖存儲(chǔ)器存取狀態(tài)區(qū)。在設(shè)定前端指標(biāo)FPl與后端指針RPl的指定對(duì)象時(shí),也需要考慮緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA的存取方向。當(dāng)使用范圍存取狀態(tài)數(shù)組RSA進(jìn)行存取,且當(dāng)范圍存取狀態(tài)數(shù)組RSA進(jìn)行存取的長(zhǎng)度超過(guò)緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA的尾端時(shí),可使用上述的內(nèi)存繞返技術(shù)(亦即規(guī)則(f)),以繞回緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA的前端來(lái)繼續(xù)進(jìn)行此次存取。在將讀取指令或?qū)懭胫噶顖?zhí)行完畢時(shí),在緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA上執(zhí)行所述指令的終點(diǎn)會(huì)被設(shè)定為后端指標(biāo)RPl所指向的目標(biāo),以使得執(zhí)行下一個(gè)指令時(shí),可將后端指標(biāo)RPl所指向的目標(biāo)設(shè)定為前端指針FPl的目標(biāo)以執(zhí)行所述下一個(gè)指令。(B)使用隊(duì)列存取狀態(tài)數(shù)組QSA來(lái)讀取或?qū)懭胛锢韮?nèi)存區(qū)段:根據(jù)上述的基本流程,當(dāng)指定主單元給所述從屬單元(亦即數(shù)據(jù)處理單元140)時(shí),可選擇隊(duì)列存取狀態(tài)數(shù)組QSA并根據(jù)上述的步驟(Tl)與(T2)來(lái)進(jìn)行。請(qǐng)參閱圖6,其為根據(jù)本發(fā)明的實(shí)施例說(shuō)明上述的功能(B)的概略示意圖,其中隊(duì)列存取狀態(tài)數(shù)組QSA與緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA的初始值皆如圖6左側(cè)所示。在此假設(shè)數(shù)據(jù)處理單元140先行接收了讀取指令,接著再接收了寫(xiě)入指令。如同上述的規(guī)則(c)所述,在緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA中,只有被隊(duì)列存取狀態(tài)數(shù)組QSA中值為I的隊(duì)列存取狀態(tài)區(qū)所對(duì)應(yīng)的緩沖存儲(chǔ)器存取狀態(tài)區(qū)才被允許存取,而隊(duì)列存取狀態(tài)數(shù)組QSA中值為O的隊(duì)列存取狀態(tài)區(qū)所對(duì)應(yīng)的緩沖存儲(chǔ)器存取狀態(tài)區(qū)則不允許被存取。當(dāng)接收到所述讀取指令時(shí),根據(jù)上述的規(guī)則(a)與規(guī)則(C),只有被值為I的隊(duì)列存取狀態(tài)區(qū)對(duì)應(yīng)且本身值為I的緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的物理內(nèi)存區(qū)段才會(huì)被允許存取(此時(shí)為讀取),且在這些物理內(nèi)存區(qū)段被存取后,這些緩沖存儲(chǔ)器存取狀態(tài)區(qū)的值全部都會(huì)由I被更新為O。另外,值為O的隊(duì)列存取狀態(tài)區(qū)所對(duì)應(yīng)的緩沖存儲(chǔ)器存取狀態(tài)區(qū),無(wú)論其值為O或1,其所參照的物理內(nèi)存區(qū)段都會(huì)被禁止存取。接著,當(dāng)接收到寫(xiě)入指令時(shí),根據(jù)上述的規(guī)則(a)與規(guī)則(C),只有被值為I的隊(duì)列存取狀態(tài)區(qū)對(duì)應(yīng)且本身值為O的緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的物理內(nèi)存區(qū)段才會(huì)被允許存取(此時(shí)為寫(xiě)入),且在這些物理內(nèi)存區(qū)段被存取后,這些緩沖存儲(chǔ)器存取狀態(tài)區(qū)的值全部都會(huì)由O被更新為I。另外,值為O的隊(duì)列存取狀態(tài)區(qū)所對(duì)應(yīng)的緩沖存儲(chǔ)器存取狀態(tài)區(qū),無(wú)論其值為O或1,其所參照的物理內(nèi)存區(qū)段都會(huì)被禁止存取。如圖6所示,在隊(duì)列存取狀態(tài)數(shù)組QSA中,值為I的隊(duì)列存取狀態(tài)區(qū)并非是連續(xù)分布,而是以離散方式分布,且各值為I的隊(duì)列存取狀態(tài)區(qū)間會(huì)穿插至少一個(gè)固定個(gè)數(shù)的值為O的隊(duì)列存取狀態(tài)區(qū),而不會(huì)出現(xiàn)連續(xù)兩個(gè)值為I的隊(duì)列存取狀態(tài)區(qū)并排的狀況;因此,隊(duì)列存取狀態(tài)數(shù)組QSA在允許存取的特性上,也會(huì)在緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA上呈現(xiàn)出離散式存取(Accessing-by-spaced-1nterval)的分布。換句話(huà)說(shuō),可將隊(duì)列存取狀態(tài)數(shù)組QSA視為離散式存取狀態(tài)數(shù)組。如圖6所示,當(dāng)使用隊(duì)列存取狀態(tài)數(shù)組QSA執(zhí)行讀取或?qū)懭胫噶顣r(shí),指定前端指標(biāo)FP2與后端指針RP2的指向目標(biāo)、根據(jù)緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA的存取方向來(lái)設(shè)定前端指標(biāo)FPl與后端指針RPl的指定對(duì)象、或如何使用上述的內(nèi)存繞返技術(shù)等細(xì)節(jié),皆類(lèi)似于圖5所示的范圍存取狀態(tài)數(shù)組RSA —樣的作法,故此處不再另行贅述。通過(guò)使用隊(duì)列存取狀態(tài)數(shù)組QSA來(lái)存取數(shù)據(jù),以離散方式所存取的數(shù)據(jù)可以達(dá)成較佳的數(shù)據(jù)洗牌(Data Shuffling)效果,也不需要再另行修改不被允許存取的物理內(nèi)存區(qū)段中所儲(chǔ)存的數(shù)據(jù)。(C)使用范圍存取狀態(tài)數(shù)組RSA與隊(duì)列存取狀態(tài)數(shù)組QSA來(lái)執(zhí)行內(nèi)部數(shù)據(jù)移動(dòng)指令:當(dāng)實(shí)施緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA所參照的各物理內(nèi)存區(qū)段間的內(nèi)部數(shù)據(jù)移動(dòng)(Internal Data Moving)指令時(shí),每一個(gè)內(nèi)部數(shù)據(jù)搬移指令都會(huì)指定范圍存取狀態(tài)數(shù)組RSA中的范圍存取狀態(tài)區(qū)來(lái)當(dāng)作來(lái)源端,并指定隊(duì)列存取狀態(tài)數(shù)組QSA中的隊(duì)列存取狀態(tài)區(qū)來(lái)當(dāng)作目標(biāo)端。請(qǐng)注意,在實(shí)施內(nèi)部數(shù)據(jù)移動(dòng)指令時(shí),來(lái)源端與目標(biāo)端在緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA上對(duì)應(yīng)的緩沖存儲(chǔ)器存取狀態(tài)區(qū)不可為同一個(gè)緩沖存儲(chǔ)器存取狀態(tài)區(qū),因?yàn)閮?nèi)部數(shù)據(jù)移動(dòng)指令并不會(huì)把位于同一物理內(nèi)存區(qū)段的數(shù)據(jù)在一次指令執(zhí)行中再次挪移給所述物理內(nèi)存區(qū)段。除此以外,在實(shí)施內(nèi)部數(shù)據(jù)移動(dòng)指令時(shí),也可以設(shè)定或更新前端指標(biāo)與后端指針在緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA上的指向目標(biāo),以指向內(nèi)部數(shù)據(jù)移動(dòng)指令的來(lái)源端與目標(biāo)端。請(qǐng)參閱圖7,其根據(jù)本發(fā)明的實(shí)施例,圖示如何使用范圍存取狀態(tài)數(shù)組RSA、隊(duì)列存取狀態(tài)數(shù)組QSA、緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA、以及物理內(nèi)存區(qū)域PHM來(lái)實(shí)施內(nèi)部數(shù)據(jù)移動(dòng)指令,其中物理內(nèi)存區(qū)域PHM被規(guī)劃于緩沖存儲(chǔ)器170內(nèi),并包括多個(gè)物理內(nèi)存區(qū)段DO、D1、D2、D3、D6、D9、以及D12,而物理內(nèi)存區(qū)段DO、DU D2、D3、D6、D9、D12亦各自被緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA中的緩沖存儲(chǔ)器存取狀態(tài)區(qū)MO、Ml、M2、M3、M6、M9、以及M12所參照。在本發(fā)明的實(shí)施例中,每一物理內(nèi)存區(qū)段的大小皆為512字節(jié)(Bytes);然而,在本發(fā)明的其它實(shí)施例中,每一物理內(nèi)存區(qū)段的大小是可調(diào)整的。觀(guān)察圖7可知,范圍存取狀態(tài)數(shù)組RSA中只有范圍存取狀態(tài)區(qū)RO、Rl、R2的值為1,且范圍存取狀態(tài)區(qū)R0、RU R2此時(shí)用來(lái)指出內(nèi)部數(shù)據(jù)移動(dòng)指令的來(lái)源端;隊(duì)列存取狀態(tài)數(shù)組QSA中只有隊(duì)列存取狀態(tài)區(qū)Q3、Q6、Q9、Q12的值為1,且隊(duì)列存取狀態(tài)區(qū)Q3、Q6、Q9、Q12此時(shí)用來(lái)指出內(nèi)部數(shù)據(jù)移動(dòng)指令的目標(biāo)端。在執(zhí)行內(nèi)部數(shù)據(jù)移動(dòng)指令時(shí),由范圍存取狀態(tài)數(shù)組RSA所指出的來(lái)源端至隊(duì)列存取狀態(tài)數(shù)組QSA所指出的目標(biāo)端間的參照關(guān)系,是以依序(In-order)且使用上述內(nèi)存繞返技術(shù)的方式來(lái)實(shí)施。在圖7中,存在有四個(gè)內(nèi)部數(shù)據(jù)移動(dòng)指令:第一個(gè)內(nèi)部數(shù)據(jù)移動(dòng)指令的來(lái)源端與目標(biāo)端是由范圍存取狀態(tài)區(qū)RO與隊(duì)列存取狀態(tài)區(qū)Q3所定義,用來(lái)將儲(chǔ)存于物理內(nèi)存區(qū)段DO的數(shù)據(jù)移動(dòng)至物理內(nèi)存區(qū)段D3 ;第二個(gè)內(nèi)部數(shù)據(jù)移動(dòng)指令的來(lái)源端與目標(biāo)端是由范圍存取狀態(tài)區(qū)Rl與隊(duì)列存取狀態(tài)區(qū)Q6所定義,用來(lái)將儲(chǔ)存于物理內(nèi)存區(qū)段Dl的數(shù)據(jù)移動(dòng)至物理內(nèi)存區(qū)段D6;第三個(gè)內(nèi)部數(shù)據(jù)移動(dòng)指令的來(lái)源端與目標(biāo)端是由范圍存取狀態(tài)區(qū)R2與隊(duì)列存取狀態(tài)區(qū)Q9所定義,用來(lái)將儲(chǔ)存于物理內(nèi)存區(qū)段D2的數(shù)據(jù)移動(dòng)至物理內(nèi)存區(qū)段D9 ;第四個(gè)內(nèi)部數(shù)據(jù)移動(dòng)指令的來(lái)源端與目標(biāo)端是由范圍存取狀態(tài)區(qū)RO與隊(duì)列存取狀態(tài)區(qū)Q12所定義,用來(lái)將儲(chǔ)存于物理內(nèi)存區(qū)段DO的數(shù)據(jù)移動(dòng)至物理內(nèi)存區(qū)段D12。在執(zhí)行內(nèi)部數(shù)據(jù)移動(dòng)指令時(shí),并不需要確認(rèn)緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA中每一緩沖存儲(chǔ)器存取狀態(tài)區(qū)的值,且在隊(duì)列存取狀態(tài)數(shù)組QSA中,兩個(gè)值為I的隊(duì)列存取狀態(tài)區(qū)間所間隔值為O的隊(duì)列存取狀態(tài)區(qū)的數(shù)目也并非為固定值,如圖7中隊(duì)列存取狀態(tài)數(shù)組QSA所
/Jn ο通過(guò)使用范圍存取狀態(tài)數(shù)組RSA與隊(duì)列存取狀態(tài)數(shù)組QSA來(lái)實(shí)施內(nèi)部數(shù)據(jù)移動(dòng)指令,可實(shí)現(xiàn)較佳的內(nèi)存配置(Memory Allocation)。(D)使用范圍存取狀態(tài)數(shù)組RSA與隊(duì)列存取狀態(tài)數(shù)組QSA來(lái)執(zhí)行局部有效式數(shù)據(jù)移動(dòng)指令:當(dāng)執(zhí)行局部有效式數(shù)據(jù)移動(dòng)指令時(shí),接口 130用來(lái)處理主機(jī)端110與緩沖存儲(chǔ)器控制器200間的數(shù)據(jù)傳輸,且后端處理引擎150用來(lái)處理緩沖存儲(chǔ)器控制器200與閃存120間的數(shù)據(jù)傳輸。當(dāng)局部有效式數(shù)據(jù)移動(dòng)指令用來(lái)將數(shù)據(jù)由主機(jī)端110傳輸至閃存120時(shí),亦即當(dāng)所述局部有效式數(shù)據(jù)移動(dòng)指令為寫(xiě)入指令,接口 130用來(lái)由主機(jī)端110擷取數(shù)據(jù),并用來(lái)將所擷取的數(shù)據(jù)暫存于緩沖存儲(chǔ)器170中;后端處理引擎150用來(lái)將數(shù)據(jù)由緩沖存儲(chǔ)器170傳輸至閃存120。當(dāng)后端處理引擎150將數(shù)據(jù)由緩沖存儲(chǔ)器170傳輸至閃存120時(shí),隊(duì)列存取狀態(tài)數(shù)組QSA用來(lái)指出緩沖存儲(chǔ)器170中目前可用的內(nèi)存地址(亦即值為I的隊(duì)列存取狀態(tài)區(qū)所對(duì)應(yīng)參照且允許存取的物理內(nèi)存區(qū)段),范圍存取狀態(tài)數(shù)組RSA用來(lái)指出一次寫(xiě)入閃存120的存取中被允許存取的連續(xù)內(nèi)存地址的數(shù)目,亦即用來(lái)決定一次寫(xiě)入的內(nèi)存地址的長(zhǎng)度。當(dāng)局部有效式數(shù)據(jù)移動(dòng)指令用來(lái)將數(shù)據(jù)由閃存120傳輸至主機(jī)端110,亦即當(dāng)局部有效式數(shù)據(jù)移動(dòng)指令為讀取指令時(shí),后端處理引擎150用來(lái)由閃存120接收數(shù)據(jù),并將所接收的數(shù)據(jù)暫存于緩沖存儲(chǔ)器170,且接口 130用來(lái)將所述數(shù)據(jù)由緩沖存儲(chǔ)器170傳輸至主機(jī)端110。當(dāng)后端處理引擎150將數(shù)據(jù)由閃存120傳輸至緩沖存儲(chǔ)器170時(shí),范圍存取狀態(tài)數(shù)組RSA用來(lái)指出一次讀取數(shù)據(jù)的數(shù)量,亦即用來(lái)指出一次存取的連續(xù)內(nèi)存地址的長(zhǎng)度;而隊(duì)列存取狀態(tài)數(shù)組QSA用來(lái)指出緩沖存儲(chǔ)器170中的有效內(nèi)存地址,使得接口 130可據(jù)以將數(shù)據(jù)由這些有效內(nèi)存地址傳輸至主機(jī)端110。請(qǐng)注意,當(dāng)執(zhí)行局部有效式數(shù)據(jù)移動(dòng)指令以進(jìn)行讀取時(shí),緩沖存儲(chǔ)器170上的無(wú)效內(nèi)存地址可通過(guò)上述機(jī)制而得以被禁止存取。請(qǐng)參閱圖8,其為根據(jù)本發(fā)明的實(shí)施例所公開(kāi)部分有效式數(shù)據(jù)移動(dòng)指令的實(shí)施方式。在圖8中,假設(shè)隊(duì)列存取狀態(tài)數(shù)組QSA_I中的隊(duì)列存取狀態(tài)區(qū)Q10、QI1、QI2、QI3—一對(duì)應(yīng)于緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA中的緩沖存儲(chǔ)器存取狀態(tài)區(qū)MO、Ml、M2、M3,且范圍存取狀態(tài)數(shù)組RSA_R中的隊(duì)列存取狀態(tài)區(qū)RRO、RRl、RR2、RR3亦一一對(duì)應(yīng)于緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA中的緩沖存儲(chǔ)器存取狀態(tài)區(qū)MO、Ml、M2、M3。另外,緩沖存儲(chǔ)器存取狀態(tài)區(qū)MO、Ml、M2、M3也一一對(duì)應(yīng)于緩沖存儲(chǔ)器170中物理內(nèi)存區(qū)域PHM所包括的物理內(nèi)存區(qū)段S0、S1、S2、S3,其中物理內(nèi)存區(qū)段S0、S1、S2、S3各自包括數(shù)據(jù)DO、Dl、D2、D3。當(dāng)部分有效式數(shù)據(jù)移動(dòng)指令為寫(xiě)入指令時(shí),隊(duì)列存取狀態(tài)數(shù)組QSA用來(lái)指出物理內(nèi)存區(qū)段SO與S2此時(shí)為有效內(nèi)存區(qū)段,并指出物理內(nèi)存區(qū)段SI與S3此時(shí)為無(wú)效內(nèi)存區(qū)段。范圍存取狀態(tài)數(shù)組RSA_R包括的范圍存取狀態(tài)區(qū)RRO、RRU RR2、RR3指出一次存取的連續(xù)內(nèi)存地址(亦即長(zhǎng)度)為四個(gè)。如此一來(lái),因?yàn)榉秶嫒顟B(tài)區(qū)RR0、RR1、RR2、RR3的值皆為1,數(shù)據(jù)D0、D1、D2、D3會(huì)被范圍存取狀態(tài)數(shù)組RSA_R允許寫(xiě)入閃存120 ;然而由于數(shù)據(jù)Dl與D3可能為無(wú)效數(shù)據(jù)(因?yàn)殛?duì)列存取狀態(tài)區(qū)QIl與QI3的值為O)而使得緩沖存儲(chǔ)器存取狀態(tài)區(qū)Ml與M3參照的物理內(nèi)存區(qū)段SI與S3不被隊(duì)列存取狀態(tài)數(shù)組QSA所允許存取,故最后物理內(nèi)存區(qū)段SI與S3仍然不會(huì)被存取。同樣的,當(dāng)部分有效式數(shù)據(jù)移動(dòng)指令為讀取指令時(shí),物理內(nèi)存區(qū)段SO與S2所儲(chǔ)存的數(shù)據(jù)D0、D2會(huì)被允許讀入主機(jī)端110,此是因隊(duì)列存取狀態(tài)區(qū)QIO與QI2的值皆為I (指出了物理內(nèi)存區(qū)段MO與M2此時(shí)為有效物理內(nèi)存區(qū)段)且范圍存取狀態(tài)區(qū)RRO與RR2的值亦皆為I ;而雖然范圍存取狀態(tài)區(qū)RRl與RR3的值皆為1,但因?yàn)殛?duì)列存取狀態(tài)區(qū)QIO與QI2的值皆為O (指出了物理內(nèi)存區(qū)段Ml與M3此時(shí)為無(wú)效物理內(nèi)存區(qū)段)而禁止了物理內(nèi)存區(qū)段Ml與M3的存取,故最后物理內(nèi)存區(qū)段Ml與M3仍然不會(huì)被存取。請(qǐng)注意,在實(shí)施部分有效數(shù)據(jù)移動(dòng)指令時(shí),緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA中各緩沖存儲(chǔ)器存取狀態(tài)區(qū)的值不需要被檢驗(yàn),且任二個(gè)值為I的隊(duì)列存取狀態(tài)區(qū)間值為O的隊(duì)列存取狀態(tài)區(qū)個(gè)數(shù)也并非固定值。除此以外,根據(jù)本發(fā)明的實(shí)施例,緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA亦可應(yīng)用上述的內(nèi)存繞回技術(shù),以對(duì)應(yīng)設(shè)定前端指標(biāo)與后端指針?biāo)赶虻哪繕?biāo)。通過(guò)禁止緩沖存儲(chǔ)器170中的無(wú)效物理內(nèi)存區(qū)段被存取,緩沖存儲(chǔ)器控制器200的效能將可避免被所述無(wú)效物理內(nèi)存區(qū)段所影響??偨Y(jié)上述的狀況㈧、狀況⑶、狀況(C)、狀況(D),通過(guò)使用范圍存取狀態(tài)數(shù)組RSA及/或隊(duì)列存取狀態(tài)數(shù)組QSA,可統(tǒng)整從屬單元以及其對(duì)應(yīng)的各主單元的頻率,以使得緩沖存儲(chǔ)器控制器200的各種運(yùn)作可以依循從屬單元的頻率來(lái)進(jìn)行。請(qǐng)參閱圖9,其為上述步驟(Tl)至(T4)所述的基本流程的總結(jié)。如圖9所示,所述基本流程主要包括如下步驟:步驟302:根據(jù)仲裁模塊180所使用的防饑饉算法,選取主單元。步驟304:接收讀取指令、寫(xiě)入指令、或數(shù)據(jù)移動(dòng)指令。
步驟306:為所述主單元選取范圍存取狀態(tài)數(shù)組、隊(duì)列存取狀態(tài)數(shù)組、或兩者皆選取。步驟308:為步驟306中所選取的存取狀態(tài)數(shù)組更新前端指針與后端指標(biāo)。步驟310:步驟結(jié)束。請(qǐng)參閱圖10,其為根據(jù)本發(fā)明的部分實(shí)施例所公開(kāi)緩沖存儲(chǔ)器控制器200實(shí)施寫(xiě)入指令時(shí)的流程圖,并為上述的功能(A)與功能(B)的相關(guān)敘述所支持。如圖10所示,實(shí)施寫(xiě)入指令的流程包括步驟如下:步驟402:根據(jù)后端指針的現(xiàn)行目標(biāo),設(shè)定前端指針。步驟404:在緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA中,搜尋值為O的緩沖存儲(chǔ)器存取狀態(tài)區(qū)。步驟406:決定使用范圍存取狀態(tài)數(shù)組RSA或隊(duì)列存取狀態(tài)數(shù)組QSA來(lái)允許緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA上的存取。步驟408:寫(xiě)入數(shù)據(jù)于步驟406中所決定使用的存取狀態(tài)數(shù)組在緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA中所允許存取且在步驟404中確認(rèn)本身值為O的緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的物理內(nèi)存區(qū)段。步驟410:將步驟408中用來(lái)參照物理內(nèi)存區(qū)段的緩沖存儲(chǔ)器存取狀態(tài)區(qū)的值由O更新為I。步驟412:將所述后端指針的現(xiàn)行目標(biāo)更新為所述寫(xiě)入指令最后所存取的目標(biāo)。請(qǐng)參閱圖11,其為根據(jù)本發(fā)明的部分實(shí)施例所公開(kāi)緩沖存儲(chǔ)器控制器200用來(lái)執(zhí)行讀取指令的流程圖,如上述的功能(A)或功能(B)所述。如圖11所示,執(zhí)行讀取指令的流程包括如下步驟:步驟502:根據(jù)后端指針的現(xiàn)行目標(biāo)來(lái)設(shè)定前端指針。步驟504:搜尋緩沖存儲(chǔ)器狀態(tài)數(shù)組MSA中值為I的緩沖存儲(chǔ)器存取狀態(tài)區(qū)。步驟506:決定使用范圍存取狀態(tài)數(shù)組RSA或隊(duì)列存取狀態(tài)數(shù)組QSA來(lái)允許緩沖存儲(chǔ)器存取狀態(tài)數(shù)組MSA上的存取。步驟508:將數(shù)據(jù)由步驟506所選取的存取狀態(tài)數(shù)組所允許且在步驟504中確認(rèn)值為I的緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的物理內(nèi)存區(qū)段中讀出至主機(jī)端110。步驟510:將步驟508中所參照過(guò)的緩沖存儲(chǔ)器存取狀態(tài)區(qū)的值由I更新為O。步驟512:將所述后端指針的現(xiàn)行目標(biāo)更新為所述讀取指令最后所存取的目標(biāo)。請(qǐng)參閱圖12,其根據(jù)本發(fā)明的部分實(shí)施例圖示由緩沖存儲(chǔ)器控制器200所執(zhí)行的內(nèi)部數(shù)據(jù)移動(dòng)指令,如上述的功能(C)所述。如圖12所示,所述內(nèi)部數(shù)據(jù)移動(dòng)指令包括如下步驟:步驟602:將數(shù)據(jù)由被值為I的范圍存取狀態(tài)區(qū)對(duì)應(yīng)的第一緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的第一物理內(nèi)存區(qū)段移動(dòng)至值為I的隊(duì)列存取狀態(tài)區(qū)對(duì)應(yīng)的第二緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的第二物理內(nèi)存區(qū)段。請(qǐng)參閱圖13,其為根據(jù)本發(fā)明的部分實(shí)施例所公開(kāi)緩沖存儲(chǔ)器控制器200執(zhí)行部分有效式數(shù)據(jù)移動(dòng)指令的流程圖,如上述的功能(D)所述。如圖13所示,執(zhí)行部分有效式數(shù)據(jù)移動(dòng)指令的流程包括步驟如下:步驟702:當(dāng)緩沖存儲(chǔ)器存取狀態(tài)區(qū)所對(duì)應(yīng)的隊(duì)列存取狀態(tài)區(qū)與范圍存取狀態(tài)區(qū)的值皆為I時(shí),存取所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的物理內(nèi)存區(qū)段。
請(qǐng)注意,根據(jù)圖9、圖10、圖11、圖12所示的流程圖經(jīng)過(guò)合理組合或排列或附加本說(shuō)明書(shū)中提及的各種條件所形成的實(shí)施例,亦應(yīng)視為本發(fā)明的實(shí)施例。本發(fā)明公開(kāi)一種緩沖存儲(chǔ)器管理方法與相關(guān)的緩沖存儲(chǔ)器控制器,以用來(lái)解決傳統(tǒng)緩沖存儲(chǔ)器控制器中各組件的異步頻率引起的問(wèn)題。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包括在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種緩沖存儲(chǔ)器管理方法,其特征在于,包括: 當(dāng)用來(lái)參照物理內(nèi)存區(qū)段的緩沖存儲(chǔ)器存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前可被修改,且當(dāng)對(duì)應(yīng)于所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)的區(qū)塊式存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前為數(shù)據(jù)接收目標(biāo)時(shí),由主機(jī)端接收數(shù)據(jù)至所述物理內(nèi)存區(qū)段,其中所述物理內(nèi)存區(qū)段被緩沖存儲(chǔ)器控制器內(nèi)緩沖存儲(chǔ)器所包括;及 當(dāng)所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前不可被修改,且當(dāng)所述區(qū)塊式存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前為數(shù)據(jù)輸出源時(shí),將數(shù)據(jù)由所述物理內(nèi)存區(qū)段輸出至閃存; 其中所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)為組成緩沖存儲(chǔ)器狀態(tài)數(shù)組的單元,所述區(qū)塊式存取狀態(tài)區(qū)為組成區(qū)塊式存取狀態(tài)數(shù)組的單元,所述區(qū)塊式存取狀態(tài)數(shù)組用來(lái)同時(shí)存取多個(gè)連續(xù)緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的多個(gè)物理內(nèi)存區(qū)段。
2.如權(quán)利要求1所述的緩沖存儲(chǔ)器管理方法,其特征在于: 所述多個(gè)連續(xù)緩沖存儲(chǔ)器存取狀態(tài)區(qū)的數(shù)目是根據(jù)所述緩沖存儲(chǔ)器控制器包括的主單元一次可同時(shí)存取的物理內(nèi)存區(qū)段的上限數(shù)量來(lái)決定。
3.如權(quán)利要求1所述的緩沖存儲(chǔ)器管理方法,其特征在于: 所述區(qū)塊式存取狀態(tài)數(shù)組存在于所述緩沖存儲(chǔ)器,并被指定給所述緩沖存儲(chǔ)器控制器包括的主單元。
4.如權(quán)利要求3所述的緩沖存儲(chǔ)器管理方法,其特征在于: 所述主單元為所述緩沖存儲(chǔ)器控制器包括的接口、微處理器、或后端處理單元。
5.如權(quán)利要求3所 述的緩沖存儲(chǔ)器管理方法,其特征在于: 所述緩沖存儲(chǔ)器管理方法另包括: 由所述緩沖存儲(chǔ)器控制器所包括的多個(gè)候選主單元中決定所述主單元,以使用防饑饉算法來(lái)存取所述緩沖存儲(chǔ)器。
6.如權(quán)利要求5所述的緩沖存儲(chǔ)器管理方法,其特征在于: 所述防饑饉算法為循環(huán)式排程算法。
7.如權(quán)利要求1所述的緩沖存儲(chǔ)器管理方法,其特征在于: 所述緩沖存儲(chǔ)器管理方法另包括: 在由所述主機(jī)端接收所述數(shù)據(jù)至所述物理內(nèi)存區(qū)段后,更新所述緩沖存儲(chǔ)器狀態(tài)數(shù)組的后端指針以使其指向所述緩沖存儲(chǔ)器狀態(tài)數(shù)組上的最新目標(biāo),或是在將所述數(shù)據(jù)由所述物理內(nèi)存區(qū)段輸出至所述閃存后,更新所述后端指標(biāo)以使其指向所述緩沖存儲(chǔ)器狀態(tài)數(shù)組上的最新來(lái)源 '及 在由所述主機(jī)端接收所述數(shù)據(jù)至所述物理內(nèi)存區(qū)段前,或是在將所述數(shù)據(jù)由所述物理內(nèi)存區(qū)段輸出至所述閃存后,根據(jù)所述后端指針的現(xiàn)行目標(biāo)來(lái)更新所述緩沖存儲(chǔ)器狀態(tài)數(shù)組的前端指針;其中所述前端指針?biāo)赶虻哪繕?biāo)是用來(lái)指出由所述主機(jī)端接收所述數(shù)據(jù)至所述物理內(nèi)存區(qū)段的起始地址或?qū)⑺鰯?shù)據(jù)由所述物理內(nèi)存區(qū)段輸出至所述閃存的起始地址。
8.一種緩沖存儲(chǔ)器管理方法,其特征在于,包括: 當(dāng)用來(lái)參照物理內(nèi)存區(qū)段的緩沖存儲(chǔ)器存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前可被修改,且當(dāng)對(duì)應(yīng)于所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)的離散式存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前為數(shù)據(jù)接收目標(biāo)時(shí),由主機(jī)端接收數(shù)據(jù)至所述物理內(nèi)存區(qū)段,其中所述物理內(nèi)存區(qū)段被緩沖存儲(chǔ)器控制器內(nèi)緩沖存儲(chǔ)器所包括;及 當(dāng)所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前不可被修改,且當(dāng)所述離散式存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前為數(shù)據(jù)輸出源時(shí),將數(shù)據(jù)由所述物理內(nèi)存區(qū)段輸出至閃存; 其中所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)為組成緩沖存儲(chǔ)器狀態(tài)數(shù)組的單元,所述離散式存取狀態(tài)區(qū)為組成離散式存取狀態(tài)數(shù)組的單元,所述離散式存取狀態(tài)數(shù)組用來(lái)存取多個(gè)離散分布的緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的多個(gè)物理內(nèi)存區(qū)段。
9.如權(quán)利要求8所述的緩沖存儲(chǔ)器管理方法,其特征在于: 所述離散式存取狀態(tài)數(shù)組存在于所述緩沖存儲(chǔ)器,并被指定給所述緩沖存儲(chǔ)器控制器包括的主單元。
10.如權(quán)利要求9所述的緩沖存儲(chǔ)器管理方法,其特征在于: 所述主單元為所述緩沖存儲(chǔ)器控制器包括的接口、微處理器、或后端處理單元。
11.如權(quán)利要求9所述的緩沖存儲(chǔ)器管理方法,其特征在于: 所述緩沖存儲(chǔ)器管理方法另包括: 由所述緩沖存儲(chǔ)器控制器所包括的多個(gè)候選主單元中決定所述主單元,以使用防饑饉算法來(lái)存取所述緩沖存儲(chǔ)器。
12.如權(quán)利要求11所述的緩沖存儲(chǔ)器管理方法,其特征在于: 所述防饑饉算法為循 環(huán)式排程算法。
13.如權(quán)利要求8所述的緩沖存儲(chǔ)器管理方法,其特征在于: 所述緩沖存儲(chǔ)器管理方法另包括: 在由所述主機(jī)端接收所述數(shù)據(jù)至所述物理內(nèi)存區(qū)段后,更新所述緩沖存儲(chǔ)器狀態(tài)數(shù)組的后端指針以使其指向所述緩沖存儲(chǔ)器狀態(tài)數(shù)組上的最新目標(biāo),或是在將所述數(shù)據(jù)由所述物理內(nèi)存區(qū)段輸出至所述閃存后,更新所述后端指標(biāo)以使其指向所述緩沖存儲(chǔ)器狀態(tài)數(shù)組上的最新來(lái)源 '及 在由所述主機(jī)端接收所述數(shù)據(jù)至所述物理內(nèi)存區(qū)段前,或是在將所述數(shù)據(jù)由所述物理內(nèi)存區(qū)段輸出至所述閃存后,根據(jù)所述后端指針的現(xiàn)行目標(biāo)來(lái)更新所述緩沖存儲(chǔ)器狀態(tài)數(shù)組的前端指針; 其中所述前端指針?biāo)赶虻哪繕?biāo)用來(lái)指出由所述主機(jī)端接收所述數(shù)據(jù)至所述物理內(nèi)存區(qū)段的起始地址或?qū)⑺鰯?shù)據(jù)由所述物理內(nèi)存區(qū)段輸出至所述閃存的起始地址。
14.一種緩沖存儲(chǔ)器管理方法,其特征在于,包括: 當(dāng)對(duì)應(yīng)于第一緩沖存儲(chǔ)器存取狀態(tài)區(qū)的區(qū)塊式存取狀態(tài)區(qū)指示其所參照的第一物理內(nèi)存區(qū)段目前為數(shù)據(jù)移動(dòng)指令所指定的數(shù)據(jù)來(lái)源,且當(dāng)對(duì)應(yīng)于第二緩沖存儲(chǔ)器存取狀態(tài)區(qū)的離散式存取狀態(tài)區(qū)指示其所參照的第二物理內(nèi)存區(qū)段目前為所述數(shù)據(jù)移動(dòng)指令所指定的現(xiàn)行目標(biāo)時(shí),將數(shù)據(jù)由所述第一物理內(nèi)存區(qū)段移動(dòng)至所述第二物理內(nèi)存區(qū)段; 其中緩沖存儲(chǔ)器包括所述第一物理內(nèi)存區(qū)段與所述第二物理內(nèi)存區(qū)段; 其中所述第一緩沖存儲(chǔ)器存取狀態(tài)區(qū)與所述第二緩沖存儲(chǔ)器存取狀態(tài)區(qū)皆為組成緩沖存儲(chǔ)器狀態(tài)數(shù)組的單元; 其中所述區(qū)塊式存取狀態(tài)區(qū)為組成區(qū)塊式存取狀態(tài)數(shù)組的單元,所述區(qū)塊式存取狀態(tài)數(shù)組用來(lái)同時(shí)存取多個(gè)連續(xù)緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的多個(gè)物理內(nèi)存區(qū)段;及 其中所述離散式存取狀態(tài)區(qū)為組成離散式存取狀態(tài)數(shù)組的單元,所述離散式存取狀態(tài)數(shù)組用來(lái)存取多個(gè)離散分布的緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的多個(gè)物理內(nèi)存區(qū)段。
15.如權(quán)利要求14所述的緩沖存儲(chǔ)器管理方法,其特征在于:所述緩沖存儲(chǔ)器管理方法另包括: 在執(zhí)行所述數(shù)據(jù)移動(dòng)指令后,更新所述緩沖存儲(chǔ)器狀態(tài)數(shù)組的后端指針,以使其指向所述數(shù)據(jù)移動(dòng)指令的最新目標(biāo);及 在執(zhí)行所述數(shù)據(jù)移動(dòng)指令前,根據(jù)所述后端指針的現(xiàn)行目標(biāo),更新所述緩沖存儲(chǔ)器狀態(tài)數(shù)組的前端指針; 其中所述前端指針的目標(biāo)用來(lái)指出接收所述數(shù)據(jù)的起始地址或輸出所述數(shù)據(jù)的起始地址。
16.一種緩沖存儲(chǔ)器管理方法,其特征在于,包括: 當(dāng)離散式存取狀態(tài)數(shù)組的第一狀態(tài)區(qū)允許物理內(nèi)存區(qū)段被存取,且當(dāng)區(qū)塊式存取狀態(tài)數(shù)組的第三狀態(tài)區(qū)允許所述物理內(nèi)存被存取時(shí),根據(jù)數(shù)據(jù)移動(dòng)指令,存取所述物理內(nèi)存區(qū)段所暫存的數(shù)據(jù); 其中所述物理內(nèi)存區(qū)段被包括于緩沖存儲(chǔ)器,所述第一狀態(tài)區(qū)與所述第三狀態(tài)區(qū)皆對(duì)應(yīng)于緩沖存儲(chǔ)器狀態(tài)數(shù)組包括的第二狀態(tài)區(qū),且所述第二狀態(tài)區(qū)用來(lái)參照所述物理內(nèi)存區(qū)段; 其中所述第二狀態(tài)區(qū)為緩沖存儲(chǔ)器存取狀態(tài)區(qū),且所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)為組成所述緩沖存儲(chǔ)器狀態(tài)數(shù)組的單元; 其中所述第三狀態(tài)區(qū)為區(qū)塊式存取狀態(tài)區(qū),所述區(qū)塊式存取狀態(tài)區(qū)為組成區(qū)塊式存取狀態(tài)數(shù)組的單元,且所述區(qū)塊式存取狀態(tài)數(shù)組用來(lái)同時(shí)存取多個(gè)連續(xù)緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的多個(gè)物理內(nèi)存區(qū)段;及 其中所述第一狀態(tài)區(qū)為離散式存取狀態(tài)區(qū),所述離散式存取狀態(tài)區(qū)為組成離散式存取狀態(tài)數(shù)組的單元,且所述離散式存取狀態(tài)數(shù)組用來(lái)存取多個(gè)離散分布的緩沖存儲(chǔ)器存取狀態(tài)區(qū)所參照的多個(gè)物理內(nèi)存區(qū)段。
17.如權(quán)利要求16所述的緩沖存儲(chǔ)器管理方法,其特征在于:根據(jù)所述數(shù)據(jù)移動(dòng)指令,存取所述物理內(nèi)存區(qū)段所暫存的所述數(shù)據(jù)包括: 緩沖存儲(chǔ)器控制器將所述數(shù)據(jù)由所述緩沖存儲(chǔ)器傳輸至主機(jī)端或閃存。
18.如權(quán)利要求16所述的緩沖存儲(chǔ)器管理方法,其特征在于: 所述緩沖存儲(chǔ)器管理方法另包括: 在執(zhí)行所述數(shù)據(jù)移動(dòng)指令后,更新所述緩沖存儲(chǔ)器狀態(tài)數(shù)組的后端指針,以使其指向所述數(shù)據(jù)移動(dòng)指令的最新目標(biāo);及 在執(zhí)行所述數(shù)據(jù)移動(dòng)指令前,根據(jù)所述后端指針的現(xiàn)行目標(biāo),更新所述緩沖存儲(chǔ)器狀態(tài)數(shù)組的前端指針; 其中所述前端指針的目標(biāo)用來(lái)指出執(zhí)行所述數(shù)據(jù)移動(dòng)指令的起始地址。
19.一種緩沖存儲(chǔ)器控制器,其特征在于,包括: 緩沖存儲(chǔ)器,包括多個(gè)物理內(nèi)存區(qū)段、緩沖存儲(chǔ)器狀態(tài)數(shù)組、區(qū)塊式存取狀態(tài)數(shù)組、與離散式存取狀態(tài)數(shù)組,所述緩沖存儲(chǔ)器狀態(tài)數(shù)組包括參照所述多個(gè)物理內(nèi)存區(qū)段的多個(gè)緩沖存儲(chǔ)器存取狀態(tài)區(qū),所述區(qū)塊式存取狀態(tài)數(shù)組包括對(duì)應(yīng)于所述多個(gè)緩沖存儲(chǔ)器存取狀態(tài)區(qū)的多個(gè)區(qū)塊式存取狀態(tài)區(qū),且所述離散式存取狀態(tài)數(shù)組包括對(duì)應(yīng)于所述多個(gè)緩沖存儲(chǔ)器存取狀態(tài)區(qū)的多個(gè)離散式存取狀態(tài)區(qū); 至少一主單元,用來(lái)存取所述緩沖存儲(chǔ)器;及 仲裁模塊,用來(lái)在所述緩沖存儲(chǔ)器執(zhí)行指令時(shí),使用防饑饉算法,以由所述至少一主單元中選出主單元。
20.如權(quán)利要求19所述的緩沖存儲(chǔ)器控制器,其特征在于: 當(dāng)用來(lái)參照所述多個(gè)物理內(nèi)存區(qū)段中物理內(nèi)存區(qū)段的緩沖存儲(chǔ)器存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前可被修改,且當(dāng)對(duì)應(yīng)于所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)的區(qū)塊式存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前為數(shù)據(jù)接收目標(biāo)時(shí),所述緩沖存儲(chǔ)器控制器將第一數(shù)據(jù)由主機(jī)端接收至所述物理內(nèi)存區(qū)段;及 當(dāng)所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前不可被修改,且當(dāng)所述區(qū)塊式存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前為數(shù)據(jù)輸出源時(shí),所述緩沖存儲(chǔ)器控制器將第二數(shù)據(jù)由所述物理內(nèi)存區(qū)段輸出至閃存。
21.如權(quán)利要求19所述的緩沖存儲(chǔ)器控制器,其特征在于: 當(dāng)用來(lái)參照所述多個(gè)物理內(nèi)存區(qū)段中物理內(nèi)存區(qū)段的緩沖存儲(chǔ)器存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前可被修改,且當(dāng)對(duì)應(yīng)于所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)的離散式存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前為數(shù)據(jù)接收目標(biāo)時(shí),所述緩沖存儲(chǔ)器控制器將第一數(shù)據(jù)由主機(jī)端接收至所述物理內(nèi)存區(qū)段;及 當(dāng)所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前不可被修改,且當(dāng)所述離散式存取狀態(tài)區(qū)指示所述物理內(nèi)存區(qū)段目前為數(shù)據(jù)輸出源時(shí),緩沖存儲(chǔ)器控制器將第二數(shù)據(jù)由所述物理內(nèi)存區(qū)段輸 出至閃存。
22.如權(quán)利要求19所述的緩沖存儲(chǔ)器控制器,其特征在于: 當(dāng)對(duì)應(yīng)于第一緩沖存儲(chǔ)器存取狀態(tài)區(qū)的區(qū)塊式存取狀態(tài)區(qū)指示其所參照的第一物理內(nèi)存區(qū)段目前為數(shù)據(jù)移動(dòng)指令所指定的數(shù)據(jù)來(lái)源,且當(dāng)對(duì)應(yīng)于第二緩沖存儲(chǔ)器存取狀態(tài)區(qū)的離散式存取狀態(tài)區(qū)指示其所參照的第二物理內(nèi)存區(qū)段目前為所述數(shù)據(jù)移動(dòng)指令所指定的現(xiàn)行目標(biāo)時(shí),所述緩沖存儲(chǔ)器控制器將數(shù)據(jù)由所述第一物理內(nèi)存區(qū)段移動(dòng)至所述第二物理內(nèi)存區(qū)段。
23.如權(quán)利要求19所述的緩沖存儲(chǔ)器控制器,其特征在于: 當(dāng)離散式存取狀態(tài)區(qū)允許物理內(nèi)存區(qū)段根據(jù)數(shù)據(jù)移動(dòng)指令而被寫(xiě)入時(shí),所述緩沖存儲(chǔ)器控制器將數(shù)據(jù)由主機(jī)端寫(xiě)入所述物理內(nèi)存區(qū)段,其中所述離散式存取狀態(tài)區(qū)對(duì)應(yīng)于緩沖存儲(chǔ)器存取狀態(tài)區(qū),且所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)用來(lái)參照所述物理內(nèi)存區(qū)段;及當(dāng)區(qū)塊式存取狀態(tài)區(qū)允許所述物理內(nèi)存區(qū)段根據(jù)所述數(shù)據(jù)移動(dòng)指令被讀取時(shí),所述緩沖存儲(chǔ)器控制器將所述數(shù)據(jù)由所述物理內(nèi)存區(qū)段讀入閃存,其中所述區(qū)塊式存取狀態(tài)區(qū)對(duì)應(yīng)于所述緩沖存儲(chǔ)器存取狀態(tài)區(qū)。
24.如權(quán)利要求19所述的緩沖存儲(chǔ)器控制器,其特征在于: 所述至少一主單元為所述緩沖存儲(chǔ)器控制器包括的接口、微處理器、或后端處理單元。
25.如權(quán)利要求19所述的緩沖存儲(chǔ)器控制器,其特征在于: 所述防饑饉算法為循環(huán)式排程算法。
26.如權(quán)利要求19所述的緩沖存儲(chǔ)器控制器,其特征在于:所述指令為讀取 指令、寫(xiě)入指令、或數(shù)據(jù)移動(dòng)指令。
全文摘要
本發(fā)明公開(kāi)了一種緩沖存儲(chǔ)器管理方法與相關(guān)緩沖存儲(chǔ)器控制器。通過(guò)在緩沖存儲(chǔ)器控制器中指定從屬單元與至少一主單元,使得至少一主單元的頻率可與從屬單元的頻率整合。緩沖存儲(chǔ)器存取狀態(tài)數(shù)組、范圍存取狀態(tài)數(shù)組、及/或隊(duì)列存取狀態(tài)數(shù)組被分配于緩沖存儲(chǔ)器并指定給從屬單元,使得緩沖存儲(chǔ)器控制器的操作可以區(qū)塊式存取或離散式存取的方式進(jìn)行。與從屬單元共同運(yùn)作的主單元可由上述至少一主單元中,根據(jù)防饑饉算法所決定。因此,本發(fā)明可用來(lái)解決傳統(tǒng)緩沖存儲(chǔ)器控制器中各組件的異步頻率引起的問(wèn)題。
文檔編號(hào)G06F12/08GK103198023SQ20121014999
公開(kāi)日2013年7月10日 申請(qǐng)日期2012年5月15日 優(yōu)先權(quán)日2012年1月9日
發(fā)明者詹立翔, 劉伯彥 申請(qǐng)人:擎泰科技股份有限公司