欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

訪存命令調(diào)度方法、裝置和系統(tǒng)與流程

文檔序號(hào):12802033閱讀:283來(lái)源:國(guó)知局
訪存命令調(diào)度方法、裝置和系統(tǒng)與流程

本發(fā)明涉及計(jì)算機(jī)技術(shù),尤其涉及一種訪存命令調(diào)度方法、裝置和系統(tǒng)。



背景技術(shù):

計(jì)算機(jī)體系中的存儲(chǔ)系統(tǒng),多采用雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(doubledataratesynchronousdynamicrandomaccessmemory;簡(jiǎn)稱:ddrsdram)設(shè)備作為主存(也就是內(nèi)存),主存與中央處理器(centralprocessingunit;簡(jiǎn)稱:cpu)、顯卡和千兆以太網(wǎng)卡等訪存設(shè)備之間通過(guò)內(nèi)存控制器連接。內(nèi)存控制器接收來(lái)自訪存設(shè)備的訪存命令,然后將其轉(zhuǎn)換成對(duì)內(nèi)存的操作命令,并針對(duì)讀命令返回?cái)?shù)據(jù)或針對(duì)寫命令返回響應(yīng)給請(qǐng)求來(lái)源。所有對(duì)內(nèi)存的操作都需要遵守嚴(yán)格的時(shí)序規(guī)范,讀寫內(nèi)存的操作為滿足時(shí)序規(guī)范帶來(lái)的延遲制約了整個(gè)計(jì)算機(jī)系統(tǒng)的訪存性能。為了匹配多核處理器的高性能需求,內(nèi)存控制器需要對(duì)訪存命令進(jìn)行調(diào)度。

內(nèi)存由多個(gè)內(nèi)存塊(rank)組成,每個(gè)內(nèi)存塊由多個(gè)內(nèi)存顆粒并聯(lián)組成,通過(guò)片選(chipselect;簡(jiǎn)稱:cs)信號(hào)選擇不同的內(nèi)存塊。每個(gè)內(nèi)存塊一般是包含8個(gè)體(bank),每個(gè)體包括存儲(chǔ)陣列和行緩存。對(duì)內(nèi)存顆粒的任何讀寫操作都只能在行緩存中進(jìn)行,因此,需要被讀寫的存儲(chǔ)單元的數(shù)據(jù)所在的行的數(shù)據(jù)都會(huì)被放到行緩存中。對(duì)一個(gè)內(nèi)存單元進(jìn)行讀寫操作,包括下面三個(gè)步驟:1、頁(yè)打開:從存儲(chǔ)陣列中找到需要進(jìn)行讀操作或者寫操作的行,然后將該行中存儲(chǔ)的數(shù)據(jù)寫到行緩存中;2、對(duì)行緩存中的數(shù)據(jù)進(jìn)行讀操作或者寫操作;3、頁(yè)預(yù)充電:將行緩存中的數(shù)據(jù)寫回存儲(chǔ)陣列中的對(duì)應(yīng)的行。如果兩個(gè)訪存命令是對(duì)同一個(gè)片選信號(hào)下的內(nèi)存塊的同一個(gè)體的同一行的操作,則稱為行命中;如果兩個(gè)訪存命令是對(duì)同一個(gè)片選信號(hào)下的內(nèi)存塊的同一個(gè)體的不同行的操作,則稱為行沖突。

現(xiàn)有技術(shù)中,內(nèi)存控制器對(duì)訪存命令進(jìn)行調(diào)度時(shí),主要從已有命令之間的行命中或行沖突關(guān)系、待調(diào)度命令與已有命令之間的行命中或行沖突關(guān)系 兩方面進(jìn)行考慮來(lái)對(duì)待調(diào)度命令進(jìn)行調(diào)度。

但是,上述技術(shù)中在進(jìn)行訪存命令調(diào)度時(shí)考慮并不全面,無(wú)法保證某些訪存設(shè)備對(duì)訪存帶寬和訪存延時(shí)的需求,會(huì)導(dǎo)致計(jì)算機(jī)系統(tǒng)出現(xiàn)無(wú)法正常工作的現(xiàn)象。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明提供一種訪存命令調(diào)度方法、裝置和系統(tǒng),以提高計(jì)算機(jī)系統(tǒng)的運(yùn)行穩(wěn)定性和減少平均訪存延遲。

本發(fā)明提供一種訪存命令調(diào)度方法,包括:

內(nèi)存控制器接收訪存設(shè)備發(fā)送的待調(diào)度訪存命令,其中,所述待調(diào)度訪存命令中包含所述待調(diào)度訪存命令的原始優(yōu)先級(jí);

所述內(nèi)存控制器根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系、所述待調(diào)度訪存命令與所述調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系,以及所述待調(diào)度訪存命令的原始優(yōu)先級(jí)與所述調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將所述待調(diào)度訪存命令插入到所述調(diào)度隊(duì)列中。

進(jìn)一步地,所述內(nèi)存控制器根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系、所述待調(diào)度訪存命令與所述調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系,以及所述待調(diào)度訪存命令的原始優(yōu)先級(jí)與所述調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將所述待調(diào)度訪存命令插入到所述調(diào)度隊(duì)列中,包括:

所述內(nèi)存控制器根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的行沖突和/或行命中關(guān)系、所述待調(diào)度訪存命令與所述調(diào)度隊(duì)列中已有訪存命令之間的行沖突和/或行命中關(guān)系,以及所述待調(diào)度訪存命令的原始優(yōu)先級(jí)與所述調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將所述待調(diào)度訪存命令插入到所述調(diào)度隊(duì)列中。

