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