欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于第三方phy的sata速度自協(xié)商方法及裝置制造方法

文檔序號(hào):6498794閱讀:613來(lái)源:國(guó)知局
基于第三方phy的sata速度自協(xié)商方法及裝置制造方法
【專利摘要】本發(fā)明公開(kāi)一種基于第三方PHY的SATA速度自協(xié)商方法及裝置,該方法包括以下步驟:接收PHY恢復(fù)的并行數(shù)據(jù),根據(jù)K碼對(duì)并行數(shù)據(jù)進(jìn)行字節(jié)對(duì)齊;檢測(cè)對(duì)齊后的并行數(shù)據(jù)中是否含有OOB信號(hào);若是,則將OOB指示信號(hào)sig_det發(fā)送至SATA控制器;在SATA控制器識(shí)別OOB信號(hào),并完成初始化階段的COMRESET、COMINIT、COMWAKE過(guò)程后,SATA控制器發(fā)送速度選擇信號(hào),經(jīng)過(guò)速率重配后,將重配后的速度選擇信號(hào)發(fā)送至PHY;具有將恢復(fù)錯(cuò)位的并行數(shù)據(jù)進(jìn)行對(duì)齊及能夠順利完成PHY速率切換的有益效果,有效地解決了數(shù)據(jù)非對(duì)齊導(dǎo)致的連接失敗或低功耗模式切換失敗的問(wèn)題。
【專利說(shuō)明】基于第三方PHY的SATA速度自協(xié)商方法及裝置
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種基于第三方PHY的SATA速度自協(xié)商方法及裝置。
【背景技術(shù)】
[0002]SATA (Serial Advanced Technology Attachment,串行高級(jí)技術(shù)附件)控制器對(duì)于PHY (Physical Layer,物理層協(xié)議)具有OOB (out of band,帶外數(shù)據(jù))信號(hào)的檢測(cè)能力,并且能夠根據(jù)OOB的時(shí)序完成整個(gè)硬件初始化,硬件初始化必須在Genl(Generationl,一代)的速率下進(jìn)行,完成Genl速率下的初始化后,對(duì)于二代以上的SATA控制器,要求能夠完成從Genl到Gen2 (Generation〗,二代)的速率切換,以便控制器能夠進(jìn)入所能支持的更高速率模式下工作。
[0003]PHY恢復(fù)出來(lái)的并行數(shù)據(jù),通常會(huì)有50%的概率出現(xiàn)字節(jié)移位的情況,即數(shù)據(jù)沒(méi)有對(duì)齊,而對(duì)于SATA來(lái)說(shuō),00B信號(hào)的字節(jié)移位可能導(dǎo)致00B信號(hào)檢測(cè)失敗,或者控制器內(nèi)部對(duì)00B信號(hào)的檢測(cè)只進(jìn)行了低位或者高位檢測(cè),會(huì)出現(xiàn)速率協(xié)商信號(hào)不匹配的情況,這樣也可能導(dǎo)致控制器在切換低功耗模式的時(shí)候無(wú)法進(jìn)入低功耗。

【發(fā)明內(nèi)容】