進(jìn)一步地,所述內(nèi)存控制器根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的行沖突和/或行命中關(guān)系、所述待調(diào)度訪存命令與所述調(diào)度隊(duì)列中已有訪存命令之間的行沖突和/或行命中關(guān)系,以及所述待調(diào)度訪存命令的原始優(yōu)先級(jí)與所述調(diào)度隊(duì)列已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將所述待調(diào)度訪存命令插入到所述調(diào)度隊(duì)列中,包括:

若調(diào)度隊(duì)列中已有訪存命令之間具有行沖突和/或行命中關(guān)系,則根據(jù)所 述行沖突和/或行命中關(guān)系確定第一候選位置,根據(jù)所述待調(diào)度訪存命令的原始優(yōu)先級(jí)與所述調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,確定優(yōu)先級(jí)候選位置;若所述第一候選位置之前的位置與所述優(yōu)先級(jí)候選位置有第一交集,將所述待調(diào)度訪存命令插入所述第一交集中距離隊(duì)頭最近的位置;若所述第一候選位置之前的位置與所述優(yōu)先級(jí)候選位置沒有交集,所述第一候選位置與所述優(yōu)先級(jí)候選位置有第二交集,將所述待調(diào)度訪存命令插入所述第二交集中距離隊(duì)頭最近的位置;若所述第一候選位置與所述優(yōu)先級(jí)候選位置沒有交集,則將所述待調(diào)度訪存命令插入所述第一候選位置中距離隊(duì)頭最近的位置。

進(jìn)一步地,所述內(nèi)存控制器根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的行沖突和/或行命中關(guān)系、所述待調(diào)度訪存命令與所述調(diào)度隊(duì)列中已有訪存命令之間的行沖突和/或行命中關(guān)系,以及所述待調(diào)度訪存命令的原始優(yōu)先級(jí)與所述調(diào)度隊(duì)列已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將所述待調(diào)度訪存命令插入到所述調(diào)度隊(duì)列中,包括:

若調(diào)度隊(duì)列中已有訪存命令之間沒有行沖突和/或行命中關(guān)系,所述待調(diào)度訪存命令與所述調(diào)度隊(duì)列中已有訪存命令之間具有行沖突和/或行命中關(guān)系,則根據(jù)所述待調(diào)度訪存命令與所述調(diào)度隊(duì)列中已有訪存命令之間行沖突和/或行命中關(guān)系確定第二候選位置,以及根據(jù)所述待調(diào)度訪存命令的原始優(yōu)先級(jí)與所述調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系確定優(yōu)先級(jí)候選位置,若所述第二候選位置與所述優(yōu)先級(jí)候選位置有第三交集,則將所述待調(diào)度訪存命令插入所述第三交集中距離隊(duì)頭最近的位置,若所述第二候選位置與所述優(yōu)先級(jí)候選位置沒有交集,則將所述待調(diào)度訪存命令插入第二候選位置中距離隊(duì)頭最近的位置。

進(jìn)一步地,所述內(nèi)存控制器根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的行沖突和/或行命中關(guān)系、所述待調(diào)度訪存命令與所述調(diào)度隊(duì)列中已有訪存命令之間的行沖突和/或行命中關(guān)系,以及所述待調(diào)度訪存命令的原始優(yōu)先級(jí)與所述調(diào)度隊(duì)列已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將所述待調(diào)度訪存命令插入到所述調(diào)度隊(duì)列中,包括:

若調(diào)度隊(duì)列中已有訪存命令之間沒有行沖突和/或行命中關(guān)系,所述待調(diào)度訪存命令與所述調(diào)度隊(duì)列中已有訪存命令之間沒有行沖突和/或行命中關(guān) 系,則根據(jù)所述待調(diào)度訪存命令的原始優(yōu)先級(jí)與所述調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,確定優(yōu)先級(jí)候選位置,將所述待調(diào)度訪存命令插入距離隊(duì)頭最近的優(yōu)先級(jí)候選位置。

進(jìn)一步地,所述根據(jù)所述待調(diào)度訪存命令的原始優(yōu)先級(jí)與所述調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,確定優(yōu)先級(jí)候選位置,包括:

所述內(nèi)存控制器比較所述待調(diào)度訪存命令的原始優(yōu)先級(jí)和所述調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí);

所述內(nèi)存控制器確定所述調(diào)度隊(duì)列中距離隊(duì)頭最遠(yuǎn)的已有訪存命令的當(dāng)前優(yōu)先級(jí)大于所述待調(diào)度訪存命令的原始優(yōu)先級(jí)的已有訪存命令之后的所有位置為所述優(yōu)先級(jí)候選位置。

進(jìn)一步地,所述方法還包括:

根據(jù)所述已有訪存命令的原始優(yōu)先級(jí)、所述已有訪存命令在所述調(diào)度隊(duì)列中的等待時(shí)間、預(yù)設(shè)參數(shù)及訪存命令優(yōu)先級(jí)的上限獲取所述調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)。

進(jìn)一步地,所述根據(jù)所述已有訪存命令的原始優(yōu)先級(jí)、所述已有訪存命令在所述調(diào)度隊(duì)列中的等待時(shí)間、預(yù)設(shè)參數(shù)及訪存命令優(yōu)先級(jí)的上限獲取所述調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí),包括:

根據(jù)公式獲取所述調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí),其中,p0是所述已有訪存命令的原始優(yōu)先級(jí),td是所述已有訪存命令在調(diào)度隊(duì)列中的等待時(shí)間,k是預(yù)設(shè)參數(shù),表示在等待k個(gè)周期后,優(yōu)先級(jí)加1,n是訪存命令優(yōu)先級(jí)的上限,td/k向下取整。

