一種存儲器的訪問方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種存儲器的訪問方法和裝置,所述方法包括:對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū),從中選取一個(gè)緩沖區(qū)間;遍歷所述選取緩沖區(qū)間中存儲的所有未執(zhí)行的訪問命令,依次獲取每個(gè)命令組,并將當(dāng)前獲取的命令組作為待執(zhí)行命令組,其中,所述命令組中的所有訪問命令攜帶了相同行地址;按照預(yù)設(shè)規(guī)則將各個(gè)待執(zhí)行命令組中每個(gè)訪問命令的子命令,依次送入所述存儲器,以便所述存儲器執(zhí)行獲取的子命令,其中,所述待執(zhí)行命令組中每個(gè)訪問命令之間按獲取順序發(fā)送,所述待執(zhí)行命令組中第一個(gè)獲取的訪問命令被分解成執(zhí)行順序?yàn)轭A(yù)充電子命令、激活子命令和列存取子命令的三個(gè)子命令,所述待執(zhí)行命令組中其它每個(gè)訪問命令均分解為列存取子命令。
【專利說明】—種存儲器的訪問方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲器【技術(shù)領(lǐng)域】,尤其涉及一種存儲器的訪問方法及裝置。
【背景技術(shù)】
[0002]隨著人們對移動智能終端(如智能手機(jī)、平板電腦等)應(yīng)用需求的不斷提升,如何在保證移動終端體積小、外觀靈巧等特性的前提下,降低終端功耗、提高終端性能,已經(jīng)成為該領(lǐng)域的研究重點(diǎn)。近年來處理器技術(shù)不斷發(fā)展,使得處理器速度明顯提高,然而存儲設(shè)備性能卻提升較慢,導(dǎo)致終端性能的增長越來越受到存儲設(shè)備性能的限制。L P D D R 2SDRAMCLowPowe rDoub I e D a t a R a t e 2 SDRAMSynchronousDynami cRandomAc c e s sMemory,第二代低功耗雙倍速率同步動態(tài)隨機(jī)存儲器)因具備低功耗、高性能等優(yōu)點(diǎn),已成為智能終端中應(yīng)用最為廣泛的存儲芯片,但是,L P D D R 2 S D R AM的訪問速度與處理器速度相比仍然較慢,為了更好地提高智能終端的性能,需要進(jìn)一步提高L P D D R 2 S D R AM的訪問效率。
[0003]參見圖1所示的S D R A M結(jié)構(gòu)示意圖,S D R A M內(nèi)存芯片具有多個(gè)存儲陣列ban k,各個(gè)b a n k之間互相獨(dú)立,允許并行訪問,每個(gè)存儲單元在b a n k中對應(yīng)一個(gè)行地址r ο w和一個(gè)列地址c O I umn,每個(gè)b a n k對應(yīng)一個(gè)用于存儲行數(shù)據(jù)的緩沖器。每個(gè)訪問存儲器的訪存命令可以被分解成三個(gè)子命令:分別為預(yù)充電子命令(P r ec h a r g e)、激活子命令(a c t i v a t e)和列存取子命令(c olumnacces s ),只有這些子命令才能被S D R AM識別,其中,所述預(yù)充電子命令用于關(guān)閉所要訪問的b a n k中先前打開的行以將先前打開行中的數(shù)據(jù)從緩沖器中清除,所述激活子命令用于激活所要訪存的b a n k和該b a n k中的行以將該行數(shù)據(jù)緩存在緩沖器中,所述列存取子命令用于從緩沖器中的某一列讀取數(shù)據(jù)或向緩沖器中的某一列寫入數(shù)據(jù)。
[0004]為了提高訪問存儲器的效率,可利用控制器對S D R AM的訪問操作進(jìn)行調(diào)度,現(xiàn)有方法如下:
[0005]方式一:每次執(zhí)行訪問命令后,保持打開被訪問b a n k的行,若當(dāng)前訪問命令用于訪問當(dāng)前打開的行,則只執(zhí)行列存取子命令,若當(dāng)前訪問命令用于訪問新的一行,則依次執(zhí)行預(yù)充電子命令、激活子命令和列存取子命令。
[0006]方式二:對于每個(gè)訪問命令,均執(zhí)行一遍預(yù)充電子命令、激活子命令和列存取子命令。
[0007]方式三:結(jié)合上述兩種方式,根據(jù)應(yīng)用行為進(jìn)行分類,對存儲密集型(訪存命令較多)且空間局部性高(較多訪問同一行連續(xù)地址的操作)的應(yīng)用采用第一種方式,對存儲非密集型(訪存命令較稀少)的和空間局部性較低(訪存行較分散的)的應(yīng)用采用第二種方式。
[0008]對于上述三種方式,分別存在以下缺陷:
[0009]對于存儲非密集型的應(yīng)用,若采用第一種方式,需要長時(shí)間打開當(dāng)前行,將造成一定的功耗,對存儲密集型且空間局部性較低的應(yīng)用,若采用第一種方式,需要判斷所要訪問的行與當(dāng)前打開行是否相同、且需要不斷打開、關(guān)閉當(dāng)前行,同樣會造成一定的功耗;對于空間局部性高的應(yīng)用,當(dāng)訪問連續(xù)行地址時(shí),若采用第二種方式,如果每次都重新關(guān)閉、打開當(dāng)前行,不但會造成一定的功耗,還會較大的降低訪問效率;若采用第三種方式,需要在運(yùn)行過程中識別應(yīng)用的行為,然后把應(yīng)用分類,再分別采取不同的行操作方式,這種方法步驟較復(fù)雜。
【發(fā)明內(nèi)容】
[0010]有鑒于此,本發(fā)明實(shí)施例的主要目的在于提供一種存儲器的訪問方法及裝置,以實(shí)現(xiàn)提聞存儲器的訪問效率、節(jié)省功耗的目的。
[0011]為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種存儲器的訪問方法,所述存儲器包括至少兩個(gè)存儲陣列,每個(gè)存儲陣列對應(yīng)分配一個(gè)緩沖區(qū),所述緩沖區(qū)中存儲了用于訪問對應(yīng)存儲陣列的訪問命令,所述訪問命令按照接收順序依次存儲于對應(yīng)緩沖區(qū)中、且存儲順序與對應(yīng)緩沖區(qū)中緩沖單元的排列順序相同,所述緩沖區(qū)被劃分為至少一個(gè)緩沖區(qū)間,所述方法包括:
[0012]對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū),從中選取一個(gè)緩沖區(qū)間,其中,選取緩沖區(qū)間中存儲有未執(zhí)行的訪問命令、且與其它緩沖區(qū)間相比為最早存儲訪問命令的緩沖區(qū)間,所述訪問命令中攜帶了所要訪問的存儲陣列的行地址;
[0013]遍歷所述選取緩沖區(qū)間中存儲的所有未執(zhí)行的訪問命令,依次獲取每個(gè)命令組,并將當(dāng)前獲取的命令組作為待執(zhí)行命令組,其中,所述命令組中的所有訪問命令攜帶了相同行地址;
[0014]按照預(yù)設(shè)規(guī)則將各個(gè)待執(zhí)行命令組中每個(gè)訪問命令的子命令,依次送入所述存儲器,以便所述存儲器執(zhí)行獲取的子命令,其中,所述待執(zhí)行命令組中每個(gè)訪問命令之間按獲取順序發(fā)送,所述待執(zhí)行命令組中第一個(gè)獲取的訪問命令被分解成執(zhí)行順序?yàn)轭A(yù)充電子命令、激活子命令和列存取子命令的三個(gè)子命令,所述待執(zhí)行命令組中其它每個(gè)訪問命令均分解為列存取子命令。
[0015]優(yōu)先地,所述遍歷所述選取緩沖區(qū)間中存儲的所有未執(zhí)行的訪問命令,依次獲取每個(gè)命令組,包括:
[0016]按照所述選取緩沖區(qū)間中緩沖單元的排列順序,從所述選取緩沖區(qū)間中獲取第一個(gè)未執(zhí)行的攜帶了第一行地址的第一訪問命令,所述第一訪問命令存儲于所述選取緩沖區(qū)間中的第一緩沖單元中;
[0017]從所述第一緩沖單元后的所有緩沖單元中,依次獲取攜帶所述第一行地址的未執(zhí)行訪問命令,以獲取由攜帶所述第一行地址的所有訪問命令組成的第一命令組;
[0018]判斷所述選取緩沖區(qū)間中是否仍存在未執(zhí)行的訪問命令,如果是,則執(zhí)行按照所述選取緩沖區(qū)間中緩沖單元的排列順序從所述選取緩沖區(qū)間中獲取第一個(gè)未執(zhí)行的攜帶了第二行地址的第二訪問命令的步驟,以獲取由攜帶所述第二行地址的所有訪問命令組成的第二命令組,如果否,則繼續(xù)執(zhí)行所述對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū)從中選取一個(gè)緩沖區(qū)間的步驟。
[0019]優(yōu)先地,所述按照預(yù)設(shè)規(guī)則將各個(gè)待執(zhí)行命令組中每個(gè)訪問命令的子命令,依次送入所述存儲器,包括:
[0020]獲取每個(gè)緩沖區(qū)中未執(zhí)行訪問命令的數(shù)目,并將所述獲取的數(shù)目遞減排序,按照排序結(jié)果確定各個(gè)待執(zhí)行命令組之間的優(yōu)先級順序;
[0021]向所述存儲器發(fā)送第一命令的預(yù)充電子命令,所述第一命令為第一優(yōu)先級的待執(zhí)行命令組中的第一個(gè)未執(zhí)行訪問命令;
[0022]在所述第一命令的預(yù)充電子命令與所述第一命令的激活子命令之間的第一發(fā)送間隔時(shí)間內(nèi),向所述存儲器發(fā)送第二命令的預(yù)充電子命令,所述第二命令為第二優(yōu)先級的待執(zhí)行命令組中的訪問命令;
[0023]在所述第二命令的預(yù)充電子命令與所述第二命令的激活子命令之間的第二發(fā)送間隔時(shí)間內(nèi),若計(jì)時(shí)到達(dá)所述第一發(fā)送間隔時(shí)間,則向所述存儲器發(fā)送所述第一命令的激活子命令,在所述第一命令的激活子命令與所述第一命令的列存取子命令之間的第三發(fā)送間隔時(shí)間內(nèi),執(zhí)行第三命令的待執(zhí)行子命令,所述第三命令為在所述第一優(yōu)先級待執(zhí)行命令組后的所有待執(zhí)行命令組中滿足時(shí)序要求且優(yōu)先級最高的待執(zhí)行命令組,所述滿足時(shí)序要求為計(jì)時(shí)到達(dá)所述待執(zhí)行子命令與所述待執(zhí)行子命令之前子命令之間的發(fā)送時(shí)間間隔;
[0024]在所述第二命令的預(yù)充電子命令與所述第二命令的激活子命令之間的第二發(fā)送間隔時(shí)間內(nèi),若計(jì)時(shí)未到達(dá)所述第一發(fā)送間隔時(shí)間,則向所述存儲器發(fā)送第四命令的預(yù)充電子命令,所述第四命令為第三優(yōu)先級的待執(zhí)行命令組中的訪問命令;
[0025]其中,所述第一優(yōu)先級、所述第二優(yōu)先級和所述第三優(yōu)先級的優(yōu)先級別依次遞減;
[0026]按照上述規(guī)律繼續(xù)向所述存儲器發(fā)送當(dāng)前獲取的各個(gè)待執(zhí)行命令組中的其它子命令;或者,按照上述規(guī)律繼續(xù)向所述存儲器發(fā)送當(dāng)前獲取的各個(gè)待執(zhí)行命令組中的其它子命令,其中,每個(gè)待執(zhí)行命令組中的各個(gè)列存取子命令依次執(zhí)行、且每兩個(gè)列存取子命令之間滿足發(fā)送間隔時(shí)間。
[0027]優(yōu)先地,在所述對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū),從中選取一個(gè)緩沖區(qū)間前,所述方法還包括:
[0028]從協(xié)議總線接收訪問命令;
[0029]若所述訪問命令用于向所述存儲器寫入數(shù)據(jù),則為所述訪問命令和所要寫入的數(shù)據(jù)分別配置第一標(biāo)識,并將配置后的訪問命令發(fā)送至對應(yīng)的緩沖區(qū)中且將配置后的數(shù)據(jù)發(fā)送至數(shù)據(jù)傳輸模塊;在向所述存儲器發(fā)送所述訪問命令的列存取子命令時(shí),向所述數(shù)據(jù)傳輸模塊發(fā)送所述第一標(biāo)識,以使所述數(shù)據(jù)傳輸模塊根據(jù)所述第一標(biāo)識準(zhǔn)備所述所要寫入的數(shù)據(jù),將準(zhǔn)備好的數(shù)據(jù)發(fā)送至所述存儲器;
[0030]若所述訪問命令用于讀取所述存儲器中的數(shù)據(jù),則為所述訪問命令配置第二標(biāo)識,并將配置后的訪問命令發(fā)送至對應(yīng)的緩沖區(qū)中;在向所述存儲器發(fā)送所述訪問命令的列存取子命令后,利用所述數(shù)據(jù)傳輸模塊接收所述存儲器返回的數(shù)據(jù)并為所述返回的數(shù)據(jù)配置所述第二標(biāo)識;根據(jù)所述第二標(biāo)識將所述返回的數(shù)據(jù)按照所述訪問命令的接收順序發(fā)送至所述協(xié)議總線。
[0031]優(yōu)先地,所述將配置后的訪問命令發(fā)送至對應(yīng)的緩沖區(qū)中,包括:
[0032]對所述訪問命令進(jìn)行譯碼,以提取所述訪問命令中的存儲陣列地址,并根據(jù)所述存儲陣列地址,將所述訪問命令存儲于對應(yīng)分配的緩沖區(qū)中。
[0033]優(yōu)先地,每個(gè)緩沖區(qū)對應(yīng)分配一個(gè)第一寄存器,所述第一寄存器的每個(gè)存儲單元用于分別存儲對應(yīng)緩沖區(qū)中每個(gè)訪問命令的執(zhí)行狀態(tài),所述方法包括:
[0034]當(dāng)將所述訪問命令存儲在對應(yīng)緩沖區(qū)中時(shí),在所述緩沖區(qū)對應(yīng)的第一寄存器中將所述訪問命令標(biāo)識為未執(zhí)行狀態(tài);
[0035]當(dāng)所述訪問命令的所有子命令被發(fā)送至所述存儲器后,在所述緩沖區(qū)對應(yīng)的第一寄存器中將所述訪問命令標(biāo)識為已執(zhí)行狀態(tài)。
[0036]優(yōu)先地,每個(gè)緩沖區(qū)對應(yīng)分配一個(gè)第二寄存器;對于從所述選取緩沖區(qū)間中獲取的每個(gè)訪問命令,按照下述方法分解獲取的訪問命令:
[0037]將獲取訪問命令攜帶的行地址與對應(yīng)第二寄存器中存儲的行地址進(jìn)行比較,所述對應(yīng)第二寄存器中存儲的行地址為上次獲取的訪問命令的行地址;
[0038]如果比較結(jié)果不同,則利用所述獲取訪問命令攜帶的行地址替換所述第二寄存器中存儲的行地址,并將所述獲取訪問命令分解為預(yù)充電子命令、激活子命令和列存取子命令;
[0039]如果比較結(jié)果相同,則利用所述獲取訪問命令攜帶的行地址替換所述第二寄存器中存儲的行地址,并將所述獲取訪問命令分解為列存取子命令。
[0040]本發(fā)明實(shí)施例還提供了一種存儲器的訪問裝置,所述存儲器包括至少兩個(gè)存儲陣列,每個(gè)存儲陣列對應(yīng)分配一個(gè)緩沖區(qū),所述緩沖區(qū)中存儲了用于訪問對應(yīng)存儲陣列的訪問命令,所述訪問命令按照接收順序依次存儲于對應(yīng)緩沖區(qū)中、且存儲順序與對應(yīng)緩沖區(qū)中緩沖單元的排列順序相同,所述緩沖區(qū)被劃分為至少一個(gè)緩沖區(qū)間,所述裝置包括:
[0041]緩沖區(qū)選取模塊,用于對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū),從中選取一個(gè)緩沖區(qū)間,其中,選取緩沖區(qū)間中存儲有未執(zhí)行的訪問命令、且與其它緩沖區(qū)間相比為最早存儲訪問命令的緩沖區(qū)間,所述訪問命令中攜帶了所要訪問的存儲陣列的行地址;
[0042]命令組獲取模塊,用于遍歷所述選取緩沖區(qū)間中存儲的所有未執(zhí)行的訪問命令,依次獲取每個(gè)命令組,并將當(dāng)前獲取的命令組作為待執(zhí)行命令組,其中,所述命令組中的所有訪問命令攜帶了相同行地址;
[0043]子命令調(diào)度模塊,用于按照預(yù)設(shè)規(guī)則將各個(gè)待執(zhí)行命令組中每個(gè)訪問命令的子命令,依次送入所述存儲器,以便所述存儲器執(zhí)行獲取的子命令,其中,所述待執(zhí)行命令組中每個(gè)訪問命令之間按獲取順序發(fā)送,所述待執(zhí)行命令組中第一個(gè)獲取的訪問命令被分解成執(zhí)行順序?yàn)轭A(yù)充電子命令、激活子命令和列存取子命令的三個(gè)子命令,所述待執(zhí)行命令組中其它每個(gè)訪問命令均分解為列存取子命令。
[0044]優(yōu)先地,所述命令組獲取模塊,包括:
[0045]第一獲取子模塊,用于按照所述選取緩沖區(qū)間中緩沖單元的排列順序,從所述選取緩沖區(qū)間中獲取第一個(gè)未執(zhí)行的攜帶了第一行地址的第一訪問命令,所述第一訪問命令存儲于所述選取緩沖區(qū)間中的第一緩沖單元中;
[0046]第二獲取子模塊,用于從所述第一緩沖單元后的所有緩沖單元中,依次獲取攜帶所述第一行地址的未執(zhí)行訪問命令,以獲取由攜帶所述第一行地址的所有訪問命令組成的第一命令組;
[0047]判斷子模塊,用于判斷所述選取緩沖區(qū)間中是否仍存在未執(zhí)行的訪問命令;
[0048]繼續(xù)獲取模塊,用于當(dāng)所述判斷子模塊判斷得到的所述選取緩沖區(qū)間中仍存在未執(zhí)行的訪問命令時(shí),執(zhí)行按照所述選取緩沖區(qū)間中緩沖單元的排列順序從所述選取緩沖區(qū)間中獲取第一個(gè)未執(zhí)行的攜帶了第二行地址的第二訪問命令的步驟,以獲取由攜帶所述第二行地址的所有訪問命令組成的第二命令組,如果否,則繼續(xù)利用所述緩沖區(qū)選取模塊執(zhí)行所述對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū),從中選取一個(gè)緩沖區(qū)間的步驟。
[0049]優(yōu)先地,所述子命令調(diào)度模塊,包括:
[0050]排序子模塊,用于獲取每個(gè)緩沖區(qū)中未執(zhí)行訪問命令的數(shù)目,并將所述獲取的數(shù)目遞減排序,按照排序結(jié)果確定各個(gè)待執(zhí)行命令組之間的優(yōu)先級順序;
[0051]第一發(fā)送子模塊,用于向所述存儲器發(fā)送第一命令的預(yù)充電子命令,所述第一命令為第一優(yōu)先級的待執(zhí)行命令組中的第一個(gè)未執(zhí)行訪問命令;
[0052]第二發(fā)送子模塊,用于在所述第一命令的預(yù)充電子命令與所述第一命令的激活子命令之間的第一發(fā)送間隔時(shí)間內(nèi),向所述存儲器發(fā)送第二命令的預(yù)充電子命令,所述第二命令為第二優(yōu)先級的待執(zhí)行命令組中的訪問命令;
[0053]第三發(fā)送子模塊,用于在所述第二命令的預(yù)充電子命令與所述第二命令的激活子命令之間的第二發(fā)送間隔時(shí)間內(nèi),若計(jì)時(shí)到達(dá)所述第一發(fā)送間隔時(shí)間,則向所述存儲器發(fā)送所述第一命令的激活子命令,在所述第一命令的激活子命令與所述第一命令的列存取子命令之間的第三發(fā)送間隔時(shí)間內(nèi),執(zhí)行第三命令的待執(zhí)行子命令,所述第三命令為在所述第一優(yōu)先級待執(zhí)行命令組后的所有待執(zhí)行命令組中滿足時(shí)序要求且優(yōu)先級最高的待執(zhí)行命令組,所述滿足時(shí)序要求為計(jì)時(shí)到達(dá)所述待執(zhí)行子命令與所述待執(zhí)行子命令之前子命令之間的發(fā)送時(shí)間間隔;
[0054]第四發(fā)送子模塊,用于在所述第二命令的預(yù)充電子命令與所述第二命令的激活子命令之間的第二發(fā)送間隔時(shí)間內(nèi),若計(jì)時(shí)未到達(dá)所述第一發(fā)送間隔時(shí)間,則向所述存儲器發(fā)送第四命令的預(yù)充電子命令,所述第四命令為第三優(yōu)先級的待執(zhí)行命令組中的訪問命令;
[0055]其中,所述第一優(yōu)先級、所述第二優(yōu)先級和所述第三優(yōu)先級的優(yōu)先級別依次遞減;
[0056]繼續(xù)發(fā)送子模塊,用于按照上述規(guī)律繼續(xù)向所述存儲器發(fā)送當(dāng)前獲取的各個(gè)待執(zhí)行命令組中的其它子命令;或者,按照上述規(guī)律繼續(xù)向所述存儲器發(fā)送當(dāng)前獲取的各個(gè)待執(zhí)行命令組中的其它子命令,其中,每個(gè)待執(zhí)行命令組中的各個(gè)列存取子命令依次執(zhí)行、且每兩個(gè)列存取子命令之間滿足發(fā)送間隔時(shí)間。
[0057]優(yōu)先地,所述裝置還包括:
[0058]命令接收模塊,用于在所述緩沖區(qū)選取模塊對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū),從中選取一個(gè)緩沖區(qū)間前,從協(xié)議總線接收訪問命令;
[0059]第一發(fā)送模塊,用于若所述命令接收模塊接收的訪問命令用于向所述存儲器寫入數(shù)據(jù),則為所述訪問命令和所要寫入的數(shù)據(jù)分別配置第一標(biāo)識,并將配置后的訪問命令發(fā)送至對應(yīng)的緩沖區(qū)中且將配置后的數(shù)據(jù)發(fā)送至數(shù)據(jù)傳輸模塊;
[0060]數(shù)據(jù)發(fā)送模塊,用于在所述子命令調(diào)度模塊向所述存儲器發(fā)送所述命令接收模塊接收的訪問命令的列存取子命令時(shí),向所述數(shù)據(jù)傳輸模塊發(fā)送所述第一標(biāo)識;
[0061]所述數(shù)據(jù)傳輸模塊,用于根據(jù)所述數(shù)據(jù)發(fā)送模塊發(fā)送的第一標(biāo)識準(zhǔn)備所述所要寫入的數(shù)據(jù),將準(zhǔn)備好的數(shù)據(jù)發(fā)送至所述存儲器;
[0062]第二發(fā)送模塊,用于若所述子命令接收模塊接收的訪問命令用于讀取所述存儲器中的數(shù)據(jù),則為所述訪問命令配置第二標(biāo)識,并將配置后的訪問命令發(fā)送至對應(yīng)的緩沖區(qū)中;
[0063]所述數(shù)據(jù)傳輸模塊,用于在所述子命令調(diào)度模塊向所述存儲器發(fā)送所述命令接收模塊接收的訪問命令的列存取子命令后,接收所述存儲器返回的數(shù)據(jù)并為所述返回的數(shù)據(jù)配置所述第二標(biāo)識,根據(jù)所述第二標(biāo)識將所述返回的數(shù)據(jù)按照所述訪問命令的接收順序發(fā)送至所述協(xié)議總線。
[0064]優(yōu)先地,所述第一發(fā)送模塊或所述第二發(fā)送模塊,包括:
[0065]譯碼子模塊,用于對所述配置后的訪問命令進(jìn)行譯碼,以提取所述訪問命令中的存儲陣列地址;
[0066]發(fā)送子模塊,用于根據(jù)所述存儲陣列地址,將所述訪問命令存儲于對應(yīng)分配的緩沖區(qū)中。
[0067]優(yōu)先地,每個(gè)緩沖區(qū)對應(yīng)分配一個(gè)第一寄存器,所述第一寄存器的每個(gè)存儲單元用于分別存儲對應(yīng)緩沖區(qū)中每個(gè)訪問命令的執(zhí)行狀態(tài),所述裝置包括:
[0068]第一狀態(tài)標(biāo)記模塊,用于當(dāng)所述發(fā)送子模塊將所述訪問命令存儲在對應(yīng)緩沖區(qū)中時(shí),在所述緩沖區(qū)對應(yīng)的第一寄存器中將所述訪問命令標(biāo)識為未執(zhí)行狀態(tài);
[0069]第二狀態(tài)標(biāo)記模塊,用于當(dāng)所述訪問命令的所有子命令被發(fā)送至所述存儲器后,在所述緩沖區(qū)對應(yīng)的第一寄存器中將所述訪問命令標(biāo)識為已執(zhí)行狀態(tài)。
[0070]優(yōu)先地,每個(gè)緩沖區(qū)對應(yīng)分配一個(gè)第二寄存器;所述裝置還包括:命令分解模塊,用于對于從所述選取緩沖區(qū)間中獲取的每個(gè)訪問命令,按照下述方法分解獲取的訪問命令:
[0071]將獲取訪問命令攜帶的行地址與對應(yīng)第二寄存器中存儲的行地址進(jìn)行比較,所述對應(yīng)第二寄存器中存儲的行地址為上次獲取的訪問命令的行地址;
[0072]如果比較結(jié)果不同,則利用所述獲取訪問命令攜帶的行地址替換所述第二寄存器中存儲的行地址,并將所述獲取訪問命令分解為預(yù)充電子命令、激活子命令和列存取子命令;
[0073]如果比較結(jié)果相同,則利用所述獲取訪問命令攜帶的行地址替換所述第二寄存器中存儲的行地址,并將所述獲取訪問命令分解為列存取子命令。
[0074]本發(fā)明實(shí)施例提供的存儲器的訪問方法及裝置,為每個(gè)存儲陣列對應(yīng)分配一個(gè)緩沖區(qū),將訪問同一存儲陣列的所有訪問命令存儲在同一緩沖區(qū)內(nèi),并把每個(gè)緩沖區(qū)劃分為多個(gè)緩沖區(qū)間,對于每個(gè)緩沖區(qū)間,使其存儲的具有相同行號的訪問命令按順序執(zhí)行,在此期間便不必頻繁關(guān)閉、打開存儲陣列的當(dāng)前行,這樣不但可以兼顧連續(xù)訪問同一行的情況,也可以在出現(xiàn)多行訪問時(shí)先執(zhí)行同一行的訪問操作,從而不但提高了存儲器的訪問效率,而且節(jié)省了功耗。
【專利附圖】
【附圖說明】
[0075]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。[0076]圖1為現(xiàn)有技術(shù)中SDR A M結(jié)構(gòu)示意圖;
[0077]圖2為本發(fā)明實(shí)施例存儲器的控制架構(gòu)示意圖;
[0078]圖3為本發(fā)明實(shí)施例存儲器的訪問方法的流程示意圖;
[0079]圖4為本發(fā)明實(shí)施例緩沖區(qū)劃分示意圖之一;
[0080]圖5為本發(fā)明實(shí)施例緩沖區(qū)劃分示意圖之二 ;
[0081]圖6為本發(fā)明實(shí)施例訪問命令并行執(zhí)行示意圖;
[0082]圖7為本發(fā)明實(shí)施存儲器的訪問裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0083]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0084]在本發(fā)明實(shí)施例中,被訪問的存儲器可以是L P D D R 2 S D RAM,也可以是其它類型的存儲器,在此不做限制。其中,所述存儲器包括至少兩個(gè)存儲陣列,每個(gè)存儲陣列對應(yīng)分配一個(gè)緩沖區(qū),所述緩沖區(qū)中存儲了用于訪問對應(yīng)存儲陣列的訪問命令,所述訪問命令按照接收順序依次存儲于對應(yīng)緩沖區(qū)中、且存儲順序與對應(yīng)緩沖區(qū)中緩沖單元的排列順序相同,所述緩沖區(qū)被劃分為至少一個(gè)緩沖區(qū)間。
[0085]為方便理解上述內(nèi)容,參見圖2所示的存儲器的控制架構(gòu)示意圖,假設(shè)圖中存儲器包括8個(gè)存儲陣列B ank0.Bank I……B a n k 7,每個(gè)存儲器對應(yīng)分配一個(gè)控制器,即B a n k O控制器、B a n k I控制器……B a n k 7控制器,控制器間相互獨(dú)立,且每個(gè)控制器包括行調(diào)度模塊、命令分解模塊和子命令傳輸模塊。每個(gè)行調(diào)度模塊中有一個(gè)的緩沖區(qū),其中,行調(diào)度模塊O中的緩沖區(qū)O用于存儲B a n k O的訪問命令,行調(diào)度模塊I中的緩沖區(qū)I用于存儲B a n k I的訪問命令……行調(diào)度模塊7中的緩沖區(qū)7用于存儲B a n k 7的訪問命令。另外,每個(gè)緩沖區(qū)包含相同數(shù)量的緩沖單元(例如,緩沖單元個(gè)數(shù)為64),其中,緩沖區(qū)O的存儲規(guī)律為:B a n k O的第I個(gè)訪問命令被存儲在緩沖區(qū)O的第I個(gè)緩沖單元中,B a n k O的第2個(gè)訪問命令被存儲在緩沖區(qū)O的第2個(gè)緩沖單元中,依次類推,當(dāng)B a n k O的第64個(gè)訪問命令被存儲在緩沖區(qū)O的第64個(gè)緩存單元中時(shí),此時(shí)將產(chǎn)生滿標(biāo)志以暫停訪問命令進(jìn)入緩沖區(qū)0,只有當(dāng)緩沖區(qū)O中64個(gè)訪問命令全部執(zhí)行完畢后,再將B a n k O的第65個(gè)訪問命令存儲在緩沖區(qū)O的第O個(gè)緩沖單元中,其它緩沖區(qū)的緩沖規(guī)律同緩沖區(qū)O —樣,在此不再贅述。
[0086]參見圖3,為本發(fā)明實(shí)施例提供的存儲器的訪問方法的流程示意圖,該方法包括:
[0087]步驟301:對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū),從中選取一個(gè)緩沖區(qū)間,其中,選取緩沖區(qū)間中存儲有未執(zhí)行的訪問命令、且與其它緩沖區(qū)間相比為最早存儲訪問命令的緩沖區(qū)間,所述訪問命令中攜帶了所要訪問的存儲陣列的行地址。
[0088]在本發(fā)明實(shí)施例中,每個(gè)緩沖區(qū)對應(yīng)分配一個(gè)第一寄存器,所述第一寄存器的每個(gè)存儲單元用于分別 存儲對應(yīng)緩沖區(qū)中每個(gè)訪問命令的執(zhí)行狀態(tài);當(dāng)將所述訪問命令存儲在對應(yīng)緩沖區(qū)中時(shí),在所述緩沖區(qū)對應(yīng)的第一寄存器中將所述訪問命令標(biāo)識為未執(zhí)行狀態(tài);當(dāng)所述訪問命令的所有子命令被發(fā)送至所述存儲器后,在所述緩沖區(qū)對應(yīng)的第一寄存器中將所述訪問命令標(biāo)識為已執(zhí)行狀態(tài)。具體實(shí)現(xiàn)時(shí),可以為每個(gè)緩沖區(qū)的每個(gè)緩沖單元增加一個(gè)標(biāo)志位,具體地,若每個(gè)緩沖區(qū)的緩沖單元個(gè)數(shù)為64,則可以為每個(gè)緩沖區(qū)建立一個(gè)64位的寄存器, 對應(yīng)存儲每個(gè)緩沖單兀的標(biāo)志位,標(biāo)志位為I表不未執(zhí)行,標(biāo)志位為O表示已執(zhí)行,沒有使用的緩沖單元的標(biāo)志位默認(rèn)為O。
[0089]本發(fā)明實(shí)施例可以利用圖2所示的行調(diào)度模塊實(shí)現(xiàn)步驟301,為便于說明步驟301,參見圖4所示的緩沖區(qū)劃分示意圖之一。按照訪問命令的接收順序,各個(gè)訪問命令從左到右依次存儲于該緩沖區(qū)中,I代表未執(zhí)行的訪問命令,O代表沒有使用的緩沖單元。假設(shè)該緩沖區(qū)包括64個(gè)緩沖單元且被劃分為8個(gè)緩沖區(qū)間,每個(gè)緩沖區(qū)間包括8個(gè)緩沖單元(需要說明的是,本發(fā)明實(shí)施例可以改變緩沖區(qū)的緩沖單元數(shù),也可以改變劃分的緩沖區(qū)間的緩沖單元數(shù)),則第I個(gè)緩沖區(qū)間為存儲有未執(zhí)行訪問命令、且與其它緩沖區(qū)間相比為最早存儲訪問命令的緩沖區(qū)間,所以將第I個(gè)緩沖區(qū)間作為最先選取的緩沖區(qū)間,待第I個(gè)緩沖區(qū)間內(nèi)的所有訪問命令被執(zhí)行后,再選取第2個(gè)緩沖區(qū)間,依次類推。
[0090]步驟302:遍歷所述選取緩沖區(qū)間中存儲的所有未執(zhí)行的訪問命令,依次獲取每個(gè)命令組,并將當(dāng)前獲取的命令組作為待執(zhí)行命令組,其中,所述命令組中的所有訪問命令攜帶了相同行地址。
[0091]在步驟302中,主要是利用圖2中的行調(diào)度模塊從所述選取緩沖區(qū)間中選取用于訪問同一 B a n k同一行的所有訪問命令,以便依次執(zhí)行這些訪問命令。為便于說明步驟302,現(xiàn)舉例說明,參見圖4,對于最先選取的第I個(gè)緩沖區(qū)間,首先從該緩沖區(qū)間中選取第I個(gè)未執(zhí)行的訪問命令即第I個(gè)緩沖單元中的訪問命令,并確定該訪問命令攜帶的行地址,然后,依次遍歷剩下的7個(gè)緩沖單元中訪問命令攜帶的行地址,假設(shè)第3、5、7個(gè)緩沖單元中的訪問命令攜帶的行地址與第I個(gè)緩沖單元中的訪問命令攜帶的行地址相同,則將第1、
3、5、7個(gè)緩沖單元中的訪問命令作為一個(gè)命令組;對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū),均按照上述方式獲取命令組以作為第一個(gè)待執(zhí)行命令組,待這些待執(zhí)行命令組按照步驟303全部被執(zhí)行后,這些訪問命令的標(biāo)志位均被置為0(參見圖5所示的緩沖區(qū)劃分示意圖之二)。繼續(xù)從第I個(gè)緩沖區(qū)間中選取攜帶另一相同行地址的命令組,參見圖5,首先從該緩沖區(qū)間中選取第I個(gè)未執(zhí)行的訪問命令即為第2個(gè)緩沖單元中的訪問命令,并確定該訪問命令攜帶的行地址,依次遍歷剩下的3個(gè)緩沖單元中訪問命令攜帶的行地址,假設(shè)第4、
6、8個(gè)緩沖單元中的訪問命令攜帶的行地址與第2個(gè)緩沖單元中的訪問命令攜帶的行地址相同,則將第2、4、6、8個(gè)緩沖單元中的訪問命令作為一個(gè)命令組;對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū),均按照上述方式獲取命令組以作為第二個(gè)待執(zhí)行命令組,待這些待執(zhí)行命令組按照步驟303全部被執(zhí)行后,這些訪問命令的標(biāo)志位均被置為O。待第I個(gè)緩存區(qū)間對應(yīng)的標(biāo)志位全部置O后,再將第2個(gè)緩存區(qū)間作為選取緩存區(qū)間,同樣執(zhí)行以上步驟,在此不再贅述。
[0092]可見,基于上述舉例,本發(fā)明實(shí)施例可按照下述方式實(shí)現(xiàn)步驟302:
[0093]按照所述選取緩沖區(qū)間中緩沖單元的排列順序,從所述選取緩沖區(qū)間中獲取第一個(gè)未執(zhí)行的攜帶了第一行地址的第一訪問命令,所述第一訪問命令存儲于所述選取緩沖區(qū)間中的第一緩沖單元中;
[0094]從所述第一緩沖單元后的所有緩沖單元中,依次獲取攜帶所述第一行地址的未執(zhí)行訪問命令,以獲取由攜帶所述第一行地址的所有訪問命令組成的第一命令組;[0095]判斷所述選取緩沖區(qū)間中是否仍存在未執(zhí)行的訪問命令,如果是,則執(zhí)行按照所述選取緩沖區(qū)間中緩沖單元的排列順序從所述選取緩沖區(qū)間中獲取第一個(gè)未執(zhí)行的攜帶了第二行地址的第二訪問命令的步驟,以獲取由攜帶所述第二行地址的所有訪問命令組成的第二命令組,如果否,則繼續(xù)執(zhí)行步驟301。
[0096]步驟303:按照預(yù)設(shè)規(guī)則將各個(gè)待執(zhí)行命令組中每個(gè)訪問命令的子命令,依次送入所述存儲器,以便所述存儲器執(zhí)行獲取的子命令,其中,所述待執(zhí)行命令組中每個(gè)訪問命令之間按獲取順序發(fā)送,所述待執(zhí)行命令組中第一個(gè)獲取的訪問命令被分解成執(zhí)行順序?yàn)轭A(yù)充電子命令、激活子命令和列存取子命令的三個(gè)子命令,所述待執(zhí)行命令組中其它每個(gè)訪問命令均分解為列存取子命令。
[0097]在圖2中,行調(diào)度模塊從自身緩沖區(qū)中每獲取一個(gè)訪問命令,便將其送入命令分解模塊分解成存儲器能夠識別的子命令,然后將分解后的子命令送入子命令傳輸模塊進(jìn)行排隊(duì),以等待仲裁器授權(quán)后才能執(zhí)行排隊(duì)在最前的子命令。
[0098]其中,每個(gè)命令分解模塊主要按照下述方式分解子命令:
[0099]本發(fā)明實(shí)施例為每個(gè)行調(diào)度模塊中的緩沖區(qū)對應(yīng)分配一個(gè)第二寄存器,該第二寄存器設(shè)置在命令分解模塊中,所述第二寄存器用來存放上次從行調(diào)度模塊傳入的訪問命令的行地址。命令分解模塊將當(dāng)前傳入的訪問命令與寄存器中保存的行地址進(jìn)行比較,根據(jù)比較結(jié)果決定如何分解當(dāng)前獲取的訪問命令,并用當(dāng)前訪問命令的行地址更新第二寄存器中的行地址。其中,如果行地址的比較結(jié)果不同,說明當(dāng)前訪問命令想要訪問的行為上次打開行以外的行,則命令分解模塊將當(dāng)前傳入的訪問命令分解成子命令預(yù)充電子命令(Pr e c h a r g e ,簡稱P )、激活子命令(A c t i v a t e ,簡稱A )和列存取子命令(Columnaccess,簡稱C ),并按照存儲器S D R A M能識別的命令格式準(zhǔn)備好每個(gè)子命令;如果行地址的比較結(jié)果相同,說明當(dāng)前訪問命令想要訪問的行即為上次打開的行,則命令分解模塊將當(dāng)前傳入的訪問命令分解成列存取子命令(c olumnacces s,簡稱C ),并按照存儲器SDR A M能識別的命令格式準(zhǔn)備好每個(gè)子命令。其中,列存取子命令C表示讀操作或?qū)懖僮???梢?,本發(fā)明實(shí)施例可按照下述方法分解訪問命令:
[0100]對于從所述選取緩沖區(qū)間中獲取的每個(gè)訪問命令,將獲取訪問命令攜帶的行地址與對應(yīng)第二寄存器中存儲的行地址進(jìn)行比較,所述對應(yīng)第二寄存器中存儲的行地址為上次獲取的訪問命令的行地址;如果比較結(jié)果不同,則利用所述獲取訪問命令攜帶的行地址替換所述第二寄存器中存儲的行地址,并將所述獲取訪問命令分解為預(yù)充電子命令、激活子命令和列存取子命令;如果比較結(jié)果相同,則利用所述獲取訪問命令攜帶的行地址替換所述第二寄存器中存儲的行地址,并將所述獲取訪問命令分解為列存取子命令。
[0101]在圖2中,可利用仲裁器來仲裁各個(gè)子命令傳輸模塊間的優(yōu)先級,并根據(jù)仲裁結(jié)果調(diào)度各個(gè)子命令傳輸模塊間的子命令傳輸順序,下面分別介紹所述子命令傳輸模塊與所述仲裁器的功能。
[0102]子命令傳輸模塊的功能如下:
[0103]子命令傳輸模塊通過F IFO(Fi r s t InputFi r s tOutpu
t,先入先出隊(duì)列)結(jié)構(gòu)緩存命令分解模塊傳入的子命令,只有當(dāng)仲裁器給予該子命令傳輸模塊優(yōu)先權(quán)(對應(yīng)P r i ο r i t y = I)且該子命令傳輸模塊滿足時(shí)序要求后才可輸出緩存的子命令。其中,所述時(shí)序要求包括:從P到A需要時(shí)間間隔t RPp b,從A到具體讀寫操作c需要時(shí)間間隔t R C D,從讀操作C到讀操作C或者寫操作C到寫操作C需要時(shí)間間隔t C C D,從讀操作C到寫操作C需要時(shí)間間隔t R T W,從寫操作C到讀操作C需要時(shí)間間隔t W T R,從讀操作C到P需要時(shí)間間隔t R T P,從寫操作C到P需要時(shí)間間隔t WR。子命令傳輸模塊在計(jì)時(shí)所述時(shí)間間隔的過程中,可通過設(shè)置t i m i n g_counter!= O來表示下一個(gè)子命令還沒滿足時(shí)序要求,并產(chǎn)生時(shí)序沒準(zhǔn)備好的信號t iming_ready = 0給仲裁器,以告知仲裁器該子命令傳輸模塊還不能輸出下一個(gè)子命令,此時(shí),仲裁器可以將優(yōu)先權(quán)轉(zhuǎn)移給其它子命令傳輸模塊中滿足要求的子命令傳輸模塊(即為:所有滿足時(shí)序要求的子命令傳輸模塊中優(yōu)先級最高的子命令傳輸模塊)以輸出其子命令,這樣就可以讓不同b a n k同時(shí)工作,以最大化總線利用率。
[0104]所述仲裁器的功能如下:
[0105]仲裁器的工作除了分別給初始化操作、刷新操作、讀寫操作判別優(yōu)先權(quán)外,主要工作是在不同的b a n k控制器間動態(tài)分配優(yōu)先權(quán)。具體地,比較各個(gè)行調(diào)度模塊中未執(zhí)行的訪問命令數(shù)n u m, n u m數(shù)最多的ban k控制器的優(yōu)先級最高,依次類推,n u m數(shù)最少的b a n k控制器的優(yōu)先級最低,可以用一個(gè)寄存器來保存b a n k控制器間的優(yōu)先級,需要說明的是,本發(fā)明實(shí)施例是在每執(zhí)行完當(dāng)前各個(gè)待執(zhí)行命令組后,便進(jìn)行一次n um數(shù)比較以重新分配優(yōu)先權(quán),從而適應(yīng)各個(gè)行調(diào)度模塊中不斷變化的命令數(shù)。具體實(shí)現(xiàn)時(shí),首先選擇n um數(shù)最多的b a n k控制器,在其子命令傳輸模塊滿足時(shí)序要求后產(chǎn)生時(shí)序準(zhǔn)備好的信號t iming_ready=l給仲裁器,仲裁器給予該b a n k控制器優(yōu)先權(quán)(P r i ο r i t y = 1),傳輸其子命令傳輸模塊中排隊(duì)在前的子命令,并在下次其時(shí)序滿足要求(t iming_ready = I)時(shí)返回給予其優(yōu)先權(quán)。當(dāng)該b a n k控制器傳輸完該子命令后進(jìn)入時(shí)序計(jì)時(shí)過程,即設(shè)置t iming_counter! = O,此時(shí)產(chǎn)生沒準(zhǔn)備好的信號t iming_ready = O給仲裁器,仲裁器就可以將優(yōu)先權(quán)轉(zhuǎn)移給滿足時(shí)序要求(即產(chǎn)生了時(shí)序準(zhǔn)備好的信號t iming_ready = I)的所有ba n k控制器中n um最多的b a n k控制器,控制其子命令傳輸模塊傳輸子命令。
[0106]為了更方便的理解仲裁器所實(shí)現(xiàn)的功能,下面舉例說明:
[0107]參見圖2,假設(shè)行調(diào)度模塊O的緩沖區(qū)O、行調(diào)度模塊I的緩沖區(qū)I和行調(diào)度模塊2的緩沖區(qū)2中存儲有未執(zhí)行訪問命令,其它行調(diào)度模塊的緩沖區(qū)中沒有未執(zhí)行訪問命令,統(tǒng)計(jì)這三個(gè)緩沖區(qū)中未執(zhí)行的命令數(shù)n u m,統(tǒng)計(jì)結(jié)果為:緩沖區(qū)O中n u m數(shù)最大,緩沖區(qū)I中n u m數(shù)次大,緩沖區(qū)2中n u m數(shù)最小,因此,從緩沖區(qū)O中獲取的當(dāng)前待執(zhí)行命令組g rο u P O的優(yōu)先級為第一優(yōu)先級、從緩沖區(qū)I中獲取的當(dāng)前待執(zhí)行命令組g r οu P I的優(yōu)先級為第二優(yōu)先級,從緩沖區(qū)2中獲取的當(dāng)前待執(zhí)行命令組g r ο u P 2的優(yōu)先級為第三優(yōu)先級。假設(shè)g r ο u P O中的訪問命令數(shù)為3, g r ο u P I中的訪問命令數(shù)為2,g roup 2中的訪問命令為2,則每個(gè)待執(zhí)行命令組的第一個(gè)訪問命令被分解成了P、A和C,剩下的訪問命令被分解成了 C,如圖6所示訪問命令并行執(zhí)行示意圖。
[0108]仲裁器具體按照以下方式仲裁子命令間的執(zhí)行順序:
[0109]首先執(zhí)行g(shù) roup O的P操作,在g roup O的操作P和A之間需要滿足一定的時(shí)序間隔,在這個(gè)時(shí)序間隔內(nèi)就可以執(zhí)行b a n k I的P操作,在g roup I的操作P和A之間也需要滿足一定的時(shí)序間隔,在這個(gè)時(shí)序間隔內(nèi),如果g roup O滿足了規(guī)定的時(shí)序要求就把優(yōu)先權(quán)返回給b a n k O執(zhí)行A操作,如果沒滿足就再轉(zhuǎn)移優(yōu)先權(quán)給group 2執(zhí)行P操作,依次類推,其中,在執(zhí)行到每個(gè)組的C操作時(shí),可以在每組兩個(gè)C的間隔時(shí)間內(nèi)執(zhí)行其它組的子命令,也可以連續(xù)執(zhí)行每組的C操作直到全部執(zhí)行完再執(zhí)行下一 b a n k的C操作。按照此方式,圖6中的執(zhí)行順序有兩種方式,分別為:
[0110]方式一:執(zhí)行順序依次為:g roupO的P、g roupl的P、g roup2的P、g roupO 的 A、g roup I 的 A、g roup 2 的 A、g roup 0 的第一個(gè) C、g r o u p I 的第一個(gè) C、g r o u ρ 2 的第一個(gè) C、g r o u p O 的第二個(gè) C、g r o uP I的第二個(gè)C、g r ο u ρ 2的第二個(gè)C、g r ο u ρ O的第三個(gè)C ,參見圖6中上面的圖。
[0111]方式二:執(zhí)行順序依次為:g roupO的P、g roupl的P、g roup2的P、g roupO 的 A、g roup I 的 A、g roup 2 的 A、g roup 0 的第一個(gè) C、g r o u ρ O的第二個(gè)C、g r ο u ρ O的第三個(gè)C、g r o u ρ I的第一個(gè)C、g r o uP I的第二個(gè)C、g r ο u ρ 2的第一個(gè)C、g r ο u ρ 2的第二個(gè)C ,參見圖6中下面的圖。
[0112]將從讀操作C到寫操作C需要的時(shí)間間隔t R T W或從寫操作C到讀操作C需要的時(shí)間間隔t WT R,與從讀操作C到讀操作C或者寫操作C到寫操作C需要的時(shí)間間隔t C C D相比可知,t RT W大于t C C D,t WT R大于t C C D。因此,當(dāng)同一組的相鄰兩個(gè)C分別指代讀操作和寫操作時(shí),由于訪問同行的C操作間隔較長,因此可轉(zhuǎn)移優(yōu)先權(quán),即可以在每組兩個(gè) C的間隔時(shí)間內(nèi)執(zhí)行其它組的子命令;當(dāng)同一組的相鄰兩個(gè)C分別指代讀操作和讀操作(或?qū)懖僮骱蛯懖僮?時(shí),由于訪問同行的C操作間隔較短,因此可不轉(zhuǎn)移優(yōu)先權(quán),即可以連續(xù)執(zhí)行每組的C操作直到全部執(zhí)行完再執(zhí)行下一 b a n k的C操作。
[0113]基于上述內(nèi)容,本發(fā)明實(shí)施例可利用仲裁器實(shí)現(xiàn)步驟303,具體實(shí)現(xiàn)方式如下:
[0114]獲取每個(gè)緩沖區(qū)中未執(zhí)行訪問命令的數(shù)目,并將所述獲取的數(shù)目遞減排序,按照排序結(jié)果確定各個(gè)待執(zhí)行命令組之間的優(yōu)先級順序;即,訪問命令數(shù)目最多的緩沖區(qū)中的待執(zhí)行命令組的優(yōu)先級最高,訪問命令數(shù)目最少的緩沖區(qū)中的待執(zhí)行命令組的優(yōu)先級最低,按照優(yōu)先級別遞減命名為:第一優(yōu)先級、第二優(yōu)先級、第三優(yōu)先級……。
[0115]向所述存儲器發(fā)送第一命令的預(yù)充電子命令,所述第一命令為第一優(yōu)先級的待執(zhí)行命令組中的第一個(gè)未執(zhí)行訪問命令;
[0116]在所述第一命令的預(yù)充電子命令與所述第一命令的激活子命令之間的第一發(fā)送間隔時(shí)間內(nèi),向所述存儲器發(fā)送第二命令的預(yù)充電子命令,所述第二命令為第二優(yōu)先級的待執(zhí)行命令組中的訪問命令;
[0117]在所述第二命令的預(yù)充電子命令與所述第二命令的激活子命令之間的第二發(fā)送間隔時(shí)間內(nèi),若計(jì)時(shí)到達(dá)所述第一發(fā)送間隔時(shí)間,則向所述存儲器發(fā)送所述第一命令的激活子命令,在所述第一命令的激活子命令與所述第一命令的列存取子命令之間的第三發(fā)送間隔時(shí)間內(nèi),執(zhí)行第三命令的待執(zhí)行子命令,所述第三命令為在所述第一優(yōu)先級待執(zhí)行命令組后的所有待執(zhí)行命令組中滿足時(shí)序要求且優(yōu)先級最高的待執(zhí)行命令組,所述滿足時(shí)序要求為計(jì)時(shí)到達(dá)所述待執(zhí)行子命令與所述待執(zhí)行子命令之前子命令之間的發(fā)送時(shí)間間隔;需要說明的是,由于每個(gè)待執(zhí)行命令組中的各個(gè)子命令的發(fā)送順序已經(jīng)確定,因此,所述待執(zhí)行子命令為對應(yīng)待執(zhí)行命令組中下一個(gè)需要被執(zhí)行的子命令。[0118]在所述第二命令的預(yù)充電子命令與所述第二命令的激活子命令之間的第二發(fā)送間隔時(shí)間內(nèi),若計(jì)時(shí)未到達(dá)所述第一發(fā)送間隔時(shí)間,則向所述存儲器發(fā)送第四命令的預(yù)充電子命令,所述第四命令為第三優(yōu)先級的待執(zhí)行命令組中的訪問命令;
[0119]其中,所述第一優(yōu)先級、所述第二優(yōu)先級和所述第三優(yōu)先級的優(yōu)先級別依次遞減;
[0120]按照上述規(guī)律繼續(xù)向所述存儲器發(fā)送當(dāng)前獲取的各個(gè)待執(zhí)行命令組中的其它子命令;或者,按照上述規(guī)律繼續(xù)向所述存儲器發(fā)送當(dāng)前獲取的各個(gè)待執(zhí)行命令組中的其它子命令,其中,每個(gè)待執(zhí)行命令組中的各個(gè)列存取子命令依次執(zhí)行、且每兩個(gè)列存取子命令之間滿足發(fā)送間隔時(shí)間。
[0121]在圖2 中,AXI(Advanced extensible Interfa
c e,高級可擴(kuò)展接口)接口模塊負(fù)責(zé)接收A X I協(xié)議總線的信號(包括訪問命令和寫數(shù)據(jù),所述訪問命令包括讀訪問命令和寫訪問命令,所述寫數(shù)據(jù)為需要寫入存儲器的數(shù)據(jù)),AX I接口模塊由兩個(gè)F I F O組成,這兩個(gè)F I F O分別緩沖訪問命令和寫數(shù)據(jù)。其中,A X I協(xié)議的特征是:地址/控制和數(shù)據(jù)通道是分離的、支持突發(fā)交易、支持亂序交易等,A X I協(xié)議給通過A X I總線發(fā)送的交易分配一個(gè)I D標(biāo)簽,協(xié)議要求具有相同I D的交易按順序完成,而對具有不同I D的交易沒有順序限制,利用這一特性存儲器就可以亂序返回讀數(shù)據(jù)。因此,為了使具有相同I D標(biāo)簽交易的各個(gè)讀數(shù)據(jù)按照讀訪問命令的接收順序依次輸出,AX I接口模塊還為接收的每個(gè)讀訪問命令配置唯一的I D,并將配置I D號的讀訪問命令送入控制器,此外,AX I接口模塊還為接收的每個(gè)寫訪問命令和寫數(shù)據(jù)配置相同的唯一I D,并將配置I D號的寫訪問命令送入控制器且將配置I D號的寫數(shù)據(jù)送入數(shù)據(jù)傳輸模塊。其中,所述數(shù)據(jù)傳輸模塊包括寫數(shù)據(jù)通道RAM和讀數(shù)據(jù)通道F I FO,因?yàn)橹俨闷鲗υL問命令的調(diào)度導(dǎo)致寫數(shù)據(jù)亂序,所以用寫數(shù)據(jù)通道R A M來緩存寫數(shù)據(jù),根據(jù)寫數(shù)據(jù)I D和寫訪問命令I(lǐng) D相同這一特性,從寫數(shù)據(jù)通道R AM中查找寫訪問命令對應(yīng)的寫數(shù)據(jù)。在本發(fā)明實(shí)施例中,數(shù)據(jù)傳輸模塊具體按照下述方式讀寫數(shù)據(jù):
[0122]仲裁器向存儲器發(fā)送寫訪問命令時(shí)會生成寫請求準(zhǔn)備信號給數(shù)據(jù)傳輸模塊以告知它準(zhǔn)備數(shù)據(jù),并且把寫訪問命令所帶的I D號也發(fā)送給數(shù)據(jù)傳輸模塊。由于寫訪問命令和寫數(shù)據(jù)的I D號相同,寫數(shù)據(jù)存入RAM時(shí)直接用I D號作為各寫數(shù)據(jù)在RAM中的地址,根據(jù)仲裁器發(fā)送的寫訪問命令的I D號來查詢該I D號對應(yīng)RAM地址,就可直接取出寫數(shù)據(jù)。其中,寫數(shù)據(jù)通過物理層(PHY)接口寫入存儲器中,寫數(shù)據(jù)的采樣信號d q s由物理層(P H Y)接口產(chǎn)生,d q s邊沿對齊寫數(shù)據(jù)中央采樣。
[0123]仲裁器向存儲器發(fā)送讀訪問命令時(shí),向數(shù)據(jù)傳輸模塊發(fā)送讀請求準(zhǔn)備信號和讀訪問命令的I D號。存儲器接收到讀訪問命令的RL個(gè)時(shí)鐘周期后才會輸出數(shù)據(jù),所述讀請求準(zhǔn)備信號用于使讀輸出通道F I F O計(jì)時(shí)RL個(gè)時(shí)鐘周期后產(chǎn)生讀使能信號,以在產(chǎn)生所述讀使能信號后,在讀輸出通道F I F O入口處接收從S D R AM讀出來的數(shù)據(jù),然后把讀訪問命令的I D號附加在讀出數(shù)據(jù)上并通過AX I接口模塊傳送出去。由于AX I總線支持亂序交易,而每個(gè)交易的I D號是唯一的且每個(gè)交易的每個(gè)讀數(shù)據(jù)I D也是唯一的,即便讀訪問命令被亂序調(diào)度了,只要讀出數(shù)據(jù)和讀訪問命令對應(yīng)相同的I D號,就不需要對每個(gè)交易的各個(gè)讀數(shù)據(jù)進(jìn)行重排序,只需要根據(jù)讀數(shù)據(jù)的I D號按照讀訪問命令的接收順序依次返回總線即可。[0124]進(jìn)一步地,基于上述內(nèi)容可知,在步驟301之間,本發(fā)明實(shí)施例還包括:
[0125]A X I接口模塊從協(xié)議總線接收訪問命令;
[0126]若所述訪問命令用于向所述存儲器寫入數(shù)據(jù),則A X I接口模塊為所述訪問命令和所要寫入的數(shù)據(jù)分別配置第一標(biāo)識,并將配置后的訪問命令發(fā)送至對應(yīng)的緩沖區(qū)中且將配置后的數(shù)據(jù)發(fā)送至數(shù)據(jù)傳輸模塊;在仲裁器向所述存儲器發(fā)送所述訪問命令的列存取子命令時(shí),向所述數(shù)據(jù)傳輸模塊發(fā)送所述第一標(biāo)識,以使所述數(shù)據(jù)傳輸模塊根據(jù)所述第一標(biāo)識準(zhǔn)備所述所要寫入的數(shù)據(jù),將準(zhǔn)備好的數(shù)據(jù)發(fā)送至所述存儲器;
[0127]若所述訪問命令用于讀取所述存儲器中的數(shù)據(jù),則A X I接口模塊為所述訪問命令配置第二標(biāo)識,并將配置后的訪問命令發(fā)送至對應(yīng)的緩沖區(qū)中;在仲裁器向所述存儲器發(fā)送所述訪問命令的列存取子命令后,利用所述數(shù)據(jù)傳輸模塊接收所述存儲器返回的數(shù)據(jù)并為所述返回的數(shù)據(jù)配置所述第二標(biāo)識;根據(jù)所述第二標(biāo)識將所述返回的數(shù)據(jù)按照所述訪問命令的接收順序發(fā)送至所述協(xié)議總線。
[0128]需要說明的是,參見圖2,A X I接口模塊主要通過存儲陣列譯碼模塊將訪問命令發(fā)送至對應(yīng)的緩沖區(qū)中的。存儲陣列譯碼模塊負(fù)責(zé)譯碼、提取A X I接口模塊傳送的訪問命令中的b a n k地址,按照b a n k地址把各個(gè)命令分類到各行調(diào)度模塊的緩沖區(qū)中。具體地,存儲陣列譯碼模塊在接收到訪問命令后,對所述訪問命令進(jìn)行譯碼,以提取所述訪問命令中的存儲陣列地址,并根據(jù)所述存儲陣列地址,將所述訪問命令存儲于對應(yīng)分配的緩沖區(qū)中。
[0129]本發(fā)明實(shí)施例提供的存儲器的訪問方法,為每個(gè)存儲陣列對應(yīng)分配一個(gè)緩沖區(qū),將訪問同一存儲陣列的所有訪問命令存儲在同一緩沖區(qū)內(nèi),并把每個(gè)緩沖區(qū)劃分為多個(gè)緩沖區(qū)間,對于每個(gè)緩沖區(qū)間,使其存儲的具有相同行號的訪問命令按順序執(zhí)行,在此期間便不必頻繁關(guān)閉、打開存儲陣列的當(dāng)前行,這樣不但可以兼顧連續(xù)訪問同一行的情況,也可以在出現(xiàn)交叉行訪問時(shí)先執(zhí)行同一行的訪問操作,從而不但提高了存儲器的訪問效率,而且節(jié)省了功耗。
[0130]另外,圖2中還包括初始化模塊、刷新模塊和休眠模塊,這三個(gè)模塊的功能分別是:
[0131]1、初始化(I n i t i a I )模塊
[0132]初始化模塊主要完成對S D R A M中模式寄存器的初始化參數(shù)設(shè)置,包括突發(fā)長度(burst length )、突發(fā)類型(bursttype )、讀延遲時(shí)間(R L )、寫延遲時(shí)間(WL)等。并控制S D R AM完成上電初始化動作,比如時(shí)鐘使能信號C K E置高等待、復(fù)位(MR WR e s e t )、Z Q校驗(yàn)等。初始化完成后,通過標(biāo)志位ini t _ d On e置高說明S D R AM初始化完成,控制器就可以進(jìn)行正常的讀寫操作了。
[0133]2、刷新(R e f r e s h )模塊
[0134]由于L P D D R 2 S D R A M的存儲單元由一個(gè)晶體管連接一個(gè)電容組成,電容存放數(shù)據(jù)信息,但電容會慢慢漏電,導(dǎo)致數(shù)據(jù)丟失,所以S D RAM必須不斷刷新。刷新操作分為自刷新和自動刷新,自動刷新又分為針對每個(gè)b a n k的和所有b a n k的。根據(jù)內(nèi)存芯片的規(guī)格,例如每隔3.9 u s刷新所有b a n k 一遍。刷新操作不能打斷當(dāng)前正在進(jìn)行的讀寫操作,需等待當(dāng)前的讀寫操作完成后再執(zhí)行刷新操作,所以設(shè)置刷新周期時(shí)要留有一點(diǎn)余量,否則數(shù)據(jù)可能因?yàn)闆]及時(shí)刷新而丟失。本發(fā)明采用自動刷新模式,便于控制,計(jì)時(shí)結(jié)束就自動刷新所有b a n k。在收到刷新請求且沒有讀寫操作正在進(jìn)行時(shí),控制器將阻止其他命令的執(zhí)行,并發(fā)出預(yù)充電所有b a n k的命令,以保證所有b a n k都處于空閑(Id I e )狀態(tài),經(jīng)過t R P A B時(shí)間后發(fā)出刷新(R e f r e s h )命令,刷新操作經(jīng)過t R F C A B時(shí)間后刷新結(jié)束,所有b a n k進(jìn)入I d I e狀態(tài),等待接收正常命令。
[0135]3、休眠(Power Down)模塊
[0136]當(dāng)C K E信號置低時(shí)進(jìn)入休眠模式,當(dāng)C K E信號置高時(shí)退出休眠模式,比如當(dāng)初始化操作結(jié)束或完成請求后,在30個(gè)周期內(nèi)如果沒有出現(xiàn)S D RAM內(nèi)存請求,該休眠模塊控制S D R AM進(jìn)入休眠模式,在接收到訪存命令后,該模塊再使S D R AM退出休眠模式,進(jìn)入正常讀寫模式,這樣便可利用休眠模塊實(shí)現(xiàn)低功耗管理。
[0137]4、物理層(P H Y)接口模塊
[0138]PHYCphysicallayer,物理層)接口主要負(fù)責(zé)時(shí)鐘的產(chǎn)生;為寫數(shù)據(jù)產(chǎn)生中間對齊的采樣信號d q S ;為讀操作時(shí)S D RAM返回的d q S信號延遲相位90°,使其與讀數(shù)據(jù)中心對齊;并負(fù)責(zé)地址、數(shù)據(jù)、控制信號在控制器的單倍速率(僅上升沿或僅下降沿傳輸數(shù)據(jù))和S D R A M的雙倍(上升沿和下降沿都傳輸數(shù)據(jù))速率之間轉(zhuǎn)換。
[0139]參見圖7,為本發(fā)明實(shí)施例提供的存儲器的訪問裝置的結(jié)構(gòu)示意圖,所述存儲器包括至少兩個(gè)存儲陣列,每個(gè)存儲陣列對應(yīng)分配一個(gè)緩沖區(qū),所述緩沖區(qū)中存儲了用于訪問對應(yīng)存儲陣列的訪問命令,所述訪問命令按照接收順序依次存儲于對應(yīng)緩沖區(qū)中、且存儲順序與對應(yīng)緩沖區(qū)中緩沖單元的排列順序相同,所述緩沖區(qū)被劃分為至少一個(gè)緩沖區(qū)間,所述裝置包括:
[0140]緩沖區(qū)選取模塊701,用于對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū),從中選取一個(gè)緩沖區(qū)間,其中,選取緩沖區(qū)間中存儲有未執(zhí)行的訪問命令、且與其它緩沖區(qū)間相比為最早存儲訪問命令的緩沖區(qū)間,所述訪問命令中攜帶了所要訪問的存儲陣列的行地址;
[0141]命令組獲取模塊702,用于遍歷所述選取緩沖區(qū)間中存儲的所有未執(zhí)行的訪問命令,依次獲取每個(gè)命令組,并將當(dāng)前獲取的命令組作為待執(zhí)行命令組,其中,所述命令組中的所有訪問命令攜帶了相同行地址;
[0142]子命令調(diào)度模塊703,用于按照預(yù)設(shè)規(guī)則將各個(gè)待執(zhí)行命令組中每個(gè)訪問命令的子命令,依次送入所述存儲器,以便所述存儲器執(zhí)行獲取的子命令,其中,所述待執(zhí)行命令組中每個(gè)訪問命令之間按獲取順序發(fā)送,所述待執(zhí)行命令組中第一個(gè)獲取的訪問命令被分解成執(zhí)行順序?yàn)轭A(yù)充電子命令、激活子命令和列存取子命令的三個(gè)子命令,所述待執(zhí)行命令組中其它每個(gè)訪問命令均分解為列存取子命令。
[0143]其中,所述命令組獲取模塊702,包括:
[0144]第一獲取子模塊,用于按照所述選取緩沖區(qū)間中緩沖單元的排列順序,從所述選取緩沖區(qū)間中獲取第一個(gè)未執(zhí)行的攜帶了第一行地址的第一訪問命令,所述第一訪問命令存儲于所述選取緩沖區(qū)間中的第一緩沖單元中;
[0145]第二獲取子模塊,用于從所述第一緩沖單元后的所有緩沖單元中,依次獲取攜帶所述第一行地址的未執(zhí)行訪問命令,以獲取由攜帶所述第一行地址的所有訪問命令組成的第一命令組;
[0146]判斷子模塊,用于判斷所述選取緩沖區(qū)間中是否仍存在未執(zhí)行的訪問命令;[0147]繼續(xù)獲取模塊,用于當(dāng)所述判斷子模塊判斷得到的所述選取緩沖區(qū)間中仍存在未執(zhí)行的訪問命令時(shí),執(zhí)行按照所述選取緩沖區(qū)間中緩沖單元的排列順序從所述選取緩沖區(qū)間中獲取第一個(gè)未執(zhí)行的攜帶了第二行地址的第二訪問命令的步驟,以獲取由攜帶所述第二行地址的所有訪問命令組成的第二命令組,如果否,則繼續(xù)利用所述緩沖區(qū)選取模塊執(zhí)行所述對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū),從中選取一個(gè)緩沖區(qū)間的步驟。
[0148]其中,所述子命令調(diào)度模塊703,包括:
[0149]排序子模塊,用于獲取每個(gè)緩沖區(qū)中未執(zhí)行訪問命令的數(shù)目,并將所述獲取的數(shù)目遞減排序,按照排序結(jié)果確定每個(gè)緩沖區(qū)的待執(zhí)行命令組之間的優(yōu)先級順序;
[0150]第一發(fā)送子模塊,用于向所述存儲器發(fā)送第一命令的預(yù)充電子命令,所述第一命令為第一優(yōu)先級的待執(zhí)行命令組中的第一個(gè)未執(zhí)行訪問命令;
[0151]第二發(fā)送子模塊,用于在所述第一命令的預(yù)充電子命令與所述第一命令的激活子命令之間的第一發(fā)送間隔時(shí)間內(nèi),向所述存儲器發(fā)送第二命令的預(yù)充電子命令,所述第二命令為第二優(yōu)先級的待執(zhí)行命令組中的訪問命令;
[0152]第三發(fā)送子模塊,用于在所述第二命令的預(yù)充電子命令與所述第二命令的激活子命令之間的第二發(fā)送間隔時(shí)間內(nèi),若計(jì)時(shí)到達(dá)所述第一發(fā)送間隔時(shí)間,則向所述存儲器發(fā)送所述第一命令的激活子命令,在所述第一命令的激活子命令與所述第一命令的列存取子命令之間的第三發(fā)送間隔時(shí)間內(nèi),執(zhí)行第三命令的待執(zhí)行子命令,所述第三命令為在所述第一優(yōu)先級待執(zhí)行命令組后的所有待執(zhí)行命令組中滿足時(shí)序要求且優(yōu)先級最高的待執(zhí)行命令組,所述滿足時(shí)序要求為計(jì)時(shí)到達(dá)所述待執(zhí)行子命令與所述待執(zhí)行子命令之前子命令之間的發(fā)送時(shí)間間隔;
[0153]第四發(fā)送子模塊,用于在所述第二命令的預(yù)充電子命令與所述第二命令的激活子命令之間的第二發(fā)送間隔時(shí)間內(nèi),若計(jì)時(shí)未到達(dá)所述第一發(fā)送間隔時(shí)間,則向所述存儲器發(fā)送第四命令的預(yù)充電子命令,所述第四命令為第三優(yōu)先級的待執(zhí)行命令組中的訪問命令;
[0154]其中,所述第一優(yōu)先級、所述第二優(yōu)先級和所述第三優(yōu)先級的優(yōu)先級別依次遞減;
[0155]繼續(xù)發(fā)送子模塊,用于按照上述規(guī)律繼續(xù)向所述存儲器發(fā)送當(dāng)前獲取的各個(gè)待執(zhí)行命令組中的其它子命令;或者,按照上述規(guī)律繼續(xù)向所述存儲器發(fā)送當(dāng)前獲取的各個(gè)待執(zhí)行命令組中的其它子命令,其中,每個(gè)待執(zhí)行命令組中的各個(gè)列存取子命令依次執(zhí)行、且每兩個(gè)列存取子命令之間滿足發(fā)送間隔時(shí)間。
[0156]進(jìn)一步地,所述裝置還包括:
[0157]命令接收模塊,用于在所述緩沖區(qū)選取模塊對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū),從中選取一個(gè)緩沖區(qū)間前,從協(xié)議總線接收訪問命令;
[0158]第一發(fā)送模塊,用于若所述命令接收模塊接收的訪問命令用于向所述存儲器寫入數(shù)據(jù),則為所述訪問命令和所要寫入的數(shù)據(jù)分別配置第一標(biāo)識,并將配置后的訪問命令發(fā)送至對應(yīng)的緩沖區(qū)中且將配置后的數(shù)據(jù)發(fā)送至數(shù)據(jù)傳輸模塊;
[0159]數(shù)據(jù)發(fā)送模塊,用于在所述子命令調(diào)度模塊向所述存儲器發(fā)送所述命令接收模塊接收的訪問命令的列存取子命令時(shí),向所述數(shù)據(jù)傳輸模塊發(fā)送所述第一標(biāo)識;
[0160]所述數(shù)據(jù)傳輸模塊,用于根據(jù)所述數(shù)據(jù)發(fā)送模塊發(fā)送的第一標(biāo)識準(zhǔn)備所述所要寫入的數(shù)據(jù),將準(zhǔn)備好的數(shù)據(jù)發(fā)送至所述存儲器;
[0161]第二發(fā)送模塊,用于若所述子命令接收模塊接收的訪問命令用于讀取所述存儲器中的數(shù)據(jù),則為所述訪問命令配置第二標(biāo)識,并將配置后的訪問命令發(fā)送至對應(yīng)的緩沖區(qū)中;
[0162]所述數(shù)據(jù)傳輸模塊,用于在所述子命令調(diào)度模塊向所述存儲器發(fā)送所述命令接收模塊接收的訪問命令的列存取子命令后,接收所述存儲器返回的數(shù)據(jù)并為所述返回的數(shù)據(jù)配置所述第二標(biāo)識,根據(jù)所述第二標(biāo)識將所述返回的數(shù)據(jù)按照所述訪問命令的接收順序發(fā)送至所述協(xié)議總線。
[0163]其中,所述第一發(fā)送模塊或所述第二發(fā)送模塊,包括:
[0164]譯碼子模塊,用于對所述配置后的訪問命令進(jìn)行譯碼,以提取所述訪問命令中的存儲陣列地址;
[0165]發(fā)送子模塊,用于根據(jù)所述存儲陣列地址,將所述訪問命令存儲于對應(yīng)分配的緩沖區(qū)中。
[0166]另外,在本發(fā)明實(shí)施例中,每個(gè)緩沖區(qū)對應(yīng)分配一個(gè)第一寄存器,所述第一寄存器的每個(gè)存儲單元用于分別存儲對應(yīng)緩沖區(qū)中每個(gè)訪問命令的執(zhí)行狀態(tài),所述裝置包括:
[0167]第一狀態(tài)標(biāo)記模塊,用于當(dāng)所述發(fā)送子模塊將所述訪問命令存儲在對應(yīng)緩沖區(qū)中時(shí),在所述緩沖區(qū)對應(yīng)的第一寄存器中將所述訪問命令標(biāo)識為未執(zhí)行狀態(tài);
[0168]第二狀態(tài)標(biāo)記模塊,用于當(dāng)所述訪問命令的所有子命令被發(fā)送至所述存儲器后,在所述緩沖區(qū)對應(yīng)的第一寄存器中將所述訪問命令標(biāo)識為已執(zhí)行狀態(tài)。
[0169]另外,在本發(fā)明實(shí)施例中,每個(gè)緩沖區(qū)對應(yīng)分配一個(gè)第二寄存器;所述裝置還包括:命令分解模塊,用于對于從所述選取緩沖區(qū)間中獲取的每個(gè)訪問命令,按照下述方法分解獲取的訪問命令:
[0170]將獲取訪問命令攜帶的行地址與對應(yīng)第二寄存器中存儲的行地址進(jìn)行比較,所述對應(yīng)第二寄存器中存儲的行地址為上次獲取的訪問命令的行地址;如果比較結(jié)果不同,則利用所述獲取訪問命令攜帶的行地址替換所述第二寄存器中存儲的行地址,并將所述獲取訪問命令分解為預(yù)充電子命令、激活子命令和列存取子命令;如果比較結(jié)果相同,則利用所述獲取訪問命令攜帶的行地址替換所述第二寄存器中存儲的行地址,并將所述獲取訪問命令分解為列存取子命令。
[0171]本發(fā)明實(shí)施例提供的存儲器的訪問裝置,為每個(gè)存儲陣列對應(yīng)分配一個(gè)緩沖區(qū),將訪問同一存儲陣列的所有訪問命令存儲在同一緩沖區(qū)內(nèi),并把每個(gè)緩沖區(qū)劃分為多個(gè)緩沖區(qū)間,對于每個(gè)緩沖區(qū)間,使其存儲的具有相同行號的訪問命令按順序執(zhí)行,在此期間便不必頻繁關(guān)閉、打開存儲陣列的當(dāng)前行,這樣不但可以兼顧連續(xù)訪問同一行的情況,也可以在出現(xiàn)交叉行訪問時(shí)先執(zhí)行同一行的訪問操作,從而不但提高了存儲器的訪問效率,而且節(jié)省了功耗。
[0172]需要說明的是,本發(fā)明裝置實(shí)施例中的各個(gè)模塊,可以按照實(shí)現(xiàn)功能與圖2所示的功能模塊進(jìn)行對應(yīng),具體可參照上述方法實(shí)施例的相關(guān)介紹,在此不再贅述。
[0173]需要說明的是,對于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
[0174]還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0175]對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于 本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
【權(quán)利要求】
1.一種存儲器的訪問方法,其特征在于,所述存儲器包括至少兩個(gè)存儲陣列,每個(gè)存儲陣列對應(yīng)分配一個(gè)緩沖區(qū),所述緩沖區(qū)中存儲了用于訪問對應(yīng)存儲陣列的訪問命令,所述訪問命令按照接收順序依次存儲于對應(yīng)緩沖區(qū)中、且存儲順序與對應(yīng)緩沖區(qū)中緩沖單元的排列順序相同,所述緩沖區(qū)被劃分為至少一個(gè)緩沖區(qū)間,所述方法包括: 對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū),從中選取一個(gè)緩沖區(qū)間,其中,選取緩沖區(qū)間中存儲有未執(zhí)行的訪問命令、且與其它緩沖區(qū)間相比為最早存儲訪問命令的緩沖區(qū)間,所述訪問命令中攜帶了所要訪問的存儲陣列的行地址; 遍歷所述選取緩沖區(qū)間中存儲的所有未執(zhí)行的訪問命令,依次獲取每個(gè)命令組,并將當(dāng)前獲取的命令組作為待執(zhí)行命令組,其中,所述命令組中的所有訪問命令攜帶了相同行地址; 按照預(yù)設(shè)規(guī)則將各個(gè)待執(zhí)行命令組中每個(gè)訪問命令的子命令,依次送入所述存儲器,以便所述存儲器執(zhí)行獲取的子命令,其中,所述待執(zhí)行命令組中每個(gè)訪問命令之間按獲取順序發(fā)送,所述待執(zhí)行命令組中第一個(gè)獲取的訪問命令被分解成執(zhí)行順序?yàn)轭A(yù)充電子命令、激 活子命令和列存取子命令的三個(gè)子命令,所述待執(zhí)行命令組中其它每個(gè)訪問命令均分解為列存取子命令。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述遍歷所述選取緩沖區(qū)間中存儲的所有未執(zhí)行的訪問命令,依次獲取每個(gè)命令組,包括: 按照所述選取緩沖區(qū)間中緩沖單元的排列順序,從所述選取緩沖區(qū)間中獲取第一個(gè)未執(zhí)行的攜帶了第一行地址的第一訪問命令,所述第一訪問命令存儲于所述選取緩沖區(qū)間中的第一緩沖單元中; 從所述第一緩沖單元后的所有緩沖單元中,依次獲取攜帶所述第一行地址的未執(zhí)行訪問命令,以獲取由攜帶所述第一行地址的所有訪問命令組成的第一命令組; 判斷所述選取緩沖區(qū)間中是否仍存在未執(zhí)行的訪問命令,如果是,則執(zhí)行按照所述選取緩沖區(qū)間中緩沖單元的排列順序從所述選取緩沖區(qū)間中獲取第一個(gè)未執(zhí)行的攜帶了第二行地址的第二訪問命令的步驟,以獲取由攜帶所述第二行地址的所有訪問命令組成的第二命令組,如果否,則繼續(xù)執(zhí)行所述對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū)從中選取一個(gè)緩沖區(qū)間的步驟。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述按照預(yù)設(shè)規(guī)則將各個(gè)待執(zhí)行命令組中每個(gè)訪問命令的子命令,依次送入所述存儲器,包括: 獲取每個(gè)緩沖區(qū)中未執(zhí)行訪問命令的數(shù)目,并將所述獲取的數(shù)目遞減排序,按照排序結(jié)果確定各個(gè)待執(zhí)行命令組之間的優(yōu)先級順序; 向所述存儲器發(fā)送第一命令的預(yù)充電子命令,所述第一命令為第一優(yōu)先級的待執(zhí)行命令組中的第一個(gè)未執(zhí)行訪問命令; 在所述第一命令的預(yù)充電子命令與所述第一命令的激活子命令之間的第一發(fā)送間隔時(shí)間內(nèi),向所述存儲器發(fā)送第二命令的預(yù)充電子命令,所述第二命令為第二優(yōu)先級的待執(zhí)行命令組中的訪問命令; 在所述第二命令的預(yù)充電子命令與所述第二命令的激活子命令之間的第二發(fā)送間隔時(shí)間內(nèi),若計(jì)時(shí)到達(dá)所述第一發(fā)送間隔時(shí)間,則向所述存儲器發(fā)送所述第一命令的激活子命令,在所述第一命令的激活子命令與所述第一命令的列存取子命令之間的第三發(fā)送間隔時(shí)間內(nèi),執(zhí)行第三命令的待執(zhí)行子命令,所述第三命令為在所述第一優(yōu)先級待執(zhí)行命令組后的所有待執(zhí)行命令組中滿足時(shí)序要求且優(yōu)先級最高的待執(zhí)行命令組,所述滿足時(shí)序要求為計(jì)時(shí)到達(dá)所述待執(zhí)行子命令與所述待執(zhí)行子命令之前子命令之間的發(fā)送時(shí)間間隔; 在所述第二命令的預(yù)充電子命令與所述第二命令的激活子命令之間的第二發(fā)送間隔時(shí)間內(nèi),若計(jì)時(shí)未到達(dá)所述第一發(fā)送間隔時(shí)間,則向所述存儲器發(fā)送第四命令的預(yù)充電子命令,所述第四命令為第三優(yōu)先級的待執(zhí)行命令組中的訪問命令; 其中,所述第一優(yōu)先級、所述第二優(yōu)先級和所述第三優(yōu)先級的優(yōu)先級別依次遞減; 按照上述規(guī)律繼續(xù)向所述存儲器發(fā)送當(dāng)前獲取的各個(gè)待執(zhí)行命令組中的其它子命令;或者,按照上述規(guī)律繼續(xù)向所述存儲器發(fā)送當(dāng)前獲取的各個(gè)待執(zhí)行命令組中的其它子命令,其中,每個(gè)待執(zhí)行命令組中的各個(gè)列存取子命令依次執(zhí)行、且每兩個(gè)列存取子命令之間滿足發(fā)送間隔時(shí)間。
4.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的方法,其特征在于,在所述對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū),從中選取一個(gè)緩沖區(qū)間前,所述方法還包括: 從協(xié)議總線接收訪問命令; 若所述訪問命令用于向所述存儲器寫入數(shù)據(jù),則為所述訪問命令和所要寫入的數(shù)據(jù)分別配置第一標(biāo)識,并將配置后的訪問命令發(fā)送至對應(yīng)的緩沖區(qū)中且將配置后的數(shù)據(jù)發(fā)送至數(shù)據(jù)傳輸模塊;在向所述存儲器發(fā)送所述訪問命令的列存取子命令時(shí),向所述數(shù)據(jù)傳輸模塊發(fā)送所述第一標(biāo)識 ,以使所述數(shù)據(jù)傳輸模塊根據(jù)所述第一標(biāo)識準(zhǔn)備所述所要寫入的數(shù)據(jù),將準(zhǔn)備好的數(shù)據(jù)發(fā)送至所述存儲器; 若所述訪問命令用于讀取所述存儲器中的數(shù)據(jù),則為所述訪問命令配置第二標(biāo)識,并將配置后的訪問命令發(fā)送至對應(yīng)的緩沖區(qū)中;在向所述存儲器發(fā)送所述訪問命令的列存取子命令后,利用所述數(shù)據(jù)傳輸模塊接收所述存儲器返回的數(shù)據(jù)并為所述返回的數(shù)據(jù)配置所述第二標(biāo)識;根據(jù)所述第二標(biāo)識將所述返回的數(shù)據(jù)按照所述訪問命令的接收順序發(fā)送至所述協(xié)議總線。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述將配置后的訪問命令發(fā)送至對應(yīng)的緩沖區(qū)中,包括: 對所述訪問命令進(jìn)行譯碼,以提取所述訪問命令中的存儲陣列地址,并根據(jù)所述存儲陣列地址,將所述訪問命令存儲于對應(yīng)分配的緩沖區(qū)中。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,每個(gè)緩沖區(qū)對應(yīng)分配一個(gè)第一寄存器,所述第一寄存器的每個(gè)存儲單元用于分別存儲對應(yīng)緩沖區(qū)中每個(gè)訪問命令的執(zhí)行狀態(tài),所述方法包括: 當(dāng)將所述訪問命令存儲在對應(yīng)緩沖區(qū)中時(shí),在所述緩沖區(qū)對應(yīng)的第一寄存器中將所述訪問命令標(biāo)識為未執(zhí)行狀態(tài); 當(dāng)所述訪問命令的所有子命令被發(fā)送至所述存儲器后,在所述緩沖區(qū)對應(yīng)的第一寄存器中將所述訪問命令標(biāo)識為已執(zhí)行狀態(tài)。
7.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的方法,其特征在于,每個(gè)緩沖區(qū)對應(yīng)分配一個(gè)第二寄存器;對于從所述選取緩沖區(qū)間中獲取的每個(gè)訪問命令,按照下述方法分解獲取的訪問命令: 將獲取訪問命令攜帶的行地址與對應(yīng)第二寄存器中存儲的行地址進(jìn)行比較,所述對應(yīng)第二寄存器中存儲的行地址為上次獲取的訪問命令的行地址; 如果比較結(jié)果不同,則利用所述獲取訪問命令攜帶的行地址替換所述第二寄存器中存儲的行地址,并將所述獲取訪問命令分解為預(yù)充電子命令、激活子命令和列存取子命令;如果比較結(jié)果相同,則利用所述獲取訪問命令攜帶的行地址替換所述第二寄存器中存儲的行地址,并將所述獲取訪問命令分解為列存取子命令。
8.一種存儲器的訪問裝置,其特征在于,所述存儲器包括至少兩個(gè)存儲陣列,每個(gè)存儲陣列對應(yīng)分配一個(gè)緩沖區(qū),所述緩沖區(qū)中存儲了用于訪問對應(yīng)存儲陣列的訪問命令,所述訪問命令按照接收順序依次存儲于對應(yīng)緩沖區(qū)中、且存儲順序與對應(yīng)緩沖區(qū)中緩沖單元的排列順序相同,所述緩沖區(qū)被劃分為至少一個(gè)緩沖區(qū)間,所述裝置包括: 緩沖區(qū)選取模塊,用于對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū),從中選取一個(gè)緩沖區(qū)間,其中,選取緩沖區(qū)間中存儲有未執(zhí)行的訪問命令、且與其它緩沖區(qū)間相比為最早存儲訪問命令的緩沖區(qū)間,所述訪問命令中攜帶了所要訪問的存儲陣列的行地址; 命令組獲取模塊,用于遍歷所述選取緩沖區(qū)間中存儲的所有未執(zhí)行的訪問命令,依次獲取每個(gè)命令組,并將當(dāng)前獲取的命令組作為待執(zhí)行命令組,其中,所述命令組中的所有訪問命令攜帶了相同行地址; 子命令調(diào)度模塊,用于按照預(yù)設(shè)規(guī)則將各個(gè)待執(zhí)行命令組中每個(gè)訪問命令的子命令,依次送入所述存儲器,以便所述存儲器執(zhí)行獲取的子命令,其中,所述待執(zhí)行命令組中每個(gè)訪問命令之間按獲取順序發(fā)送,所述待執(zhí)行命令組中第一個(gè)獲取的訪問命令被分解成執(zhí)行順序?yàn)轭A(yù)充電子命令、激活子命令和列存取子命令的三個(gè)子命令,所述待執(zhí)行命令組中其它每個(gè)訪問命令均分解為列存取子命令。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述命令組獲取模塊,包括: 第一獲取子模塊,用于按照所述選取緩沖區(qū)間中緩沖單元的排列順序,從所述選取緩沖區(qū)間中獲取第一個(gè)未執(zhí)行的攜帶了第一行地址的第一訪問命令,所述第一訪問命令存儲于所述選取緩沖區(qū)間中的第一緩沖單元中; 第二獲取子模塊,用于從所述第一緩沖單元后的所有緩沖單元中,依次獲取攜帶所述第一行地址的未執(zhí)行訪問命令,以獲取由攜帶所述第一行地址的所有訪問命令組成的第一命令組; 判斷子模塊,用于判斷所述選取緩沖區(qū)間中是否仍存在未執(zhí)行的訪問命令; 繼續(xù)獲取模塊,用于當(dāng)所述判斷子模塊判斷得到的所述選取緩沖區(qū)間中仍存在未執(zhí)行的訪問命令時(shí),執(zhí)行按照所述選取緩沖區(qū)間中緩沖單元的排列順序從所述選取緩沖區(qū)間中獲取第一個(gè)未執(zhí)行的攜帶了第二行地址的第二訪問命令的步驟,以獲取由攜帶所述第二行地址的所有訪問命令組成的第二命令組,如果否,則繼續(xù)利用所述緩沖區(qū)選取模塊執(zhí)行所述對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū),從中選取一個(gè)緩沖區(qū)間的步驟。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述子命令調(diào)度模塊,包括: 排序子模塊,用于獲取每個(gè)緩沖區(qū)中未執(zhí)行訪問命令的數(shù)目,并將所述獲取的數(shù)目遞減排序,按照排序結(jié)果確定各個(gè)待執(zhí)行命令組之間的優(yōu)先級順序; 第一發(fā)送子模塊,用于向所述存儲器發(fā)送第一命令的預(yù)充電子命令,所述第一命令為第一優(yōu)先級的待執(zhí)行命令組中的第一個(gè)未執(zhí)行訪問命令; 第二發(fā)送子模塊,用于在所述第一命令的預(yù)充電子命令與所述第一命令的激活子命令之間的第一發(fā)送間隔時(shí)間內(nèi),向所述存儲器發(fā)送第二命令的預(yù)充電子命令,所述第二命令為第二優(yōu)先級的待執(zhí)行命令組中的訪問命令; 第三發(fā)送子模塊,用于在所述第二命令的預(yù)充電子命令與所述第二命令的激活子命令之間的第二發(fā)送間隔時(shí)間內(nèi),若計(jì)時(shí)到達(dá)所述第一發(fā)送間隔時(shí)間,則向所述存儲器發(fā)送所述第一命令的激活子命令,在所述第一命令的激活子命令與所述第一命令的列存取子命令之間的第三發(fā)送間隔時(shí)間內(nèi),執(zhí)行第三命令的待執(zhí)行子命令,所述第三命令為在所述第一優(yōu)先級待執(zhí)行命令組后的所有待執(zhí)行命令組中滿足時(shí)序要求且優(yōu)先級最高的待執(zhí)行命令組,所述滿足時(shí)序要求為計(jì)時(shí)到達(dá)所述待執(zhí)行子命令與所述待執(zhí)行子命令之前子命令之間的發(fā)送時(shí)間間隔; 第四發(fā)送子模塊,用于在所述第二命令的預(yù)充電子命令與所述第二命令的激活子命令之間的第二發(fā)送間隔時(shí)間內(nèi),若計(jì)時(shí)未到達(dá)所述第一發(fā)送間隔時(shí)間,則向所述存儲器發(fā)送第四命令的預(yù)充電子命令,所述第四命令為第三優(yōu)先級的待執(zhí)行命令組中的訪問命令;其中,所述第一優(yōu)先級、所述第二優(yōu)先級和所述第三優(yōu)先級的優(yōu)先級別依次遞減; 繼續(xù)發(fā)送子模塊,用于按照上述規(guī)律繼續(xù)向所述存儲器發(fā)送當(dāng)前獲取的各個(gè)待執(zhí)行命令組中的其它子命令;或者,按照上述規(guī)律繼續(xù)向所述存儲器發(fā)送當(dāng)前獲取的各個(gè)待執(zhí)行命令組中的其它子命令,其中,每個(gè)待執(zhí)行命令組中的各個(gè)列存取子命令依次執(zhí)行、且每兩個(gè)列存取子命令之間滿足發(fā)送間隔時(shí)間。
11.根據(jù)權(quán)利 要求8至10任一項(xiàng)所述的裝置,其特征在于,所述裝置還包括: 命令接收模塊,用于在所述緩沖區(qū)選取模塊對于每個(gè)存儲有未執(zhí)行訪問命令的緩沖區(qū),從中選取一個(gè)緩沖區(qū)間前,從協(xié)議總線接收訪問命令; 第一發(fā)送模塊,用于若所述命令接收模塊接收的訪問命令用于向所述存儲器寫入數(shù)據(jù),則為所述訪問命令和所要寫入的數(shù)據(jù)分別配置第一標(biāo)識,并將配置后的訪問命令發(fā)送至對應(yīng)的緩沖區(qū)中且將配置后的數(shù)據(jù)發(fā)送至數(shù)據(jù)傳輸模塊; 數(shù)據(jù)發(fā)送模塊,用于在所述子命令調(diào)度模塊向所述存儲器發(fā)送所述命令接收模塊接收的訪問命令的列存取子命令時(shí),向所述數(shù)據(jù)傳輸模塊發(fā)送所述第一標(biāo)識; 所述數(shù)據(jù)傳輸模塊,用于根據(jù)所述數(shù)據(jù)發(fā)送模塊發(fā)送的第一標(biāo)識準(zhǔn)備所述所要寫入的數(shù)據(jù),將準(zhǔn)備好的數(shù)據(jù)發(fā)送至所述存儲器; 第二發(fā)送模塊,用于若所述子命令接收模塊接收的訪問命令用于讀取所述存儲器中的數(shù)據(jù),則為所述訪問命令配置第二標(biāo)識,并將配置后的訪問命令發(fā)送至對應(yīng)的緩沖區(qū)中;所述數(shù)據(jù)傳輸模塊,用于在所述子命令調(diào)度模塊向所述存儲器發(fā)送所述命令接收模塊接收的訪問命令的列存取子命令后,接收所述存儲器返回的數(shù)據(jù)并為所述返回的數(shù)據(jù)配置所述第二標(biāo)識,根據(jù)所述第二標(biāo)識將所述返回的數(shù)據(jù)按照所述訪問命令的接收順序發(fā)送至所述協(xié)議總線。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述第一發(fā)送模塊或所述第二發(fā)送模塊,包括: 譯碼子模塊,用于對所述配置后的訪問命令進(jìn)行譯碼,以提取所述訪問命令中的存儲陣列地址; 發(fā)送子模塊,用于根據(jù)所述存儲陣列地址,將所述訪問命令存儲于對應(yīng)分配的緩沖區(qū)中。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,每個(gè)緩沖區(qū)對應(yīng)分配一個(gè)第一寄存器,所述第一寄存器的每個(gè)存儲單元用于分別存儲對應(yīng)緩沖區(qū)中每個(gè)訪問命令的執(zhí)行狀態(tài),所述裝置包括: 第一狀態(tài)標(biāo)記模塊,用于當(dāng)所述發(fā)送子模塊將所述訪問命令存儲在對應(yīng)緩沖區(qū)中時(shí),在所述緩沖區(qū)對應(yīng)的第一寄存器中將所述訪問命令標(biāo)識為未執(zhí)行狀態(tài); 第二狀態(tài)標(biāo)記模塊,用于當(dāng)所述訪問命令的所有子命令被發(fā)送至所述存儲器后,在所述緩沖區(qū)對應(yīng)的第一寄存器中將所述訪問命令標(biāo)識為已執(zhí)行狀態(tài)。
14.根據(jù)權(quán)利要求8至10任一項(xiàng)所述的裝置,其特征在于,每個(gè)緩沖區(qū)對應(yīng)分配一個(gè)第二寄存器;所述裝置還包括:命令分解模塊,用于對于從所述選取緩沖區(qū)間中獲取的每個(gè)訪問命令,按照下述方法分解獲取的訪問命令: 將獲取訪問命令攜帶的行地址與對應(yīng)第二寄存器中存儲的行地址進(jìn)行比較,所述對應(yīng)第二寄存器中存儲的行地址為上次獲取的訪問命令的行地址; 如果比較結(jié)果不同,則利用所述獲取訪問命令攜帶的行地址替換所述第二寄存器中存儲的行地址,并將所述獲取訪問命令分解為預(yù)充電子命令、激活子命令和列存取子命令;如果比較結(jié)果相同,則利用所述獲取訪問命令攜帶的行地址替換所述第二寄存器中存儲的行地址,并將所述獲取訪問命令分解為列存取子命令。
【文檔編號】G06F12/08GK103927268SQ201410138487
【公開日】2014年7月16日 申請日期:2014年4月8日 優(yōu)先權(quán)日:2014年4月8日
【發(fā)明者】陳嵐, 王力玉, 郝曉冉 申請人:中國科學(xué)院微電子研究所