[0004]本發(fā)明的主要目的是提供一種基于第三方PHY的SATA速度自協(xié)商方法及裝置,旨在解決SATA和PHY之間數(shù)據(jù)傳輸中出現(xiàn)的字節(jié)非對(duì)齊及速度協(xié)商信號(hào)不匹配的問(wèn)題。
[0005]本發(fā)明實(shí)施例公開(kāi)了一種基于第三方PHY的SATA速度自協(xié)商方法,包括以下步驟:
[0006]接收物理層PHY恢復(fù)的并行數(shù)據(jù),對(duì)所述并行數(shù)據(jù)進(jìn)行字節(jié)對(duì)齊;
[0007]檢測(cè)對(duì)齊后的所述并行數(shù)據(jù)中是否含有帶外數(shù)據(jù)00B信號(hào);
[0008]若是,則將所述00B信號(hào)發(fā)送至串行高級(jí)技術(shù)附件SATA控制器;
[0009]在所述SATA控制器識(shí)別所述00B信號(hào)后,接收所述SATA控制器發(fā)送的速度選擇信號(hào),并將所述速度選擇信號(hào)發(fā)送至所述PHY。
[0010]優(yōu)選地,所述接收PHY恢復(fù)的并行數(shù)據(jù),對(duì)所述并行數(shù)據(jù)進(jìn)行字節(jié)對(duì)齊包括:
[0011]判斷所述SATA控制器是否能夠檢測(cè)到所述并行數(shù)據(jù)中低位的K碼;
[0012]若K碼在高位,則切換至字節(jié)移位的邏輯,將當(dāng)前數(shù)據(jù)的高位和下一個(gè)數(shù)據(jù)的低位進(jìn)行拼接。
[0013]優(yōu)選地,所述接收PHY恢復(fù)的并行數(shù)據(jù),對(duì)所述并行數(shù)據(jù)進(jìn)行字節(jié)對(duì)齊包括:
[0014]取所述并行數(shù)據(jù)起始端前八比特?cái)?shù)據(jù),判斷所述前八比特?cái)?shù)據(jù)是否為K碼;
[0015]若否,則將所述八比特?cái)?shù)據(jù)中高七位數(shù)據(jù)和下一個(gè)并行數(shù)據(jù)的低一位比特?cái)?shù)據(jù)相結(jié)合,形成新的八比特?cái)?shù)據(jù),再次判斷所述新的八比特?cái)?shù)據(jù)是否為所述K碼;循環(huán)執(zhí)行,直至檢測(cè)到所述K碼;
[0016]將檢測(cè)到所述K碼之后的數(shù)據(jù)按照八比特為一組繼續(xù)對(duì)所述并行數(shù)據(jù)進(jìn)行取數(shù)并檢測(cè),直至將所述并行數(shù)據(jù)的各字節(jié)對(duì)齊。
[0017]優(yōu)選地,所述將所述OOB信號(hào)發(fā)送至SATA控制器的步驟之前還包括:
[0018]初始化所述OOB信號(hào),與所述SATA控制器進(jìn)行握手;
[0019]握手成功后,再次接收到所述OOB信號(hào)時(shí),切換低功耗狀態(tài)至正常工作狀態(tài)。
[0020]優(yōu)選地,所述接收所述SATA控制器發(fā)送的速度選擇信號(hào),并將所述速度選擇信號(hào)發(fā)送至所述PHY包括:
[0021]接收所述SATA控制器發(fā)送的速度選擇信號(hào),在所述PHY中存在與所述速度選擇信號(hào)相匹配的分頻信號(hào)時(shí),直接將所述速度選擇信號(hào)發(fā)送至所述PHY ;
[0022]在所述PHY中不存在與所述速度選擇信號(hào)相匹配的分頻信號(hào)時(shí),將所述速度選擇信號(hào)處理成與所述PHY分頻信號(hào)向匹配的速度配置信號(hào)。
[0023]本發(fā)明實(shí)施例還公開(kāi)了一種基于第三方PHY的SATA速度自協(xié)商裝置,包括:
[0024]數(shù)據(jù)對(duì)齊模塊,用于接收PHY恢復(fù)的并行數(shù)據(jù),對(duì)所述并行數(shù)據(jù)進(jìn)行字節(jié)對(duì)齊;
[0025]邏輯檢測(cè)模塊,用于檢測(cè)對(duì)齊后的所述并行數(shù)據(jù)中是否含有帶外數(shù)據(jù)OOB信號(hào);若是,則將所述OOB信號(hào)發(fā)送至SATA控制器;
[0026]速率重配模塊,用于在所述SATA控制器識(shí)別所述OOB信號(hào)后,接收所述SATA控制器發(fā)送的速度選擇信號(hào),并將所述速度選擇信號(hào)發(fā)送至所述PHY。
[0027]優(yōu)選地,所述數(shù)據(jù)對(duì)齊模塊還用于:
[0028]判斷所述SATA控制器是否能夠檢測(cè)到所述并行數(shù)據(jù)中的K碼或D碼;
[0029]若K碼在高位,則切換至字節(jié)移位邏輯,將當(dāng)前數(shù)據(jù)的高位和下一個(gè)數(shù)據(jù)的低位進(jìn)行拼接。
[0030]優(yōu)選地,所述數(shù)據(jù)對(duì)齊模塊還用于:
[0031]取所述并行數(shù)據(jù)起始端前八比特?cái)?shù)據(jù),判斷所述前八比特?cái)?shù)據(jù)是否為K碼;
[0032]若否,則將所述八比特?cái)?shù)據(jù)中高七位數(shù)據(jù)和下一個(gè)并行數(shù)據(jù)的低一位比特?cái)?shù)據(jù)相結(jié)合,形成新的八比特?cái)?shù)據(jù),再次判斷所述新的八比特?cái)?shù)據(jù)是否為所述K碼;循環(huán)執(zhí)行,直至檢測(cè)到所述K碼;
[0033]將檢測(cè)到所述K碼之后的數(shù)據(jù)按照八比特為一組繼續(xù)對(duì)所述并行數(shù)據(jù)進(jìn)行取數(shù)并檢測(cè),直至將所述并行數(shù)據(jù)的各字節(jié)對(duì)齊。
[0034]優(yōu)選地,所述邏輯檢測(cè)模塊還用于:
[0035]初始化所述OOB信號(hào),與所述SATA控制器進(jìn)行握手;
[0036]握手成功后,再次接收到所述OOB信號(hào)時(shí),切換低功耗狀態(tài)至正常工作狀態(tài)。
[0037]優(yōu)選地,所述速率重配模塊還用于:
[0038]接收所述SATA控制器發(fā)送的速度選擇信號(hào),在所述PHY中存在與所述速度選擇信號(hào)相匹配的分頻信號(hào)時(shí),直接將所述速度選擇信號(hào)發(fā)送至所述PHY ;
[0039]在所述PHY中不存在與所述速度選擇信號(hào)相匹配的分頻信號(hào)時(shí),將所述速度選擇信號(hào)處理成與所述PHY分頻信號(hào)向匹配的速度配置信號(hào)。
[0040]本發(fā)明通過(guò)接收PHY恢復(fù)的并行數(shù)據(jù),對(duì)所述并行數(shù)據(jù)進(jìn)行字節(jié)對(duì)齊;檢測(cè)對(duì)齊后的所述并行數(shù)據(jù)中是否含有帶外數(shù)據(jù)OOB信號(hào);若是,則將所述OOB信號(hào)發(fā)送至SATA控制器;在所述SATA控制器識(shí)別所述OOB信號(hào)后,接收所述SATA控制器發(fā)送的速度選擇信號(hào),并將所述速度選擇信號(hào)發(fā)送至所述PHY的方法,具有將恢復(fù)錯(cuò)位的并行數(shù)據(jù)進(jìn)行對(duì)齊及能夠順利完成PHY速率切換的有益效果,有效地解決了數(shù)據(jù)非對(duì)齊導(dǎo)致的連接失敗或低功耗模式切換失敗的問(wèn)題。
【專利附圖】

