陸辰鴻, 胡越黎, 周 俊
(1.上海大學(xué)新型顯示技術(shù)及應(yīng)用集成教育部重點(diǎn)實(shí)驗(yàn)室,上海 200072; 2.上海大學(xué)機(jī)電工程與自動(dòng)化學(xué)院,上海 200072)
基于訓(xùn)練方式的存儲(chǔ)器時(shí)鐘信號(hào)的自適應(yīng)同步
陸辰鴻1,2, 胡越黎1,2, 周 俊2
(1.上海大學(xué)新型顯示技術(shù)及應(yīng)用集成教育部重點(diǎn)實(shí)驗(yàn)室,上海 200072; 2.上海大學(xué)機(jī)電工程與自動(dòng)化學(xué)院,上海 200072)
存儲(chǔ)器是現(xiàn)代電子系統(tǒng)的核心器件之一,常用于滿足不同層次的數(shù)據(jù)交換與存儲(chǔ)需求.然而頻率提高、時(shí)鐘抖動(dòng)、相位漂移以及不合理的布局布線等因素,都可能導(dǎo)致CPU對(duì)存儲(chǔ)器訪問(wèn)穩(wěn)定性的下降.針對(duì)同步動(dòng)態(tài)隨機(jī)讀寫存儲(chǔ)器(synchronous dynamic random access memory,SDRAM)接口的時(shí)鐘信號(hào)提出了一種自適應(yīng)同步的訓(xùn)練方法,即利用可控延遲鏈?zhǔn)箷r(shí)鐘相位按照訓(xùn)練模式偏移到最優(yōu)相位,從而保證了存儲(chǔ)器訪問(wèn)的穩(wěn)定性.在芯片內(nèi)部硬件上提供了一個(gè)可通過(guò)CPU控制的延遲電路,用來(lái)調(diào)整SDRAM時(shí)鐘信號(hào)的相位.在系統(tǒng)軟件上設(shè)計(jì)了訓(xùn)練程序,并通過(guò)與延遲電路的配合來(lái)達(dá)到自適應(yīng)同步的目的:當(dāng)CPU訪問(wèn)存儲(chǔ)器連續(xù)多次發(fā)生錯(cuò)誤時(shí),系統(tǒng)拋出異常并自動(dòng)進(jìn)入訓(xùn)練模式.該模式令CPU在SDRAM中寫入測(cè)試數(shù)據(jù)并讀回,比對(duì)二者是否一致.根據(jù)測(cè)試數(shù)據(jù)比對(duì)結(jié)果,按訓(xùn)練模式調(diào)整延遲電路的延遲時(shí)間.經(jīng)過(guò)若干次迭代,得到能正確訪問(wèn)存儲(chǔ)器的延遲時(shí)間范圍,即“有效數(shù)據(jù)采樣窗口”,取其中值即為SDRAM最優(yōu)時(shí)鐘相位偏移.完成訓(xùn)練后對(duì)系統(tǒng)復(fù)位,并采用新的時(shí)鐘相位去訪問(wèn)存儲(chǔ)器,從而保證讀寫的穩(wěn)定性.仿真實(shí)驗(yàn)結(jié)果表明,本方法能迅速而準(zhǔn)確地捕捉到有效數(shù)據(jù)采樣窗口的兩個(gè)端點(diǎn)位置,并以此計(jì)算出最佳的延遲單元數(shù)量,從而實(shí)現(xiàn)提高訪問(wèn)外部SDRAM存儲(chǔ)器穩(wěn)定性的目的.
同步動(dòng)態(tài)隨機(jī)讀寫存儲(chǔ)器;延遲電路;訓(xùn)練;自適應(yīng)
在嵌入式系統(tǒng)中,隨機(jī)讀寫存儲(chǔ)器占有十分重要的地位.根據(jù)其工作原理,可以分為靜態(tài)隨機(jī)讀寫存儲(chǔ)器(static random access memory,SRAM)和動(dòng)態(tài)隨機(jī)讀寫存儲(chǔ)器(dynamic random access memory,DRAM).由于SRAM中存儲(chǔ)單元的靜態(tài)特性,其輔助電路較少、結(jié)構(gòu)簡(jiǎn)單、速度較快,既可作為片上存儲(chǔ)器,集成于系統(tǒng)級(jí)芯片(system on a chip,SoC),也可用作片外存儲(chǔ)器.同步動(dòng)態(tài)隨機(jī)讀寫存儲(chǔ)器(synchronous dynamic random access memory, SDRAM)雖然結(jié)構(gòu)相對(duì)復(fù)雜、速度較慢,但其價(jià)格遠(yuǎn)低于SRAM,且容量也更大,因此在嵌入式系統(tǒng)領(lǐng)域中被廣泛使用,主要用于程序的存儲(chǔ)、執(zhí)行和數(shù)據(jù)的臨時(shí)保存等.
通常,存儲(chǔ)器數(shù)據(jù)訪問(wèn)錯(cuò)誤主要有如下兩種情形:判決錯(cuò)誤和時(shí)序錯(cuò)誤[1].前者可能是因信號(hào)線內(nèi)阻造成的壓降、阻抗不匹配而引起的信號(hào)畸變,因其在高速系統(tǒng)中采用低電壓降低功耗,電壓擺幅小,故受信號(hào)線內(nèi)阻影響大.后者往往是因?yàn)闆](méi)有滿足建立與保持時(shí)間,或者采樣位置錯(cuò)誤,因此對(duì)片外高速存儲(chǔ)器在PCB布線上有很多設(shè)計(jì)規(guī)范約束,并且需要有足夠的設(shè)計(jì)冗余,以保障其在惡劣環(huán)境下也能正常工作.
有研究表明,當(dāng)SDRAM的時(shí)鐘信號(hào)頻率達(dá)到或超過(guò)75 MHz時(shí),超過(guò)25.4 mm的布線長(zhǎng)度會(huì)產(chǎn)生傳輸線效應(yīng),而線寬與內(nèi)部間距的不合理會(huì)導(dǎo)致相鄰信號(hào)線產(chǎn)生串?dāng)_[2].串?dāng)_是指因相鄰信號(hào)線之間的耦合而引起的線上噪聲.容性耦合引發(fā)耦合電流,而感性耦合引發(fā)耦合電壓.圖1為兩個(gè)相鄰信號(hào)線的串?dāng)_模型.可見(jiàn),串?dāng)_現(xiàn)象一般分為如下3種:①干擾線和被干擾線上的信號(hào)變化相同,造成信號(hào)提前;②干擾線與被干擾線上的信號(hào)相反,造成被干擾線信號(hào)滯后;③被干擾線信號(hào)不變而干擾線信號(hào)發(fā)生變化,使得被干擾線產(chǎn)生波動(dòng).這是造成存儲(chǔ)器訪問(wèn)不穩(wěn)定的重要原因之一.

