一種激活內(nèi)存的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)領(lǐng)域,特別涉及一種激活內(nèi)存的方法及裝置。
【背景技術(shù)】
[0002]目前,數(shù)據(jù)中心的功耗的25-40%被內(nèi)存所消耗,內(nèi)存具有行列結(jié)構(gòu),任意一行和任意一列交叉形成的單元格為一個存儲單元,因此,任意一個存儲單元均對應(yīng)一個行號和一個列號,訪問一行中的某個存儲單元時,首先要激活整個行,要訪問編號為“00” (即處于O行O列)的存儲單元時,首先要激活處于O行中的9個存儲單元,而激活的功耗占內(nèi)存功耗的85%以上,因此,目前的數(shù)據(jù)中心的功耗較大。
[0003]為了降低數(shù)據(jù)中心的功耗,提出了一種細(xì)粒度行訪問內(nèi)存的方法,該方案的主要思路為:每次激活時只需要激活待訪問的存儲單元即可,不需要將處于同一行的所有存儲單元激活,內(nèi)存接收到一個行激活指令時,并不立即激活此行,而是等接收到列激活指令時,根據(jù)行激活指令中的行地址和列激活指令中的列地址確定出待激活的存儲單元,然后,再激活該存儲單元,因此,降低了數(shù)據(jù)中心的功耗。
[0004]但是,上述方案中,不能同時對多個存儲單元進(jìn)行激活,而是每激活一個存儲單元后,要對該存儲單元進(jìn)行預(yù)充電后,然后,才能對下一個存儲單元進(jìn)行激活操作,因此,目前激活內(nèi)存的方法存在效率較低的缺陷。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種激活內(nèi)存的方法及裝置,用以解決現(xiàn)有技術(shù)中存在的激活內(nèi)存的方法效率較低的缺陷。
[0006]本發(fā)明實(shí)施例提供的具體技術(shù)方案如下:
[0007]第一方面,提供一種激活內(nèi)存的方法,包括:
[0008]獲取第一內(nèi)存訪問請求,所述第一內(nèi)存訪問請求用于請求訪問內(nèi)存的第一子行;
[0009]從內(nèi)存待調(diào)度隊列中查找第二內(nèi)存訪問請求,所述內(nèi)存待調(diào)度隊列包括多個內(nèi)存訪問請求,所述第二內(nèi)存訪問請求用于請求訪問所述內(nèi)存的第二子行,所述第一子行與所述第二子行處于所述內(nèi)存的同一行;
[0010]合并所述第一內(nèi)存訪問請求和所述第二內(nèi)存訪問請求,生成第一激活指令,所述第一激活指令用于指示激活所述內(nèi)存中的所述第一子行和所述第二子行;
[0011 ] 將所述第一激活指令發(fā)送至所述內(nèi)存。
[0012]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,從內(nèi)存待調(diào)度隊列中查找第二內(nèi)存訪問請求之后,還包括:
[0013]生成子行選擇向量,并將所述子行選擇向量發(fā)送至所述內(nèi)存;
[0014]所述子行選擇向量用于標(biāo)識待激活的子行是所述第一子行和所述第二子行。
[0015]第二方面,提供一種激活內(nèi)存的方法,包括:
[0016]接收內(nèi)存控制器發(fā)送的第一激活指令,所述第一激活指令用于指示激活內(nèi)存中的第一子行和內(nèi)存中的第二子行,所述第一子行與所述第二子行均處于所述內(nèi)存中的同一行中;
[0017]根據(jù)所述第一激活指令激活處于所述內(nèi)存中的所述第一子行和所述第二子行。
[0018]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,根據(jù)所述第一激活指令激活處于所述內(nèi)存中的所述第一子行和所述第二子行之前,還包括:
[0019]接收所述內(nèi)存控制器發(fā)送的子行選擇向量,所述子行選擇向量用于標(biāo)識待激活的子行是所述第一子行和所述第二子行;
[0020]根據(jù)所述第一激活指令激活處于所述內(nèi)存中的所述第一子行和所述第二子行,具體包括:
[0021]根據(jù)所述第一激活指令中、所述子行選擇向量激活處于所述內(nèi)存的所述第一子行和所述第二子行。
[0022]第三方面,提供一種內(nèi)存控制器,包括:
[0023]請求分發(fā)模塊,用于獲取第一內(nèi)存訪問請求,所述第一內(nèi)存訪問請求用于請求訪問內(nèi)存的第一子行;
[0024]內(nèi)存調(diào)度器,用于從內(nèi)存待調(diào)度隊列中查找第二內(nèi)存訪問請求,所述內(nèi)存待調(diào)度隊列包括多個內(nèi)存訪問請求,所述第二內(nèi)存訪問請求用于請求訪問所述內(nèi)存的第二子行,所述第一子行與所述第二子行處于所述內(nèi)存的同一行;
[0025]內(nèi)存調(diào)度器還用于,合并所述第一內(nèi)存訪問請求和所述第二內(nèi)存訪問請求,生成第一激活指令,所述第一激活指令用于指示激活所述內(nèi)存中的所述第一子行和所述第二子行;
[0026]所述命令調(diào)度器,用于所述第一激活指令發(fā)送至所述內(nèi)存。
[0027]結(jié)合第三方面,在第一種可能的實(shí)現(xiàn)方式中,從內(nèi)存待調(diào)度隊列中查找第二內(nèi)存訪問請求之后,還包括:
[0028]生成子行選擇向量,并將所述子行選擇向量發(fā)送至所述內(nèi)存;
[0029]所述子行選擇向量用于標(biāo)識待激活的子行是所述第一子行和所述第二子行。
[0030]第四方面,提供一種內(nèi)存模塊,包括:
[0031]鎖存器,用于接收內(nèi)存控制器發(fā)送的第一激活指令,所述第一激活指令用于指示激活內(nèi)存中的第一子行和內(nèi)存中的第二子行,所述第一子行與所述第二子行均處于所述內(nèi)存中的同一行中;
[0032]子行選擇解碼器,用于根據(jù)從所述鎖存器獲取的所述第一激活指令激活處于所述內(nèi)存中的所述第一子行和所述第二子行。
[0033]結(jié)合第四方面,在第一種可能的實(shí)現(xiàn)方式中,所述鎖存器還用于:
[0034]接收所述內(nèi)存控制器發(fā)送的子行選擇向量,所述子行選擇向量用于標(biāo)識待激活的子行是所述第一子行和所述第二子行;
[0035]所述子行選擇解碼器具體用于:
[0036]根據(jù)所述第一激活指令中、所述子行選擇向量激活處于所述內(nèi)存的所述第一子行和所述第二子行。
[0037]第五方面,提供一種內(nèi)存控制器,包括:
[0038]請求分發(fā)模塊,用于獲取第一內(nèi)存訪問請求,所述第一內(nèi)存訪問請求用于請求訪問內(nèi)存的第一子行;
[0039]內(nèi)存調(diào)度器,用于獲取所述請求分發(fā)模塊獲取到的第一內(nèi)存訪問請求,并根據(jù)所述第一內(nèi)存訪問請求生成第一激活指令;
[0040]命令調(diào)度器,用于將從所述內(nèi)存調(diào)度器獲取的所述第一激活指令發(fā)送至所述內(nèi)存;
[0041]所述請求分發(fā)模塊還用于,從所述內(nèi)存待調(diào)度隊列中查找第二內(nèi)存訪問請求,所述內(nèi)存待調(diào)度隊列包括多個內(nèi)存訪問請求,所述第二內(nèi)存訪問請求用于請求訪問所述內(nèi)存的第二子行,所述第一子行位于第一子陣列,所述第二子行處于第二子陣列;
[0042]所述內(nèi)存調(diào)度器還用于,根據(jù)所述第二內(nèi)存訪問請求生成第二激活指令;
[0043]所述命令調(diào)度器還用于,將從所述內(nèi)存調(diào)度器獲取的所述第二激活指令發(fā)送至所述內(nèi)存;
[0044]其中,所述第一子陣列和所述第二子陣列均包括至少一行,所述至少一行中的任意一行包括至少一個子行,所述至少一個子行中的任意一子行包括至少一個存儲單元,任意一存儲單元與一個行號標(biāo)識和一個列號標(biāo)識相對應(yīng);
[0045]其中,所述第二子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識與所述第一子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識均不相同。
[0046]結(jié)合第五方面,在第一種可能的實(shí)現(xiàn)方式中,所述請求分發(fā)模塊還用于:
[0047]獲取第三內(nèi)存訪問請求,所述第三內(nèi)存訪問請求用于請求訪問內(nèi)存的第三子行,所述第三子行與所述第一子行處于同一行,所述第二子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識與所述第三子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識均不相同;
[0048]所述內(nèi)存調(diào)度器具體用于:
[0049]合并所述第一內(nèi)存訪問請求和所述第三內(nèi)存訪問請求,生成第一激活指令。
[0050]結(jié)合第五方面,以及第五方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述請求分發(fā)模塊還用于:
[0051]獲取第四內(nèi)存訪問請求,所述第四內(nèi)存訪問請求用于請求訪問內(nèi)存的第四子行,所述第四子行與所述第二子行處于同一行,所述第四子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識與所述第一子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識均不相同;
[0052]所述內(nèi)存調(diào)度器具體用于:
[0053]合并所述第二內(nèi)存訪問請求和所述第四內(nèi)存訪問請求,生成第二激活指令。
[0054]結(jié)合第五方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述第四子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識與所述第三子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識均不相同。
[0055]第六方面,提供一種內(nèi)存模塊,包括:
[0056]第一鎖存器,用于接收內(nèi)存控制器發(fā)送的第一激活指令,所述第一激活指令用于指示激活內(nèi)存中的第一子行;
[0057]第一子行選擇解碼器,用于根據(jù)所述第一激活指令激活處于所述內(nèi)存中的所述第一子行;
[0058]第二鎖存器,用于接收所述內(nèi)存控制器發(fā)送的第二激活指令,所述第二激活指令用于指示激活所述內(nèi)存中的第二子行;
[0059]第二子行選擇解碼器,用于根據(jù)所述第二激活指令激活處于所述內(nèi)存中的所述第二子行;
[0060]所述第一子行位于第一子陣列,所述第二子行處于第二子陣列;
[0061]所述第一子陣列和所述第二子陣列均包括至少一行,所述至少一行中的任意一行包括至少一個子行,所述至少一個子行中的任意一子行包括至少一個存儲單元,任意一存儲單元與一個行號標(biāo)識和一個列號標(biāo)識相對應(yīng);
[0062]所述第二子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識與所述第一子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識均不相同;
[0063]所述第一鎖存器和所述第二鎖存器均與用于進(jìn)行數(shù)據(jù)緩存的全局緩沖器相連。
[0064]結(jié)合第六方面,在第一種可能的實(shí)現(xiàn)方式中,所述第一激活指令還用于指示激活內(nèi)存中的第三子行,所述第三子行與所述第一子行處于同一行中;
[0065]所述第二子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識與所述第三子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識均不相同。
[0066]結(jié)合第六方面,以及第六方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述第二激活指令還用于指示激活內(nèi)存中的第四子行,所述第四子行與所述第二子行處于同一行中;
[0067]所述第四子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識與所述第一子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識均不相同;
[0068]所述第四子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識與所述第三子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識均不相同。
[0069]第七方面,提供一種激活內(nèi)存的方法,包括:
[0070]獲取第一內(nèi)存訪問請求,所述第一內(nèi)存訪問請求用于請求訪問內(nèi)存的第一子行;[0071 ] 根據(jù)所述第一內(nèi)存訪問請求生成第一激活指令,并將所述第一激活指令發(fā)送至所述內(nèi)存;
[0072]從內(nèi)存待調(diào)度隊列中查找第二內(nèi)存訪問請求,所述內(nèi)存待調(diào)度隊列包括多個內(nèi)存訪問請求,所述第二內(nèi)存訪問請求用于請求訪問所述內(nèi)存的第二子行,所述第一子行位于第一子陣列,所述第二子行處于第二子陣列;
[0073]根據(jù)所述第二內(nèi)存訪問請求生成第二激活指令,并將所述第二激活指令發(fā)送至所述內(nèi)存;
[0074]所述第一子陣列和所述第二子陣列均包括至少一行,所述至少一行中的任意一行包括至少一個子行,所述至少一個子行中的任意一子行包括至少一個存儲單元,任意一存儲單元與一個行號標(biāo)識和一個列號標(biāo)識相對應(yīng);
[0075]所述第二子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識與所述第一子行包括的任意一存儲單元所對應(yīng)的列號標(biāo)識均不相同。
[0076]結(jié)合第七方面,在第一種可能的實(shí)現(xiàn)方式中,根據(jù)所述第一內(nèi)存訪問請求生成第一激活指令之前,還包括:
[0077]獲取第三內(nèi)存訪問請求,所述