進(jìn)一步地,所述內(nèi)存控制器根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系、所述待調(diào)度訪存命令與所述調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系,以及所述待調(diào)度訪存命令的原始優(yōu)先級(jí)與所述調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將所述待調(diào)度訪存命令插入到所述調(diào)度隊(duì)列中,包括:

所述內(nèi)存控制器確定所述待調(diào)度訪存命令為讀命令或?qū)懨睿?/p>

若所述內(nèi)存控制器確定所述待調(diào)度訪存命令為讀命令,內(nèi)存控制器根據(jù)讀命令調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系、讀命令待調(diào)度訪存命令與所述讀命令調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系,以及所述讀命令待調(diào)度訪存命 令的原始優(yōu)先級(jí)與所述讀命令調(diào)度隊(duì)列中已有的訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將所述讀命令待調(diào)度訪存命令插入到所述讀命令調(diào)度隊(duì)列中;

若所述內(nèi)存控制器確定所述待調(diào)度訪存命令為寫命令,內(nèi)存控制器根據(jù)寫命令調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系、寫命令待調(diào)度訪存命令與所述寫命令調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系,以及所述寫命令待調(diào)度訪存命令的原始優(yōu)先級(jí)與所述寫命令調(diào)度隊(duì)列中已有的訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將所述寫命令待調(diào)度訪存命令插入到所述寫命令調(diào)度隊(duì)列中。

本發(fā)明還提供一種訪存命令調(diào)度裝置,包括:

接收模塊,用于接收訪存設(shè)備發(fā)送的待調(diào)度訪存命令,其中,所述待調(diào)度訪存命令中包含所述待調(diào)度訪存命令的原始優(yōu)先級(jí);

插入模塊,用于根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系、所述待調(diào)度訪存命令與所述調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系,以及所述待調(diào)度訪存命令的原始優(yōu)先級(jí)與所述調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將所述待調(diào)度訪存命令插入到所述調(diào)度隊(duì)列中。

進(jìn)一步地,所述插入模塊具體用于:

根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的行沖突和/或行命中關(guān)系、所述待調(diào)度訪存命令與所述調(diào)度隊(duì)列中已有訪存命令之間的行沖突和/或行命中關(guān)系,以及所述待調(diào)度訪存命令的原始優(yōu)先級(jí)與所述調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將所述待調(diào)度訪存命令插入到所述調(diào)度隊(duì)列中。

進(jìn)一步地,所述裝置還包括:

獲取模塊,用于根據(jù)所述已有訪存命令的原始優(yōu)先級(jí)、所述已有訪存命令在所述調(diào)度隊(duì)列中的等待時(shí)間、預(yù)設(shè)參數(shù)及訪存命令優(yōu)先級(jí)的上限獲取所述調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)。

進(jìn)一步地,所述插入模塊還用于:

確定所述待調(diào)度訪存命令為讀命令或?qū)懨睿?/p>

若所述待調(diào)度訪存命令為讀命令,根據(jù)讀命令調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系、讀命令待調(diào)度訪存命令與所述讀命令調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系,以及所述讀命令待調(diào)度訪存命令的原始優(yōu)先級(jí)與所述讀命令調(diào)度隊(duì)列中已有的訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將所述讀命令待調(diào)度訪存命令插入到所述讀命令調(diào)度隊(duì)列中;

若所述待調(diào)度訪存命令為寫命令,根據(jù)寫命令調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系、寫命令待調(diào)度訪存命令與所述寫命令調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系,以及所述寫命令待調(diào)度訪存命令的原始優(yōu)先級(jí)與所述寫命令調(diào)度隊(duì)列中已有的訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將所述寫命令待調(diào)度訪存命令插入到所述寫命令調(diào)度隊(duì)列中。

本發(fā)明還提供一種訪存命令調(diào)度系統(tǒng),包括訪存設(shè)備和如上所述的訪存命令調(diào)度裝置。

本發(fā)明提供的訪存命令調(diào)度方法、裝置和系統(tǒng),通過(guò)內(nèi)存控制器接收訪存設(shè)備發(fā)送的待調(diào)度訪存命令,待調(diào)度訪存命令中包含待調(diào)度訪存命令的原始優(yōu)先級(jí),內(nèi)存控制器根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系、待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系,以及待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將待調(diào)度訪存命令插入到調(diào)度隊(duì)列中,可見,本實(shí)施例在進(jìn)行訪存命令調(diào)度時(shí),考慮到了訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)的關(guān)系以確定待調(diào)度訪存命令的插入位置,從而,能夠滿足不同的訪存設(shè)備的訪存帶寬和訪存延遲,提高了計(jì)算機(jī)系統(tǒng)的運(yùn)行穩(wěn)定性,減少了計(jì)算機(jī)系統(tǒng)的內(nèi)存總線的空閑率,增加了帶寬利用率,減少了平均訪存延遲。

附圖說(shuō)明

為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明訪存命令調(diào)度方法的應(yīng)用場(chǎng)景的結(jié)構(gòu)示意圖;

圖2為本發(fā)明訪存命令調(diào)度方法實(shí)施例一的流程示意圖;

圖3為本發(fā)明訪存命令調(diào)度方法實(shí)施例二的流程示意圖;

圖4為本發(fā)明訪存命令調(diào)度裝置實(shí)施例的結(jié)構(gòu)示意圖;

圖5為本發(fā)明訪存命令調(diào)度系統(tǒng)實(shí)施例的結(jié)構(gòu)示意圖。

具體實(shí)施方式

為使本發(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ù)的范圍。

