專利名稱:低延時(shí)串行存儲(chǔ)接口的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及通信設(shè)備領(lǐng)域,更具體地,涉及具有低延時(shí)串行存儲(chǔ)接口的設(shè)備 和使用低延時(shí)串行存儲(chǔ)接口的方法。
背景技術(shù):
計(jì)算和通信網(wǎng)絡(luò)通常包括從一個(gè)或多個(gè)源向一個(gè)或多個(gè)目的地傳送或交換數(shù)據(jù) (諸如包)的設(shè)備(例如,網(wǎng)絡(luò)設(shè)備),諸如路由器、防火墻、交換機(jī)、服務(wù)器,或者網(wǎng)關(guān)。網(wǎng) 絡(luò)設(shè)備可在包遍歷網(wǎng)絡(luò)時(shí)在包上操作,諸如通過轉(zhuǎn)發(fā)或過濾基于包的網(wǎng)絡(luò)流量。一些計(jì)算 設(shè)備(例如,個(gè)人計(jì)算機(jī))可與網(wǎng)絡(luò)不相關(guān),并因此可稱為獨(dú)立設(shè)備。這種網(wǎng)絡(luò)設(shè)備和計(jì)算 機(jī)設(shè)備包括存儲(chǔ)器和諸如串行存儲(chǔ)接口的存儲(chǔ)器接口。串行存儲(chǔ)接口需要不同供應(yīng)商之間和跨越通常具有不同輸入/輸出電壓的工藝 技術(shù)的不同代之間的互操作性。為了有助于這種互操作性,利用了交流(AC)耦合存儲(chǔ)接 口。然而,與每條鏈路具有板上AC電容器的芯片之間的傳統(tǒng)串行接口不同,存儲(chǔ)器(例如, 存儲(chǔ)器芯片)及其接口需要設(shè)置為與存儲(chǔ)控制器相鄰(例如,以使通道損耗減到最少),因 此將AC耦合電容器配置在板(例如,與存儲(chǔ)器和存儲(chǔ)控制器相關(guān)的)上是不切實(shí)際的。因 此,AC耦合電容器設(shè)置在芯片上。由于時(shí)鐘數(shù)據(jù)恢復(fù)(CDR)和數(shù)據(jù)依賴直流(DC)基線漂 移,這種AC耦合電容器(例如,設(shè)置在芯片上)的小尺寸限制可以設(shè)置在數(shù)據(jù)流中的連續(xù) 相同數(shù)位(CID)(例如,連續(xù)的“0”或“1”)。因此,串行存儲(chǔ)接口面臨著DC均衡問題和CID問題。如果提供至/自串行存儲(chǔ)接 口的數(shù)據(jù)流不是DC均衡的,那么它將導(dǎo)致長(zhǎng)期積聚的電荷,其將導(dǎo)致DC基線漂移。長(zhǎng)CID 將導(dǎo)致電容器上的電荷儲(chǔ)存問題,其可通過在板上使用較大的電容器來解決。然而,如上所 述,AC耦合電容器必須設(shè)置在芯片上(例如,而不是在板上)并且在尺寸上有限制。長(zhǎng)CID 還會(huì)導(dǎo)致如上所述的時(shí)鐘數(shù)據(jù)恢復(fù)(CDR)問題。串行存儲(chǔ)接口的另一個(gè)問題是傳統(tǒng)異步時(shí) 鐘是與設(shè)置在發(fā)射機(jī)和接收機(jī)之間的串行鏈路一起使用的。由于不同時(shí)鐘機(jī)制(例如,晶 體振蕩器)之間的頻率偏移(例如,百萬(wàn)分之一(PPm))導(dǎo)致相位建立,因而導(dǎo)致額外的延 時(shí)和電路來補(bǔ)償此建立的相位。當(dāng)在數(shù)據(jù)流中存在大量CID時(shí),還存在對(duì)串行鏈路比特誤 碼率的潛在的消極影響。此外,一些具有時(shí)鐘恢復(fù)的串行存儲(chǔ)接口利用發(fā)射機(jī)和接收機(jī)之 間的異步時(shí)鐘,其導(dǎo)致編碼和相關(guān)邏輯的延時(shí)開銷。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個(gè)方面,一種方法可由包括存儲(chǔ)器和存儲(chǔ)控制器的設(shè)備來實(shí)施。 該方法可包括由該設(shè)備將設(shè)置在存儲(chǔ)器的串行接口的一組串行鏈路中的特定串行鏈路指 定為主串行鏈路;由該設(shè)備將其余的串行鏈路指定為從串行鏈路;經(jīng)由主串行鏈路提供經(jīng) 編碼的數(shù)據(jù)流;以及經(jīng)由從串行鏈路提供未經(jīng)編碼的和亂序的數(shù)據(jù)流。根據(jù)本發(fā)明的另一方面,一種設(shè)備可包含包括具有一組串行鏈路的串行接口和邏 輯的存儲(chǔ)器。該邏輯可將該組串行鏈路中的特定串行鏈路指定為主串行鏈路,并將該組其余的串行鏈路指定為從串行鏈路。該邏輯還可經(jīng)由主串行鏈路提供經(jīng)編碼的數(shù)據(jù)流,并可 以經(jīng)由從串行鏈路提供未經(jīng)編碼的和亂序的數(shù)據(jù)流。根據(jù)本發(fā)明的又一方面,一種設(shè)備可包括將同步時(shí)鐘應(yīng)用到設(shè)備的第一部件和第 二部件上的裝置,其中,第一部件包括具有一組串行鏈路的串行接口。該設(shè)備還可包括將該 組串行鏈路中的特定串行鏈路指定為指定串行鏈路的裝置,以及經(jīng)由指定的串行鏈路將經(jīng) 編碼的數(shù)據(jù)流發(fā)送至第二部件或從第二部件接收經(jīng)編碼的數(shù)據(jù)流的裝置。該設(shè)備可進(jìn)一步 包括經(jīng)由該組的其余串行鏈路將未經(jīng)編碼的和亂序的數(shù)據(jù)流發(fā)送至第二部件或從第二部 件接收未經(jīng)編碼的和亂序的數(shù)據(jù)流的裝置。根據(jù)本發(fā)明的再一方面,一種部件可包括具有一組鏈路的接口,以及將該組鏈路 的特定鏈路限定為指定鏈路的邏輯。該邏輯也可將該組中的其余鏈路限定為未指定鏈路, 經(jīng)由指定鏈路提供經(jīng)編碼的數(shù)據(jù)流,并經(jīng)由未指定鏈路提供未經(jīng)編碼的和亂序的數(shù)據(jù)流。
包括在本說明書中并構(gòu)成本說明書的一部分的附圖示出了本文中所描述的一個(gè) 或多個(gè)實(shí)施方式,并連同描述對(duì)這些實(shí)施方式進(jìn)行解釋。在附圖中圖1是本文所描述的系統(tǒng)和/或方法可在其中實(shí)現(xiàn)的示例性網(wǎng)絡(luò)的圖;圖2是在圖1中描述的設(shè)備的示例性部件的圖;圖3是在圖1中描述的設(shè)備的示例性部分的部件之間的示例性相互作用的圖;圖4A至圖4C是在圖1中描述的設(shè)備的另一示例性部分的部件之間的示例性相互 作用的圖;以及圖5和圖6是提供根據(jù)本文描述的實(shí)施例的低延時(shí)串行接口的示例性處理過程的 流程圖。
具體實(shí)施例方式下面的詳細(xì)描述參照附圖。不同圖中相同的參考標(biāo)號(hào)標(biāo)識(shí)相同或相似的元件。除 此之外,下面的詳細(xì)描述不限制本發(fā)明。本文描述的實(shí)施例可以提供利用時(shí)鐘恢復(fù)、換序數(shù)據(jù)、在發(fā)射機(jī)和接收機(jī)之間具 有同步時(shí)鐘的芯片上的AC耦合接口、以及低延時(shí)數(shù)據(jù)編碼的系統(tǒng)和/或方法。該系統(tǒng)和/ 或方法可以確保具有改進(jìn)的時(shí)鐘數(shù)據(jù)恢復(fù)帶寬和全部串行鏈路BER的DC均衡數(shù)據(jù)模式和 確定性CID。該系統(tǒng)和/或方法可使串行接口嵌入在存儲(chǔ)器中,而不是設(shè)置在與存儲(chǔ)器(例 如,由于板的尺寸約束,其會(huì)受到抑制)相關(guān)聯(lián)的板上。此外,該系統(tǒng)和/或方法可將同步 系統(tǒng)時(shí)鐘分配給存儲(chǔ)控制器和存儲(chǔ)器,這可以減少串行接口的總延時(shí)。示例性網(wǎng)絡(luò)圖1是本文所描述的系統(tǒng)和/或方法可在其中實(shí)施的示例性網(wǎng)絡(luò)100的示圖。如 所示,網(wǎng)絡(luò)100可以包括與網(wǎng)絡(luò)120連接的一個(gè)或多個(gè)設(shè)備110,和/或一個(gè)或多個(gè)獨(dú)立的 設(shè)備110(即,不與網(wǎng)絡(luò)120連接)。網(wǎng)絡(luò)100的部件可以經(jīng)由有線和/或無(wú)線連接或鏈路 進(jìn)行互連。為了簡(jiǎn)單起見,在圖1中示出了兩個(gè)設(shè)備Iio和單個(gè)網(wǎng)絡(luò)120。實(shí)際上,可存在 多個(gè)設(shè)備110和/或網(wǎng)絡(luò)120。此外,在一些情況下,網(wǎng)絡(luò)100的一個(gè)或多個(gè)部件可以執(zhí)行 描述為由網(wǎng)絡(luò)100的另一個(gè)或多個(gè)部件執(zhí)行的一個(gè)或多個(gè)任務(wù)。
在一個(gè)示例性實(shí)施方式中,設(shè)備110可以包括網(wǎng)絡(luò)設(shè)備,諸如網(wǎng)關(guān)、路由器、交換 機(jī)、防火墻、網(wǎng)絡(luò)接口卡(NIC)、集線器、橋接器、代理服務(wù)器、光分插復(fù)用器(0ADM),或一些 其它類型的處理和/或傳送通信量的設(shè)備(即,能夠經(jīng)由網(wǎng)絡(luò)120將信息發(fā)送至其他設(shè)備 110和/或從其他設(shè)備110接收信息的設(shè)備)。在另一個(gè)實(shí)施方式中,設(shè)備110可包括獨(dú)立 的設(shè)備(例如,不連接至網(wǎng)絡(luò)120),諸如膝上型計(jì)算機(jī)、個(gè)人計(jì)算機(jī)、工作站、或其他類型的 計(jì)算設(shè)備。網(wǎng)絡(luò)120可以包括任意類型的一個(gè)或多個(gè)網(wǎng)絡(luò)。例如,網(wǎng)絡(luò)120可以包括局域網(wǎng) (LAN)、廣域網(wǎng)(WAN)、城域網(wǎng)(MAN)、電話網(wǎng)(諸如公共交換電話網(wǎng)(PSTN)、公共陸地移動(dòng)網(wǎng) (PLMN)、無(wú)線網(wǎng))、內(nèi)聯(lián)網(wǎng)、互聯(lián)網(wǎng)、基于光纖的網(wǎng)、或者網(wǎng)絡(luò)的組合。雖然圖1示出了網(wǎng)絡(luò)100的示例性部件,但是在其他的實(shí)施方式中,與在圖1中描 述的部件相比,網(wǎng)絡(luò)100可包括更少的部件、不同的部件、配置不同的部件、或附加的部件。示例性網(wǎng)絡(luò)設(shè)備的配置圖2示出了可對(duì)應(yīng)于一個(gè)設(shè)備110的設(shè)備200的示例性部件的圖。如圖所示,設(shè) 備200可包括總線210、處理單元220、存儲(chǔ)器230、輸入設(shè)備對(duì)0、輸出設(shè)備250、和通信接口 260??偩€210可以允許在設(shè)備200的部件之間進(jìn)行通信。處理單元220可以包括解釋 和執(zhí)行指令的一個(gè)或多個(gè)處理器或微處理器。在其他實(shí)施方式中,處理單元220可被實(shí)施 為或包括一個(gè)或多個(gè)專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)等。如圖2進(jìn)一步所示,接口 225可以設(shè)置在處理單元220和存儲(chǔ)器230之間。接口 225可以包括使處理單元220與存儲(chǔ)器230之間能夠通信的光、有線、或無(wú)線連接。存儲(chǔ)器230可以包括存儲(chǔ)由處理單元220執(zhí)行的信息和指令的隨機(jī)存取存儲(chǔ)器 (RAM)或另一類型的動(dòng)態(tài)存儲(chǔ)設(shè)備、存儲(chǔ)處理單元220的靜態(tài)信息和指令的只讀存儲(chǔ)器 (ROM)或另一類型的靜態(tài)存儲(chǔ)設(shè)備、和/或用于存儲(chǔ)信息和/或指令的某種其它類型的磁或 光記錄介質(zhì)及其相應(yīng)的驅(qū)動(dòng)器。輸入設(shè)備240可以包括允許操作員將信息輸入至設(shè)備200的設(shè)備,諸如鍵盤、小鍵 盤、鼠標(biāo)、筆、麥克風(fēng)、一個(gè)或多個(gè)生物測(cè)定機(jī)構(gòu)等。輸出設(shè)備250可以包括將信息輸出至操 作員的設(shè)備,諸如顯示器、揚(yáng)聲器等。通信接口 260可以包括使設(shè)備200能夠與其它設(shè)備和/或系統(tǒng)進(jìn)行通信的任何與 收發(fā)器類似的機(jī)構(gòu)。例如,通信接口 260可以包括與其他設(shè)備(諸如其它設(shè)備110)進(jìn)行通 信的機(jī)構(gòu)。如本文描述的,響應(yīng)于處理單元220執(zhí)行包含在諸如存儲(chǔ)器230的計(jì)算機(jī)可讀介 質(zhì)中的軟件指令,設(shè)備200可以執(zhí)行特定操作。計(jì)算機(jī)可讀介質(zhì)可以限定為物理的或邏輯 的存儲(chǔ)設(shè)備。邏輯存儲(chǔ)設(shè)備可以包括在單一物理存儲(chǔ)設(shè)備中或者遍布多個(gè)物理存儲(chǔ)設(shè)備中 的存儲(chǔ)空間??梢越?jīng)由通信接口 260從另一計(jì)算機(jī)可讀介質(zhì)或從另一設(shè)備將軟件指令讀入 到存儲(chǔ)器230中。包含在存儲(chǔ)器230中的軟件指令可以使處理單元220執(zhí)行本文所描述的 處理??蛇x地,硬件電路可用于替換或者結(jié)合軟件指令來執(zhí)行本文所描述的處理。因此,本 文所描述的實(shí)施不局限于硬件電路和軟件的任何特定的組合。盡管圖2示出了設(shè)備200的示例性部件,在其它實(shí)施中,與圖2中描述的設(shè)備相比 較,設(shè)備200可以包括更少的、不同的、不同配置的、或附加的部件??蛇x地,或此外,設(shè)備200的一個(gè)或多個(gè)部件可以執(zhí)行描述為由設(shè)備200的一個(gè)或多個(gè)其它部件所執(zhí)行的一個(gè)或 多個(gè)其它任務(wù)。 示例性存儲(chǔ)器/存儲(chǔ)接口配置圖3是在設(shè)備110的示例性部分300的部件之間的示例性相互作用的圖。如圖所 示,設(shè)備110的部分300可以包括存儲(chǔ)控制器310、一個(gè)或多個(gè)存儲(chǔ)器320(例如,和相關(guān)聯(lián) 的串行接口 325)、時(shí)鐘330、以及時(shí)鐘分配器340。設(shè)備110的部分300的部件可經(jīng)由有線 和/或無(wú)線連接互連。在一個(gè)示例性實(shí)施例中,設(shè)備110可包括一個(gè)或多個(gè)部分300。存儲(chǔ)控制器310可以包括管理發(fā)送到和/或來自存儲(chǔ)器320的數(shù)據(jù)流的數(shù)字電 路。存儲(chǔ)控制器310可以是單獨(dú)的設(shè)備(或芯片)或可以被集成到另一個(gè)設(shè)備(或芯片), 諸如微處理器。存儲(chǔ)控制器310可以經(jīng)由串行接口 325與存儲(chǔ)器320進(jìn)行通信。在一個(gè)實(shí) 例中,存儲(chǔ)控制器310可以包括讀和寫動(dòng)態(tài)RAM(DRAM)以及刷新DRAM的邏輯。每個(gè)存儲(chǔ)器320可以包括存儲(chǔ)用于由處理器(例如,處理單元220)執(zhí)行的信息和 指令的RAM或另一類型的動(dòng)態(tài)存儲(chǔ)設(shè)備;存儲(chǔ)用于由處理器(例如,處理單元220)執(zhí)行的 靜態(tài)信息和指令的ROM或另一類型的靜態(tài)存儲(chǔ)設(shè)備;和/或用于存儲(chǔ)信息和/或指令的某 種其他類型的磁或光記錄介質(zhì)及其相應(yīng)的驅(qū)動(dòng)器。在一個(gè)示例性實(shí)施例中,存儲(chǔ)器320可 以對(duì)應(yīng)于設(shè)備200的存儲(chǔ)器230(圖幻。如圖3所示,每個(gè)存儲(chǔ)器320可以包括相應(yīng)的串 行接口 325。在存儲(chǔ)器320上(例如,“在芯片上”)設(shè)置串行接口 325可以改善存儲(chǔ)器320 和串行接口 325的延時(shí),可以提高設(shè)備110的功率,可以增加在設(shè)備110中的可用空間等。串行接口 325可以包括提供到和/或來自存儲(chǔ)器控制器310的串行通信(例如,每 次按順序發(fā)送一位數(shù)據(jù))的接口。在一個(gè)實(shí)例中,串行接口 325可以包括AC耦合接口(例 如,具有AC耦合電容器)。在另一個(gè)實(shí)例中,串行接口 325可以包括使數(shù)據(jù)流能夠提供至和 /或接收自存儲(chǔ)控制器310的一個(gè)或多個(gè)串行鏈路(例如,發(fā)射機(jī)和接收機(jī)對(duì))。在一個(gè)示例性實(shí)施例中,存儲(chǔ)器320(例如,和串行接口 32 可被設(shè)置為與存儲(chǔ)控 制器310相鄰,從而可將短通道(如圖3所示)設(shè)置在存儲(chǔ)控制器310和存儲(chǔ)器320(例 如,和串行接口 32 之間。短通道可以減小存儲(chǔ)控制器310和存儲(chǔ)器320之間的插入損耗 和回程損耗;可以將存儲(chǔ)控制器310和存儲(chǔ)器320之間所需的發(fā)送和接收均衡量減到最少; 可以減少與串行接口 325相關(guān)的延時(shí)。以下將結(jié)合例如圖4A和圖4B提供存儲(chǔ)器320和串 行接口 325的進(jìn)一步細(xì)節(jié)。時(shí)鐘330可以包括產(chǎn)生時(shí)鐘信號(hào)350的設(shè)備。在一個(gè)實(shí)例中,時(shí)鐘330可以包括 晶體振蕩器(例如,使用壓電材料的振動(dòng)晶體的機(jī)械共振來產(chǎn)生具有精確頻率的電信號(hào)的 電子電路)。時(shí)鐘信號(hào)350可以包括在高和低狀態(tài)之間振蕩的信號(hào),可以用于協(xié)調(diào)存儲(chǔ)控制 器310和存儲(chǔ)器320的工作。在一個(gè)實(shí)例中,時(shí)鐘信號(hào)350可以包括具有精確頻率的電信號(hào)。時(shí)鐘分配器340可以包括從時(shí)鐘330接收時(shí)鐘信號(hào)350并提供存儲(chǔ)控制器310和 存儲(chǔ)器320上的同步時(shí)鐘360(例如,基于時(shí)鐘信號(hào)350)的設(shè)備。提供存儲(chǔ)控制器310和 存儲(chǔ)器320上的同步時(shí)鐘360可減輕由存儲(chǔ)控制器310和存儲(chǔ)器320之間的頻率偏移(例 如,ppm)和建立的相關(guān)相位引起的延時(shí)影響。同步時(shí)鐘360也可以減少存儲(chǔ)器320(例如, 和/或串行接口 325)所需的額外管腳、額外功率和額外面積的需要。盡管圖3示出了設(shè)備110的部分300的示例性部件,在其它實(shí)施例中,與圖3中描述的部件相比較,設(shè)備110可以包括更少的部件、不同的部件、不同配置的部件、或附加的 部件。例如,盡管圖3示出了三個(gè)存儲(chǔ)器320,但在其它實(shí)施例中,設(shè)備110可包括三個(gè)以上 存儲(chǔ)器320??蛇x地,或此外,設(shè)備110的一個(gè)或多個(gè)部件可以執(zhí)行描述為由設(shè)備110的一 個(gè)或多個(gè)其它部件所執(zhí)行的一個(gè)或多個(gè)其它任務(wù)。圖4A至圖4C是設(shè)備110的另一示例性部分400的部件之間的示例性相互作用的 圖。如圖所示,部分400可以包括存儲(chǔ)控制器310、單個(gè)存儲(chǔ)器320和單個(gè)串行接口 325。存 儲(chǔ)控制器310、存儲(chǔ)器320、和串行接口 325可以包括以上結(jié)合例如圖3所描述的特征。如圖 4A至圖4C進(jìn)一步所示,串行接口 325可以包括多個(gè)串行鏈路410-0至410-7(統(tǒng)稱為“串 行鏈路410”,以及在某些情況下,單獨(dú)稱為“串行鏈路410”)、存儲(chǔ)器320可以包括相位信 息分配器420。由于在串行接口可以解釋代碼之前串行接口必須等待全部代碼到達(dá),所以對(duì)提供 至或自串行接口(例如,串行接口 325)的數(shù)據(jù)進(jìn)行編碼引入了額外的延時(shí)。例如,對(duì)于每 個(gè)串行鏈路410,如果鏈路速度為每秒十(10)吉比特((ibps),每位花費(fèi)0. 1納秒(ns)在存 儲(chǔ)控制器310和存儲(chǔ)器320之間移動(dòng)。使用8B/10B編碼方案,每個(gè)代碼是十(10)位,所以 在串行鏈路410可以解釋代碼之前串行鏈路410需要等待一納秒以接收全部代碼。使用 64B/66B編碼方案,在串行鏈路410可以解釋代碼之前串行鏈路410需要等待6. 6納秒以接 收全部代碼。5. 6ns (即,6. 6ns 一 Ins)的差表示串行接口 325使用64B/66B編碼方案相對(duì) 于8B/10B編碼方案將經(jīng)歷的額外延時(shí)。另一方面,8B/10B編碼方案在“有效位”與“總的 發(fā)送位”的比率方面只有百分之八十(80%)的效率,而64B/66B編碼方案具有大約百分之 九十七(97%)的相應(yīng)效率。因此,有效的編碼方案引入額外延時(shí),但低延時(shí)編碼方案具有 低效率。本文所描述的實(shí)施例可在八條串行鏈路410中的一條上提供低延時(shí)編碼(例如, 8B/10B編碼)。在一個(gè)示例性實(shí)施例中,如結(jié)合圖4A所描述,可指定一條串行鏈路為主串 行鏈路,而指定其余的串行鏈路410為從串行鏈路。主串行鏈路可提供低延時(shí)編碼。在另 一示例性實(shí)施例中,如結(jié)合圖4B和圖4C所描述,每條串行鏈路410可以順序地用于提供低 延時(shí)編碼。該實(shí)施例可以提供大約97. 5% (S卩,[7X10(未經(jīng)編碼的串行鏈路)+8(經(jīng)編碼 的串行鏈路)]/80)的總效率(例如,在八條串行鏈路410上),同時(shí)可以保持一納秒的延時(shí) (例如,如果使用8B/10B編碼)。參照?qǐng)D4A,串行鏈路410可以包括使數(shù)據(jù)流能夠提供至和/或接收自存儲(chǔ)控制器 310的發(fā)射機(jī)和接收機(jī)對(duì)。在示例性實(shí)施例中,串行鏈路410可以包括串行化器/并行化器 (SerDes)。krDes可以包括將并行數(shù)據(jù)轉(zhuǎn)化為串行數(shù)據(jù)和反之亦然的集成電路(IC)收發(fā) 機(jī)。krDes的發(fā)射機(jī)部分可以包括并串行轉(zhuǎn)換器,SerDes的接收機(jī)部分可包括串并行轉(zhuǎn)換 器。krDes能夠有助于在經(jīng)過串行流的兩點(diǎn)之間發(fā)射并行數(shù)據(jù),這可以減少串行接口 325 所需的數(shù)據(jù)路徑和連接管腳或?qū)Ь€的數(shù)量。在一個(gè)實(shí)例中,串行鏈路410可以包括在串行 化數(shù)據(jù)之前將每個(gè)數(shù)據(jù)字節(jié)映射至十位代碼的8B/10B SerDes0 8B/10B krDes的并行化 器可利用參考時(shí)鐘來監(jiān)控來自比特流的恢復(fù)時(shí)鐘。相位信息分配器420可以包括將相位信息430提供至串行鏈路410的設(shè)備。相位 信息430可以包括用于校準(zhǔn)和/或更新與串行鏈路410-1至410-7相關(guān)的⑶P電路的相位 以提供數(shù)據(jù)流450 (例如,沒有最大CID的限制)的正確操作的信息。
如圖4A進(jìn)一步所示,串行接口 325(例如,或存儲(chǔ)器320)可以包括將一條串行鏈 路410(例如,串行鏈路410-0)指定為主串行鏈路,和將其余的串行鏈路410(例如,串行鏈 路斗川-!至虹^了)指定為從串行鏈路的邏輯。主串行鏈路410-0可以包括將經(jīng)編碼的數(shù)據(jù) 流發(fā)送至存儲(chǔ)控制器310或接收來自存儲(chǔ)控制器310的經(jīng)編碼的數(shù)據(jù)流的邏輯??梢允褂?4B/5B編碼方案、7B/8B編碼方案、8B/10B編碼方案、9B/10B編碼方案、31B/32B編碼方案、 64B/66B編碼方案、或其它任何在數(shù)據(jù)流中提供亂序數(shù)據(jù)、DC均衡、和低CID的編碼方案對(duì) 數(shù)據(jù)流440進(jìn)行編碼。如圖4A進(jìn)一步所示,由于主串行鏈路410-0可以具有良好的CID,相位信息分配器 420可以包括從主串行鏈路410-0提取相位信息430,并將相位信息430分配至從串行鏈路 410-1至410-7的邏輯。從串行鏈路410-1至410-7可以包括將未經(jīng)編碼的和亂序的數(shù)據(jù)流450發(fā)送至存 儲(chǔ)控制器310或從存儲(chǔ)控制器310接收未經(jīng)編碼的和亂序的數(shù)據(jù)流450的邏輯。數(shù)據(jù)流 450可以是未經(jīng)編碼的,可以是亂序的,從而可以隨機(jī)配置數(shù)據(jù)流450中的數(shù)據(jù)。在一個(gè)示例性實(shí)施例中,串行接口 325(例如,或存儲(chǔ)器320)可以包括提供定時(shí) 器、確定定時(shí)器是否已期滿、以及當(dāng)定時(shí)器期滿時(shí)不將特定串行鏈路410(例如,串行鏈路 410-0)指定為主串行鏈路的邏輯。串行接口 325(例如,或存儲(chǔ)器320)可以進(jìn)一步包括將 另一串行鏈路410指定為主串行鏈路并重新啟動(dòng)定時(shí)器的邏輯。例如,串行接口 325(例如, 或存儲(chǔ)器320)可以不將串行鏈路410-0指定為主串行鏈路,可以將串行鏈路410-1指定為 主串行鏈路。主串行鏈路410-1可以將經(jīng)編碼的數(shù)據(jù)流440發(fā)送至存儲(chǔ)控制器310或從存 儲(chǔ)控制器310接收經(jīng)編碼的數(shù)據(jù)流440,而從串行鏈路410-0和410-2至410-7可以將未經(jīng) 編碼的和亂序的數(shù)據(jù)流450發(fā)送至存儲(chǔ)控制器310或從存儲(chǔ)控制器310接收未經(jīng)編碼的和 亂序的數(shù)據(jù)流450。如圖4B所示,存儲(chǔ)器320可以不包括相位信息分配器420,串行接口 325(例如, 或存儲(chǔ)器320)可以包括順序旋轉(zhuǎn)指定的串行鏈路410(例如,圖4B中的串行鏈路410-0) 的邏輯。指定的串行鏈路410-0可以包括將經(jīng)編碼的數(shù)據(jù)流440發(fā)送至存儲(chǔ)控制器310或 從存儲(chǔ)控制器310接收經(jīng)編碼的數(shù)據(jù)流440的邏輯。而其余的串行鏈路(例如,圖4B中未 指定的串行鏈路410-1至410-7)可以包括將未經(jīng)編碼的和亂序的數(shù)據(jù)流450發(fā)送至存儲(chǔ) 控制器310或從存儲(chǔ)控制器310接收未經(jīng)編碼的和亂序的數(shù)據(jù)流450的邏輯。在一個(gè)實(shí)例 中,可以以特定的連續(xù)順序改變指定的串行鏈路410。如圖4C所示,在另一時(shí)間點(diǎn)串行鏈路 410-1可以是指定的串行鏈路,而串行鏈路410-0和410-2至410-7可以是未指定的串行鏈 路410。指定的串行鏈路410-1可以包括將經(jīng)編碼的數(shù)據(jù)流440發(fā)送至存儲(chǔ)控制器310或 從存儲(chǔ)控制器310接收經(jīng)編碼的數(shù)據(jù)流440的邏輯。而未指定的串行鏈路410-0和410-2 至410-7可經(jīng)包括將未經(jīng)編碼的和亂序的數(shù)據(jù)流450發(fā)送至存儲(chǔ)控制器310或從存儲(chǔ)控制 器310接收未經(jīng)編碼的和亂序的數(shù)據(jù)流450的邏輯。例如,如果使用8B/10B編碼,當(dāng)將數(shù)據(jù)的前十位發(fā)送至串行鏈路410時(shí)(例如,在 第一時(shí)間段),可以對(duì)串行鏈路410-0(圖4B)上的數(shù)據(jù)執(zhí)行編碼。當(dāng)將數(shù)據(jù)的第二個(gè)十位 發(fā)送至串行鏈路410時(shí)(例如,在第二時(shí)間段),可以對(duì)串行鏈路410-1(圖4B)上的數(shù)據(jù)執(zhí) 行編碼??梢灾貜?fù)這個(gè)過程,直到將八十(80)位數(shù)據(jù)發(fā)送至串行鏈路410,并且可以再次返 回至串行鏈路410-0(圖4B)進(jìn)行編碼。因此,每條串行鏈路410可以包括每八十(80)位數(shù)據(jù)的編碼字。因?yàn)槊總€(gè)編碼字可具有確定性CID,每條串行鏈路可具有大約八十(80)位 以上數(shù)據(jù)的確定性最大CID。使用這樣的配置,串行鏈路410能夠獨(dú)自執(zhí)行CDR而不需分配 相位信息430。此外,通過旋轉(zhuǎn)編碼字,可以維持串行接口 325的效率和延時(shí)。圖4A至圖4C中所示的配置由于每次只有單個(gè)數(shù)據(jù)流需要編碼和解碼(例如,而 不是所有數(shù)據(jù)流),因此可以增加可用帶寬,并將與串行接口 325 (例如,和/或存儲(chǔ)器320) 相關(guān)的延時(shí)減到最小。此外,圖4A至圖4C中所示的配置可以限制CID的最大數(shù)量,并不會(huì) 有延時(shí)開銷。盡管圖4A至圖4C示出了設(shè)備110的部分400的示例性部件,但在其它實(shí)施例中, 與圖4A至圖4C中示出的配置相比較,設(shè)備110可以包括更少的部件、不同的部件、不同配 置的部件、或附加的部件。例如,盡管圖4A至圖4C示出了具有八條串行鏈路410的串行接 口 325,但在其它實(shí)施例中,串行端口 325可以包括多于或少于八條的串行鏈路410。在另一 實(shí)例中,串行鏈路410可以設(shè)置在存儲(chǔ)控制器310中,存儲(chǔ)控制器310可以以與存儲(chǔ)器320 相似的方式運(yùn)行。即,結(jié)合圖4A至圖4C所示的相互作用可以在兩個(gè)方向(例如,從存儲(chǔ)控 制器310至存儲(chǔ)器320和反之亦然)上工作??蛇x地,或此外,設(shè)備110的一個(gè)或多個(gè)部件 可以執(zhí)行描述為由設(shè)備110的一個(gè)或多個(gè)其它部件所執(zhí)行的一個(gè)或多個(gè)其它任務(wù)。示例性處理過程圖5和圖6是根據(jù)本文描述的實(shí)施例的提供低延時(shí)串行接口的示例性處理過程 500的流程圖。在一個(gè)實(shí)施例中,可以通過設(shè)備110執(zhí)行處理過程500。在另一個(gè)實(shí)施例中, 可以通過設(shè)備Iio的一個(gè)或多個(gè)部件執(zhí)行一些或所有處理過程500。如圖5所示,處理過程500可以包括將同步時(shí)鐘應(yīng)用在設(shè)置在設(shè)備中的存儲(chǔ)器和 存儲(chǔ)控制器上(塊510),將設(shè)置在存儲(chǔ)器中的串行接口的多條串行鏈路的特定串行鏈路指 定為主串行鏈路(塊520),以及將其余的多條串行鏈路指定為從串行鏈路(塊530)。例如, 在以上結(jié)合圖3和圖4A描述的實(shí)施例中,時(shí)鐘分配器340可以從時(shí)鐘330接收時(shí)鐘信號(hào), 并可在存儲(chǔ)控制器310和存儲(chǔ)器320上提供同步時(shí)鐘360 (例如,基于時(shí)鐘信號(hào)350)。串行 接口 325(例如,或存儲(chǔ)器320)可以包括將一條串行鏈路410(例如,串行鏈路410-0)指定 為主串行鏈路,以及將其余串行鏈路410(例如,串行鏈路410-1至410-7)指定為從串行鏈 路的邏輯。如圖5進(jìn)一步所示,處理過程500可以包括經(jīng)由主串行鏈路將經(jīng)編碼的數(shù)據(jù)流發(fā) 送至存儲(chǔ)控制器或從存儲(chǔ)控制器接收經(jīng)編碼數(shù)據(jù)流(塊M0),以及,經(jīng)由從串行鏈路,將未 經(jīng)編碼的和亂序的數(shù)據(jù)流發(fā)送至存儲(chǔ)控制器或從存儲(chǔ)控制器接收未經(jīng)編碼的和亂序的數(shù) 據(jù)流(塊550)。例如,在以上結(jié)合圖4A描述的實(shí)施例中,主串行鏈路410-0可以包括將經(jīng) 編碼的數(shù)據(jù)流440發(fā)送至存儲(chǔ)控制器310或從存儲(chǔ)控制器310接收經(jīng)編碼的數(shù)據(jù)流440的 邏輯??梢允褂?B/10B編碼方案、64B/66B編碼方案、或其它任何在數(shù)據(jù)流中提供亂序的數(shù) 據(jù)、DC均衡、和低CID的編碼方案對(duì)數(shù)據(jù)流440進(jìn)行編碼。從串行鏈路410-1至410-7可 以包括將未經(jīng)編碼的和亂序的數(shù)據(jù)流450發(fā)送至存儲(chǔ)控制器310或從存儲(chǔ)控制器310接收 未經(jīng)編碼的和亂序的數(shù)據(jù)流450的邏輯。數(shù)據(jù)流450可以是未經(jīng)編碼的,還可以是亂序的, 從而可以隨機(jī)配置數(shù)據(jù)流450中的數(shù)據(jù)。處理過程塊520可以包括在圖6中所描述的處理過程塊。如圖6所示,處理過程 塊520可以包括確定定時(shí)器是否已期滿(塊600),當(dāng)定時(shí)器期滿時(shí)不將特定串行鏈路指定為主串行鏈路(塊610),將多條串行鏈路的另一串行鏈路指定為主串行鏈路,并重新啟動(dòng) 定時(shí)器(塊630)。例如,在以上結(jié)合圖4A描述的實(shí)施例中,串行接口 325(例如,或存儲(chǔ)器 320)可以包括提供定時(shí)器、確定定時(shí)器是否已期滿的邏輯、以及當(dāng)定時(shí)器期滿時(shí)不將特定 的串行鏈路410(例如,串行鏈路410-0)指定為主串行鏈路的邏輯。串行接口 325(例如, 或存儲(chǔ)器320)可以進(jìn)一步包括將另一串行鏈路410指定為主串行鏈路并重新啟動(dòng)定時(shí)器 的邏輯。串行接口 325(例如,或存儲(chǔ)器320)可以不將串行鏈路410-0指定為主串行鏈路, 并可以將串行鏈路410-1指定為主串行鏈路。結(jié)論本文描述的實(shí)施例可提供利用時(shí)鐘恢復(fù)、亂序數(shù)據(jù)、在發(fā)射機(jī)和接收機(jī)之間具有 同步時(shí)鐘的芯片上的AC耦合接口、以及低延時(shí)數(shù)據(jù)編碼的系統(tǒng)和/或方法。該系統(tǒng)和/或 方法可以利用改進(jìn)的時(shí)鐘數(shù)據(jù)恢復(fù)帶寬和全部串行鏈路BER確保DC均衡數(shù)據(jù)模式以及確 定性CID。該系統(tǒng)和/或方法可以使串行接口嵌入在存儲(chǔ)器中,而不是設(shè)置在與存儲(chǔ)器(例 如,由于板的尺寸約束,其會(huì)受限制)相關(guān)的板上。此外,該系統(tǒng)和/或方法可以將同步系 統(tǒng)時(shí)鐘分配至存儲(chǔ)控制器和存儲(chǔ)器,者可以減少串行接口的總延時(shí)。以上實(shí)施例的描述提供了說明和描述,但并非旨在窮舉,或?qū)l(fā)明限制于所公開 的精確形式??梢愿鶕?jù)上述教導(dǎo)進(jìn)行修改和變化,或可以從本發(fā)明的實(shí)踐獲得修改和變化。例如,雖然以上描述了串行存儲(chǔ)接口,但本文描述的實(shí)施例可以應(yīng)用于利用串行 接口或光接口的任何設(shè)備或設(shè)備的部件。此外,本文所描述的實(shí)施例可應(yīng)用于基于光、有線 和/或無(wú)線的接口。例如,雖然參照?qǐng)D5和圖6已描述了一系列塊,在其它實(shí)施例中可以更改塊的順 序。此外,可以并行執(zhí)行非依賴性的塊。顯然如上所述的示例性方面可以在圖中所示的實(shí)施方式中以軟件、固件和硬件的 多種不同形式實(shí)現(xiàn)。用于實(shí)現(xiàn)這些方面的實(shí)際軟件代碼或?qū)iT的控制硬件不應(yīng)構(gòu)成限制。 因此,沒有參照特定的軟件代碼描述該方面的操作和行為——這應(yīng)當(dāng)被理解為基于本文的 描述可設(shè)計(jì)軟件和控制硬件以實(shí)現(xiàn)該方面。此外,本文所描述的一個(gè)或多個(gè)實(shí)施例可經(jīng)由執(zhí)行一個(gè)或多個(gè)功能的“邏輯”來提 供。本文所使用的術(shù)語(yǔ)“邏輯”可以包括諸如ASIC或FPGA的硬件,或硬件和軟件的組合。盡管在權(quán)利要求中陳述了和/或在說明書中公開了特征的特定組合,但是這些組 合并非旨在限制本發(fā)明。事實(shí)上,這些特征中的許多特征可以以權(quán)利要求書中沒有具體陳 述和/或說明書中沒有具體公開的方式組合。除非如這樣明確描述,本申請(qǐng)中所使用的元素、過程或指令都不應(yīng)解釋為對(duì)本發(fā) 明是關(guān)鍵的或必需的。同時(shí),本文所使用的冠詞“一(a)”意旨包括一個(gè)或多個(gè)項(xiàng)目。當(dāng)只 包括一個(gè)項(xiàng)目時(shí),使用術(shù)語(yǔ)“一個(gè)(one)”或者類似的語(yǔ)言。此外,除非另有明確聲明,短語(yǔ) “基于”意旨“至少部分基于”。
權(quán)利要求
1.一種由包括存儲(chǔ)器和存儲(chǔ)控制器的設(shè)備實(shí)施的方法,所述方法包括由所述設(shè)備將設(shè)置在所述存儲(chǔ)器中的串行接口的多條串行鏈路中的特定串行鏈路指 定為主串行鏈路;由所述設(shè)備將其余的所述多條串行鏈路指定為從串行鏈路; 經(jīng)由所述主串行鏈路提供經(jīng)編碼的數(shù)據(jù)流;以及 經(jīng)由所述從串行鏈路提供未經(jīng)編碼的和亂序的數(shù)據(jù)流。
2.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括 將同步時(shí)鐘應(yīng)用到所述存儲(chǔ)器和所述存儲(chǔ)控制器上。
3.根據(jù)權(quán)利要求1所述的方法,其中,經(jīng)由所述主串行鏈路提供經(jīng)編碼的數(shù)據(jù)流包括 以下步驟之一經(jīng)由所述主串行鏈路將所述經(jīng)編碼的數(shù)據(jù)流發(fā)送至所述存儲(chǔ)控制器,或者 經(jīng)由所述主串行鏈路從所述存儲(chǔ)控制器接收所述經(jīng)編碼的數(shù)據(jù)流。
4.根據(jù)權(quán)利要求1所述的方法,其中,經(jīng)由所述從串行鏈路提供未經(jīng)編碼的和亂序的 數(shù)據(jù)流包括以下步驟之一經(jīng)由所述從串行鏈路將所述未經(jīng)編碼的和亂序的數(shù)據(jù)流發(fā)送至所述存儲(chǔ)控制器,或者 經(jīng)由所述從串行鏈路從所述存儲(chǔ)控制器接收所述未經(jīng)編碼的和亂序的數(shù)據(jù)流。
5.根據(jù)權(quán)利要求1所述的方法,指定特定串行鏈路包括 確定與所述主串行鏈路相關(guān)聯(lián)的定時(shí)器是否已期滿;當(dāng)所述定時(shí)器期滿時(shí)不將所述特定串行鏈路指定為所述主串行鏈路; 將所述多條串行鏈路中的另一串行鏈路指定為所述主串行鏈路;以及 重啟所述定時(shí)器。
6.根據(jù)權(quán)利要求5所述的方法,其中以預(yù)定順序設(shè)置所述多條串行鏈路,以及基于所述預(yù)定順序?qū)⒘硪粋€(gè)串行鏈路指定為所述主串行鏈路。
7.根據(jù)權(quán)利要求1所述的方法,其中,所述經(jīng)編碼的數(shù)據(jù)流是經(jīng)由在數(shù)據(jù)流中提供亂 序數(shù)據(jù)、直流(DC)均衡、和低連續(xù)相同數(shù)位(CID)的編碼方案編碼的。
8.根據(jù)權(quán)利要求1所述的方法,其中,所述多條串行鏈路中的每條包括串行化器/并行 化器(SerDes)。
9.一種設(shè)備,包括 存儲(chǔ)器,其包括具有多條串行鏈路的串行接口,用于將所述多條串行鏈路中的特定串行鏈路指定為主串行鏈路的裝置; 用于將其余的所述多條串行鏈路指定為從串行鏈路的裝置; 用于經(jīng)由所述主串行鏈路提供經(jīng)編碼的數(shù)據(jù)流的裝置;以及 用于經(jīng)由所述從串行鏈路提供未經(jīng)編碼和亂序的數(shù)據(jù)流的裝置。
10.根據(jù)權(quán)利要求9所述的設(shè)備,進(jìn)一步包括 連接至所述串行接口的存儲(chǔ)控制器;其中,所述存儲(chǔ)器進(jìn)一步包括將同步時(shí)鐘應(yīng)用到所述存儲(chǔ)器和所述存儲(chǔ)控制器上的裝
11.根據(jù)權(quán)利要求10所述的設(shè)備,其中,所述存儲(chǔ)器進(jìn)一步包括以下之一用于經(jīng)由所述主串行鏈路將所述經(jīng)編碼的數(shù)據(jù)流發(fā)送至所述存儲(chǔ)控制器的裝置,或者 用于經(jīng)由所述主串行鏈路從所述存儲(chǔ)控制器接收所述經(jīng)編碼的數(shù)據(jù)流的裝置。
12.根據(jù)權(quán)利要求10所述的設(shè)備,其中,所述存儲(chǔ)器進(jìn)一步包括以下之一用于經(jīng)由所述從串行鏈路將所述未經(jīng)編碼的和亂序的數(shù)據(jù)流發(fā)送至所述存儲(chǔ)控制器 的裝置,或者用于經(jīng)由所述從串行鏈路從所述存儲(chǔ)控制器接收所述未經(jīng)編碼和亂序的數(shù)據(jù)流的裝置。
13.根據(jù)權(quán)利要求9所述的設(shè)備,其中,所述存儲(chǔ)器進(jìn)一步包括 用于確定與所述主串行鏈路相關(guān)聯(lián)的定時(shí)器是否已期滿的裝置;用于當(dāng)所述定時(shí)器期滿時(shí)不將所述特定串行鏈路指定為所述主串行鏈路的裝置; 用于將所述多條串行鏈路中的另一串行鏈路指定為所述主串行鏈路的裝置;以及 用于重啟所述定時(shí)器的裝置。
14.根據(jù)權(quán)利要求13所述的設(shè)備,其中 以預(yù)定順序設(shè)置所述多條串行鏈路,以及基于所述預(yù)定順序?qū)⒘硪粋€(gè)串行鏈路指定為所述主串行鏈路。
15.根據(jù)權(quán)利要求9所述的設(shè)備,其中,所述經(jīng)編碼的數(shù)據(jù)流是經(jīng)由在數(shù)據(jù)流中提供亂 序數(shù)據(jù)、直流(DC)均衡、和低連續(xù)相同數(shù)位(CID)的編碼方案編碼的。
16.一種部件,包括 具有多條鏈路的接口;用于將所述多條鏈路中的特定鏈路限定為指定鏈路的裝置; 用于將其余的所述多條鏈路限定為未指定鏈路的裝置; 用于經(jīng)由所述指定鏈路提供經(jīng)編碼的數(shù)據(jù)流的裝置;以及 用于經(jīng)由所述未指定鏈路提供未經(jīng)編碼的和亂序的數(shù)據(jù)流的裝置。
17.根據(jù)權(quán)利要求16所述的部件,其中,另一部件連接至所述接口,并且所述部件進(jìn)一 步包括用于將同步時(shí)鐘應(yīng)用到所述部件和所述另一部件上的裝置。
18.根據(jù)權(quán)利要求17所述的部件,其中,所述部件進(jìn)一步包括以下之一 用于經(jīng)由所述指定鏈路,將所述經(jīng)編碼的數(shù)據(jù)流發(fā)送至所述另一部件的裝置,或者 用于經(jīng)由所述指定鏈路,從所述另一部件接收所述經(jīng)編碼的數(shù)據(jù)流的裝置。
19.根據(jù)權(quán)利要求17所述的部件,其中,所述部件進(jìn)一步包括以下之一用于經(jīng)由所述未指定鏈路,將所述未經(jīng)編碼的和亂序的數(shù)據(jù)流發(fā)送至所述另一部件的 裝置,或者用于經(jīng)由所述未指定鏈路,從所述另一部件接收所述未經(jīng)編碼的和亂序的數(shù)據(jù)流的裝置。
20.根據(jù)權(quán)利要求16所述的部件,其中,所述部件進(jìn)一步包括用于以依次的順序?qū)⑺龆鄺l鏈路中的每條限定為所述指定鏈路的裝置。
全文摘要
本發(fā)明涉及一種具有低延時(shí)串行存儲(chǔ)接口的設(shè)備和使用該接口的方法。其中,該設(shè)備將同步時(shí)鐘應(yīng)用到該設(shè)備的第一部件和第二部件上,并將一組串行鏈路中的特定串行鏈路指定為主串行鏈路。該設(shè)備還將其余的串行鏈路指定為從串行鏈路,并經(jīng)由主串行鏈路提供經(jīng)編碼的數(shù)據(jù)流,以及經(jīng)由從串行鏈路提供未經(jīng)編碼的和亂序的數(shù)據(jù)流。
文檔編號(hào)G06F13/16GK102110064SQ20101022694
公開日2011年6月29日 申請(qǐng)日期2010年6月28日 優(yōu)先權(quán)日2009年12月29日
發(fā)明者伍昌鴻, 戴維·P·程松 申請(qǐng)人:叢林網(wǎng)絡(luò)公司