圖1 相鄰信號(hào)線耦合引起的串?dāng)_Fig.1 Cross-talk between the adjacent signal lines
本研究針對(duì)本課題組開(kāi)發(fā)的帶有片外存儲(chǔ)器的異構(gòu)多核SoC,設(shè)計(jì)了SDRAM接口時(shí)鐘信號(hào)的自適應(yīng)同步模塊,包括位于存儲(chǔ)控制器內(nèi)的可控延遲鏈和CPU使用的訓(xùn)練程序.由于該SoC應(yīng)用于汽車專用總線控制,使用環(huán)境條件復(fù)雜,對(duì)于數(shù)據(jù)的準(zhǔn)確性要求苛刻,因此通過(guò)設(shè)計(jì)自適應(yīng)同步模塊可以提高數(shù)據(jù)訪問(wèn)的準(zhǔn)確性與穩(wěn)定性.該模塊的優(yōu)點(diǎn)是能夠自主并快速地完成存儲(chǔ)器接口時(shí)鐘信號(hào)的自適應(yīng)同步,不需要人為調(diào)試,從而在一定程度上提高了該SoC芯片存儲(chǔ)器接口在各種復(fù)雜環(huán)境下的普適性.
相對(duì)于CPU等高速器件性能的大幅提升,存儲(chǔ)器的發(fā)展相對(duì)較慢.這已成為進(jìn)一步提高系統(tǒng)整體性能的瓶頸之一,也成為了一個(gè)熱門的研究方向.目前研究者們已從不同角度設(shè)法提高了存儲(chǔ)器訪問(wèn)的穩(wěn)定性,主要方法包括:①源同步接口動(dòng)態(tài)校正(dynamic calibration for source-synchronous interface)[3-4];②延遲鎖定環(huán)(delay locked loop,DLL)[5];③占空比校正(duty-cycle correction)[6-7];④自適應(yīng)時(shí)鐘分布網(wǎng)絡(luò)(self-adaptive clock network)[8];⑤錯(cuò)誤校正碼(error-correction code,ECC)[9].
源同步接口的校正技術(shù)使用了動(dòng)態(tài)選通掩蔽系統(tǒng)(dynamic strobe masking system),主要針對(duì)DDR及以上的存儲(chǔ)器.和傳統(tǒng)技術(shù)相比,該校正技術(shù)能夠根據(jù)傳入的選通信號(hào)實(shí)時(shí)動(dòng)態(tài)地調(diào)整掩蔽信號(hào)的長(zhǎng)度,并且采用了快速位抗扭斜校正引擎(fast bit-deskew calibration engine)來(lái)達(dá)到最佳的數(shù)據(jù)捕捉準(zhǔn)確性.DLL具有快速的鎖定能力,其特點(diǎn)是設(shè)計(jì)了延遲補(bǔ)償電路,可用于抵消工藝、電壓、溫度(process,voltage,temperature,PVT)的影響,從而增大有效數(shù)據(jù)采樣窗口.但是對(duì)于因采樣點(diǎn)偏移較大而造成的存儲(chǔ)器訪問(wèn)錯(cuò)誤則無(wú)能為力.且DLL在時(shí)鐘頻率升至數(shù)GHz時(shí),往往會(huì)產(chǎn)生占空比失真(duty-cycle distortion)的負(fù)面影響.因此,一種占空比校正技術(shù)便應(yīng)運(yùn)而生.該技術(shù)可以預(yù)防和改善占空比失真,保證了高性能存儲(chǔ)器接口的數(shù)據(jù)捕捉正確率.自適應(yīng)時(shí)鐘分布網(wǎng)絡(luò)方法是從時(shí)鐘分布網(wǎng)絡(luò)的角度來(lái)考慮.由于PVT的改變,時(shí)鐘網(wǎng)絡(luò)會(huì)隨之改變,而該方法提出的控制電路能使時(shí)鐘分布網(wǎng)絡(luò)隨PVT的改變而改變,形成自適應(yīng),從而改善數(shù)據(jù)捕捉能力.ECC是一種廣泛用于FLASH存儲(chǔ)器的傳統(tǒng)方法,通過(guò)在原有數(shù)據(jù)位上增加幾位校正位來(lái)進(jìn)行錯(cuò)誤檢查和糾正,其中數(shù)據(jù)位每增加一倍就相應(yīng)地增加一位檢驗(yàn)位.ECC能夠容許錯(cuò)誤,并可以將錯(cuò)誤進(jìn)行糾正,使系統(tǒng)得以持續(xù)正常的工作,不會(huì)因錯(cuò)誤而中斷.但是這種方法的校正能力與采用的校正碼類型有關(guān).
本研究提出的SDRAM接口時(shí)鐘信號(hào)的自適應(yīng)同步方法,聚焦于存儲(chǔ)器時(shí)鐘信號(hào)的訓(xùn)練,利用“可控延遲鏈”使時(shí)鐘相位按照訓(xùn)練模式偏移到最優(yōu)相位,從而減少讀寫錯(cuò)誤,保證了存儲(chǔ)器訪問(wèn)的穩(wěn)定性.為了尋找出最優(yōu)偏移相位,本研究提出了“有效數(shù)據(jù)采樣窗口”的概念.在該窗口中的時(shí)鐘相位能保證存儲(chǔ)器讀寫的正確性,并將窗口的中值作為最佳相位.
2.1 有效數(shù)據(jù)采樣窗口
在芯片的物理設(shè)計(jì)中,解決時(shí)序違例的途徑之一是對(duì)時(shí)鐘信號(hào)路徑插入緩沖器.時(shí)鐘網(wǎng)絡(luò)分布于整個(gè)SoC內(nèi)部,各條路徑長(zhǎng)度不一.在布局布線時(shí)為了讓時(shí)鐘樹(shù)保持平衡,電子設(shè)計(jì)自動(dòng)化(electronic design automation,EDA)工具會(huì)在時(shí)鐘信號(hào)路徑上插入適當(dāng)數(shù)量的緩沖器來(lái)調(diào)節(jié)某些路徑的延遲,從而保持時(shí)鐘樹(shù)的平衡[10].受該原理的啟發(fā),本研究在原有的存儲(chǔ)器時(shí)鐘信號(hào)的路徑上增加了“可控延遲鏈”,使時(shí)鐘信號(hào)能按照訓(xùn)練模式的要求產(chǎn)生一定的延遲.
由圖2可見(jiàn),時(shí)鐘信號(hào)經(jīng)過(guò)可控延遲鏈后產(chǎn)生了延遲,使數(shù)據(jù)位的采樣點(diǎn)也向后偏移.在數(shù)據(jù)位的起始端點(diǎn)與結(jié)束端點(diǎn)處,電平還沒(méi)有完全穩(wěn)定,需要一定時(shí)間去建立與保持.這里將數(shù)據(jù)位穩(wěn)定區(qū)域稱為“有效數(shù)據(jù)采樣窗口”,而“有效數(shù)據(jù)采樣窗口”的外圍區(qū)域則稱為“無(wú)效區(qū)域”.有效數(shù)據(jù)采樣窗口兩側(cè)邊緣處的數(shù)據(jù)相對(duì)于窗口中心區(qū)域不穩(wěn)定,因此,最佳的采樣點(diǎn)位于有效數(shù)據(jù)采樣窗口的中間位置.通過(guò)訓(xùn)練,可使存儲(chǔ)器時(shí)鐘信號(hào)的延遲達(dá)到有效數(shù)據(jù)采樣窗口的中間位置處,即認(rèn)為完成了訓(xùn)練任務(wù).

