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