參數(shù)優(yōu)化方法及參數(shù)優(yōu)化裝置的制造方法
【專利說明】參數(shù)優(yōu)化方法及參數(shù)優(yōu)化裝置 【技術領域】
[0001] 本發(fā)明設及數(shù)據(jù)存儲技術,尤其設及參數(shù)優(yōu)化方法及參數(shù)優(yōu)化裝置。 【【背景技術】】
[0002] 在一嵌入式系統(tǒng)的系統(tǒng)啟動(system booting)階段,在將指令和數(shù)據(jù)從一非易 失性存儲器(例如,閃存)載入一動態(tài)隨機存取存儲器值ynamic Random Access Memcxry, DRAM)之前,需先初始化(initialize)該DRAM。通常,嵌入式系統(tǒng)從它們的非易失性存儲 器中獲取不同的接入?yún)?shù)W適用于不同的印刷電路板(Printed Circuit Boards, PCB)布 局。當前,由工程師W手寫的方式生成一默認的參數(shù)序列并傳送給客戶端W便將該默認的 參數(shù)序列存入適用于特定PCB布局的非易失性存儲器中。該種常用的技術,同時需要工程 師的人力資源和非易失性存儲器的存儲資源。因此,需要嵌入式系統(tǒng)在系統(tǒng)啟動階段提供 對DRAM的訪問參數(shù)(例如默認寫參數(shù))進行自動校準的能力。 【
【發(fā)明內(nèi)容】
】
[0003] 本發(fā)明提供參數(shù)優(yōu)化方法及參數(shù)優(yōu)化裝置。
[0004] 本發(fā)明的提供的一種參數(shù)優(yōu)化方法,包括:執(zhí)行動態(tài)隨機存取存儲器寫校準W獲 得寫參數(shù);W及用所述獲得的寫參數(shù)替換存儲在一非易失性存儲器中的默認寫參數(shù),所述 默認寫參數(shù)包含在一啟動裝載程序中。由此,本發(fā)明實施例可自動校準非易失性存儲器中 的默認寫參數(shù),改善現(xiàn)有技術默認寫參數(shù)由工程師手工書寫帶來的不便和不可更換性。
[0005] 本發(fā)明提供的另一種參數(shù)優(yōu)化方法,包括:執(zhí)行動態(tài)隨機存取存儲器寫校準W獲 得寫參數(shù);W及用所述獲得的寫參數(shù)替換存儲在一非易失性存儲器中的默認寫參數(shù),所述 默認寫參數(shù)包含在一啟動裝載程序中。由此,本發(fā)明實施例可自動校準非易失性存儲器中 的默認寫參數(shù)和用于從DRAM中讀取數(shù)據(jù)的讀參數(shù),改善現(xiàn)有技術由工程師手工書寫帶來 的不便和不可更換性,并提高DRAM數(shù)據(jù)讀取的成功率。
[0006] 本發(fā)明提供的參數(shù)優(yōu)化裝置,包括:一非易失性存儲器,用于存儲一啟動裝載程 序;一微控制器,用于將所述啟動裝載程序的第一部分從所述非易失性存儲器中復制到一 靜態(tài)隨機接入存儲器中,從所述靜態(tài)隨機接入存儲器中獲取并執(zhí)行所述啟動裝載程序的第 一部分的多個指令來實施一動態(tài)隨機存取存儲器寫校準W獲得寫參數(shù),并使用所述獲得的 寫參數(shù)替換存儲在所述非易失性存儲器中的所述啟動裝載程序中的第一部分的默認寫參 數(shù)。本發(fā)明的參數(shù)優(yōu)化裝置實施本發(fā)明的參數(shù)優(yōu)化方法W完成DRAM默認寫參數(shù)的自動校 準。 【【附圖說明】】
[0007] 本發(fā)明可通過閱讀隨后的細節(jié)描述和參考附圖所舉的實施例被更全面地理解,其 中:
[0008] 圖1為本發(fā)明一實施例的參數(shù)優(yōu)化裝置的一硬件結構圖。
[0009] 圖2為本發(fā)明一實施例的啟動過程的流程圖。
[0010] 圖3為DRAM讀校準完成之后DQS信號和DQ信號的示意圖。
[0011] 圖4A-圖4B為本發(fā)明一實施例的DRAM讀校準的方法流程圖。
[0012] 圖5為本發(fā)明一實施例的在DQ線上檢測數(shù)據(jù)窗口的左邊界的示意圖。
[0013] 圖6為本發(fā)明一實施例的在DQ線上檢測數(shù)據(jù)窗口的右邊界的示意圖。
[0014] 圖7為本發(fā)明一實施例的DRAM寫校準的方法流程示意圖。
[0015] 圖8為本發(fā)明一實施例的分散描述文件的一個示意圖。 【【具體實施方式】】
[0016] 圖1為本發(fā)明一實施例的參數(shù)優(yōu)化裝置10的一硬件結構圖。所述裝置10可應用 于一片上系統(tǒng)(System化A化ip,SOC),所述裝置10至少包括一個微控制器110, 一靜態(tài) 隨機接入存儲器(Static Random Access Memoir, SRAM) 150,和一非易失性存儲器170。一 DRAM130可置于所述S0C內(nèi)部或外部。所述微控制器110通過一總線190與所述DRAM130, 所述SRAM150和所述非易失性存儲器170禪接W接收指令和相關數(shù)據(jù),并且,當執(zhí)行所述指 令和相關數(shù)據(jù)時,所述微控制器110配置為執(zhí)行整個系統(tǒng)啟動過程中本文后續(xù)將描述到的 計算和控制任務。系統(tǒng)啟動為一計算機系統(tǒng)在所述微控制器110的電源被開啟或者所述裝 置10被重置之后發(fā)生的初始化操作。該操作在所述裝置10被打開或被重置后開始,并在 所述裝置10已經(jīng)準備好執(zhí)行常規(guī)的操作時結束。所述非易失性存儲器170 (例如,NOR閃 存,NAND閃存,EMMC閃存等),為一非易失性存儲單元,其內(nèi)存儲的數(shù)據(jù)在電源關閉時不會 丟失。一啟動裝載程序化oot loader) 171和一系統(tǒng)軟件(未圖示)被存儲在所述非易失 性存儲器170中,所述啟動裝載程序171和所述系統(tǒng)軟件均分別包括用于系統(tǒng)啟動的指令 和相關數(shù)據(jù)。相對于DRAM130, SRAM150可提供一個相對較小的存儲容量,例如,1服字節(jié)。 可理解的是,SRAM150沒有足夠的存儲空間用于存儲整個啟動裝載程序171。因此,該啟動 裝載程序171可被分割為兩部分,其第一部分至少包括用于訪問所述DRAM130的一默認寫 參數(shù)(default writing parameter)和默認讀參數(shù)(default reading parameter),其第二 部分包括用于完成所述系統(tǒng)啟動的其余操作的指令和相關數(shù)據(jù)。將所述默認寫參數(shù)封裝在 所述啟動裝載程序171的第一部分可具有避免所述非易失性存儲器170的存儲空間被多余 地消耗的優(yōu)點??衫斫獾氖?,所述非易失性存儲器170的存儲空間劃分為多個塊化lock)。 例如,NAND閃存的一個塊的大小為51化字節(jié)。雖然默認寫參數(shù)與默認讀參數(shù)需要很少的 字節(jié),例如,2字節(jié),但當所述默認寫參數(shù)獨立于所述啟動裝載程序171被單獨存儲時,在非 易失性存儲器170中會分配512K字節(jié)來存儲該默認寫參數(shù)。最終,當DRAM130被成功初始 化后,所述啟動裝載程序171的第二部分可被載入DRAM130中被執(zhí)行。
[0017] -具有代表性的鏈接器分散描述文件(scatter file of a linker)對所述啟動 裝載程序171的第一部分的定義如下:
[001引
[0019] 參考該分散描述文件的定義,所述啟動裝載程序171包括RO(只讀),RW(讀寫), ZI (零)和DRAMPARAM(化am參數(shù))等部分。圖8為本發(fā)明一實施例的二進制文件(分散描 述文件的一種)一個示意圖。所述R0部分810至少存儲用于初始化所述DRAM130的指令。 而作為舉例,所述部分820包括RW部分和ZI部分,其中,RW部分用于存儲初始化變量,例 如,全局變量,而ZI部分用于存儲非初始化變量。所述DRAMPARAM部分830起始于一預先設 定的地址0x9800并用于存儲所述默認寫參數(shù)和所述默認讀參數(shù)。存儲在所述R0部分810 中的指令定義一個字節(jié)數(shù)組或與字節(jié)數(shù)組類似的數(shù)據(jù)結構,并將定義的字節(jié)數(shù)組或類似的 數(shù)據(jù)結構映射到所述DRAMPARAM部分830 W表示默認寫參數(shù)和默認讀參數(shù)。可參考的源代 碼可如下所述:
[0020]<