用于高速串行總線的彈性緩沖器和彈性緩沖的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及高速串行總線傳輸技術(shù),更具體地,涉及用于高速串行總線的彈性緩沖器和彈性緩沖的方法。
【背景技術(shù)】
[0002]隨著數(shù)字設(shè)備在各種領(lǐng)域的廣泛應(yīng)用,需要更大的數(shù)據(jù)存儲量和更高的帶寬,已經(jīng)開發(fā)了諸如串行高級技術(shù)附件(SATA)、外圍組件快速互連(PCIe)、以及超高速I(UHS-1)和超高速II (UHS-1I)的高速串行總線技術(shù)。以UHS-1I為例,通過兩個通路(lane)可以在主機(jī)與存儲卡之間實(shí)現(xiàn)高達(dá)156MB/S(全雙工)或312MB/S(半雙工)的傳輸速率。
[0003]在物理層傳輸中,主機(jī)與存儲卡之間的接口兩側(cè)處于不同的時鐘域。處于不同的時鐘域的發(fā)送和接收雙方的時鐘源之間通常有相位差,甚至頻率上也有細(xì)微的差別。當(dāng)為了減少電磁干擾而使用擴(kuò)頻時鐘(SSC)技術(shù)時,時鐘源之間的上述差異可能更嚴(yán)重。
[0004]為此,通常采用彈性緩沖器來解決上述問題。即,將來自第一時鐘域的接收數(shù)據(jù)推送(push)到彈性緩沖器中,并彈出(pop)到第二時鐘域。然而,如果第二時鐘域的時鐘頻率長時間低于第一時鐘域的時鐘頻率,則彈性緩沖器可能滿溢,使得無法進(jìn)一步接收數(shù)據(jù)。目前,UHS-1I并未規(guī)定如何解決緩沖器滿溢問題。通常,需要設(shè)計(jì)額外的硬件配置來應(yīng)對緩沖器滿溢。此外,當(dāng)在半雙工模式下同時使用兩個通路傳輸數(shù)據(jù)時,還會產(chǎn)生另外的問題,即,不同通路的時鐘源之間也存在差異,導(dǎo)致各個通路的彈性緩沖器中的水位線(water mark)不同,這稱為數(shù)據(jù)歪斜(data skew)。數(shù)據(jù)歪斜會對各通路的數(shù)據(jù)的合并造成困難。因而,進(jìn)一步需要諸如緩沖器的額外的硬件配置用于消除通路之間的數(shù)據(jù)歪斜。上述額外的硬件配置提高了設(shè)計(jì)復(fù)雜度,同時使得制造成本更為高昂。
【發(fā)明內(nèi)容】
[0005]因此,為了解決上述問題,本發(fā)明提供能夠防止緩沖器滿溢和數(shù)據(jù)歪斜的用于高速串行總線的接收器和接收數(shù)據(jù)的方法。
[0006]根據(jù)本發(fā)明的一個實(shí)施例,提供一種用于高速串行總線的彈性緩沖器,包括:輸入接口,用于接收來自第一時鐘域的數(shù)據(jù);控制器,用于對接收數(shù)據(jù)中的空閑數(shù)據(jù)單元進(jìn)行識另IJ,并對識別到的空閑數(shù)據(jù)單元的重復(fù)次數(shù)進(jìn)行計(jì)數(shù),當(dāng)該重復(fù)次數(shù)達(dá)到參考值時,從接收數(shù)據(jù)中丟棄至少一個重復(fù)的空閑數(shù)據(jù)單元;存儲器,用于存儲經(jīng)過處理的接收數(shù)據(jù);以及輸出接口,用于向第二時鐘域輸出存儲在該存儲器中的經(jīng)過處理的接收數(shù)據(jù)。
[0007]根據(jù)實(shí)施例,所述高速串行總線可以為超高速II(UHS-1I)總線,所述空閑數(shù)據(jù)單元包括以下鏈路符號集(LSS)中的至少一種:同步(SYN)、邏輯空閑(LIDL)、數(shù)據(jù)傳輸邏輯空閑(DIDL)、和方向切換(DIR)。
[0008]根據(jù)實(shí)施例,該彈性緩沖器可以進(jìn)一步包括寄存器,用于設(shè)置所述參考值。
[0009]根據(jù)實(shí)施例,所述參考值可以是根據(jù)空閑數(shù)據(jù)單元的持續(xù)時間確定的。
[0010]根據(jù)實(shí)施例,所述參考值可以為16至256。[0011 ]根據(jù)實(shí)施例,該存儲器可以為先進(jìn)先出存儲器。
[0012]根據(jù)實(shí)施例,該輸入接口可以根據(jù)從該接收數(shù)據(jù)中恢復(fù)的第一時鐘接收該接收數(shù)據(jù),該輸出接口可以根據(jù)第二時鐘輸出存儲在該存儲器中的經(jīng)過處理的該接收數(shù)據(jù),其中所述參考值可以是根據(jù)所述第一時鐘和所述第二時鐘的差異決定的。
[0013]根據(jù)本發(fā)明的另一實(shí)施例,提供一種用于高速串行總線的彈性緩沖的方法,包括:接收來自第一時鐘域的數(shù)據(jù);對接收數(shù)據(jù)中的空閑數(shù)據(jù)單元進(jìn)行識別,并對識別到的所述空閑數(shù)據(jù)單元的重復(fù)次數(shù)進(jìn)行計(jì)數(shù),當(dāng)該重復(fù)次數(shù)達(dá)到參考值時,從接收數(shù)據(jù)中丟棄至少一個重復(fù)的空閑數(shù)據(jù)單元;存儲經(jīng)過處理的接收數(shù)據(jù);以及向第二時鐘域輸出已存儲的經(jīng)過處理的接收數(shù)據(jù)。
[0014]根據(jù)實(shí)施例,所述高速串行總線可以為超高速II(UHS-1I)總線,所述空閑數(shù)據(jù)單元包括以下鏈路符號集(LSS)中的至少一種:同步(SYN)、邏輯空閑(LIDL)、數(shù)據(jù)傳輸邏輯空閑(DIDL)、和方向切換(DIR)。
[0015]根據(jù)實(shí)施例,該方法可以進(jìn)一步包括:設(shè)置所述參考值。
[0016]根據(jù)實(shí)施例,所述參考值可以是根據(jù)空閑數(shù)據(jù)單元的持續(xù)時間確定的。
[0017]根據(jù)實(shí)施例,所述參考值可以為16至256。
[0018]根據(jù)實(shí)施例,可以在先進(jìn)先出存儲器中存儲經(jīng)過處理的接收數(shù)據(jù)。
[0019]根據(jù)實(shí)施例,可以根據(jù)從該接收數(shù)據(jù)中恢復(fù)的第一時鐘接收該接收數(shù)據(jù),且可以根據(jù)第二時鐘輸出已存儲的經(jīng)過處理的該接收數(shù)據(jù),其中所述參考值可以是根據(jù)所述第一時鐘和所述第二時鐘的差異決定的。
[0020]根據(jù)本發(fā)明的實(shí)施例,在跨時鐘域接收數(shù)據(jù)時,通過對特定類型的控制數(shù)據(jù)單元(例如,空閑數(shù)據(jù)單元)的重復(fù)次數(shù)進(jìn)行計(jì)數(shù)并丟棄至少一個重復(fù)的控制數(shù)據(jù)單元,可以有效地控制緩沖器中的水位線以防止緩沖器滿溢而無需增加硬件設(shè)計(jì)復(fù)雜度。此外,在通過多個通路接收數(shù)據(jù)的情況下,可以進(jìn)一步解決不同通路之間由于時鐘頻率差異而發(fā)生數(shù)據(jù)歪斜的問題。
【附圖說明】
[0021]圖1是示出根據(jù)本發(fā)明的實(shí)施例的用于高速串行總線的接收器100的框圖;
[0022]圖2是示出根據(jù)本發(fā)明的實(shí)施例的用于高速串行總線的接收數(shù)據(jù)的方法的流程圖;
[0023]圖3是示出根據(jù)本發(fā)明的實(shí)施例的用于高速串行總線的彈性緩沖器300的框圖;以及
[0024]圖4是示出根據(jù)本發(fā)明的實(shí)施例的用于高速串行總線的彈性緩沖的方法的流程圖。
【具體實(shí)施方式】
[0025]下面參照附圖詳細(xì)描述根據(jù)本發(fā)明的示范性實(shí)施例。附圖中,將相同或類似的附圖標(biāo)記賦予結(jié)構(gòu)以及功能基本相同的組成部分,并且為了使說明書更加簡明,省略了關(guān)于基本上相同的組成部分的冗余描述。
[0026]下文中,將以超高速II(UHS-1I)作為高速串行總線的示例來描述本發(fā)明的實(shí)施例。然而,本發(fā)明不限于此。本發(fā)明的方案也可以應(yīng)用于在不同時鐘域之間使用彈性緩沖器的其他高速串行總線(例如SATA或PCI e總線)技術(shù)。
[0027]圖1是示出根據(jù)本發(fā)明的實(shí)施例的用于高速串行總線的接收器100的框圖。
[0028]參照圖1,接收器100可以包括解碼器101、計(jì)數(shù)器102、控制器103、和緩沖器104。在一實(shí)施例中,接收器100可以設(shè)置于主機(jī)或存儲卡的物理層中。接收器100從第一時鐘域接收數(shù)據(jù),并輸出經(jīng)過處理的的接收數(shù)據(jù)到第二時鐘域。例如,接收器100的一側(cè)經(jīng)由時鐘數(shù)據(jù)恢復(fù)(CDR)從自發(fā)送器(圖未繪示)接收的數(shù)據(jù)中產(chǎn)生恢復(fù)時鐘源,并根據(jù)所產(chǎn)生的恢復(fù)時鐘源將接收數(shù)據(jù)推送(push)到接收器100中,接收器的100另一側(cè)彈出(pop)經(jīng)過處理的接收數(shù)據(jù)到第二時鐘域,第二時鐘域例如為主機(jī)或存儲卡本地的時鐘源。
[0029]解碼器101可以確定接收的數(shù)據(jù)中的控制數(shù)據(jù)單元的類型。例如,在UHS-1I中,控制數(shù)據(jù)單元可以是鏈路符號集(LLS),包括:同步(SYN)、自舉同步(BSYN)、方向切換(DIR)、邏輯空閑(LIDL)、數(shù)據(jù)傳輸邏輯空閑(DIDL)、數(shù)據(jù)突發(fā)開始(SDB)、數(shù)據(jù)突發(fā)結(jié)束(EDB)、分組開始(S0P)、分組結(jié)束(EOP)等。每個LLS具有各自的信號樣式,解碼器101通過LLS的信號樣式來確定其類型。例如,LIDL可以包括兩個符號,第一個符號是逗號(COM) (K28.5),第二個符號可以是從LIDLO (K28.3)和LIDLl (D16.7)中隨機(jī)選擇的符號WHS-1I物理層規(guī)范4.0中詳細(xì)規(guī)定了各種LLS的信號樣式和作用,這里不再贅述。
[0030]計(jì)數(shù)器102可以對特定類型的控制數(shù)據(jù)單元的重復(fù)次數(shù)進(jìn)行計(jì)數(shù)。根據(jù)本發(fā)明的實(shí)施例,當(dāng)控制數(shù)據(jù)單元的類型被解碼器101確定為屬于空閑數(shù)據(jù)單元時,控制器103可以控制計(jì)數(shù)器102對類型被確定為屬于空閑數(shù)據(jù)單元的控制數(shù)據(jù)單元的重復(fù)次數(shù)進(jìn)行計(jì)數(shù)。在UHS-1I中,空閑數(shù)據(jù)單元可以是以下LLS中的至少一個或全部:SYN、DIR、LIDL、和DIDL13S而,這僅僅是示例,本發(fā)明不限于此。此外,根據(jù)實(shí)施例,也可以對除了空閑數(shù)據(jù)單元之外的其他控制數(shù)據(jù)單元的重復(fù)次數(shù)進(jìn)行計(jì)數(shù)。
[0031]當(dāng)該重復(fù)次數(shù)達(dá)到參考值時,控制器103可以從接收數(shù)據(jù)中丟棄至少一個重復(fù)的前述特定類型的控制數(shù)據(jù)單元,并將經(jīng)過處理的接收數(shù)據(jù)存儲在緩沖器104中,以便向第二時鐘域提供。根據(jù)實(shí)施例,緩沖器104可以是彈性緩沖器。由于僅輸入數(shù)據(jù)中特定類型控制數(shù)據(jù)單元的很小一部分被丟棄,可以有效地控制緩沖器104的水位線,以便預(yù)防緩沖器104的滿溢。為了避免影響傳輸信令,可以只丟棄空閑數(shù)據(jù)單元。
[0032]在UHS-1I中,作為空閑數(shù)據(jù)單元的諸如SYN、DIR、LIDL、和DIDL的LLS通常被大量重復(fù)發(fā)送,因此適當(dāng)?shù)貋G棄重復(fù)的LLS不會造成后續(xù)對接收數(shù)據(jù)的譯碼錯誤。本發(fā)明根據(jù)參考值控制丟棄重復(fù)LLS的頻率,使得彈性緩沖器的水位線既不會太高以至于接近滿溢,也不會太低以至于接近