圖2 有效數(shù)據(jù)采樣窗口Fig.2 Valid data sampling window
2.2 自適應(yīng)同步的訓(xùn)練模式
在CPU正常訪問(wèn)存儲(chǔ)器的過(guò)程中,錯(cuò)誤計(jì)數(shù)器會(huì)記錄讀寫過(guò)程中發(fā)生錯(cuò)誤的次數(shù).當(dāng)連續(xù)發(fā)生錯(cuò)誤時(shí),系統(tǒng)已經(jīng)出現(xiàn)致命問(wèn)題,無(wú)法再正常工作了.此時(shí)系統(tǒng)軟件會(huì)拋出異常,調(diào)用訓(xùn)練模式試圖改善數(shù)據(jù)讀寫不穩(wěn)定的情況,完成訓(xùn)練之后對(duì)系統(tǒng)進(jìn)行復(fù)位,重新運(yùn)行.自適應(yīng)同步的訓(xùn)練模式流程如圖3所示.

圖3 自適應(yīng)同步的訓(xùn)練模式Fig.3 Training mode of self-adaptive synchronization
對(duì)時(shí)鐘信號(hào)的延遲訓(xùn)練是一個(gè)迭代過(guò)程,每次迭代都在試圖搜索有效數(shù)據(jù)采樣窗口的邊界.如圖3所示,首先會(huì)將延遲參數(shù)寄存器的值設(shè)定為最小值,將時(shí)鐘信號(hào)從零延遲位置處向最大延遲位置處逐步偏移.同時(shí),向存儲(chǔ)器發(fā)送測(cè)試數(shù)據(jù)并讀回,比對(duì)結(jié)果是否一致.該比對(duì)結(jié)果由自適應(yīng)同步訓(xùn)練程序分析,并計(jì)算出新的延遲參數(shù),作為下次比對(duì)的參數(shù).當(dāng)延遲參數(shù)達(dá)到最大位置后,將第一次比對(duì)正確的延遲參數(shù)與最后一次比對(duì)正確的延遲參數(shù)進(jìn)行平均,并將平均值設(shè)置為最終的延遲參數(shù).此時(shí)退出訓(xùn)練模式.
在訓(xùn)練模式中,時(shí)鐘延遲偏移位置的計(jì)算公式如下:

