內(nèi)存訪問方法和內(nèi)存控制器的制造方法
【專利摘要】本發(fā)明提供一種內(nèi)存訪問方法和內(nèi)存控制器,通過根據(jù)應(yīng)用程序發(fā)送的訪存請(qǐng)求,對(duì)訪存請(qǐng)求指示的內(nèi)存顆粒組所包括的至少一個(gè)內(nèi)存顆粒進(jìn)行訪問,由于內(nèi)存顆粒組中的內(nèi)存顆粒是應(yīng)用程序根據(jù)內(nèi)存訪問帶寬需求確定的,不同應(yīng)用程序的內(nèi)存訪問帶寬需求不同,因而不同的應(yīng)用程序發(fā)送的訪存請(qǐng)求指示不同的至少一個(gè)內(nèi)存顆粒,從而不同的應(yīng)用程序可對(duì)不同內(nèi)存顆粒分別進(jìn)行訪問,使得各個(gè)內(nèi)存顆粒中的行緩沖存儲(chǔ)具有不同頁地址的頁,避免了在所有的內(nèi)存顆粒中均出現(xiàn)頁沖突,降低了頁沖突出現(xiàn)的可能性,提高了內(nèi)存訪問的效率。
【專利說明】?jī)?nèi)存訪問方法和內(nèi)存控制器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù),尤其涉及一種內(nèi)存訪問方法和內(nèi)存控制器。
【背景技術(shù)】
[0002]內(nèi)存系統(tǒng)包括內(nèi)存控制器和內(nèi)存芯片。內(nèi)存芯片包括多個(gè)列(Rank),每個(gè)列包括多個(gè)內(nèi)存顆粒,內(nèi)存顆粒由多個(gè)頁和頁對(duì)應(yīng)的行緩沖構(gòu)成,每個(gè)頁包括多個(gè)存儲(chǔ)單元。內(nèi)存控制器根據(jù)應(yīng)用程序發(fā)送的訪存請(qǐng)求,對(duì)訪存請(qǐng)求所指示的指定列所包括的全部的內(nèi)存顆粒進(jìn)行訪問。
[0003]內(nèi)存控制器對(duì)內(nèi)存顆粒進(jìn)行訪問時(shí),若所需訪問的內(nèi)存顆粒中的頁數(shù)據(jù)已存在于該頁對(duì)應(yīng)的行緩沖內(nèi),即頁命中,則可直接對(duì)行緩沖內(nèi)的數(shù)據(jù)進(jìn)行讀數(shù)據(jù)或?qū)憯?shù)據(jù)操作,若該頁的數(shù)據(jù)未存在于行緩沖內(nèi),即頁沖突,則需要對(duì)行緩沖內(nèi)的數(shù)據(jù)進(jìn)行關(guān)閉頁操作,再對(duì)該頁的數(shù)據(jù)進(jìn)行打開頁操作之后,才能夠?qū)π芯彌_內(nèi)的數(shù)據(jù)進(jìn)行讀數(shù)據(jù)或?qū)憯?shù)據(jù)操作,也就是說相比較于頁命中,頁沖突時(shí)的內(nèi)存訪問效率較低。
[0004]現(xiàn)有的內(nèi)存訪問方法中,由于內(nèi)存控制器在對(duì)訪存請(qǐng)求所指示的指定列中全部的內(nèi)存顆粒進(jìn)行訪問時(shí),對(duì)各個(gè)內(nèi)存顆粒中具有相同頁地址的頁進(jìn)行同步的打開頁和關(guān)閉頁的操作,使得各個(gè)內(nèi)存顆粒中的行緩沖存儲(chǔ)了具有相同頁地址的頁,造成當(dāng)在一個(gè)內(nèi)存顆粒中出現(xiàn)頁沖突時(shí),必然在該列中所有的內(nèi)存顆粒中均出現(xiàn)頁沖突,提高了頁沖突出現(xiàn)的可能性,降低了內(nèi)存訪問的效率。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種內(nèi)存訪問方法和內(nèi)存控制器,用于解決現(xiàn)有技術(shù)的內(nèi)存訪問過程中頁沖突出現(xiàn)的可能性較高,內(nèi)存訪問的效率較低的技術(shù)問題。
[0006]第一方面是提供一種內(nèi)存訪問方法,包括:
[0007]接收應(yīng)用程序發(fā)送的第一訪存請(qǐng)求;所述第一訪存請(qǐng)求用于指示所述應(yīng)用程序所需訪問的內(nèi)存顆粒組;所述內(nèi)存顆粒組包括由所述應(yīng)用程序?qū)υL問帶寬的需求確定的至少一個(gè)內(nèi)存顆粒;
[0008]根據(jù)所述第一訪存請(qǐng)求,對(duì)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問。
[0009]在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述第一訪存請(qǐng)求,對(duì)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問,包括:
[0010]從多個(gè)訪存隊(duì)列中,選擇與所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組的組合形式匹配的目標(biāo)訪存隊(duì)列,將所述第一訪存請(qǐng)求存儲(chǔ)到所述目標(biāo)訪存隊(duì)列中;其中,不同訪存隊(duì)列存儲(chǔ)的訪存請(qǐng)求指示不同組合形式的內(nèi)存顆粒組,所述內(nèi)存顆粒組的組合形式由所述內(nèi)存顆粒組包含的內(nèi)存顆粒的地址和所述內(nèi)存顆粒組包含的內(nèi)存顆粒的個(gè)數(shù)確定;
[0011]當(dāng)輪詢調(diào)度到所述目標(biāo)訪存隊(duì)列中的所述第一訪存請(qǐng)求時(shí),根據(jù)所述第一訪存請(qǐng)求,對(duì)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問。
[0012]結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述第一訪存請(qǐng)求包括:所述至少一個(gè)內(nèi)存顆粒的地址和讀寫屬性;所述讀寫屬性用于指示所述應(yīng)用程序?qū)λ鰞?nèi)存顆粒組的訪問屬性為讀操作或?qū)懖僮?;若所述訪問屬性為寫操作,所述第一訪存請(qǐng)求還包括待寫的數(shù)據(jù)。
[0013]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述第一訪存請(qǐng)求還包括:目標(biāo)存儲(chǔ)單元的地址;所述目標(biāo)存儲(chǔ)單元為所述應(yīng)用程序所需訪問的所述至少一個(gè)內(nèi)存顆粒中的存儲(chǔ)單元。
[0014]結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述當(dāng)輪詢調(diào)度到所述目標(biāo)訪存隊(duì)列中的所述第一訪存請(qǐng)求時(shí),根據(jù)所述第一訪存請(qǐng)求,對(duì)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問,包括:
[0015]當(dāng)輪詢調(diào)度到所述目標(biāo)訪存隊(duì)列中的所述第一訪存請(qǐng)求時(shí),根據(jù)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒,判斷每個(gè)所述內(nèi)存顆粒中的所述目標(biāo)存儲(chǔ)單元所在頁對(duì)應(yīng)的行緩沖內(nèi),是否存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù);
[0016]若所述行緩沖內(nèi)未存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù),將所述行緩沖內(nèi)的數(shù)據(jù)移除之后,將所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù)存儲(chǔ)到所述行緩沖內(nèi),對(duì)所述行緩沖內(nèi)存儲(chǔ)的所述目標(biāo)存儲(chǔ)單元的數(shù)據(jù)進(jìn)行讀操作或?qū)懖僮鳎?br>
[0017]若所述行緩沖內(nèi)存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù),則直接對(duì)所述行緩沖內(nèi)存儲(chǔ)的所述目標(biāo)存儲(chǔ)單元的數(shù)據(jù)進(jìn)行讀操作或?qū)懖僮鳌?br>
[0018]第二方面是提供一種內(nèi)存控制器,包括:
[0019]接收模塊,用于接收應(yīng)用程序發(fā)送的第一訪存請(qǐng)求;所述第一訪存請(qǐng)求用于指示所述應(yīng)用程序所需訪問的內(nèi)存顆粒組;所述內(nèi)存顆粒組包括由所述應(yīng)用程序?qū)υL問帶寬的需求確定的至少一個(gè)內(nèi)存顆粒;
[0020]訪問模塊,根據(jù)所述第一訪存請(qǐng)求,對(duì)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問。
[0021]在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述訪問模塊包括:
[0022]選擇單元,用于從多個(gè)訪存隊(duì)列中,選擇與所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組的組合形式匹配的目標(biāo)訪存隊(duì)列,將所述第一訪存請(qǐng)求存儲(chǔ)到所述目標(biāo)訪存隊(duì)列中;其中,不同訪存隊(duì)列存儲(chǔ)的訪存請(qǐng)求指示不同組合形式的內(nèi)存顆粒組,所述內(nèi)存顆粒組的組合形式由所述內(nèi)存顆粒組包含的內(nèi)存顆粒的地址和所述內(nèi)存顆粒組包含的內(nèi)存顆粒的個(gè)數(shù)確定;
[0023]訪問單元,用于當(dāng)輪詢調(diào)度到所述目標(biāo)訪存隊(duì)列中的所述第一訪存請(qǐng)求時(shí),根據(jù)所述第一訪存請(qǐng)求,對(duì)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問。
[0024]結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述訪存請(qǐng)求包括:所述第一訪存請(qǐng)求包括:所述至少一個(gè)內(nèi)存顆粒的地址和讀寫屬性;所述讀寫屬性用于指示所述應(yīng)用程序?qū)λ鰞?nèi)存顆粒組的訪問屬性為讀操作或?qū)懖僮?;若所述訪問屬性為寫操作,所述第一訪存請(qǐng)求還包括待寫的數(shù)據(jù)。
[0025]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述第一訪存請(qǐng)求還包括:目標(biāo)存儲(chǔ)單元的地址;所述目標(biāo)存儲(chǔ)單元為所述應(yīng)用程序所需訪問的所述至少一個(gè)內(nèi)存顆粒中的存儲(chǔ)單元。
[0026]結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式,在第二方面的第四種可能的實(shí)現(xiàn)方式中,所述訪問單元包括:
[0027]判斷子單元,用于當(dāng)輪詢調(diào)度到所述目標(biāo)訪存隊(duì)列中的所述第一訪存請(qǐng)求時(shí),根據(jù)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒,判斷每個(gè)所述內(nèi)存顆粒中的所述目標(biāo)存儲(chǔ)單元所在頁對(duì)應(yīng)的行緩沖內(nèi),是否存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù);
[0028]第一讀寫子單元,用于若所述行緩沖內(nèi)未存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù),將所述行緩沖內(nèi)的數(shù)據(jù)移除之后,將所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù)存儲(chǔ)到所述行緩沖內(nèi),對(duì)所述行緩沖內(nèi)存儲(chǔ)的所述目標(biāo)存儲(chǔ)單元的數(shù)據(jù)進(jìn)行讀操作或?qū)懖僮鳎?br>
[0029]第二讀寫子單元,用于若所述行緩沖內(nèi)存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù),則直接對(duì)所述行緩沖內(nèi)存儲(chǔ)的所述目標(biāo)存儲(chǔ)單元的數(shù)據(jù)進(jìn)行讀操作或?qū)懖僮鳌?br>
[0030]本發(fā)明實(shí)施例提供的內(nèi)存訪問方法和內(nèi)存控制器,通過根據(jù)應(yīng)用程序發(fā)送的訪存請(qǐng)求,對(duì)訪存請(qǐng)求指示的內(nèi)存顆粒組所包括的至少一個(gè)內(nèi)存顆粒進(jìn)行訪問,由于內(nèi)存顆粒組中的內(nèi)存顆粒是應(yīng)用程序根據(jù)內(nèi)存訪問帶寬需求確定的,不同應(yīng)用程序的內(nèi)存訪問帶寬需求不同,因而不同的應(yīng)用程序發(fā)送的訪存請(qǐng)求指示不同的至少一個(gè)內(nèi)存顆粒,從而不同的應(yīng)用程序?qū)Σ煌瑑?nèi)存顆粒分別進(jìn)行訪問,使得各個(gè)內(nèi)存顆粒中的行緩沖可存儲(chǔ)具有不同頁地址的頁,避免了在該列中所有的內(nèi)存顆粒中均出現(xiàn)頁沖突,降低了頁沖突出現(xiàn)的可能性,提高了內(nèi)存訪問的效率。
【專利附圖】
【附圖說明】
[0031]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0032]圖1為本發(fā)明一實(shí)施例提供的內(nèi)存訪問方法的流程示意圖;
[0033]圖2為本發(fā)明另一實(shí)施例提供的內(nèi)存訪問方法的流程示意圖;
[0034]圖3為本發(fā)明一實(shí)施例提供的內(nèi)存控制器的結(jié)構(gòu)示意圖;
[0035]圖4為本發(fā)明另一實(shí)施例提供的內(nèi)存控制器的結(jié)構(gòu)示意圖;
[0036]圖5為一種應(yīng)用內(nèi)存控制器的多媒體系統(tǒng)結(jié)構(gòu)不意圖;
[0037]圖6為本發(fā)明又一實(shí)施例提供的內(nèi)存控制器的結(jié)構(gòu)示意圖;
[0038]圖7為一種內(nèi)存系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0039]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0040]圖1為本發(fā)明一實(shí)施例提供的內(nèi)存訪問方法的流程示意圖,如圖1所示,本實(shí)施例可以包括:
[0041]101、接收應(yīng)用程序發(fā)送的第一訪存請(qǐng)求。
[0042]其中,第一訪存請(qǐng)求用于指示所述應(yīng)用程序所需訪問的內(nèi)存顆粒組;所述內(nèi)存顆粒組包括由所述應(yīng)用程序?qū)υL問帶寬的需求確定的至少一個(gè)內(nèi)存顆粒,包括:讀寫屬性、內(nèi)存空間數(shù)量和至少一個(gè)內(nèi)存顆粒的地址。內(nèi)存空間數(shù)量為應(yīng)用程序所申請(qǐng)?jiān)L問的內(nèi)存空間的大小。所述讀寫屬性用于指示所述應(yīng)用程序?qū)λ鰞?nèi)存顆粒組的訪問屬性為讀操作或?qū)懖僮?;若所述訪問屬性為寫操作,所述第一訪存請(qǐng)求還包括待寫的數(shù)據(jù)。
[0043]102、根據(jù)第一訪存請(qǐng)求,對(duì)第一訪存請(qǐng)求指示的內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問。
[0044]可選的,從多個(gè)訪存隊(duì)列中,選擇與所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組的組合形式匹配的目標(biāo)訪存隊(duì)列,將所述第一訪存請(qǐng)求存儲(chǔ)到所述目標(biāo)訪存隊(duì)列中,當(dāng)輪詢調(diào)度到所述目標(biāo)訪存隊(duì)列中的所述第一訪存請(qǐng)求時(shí),根據(jù)所述第一訪存請(qǐng)求,對(duì)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問。其中,不同訪存隊(duì)列存儲(chǔ)的訪存請(qǐng)求指示不同組合形式的內(nèi)存顆粒組,內(nèi)存顆粒組的組合形式由內(nèi)存顆粒組包含的內(nèi)存顆粒的地址和內(nèi)存顆粒組包含的內(nèi)存顆粒的個(gè)數(shù)確定。
[0045]本實(shí)施例中,通過根據(jù)應(yīng)用程序發(fā)送的訪存請(qǐng)求,對(duì)訪存請(qǐng)求指示的內(nèi)存顆粒組所包括的至少一個(gè)內(nèi)存顆粒進(jìn)行訪問,由于內(nèi)存顆粒組中的內(nèi)存顆粒是應(yīng)用程序根據(jù)內(nèi)存訪問帶寬需求確定的,不同應(yīng)用程序的內(nèi)存訪問帶寬需求不同,因而不同的應(yīng)用程序發(fā)送的訪存請(qǐng)求可指示不同的至少一個(gè)內(nèi)存顆粒,從而不同的應(yīng)用程序可對(duì)不同內(nèi)存顆粒分別進(jìn)行訪問,使得各個(gè)內(nèi)存顆粒中的行緩沖可存儲(chǔ)具有不同頁地址的頁,避免了在該列中所有的內(nèi)存顆粒中均出現(xiàn)頁沖突,降低了頁沖突出現(xiàn)的可能性,提高了內(nèi)存訪問的效率。
[0046]圖2為本發(fā)明另一實(shí)施例提供的內(nèi)存訪問方法的流程示意圖,如圖2所示,本實(shí)施例可以包括:
[0047]201、接收應(yīng)用程序發(fā)送的第一訪存請(qǐng)求。
[0048]其中,第一訪存請(qǐng)求包括:所述至少一個(gè)內(nèi)存顆粒的地址、目標(biāo)存儲(chǔ)單元的地址和讀寫屬性;所述目標(biāo)存儲(chǔ)單元為所述應(yīng)用程序所需訪問的內(nèi)存顆粒組中的存儲(chǔ)單元;所述讀寫屬性用于指示所述應(yīng)用程序的訪問屬性,為讀數(shù)據(jù)或?qū)憯?shù)據(jù);若所述讀寫屬性為寫數(shù)據(jù),所述第一訪存請(qǐng)求還包括待寫的數(shù)據(jù)。
[0049]可選的,應(yīng)用程序根據(jù)需要的內(nèi)存訪問帶寬確定第一訪存請(qǐng)求指示的內(nèi)存顆粒組中至少一個(gè)內(nèi)存顆粒,或者預(yù)先為應(yīng)用程序配置第一訪存請(qǐng)求中的至少一個(gè)內(nèi)存顆粒。
[0050]例如:若應(yīng)用程序所需要的內(nèi)存訪問帶寬較大,訪存延遲要求較高,第一訪存請(qǐng)求中的內(nèi)存顆??蔀槎鄠€(gè);若系統(tǒng)中的多個(gè)應(yīng)用程序均要求較大的內(nèi)存訪問帶寬,則為多個(gè)應(yīng)用程序配置不同的至少一個(gè)內(nèi)存顆粒,從而保證每個(gè)應(yīng)用程序的內(nèi)存訪問帶寬穩(wěn)定;若應(yīng)用程序的訪存特性較差,則為應(yīng)用程序配置獨(dú)立的內(nèi)存顆粒,從而避免該應(yīng)用程序影響內(nèi)存系統(tǒng)的整體性能。
[0051]需要說明的是,內(nèi)存顆粒的寬度一般為16位,一次訪存請(qǐng)求可訪問內(nèi)存顆粒中8X16位的內(nèi)存空間。若訪存請(qǐng)求中的內(nèi)存顆粒數(shù)為4,則一次訪存請(qǐng)求可訪問4X8X16位的內(nèi)存空間,從而增大內(nèi)存訪問帶寬。
[0052]另外需要說明的是,目標(biāo)存儲(chǔ)單元的地址可為所需訪問的全部存儲(chǔ)單元的地址,還可為所需訪問的連續(xù)的存儲(chǔ)單元中的起始存儲(chǔ)單元的地址。
[0053]202、根據(jù)第一訪存請(qǐng)求中的至少一個(gè)內(nèi)存顆粒的地址,選擇與第一訪存請(qǐng)求指示的顆粒組對(duì)應(yīng)的目標(biāo)隊(duì)列。
[0054]可選的,各個(gè)用于緩存訪存請(qǐng)求的隊(duì)列對(duì)應(yīng)不同的至少一個(gè)內(nèi)存顆粒,根據(jù)第一訪存請(qǐng)求中的至少一個(gè)內(nèi)存顆粒的地址,選擇與第一訪存請(qǐng)求指示的至少一個(gè)內(nèi)存顆粒對(duì)應(yīng)的目標(biāo)隊(duì)列。若與第一訪存請(qǐng)求指示的至少一個(gè)內(nèi)存顆粒對(duì)應(yīng)的隊(duì)列為多個(gè),可從中任選一個(gè)作為目標(biāo)隊(duì)列。
[0055]例如:第一隊(duì)列用于緩存訪問第一內(nèi)存顆粒、第二內(nèi)存顆粒、第三內(nèi)存顆粒和第四內(nèi)存顆粒中至少一個(gè)的訪存請(qǐng)求;第二隊(duì)列用于緩存訪問第二內(nèi)存顆粒的訪存請(qǐng)求;第三隊(duì)列用于緩存訪問第三內(nèi)存顆粒和第四內(nèi)存顆粒中至少一個(gè)的訪存請(qǐng)求;第四隊(duì)列用于緩存訪問第四內(nèi)存顆粒的訪存請(qǐng)求。若訪存請(qǐng)求為訪問第一內(nèi)存顆粒,則可將第一隊(duì)列作為目標(biāo)隊(duì)列;若訪存請(qǐng)求為訪問第四內(nèi)存顆粒,則可從第一隊(duì)列、第三隊(duì)列和第四隊(duì)列中任選一個(gè)作為目標(biāo)隊(duì)列。
[0056]203、將所述第一訪存請(qǐng)求緩存到目標(biāo)隊(duì)列中。
[0057]204、執(zhí)行目標(biāo)隊(duì)列中的第一訪存請(qǐng)求,同時(shí)訪問第一訪存請(qǐng)求所指示的顆粒組中的至少一個(gè)內(nèi)存顆粒。
[0058]可選的,當(dāng)多個(gè)隊(duì)列中均緩存有訪存請(qǐng)求時(shí),可采用輪轉(zhuǎn)調(diào)度方法,執(zhí)行各個(gè)隊(duì)列中的訪存請(qǐng)求。若內(nèi)存系統(tǒng)為多通道模式時(shí),可并行訪問第一訪存請(qǐng)求所指示的至少一個(gè)內(nèi)存顆粒,也就是說,同時(shí)訪問內(nèi)存顆粒組中的全部?jī)?nèi)存顆粒。
[0059]205、判斷內(nèi)存顆粒是否頁沖突,若是則執(zhí)行206,否則執(zhí)行207。
[0060]可選的,判斷內(nèi)存顆粒中的目標(biāo)存儲(chǔ)單元所在頁對(duì)應(yīng)的行緩沖內(nèi)是否存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù),若是,則頁沖突,執(zhí)行206,否則為頁命中,執(zhí)行207。
[0061]206、若頁沖突,將所述行緩沖進(jìn)行頁關(guān)閉操作后,對(duì)所述目標(biāo)存儲(chǔ)單元所在頁進(jìn)行頁打開操作,以對(duì)目標(biāo)存儲(chǔ)單元的數(shù)據(jù)進(jìn)行讀數(shù)據(jù)或?qū)憯?shù)據(jù)。
[0062]可選的,若所述行緩沖內(nèi)未存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù),即頁沖突,將所述行緩沖內(nèi)的數(shù)據(jù)移除之后,將所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù)存儲(chǔ)到所述行緩沖內(nèi),對(duì)所述行緩沖內(nèi)存儲(chǔ)的所述目標(biāo)存儲(chǔ)單元的數(shù)據(jù)進(jìn)行讀數(shù)據(jù)或?qū)憯?shù)據(jù)。
[0063]207、若頁命中,則直接對(duì)所述行緩沖內(nèi)存儲(chǔ)的所述目標(biāo)存儲(chǔ)單元的數(shù)據(jù)進(jìn)行讀數(shù)據(jù)或?qū)憯?shù)據(jù)。
[0064]可選的,若所述行緩沖內(nèi)存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù),則直接對(duì)所述行緩沖內(nèi)存儲(chǔ)的所述目標(biāo)存儲(chǔ)單元的數(shù)據(jù)進(jìn)行讀數(shù)據(jù)或?qū)憯?shù)據(jù)。
[0065]208、獲取訪存結(jié)果。
[0066]其中,若第一訪存請(qǐng)求中的讀寫屬性為讀數(shù)據(jù),訪存結(jié)果為讀取的數(shù)據(jù);若第一訪存請(qǐng)求中的讀寫屬性為寫數(shù)據(jù),訪存結(jié)果為寫數(shù)據(jù)確認(rèn)消息。
[0067]可選的,若從至少一個(gè)內(nèi)存顆粒同時(shí)獲取訪存結(jié)果時(shí),可按照輪轉(zhuǎn)調(diào)度方法,每個(gè)時(shí)鐘周期從一個(gè)內(nèi)存顆粒獲取訪存結(jié)果。
[0068]本實(shí)施例中,通過根據(jù)應(yīng)用程序發(fā)送的訪存請(qǐng)求,對(duì)訪存請(qǐng)求指示的內(nèi)存顆粒組所包括的至少一個(gè)內(nèi)存顆粒進(jìn)行訪問,由于內(nèi)存顆粒組中的內(nèi)存顆粒是應(yīng)用程序根據(jù)內(nèi)存訪問帶寬需求確定的,不同應(yīng)用程序的內(nèi)存訪問帶寬需求不同,因而不同的應(yīng)用程序發(fā)送的訪存請(qǐng)求可指示不同的至少一個(gè)內(nèi)存顆粒,從而不同的應(yīng)用程序可對(duì)不同內(nèi)存顆粒分別進(jìn)行訪問,使得各個(gè)內(nèi)存顆粒中的行緩沖可存儲(chǔ)具有不同頁地址的頁,避免了在該列中所有的內(nèi)存顆粒中均出現(xiàn)頁沖突,降低了頁沖突出現(xiàn)的可能性,提高了內(nèi)存訪問的效率。
[0069]圖3為本發(fā)明一實(shí)施例提供的內(nèi)存控制器的結(jié)構(gòu)示意圖,如圖3所示,本實(shí)施例中的內(nèi)存控制器可以包括:接收模塊31和訪問模塊32。
[0070]接收模塊31,用于接收應(yīng)用程序發(fā)送的第一訪存請(qǐng)求。
[0071]其中,第一訪存請(qǐng)求用于指示所述應(yīng)用程序所需訪問的內(nèi)存顆粒組;所述內(nèi)存顆粒組包括由所述應(yīng)用程序?qū)υL問帶寬的需求確定的至少一個(gè)內(nèi)存顆粒。
[0072]訪問模塊32,與接收模塊31連接,用于根據(jù)所述第一訪存請(qǐng)求,對(duì)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問。
[0073]本實(shí)施例中,通過根據(jù)應(yīng)用程序發(fā)送的訪存請(qǐng)求,對(duì)訪存請(qǐng)求指示的內(nèi)存顆粒組所包括的至少一個(gè)內(nèi)存顆粒進(jìn)行訪問,由于內(nèi)存顆粒組中的內(nèi)存顆粒是應(yīng)用程序根據(jù)內(nèi)存訪問帶寬需求確定的,不同應(yīng)用程序的內(nèi)存訪問帶寬需求不同,因而不同的應(yīng)用程序發(fā)送的訪存請(qǐng)求可指示不同的至少一個(gè)內(nèi)存顆粒,從而不同的應(yīng)用程序可對(duì)不同內(nèi)存顆粒分別進(jìn)行訪問,使得各個(gè)內(nèi)存顆粒中的行緩沖可存儲(chǔ)具有不同頁地址的頁,避免了在該列中所有的內(nèi)存顆粒中均出現(xiàn)頁沖突,降低了頁沖突出現(xiàn)的可能性,提高了內(nèi)存訪問的效率。
[0074]圖4為本發(fā)明另一實(shí)施例提供的內(nèi)存控制器的結(jié)構(gòu)示意圖,如圖4所示,在上一實(shí)施例的基礎(chǔ)上,本實(shí)施例中的訪問模塊32包括:選擇單元321和訪問單元322。
[0075]選擇單元321,用于從多個(gè)訪存隊(duì)列中,選擇與所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組的組合形式匹配的目標(biāo)訪存隊(duì)列,將所述第一訪存請(qǐng)求存儲(chǔ)到所述目標(biāo)訪存隊(duì)列中。
[0076]其中,不同訪存隊(duì)列存儲(chǔ)的訪存請(qǐng)求指示不同組合形式的內(nèi)存顆粒組,所述內(nèi)存顆粒組的組合形式由所述內(nèi)存顆粒組包含的內(nèi)存顆粒的地址和所述內(nèi)存顆粒組包含的內(nèi)存顆粒的個(gè)數(shù)確定。
[0077]訪問單元322,與選擇單元321連接,用于當(dāng)輪詢調(diào)度到所述目標(biāo)訪存隊(duì)列中的所述第一訪存請(qǐng)求時(shí),根據(jù)所述第一訪存請(qǐng)求,對(duì)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問。
[0078]進(jìn)一步,第一訪存請(qǐng)求包括:至少一個(gè)內(nèi)存顆粒的地址、目標(biāo)存儲(chǔ)單元的地址和讀寫屬性;所述目標(biāo)存儲(chǔ)單元為所述應(yīng)用程序所需訪問的所述至少一個(gè)內(nèi)存顆粒中的存儲(chǔ)單元;讀寫屬性用于指示所述應(yīng)用程序?qū)λ鰞?nèi)存顆粒組的訪問屬性為讀操作或?qū)懖僮?;若所述訪問屬性為寫操作,所述第一訪存請(qǐng)求還包括待寫的數(shù)據(jù)。
[0079]基于此,訪問單元322,包括:判斷子單元3221、第一讀寫子單元3222和第二讀寫子單元3223。
[0080]判斷子單元3221,用于當(dāng)輪詢調(diào)度到所述目標(biāo)訪存隊(duì)列中的所述第一訪存請(qǐng)求時(shí),根據(jù)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒,判斷每個(gè)所述內(nèi)存顆粒中的所述目標(biāo)存儲(chǔ)單元所在頁對(duì)應(yīng)的行緩沖內(nèi),是否存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù)。
[0081]第一讀寫子單元3222,與判斷單元3221連接,用于若所述行緩沖內(nèi)未存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù),將所述行緩沖內(nèi)的數(shù)據(jù)移除之后,將所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù)存儲(chǔ)到所述行緩沖內(nèi),對(duì)所述行緩沖內(nèi)存儲(chǔ)的所述目標(biāo)存儲(chǔ)單元的數(shù)據(jù)進(jìn)行讀操作或?qū)懖僮鳌?br>
[0082]第二讀寫子單元3223,與判斷單元3221連接,用于若所述行緩沖內(nèi)存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù),則直接對(duì)所述行緩沖內(nèi)存儲(chǔ)的所述目標(biāo)存儲(chǔ)單元的數(shù)據(jù)進(jìn)行讀操作或?qū)懖僮鳌?br>
[0083]作為一種可能的實(shí)現(xiàn)方式,本實(shí)施例中的內(nèi)存控制器可應(yīng)用于多媒體系統(tǒng),圖5為一種應(yīng)用內(nèi)存控制器的多媒體系統(tǒng)結(jié)構(gòu)示意圖,如圖5所示,多媒體系統(tǒng)包括:內(nèi)存控制器51、內(nèi)存芯片52和多媒體處理裝置53。內(nèi)存芯片52和多媒體處理裝置53分別與內(nèi)存控制器51連接。
[0084]內(nèi)存芯片52,包括:第一內(nèi)存顆粒521、第二內(nèi)存顆粒522、第三內(nèi)存顆粒523和第四內(nèi)存顆粒524。
[0085]多媒體處理裝置53,用于存儲(chǔ)應(yīng)用程序,包括多媒體處理器531、顯示控制器532、圖形處理器533和視頻處理器534。
[0086]多媒體處理裝置53中的應(yīng)用程序,通過軟件接口,向內(nèi)存控制器51發(fā)送訪存請(qǐng)求。
[0087]本實(shí)施例中,通過根據(jù)應(yīng)用程序發(fā)送的訪存請(qǐng)求,對(duì)訪存請(qǐng)求指示的內(nèi)存顆粒組所包括的至少一個(gè)內(nèi)存顆粒進(jìn)行訪問,從而不同的應(yīng)用程序可對(duì)不同內(nèi)存顆粒分別進(jìn)行訪問,使得各個(gè)內(nèi)存顆粒中的行緩沖可存儲(chǔ)具有不同頁地址的頁,避免了在該列中所有的內(nèi)存顆粒中均出現(xiàn)頁沖突,降低了頁沖突出現(xiàn)的可能性,提高了內(nèi)存訪問的效率。
[0088]圖6為本發(fā)明又一實(shí)施例提供的內(nèi)存控制器的結(jié)構(gòu)示意圖,如圖6所示,包括:通信接口 61和處理器62。
[0089]通信接口 61,用于接收應(yīng)用程序發(fā)送的第一訪存請(qǐng)求。
[0090]其中,第一訪存請(qǐng)求用于指示所述應(yīng)用程序所需訪問的內(nèi)存顆粒組;所述內(nèi)存顆粒組包括由所述應(yīng)用程序?qū)υL問帶寬的需求確定的至少一個(gè)內(nèi)存顆粒。
[0091]處理器62,用于:根據(jù)所述第一訪存請(qǐng)求,對(duì)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問。
[0092]可選的,處理器62從多個(gè)訪存隊(duì)列中,選擇與所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組的組合形式匹配的目標(biāo)訪存隊(duì)列,將所述第一訪存請(qǐng)求存儲(chǔ)到所述目標(biāo)訪存隊(duì)列中;其中,不同訪存隊(duì)列存儲(chǔ)的訪存請(qǐng)求指示不同組合形式的內(nèi)存顆粒組,所述內(nèi)存顆粒組的組合形式由所述內(nèi)存顆粒組包含的內(nèi)存顆粒的地址和所述內(nèi)存顆粒組包含的內(nèi)存顆粒的個(gè)數(shù)確定。當(dāng)輪詢調(diào)度到所述目標(biāo)訪存隊(duì)列中的所述第一訪存請(qǐng)求時(shí),根據(jù)所述第一訪存請(qǐng)求,對(duì)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問。
[0093]進(jìn)一步,第一訪存請(qǐng)求包括:所述至少一個(gè)內(nèi)存顆粒的地址和讀寫屬性;所述讀寫屬性用于指示所述應(yīng)用程序?qū)λ鰞?nèi)存顆粒組的訪問屬性為讀操作或?qū)懖僮?;若所述訪問屬性為寫操作,所述第一訪存請(qǐng)求還包括待寫的數(shù)據(jù)。第一訪存請(qǐng)求還包括:目標(biāo)存儲(chǔ)單元的地址;所述目標(biāo)存儲(chǔ)單元為所述應(yīng)用程序所需訪問的所述至少一個(gè)內(nèi)存顆粒中的存儲(chǔ)單元。
[0094]基于此,處理器62具體用于當(dāng)輪詢調(diào)度到所述目標(biāo)訪存隊(duì)列中的所述第一訪存請(qǐng)求時(shí),根據(jù)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒,判斷每個(gè)所述內(nèi)存顆粒中的所述目標(biāo)存儲(chǔ)單元所在頁對(duì)應(yīng)的行緩沖內(nèi),是否存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù);若所述行緩沖內(nèi)未存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù),將所述行緩沖內(nèi)的數(shù)據(jù)移除之后,將所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù)存儲(chǔ)到所述行緩沖內(nèi),對(duì)所述行緩沖內(nèi)存儲(chǔ)的所述目標(biāo)存儲(chǔ)單元的數(shù)據(jù)進(jìn)行讀操作或?qū)懖僮?;若所述行緩沖內(nèi)存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù),則直接對(duì)所述行緩沖內(nèi)存儲(chǔ)的所述目標(biāo)存儲(chǔ)單元的數(shù)據(jù)進(jìn)行讀操作或?qū)懖僮鳌?br>
[0095]作為一種可能的實(shí)現(xiàn)方式,本實(shí)施例中的內(nèi)存控制器可處于內(nèi)存系統(tǒng)中。內(nèi)存系統(tǒng)包括內(nèi)存控制器和存儲(chǔ)器。其中,內(nèi)存控制器包括處理器和通信接口,存儲(chǔ)器包括內(nèi)存芯片。內(nèi)存控制器與存儲(chǔ)器中的內(nèi)存芯片之間通過64位的總線連接,內(nèi)存控制器通過總線單位時(shí)間內(nèi)從存儲(chǔ)器中的內(nèi)存芯片讀或?qū)?4位的數(shù)據(jù)。內(nèi)存芯片包括多個(gè)列(Rank),每個(gè)列包括多個(gè)內(nèi)存顆粒,每個(gè)內(nèi)存顆粒包括多個(gè)塊(Bank),每個(gè)塊由多個(gè)頁和一個(gè)行緩沖構(gòu)成。其中,列所包括的多個(gè)內(nèi)存顆粒的總寬度為64位。
[0096]例如:圖7為一種內(nèi)存系統(tǒng)的結(jié)構(gòu)示意圖,如圖7所示,內(nèi)存系統(tǒng)包括通信接口71、處理器72和存儲(chǔ)器73。通信接口 71和處理器72構(gòu)成內(nèi)存控制器。其中,通信接口 71具體可為總線接口,接收應(yīng)用程序發(fā)送的訪存請(qǐng)求;處理器72,分別與通信接口 71和存儲(chǔ)器73連接,包括隊(duì)列選擇模塊721、隊(duì)列模塊722和訪存請(qǐng)求執(zhí)行模塊723。隊(duì)列選擇模塊721,與通信接口 71連接,用于從各個(gè)隊(duì)列單元7221中選擇與所述訪存請(qǐng)求指示的所述至少一個(gè)內(nèi)存顆粒對(duì)應(yīng)的目標(biāo)隊(duì)列單元。隊(duì)列模塊722,與隊(duì)列選擇模塊721連接,用于將所述訪存請(qǐng)求緩存到所述目標(biāo)隊(duì)列中,包括多個(gè)隊(duì)列單元7221,多個(gè)隊(duì)列單元分別對(duì)應(yīng)不同的至少一個(gè)內(nèi)存顆粒。訪存請(qǐng)求執(zhí)行模塊723,與隊(duì)列模塊722連接,用于按照輪詢調(diào)度方法執(zhí)行所述各個(gè)隊(duì)列中的訪存請(qǐng)求。訪存請(qǐng)求執(zhí)行模塊723,還與存儲(chǔ)器73中的多個(gè)內(nèi)存顆粒連接,對(duì)多個(gè)內(nèi)存顆粒進(jìn)行訪問,訪存請(qǐng)求執(zhí)行模塊可將隊(duì)列模塊中的隊(duì)列單元7221與存儲(chǔ)器中該隊(duì)列單元7221對(duì)應(yīng)內(nèi)存顆粒連接,以執(zhí)行該隊(duì)列單元7221中的訪存請(qǐng)求,完成對(duì)該隊(duì)列單元7221對(duì)應(yīng)內(nèi)存顆粒的訪問。
[0097]本實(shí)施例中,通過根據(jù)應(yīng)用程序發(fā)送的訪存請(qǐng)求,對(duì)訪存請(qǐng)求指示的內(nèi)存顆粒組所包括的至少一個(gè)內(nèi)存顆粒進(jìn)行訪問,從而不同的應(yīng)用程序可對(duì)不同內(nèi)存顆粒分別進(jìn)行訪問,使得各個(gè)內(nèi)存顆粒中的行緩沖可存儲(chǔ)具有不同頁地址的頁,避免了在該列中所有的內(nèi)存顆粒中均出現(xiàn)頁沖突,降低了頁沖突出現(xiàn)的可能性,提高了內(nèi)存訪問的效率。
[0098]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0099]最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種內(nèi)存訪問方法,其特征在于,包括: 接收應(yīng)用程序發(fā)送的第一訪存請(qǐng)求;所述第一訪存請(qǐng)求用于指示所述應(yīng)用程序所需訪問的內(nèi)存顆粒組;所述內(nèi)存顆粒組包括由所述應(yīng)用程序?qū)υL問帶寬的需求確定的至少一個(gè)內(nèi)存顆粒; 根據(jù)所述第一訪存請(qǐng)求,對(duì)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問。
2.根據(jù)權(quán)利要求1所述的內(nèi)存訪問方法,其特征在于,所述根據(jù)所述第一訪存請(qǐng)求,對(duì)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問,包括: 從多個(gè)訪存隊(duì)列中,選擇與所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組的組合形式匹配的目標(biāo)訪存隊(duì)列,將所述第一訪存請(qǐng)求存儲(chǔ)到所述目標(biāo)訪存隊(duì)列中;其中,不同訪存隊(duì)列存儲(chǔ)的訪存請(qǐng)求指示不同組合形式的內(nèi)存顆粒組,所述內(nèi)存顆粒組的組合形式由所述內(nèi)存顆粒組包含的內(nèi)存顆粒的地址和所述內(nèi)存顆粒組包含的內(nèi)存顆粒的個(gè)數(shù)確定; 當(dāng)輪詢調(diào)度到所述目標(biāo)訪存隊(duì)列中的所述第一訪存請(qǐng)求時(shí),根據(jù)所述第一訪存請(qǐng)求,對(duì)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問。
3.根據(jù)權(quán)利要求1或2所述的內(nèi)存訪問方法,其特征在于,所述第一訪存請(qǐng)求包括:所述至少一個(gè)內(nèi)存顆粒的地址和讀寫屬性;所述讀寫屬性用于指示所述應(yīng)用程序?qū)λ鰞?nèi)存顆粒組的訪問屬性為讀操作或?qū)懖僮鳎蝗羲鲈L問屬性為寫操作,所述第一訪存請(qǐng)求還包括待寫的數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的內(nèi)存訪問方法,其特征在于,所述第一訪存請(qǐng)求還包括:目標(biāo)存儲(chǔ)單元的地址;所述目標(biāo)存儲(chǔ)單元為所述應(yīng)用程序所需訪問的所述至少一個(gè)內(nèi)存顆粒中的存儲(chǔ)單元。
5.根據(jù)權(quán)利要求4所述的內(nèi)存訪問方法,其特征在于,所述當(dāng)輪詢調(diào)度到所述目標(biāo)訪存隊(duì)列中的所述第一訪存請(qǐng)求時(shí),根據(jù)所述第一訪存請(qǐng)求,對(duì)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問,包括: 當(dāng)輪詢調(diào)度到所述目標(biāo)訪存隊(duì)列中的所述第一訪存請(qǐng)求時(shí),根據(jù)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒,判斷每個(gè)所述內(nèi)存顆粒中的所述目標(biāo)存儲(chǔ)單元所在頁對(duì)應(yīng)的行緩沖內(nèi),是否存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù); 若所述行緩沖內(nèi)未存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù),將所述行緩沖內(nèi)的數(shù)據(jù)移除之后,將所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù)存儲(chǔ)到所述行緩沖內(nèi),對(duì)所述行緩沖內(nèi)存儲(chǔ)的所述目標(biāo)存儲(chǔ)單元的數(shù)據(jù)進(jìn)行讀操作或?qū)懖僮鳎? 若所述行緩沖內(nèi)存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù),則直接對(duì)所述行緩沖內(nèi)存儲(chǔ)的所述目標(biāo)存儲(chǔ)單元的數(shù)據(jù)進(jìn)行讀操作或?qū)懖僮鳌?br>
6.—種內(nèi)存控制器,其特征在于,包括: 接收模塊,用于接收應(yīng)用程序發(fā)送的第一訪存請(qǐng)求;所述第一訪存請(qǐng)求用于指示所述應(yīng)用程序所需訪問的內(nèi)存顆粒組;所述內(nèi)存顆粒組包括由所述應(yīng)用程序?qū)υL問帶寬的需求確定的至少一個(gè)內(nèi)存顆粒; 訪問模塊,根據(jù)所述第一訪存請(qǐng)求,對(duì)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問。
7.根據(jù)權(quán)利要求6所述的內(nèi)存控制器,其特征在于,所述訪問模塊包括: 選擇單元,用于從多個(gè)訪存隊(duì)列中,選擇與所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組的組合形式匹配的目標(biāo)訪存隊(duì)列,將所述第一訪存請(qǐng)求存儲(chǔ)到所述目標(biāo)訪存隊(duì)列中;其中,不同訪存隊(duì)列存儲(chǔ)的訪存請(qǐng)求指示不同組合形式的內(nèi)存顆粒組,所述內(nèi)存顆粒組的組合形式由所述內(nèi)存顆粒組包含的內(nèi)存顆粒的地址和所述內(nèi)存顆粒組包含的內(nèi)存顆粒的個(gè)數(shù)確定; 訪問單元,用于當(dāng)輪詢調(diào)度到所述目標(biāo)訪存隊(duì)列中的所述第一訪存請(qǐng)求時(shí),根據(jù)所述第一訪存請(qǐng)求,對(duì)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒進(jìn)行訪問。
8.根據(jù)權(quán)利要求6或7所述的內(nèi)存控制器,其特征在于,所述第一訪存請(qǐng)求包括:所述至少一個(gè)內(nèi)存顆粒的地址和讀寫屬性;所述讀寫屬性用于指示所述應(yīng)用程序?qū)λ鰞?nèi)存顆粒組的訪問屬性為讀操作或?qū)懖僮?;若所述訪問屬性為寫操作,所述第一訪存請(qǐng)求還包括待寫的數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的內(nèi)存控制器,其特征在于,所述第一訪存請(qǐng)求還包括:目標(biāo)存儲(chǔ)單元的地址;所述目標(biāo)存儲(chǔ)單元為所述應(yīng)用程序所需訪問的所述至少一個(gè)內(nèi)存顆粒中的存儲(chǔ)單兀。
10.根據(jù)權(quán)利要求9所述的內(nèi)存控制器,其特征在于,所述訪問單元包括: 判斷子單元,用于當(dāng)輪詢調(diào)度到所述目標(biāo)訪存隊(duì)列中的所述第一訪存請(qǐng)求時(shí),根據(jù)所述第一訪存請(qǐng)求指示的所述內(nèi)存顆粒組中的內(nèi)存顆粒,判斷每個(gè)所述內(nèi)存顆粒中的所述目標(biāo)存儲(chǔ)單元所在頁對(duì)應(yīng)的行緩沖內(nèi),是否存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù); 第一讀寫子單元,用于若所述行緩沖內(nèi)未存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù),將所述行緩沖內(nèi)的數(shù)據(jù)移除之后,將所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù)存儲(chǔ)到所述行緩沖內(nèi),對(duì)所述行緩沖內(nèi)存儲(chǔ)的所述目標(biāo)存儲(chǔ)單元的數(shù)據(jù)進(jìn)行讀操作或?qū)懖僮鳎? 第二讀寫子單元,用于若所述行緩沖內(nèi)存有所述目標(biāo)存儲(chǔ)單元所在頁的數(shù)據(jù),則直接對(duì)所述行緩沖內(nèi)存儲(chǔ)的所述目標(biāo)存儲(chǔ)單元的數(shù)據(jù)進(jìn)行讀操作或?qū)懖僮鳌?br>
【文檔編號(hào)】G06F12/08GK104252422SQ201310260809
【公開日】2014年12月31日 申請(qǐng)日期:2013年6月26日 優(yōu)先權(quán)日:2013年6月26日
【發(fā)明者】張廣飛, 侯銳, 常軼松, 張柳航 申請(qǐng)人:華為技術(shù)有限公司, 中國科學(xué)院計(jì)算技術(shù)研究所