【附圖說(shuō)明】
[0041]圖1是本發(fā)明基于第三方PHY的SATA速度自協(xié)商方法一實(shí)施例流程示意圖;
[0042]圖2是本發(fā)明基于第三方PHY的SATA速度自協(xié)商裝置一實(shí)施例結(jié)構(gòu)示意圖;
[0043]圖3是本發(fā)明基于Altera PHY的SATA速度自協(xié)商裝置內(nèi)部結(jié)構(gòu)示意圖。
[0044]本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。
【具體實(shí)施方式】
[0045]以下結(jié)合說(shuō)明書附圖及具體實(shí)施例進(jìn)一步說(shuō)明本發(fā)明的技術(shù)方案。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0046]參照?qǐng)D1,圖1是本發(fā)明基于第三方PHY的SATA速度自協(xié)商方法一實(shí)施例流程示意圖;如圖1所示,本發(fā)明基于第三方PHY的SATA速度自協(xié)商方法包括以下步驟:
[0047]步驟S01、接收PHY恢復(fù)的并行數(shù)據(jù),對(duì)所述并行數(shù)據(jù)進(jìn)行字節(jié)對(duì)齊;
[0048]在PHY將接收的SATA控制器的并行數(shù)據(jù)進(jìn)行恢復(fù)時(shí),通常會(huì)出現(xiàn)數(shù)據(jù)錯(cuò)位的情況。
[0049]并行數(shù)據(jù)中存在高低錯(cuò)位的情況時(shí),會(huì)將K碼和D碼的位置放在SATA控制器無(wú)法識(shí)別的高位或低位,根據(jù)SATA控制器是否能夠檢測(cè)到并行數(shù)據(jù)中的K碼或D碼來(lái)判斷并行數(shù)據(jù)中是否存在高低錯(cuò)位的情況;如果SATA控制器檢測(cè)不到并行數(shù)據(jù)中低位的K碼,即若檢測(cè)到K碼在高位,則切換至字節(jié)移位邏輯,將所述并行數(shù)據(jù)即當(dāng)前數(shù)據(jù)中的高位和下一個(gè)數(shù)據(jù)的低位進(jìn)行拼接。比如,對(duì)PHY恢復(fù)出來(lái)的OOB信號(hào)中連續(xù)的align (對(duì)齊)原語(yǔ)本應(yīng)該為:4abc、7b4a、4abc、7b4a、4abc、7b4a,而 PHY 恢復(fù)的并行數(shù)據(jù)中出現(xiàn)了:bc7b、4a4a、bc7b.4a4a.bc7b的數(shù)據(jù),則表明PHY恢復(fù)出來(lái)的并行數(shù)據(jù)在對(duì)齊的時(shí)候出現(xiàn)了前一個(gè)數(shù)據(jù)低8位和后一個(gè)數(shù)據(jù)高8位組合成新數(shù)據(jù)的現(xiàn)象;這導(dǎo)致該連續(xù)的align數(shù)據(jù)后面的所有數(shù)據(jù)都出現(xiàn)上述的錯(cuò)位現(xiàn)象。對(duì)于只有高低位出問(wèn)題的并行數(shù)據(jù),只需要將前一個(gè)數(shù)據(jù)的低位和后一個(gè)數(shù)據(jù)的高位結(jié)合,形成新的并行數(shù)據(jù),并將K碼或D碼放在合適的位置即可。
[0050]對(duì)于比較紊亂的按照比特非對(duì)齊的數(shù)據(jù),采用的對(duì)齊方式是,取所述并行數(shù)據(jù)起始端前八比特?cái)?shù)據(jù),判斷所述前八比特?cái)?shù)據(jù)是否為K碼;若否,則將所述八比特?cái)?shù)據(jù)中高七位數(shù)據(jù)和下一個(gè)并行數(shù)據(jù)的低一位比特?cái)?shù)據(jù)相結(jié)合,形成新的八比特?cái)?shù)據(jù),再次判斷所述新的八比特?cái)?shù)據(jù)是否為所述K碼;循環(huán)執(zhí)行,直至檢測(cè)到所述K碼;將檢測(cè)到所述K碼之后的數(shù)據(jù)按照八比特為一組繼續(xù)對(duì)所述并行數(shù)據(jù)進(jìn)行取數(shù)并檢測(cè),直至將所述并行數(shù)據(jù)的各字節(jié)對(duì)齊。
[0051]如,按照bit (比特)對(duì)數(shù)據(jù)進(jìn)行遞推檢測(cè),取剛開(kāi)始的Sbit數(shù)據(jù),判斷是否為K碼,如果不為K碼,將該數(shù)的高7位和下一個(gè)bit相結(jié)合,組成新的Sbit數(shù)據(jù),再次判斷是否為K碼,依次類推,直到出現(xiàn)K碼為止,則說(shuō)明檢測(cè)到該字節(jié)的邊緣,之后的數(shù)據(jù)便按照Sbit取數(shù)繼續(xù)進(jìn)行檢測(cè);若出現(xiàn)非對(duì)齊,再按照此規(guī)則進(jìn)行處理,這樣保證了并行數(shù)據(jù)的字節(jié)對(duì)齊。
[0052]步驟S02、檢測(cè)對(duì)齊后的所述并行數(shù)據(jù)中是否含有OOB信號(hào);若是,則執(zhí)行步驟S03 ;若否,則返回執(zhí)行步驟S02 ;
[0053]步驟S03、將所述OOB信號(hào)發(fā)送至SATA控制器;
[0054]檢測(cè)對(duì)齊后的并行數(shù)據(jù)中是否含有OOB信號(hào);若否,則繼續(xù)檢測(cè);若是,則初始化所述OOB信號(hào),與所述SATA控制器進(jìn)行握手;握手成功后,再次接收到所述OOB信號(hào)時(shí),切換低功耗狀態(tài)至正常工作狀態(tài)。
[0055]比如,檢測(cè)到對(duì)齊后的并行數(shù)據(jù)中含有OOB信號(hào)時(shí),從OOB信號(hào)中提取出K28.5碼,作為SATA控制器的COMMA信號(hào)輸出;由于OOB是K碼系列,如果是OOB信號(hào),則會(huì)出現(xiàn)按照SATA協(xié)議要求的規(guī)則脈沖信號(hào),將該脈沖信號(hào)傳送到SATA控制器,便能夠被SATA控制器識(shí)別為OOB信號(hào),并行數(shù)據(jù)中的有效信號(hào)在OOB信號(hào)初始化剛開(kāi)始時(shí)對(duì)于SATA控制器來(lái)說(shuō)是沒(méi)有意義的,二者僅僅是進(jìn)行握手,在握手成功,并對(duì)OOB信號(hào)完成初始化后才會(huì)用到有效的OOB信號(hào);這樣就要對(duì)OOB信號(hào)完成最后階段的D10.2進(jìn)行檢測(cè),當(dāng)檢測(cè)到D10.2的時(shí)候,對(duì)齊的并行數(shù)據(jù)后面的數(shù)據(jù)便是一直有效的。在低功耗時(shí),進(jìn)行OOB信號(hào)交互是為了與SATA控制器進(jìn)行握手;握手成功后,當(dāng)再次出現(xiàn)OOB信號(hào)時(shí),切換低功耗狀態(tài)至正常工作狀態(tài)。在正常工作狀態(tài),將OOB信號(hào)發(fā)送至SATA控制器。
[0056]步驟S04、在所述SATA控制器識(shí)別所述OOB信號(hào)后,接收所述SATA控制器發(fā)送的速度選擇信號(hào),并將所述速度選擇信號(hào)發(fā)送至所述PHY。
[0057]由于OOB是K碼系列,如果是OOB信號(hào),則會(huì)出現(xiàn)按照SATA協(xié)議要求的規(guī)則脈沖信號(hào),將該脈沖信號(hào)傳送到SATA控制器后,便能夠被SATA控制器識(shí)別為OOB信號(hào);接收SATA控制器根據(jù)該OOB信號(hào)發(fā)送的速度選擇信號(hào),在所述PHY中存在與所述速度選擇信號(hào)相匹配的分頻信號(hào)時(shí),直接將所述速度選擇信號(hào)發(fā)送至所述PHY ;在所述PHY中不存在與所述速度選擇信號(hào)相匹配的分頻信號(hào)時(shí),將所述速度選擇信號(hào)處理成與所述PHY分頻信號(hào)向匹配的速度配置信號(hào)。
[0058]PHY要根據(jù)SATA控制器發(fā)送的速度選擇信號(hào)實(shí)現(xiàn)與SATA控制器匹配的速率,SATA控制器會(huì)發(fā)出與PHY協(xié)商的速度等級(jí),用速度選擇信號(hào)指示給PHY。比如,對(duì)于最高速度只支持到Gen2的SATA控制器,該速度選擇信號(hào)是lbit,輸出O表示要求PHY工作在Genl速度模式,輸出I表示要求PHY工作在Gen2速度模式;PHY需要通過(guò)執(zhí)行所述基于第三方PHY的SATA速度自協(xié)商方法中對(duì)應(yīng)重配步驟的重配模塊來(lái)對(duì)其內(nèi)部的分頻系數(shù)進(jìn)行重配,將SATA控制器的速度選擇信號(hào)經(jīng)過(guò)處理,作為PHY內(nèi)部對(duì)應(yīng)重配模塊的輸入,對(duì)PHY的內(nèi)部分頻進(jìn)行重配,以達(dá)到與SATA控制器要求相匹配的速率。
[0059]本實(shí)施例通過(guò)接收PHY恢復(fù)的并行數(shù)據(jù),對(duì)所述并行數(shù)據(jù)進(jìn)行字節(jié)對(duì)齊;檢測(cè)對(duì)齊后的所述并行數(shù)據(jù)中是否含有帶外數(shù)據(jù)OOB信號(hào);若是,則將所述OOB信號(hào)發(fā)送至SATA控制器;在所述SATA控制器識(shí)別所述OOB信號(hào)后,接收所述SATA控制器發(fā)送的速度選擇信號(hào),并將所述速度選擇信號(hào)發(fā)送至所述PHY的方法,具有將恢復(fù)錯(cuò)位的并行數(shù)據(jù)進(jìn)行對(duì)齊及能夠順利完成PHY速率切換的有益效果,有效地解決了數(shù)據(jù)非對(duì)齊導(dǎo)致的連接失敗或低功耗模式切換失敗的問(wèn)題。
[0060]參照?qǐng)D2,圖2是本發(fā)明基于第三方PHY的SATA速度自協(xié)商裝置一實(shí)施例結(jié)構(gòu)示意圖;如圖2所示,本發(fā)明基于第三方PHY的SATA速度自協(xié)商裝置包括:數(shù)據(jù)對(duì)齊模塊01、邏輯檢測(cè)模塊02和速率重配模塊03。
[0061]所述基于第三方PHY的SATA速度自協(xié)商裝置一實(shí)施例的內(nèi)部結(jié)構(gòu)圖請(qǐng)參照?qǐng)D3,圖3是本發(fā)明基于Altera PHY的SATA速度自協(xié)商裝置內(nèi)部結(jié)構(gòu)示意圖。請(qǐng)一并參照?qǐng)D2和圖3,所述基于第三方PHY的SATA速度自協(xié)商裝置所采用的方法為:通過(guò)接收PHY恢復(fù)的并行數(shù)據(jù),對(duì)所述并行數(shù)據(jù)進(jìn)行字節(jié)對(duì)齊;檢測(cè)對(duì)齊后的所述并行數(shù)據(jù)中是否含有帶外數(shù)據(jù)OOB信號(hào);若是,則將所述OOB信號(hào)發(fā)送至SATA控制器;在所述SATA控制器識(shí)別所述OOB信號(hào)后,接收所述SATA控制器發(fā)送的速度選擇信號(hào),并將所述速度選擇信號(hào)發(fā)送至所述 PHY。
[0062]下面將進(jìn)一步描述基于第三方PHY的SATA速度自協(xié)商裝置中數(shù)據(jù)對(duì)齊模塊01、邏輯檢測(cè)模塊02和速率重配模塊03的工作過(guò)程。
[0063]數(shù)據(jù)對(duì)齊模塊01,用于接收PHY恢復(fù)的并行數(shù)據(jù),對(duì)所述并行數(shù)據(jù)進(jìn)行字節(jié)對(duì)齊。
[0064]在PHY將接收的SATA控制器的并行數(shù)據(jù)進(jìn)行恢復(fù)時(shí),通常會(huì)出現(xiàn)數(shù)據(jù)錯(cuò)位的情況。
[0065]并行數(shù)據(jù)中存在高低錯(cuò)位的情況時(shí),會(huì)將K碼和D碼的位置放在SATA控制器無(wú)法識(shí)別的高位或低位,數(shù)據(jù)對(duì)齊模塊01根據(jù)SATA控制器是否能夠檢測(cè)到并行數(shù)據(jù)中的K碼或D碼來(lái)判斷并行數(shù)據(jù)中是否存在高低錯(cuò)位的情況;如果SATA控制器檢測(cè)不到并行數(shù)據(jù)中低位的K碼,即若檢測(cè)到K碼在高位,數(shù)據(jù)對(duì)齊模塊01則切換至字節(jié)移位邏輯,將所述并行數(shù)據(jù)即當(dāng)前數(shù)據(jù)中的高位和下一個(gè)數(shù)據(jù)的低位進(jìn)行拼接。比如,對(duì)PHY恢復(fù)出來(lái)的OOB信號(hào)中連續(xù)的align原語(yǔ)本應(yīng)該為:4abc、7b4a、4abc、7b4a、4abc、7b4a,而PHY恢復(fù)的并行數(shù)據(jù)中出現(xiàn)了:bc7b、4a4a、bc7b、4a4a、bc7b的數(shù)據(jù),則表明PHY恢復(fù)出來(lái)的并行數(shù)據(jù)在對(duì)齊的時(shí)候出現(xiàn)了前一個(gè)數(shù)據(jù)低8位和后一個(gè)數(shù)據(jù)高8位組合成新數(shù)據(jù)的現(xiàn)象;這導(dǎo)致該連續(xù)的align數(shù)據(jù)后面的所有數(shù)據(jù)都出現(xiàn)上述的錯(cuò)位現(xiàn)象。對(duì)于只有高低位出問(wèn)題的并行數(shù)據(jù),數(shù)據(jù)對(duì)齊模塊01只需要將前一個(gè)數(shù)據(jù)的低位和后一個(gè)數(shù)據(jù)的高位結(jié)合,形成新的并行數(shù)據(jù),并將K碼或D碼放在合適的位置即可。
[0066]對(duì)于比較紊亂的按照比特非對(duì)齊的數(shù)據(jù),數(shù)據(jù)對(duì)齊模塊01采用的對(duì)齊方式是,取所述并行數(shù)據(jù)起始端前八比特?cái)?shù)據(jù),判斷所述前八比特?cái)?shù)據(jù)是否為K碼;若否,則將所述八比特?cái)?shù)據(jù)中高七位數(shù)據(jù)和下一個(gè)并行數(shù)據(jù)的低一位比特?cái)?shù)據(jù)相結(jié)合,形成新的八比特?cái)?shù)據(jù),再次判斷所述新的八比特?cái)?shù)據(jù)是否為所述K碼;循環(huán)執(zhí)行,直至檢測(cè)到所述K碼;將檢測(cè)到所述K碼之后的數(shù)據(jù)按照八比特為一組繼續(xù)對(duì)所述并行數(shù)據(jù)進(jìn)行取數(shù)并檢測(cè),直至將所述并行數(shù)據(jù)的各字節(jié)對(duì)齊。
[0067]比如,數(shù)據(jù)對(duì)齊模塊01按照bit對(duì)數(shù)據(jù)進(jìn)行遞推檢測(cè),取剛開(kāi)始的Sbit數(shù)據(jù),判斷是否為K碼,如果不為K碼,將該數(shù)的高7位和下一個(gè)bit相結(jié)合,組成新的Sbit數(shù)據(jù),再次判斷是否為K碼,依次類推,直到出現(xiàn)K碼為止,則說(shuō)明檢測(cè)到該字節(jié)的邊緣,之后的數(shù)據(jù)便按照8bit取數(shù)繼續(xù)進(jìn)行檢測(cè);若出現(xiàn)非對(duì)齊,再按照此規(guī)則進(jìn)行處理,這樣保證了并行數(shù)據(jù)的字節(jié)對(duì)齊。
[0068]邏輯檢測(cè)模塊02,用于檢測(cè)對(duì)齊后的所述并行數(shù)據(jù)中是否含有帶外數(shù)據(jù)OOB信號(hào);若是,則將所述OOB信號(hào)發(fā)送至SATA控制器。
[0069]邏輯檢測(cè)模塊02檢測(cè)數(shù)據(jù)對(duì)齊模塊01對(duì)齊后的并行數(shù)據(jù)中是否含有OOB信號(hào);若否,則繼續(xù)檢測(cè);若是,則初始化所述OOB信號(hào),與所述SATA控制器進(jìn)行握手;握手成功后,再次接收到所述OOB信號(hào)時(shí),切換低功耗狀態(tài)至正常工作狀態(tài)。
[0070]如,邏輯檢測(cè)模塊02檢測(cè)到對(duì)齊后的并行數(shù)據(jù)中含有OOB信號(hào)時(shí),從OOB信號(hào)中提取出K28.5碼,作為SATA控制器的COMMA信號(hào)輸出;由于OOB是K碼系列,如果是OOB信號(hào),則會(huì)出現(xiàn)按照SATA協(xié)議要求的規(guī)則脈沖信號(hào),將該脈沖信號(hào)傳送到SATA控制器,便能夠被SATA控制器識(shí)別為OOB信號(hào),并行數(shù)據(jù)中的有效信號(hào)在OOB信號(hào)初始化剛開(kāi)始時(shí)對(duì)于SATA控制器來(lái)說(shuō)是沒(méi)有意義的,二者僅僅是進(jìn)行握手,在握手成功且對(duì)OOB信號(hào)完成初始化后才會(huì)用到有效的OOB信號(hào);這樣就要邏輯檢測(cè)模塊02對(duì)OOB信號(hào)完成最后階段的D10.2進(jìn)行檢測(cè),當(dāng)檢測(cè)到D10.2的時(shí)候,對(duì)齊的并行數(shù)據(jù)后面的數(shù)據(jù)便是一直有效的。在低功耗時(shí),邏輯檢測(cè)模塊02進(jìn)行OOB信號(hào)交互是為了與SATA控制器進(jìn)行握手;握手成功后,當(dāng)再次出現(xiàn)OOB信號(hào)時(shí),邏輯檢測(cè)模塊02切換低功耗狀態(tài)至正常工作狀態(tài)。在正常工作狀態(tài),邏輯檢測(cè)模塊02將OOB信號(hào)發(fā)送至SATA控制器。
[0071 ] 速率重配模塊03,用于在所述SATA控制器識(shí)別所述OOB信號(hào)后,接收所述SATA控制器發(fā)送的速度選擇信號(hào),并將所述速度選擇信號(hào)發(fā)送至所述PHY。
[0072]由于OOB是K碼系列,如果是OOB信號(hào),則會(huì)出現(xiàn)按照SATA協(xié)議要求的規(guī)則脈沖信號(hào),速率重配模塊03將該脈沖信號(hào)傳送到SATA控制器后,便能夠被SATA控制器識(shí)別為OOB信號(hào);速率重配模塊03接收SATA控制器根據(jù)該OOB信號(hào)發(fā)送的速度選擇信號(hào),在所述PHY中存在與所述速度選擇信號(hào)相匹配的分頻信號(hào)時(shí),直接將所述速度選擇信號(hào)發(fā)送至所述PHY ;在所述PHY中不存在與所述速度選擇信號(hào)相匹配的分頻信號(hào)時(shí),將所述速度選擇信號(hào)處理成與所述PHY分頻信號(hào)向匹配的速度配置信號(hào)。
[0073]PHY要根據(jù)SATA控制器發(fā)送的速度選擇信號(hào)實(shí)現(xiàn)與SATA控制器匹配的速率,SATA控制器會(huì)發(fā)出與PHY協(xié)商的速度等級(jí),用速度選擇信號(hào)指示給PHY。比如,對(duì)于最高速度只支持到Gen2的SATA控制器,該速度選擇信號(hào)是lbit,輸出O表示要求PHY工作在Genl速度模式,輸出I表示要求PHY工作在Gen2速度模式;PHY需要通過(guò)速率重配模塊03來(lái)對(duì)其內(nèi)部的分頻系數(shù)進(jìn)行重配;速率重配模塊03將SATA控制器的速度選擇信號(hào)經(jīng)過(guò)處理后,將處理后的速度選擇信號(hào)傳送至PHY ;PHY根據(jù)該速度選擇信號(hào)對(duì)PHY的內(nèi)部分頻進(jìn)行重配,以達(dá)到與SATA控制器要求相匹配的速率。
[0074]本實(shí)施例通過(guò)接收PHY恢復(fù)的并行數(shù)據(jù),對(duì)所述并行數(shù)據(jù)進(jìn)行字節(jié)對(duì)齊;檢測(cè)對(duì)齊后的所述并行數(shù)據(jù)中是否含有帶外數(shù)據(jù)OOB信號(hào);若是,則將所述OOB信號(hào)發(fā)送至SATA控制器;在所述SATA控制器識(shí)別所述OOB信號(hào)后,接收所述SATA控制器發(fā)送的速度選擇信號(hào),并將所述速度選擇信號(hào)發(fā)送至所述PHY,具有將恢復(fù)錯(cuò)位的并行數(shù)據(jù)進(jìn)行對(duì)齊及能夠順利完成PHY速率切換的有益效果,有效地解決了數(shù)據(jù)非對(duì)齊導(dǎo)致的連接失敗或低功耗模式切換失敗的問(wèn)題。
[0075]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制其專利范圍,凡是利用本發(fā)明說(shuō)明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,直接或間接運(yùn)用在其他相關(guān)的【技術(shù)領(lǐng)域】,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種基于第三方PHY的SATA速度自協(xié)商方法,其特征在于,包括以下步驟: 接收物理層PHY恢復(fù)的并行數(shù)據(jù),對(duì)所述并行數(shù)據(jù)進(jìn)行字節(jié)對(duì)齊; 檢測(cè)對(duì)齊后的所述并行數(shù)據(jù)中是否含有帶外數(shù)據(jù)OOB信號(hào); 若是,則將所述OOB信號(hào)發(fā)送至串行高級(jí)技術(shù)附件SATA控制器; 在所述SATA控制器識(shí)別所述OOB信號(hào)后,接收所述SATA控制器發(fā)送的速度選擇信號(hào),并將所述速度選擇信號(hào)發(fā)送至所述PHY。
2.如權(quán)利要求1所述的方法,其特征在于,所述接收PHY恢復(fù)的并行數(shù)據(jù),對(duì)所述并行數(shù)據(jù)進(jìn)行字節(jié)對(duì)齊包括: 判斷所述SATA控制器是否能夠檢測(cè)到所述并行數(shù)據(jù)中低位的K碼; 若K碼在高位,則切換至字節(jié)移位的邏輯,將當(dāng)前數(shù)據(jù)的高位和下一個(gè)數(shù)據(jù)的低位進(jìn)行拼接。
3.如權(quán)利要求1所述的方法,其特征在于,所述接收PHY恢復(fù)的并行數(shù)據(jù),對(duì)所述并行數(shù)據(jù)進(jìn)行字節(jié)對(duì)齊包括: 取所述并行數(shù)據(jù)起始端前八比特?cái)?shù)據(jù),判斷所述前八比特?cái)?shù)據(jù)是否為K碼; 若否,則將所述八比特?cái)?shù)據(jù)中高七位數(shù)據(jù)和下一個(gè)并行數(shù)據(jù)的低一位比特?cái)?shù)據(jù)相結(jié)合,形成新的八比特?cái)?shù)據(jù),再次判斷所述新的八比特?cái)?shù)據(jù)是否為所述K碼;循環(huán)執(zhí)行,直至檢測(cè)到所述K碼; 將檢測(cè)到所述K碼之后的數(shù)據(jù)按照八比特為一組繼續(xù)對(duì)所述并行數(shù)據(jù)進(jìn)行取數(shù)并檢測(cè),直至將所述并行數(shù)據(jù)的各字節(jié)對(duì)齊。
4.如權(quán)利要求1所述的方法,其特征在于,所述將所述OOB信號(hào)發(fā)送至SATA控制器的步驟之前還包括: 初始化所述OOB信號(hào),與所述SATA控制器進(jìn)行握手; 握手成功后,再次接收到所述OOB信號(hào)時(shí),切換低功耗狀態(tài)至正常工作狀態(tài)。
5.如權(quán)利要求1所述的方法,其特征在于,所述接收所述SATA控制器發(fā)送的速度選擇信號(hào),并將所述速度選擇信號(hào)發(fā)送至所述PHY包括: 接收所述SATA控制器發(fā)送的速度選擇信號(hào),在所述PHY中存在與所述速度選擇信號(hào)相匹配的分頻信號(hào)時(shí),直接將所述速度選擇信號(hào)發(fā)送至所述PHY ; 在所述PHY中不存在與所述速度選擇信號(hào)相匹配的分頻信號(hào)時(shí),將所述速度選擇信號(hào)處理成與所述PHY分頻信號(hào)向匹配的速度配置信號(hào)。
6.一種基于第三方PHY的SATA速度自協(xié)商裝置,其特征在于,包括: 數(shù)據(jù)對(duì)齊模塊,用于接收PHY恢復(fù)的并行數(shù)據(jù),對(duì)所述并行數(shù)據(jù)進(jìn)行字節(jié)對(duì)齊; 邏輯檢測(cè)模塊,用于檢測(cè)對(duì)齊后的所述并行數(shù)據(jù)中是否含有帶外數(shù)據(jù)OOB信號(hào);若是,則將所述OOB信號(hào)發(fā)送至SATA控制器; 速率重配模塊,用于在所述SATA控制器識(shí)別所述OOB信號(hào)后,接收所述SATA控制器發(fā)送的速度選擇信號(hào),并將所述速度選擇信號(hào)發(fā)送至所述PHY。
7.如權(quán)利要求6所述的裝置,其特征在于,所述數(shù)據(jù)對(duì)齊模塊還用于: 判斷所述SATA控制器是否能夠檢測(cè)到所述并行數(shù)據(jù)中的K碼; 若K碼在高位,則切換至字節(jié)移位邏輯,將當(dāng)前數(shù)據(jù)的高位和下一個(gè)數(shù)據(jù)的低位進(jìn)行拼接。
8.如權(quán)利要求6所述的裝置,其特征在于,所述數(shù)據(jù)對(duì)齊模塊還用于: 取所述并行數(shù)據(jù)起始端前八比特?cái)?shù)據(jù),判斷所述前八比特?cái)?shù)據(jù)是否為K碼; 若否,則將所述八比特?cái)?shù)據(jù)中高七位數(shù)據(jù)和下一個(gè)并行數(shù)據(jù)的低一位比特?cái)?shù)據(jù)相結(jié)合,形成新的八比特?cái)?shù)據(jù),再次判斷所述新的八比特?cái)?shù)據(jù)是否為所述K碼;循環(huán)執(zhí)行,直至檢測(cè)到所述K碼; 將檢測(cè)到所述K碼之后的數(shù)據(jù)按照八比特為一組繼續(xù)對(duì)所述并行數(shù)據(jù)進(jìn)行取數(shù)并檢測(cè),直至將所述并行數(shù)據(jù)的各字節(jié)對(duì)齊。
9.如權(quán)利要求6所述的裝置,其特征在于,所述邏輯檢測(cè)模塊還用于: 初始化所述OOB信號(hào),與所述SATA控制器進(jìn)行握手; 握手成功后,再次接收到所述OOB信號(hào)時(shí),切換低功耗狀態(tài)至正常工作狀態(tài)。
10.如權(quán)利要求6所述的裝置,其特征在于,所述速率重配模塊還用于: 接收所述SATA控制器發(fā)送的速度選擇信號(hào),在所述PHY中存在與所述速度選擇信號(hào)相匹配的分頻信號(hào)時(shí),直接將所述速度選擇信號(hào)發(fā)送至所述PHY ; 在所述PHY中不存在與所述速度選擇信號(hào)相匹配的分頻信號(hào)時(shí),將所述速度選擇信號(hào)處理成與所述PHY分頻信號(hào)向匹配的速度配置信號(hào)。
【文檔編號(hào)】G06F13/38GK103914420SQ201310001430
【公開(kāi)日】2014年7月9日 申請(qǐng)日期:2013年1月4日 優(yōu)先權(quán)日:2013年1月4日
【發(fā)明者】丁強(qiáng), 趙遠(yuǎn)鴻, 張帆 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
南投市| 河间市| 屏南县| 澜沧| 天津市| 广饶县| 大竹县| 禄丰县| 长垣县| 清河县| 夹江县| 吴桥县| 淮南市| 彭山县| 青海省| 望江县| 漳州市| 九龙县| 康定县| 盐城市| 南涧| 宝清县| 乳源| 黎城县| 延安市| 西充县| 大关县| 宜春市| 新津县| 洛扎县| 和田县| 天水市| 阿拉善左旗| 大丰市| 余姚市| 思茅市| 和龙市| 凤台县| 民权县| 通许县| 双辽市|