某型產(chǎn)品M9顯示芯片顯示異常的故障分析
引言
某型計(jì)算機(jī)采用ATI公司的M9芯片作為圖形處理器,它是ATI公司針對(duì)新一代低功耗多媒體系統(tǒng)而設(shè)計(jì)的高性能圖形處理芯片,M9支持2D/3D硬件加速,硬件支持openGL圖形接口標(biāo)準(zhǔn),內(nèi)建多條并行圖形處理流水線,采用多芯片封裝技術(shù),內(nèi)部集成64MB的DDR顯存。M9圖形硬件加速性能極高,功耗較低,已經(jīng)成為軍用圖形顯示的首選方案。本文以某型計(jì)算機(jī)使用的M9顯示芯片出現(xiàn)顯示故障為切入點(diǎn),對(duì)其故障機(jī)理進(jìn)行分析,從而提出解決辦法。
1故障背景
某型計(jì)算機(jī)在安全改裝后經(jīng)常出現(xiàn)綜顯花屏死機(jī)現(xiàn)象。安全改裝后,綜顯有一路視頻是接收該計(jì)算機(jī)加裝的顯控模塊的視頻輸出,出現(xiàn)綜顯花屏死機(jī)是其顯控模塊輸出的視頻故障導(dǎo)致。
該計(jì)算機(jī)在安全改裝后增加顯控模塊,輸出一路LVDS視頻信號(hào),用于向綜顯傳輸視頻信息:顯控模塊由CPU子模塊和PMC-M9顯控組成。整個(gè)LVDS視頻信號(hào)傳輸路徑如圖1所示,其中LVDS視頻信號(hào)由M9顯卡芯片直接輸出,到CPU子模塊后經(jīng)驅(qū)動(dòng)轉(zhuǎn)換為RGB信號(hào),進(jìn)入FPGA后直連送出,經(jīng)另一驅(qū)動(dòng)器轉(zhuǎn)換成LVDS信號(hào)送到母板,送出計(jì)算機(jī),經(jīng)電纜傳輸送達(dá)綜合顯示器進(jìn)行顯示。
2故障分析
2.1故障樹分析
根據(jù)產(chǎn)品工作原理,對(duì)花屏故障產(chǎn)生的原因進(jìn)行故障樹分析,如圖2所示。
根據(jù)故障樹,顯示花屏有可能是由以下幾種原因造成:
(1)綜顯顯示屏存在故障:
(2)綜顯模塊內(nèi)部電路故障或設(shè)計(jì)缺陷:
(3)綜顯機(jī)箱內(nèi)部連線不滿足LVDS信號(hào)傳輸要求,造成LVDS信號(hào)畸變,信號(hào)質(zhì)量下降:
(4)機(jī)上電纜過長(zhǎng)或不滿足LVDS信號(hào)傳輸要求,以及個(gè)別信號(hào)線斷線,造成LVDS信號(hào)畸變或缺失:
(5)整個(gè)LVDS信號(hào)傳輸線(從M9的信號(hào)源端到顯示屏的目的地端)4對(duì)LVDS視頻差分信號(hào)線不等長(zhǎng)或超出信號(hào)允許范圍,造成LVDS信號(hào)畸變嚴(yán)重,信號(hào)質(zhì)量下降:
(6)計(jì)算機(jī)機(jī)箱內(nèi)部連線不滿足LVDS信號(hào)傳輸要求,造成LVDS信號(hào)畸變:
(7)計(jì)算機(jī)LVDS信號(hào)驅(qū)動(dòng)電路故障:
(8)M9顯示芯片工作異常。
2.2故障定位
根據(jù)以上分析,針對(duì)外場(chǎng)出現(xiàn)的花屏故障,更換機(jī)上電纜以及綜顯,加電測(cè)試故障依然存在,基本可以排除故障樹中的(1)(2)(3)(4)項(xiàng)。更換工作正常的計(jì)算機(jī)后,加電測(cè)試綜顯顯示正常,說明故障可能是由計(jì)算機(jī)引起。而該產(chǎn)品生產(chǎn)量較大,工藝成熟,只有個(gè)別產(chǎn)品出現(xiàn)故障,基本可以排除故障樹中的(5)(6)項(xiàng)。
給故障產(chǎn)品加電,觀察顯控模塊串口打印信息,產(chǎn)品故障時(shí)打印如下信息:
ERROR:Timed out waiting for Ring Buffer Block.
ERROR:Timed out waiting for opengl drivers PIO FIFO.
該信息表明顯示需要的圖形數(shù)據(jù)無法正確地被M9顯示芯片的GPU從其顯存中讀取出來。結(jié)合以往排故經(jīng)驗(yàn),基本確定故障是M9顯示芯片工作不正常,造成綜顯花屏。
3故障分析
M9顯示芯片工作不正常的原因有如下幾個(gè)方面:
(1)焊接存在問題:
(2)M9芯片損壞:
(3)M9芯片的硬件設(shè)計(jì)問題:
(4)M9芯片的軟件設(shè)置問題。
觀察顯控模塊串口輸出信息,每次加電測(cè)試時(shí),無論顯示正常還是異常,M9顯示芯片均能正常完成設(shè)備查找和初始化工作,表明PC1總線數(shù)據(jù)傳輸正確,焊接方面的問題可以排除。M9顯示芯片已完成初始化,進(jìn)入軟件設(shè)置的LVDs輸出工作模式,芯片損壞的原因也可以排除。檢查M9顯示芯片的硬件設(shè)計(jì),通過核對(duì)和檢查PMC一M9顯卡的邏輯圖,確認(rèn)硬件設(shè)計(jì)無誤。
M9顯示芯片不駐留軟件,該芯片的初始化和設(shè)置及相關(guān)圖形處理是由駐留在顯控模塊CPU子模塊上的軟件完成。M9顯示芯片的設(shè)置包括顯示分辨率、刷新頻率、GPU時(shí)鐘頻率、顯存時(shí)鐘頻率、GPU電壓、顯存電壓、同步信號(hào)以及極性等內(nèi)容。
檢查M9軟件設(shè)計(jì),發(fā)現(xiàn)軟件在對(duì)M9顯示芯片進(jìn)行設(shè)置時(shí),為降低模塊功耗,M9顯示芯片的GPU時(shí)鐘和顯存時(shí)鐘進(jìn)行了降頻處理,均設(shè)置為150MHz,軟件中設(shè)置語句為:SET_DEFAULT_ALT_DISPLAY_MODE_GPU_CLOCK(150);SET_DEFAULT_ALT_DISPLAY_MODE_MEM_CLOCK(150);
按照目前軟件中設(shè)置的工作狀態(tài)在該顯控模塊上加載運(yùn)行M9顯示芯片硬件自檢程序,測(cè)試結(jié)果RingBuffer報(bào)錯(cuò),測(cè)試圖形顯示花屏。串口輸出錯(cuò)誤信息如下:
ring buffer time out fail R200_MC_IDLE and R200_RBBM_ACTIVE
ring buffer time out R200_RBBM_ACTIVE
ring buffer time out fail RING_BUFFER_TEST_TIMEOUT
ring buffer test fail
test fail
在硬件不變的情況下,更改軟件中的時(shí)鐘設(shè)置,去掉該兩條設(shè)置時(shí)鐘頻率的語句,這種情況下M9顯示芯片的時(shí)鐘設(shè)置為默認(rèn)值(GPU時(shí)鐘250MHz,顯存時(shí)鐘220MHz)。按照這種工作狀態(tài)在該顯控模塊上加載運(yùn)行M9顯示芯片硬件自檢程序,自檢通過,測(cè)試圖像顯示正常。串口輸出信息如下:
start ring buffer test
ring buffer test ok
test ok
以上測(cè)試結(jié)果表明,在該M9顯示芯片GPU和顯存的時(shí)鐘頻率均設(shè)置為150MHz的情況下,芯片自檢報(bào)錯(cuò),無法滿足正常的圖形顯示性能需求。提高M(jìn)9顯示芯片的時(shí)鐘頻率設(shè)置為默認(rèn)值:GPU時(shí)鐘250MHz,顯存時(shí)鐘220MHz)后,芯片自檢正常,圖形可正常顯示。
綜上所述,綜顯出現(xiàn)花屏現(xiàn)象是由該計(jì)算機(jī)顯控模塊軟件設(shè)置問題導(dǎo)致。由于軟件中對(duì)M9顯示芯片GPU和顯存的時(shí)鐘頻率設(shè)置不合理,M9顯示芯片工作不正常,有時(shí)會(huì)出現(xiàn)顯示花屏現(xiàn)象。更改顯控模塊軟件,把軟件中的GPU和顯存時(shí)鐘頻率設(shè)置為默認(rèn)值,通過多種測(cè)試方法測(cè)試,該型計(jì)算機(jī)工作正常,顯示正常。
4機(jī)理分析
圖形正常顯示需要由軟件通過CPU把需要顯示的圖形數(shù)據(jù)經(jīng)過PC1總線寫入M9顯示芯片的顯存中,再由M9顯示芯片的GPU從顯存中讀出圖形數(shù)據(jù),轉(zhuǎn)換為相應(yīng)的視頻信號(hào)輸出顯示。
出現(xiàn)故障的計(jì)算機(jī)在M9顯示芯片GPU和顯存的時(shí)鐘頻率均設(shè)置為150MHz的情況下,工作程序串口輸出顯示Ring Buffer Block和opengl drivers PIO FIFO報(bào)超時(shí)(Timed out),芯片自檢程序串口輸出顯示Ring Buffer超時(shí),表明M9顯示芯片GPU訪問顯存存在問題,GPU在規(guī)定的時(shí)間內(nèi)不能把顯存中的圖形數(shù)據(jù)讀出,造成圖形不能正常顯示,顯示出現(xiàn)花屏現(xiàn)象。提高M(jìn)9顯示芯片的時(shí)鐘頻率后,由于M9的性能提高,GPU可以正確訪問顯存,芯片自檢正常,圖形顯示正常。
在原來的設(shè)計(jì)中,為了降低產(chǎn)品功耗,對(duì)M9顯示芯片GPU時(shí)鐘和顯存時(shí)鐘進(jìn)行了降頻,由于M9顯示芯片性能存在個(gè)體差異,該設(shè)置對(duì)于部分M9顯示芯片頻率過低,不能滿足正常的圖形顯示性能需求,引起顯示花屏的現(xiàn)象。
5改進(jìn)措施
更改顯控模塊軟件,去掉程序中設(shè)置M9的GPU和顯存時(shí)鐘頻率的語句,將M9芯片的時(shí)鐘頻率恢復(fù)為默認(rèn)值(GPU時(shí)鐘250MHz,顯存時(shí)鐘220MHz)。加電測(cè)試,故障的計(jì)算機(jī)產(chǎn)品工作正常、顯示正常,故障排除。
6結(jié)語
通過此次對(duì)綜顯畫面顯示異常進(jìn)行故障樹分析,確定其為M9顯示芯片時(shí)鐘設(shè)置不合理所致。軟件設(shè)置時(shí),為了追求降低產(chǎn)品功耗,盲目地降低了M9顯示芯片的GPU和顯存時(shí)鐘頻率,而M9芯片存在個(gè)體差異,導(dǎo)致個(gè)別芯片出現(xiàn)工作異常,用戶在使用過程中存在故障隱患。由于軟件故障在產(chǎn)品維修中難以排查,無形中給售后維修工作帶來了困擾。因此,產(chǎn)品在設(shè)計(jì)過程中,在關(guān)注硬件的同時(shí),也需對(duì)軟件設(shè)置進(jìn)行關(guān)注,減少因軟件設(shè)置考慮不周引發(fā)的產(chǎn)品故障。同時(shí),維修人員在維修過程中,也需考慮軟件因素對(duì)產(chǎn)品故障的影響。