專利名稱::一種原語處理方法、裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及串行硬盤接口技術(shù),尤其涉及串行硬盤接口技術(shù)中的原語處理方法、裝置和系統(tǒng)。
背景技術(shù):
:串行硬盤接口(SerialAdvancedTechnologyAttachment,SATA)技術(shù),是以Intel為代表的存儲(chǔ)設(shè)備開發(fā)商開發(fā)的一種高速串行總線技術(shù),目的在于把基于ATA的存儲(chǔ)技術(shù)更普遍地應(yīng)用于桌面、移動(dòng)存儲(chǔ)設(shè)備、低端服務(wù)器和網(wǎng)絡(luò)存儲(chǔ)領(lǐng)域。2004年SATA的國際組織SATA-IO成立后,SATA技術(shù)標(biāo)準(zhǔn)與應(yīng)用都得到了迅猛的發(fā)展。SATA技術(shù)釆用了層次化的描述方法,從下到上分別為物理層(PhysicalLayer,PHY)、鏈路層(LinkLayer)、傳輸層(TransportLayer)和應(yīng)用層(ApplicationLayer)。利用SATA技術(shù),在SATA主控制器和存儲(chǔ)設(shè)備之間進(jìn)行數(shù)據(jù)通信。如圖1所示,是SATA控制器和SATAPHY之間接口的簡單示意圖。從圖1中可看出,對(duì)端來的數(shù)據(jù)通過差分輸入鏈路輸入到SATAPHY,由SATAPHY進(jìn)行串并變換,輸出并行數(shù)據(jù)RXDATA到SATA鏈路(SATA一LINK)模塊,進(jìn)行相關(guān)處理后,再將數(shù)據(jù)或者握手信息通過TXDATA數(shù)據(jù)送到SATAPHY,由SATAPHY進(jìn)行并串變換,再通過差分輸出鏈路到對(duì)端,從而完成數(shù)據(jù)的交互和各種握手。在按照SATA協(xié)議,進(jìn)行幀信息結(jié)構(gòu)(FrameInformationStructure,FIS)數(shù)據(jù)傳輸?shù)倪^程中,主控制器(Host)和存儲(chǔ)設(shè)備(Device)之間存在頻率差異,尤其在進(jìn)行長連續(xù)數(shù)據(jù)傳輸?shù)臅r(shí)候,這種頻率會(huì)導(dǎo)致數(shù)據(jù)的丟失。為了解決這個(gè)問題,如圖2所示,SATA協(xié)i義關(guān)見定每進(jìn)行254個(gè)雙字(DWord)數(shù)據(jù)的傳輸后,插入一組由兩個(gè)連續(xù)的數(shù)據(jù)對(duì)齊ALIGNp或者多組兩個(gè)連續(xù)的ALIGNp原語(即偶數(shù)個(gè)ALIGNp原語),以消除頻差。接收方根據(jù)接收到的FIS數(shù)據(jù),計(jì)算出其中的循環(huán)冗余碼校驗(yàn)碼(CRC),然后將計(jì)算的結(jié)果和該FIS中攜帶的期望CRC進(jìn)行比較,以保證FIS數(shù)據(jù)傳輸?shù)耐暾?。發(fā)送方和接收方進(jìn)行數(shù)據(jù)傳輸?shù)倪^程中,利用原語進(jìn)行信息交互以控制數(shù)據(jù)的傳輸,例如,發(fā)送方準(zhǔn)備發(fā)送數(shù)據(jù)時(shí),向接收方發(fā)送X—RDYp原語;接收方若暫時(shí)無法接收數(shù)據(jù),會(huì)連續(xù)向發(fā)送方發(fā)送HOLDp原語。由于長時(shí)間重復(fù)發(fā)送同一個(gè)數(shù)據(jù),會(huì)導(dǎo)致某個(gè)頻率點(diǎn)的干擾,增加電磁干擾(EMI)的影響。為了解決這個(gè)問題,SATA協(xié)議規(guī)定發(fā)送方可以在發(fā)送原語的時(shí)候,只要連續(xù)發(fā)送同一個(gè)原語兩次,就可以發(fā)送一個(gè)數(shù)據(jù)重復(fù)CONTp原語,而在CONTp之后發(fā)送隨機(jī)的數(shù)據(jù)(這些數(shù)據(jù)對(duì)接收方來說都是無效的),避免了長時(shí)間發(fā)送同一個(gè)原語導(dǎo)致串行總線上的EMI干擾問題。然而,現(xiàn)有技術(shù)中也存在不少問題。例如,為了確定出期望的CRC,接收方需要借助FIS中的幀結(jié)束標(biāo)志EOFp,如圖3A所示,正常的幀結(jié)構(gòu)中EOFp的前一個(gè)DWord為CRC,然而由于ALIGNp原語插入的隨機(jī)性,如圖3B所示,ALIGNp原語會(huì)剛好插入在CRC和EOFp之間。現(xiàn)有技術(shù)為了確定出期望CRC,通常會(huì)利用額外的寄存器將數(shù)據(jù)進(jìn)行延時(shí),直到出現(xiàn)EOFp,再根據(jù)該EOFp確定出期望CRC。然而,由于插入的ALIGNp原語數(shù)量是不確定的,需要延時(shí)的周期數(shù)也是不確定的,導(dǎo)致獲取錯(cuò)誤的期望CRC,且消耗了存儲(chǔ)空間。進(jìn)一步的,現(xiàn)有技術(shù)對(duì)連續(xù)發(fā)送的不同原語,都采用CONTp替代,不同的原語有不同的含義,而作為替代的CONTp無法表示這種不同的含義,導(dǎo)致原語信息丟失,數(shù)據(jù)傳輸無法正常進(jìn)行。
發(fā)明內(nèi)容為了解決現(xiàn)有技術(shù)中存在的問題,本發(fā)明的實(shí)施例提供了一種原語處理方法、裝置和系統(tǒng),用于在無需大量額外寄存器的情況下,穩(wěn)定且有效地獲取期望CRC,保障數(shù)據(jù)校驗(yàn)的正確性。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案一種原語處理方法,該方法包括數(shù)據(jù)接收方判斷當(dāng)前接收到的數(shù)據(jù)是否為數(shù)據(jù)對(duì)齊ALIGNp原語,若是,丟棄該ALIGNp原語,若否,存儲(chǔ)該數(shù)據(jù);數(shù)據(jù)接收方讀取當(dāng)前已存儲(chǔ)的數(shù)據(jù),確定期望循環(huán)冗余碼校驗(yàn)碼CRC。一種原語處理裝置,該裝置包括判斷處理單元,用于判斷當(dāng)前接收到的數(shù)據(jù)是否為數(shù)據(jù)對(duì)齊ALIGNp原語,若是,丟棄該ALIGNp原語,若否,存儲(chǔ)該數(shù)據(jù);讀取確定單元,用于讀取所述判斷處理單元當(dāng)前已存儲(chǔ)的數(shù)據(jù),確定期望循環(huán)冗余碼校驗(yàn)碼CRC。一種原語處理系統(tǒng),該系統(tǒng)包括數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方,所述數(shù)據(jù)接收方,用于判斷當(dāng)前接收到的來自所述數(shù)據(jù)發(fā)送方的數(shù)據(jù)是否為數(shù)據(jù)對(duì)齊ALIGNp原語,若是,丟棄該ALIGNp原語,若否,存儲(chǔ)該數(shù)據(jù);讀取當(dāng)前已存儲(chǔ)的數(shù)據(jù),確定期望循環(huán)冗余碼校驗(yàn)碼CRC。本發(fā)明實(shí)施例提供的技術(shù)方案,通過剔除數(shù)據(jù)中隨機(jī)插入的ALIGNp原語,利用不含ALIGNp原語的數(shù)據(jù)確定期望CRC,解決了現(xiàn)有技術(shù)中因隨機(jī)插入ALIGNp原語,在確定期望CRC時(shí)帶來的問題,能夠在無需大量額外寄存器的情況下,穩(wěn)定且有效地獲取期望CRC,以保障數(shù)據(jù)校驗(yàn)的正確性。圖1為SATA主控制器和SATA物理層之間接口的簡單示意圖;圖2為SATA協(xié)議中插入ALIGNp原語時(shí)幀信息結(jié)構(gòu)示意圖;圖3A為正常幀結(jié)構(gòu)示意圖3B為隨機(jī)插入ALIGNp原語時(shí)的一種幀結(jié)構(gòu)示意圖;圖4為數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方之間的數(shù)據(jù)傳輸示意圖;圖5為本發(fā)明實(shí)施例一提供的原語處理方法流程示意圖一;圖6為本發(fā)明實(shí)施例一提供的原語處理方法流程示意圖二;圖7為本發(fā)明實(shí)施例一提供的幀數(shù)據(jù)傳輸?shù)膽?yīng)用場景示意圖;圖8為本發(fā)明實(shí)施例二提供的原語處理裝置結(jié)構(gòu)示意圖;圖9為本發(fā)明實(shí)施例三提供的原語處理系統(tǒng)示意圖。具體實(shí)施方式為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)的介紹,下面的描述僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些實(shí)施例獲得本發(fā)明的其他的實(shí)施方式。為了便于理解本發(fā)明實(shí)施例的技術(shù)方案,如圖4所示,首先以一幀數(shù)據(jù)的傳輸為例,對(duì)本發(fā)明實(shí)施例中提供的數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方之間的數(shù)據(jù)傳輸過程進(jìn)行介紹,主要包括如下步驟步驟A:發(fā)送方準(zhǔn)備好發(fā)送FIS數(shù)據(jù),向接收方發(fā)送X一RDYp,在發(fā)送兩次以后,采用CONTp來替代,后面帶無效數(shù)據(jù)。X一RDYp和CONTp都為原語,下述表1對(duì)常用的原語進(jìn)行了描述表1<table>tableseeoriginaldocumentpage7</column></row><table>步驟B:接收方表明自己準(zhǔn)備好,向發(fā)送方發(fā)送I^RDYp,在發(fā)送兩次以后,采用CONTp來替代,后面帶無效數(shù)據(jù);圖4中的XXXX表示發(fā)送方或接收方當(dāng)前未發(fā)送數(shù)據(jù)。步驟C:發(fā)送方收到R—RDYp以后,向接收方發(fā)出幀頭SOFp、以及幀數(shù)據(jù)DATA,接收方向發(fā)送方發(fā)送R一IPp,表明接收正在進(jìn)行;步驟D:發(fā)送方暫時(shí)無法進(jìn)行數(shù)據(jù)發(fā)送,同時(shí)幀沒有結(jié)束,就向接收方發(fā)出H0LDp,在發(fā)送兩次以后,釆用CONTp來替代,后面帶無效數(shù)據(jù),表明希望開始流控;步驟E:接收方收到流控請(qǐng)求,發(fā)送HOLDAp來確認(rèn)應(yīng)答,在發(fā)送兩次以后,采用CONTp來替代,后面帶無效數(shù)據(jù),表明應(yīng)答發(fā)送方的流控請(qǐng)求;當(dāng)發(fā)送方能重新開始數(shù)據(jù)傳輸?shù)臅r(shí)候,首先發(fā)送一個(gè)非ALIGNp原語(如,HOLDp)來喚醒先前的CONTp,然后把余下的數(shù)據(jù)發(fā)送完成;步驟F:發(fā)送方發(fā)送CRC和幀結(jié)束標(biāo)志EOFp;隨后發(fā)出WTRMp,表明發(fā)送完成,在發(fā)送兩次WTRMp以后,釆用CONTp來替代,后面帶無效數(shù)據(jù),等待接收方對(duì)該幀的接收確認(rèn);接收方確認(rèn)幀無誤后發(fā)送R一OKp表明本次幀傳輸正常;步驟G:發(fā)送方收到R—OKp以后,發(fā)送SYNCp來和接收方進(jìn)行同步,進(jìn)入總線空閑,直到接收方回應(yīng)SYNCp。本發(fā)明實(shí)施例一提供的原語處理方法,如圖5所示,該方法包括步驟51:數(shù)據(jù)接收方判斷當(dāng)前接收到的數(shù)據(jù)是否為ALIGNp原語,若是,丟棄該ALIGNp原語,若否,存儲(chǔ)該數(shù)據(jù);數(shù)據(jù)接收方可事先存儲(chǔ)匹配項(xiàng),該匹配項(xiàng)包含了ALIGNp原語的專有信息,例如,可以是ALIGNp原語的代碼,當(dāng)接收到數(shù)據(jù)后,數(shù)據(jù)接收方比較接收到的數(shù)據(jù)與該匹配項(xiàng)是否相同,若相同,說明接收到的數(shù)據(jù)為ALIGNp原語,貝'J丟棄該ALIGNp原語;若不同,說明接收到的數(shù)據(jù)不是ALIGNp原語,是進(jìn)行CRC校驗(yàn)時(shí)必需的數(shù)據(jù),存儲(chǔ)該數(shù)據(jù)。但不限于此,包括任何相似或相關(guān)判斷數(shù)據(jù)為ALIGNp原語的方法。在SATA系統(tǒng)中,數(shù)據(jù)接收方每收到一個(gè)DWord數(shù)據(jù),判讀該DWord數(shù)據(jù)是否為ALIGNp原語,例如,當(dāng)接收到DWord數(shù)據(jù)為幀數(shù)據(jù)DATA時(shí),數(shù)據(jù)接收方判斷出該幀數(shù)據(jù)DATA不是ALIGNp原語,存儲(chǔ)該幀數(shù)據(jù)DATA。步驟52:數(shù)據(jù)接收方讀取當(dāng)前已存儲(chǔ)的數(shù)據(jù),確定期望循環(huán)冗余碼校驗(yàn)碼CRC。由于已存儲(chǔ)的數(shù)據(jù)中,已經(jīng)剔除了隨機(jī)插入的ALIGNp原語,確保了幀結(jié)束標(biāo)志EOFp之前的數(shù)據(jù)一定是CRC,從而能夠根據(jù)EOFp準(zhǔn)確確定期望CRC。由于數(shù)據(jù)接收方對(duì)接收到的數(shù)據(jù)的存儲(chǔ)和讀取是同時(shí)且連續(xù)進(jìn)行的,進(jìn)一步的,為了保證能夠正常讀取數(shù)據(jù),在讀取數(shù)據(jù)之前,如圖6所示,還包括步驟53:數(shù)據(jù)接收方確定已存儲(chǔ)的數(shù)據(jù)不小于兩個(gè)DWord或者數(shù)據(jù)接收方確定已存儲(chǔ)的數(shù)據(jù)為一個(gè)DWord且為幀結(jié)束標(biāo)志EOFp時(shí),執(zhí)行數(shù)據(jù)讀取。即只有滿足了該項(xiàng)條件數(shù)據(jù)接收方才有效讀使能信號(hào),進(jìn)行數(shù)據(jù)讀取。由于在SATA系統(tǒng)中,數(shù)據(jù)接收方對(duì)存儲(chǔ)的每個(gè)DWord數(shù)據(jù),按照數(shù)據(jù)讀取周期依次順序讀取,為了保證數(shù)據(jù)讀取的正常進(jìn)行,當(dāng)存儲(chǔ)的數(shù)據(jù)只剩一個(gè)時(shí)不進(jìn)行數(shù)據(jù)讀取,但若存儲(chǔ)的數(shù)據(jù)只剩一個(gè)卻為EOFp時(shí),即表示一個(gè)FIS數(shù)據(jù)傳輸完畢,讀取該EOFp。為了能夠確定出存儲(chǔ)的數(shù)據(jù)為EOFp,數(shù)據(jù)接收方需要設(shè)置幀尾標(biāo)識(shí),以指示存儲(chǔ)的數(shù)據(jù)為EOFp,即當(dāng)存儲(chǔ)的數(shù)據(jù)只剩一個(gè),且根據(jù)該幀尾標(biāo)識(shí)判斷出該數(shù)據(jù)為EOFp,讀取EOFp。由于在步驟51中當(dāng)接收到ALIGNp原語時(shí),丟棄了該ALIGNp原語,按照SATA協(xié)議,丟棄ALIGNp對(duì)LINK是沒有影響的,接收通道及LINK狀態(tài)機(jī)都可保持在當(dāng)前狀態(tài),不進(jìn)行任何其他操作。但丟棄該ALIGNp原語,會(huì)導(dǎo)致接收通道出現(xiàn)一個(gè)工作周期(cycle)的空閑,即這段時(shí)間中沒有進(jìn)行數(shù)據(jù)存儲(chǔ),由于數(shù)據(jù)的存儲(chǔ)和讀取都是連續(xù)進(jìn)行的,從而數(shù)據(jù)接收方無法讀取數(shù)據(jù)。進(jìn)一步的,當(dāng)數(shù)據(jù)接收方判斷當(dāng)前接收到的數(shù)據(jù)為ALIGNp原語,丟棄該ALIGNp原語時(shí),還包括步驟54:數(shù)據(jù)接收方暫停數(shù)據(jù)讀取,延時(shí)一個(gè)數(shù)據(jù)讀取周期后,重新執(zhí)行數(shù)據(jù)讀取。若數(shù)據(jù)接收方當(dāng)前接收到了ALIGNp原語,并進(jìn)行了剔除,數(shù)據(jù)接收方無效讀使能信號(hào),即暫停數(shù)據(jù)讀取,等到下一個(gè)數(shù)據(jù)讀取周期到來時(shí),再進(jìn)行數(shù)據(jù)讀取。進(jìn)一步的,當(dāng)數(shù)據(jù)接收方確定期望循環(huán)冗余碼校驗(yàn)碼CRC,數(shù)據(jù)接收方將所述期望CRC與根據(jù)已存儲(chǔ)的數(shù)據(jù)計(jì)算出的CRC進(jìn)行比較,對(duì)接收到的數(shù)據(jù)進(jìn)行校驗(yàn)。由于在SATA系統(tǒng)中數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方進(jìn)行數(shù)據(jù)傳輸時(shí),會(huì)使用多種標(biāo)志原語以控制數(shù)據(jù)的傳輸,CONTp跟在不同的原語后面就有不同的含義,如上述表1中的HOLDp、R—Okp、R—ERRp、R—RDYp、SYNCp、WTRMp、X—RDYp等原語,在進(jìn)行狀態(tài)處理的時(shí)候需要明確CONTp代表的不同含義,進(jìn)一步的,本發(fā)明實(shí)施例一還包括數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方根據(jù)接收到的原語,調(diào)整相應(yīng)的原語標(biāo)識(shí)位的狀態(tài),以指示數(shù)據(jù)傳輸狀態(tài);其中,數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方分別設(shè)置有原語標(biāo)識(shí)位??蔀槊恳粋€(gè)需要進(jìn)行狀態(tài)標(biāo)識(shí)的原語都設(shè)置原語標(biāo)識(shí)位,下面以任一原語,即第一原語為例,說明本發(fā)明實(shí)施例一提供的調(diào)整原語標(biāo)識(shí)位的具體方法數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方接收到第一原語時(shí),將第一原語的原語標(biāo)識(shí)位調(diào)整為有效;或者,數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方接收到第二原語時(shí),將第一原語的原語標(biāo)識(shí)位調(diào)整為無效,其中,所述第一原語為數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方上次所接收到的原語,所述第二原語為與所述第一原語不同的原語,且所述第二原語不包括CONTp原語和ALIGNp原語;或者,數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方接收到CONTp時(shí),保持所述原語標(biāo)識(shí)位當(dāng)前的狀態(tài)。數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方可以根據(jù)接收到的原語的情況具體選擇上述的一個(gè)或多個(gè)調(diào)整方式,其中,可通過將原語標(biāo)識(shí)位置為高電平(如,置l)的方式有效原語標(biāo)識(shí)位,可通過將原語標(biāo)識(shí)位置為低電平(如,置0)的方式無效原語標(biāo)識(shí)位0上述調(diào)整方法的具體實(shí)現(xiàn)方式有多種,以調(diào)整數(shù)據(jù)接收方為HOLDp設(shè)置的原語標(biāo)識(shí)位(hold—rx一flag)為例,說明本發(fā)明實(shí)施例一提供的具體處理方式。首先,對(duì)相關(guān)的控制信號(hào)進(jìn)行說明,如表2所示。表2<table>tableseeoriginaldocumentpage11</column></row><table>根據(jù)表2中的控制信號(hào)可獲知接收到原語和數(shù)據(jù)的類型,例如,當(dāng)數(shù)據(jù)接收方的讀使能信號(hào)link_df—fifo_rinc_ffl有效,并且此時(shí)讀到的數(shù)據(jù)的低4位為4,b0001的時(shí)候,表明收到原語;當(dāng)link_df_fifo_rinc_ffl有效,并且讀取到的數(shù)據(jù)是CONTp原語(32,h999^aa7c)的時(shí)候,表明收到了CONTp原語;當(dāng)data_scr_dis有效但pri—rx—en無效,表明此時(shí)收到的都是CONTp之后帶的無效數(shù)據(jù)。下面對(duì)通過一個(gè)具體的場景,以調(diào)整HOLDp原語的原語標(biāo)識(shí)位為例進(jìn)行具體描述。數(shù)據(jù)發(fā)送方請(qǐng)求流控,首先向數(shù)據(jù)接收方連續(xù)發(fā)送兩個(gè)HOLDp原語、CONTp原語,隨后發(fā)送無效數(shù)據(jù),當(dāng)數(shù)據(jù)接收方接收到第一個(gè)HOLDp原語后,將HOLDp原語的原語標(biāo)識(shí)位調(diào)整為有效;當(dāng)數(shù)據(jù)接收方接收到第二個(gè)HOLDp原語后,保持HOLDp原語的原語標(biāo)識(shí)位有效;當(dāng)數(shù)據(jù)接收方接收到CONTp原語后,保持HOLDp原語的原語標(biāo)識(shí)位有效;其中,當(dāng)考慮到頻差,在發(fā)送的幀數(shù)據(jù)中隨機(jī)插入ALIGNp原語,數(shù)據(jù)接收方接收到ALIGNp原語,剔除ALIGNp原語后,將數(shù)據(jù)接收方的讀使能信號(hào)link—df—fifo_rinc_ffl無效,暫停數(shù)據(jù)讀取,這時(shí),數(shù)據(jù)接收方保持HOLDp原語的原語標(biāo)識(shí)位有效。只有當(dāng)收到一個(gè)與HOLDp不同的原語,且該原語不為ALIGNp或CONTp原語時(shí),即表明先前CONTp所重復(fù)的原語HOLDp已經(jīng)凈皮取消,開始的是新的有效數(shù)據(jù)時(shí),將HOLDp原語的原語標(biāo)識(shí)位調(diào)整為無效。下面以一個(gè)具體的應(yīng)用場景說明本發(fā)明實(shí)施例一提供的通過原語標(biāo)識(shí)位,解決CONTp原語多樣性的方法,如圖7所示。步驟A:發(fā)送方準(zhǔn)備發(fā)送數(shù)據(jù),首先向接收方發(fā)出X_RDYp,請(qǐng)求鏈路建立;步驟B:接收方收到X-RDYp以后,如果此時(shí)能夠進(jìn)行數(shù)據(jù)接收,就發(fā)出R_RDYp,告訴接收方可以開始數(shù)據(jù)傳輸;步驟C:發(fā)送方收到I^RDYp以后,開始發(fā)送幀頭SOFp以及幀數(shù)據(jù);步驟D:在發(fā)送過程中,發(fā)送方出現(xiàn)暫時(shí)無法獲取數(shù)據(jù)的情況,發(fā)送HOLDp來向接收方請(qǐng)求開始流控;步驟E:湊巧的是,此時(shí)接收方也剛好不能進(jìn)行數(shù)據(jù)接收,也就是說在發(fā)送方發(fā)送HOLDp的時(shí)候,接收方也發(fā)出了HOLDp來請(qǐng)求發(fā)送方流控。由于在SATA鏈路上有一定的時(shí)間延遲,此時(shí)出現(xiàn)的情況就是,當(dāng)發(fā)送方發(fā)送HOLDp等待接收方HOLDAp應(yīng)答的時(shí)候,收到的是接收方發(fā)送的HOLDp;當(dāng)接收方發(fā)送HOLDp等待發(fā)送方HOLDAp應(yīng)答的時(shí)候,收到的是發(fā)送方發(fā)送的HOLDp。步驟F:發(fā)送方收到來自接收方的HOLDp后,會(huì)將其HOLDp的原語標(biāo)識(shí)位調(diào)整為有效;接收方收到來自發(fā)送方的HOLDp,也會(huì)將其HOLDp的原語標(biāo)識(shí)位調(diào)整為有效。當(dāng)發(fā)送方有數(shù)據(jù)可以發(fā)送,開始解除流控的時(shí)候,判斷接收方的HOLDp標(biāo)志位還一直有效,那么就開始以HOLDAp應(yīng)答。步驟G:當(dāng)接收方可以開始接收數(shù)據(jù)的時(shí)候,判斷發(fā)送方的HOLDp標(biāo)志位還一直有效,就解除流控,開始發(fā)送R一IPp,表明可以接收數(shù)據(jù);步驟H:當(dāng)發(fā)送方收到RJPp的時(shí)候,知道接收方解除流控,就重新發(fā)起數(shù)據(jù)傳輸,并一直發(fā)送直到幀尾EOFp發(fā)送完成;隨后發(fā)出WTRMp,表明發(fā)送完成,等待接收方對(duì)該幀的接收確認(rèn);步驟I:接收方確認(rèn)幀無誤后發(fā)送R_OKp表明本次幀傳輸正常;步驟J:發(fā)送方發(fā)送SYNCp來進(jìn)行兩邊同步。上述只對(duì)為HOLDp原語設(shè)置原語標(biāo)識(shí)位的情況進(jìn)行了描述,相關(guān)內(nèi)容同樣適用于其它原語,如R—Okp、R一ERRp、R一RDYp或SYNCp等,不再贅述。本發(fā)明實(shí)施例二提供了一種原語處理裝置,如圖8所示,該裝置包括判斷處理單元81,用于判斷當(dāng)前接收到的數(shù)據(jù)是否為ALIGNp原語,若是,丟棄該ALIGNp原語,若否,存儲(chǔ)該數(shù)據(jù);讀取確定單元82,用于讀取所述判斷處理單元81當(dāng)前已存儲(chǔ)的數(shù)據(jù),確定期望循環(huán)冗余碼校驗(yàn)碼CRC。所述讀取確定單元82包括確定模塊,用于確定已存儲(chǔ)的數(shù)據(jù)不小于兩個(gè)雙字DWord或者確定已存儲(chǔ)的數(shù)據(jù)為一個(gè)DWord且為幀結(jié)束標(biāo)志EOFp時(shí),執(zhí)行數(shù)據(jù)讀取。進(jìn)一步的,該裝置還包括延時(shí)單元,用于當(dāng)判斷出當(dāng)前接收到的數(shù)據(jù)為ALIGNp原語,丟棄該ALIGNp原語時(shí),暫停數(shù)據(jù)讀取,延時(shí)一個(gè)數(shù)據(jù)讀取周期后,重新執(zhí)行數(shù)據(jù)讀取。進(jìn)一步的,該裝置還包括原語標(biāo)識(shí)位調(diào)整單元,用于根據(jù)接收到原語,調(diào)整相應(yīng)的原語標(biāo)識(shí)位的狀態(tài),以指示數(shù)據(jù)傳輸狀態(tài);其中,數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方分別設(shè)置有原語標(biāo)識(shí)位。本發(fā)明裝置實(shí)施例中各功能模塊的具體工作方法參見本發(fā)明的方法實(shí)施例。本發(fā)明實(shí)施例提供的技術(shù)方案,通過剔除數(shù)據(jù)中隨機(jī)插入的ALIGNp原語,利用不含ALIGNp原語的數(shù)據(jù)確定期望CRC,解決了現(xiàn)有技術(shù)中因隨機(jī)插入ALIGNp原語,在確定期望CRC時(shí)帶來的問題,能夠在無需大量額外寄存器的情況下,穩(wěn)定且有效地獲取期望CRC,以保障數(shù)據(jù)校l^的正確性。本發(fā)明實(shí)施例三提供了一種原語處理系統(tǒng),如圖9所示,該系統(tǒng)包括數(shù)據(jù)發(fā)送方91和數(shù)據(jù)接收方92,所述數(shù)據(jù)接收方92,用于判斷當(dāng)前接收到的來自所述數(shù)據(jù)發(fā)送方91的數(shù)據(jù)是否為ALIGNp原語,若是,丟棄該ALIGNp原語,若否,存儲(chǔ)該數(shù)據(jù);讀取當(dāng)前已存儲(chǔ)的數(shù)據(jù),確定期望循環(huán)冗余碼校驗(yàn)碼CRC。進(jìn)一步的,所述系統(tǒng)還包括數(shù)據(jù)接收方92或數(shù)據(jù)發(fā)送方91根據(jù)接收到的原語,調(diào)整相應(yīng)的原語標(biāo)識(shí)位的狀態(tài),以指示數(shù)據(jù)傳輸狀態(tài);其中,數(shù)據(jù)接收方92或數(shù)據(jù)發(fā)送方91分別設(shè)置有原語標(biāo)識(shí)位。本發(fā)明系統(tǒng)實(shí)施例中各功能模塊的具體工作方法參見本發(fā)明的方法實(shí)施例。本發(fā)明實(shí)施例提供的技術(shù)方案,通過剔除數(shù)據(jù)中隨機(jī)插入的ALIGNp原語,利用不含ALIGNp原語的數(shù)據(jù)確定期望CRC,解決了現(xiàn)有技術(shù)中因隨機(jī)插入ALIGNp原語,在確定期望CRC時(shí)帶來的問題,能夠在無需大量額外寄存器的情況下,穩(wěn)定且有效地獲取期望CRC,以保障數(shù)據(jù)校驗(yàn)的正確性。通過程序指令相關(guān)硬件完成。所述實(shí)施例對(duì)應(yīng)的軟件可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可存儲(chǔ)讀取的介質(zhì)中。以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本
技術(shù)領(lǐng)域:
的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。權(quán)利要求1、一種原語處理方法,其特征在于,該方法包括數(shù)據(jù)接收方判斷當(dāng)前接收到的數(shù)據(jù)是否為數(shù)據(jù)對(duì)齊ALIGNp原語,若是,丟棄該ALIGNp原語,若否,存儲(chǔ)該數(shù)據(jù);數(shù)據(jù)接收方讀取當(dāng)前已存儲(chǔ)的數(shù)據(jù),確定期望循環(huán)冗余碼校驗(yàn)碼CRC。2、根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)接收方讀取當(dāng)前已存儲(chǔ)的數(shù)據(jù)包括數(shù)據(jù)接收方確定已存儲(chǔ)的數(shù)據(jù)不小于兩個(gè)雙字DWord或者數(shù)據(jù)接收方確定已存儲(chǔ)的數(shù)據(jù)為一個(gè)DWord且為幀結(jié)束標(biāo)志EOFp時(shí),執(zhí)行數(shù)據(jù)讀取。3、根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括數(shù)據(jù)接收方設(shè)置幀尾標(biāo)識(shí),以指示存儲(chǔ)的數(shù)據(jù)為EOFp。4、根據(jù)權(quán)利要求1或2所述的方法,其特征在于,當(dāng)數(shù)據(jù)接收方判斷當(dāng)前接收到的數(shù)據(jù)為ALIGNp原語,丟棄該ALIGNp原語時(shí),在數(shù)據(jù)接收方讀取當(dāng)前已存儲(chǔ)的數(shù)據(jù)之前還包括數(shù)據(jù)接收方暫停數(shù)據(jù)讀取,延時(shí)一個(gè)數(shù)據(jù)讀取周期后,重新執(zhí)行數(shù)據(jù)讀取。5、根據(jù)權(quán)利要求4所述的方法,其特征在于,在數(shù)據(jù)接收方讀取已存儲(chǔ)的數(shù)據(jù),確定期望循環(huán)冗余碼校驗(yàn)碼CRC之后還包括數(shù)據(jù)接收方將所述期望CRC與根據(jù)已存儲(chǔ)的數(shù)據(jù)計(jì)算出的CRC進(jìn)行比較,對(duì)接收到的數(shù)據(jù)進(jìn)行校驗(yàn)。6、根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方根據(jù)接收到的原語,調(diào)整相應(yīng)的原語標(biāo)識(shí)位的狀態(tài),以指示數(shù)據(jù)傳輸狀態(tài);其中,數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方分別設(shè)置有原語標(biāo)識(shí)位。7、根據(jù)權(quán)利要求6所述的方法,其特征在于,所述數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方根據(jù)接收到的原語,調(diào)整相應(yīng)的原語標(biāo)識(shí)位的狀態(tài)包括數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方接收到第一原語時(shí),將第一原語的原語標(biāo)識(shí)位調(diào)整為有效;或者,數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方接收到第二原語時(shí),將第一原語的原語標(biāo)識(shí)位調(diào)整為無效,其中,所述第一原語為數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方上次所接收到的原語,所述第二原語為與所述第一原語不同的原語,且所述第二原語不包括CONTp原語和ALIGNp原語;或者,數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方接收到數(shù)據(jù)重復(fù)CONTp和ALIGNp原語時(shí),保持當(dāng)前所述原語標(biāo)識(shí)位的狀態(tài)。8、一種原語處理裝置,其特征在于,該裝置包括判斷處理單元,用于判斷當(dāng)前接收到的數(shù)據(jù)是否為lt據(jù)對(duì)齊ALIGNp原語,若是,丟棄該ALIGNp原語,若否,存儲(chǔ)該數(shù)據(jù);讀取確定單元,用于讀取所述判斷處理單元當(dāng)前已存儲(chǔ)的數(shù)據(jù),確定期望循環(huán)冗余碼校-險(xiǎn)碼CRC。9、根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述讀取確定單元包括確定模塊,用于確定已存儲(chǔ)的數(shù)據(jù)不小于兩個(gè)雙字DWord或者確定已存儲(chǔ)的數(shù)據(jù)為一個(gè)DWord且為幀結(jié)束標(biāo)志EOFp時(shí),執(zhí)行數(shù)據(jù)讀取。10、根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,該裝置還包括延時(shí)單元,用于當(dāng)判斷出當(dāng)前接收到的數(shù)據(jù)為ALIGNp原語,丟棄該ALIGNp原語時(shí),暫停數(shù)據(jù)讀取,延時(shí)一個(gè)數(shù)據(jù)讀取周期后,重新執(zhí)行數(shù)據(jù)讀取。11、根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,該裝置還包括原語標(biāo)識(shí)位調(diào)整單元,用于根據(jù)接收到原語,調(diào)整相應(yīng)的原語標(biāo)識(shí)位的狀態(tài),以指示數(shù)據(jù)傳輸狀態(tài);其中,數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方分別設(shè)置有原語標(biāo)識(shí)位。12、一種原語處理系統(tǒng),其特征在于,該系統(tǒng)包括數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方,所述數(shù)據(jù)接收方,用于判斷當(dāng)前接收到的來自所述數(shù)據(jù)發(fā)送方的數(shù)據(jù)是否為數(shù)據(jù)對(duì)齊ALIGNp原語,若是,丟棄該ALIGNp原語,若否,存儲(chǔ)該數(shù)據(jù);讀取當(dāng)前已存儲(chǔ)的數(shù)據(jù),確定期望循環(huán)冗余碼校驗(yàn)碼CRC。13、根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于,還包括數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方才艮據(jù)接收到的原語,調(diào)整相應(yīng)的原語標(biāo)識(shí)位的狀態(tài),以指示數(shù)據(jù)傳輸狀態(tài);其中,數(shù)據(jù)接收方或數(shù)據(jù)發(fā)送方分別設(shè)置有原語標(biāo)識(shí)位。全文摘要本發(fā)明公開了一種原語處理方法、裝置和系統(tǒng),涉及串行硬盤接口技術(shù),能夠在無需大量額外寄存器的情況下,穩(wěn)定且有效地獲取期望CRC,以保障數(shù)據(jù)校驗(yàn)的正確性。本發(fā)明實(shí)施例提供的原語處理方法包括數(shù)據(jù)接收方判斷當(dāng)前接收到的數(shù)據(jù)是否為數(shù)據(jù)對(duì)齊ALIGNp原語,若是,丟棄該ALIGNp原語,若否,存儲(chǔ)該數(shù)據(jù);數(shù)據(jù)接收方讀取當(dāng)前已存儲(chǔ)的數(shù)據(jù),確定期望循環(huán)冗余碼校驗(yàn)碼CRC。文檔編號(hào)G06F3/06GK101446887SQ20091000062公開日2009年6月3日申請(qǐng)日期2009年1月9日優(yōu)先權(quán)日2009年1月9日發(fā)明者寧佐林,俊胡申請(qǐng)人:華為技術(shù)有限公司