式中,P表示時(shí)鐘信號(hào)延遲的位置,n表示第n次訓(xùn)練,Td為一個(gè)基本延遲單元固有的延遲時(shí)間,S為每次迭代過(guò)程中采用的步長(zhǎng).S是一個(gè)變量,可根據(jù)訓(xùn)練模式的要求改變步長(zhǎng)值,即時(shí)鐘信號(hào)通過(guò)的不同數(shù)量的延遲單元.在不同的搜索階段設(shè)置合理的步長(zhǎng)值有助于迅速找到有效數(shù)據(jù)采樣窗口.
由圖4可知,不同的搜索區(qū)域可以采用不同的搜索精度.為了提高搜索速度,在窗口端點(diǎn)處使用高精度,以獲得準(zhǔn)確的窗口位置,而在其他位置可以降低精度.在低精度區(qū)域,增大步長(zhǎng)值,以盡量快的速度“跨越”該區(qū)域,可有效地節(jié)約訓(xùn)練次數(shù).在高精度區(qū)域則減小步長(zhǎng)值,緩慢而精確地尋找端點(diǎn)位置.

圖4 在搜索過(guò)程中,不同區(qū)域?qū)?yīng)不同的搜索精度Fig.4 Di ff erent region with di ff erent accuracy under searching progress
本研究在低精度區(qū)域?qū)Σ介L(zhǎng)值采用了二次指數(shù)增長(zhǎng)的方法,達(dá)到向右快速“跨越”的效果(見(jiàn)圖4).但該方法同時(shí)會(huì)導(dǎo)致跨過(guò)窗口端點(diǎn)的弊端,因此需要提高精度向左搜索端點(diǎn)位置.往左搜索的方法類似于二分法,即對(duì)步長(zhǎng)值二分,若為非整數(shù)則向上取整,新的搜索位置變?yōu)?/p>