圖1為本發(fā)明訪存命令調(diào)度方法的應(yīng)用場(chǎng)景的結(jié)構(gòu)示意圖。如圖1所示,本實(shí)施例提供的訪存命令調(diào)度方法可以應(yīng)用在計(jì)算機(jī)的存儲(chǔ)系統(tǒng)中。在多核計(jì)算機(jī)體系中,多個(gè)處理器101、顯卡102、千兆以太網(wǎng)卡103、串行外設(shè)接口(serialperipheralinterface;簡(jiǎn)稱:spi)106和硬盤107等訪存設(shè)備通過(guò)內(nèi)存控制器104訪問(wèn)內(nèi)存芯片105。處理器101、顯卡102及千兆以太網(wǎng)卡103對(duì)訪存帶寬和訪存延時(shí)的要求高;spi106和硬盤107對(duì)訪存帶寬和訪存延時(shí)的要求相對(duì)較低。本實(shí)施例提供的訪存命令調(diào)度方法通過(guò)內(nèi)存控制器執(zhí)行,以保證不同的訪存設(shè)備對(duì)訪存帶寬和訪存延時(shí)的需求,提高計(jì)算機(jī)系統(tǒng)運(yùn)行的穩(wěn)定性。

圖2為本發(fā)明訪存命令調(diào)度方法實(shí)施例一的流程示意圖。如圖2所示,本實(shí)施例提供的訪存命令調(diào)度方法包括:

s201:內(nèi)存控制器接收訪存設(shè)備發(fā)送的待調(diào)度訪存命令。

其中,待調(diào)度訪存命令中包含待調(diào)度訪存命令的原始優(yōu)先級(jí)。

具體地,不同的訪存設(shè)備對(duì)訪存帶寬和訪存延時(shí)有著不同的要求,體現(xiàn)在其訪存命令需要有不同的優(yōu)先級(jí)。訪存命令的原始優(yōu)先級(jí)體現(xiàn)了訪存設(shè)備的不同要求。例如,顯卡需要較高的訪存命令優(yōu)先級(jí),這意味著來(lái)自顯卡的訪存命令到達(dá)內(nèi)存控制器后,內(nèi)存控制器需要對(duì)該訪存命令進(jìn)行快速的響應(yīng),以免計(jì)算機(jī)系統(tǒng)出現(xiàn)黑屏。而硬盤作為外部存儲(chǔ)設(shè)備,對(duì)訪存要求較低,其訪存命令的響應(yīng)可以暫緩,因此為了保證顯卡等訪存要求高的設(shè)備的性能,可以給硬盤較低的訪存命令優(yōu)先級(jí)。

內(nèi)存控制器中已經(jīng)有一個(gè)調(diào)度隊(duì)列,調(diào)度隊(duì)列中已有訪存命令的排序是已經(jīng)經(jīng)過(guò)調(diào)度的,現(xiàn)內(nèi)存控制器接收到一個(gè)訪存設(shè)備上發(fā)送的訪存命令,需要對(duì)該訪存命令進(jìn)行調(diào)度,確定其需要插入在調(diào)度隊(duì)列中已有訪存命令的哪個(gè)位置才能提高整個(gè)計(jì)算機(jī)系統(tǒng)的運(yùn)行效率,將該新接收的訪存命令稱為待調(diào)度訪存命令。內(nèi)存控制器接收待調(diào)度訪存命令時(shí)其攜帶的優(yōu)先級(jí)為待調(diào)度 訪存命令的原始優(yōu)先級(jí)。本實(shí)施例提供的訪存命令調(diào)度方法中,計(jì)算機(jī)系統(tǒng)中的訪存命令的優(yōu)先級(jí)可以分為n個(gè)。n表示優(yōu)先級(jí)的上限。待調(diào)度訪存命令的原始優(yōu)先級(jí)可以由發(fā)起該待調(diào)度訪存命令的訪存設(shè)備根據(jù)自身對(duì)訪存帶寬和訪存延時(shí)的需求設(shè)置在待調(diào)度訪存命令中,也可以是由cpu分配給各個(gè)訪存設(shè)備的,訪存設(shè)備在發(fā)起訪存命令時(shí)將原始優(yōu)先級(jí)攜帶在待調(diào)度訪存命令中。舉例來(lái)說(shuō),假設(shè)n為5,由于硬盤對(duì)訪存性能要求較低,cpu分配給硬盤發(fā)起的訪存命令的原始優(yōu)先級(jí)可以為1;顯卡對(duì)訪存性能要求較高,cpu分配給顯卡發(fā)起的訪存命令的原始優(yōu)先級(jí)可以為4。

s202:內(nèi)存控制器根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系、待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系,以及待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將待調(diào)度訪存命令插入到調(diào)度隊(duì)列中。

具體地,需要說(shuō)明的是,調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)指的是已有訪存命令在調(diào)度隊(duì)列中等待一段時(shí)間后、當(dāng)內(nèi)存控制器接收到待調(diào)度訪存命令時(shí)的實(shí)際的優(yōu)先級(jí)。在一種實(shí)現(xiàn)方式中,可以根據(jù)已有訪存命令的原始優(yōu)先級(jí)、已有訪存命令在調(diào)度隊(duì)列中的等待時(shí)間、預(yù)設(shè)參數(shù)及訪存命令的優(yōu)先級(jí)的上限獲取調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)。

在一種實(shí)現(xiàn)方式中,內(nèi)存控制器可以根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的第一關(guān)系、待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間的第二關(guān)系,以及待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將待調(diào)度訪存命令插入到調(diào)度隊(duì)列中。其中,第一關(guān)系為行沖突和/或行命中關(guān)系,所述第二關(guān)系為行沖突和/或行命中關(guān)系。

