本發(fā)明涉及一種用于PCIE電源可靠復(fù)位的方法。
背景技術(shù):
現(xiàn)有的復(fù)位方式包括冷復(fù)位,暖復(fù)位和熱復(fù)位三種。
冷復(fù)位:PCIE上電后便自行開始的初始化復(fù)位暖復(fù)位(鏈路關(guān)斷復(fù)位):在正常的操作中,鏈路關(guān)斷或者工作在低功耗的狀態(tài),PCIE核要求鏈路復(fù)位請(qǐng)求。一根從高到低的link_req_rst_not信號(hào)傳輸表示PCIE請(qǐng)求外部的邏輯復(fù)位PCIE,由PHY鏈路關(guān)斷引起的。
熱復(fù)位:上游設(shè)備(RC,SW上游端口,或者DM在RC模式)能夠熱復(fù)位下游設(shè)備(EP,SW上游端口,DM在EP模式),在熱復(fù)位bit被采樣到之后通過發(fā)送兩個(gè)連續(xù)的鏈路TS1有序集實(shí)現(xiàn)。熱復(fù)位也稱為‘訓(xùn)練復(fù)位’。相似于暖復(fù)位,下游設(shè)備要求外部邏輯復(fù)位PCIE。冷復(fù)位和暖復(fù)位都屬于基本復(fù)位,在之前的PCIE技術(shù)當(dāng)中,提到過基本復(fù)位可以通過兩種方式實(shí)現(xiàn):一種是通過PERST#
信號(hào)引發(fā);另一種是通過自主生成基本復(fù)位。PERST#信號(hào)引發(fā)的基本復(fù)位都是指PCIE系統(tǒng)中的一個(gè)邊帶信號(hào),用來傳遞復(fù)位信號(hào),然后觸發(fā)整個(gè)PCIE系統(tǒng)進(jìn)行復(fù)位。
通過自主生成的基本復(fù)位指設(shè)備可以在不適用PERST#信號(hào)來復(fù)位自己的電路,而是在檢測(cè)到主電源加電的情況下自己產(chǎn)生基本復(fù)位信號(hào)復(fù)位自身電路。比如,在一個(gè)插卡上,設(shè)計(jì)有這種復(fù)位產(chǎn)生機(jī)構(gòu),對(duì)加電進(jìn)行檢測(cè)并產(chǎn)生該設(shè)備的本地復(fù)位信號(hào)。如果設(shè)備檢測(cè)到它的電源超過規(guī)定的限度,它也必須產(chǎn)生一個(gè)自主的復(fù)位信號(hào)。
熱復(fù)位是指通過軟件的方式進(jìn)行復(fù)位的方法,軟件在根復(fù)合體生成熱復(fù)位。通過發(fā)送PCIE中固有的TS1有序集來進(jìn)行帶內(nèi)傳播,由上級(jí)向下游傳播,即只有根復(fù)合體和交換開關(guān)能夠產(chǎn)生熱復(fù)位,端點(diǎn)不能產(chǎn)生熱復(fù)位。
現(xiàn)有PCIE電源管理簡(jiǎn)單,不適合超低功耗器件的應(yīng)用,電源管理的不同狀態(tài)切換容易造成包的丟失?,F(xiàn)有的復(fù)位方式,是當(dāng)設(shè)備采樣到復(fù)位信號(hào)之后,不關(guān)注鏈路上是否有包傳送,并且也不能夠確定鏈路上的包是否傳送成功,更不能確定鏈路上的包已經(jīng)傳送成功的位數(shù),而會(huì)直接復(fù)位,將準(zhǔn)備復(fù)位的設(shè)備進(jìn)行初始化,清空其內(nèi)存,復(fù)位它的寄存器,并沒有考慮到目前的數(shù)據(jù)傳輸情況和PCIE對(duì)端的情況,只是簡(jiǎn)單的將要復(fù)位的設(shè)備進(jìn)行復(fù)位,例如將設(shè)備寄存器重置,將緩沖區(qū)的數(shù)據(jù)清空,將鏈路上的包丟棄。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服上述不足,提供一種用于PCIE電源可靠復(fù)位的方法,能夠進(jìn)一步降低功耗,提高對(duì)電源管理狀態(tài)切換的保護(hù)。
本發(fā)明的目的是這樣實(shí)現(xiàn)的:一種用于PCIE電源可靠復(fù)位的方法,所述方法在接收端收到將要進(jìn)行復(fù)位的信號(hào)后,與發(fā)送端進(jìn)行握手,通過握手信號(hào)來確定發(fā)送端正在發(fā)送的數(shù)據(jù)包是否傳輸完成,若傳輸完成則進(jìn)行復(fù)位,若傳輸未完成,發(fā)送端停止繼續(xù)發(fā)包,并將記錄剩余數(shù)據(jù)包的發(fā)送狀態(tài),而接收端則對(duì)接收到的數(shù)據(jù)包進(jìn)行接收并且對(duì)已經(jīng)接收到的數(shù)據(jù)包進(jìn)行存儲(chǔ),然后將握手的響應(yīng)信號(hào)返回給發(fā)送端,告知發(fā)送端可以對(duì)本設(shè)備進(jìn)行復(fù)位操作。
其進(jìn)一步的技術(shù)方案為:接收端(即鏈路下游的PCIE設(shè)備)進(jìn)行如下操作:
1)保持接收任何的讀/寫請(qǐng)求但是不轉(zhuǎn)發(fā)到PCIE鏈路;
2)對(duì)于已經(jīng)接收到的任何寫請(qǐng)求和任何新的寫請(qǐng)求,操作如下:
2a)允許鏈路發(fā)送端完成所有的寫數(shù)據(jù)傳輸,停止發(fā)送發(fā)送端中的數(shù)據(jù);
2b)當(dāng)完成寫數(shù)據(jù)傳輸,生成接收端反饋給發(fā)送端的寫響應(yīng)錯(cuò)誤位;
3)對(duì)于已經(jīng)接收到的讀請(qǐng)求或者任何新的寫請(qǐng)求,生成接收端錯(cuò)誤響應(yīng)并反饋給發(fā)送端,數(shù)據(jù)阻塞到鏈路恢復(fù)后再次反送;
AXI橋主機(jī)接口依次執(zhí)行以下步驟:
4)停止生成任何新的讀和寫請(qǐng)求;
5)當(dāng)完成所有的這些操作之后,并且平滑復(fù)位信號(hào)(down_flush_not)被采樣到,同時(shí)在外部復(fù)位控制器生成復(fù)位(pcie_reset_n)信號(hào),使接收端得以復(fù)位。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:本發(fā)明通過在得知將要進(jìn)行復(fù)位的信號(hào)后,對(duì)兩端交互的設(shè)備進(jìn)行握手,通過握手信號(hào)來確定正在發(fā)送的包傳輸完成,發(fā)送端則停止繼續(xù)發(fā)包,并將記錄剩余包的發(fā)送狀態(tài),而接收端則對(duì)接收到的包進(jìn)行接收并且對(duì)已經(jīng)接收到的包進(jìn)行存儲(chǔ),然后將握手的響應(yīng)信號(hào)返回給發(fā)送端,告知發(fā)送端可以本設(shè)備可以進(jìn)行復(fù)位操作。這樣的握手復(fù)位可以保證包的不丟失,而且在復(fù)位之后可以正常的繼續(xù)傳輸還未傳完的數(shù)據(jù)報(bào)文,進(jìn)一步節(jié)省了功耗和保證了數(shù)據(jù)報(bào)文傳輸?shù)恼_性和完整性。
具體實(shí)施方式
link_req_rst_not是指鏈路復(fù)位信號(hào),down_flush_not信號(hào)是指鏈路上游設(shè)備要求下游設(shè)備復(fù)位信號(hào),即平滑復(fù)位信號(hào),要想觸發(fā)復(fù)位必須要在link_req_rst_not和down_flush_not信號(hào)上升沿和下降沿到來后開始復(fù)位。為了保護(hù)在下游設(shè)備復(fù)位時(shí)間段上有設(shè)備發(fā)送到鏈路上的數(shù)據(jù)不丟失,在復(fù)位的情況下必須要握手。在復(fù)位的時(shí)候,必須要終止所有的數(shù)據(jù)包傳輸。當(dāng)link_req_rst_not信號(hào)被采樣到的時(shí)候,操作如下:
1)保持接收任何的讀/寫請(qǐng)求但是不轉(zhuǎn)發(fā)他們到PCIE鏈路;
2)對(duì)于已經(jīng)接收到的任何寫請(qǐng)求和任何新的寫請(qǐng)求,操作如下:
2a)允許發(fā)送端完成所有的寫數(shù)據(jù)傳輸,停止發(fā)送端內(nèi)部的數(shù)據(jù)發(fā)送,并進(jìn)行存儲(chǔ);
2b)當(dāng)完成寫數(shù)據(jù)傳輸,生成接收端寫響應(yīng)錯(cuò)誤位;
3)對(duì)于已經(jīng)接收到的讀請(qǐng)求或者任何新的寫請(qǐng)求,生成下游錯(cuò)誤響應(yīng),并傳輸給發(fā)送端;
鏈路的發(fā)送端依次執(zhí)行以下步驟:
4)停止生成任何新的讀和寫請(qǐng)求;
5)當(dāng)完成所有的這些操作之后,并且接收端的響應(yīng)信號(hào)down_flush_not被采樣到并且在外部復(fù)位控制器生成pcie_reset_n信號(hào),進(jìn)行復(fù)位操作。
當(dāng)所有的這些操作已經(jīng)完成,才將down_flush_not信號(hào)置位(讓其有效)并且你能用它生成外部復(fù)位信號(hào)生成pcie_reset_n信號(hào)。
以上所述的僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明不限于以上實(shí)施例。本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和構(gòu)思的前提下直接導(dǎo)出或聯(lián)想到的其他改進(jìn)和變化,均認(rèn)為包含在本發(fā)明的保護(hù)范圍之內(nèi)。