若返回的測(cè)試數(shù)據(jù)和發(fā)送的數(shù)據(jù)比對(duì)結(jié)果一致,則表明搜索位置依然在有效數(shù)據(jù)采樣窗口中,可繼續(xù)按二分步長(zhǎng)的原則向左搜索;若比對(duì)結(jié)果不一致,則表明新的位置在無(wú)效區(qū)域中,應(yīng)向右搜索.通過(guò)這種非線性方法可不斷降低步長(zhǎng),提高搜索精度,從而快速準(zhǔn)確地找到有效數(shù)據(jù)采樣窗口的位置.
為了實(shí)現(xiàn)對(duì)數(shù)據(jù)采樣時(shí)鐘信號(hào)訓(xùn)練的目的,在硬件上必須要有用于控制時(shí)鐘信號(hào)延遲的模塊.該模塊由可控延遲鏈模塊(delay module)和延遲控制寄存器(delay register)組成(見(jiàn)圖5).這兩個(gè)子模塊都嵌入在存儲(chǔ)器接口中,通過(guò)AHB總線把CPU和外部存儲(chǔ)器連接起來(lái).延遲控制寄存器的作用是由CPU來(lái)設(shè)定步長(zhǎng)值S(n)和延遲偏移位置P(n),而可控延遲鏈模塊則根據(jù)寄存器中的值來(lái)自動(dòng)調(diào)整時(shí)鐘信號(hào)經(jīng)過(guò)的延遲單元的數(shù)量.

圖5 嵌入在存儲(chǔ)器接口中的延遲模塊Fig.5 Delay modules embedded in memory interface
延遲鏈的設(shè)計(jì)方法有很多種,在專用集成電路(application speci fi c integrated circuit, ASIC)中可以簡(jiǎn)單地將反相器串聯(lián),并用多路選通器選擇反相器的數(shù)量,但制造代價(jià)高昂.本研究從經(jīng)濟(jì)性考量,在現(xiàn)場(chǎng)可編程門陣列( fi eld-programmable gate array,FPGA)驗(yàn)證平臺(tái)上應(yīng)用了一種低成本的解決方案——基于精密時(shí)間-數(shù)字轉(zhuǎn)換電路(time to digital convertor, TDC)的可控延遲鏈設(shè)計(jì).TDC常應(yīng)用在高精度時(shí)間測(cè)量領(lǐng)域,如核物理試驗(yàn)、雷達(dá)、激光、遙感成像等[11].采用FPGA設(shè)計(jì)的一個(gè)優(yōu)勢(shì)是幾大廠商的產(chǎn)品普遍具有鎖相環(huán)(phase lock loop, PLL),可用于時(shí)鐘信號(hào)的倍頻,即能提高時(shí)間分辨率.在此基礎(chǔ)上進(jìn)行時(shí)鐘的分相,可進(jìn)一步大幅提高分辨率,按照訓(xùn)練模式的要求更精確地調(diào)節(jié)到所需的延遲位置.
一個(gè)加法器的進(jìn)位鏈在本研究中被用作一個(gè)基本延遲單元.若干串聯(lián)的進(jìn)位鏈組成了延遲鏈.在圖6所示的TDC原理圖中,利用FPGA中的加法器實(shí)現(xiàn)了進(jìn)位鏈的串聯(lián).時(shí)鐘分相的基本原理是“串行延遲、并行計(jì)數(shù)”,而不同于傳統(tǒng)計(jì)數(shù)器的串行計(jì)數(shù)方法[12].當(dāng)外部待測(cè)信號(hào)Hit輸入為0時(shí),加數(shù)的最低位輸入為0,所有sum輸出都為1;當(dāng)外部待測(cè)信號(hào)Hit輸入為1時(shí),加數(shù)的最低位輸入為1,那么加法器的最低位sum輸出為0,進(jìn)位輸出信號(hào)Co為1.此時(shí)Co會(huì)傳輸?shù)较乱患?jí)加法器,sum輸出為0,產(chǎn)生進(jìn)位信號(hào)為1.依此類推,信號(hào)會(huì)在進(jìn)位鏈上一級(jí)級(jí)傳播,并可通過(guò)sum輸出信號(hào)來(lái)表示.因此,需要在sum輸出后接一級(jí)D觸發(fā)器來(lái)鎖存采集輸出信號(hào),通過(guò)譯碼器來(lái)分析信號(hào)傳播的位置,從而計(jì)算出待測(cè)信號(hào)的延遲時(shí)間.