需要說(shuō)明的是,第一關(guān)系為行沖突和/或行命中關(guān)系意味著:可以只考慮調(diào)度隊(duì)列中已有訪存命令之間的行沖突關(guān)系,或者,只考慮調(diào)度隊(duì)列中已有訪存命令之間的行命中關(guān)系,或者,同時(shí)考慮調(diào)度隊(duì)列中已有訪存命令之間的行沖突和行命中關(guān)系。第二關(guān)系為行沖突和/或行命中關(guān)系意味著:可以只考慮待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間的行沖突關(guān)系,或者,只考慮待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間的行命中關(guān)系,或者,同時(shí)考慮待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間的行沖突和行命中關(guān)系。因此,內(nèi)存控制器在進(jìn)行調(diào)度時(shí),在根據(jù)調(diào)度隊(duì)列中已有訪存命令之 間的第一關(guān)系、待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間的第二關(guān)系,以及待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系時(shí),共有9種情況。舉例來(lái)說(shuō),在一種實(shí)現(xiàn)方式中,內(nèi)存控制器可以只根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的行沖突關(guān)系、待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間的行沖突關(guān)系,以及待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將待調(diào)度訪存命令插入到調(diào)度隊(duì)列中?;蛘?,在另外一種實(shí)現(xiàn)方式中,內(nèi)存控制器可以只根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的行命中關(guān)系、待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間的行沖突關(guān)系,以及待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將待調(diào)度訪存命令插入到調(diào)度隊(duì)列中。

根據(jù)待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將待調(diào)度訪存命令插入到當(dāng)前優(yōu)先級(jí)比它大的已有訪存命令和當(dāng)前優(yōu)先級(jí)比它小的已有訪存命令之間則可以保證待調(diào)度訪存命令的訪問(wèn)優(yōu)先級(jí),保證發(fā)起待調(diào)度訪存命令的訪存設(shè)備的正常運(yùn)行。調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)可以根據(jù)其的原始優(yōu)先級(jí)來(lái)確定,例如,可以根據(jù)其在調(diào)度隊(duì)列中等待的時(shí)間和原始優(yōu)先級(jí)來(lái)確定。

結(jié)合上述三個(gè)方面的關(guān)系,確定待調(diào)度訪存命令的插入到調(diào)度隊(duì)列中的位置,相較于只考慮已有命令之間的行命中或行沖突的關(guān)系、待調(diào)度命令與已有命令之間的行命中或行沖突關(guān)系的技術(shù),能保證不同的訪存設(shè)備對(duì)訪存帶寬和訪存延時(shí)的需求。

本實(shí)施例提供的訪存命令調(diào)度方法,通過(guò)內(nèi)存控制器接收訪存設(shè)備發(fā)送的待調(diào)度訪存命令,待調(diào)度訪存命令中包含待調(diào)度訪存命令的原始優(yōu)先級(jí),內(nèi)存控制器根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系、待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系,以及待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將待調(diào)度訪存命令插入到調(diào)度隊(duì)列中,可見,本實(shí)施例在進(jìn)行訪存命令調(diào)度時(shí),考慮到了訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)的關(guān)系以確定待調(diào)度訪存命令的插入位置,從而,能夠滿足不同的訪存設(shè)備的訪存帶寬和訪存延遲,提高了計(jì)算機(jī)系統(tǒng)的運(yùn)行穩(wěn)定性,減少了計(jì)算機(jī)系統(tǒng)的內(nèi)存總線的空閑率, 增加了帶寬利用率,減少了平均訪存延遲。

圖3為本發(fā)明訪存命令調(diào)度方法實(shí)施例二的流程示意圖。如圖3所示,本實(shí)施例提供的訪存命令調(diào)度方法在實(shí)施例一的基礎(chǔ)上,s202具體包括:

s2021:判斷調(diào)度隊(duì)列中已有訪存命令之間是否具有第一關(guān)系。

若調(diào)度隊(duì)列中已有訪存命令之間具有第一關(guān)系,則執(zhí)行:

s2022:根據(jù)第一關(guān)系確定第一候選位置。

具體地,在一種實(shí)現(xiàn)方式中,這里的第一關(guān)系可以為行沖突關(guān)系??梢砸来伪容^調(diào)度隊(duì)列中已有訪存命令之間的行沖突關(guān)系,例如,可以比較調(diào)度隊(duì)列中相鄰的兩個(gè)已有訪存命令,如果這兩個(gè)已有訪存命令存在行沖突關(guān)系,則可以將距離隊(duì)頭較遠(yuǎn)的一個(gè)訪存命令的位置作為一個(gè)第一候選位置。其中,隊(duì)頭指的是調(diào)度隊(duì)列中訪存命令從隊(duì)列中發(fā)送出去的位置。當(dāng)然,也可以采用其他的方式確定第一候選位置,例如,可以依次比較位于隊(duì)頭位置的已有訪存命令與其他訪存命令的行沖突關(guān)系,確定第一候選位置,本實(shí)施例對(duì)比不做限制。這樣得到的第一候選位置是一個(gè)位置集合。

舉例來(lái)說(shuō),假設(shè)訪存控制器的調(diào)度隊(duì)列中已有訪存命令(1,2,3,4,5)5個(gè)命令,根據(jù)第一關(guān)系得到第一候選位置為(2,3,4),第一候選位置中2表示1和2之間可以插入待調(diào)度訪存命令,3表示2和3之間可以插入待調(diào)度訪存命令,4表示3和4之間可以插入待調(diào)度訪存命令。

s2023:根據(jù)待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,確定優(yōu)先級(jí)候選位置。

