一種調(diào)試龍芯cpu和南北橋芯片的裝置制造方法
【專利摘要】本發(fā)明提供了一種調(diào)試龍芯CPU和南北橋芯片的裝置,該裝置包括HT總線接口以及相應(yīng)的開關(guān),并通過HT總線接口連接龍芯CPU和南北橋芯片。選擇支持HT總線的北橋和南橋芯片;首先將龍芯CPU與北橋、南橋芯片的針腳引入調(diào)試裝置;調(diào)試龍芯CPU針腳是否存在bug;以及連接相應(yīng)針腳并調(diào)試。通過本發(fā)明,如果龍芯CPU的HT?bus不滿足標(biāo)準(zhǔn)的協(xié)議,可以定位到那根信號存在問題,并指導(dǎo)龍芯CPU的該進(jìn)。利用FPGA編寫出多組的HT?bus接口,可以實(shí)現(xiàn)多款芯片組與龍芯CPU相連,實(shí)現(xiàn)在一塊主板上能同時調(diào)試多款芯片組。當(dāng)龍芯CPU需要和一組芯片組進(jìn)行調(diào)試時,把與其他芯片組的連接斷掉,切換靈活節(jié)省了時間和成本。
【專利說明】—種調(diào)試龍芯CPU和南北橋芯片的裝置
[0001]本申請為 申請人:于2011年5月16日提交的、申請?zhí)枮?01110126228.1、名稱為 “一種調(diào)試龍芯CPU和南北橋芯片的方法和裝置”的發(fā)明專利申請的分案申請。
【技術(shù)領(lǐng)域】
[0002]本發(fā)明涉及計(jì)算機(jī)主板設(shè)計(jì),具體來說,提供了一種調(diào)試龍芯CPU和北橋、南橋芯 片的方法和裝置,并得出了一種和龍芯CPU適配的南北橋組合。
【背景技術(shù)】
[0003]龍芯3號系列CPU包括4核心3A,8核心3B,16核心3C的CPU,以及后續(xù)開發(fā)的其 他系列的CPU。
[0004]龍芯3號CPU是一款通用的多核的CPU,采用MIPS架構(gòu),完全可以實(shí)現(xiàn)Intel和 AMD X86架構(gòu)CPU的功能,盡管在性能方面比X86CPU還稍微落后一些,但在絕大部分領(lǐng)域可 以完全代替X86CPU。
[0005]盡管龍芯3A和3B CPU已經(jīng)面世,但一直沒有解決“用”的關(guān)鍵問題,即一直沒有 找到與龍芯CPU配套且能正常工作的南北橋chipsets和外圍設(shè)備。為解決龍芯CPU的實(shí) 用問題,曾經(jīng)探討了“龍芯3CPU+SIS公司chipsets”,“龍芯3CPU+NVIDIA公司chipsets” 的可能性,并研發(fā)了主板樣品,但最終沒有成功。
[0006]龍芯3系列CPU限于技術(shù)保護(hù),無法分享X86CPU成功的經(jīng)驗(yàn),因此存在bug在所難免。
[0007]在調(diào)試中盡管可以選擇一種芯片組和龍芯CPU進(jìn)行適配,但在適配不成功時就很 難判斷是由于龍芯CPU存在的一些bug造成的,還是因?yàn)樾酒M和龍芯CPU不兼容引起的。 如果原因是前者,可以修改CPU的bug而不用放棄所選擇的芯片組,如果是后者可以再重新 選擇一款芯片組。但目前常規(guī)的調(diào)試方法是無法準(zhǔn)確定位原因,幾乎只能亂猜亂試。所以 需要尋找一種靈活的調(diào)試方法能準(zhǔn)確的定位適配不成功的原因。
[0008]在常規(guī)調(diào)試方法中,一旦發(fā)現(xiàn)龍芯CPU存在bug,特別是龍芯HT (HyperTransport) bus存在bug,如圖1所示。造成龍芯CPU無法和橋片進(jìn)行正常連接時,幾乎無計(jì)可施,不得 不重新修改龍芯CPU的設(shè)計(jì),只能等下一版龍芯CPU回來重新焊接才能繼續(xù)調(diào)試。另一方 面,龍芯CPU和橋片的上下電時序配合、信號線的配置在沒有找到適配的橋片前也無法確 定,常規(guī)的調(diào)試方法只能靠猜測假定,可調(diào)節(jié)的余地很小。
[0009]如圖1所示,常規(guī)的調(diào)試方法,一款芯片組作一種主板,而且設(shè)計(jì)和加工一種主板 需要花費(fèi)至少2個月的時間,如果再加上調(diào)試的時間,一種主板的嘗試至少需要花費(fèi)6個月 的時間,不但費(fèi)錢而且費(fèi)時。而且現(xiàn)在的調(diào)試方法不能同時調(diào)試多款芯片組,需要作多各種 不同的主板。
[0010]FPGA (Field Programmable Gate Array),即現(xiàn)場可編程門陣列。FPGA 具有非常 靈活的在線編程特點(diǎn),能反復(fù)的修改代碼,能模擬出目前常見的IO接口(HT bus,PCIE bus、 serdes等)、能靈活的變換時鐘頻率、能調(diào)節(jié)信號的電平,并有在線檢測信號的功能。
【發(fā)明內(nèi)容】
[0011]為解決龍芯CPU選擇適合的北橋、南橋芯片以及調(diào)試難題,使得即使發(fā)現(xiàn)龍芯CPU HT bus存在bug,也能修復(fù)和屏蔽,并繼續(xù)調(diào)試和驗(yàn)證橋片兼容性和其他功能,本發(fā)明提出 了一種調(diào)試龍芯CPU和北橋、南橋芯片的方法和裝置
[0012]一種調(diào)試龍芯CPU和南北橋芯片的方法,包括以下步驟:
[0013]選擇支持HT總線的北橋芯片和南橋芯片;
[0014]將龍芯CPU與北橋、南橋芯片的針腳引入調(diào)試裝置;
[0015]調(diào)試龍芯CPU針腳是否存在bug ;以及
[0016]在調(diào)試裝置中連接龍芯CPU和南北橋相應(yīng)針腳并調(diào)試。
[0017]優(yōu)選的,所述調(diào)試龍芯CPU是在調(diào)試裝置中檢測針腳信號是否符合用戶手冊說 明。
[0018]優(yōu)選的,所述龍芯CPU針腳信號若存在bug可以在調(diào)試裝置中調(diào)整為標(biāo)準(zhǔn)信號。
[0019]較優(yōu)選的,所述調(diào)整為標(biāo)準(zhǔn)信號是在調(diào)試裝置中通過編寫程序?qū)崿F(xiàn)。
[0020]再較優(yōu)選的,所述程序是通過verilog語言編寫。
[0021]優(yōu)選的,所述調(diào)試裝置包括HT總線接口。
[0022]優(yōu)選的,所述調(diào)試裝置通過HT總線接口連接龍芯CPU與北橋芯片。
[0023]優(yōu)選的,所述調(diào)試裝置通過HT控制線與南橋芯片連接。
[0024]優(yōu)選的,所述調(diào)試裝置在調(diào)試時選通龍芯CPU的HT總線和僅一個北橋和一個南 橋,屏蔽其他北橋和南橋芯片。
[0025]優(yōu)選的,選通后首先調(diào)試HT總線是否連接成功,若連接成功繼續(xù)調(diào)試其他針腳; 若沒有連通則選通下一塊南橋或北橋芯片。
[0026]優(yōu)選的,所述龍芯CPU將采用16bits HT總線工作模式。
[0027]較優(yōu)選的,所述龍芯CPU在和適配的南橋芯片在工作中屏蔽掉8bits*2工作模式 下的高8位HT控制線。
[0028]較優(yōu)選的,所述龍芯CPU在和適配的南橋芯片工作中通過低8位HT控制線與南橋 芯片HT控制線相連接。
[0029]較優(yōu)選的,所述龍芯CPU在和適配的北橋芯片在工作中屏蔽掉8bits*2工作模式 下的高8位HT控制線。
[0030]較優(yōu)選的,所述龍芯CPU在和適配的北橋芯片工作中通過低8位HT控制線與北橋 芯片HT控制線相連接。
[0031]較優(yōu)選的,所述龍芯CPU在和適配的北橋芯片工作中工作在slave模式。
[0032]優(yōu)選的,未明確定義針腳以及不對應(yīng)的針腳引入FPGA芯片調(diào)試后進(jìn)行相應(yīng)的屏 蔽或連接。
[0033]優(yōu)選的,所述未明確定義針腳以及不對應(yīng)的針腳包括上下電時序信號和配置信號。
[0034]較優(yōu)選的,其特征在于,所述能適配龍芯系列CPU的北橋芯片包括RS780,RS780C, RS780D, RS780E, RS780G, RS780M, RS780MC, RX781, RS785G 以及 RD790 ;南橋包括 SB600, SB700, SB710, SB750。[0035]一種調(diào)試龍芯CPU和南北橋芯片的裝置,該裝置包括FPGA芯片,HT總線接口以及 HT總線接口開關(guān),所述裝置通過HT總線接口連接龍芯CPU和北橋芯片的HT總線,所述裝置 通過HT控制線和上下電時序信號線連接南橋芯片。
[0036]優(yōu)選的,龍芯CPU與北橋芯片陣腳直接引入FPGA芯片中。
[0037]優(yōu)選的,所述裝置可以在龍芯CPU的HT總線信號出現(xiàn)問題時對信號進(jìn)行整形。
[0038]較優(yōu)選的,所述整形是通過在FPGA芯片上用verilog語言編寫程序?qū)崿F(xiàn)的。
[0039]優(yōu)選的,調(diào)試時只打開龍芯CPU和被調(diào)試的北橋芯片的HT總線和南橋芯片HT控 制線,關(guān)閉其余南北橋芯片的HT總線。
[0040]較優(yōu)選的,若南橋或北橋調(diào)試不成功則開啟下一個南橋或北橋芯片HT總線開關(guān)。
[0041]優(yōu)選的,未明確定義針腳以及不對應(yīng)的針腳引入FPGA芯片調(diào)試后進(jìn)行相應(yīng)的屏 蔽或連接。
[0042]較優(yōu)選的,所述未明確定義針腳以及不對應(yīng)的針腳包括上下電時序信號和配置信號。
[0043]優(yōu)選的,所述裝置通常包括5個HT接口,其中I個用來連接龍芯CPU,4個連接4 塊北橋芯片。
[0044]通過本發(fā)明的方法和裝置,如果龍芯CPU的HT bus不滿足標(biāo)準(zhǔn)的協(xié)議,可以定位 到那根信號存在問題,并指導(dǎo)龍芯CPU的該進(jìn)。盡管龍芯CPU存在bug,但通過FPGA的隔 離能屏蔽發(fā)現(xiàn)的bug,使調(diào)試仍能順利地進(jìn)行,而不是半途而廢,具有很大的靈活性,節(jié)省了 時間和成本。如果重要的、未明確定義的、不知如何對應(yīng)連接的信號線不滿足要求,可以通 過FPGA靈活的改變其行為使之符合設(shè)計(jì)的要求,非常的靈活,而不用重新修改設(shè)計(jì)。利用 FPGA編寫出多組的HTbus接口,可以實(shí)現(xiàn)多款芯片組與龍芯CPU相連,實(shí)現(xiàn)在一塊主板上能 同時調(diào)試多款芯片組。當(dāng)龍芯CPU需要和一組芯片組進(jìn)行調(diào)試時,把與其他芯片組的連接 斷掉,切換靈活節(jié)省了時間和成本。通過本發(fā)明的方法和裝置,得出和龍芯3號CPU配套的 北橋芯片包括 RS780,RS780C, RS780D, RS780E, RS780G, RS780M, RS780MC, RX781, RS785G 以 及 RD790,南橋包括 SB700, SB710, SB750, SB600 的結(jié)論。
【專利附圖】
【附圖說明】
[0045]圖1是龍芯主板架構(gòu)
[0046]圖2是本發(fā)明調(diào)試裝置
[0047]圖3是龍芯CPU和AMD芯片復(fù)位和電源管理信號連接關(guān)系
[0048]圖4為標(biāo)準(zhǔn)的HT bus協(xié)議信號
【具體實(shí)施方式】
[0049]本發(fā)明利用FPGA編寫出多組的HT bus接口,并把重要的、未明確定義的、不知如 何對應(yīng)連接的信號線引入到FPGA,使龍芯CPU、不同公司的多款芯片組和FPGA相連,實(shí)現(xiàn)在 一塊主板上能同時調(diào)試多款芯片組。本發(fā)明以包括5個HT接口的調(diào)試裝置為例,可以同時 調(diào)試4套南北橋。其中一個HT接口用來連接龍芯CPU,另外4個連接北橋芯片,南橋芯片通 過HT控制線與測試裝置連接。當(dāng)一個芯片不能連通時,可以開啟下一個芯片的開關(guān)。
[0050]如圖4所示,標(biāo)準(zhǔn)的HT bus協(xié)議包括三類信號線:連接信號線(數(shù)據(jù)、地址、控制和時鐘)、復(fù)位和初始化信號線、電源管理信號線。
[0051]對于連接信號線,龍芯3號CPU和北橋都是一一對應(yīng)的,即有16對接收差分信號線,2對接收信號時鐘差分對,2對接收控制信號差分對,16對發(fā)送差分信號線,2對發(fā)送信號時鐘差分對,2對發(fā)送控制信號差分對。
[0052]所選擇的北橋HT bus符合標(biāo)準(zhǔn)的HT bus協(xié)議,但龍芯3號CPU的HT bus由于其獨(dú)特的設(shè)計(jì)比標(biāo)準(zhǔn)的HT bus協(xié)議多出了一些額外的、特殊的信號。在硬件層和協(xié)議層正確的處理這些特殊信號,既不能影響龍芯CPU自身正常的工作需要,又能和北橋很好的兼容,是一個比較關(guān)鍵的技術(shù)點(diǎn)。在標(biāo)準(zhǔn)的HT bus協(xié)議中,信號PWROK、RESET#、LDTSTOP#、LDTREQ# 只有一組,而龍芯HT bus接口信號有兩組進(jìn)行對應(yīng),他們是HT_HI_P0WER0K、HT_HI_RSTn、 HT_HI_LDT_ST0Pn、HT_HI_LDT_REQn、HT_L0_P0WER0K、HT_L0_RSTn、HT_L0_LDT_ST0Pn、HT_ L0_LDT_REQn.這些信號特殊是由龍芯3號CPU的設(shè)計(jì)特點(diǎn)決定的。龍芯3號CPU HT bus 是16bit寬,但它有一個獨(dú)特的設(shè)計(jì),即能把這16bit寬的總線可以拆分成2個獨(dú)立8bit寬的HT bus使用,每個8bit寬的HT bus都可以連接其他的CPU或者橋片。信號HT_8x2來決定是按照HT16bits來使用,還是按照2個分立的8bits來使用。HT_HI_H0STM0DE、HT_HI_ RSTn、HT_HI_POWEROK、HT_HI_LDT_REQn、HT_HI_LDT_STOPn 是高 8bit HT bus 的信號線,HT_ L0_H0STM0DE、HT_L0_RSTn、HT_L0_P0WER0K、HT_L0_LDT_REQn、HT_L0_LDT_ST0Pn 是低 8bit HTbus的信號線。這些信號怎樣處理,怎樣和北橋、南橋互連在本發(fā)明前沒有規(guī)范可循,本發(fā)明把這些信號線引入到FPGA。
[0053]龍芯3號CPU和北橋、南橋芯片中有些重要的、未明確定義的、不知如何對應(yīng)連接的信號線也需要引入到FPGA。這類信號主要是上下電時序信號線、配置信號線。這些信號線包括:1)龍芯3號CPU系統(tǒng)復(fù)位信號線SYSRESETN,PCI bus復(fù)位信號線PCI_RESETN ;2) 南橋上電完成信號線PWR_G00D,北橋的上電信號線NB_PWRGD ;3)各個供電模塊的上電使能信號和電源OK信號PWRG00D; 4)龍芯3號CPU配置信號線GPIO信號線,內(nèi)存時鐘頻率的設(shè)置信號線,HT bus時鐘頻率的設(shè)置信號線。
[0054]上下電時序存在的難點(diǎn)是:一是龍芯3系列CPU面世后,一直沒有經(jīng)過實(shí)用驗(yàn)證, CPU本身的上下電時序需要驗(yàn)證;二是龍芯CPU —直沒有找到配套的南北橋芯片組,怎樣和南北橋的上下電時序配合也是未知數(shù)。通過此種方法把電源模塊和南北橋芯片的上下電時序控制信號都連接到FPGA,就可以隨意的根據(jù)需要調(diào)節(jié)這些信號時序,一直嘗試到滿足要求為止。
[0055]具體的實(shí)施方法如下:
[0056]I)把龍芯3號C PU的HT bus的連接信號線(如前所述40對差分對)弓丨入到FPGA ; 不同公司的不同北橋芯片的HT bus的連接信號線也引入到FPGA。
[0057]2)把龍芯 3 號 CPU 的 HT bus 特殊信號線 HT_8x2、HT_HI_H0STM0DE、HT_HI_RSTn、 HT_HI_P0WER0K、HT_HI_LDT_REQn、HT_HI_LDT_ST0Pn、HT_L0_H0STM0DE、HT_L0_RSTn、HT_L0_ P0WER0K、HT_L0_LDT_REQn、HT_L0_LDT_ST0Pn 引入到 FPGA
[0058]3)把北橋芯片和南橋芯片的關(guān)于HT bus的復(fù)位、初始化和電源管理信號線LDT_ STP#, LDT_RST#, LDT_PG, ALL0ff_LDTSTP 引入到 FPGA.[0059]4)上下電時序控制信號線引入到FPGA,這些信號包括a)龍芯3號CPU系統(tǒng)復(fù)位信號線SYSRESETN, PCI bus復(fù)位信號線PCI_RESETN ;b)南橋上電完成信號線PWR_G00D,北橋的上電信號線NB_PWRGD ;c)各個供電模塊的上電使能信號EN和電源OK信號PWRG00D;
[0060]5)配置信號線引入到FPGA,這些信號包括龍芯3號CPU配置信號線GPIO信號線, 內(nèi)存時鐘頻率的設(shè)置信號線,HT bus時鐘頻率的設(shè)置信號線。
[0061]6)用FPGA抓取和分析龍芯CPU HT bus的信號,檢測龍芯CPU的HT bus是否嚴(yán)格 遵循標(biāo)準(zhǔn)的HT bus協(xié)議。如果龍芯HT bus存在較大問題,可以通過FPGA編寫相應(yīng)的程序 把龍芯HT bus的信號過濾整形成標(biāo)準(zhǔn)的HT bus來實(shí)現(xiàn)與橋片連接。
[0062]7)調(diào)試時只打開龍芯CPU和被測試的北橋芯片的HT總線,關(guān)閉其余北橋芯片的 HT總線。
[0063]8)用FPGA調(diào)試龍芯HT bus的特殊信號,嘗試通過連接、中斷和北橋、南橋HT bus 相對應(yīng)復(fù)位、初始化和電源管理信號線尋找成功聯(lián)系的方法。
[0064]9)用FPGA使能或者關(guān)閉電源模塊的使能信號,龍芯CPU、南北橋片電源powergood 信號,并調(diào)試各個信號的前后順序和時間間隔來確定成功的上下電時序。
[0065]10)用FPGA配置龍芯3號CPU的一些配置信號線,使其順利的下載(load)龍芯 CPU BIOS,嘗試設(shè)置內(nèi)存和HT bus的頻率組合,尋找正確的設(shè)置使其正常工作。
[0066]通過以上的調(diào)試方法,解決了龍芯3號CPU和北橋、南橋之間在硬件層和協(xié)議層兼 容性的方法,可以去掉FPGA直接使龍芯CPU和南北橋互連。
[0067]結(jié)論如下:
[0068]1、通過本發(fā)明的方法和裝置,得出和龍芯3號CPU配套的北橋芯片包括RS780, RS780C, RS780D, RS780E, RS780G, RS780M, RS780MC, RX781, RS785G 以及 RD790,南橋包括 SB700, SB710, SB750, SB600 的結(jié)論。
[0069]2、HT_8x2信號拉低(Pull down),即把龍芯3號CPU與AMD北橋的相連的HT總線 設(shè)置為16bit的模式。因?yàn)锳MD北橋是16bit的HT bus,龍芯CPU需要與之相配合。
[0070]3、把高 8bit HT bus 的接 口信號(HT_HI_H0STM0DE、HT_HI_RSTn、HT_HI_P0WER0K、 HT_HI_LDT_REQn、HT_HI_LDT_ST0Pn)通過拉低禁掉,在龍芯CPU的協(xié)議層設(shè)置成只使用低 8bit HT bus 的接 口信號(HT_L0_H0STM0DE、HT_L0_RSTn、HT_L0_P0WER0K、HT_L0_LDT_REQn、 HT_L0_LDT_ST0Pn)進(jìn)行16bitHT bus的控制。因?yàn)辇埿綜PU在和AMD北橋互聯(lián)的使用中, 16bit HT bus作為一個整體來進(jìn)行控制。
[0071 ] 4、在龍芯CPU和AMD北橋HT協(xié)議配合工作的過程中,根據(jù)整個板子的上下電順序 和初始化過程得出AMD橋片為HT協(xié)議的發(fā)起者,工作在主模式(master模式),而龍芯CPU 為從模式(slave模式),所以把HT_L0_H0STM0DE拉低。
[0072]5、使用龍芯 CPU 的低 8bit HT bus 信號 HT_L0_P0WER0K、HT_L0_RSTn、HT_L0_LDT_ STOPn、HT_L0_LDT_REQn與AMD南橋、北橋芯片進(jìn)行相應(yīng)的連接,如圖3所示。在bios中需 要把雙向信號(10信號)HT_L0_P0WER0K、HT_L0_RSTn設(shè)置為輸入信號(I信號)。
【權(quán)利要求】
1.一種調(diào)試龍芯CPU和南北橋芯片的裝置,其特征在于,該裝置包括FPGA芯片,HT總 線接口以及HT總線接口開關(guān),所述裝置通過HT總線接口連接龍芯CPU和北橋芯片的HT總 線,所述裝置通過HT控制線和上下電時序信號線連接南橋芯片;所述裝置可以在龍芯CPU的HT總線信號出現(xiàn)問題時對信號進(jìn)行整形;調(diào)試時只打開龍芯CPU和被調(diào)試的北橋芯片的HT總線和南橋芯片HT控制線,關(guān)閉其 余南北橋芯片的HT總線。
2.如權(quán)利要求1所述的裝置,其特征在于,龍芯CPU與北橋芯片陣腳直接引入FPGA芯 片中。
3.如權(quán)利要求1所述的裝置,其特征在于,所述整形是通過在FPGA芯片上用verilog 語言編寫程序?qū)崿F(xiàn)的。
4.如權(quán)利要求1所述的裝置,其特征在于,若南橋或北橋調(diào)試不成功則開啟下一個南 橋或北橋芯片HT總線開關(guān)。
5.如權(quán)利要求1所述的裝置,其特征在于,未明確定義針腳以及不對應(yīng)的針腳引入 FPGA芯片調(diào)試后進(jìn)行相應(yīng)的屏蔽或連接。
6.如權(quán)利要求5所述的裝置,其特征在于,所述未明確定義針腳以及不對應(yīng)的針腳包 括上下電時序信號和配置信號。
7.如權(quán)利要求1所述的裝置,其特征在于,所述裝置通常包括5個HT接口,其中I個用 來連接龍芯CPU,4個連接4塊北橋芯片。
【文檔編號】G06F11/36GK103440194SQ201310237820
【公開日】2013年12月11日 申請日期:2011年5月16日 優(yōu)先權(quán)日:2011年5月16日
【發(fā)明者】邵宗有, 劉新春, 楊曉君, 鄭臣明, 王英, 王暉, 柳勝杰, 郝志彬, 梁發(fā)清, 姚文浩 申請人:曙光信息產(chǎn)業(yè)股份有限公司