一種數(shù)據(jù)傳輸方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信領(lǐng)域,尤其涉及一種數(shù)據(jù)傳輸方法及裝置。
【背景技術(shù)】
[0002] 總線是計算機各種功能部件之間傳送信息的公共通路,它是由導(dǎo)線組成的傳輸線 束,按照計算機所傳輸?shù)男畔⒎N類,計算機的總線可以劃分為數(shù)據(jù)總線、地址總線和控制總 線,分別用來傳輸數(shù)據(jù)、數(shù)據(jù)地址和控制信號??偩€是一種內(nèi)部結(jié)構(gòu),它是CPU、內(nèi)存、輸入設(shè) 備、輸出設(shè)備傳遞信息的公用通道,主機的各個部件通過總線相連接,外部設(shè)備通過相應(yīng)的 接口電路再與總線相連接,從而形成了計算機硬件系統(tǒng)。
[0003] 總線的帶寬大小影響系統(tǒng)服務(wù)質(zhì)量,總線帶寬的下降可能引起系統(tǒng)的性能降級。 由于總線是主機各個部件的連接通路,一旦出現(xiàn)物理故障(斷裂點)后,系統(tǒng)可能出現(xiàn)災(zāi)難 性的癱瘓。為避免發(fā)生此類事故,需對總線進行可靠性設(shè)計。
[0004] HT(HyperTransport)總線技術(shù)是一種點對點連接技術(shù),它的分為四層:物理層、 數(shù)據(jù)鏈路層、協(xié)議層和會話層。其可靠性設(shè)計主要在數(shù)據(jù)鏈路層加入循環(huán)冗佘校驗碼,在數(shù) 據(jù)鏈路層進行校驗。其通道數(shù)目可以有以下幾種選擇:32、16、8、4、2。當(dāng)總線通道發(fā)生硬故 障時,可以通過人工設(shè)定帶寬來使系統(tǒng)正確運行。該方法需要人工診斷和干預(yù),不具備自動 化的診斷和處理功能。其次,雖然可以通過調(diào)整帶寬可能使設(shè)備正常運行,但其數(shù)據(jù)傳輸通 道不能動態(tài)選擇,若硬故障發(fā)生在使用的數(shù)據(jù)傳輸通道上,則系統(tǒng)仍無法正確運行。
[0005] 現(xiàn)有技術(shù)提出了一種總線自愈技術(shù),可以在無需人為干預(yù)的情況下,動態(tài)配置物 理通道,使得物理線路的全帶寬降低為原來的1 / 2,以此來來解決總線通道發(fā)生物理故障 的問題。
[0006] 在實際的數(shù)據(jù)傳輸應(yīng)用中,由于需要保證數(shù)據(jù)鏈路層消息單元的數(shù)據(jù)量是數(shù)據(jù)傳 輸通道的整數(shù)倍,因此當(dāng)總線發(fā)生單個通道故障時,若使用這種總線自愈技術(shù),則需要成倍 的修改數(shù)據(jù)傳輸通道,使得帶寬至少要下降為原來的1 / 2,嚴重影響了系統(tǒng)性能,并浪費 大量的可用通道。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明實施例提供了一種數(shù)據(jù)傳輸方法,用于當(dāng)全帶寬傳輸通道發(fā)生故障時,根 據(jù)全帶寬傳輸通道的情況適應(yīng)性的調(diào)整數(shù)據(jù)單元的傳輸方式。
[0008] 本發(fā)明實施例第一方面提供的數(shù)據(jù)傳輸方法,包括:
[0009] 檢測總線的全帶寬傳輸通道,所述全帶寬傳輸通道包括:N個數(shù)據(jù)傳輸通道和M個 冗佘校驗通道;所述數(shù)據(jù)傳輸通道用于傳輸數(shù)據(jù)單元,所述冗佘校驗通道用于對所述數(shù)據(jù) 單元的傳輸進行數(shù)據(jù)鏈路層校驗;所述N和M分別為大于零的自然數(shù),所述數(shù)據(jù)單元為具有 一定數(shù)據(jù)量大小的數(shù)據(jù)塊;
[0010] 若所述全帶寬傳輸通道發(fā)生故障,且發(fā)生故障的全帶寬傳輸通道的數(shù)目小于或等 于所述M,則在未發(fā)生故障的全帶寬傳輸通道中選擇N個全帶寬傳輸通道進行數(shù)據(jù)單元的 傳輸; toon] 若所述全帶寬傳輸通道發(fā)生故障,且發(fā)生故障的全帶寬傳輸通道的數(shù)目大于所述 M,則根據(jù)未發(fā)生故障的全帶寬傳輸通道的數(shù)目以及目標(biāo)節(jié)拍數(shù)對數(shù)據(jù)單元的大小進行重 配置,使得所述數(shù)據(jù)單元的數(shù)據(jù)量為未發(fā)生故障的全帶寬傳輸通道的數(shù)目的整數(shù)倍,所述 目標(biāo)節(jié)拍數(shù)為完成一個所述數(shù)據(jù)單元傳輸需要在所述全帶寬傳輸通道上傳輸?shù)拇螖?shù)。
[0012] 在第一方面的第一種可能的實現(xiàn)方式中,若所述全帶寬傳輸通道發(fā)生故障,且發(fā) 生故障的全帶寬傳輸通道的數(shù)目小于或等于所述M,則所述在未發(fā)生故障的全帶寬傳輸通 道中選擇N個全帶寬傳輸通道進行數(shù)據(jù)單元的傳輸之前,包括:
[0013] 關(guān)閉所述冗佘校驗通道的數(shù)據(jù)鏈路層校驗功能,設(shè)置所述數(shù)據(jù)單元傳輸?shù)膫鬏攲?校驗功能。
[0014] 結(jié)合第一方面的第一種可能實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中, 所述設(shè)置所述數(shù)據(jù)單元傳輸?shù)膫鬏攲有r灩δ?,包?:
[0015] 對數(shù)據(jù)單元進行封裝,為所述數(shù)據(jù)單元的數(shù)據(jù)包添加序列編號,并為所述數(shù)據(jù)單 元的數(shù)據(jù)包添加循環(huán)冗佘校驗碼的標(biāo)志位;當(dāng)發(fā)生故障的全帶寬傳輸通道的數(shù)目小于或等 于所述M時,將所述循環(huán)冗佘校驗碼的標(biāo)志位標(biāo)志設(shè)置為啟動。
[0016] 在第一方面的第三種可能的實現(xiàn)方式中,若所述全帶寬傳輸通道發(fā)生故障,且發(fā) 生故障的全帶寬傳輸通道的數(shù)目小于所述M,則所述在未發(fā)生故障的全帶寬傳輸通道中選 擇N個全帶寬傳輸通道進行數(shù)據(jù)單元的傳輸之前,包括:
[0017] 將原12位的循環(huán)冗佘校驗碼修改為8位的循環(huán)冗佘校驗碼,在K個未發(fā)生故障的 全帶寬傳輸通道中使用所述8位的循環(huán)冗佘校驗碼進行數(shù)據(jù)鏈路層校驗,所述K個未發(fā)生 故障的全帶寬傳輸通道為選擇了所述N個全帶寬傳輸通道之后剩余的未發(fā)生故障的全帶 寬傳輸通道,所述K為大于零的整數(shù)。
[0018] 在第一方面的第四種可能的實現(xiàn)方式中,所述根據(jù)未發(fā)生故障的全帶寬傳輸通道 的數(shù)目以及目標(biāo)節(jié)拍數(shù)對數(shù)據(jù)單元進行重配置,使得所述數(shù)據(jù)單元的數(shù)據(jù)量為未發(fā)生故障 的全帶寬傳輸通道的數(shù)目的整數(shù)倍,具體包括:
[0019] 對單個所述數(shù)據(jù)單元的總數(shù)據(jù)量進行重配置,獲取傳輸重配置的數(shù)據(jù)單元的目標(biāo) 節(jié)拍數(shù),所述目標(biāo)節(jié)拍數(shù)為數(shù)據(jù)節(jié)拍數(shù)和校驗碼節(jié)拍數(shù)之和,所述校驗碼節(jié)拍數(shù)為完成一 個數(shù)據(jù)單元所對應(yīng)的校驗碼的傳輸,需要在所述全帶寬傳輸通道上傳輸?shù)拇螖?shù);所述數(shù)據(jù) 節(jié)拍數(shù)為完成一個數(shù)據(jù)單元所對應(yīng)的數(shù)據(jù)的傳輸,需要在所述全帶寬傳輸通道上傳輸?shù)拇?數(shù);
[0020] 將所述目標(biāo)節(jié)拍數(shù)與所述未發(fā)生故障的全帶寬傳輸通道的數(shù)目相乘,得到重配置 的數(shù)據(jù)單元的總數(shù)據(jù)量,其中,一個所述全帶寬傳輸通道一次傳輸一比特的數(shù)據(jù)單元的數(shù) 據(jù)量。
[0021] 結(jié)合第一方面的第四種可能實現(xiàn)方式,在第一方面的第五種可能的實現(xiàn)方式中, 所述獲取傳輸所述數(shù)據(jù)單元的目標(biāo)節(jié)拍數(shù),具體為:
[0022] 將校驗碼的數(shù)據(jù)量除以所述未發(fā)生故障的全帶寬傳輸通道的數(shù)目的商向上取整, 將所述商向上取整的結(jié)果乘于基礎(chǔ)節(jié)拍數(shù),得到所述目標(biāo)節(jié)拍數(shù),其中,所述基礎(chǔ)節(jié)拍數(shù)根 據(jù)所述總線的設(shè)計標(biāo)準(zhǔn)設(shè)定。
[0023] 本發(fā)明實施例第二方面提供的數(shù)據(jù)傳輸裝置,包括:檢測單元,配置單元,第一傳 輸單元和第二傳輸單元;
[0024] 所述檢測單元用于檢測總線的全帶寬傳輸通道,所述全帶寬傳輸通道包括:N個 數(shù)據(jù)傳輸通道和M個冗佘校驗通道;所述數(shù)據(jù)傳輸通道用于傳輸數(shù)據(jù)單元,所述冗佘校驗 通道用于對所述數(shù)據(jù)單元的傳輸進行數(shù)據(jù)鏈路層校驗;所述N和M分別為大于零的自然數(shù), 所述數(shù)據(jù)單元為具有一定數(shù)據(jù)量大小的數(shù)據(jù)塊;若所述全帶寬傳輸通道發(fā)生故障,且發(fā)生 故障的全帶寬傳輸通道的數(shù)目小于或等于所述M,則觸發(fā)所述第一傳輸單元;若所述全帶 寬傳輸通道發(fā)生故障,且發(fā)生故障的全帶寬傳輸通道的數(shù)目大于所述M,則觸發(fā)所述配置單 元;
[0025] 所述第一傳輸單元用于在未發(fā)生故障的全帶寬傳輸通道中選擇N個全帶寬傳輸 通道進行數(shù)據(jù)單元的傳輸;
[0026] 所述配置單元根據(jù)未發(fā)生故障的全帶寬傳輸通道的數(shù)目以及目標(biāo)節(jié)拍數(shù)對數(shù)據(jù) 單元的大小進行重配置,使得所述數(shù)據(jù)單元的數(shù)據(jù)量為未發(fā)生故障的全帶寬傳輸通道的數(shù) 目的整數(shù)倍,所述目標(biāo)節(jié)拍數(shù)為完成一個所述數(shù)據(jù)單元傳輸需要在所述全帶寬傳輸通道上 傳輸?shù)拇螖?shù);在完成數(shù)據(jù)單元的重配置后,觸發(fā)所述第二傳輸單元;
[0027] 所述第二傳輸單元用于在所述未發(fā)生故障的全帶寬傳輸通道中傳輸重配置的數(shù) 據(jù)單元。
[0028] 在第二方面的第一種可能的實現(xiàn)方式中,所述第一傳輸單元還用于:
[0029] 若所述全帶寬傳輸通道發(fā)生故障,且發(fā)生故障的全帶寬傳輸通道的數(shù)目小于或等 于所述M,則所述在未發(fā)生故障的全帶寬傳輸通道中選擇N個全帶寬傳輸通道進行數(shù)據(jù)單 元的傳輸之前,關(guān)閉所述冗佘校驗通道的數(shù)據(jù)鏈路層校驗功能,設(shè)置所述數(shù)據(jù)單元傳輸?shù)?傳輸層校驗功能。
[0030] 結(jié)合第二方面的第一種可能實現(xiàn)方式,在第二方面的第二種可能的實現(xiàn)方式中, 所述數(shù)據(jù)傳輸裝置還包括:
[0031] 數(shù)據(jù)封裝單元,用于對數(shù)據(jù)單元進行封裝,為所述數(shù)據(jù)單元的數(shù)據(jù)包添加序列編 號,并為所述數(shù)據(jù)單元的數(shù)據(jù)包添加循環(huán)冗佘校驗碼的標(biāo)志位;當(dāng)發(fā)生故障的全帶寬傳輸 通道的數(shù)目小于或等于所述M時,將所述循環(huán)冗佘校驗碼的標(biāo)志位標(biāo)志設(shè)置為啟動。
[0032] 在第二方面的第三種可能的實現(xiàn)方式中,所述第一傳輸單元還用于:若所述全帶 寬傳輸通道發(fā)生故障,且發(fā)生故障的全帶寬傳輸通道的數(shù)目小于所述M,則所述在未發(fā)生故 障的全帶寬傳輸通道中選擇N個全帶寬傳輸通道進行數(shù)據(jù)單元的傳輸之前,將原12位的循 環(huán)冗佘校驗碼修改為8位的循環(huán)冗佘校驗碼,在K個未發(fā)生故障的全帶寬傳輸通道中使用 所述8位的循環(huán)冗佘校驗碼進行數(shù)據(jù)鏈路層校驗,所述K個未發(fā)生故障的全帶寬傳輸通道 為選擇了所述N個全帶寬傳輸通道之后剩余的未發(fā)生故障的全帶寬傳輸通道,所述K為大 于零的整數(shù)。
[0033] 在第二方面的第四種可能的實現(xiàn)方式中,所述配置單元具體用于:
[0034] 對單個所述數(shù)據(jù)單元的總數(shù)據(jù)量進行重配置,獲取傳輸重配置的數(shù)據(jù)單元的目標(biāo) 節(jié)拍數(shù),所述目標(biāo)節(jié)拍數(shù)為數(shù)據(jù)節(jié)拍數(shù)和校驗碼節(jié)拍數(shù)之和,所述校驗碼節(jié)拍數(shù)為完成一 個數(shù)據(jù)單元所對應(yīng)的校驗碼的傳輸,需要在所述全帶寬傳輸通道上傳輸?shù)拇螖?shù);所述數(shù)據(jù) 節(jié)拍數(shù)為完成一個數(shù)據(jù)單元