在一種具體的實(shí)現(xiàn)方式中,可以根據(jù)公式獲取調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí),其中,p0是已有訪存命令的原始優(yōu)先級(jí),td是已有訪存命令在調(diào)度隊(duì)列中的等待時(shí)間,k是預(yù)設(shè)參數(shù),表示在等待k個(gè)周期后,優(yōu)先級(jí)加1,n是訪存命令優(yōu)先級(jí)的上限。這樣,調(diào)度隊(duì)列中已有訪存命令是處于動(dòng)態(tài)優(yōu)先級(jí)的狀態(tài),即其優(yōu)先級(jí)是隨著時(shí)間動(dòng)態(tài)更新的。需要說(shuō)明的是,td/k向下取整,以使訪存命令的當(dāng)前優(yōu)先級(jí)為整數(shù),舉例來(lái)說(shuō),當(dāng)td/k=3.5時(shí),取td/k為3。

在確定優(yōu)先級(jí)候選位置的一種具體的實(shí)現(xiàn)方式中,內(nèi)存控制器可以比較 待調(diào)度訪存命令的原始優(yōu)先級(jí)和調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)。確定調(diào)度隊(duì)列中距離隊(duì)頭最遠(yuǎn)的已有訪存命令的當(dāng)前優(yōu)先級(jí)大于待調(diào)度訪存命令的原始優(yōu)先級(jí)的已有訪存命令之后的所有位置為優(yōu)先級(jí)候選位置。舉例來(lái)說(shuō),假設(shè)內(nèi)存控制器中可以容納5個(gè)訪存命令,現(xiàn)有的內(nèi)存控制器的調(diào)度隊(duì)列中已有4個(gè)命令(1,2,3,4),其中1為隊(duì)頭位置,1、2、3和4表示命令的位置,為表述方便,現(xiàn)以命令的位置表示命令本身。1命令的當(dāng)前優(yōu)先級(jí)為4,2命令的當(dāng)前優(yōu)先級(jí)為3,3命令的當(dāng)前優(yōu)先級(jí)為1,4命令的當(dāng)前優(yōu)先級(jí)為1,現(xiàn)有第5個(gè)命令需要進(jìn)行隊(duì)列中,其初始優(yōu)先級(jí)為3,則距離隊(duì)頭最遠(yuǎn)的已有訪存命令的當(dāng)前優(yōu)先級(jí)大于待調(diào)度訪存命令的初始優(yōu)先級(jí)的命令為1命令,則1之后所有的位置為優(yōu)先級(jí)候選位置,其中包括了還沒有放置命令的位置5,即優(yōu)先級(jí)候選位置為(2,3,4,5)。

s2024:判斷第一候選位置之前的位置與優(yōu)先級(jí)候選位置是否有第一交集。

需要說(shuō)明的是,第一候選位置之前的位置指的是從第一候選位置距離隊(duì)頭最近的位置之前的位置開始的至隊(duì)頭的位置。判斷第一候選位置之前的位置與優(yōu)先級(jí)候選位置是否有第一交集是判斷第一候選位置之前的位置與優(yōu)先級(jí)候選位置是否有相同的元素。第一候選位置與優(yōu)先級(jí)候選位置有相同的元素則確定有交集;第一候選位置與優(yōu)先級(jí)候選位置沒有相同的元素則沒有交集。

若第一候選位置之前的位置與優(yōu)先級(jí)候選位置有第一交集,則執(zhí)行:

s2025:將待調(diào)度訪存命令插入第一交集中距離隊(duì)頭最近的位置。

若第一候選位置之前的位置與優(yōu)先級(jí)候選位置沒有交集,則執(zhí)行:

s2026:判斷第一候選位置與優(yōu)先級(jí)候選位置是否有第二交集。

若第一候選位置與優(yōu)先級(jí)候選位置有第二交集,則執(zhí)行:

s2027:將待調(diào)度訪存命令插入第二交集中距離隊(duì)頭最近的位置。

若第一候選位置與優(yōu)先級(jí)候選位置沒有交集,則執(zhí)行:

s2028:將待調(diào)度訪存命令插入第一候選位置中距離隊(duì)頭最近的位置。

若調(diào)度隊(duì)列中已有訪存命令之間沒有第一關(guān)系,則執(zhí)行:

s2029:判斷待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間是否具有第二關(guān)系。

若待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間具有第二關(guān)系,則執(zhí)行:

s2030:根據(jù)第二關(guān)系確定第二候選位置。

具體地,在一種實(shí)現(xiàn)方式中,這里的第二關(guān)系可以為行沖突和行命中關(guān)系,根據(jù)待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間行沖突和行命中關(guān)系,確定第二候選位置,可以依次比較待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令的行沖突和行命中關(guān)系,確定第二候選位置。

舉例來(lái)說(shuō),假設(shè)訪存控制器的調(diào)度隊(duì)列中已有訪存命令(1,2,3,4,5)5個(gè)命令,根據(jù)第二關(guān)系得到第二候選位置為(3,4),第二候選位置中3表示2和3之間可以插入待調(diào)度訪存命令,4表示3和4之間可以插入待調(diào)度訪存命令。

s2031:根據(jù)待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,確定優(yōu)先級(jí)候選位置。

本步驟與s2023的實(shí)現(xiàn)原理類似,此處不再贅述。

s2032:判斷第二候選位置與優(yōu)先級(jí)候選位置是否有第三交集。

若第二候選位置與優(yōu)先級(jí)候選位置有第三交集,則執(zhí)行:

s2033:將待調(diào)度訪存命令插入第三交集中距離隊(duì)頭最近的位置。

若第二候選位置與優(yōu)先級(jí)候選位置沒有交集,則執(zhí)行:

s2034:將待調(diào)度訪存命令插入第二候選位置中距離隊(duì)頭最近的位置。

若調(diào)度隊(duì)列中已有訪存命令之間沒有第一關(guān)系,待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間沒有第二關(guān)系,則執(zhí)行:

s2035:根據(jù)待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,確定優(yōu)先級(jí)候選位置。

