支持地址交叉方案配置的多ddr訪問(wèn)控制方法及裝置制造方法
【專利摘要】本發(fā)明公開一種支持地址交叉方案配置的多DDR訪問(wèn)控制方法及裝置,該方法步驟為:配置外存地址空間在多個(gè)DDR控制器之間分布的地址交叉方案為高位地址交叉方案、低位地址交叉方案或高位地址交叉方案與低位地址交叉方案組合模式;當(dāng)請(qǐng)求訪問(wèn)DDR空間時(shí),根據(jù)配置的地址交叉方案將請(qǐng)求源的訪存地址映射至目標(biāo)DDR控制器對(duì)應(yīng)的末級(jí)Cache子體中;該裝置包括與方法對(duì)應(yīng)的地址交叉方案配置模塊、訪問(wèn)路由選擇模塊。本發(fā)明具有實(shí)現(xiàn)方法簡(jiǎn)單、訪問(wèn)效率高、硬件開銷小、能夠根據(jù)實(shí)際需求靈活地配置地址交叉方案的優(yōu)點(diǎn)。
【專利說(shuō)明】支持地址交叉方案配置的多DDR訪問(wèn)控制方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及DDR (Double Data Rate SDRAM,雙倍數(shù)據(jù)速率同步動(dòng)態(tài)存儲(chǔ)器)控制 器【技術(shù)領(lǐng)域】,尤其涉及一種支持地址交叉方案配置的多DDR訪問(wèn)控制方法及裝置。
【背景技術(shù)】
[0002] 當(dāng)前隨著應(yīng)用的不斷發(fā)展和集成電路制造技術(shù)的不斷進(jìn)步,將多個(gè)傳統(tǒng)的處理器 核集成在同一芯片中使其協(xié)同高效地展開工作的多核處理器,已經(jīng)廣泛地應(yīng)用于通用計(jì) 算、高性能計(jì)算、嵌入式計(jì)算等多個(gè)領(lǐng)域。多核處理器一般集成多個(gè)DDR控制器以便使芯片 具有更大的存儲(chǔ)帶寬,同時(shí)也能夠使芯片能夠集成更多更大容量的內(nèi)存顆粒。當(dāng)前主流的 DDR控制器為3. 0版本,更高版本的DDR控制器IP也即將推出。
[0003] 外存地址空間如何在多個(gè)DDR控制器之間分布稱為地址交叉方案,高位地址交叉 方案和低位地址交叉方案是常用的兩種地址交叉方案,其中高位地址交叉方案是采用訪存 地址的高位來(lái)區(qū)分請(qǐng)求源的請(qǐng)求落入哪個(gè)DDR控制器,其具有易擴(kuò)展、可靠性好的優(yōu)點(diǎn)。如 果程序員能夠?qū)⒍鄠€(gè)任務(wù)的數(shù)據(jù)分別映射到最近的DDR控制器上,則每個(gè)任務(wù)可以無(wú)沖突 地運(yùn)行在不同的DDR控制器上,片上的共享網(wǎng)絡(luò)、Cache等資源也可以局部地高效訪問(wèn),然 而如果將單任務(wù)程序映射至高位地址交叉方案系統(tǒng)中,則會(huì)出現(xiàn)一段時(shí)間只有一個(gè)DDR控 制器被有效利用的情況,造成DDR控制器有效帶寬的浪費(fèi)。低位地址交叉方案是采用訪存 地址的低位來(lái)確定請(qǐng)求源的請(qǐng)求落入哪個(gè)DDR控制器,同一任務(wù)對(duì)連續(xù)地址的訪問(wèn)將會(huì)映 射到不同的DDR控制器中,多個(gè)DDR控制器的訪存延時(shí)將會(huì)重疊起來(lái),從而有利于充分發(fā)揮 用多個(gè)DDR控制器的帶寬。然而在低位地址交叉方案中如果某一個(gè)DDR控制器存在故障, 則會(huì)擴(kuò)展到整個(gè)系統(tǒng),并且當(dāng)多個(gè)任務(wù)運(yùn)行時(shí)還會(huì)導(dǎo)致存儲(chǔ)沖突增加等問(wèn)題。
[0004] 傳統(tǒng)的多核處理器系統(tǒng)中多個(gè)DDR控制器之間通常采用固定的一種地址交叉 方案,如在Fujitsu公司的M3000服務(wù)器系列中采用了低位地址交叉方案,Sun公司的 Niagara系列處理器也采用了類似的低位地址交叉方案。固定的地址交叉方案雖然硬件實(shí) 現(xiàn)簡(jiǎn)單,但是存在使用不靈活以及使得某些應(yīng)用程序執(zhí)行效率變低等缺點(diǎn)。
[0005] 多核處理器中不同的應(yīng)用程序往往存在不同的訪存特征,對(duì)多個(gè)DDR間的地址交 叉方案的需求也不相同;即使是在同一個(gè)應(yīng)用程序的不同的運(yùn)行階段,其數(shù)據(jù)訪存對(duì)多個(gè) DDR間的地址交叉方案的需求也不一致。這種對(duì)DDR間地址交叉方案的需求的不同,實(shí)際上 隱含著對(duì)DDR、末級(jí)Cache (Last Level Cache,LLC)和片上網(wǎng)絡(luò)的"共享"和"私有"要求的 不同。此外,在低位地址交叉方案中,將末級(jí)Cache的Cache行寬度作為最小的數(shù)據(jù)交叉粒 度僅僅會(huì)在某些應(yīng)用中對(duì)訪存帶寬的利用比較有利,不同應(yīng)用程序?qū)Φ臀坏刂方徊娴臄?shù)據(jù) 粒度往往具有不同的需求。
[0006] 綜上所述,需要通過(guò)提供一種支持多DDR間地址交叉方案可配置的方案,使程序 員能夠根據(jù)應(yīng)用的不同或應(yīng)用執(zhí)行階段的不同靈活地設(shè)置不同DDR間的地址交叉方案,進(jìn) 而能夠高效地利用DDR、末級(jí)Cache、片上網(wǎng)絡(luò)等資源,同時(shí)使系統(tǒng)的抗故障能力也得以增 強(qiáng)。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明要解決的技術(shù)問(wèn)題就在于:針對(duì)現(xiàn)有技術(shù)存在的技術(shù)問(wèn)題,本發(fā)明提供一 種實(shí)現(xiàn)方法簡(jiǎn)單、訪問(wèn)效率高、硬件開銷小、能能夠根據(jù)不同的應(yīng)用程序及實(shí)際需求靈活地 配置地址交叉方案的支持地址交叉方案配置的多DDR訪問(wèn)控制方法及裝置。
[0008] 為解決上述技術(shù)問(wèn)題,本發(fā)明提出的技術(shù)方案為:
[0009] -種支持地址交叉方案配置的多DDR訪問(wèn)控制方法,具體實(shí)施步驟為:
[0010] 1)將外存地址空間在多個(gè)DDR控制器間分布的地址交叉方案配置為高位地址交 叉方案、低位地址交叉方案或高位地址交叉方案與低位地址交叉方案組合模式;
[0011] 2)當(dāng)請(qǐng)求訪問(wèn)DDR空間時(shí),根據(jù)配置的所述地址交叉方案將請(qǐng)求源訪問(wèn)DDR空間 的訪存地址映射至目標(biāo)DDR控制器對(duì)應(yīng)的末級(jí)Cache子體中。
[0012] 作為本發(fā)明方法的進(jìn)一步改進(jìn),步驟1)的具體實(shí)施步驟為:
[0013] 1. 1)判斷當(dāng)前應(yīng)用是否需要啟用高位地址交叉方案,若為是,設(shè)置為啟用高位地 址交叉方案,轉(zhuǎn)入執(zhí)行步驟1.2);若為否,設(shè)置為不啟用高位地址交叉方案并將所有的外 存地址空間的地址交叉方案配置為低位地址交叉方案,轉(zhuǎn)入執(zhí)行步驟1. 3);
[0014] 1.2)判斷當(dāng)前應(yīng)用是否還需要啟用低位地址交叉方案,若為是,將地址交叉方 案配置為高位地址交叉方案與低位地址交叉方案組合模式并設(shè)置模式配置值N且N不為 〇,其中外存地址空間中1/2 N的地址空間的地址交叉方案配置為高位地址交叉方案,其余 (1-1/2N)的地址空間的地址交叉方案配置為低位地址交叉方案,轉(zhuǎn)入執(zhí)行步驟1.3);若為 否,設(shè)置高位地址交叉方案與低位地址交叉方案組合模式的模式配置值N為0,將所有的外 存地址空間的地址交叉方案配置為高位地址交叉方案,轉(zhuǎn)入執(zhí)行步驟2);
[0015] 1. 3)設(shè)置低位地址交叉方案中外存地址空間在兩個(gè)相鄰DDR控制器之間的間隔 單位,轉(zhuǎn)入執(zhí)行步驟2)。
[0016] 作為本發(fā)明方法的進(jìn)一步改進(jìn),所述步驟1)的具體實(shí)施方法為:定義包含用于設(shè) 置是否需要啟用高位地址交叉方案的高位地址交叉使能域、用于設(shè)置高位地址交叉方案與 低位地址交叉方案組合模式中模式配置值N的組合模式設(shè)置域以及用于設(shè)置低位地址交 叉方案中外存地址空間在兩個(gè)相鄰DDR控制器之間間隔單位的低位交叉粒度設(shè)置域的地 址交叉方案配置寄存器,并通過(guò)所述地址交叉方案配置寄存器配置所述地址交叉方案。
[0017] 作為本發(fā)明方法的進(jìn)一步改進(jìn),所述通過(guò)所述地址交叉方案配置寄存器配置所述 地址交叉方案的具體實(shí)施方法為:若需要配置為低位地址交叉方案時(shí),設(shè)置高位地址交叉 使能域的值為0 ;若需要配置為高位地址交叉方案時(shí),設(shè)置高位地址交叉使能域的值為1并 通過(guò)組合模式設(shè)置域設(shè)置模式配置值N為0 ;若需要配置為高位地址交叉方案與低位地址 交叉方案組合模式時(shí),設(shè)置高位地址交叉使能域的值為1并通過(guò)組合模式設(shè)置域設(shè)置模式 配置值N且N不為0 ;通過(guò)低位交叉粒度設(shè)置域設(shè)置低位地址交叉方案中外存地址空間在 兩個(gè)相鄰DDR控制器之間的間隔單位。
[0018] 作為本發(fā)明方法的進(jìn)一步改進(jìn),所述步驟2)的具體實(shí)施步驟為:
[0019] 2. 1)判斷步驟1)中配置的地址交叉方案,并根據(jù)請(qǐng)求源的訪求地址A生成用于進(jìn) 行目標(biāo)DDR控制器路由判斷的路由判斷地址BJA,A為包括0?H-1位的請(qǐng)求源的訪求地址 且寬度為H,其中若配置的地址交叉方案為低位地址交叉方案時(shí),轉(zhuǎn)入執(zhí)行步驟2. 2);若為 高位地址交叉方案時(shí),轉(zhuǎn)入執(zhí)行步驟2. 3);若為高位地址交叉方案與低位地址交叉方案組 合模式時(shí),轉(zhuǎn)入執(zhí)行步驟2.4);
[0020] 2. 2)路由判斷地址BJA = A[L-l+log2W:L],轉(zhuǎn)入執(zhí)行步驟2. 5);
[0021] 2. 3)路由判斷地址BJA = A[H-l:H-log2W],轉(zhuǎn)入執(zhí)行步驟2. 5);
[0022] 2. 4)若 A[H-1:H-N] = 0,則路由判斷地址 BJA = A[H-N-l:H-N-log2W];若 A[H-1:H-N]關(guān)0,則路由判斷地址BJA = A[L-l+log2W:L],轉(zhuǎn)入執(zhí)行步驟2. 5);
[0023] 2. 5)根據(jù)請(qǐng)求源的訪求地址的地址范圍及映射函數(shù)將路由判斷地址BJA映射至 目標(biāo)DDR控制器對(duì)應(yīng)的末級(jí)Cache子體;
[0024] 其中W為末級(jí)Cache包含的子體的數(shù)目,N為模式配置值,L0I_Grain為低位地 址交叉方案中外存地址空間在兩個(gè)相鄰DDR控制器之間間隔單位,Μ為末級(jí)Cache中一個(gè) Cache行包含的字節(jié)數(shù),且L = L0I_Grain+log2M。
[0025] 作為本發(fā)明方法的進(jìn)一步改進(jìn),所述步驟2. 5)的具體實(shí)施方法為:判斷當(dāng)前請(qǐng)求 源的訪求地址的地址范圍,若地址范圍在配置為高位地址交叉方案的地址區(qū)間內(nèi),則所述 路由判斷地址BJA的值、與DDR控制器連接的末級(jí)Cache子體--對(duì)應(yīng)進(jìn)行映射;若地址范 圍在配置為低位地址交叉方案的地址區(qū)間內(nèi),則所述路由判斷地址BJA的值、與DDR控制器 連接的末級(jí)Cache子體編號(hào)按照循環(huán)模T進(jìn)行映射,映射公式如下所示 :
[0026] Γ BIA W-1 末級(jí)Cache子體編號(hào)=,=、,、:二;
[(BJA*P)%(W-1)其它值
[0027] 其中W為末級(jí)Cache子體的總數(shù)目,P為每一個(gè)DDR控制器對(duì)應(yīng)的末級(jí)Cache子 體的數(shù)目。
[0028] 作為本發(fā)明方法的進(jìn)一步改進(jìn),還包括執(zhí)行下一個(gè)任務(wù)時(shí)的地址交叉方案切換流 程,步驟為:
[0029] 3. 1)將DDR空間中上一個(gè)任務(wù)的結(jié)果數(shù)據(jù)搬移至非DDR空間,轉(zhuǎn)入執(zhí)行步驟 3.2) ;
[0030] 3. 2)將Cache系統(tǒng)中包含DDR空間副本的Cache行設(shè)置為無(wú)效,轉(zhuǎn)入執(zhí)行步驟 3.3) ;
[0031] 3. 3)配置下一個(gè)任務(wù)對(duì)應(yīng)的地址交叉方案,轉(zhuǎn)入執(zhí)行步驟3. 4);
[0032] 3. 4)將下一個(gè)任務(wù)的程序按照配置的地址交叉方案搬移至對(duì)應(yīng)的DDR空間,并標(biāo) 記所述程序在DDR空間中的地址,轉(zhuǎn)入執(zhí)行步驟3. 5);
[0033] 3. 5)跳轉(zhuǎn)至所述程序在DDR空間中的地址,將下一個(gè)任務(wù)的數(shù)據(jù)搬移到DDR空間, 完成切換過(guò)程并開始執(zhí)行任務(wù)。
[0034] 一種支持地址交叉方案配置的多DDR間訪問(wèn)控制裝置,包括:
[0035] 地址交叉方案配置模塊,用于將外存地址空間在多個(gè)DDR控制器間分布的地址交 叉方案配置為高位地址交叉方案、低位地址交叉方案或高位地址交叉方案與低位地址交叉 方案組合模式;
[0036] 訪問(wèn)路由選擇模塊,用于當(dāng)請(qǐng)求訪問(wèn)DDR空間時(shí),根據(jù)配置的所述地址交叉方案 將請(qǐng)求源訪問(wèn)DDR空間的訪存地址映射至目標(biāo)DDR控制器對(duì)應(yīng)的末級(jí)Cache子體中。
[0037] 作為本發(fā)明裝置的進(jìn)一步改進(jìn):所述地址交叉方案配置模塊包括高位交叉使能設(shè) 置單元、組合模式設(shè)置單元以及低位交叉粒度設(shè)置單元;所述高位交叉使能設(shè)置單元設(shè)置 是否需要啟用高位地址交叉方案的,所述組合模式設(shè)置單元設(shè)置高位地址交叉方案與低位 地址交叉方案組合模式中模式配置值N,所述低位交叉粒度用于設(shè)置低位地址交叉方案中 外存地址空間在兩個(gè)相鄰DDR控制器之間的間隔單位。
[0038] 作為本發(fā)明裝置的進(jìn)一步改進(jìn):所述訪問(wèn)路由選擇模塊包括路由判斷地址生成單 元和路由映射單元,所述路由判斷地址生成單元根據(jù)請(qǐng)求源的訪存地址和所述地址交叉方 案配置模塊配置的地址交叉方案生成路由判斷地址;路由映射單元根據(jù)請(qǐng)求源的訪求地 址的地址范圍及映射函數(shù)將路由判斷地址BJA映射至對(duì)應(yīng)的目標(biāo)DDR控制器對(duì)應(yīng)的末級(jí) Cache子體中。
[0039] 與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
[0040] 1)本發(fā)明中采用可變的地址交叉方案,通過(guò)配置使得用戶可以根據(jù)應(yīng)用的需求設(shè) 置不同的地址交叉方案,從而使應(yīng)用程序更快、更高帶寬地訪問(wèn)DDR、末級(jí)Cache、片上網(wǎng)絡(luò) 等資源;地址交叉方案可配置為高位地址交叉方案、低位地址交叉方案或高位地址交叉方 案和低位地址交叉方案組合模式,使得能夠兼具高位地址交叉方案和低位地址交叉方案的 優(yōu)點(diǎn),且即使當(dāng)多核處理器系統(tǒng)中的某一個(gè)DDR顆?;駾DR控制器發(fā)生故障時(shí),系統(tǒng)存儲(chǔ)通 路仍然能夠繼續(xù)正常工作。
[0041] 2)本發(fā)明通過(guò)一個(gè)地址交叉方案配置寄存器配置地址交叉方案,只需要按照流程 修改地址交叉方案配置寄存器的某一位或幾位就可以進(jìn)行配置,配置方法簡(jiǎn)便且靈活。
[0042] 3)本發(fā)明中采用可變的地址交叉方案僅增加地址交叉方案配置(如地址交叉方 案配置寄存器)的開銷以及片上網(wǎng)絡(luò)根據(jù)地址交叉方案配置對(duì)報(bào)文或請(qǐng)求進(jìn)行路由選擇 時(shí)的邏輯開銷,且地址交叉方案配置開銷以及路由選擇的邏輯開銷是由較小寬度的觸發(fā)器 或小規(guī)模的選擇邏輯組成,因此所需的硬件面積和功耗開銷較小且不影響系統(tǒng)的關(guān)鍵路徑 延時(shí),非常適用于當(dāng)前采用多個(gè)DDR控制器的多核處理器系統(tǒng)中。
【專利附圖】
【附圖說(shuō)明】
[0043] 圖1是本實(shí)施例支持地址交叉方案配置的多DDR訪問(wèn)控制方法流程示意圖。
[0044] 圖2是本實(shí)施例中地址交叉方案配置寄存器AISR結(jié)構(gòu)示意圖。
[0045] 圖3是本發(fā)明在具體應(yīng)用中執(zhí)行地址交叉方案切換的實(shí)現(xiàn)流程示意圖。
[0046] 圖4是本發(fā)明具體實(shí)施例中采用的具有多個(gè)DDR控制器的多核處理器系統(tǒng)結(jié)構(gòu)示 意圖。
[0047] 圖5是本發(fā)明具體實(shí)施例中支持地址交叉方案配置的多DDR訪問(wèn)控制方法原理示 意圖。
[0048] 圖6是本發(fā)明具體實(shí)施例中路由判斷地址BJA生成原理示意圖。
[0049] 圖7是本發(fā)明具體實(shí)施例中高位地址交叉方案的路由判斷地址BJA與目標(biāo)設(shè)備映 射關(guān)系不意圖。
[0050] 圖8是本發(fā)明具體實(shí)施例中低位地址交叉方案的路由判斷地址BJA與目標(biāo)設(shè)備映 射關(guān)系不意圖。
【具體實(shí)施方式】
[0051] 以下結(jié)合說(shuō)明書附圖和具體優(yōu)選的實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述,但并不因此而 限制本發(fā)明的保護(hù)范圍。
[0052] 如圖1所示,本實(shí)施例支持地址交叉方案配置的多DDR訪問(wèn)控制方法,具體實(shí)施步 驟為:
[0053] 1)將外存地址空間在多個(gè)DDR控制器間分布的地址交叉方案配置為高位地址交 叉方案、低位地址交叉方案或高位地址交叉方案與低位地址交叉方案組合模式;
[0054] 2)當(dāng)請(qǐng)求訪問(wèn)DDR空間時(shí),根據(jù)配置的所述地址交叉方案將請(qǐng)求源訪問(wèn)DDR空間 的訪存地址映射至目標(biāo)DDR控制器對(duì)應(yīng)的末級(jí)Cache子體中。
[0055] 通過(guò)可配置的地址交叉方案可以根據(jù)應(yīng)用程序及實(shí)際需求設(shè)置合適的地址交叉 方案,從而使應(yīng)用程序更快、更高帶寬地訪問(wèn)DDR、末級(jí)Cache、片上網(wǎng)絡(luò)等資源,可配置的 地址交叉方案與傳統(tǒng)的固定地址交叉方案相比,能夠兼具高位地址交叉方案和低位地址交 叉方案的優(yōu)點(diǎn),且即使當(dāng)多核處理器系統(tǒng)中的某一個(gè)DDR顆?;駾DR控制器發(fā)生故障時(shí),系 統(tǒng)存儲(chǔ)通路仍然能夠繼續(xù)正常工作。
[0056] 本實(shí)施例中,步驟1)的具體實(shí)施步驟為:
[0057] 1. 1)判斷當(dāng)前應(yīng)用是否需要啟用高位地址交叉方案,若為是,設(shè)置為啟用高位地 址交叉方案,轉(zhuǎn)入執(zhí)行步驟1.2);若為否,設(shè)置為不啟用高位地址交叉方案并將所有的外 存地址空間的地址交叉方案配置為低位地址交叉方案,轉(zhuǎn)入執(zhí)行步驟1. 3);
[0058] 1.2)判斷當(dāng)前應(yīng)用是否還需要啟用低位地址交叉方案,若為是,將地址交叉方 案配置為高位地址交叉方案與低位地址交叉方案組合模式并設(shè)置模式配置值N且N不為 〇,其中外存地址空間中1/2 N的地址空間的地址交叉方案配置為高位地址交叉方案,其余 (1-1/2N)的地址空間的地址交叉方案配置為低位地址交叉方案,轉(zhuǎn)入執(zhí)行步驟1.3);若為 否,設(shè)置高位地址交叉方案與低位地址交叉方案組合模式的模式配置值N為0,將所有的外 存地址空間的地址交叉方案配置為高位地址交叉方案,轉(zhuǎn)入執(zhí)行步驟2);
[0059] 1. 3)設(shè)置低位地址交叉方案中外存地址空間在兩個(gè)相鄰DDR控制器之間的間隔 單位,轉(zhuǎn)入執(zhí)行步驟2)。
[0060] 本實(shí)施例中,步驟1)具體通過(guò)一個(gè)具有高位地址交叉使能域、組合模式設(shè)置域 以及低位交叉粒度設(shè)置域的地址交叉方案配置寄存器(Address Interleaving Scheme RegiSter,AISR)實(shí)現(xiàn)。如圖2所示,本實(shí)施例中地址交叉方案配置寄存器AISR結(jié)構(gòu),包括 高位地址交叉使能域(En)、組合模式設(shè)置域(Mode)和低位交叉粒度設(shè)置域(LOI-Grain), 其余位為保留位(Reserved),寄存器的總寬度與處理器的機(jī)器字長(zhǎng)(假定為32比特)相 同。
[0061] 本實(shí)施例中,高位地址交叉使能域用于使能高位地址交叉方案,當(dāng)高位地址交叉 使能域En被設(shè)置為0時(shí),所有的外存地址空間按照低位地址交叉方案在多個(gè)DDR控制器間 分布;當(dāng)高位地址交叉使能域En被設(shè)置為1時(shí),外存地址空間中的一部分被設(shè)置為采用高 位地址交叉方案分布,剩余的部分被設(shè)置為采用低位地址交叉方案分布。組合模式設(shè)置域 Mode用于設(shè)置高位地址交叉方案與低位地址交叉方案組合模式中模式配置值N,通過(guò)模式 配置值N確定采用高位地址交叉方案的高位地址交叉空間占整個(gè)外存空間中的比例;具體 地,當(dāng)組合模式設(shè)置域Mode的值N分別設(shè)置為0,1,2,…,N時(shí),對(duì)應(yīng)高位地址交叉空間分 別占據(jù)整個(gè)外存空間的全部,1/2,1/4,?,1/2'低位交叉粒度設(shè)置域11)1-61^111用來(lái)設(shè) 置采用低位交叉方案的低位地址交叉空間中兩個(gè)相鄰DDR控制器之間的間隔單位;假設(shè)系 統(tǒng)的末級(jí)Cache的行寬度為Μ字節(jié),則當(dāng)?shù)臀唤徊媪6仍O(shè)置域LOI-Grain分別設(shè)置為0,1, 2, 一,Τ時(shí),對(duì)應(yīng)的低位地址交叉空間的間隔單位分別為Μ,2Μ,4Μ,"·,2ΤΜ個(gè)字節(jié)。需要進(jìn) 行地址交叉方案配置時(shí),用戶只需要按照流程修改地址交叉方案配置寄存器AISR的某一 位或幾位,就可以對(duì)多DDR間的地址交叉方案進(jìn)行配置。
[0062] 本實(shí)施例中,通過(guò)地址交叉方案配置寄存器配置地址交叉方案的具體實(shí)施方法 為:若需要配置為低位地址交叉方案時(shí),設(shè)置高位地址交叉使能域Εη的值為0 ;若需要配 置為高位地址交叉方案時(shí),設(shè)置高位地址交叉使能域Εη的值為1且通過(guò)組合模式設(shè)置域 Mode設(shè)置模式配置值Ν且Ν為0 ;若需要配置為高位地址交叉方案與低位地址交叉方案 組合的地址交叉方案時(shí),設(shè)置高位地址交叉使能域Εη的值為1、通過(guò)組合模式設(shè)置域Mode 設(shè)置模式配置值N且N不為0 ;若配置為低位地址交叉方案時(shí),設(shè)置低位交叉粒度設(shè)置域 LOI-Grain的值,可滿足不同應(yīng)用程序?qū)Φ臀坏刂方徊娴臄?shù)據(jù)粒度的不同需求。則當(dāng)高位地 址交叉使能域Εη設(shè)置為0時(shí),地址交叉方案配置為低位地址交叉方案;當(dāng)高位地址交叉使 能域Εη設(shè)置為1時(shí),使能高位地址交叉方案,模式配置值Ν不為0時(shí)為配置為高位地址交 叉方案與低位地址交叉方案組合模式,模式配置值Ν為0時(shí),地址交叉方案配置為高位地址 交叉方案。
[0063] 本實(shí)施例中,每個(gè)訪問(wèn)DDR空間的請(qǐng)求源經(jīng)過(guò)路由映射判斷具體訪問(wèn)的目標(biāo)DDR 控制器對(duì)應(yīng)的末級(jí)Cache子體,路由映射的具體實(shí)現(xiàn)方法由地址交叉方案配置寄存器AISR 設(shè)置的值決定,即根據(jù)具體配置的地址交叉方案進(jìn)行路由映射。步驟2)根據(jù)配置的地址交 叉方案將請(qǐng)求源的訪存地址映射至目標(biāo)DDR控制器對(duì)應(yīng)的末級(jí)Cache子體的具體實(shí)施步驟 為:
[0064] 2. 1)判斷步驟1)中配置的地址交叉方案,根據(jù)請(qǐng)求源的訪求地址A生成用于進(jìn) 行目標(biāo)DDR控制器路由判斷的路由判斷地址BJA,A為包括0?H-1位的請(qǐng)求源的訪求地 址且寬度為H,其中若配置的地址交叉方案為低位地址交叉方案時(shí)(Εη = 0),轉(zhuǎn)入執(zhí)行步驟 2. 2);若為高位地址交叉方案時(shí)(Εη = 1、Ν = 0),轉(zhuǎn)入執(zhí)行步驟2. 3);若為高位地址交叉 方案與低位地址交叉方案組合模式時(shí)(En = 1、Ν尹0),轉(zhuǎn)入執(zhí)行步驟2. 4);
[0065] 2. 2)路由判斷地址BJA = A[L-l+log2W:L],轉(zhuǎn)入執(zhí)行步驟2. 5);
[0066] 2. 3)路由判斷地址BJA = A[H-1 :H-log2W],轉(zhuǎn)入執(zhí)行步驟2. 5);
[0067] 2. 4)若 A[H-1:H-N] = 0,則路由判斷地址 BJA = A[H-N-l:H-N-log2W];若 A[H-1:H-N]關(guān)0,則路由判斷地址BJA = A[L-l+log2W:L],轉(zhuǎn)入執(zhí)行步驟2. 5);
[0068] 2. 5)根據(jù)請(qǐng)求源的訪求地址的地址范圍及映射函數(shù)將路由判斷地址BJA映射至 目標(biāo)DDR控制器對(duì)應(yīng)的末級(jí)Cache子體。
[0069] 其中W為L(zhǎng)LC包含的子體的數(shù)目;模式配置值N為AISR寄存器Mode域的值;L0I_ Grain為AISR寄存器L0I_Grain域的值;Μ為末級(jí)Cache -個(gè)Cache行包含的字節(jié)數(shù);L = L0I_Grain+log2M ;En 為 AISR 寄存器 Εη 域的值。
[0070] 本實(shí)施例中,步驟2. 1)中判斷步驟1)中配置的地址交叉方案的具體實(shí)施方法為: 判斷高位地址交叉使能域Εη的值是否為1,若不為1時(shí),判斷地址交叉方案為低位地址交叉 方案,即所有的外存地址空間在多個(gè)DDR控制器之間按照低位地址交叉方案分布;若為1, 繼續(xù)判斷模式配置值Ν,若模式配置值Ν為0時(shí),判斷地址交叉方案為高位地址交叉方案, 即所有的外存地址空間在多個(gè)DDR控制器之間按照高位地址交叉方案分布,若模式配置值 N不為0時(shí),判斷地址交叉方案為高位地址交叉方案與低位地址交叉方案組合模式,S卩外存 地址空間中1/2N的地址空間在多個(gè)DDR控制器間分布的地址交叉方案為高位地址交叉方 案,其余(1-1/2 N)的地址空間的地址交叉方案為低位地址交叉方案。
[0071] 本實(shí)施例中步驟2. 5)的具體實(shí)施方法為:判斷當(dāng)前請(qǐng)求源的訪求地址的地址范 圍,若地址范圍在配置為高位地址交叉方案的地址區(qū)間內(nèi),則路由判斷地址BJA的值、與 DDR控制器連接的末級(jí)Cache子體--對(duì)應(yīng)進(jìn)行映射,若地址范圍在配置為低位地址交叉 方案的地址區(qū)間內(nèi),則路由判斷地址BJA的值、與DDR控制器連接的末級(jí)Cache子體編號(hào)按 照循環(huán)模T進(jìn)行映射,映射公式為:末級(jí)Cache子體編5 = u 其它值, 其中W為末級(jí)Cache子體的總數(shù)目,P為每一個(gè)DDR控制器對(duì)應(yīng)的末級(jí)Cache子體的數(shù)目。
[0072] 本實(shí)施例中,若應(yīng)用程序中上一個(gè)任務(wù)和新任務(wù)之間需要切換地址交叉方案,如 圖3所示,切換地址交叉方案的具體實(shí)現(xiàn)流程如下 :
[0073] ①將DDR空間中上一個(gè)任務(wù)的結(jié)果數(shù)據(jù)搬移至非DDR空間;
[0074] ②查看是否搬移完畢,如果搬移完畢則轉(zhuǎn)至③,否則返回執(zhí)行①;
[0075] ③將Cache系統(tǒng)(包含與DDR控制器連接的末級(jí)Cache和其它Cache)中包含DDR 空間副本的Cache行設(shè)置為無(wú)效;
[0076] ④查看是否設(shè)置完畢,如果設(shè)置完畢則轉(zhuǎn)至⑤,否則返回執(zhí)行③;
[0077] ⑤程序跳轉(zhuǎn)至系統(tǒng)的非DDR空間(如flash空間等),并設(shè)置新的地址交叉方案配 置寄存器AISR的值;
[0078] ⑥將新任務(wù)的程序搬移至DDR空間,并將新程序在DDR空間中的地址記為E ;
[0079] ⑦查看是否搬移完畢,如果搬移完畢轉(zhuǎn)至⑧,否則返回執(zhí)行⑥;
[0080] ⑧程序跳轉(zhuǎn)至新任務(wù)在DDR空間中的入口地址E ;
[0081] ⑨將新任務(wù)的數(shù)據(jù)搬移到DDR空間;
[0082] ⑩查看是否搬移完畢,如果搬移完畢則完成切換過(guò)程并開始新任務(wù)的執(zhí)行,否則 返回執(zhí)行⑨。
[0083] 工作時(shí),用戶只需要按照上述切換地址交叉方案的流程編寫程序、修改地址交叉 方案寄存器的某一位或幾位,就可以配置并改變DDR控制器間的地址交叉方案,進(jìn)行多DDR 控制器間的訪問(wèn)控制。
[0084] 以下以在多核處理器系統(tǒng)中通過(guò)8個(gè)末級(jí)Cache子體訪問(wèn)4個(gè)DDR控制器為例對(duì) 本發(fā)明進(jìn)行進(jìn)一步說(shuō)明。
[0085] 如圖4所示,本發(fā)明具體實(shí)施例中具有多個(gè)DDR控制器的多核處理器系統(tǒng),包括多 核處理器核(CoreO, Corel,…,Core7)、片上網(wǎng)絡(luò)(Network on Chip,NoC)、末級(jí) Cache 和 4 個(gè) DDR 控制器(DDRC0, DDRC1,DDRC2 和 DDRC3),其中多核處理器核(CoreO, Corel,…, Core7)通過(guò)片上網(wǎng)絡(luò)NoC末級(jí)Cache相連,末級(jí)Cache采用分布式設(shè)計(jì)方法且由多個(gè)子體 LLC0,LLC1,...,LLC7 構(gòu)成;末級(jí) Cache 另一端與 DDR控制器(DDRC0,DDRC1,DDRC2 和 DDRC3) 相連且每?jī)蓚€(gè)LLC子體連接了一個(gè)DDR控制器。
[0086] 如圖5所示,本發(fā)明具體實(shí)施例(4個(gè)DDR控制器)中支持地址交叉方案配置的多 DDR訪問(wèn)控制方法原理,系統(tǒng)請(qǐng)求通過(guò)8個(gè)LLC訪問(wèn)4個(gè)DDR控制器(DDRC0, DDRC1,DDRC2 和DDRC3),假設(shè)請(qǐng)求源的訪問(wèn)DDR的地址為A,A的地址寬度為從0到H-1共Η位;地址交 叉方案配置寄存器AISR中組合模式設(shè)置域Mode包含兩位,并且L = LOI_Grain+log2M,其 中Μ為末級(jí)Cache的行寬度的字節(jié)數(shù)。地址交叉方案可配置為高位地址交叉方案、低位地 址交叉方案、以及高位地址交叉方案和低位地址交叉方案組合模式,因此在整個(gè)DDR空間 存在著采用高位地址交叉方案的高位地址交叉區(qū)間和采用低位地址交叉方案的低位地址 交叉區(qū)間兩個(gè)區(qū)域,高位或低位地址交叉區(qū)間的容量配置為零時(shí),則DDR空間按照單一的 低位或高位地址交叉方案分布外存地址空間。
[0087] 本實(shí)施例中,高位地址交叉空間在前、低位地址交叉空間在后,當(dāng)然在其他實(shí)施例 中,高位地址交叉區(qū)間與低位地址交叉區(qū)間的位置還可為其他組織方式。如圖5所示,在 高位地址交叉區(qū)間中采用高位地址交叉方案,整個(gè)高位地址交叉區(qū)間的前1/4連續(xù)的空間 (0,1,...,M0-1)在DDR0控制器中連續(xù)分布;接下來(lái)的1/4連續(xù)的空間(M0,M+1,…,M1-1) 在DDR1控制器中連續(xù)分布;再1/4連續(xù)的空間(Ml,M1+1,…,M2-1)在DDR2控制器中連 續(xù)分布;最后的1/4連續(xù)的空間(M2, M2+1,…,M3-1)在DDR3控制器中連續(xù)分布,則使得 連續(xù)的地址在高位地址交叉區(qū)間形成了縱向的折線(如圖中虛線表示的折線箭頭所示)。 在低位地址交叉區(qū)間中采用低位地址交叉方案,地址空間以基本塊為單位連續(xù)的分布在4 個(gè)DDR控制器上(圖中一個(gè)填充陰影塊即為一個(gè)基本塊),基本塊的大小由地址交叉方案 配置寄存器AISR中低位交叉粒度設(shè)置域L0I_Grain決定(基本塊包含的字節(jié)數(shù)=2 TM,T 為L(zhǎng)0I_Grain的值,Μ為末級(jí)Cache -個(gè)Cache行包含的字節(jié)數(shù)),基本塊的分布方式如圖 所示,基本塊M3在DDR0控制器中分布,下一個(gè)基本塊M3+1在DDR1控制器中分布,下一個(gè) 基本塊M3+2在DDR2控制器中分布,下一個(gè)基本塊M3+3在DDR3控制器中分布,下一個(gè)基本 塊M3+4在DDR0控制器中分布……,則使得連續(xù)的地址在低位地址交叉區(qū)間形成了橫向的 折線(如圖中虛線表示的橫向箭頭所示)。
[0088] 本實(shí)施例中,每個(gè)請(qǐng)求訪問(wèn)DDR空間的請(qǐng)求源根據(jù)地址交叉方案配置寄存器AISR 的值生成路由判斷地址BJA,如圖6所示,具體過(guò)程如下:首先判斷高位地址交叉使能域 En的值是否為1,如果不為1,則路由判斷地址BJA = A[L+2:L],否則根據(jù)組合模式設(shè)置 域Mode的值進(jìn)行進(jìn)一步判斷,且如果組合模式設(shè)置域Mode = 2' b00,即模式配置值N = 0,則整個(gè)DDR空間全部按照高位地址交叉方案組織,則路由判斷地址BJA = A[H-1 :H-3]; 如果Mode = 2' b01,即模式配置值N = 1,則整個(gè)DDR空間的前1/2按照高位地址交叉方 案組織,后1/2按照低位地址交叉方案組織,且如果A[H-1]為0,則路由判斷地址BJA = A[H-2:H-4],否則路由判斷地址BJA = A[L+2:L];如果組合模式設(shè)置域Mode = 2' blO,即 模式配置值N = 2,則整個(gè)DDR空間的前1/4按照高位地址交叉方案組織,后3/4按照低位 地址交叉方案組織,且如果A[H-1 :H-2]為0,則路由判斷地址BJA = A[H-3:H-5],否則路由 判斷地址BJA = A[L+2:L];如果組合模式設(shè)置域Mode = 2' bll,即模式配置值N = 3,則 整個(gè)DDR的前1/8按照高位地址交叉方案組織,后7/8按照低位地址交叉方案組織,且如果 A [H-1 :H-3]為0,則路由判斷地址BJA = A [H-4: H-6],否則路由判斷地址BJA = A [L+2: L]。
[0089] 本實(shí)施例中,路由判斷地址BJA根據(jù)具體映射函數(shù)映射至目標(biāo)DDR控制器對(duì)應(yīng)的 末級(jí)Cache子體,如圖7、8所示。本實(shí)施例中路由判斷地址BJA與目標(biāo)設(shè)備LLC子體的路 由映射關(guān)系,如果當(dāng)前請(qǐng)求地址落在高位地址交叉區(qū)間,如圖7所示,則LLC子體的編號(hào)和 路由判斷地址BJA的值完全一一對(duì)應(yīng);如果當(dāng)前請(qǐng)求地址落在低位地址交叉區(qū)間,如圖8所 示,則路由判斷地址BJA的值為0,1,…,7時(shí),LLC子體的編號(hào)分別為:0,2,4,6,1,3,5,7。
[0090] 本實(shí)施例多核處理器系統(tǒng)中LLC子體和多核處理器核Core均作為片上網(wǎng)絡(luò)NoC 的節(jié)點(diǎn)進(jìn)行互聯(lián),每?jī)蓚€(gè)LLC子體連接了一個(gè)DDR控制器,當(dāng)然在其他實(shí)施例中LLC子體、 多核處理器核Core、片上網(wǎng)絡(luò)NoC與DDR控制器之間還可采用其他連接及組織方式,不同的 連接或組織方式所對(duì)應(yīng)的路由映射策略略有不同,其原理與上述一致。
[0091] 采用上述方案,采用可配置的地址交叉方案僅增加了地址交叉方案配置寄存器 AISR的開銷、片上網(wǎng)絡(luò)根據(jù)地址交叉方案配置寄存器AISR對(duì)報(bào)文或請(qǐng)求進(jìn)行路由選擇時(shí) 的邏輯開銷等,這些硬件由較小寬度的觸發(fā)器或小規(guī)模的選擇邏輯組成,所需硬件面積和 功耗開銷較小且不影響系統(tǒng)的關(guān)鍵路徑延時(shí)。
[0092] 本實(shí)施例還提供一種支持地址交叉方案配置的多DDR間訪問(wèn)控制裝置,包括:
[0093] 地址交叉方案配置模塊,用于將外存地址空間在多個(gè)DDR控制器間分布的地址交 叉方案配置為高位地址交叉方案、低位地址交叉方案或高位地址交叉方案與低位地址交叉 方案組合模式;
[0094] 訪問(wèn)路由選擇模塊,用于當(dāng)請(qǐng)求訪問(wèn)DDR空間時(shí),根據(jù)配置的所述地址交叉方案 將請(qǐng)求源訪問(wèn)DDR空間的訪存地址映射至目標(biāo)DDR控制器對(duì)應(yīng)的末級(jí)Cache子體中。
[0095] 本實(shí)施例中,地址交叉方案配置模塊包括高位交叉使能設(shè)置單元、組合模式設(shè)置 單元以及低位交叉粒度設(shè)置單元;高位交叉使能設(shè)置單元使能高位地址交叉方案,組合模 式設(shè)置單元設(shè)置高位地址交叉方案與低位地址交叉方案組合模式中模式配置值N,低位交 叉粒度用于設(shè)置低位地址交叉方案中外存地址空間在兩個(gè)相鄰DDR控制器之間的間隔單 位。
[0096] 本實(shí)施例中,地址交叉方案配置模塊通過(guò)具有高位地址交叉使能域En、組合模式 設(shè)置域Mode和低位交叉粒度設(shè)置域LOI-Grain的地址交叉方案配置寄存器AISR實(shí)現(xiàn),地 址交叉方案配置寄存器AISR結(jié)構(gòu)如上所述。
[0097] 本實(shí)施例中,訪問(wèn)路由選擇模塊包括路由判斷地址生成單元和路由映射單元,路 由判斷地址生成單元根據(jù)據(jù)請(qǐng)求源的訪存地址和所述地址交叉方案配置模塊配置的地址 交叉方案生成路由判斷地址BJA,路由判斷地址BJA用于進(jìn)行路由選擇;路由映射單元根據(jù) 請(qǐng)求源的訪求地址的地址范圍及映射函數(shù)將路由判斷地址BJA映射至對(duì)應(yīng)的目標(biāo)DDR控制 器對(duì)應(yīng)的末級(jí)Cache子體。
[0098] 本實(shí)施例支持地址交叉方案配置的多DDR間訪問(wèn)控制裝置與上述支持地址交叉 方案配置的多DDR間訪問(wèn)控制方法對(duì)應(yīng),其具有與上述支持地址交叉方案配置的多DDR間 訪問(wèn)控制方法對(duì)應(yīng)的結(jié)構(gòu)且工作原理一致,在此不再贅述。
[〇〇99] 上述只是本發(fā)明的較佳實(shí)施例,并非對(duì)本發(fā)明作任何形式上的限制。雖然本發(fā)明 已以較佳實(shí)施例揭露如上,然而并非用以限定本發(fā)明。任何熟悉本領(lǐng)域的技術(shù)人員,在不脫 離本發(fā)明技術(shù)方案范圍的情況下,都可利用上述揭示的技術(shù)內(nèi)容對(duì)本發(fā)明技術(shù)方案做出許 多可能的變動(dòng)和修飾,或修改為等同變化的等效實(shí)施例。因此,凡是未脫離本發(fā)明技術(shù)方案 的內(nèi)容,依據(jù)本發(fā)明技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所做的任何簡(jiǎn)單修改、等同變化及修飾,均應(yīng)落 在本發(fā)明技術(shù)方案保護(hù)的范圍內(nèi)。
【權(quán)利要求】
1. 一種支持地址交叉方案配置的多DDR訪問(wèn)控制方法,其特征在于,具體實(shí)施步驟為: 1) 將外存地址空間在多個(gè)DDR控制器間分布的地址交叉方案配置為高位地址交叉方 案、低位地址交叉方案或高位地址交叉方案與低位地址交叉方案組合模式; 2) 當(dāng)請(qǐng)求訪問(wèn)DDR空間時(shí),根據(jù)配置的所述地址交叉方案將請(qǐng)求源訪問(wèn)DDR空間的訪 存地址映射至目標(biāo)DDR控制器對(duì)應(yīng)的末級(jí)Cache子體中。
2. 根據(jù)權(quán)利要求1所述的支持地址交叉方案配置的多DDR訪問(wèn)控制方法,其特征在于, 步驟1)的具體實(shí)施步驟為: 1. 1)判斷當(dāng)前應(yīng)用是否需要啟用高位地址交叉方案,若為是,設(shè)置為啟用高位地址交 叉方案,轉(zhuǎn)入執(zhí)行步驟1. 2);若為否,設(shè)置為不啟用高位地址交叉方案并將所有的外存地 址空間的地址交叉方案配置為低位地址交叉方案,轉(zhuǎn)入執(zhí)行步驟1. 3); 1. 2)判斷當(dāng)前應(yīng)用是否還需要啟用低位地址交叉方案,若為是,將地址交叉方案配置 為高位地址交叉方案與低位地址交叉方案組合模式并設(shè)置模式配置值N且N不為0,其中 外存地址空間中1/2 N的地址空間的地址交叉方案配置為高位地址交叉方案,其余(1-1/2n) 的地址空間的地址交叉方案配置為低位地址交叉方案,轉(zhuǎn)入執(zhí)行步驟1. 3);若為否,設(shè)置 高位地址交叉方案與低位地址交叉方案組合模式的模式配置值N為0,將所有的外存地址 空間的地址交叉方案配置為高位地址交叉方案,轉(zhuǎn)入執(zhí)行步驟2); 1. 3)設(shè)置低位地址交叉方案中外存地址空間在兩個(gè)相鄰DDR控制器之間的間隔單位, 轉(zhuǎn)入執(zhí)行步驟2)。
3. 根據(jù)權(quán)利要求2所述的支持地址交叉方案配置的多DDR訪問(wèn)控制方法,其特征在于, 所述步驟1)的具體實(shí)施方法為:定義包含用于設(shè)置是否需要啟用高位地址交叉方案的高 位地址交叉使能域、用于設(shè)置高位地址交叉方案與低位地址交叉方案組合模式中模式配置 值N的組合模式設(shè)置域以及用于設(shè)置低位地址交叉方案中外存地址空間在兩個(gè)相鄰DDR控 制器之間間隔單位的低位交叉粒度設(shè)置域的地址交叉方案配置寄存器,并通過(guò)所述地址交 叉方案配置寄存器配置所述地址交叉方案。
4. 根據(jù)權(quán)利要求3所述的支持地址交叉方案配置的多DDR訪問(wèn)控制方法,其特征在于, 所述通過(guò)所述地址交叉方案配置寄存器配置所述地址交叉方案的具體實(shí)施方法為:若需要 配置為低位地址交叉方案時(shí),設(shè)置高位地址交叉使能域的值為〇 ;若需要配置為高位地址 交叉方案時(shí),設(shè)置高位地址交叉使能域的值為1并通過(guò)組合模式設(shè)置域設(shè)置模式配置值N 為0 ;若需要配置為高位地址交叉方案與低位地址交叉方案組合模式時(shí),設(shè)置高位地址交 叉使能域的值為1并通過(guò)組合模式設(shè)置域設(shè)置模式配置值N且N不為0 ;通過(guò)低位交叉粒 度設(shè)置域設(shè)置低位地址交叉方案中外存地址空間在兩個(gè)相鄰DDR控制器之間的間隔單位。
5. 根據(jù)權(quán)利要求2或3或4所述的支持地址交叉方案配置的多DDR訪問(wèn)控制方法,其 特征在于,所述步驟2)的具體實(shí)施步驟為: 2. 1)判斷步驟1)中配置的地址交叉方案,并根據(jù)請(qǐng)求源的訪求地址A生成用于進(jìn)行目 標(biāo)DDR控制器路由判斷的路由判斷地址BJA,A為包括0?H-1位的請(qǐng)求源的訪求地址且寬 度為H,其中若配置的地址交叉方案為低位地址交叉方案時(shí),轉(zhuǎn)入執(zhí)行步驟2. 2);若為高位 地址交叉方案時(shí),轉(zhuǎn)入執(zhí)行步驟2. 3);若為高位地址交叉方案與低位地址交叉方案組合模 式時(shí),轉(zhuǎn)入執(zhí)行步驟2.4); 2. 2)路由判斷地址BJA = A[L-l+log2W:L],轉(zhuǎn)入執(zhí)行步驟2. 5); 2. 3)路由判斷地址BJA = A[H-l:H-log2W],轉(zhuǎn)入執(zhí)行步驟2. 5); 2.4)若 A[H-1:H-N] = 0,則路由判斷地址 BJA = A[H-N-l:H-N-log2W];若 A[H-1:H-N]關(guān)0,則路由判斷地址BJA = A[L-l+log2W:L],轉(zhuǎn)入執(zhí)行步驟2. 5); 2. 5)根據(jù)請(qǐng)求源的訪求地址的地址范圍及映射函數(shù)將路由判斷地址BJA映射至目標(biāo) DDR控制器對(duì)應(yīng)的末級(jí)Cache子體; 其中W為末級(jí)Cache包含的子體的總數(shù)目,N為模式配置值,LOI_Grain為低位地址交 叉方案中外存地址空間在兩個(gè)相鄰DDR控制器之間間隔單位,Μ為末級(jí)Cache中一個(gè)Cache 行包含的字節(jié)數(shù),且L = LOI_Grain+log2M。
6. 根據(jù)權(quán)利要求5所述的支持地址交叉方案配置的多DDR訪問(wèn)控制方法,其特征在于, 所述步驟2. 5)的具體實(shí)施方法為:判斷當(dāng)前請(qǐng)求源的訪求地址的地址范圍,若地址范圍在 配置為高位地址交叉方案的地址區(qū)間內(nèi),則所述路由判斷地址BJA的值、與DDR控制器連接 的末級(jí)Cache子體一一對(duì)應(yīng)進(jìn)行映射;若地址范圍在配置為低位地址交叉方案的地址區(qū)間 內(nèi),則所述路由判斷地址BJA的值、與DDR控制器連接的末級(jí)Cache子體編號(hào)按照循環(huán)模T 進(jìn)行映射,映射公式如下所示 : 末級(jí)Cache子體編號(hào)={, ; [(BJA*P)%(W-1)其它值 其中W為末級(jí)Cache包含的子體的總數(shù)目,P為每一個(gè)DDR控制器對(duì)應(yīng)的末級(jí)Cache子 體的數(shù)目。
7. 根據(jù)權(quán)利所述1?4中任意一項(xiàng)所述的支持地址交叉方案配置的多DDR訪問(wèn)控制方 法,其特征在于,還包括執(zhí)行下一個(gè)任務(wù)時(shí)的地址交叉方案切換流程,步驟為: 3. 1)將DDR空間中上一個(gè)任務(wù)的結(jié)果數(shù)據(jù)搬移至非DDR空間,轉(zhuǎn)入執(zhí)行步驟3. 2); 3. 2)將Cache系統(tǒng)中包含DDR空間副本的Cache行設(shè)置為無(wú)效,轉(zhuǎn)入執(zhí)行步驟3. 3); 3. 3)配置下一個(gè)任務(wù)對(duì)應(yīng)的地址交叉方案,轉(zhuǎn)入執(zhí)行步驟3.4); 3. 4)將下一個(gè)任務(wù)的程序按照配置的地址交叉方案搬移至對(duì)應(yīng)的DDR空間,并標(biāo)記所 述程序在DDR空間中的地址,轉(zhuǎn)入執(zhí)行步驟3.5); 3. 5)跳轉(zhuǎn)至所述程序在DDR空間中的地址,將下一個(gè)任務(wù)的數(shù)據(jù)搬移到DDR空間,完成 切換過(guò)程并開始執(zhí)行任務(wù)。
8. -種支持地址交叉方案配置的多DDR間訪問(wèn)控制裝置,其特征在于包括: 地址交叉方案配置模塊,用于將外存地址空間在多個(gè)DDR控制器間分布的地址交叉方 案配置為高位地址交叉方案、低位地址交叉方案或高位地址交叉方案與低位地址交叉方案 組合模式; 訪問(wèn)路由選擇模塊,用于當(dāng)請(qǐng)求訪問(wèn)DDR空間時(shí),根據(jù)配置的所述地址交叉方案將請(qǐng) 求源訪問(wèn)DDR空間的訪存地址映射至目標(biāo)DDR控制器對(duì)應(yīng)的末級(jí)Cache子體中。
9. 根據(jù)權(quán)利要求8所述的支持地址交叉方案配置的多DDR訪問(wèn)控制裝置,其特征在于: 所述地址交叉方案配置模塊包括高位交叉使能設(shè)置單元、組合模式設(shè)置單元以及低位交叉 粒度設(shè)置單元;所述高位交叉使能設(shè)置單元設(shè)置是否需要啟用高位地址交叉方案的,所述 組合模式設(shè)置單元設(shè)置高位地址交叉方案與低位地址交叉方案組合模式中模式配置值N, 所述低位交叉粒度用于設(shè)置低位地址交叉方案中外存地址空間在兩個(gè)相鄰DDR控制器之 間的間隔單位。
10.根據(jù)權(quán)利要求8或9所述的支持地址交叉方案配置的多DDR訪問(wèn)控制裝置,其特征 在于:所述訪問(wèn)路由選擇模塊包括路由判斷地址生成單元和路由映射單元,所述路由判斷 地址生成單元根據(jù)請(qǐng)求源的訪存地址和所述地址交叉方案配置模塊配置的地址交叉方案 生成路由判斷地址BJA ;路由映射單元根據(jù)請(qǐng)求源的訪求地址的地址范圍及映射函數(shù)將路 由判斷地址BJA映射至對(duì)應(yīng)的目標(biāo)DDR控制器對(duì)應(yīng)的末級(jí)Cache子體中。
【文檔編號(hào)】G06F21/62GK104112102SQ201410307056
【公開日】2014年10月22日 申請(qǐng)日期:2014年6月30日 優(yōu)先權(quán)日:2014年6月30日
【發(fā)明者】劉勝, 陳海燕, 萬(wàn)江華, 陳勝剛, 陳書明, 郭陽(yáng), 葛磊磊, 雷元武, 馬勝, 王耀華 申請(qǐng)人:中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué)