TWI489456B - 包含雙模式記憶體互連之記憶體控制器 - Google Patents
包含雙模式記憶體互連之記憶體控制器 Download PDFInfo
- Publication number
- TWI489456B TWI489456B TW096140532A TW96140532A TWI489456B TW I489456 B TWI489456 B TW I489456B TW 096140532 A TW096140532 A TW 096140532A TW 96140532 A TW96140532 A TW 96140532A TW I489456 B TWI489456 B TW I489456B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory controller
- data
- differential
- memory
- signal path
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
- Information Transfer Systems (AREA)
- Static Random-Access Memory (AREA)
Description
本發明係關於電腦記憶體系統,且尤係關於在記憶體控制器與記憶體單元間之資料轉移。
電腦系統係採用許多不同種類之系統記憶體。一種常用之系統記憶體係利用可移除式記憶體模組來實作。記憶體模組具有不同的種類與組構。然而大致上,記憶體模組可實作為具有邊緣連接端(edge connector)及複數記憶體裝置之印刷電路板。該記憶體模組可插入位於主機板(mother board)或其他系統板(system board)上之插座中。一種普遍使用之記憶體模組係雙列直插式記憶體模組(Dual In-line Memory Module,DIMM),但仍有其他種類存在。於其他系統中,記憶體裝置可為非可移除式並直接安置於該主機板或系統板。
於近代歷史中,電腦系統處理器之速度及效能已急速增加。然而,系統記憶體效能卻典型地停滯落後。如此一來,一些系統效能改進之處便被該系統記憶體之效能所限制住。因此,對系統設計師來說,改善該系統記憶體之頻寬與容量為極具關切之處。
雖然改善系統記憶體效能是可能的,但這些改善之處有時極為昂貴。有鑑於此,改善該系統記憶體之頻寬與容量同時又保持花費低廉為極欲達成之課題。
本發明係揭露包含雙模式記憶體互連之記憶體控制器之各種具體實施例。於一個具體實施例中,該記憶體控制器係包括具有複數個輸入緩衝器及複數個輸出驅動器之輸入/輸出(input/output,I/O)電路。該輸入/輸出電路可組構成取決於模式選擇訊號之狀態而運作於第一模式及第二模式之其中一者。運作於該第一模式期間,該輸入/輸出電路可組構成提供並列互連(parallel interconnect)以連接至一個或多個記憶體模組。運作於該第二模式期間,該輸入/輸出電路可組構成提供個別之串列互連(serial interconnect)連接至一個或多個緩衝單元之各者,每個緩衝單元組構成緩衝正從該一個或多個記憶體模組讀取或正寫入該一個或多個記憶體模組中的記憶體資料。
於一個特定實作中,每個個別串列互連包括複數個差分雙向資料訊號路徑(differential bidirectional data signal path)。每個差分雙向資料訊號路徑可傳遞資料於給定之緩衝單元與該記憶體控制器間。
於另一特定實作中,每個個別串列互連包括差分命令訊號路徑(differential command signal path),其可從該記憶體控制器傳遞命令資訊至給定之緩衝單元。
於又一特定實作中,每個個別串列互連包括複數個下行差分單向訊號路徑(downstream differential unidirectional signal path)以及下行單向差分時脈訊號路徑(downstream unidirectional differential clock signal path)。每個下行差分單向訊號路徑可傳遞來自該記憶體控制器之資料、位址及命令資訊至該一個或多個緩衝單元。該下行單向差分時脈訊號路徑可傳遞來自該記憶體控制器之串列時脈訊號至該一個或多個緩衝單元之各者。
於再一特定實作中,每個個別串列互連係包括複數上行差分單向訊號路徑(upstream differential unidirectional signal path)。每個上行差分單向訊號路徑可傳遞來自該一個或多個緩衝單元之其中一者的資料及循環冗餘碼(Cyclic Redundancy Code,CRC)資訊至該記憶體控制器。
現在參閱第1圖,係顯示包含有高速串列緩衝器(high-speed serial buffer)之一個具體實施例之記憶體系統之方塊圖。記憶體系統10包括耦合記憶體單元110A至110H以及緩衝單元170A至170J之記憶體控制器100。須注意的是,包含具有數字及字母之參考指示器(reference designator)之元件可僅由該數字指示。舉例來說,記憶體單元110A可在合適處指示為記憶體單元110。亦須注意的是記憶體控制器100可為晶片組之一部分(例如可使用於北橋配置(Northbridge arrangement))的記憶控制器。或者例如第5圖所示,記憶體控制器100可為記憶體控制器100被嵌入包含一個或多個處理器核心之處理節點內之嵌入式解決方案的一部分。
於一個實作中,記憶體單元110A至110H可為記憶體模組,例如雙列直插式記憶體模組(Dual In-line Memory Module,DIMM)。如此,每個DIMM可包括複數個記憶體裝置(未圖示),例如於記憶體裝置之動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)家族中之裝置。然而,大體上須注意的是,系統10之記憶體單元110可代表任何類型的系統記憶體。
於所列舉之具體實施例中,記憶體控制器100係透過高速串列互連(serial interconnect)160A及160B耦合至緩衝單元170。於一個具體實施例中,每個高速串列互連(high-speed serial interconnect)160係使用差分訊號技術(differential signaling technique)。高速串列互連160可包括複數個差分雙向資料訊號路徑(differential bidirectional data signal path)(DDQ)、差分緩衝命令訊號路徑(differential buffer command signal path)(BCMD)、差分時脈訊號路徑(differential clock signal path)(WCLK)以及差分循環冗餘 碼訊號路徑(differential cyclic redundancy code signal path)(CRC)。於所列舉之具體實施例中,顯示有二個記憶體通道。如此,串列互連160A可用於其中一個通道且因此耦合至緩衝單元170A至170F,而串列互連160B可用於另一通道且耦合至緩衝單元170G至170J。須注意的是於所列舉之具體實施例中,每個緩衝單元170E及170J之一部份係不使用的,且於需要時可用於其他目的。
再者,記憶體控制器100係經過並列互連165耦合至記憶體單元110。如所示,於記憶體控制器100及記憶體單元110間之並列互連165可包括位址/命令訊號路徑(address/command signal path)(ADDR/CMD)以及時脈訊號路徑(clock signal path)(MCLK)。如同所顯示之該二個串列互連,顯示有二個ADDR/CMD/MCLK訊號路徑。每個該ADDR/CMD/MCLK訊號路徑可用於個別的記憶體通道。如所示,其中一個ADDR/CMD/MCLK訊號路徑係耦合至記憶體單元110A至110D,而另一個ADDR/CMD/MCLK訊號路徑則耦合至記憶體單元110E至110H。再者,緩衝單元170亦經由並列互連165耦合至記憶體單元110。如所示,並列互連165亦包括資料路徑(DQ)以及資料選通訊號路徑(data strobe signal path)(DQS)。於一個具體實施例中,記憶體控制器100可藉由經過該ADDR/CMD訊號路徑發送位址及指令而控制記憶體單元110之運作。
如以下將更加詳細描述者,該DQ資料路徑可於該緩衝單元170及記憶體單元110間雙向傳遞資料。該DQ資料路徑可包含一些8位元(bit)(位元組(byte)寬度)之資料路徑。舉例來說,全資料路徑(full data path)可為288位元寬,但該全資料路徑可分成位元組尺寸之部分。須注意的是於一個具體實施例中,該288位元可包括四個確認位元組(check byte),而在其他具體實施例時,可使用其他數量之確認位元組。須注意的是,該全資料路徑可包括任何數量之資料位元,且可分成不同尺寸之部分。該串列互連160之DDQ資料路徑可串列地且高速地傳遞經過該並列互連所傳遞之資料。舉例來說,DDQ0訊號路徑可傳遞對應於DQ[0:3]之資料位元,DDQ1訊號路徑可傳遞對應於DQ[4:7]之資料位元等,但其他的映射(mapping)也是可能的。
有許多種方法可使資料路徑耦合至記憶體單元110。舉例來說,可考慮將緩衝單元170作為單一積體電路之一部分。然而,由於用於此種實作所需之針腳(pin)數量,這可能是不切實際的。因此,於一個具體實施例中,該資料路徑可被分散且分組成較小的單位。因此,於一個具體實施例,每個緩衝單元170可為單獨的積體電路,該積體電路係提供緩衝功能給個別的組。
於一個具體實施例中,在寫入運作期間,每個串列緩衝單元170可串列地時脈輸入(clock in)並儲存二個位元組,且於其後並列地傳送該二個位元組於並列互連165上。為獲得所需之流通量,於一個具體實施例中,該串列互連160可用並列互連165於該資料訊號路徑上轉移資料之四倍速率來轉移資料。然而,該ADDR/CMD訊號路徑以及該MCLK訊號路徑則可用並列互連165上資料路徑之半倍速率來運作。舉例來說,當該並列互連165之資料訊號路徑DQ/DQS可用1600MT/s轉移資料,且該ADDR/CMD及MCLK訊號路徑可用800MT/s進行運作時,該串列互連160可用6.4GT/s於該DDQ資料路徑上轉移資料。須注意的是於其他具體實施例中,串列緩衝單元170於傳送位元組至並列介面(parallel interface)165之前,可儲存任何數量之位元組。亦須注意的是,該串列互連160可用關於並列互連165中任何適當的資料速率來運作。
CRC訊號路徑可經由個別的單向差分訊號路徑傳遞來自各個緩衝單元170之CRC資訊至記憶體控制器100。除此之外,時脈訊號路徑可傳遞WCLK訊號至各個緩衝單元170。同樣地,BCMD訊號路徑傳遞來自該記憶體控制器100之緩衝命令至各個緩衝單元170。
於一個具體實施例中,記憶體控制器100可藉由經過該BCMD訊號路徑而發送之命令,控制緩衝單元170的運作。如此,緩衝單元170可具有正常運作模式(normal operation mode)以及組構與測試模式(configuration and test mode)。舉例來說,於標準資料運作期間,記憶體控制器100可發送用於資料及前後同步碼(pre-and post-ambles)二者之讀取及寫入指令,以讀取及寫入資料儲存設備(data storage),且校正(adjust)該DQ訊號路徑之相位偏移(phase offset)。此外,舉例來說,記憶體控制器100可藉由發送多種的回傳命令(loopback command)、CRC控制命令以及CRC訓練圖樣(training pattern)指令來控制該緩衝單元170之組構、訓練及測試。
於高資料速率時,緩衝單元170或記憶體控制器100收到位元錯誤(bit error)的可能性是顯著的。因此,必須以錯誤偵測碼(error detection code)保護於記憶體控制器100及緩衝單元170間之轉移情形,該錯誤偵測碼將強而有力地偵測所保護之區塊內的多重位元錯誤(multiple bit error)。於一個具體實施例中,CRC碼可用來提供此種多重位元錯誤偵測。更特別的是,如第2圖所示,為了簡化於該緩衝單元及/或該記憶體模組中之邏輯,以及報告該記憶體控制器100之錯誤,緩衝單元170於根據其產生的資料或接收的資料來計算CRC。因此,為了轉移該CRC資訊返回至記憶體控制器100,可使用單向CRC訊號路徑。如第2圖所示,CRC單元250可基於其內部資料而計算該CRC,並發送該CRC資料返回至記憶體控制器100。當在任何方向的鏈結上偵測到錯誤時,記憶體控制器100可藉由重試(retry)該運作以矯正該錯誤。
於一個具體實施例中,可計算CRC資訊並且同時與轉移的資料從緩衝單元170發送至記憶體控制器100,使得該CRC在同時可以是可得的,作為在其抵達記憶體控制器100時所保護的資料區塊。於一個具體實施例中,藉由於寫入至讀取(write-to-read)以及讀取至寫入(read-to-write)之轉換期間將延遲引入至該資料路徑上,可減輕與計算該CRC相關聯之延遲。
如上所述,舉例來說,許多習知系統係藉由實作控制功能如時脈相位恢復(clock phase recovery)、頻道等化(channel equalization)及錯誤偵測於各通訊裝置中,以控制高速雙向通訊。然而,更詳細描述如下,緩衝單元170可被簡化產生此種控制功能非對稱(control functionality asymmetric)。就此而言,記憶體控制器100可包括控制功能,其係可動態並適性地校正所傳送之寫入資料之訊號特性(例如:相位等),以使緩衝單元170基於接收自緩衝單元170之資訊而正確地讀取資料。除此之外,記憶體控制器100可校正其內部接收器特性,以使記憶體控制器100可接收由緩衝單元170發送之資料。再者,記憶體控制器100可校正提供給緩衝單元170之時脈訊號之相位,以使位址及命令資訊可被正確地取樣(sample)。
更特別的是,於高資料速率時,對於匯流排(bus)內不同訊號之傳輸路徑中之延遲之不確定性,可能需要該些訊號之接收器之取樣時脈(sample clock)之每位元相位校正。為避免採用於緩衝單元170內之該電路系統,記憶體控制器100可校正其傳送的時脈及資料訊號之相位,以避免於從動裝置(slave)中之複雜的相位偏移(phase shifting)電路。如此,於所列舉之具體實施例中,記憶體控制器100包括耦合至傳送單元102、接收單元104以及時脈單元106之控制單元101。控制單元101可基於接收自緩衝單元170之資料計算相位資訊,而該緩衝單元170係可用來校正記憶體控制器100內之各種時脈邊緣之相位。舉例來說,回應如CRC資料及讀取資料之資訊,控制單元101可分別控制於傳送單元102、接收單元104及時脈單元106內之相位追蹤(tracking)及校正(adjustment)電路(如第2圖所示)。此功能將配合第2圖及第5圖之敘述詳細描述如下。
參閱第2圖,係詳加說明第1圖所示之記憶體系統之組件態樣之圖。對應於第1圖中之組件係以同一標號以求簡單明瞭。記憶體控制器100係經由差分串列互連160耦合至串列緩衝器(serial buffer)170。須注意的是,緩衝單元170可代表任何於第1圖所示之緩衝單元170A至170J。因此,差分串列互連160包括差分WCLK訊號路徑、差分BCMD訊號路徑、差分CRC訊號路徑以及差分資料訊號路徑DDQ[7:0]。
記憶體控制器100包括產生自第1圖中之時脈單元106之6.4GHz時脈訊號,該時脈訊號係耦合至可變相位單元(variable phase units)293,294,295及296,該等可變相位單元可為計時單元106之一部分並可提供內部時脈給記憶體控制器100。該可變相位單元293,294,295及296之輸出端係分別提供該時脈訊號給正反器(flip-flop,FF)290,289,286及284。該可變相位單元293係耦合至FF 290之時脈輸入端。由於FF 290具有耦合一回饋迴路(feedback loop)於該輸入端之反向器(inverter)292,故該6.4GHz時脈訊號係輸出為3.2GHz時脈訊號。FF 290之輸出端係耦合至差分輸出驅動器(differential output driver)291之輸入端,而其輸出端係耦合至差分WCLK訊號路徑。該寫入資料係耦合至FF 286之輸入端。FF 286之輸出端係耦合至差分等化輸出驅動器(differential equalization output driver)287。該驅動器287之輸出端係耦合至DDQ[7:0]之其中一個訊號路徑。因此,對於DDQ[7:0]之每個訊號路徑,可使用類似的寫入資料輸出路徑(未圖示)。同樣地,對於讀取資料,DDQ[7:0]之其中一個訊號路徑係耦合至差分輸入緩衝器283,而其輸出端係耦合至FF 284之輸入端。FF 284之輸出端係提供作為讀取資料至記憶體控制器100之其他部分(未圖示)。該CRC訊號路徑係耦合至差分輸入緩衝器281,其輸出端係耦合至接收器時脈資料恢復單元(receiver clock data recovery unit)(Rx CDR)282之輸入端。Rx CDR係耦合至每位元偏移單元(per bit offset unit)285,其係耦合至可變相位單元296。緩衝命令資訊係被提供至FF 289之輸入端。FF 289之輸出端係耦合至差分等化輸出驅動器(differential equalization output driver)288,其係耦合至該差分BCMD訊號路徑。
緩衝單元170包括緩衝器209,該緩衝器209代表用於每個該DDQ[7:0]訊號路徑之差分輸入緩衝器。緩衝器209係耦合以接收在其中一個該DDQ[7:0]訊號路徑上發送之寫入資料。該緩衝器209之輸出端係耦合至FF 208之輸入端。FF 208之輸出端係耦合至寫入先進先出記憶體(First-In-First-Out,FIFO)220。該寫入FIFO 220之輸出端係耦合至DRAM介面256,該DRAM介面256係代表經由並列互連165用以與記憶體單元110介接之輸入緩衝器及輸出驅動器電路。如所示,有16個資料選通訊號路徑DQS[15:0]及32個資料訊號路徑DQ[31:0]作為並列互連165之一部分。來自寫入FIFO之寫入資料可經由DQ[31:0]輸出至該記憶體單元110。須注意的是,雖然只有顯示該DQ以及DQS訊號,但為求簡化已省略其餘訊號。亦須注意的是,雖然為了簡化而未顯示,然該MCLK及DQS訊號亦可為差分訊號。
來自記憶體單元110經由DQ[31:0]之讀取資料係經過DRAM介面256耦合至多工器(mux)203之其中一個輸入端。該多工器203之輸出端係提供給FF 206之輸入端。控制邏輯255係控制該多工器203之多工器輸入選擇(multiplexer input select)。FF 206之輸出端係耦合至差分等化資料輸出驅動器(differential equalization data output driver)210,其係耦合至該DDQ[7:0]之其中一個差分訊號路徑。
緩衝單元170包括控制邏輯255,其係經由輸入緩衝器201耦合以接收來自該記憶體控制器100之該緩衝命令資訊(BCMD),其中該輸入緩衝器201係耦合至FF 202之輸入端。該BCMD資訊可引發控制邏輯255驅動寫入資料至該DQ資料路徑,或是讀取資料給該DQ資料路徑,或是進入及退出初始化程序(initialization sequences)等。因此,控制邏輯255可控制該DRAM介面256、CRC單元250、多工器203以及其他電路。
於所列舉之具體實施例中,該3.2GHz時脈訊號係耦合至FF 202,205,208及206之時脈輸入端。每個FF 202,205,208及206係顯示為雙緣正反器(dual edge flip flop),意指該些正反器組構成鎖存(latch)‘D’輸入於該輸入時脈訊號之領緣(leading edge)與延緣(trailing edge)二者上。因此,寫入資料及BCMD資訊可以6.4Gb/s之速率傳遞於其各自之資料路徑,且輸入端係使用3.2GHz時脈訊號鎖存。同樣地,由於記憶體控制器100以6.4GHz運作,故讀取資料及CRC資訊可用6.4Gb/s的速率於其個別之訊號路徑傳遞,以及在特定迴路返回模式期間於記憶體控制器100內使用。
於一個具體實施例中,當接收到寫入資料時,該寫入資料係被FF 208鎖存並儲存至寫入FIFO 220。寫入FIFO可儲存該資料直到接收到足夠的位元,以經由DRAM介面256被輸出至記憶體單元110。
配合第5圖中之敘述,將更加詳細描述如下,於運作期間,記憶體控制器100可動態並適性地校正傳送之寫入資料之訊號特性(例如:相位等)及內部接收器特性,並校正該6.4GHz時脈訊號之相位,其中該6.4GHz時脈訊號係產生提供給緩衝單元170之該3.2GHz時脈訊號。更特別的是,如上所述,接收單元104包括取樣時脈相位校正電路(sample clock phase adjustment circuits),例如Rx CDR 282以及偏移單元(offset unit)285,以校正其本身局部的取樣時脈相位,以更理想地接收由緩衝單元170傳送之資料。如此,每當記憶體控制器100接收到來自緩衝單元170之CRC資料時,接收單元104可使用Rx CDR 282、偏移單元285及可變相位單元296以校正FF 284之時脈相位。除此之外,於記憶體控制器100內之控制單元101可校正可變相位單元293,以校正提供給FF 290之6.4GHz時脈訊號的相位。於初始化處理期間,例如於電源重新啟動期間,記憶體控制器100可校正可變相位單元294,以校正提供給FF 289之6.4GHz時脈訊號的相位,以容許緩衝單元170正確地取樣緩衝命令訊號。再者,於初始化期間以及於預定時間間隔內之運作期間,控制單元101可校正可變相位單元295,以校正提供給FF 286之6.4GHz時脈訊號的相位,以校正被傳送至緩衝單元170之寫入資料的相位,俾使緩衝單元170更理想地接收該寫入資料。
第3圖係說明於第1及2圖中所示之具體實施例於8位元叢發(burst)期間之例示運作的時序圖。更特別的是,該時序圖係顯示128位元組之讀取/寫入/讀取叢發。該圖包括該MCLK及ADDR/CMD訊號,該MCLK及ADDR/CMD訊號係由記憶體控制器100提供給記憶體單元110。該圖亦顯示於緩衝單元170及記憶體單元110間分別傳遞資料及資料選通的DQ及DQS訊號。剩餘訊號:DDQ、BCMD及CRC訊號,係於記憶體控制器100與緩衝單元170間傳遞資訊。
如所示,讀取命令(例如:rdA及rdB)係藉由記憶體控制器100發送至記憶體單元110。在數個MCLK週期後,該資料與資料選通訊號DQS出現在DQ訊號路徑上。於該資料出現在該DQ訊號路徑上之前,讀取命令(例如:r0、r1)係經由該BCMD訊號路徑發送至緩衝單元170。於該rdA資料之後,下一個MCLK週期係於該DQ訊號路徑上,該rdA資料則出現在該DDQ訊號路徑上。如上所述,該rdA及rdB資料係並列地自記憶體單元110至緩衝單元170以兩倍MCLK速率(例如:1600MT/s)傳遞。然而,該資料係串列地自緩衝單元170至記憶體控制器100以極快之資料速率(如6.4GT/s)傳遞。
當從讀取轉變成寫入時,為減輕匯流排回復時間(turn-around time),寫入資料可於緩衝單元170內被預先緩衝。舉例來說,如所示之wrX資料以及相關聯之BCMD寫入命令(例如:w1),係被發送至緩衝單元170,但該資料並未寫入至記憶體單元110,直到稍後如虛線所指處。
該讀取/寫入/讀取程序可大致描述如下:wrX資料係藉由記憶體控制器100經過該DDQ訊號路徑寫入至緩衝單元170,並儲存至緩衝單元170內。記憶體控制器100同時地發出讀取命令(rdA接在數個MCLK週期後有rdB)經由該ADDR/CMD訊號路徑至記憶體單元110。就在該rdA資料出現在該DQ匯流排上之前(例如:於該wrX資料在DDQ上傳送結束時),記憶體控制器100發出讀取命令(例如:r0及r1)經由BCMD至緩衝單元170。當該rdA及rdB資料於該DQ匯流排上時,記憶體控制器100經由該ADDR/CMD匯流排發送寫入命令(例如:wrX及wrY)至記憶體單元110。該rdA及rdB資料係鎖存在緩衝單元170內且經由DDQ被發送至記憶體控制器100。於DDQ上之rdB資料轉移完成之前,記憶體控制器100發送寫入命令(例如:w0、w2及w3)至緩衝單元170。當該w3寫入命令導致剛經由該DDQ訊號路徑發送之該wrY資料經由該DQ資料路徑發送至記憶體單元110時,該w2指令便使得該先前已儲存之wrX資料寫入至記憶體單元110。當該wrX資料係正被寫入至記憶體單元110時,記憶體控制器100發出rdC命令經由該ADDR/CMD訊號路徑至記憶體單元110。於一些週期後,該rdC資料以及資料選通分別出現在該DQ訊號路徑上以及DQS訊號路徑上。當該rdC資料正在該DQ資料路徑上轉移至緩衝單元170時,記憶體控制器100發出該讀取命令(例如:r0及r1)經由該BCMD訊號路徑至緩衝單元170,因而使緩衝單元170經由該DDQ資料路徑發送該讀取資料。與wrX資料類似,wrZ資料於此叢發期間係未被寫入至記憶體單元110。相反地,wrZ資料係儲存於緩衝單元170內以用於下一次寫入叢發期間。
如上所述,於記憶體控制器100及緩衝單元170間之讀取及寫入運作期間,產生並發送CRC至記憶體控制器100。該CRC係由BCMD資訊,如箭頭所示之寫入資料以及讀取資料而產生出來。如所示,w1,r0,w0命令、wrX,rdA以及rdB資料係用來產生CRC資訊,該CRC資訊係發送自緩衝單元170至記憶體控制器100於該CRC訊號路徑上。
須注意的是,如所示,雖然上述之訊號可導致CRC資訊被產生且被發送至記憶體控制器100,但即使該緩衝單元170為閒置時(亦即未轉移資料時)CRC訊號路徑可具有轉換(transition)。如上所述,CRC資料驅動於記憶體控制器100內之Rx CDR 282。因此,這些轉換可使該讀取資料取樣時脈(read data sample clock)持續對準相位以正確地取樣該讀取資料。
第4圖係描述顯示於第1及2圖中之具體實施例之運作之流程圖。如上所簡述,於記憶體控制器100及緩衝單元170間之介面係非對稱的。也就是說,常駐(reside)於記憶體控制器100內之控制功能係較多於緩衝單元170內者。因此,於開機(power up)期間以及於運作期間之預定時間時,記憶體控制器100可校正傳送之寫入資料之訊號特性(例如:相位等),以使緩衝單元170基於接收自緩衝單元170之資訊正確地讀取該資料。除此之外,記憶體控制器100可校正其內部接收器特性,以使記憶體控制器100正確地接收由緩衝單元170發送之資料。再者,記憶體控制器100可校正提供給緩衝單元170之時脈訊號的相位,且校正該BCMD訊號的相位以使緩衝命令資訊正確地被緩衝單元170取樣。
共同參閱第1、2及4圖,且從第4圖之方塊400開始,於一個具體實施例中,在重新啟動或是開機狀態之後(方塊400),控制邏輯255引發緩衝單元170跳出重新啟動而進入訓練模式中(方塊405)。在進入訓練狀態後,所有的雙向訊號路徑驅動器(例如:DDQ、DQ及DQS)可處於高阻抗狀態(方塊410)。於該訓練模式中,於偶數MCLK週期期間,該BCMD訊號路徑係迴路返回(loop back)至CRC訊號路徑(方塊405);且於奇數MCLK週期期間,訓練圖樣(training pattern)(例如:10101010...)係輸出於該CRC路徑上(方塊420)。記憶體控制器100驅動於該BCMD訊號路徑上的訓練圖樣,該路徑係於該偶數MCLK週期期間輸出於該CRC路徑上(方塊425)。記憶體控制器100獲得於CRC路徑上接收已知資料圖樣之位元鎖定(bit-lock)以及位元組鎖定(byte-lock)(方塊430)。除此之外,記憶體控制器100藉由校正可變相位單元294而校正該BCMD時脈訊號的相位,以使緩衝單元170可獲得於該BCMD訊號路徑上之位元鎖定(亦即位元對準(bit alignment))以及位元組鎖定(亦即位元組對準(byte alignment))(方塊435)。更特別的是,記憶體單元100可變化(偏移)以一個位元時間(UI)發送之圖樣,以確保緩衝單元170正確地捕捉(capture)每個位元,在串列位元中偏移,並於正確之位元組邊界(byte boundary)上捕捉完整的8位元之位元組。然後記憶體控制器可發送緩衝命令以緩衝單元170離開訓練模式(方塊440)。
為了訓練該DDQ資料路徑,記憶體控制器100經由該DDQ資料路徑發送訓練圖樣(例如:具有許多轉換(transition)之隨機圖樣)。此圖樣係儲存於寫入先進先出記憶體(write FIFO)220內(方塊445)。記憶體控制器100回讀(read back)該儲存之圖樣以獲得位元鎖定(方塊450)。記憶體控制器100校正該寫入資料之相位(例如:藉由校正可變相位單元295)以獲得大約50%之位元錯誤率(bit error rate)。50%之轉換錯誤率可表示該寫入資料係正被取樣於邊緣附近。然後記憶體控制器100以0.5UI將該寫入資料之相位校正回來。如此將可導致FF 208,舉例來說,以取樣該資料於每個資料位元之中央部分附近。此處理可執行用於每個DDQ訊號路徑(方塊455)。為了獲得位元組鎖定,記憶體控制器100經由DDQ資料路徑發送訓練圖樣。於一個具體實施例中,該訓練圖樣對於每個位元組可具有不同的圖樣。當監控該CRC資訊時,記憶體控制器100可偏移該訓練圖樣資料於增加一個UI內。倘若該CRC資訊為正確的,位元組鎖定即被建立(方塊460)。一旦該訓練圖樣被位元組鎖定於緩衝單元170內,記憶體控制器100將試圖取得讀取資料位元組鎖定。於一個具體實施例中,記憶體控制器100回讀該位元組鎖定訓練圖樣(方塊465)。此時,該串列互連應被對準,以使位元鎖定及位元組鎖定二者皆於寫入及讀取方向上被取得。
同樣地,該並列DRAM介面256可被對準。更特別的是,於一個具體實施例中,當保存該BCMD及DDQ寫入相位對準時,記憶體控制器100可校正該WCLK相位,直到該寫入相位DQS邊緣與合適的MCLK邊緣對準(方塊470)。
一旦該緩衝單元170串列以及並列互連被對準,於正常運作期間,記憶體控制器100可使用上述之訓練圖樣執行該串列互連160之寫入相位訓練。該訓練可執行於預定時間間隔。同樣地,於閒置週期期間,記憶體控制器100可藉由發送一些閒置命令給緩衝單元170以監控並校正BCMD及CRC對準。這些閒置命令可引發富有CRC圖樣之預定轉換被傳送至該CRC訊號路徑(方塊475)。
參閱第5圖,顯示包含第1圖與第2圖之記憶體系統之電腦系統的例示具體實施例之方塊圖。須注意的是,對應顯示於第1及2圖中組件之組件,係以同一標號以求簡單明瞭。電腦系統500包括處理節點(processing node)650,其耦合至記憶體緩衝器170以及記憶體單元110。
於一個實作中,該緩衝單元170可為安置於主機板之積體電路晶片,且該記憶體單元110可插入插座中。於另一實作中,該緩衝單元170可為安置於擴充子板(daughter board)之積體電路晶片,該擴充子板係可插入記憶體擴充子卡(daughter card)插座中。於此種實作中,該擴充子板可具有插座以使該些記憶體單元110以豎立配置方式插入其中。
更特別的是,該處理節點650包括連結至記憶體控制器100之處理器核心601。須注意的是,於處理節點650內可有任何數量之處理器核心601。如上所述,記憶體控制器100訊號係經由差分串列互連160耦合至記憶體緩衝器170,且經由並列互連165耦合至記憶體單元110。如所示,該串列互連包括單向CRC訊號路徑、單向WCLK訊號路徑、單向BCMD訊號路徑以及雙向資料訊號路徑。除此之外,於該記憶體緩衝器170及記憶體單元110間,該並列互連165係包括雙向資料及資料選通訊號路徑。再者,於處理節點650及記憶體單元110間,並列互連165係包括單向ADDR/CMD及MCLK訊號路徑。須注意的是,除了該ADDR/CMD訊號外,仍有其他訊號,如晶片選擇(chip select)、庫選擇(bank select)以及其他包含於該並列互連165者,然而,為求簡化,這些訊號皆省略不提。亦須注意的是,雖為求簡化而未顯示於此,但MCLK及DQS訊號可為差分訊號。
參照第6圖,係顯示電腦系統之具體實施例之方塊圖,該系統包括具有雙模式記憶體互連之記憶體控制器。電腦系統700係類似顯示於第5圖中之電腦系統500。舉例來說,電腦系統700亦包括耦合至記憶體緩衝器170及記憶體單元110之處理節點650。然而於第6圖中,由於記憶體控制器710係雙模式記憶體控制器,故不同於第5圖中之記憶體控制器100。更特別的是,如下更加詳細描述者,記憶體控制器710可選擇性地組構成與連至記憶體單元110之並列互連或是與用於和緩衝單元170一起使用之串列互連來進行運算。
如上所簡述,電腦系統設計師可能想設計出具有極大彈性之系統,以使其組件可由愈多的系統製造商使用愈好。因此,於一個具體實施例中,記憶體控制器710可組構成運作於第一模式中,以提供給可相容於多種記憶體規格之並列記憶體互連(parallel memory interconnect)。舉例來說,於不同之具體實施例中,記憶體單元110可相容於DDR2、DDR3或是其他所期望之規格。如此,記憶體控制器710可提供作為其並列互連,如所期望而可相容於DDR2以及DDR3技術之並列互連。除此之外,記憶體控制器710可組構成運作於第二模式中,以提供例如第1及2圖中串列互連160之差分串列互連(differential serial interconnect)。
如第6圖所示,組構單元720可決定並選擇於記憶體控制器710內之輸入/輸出(I/O)電路711之組構。於一個具體實施例中,可使用處理節點600之固線式(hardwired)外部針腳來選擇該記憶體控制器710之模式。於此種具體實施例中,處理節點600之一個或多個外部選擇針腳可如所示固線(hardwired)於電路接地端(circuit ground),或是固線於VDD或其他電壓。組構單元720可偵測選擇針腳狀態,並因此組構記憶體控制器710之I/O電路711。於另一具體實施例中,於系統起始(start-up)期間,執行BIOS 605或是其他系統層級之軟體時,可選擇記憶體控制器模式。
於所列舉之具體實施例中,於第一模式中,記憶體控制器710係直接耦合至記憶體單元110。於此一組構中,I/O電路711係包括例如DQ、DQS、ADDR/CMD以及MCLK訊號路徑之並列互連。於第二模式中,該I/O電路711係變更為差分串列互連,其係耦合至如第1、2及5圖所示之記憶體緩衝單元170(虛線)。
為了達成模式切換,I/O電路711可包括複數個輸出驅動器及輸入緩衝器。某些驅動器與緩衝器可為差分電路(differential circuit),而某些可為單端型(single-ended)。於一個具體實施例中,視該模式而定,可改變處理節點與驅動器及緩衝器之各種I/O針腳間的連接。因此,於一個具體實施例中,部分I/O電路711可運作如可程式化互連(programmable interconnect)。
舉例來說,如第6圖所示,該CRC/DQS訊號路徑可於雙向DQS訊號路徑及單向CRC訊號路徑之間改變。該DQS/BCMD亦可於雙向DQS訊號路徑及單向BCMD訊號路徑之間改變。除此之外,該WCLK/DQS訊號路徑可於雙向DQS訊號路徑及單向WCLK訊號路徑之間改變。再者,該DDQ/DQ訊號路徑可於雙向單端型(single ended)DQS訊號路徑及雙向差分資料DDQ訊號路徑之間改變。
參閱第7圖,係顯示包含高速緩衝器之記憶體系統之另一具體實施例之方塊圖。記憶體系統80包括記憶體控制器800,該記憶體控制器800耦合至記憶體單元110A至110H,然後耦合至緩衝單元870A至870D。須注意的是,類似顯示於第1圖之記憶體控制器,記憶體控制器800亦可為晶片組之一部分(例如可用於北橋配置)之記憶控制器。或者,如第10圖所示,舉例來說,記憶體控制器800可為記憶體控制器800被嵌入包含一個或多個處理器核心之處理節點內之嵌入式解決方案的一部分。
對應於顯示於前述圖式中之那些組件,係以同一標號以求簡單明瞭。如此,於一個具體實施例中,記憶體單元110A至110H可如上所述代表為例如為雙列直插式記憶體模組(Dual In-line Memory Module,DIMM)之記憶體模組。於各種實作中,記憶體單元可符合於各種技術,例如DDR2及DDR3。
於所列舉之具體實施例中,記憶體控制器800係經由串列互連860A至860D耦合至緩衝單元870。於一個具體實施例中,每個串列互連860係使用差分訊號技術。以下將配合第8圖中之敘述更加詳細描述,串列差分互連860A至860D可各包括連至每個緩衝單元870之上行鏈結(upstream link)與下行鏈結(downstream link)。下行鏈結可包括複數個下行串列資料訊號路徑(downstream serial data signal paths)(DSD)以及可用來提供時脈給資料進入緩衝單元870中之對應的下行串列時脈訊號路徑(downstream serial clock signal path)(DSCLK)。同樣地,每個上行鏈結可包括複數個上行串列資料訊號路徑(upstream serial data signal paths)(USD)以及可用來提供時脈給資料進入記憶體控制器800中之對應的上行串列時脈訊號路徑(upstream serial clock signal path)(USCLK)。於所列舉之具體實施例中顯示有四條記憶體通道,但也可能為其他數量。如此,串列互連860A可用於其中一條通道,且因此耦合至緩衝單元870A;串列互連860B可用於第二通道,且耦合至緩衝單元870B;串列互連860C可用於第三通道,且耦合至緩衝單元870C;以及串列互連860D可用於第四通道,且耦合至緩衝單元870D。
對比於使用於前述具體實施例之串列互連160,串列互連860係使用每個皆傳遞資料、CRC以及ADDR/CMD資訊之資料訊號路徑。如此,於一個具體實施例中,串列互連860可使用封包協定(packet protocol),於該協定中封包可包括編碼(encodings)以標示出負載為ADDR/CMD或是資料。除此之外,每個封包可具有用於CRC資訊以及負載(例如:資料或是ADDR/CMD)之專用位元時間(dedicated bittimes)的格式。
除此之外,緩衝單元870A至870D係經由並列互連865耦合至記憶體單元110。於一個具體實施例中,並列互連865可包括資料路徑(DQ)、資料選通訊號路徑(DQS)、位址/命令訊號路徑(ADDR/CMD)以及時脈訊號路徑(MCLK)。須注意的是,仍可能有其他訊號,例如晶片選擇(chip select)、庫選擇(bank select)、確認位元(check bits)以及其他包含於該並列互連865上者,然而,這些訊號皆為求簡化而在此省略。亦須注意的是,並列互連865可包括四個通道。如所示,其中一個通道係耦合至記憶體單元110A至110D,另一者耦合至記憶體單元110E至110H,另一者耦合至記憶體單元110J至110M,而另一者則耦合至記憶體單元110N至110R。
如以下將更加詳細描述者,當該串列互連860之差分資料路徑可串列且高速地傳遞經由該並列互連所傳遞之資料時,該資料路徑DQ可於該緩衝單元870及記憶體單元110間雙向傳遞資料。舉例來說,給定的上行鏈路(uplink)USD[0]或是下行鏈路(downlink)DSD[0]訊號路徑可傳遞對應於DQ[0:3]之資料位元,該USD[1]訊號路徑可傳遞對應於DQ[4:7]之資料位元等,但其他的映射也是可能的。於一些具體實施例中,該串列鏈結可依據串列資料針腳之數量而呈非對稱性。於一個實作中,由於假設讀取運作可能會消耗比寫入運作較多之頻寬,故該上行鏈路可具有多於該下行鏈路之資料訊號路徑。
與前述之該緩衝單元170相似,每個串列互連860係可用並列互連865於該資料訊號路徑上轉移資料之四倍速率來轉移資料。然而,該ADDR/CMD訊號路徑以及該MCLK訊號路徑則可用並列互連865之資料路徑之半倍速率來運作。舉例來說,當該並列互連865之資料訊號路徑DQ/DQS可用1600MT/s轉移資料,且該ADDR/CMD及MCLK訊號路徑可用800MT/s進行運作時,該串列互連860可用6.4GT/s於該上行鏈路及下行鏈路資料路徑上轉移資料。須注意的是,該串列互連860可用關於並列互連865之任何適當的資料速率來運作。
於一個具體實施例中,記憶體控制器800可經由於該DSD訊號路徑上發送之命令控制該緩衝單元870之運作。如此,緩衝單元870可具有正常運作模式以及組構與測試模式。舉例來說,於正常資料運作期間,記憶體控制器800可發送用於資料及前後同步碼(pre-and post-ambles)二者之讀取及寫入指令,以讀取及寫入資料儲存設備,且校正該DQ訊號路徑之相位偏移。此外,舉例來說,記憶體控制器800可藉由發送多種回授返回命令(loopback command)、CRC控制命令以及CRC訓練圖樣命令來控制該緩衝單元870之配置、訓練及測試。
於高資料速率時,緩衝單元870或記憶體控制器800收到位元錯誤的可能性是顯著的。因此,必須以錯誤偵測碼保護於記憶體控制器800及緩衝器單元870間之轉移情形,該錯誤偵測碼將強而有力地偵測所保護之區塊內的多重位元錯誤。於一個具體實施例中,CRC碼可用來提供此種多重位元錯誤偵測。更特別的是,如第8圖所示,CRC資訊可被產生並發送於該上行鏈路及該下行鏈路二者中。當在任何方向的串列互連上偵測到錯誤時,記憶體控制器800可藉由重試(retry)該運作以矯正該錯誤。於一個具體實施例中,於下行鏈結(downstream link)中所偵測到之CRC錯誤可被編碼(encoded)至該上行(upstream)CRC中。
於一個具體實施例中,記憶體控制器800可包括控制功能,其係可動態並適性地校正所傳送之寫入資料之訊號特性(例如:相位等),以使緩衝單元870基於接收自緩衝單元870之資訊正確地讀取該資料。除此之外,記憶體控制器800可校正其內部接收器特性,以使記憶體控制器100可接收由緩衝單元870發送之資料。再者,記憶體控制器800可校正提供給緩衝單元870之時脈訊號之相位,以使位址及命令資訊可被正確地取樣。
更特別的是,於高資料速率時,對於匯流排中不同訊號之傳輸路徑之延遲之不確定性,可能需要那些訊號之接收器之取樣時脈之每位元相位校正。為避免採用於緩衝單元870內之該電路系統,記憶體控制器800可校正其傳送的時脈及資料訊號之相位,以避免於從動裝置中之複雜的相位偏移電路。如此,於所列舉之具體實施例中,記憶體控制器800包括耦合至傳送單元802、接收單元804以及時脈單元806之控制單元801。控制單元801可基於接收自緩衝單元870之資料計算相位資訊,而該緩衝單元870係可用來校正記憶體控制器800內之各種時脈邊緣之相位。舉例來說,回應CRC資料及讀取資料之資訊,控制單元801可分別控制於傳送單元802、接收單元804及時脈單元806內之相位追蹤及校正電路(如第8圖所示)。此功能將配合第8圖及第9圖之敘述詳細描述如下。
參閱第8圖,係詳加說明第7圖所示之記憶體系統之組件態樣之圖。對應於第7圖中之組件係以同一標號以求簡單明瞭。記憶體控制器800係經由差分串列互連860耦合至串列緩衝單元870。須注意的是,緩衝單元870可代表任何於第7圖所示之緩衝單元870A至870D。因此,差分串列互連860包括下行差分串列時脈訊號路徑(downstream differential serial clock signal path)(DSCLK)以及下行差分資料訊號路徑(downstream differential data signal paths)DSD[11:0]。同樣地,差分串列互連860包括上行差分串列時脈訊號路徑(USCLK)以及上行差分資料訊號路徑USD[19:0]。
記憶體控制器800包括產生自第7圖中之時脈單元806之6.4GHz時脈訊號。於一個具體實施例中,6.4GHz的時脈係用於記憶體控制器800之內部時脈。可變相位單元890之輸出端係提供該時脈訊號給正反器(flip-flop,FF)889。6.4GHz時脈亦耦合至傳巷抗扭斜電路(lane deskew circuit)881,且耦合至FF 893之時脈輸入端以產生該串列時脈訊號DSCLK。由於FF 893具有以迴路返回耦合於該輸入端之反向器892,故該6.4GHz時脈訊號係被分為兩部分且輸出為3.2GHz的串列時脈。該3.2GHz時脈係由差分輸出驅動器891所差分驅動。
於所列舉之具體實施例中,該寫入資料、ADDR/CMD及CRC係提供給FF 889之輸入端。FF 889之輸出端係耦合至差分等化輸出驅動器(differential equalization output driver)888。該驅動器888之輸出端係耦合至DSD[11:0]之一個單一訊號路徑。因此,對於DSD[11:0]之每個訊號路徑,可使用類似的輸出路徑(未圖示)。同樣地,對於讀取資料,USD[19:0]之一個單一訊號路徑係耦合至差分輸入緩衝器885,而該緩衝器885之輸出端係耦合至FF 886之輸入端。FF 886之輸出端係耦合至該傳巷抗扭斜單元881之輸入端。該傳巷抗扭斜單元881之輸出端係提供作為讀取資料及CRC資訊至記憶體控制器800之其他部分(未圖示)。該上行串列時脈訊號USCLK係耦合至差分輸入緩衝器887,該緩衝器887之輸出端係耦合至可變相位單元882。而可變相位單元882之輸出端係耦合至FF 886之時脈輸入端。
緩衝單元870係包括緩衝器801,該緩衝器801代表用於每個該DSD[11:0]訊號路徑之差分輸入緩衝器。緩衝器801係耦合成接收發送於該DSD[11:0]訊號路徑之其中之一條路徑上之寫入資料、ADDR/CMD及CRC資訊。因此,類似於記憶體控制器800,對於每個DSD[11:0]之訊號路徑,可使用類似的輸出路徑(未圖示)。該緩衝器801之輸出端係耦合至FF 802之輸入端。FF 802之輸出端係耦合至FF 803之輸入端。FF 803之輸出端係耦合至命令緩衝器805、CRC單元826、寫入FIFO 807以及輸出多工器(mux)809。該寫入FIFO 807之輸出端係耦合至DRAM介面856,該DRAM介面係類似於上述結合第2圖所描述之該DRAM介面。如所示,有4個MCLK訊號、ADDR/CMD訊號、16個資料選通訊號路徑DQS[15:0]以及72個資料訊號路徑DQ[71:0]作為並列互連865之一部分。來自寫入FIFO 807之寫入資料可經由DQ[71:0]輸出至該記憶體單元110。須注意的是,其餘訊號皆為了簡化而已被省略。須注意的是,雖然為了簡化而未顯示出來,但該MCLK及DQS訊號亦可為差分訊號。
經由DQ[71:0]來自記憶體單元110之讀取資料係可經過DRAM介面856耦合至多工器(mux)809之一個輸入端。多工器809之輸出端係提供給FF 810之輸入端。控制邏輯855控制該多工器809之多工器輸入選擇(multiplexer input select)。FF 810之輸出端係耦合至差分等化資料輸出驅動器811,該驅動器811係耦合至該USD[19:0]之差分訊號路徑之其中一條路徑。
緩衝單元870亦包括控制邏輯855,該控制邏輯855係耦合以接收來自該記憶體控制器800之命令資訊(CMD)。該CMD資訊可引發控制邏輯855驅動寫入資料至該DQ資料路徑,或是讀取資料給該DQ資料路徑,或是進入及退出初始化以及測試程序(initialization and test sequences)等。因此,控制邏輯855可控制該DRAM介面856、CRC單元826,808、多工器809以及其他電路。
於所列舉之具體實施例中,該3.2GHz時脈係耦合至FF 810之時脈輸入端,以及耦合至該差分等化資料輸出驅動器812之輸入端,而驅動器812之輸出端係該上行串列時脈訊號(upstream serial clock)USCLK。該3.2GHz時脈訊號亦耦合至除4(Divide by 4)單元804,從而提供為MCLK域之內部800MHz時脈域。
於一個具體實施例中,經由該DSD[11:0]訊號路徑接收之封包可同時提供至CMD緩衝器805、寫入FIFO 807以及CRC單元826。由於該些封包可被編碼以標示其為ADDR/CMD或資料負載,故該CMD緩衝器805以及寫入FIFO 807可包括封包解碼邏輯(packet decode logic)(未圖示),以使上述二者捕捉其各自的封包。因此,當接收到寫入資料負載封包時,該封包可被寫入FIFO 807以及儲存於寫入FIFO 807內之資料所解碼。CMD緩衝器805可丟棄資料負載封包。寫入FIFO 807可儲存該寫入資料直到接收到足夠位元而經由DRAM介面856被輸出至記憶體單元110。同樣地,當接收到CMD負載封包時,該封包可被CMD緩衝器805以及儲存於該CMD緩衝器805內之CMD資訊所解碼。寫入FIFO 807可丟棄CMD負載封包。由於所有的封包皆可能包含CRC負載,故CRC單元826係接收所有的封包且取出該CRC資訊。
如以下配合第9圖中之敘述更加詳細描述者,於運作期間,記憶體控制器800可動態並適性地校正所傳送之寫入資料及接收讀取資料之訊號特性(例如:相位等)。更特別的是,如上所述,接收單元804包括取樣時脈相位校正電路,例如傳巷抗扭斜881以及可變相位單元890,882,以校正其本身局部的取樣時脈相位,以更理想地接收由緩衝單元870傳送之資料。如此,不論記憶體控制器800何時接收到來自緩衝單元870之CRC資料,接收單元804可使用通道抗扭斜以及可變相位單元882以校正FF 885之時脈相位。除此之外,於記憶體控制器800內之控制單元801可校正可變相位單元890以校正傳送至緩衝單元870之寫入資料的相位,以使緩衝單元870可更理想地接收該寫入資料。
第9圖係描述第7及8圖所示之具體實施例之例示運作之流程圖。更特別的是,係描述有用於建立並維持記憶體控制器800及緩衝單元870間之通訊的初始化及組構程序。共同參閱第7至9圖,且從第9圖之方塊900開始,當該系統重新啟動時,如於電源重新開啟或其他系統重新啟動情形期間,無串列訊號路徑可被考慮對準。如此,記憶體控制器及緩衝單元870跳出重新啟動而進入訓練狀態1,或是T1中。於該T1狀態中,串列互連860係操作於400MT/s(方塊905)。記憶體控制器800使用推算(dead-reckoned)之0.5UI偏移(offset)以發送及接收資料(方塊910)。舉例來說,記憶體控制器校正該偏移以成為不完全跨越給定位元時間之約略點。記憶體控制器800發送命令以引發緩衝單元870離開該T1狀態而進入T2狀態(方塊915)。於該T2狀態,緩衝單元870驅動預定圖樣如101010...之圖樣於該USD鏈路之所有位元傳巷(lane)上。舉例來說,記憶體控制器係使用該已知圖樣獲得位元鎖定並校正該可變相位單元882(方塊920)。
於一個具體實施例中,舉例來說,記憶體控制器800發送緩衝命令以引發緩衝單元870離開該T2狀態,並藉由驅動所有8位元時間之單元以進入T3狀態(方塊925)。於該T3狀態,緩衝單元870經由該USD訊號路徑發送預定圖樣如101010...至記憶體控制器800於偶數MCLK週期上(方塊930)。緩衝單元870係組構成迴路返回(loop back)下行資料至上行USD訊號路徑於奇數MCLK週期上,且經由該DSD訊號路徑向下行方向發送不同於該101010...圖樣之圖樣(方塊935)。記憶體控制器800使用該不同之圖樣獲得位元組鎖定。然後記憶體控制器800校正該下行資料相位以容許緩衝單元870獲得位元鎖定以及位元組鎖定(方塊940)。當完成時,記憶體控制器800驅動所有0,以使8位元時間引發緩衝單元870離開該T3狀態並進入正常運作模式(方塊945),此時記憶體控制器800可讀取及寫入資料至記憶體單元110等。
一旦於該標準運作模式中,記憶體控制器800可校正於每個緩衝區單元870內之除4 MCLK除法器(divider)804以使所有緩衝單元870可使用相同之時脈邊緣(相位)(方塊950)。更特別的是,記憶體控制器800可發送緩衝命令以藉由一個或多個位元時間延遲(retard)該MCLK相位。
於正常運作期間內之預定時間間隔(例如:每100μs),記憶體控制器800可使用週期性訓練模式訓練上行與下行訊號路徑(方塊955)。舉例來說,對於下行訓練,記憶體控制器800可使用預定訓練相位偏移寫入訓練圖樣至寫入FIFO 807(方塊960)。記憶體控制器800可於此時回讀該訓練圖樣,並計算來自該圖樣轉換值之錯誤標記(sign)(方塊965)。使用所計算之錯誤標記,記憶體控制器800可校正該下行資料相位(方塊970)。
對於上行訓練,記憶體控制器800可使用正常相位偏移寫入訓練圖樣至寫入FIFO 807(方塊975)。記憶體控制器800可於此時回讀所儲存之訓練圖樣,並使用另預定訓練相位偏移計算來自該圖樣轉換值之錯誤標記(方塊980)。使用所計算之錯誤標記,記憶體控制器800可校正該上行取樣相位(方塊985)。一旦該週期性訓練完成了,緩衝單元870將如上於方塊945所述放回至模式中。
參閱第10圖,顯示包含有第7圖之記憶體系統之電腦系統之一個具體實施例之方塊圖。須注意的是,對應顯示於第7及8圖中組件之組件,係以同一標號以求簡單明瞭。電腦系統1100係包括處理節點1150,耦合至記憶體緩衝器870以及記憶體單元110。
類似於第5圖中顯示之電腦系統,於一個實作中,該緩衝單元870可為安置於主機板之積體電路晶片,且該記憶體單元110可插入插座中。於另一實作中,該緩衝單元870可為安置於擴充子板之積體電路晶片,該擴充子板係可插入記憶體擴充子卡插座中。於此種實作中,該擴充子板可具有插座以使該些記憶體單元110以豎立配置方式插入其中。
在顯示於第10圖中之具體實施例中,處理節點1150包括耦合至記憶體控制器800之處理器核心1101。須注意的是,於處理節點1150內可有任何數量之處理器核心1101。如上所述,配合第7及8圖之描述,記憶體控制器800訊號係經由差分串列互連860耦合至記憶體緩衝器870,且經由並列互連865耦合至記憶體單元110。如所示,該串列互連860係包括單向下行訊號路徑、單向下行時脈訊號路徑、單向上行訊號路徑以及單向上行時脈訊號路徑。除此之外,於該記憶體緩衝器870及記憶體單元110間,該並列互連865係包括雙向資料及資料選通訊號路徑。再者,於處理節點1150及記憶體單元110間,並列互連865係包括單向ADDR/CMD及MCLK訊號路徑。須注意的是除了該ADDR/CMD訊號外,仍有其他訊號,如晶片選擇(chip select)、庫選擇(bank select)以及其他包含於該並列互連865者,然而,為求簡化,上述於此已省略不提。
參照第11圖,係顯示電腦系統之另一具體實施例的方塊圖,該系統包括具有雙模式記憶體互連之記憶體控制器。電腦系統1200係類似顯示於第10圖中之電腦系統1100。舉例來說,電腦系統1200亦包括耦合至記憶體緩衝器870及記憶體單元110之處理節點1250。然而於第11圖中,由於記憶體控制器1210係雙模式記憶體控制器,因而不同於第10圖中之記憶體控制器800。更特別的是,如下更加詳細描述者,記憶體控制器1210可選擇性地組構成與直接連至記憶體單元110之並列互連865或是與用於和緩衝單元870一起使用之串列互連860來進行運作,如上所述配合第7及8圖中之描述者。
類似上述之記憶體控制器710,第11圖中之記憶體控制器1210亦可選擇性地以任何直接連至記憶體模組之並列互連來運作,該模組係可相容於多種記憶體規格。舉例來說,於不同之具體實施例中,記憶體單元110可相容於DDR2、DDR3或是其他所期望之規格。如此,記憶體控制器1210可提供作為其並列互連,如所期望而可提供相容於DDR2以及DDR3技術之並列互連865。除此之外,記憶體控制器1210亦可有選擇性地組構成運作於第二模式中,以提供給例如第7及8圖中串列互連860之串列差分互連(serial differential interconnect),用以連接至緩衝單元870。
如第11圖所示,組構單元1220可決定並選擇於記憶體控制器1210內該I/O電路1211之組構。於一個具體實施例中,可使用處理節點1250之固線式外部針腳來選擇該記憶體控制器1210之模式。於此種具體實施例中,處理節點1250之一個或多個外部選擇針腳可如所示被固線於電路接地端,或是固線於VDD或其他電壓。組構單元1220可偵測選擇針腳狀態,因此組構記憶體控制器1210之I/O電路1211。於另一具體實施例中,於系統起始(start-up)期間,執行BIOS 1205或是其他系統層級之軟體時,可選擇記憶體控制器模式。
於所列舉之具體實施例中,於第一模式中,記憶體控制器1210係直接耦合至記憶體單元110。於此一組構中,I/O電路1211提供包括例如DQ、DQS、ADDR/CMD以及MCLK或其他訊號路徑之並列互連。於第二模式中,該I/O電路1211係變更為差分串列互連,其係耦合至如第7、8及10圖所示之記憶體緩衝單元870(虛線)。
為了達成模式切換,I/O電路1211可包括複數個輸出驅動器及輸入緩衝器。某些驅動器與緩衝器可為差分電路,而某些可為單端型。於一個具體實施例中,視該模式而定,可改變處理節點與驅動器及緩衝器之各種I/O針腳間的連接。因此,於一個具體實施例中,部分I/O電路1211可運作如可程式化互連。
舉例來說,如第11圖所示,該DSD訊號路徑可於單向差分DDS訊號路徑及雙向單端DQ訊號路徑之間依照所需改變。除此之外,該USD訊號路徑可於單向UDS訊號路徑、雙向單端ADDR/CMD訊號路徑及/或雙向差分DQS訊號路徑之間改變。再者,該DSCLK訊號路徑亦可於差分單向時脈訊號路徑間改變成一個或多個單端型MCLK訊號路徑。須注意的是,其他針腳組合係可能考量的。
雖然上述之該些具體實施例已描述得相當詳細,然而一旦完全體會上述揭露,對於此領域熟悉該項技藝者而言,許多變更及修改將顯而易見。所附之申請專利範圍係意欲涵蓋所有此等變更及修改者。
10,80...記憶體系統
100,710,800,1210...記憶體控制器
101,801...控制單元
102,802...傳送單元
104,804...接收單元
106,806...時脈單元
110,110A至110H,110J至110N,110P至110R...記憶體單元
160,160A,160B,860,860A,860B,860C...串列互連
165,865...並列互連
170,170A至170J,870,870A至870D...緩衝單元/記憶體緩衝器
201...輸入緩衝器
202,205,206,208,284,286,289,290,803,810,821,886,893,889...正反器
203,809...多工器
209,218,801...緩衝器
210,811,812...差分等化資料輸出驅動器
211,287,288,888...差分等化輸出驅動器
220,807...寫入先進先出記憶體(write FIFO)
250,808,826...CRC單元
255,855...控制邏輯
256,856...DRAM介面
281,283,885,887...差分輸入緩衝器
282...接收器時脈資料回傳單元
285...偏移單元
291,891...差分輸出驅動器
292,892...反向器
293,294,295,296,882,890...可變相位單元
400,405,410,415,420,425,430,435,440,445,450,455,460,465,470,475,900,905,910,915,920,925,930,935,940,945,950,955,960,965,970,975,980,985...方塊
500,700,1100,1200...電腦系統
601,1101...處理器核心
605,1205...基本輸入輸出系統
650,1150,1250...處理節點
711,1211...輸入/輸出電路
720,1220...組構單元
805...指令緩衝區
881...傳巷抗扭斜單元/電路
ADDR...位址
BCMD...緩衝命令
CLKS...時脈訊號
CMD...命令
CRC...循環冗餘碼
DDQ...差分資料
DSCLK...下行串列時脈訊號
DSD...下行串列資料
DQ...資料
DQS...資料選通
MCLK...時脈訊號
Mode Sel....模式選擇
USCLK...上行串列時脈訊號
USD...上行串列資料
WCLK...差分時脈訊號
r0,r1,rdA,rdB,rdC...讀取命令
w0,w1,w2,w3,wrX,wrY...寫入命令
第1圖係包含有高速緩衝器之記憶體系統之一個具體實施例之方塊圖;第2圖係顯示第1圖中之記憶體系統組件之更詳細態樣之圖;第3圖係第1及2圖所示之具體實施例之例示叢發運作(burst operation)之時序圖;第4圖係描述第1至3圖中所示之具體實施例之運作之流程圖;第5圖係包含有第1圖所示之記憶體系統之電腦系統的一個具體實施例之方塊圖;第6圖係該第5圖中包含有雙模式記憶體控制器之電腦系統的一個具體實施例之方塊圖;第7圖係包含具有雙模式介面之記憶體控制器之記憶體系統的一個具體實施例之方塊圖;第8圖係顯示第7圖中之記憶體系統組件之更詳細態樣之圖;第9圖係描述第7及8圖所示之具體實施例之運作之流程圖;第10圖係包含有第7圖所示之記憶體系統之電腦系統的一個具體實施例之方塊圖;以及第11圖係第10圖中包含有雙模式記憶體控制器之電腦系統的一個具體實施例之方塊圖。
雖然本發明容許各種修飾及替代型式,但已經由圖式中之範例顯示並在此詳細描述其特定實施例。然而,必須了解的是,對於該些圖式及細節上的描述並非用以限制本發明為所揭露之特殊型式,相反的,本發明係用以涵蓋所有落入本發明於所附之申請專利範圍中所定義之精神與範疇內之修飾、等效及替代者。須注意的是使用於本申請文件全文之「可」(may)字係許可(permissive)之意(意即:可能、能夠),而非強制(mandatory)之意(意即:必須)。
10...記憶體系統
100...記憶體控制器
101...控制單元
102...傳送單元
104...接收單元
106...時脈單元
110,110A至110H...記憶體單元
160,160A,160B...串列互連
165...並列互連
170,170A至170J...緩衝單元
ADDR...位址
BCMD...緩衝命令
CLKS...時脈訊號
CMD...命令
CRC...循環冗餘碼
DDQ...差分資料
DQ...資料
DQS...資料選通
MCLK...時脈訊號
WCLK...差分時脈訊號
Claims (27)
- 一種記憶體控制器,包括:輸入/輸出(I/O)電路,包含複數個輸入緩衝器及複數個輸出驅動器,其中該I/O電路係組構成取決於模式選擇訊號之狀態而運作於第一模式及第二模式之其中一者;其中,運作於該第一模式期間,該I/O電路係組構成提供用於連接至一個或多個記憶體模組之並列互連;其中,運作於該第二模式期間,該I/O電路係組構成提供用於連接至一個或多個緩衝單元之各者之個別串列互連;以及其中,各該一個或多個緩衝單元係具有正常運作模式以及組構與測試模式,各該一個或多個緩衝單元於該正常運作模式時組構成緩衝正從該一個或多個記憶體模組讀取或正寫入該一個或多個記憶體模組中之記憶體資料,而各該一個或多個緩衝單元於該組構與測試模式時進行組構及測試。
- 如申請專利範圍第1項之記憶體控制器,其中,每個個別串列互連包含複數個差分雙向資料訊號路徑,各該差分雙向資料訊號路徑組構成傳遞資料於該一個或多個緩衝單元中之給定緩衝單元與該記憶體控制器間。
- 如申請專利範圍第1項之記憶體控制器,其中,每個個別串列互連包含差分命令訊號路徑,該差分命令訊號路徑組構成傳遞該命令資訊自該記憶體控制器至該一個 或多個緩衝單元中之給定緩衝單元。
- 如申請專利範圍第1項之記憶體控制器,復包括組構單元,該組構單元耦合至該I/O電路以及組構成偵測將選擇該第一及該第二模式中之何者並且提供該模式選擇訊號給該I/O電路。
- 如申請專利範圍第1項之記憶體控制器,其中,每個個別串列互連以第一資料轉移速率運作,而該並列互連以第二資料轉移速率運作,其中,該第一資料轉移速率係快於第二轉移速率。
- 如申請專利範圍第5項之記憶體控制器,其中,每個個別串列互連包含差分時脈訊號路徑,該差分時脈訊號路徑組構成傳遞時脈自該記憶體控制器至該一個或多個緩衝單元中之給定緩衝單元,其中,各該差分時脈訊號以該第一資料轉移速率運作。
- 如申請專利範圍第5項之記憶體控制器,其中,該並列互連包含一個或多個時脈訊號路徑,各該時脈訊號路徑組構成傳遞第二時脈訊號自該記憶體控制器至該一個或多個記憶體模組,其中,該第二時脈訊號以該第二資料轉移速率運作。
- 如申請專利範圍第1項之記憶體控制器,其中,該並列互連包含經配置的複數個雙向資料訊號路徑,各該雙向資料訊號路徑組構成傳遞資料於該記憶體控制器與該一個或多個記憶體模組中之特殊模組間。
- 如申請專利範圍第1項之記憶體控制器,其中,該並列 互連包含複數個雙向資料選通訊號路徑,該複數個雙向資料選通訊號路徑組構成傳遞資料選通於該記憶體控制器與該一個或多個記憶體模組中之特殊模組間。
- 如申請專利範圍第1項之記憶體控制器,其中,該並列互連包含複數個單向位址及命令訊號路徑,該複數個單向位址及命令訊號路徑組構成傳遞位址及命令資訊自該記憶體控制器至該一個或多個記憶體模組。
- 如申請專利範圍第1項之記憶體控制器,其中,各該個別串列互連係組構成經由一個或多個單向循環冗餘碼(Cyclic Redundancy Code,CRC)訊號路徑,傳遞來自該一個或多個緩衝單元之循環冗餘碼(CRC)資訊,其中,該CRC資訊對應於該記憶體控制器經由該個別串列互連發送之該資料。
- 如申請專利範圍第1項之記憶體控制器,其中,每個個別串列互連包含複數個下行差分單向訊號路徑,各該下行差分單向訊號路徑組構成傳遞資料、位址以及命令資訊自該記憶體控制器至該一個或多個緩衝單元。
- 如申請專利範圍第12項之記憶體控制器,其中,每個個別串列互連包含下行單向差分時脈訊號路徑,該下行單向差分時脈訊號路徑組構成傳遞串列時脈訊號自該記憶體控制器至該一個或多個緩衝單元之各者。
- 如申請專利範圍第1項之記憶體控制器,其中,每個個別串列互連包含複數個上行差分單向訊號路徑,各該上行差分單向訊號路徑組構成傳遞資料及循環冗餘碼 (CRC)資訊自該一個或多個緩衝單元之其中一者至該記憶體控制器。
- 如申請專利範圍第1項之記憶體控制器,其中,每個個別串列互連包含上行單向差分時脈訊號路徑,該上行單向差分時脈訊號路徑組構成傳遞串列時脈訊號自該一個或多個緩衝單元之其中一者至該記憶體控制器。
- 一種電腦系統,包括:處理器;以及耦合至該處理器之記憶體控制器,其中,該記憶體控制器包含:輸入/輸出(I/O)電路,包含複數個輸入緩衝器及複數個輸出驅動器,其中,I/O電路係組構成取決於模式選擇訊號之狀態而運作於第一模式及第二模式之其中一者;其中,運作於該第一模式期間,該I/O電路係組構成提供用於連接至一個或多個記憶體模組之並列互連;其中,運作於該第二模式期間,該I/O電路係組構成提供用於連接至一個或多個緩衝單元之差分串列互連;以及其中,各該一個或多個緩衝單元係具有正常運作模式以及組構與測試模式,各該一個或多個緩衝單元於該正常運作模式時組構成緩衝正從該一個或多個記憶體模組讀取或正寫入該一個或多個記憶體模組中之記憶體資料,而各該一個或多個緩衝單元於該組構與測試模式時 進行組構及測試。
- 如申請專利範圍第16項之電腦系統,其中,每個個別串列互連包含複數個差分雙向資料訊號路徑,各該差分雙向資料訊號路徑組構成傳遞資料於該一個或多個緩衝單元中之給定緩衝單元與該記憶體控制器間。
- 如申請專利範圍第16項之電腦系統,其中,每個個別串列互連包含差分命令訊號路徑,該差分命令訊號路徑組構成傳遞該命令資訊自該記憶體控制器至該一個或多個緩衝單元中之給定緩衝單元。
- 如申請專利範圍第16項之電腦系統,復包括組構單元,該組構單元耦合至該I/O電路以及組構成偵測將選擇該第一及該第二模式中之何者並且提供該模式選擇訊號給該I/O電路。
- 如申請專利範圍第16項之電腦系統,其中,每個個別串列互連以第一資料轉移速率運作,而該並列互連以第二資料轉移速率運作,其中,該第一資料轉移速率係快於第二轉移速率。
- 如申請專利範圍第20項之電腦系統,其中,每個個別串列互連包含差分時脈訊號路徑,該差分時脈訊號路徑組構成傳遞時脈自該記憶體控制器至該一個或多個緩衝單元中之給定緩衝單元,其中,各該差分時脈訊號以該第一資料轉移速率運作。
- 如申請專利範圍第20項之電腦系統,其中,該並列互連包含一個或多個時脈訊號路徑,各該時脈訊號路徑組 構成傳遞第二時脈訊號自該記憶體控制器至該一個或多個記憶體模組,其中,該第二時脈訊號以該第二資料轉移速率運作。
- 如申請專利範圍第16項之電腦系統,其中,該並列互連包含:經配置的複數個雙向資料訊號路徑,各該雙向資料訊號路徑係組構成傳遞資料於該記憶體控制器與該一個或多個記憶體模組中之特殊模組間;複數個雙向資料選通訊號路徑,係組構成傳遞資料選通於該記憶體控制器與該一個或多個記憶體模組中之特殊模組間;以及複數個單向位址及命令訊號路徑,係組構成傳遞位址及命令資訊自該記憶體控制器至該一個或多個記憶體模組。
- 如申請專利範圍第16項之電腦系統,其中,每個個別串列互連包含複數個下行差分單向訊號路徑。各該下行差分單向訊號路徑組構成傳遞資料及命令資訊自該記憶體控制器至該一個或多個緩衝單元。
- 如申請專利範圍第24項之電腦系統,其中,每個個別串列互連包含下行單向差分時脈訊號路徑,該下行單向差分時脈訊號路徑組構成傳遞串列時脈訊號自該記憶體控制器至該一個或多個緩衝單元之各者。
- 如申請專利範圍第16項之電腦系統,其中,每個個別串列互連包含複數個上行差分單向訊號路徑,各該上行 差分單向訊號路徑組構成傳遞資料及循環冗餘碼(CRC)資訊自該一個或多個緩衝單元之其中一者至該記憶體控制器。
- 如申請專利範圍第16項之電腦系統,其中,每個個別串列互連包含上行單向差分時脈訊號路徑,該上行單向差分時脈訊號路徑組構成傳遞串列時脈訊號自該一個或多個緩衝單元之其中一者至該記憶體控制器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/590,286 US7694031B2 (en) | 2006-10-31 | 2006-10-31 | Memory controller including a dual-mode memory interconnect |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200832406A TW200832406A (en) | 2008-08-01 |
TWI489456B true TWI489456B (zh) | 2015-06-21 |
Family
ID=39175571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096140532A TWI489456B (zh) | 2006-10-31 | 2007-10-29 | 包含雙模式記憶體互連之記憶體控制器 |
Country Status (8)
Country | Link |
---|---|
US (2) | US7694031B2 (zh) |
JP (1) | JP2010508600A (zh) |
KR (1) | KR20090077015A (zh) |
CN (1) | CN101583933B (zh) |
DE (1) | DE112007002619B4 (zh) |
GB (1) | GB2458040A (zh) |
TW (1) | TWI489456B (zh) |
WO (1) | WO2008054696A1 (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080189457A1 (en) * | 2006-12-06 | 2008-08-07 | International Business Machines Corporation | Multimodal memory controllers |
US20080140907A1 (en) * | 2006-12-06 | 2008-06-12 | Dreps Daniel M | Multimodal Memory Controllers |
WO2008130878A2 (en) * | 2007-04-19 | 2008-10-30 | Rambus Inc. | Techniques for improved timing control of memory devices |
US8521979B2 (en) | 2008-05-29 | 2013-08-27 | Micron Technology, Inc. | Memory systems and methods for controlling the timing of receiving read data |
US7979757B2 (en) | 2008-06-03 | 2011-07-12 | Micron Technology, Inc. | Method and apparatus for testing high capacity/high bandwidth memory devices |
KR100942953B1 (ko) * | 2008-06-30 | 2010-02-17 | 주식회사 하이닉스반도체 | 데이터 전달 회로 및 그를 포함하는 반도체 메모리 장치 |
US7855931B2 (en) | 2008-07-21 | 2010-12-21 | Micron Technology, Inc. | Memory system and method using stacked memory device dice, and system using the memory system |
US8756486B2 (en) | 2008-07-02 | 2014-06-17 | Micron Technology, Inc. | Method and apparatus for repairing high capacity/high bandwidth memory devices |
US8289760B2 (en) * | 2008-07-02 | 2012-10-16 | Micron Technology, Inc. | Multi-mode memory device and method having stacked memory dice, a logic die and a command processing circuit and operating in direct and indirect modes |
US8127204B2 (en) | 2008-08-15 | 2012-02-28 | Micron Technology, Inc. | Memory system and method using a memory device die stacked with a logic die using data encoding, and system using the memory system |
US8489837B1 (en) | 2009-06-12 | 2013-07-16 | Netlist, Inc. | Systems and methods for handshaking with a memory module |
US9128632B2 (en) | 2009-07-16 | 2015-09-08 | Netlist, Inc. | Memory module with distributed data buffers and method of operation |
US8533538B2 (en) * | 2010-06-28 | 2013-09-10 | Intel Corporation | Method and apparatus for training a memory signal via an error signal of a memory |
KR101728067B1 (ko) * | 2010-09-03 | 2017-04-18 | 삼성전자 주식회사 | 반도체 메모리 장치 |
US8140778B1 (en) * | 2010-09-10 | 2012-03-20 | Spansion Llc | Apparatus and method for data capture using a read preamble |
US9355051B2 (en) | 2010-09-10 | 2016-05-31 | Cypress Semiconductor Corporation | Apparatus, method, and manufacture for using a read preamble to optimize data capture |
US8990605B2 (en) | 2010-09-10 | 2015-03-24 | Spansion Llc | Apparatus and method for read preamble disable |
US9223726B2 (en) | 2010-09-10 | 2015-12-29 | Cypress Semiconductor Corporation | Apparatus and method for programmable read preamble with training pattern |
US8583987B2 (en) * | 2010-11-16 | 2013-11-12 | Micron Technology, Inc. | Method and apparatus to perform concurrent read and write memory operations |
US8400808B2 (en) | 2010-12-16 | 2013-03-19 | Micron Technology, Inc. | Phase interpolators and push-pull buffers |
TWI464597B (zh) * | 2012-07-19 | 2014-12-11 | Wistron Corp | 改善資料傳輸之方法及其相關電腦系統 |
US20140359181A1 (en) * | 2013-05-31 | 2014-12-04 | Hewlett-Packard Development Company, L.P. | Delaying Bus Activity To Accomodate Memory Device Processing Time |
CN105706064B (zh) | 2013-07-27 | 2019-08-27 | 奈特力斯股份有限公司 | 具有本地分别同步的内存模块 |
US9171597B2 (en) | 2013-08-30 | 2015-10-27 | Micron Technology, Inc. | Apparatuses and methods for providing strobe signals to memories |
US9218575B2 (en) * | 2013-09-04 | 2015-12-22 | Intel Corporation | Periodic training for unmatched signal receiver |
TWI533608B (zh) * | 2014-06-30 | 2016-05-11 | 友達光電股份有限公司 | 資料接收器及資料接收方法 |
US9852811B2 (en) * | 2014-11-13 | 2017-12-26 | Macronix International Co., Ltd. | Device and method for detecting controller signal errors in flash memory |
US20160371211A1 (en) * | 2015-06-16 | 2016-12-22 | Apple Inc. | Bus-bit-order ascertainment |
US10186309B2 (en) | 2016-06-29 | 2019-01-22 | Samsung Electronics Co., Ltd. | Methods of operating semiconductor memory devices and semiconductor memory devices |
US10692555B2 (en) | 2016-06-29 | 2020-06-23 | Samsung Electronics Co., Ltd. | Semiconductor memory devices enabling read strobe mode and related methods of operating semiconductor memory devices |
KR102641515B1 (ko) | 2016-09-19 | 2024-02-28 | 삼성전자주식회사 | 메모리 장치 및 그것의 클록 분배 방법 |
US10795592B2 (en) * | 2017-05-05 | 2020-10-06 | Dell Products, L.P. | System and method for setting communication channel equalization of a communication channel between a processing unit and a memory |
KR102392055B1 (ko) * | 2017-08-09 | 2022-04-28 | 삼성전자주식회사 | 리트레이닝 동작의 수행 여부를 효율적으로 결정하기 위한 메모리 장치 및 이를 포함하는 메모리 시스템 |
US11604714B2 (en) | 2017-08-09 | 2023-03-14 | Samsung Electronics Co, Ltd. | Memory device for efficiently determining whether to perform re-training operation and memory system including the same |
KR102438991B1 (ko) | 2017-11-28 | 2022-09-02 | 삼성전자주식회사 | 메모리 장치 및 그것의 동작 방법 |
US10884451B2 (en) * | 2018-05-01 | 2021-01-05 | DeGirum Corporation | System and methods for completing a cascaded clock ring bus |
US10418125B1 (en) * | 2018-07-19 | 2019-09-17 | Marvell Semiconductor | Write and read common leveling for 4-bit wide DRAMs |
US11734174B2 (en) * | 2019-09-19 | 2023-08-22 | Intel Corporation | Low overhead, high bandwidth re-configurable interconnect apparatus and method |
US11392299B2 (en) | 2019-12-20 | 2022-07-19 | Micron Technology, Inc. | Multi-purpose signaling for a memory system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304930B1 (en) * | 1998-01-20 | 2001-10-16 | Matsushita Electric Industrial Co., Ltd. | Signal transmission system having multiple transmission modes |
US20040098545A1 (en) * | 2002-11-15 | 2004-05-20 | Pline Steven L. | Transferring data in selectable transfer modes |
US20040139253A1 (en) * | 2003-01-13 | 2004-07-15 | Perego Richard E. | Memory system and device with serialized data transfer |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6510487B1 (en) * | 1996-01-24 | 2003-01-21 | Cypress Semiconductor Corp. | Design architecture for a parallel and serial programming interface |
CA2302466A1 (en) * | 1997-07-31 | 1999-02-11 | Stanford Syncom Inc. | Means and method for a synchronous network communications system |
US20040236877A1 (en) * | 1997-12-17 | 2004-11-25 | Lee A. Burton | Switch/network adapter port incorporating shared memory resources selectively accessible by a direct execution logic element and one or more dense logic devices in a fully buffered dual in-line memory module format (FB-DIMM) |
JP3315375B2 (ja) * | 1998-01-20 | 2002-08-19 | 松下電器産業株式会社 | 信号伝送システム |
US6052073A (en) * | 1998-03-23 | 2000-04-18 | Pmc-Sierra Ltd. | Serial to parallel converter enabled by multiplexed flip-flop counters |
JPH11306074A (ja) * | 1998-04-23 | 1999-11-05 | Sharp Corp | 情報処理装置 |
JP2000207350A (ja) * | 1999-01-19 | 2000-07-28 | Asahi Chem Ind Co Ltd | デ―タ転送装置及びデ―タ転送方法 |
US6502161B1 (en) * | 2000-01-05 | 2002-12-31 | Rambus Inc. | Memory system including a point-to-point linked memory subsystem |
US7047330B2 (en) * | 2001-03-06 | 2006-05-16 | Ati Technologies, Inc. | System for digital stream transmission and method thereof |
US6845420B2 (en) * | 2001-10-11 | 2005-01-18 | International Business Machines Corporation | System for supporting both serial and parallel storage devices on a connector |
JP2004199309A (ja) * | 2002-12-18 | 2004-07-15 | Renesas Technology Corp | マイクロコントローラ、マイクロプロセッサおよび不揮発性半導体メモリ装置 |
WO2004102403A2 (en) * | 2003-05-13 | 2004-11-25 | Advanced Micro Devices, Inc. | A system including a host connected to a plurality of memory modules via a serial memory interconnect |
US7085886B2 (en) * | 2003-05-28 | 2006-08-01 | International Buisness Machines Corporation | Autonomic power loss recovery for a multi-cluster storage sub-system |
JP2005346123A (ja) * | 2004-05-31 | 2005-12-15 | Toshiba Corp | パラレルインタフェースコネクタを備えたストレージ装置及び同装置に適用される変換コネクタ |
KR100643605B1 (ko) * | 2004-08-16 | 2006-11-10 | 삼성전자주식회사 | 적응형 프리 엠퍼시스 장치, 데이터 통신용 송신기,데이터 통신용 송수신 장치 및 적응형 프리 엠퍼시스 방법 |
US20060195631A1 (en) | 2005-01-31 | 2006-08-31 | Ramasubramanian Rajamani | Memory buffers for merging local data from memory modules |
US7558124B2 (en) * | 2005-11-16 | 2009-07-07 | Montage Technology Group, Ltd | Memory interface to bridge memory buses |
US7368950B2 (en) * | 2005-11-16 | 2008-05-06 | Montage Technology Group Limited | High speed transceiver with low power consumption |
US7577039B2 (en) * | 2005-11-16 | 2009-08-18 | Montage Technology Group, Ltd. | Memory interface to bridge memory buses |
-
2006
- 2006-10-31 US US11/590,286 patent/US7694031B2/en active Active
-
2007
- 2007-10-29 CN CN2007800407571A patent/CN101583933B/zh active Active
- 2007-10-29 DE DE112007002619.7T patent/DE112007002619B4/de active Active
- 2007-10-29 GB GB0908637A patent/GB2458040A/en not_active Withdrawn
- 2007-10-29 TW TW096140532A patent/TWI489456B/zh active
- 2007-10-29 JP JP2009535286A patent/JP2010508600A/ja active Pending
- 2007-10-29 KR KR1020097011350A patent/KR20090077015A/ko not_active Application Discontinuation
- 2007-10-29 WO PCT/US2007/022814 patent/WO2008054696A1/en active Application Filing
-
2010
- 2010-04-02 US US12/753,373 patent/US8019907B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304930B1 (en) * | 1998-01-20 | 2001-10-16 | Matsushita Electric Industrial Co., Ltd. | Signal transmission system having multiple transmission modes |
US20040098545A1 (en) * | 2002-11-15 | 2004-05-20 | Pline Steven L. | Transferring data in selectable transfer modes |
US20040139253A1 (en) * | 2003-01-13 | 2004-07-15 | Perego Richard E. | Memory system and device with serialized data transfer |
Also Published As
Publication number | Publication date |
---|---|
CN101583933B (zh) | 2012-09-05 |
GB0908637D0 (en) | 2009-06-24 |
CN101583933A (zh) | 2009-11-18 |
US20080147897A1 (en) | 2008-06-19 |
WO2008054696A1 (en) | 2008-05-08 |
GB2458040A (en) | 2009-09-09 |
US8019907B2 (en) | 2011-09-13 |
DE112007002619T5 (de) | 2009-09-10 |
US20100228891A1 (en) | 2010-09-09 |
JP2010508600A (ja) | 2010-03-18 |
DE112007002619B4 (de) | 2022-08-04 |
KR20090077015A (ko) | 2009-07-13 |
TW200832406A (en) | 2008-08-01 |
US7694031B2 (en) | 2010-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI489456B (zh) | 包含雙模式記憶體互連之記憶體控制器 | |
JP5300732B2 (ja) | 高速シリアルバッファを有するメモリシステム | |
US9979432B2 (en) | Programmable distributed data processing in a serial link | |
US10423567B2 (en) | Unidirectional clock signaling in a high-speed serial link | |
US7219294B2 (en) | Early CRC delivery for partial frame | |
US8145868B2 (en) | Method and system for providing frame start indication in a memory system having indeterminate read data latency | |
US7395485B2 (en) | Check codes mapped across multiple frames | |
US7447953B2 (en) | Lane testing with variable mapping | |
US7979616B2 (en) | System and method for providing a configurable command sequence for a memory interface device | |
US7212423B2 (en) | Memory agent core clock aligned to lane | |
US8489912B2 (en) | Command protocol for adjustment of write timing delay | |
US7861140B2 (en) | Memory system including asymmetric high-speed differential memory interconnect | |
US20060004953A1 (en) | Method and apparatus for increased memory bandwidth | |
TW201209821A (en) | Status indication in a system having a plurality of memory devices | |
EP2359372A1 (en) | Error detection method and a system including one or more memory devices |