使用QDR-IV設計高性能網(wǎng)絡(luò )系統之三
在本系列第二部分,我們探討了總線(xiàn)轉換、總線(xiàn)翻轉、地址奇偶校驗等重要的總線(xiàn)問(wèn)題。在第三也是最后一部分,我們將探討校正問(wèn)題,其中包括矯正訓練、控制/地址信號校正和讀寫(xiě)校正,以及糾錯碼(ECC)和QDR-IV存儲器控制器的設計建議。
校正訓練序列
存儲器控制器和QDR IV較高的工作頻率意味著(zhù)數據有效窗口很窄。QDR-IV器件支持“校正訓練序列”,它可通過(guò)減少字節通道之間的偏差擴大這個(gè)窗口,從而在控制器讀取存儲器的數據時(shí),增加時(shí)序余量。校正訓練序列是賽普拉斯的QDR-IV SRAM的初始化過(guò)程的一部分。該訓練序列通常被那些不支持內置校正功能的應用使用。
訓練序列如圖8所示:
圖8. 校正訓練序列
校正訓練序列是初始化過(guò)程的一部分。對序列進(jìn)行加電和復位后,在配置模式下進(jìn)行操作的過(guò)程中,控制器必須立即設置選項控制寄存器中的Write_Train_Enable位(位的位置:7)。通過(guò)該操作,控制器可以避免在進(jìn)行訓練序列前再次進(jìn)入配置模式。設置該位不會(huì )影響到校正訓練序列,直到進(jìn)行讀取數據校正訓練為止。
通過(guò)以下三個(gè)步驟,可以實(shí)現校正過(guò)程:
1.控制/地址校正
2.讀取數據校正
3.寫(xiě)入數據校正
控制/地址校正
根據需要校正的信號,將LBK0#和LBK1#設為它們相應的位值。請查看表12,了解環(huán)回信號的映射情況。39個(gè)輸入信號被環(huán)回到端口A(yíng)上的數據引腳。根據LBK0#和LBK1#的狀態(tài),一次將13個(gè)輸入信號映射到DQA0-DQA12。
表12. 環(huán)回信號映射情況
DKA0、DKA0#、DKA1、DKA1#、DKB0、DKB0#、DKB1和DKB#1等時(shí)鐘輸入都是自由運行的,并應在訓練序列中持續運行。
通過(guò)使用輸入時(shí)鐘(CK/CK#)可在上升沿和下降沿上對每個(gè)輸入引腳進(jìn)行采樣。在輸出時(shí)鐘(QKA/QKA#)的上升沿上采樣的輸出值即為在輸入時(shí)鐘的上升沿上所采樣的值。在輸出時(shí)鐘(QKA/QKA#)的下降沿上采樣的輸出值即為在輸入時(shí)鐘的下降沿上所采樣的翻轉值。在這種模式下,數據翻轉無(wú)效,在進(jìn)行地址/控制環(huán)回訓練過(guò)程中,CFG#信號將為高電平。
圖9. 環(huán)回訓練框圖
如圖9所示,如果地址/控制信號未校正,DQA 上的信號(應在訓練期間保持高電平)將變?yōu)榈碗娖?。該信號轉換應由驅動(dòng)信號的模塊捕獲,控制器則會(huì )對信號相應進(jìn)行校準。
讀取數據校正
在該階段,地址、控制和數據輸入時(shí)鐘都已經(jīng)得到了校正。在讀取數據校正過(guò)程中,用于寫(xiě)入存儲器內的訓練數據模型是一個(gè)常量值(D00,D01,D20,D21),如下面的波形框圖中顯示。在此訓練序列中,LBK0#和LBK1#均被設置為1。
配置選擇控制寄存器時(shí),Write_Train_Enable 位將被設置為1。第一個(gè)和第二個(gè)數據突發(fā)均在同一個(gè)數據總線(xiàn)上被采樣的,但第二個(gè)數據突發(fā)則在寫(xiě)到存儲器內前完成采樣的。Write_Train_Enable 位不會(huì )對讀取數據周期產(chǎn)生任何影響。
將數據模型寫(xiě)到存儲器內后,標準的讀指令允許控制器訪(fǎng)問(wèn)這些數據,并會(huì )校正QK/QK#信號。當 Write_Train_Enable = 1 時(shí),在寫(xiě)入過(guò)程中,DINVA/DINVB 將被忽略,在讀取過(guò)程中,它將始終切換。
如下面的讀取數據校正框圖中所示,寫(xiě)入到存儲器內的數據(D00、D01、D20、D21)全為1,相應的讀取數據(Q00、Q01、Q20、Q21)則在1 和0 間切換??刂破鞅匦璨蹲降竭@些切換數據并進(jìn)行驗證。否則,控制器需要一個(gè)精確的校準來(lái)確認讀取數據校正。
圖10. 讀取數據校正序列框圖
在讀數據校正序列中:
?設置Write_Train_Enable位為1
?LBK0# = 1 及LBK1# = 1
寫(xiě)數據校正
此時(shí),地址、控制、時(shí)鐘和數據輸出都已經(jīng)得到了校正。執行寫(xiě)入數據校正序列前,先再次進(jìn)入配置模式,然后通過(guò)將相應位設置為0來(lái)禁用Write_Train_Enable。
在正常工作模式下,使用讀指令后,通過(guò)使用存儲器的寫(xiě)指令可校正寫(xiě)數據。所校正的讀取數據路徑用于確認器件是否已經(jīng)正確地接收到寫(xiě)入數據。這樣使處理器/FPGA能夠校正下列與DK/DK#輸入數據時(shí)鐘有關(guān)的信號:DQA、DINVA、DQB和DINVB。
糾錯碼(ECC)
系統設計人員必需依賴(lài)片外糾錯或冗余等技術(shù)提高可靠性。這些技術(shù)會(huì )增加PCB空間或處理時(shí)間方面的開(kāi)銷(xiāo)。QDR-IV是一個(gè)單芯片解決方案,引入了片上糾錯碼(ECC),從而節省了空間和成本,降低了設計復雜性。此外,它還降低了QDR-IV存儲器陣列的總軟失效率(SER)。該特性可應用于數據總線(xiàn)寬度為x18和x36的選項,并在SRAM中始終被啟用。ECC保護提供了單比特糾錯(SEC)。
QDR-IV從輸入數據生成ECC奇偶校驗位,并將它們存儲在存儲器陣列中。存儲器陣列包含用于存儲ECC奇偶校驗的額外位。但是,不會(huì )將這些額外的內部校驗位用于外部引腳。
例如,圖11顯示的是x36器件的輸出數據邏輯框圖。36數據位需要6個(gè)ECC校驗位;存儲器內核會(huì )將42位(36個(gè)數據位 + 6個(gè) ECC校驗位)傳輸到ECC邏輯內。因此,ECC邏輯會(huì )提供已糾正的36位輸出數據。
無(wú)ECC位的QDR/DDR SRAM的SER故障率(FIT)通常為200 FIT/Mb。但帶有ECC時(shí),該數值將為0.01 FIT/Mb,提高了4個(gè)數量級。
圖11. 輸出數據邏輯(x36器件)
QDR-IV存儲器控制器的設計建議
本節提供一些存儲器控制器啟用QDR-IV的地址奇偶校驗和總線(xiàn)翻轉功能的設計建議。
存儲器控制器首先要根據地址總線(xiàn)生成地址奇偶。然后,需要在地址總線(xiàn)和地址奇偶位上進(jìn)行地址翻轉。
對于數據總線(xiàn)轉換,將數據發(fā)送給QDR-IV前,存儲器控制器需要計算每個(gè)DQ總線(xiàn)上的邏輯“0”的數量,以便生成相應的DINV位(取決于數據總線(xiàn)翻轉條件)。
將數據發(fā)送給存儲器控制器時(shí),QDR-IV使用相同的數據總線(xiàn)翻轉邏輯。為了識別QDR-IV的接收數據,控制器僅要檢查相應DINV位的狀態(tài)。如果控制器接收DINV = 1,需要翻轉相關(guān)的數據總線(xiàn);否則,保持接收到的數據位不變。
圖12顯示的是存儲器控制器的設計注意事項。
圖12. 存儲器控制器的設計注意事項
結束語(yǔ)
QDR-IV提供2132 MT/s的最大RTR,是市場(chǎng)上性能最高的標準化解決方案。憑借較高的RTR外加兩個(gè)雙向端口、ECC、總線(xiàn)翻轉、ODT、地址校驗等差異化特性,它已成為網(wǎng)絡(luò )系統的首選解決方案。QDR-IV的優(yōu)勢還適用于其它需要較高RTR和信號完整性的系統,如高性能計算和圖像處理系統。
評論