動態(tài)隨機存取存儲器dram的刷新方法、設(shè)備以及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機領(lǐng)域,尤其涉及一種動態(tài)隨機存取存儲器DRAM的刷新方法、設(shè) 備W及系統(tǒng)。
【背景技術(shù)】
[0002] 現(xiàn)有計算機系統(tǒng)普遍采用廉價的、高密度的DRAM值ynamicRandomAccess Memory,動態(tài)隨機存取存儲器)作為系統(tǒng)主存,又叫做內(nèi)存。DRAM利用電容里的電荷存儲數(shù) 據(jù),但送些電荷會隨著漏電的存在而不斷流失。因此,電容里的數(shù)據(jù)必須被定期讀出并重新 寫入,W補償流失的電荷,送種操作叫做刷新(Re化esh)。
[000引DRAM有多個庫(Bank)組成,每個Bank為二維的存儲陣列,橫向稱為行(Row),縱 向稱為列(Column)。在刷新的過程中,每次DRAM會選定一個行(又成為內(nèi)存行),把該行 的全部數(shù)據(jù)提取到感應(yīng)放大器中(又稱為行緩沖區(qū),RowBuffer),送個過程叫做激活操作 (Active),接著在行緩沖區(qū)中完成對應(yīng)數(shù)據(jù)的讀寫,行緩沖區(qū)中的數(shù)據(jù)被重新寫入存儲陣 列,稱為預(yù)充電操作(Pre-charge),通過激活操作W及預(yù)充電操作就實現(xiàn)了整個刷新的過 程。DRAM刷新給計算機系統(tǒng)帶來較大的開銷,由于在刷新的過程中不能響應(yīng)正常的訪存請 求,帶來了一定的性能開銷,同時,刷新操作是一種很耗電的操作,會帶來一定的能耗開銷。
[0004] 現(xiàn)有的刷新方法是對DRAM的所有的行采用統(tǒng)一的周期進(jìn)行刷新,W保證漏電最 嚴(yán)重的單元不丟失數(shù)據(jù)。
[0005] 在完成本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)存在如下問題;隨著DRAM容量的不斷增 大,采用統(tǒng)一的周期對DRAM的所有內(nèi)存行進(jìn)行刷新的方式,其性能開銷W及能耗開銷變得 越來越大,從而嚴(yán)重影響到系統(tǒng)的能效。
【發(fā)明內(nèi)容】
[0006] 基于此,本發(fā)明實施例所提供的動態(tài)隨機存取存儲器DRAM的刷新方法、設(shè)備W及 系統(tǒng),W實現(xiàn)在刷新的過程中,有效地降低開銷。
[0007] 本發(fā)明實施例第一方面提供了一種動態(tài)隨機存取存儲器DRAM刷新信息的處理方 法,該方法包括:
[0008] 獲取DRAM中刷新單元的地址W及所述刷新單元的刷新信息,所述刷新單元為所 述DRAM中進(jìn)行一次刷新所包括的存儲空間,所述刷新單元的刷新信息包括所述刷新單元 的刷新周期;
[0009] 將所述刷新單元的地址W及所述刷新單元的刷新信息封裝為DRAM訪問請求,并 通過所述DRAM訪問請求將所述刷新單元的地址W及所述刷新單元的刷新信息寫入到刷新 數(shù)據(jù)空間,所述刷新數(shù)據(jù)空間為所述DRAM中預(yù)設(shè)的存儲空間。
[0010] 結(jié)合第一方面,在第一種可能的實現(xiàn)方式中,在將所述刷新單元的地址W及所述 刷新單元的刷新信息通過DRAM訪問請求寫入到刷新數(shù)據(jù)空間中之前,所述方法還包括;在 所述DRAM中分配所述預(yù)設(shè)的存儲空間作為所述刷新數(shù)據(jù)空間。
[0011] 結(jié)合第一方面W及第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式 中,所述獲取的刷新單元的地址包括所述刷新單元的物理地址;
[0012] 所述將所述刷新單元的地址W及所述刷新單元的刷新信息封裝為DRAM訪問請 求,并通過所述DRAM訪問請求將所述刷新單元的地址W及所述刷新單元的刷新信息寫入 到所述刷新數(shù)據(jù)空間,包括:
[0013] 將所述刷新單元的物理地址W及所述刷新單元的刷新信息封裝為DRAM訪問請 求,并通過所述DRAM訪問請求將所述刷新單元的地址W及所述刷新信息寫入所述刷新數(shù) 據(jù)空間。
[0014] 結(jié)合第一方面W及第一方面的第一種可能的實現(xiàn)方式,在第Η種可能的實現(xiàn)方式 中,所述獲取的刷新單元的地址包括所述刷新單元的虛擬地址;在將所述刷新單元的地址 W及所述刷新單元的刷新信息封裝為DRAM訪問請求之前,所述方法還包括:
[0015] 通過查詢頁表,將所述刷新單元的虛擬地址轉(zhuǎn)化為所述刷新單元的物理地址;
[0016] 所述將所述刷新單元的地址W及所述刷新單元的刷新信息封裝為DRAM訪問請 求,并通過所述DRAM訪問請求將所述刷新單元的地址W及所述刷新單元的刷新信息寫入 到所述刷新數(shù)據(jù)空間,包括:
[0017] 將所述刷新單元的物理地址W及所述刷新單元的刷新信息封裝為DRAM訪問請 求,并通過所述DRAM訪問請求將所述刷新單元的物理地址W及所述刷新信息寫入所述刷 新數(shù)據(jù)空間。
[0018] 本發(fā)明實施例第二方面提供了一種動態(tài)隨機存取存儲器DRAM刷新信息的處理裝 置,該裝置包括:
[0019] 獲取單元,用于獲取DRAM中刷新單元的地址W及所述刷新單元的刷新信息,所述 刷新單元為所述DRAM中進(jìn)行一次刷新所包括的存儲空間,所述刷新單元的刷新信息包括 所述刷新單元的刷新周期;
[0020] 封裝單元,用于將所述刷新單元的地址W及所述刷新單元的刷新信息封裝為DRAM 訪問請求;
[0021] 寫入單元,用于通過所述DRAM訪問請求將所述刷新單元的地址W及所述刷新單 元的刷新信息寫入到刷新數(shù)據(jù)空間中,所述刷新數(shù)據(jù)空間為所述DRAM中一塊預(yù)設(shè)的存儲 空間。
[0022] 結(jié)合第二方面,在第一種可能的實現(xiàn)方式中,所述裝置還包括;分配單元,用于在 所述DRAM中分配所述預(yù)設(shè)的存儲空間作為所述刷新數(shù)據(jù)空間。
[0023] 結(jié)合第二方面W及第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式 中,所述獲取單元獲取的所述刷新單元的地址包括所述刷新單元的物理地址;
[0024] 所述封裝單元,具體用于將所述刷新單元的物理地址W及所述刷新單元的刷新信 息封裝為DRAM訪問請求;
[00巧]所述寫入單元,具體用于通過所述DRAM訪問請求將所述刷新單元的物理地址W及所述刷新信息寫入所述刷新數(shù)據(jù)空間。
[0026] 結(jié)合第二方面W及第二方面的第一種可能的實現(xiàn)方式,在第Η種可能的實現(xiàn)方式 中,所述獲取單元獲取的所述刷新單元的地址包括所述刷新單元的虛擬地址;所述裝置還 包括:
[0027] 轉(zhuǎn)化處理單元,用于通過查詢頁表,將所述刷新單元的虛擬地址轉(zhuǎn)化為所述刷新 單元的物理地址;
[0028] 所述封裝單元,具體用于將所述刷新單元的物理地址W及所述刷新單元的刷新信 息封裝為所述DRAM訪問請求;
[0029] 所述寫入單元,具體用于通過所述DRAM訪問請求將所述刷新單元的物理地址W 及所述刷新信息寫入所述刷新數(shù)據(jù)空間。
[0030] 本發(fā)明實施例第Η方面提供了一種動態(tài)隨機存取存儲器DRAM刷新信息的處理裝 置,其特征在于,所述處理裝置包括:
[0031] 處理器,存儲器,通信接口,和總線,其中,所述處理器、所述存儲器和所述通信接 口通過所述總線通信;
[0032] 所述存儲器用于存放程序;
[0033] 所述通信接口用于與DRAM通信;
[0034] 當(dāng)所述處理裝置運行時,所述處理器用于執(zhí)行所述存儲器存儲的所述程序,W執(zhí) 行第一方面W及第一方面的各個可能實現(xiàn)方式任一所述的方法。
[0035] 本發(fā)明實施例第四方面提供了一種動態(tài)隨機存取存儲器DRAM的刷新方法,該方 法包括:
[0036] 產(chǎn)生針對DRAM中刷新單元的刷新命令,所述刷新命令包括所述刷新單元的物理 地址,所述刷新單元為所述DRAM中進(jìn)行一次刷新所包括的存儲空間;
[0037] 根據(jù)所述刷新單元的物理地址,采用DRAM讀取命令從刷新數(shù)據(jù)空間中讀取所述 刷新單元的刷新信息,所述刷新單元的刷新信息包括所述刷新單元的刷新周期;
[0038] 根據(jù)所述刷新信息執(zhí)行對所述刷新單元的刷新操作。
[0039] 結(jié)合第四方面,在第一種可能的實現(xiàn)方式中,所述根據(jù)所述刷新單元的物理地址, 采用DRAM讀取命令從刷新數(shù)據(jù)空間中讀取對應(yīng)所述刷新單元的刷新信息,包括:
[0040] 根據(jù)所述刷新單元的物理地址,W及所述刷新數(shù)據(jù)空間中存儲的所述刷新單元的 物理地址和所述刷新單元的刷新信息的對應(yīng)關(guān)系,確定所述刷新單元的刷新信息,采用所 述DRAM讀取命令從所述刷新數(shù)據(jù)空間讀取所述刷新單元的刷新信息。
[0041] 結(jié)合第四方面W及第四方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式 中,所述刷新數(shù)據(jù)空間為所述DRAM中預(yù)設(shè)的用來存儲所述DRAM中多個刷新單元的刷新信 息的存儲空間,所述方法還包括:
[0042] 從所述刷新數(shù)據(jù)空間中獲取所述刷新單元之后的多個連續(xù)的刷新單元的刷新信 息。
[0043] 結(jié)合第四方面的第二種可能的實現(xiàn)方式,在第Η種可能的實現(xiàn)方式中,在從所述 刷新數(shù)據(jù)空間中讀取所述刷新單元之后的多個連續(xù)的刷新單元的刷新信息之后,所述方法 還包括:
[0044] 接收對所述刷新單元之后的多個連續(xù)的刷新單元的刷新命令;
[0045] 判斷所述多個連續(xù)的刷新單元中需要執(zhí)行刷新操作的刷新單元的個數(shù)是否超過 闊值;
[0046] 當(dāng)確定所述需要執(zhí)行刷新操作的刷新單元的個數(shù)超過所述闊值時,對所述多個連 續(xù)的刷新單元執(zhí)行AutoRe化esh刷新操作;
[0047]當(dāng)確定所述需要執(zhí)行刷新操作的刷新單元的個數(shù)不超過所述闊值時,對所述多個 連續(xù)的刷新單元執(zhí)行RAS-only Refresh刷新操作。
[004引本發(fā)明實施例第五方面提供了一種DRAM控制器,該DRAM控制器包括:
[0049] 刷新命令產(chǎn)生模塊,