圖6 利用加法器實(shí)現(xiàn)進(jìn)位鏈串聯(lián)Fig.6 Cascade carry chains connected by adders
根據(jù)該基本原理,可以設(shè)計(jì)一個(gè)基于TDC的可控延遲鏈結(jié)構(gòu)(見(jiàn)圖7).由控制信號(hào)控制多路選通器來(lái)選擇延遲單元的數(shù)量.基本延遲單元的結(jié)構(gòu)為FPGA中的進(jìn)位鏈模塊,位于一個(gè)邏輯單元(logic element,LE)中.輸入的時(shí)鐘信號(hào)只需要通過(guò)進(jìn)位輸入(LAB carry-in)和進(jìn)位輸出(LAB carry-out)端口.
從測(cè)量角度來(lái)看,當(dāng)一個(gè)延遲單元的延遲時(shí)間與總延遲時(shí)間相差兩個(gè)數(shù)量級(jí)時(shí),認(rèn)為其達(dá)到了較高的精度,因此至少要對(duì)一個(gè)時(shí)鐘周期100等分,即至少需要100個(gè)基本延遲單元串聯(lián)形成延遲鏈.
在FPGA中,通過(guò)原理圖設(shè)計(jì)的方法可以直接將進(jìn)位鏈模塊連接起來(lái),完成整個(gè)可控延遲模塊的設(shè)計(jì),也可以利用硬件描述語(yǔ)言、實(shí)例化全加器的方式間接調(diào)用進(jìn)位鏈.總體而言,后者更為方便.但由于OCV(on chip variation,指在同一個(gè)芯片上,由于制造工藝等原因造成的偏差)效應(yīng)的存在,無(wú)論采用何種方法,都需要在底層布局布線時(shí)將進(jìn)位鏈按順序安排在緊鄰的邏輯單元中,以防止過(guò)長(zhǎng)的連線延遲和嚴(yán)重的延遲時(shí)間非線性.
本研究將存儲(chǔ)器接口的自適應(yīng)訓(xùn)練模塊在ALTERA Cyclone II DE1平臺(tái)上進(jìn)行驗(yàn)證.該平臺(tái)具有8 MB的片外SDRAM,SDRAM時(shí)鐘頻率從外部50 MHz晶振經(jīng)PLL倍頻為100 MHz,CPU頻率保持為50 MHz.訓(xùn)練的主要過(guò)程就是尋找有效數(shù)據(jù)采樣窗口的過(guò)程.圖8中橫坐標(biāo)代表訓(xùn)練次數(shù),縱坐標(biāo)代表時(shí)鐘信號(hào)的搜索位置.從圖中可以看出,當(dāng)進(jìn)行到第7次訓(xùn)練時(shí),找到了有效數(shù)據(jù)采樣窗口的左端點(diǎn);在第22次訓(xùn)練時(shí),找到了右端點(diǎn).在搜索端點(diǎn)的過(guò)程中,還可以看到步長(zhǎng)值逐次減小,并在端點(diǎn)處不斷往復(fù)搜索,最終收斂于端點(diǎn)處.左右端點(diǎn)對(duì)應(yīng)的延遲范圍就是有效數(shù)據(jù)采樣窗口.CPU此時(shí)將延遲控制寄存器的延遲位置設(shè)定為有效數(shù)據(jù)采樣窗口的中點(diǎn)處,并從訓(xùn)練模式回歸為正常的讀寫模式.此時(shí)CPU便能夠穩(wěn)定地訪問(wèn)片外SDRAM.
為了進(jìn)一步了解本方法的特性,本研究將其與業(yè)界采用的方法進(jìn)行了比較.NVIDIA公司是高性能圖形處理單元(graphic process unit,GPU)提供商,提出了一個(gè)對(duì)高速GPU存儲(chǔ)器接口數(shù)據(jù)采樣時(shí)鐘邊沿訓(xùn)練的專利[13],采用了DLL等數(shù)模混合電路純硬件實(shí)現(xiàn).該專利文件描述的訓(xùn)練模式是采用固定長(zhǎng)度的遞增步長(zhǎng)值.如果存儲(chǔ)器的有效數(shù)據(jù)采樣窗口較大,則訓(xùn)練次數(shù)較多,且對(duì)于不同規(guī)格的SDRAM存儲(chǔ)器的適應(yīng)性較差.因此,該方法對(duì)于集成在GPU上的存儲(chǔ)器往往會(huì)采用經(jīng)過(guò)反復(fù)測(cè)試后的最優(yōu)步長(zhǎng)值,以達(dá)到最佳的訓(xùn)練性能.
本方法中的訓(xùn)練環(huán)節(jié)是利用CPU實(shí)時(shí)計(jì)算出當(dāng)前所需步長(zhǎng),對(duì)不同規(guī)格的存儲(chǔ)器都具有很高的訓(xùn)練性能.在仿真環(huán)節(jié)采用了3種不同規(guī)格的SDRAM,分別記為m1,m2,m3.總的采樣范圍限制區(qū)間設(shè)定為0~1 000個(gè)單位時(shí)間.文獻(xiàn)[13]中專利方法的訓(xùn)練次數(shù)在數(shù)值上等于有效數(shù)據(jù)采樣窗口右端點(diǎn)的位置,而本方法的訓(xùn)練結(jié)果如圖9所示.可以看出,這3種規(guī)格存儲(chǔ)器的訓(xùn)練次數(shù)都在60次以內(nèi),遠(yuǎn)少于固定步長(zhǎng)值的方法,其中對(duì)于存儲(chǔ)器m3,由于在訓(xùn)練過(guò)程中超出了1 000個(gè)單位時(shí)間的限制,因此CPU程序?qū)ρ舆t位置進(jìn)行了自動(dòng)修正,并獲得了更少的訓(xùn)練次數(shù).

