TWI694378B - 記憶體介面的阻抗組態方法及電腦程式產品 - Google Patents
記憶體介面的阻抗組態方法及電腦程式產品 Download PDFInfo
- Publication number
- TWI694378B TWI694378B TW108109449A TW108109449A TWI694378B TW I694378 B TWI694378 B TW I694378B TW 108109449 A TW108109449 A TW 108109449A TW 108109449 A TW108109449 A TW 108109449A TW I694378 B TWI694378 B TW I694378B
- Authority
- TW
- Taiwan
- Prior art keywords
- test
- resistance value
- memory
- processing unit
- memory interface
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明提出一種記憶體介面的阻抗組態方法,由處理單元執行,包含:將關聯於第一接收器的晶粒內終點的第一阻值設為第一預設阻值;將關聯於第二傳送器的驅動可變電阻的第二阻值設為第二預設阻值;為多個測試組合執行測試,其中,每個組合包含關聯於第一傳送器的驅動可變電阻的第三阻值及關聯於第二接收器的晶粒內終點的第四阻值;以及儲存每個測試組合的測試結果至靜態隨機存取記憶體的特定位置,使得校準主機可從靜態隨機存取記憶體取得每個測試組合的測試結果,並依據測試結果決定記憶體介面的阻抗設定。
Description
本發明涉及通信介面,尤指一種記憶體介面的阻抗組態方法及電腦程式產品。
在動態隨機存取記憶體(Dynamic Random Access Memory DRAM)的匯流排的速度到達高傳輸率後,例如500Mb/s或更高,可能發生系統層面的信號收送問題,例如,可能從連接的對等裝置(如控制器、DRAM模組等)的接腳線產生反射。上述的信號收送問題可通過校調驅動器(Driver)及晶粒內終點(On-Die Termination ODT)來解決。因此,本發明提出一種記憶體介面的組態方法及電腦程式產品,用於校調記憶體介面中的驅動器及晶粒內終點。
有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。
本發明提出一種記憶體介面的阻抗組態方法,該方法由處理單元執行,包含:將關聯於第一接收器的晶粒內終點的第一阻值設為第一預設阻值;將關聯於第二傳送器的驅動可變電阻的第二阻值設為第二預設阻值;為多個測試組合執行測試,其中,每個組合包含關聯於第一傳送器的驅動可變電阻的第三阻值及關聯於第二接收器的晶粒內終點的第四阻值;以及儲存每個測試組合的測試結果至靜態隨機存取記憶體的特定位置,使得校準主機可從靜態隨機存取記憶體取得每個測試組合的測試結果,並依據測試結果決定記憶體介面的
阻抗設定。該處理單元耦接記憶體介面、該靜態隨機存取記憶體及校準介面,該記憶體介面耦接記憶體裝置並且包含該第一傳送器及該第一接收器,而該記憶體裝置包含該第二傳送器及該第二接收器。
本發明另提出一種電腦程式產品,用於由處理單元載入並執行,包含可實施如上所述的記憶體介面的阻抗組態方法的程式碼。
上述實施例的優點之一,通過提供給校準主機每個測試組合的測試結果,使得校準主機能夠據以決定記憶體介面的阻抗設定。
本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。
130:基板
110:校準主機
115:處理單元
150:控制器
170:記憶體裝置
190:顯示器
210:處理單元
230:靜態隨機存取記憶體
250:校準介面
270:記憶體介面
271:實體層
273:ODT檔位寄存器
275:驅動檔位寄存器
277:MAC層
290:直接記憶體存取控制器
300:記憶體校準的圖形使用者介面
310:顯示方框
330:選擇按鈕
335:選擇菜單
350:測試進度方框
370:開始按鈕
390:測試訊息方框
S410~S470:方法步驟
S711~S790:方法步驟
800:定義可正常運行的阻值設定的方框
800a:關聯的中間阻值
S910~S970:方法步驟
圖1為依據本發明實施例的校準系統示意圖。
圖2為依據本發明實施例的校準系統方塊圖。
圖3為依據本發明實施例的記憶體介面的阻抗組態的圖形使用者介面。
圖4為依據本發明實施例的記憶體介面中傳送器及接收器的訓練方法流程圖。
圖5為依據本發明實施例的DDR4 DRAM的寫入訓練的初始資料表示意圖。
圖6為依據本發明實施例的DDR4 DRAM的讀取訓練的初始資料表示意圖。
圖7為依據本發明實施例的寫入及讀取訓練的方法流程圖。
圖8顯示依據本發明實施例的DDR4 DRAM的寫入訓練的範例結果。
圖9為依據本發明實施例的寫入訓練的方法流程圖。
以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,用以表
示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、"第二"、"第三"等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
必須了解的是,當元件描述為”連接”或”耦接"至另一元件時,可以是直接連結、或耦接至其他元件,可能出現中間元件。相反地,當元件描述為”直接連接”或”直接耦接”至另一元件時,其中不存在任何中間元件。使用來描述元件之間關係的其他語詞也可類似方式解讀,例如”介於”相對於”直接介於”,或者是”鄰接”相對於”直接鄰接”等等。
參考圖1,控制器150及記憶體裝置170可裝設(mount)在基板130上,並且控制器150可通過基板130耦接或連接記憶體裝置170。記憶體裝置170可為動態隨機存取記憶體(Dynamic Random Access Memory DRAM等)。校準主機110耦接至控制器150,用以發出命令請求控制器150執行阻抗測試方法,接著從控制器150讀取測試結果,並且將測試結果顯示於顯示器190,使得工程師可依據測試結果決定控制器150及記憶體裝置170的介面中的阻抗組態(Configurations)。或者是,於另一些實施例中,校準主機110可執行應用程式,用於解讀測試結果並依據演算法自動決定控制器150及記憶體裝置170的介面中的阻抗設定。接著,校準主機110可發出命令及決定的阻抗設定,請求控制器150執行記憶體介面的阻抗設定方法。當控制器150中的處理單元210載入及執行記憶體介面的阻抗設定方法的相關韌體或軟體程式碼時,將決定的阻抗設定寫入控制器150及記憶體裝置170中的非揮發性儲存空間,作為出廠設
定值。
參考圖2,控制器150包含處理單元210,可使用多種方式實施,如使用通用硬體(例如,單一處理器、具平行處理能力的多處理器、圖形處理器或其他具運算能力的處理器),並且在執行量產整合系統程式(Mass Production Integrated System Program MPISP)的軟體以及/或韌體指令時,提供之後描述的功能。控制器150可包含校準介面250,如I2C介面,用以讓校準主機110通過校準介面250發送命令給處理單元210以啟動並執行記憶體介面的阻抗測試及設定方法。於校準完成後,校準主機110可通過校準介面250,請求直接記憶體存取控制器(Direct Memory Access DMA Controller)290從靜態隨機存取記憶體(Static Random Access Memory SRAM)230的預設區域讀取測試結果。MPISP可在控制器150出廠時儲存於其中的唯讀記憶體(Read Only Memory ROM,未顯示於圖2),或者由測試主機110通過校準介面250或其他介面,於開始校準前傳送給控制器150。
於一些實施例中,控制器170也可稱為特殊應用積體電路端(Application-Specific Integrated Circuit ASIC-side),而記憶體裝置170可為DRAM,稱為DRAM端,用於緩存在執行軟體及韌體指令的過程中所需要的資料,例如,變數、資料表等,以及各式各樣的使用者資料。記憶體介面270可採用雙倍資料率(Double Data Rate DDR)通訊協定與DRAM溝通,例如,第三代雙倍資料率(DDR3)、低功耗DDR3(Low Power LPDDR3)、第四代雙倍資料率(DDR4)或其他介面。記憶體介面270及DRAM間的輸出入訊號可包含reset、CK、CK_N、CKE、ODT、CS_N、ACT_N、BG、BA、A、DM、DQS、DQS_N、DQ_lower、DQ_upper等。
記憶體介面470可包含實體層(Physical Layer PHY)471,具有連接至記憶體裝置370的電路。DDR通訊協定及關連的實體層471可提供
通信的能力,用於傳送命令、位址及資料等給記憶體裝置370以及從記憶體裝置370接收資料、位址及訊息等。實體層471包含傳送器(Transmitter)及接收器(Receiver),用以分別傳送訊號給記憶體裝置370的接收器,以及從記憶體裝置370的傳送器接收訊號。傳送器(也可稱為驅動器Driver)的輸出端可連接可變電阻(Variable Resistance,可稱為驅動可變電阻),使得處理單元210可藉由改變驅動檔位寄存器(Driving-stage Register)275的設定來調整驅動可變電阻的阻值,進而改變輸出的驅動強度(Driving Strength)。另一方面,接收器的輸入端可連接可變電阻(可稱為ODT可變電阻),使得處理單元210可藉由改變晶粒內終點檔位寄存器(On-Die Termination ODT-stage Register)273的設定來調整ODT可變電阻的阻抗(Impedance)。
舉例來說,當驅動檔位寄存器275儲存的值設定為0時,驅動可變電阻的阻值調整為480ohm。當驅動檔位寄存器275儲存的值設定為1時,驅動可變電阻的阻值調整為240ohm。其餘設定對驅動可變電阻的阻值改變可依此類推,不再贅述以求簡明。
舉例來說,當ODT檔位寄存器273儲存的值設定為2時,ODT可變電阻的阻值調整為120ohm。其餘設定對ODT可變電阻的阻值改變可依此類推,不再贅述以求簡明。
相對地,記憶體裝置170也可包含類似用於改變輸出驅動強度及ODT阻抗的可變電阻設置。處理單元210可指示MAC層277通過實體層271發送命令給記憶體裝置170,用於改變記憶體裝置170中傳送器的輸出驅動強度及接收器的ODT阻值。
當記憶體介面470使用DDR3通訊協定與記憶體裝置170溝通時,處理單元210可指示MAC層277通過實體層271發送輸出入組態命令(I/O Configuration Command)及設定值給記憶體裝置170。記憶體介面470可通過A5及A1訊號指示記憶體裝置170將其中的驅動可變電阻的阻值調整至特定水平,如表3所示:表3
所屬技術領域人員理解RZQ為240ohm。例如,當A5及A1訊號都為0時,記憶體裝置170將驅動可變電阻的阻值調整為40ohm(也就是RZQ/6)。當A5及A1訊號分別為1及0(保留設定值)時,記憶體裝置170可不改變驅動可變電阻的阻值。其餘設定對記憶體裝置170中驅動可變電阻的阻值改變可依此類推,不再贅述以求簡明。此外,記憶體介面470可通過A9、A6及A2訊號指示記憶體裝置170將其中的ODT可變電阻的阻值調整至特定水平,如表4所示:
例如,當A9、A6及A2訊號都為0時,記憶體裝置170可不致能ODT。當A9、A6及A2訊號分別為0、0及1時,記憶體裝置170可將ODT可變電阻的阻值調整為60ohm(也就是RZQ/4)。當A9、A6及A2訊號分別為1、1及0(保留設定值)時,記憶體裝置170可不改變驅動可變電阻的阻值。其餘設定對記憶體裝置170中ODT可變電阻的阻
值改變可依此類推,不再贅述以求簡明。
當記憶體介面470使用DDR4通訊協定與記憶體裝置170溝通時,處理單元210可指示MAC層277通過實體層271發送輸出入組態命令及設定值給記憶體裝置170。記憶體介面470可通過A5及A1訊號指示記憶體裝置170將其中的驅動可變電阻的阻值調整至特定水平,如表5所示:
表6描述的ODT可變電阻的阻值改變細節可參考表4的說明,不再贅述以求簡明。
當記憶體介面470使用LPDDR3通訊協定與記憶體裝置170溝通時,處理單元210可指示MAC層277通過實體層271發送模式寄存器寫入命令(Mode Register Write Command)及設定值給記憶體裝置170。記憶體介面470可通過寫入”03H”至模式寄存器中的MA[7:0]指示記憶體裝置170執行輸出入組態(I/O Configuration),並寫入特定值到模式寄存器中的OP<3:0>指示記憶體裝置170將其中的驅動可變電阻的阻值調整至特定水平,如表7所示:
例如,當模式寄存器中的Op<3:0>寫入”0010”(預設值)時,記憶體裝置170將驅動可變電阻的阻值調整為34.3ohm(也就是RZQ/6)。當模式寄存器中的Op<3:0>寫入”1001”時,記憶體裝置170將驅動可變電阻的拉低(pull-down)阻值調整為34.3ohm,拉高(pull-up)阻值調整為40ohm,終端阻值調整為240ohm。當模式寄存器中的Op<3:0>寫入”0000”(保留設定值)或其他沒有列在表7中的值時,記憶體裝置170可不改變驅動可變電阻的阻值。其餘設定對記憶體裝置170中驅動可變電阻的阻值改變可依此類推,不再贅述以求簡明。
此外,記憶體介面470可通過寫入”0BH”至模式寄存器中的MA[7:0]指示記憶體裝置170執行ODT控制,並寫入特定值到模式寄存器中的OP<1:0>指示記憶體裝置170將其中的ODT可變電阻的阻值調整至特定水平,如表8所示:
例如,當模式寄存器中的Op<1:0>寫入”00”(預設值)時,記憶體裝置170可不致能ODT。當模式寄存器中的Op<1:0>寫入”01”(保留設定值)時,記憶體裝置170可不改變ODT可變電阻的阻值。當模式寄存器中的Op<1:0>寫入”10”時,記憶體裝置170將ODT可變電阻的阻值調整為120ohm(也就是RZQ/2)。其餘設定對記憶體裝置170中ODT可變電阻的阻值改變可依此類推,不再贅述以求簡明。
校準主機110中的處理單元115可執行校準工具,校準工具可提供人
機介面,方便工程師組態記憶體介面的阻抗。顯示器190顯示如圖3所示的記憶體校準的圖形使用者介面(以下簡稱校準GUI)300。校準GUI 300可提供選擇按鈕330。當使用者點擊選擇按鈕330時,處理單元115可執行選擇按鈕330的點擊事件處理員(On_click() Event Handler),用於在顯示器上190顯示選擇菜單335,包含多個項目,每個項目關聯於控制器150的唯讀記憶體中儲存的一個MPISP,例如DRAM MPISP。顯示方框310可顯示使用者通過操作選擇菜單335而決定的MPISP。校準GUI 300另可提供開始按鈕370。當使用者點擊開始按鈕370時,校準主機110的處理單元115可執行開始按鈕330的點擊事件處理員,用於通過校準介面250指示控制器150的處理單元210載入並執行使用者決定的MPISP。校準主機110可通過校準介面250及直接記憶體存取控制器290持續取得記憶體介面270及記憶體裝置170中收發器的測試結果,並且可據以更新測試進度方框350及校準訊息方框390的內容。
當處理單元210載入並執行指定的MPISP時,可實施如圖4所示的處理流程。於初始化記憶體裝置170後,處理單元210可執行函數vInitDramZQRemapIdx()的指令,初始化用於儲存測試結果的資料表。(步驟S410)。接著,處理單元210可執行函數vScanDramWindow(WrTraining)的指令來執行記憶體寫入訓練(Write-Training)(步驟S430),以及執行函數vScanDramWindow(RdTraining)的指令來執行記憶體讀取訓練(Read-Training)(步驟S450)。需注意的是,雖然實施例中以單一函數的程式碼,搭配不同的輸入參數”WrTraining”及”RdTraining”來實作記憶體寫入及讀取訓練,所屬技術領域人員亦可將記憶體寫入及讀取訓練以不同的函數實作。於另一些實施例,處理單元210可先執行記憶體讀取訓練,接著執行記憶體寫入訓練。於另一些實施例,處理單元210可不執行記憶體讀取訓練,而將用於記憶體讀
取的控制器150的接收器的ODT及記憶體裝置170的傳送器的驅動可變電阻中的阻抗直接設定為預設值(例如中間檔位)。最後,提供測試結果於靜態隨機存取記憶體(Static Random Access Memory SRAM)230(步驟S470)。
於步驟S410,處理單元210可分別為寫入及讀取訓練初始化不同的資料表,用以紀錄後續的測試結果。以DRAM為例:寫入訓練資料表的包含兩軸:一軸關聯於DRAM端ODT的訊號強度,由弱到強或由強到弱排列;另一軸關聯於ASIC端驅動訊號強度,由弱到強或由強到弱排列。讀取訓練資料表的包含兩軸:一軸關聯於DRAM端驅動訊號強度,由弱到強或由強到弱排列;另一軸關聯於ASIC端ODT的訊號強度,由弱到強或由強到弱排列。寫入訓練的目的在優化ASIC端驅動可變電阻及DRAM端ODT間的阻值匹配,而讀取訓練的目的在優化DRAM端驅動可變電阻及ASIC端ODT間的阻值匹配。這樣的重新對應(Remapping)可幫助工程師或應用程式的演算法解讀,較有效率地尋找適當的阻值檔位。初始化後的資料表可儲存於SRAM 230。
以DDR4 DRAM為例:參考圖5,為方便工程師或應用程式解讀,寫入訓練資料表的容量(Size)為16x16位元組,每個位元組紀錄當ASIC端的驅動可變電阻設定為第一阻值而DRAM端的ODT設定為第二阻值時的測試結果。資料表的儲存格(Cells)可概念性劃分為每16個位元組為一組。例如,當ASIC端的驅動可變電阻設定為特定阻值(如480ohm)時,由高至低改變DRAM端的ODT阻值(如從不致能ODT至將ODT阻值設為RZQ/7)的測試結果。或者是,當DRAM端的ODT阻值設定為特定阻值(RZQ/1)時,由高至低改變ASIC端的驅動可變電阻的阻值(如從480ohm至30ohm)的測試結果。由於DDR4 DRAM的ODT檔位只有8檔,因此,關聯於ASIC端的驅動可變電阻的每個特定阻值(也就是每一橫排)的0h到7h的儲
存格的值都初始為“0x00”,而8h到Fh的儲存格的值都初始為“0x05”(可稱為忽略值)用以告訴工程師或應用程式此測試結果可忽略。
以DDR4 DRAM為例:參考圖6,為方便工程師或應用程式解讀,讀取訓練資料表的容量為16x16位元組,每個位元組紀錄當DRAM端的驅動可變電阻設定為第一阻值而ASIC端的ODT設定為第二阻值時的測試結果。資料表的儲存格可概念性劃分為每16個位元組為一組。例如,當DRAM端的驅動可變電阻設定為特定阻值(如RZQ/5)時,由高至低改變ASIC端的ODT阻值(如從120ohm至40ohm)的測試結果。或者是,當ASIC端的ODT阻值設定為特定阻值(120ohm)時,由高至低改變DRAM端的驅動可變電阻的阻值(如從RZQ/5至RZQ/7)的測試結果。由於DDR4 DRAM的驅動檔位只有2檔,因此,關聯於ASIC端ODT的每個特定阻值(也就是每一橫排)的0h到1h的儲存格的值都初始為“0x00”,而2h到Fh的儲存格的值都初始為“0x05”。所屬技術領域技術人員可將忽略值改為“0x05”至“0xFF”間的任意值,本發明並不因此侷限。
於一些實施例,步驟S430所述的寫入訓練細節,可參考如圖9所示的方法流程圖。此方法由處理單元210於載入並執行軟體或韌體模組的程式碼時實施,包含下列步驟:將關聯於ASIC端的接收器的ODT的阻值設為預設阻值(步驟S910),將關聯於裝置端的傳送器的驅動可變電阻的阻值設為預設阻值(步驟S930),依據掃描順序為多組不同的測試組合進行測試,其中,每個測試組合包含關聯於ASIC端的傳送器的驅動可變電阻的阻值及關聯於裝置端的接收器的ODT的阻值(步驟S950);以及儲存每個測試組合的測試結果至SRAM 230的特定位置,使得校準主機110可通過校準介面250從SRAM 230取得每個測試組合的測試結果(步驟S970)。掃描順序、測試組合、測試程序及測試結果的細節,可參考以下段落的說明。
於另一些實施例,步驟S430及S450所述的訓練細節,可參考如圖7
所示的方法流程圖。不論是記憶體寫入或者是讀取訓練,整個處理會反覆執行一個迴圈(步驟S711至S790),直到所有ASIC端及裝置端的相關阻值檔位都測試過(也就是掃描過)為止(步驟S790中“是”的路徑)。以下分別說明寫入訓練及讀取訓練的執行細節:當判斷為寫入訓練時(步驟S711中“是”的路徑),處理單元210可決定ASIC端的ODT及裝置端的驅動可變電阻的阻值為預設阻值,並依據掃描順序決定裝置端的ODT及ASIC端的驅動可變電阻的阻值檔位(步驟S713)。以DDR4 DRAM為例,ASIC端的ODT阻值的預設阻值可為表2中的60ohms,而裝置端的驅動可變電阻阻值的預設阻值可為表5中的RZQ/5。關於掃描順序,舉例來說,參考圖5,處理單元210可先固定裝置端的ODT阻值於特定檔位,然後從480ohm至30ohm依順序改變ASIC端的驅動可變電阻的阻值。當ASIC端的驅動可變電阻的所有阻值都測試過後,再將裝置端的ODT阻值固定在下一個檔位並並繼續測試。接著,初始化記憶體裝置(步驟S730)。以DDR4 DRAM為例,於步驟S730,處理單元410可改變ODT檔位寄存器273的值為步驟S713決定的預設阻值,並改變驅動檔位寄存器275為步驟S713依據掃描順序決定的檔位。此外,處理單元410可指示MAC層277通過實體層271發送輸出入組態命令及設定值給記憶體裝置170,用於將記憶體裝置170的驅動可變電阻的阻值設定為步驟S713決定的預設阻值,並且將記憶體裝置170的ODT阻值設定為步驟S713依據掃描順序決定的檔位。記憶體裝置170的儲存空間包含一小塊測試區域,於步驟S730,記憶體裝置170可於測試區域進行試讀寫(test-write-then-read),又可稱為裝置端自我訓練。記憶體裝置170可通過記憶體介面270發送裝置端自我訓練是否通過的訊息給處理單元210。當裝置端自我訓練不通過時(步驟S751中“否”的路徑),處理單元210可儲存“0x01”至寫入訓練資料表中的相應儲存格作為測試結果(步驟S773)。
為了提高測試的可靠性,當裝置端自我訓練通過時(步驟S751中“是”的路徑),處理單元210可進一步執行隨機讀寫測試(步驟S753)。於隨機讀寫測試,處理單元210可指示MAC層277寫入8MB的隨機資料模式(Random Data Pattern)的資料至記憶體裝置170,然後再指示MAC層277從記憶體裝置170讀回資料,並檢查讀回的資料是否與先前寫入的一致。處理單元210依據隨機讀寫測試的執行情況,儲存測試結果至寫入訓練資料表中的相應儲存格(步驟S773)。詳細來說,當發生讀取逾時(Read Timeout),處理單元210可儲存“0x02”至寫入訓練資料表中的相應儲存格。當讀回的資料與先前寫入的不一致時,處理單元210可儲存“0x03”至寫入訓練資料表中的相應儲存格。當發生寫入逾時(Write Timeout),處理單元210可儲存“0x04”至寫入訓練資料表中的相應儲存格。當讀回的資料與先前寫入的一致時,處理單元210可儲存“0x00”至寫入訓練資料表中的相應儲存格,或者於另一些實施例,可不儲存任何資料至寫入訓練資料表中,因為相應儲存格已經初始為“0x00”。
當判斷為讀取訓練時(步驟S711中“否”的路徑),處理單元210可決定ASIC端的驅動可變電阻及裝置端ODT的阻值為預設阻值,並依據掃描順序決定裝置端的驅動可變電阻及ASIC端ODT的阻值檔位(步驟S715)。以DDR4 DRAM為例,ASIC端的驅動可變電阻的阻值的預設阻值可為表1中的60ohms,而裝置端的ODT阻值的預設阻值可為表6中的RZQ/4。關於掃描順序,舉例來說,參考圖6,處理單元210可先固定裝置端的驅動可變電阻的阻值於特定檔位,然後從120ohm至40ohm依順序改變ASIC端的ODT阻值。當ASIC端的所有ODT阻值都測試過後,再將裝置端的驅動可變電阻的阻值固定在下一個檔位並繼續測試。接著,初始化記憶體裝置(步驟S730)。步驟S730的執行細節可參考如上段落的說明,不再贅述以求簡明。當裝置端自我訓練通過時(步驟S751中“是”的路徑),處理單元
210可進一步執行隨機讀寫測試(步驟S753)。步驟S753的執行細節可參考如上段落的說明,不再贅述以求簡明。接著,處理單元210依據隨機讀寫測試的執行情況,儲存測試結果至讀取訓練資料表中的相應儲存格(步驟S775)。詳細來說,當發生讀取逾時,處理單元210可儲存“0x02”至讀取訓練資料表中的相應儲存格。當讀回的資料與先前寫入的不一致時,處理單元210可儲存“0x03”至讀取訓練資料表中的相應儲存格。當發生寫入逾時,處理單元210可儲存“0x04”至讀取訓練資料表中的相應儲存格。當讀回的資料與先前寫入的一致時,處理單元210可儲存“0x00”至讀取訓練資料表中的相應儲存格,或者於另一些實施例,可不儲存任何資料至讀取訓練資料表中,因為相應儲存格已經初始為“0x00”。
於此可理解的是,儲存格中紀錄的錯誤類型越多可有利於工程師或處理單元115執行的應用程式診斷特定設定產生的阻抗匹配問題。
於步驟S470,校準主機110的處理單元115可通過校準介面250驅動直接記憶體存取控制器290讀取SRAM 230中特定區域的內容,作為組態記憶體介面的收發器的依據。讀取的內容可顯示於顯示器190,供工程師進行組態時的參考。參考圖8所示的範例結果,工程師或處理單元115於執行應用程式時可發現,當ASIC端驅動可變電阻的阻值介於60ohm至36.9ohm之間並且裝置端ODT阻值介於RZQ/1至RZQ/5之間(如虛線方框800中所示),記憶體介面270可正常運行。工程師或處理單元115於執行應用程式時可將正常區域800中的中間值800a關聯的ASIC端的驅動可變電阻及ODT阻值的檔位以及裝置端的驅動可變電阻及ODT阻值的檔位寫入控制器150中的非揮發性儲存空間,作為出廠設定。
本發明所述的方法中的全部或部分步驟可以電腦程式實現,例如電腦的作業系統、電腦中特定硬體的驅動程式、或軟體應用程式。此外,也可實現於如上所示的其他類型程式。所屬技術領域具有通常
知識者可將本發明實施例的方法撰寫成電腦程式,為求簡潔不再加以描述。依據本發明實施例方法實施的電腦程式可儲存於適當的電腦可讀取介質,例如DVD、CD-ROM、USB碟、硬碟,亦可置於可通過網路(例如,網際網路,或其他適當載具)存取的網路伺服器。
雖然圖2包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,以達成更佳的技術效果。此外,雖然圖4、圖7及圖9的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
S910~S970:方法步驟
Claims (14)
- 一種記憶體介面的阻抗組態方法,由一處理單元於載入並執行一軟體或韌體模組的程式碼時實施,其中該處理單元耦接一記憶體介面、一靜態隨機存取記憶體及一校準介面,該記憶體介面耦接一記憶體裝置並且包含一第一傳送器及一第一接收器,該記憶體裝置包含一第二傳送器及一第二接收器,該方法包含:將關聯於該第一接收器的一晶粒內終點的一第一阻值設為一第一預設阻值;將關聯於該第二傳送器的一驅動可變電阻的一第二阻值設為一第二預設阻值;為多個第一測試組合執行測試,其中,每個該第一測試組合包含一第三阻值及一第四阻值,該第三阻值關聯於該第一傳送器的一驅動可變電阻,以及該第四阻值關聯於該第二接收器的一晶粒內終點;以及儲存每個該第一測試組合的一測試結果至該靜態隨機存取記憶體的特定位置,使得一校準主機可通過該校準介面從該靜態隨機存取記憶體取得每個該第一測試組合的該測試結果。
- 如請求項1所述的記憶體介面的阻抗組態方法,包含:從該校準主機接收一命令及一阻抗設定,其中該阻抗設定為該校准主機依據該第一測試組合的該測試結果決定;以及將該阻抗設定寫入一控制器及該記憶體裝置的非揮發性儲存空間,作為出廠設定值,其中該控制器包含該處理單元。
- 如請求項1及2中任一項所述的記憶體介面的阻抗組態方法,其中該第一測試組合的該測試結果儲存於一資料表,該資料表包含一第一軸及一第二軸,該第一軸關聯於該記憶體裝置的晶粒內終點的訊號強度,由弱到強或由強到弱排列,該第二軸關聯於該記憶體介面的 驅動訊號強度,由弱到強或由強到弱排列。
- 如請求項3所述的記憶體介面的阻抗組態方法,其中該資料表包含多個位元組,每個該位元組紀錄當該記憶體介面的驅動可變電阻設定為一第五阻值而該記憶體裝置的晶粒內終點設定為一第六阻值時的一測試結果。
- 如請求項4所述的記憶體介面的阻抗組態方法,其中當該位元組為一第一值時代表該記憶體裝置於儲存空間的一測試區域進行試讀寫時不通過。
- 如請求項4中所述的記憶體介面的阻抗組態方法,其中當該位元組為一第二值時代表該處理單元指示該記憶體介面執行隨機讀寫測試時發生讀取逾時;當該位元組為一第三值時代表該處理單元指示該記憶體介面執行隨機讀寫測試時發生寫入逾時;以及當該位元組為一第四值時代表該處理單元指示該記憶體介面執行隨機讀寫測試時發生讀回的資料與先前寫入的不一致。
- 如請求項1中所述的記憶體介面的阻抗組態方法,包含:將關聯於該第二接收器的該晶粒內終點的一第五阻值設為一第三預設阻值;將關聯於該第一傳送器的該驅動可變電阻的一第六阻值設為一第四預設阻值;為多個第二測試組合執行測試,其中,每個該第二測試組合包含一第七阻值及一第八阻值,該第七阻值關聯於該第二傳送器的該驅動可變電阻,以及該第八阻值關聯於該第一接收器的該晶粒內終點;以及儲存每個該第二測試組合的一測試結果至該靜態隨機存取記憶體的特定位置,使得該校準主機可通過該校準介面從該靜態隨機存取記憶體取得每個該第二測試組合的該測試結果。
- 如請求項7所述的記憶體介面的阻抗組態方法,包含: 從該校準主機接收一命令及一阻抗設定,其中該阻抗設定為該校准主機依據該第一測試組合及該第二測試組合的該測試結果決定;以及將該阻抗設定寫入一控制器及該記憶體裝置的非揮發性儲存空間,作為出廠設定值,其中該控制器包含該處理單元。
- 一種電腦程式產品,用於組態記憶體介面的阻抗,由一處理單元載入並執行,其中該處理單元耦接一記憶體介面、一靜態隨機存取記憶體及一校準介面,該記憶體介面耦接一記憶體裝置並且包含一第一傳送器及一第一接收器,該記憶體裝置包含一第二傳送器及一第二接收器,包含以下的程式碼:將關聯於該第一接收器的一晶粒內終點的一第一阻值設為一第一預設阻值;將關聯於該第二傳送器的一驅動可變電阻的一第二阻值設為一第二預設阻值;為多個第一測試組合執行測試,其中,每個該第一測試組合包含一第三阻值及一第四阻值,該第三阻值關聯於該第一傳送器的一驅動可變電阻,以及該第四阻值關聯於該第二接收器的一晶粒內終點;以及儲存每個該第一測試組合的一測試結果至該靜態隨機存取記憶體的特定位置,使得一校準主機可通過該校準介面從該靜態隨機存取記憶體取得每個該第一測試組合的該測試結果。
- 如請求項9所述的電腦程式產品,包含以下的程式碼:從該校準主機接收一命令及一阻抗設定,其中該阻抗設定為該校准主機依據該第一測試組合的該測試結果決定;以及將該阻抗設定寫入一控制器及該記憶體裝置的非揮發性儲存空間,作為出廠設定值,其中該控制器包含該處理單元。
- 如請求項9至10中任一項所述的電腦程式產品,其中該第一測試組 合的該測試結果儲存於一資料表,該資料表包含一第一軸及一第二軸,該第一軸關聯於該記憶體裝置的晶粒內終點的訊號強度,由弱到強或由強到弱排列,該第二軸關聯於該記憶體介面的驅動訊號強度,由弱到強或由強到弱排列。
- 如請求項11所述的電腦程式產品,其中該資料表包含多個位元組,每個該位元組紀錄當該記憶體介面的驅動可變電阻設定為一第五阻值而該記憶體裝置的晶粒內終點設定為一第六阻值時的一測試結果。
- 如請求項12所述的電腦程式產品,其中當該位元組為一第一值時代表該記憶體裝置於儲存空間的一測試區域進行試讀寫時不通過。
- 如請求項12所述的電腦程式產品,其中當該位元組為一第二值時代表該處理單元指示該記憶體介面執行隨機讀寫測試時發生讀取逾時;當該位元組為一第三值時代表該處理單元指示該記憶體介面執行隨機讀寫測試時發生寫入逾時;以及當該位元組為一第四值時代表該處理單元指示該記憶體介面執行隨機讀寫測試時發生讀回的資料與先前寫入的不一致。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962804999P | 2019-02-13 | 2019-02-13 | |
US62/804,999 | 2019-02-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI694378B true TWI694378B (zh) | 2020-05-21 |
TW202030601A TW202030601A (zh) | 2020-08-16 |
Family
ID=71896204
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108109449A TWI694378B (zh) | 2019-02-13 | 2019-03-20 | 記憶體介面的阻抗組態方法及電腦程式產品 |
TW109113146A TWI740461B (zh) | 2019-02-13 | 2019-03-20 | 記憶體介面的阻抗組態裝置 |
TW108117397A TWI701661B (zh) | 2019-02-13 | 2019-05-21 | 記憶體介面檢測方法及電腦程式產品 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109113146A TWI740461B (zh) | 2019-02-13 | 2019-03-20 | 記憶體介面的阻抗組態裝置 |
TW108117397A TWI701661B (zh) | 2019-02-13 | 2019-05-21 | 記憶體介面檢測方法及電腦程式產品 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN111564175B (zh) |
TW (3) | TWI694378B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112149369B (zh) * | 2020-09-21 | 2024-04-05 | 交叉信息核心技术研究院(西安)有限公司 | 基于芯粒架构的多核封装级系统及其面向芯粒的任务映射方法 |
CN112420089B (zh) * | 2020-12-02 | 2024-05-17 | 海光信息技术股份有限公司 | 存储装置、连线方法及装置以及计算机可读存储介质 |
CN114020667B (zh) * | 2021-10-20 | 2024-08-06 | 瑞芯微电子股份有限公司 | 一种支持ddr自动调节最优信号参数的方法和存储设备 |
CN114420195B (zh) * | 2021-12-28 | 2023-04-07 | 深圳市晶存科技有限公司 | 一种odt校准方法、计算机设备及存储介质 |
CN115598495B (zh) * | 2022-09-16 | 2024-01-30 | 深圳市奇普乐芯片技术有限公司 | 芯片测试配置生成方法、测试方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8274308B2 (en) * | 2010-06-28 | 2012-09-25 | Intel Corporation | Method and apparatus for dynamic memory termination |
TWI572188B (zh) * | 2011-12-21 | 2017-02-21 | 愛思開海力士有限公司 | 包含多晶片之半導體封裝及具有該封裝之記憶體系統 |
US9595963B2 (en) * | 2010-06-28 | 2017-03-14 | Intel Corporation | Method and apparatus for dynamic memory termination |
US9705498B2 (en) * | 2011-02-02 | 2017-07-11 | Rambus Inc. | On-die termination |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6564326B2 (en) * | 1999-07-06 | 2003-05-13 | Walter A. Helbig, Sr. | Method and apparatus for enhancing computer system security |
US7089463B1 (en) * | 2002-02-20 | 2006-08-08 | Cisco Technology Inc. | Test buffer design and interface mechanism for differential receiver AC/DC boundary scan test |
KR100640158B1 (ko) * | 2005-09-27 | 2006-11-01 | 주식회사 하이닉스반도체 | 데이터 출력드라이버의 임피던스를 조정할 수 있는 반도체메모리 장치 |
US7405586B2 (en) * | 2006-03-20 | 2008-07-29 | Intel Corporation | Ultra low pin count interface for die testing |
CN101458289A (zh) * | 2007-12-13 | 2009-06-17 | 鸿富锦精密工业(深圳)有限公司 | 主机板线路检测装置 |
US20130041606A1 (en) * | 2011-08-10 | 2013-02-14 | XiaoHu Tang | Detecting an open wire between a battery cell and an external circuit |
CN102999096B (zh) * | 2011-09-14 | 2016-03-30 | 中山市云创知识产权服务有限公司 | 计算机 |
KR20140000855A (ko) * | 2012-06-26 | 2014-01-06 | 삼성전자주식회사 | 테스트 인터페이스 보드 및 테스트 시스템 |
CN103823149A (zh) * | 2013-12-03 | 2014-05-28 | 华为技术有限公司 | 芯片检测系统及检测方法 |
KR20160138627A (ko) * | 2015-05-26 | 2016-12-06 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치, 이를 위한 임피던스 조절 회로 및 방법 |
US10241937B2 (en) * | 2015-07-08 | 2019-03-26 | International Business Machines Corporation | Adjusting an optimization parameter to customize a signal eye for a target chip on a shared bus |
US10090065B1 (en) * | 2017-03-14 | 2018-10-02 | International Business Machines Corporation | Simultaneous write, read, and command-address-control calibration of an interface within a circuit |
CN108694985B (zh) * | 2017-04-06 | 2020-10-16 | 中芯国际集成电路制造(北京)有限公司 | 用于检测存储器故障的测试方法及测试电路 |
TWI611296B (zh) * | 2017-04-13 | 2018-01-11 | 慧榮科技股份有限公司 | 記憶體控制器與資料儲存裝置 |
TWI632771B (zh) * | 2017-08-18 | 2018-08-11 | 瑞昱半導體股份有限公司 | 阻抗校正裝置及其方法 |
-
2019
- 2019-03-20 TW TW108109449A patent/TWI694378B/zh active
- 2019-03-20 CN CN201910211851.3A patent/CN111564175B/zh active Active
- 2019-03-20 TW TW109113146A patent/TWI740461B/zh active
- 2019-05-21 TW TW108117397A patent/TWI701661B/zh active
- 2019-05-21 CN CN201910423599.2A patent/CN111563011A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8274308B2 (en) * | 2010-06-28 | 2012-09-25 | Intel Corporation | Method and apparatus for dynamic memory termination |
US9595963B2 (en) * | 2010-06-28 | 2017-03-14 | Intel Corporation | Method and apparatus for dynamic memory termination |
US9705498B2 (en) * | 2011-02-02 | 2017-07-11 | Rambus Inc. | On-die termination |
TWI572188B (zh) * | 2011-12-21 | 2017-02-21 | 愛思開海力士有限公司 | 包含多晶片之半導體封裝及具有該封裝之記憶體系統 |
Also Published As
Publication number | Publication date |
---|---|
TWI740461B (zh) | 2021-09-21 |
TW202030728A (zh) | 2020-08-16 |
TWI701661B (zh) | 2020-08-11 |
TW202030603A (zh) | 2020-08-16 |
CN111564175B (zh) | 2022-05-31 |
TW202030601A (zh) | 2020-08-16 |
CN111563011A (zh) | 2020-08-21 |
CN111564175A (zh) | 2020-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI694378B (zh) | 記憶體介面的阻抗組態方法及電腦程式產品 | |
US11112981B2 (en) | Apparatus and method and computer program product for configuring impedance of memory interfaces | |
EP3547319B1 (en) | Memory preset adjustment based on adaptive calibration | |
US20180348838A1 (en) | Techniques to change a mode of operation for a memory device | |
CN110176263A (zh) | 基于外部电压确定操作模式的存储器装置及其操作方法 | |
JP2021093129A (ja) | メモリデバイスへのコマンドバストレーニングの技術 | |
US10997096B2 (en) | Enumerated per device addressability for memory subsystems | |
US20240029768A1 (en) | Offset calibration training method for adjusting data receiver offset and memory device therefor | |
US9727269B2 (en) | System and method for retaining DRAM data when reprogramming reconfigurable devices with DRAM memory controllers incorporating a data maintenance block colocated with a memory module or subsystem | |
US20210312972A1 (en) | Apparatus, system and method to detect and improve an input clock performance of a memory device | |
EP4113519A2 (en) | Apparatus, memory device, and method reducing clock training time | |
US11915781B2 (en) | Apparatuses and methods for ZQ calibration | |
WO2017147497A1 (en) | Opportunistic memory tuning for dynamic workloads | |
CN108665937A (zh) | 一种存储部件测试方法和装置 | |
US20230142493A1 (en) | Apparatus and method for zq calibration | |
WO2020125002A1 (zh) | 一种存储设备的控制方法及存储设备、电子设备 | |
CN107545918A (zh) | 存储器控制电路单元与存储装置及参考电压产生方法 | |
US11888476B2 (en) | Apparatus, memory device and method for storing parameter codes for asymmetric on-die-termination | |
TWI812919B (zh) | 記憶體控制器及其控制方法 | |
US20240212725A1 (en) | Memory device and method for training per-pin operation parameters | |
EP4177890A1 (en) | Apparatus, memory device, and method for multi-phase clock training | |
JP6712312B2 (ja) | メモリモジュールまたはサブシステムと併置されたデータメンテナンスブロックを組み込んだdramメモリコントローラを用いて再構成可能なデバイスを再プログラミングする場合にdramデータを保持するシステムおよび方法 | |
KR20230068258A (ko) | Zq 캘리브레이션 방법 및 장치 | |
KR20240013635A (ko) | 데이터(dq) 리시버 오프셋을 조정하기 위한 오프셋 캘리브레이션 트레이닝 방법 및 메모리 장치 | |
CN118708117A (zh) | 可编程物理层控制器及fpga芯片 |