本發明涉及固態存儲器,更特別的是,涉及同步存儲器數據傳輸中的時序控制。
背景技術:固態存儲器以多種形式存在,其中數據以數字信號的形式存儲,典型地以半導體裝置的形式存在。閃存是一種能夠電子地刪除和重新編程的非易失性固態存儲器。閃存有NAND型和NOR型。動態隨機存取存儲器(DRAM)和靜態隨機存取存儲器(SRAM)是其中可以寫入和讀取數據的易失性存儲器。在這些和其他形式的存儲器中,存儲器和數據傳輸端口之間的數據傳輸,也就是說向存儲器中編程或寫入數據以及從存儲器讀取數據,可以同步地進行。在同步數據傳輸中,時序信號(通常稱作時鐘或頻閃(strobe)信號)由存儲器所耦接的系統提供。該系統包括處于存儲器和數據傳輸端口之間的接口,其相對于時序信號控制數據傳輸的時序。例如,塊傳輸數據能提高傳輸速度并且使得在NAND閃存中能夠進行塊擦除操作。數據傳輸的時序非常重要,尤其是在高帶寬(數據傳輸速度)下。在高帶寬下,用于數據信號中的轉換(transistion)的窗口小,并且落在窗口外的轉換會導致傳輸數據丟失和傳輸的數據損壞。因此,如果存儲器接口具有如下的可編程延遲模塊將是有益的,該可編程延遲模塊在讀或寫數據信號中的轉換之間與時鐘或頻閃(strobe)信號中的轉換之間提供規定的延遲。
技術實現要素:在一個實施例中,本發明提供一種具有存儲器模塊和存儲器接口的固態存儲器裝置。存儲器接口包括:用于接收時序信號的時序信號端口,數據傳輸端口,和用于在所述數據傳輸端口和所述存儲器模塊之間傳輸數據信號塊的數據傳輸模塊。可選擇延遲模塊在所述數據信號中的轉換和時序信號中的轉換之間提供選擇的延遲。延遲控制器設置所選擇的延遲,檢測由可選擇延遲模塊產生的延遲相對于參考延遲的變化,控制數據信號塊的傳輸中的暫停,并在暫停期間調整所選擇的延遲。附圖說明通過示例的方式示出了本發明,并且本發明并不僅限于附圖中所示的實施例,在附圖中相同的附圖標記表示相同的部件。為了簡明清晰的目的示出了附圖中的部件,并且其不必按比例繪制。圖1是作為示例給出的根據本發明實施例的固態存儲器裝置在寫配置中的示意框圖;圖2是圖1中的固態存儲器裝置在讀配置中的示意框圖;圖3是圖1的在寫配置下的固態存儲器裝置的操作中出現的信號的時序圖;圖4是圖2的在讀配置下的固態存儲器裝置的操作中出現的信號的時序圖;和圖5是圖1的固態存儲器裝置中的延遲線的示例的示意框圖。具體實施方式圖1和圖2示出了根據本發明實施例的一個例子的固態存儲器裝置100,其具有存儲器模塊102和存儲器接口104。存儲器接口104包括:時序信號端口106,其用于接收時序信號DQS;數據傳輸端口108;數據傳輸模塊110,其用于在數據傳輸端口108和存儲器模塊102之間傳輸數據信號DQ塊;以及,可選擇延遲模塊112,其用于在數據信號DQ中的轉換和時序信號DQS中的轉換之間提供選擇的延遲。存儲器接口104還包括延遲控制器114,用來設置所選擇的延遲,檢測由可選擇延遲模塊產生的延遲相對于參考延遲的變化,控制數據信號DQ塊的傳輸中的暫停,并且在暫停期間調整所選擇的延遲。在本發明的一個實施例中,存儲器模塊102是閃存模塊。在本發明的其它實施例中,存儲器模塊102是基于在數據傳輸端口108和存儲器模塊102之間使用數據信號的塊傳輸的其它技術。當對于寫操作,數據傳輸模塊110在向存儲器模塊102傳輸數據信號DQ塊時,可選擇延遲模塊112可以在數據信號DQ中提供選擇的延遲;數據信號DQ中的選擇的延遲可以通過時序信號DQS中的選擇的延遲提供,利用所述時序信號DQS同步數據信號DQ的寫入操作。當對于讀操作,數據傳輸模塊110在將數據信號DQ塊從存儲器模塊102傳輸到數據傳輸接口108時,可選擇延遲模塊112可以在時序信號DQS中提供選擇的延遲。數據傳輸模塊110可以是同步雙倍數據速率(“DDR”)傳輸模塊。延遲控制器114可以包括參考延遲元件和相位檢波器116,用于檢測延遲中的變化。控制數據信號塊的傳輸中的暫停可以包括延遲控制器114暫停向數據傳輸模塊110施加時序信號DQS。更詳細地,圖1示出了根據開放式NAND閃存接口(ONFi)規范的處于DDR寫配置的固態存儲器裝置100,圖2示出了根據開放式NAND閃存接口(ONFi)規范的處于DDR讀配置的固態存儲器裝置100。在使用中,固態存儲器裝置100與主機(未示出)連接,所述主機驅動數據總線(未示出)來提供數據用于寫操作,并且在讀操作期間該主機從驅動數據總線的固態存儲器裝置100接收數據。按照ONFi規范,對于NV-DDR或NV-DDR2數據接口,用于DQ數據總線的頻閃信號(被稱為DQS(DQ頻閃)被用來作為數據的時序信號。數據時序信號DQS是取向的并用于所有的數據傳輸。數據時序信號DQS并不用于命令或地址周期。對于從主機到該裝置的數據傳輸(寫入),DQS的鎖存(latching)邊沿相對于有效數據窗口中心對準(centeraligned)。對于從該裝置到主機的數據傳輸(讀取),DQS的鎖存邊沿與DQ總線的轉換對準。數據信號DQ和時序信號DQS在寫操作期間由主機提供,而在讀操作期間由固態存儲器裝置100提供。參考延遲元件和相位檢測器116通過設置延遲選擇信號DS而在由可選擇延遲模塊112提供的時序信號DQS中設置延遲。延遲控制器114包括突發(burst)有限狀態機118,其控制時鐘選通元件120,以使得時序信號端口106處的時序信號DQS中的轉換能夠傳遞到可選擇延遲模塊112,以及能夠控制在數據傳輸突發期間讀或寫操作的時序。在數據塊的傳輸的暫停期間,延遲控制器114通過時鐘選通元件120阻斷時序信號DQS的轉換,如ONFi規范版本3.0第4.17.2.4節對于NV-DDR數據傳輸和第4.17.3.3節對于NV-DDR2數據傳輸所規定的那樣。突發有限狀態機118還控制總線接口控制邏輯模塊122,其控制固態存儲器裝置100的數據傳輸操作。根據ONFi規范,總線接口控制邏輯模塊122提供芯片使能信號CE#、地址鎖存使能信號ALE、命令鎖存使能信號CLE、和寫/讀方向信號W/R#。在數據塊傳輸期間,地址鎖存使能信號ALE和命令鎖存使能信號CLE被斷言(assert)。在數據塊的傳輸中的暫停期間,地址鎖存使能信號ALE和命令鎖存使能信號CLE被設置為零,以將數據總線狀態設置為空閑。如果參考延遲元件和相位檢測器116檢測到可選擇延遲模塊112所提供的延遲中的變化,則它在數據塊的傳輸中的暫停期間調整延遲選擇信號DS,以校正時序信號DQS中的延遲。圖3示出了對于寫數據傳輸操作的數據信號“WRITEDQIN”(“寫DQ輸入”)和時序信號“WRITEDQSIN”(“寫DQS輸入”)的相對時序。如圖所示,用于有效數據鎖存的窗戶D0至Dn被定義在時序信號DQS的上升和下降鎖存邊沿周圍。在寫數據傳輸操作期間,由主機提供時序信號“WRITEDQSIN”并且由固態存儲器裝置100在時序信號端口106接收。由主機提供數據信號“WRITEDQIN”塊,并且由固態存儲器裝置100在數據傳輸端口108接收。在數據傳輸突發期間,時鐘選通元件120將時序信號“WRITEDQSIN”傳遞到可選擇延遲模塊112,可選擇延遲模塊112將時序信號延遲由參考延遲元件和相位檢測器116設置的量,并提供延遲的時序信號“WRITEDQSDELAYED”(“延遲的寫DQS”)以使數據傳輸模塊110對主機已經施加到數據總線的數據信號電壓的鎖存同步。在DDR固態存儲器裝置100的該例子中,數據傳輸模塊110具有兩個輸出,分別給閃存102提供偶數編號的數據和奇數編號的數據“INTERNALDATAEVEN”(“內部偶數數據”)和“INTERNALDATAODD”(“內部奇數數據”)。圖4示出了對于讀數據傳輸操作的數據信號“READDQOUT”(“讀DQ輸出”)以及時序信號“READDQS”(“讀DQS”)和“READDQSDELAYED”(“延遲的讀DQS”)的相對時序。在讀數據傳輸操作期間,由存儲器接口104與參考時鐘和命令時鐘信號相關地生成時序信號“READDQS”,并將其施加在時序信號輸入端106處。如圖所示,在數據傳輸突發期間,時鐘選通元件120將時序信號“READDQS”傳遞到可選擇延遲模塊112,可選擇延遲模塊112將時序信號“READDQS”延遲由參考延遲元件和相位檢測器116設置的量,并將延遲的時序信號“READDQSDELAYED”提供給數據傳輸模塊110并在時序信號輸出端口202處提供該延遲的時序信號“READDQSDELAYED”。用于有效數據鎖存和采樣的窗口D0至Dn由時序信號“READDQSDELAYED”的上升和下降鎖存邊沿所定義。數據信號“READDQOUTPUT”(“讀DQ輸出”)塊由固態存儲器裝置100與時序信號“READDQSDELAYED”同步地在數據傳輸端口108處提供。在該示例中,主機將來自數據總線的入向(incoming)數據信號“READDQOUTPUT”寄存在先進先出(“FIFO”)寄存器中,并且異步地對這些數據信號進行處理。在另一個例子中,主機經由時序總線接收延遲的時序信號“READDQSDELAYED”,并且與相對于該延遲的時序信號“READDQSDELAYED”進一步延遲了的時序信號同步地對固態存儲器裝置100已經施加到數據總線的電壓進行采樣,從而主機采樣發生在用于有效數據鎖存和采樣的窗口D0至Dn內的中心處。圖5示出了具有延遲線502的可選擇延遲模塊112的例子500,該延遲線502的延遲是根據延遲控制器114提供的延遲選擇信號DS的。延遲線502包括:多個(n個)串聯連接的延遲元件502_1至502_n,其接收待延遲的信號DQS;以及多路復用器504,用于根據依據延遲選擇信號DS選擇的延遲元件的數目選擇延遲的信號“DQSDELAYED”(“延遲的DQS”)。實際上,多路復用器504選擇延遲線502的長度,因此選擇由可選擇延遲模塊112引入的延遲。在暫停期間調整選擇的延遲包括:延遲控制器114通過調整延遲選擇信號DS調整由復用器選擇的延遲元件502_1到502_n的數量。在固態存儲器裝置100的例子中,參考延遲元件和相位檢測器116也包括以延遲鎖定環路(DLL)形式的延遲線和多路復用器,其具有與延遲線502和復用器504類似的特性,但具有固定的參考長度。在固態存儲器裝置100的這個例子中,對于讀取操作和寫入操作兩者,延遲的時序信號“WRITEDQSDELAYED”或“READDQSDELAYED”相對于時序信號“WRITEDQSIN”的標稱延遲是四分之一個周期。在200兆傳輸每秒(MT/s)的傳輸速度,有效數據捕捉的窗口小于2ns。在數據的長突發期間,操作條件(諸如,電壓和溫度等)的變化會導致可選擇延遲模塊112引入的延遲變化大于2ns。延遲控制器114檢測可選擇延遲模塊112產生的延遲相對于參考延遲的變化。參考延遲由參考時鐘信號REFERENCECLOCK提供,該參考時鐘信號由穩定的時鐘發生器(未示出)產生,諸如鎖相環(PLL)等。參考延遲元件和相位檢測器116的DLL產生內部信號,該內部信號的頻率由DLL中延遲線的長度設置,并且標稱等于參考時鐘頻率(或是參考時鐘頻率的整數倍)。參考延遲元件和相位檢測器116中的固定長度延遲線的延遲以與可選擇延遲模塊112類似的方式隨電壓和溫度變化。因此,當參考延遲元件和相位檢測器116中的內部信號的相位相對于參考時鐘變化時,這對應于通過可選擇延遲模塊112中的延遲線502延遲的信號的相位中的變化。如果檢測到的相位差對應于由可選擇延遲模塊112中的延遲線502所延遲的信號的相位變化,該相位變化大于與用于鎖存數據信號DQ的最大可接受時間窗口對應的閾值,則對延遲選擇信號DS進行調整以補償該變化。但是,如果在時序信號DQS正在運行的同時對延遲選擇信號DS進行調整,則將存在時鐘毛刺(clockglitch)的可能性。等待直到數據塊傳輸結束才調整延遲選擇信號DS將可能招致數據寫入或讀取錯誤的可能性。因此,如果檢測到的相位變化大于與最大可接受時間窗口對應的閾值,則參考延遲元件和相位檢測器116將信號“UPDATEREQUEST(更新請求)”斷言,其被施加到突發有限狀態機118。有限狀態機118然后根據ONFi規范在數據信號DQ的塊的傳輸中引入暫停,并且參考延遲元件和相位檢測器116在暫停期間調整選擇的延遲。更詳細地,當信號“更新請求”被斷言時,有限狀態機118采取暫停狀態,在該暫停狀態中其將地址鎖存使能信號ALE和命令鎖存使能信號CLE去斷言(de-assert),以將數據總線設置為空閑,其阻斷時鐘選通元件120以中斷時序信號DQS,并使能復用器504對延遲線單元的數量的更新以及調整延遲選擇信號DS。在ONFI規范所規定的時間時序tCAD之后,有限狀態機118再次采取突發狀態,在該突發狀態下它再次斷言地址鎖存使能信號ALE和命令鎖存使能信號CLE,來釋放數據總線以恢復數據塊傳輸,并解除對時鐘選通元件120的阻斷以恢復時序信號DQS。本發明可至少部分地以用于在計算機系統上運行的計算機程序實現,包括如下的代碼部分,該代碼部分用于當在可編程設備上運行時執行根據本發明的方法的步驟,所述可編程裝置諸如處理器,芯片上系統(SOC)或計算機系統,或者該代碼部分使得可編程設備能夠執行根據本發明的裝置或系統的功能。本發明還可以實現為微代碼或固件。計算機程序是指令的列表,諸如特定的應用程序和/或操作系統。計算機程序例如可以包括下列中的一個或更多個:子例程、函數、過程、對象方法、對象實現、可執行應用、小程序(applet)、服務小程序(servlet)、源代碼、目標代碼、共享庫/動態加載庫、和/或其他設計用于在計算機系統上執行的指令序列。所述計算機程序可以存儲在計算初可讀存儲介質內或通過計算機可讀傳輸介質傳輸到計算機系統。全部或部分的計算機程序可永久地設置在可移除地或遠程地耦接到計算機系統的計算機可讀介質上。在上述的說明中,參考本發明實施例的具體例子描述了本發明。然而顯然,可以在其中作出各種修改和改變而不背離如所附權利要求所提出的本發明的寬泛的精神和范圍。在此所討論的連接可以是任何類型的適于從或向相應節點、單元或裝置(例如通過中間裝置)傳輸信號的連接。因此,除非暗示或以其他方式說明,否則連接可以是直接連接或間接連接。連接可以被示出或描述為單個連接、多個連接、單向連接、或雙向連接。然而,不同的實施例可以改變連接的實現方式。例如,可以使用單獨的單向連接,而不是雙向連接,反之亦然。此外,可以用以串行或以時間復用方式傳輸多個信號的單個連接替換多個連接。同樣地,可以將攜載多個信號的多個單個連接分離成攜帶這些信號的子集的各種不同的連接。因此,對于信號傳輸存在許多選項。在此所述的每個信號可被設計為正或負邏輯。在負邏輯信號的情況下,信號是低有效(activelow),其中邏輯真狀態對應于邏輯電平零。在正邏輯信號的情況下,信號是高有效(activehigh),其中邏輯真狀態對應于邏輯電平一。注意,這里所述的任何信號都可以被設計為負或正邏輯信號。因此,在替代實施例中,被那些描述為正邏輯信號的信號可以被實現為負邏輯信號,而那些被描述為負邏輯信號的信號可以備實現為正邏輯信號。在此,在表示將信號、狀態位或類似物呈現為邏輯真或邏輯假狀態時,分別使用術語“斷言”或“設置”以及“取反(negate)”(或“去斷言”或“清除”)。如果邏輯真狀態為邏輯電平一,則邏輯假狀態為邏輯電平零。而如果邏輯真狀態為邏輯電平零,則邏輯假狀態為邏輯電平一。本領域技術人員將認識到,邏輯模塊之間的界限僅是說明性的,替代的實施例可以將邏輯模塊或電路單元合并,或對于不同的邏輯塊或電路單元施加功能性的替換的分解。因此,應理解,此處所描述的架構僅僅是示例性的,實際上可以實現許多實現相同功能的其他架構。類同地,任何組件的用以實現相同功能的布置都被有效“關聯”,以使得可以實現所需的功能。因此,任何兩個組合來實現特定功能的組件可被視為彼此“關聯”,從而實現所需的功能,而不管架構或中間組件。同樣地,任意兩個如此關聯的組件也可以被看作是彼此“可操作地連接”或“可操作耦接”以實現所需的功能。此外,本領域技術人員將認識到,上面介紹的操作之間的界限僅僅是說明性的。多個操作可以合并成單一操作,單個操作可以分布在額外的多個操作中,并且可以在時間上至少部分重疊地執行操作。此外,替代的實施例可以包括特定操作的多個實例,并且在不同的其他實施例中,操作順序的可以改變。此外,例如,在一個實施例中,所示的示例可以被實現為位于單個集成電路上或位于同一裝置內的電路。替代地,這些例子可以被實現為任意數量的以適當的方式彼此互聯的單獨的集成電路或者單獨的裝置。在權利要求中,詞語“包含”、“包括”或“具有”并不排除除權利要求所列出的之外的其他要素或步驟的存在。這里所用的術語“一”(“a”或“an”)被定義為一個或多于一個。此外,權利要求中諸如“至少一個”和“一個或多個”的引入語的使用不應該被解釋為暗示了通過不定冠詞“a”的另一權利要求要素的引入將任何含有如此引入的權利要求要素的特定權利要求限制于僅包含一個所述要素的發明,即使在同一權利要求包括引入語“一個或多個”或“至少有一個”和不定冠詞諸如“一”(“a”或“an”)時也是如此。對于定冠詞的使用也是如此。除非另有說明,否則諸如“第一”和“第二”的術語被用來任意地區分這些術語描述的要素。因此,這些術語并不必然意圖表示這些要素在時間上的或其他的優先次序。在相互不同的權利要求中引用特定手段的這一事實并不表示不能使用這些手段的組合來使優點突出。