間歇性內(nèi)存故障處理起來可能會非常復雜。這些故障的根源可能是一種原因或多種不同原因的組合,包括BIOS錯誤、協(xié)議錯誤、信號完整性問題、硬件問題、內(nèi)存或其它子系統(tǒng)問題。盡管有些團隊能夠迅速解決內(nèi)存調(diào)試問題,但更多團隊在遇到間歇性故障時會束手無策。本文概括介紹了間歇性內(nèi)存故障的調(diào)試方法,文中通過多個實例,說明了如何才能找出引起內(nèi)存問題的不同原因。對于經(jīng)常遇到系統(tǒng)未能引導或內(nèi)存測試失敗的工程師來說,也可從本文介紹的調(diào)試方法中受益。
圖1:DDRII激活時的高分辨率定時軌跡。
各種子系統(tǒng)、不同工作模式和多種循環(huán)導致的串擾和資源沖突一直是引起許多間歇性內(nèi)存故障的根本原因。對于間歇性內(nèi)存故障,查找其根本原因的方法分成三步:1) 確定故障是否可以重復。試著復制產(chǎn)生故障的條件。重復故障通??梢杂行У夭榭垂收系奶攸c。2) 使用普通探頭或插槽式分析探頭把內(nèi)存總線連接到邏輯分析儀上,以迅速查看:整個DDRII總線的定時關系、百萬分之幾概率的誤碼、協(xié)議錯誤和時鐘質(zhì)量。3) 用高速示波器及高帶寬探頭,在信號的接收端進行參數(shù)測量,包括:對于寫入內(nèi)存的數(shù)據(jù)在SDRAM上進行探測和對于從內(nèi)存讀出的數(shù)據(jù)在內(nèi)存控制器上進行探測。
評估內(nèi)存故障要考慮的因素
在試圖重建故障條件時,記住故障的根本原因可能來自未直接連接到內(nèi)存上的子系統(tǒng)或子應用。局域網(wǎng)接入、子系統(tǒng)上電順序、進入或退出睡眠模式以及電源周期都是在評估內(nèi)存故障時需要考慮的重要因素。
在某個特殊的測試或設置條件下隔離問題,可以使問題變的比較容易。例如,在某項測試過程中發(fā)生的故障可能會指向軟件程序或信號完整性問題,如串擾或碼間干擾。對可重復故障,用戶可以在故障條件下進行多次測量。
重復故障條件說起來容易,但做起來要難得多。需要考慮的細節(jié)包括:
圖2:CK0和S0的眼掃描(Eye Scan)。
軟件:是否有錯誤記錄?BIOS、操作系統(tǒng)和應用程序是否在測試時運行?
環(huán)境:在系統(tǒng)出現(xiàn)故障時室內(nèi)溫度是多少?在故障期間,被測系統(tǒng)的空氣流動情況如何?系統(tǒng)供電是否在技術規(guī)范之內(nèi)?
硬件:采用同一設計的其他系統(tǒng)是否已經(jīng)通過驗證測試?其它系統(tǒng)也有故障?還是只有這個系統(tǒng)發(fā)生這種故障?故障系統(tǒng)的電路板、DIMM、處理器等是什么版本?故障系統(tǒng)與工作系統(tǒng)有什么區(qū)別?制造中最新的元器件有什么變化?
如果條件可以重復,那么在這些條件下進行測試;如果條件不能重復,那么選擇最好的內(nèi)存進行測試,并按順序改變測試條件(如溫度極限和電源極限)。
用邏輯分析工具縮小問題區(qū)域
在調(diào)試 DDR系統(tǒng)時,邏輯分析有效地補充了高速示波器的限制。使用DDR探頭或插槽分析探頭進行邏輯分析,可以迅速查看系統(tǒng)中的問題區(qū)域。通過使用邏輯分析工具迅速縮小問題區(qū)域,然后使用高性能示波器檢查可疑的信號,工程師可以節(jié)約大量的時間。
邏輯分析儀系統(tǒng)提供了下列優(yōu)勢:
通過簡單的連接,對全部 DDR總線進行64K深的高分辨率定時分析。64k深度信號可以從觸發(fā)前的100%調(diào)節(jié)到觸發(fā)后的100%。
獨特的高分辨率眼圖,可以識別百萬分之幾概率的故障信號。
可以從搜索功能中自動設置全局標尺(最多1024個)。
著色濾波功能可以識別軌跡的碼型,協(xié)助觀察內(nèi)存訪問情況。
協(xié)議解碼轉(zhuǎn)換命令,用于進行功能性驗證。
全局標尺可以跟蹤波形和列表窗口。
對于使用同一時鐘的所有信號,使用眼圖測量可以一目了然地查看所有信號。
圖1中感興趣的測量包括:
時鐘周期測量。圖1中的系統(tǒng)是DDRII_400,時鐘周期是5ns。
使用標尺測量數(shù)據(jù)有效窗口,或使用鼠標在軌跡上移動,確定轉(zhuǎn)換寬度的分布情況。
從有效命令(指令時鐘 (CK0)的上升沿,其中CS低,位于WRITE/ READ命令期間)到數(shù)據(jù)脈沖期間第一個數(shù)據(jù)選通的上升沿,測得的RAS/CAS等待時間。
從有效激活(指令時鐘的上升沿,S0 = 0,其中命令 = Activate)到有效WRITE/CAS測得的RAS/CAS時延。
刷新速率。
預充電間隔。
圖3:著色濾波器使工程師能夠迅速識別表明內(nèi)存訪問問題的碼型。
在圖1中,用標尺標出的明顯問題區(qū)域中,S0 (片選)偶爾會在CK0 (指令時鐘)上升沿的250ps范圍內(nèi)啟動。
這可能要超出DDRII 400 建立/保持時間(Ts/Th)》600ps的指標。為正確檢驗建立時間和保持時間,我們必需使用高速示波器和探頭探測SDRAM上的CK0/CK0#和片選。如果Ts/Th對任何信號處于邊際狀態(tài),那么它可能會導致間歇性的或持續(xù)的內(nèi)存故障。
在我們連接示波器探頭,檢定S0的Tsetup /Thold之前,我們可以使用邏輯分析儀上的眼圖測量功能,進一步評估邊際定時關系。請看圖2中所示的眼圖:1. CK0是方形波。2. S0是三角形波,構成了與CK0的上升沿有關的眼圖。3. S0上升時間慢可能是這個系統(tǒng)中間歇性系統(tǒng)故障的根本原因。邊沿慢使得眼圖變差,減少了建立時間(Tsetup)。4. 從百萬分之幾概率的故障信號中識別潛在問題。百萬分之幾的故障信號會在眼圖內(nèi)部顯示為綠色的斑點。在本例中,沒有證據(jù)表明存在故障信號。邊沿慢是主要問題。
圖4:邏輯分析儀上的眼測量功能可以一目了然地了解內(nèi)存總線信號關系。
圖2中的系統(tǒng)要求使用示波器,最終確定片選信號的建立時間(Tsetup)。下面使用邏輯分析儀快速查看內(nèi)存系統(tǒng)的實例將介紹,增加著色濾波的獨特方法如何通過碼型識別了解內(nèi)存訪問的概貌,從而迅速發(fā)現(xiàn)協(xié)議錯誤。
在實例中邏輯分析儀上設置了著色濾波器,以幫助定位關閉頁面超限,在這種情況下,針對一個存儲區(qū)(Bank)的READ或WRITE命令沒有與激活啟動存儲區(qū)的命令同步。著色濾波器設置成為存儲區(qū)bank0(B0)提供紅色陰影,為存儲區(qū)bank1(B1)提供藍色陰影。粉紅色=B0激活,紅色=B讀,青綠色=B激活,淺藍色=B1讀。著色濾波使得工程師能夠使用碼型標識,同時查看波形,識別要求進一步檢測的區(qū)域。
在圖3中,B0激活(粉紅色)在一系列B0 READ(紅色)命令之間前 。但是,屏幕左邊B1讀(淺藍色)之前,沒有B1激活(青綠色)。如果B1最后激活沒有落在允許的規(guī)定時間范圍內(nèi),則表明發(fā)生了問題。
使用邏輯分析儀的最后一個實例,介紹如何使用邏輯分析儀上的眼測量功能。眼圖測量工具提供了相對于時鐘邊沿參考點為0s,從+5ns到-5ns的信號的單一電壓門限眼圖。
眼圖測量一目了然地提供了:時鐘占空比、噪聲和信號完整性問題、數(shù)據(jù)有效窗口和眼圖閉合和通道間時滯。
眼圖測量是校準邏輯分析儀取樣位置的最快速的方法。在圖4中,上面的屏幕顯示了采用干凈的差分時鐘的DDRII系統(tǒng)上的眼定位(Eye Finder)結果。從眼定位(Eye Finder)結果中,我們注意到:1. 從T=0任一側同等尺寸的白色區(qū)域(眼)中可以看出,指令時鐘的占空比是50%。
2. T=0時,指令時鐘細長的轉(zhuǎn)換區(qū)域 (黃色)表明了干凈的時鐘邊沿。
下面的屏幕是采用非純凈(有噪聲)時鐘的DDRI系統(tǒng)。我們通過查看Eye Finder結果,發(fā)現(xiàn)時鐘是不純凈的:1. 指令時鐘的轉(zhuǎn)換區(qū)域很寬。2. CK0和CK0#取樣的單端眼不對稱。不對稱的眼也可能表明邏輯分析儀門限不正確。
用高速示波器和探頭進行測量
圖5:READ和WRITE選通圖取決于探測位置。
為確定故障的根本原因,通常要求使用高速示波器和探頭進行參數(shù)測量。對DDRII測量,使用配有7GHz探頭的20Gs/s采樣、6GHz帶寬的示波器可以為系統(tǒng)特性驗證提供精確的測量功能。需要在示波器上測量的參數(shù)包括:建立保持時間Ts/Th、上升時間、時鐘過沖、頻率和抖動分析軟件。
探頭位置對在信號特性驗證中進行精確的參數(shù)測量至關重要。最重要的是:1. 在內(nèi)存控制器上探測READ數(shù)據(jù)和選通;2. 在 SDRAM上探測WRITE數(shù)據(jù)和選通。圖5是T=0時相對于DQS5上升沿和下降沿的邏輯分析儀眼掃描(Eye Scan)測量結果。測量結果是在DIMM插槽中使用插槽分析探頭獲得的。
在圖5中,WRITE選通的眼圖很大,形狀很好。插槽分析探頭上的探頭位置與SDRAM足夠近,因此信號中沒有反射。插槽分析探頭上的反射使READ選通劣化。眼圖足以對選通偏移和脈寬進行相對測量。但是,總線上的位置不足以實際檢定READ業(yè)務的特征。
圖5還說明了探頭位置的重要性,因為在插槽分析探頭上查看時,READ信號的幅度失真,與內(nèi)存控制器上的實際眼圖幾乎沒有類似之處。為精確地查看內(nèi)存控制器看到的READ數(shù)據(jù),示波器探頭必需放在內(nèi)存控制器上。微型探頭前端使這一任務成為可能。許多技術領導者使用本文中介紹的工具和技術,來驗證和調(diào)試高速內(nèi)存系統(tǒng)。許多工程師已經(jīng)采用節(jié)約時間的工具,他們可以更快地調(diào)試及更好地查看系統(tǒng)性能。
評論