專利名稱:存儲(chǔ)器命令時(shí)序的主動(dòng)訓(xùn)練的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施例一般涉及數(shù)據(jù)處理系統(tǒng)領(lǐng)域,并且更特別地涉及用于存儲(chǔ)器命令 時(shí)序(memory command timing)的主云力訓(xùn)練、(active training)的系統(tǒng)、方法禾口裝置。
背景技術(shù):
在某些存儲(chǔ)器體系結(jié)構(gòu)中,存儲(chǔ)控制器通過(guò)命令/控制(CMD/CTL)總線以及數(shù)據(jù) 總線與存儲(chǔ)模塊通信。CMD/CTL總線上的快的信號(hào)傳輸速率推動(dòng)著對(duì)于在CMD/CTL信號(hào)和 時(shí)鐘(CLK)之間進(jìn)行嚴(yán)格的時(shí)序控制(timing control)的需求。在傳統(tǒng)系統(tǒng)中,基于主板 布線準(zhǔn)則、系統(tǒng)仿真和經(jīng)驗(yàn)數(shù)據(jù)的組合來(lái)對(duì)CMD/CTL信號(hào)和CLK之間的相對(duì)間隔進(jìn)行靜態(tài)編程。
本發(fā)明的實(shí)施例通過(guò)示例的方式而非通過(guò)限制性的方式在附圖的圖中示出,在附 圖中,同樣的附圖標(biāo)記指代類似的元件。附圖1是示出根據(jù)本發(fā)明實(shí)施例實(shí)現(xiàn)的計(jì)算系統(tǒng)的所選擇方面的高級(jí)框圖;附圖2是示出根據(jù)本發(fā)明實(shí)施例的主動(dòng)CMD/CTL訓(xùn)練的所選擇方面的框圖;附圖3是示出根據(jù)本發(fā)明實(shí)施例的用于確定信號(hào)延遲的電路的所選擇方面的框 圖;附圖4是示出根據(jù)本發(fā)明實(shí)施例的信號(hào)延遲和延遲設(shè)置之間的關(guān)系的圖表;附圖5是示出根據(jù)本發(fā)明實(shí)施例的用于CMD/CTL訓(xùn)練的方法的所選擇方面的流程 圖;附圖6是示出用于讀DQ-DQS訓(xùn)練的方法的所選擇方面的流程圖。
具體實(shí)施例方式本發(fā)明實(shí)施例通常針對(duì)用于對(duì)存儲(chǔ)器命令時(shí)序進(jìn)行主動(dòng)訓(xùn)練的系統(tǒng)、方法和裝 置。正如前面提到的,在傳統(tǒng)系統(tǒng)中,CMD/CTL時(shí)序是基于仿真結(jié)果、經(jīng)驗(yàn)數(shù)據(jù)積累等而被 靜態(tài)地設(shè)置的。這種方法不能解決設(shè)備可變性、板可變性或規(guī)范違反(這種情況在動(dòng)態(tài)隨 機(jī)存取存儲(chǔ)器或DRAM中很常見(jiàn))。除此之外,這種傳統(tǒng)的方法需要花費(fèi)很大的力氣去表征 跨越寬解空間的最佳時(shí)序。本發(fā)明實(shí)施例提供了針對(duì)CMD/CTL時(shí)序的主動(dòng)訓(xùn)練。針對(duì)CMD/ CTL的主動(dòng)訓(xùn)練是一個(gè)困難的挑戰(zhàn),這是由于來(lái)自DRAM的任何清楚的反饋信號(hào)的缺乏、以 及任何對(duì)時(shí)序的違反會(huì)使DRAM進(jìn)入未知狀態(tài)的事實(shí)而導(dǎo)致的。如下面參考附圖1-5所進(jìn) 一步討論的那樣,存儲(chǔ)系統(tǒng)中預(yù)先存在的機(jī)構(gòu)可以被適配為在存儲(chǔ)模塊和存儲(chǔ)控制器之間 提供主動(dòng)反饋。附圖1是示出了根據(jù)本發(fā)明實(shí)施例實(shí)現(xiàn)的計(jì)算系統(tǒng)的所選擇方面的高級(jí)框圖。系 統(tǒng)100包括集成電路102、DRAM子系統(tǒng)104和存儲(chǔ)器互連106。在可選實(shí)施例中,系統(tǒng)100 可以包括更多元件、更少元件和/或不同元件。
集成電路102包括處理器核108和邏輯110。處理器核108可以是包括一般處理 器核、圖形處理器核等的各式各樣的處理器核中的任一種。邏輯110廣義地表示一系列廣 泛的邏輯,例如包括存儲(chǔ)控制器、其他輸入/輸出(10)接口等。雖然附圖1示出了其中存 儲(chǔ)控制器與處理器核集成在一起的實(shí)施例,但是可以理解的是,在可選實(shí)施例中,存儲(chǔ)控制 器和處理器核可以處于分離的集成電路中。存儲(chǔ)器互連106耦合集成電路102與DRAM子系統(tǒng)104。在某些實(shí)施例中,互連106 為源同步互連。術(shù)語(yǔ)“源同步”是指在同一互連上傳輸信號(hào)和CLK,并使用CLK以在接收器 處采樣信號(hào)。在下面描述的實(shí)施例中,使用延遲鎖定環(huán)/相位內(nèi)插器(DLL/PI)(其將時(shí)鐘 周期分成128個(gè)等間隔相位)來(lái)生成CLK。在可選實(shí)施例中,可以使用不同的機(jī)制來(lái)劃分 CLK,并且可以將CLK分成不同數(shù)量的相位。如下面進(jìn)一步描述的那樣,可以使用數(shù)字控制 碼(例如選擇碼)將CLK置于周期中的任何位置。在某些實(shí)施例中,存儲(chǔ)器互連106包括數(shù)據(jù)互連和CMD/CTL互連。數(shù)據(jù)互連可以 具有多分支布局(multi-drop topology),而CMD/CTL互連可以具有菊鏈?zhǔn)讲季帧T诒緦@?中,術(shù)語(yǔ)“總線”與“互連”被同義地使用。DRAM子系統(tǒng)104為系統(tǒng)100提供主存儲(chǔ)器的至少一部分。在圖示的實(shí)施例中, DRAM子系統(tǒng)104包括一個(gè)或多個(gè)存儲(chǔ)模塊112。模塊112可以是包括雙列直插存儲(chǔ)模塊 (DIMMs)、寄存式 DIMMs (RDIMMs)、無(wú)緩沖 DIMMs (UDIMMs)、小型 DIMMs (S0_DIMMs)等的各式 各樣的存儲(chǔ)模塊中的任何一種。每一個(gè)模塊112可以有一個(gè)或多個(gè)DRAM 114(以及可能的 其他元件,如寄存器、緩沖器等)。DRAM 114可以是包括幾乎任意代的雙倍數(shù)據(jù)速率(DDR) DRAM的各式各樣的設(shè)備中的任何一種。在某些實(shí)施例中,DRAM 114(以及系統(tǒng)100的其他 部件)符合(至少部分符合)一個(gè)或多個(gè)定義DDR3的規(guī)范。基本輸入/輸出系統(tǒng)(BIOS) 116尤其提供用于對(duì)系統(tǒng)100的所選擇方面進(jìn)行初始 化的邏輯。在某些實(shí)施例中,BI0S116包括邏輯118。如下面參照附圖2-5進(jìn)一步討論的那 樣,邏輯118使用反饋機(jī)構(gòu)來(lái)主動(dòng)訓(xùn)練互連106的CMD/CTL總線。例如,邏輯118可以使用 反饋機(jī)構(gòu)111來(lái)主動(dòng)訓(xùn)練CMD/CTL總線。如下面進(jìn)一步討論的,在某些實(shí)施例中,機(jī)構(gòu)111 包括RX DQ/DQS訓(xùn)練有限狀態(tài)機(jī)(FSM)。在可選實(shí)施例中,機(jī)構(gòu)111可以包括不同的或附加 的邏輯。在再一個(gè)實(shí)施例中,該機(jī)構(gòu)可以在固件中(例如在BI0S116中)實(shí)現(xiàn)(或部分實(shí) 現(xiàn))。附圖2是示出根據(jù)本發(fā)明實(shí)施例的主動(dòng)CMD/CTL訓(xùn)練的所選擇方面的框圖。計(jì)算 系統(tǒng)200包括經(jīng)由互連220與存儲(chǔ)模塊204耦合的集成電路202。在其他實(shí)施例中,系統(tǒng) 200可以具有更多元件、更少元件和/或不同元件。系統(tǒng)200可以是包括臺(tái)式計(jì)算機(jī)、膝上 型計(jì)算機(jī)、服務(wù)器、消費(fèi)性電子設(shè)備(如游戲系統(tǒng))、移動(dòng)互聯(lián)網(wǎng)設(shè)備等的各種計(jì)算系統(tǒng)中 的任何一種。在某些實(shí)施例中,集成電路202包括一個(gè)或多個(gè)處理器核和集成的存儲(chǔ)控制器。 在其他實(shí)施例中,集成電路202為芯片組的元件。在圖示的實(shí)施例中,互連220包括數(shù)據(jù) 總線和CMD/CTL總線。數(shù)據(jù)總線可以具有多分支布局,而CMD/CTL總線可以具有菊鏈?zhǔn)?布局。CMD信號(hào)可以包括存儲(chǔ)器地址(MA)、存儲(chǔ)體地址(bank address) (BA)、行地址選 通(RAS)、列地址選通(CAS)、允許寫入(WE)等??刂菩盘?hào)可以包括片內(nèi)終結(jié)器(on-die termination) (0DT)、芯片選擇(CS)、時(shí)鐘使能(CE)等。CMD線可以被跨越多級(jí)(rank)共享,并且每一級(jí)可以有單獨(dú)的CTL線。在可選實(shí)施例中,互連220可以有更多元件、更少元 件和/或不同元件。模塊204可以是包括DIMM、小型DIMM(SO-DIMMs)、RDIMMs、UDIMMs等的各式各樣 的存儲(chǔ)模塊中的任何一種。每一個(gè)模塊包括多個(gè)DRAM。在某些實(shí)施例中,DRAM(以及系統(tǒng) 200的其他元件)至少部分遵守一個(gè)或多個(gè)DDR3規(guī)范。系統(tǒng)200包括用于利用模塊204與集成電路202之間的反饋來(lái)使能CMD時(shí)序的主 動(dòng)訓(xùn)練的功能部件。那些功能部件包括用于控制該訓(xùn)練的邏輯(例如224)、用于給信號(hào)不 同數(shù)量的延遲的硬件(例如,214、216和218)、以及用于提供反饋機(jī)構(gòu)的邏輯(例如208和 210)。在可選實(shí)施例中,系統(tǒng)200可以包括用以主動(dòng)訓(xùn)練CMD時(shí)序的更多的功能部件和/ 或不同的功能部件。還有很多方法可以用來(lái)主動(dòng)訓(xùn)練CMD時(shí)序。首先,你可以對(duì)CMD和CTL的延遲設(shè) 置進(jìn)行靜態(tài)編程,以及然后相對(duì)于CMD和CTL移動(dòng)CLK以確定哪些對(duì)準(zhǔn)(alignment)是有 效的。第二種方法是靜態(tài)編程CTL對(duì)(versus) CLK,以及然后一起移動(dòng)CLK和CTL,以確定 哪些對(duì)準(zhǔn)(alignment)是有效的。第三種方法是使用兩階段訓(xùn)練流程,其中第一種方法和 之后的第二種方法在連續(xù)的階段中加以執(zhí)行。另外,其他組合也是可以的。例如,可以固定 CLK,并可以相對(duì)于該CLK來(lái)移動(dòng)CMD和CTL中的一個(gè)或兩個(gè)。下面描述的實(shí)施例針對(duì)用于主動(dòng)CMD訓(xùn)練的第一種方法。這種方法解決了用于采 樣CMD的建立時(shí)序和保持時(shí)序的問(wèn)題。但是可以理解的是,本發(fā)明的可選實(shí)施例可以使用 第一、第二和第三種方法的幾乎任何組合。BIOS 222包括邏輯224。在某些實(shí)施例中,邏輯224啟動(dòng)并控制訓(xùn)練CMD時(shí)序的 過(guò)程。例如,邏輯224可以為CMD和CTL設(shè)置初始值,并利用反饋機(jī)構(gòu)(208和210)來(lái)確定 多個(gè)CLK延遲設(shè)置的通過(guò)/失敗結(jié)果。然后,邏輯224可以基于該通過(guò)/失敗結(jié)果來(lái)確定 合適的CLK延遲設(shè)置。下面參照附圖5對(duì)邏輯224進(jìn)行進(jìn)一步討論。在圖示的實(shí)施例中,邏輯224使用預(yù)先存在的機(jī)構(gòu)來(lái)為訓(xùn)練CMD時(shí)序提供反饋。特 別是,邏輯224可以使用RX DQ/DQS訓(xùn)練有限狀態(tài)機(jī)(FSM)作為反饋機(jī)構(gòu)。為了便于說(shuō)明, 將RX DQ/DQS訓(xùn)練FSM顯示在兩個(gè)分別的部分中FSM 208禾口 DATA210。FSM 208禾口 DATA210 協(xié)同工作以發(fā)送信號(hào)給DRAM206,并接收從DRAM 206返回的信息。例如,F(xiàn)SM 208可以發(fā)送 具有與CLK對(duì)準(zhǔn)的各種CMD。如果DRAM 206接收并正確解釋該CMD,則CMD和CLK具有合 適的對(duì)準(zhǔn)(alignment)。當(dāng)這種情況發(fā)生時(shí),DRAM 206通過(guò)在DQ/DQS總線上將模式(例如 觸發(fā)模式(toggle pattern))傳遞到集成電路202來(lái)進(jìn)行響應(yīng)。如果DATA210接收到針對(duì) CMD和CLK之間的給定對(duì)準(zhǔn)的模式(pattern),則測(cè)試通過(guò),并且DATA210會(huì)發(fā)送成功測(cè)試的 指示給邏輯224。如果DATA210沒(méi)有接收到針對(duì)給定對(duì)準(zhǔn)的模式,則針對(duì)該特定設(shè)置的測(cè)試 失敗,并且DATA210會(huì)發(fā)送不成功的測(cè)試的指示給邏輯224。在某些實(shí)施例中,為了 FSM可以通過(guò),DRAM必須正確地登記(register)MSR命令、 Activate命令和多個(gè)Read CAS (列地址選通)命令。如果DRAM 206沒(méi)能正確地登記這些命 令中的任一者,則DRAM將不能在DQ和DQS上返回正確的信號(hào),并且RX訓(xùn)練會(huì)卡在FindOpen 中。最終會(huì)基于可編程超時(shí)計(jì)數(shù)器而將其標(biāo)記為失敗。使用預(yù)先存在的反饋機(jī)構(gòu)例如RX DQ/DQS FSM提供了許多優(yōu)點(diǎn)。首先,因?yàn)樵S多控 制器已經(jīng)有了該FSM,所以沒(méi)有必要在許多控制器中增加新的邏輯。此外,只需要命令流量(command traffic)起作用,而不需要任何起點(diǎn)。這種方法不會(huì)在很大程度上依賴于相同信 道上的其他DRAM設(shè)備上的MRS編程(例如,盡管RX眼可能是比較小的,但是FSM仍然可以 通過(guò),而無(wú)需在非目標(biāo)(non-targeted) DIMM中開(kāi)啟片內(nèi)終結(jié)器(on-die termination))。 這種方法針對(duì)UDIMM和RDIMM 二者都可以無(wú)縫地(seamlessly)工作。它提供了良好的覆 蓋度,因?yàn)樗枰舾刹煌腃MD引腳以滿足時(shí)序要求。這些引腳可以包括RAS (行地址選 通)、WE (允許寫入)、CS (芯片選擇)、BA[1:0]和A[2:0]。使用RX DQ/DQS FSM還消除了 錯(cuò)誤通過(guò)的風(fēng)險(xiǎn)。在某些情況下(例如一些RDIMM實(shí)施例),可以為通過(guò)/失敗邏輯增加額 外的反饋,例如來(lái)自寄存器或類似設(shè)備的地址奇偶錯(cuò)。邏輯224針對(duì)各種CLK延遲設(shè)置收集通過(guò)/失敗結(jié)果,并且決定在操作時(shí)間內(nèi)哪 個(gè)延遲設(shè)置用于CLK。例如,可能會(huì)有一個(gè)或多個(gè)這樣的CLK延遲設(shè)置范圍,即在該范圍內(nèi) 測(cè)試通過(guò)。在某些實(shí)施例中,邏輯224確定哪個(gè)范圍是最長(zhǎng)的范圍。例如,考慮這樣一個(gè)實(shí) 施例,其中有128個(gè)可能的CLK延遲設(shè)置(0到127)。此外,假設(shè)有兩個(gè)通過(guò)的設(shè)置范圍 1-3和10-122。邏輯224可以選擇第二個(gè)范圍(10-122)。在某些實(shí)施例中,邏輯224則確 定最大的通過(guò)區(qū)域的中心。繼續(xù)同樣的例子,邏輯224可以計(jì)算哪個(gè)設(shè)置對(duì)應(yīng)于該通過(guò)區(qū) 域的中央(例如(122+10)/2 = 66)。在邏輯224確定了哪個(gè)延遲值對(duì)應(yīng)于該通過(guò)區(qū)域的中 心(如66)以后,則它可以將CLK的延遲設(shè)定(例如,為控制CLK的延遲的相位內(nèi)插器提供 數(shù)字選擇碼)為適當(dāng)值。CTL 214、CMD 216和CLK 218分別包括對(duì)CTL、CMD和CLK信號(hào)給予延遲的電路。 例如,鎖相環(huán)(PLL)212可以為CTL214、CMD216和CLK218中的每一個(gè)提供CLK。CTL 214、 CMD 216和CLK 218可以包括將該CLK劃分為多個(gè)相位(如128個(gè))的電路,以及選擇將 CTL、CMD和CLK信號(hào)對(duì)準(zhǔn)到這些相位中的哪個(gè)相位的電路。下面參照附圖3_4進(jìn)一步討論 該電路的示例。附圖3是示出用于確定信號(hào)延遲的電路的所選方面的框圖。鎖相環(huán)(PLL)302將 CLK分發(fā)給多個(gè)電路(例如附圖2中所示的CTL 214、CMD 216和CLK218)。延遲鎖定環(huán) (DLL) 304接收CLK并將其劃分為多個(gè)(如16個(gè))等間隔的CLK。這些時(shí)鐘被提供給相位 內(nèi)插器(PI)306,該相位內(nèi)插器通過(guò)內(nèi)插相鄰相位來(lái)產(chǎn)生更細(xì)間隔尺寸(granularity)的 CLK (如128個(gè))。PI 306還接收數(shù)字選擇碼312,該碼選出時(shí)鐘的相位。該被選擇的相位 控制鎖存器308以給予XX DDR CLK 314該所選擇的延遲??梢允褂妙愃频奶幚韥?lái)給予CMD 和CTL適當(dāng)?shù)难舆t。附圖4是示出根據(jù)本發(fā)明實(shí)施例的延遲設(shè)置和信號(hào)延遲之間的關(guān)系的圖表??v軸 示出所選擇的相位(例如以微微秒計(jì)(in pico seconds)),而橫軸表示設(shè)置。圖示的延遲 和設(shè)置之間的關(guān)系僅僅是示例性的,并且在其他實(shí)施例中關(guān)系可以是不同的。附圖5是示出根據(jù)本發(fā)明實(shí)施例的用于CMD/CTL訓(xùn)練的方法的所選擇方面的流程 圖。參照502,設(shè)置CMD和CTL的延遲推出(delay push out)。在本專利中,術(shù)語(yǔ)“延遲設(shè) 置”和“延遲推出”被同義地使用。在某些實(shí)施例中,訓(xùn)練邏輯(例如附圖2中的邏輯224) 通過(guò)為CTL 214和CMD 216(附圖2中所示)的相位內(nèi)插器提供適當(dāng)?shù)倪x擇碼來(lái)設(shè)置延遲 推出。參照504,將CLK的延遲推出設(shè)置為初始值。例如,訓(xùn)練邏輯可以為CLK218的相 位內(nèi)插器提供適當(dāng)?shù)倪x擇碼,以將該延遲推出設(shè)置為初始值。在某些實(shí)施例中,該初始值為零。在其他實(shí)施例中,可以使用不同的初始值。參照506,訓(xùn)練邏輯使用反饋機(jī)構(gòu)(例如附圖2中所示的208和210)來(lái)針對(duì)各種 CLK設(shè)置測(cè)試CLK和CMD/CTL之間的對(duì)準(zhǔn)。例如,針對(duì)多個(gè)CLK設(shè)置中的每一個(gè),該訓(xùn)練邏 輯使用FSM 208發(fā)送多個(gè)命令/控制信號(hào),并且還使用DATA210來(lái)確定DRAM是否響應(yīng)于該 命令/控制信號(hào)提供了適當(dāng)?shù)哪J?。針?duì)該測(cè)試的每一次迭代,訓(xùn)練邏輯記錄由DATA 210 提供的通過(guò)/失敗指示。在該測(cè)試的每一次迭代之后,復(fù)位存儲(chǔ)模塊(508),并且將CLK的 延遲設(shè)置編程為下一個(gè)設(shè)置??梢赃x擇每一次迭代之間的步長(zhǎng),以產(chǎn)生準(zhǔn)確性和運(yùn)行時(shí)間 之間的理想折衷。例如,如果CLK被分成128個(gè)相位,并且步長(zhǎng)為4,則該測(cè)試可能具有32 次迭代。附圖5示出了測(cè)試的兩個(gè)循環(huán)以示出多個(gè)通道可以被并行地訓(xùn)練。參照510,訓(xùn)練邏輯找出在測(cè)試期間產(chǎn)生通過(guò)結(jié)果的CLK延遲設(shè)置的最大范圍。使 用與前面所討論的相同的例子,可能有兩個(gè)產(chǎn)生通過(guò)結(jié)果的CLK設(shè)置范圍1-3和10-122。 訓(xùn)練邏輯將選擇第二個(gè)范圍(10-122),因?yàn)榈诙€(gè)范圍最大。然后,訓(xùn)練邏輯找出該最大通 過(guò)范圍的中心,并將該CLK延遲設(shè)置設(shè)定為該最大通過(guò)范圍的中心。繼續(xù)相同的例子,訓(xùn)練 邏輯可以計(jì)算該第二范圍的中心(如(122+10)/2 = 66),并且然后利用對(duì)應(yīng)于所選擇范圍 的中心(例如對(duì)應(yīng)于66)的選擇碼來(lái)對(duì)CLK延遲設(shè)置進(jìn)行編程。在對(duì)一個(gè)或多個(gè)CLK延遲設(shè)置進(jìn)行編程以后,在512處可以復(fù)位存儲(chǔ)模塊。這為 啟動(dòng)過(guò)程的其他操作提供了“清白的歷史”??梢葬槍?duì)存儲(chǔ)子系統(tǒng)(如附圖1中示出的子系 統(tǒng)104)中的每一個(gè)通道上的每一級(jí)(rank)重復(fù)上面描述的進(jìn)程,從而在CLK和CMD/CTL 之間提供合適的對(duì)準(zhǔn)。命令訓(xùn)練方案(例如DDR3命令訓(xùn)練方案)的一個(gè)挑戰(zhàn)就是運(yùn)行該訓(xùn)練和在各次 迭代之間復(fù)位DIMM所花費(fèi)的時(shí)間。在某些實(shí)施例中,通過(guò)使用下面的技術(shù)將這個(gè)時(shí)間減少 到每次迭代2ms以下??梢蕴峁┛删幊逃?jì)數(shù)器來(lái)確定RX訓(xùn)練機(jī)使用的采樣數(shù)??梢蕴峁?可編程超時(shí)計(jì)數(shù)器以用于RX訓(xùn)練機(jī)。同樣,特別定制(并減少的)復(fù)位序列可用于DRAM。 可以使用可編程步長(zhǎng)來(lái)避免執(zhí)行完所有的128次迭代。如果在初始(進(jìn)程搜索(course search))期間沒(méi)有發(fā)現(xiàn)錯(cuò)誤,則可以用第二遍,該第二遍采用CLK相位中的更細(xì)的間隔尺 寸(granularity)。在某些實(shí)施例中,不針對(duì)通過(guò)的測(cè)試復(fù)位DRAM。同樣,可以并行地訓(xùn)練 所有通道。另外,可以在具有相同時(shí)鐘的各級(jí)(rank)之間共享CLK延遲設(shè)置。上面描述的用于主動(dòng)訓(xùn)練CMD時(shí)序的機(jī)構(gòu)允許更高的傳輸頻率、更高的系統(tǒng)性能 (例如在某些配置中允許1N時(shí)序)和更快的上市時(shí)間。其以很低的成本提供了這些優(yōu)點(diǎn)。 該機(jī)構(gòu)非常靈活,并且可用于各種各樣的系統(tǒng)中。本發(fā)明實(shí)施例的元件還可以被提供作為機(jī)器可讀介質(zhì)以用于存儲(chǔ)機(jī)器可執(zhí)行指 令。機(jī)器可讀介質(zhì)可以包括但不限于,快閃存儲(chǔ)器、光盤、光盤只讀存儲(chǔ)器(⑶-ROM)、數(shù)字多 功能/視頻盤(DVD) ROM、隨機(jī)存取存儲(chǔ)器(RAM)、可擦除可編程只讀存儲(chǔ)器(EPR0M)、電可擦 除可編程只讀存儲(chǔ)器(EEPR0M)、磁卡或光卡、傳播媒體或其他類型的適用于存儲(chǔ)電子指令 的機(jī)器可讀介質(zhì)。例如,本發(fā)明的實(shí)施例可以作為計(jì)算機(jī)程序被下載,該計(jì)算機(jī)程序可以經(jīng) 由通信鏈路(例如調(diào)制解調(diào)器或網(wǎng)絡(luò)連接)通過(guò)在載波或其他傳播媒體中包含的數(shù)據(jù)信號(hào) 從遠(yuǎn)程計(jì)算機(jī)(如服務(wù)器)傳輸至發(fā)出請(qǐng)求的計(jì)算機(jī)(如客戶端)。在上面的描述中,使用特定的術(shù)語(yǔ)來(lái)描述本發(fā)明的實(shí)施例。例如,術(shù)語(yǔ)“邏輯”表示 用于執(zhí)行一個(gè)或多個(gè)功能的硬件、固件、軟件(或其任何組合)。比如,“硬件”的例子包括但不限于集成電路、有限狀態(tài)機(jī)、或者甚至是組合邏輯。集成電路可以采用處理器的形式, 諸如微處理器、專用集成電路、數(shù)字信號(hào)處理器、微控制器等。應(yīng)該明了的是,貫穿本說(shuō)明書提到的“一個(gè)實(shí)施例”或“實(shí)施例”意思是結(jié)合該實(shí) 施例描述的特定特征、結(jié)構(gòu)或特性包含在本發(fā)明的至少一個(gè)實(shí)施例中。因此,要強(qiáng)調(diào)和應(yīng)當(dāng) 明了的是,在本說(shuō)明書的各部分中對(duì)于“實(shí)施例”或“一個(gè)實(shí)施例”或“可選實(shí)施例”的兩個(gè) 或更多個(gè)提及不一定都涉及同一實(shí)施例。此外,特定特征、結(jié)構(gòu)或特性可根據(jù)適當(dāng)情況結(jié)合 在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中。類似的,應(yīng)該明了的是,在對(duì)本發(fā)明實(shí)施例的上述描述中,有時(shí)候可以將各種特征 集合到一個(gè)實(shí)施例、附圖或?qū)ζ涞拿枋鲋?,以使得公開(kāi)內(nèi)容更為流暢,并有助于對(duì)各發(fā)明方 面中的一個(gè)或多個(gè)方面的理解。然而,并不能將本公開(kāi)的方法解釋為反映了這樣一種意圖, 即與每個(gè)權(quán)利要求中所清楚地?cái)⑹龅奶卣飨啾?,所要求保護(hù)的主題需要更多的特征。恰恰 相反,正如下面的權(quán)利要求所反映的那樣,發(fā)明方面在于比單個(gè)前面公開(kāi)的實(shí)施例的所有 特征更少的特征。因此,在詳細(xì)描述之后的權(quán)利要求書因此被清楚地結(jié)合到該詳細(xì)描述中。
權(quán)利要求
一種裝置,包括用于為鏈接存儲(chǔ)控制器與存儲(chǔ)子系統(tǒng)的CMD/CTL互連設(shè)定CMD延遲設(shè)置以及設(shè)定CTL延遲設(shè)置的邏輯;用于設(shè)定初始CLK延遲設(shè)置的邏輯;用于給位于存儲(chǔ)控制器中的互連訓(xùn)練機(jī)構(gòu)順序地提供多個(gè)CLK延遲設(shè)置的邏輯,以及針對(duì)所述多個(gè)CLK延遲設(shè)置中的每一個(gè),用于記錄由互連訓(xùn)練機(jī)構(gòu)提供的通過(guò)或失敗結(jié)果的邏輯;用于至少部分根據(jù)互連訓(xùn)練機(jī)構(gòu)所提供的結(jié)果來(lái)選擇所述多個(gè)CLK延遲設(shè)置之一的邏輯;和用于將CLK延遲設(shè)定為所選擇的CLK延遲設(shè)置的邏輯。
2.如權(quán)利要求1所述的裝置,其中,所述互連訓(xùn)練機(jī)構(gòu)包括RXDQ/DQS訓(xùn)練有限狀態(tài)機(jī)。
3.如權(quán)利要求2所述的裝置,其中,用于選擇所述多個(gè)CLK延遲設(shè)置之一的邏輯包括 用于識(shí)別一個(gè)或多個(gè)通過(guò)區(qū)域的邏輯;用于選擇最大的通過(guò)區(qū)域的邏輯;以及用于識(shí)別與所述最大的通過(guò)區(qū)域的中心相對(duì)應(yīng)的CLK延遲設(shè)置的邏輯。
4.如權(quán)利要求2所述的裝置,其中,所述存儲(chǔ)控制器被集成到與處理器相同的管芯上。
5.如權(quán)利要求2所述的裝置,其中,所述CMD/CTL互連是源同步互連。
6.如權(quán)利要求2所述的裝置,其中,所述裝置包括用于計(jì)算系統(tǒng)的基本輸入/輸出系統(tǒng)。
7.如權(quán)利要求2所述的裝置,其中,所述存儲(chǔ)子系統(tǒng)包括多個(gè)雙倍數(shù)據(jù)速率(DDR)3存 儲(chǔ)設(shè)備。
8.一種方法,包括為鏈接存儲(chǔ)控制器與存儲(chǔ)子系統(tǒng)的CMD/CTL互連設(shè)定CMD延遲設(shè)置; 為鏈接存儲(chǔ)控制器與存儲(chǔ)子系統(tǒng)的CMD/CTL互連設(shè)定CTL延遲設(shè)置; 設(shè)定初始CLK延遲設(shè)置;給位于存儲(chǔ)控制器中的互連訓(xùn)練機(jī)構(gòu)順序地提供多個(gè)CLK延遲設(shè)置; 針對(duì)所述多個(gè)CLK延遲設(shè)置中的每一個(gè),記錄由互連訓(xùn)練機(jī)構(gòu)提供的通過(guò)或失敗結(jié) 果;以及至少部分根據(jù)互連訓(xùn)練機(jī)構(gòu)所提供的結(jié)果來(lái)選擇所述多個(gè)CLK延遲設(shè)置之一。
9.如權(quán)利要求8所述的方法,進(jìn)一步包括 將CLK延遲設(shè)定為所選擇的CLK延遲設(shè)置。
10.如權(quán)利要求9所述的方法,其中,所述互連訓(xùn)練機(jī)構(gòu)包括RXDQ/DQS訓(xùn)練有限狀態(tài)機(jī)。
11.如權(quán)利要求10所述的方法,其中,選擇所述多個(gè)CLK延遲設(shè)置之一包括 識(shí)別一個(gè)或多個(gè)通過(guò)區(qū)域;選擇最大的通過(guò)區(qū)域;以及識(shí)別與所述最大的通過(guò)區(qū)域的中心相對(duì)應(yīng)的CLK延遲設(shè)置。
12.如權(quán)利要求10所述的方法,其中,所述存儲(chǔ)控制器被集成到與處理器相同的管芯上。
13.如權(quán)利要求10所述的方法,其中,所述CMD/CTL互連是源同步互連。
14.如權(quán)利要求10所述的方法,其中,所述裝置包括用于計(jì)算系統(tǒng)的基本輸入/輸出系統(tǒng)。
15.如權(quán)利要求10所述的方法,其中,所述存儲(chǔ)子系統(tǒng)包括多個(gè)雙倍數(shù)據(jù)速率(DDR)3 存儲(chǔ)設(shè)備。
16.一種系統(tǒng),包括存儲(chǔ)控制器,其包括互連訓(xùn)練機(jī)構(gòu);以及與所述存儲(chǔ)控制器耦合的集成電路,所述集成電路包括用于為鏈接存儲(chǔ)控制器與存儲(chǔ)子系統(tǒng)的CMD/CTL互連設(shè)定CMD延遲設(shè)置以及設(shè)定CTL 延遲設(shè)置的邏輯;用于設(shè)定初始CLK延遲設(shè)置的邏輯;用于給位于存儲(chǔ)控制器中的互連訓(xùn)練機(jī)構(gòu)順序地提供多個(gè)CLK延遲設(shè)置的邏輯,以及 針對(duì)所述多個(gè)CLK延遲設(shè)置中的每一個(gè),用于記錄由互連訓(xùn)練機(jī)構(gòu)提供的通過(guò)或失敗結(jié)果 的邏輯;用于至少部分根據(jù)互連訓(xùn)練機(jī)構(gòu)所提供的結(jié)果來(lái)選擇所述多個(gè)CLK延遲設(shè)置之一的 邏輯;和用于將CLK延遲設(shè)定為所選擇的CLK延遲設(shè)置的邏輯。
17.如權(quán)利要求16所述的系統(tǒng),其中,所述互連訓(xùn)練機(jī)構(gòu)包括RXDQ/DQS訓(xùn)練有限狀態(tài)機(jī)。
18.如權(quán)利要求17所述的系統(tǒng),其中,用于選擇所述多個(gè)CLK延遲設(shè)置之一的邏輯包括用于識(shí)別一個(gè)或多個(gè)通過(guò)區(qū)域的邏輯; 用于選擇最大的通過(guò)區(qū)域的邏輯;以及用于識(shí)別與所述最大的通過(guò)區(qū)域的中心相對(duì)應(yīng)的CLK延遲設(shè)置的邏輯。
19.如權(quán)利要求17所述的系統(tǒng),其中,所述存儲(chǔ)控制器被集成到與處理器相同的管芯上。
20.如權(quán)利要求17所述的系統(tǒng),其中,所述CMD/CTL互連是源同步互連。
21.如權(quán)利要求17所述的系統(tǒng),其中,所述集成電路包括用于計(jì)算系統(tǒng)的基本輸入/輸 出系統(tǒng)。
22.如權(quán)利要求17所述的系統(tǒng),其中,所述存儲(chǔ)子系統(tǒng)包括多個(gè)雙倍數(shù)據(jù)速率(DDR)3 存儲(chǔ)設(shè)備。
全文摘要
本發(fā)明的實(shí)施例一般針對(duì)用于對(duì)存儲(chǔ)器命令時(shí)序進(jìn)行主動(dòng)訓(xùn)練的系統(tǒng)、方法和裝置。在某些實(shí)施例中,使用存儲(chǔ)模塊和存儲(chǔ)控制器之間的主動(dòng)反饋來(lái)主動(dòng)訓(xùn)練CMD/CTL時(shí)序。還描述并請(qǐng)求保護(hù)了其他實(shí)施例。
文檔編號(hào)G06F13/16GK101859286SQ20101018745
公開(kāi)日2010年10月13日 申請(qǐng)日期2010年4月2日 優(yōu)先權(quán)日2009年4月3日
發(fā)明者B·L·斯普里, C·P·莫扎克, J·V·洛夫萊西, T·Z·舍恩博恩 申請(qǐng)人:英特爾公司