本步驟與s2023的實(shí)現(xiàn)原理類似,此處不再贅述。

s2036:將待調(diào)度訪存命令插入距離隊(duì)頭最近的優(yōu)先級(jí)候選位置。

需要說(shuō)明的是,在一種實(shí)現(xiàn)方式中s202具體包括:

內(nèi)存控制器確定待調(diào)度訪存命令為讀命令或?qū)懨睢?/p>

若內(nèi)存控制器確定待調(diào)度訪存命令為讀命令,內(nèi)存控制器根據(jù)讀命令調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系、讀命令待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系,以及讀命令待調(diào)度訪存命令的原始優(yōu)先級(jí)與讀命令 調(diào)度隊(duì)列中已有的訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將讀命令待調(diào)度訪存命令插入到讀命令調(diào)度隊(duì)列中。

若內(nèi)存控制器確定待調(diào)度訪存命令為寫命令,內(nèi)存控制器根據(jù)寫命令調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系、寫命令待調(diào)度訪存命令與寫命令調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系,以及寫命令待調(diào)度訪存命令的原始優(yōu)先級(jí)與寫命令調(diào)度隊(duì)列中已有的訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將寫命令待調(diào)度訪存命令插入到寫命令調(diào)度隊(duì)列中。此實(shí)現(xiàn)方式減少了讀寫切換率,進(jìn)一步增加了帶寬利用率。

本實(shí)施例提供的訪存命令調(diào)度方法,通過(guò)判斷調(diào)度隊(duì)列中已有訪存命令之間是否具有第一關(guān)系,如果有,則根據(jù)第一關(guān)系確定第一候選位置,根據(jù)待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,確定優(yōu)先級(jí)候選位置,判斷第一候選位置之前的位置與優(yōu)先級(jí)候選位置是否有第一交集,如果有交集,將待調(diào)度訪存命令插入第一交集中距離隊(duì)頭最近的位置,如沒有交集,判斷第一候選位置與優(yōu)先級(jí)候選位置是否有第二交集,如果有交集,將待調(diào)度訪存命令插入第二交集中距離隊(duì)頭最近的位置,如沒有交集,將待調(diào)度訪存命令插入到第一候選位置中距離隊(duì)頭最近的位置,如果調(diào)度隊(duì)列中已有訪存命令之間沒有第一關(guān)系,則判斷待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間是否具有第二關(guān)系,如果有,則根據(jù)待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間的第二關(guān)系確定第二候選位置,根據(jù)待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,確定優(yōu)先級(jí)候選位置,判斷第二候選位置與優(yōu)先級(jí)候選位置是否有第三交集,如有交集,則將待調(diào)度訪存命令插入第三交集中距離隊(duì)頭最近的位置,如第二候選位置與優(yōu)先級(jí)候選位置沒有交集,則將待調(diào)度訪存命令插入距離隊(duì)頭最近的第二候選位置,如果調(diào)度隊(duì)列中已有訪存命令之間沒有第一關(guān)系,待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間沒有第二關(guān)系,則根據(jù)待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,確定優(yōu)先級(jí)候選位置,將待調(diào)度訪存命令插入距離隊(duì)頭最近的優(yōu)先級(jí)候選位置,調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)處于動(dòng)態(tài)更新狀態(tài),在考慮到調(diào)度隊(duì)列中已有訪存命令的第一關(guān)系、待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令的第二關(guān)系之外,還考慮到待調(diào)度訪存命令的原 始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,通過(guò)犧牲對(duì)訪存命令優(yōu)先級(jí)要求不高的訪存設(shè)備的訪存請(qǐng)求的性能,最大化對(duì)訪存命令優(yōu)先級(jí)要求比較高的訪存設(shè)備的訪存請(qǐng)求的性能,從而,減少了內(nèi)存總線的空閑率,增加帶寬利用率,減少了計(jì)算機(jī)系統(tǒng)的平均訪存延遲。

圖4為本發(fā)明訪存命令調(diào)度裝置實(shí)施例的結(jié)構(gòu)示意圖。如圖4所示,本實(shí)施例提供的訪存命令調(diào)度裝置包括:

接收模塊401,用于接收訪存設(shè)備發(fā)送的待調(diào)度訪存命令。

其中,待調(diào)度訪存命令中包含待調(diào)度訪存命令的原始優(yōu)先級(jí)。

插入模塊402,用于根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系、待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系,以及待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將待調(diào)度訪存命令插入到調(diào)度隊(duì)列中。

插入模塊402用于根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的第一關(guān)系、待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間的第二關(guān)系,以及待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將待調(diào)度訪存命令插入到調(diào)度隊(duì)列中。其中,第一關(guān)系為行沖突和/或行命中關(guān)系,第二關(guān)系為行沖突和/或行命中關(guān)系。

插入模塊402具體用于:若調(diào)度隊(duì)列中已有訪存命令之間具有第一關(guān)系,則根據(jù)第一關(guān)系確定第一候選位置,根據(jù)待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,確定優(yōu)先級(jí)候選位置;若第一候選位置之前的位置與優(yōu)先級(jí)候選位置有第一交集,將待調(diào)度訪存命令插入第一交集中距離隊(duì)頭最近的位置;若第一候選位置之前的位置與優(yōu)先級(jí)候選位置沒有交集,第一候選位置與優(yōu)先級(jí)候選位置有第二交集,將待調(diào)度訪存命令插入第二交集中距離隊(duì)頭最近的位置;若第一候選位置與優(yōu)先級(jí)候選位置沒有交集,則將待調(diào)度訪存命令插入第一候選位置中距離隊(duì)頭最近的位置。