圖8 模擬搜索有效數(shù)據(jù)采樣窗口Fig.8 Simulation of searching valid data sampling window

圖9 不同規(guī)格存儲(chǔ)器的訓(xùn)練結(jié)果Fig.9 Training results of di ff erent memories
比較以上結(jié)果可以看出,本方法的優(yōu)勢(shì)在于具有很高的靈活性.用戶可根據(jù)需求編寫搜索程序,訓(xùn)練的次數(shù)遠(yuǎn)少于其他方法,在有效數(shù)據(jù)采樣窗口越大的情況下能節(jié)約越多的訓(xùn)練次數(shù),且硬件結(jié)構(gòu)的實(shí)現(xiàn)比較簡(jiǎn)單.相對(duì)不足之處是延遲電路需要占用一定的芯片面積,延遲鏈的時(shí)間線性度需要制造工藝的配合.
本研究針對(duì)SDRAM接口時(shí)鐘信號(hào)提供了一種自適應(yīng)的訓(xùn)練方法,能提高CPU訪問(wèn)外部存儲(chǔ)器的穩(wěn)定性.在硬件上設(shè)計(jì)了一個(gè)基于TDC的可控延遲電路用以調(diào)整SDRAM時(shí)鐘信號(hào)的相位.當(dāng)CPU訪問(wèn)存儲(chǔ)器連續(xù)多次發(fā)生錯(cuò)誤時(shí),系統(tǒng)會(huì)拋出異常,自動(dòng)進(jìn)入訓(xùn)練模式. CPU在SDRAM中寫入測(cè)試數(shù)據(jù)并讀回,比對(duì)二者是否一致,并以此來(lái)調(diào)整延遲電路.按照訓(xùn)練模式的要求不斷調(diào)整延遲時(shí)間,最終得到能正確訪問(wèn)存儲(chǔ)器的有效數(shù)據(jù)采樣窗口,并取其中值為SDRAM最優(yōu)時(shí)鐘相位偏移.退出訓(xùn)練模式后,對(duì)系統(tǒng)復(fù)位,采用新的相位讀寫數(shù)據(jù),能保證CPU訪問(wèn)存儲(chǔ)器的穩(wěn)定性.仿真實(shí)驗(yàn)結(jié)果表明,本方法能迅速而準(zhǔn)確地捕捉到有效數(shù)據(jù)采樣窗口的兩個(gè)端點(diǎn)位置,并以此計(jì)算出最佳的延遲單元數(shù)量,從而實(shí)現(xiàn)提高訪問(wèn)外部SDRAM存儲(chǔ)器穩(wěn)定性的目的.
[1]KYOMIN S.A 1.2 V 30 nm 3.2 Gb/s/pin 4 Gb DDR4 SDRAM with dual-error detection and PVT-tolerant data-fetch scheme[C]//IEEE International Solid-State Circuits Conference Digest of Technical Papers.2012:38-40.
[2]LI M P.Jitter,noise,and signal integrity at high-speed[M].New Jersey:Prentice Hall,2007.
[3]PLESSAS F.Advanced calibration techniques for high-speed source-synchronous interfaces[J]. IET Computers and Digital Techniques,2011,5(5):366-374.
[4]VAN HUBEN G A.Server-class DDR3 SDRAM memory bu ff er chip[J].IBM Journal of Research and Development,2012,56(1):32-42.
[5]BO Y,LI T W,HAN X C,et al.A fast-lock digital delay-locked loop controller[C]//ASIC.2009: 809-812.
[6]LIN F.All digital duty-cycle correction circuit design and its applications in high-performance DRAM[C]//IEEE Workshop on Microelectronics and Electron Devices.2011:1-4.
[7]MIN Y J.A 0.31–1 GHz fast-corrected duty-cycle corrector with successive approximation register for DDR DRAM applications[J].Very Large Scale Integration Systems,2012,20(8):1524-1528.
[8]LIN F,KEETH B.A self-adaptive and PVT insensitive clock distribution network design for high-speed memory interfaces[C]//IEEE Workshop on Microelectronics and Electron Devices. 2009:1-4.
[9]CHEN T H,HSIAO Y Y,HSING Y T,et al.An adaptive-rate error correction scheme for NAND lf ash memory[C]//VLSI Test Symposium.2009:53-58.
[10]XIE M P.Clock data recovery based on delay chain for medium data rate transmission[C]//Real Time Conference.2009:137-140.
[11]WANG J H,LIU S B.The 10-ps multitime measurements averaging TDC implemented in an FPGA[J].Nuclear Science,2011,58(4):312-330.
[12]葉超,馮莉,歐陽(yáng)艷晶.基于FPGA的精密時(shí)間間隔測(cè)量?jī)x設(shè)計(jì)[J].信息與電子工程,2009,7(2): 159-163.
[13]KU T S,JOSE S.Data sampling clock edge placement training for high speed GPU-memory interface:US,7567104 B2[P].2009-07-28.
本文彩色版可登陸本刊網(wǎng)站查詢:http://www.journal.shu.edu.cn
Self-adaptive synchronization of memory interface based on training
LU Chen-hong1,2,HU Yue-li1,2,ZHOU Jun2
(1.Key Laboratory of Advanced Display and System Applications,Shanghai University, Shanghai 200072,China; 2.School of Mechatronic Engineering and Automation,Shanghai University, Shanghai 200072,China)
Memory is a core device in system on a chip(SoC)and other electronic systems for data exchange and storage at di ff erent levels.However,memory access errors may occur due to factors such as raise of frequency,jitter,phase drift,unreasonable placement and routing.An adaptive synchronize method focusing on the training of clock signal is designed for synchronous dynamic random access memory(SDRAM)interface to enhance stability of memory access.A CPU-controlled delay circuit is used to shift the phase of SDRAM clock signal.A training program is designed to cooperate with the delay module hardware for memory interface tuning.In the training mode,CPU writes test data to the memory and reads them back,judging whether they are matching or not.Training program tunes the delay circuit according to the test results.A valid data sampling window is obtained rapidly and accurately after several iterations.Using the method,the middle of the window is calculated,which is the optimal phase drift for SDRAM clock signal and can improve stability of memory access.
synchronous dynamic random access memory(SDRAM);delay circuit;training;adaptive
TP 271+.5
A
1007-2861(2015)04-0393-09
10.3969/j.issn.1007-2861.2014.01.006
2013-11-27
國(guó)家自然科學(xué)基金資助項(xiàng)目(61376028);上海市科委基金資助項(xiàng)目(13111104600)
胡越黎(1959—),男,教授,博士生導(dǎo)師,博士,研究方向?yàn)闄C(jī)器視覺(jué)、汽車電子、動(dòng)力電池管理、IC設(shè)計(jì). E-mail:huyueli@shu.edu.cn