若調(diào)度隊(duì)列中已有訪存命令之間沒有第一關(guān)系,待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間具有第二關(guān)系,則根據(jù)待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間第二關(guān)系確定第二候選位置,以及根據(jù)待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系確定優(yōu)先級(jí)候選位置,若第二候選位置與優(yōu)先級(jí)候選位置有第三交集,則將待調(diào)度訪 存命令插入第三交集中距離隊(duì)頭最近的位置,若第二候選位置與優(yōu)先級(jí)候選位置沒有交集,則將待調(diào)度訪存命令插入第二候選位置中距離隊(duì)頭最近的位置。

若調(diào)度隊(duì)列中已有訪存命令之間沒有第一關(guān)系,待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間沒有第二關(guān)系,則根據(jù)待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,確定優(yōu)先級(jí)候選位置,將待調(diào)度訪存命令插入距離隊(duì)頭最近的優(yōu)先級(jí)候選位置。

插入模塊402還用于:比較待調(diào)度訪存命令的原始優(yōu)先級(jí)和調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)。確定調(diào)度隊(duì)列中距離隊(duì)頭最遠(yuǎn)的已有訪存命令的當(dāng)前優(yōu)先級(jí)大于待調(diào)度訪存命令的原始優(yōu)先級(jí)的已有訪存命令之后的所有位置為優(yōu)先級(jí)候選位置。

可選的,本實(shí)施例提供的訪存命令調(diào)度裝置還包括:獲取模塊403,用于根據(jù)所述已有訪存命令的原始優(yōu)先級(jí)、所述已有訪存命令在所述調(diào)度隊(duì)列中的等待時(shí)間、預(yù)設(shè)參數(shù)及訪存命令優(yōu)先級(jí)的上限獲取所述調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)。在一種實(shí)現(xiàn)方式中,獲取模塊403具體用于根據(jù)公式獲取調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí),其中,p0是已有訪存命令的原始優(yōu)先級(jí),td是已有訪存命令在調(diào)度隊(duì)列中的等待時(shí)間,k是預(yù)設(shè)參數(shù),表示在等待k個(gè)周期后,優(yōu)先級(jí)加1,n是訪存命令優(yōu)先級(jí)的上限,td/k向下取整。

本實(shí)施例提供的訪存命令調(diào)度裝置可用于執(zhí)行圖2和圖3所示方法實(shí)施例,其實(shí)現(xiàn)原理類似,此處不再贅述。

本實(shí)施例提供的訪存命令調(diào)度裝置,通過(guò)設(shè)置接收模塊,用于接收訪存設(shè)備發(fā)送的待調(diào)度訪存命令,待調(diào)度訪存命令中包含待調(diào)度訪存命令的原始優(yōu)先級(jí),插入模塊,用于根據(jù)調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系、待調(diào)度訪存命令與調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系,以及待調(diào)度訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將待調(diào)度訪存命令插入到調(diào)度隊(duì)列中,可見,本實(shí)施例提供的訪存命令調(diào)度裝置在進(jìn)行訪存命令調(diào)度時(shí),考慮到了訪存命令的原始優(yōu)先級(jí)與調(diào)度隊(duì)列中已有訪存命 令的當(dāng)前優(yōu)先級(jí)的關(guān)系以確定待調(diào)度訪存命令的插入位置,從而,能夠滿足不同的訪存設(shè)備的訪存帶寬和訪存延遲,提高了計(jì)算機(jī)系統(tǒng)的運(yùn)行穩(wěn)定性,減少了計(jì)算機(jī)系統(tǒng)的內(nèi)存總線的空閑率,增加了帶寬利用率,減少了平均訪存延遲。

進(jìn)一步地,在上述實(shí)施例中,插入模塊402還用于:確定待調(diào)度訪存命令為讀命令或?qū)懨睢H舸{(diào)度訪存命令為讀命令,根據(jù)讀命令調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系、讀命令待調(diào)度訪存命令與讀命令調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系,以及讀命令待調(diào)度訪存命令的原始優(yōu)先級(jí)與讀命令調(diào)度隊(duì)列中已有的訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將讀命令待調(diào)度訪存命令插入到讀命令調(diào)度隊(duì)列中;若待調(diào)度訪存命令為寫命令,根據(jù)寫命令調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系、寫命令待調(diào)度訪存命令與寫命令調(diào)度隊(duì)列中已有訪存命令之間的關(guān)系,以及寫命令待調(diào)度訪存命令的原始優(yōu)先級(jí)與寫命令調(diào)度隊(duì)列中已有的訪存命令的當(dāng)前優(yōu)先級(jí)之間的關(guān)系,將寫命令待調(diào)度訪存命令插入到寫命令調(diào)度隊(duì)列中。減少了讀寫切換率,增加了帶寬利用率。

圖5為本發(fā)明訪存命令調(diào)度系統(tǒng)實(shí)施例的結(jié)構(gòu)示意圖。如圖5所示,本實(shí)施例提供的訪存命令調(diào)度系統(tǒng)包括:

訪存設(shè)備41和如圖4所示的訪存命令調(diào)度裝置40。

本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。

最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
邵阳县| 台中县| 叙永县| 阿克陶县| 韩城市| 施甸县| 长顺县| 伊金霍洛旗| 罗城| 嵊州市| 曲松县| 图木舒克市| 搜索| 苍南县| 卢氏县| 吉首市| 梁山县| 漾濞| 山丹县| 庄河市| 张家港市| 康保县| 即墨市| 绵阳市| 新巴尔虎右旗| 平塘县| 南昌县| 两当县| 兴和县| 抚松县| 朝阳县| 偏关县| 子长县| 澄迈县| 韩城市| 图片| 玛曲县| 资溪县| 山东省| 肇州县| 林西县|