流媒體視頻、云服務(wù)和移動(dòng)數(shù)據(jù)推動(dòng)了全球網(wǎng)絡(luò)流量的持續(xù)增長。為了支持這種增長,網(wǎng)絡(luò)系統(tǒng)必須提供更快的線路速率和每秒處理數(shù)百萬個(gè)數(shù)據(jù)包的性能。在網(wǎng)絡(luò)系統(tǒng)中,數(shù)據(jù)包的到達(dá)順序是隨機(jī)的,且每個(gè)數(shù)據(jù)包的處理需要好幾個(gè)存儲(chǔ)動(dòng)作。數(shù)據(jù)包流量需要每秒鐘訪問數(shù)億萬次存儲(chǔ)器,才能在轉(zhuǎn)發(fā)表中找到路徑或完成數(shù)據(jù)統(tǒng)計(jì)。
數(shù)據(jù)包速率與隨機(jī)存儲(chǔ)器訪問速率成正比。如今的網(wǎng)絡(luò)設(shè)備需要具有很高的隨機(jī)訪問速率(RTR)性能和高帶寬才能跟上如今高速增長的網(wǎng)絡(luò)流量。其中,RTR是衡量存儲(chǔ)器可以執(zhí)行的完全隨機(jī)存儲(chǔ)(讀或?qū)懀┑拇螖?shù),即隨機(jī)存儲(chǔ)速率。該度量值與存取處理過程的處理位數(shù)無關(guān)。RTR是以百萬次/每秒(MT/s)為單位計(jì)量的。
相比于高性能網(wǎng)絡(luò)系統(tǒng)需要處理的隨機(jī)流量的速率,當(dāng)今高性能DRAM能夠處理的要少一些。QDR-IV SRAM旨在提供同類最佳的RTR性能,以滿足苛刻的網(wǎng)絡(luò)功能要求。圖1量化了QDR-IV相比于其它類型的存儲(chǔ)器在RTR性能方面的優(yōu)勢(shì)。即使與最高性能的存儲(chǔ)器相比,QDR-IV仍能提供兩倍于后者的RTR性能,因此,它是那些需要執(zhí)行要求苛刻的操作-如更新統(tǒng)計(jì)數(shù)據(jù)、跟蹤數(shù)據(jù)流狀態(tài)、調(diào)度數(shù)據(jù)包、進(jìn)行表查詢-的高性能網(wǎng)絡(luò)系統(tǒng)的理想選擇。
在本系列的第一部分中,我們將探討兩種類型的QDR-IV存儲(chǔ)器、時(shí)鐘、讀/寫操作和分組操作。
圖1. QDR-IV性能對(duì)比
不同類型的QDR-IV:XP和HP
QDR-IV 有兩種類型。HP在較低頻率下工作,而且不使用分組操作。 XP面向最高性能的應(yīng)用,可以使用分組操作方案,并在較高頻率下工作。
QDR-IV的讀寫時(shí)延由運(yùn)行速度決定。表1定義了工作模式和每個(gè)模式所支持的頻率。
表1. 工作模式
QDR-IV SRAM具有兩個(gè)端口,即端口A和端口B。由于可以獨(dú)立訪問這兩個(gè)端口,所以對(duì)存儲(chǔ)器陣列進(jìn)行的任何讀/寫訪問組合均可得到最大的隨機(jī)數(shù)據(jù)傳輸速率。在QDR-IV中,對(duì)每個(gè)端口進(jìn)行訪問時(shí)需要使用雙倍數(shù)據(jù)速率的通用地址總線(A)。端口A的地址在輸入時(shí)鐘(CK)的上升沿上被鎖存,而端口B的地址在輸入時(shí)鐘(CK)的下降沿上或在CK#的上升沿上被鎖存??刂?a target="_blank">信號(hào)(LDA#、LDB#、RWA#和RWB#)以單倍數(shù)據(jù)速率(SDR)工作,并用于確定執(zhí)行讀操作還是寫操作。兩個(gè)數(shù)據(jù)端口(DQA和DQB)均配備了雙倍數(shù)據(jù)速率(DDR)接口。該器件具有2字突發(fā)的架構(gòu)。器件的數(shù)據(jù)總線帶寬為 × 18或 × 36。
QDR-IV SRAM包括指定為端口A和端口B的兩個(gè)端口。因?yàn)閷?duì)兩個(gè)端口的訪問是獨(dú)立的,所以對(duì)于對(duì)存儲(chǔ)器陣列的讀/寫訪問的任何組合,隨機(jī)事務(wù)速率被最大化。 對(duì)每個(gè)端口的訪問是通過以雙倍數(shù)據(jù)速率(即時(shí)鐘的兩個(gè)邊沿)運(yùn)行的公共地址總線(A)。 端口A的地址在輸入時(shí)鐘(CK)的上升沿鎖存,端口B的地址在CK的下降沿或CK#的上升沿鎖存。 控制信號(hào)(LDA#,LDB#,RWA#和RWB#)以單數(shù)據(jù)速率(SDR)運(yùn)行,它們決定是執(zhí)行讀操作還是寫操作。 兩個(gè)數(shù)據(jù)端口(DQA和DQB)都配有雙倍數(shù)據(jù)速率(DDR)接口。 該器件采用2字突發(fā)架構(gòu)。 它提供×18和×36數(shù)據(jù)總線寬度。
QDR-IV XP SRAM器件具有一個(gè)組切換選項(xiàng)。分組操作一節(jié)描述了如何使用組切換,讓器件能夠以更高的頻率和RTR工作。
時(shí)鐘信號(hào)說明
CK/CK#時(shí)鐘與以下地址和控制引腳相關(guān)聯(lián):An-A0、AINV、LDA#、LDB#、RWA#以及RWB#。CK/CK#時(shí)鐘與地址和控制信號(hào)中心對(duì)齊。
DKA/DKA#和DKB/DKB#是與輸入寫數(shù)據(jù)相關(guān)聯(lián)的輸入時(shí)鐘。這些時(shí)鐘與輸入寫數(shù)據(jù)中心對(duì)齊。
根據(jù)QDR-IV SRAM器件的數(shù)據(jù)總線寬度配置,表2顯示了輸入時(shí)鐘與輸入寫數(shù)據(jù)之間的關(guān)系。為了確保指令和數(shù)據(jù)周期的正確時(shí)序,并確保正確的數(shù)據(jù)總線返回時(shí)間,DKA/DKA#和DKB/DKB#時(shí)鐘必須符合各自數(shù)據(jù)表中給出的CK to DKx斜率 (tCKDK)。
表2. 輸入時(shí)鐘與寫數(shù)據(jù)之間的關(guān)系
QKA/QKA#和QKB/QKB#是與讀取數(shù)據(jù)相關(guān)聯(lián)的輸出時(shí)鐘。這些時(shí)鐘與輸出讀取數(shù)據(jù)邊沿對(duì)齊。
QK/QK#是數(shù)據(jù)輸出時(shí)鐘,由內(nèi)部鎖相環(huán)(PLL)生成。它與CK/CK#時(shí)鐘同步,并符合各自數(shù)據(jù)表中給出的CK to QKx斜率 (tCKQK)。
根據(jù)QDR-IV SRAM器件的數(shù)據(jù)總線帶寬的配置情況,表3顯示了輸出時(shí)鐘與讀取數(shù)據(jù)之間的關(guān)系。
表3. 輸出時(shí)鐘與讀取數(shù)據(jù)之間的關(guān)系
讀/寫操作
讀和寫指令由控制輸入(LDA#、RWA#、LDB#和RWB#)和地址輸入驅(qū)動(dòng)。在輸入時(shí)鐘(CK)的上升沿上對(duì)端口A控制輸入進(jìn)行采樣。在輸入時(shí)鐘的下降沿上對(duì)端口B控制輸入進(jìn)行采樣。 表4顯示的是端口A和端口B的讀/寫操作條件。
表4. 端口A和端口B的讀/寫條件
如圖2 和圖3 所示,對(duì)于QDR-IV HP SRAM,端口A的讀取數(shù)據(jù)在CK的上升沿后整五個(gè)讀取延遲(RL)時(shí)鐘周期后才從DQA 引腳上輸出;對(duì)于QDR-IVXP SRAM,則需要八個(gè)讀延遲(RL)時(shí)鐘周期。CK信號(hào)的上升沿發(fā)生,同時(shí)讀取指令發(fā)出,經(jīng)過指定的RL時(shí)鐘周期后才可獲取數(shù)據(jù)。
對(duì)于QDR-IV HP SRAM,端口A的寫入數(shù)據(jù)在CK的上升沿后整三個(gè)寫入延遲(WL)時(shí)鐘周期才傳輸至DQA 引腳;對(duì)于QDR-IV XP SRAM,則需要五個(gè)寫延遲(WL) 時(shí)鐘周期。CK信號(hào)的上升沿發(fā)生,同時(shí)寫入指令發(fā)出,經(jīng)過指定的RL時(shí)鐘周期后才可獲取數(shù)據(jù)。
對(duì)于QDR-IV HP SRAM,端口B的讀取數(shù)據(jù)在CK的上升沿后整五個(gè)RL 時(shí)鐘周期才從DQB引腳上輸出;對(duì)于QDR-IV XP SRAM,則需要八個(gè)RL 時(shí)鐘周期。CK信號(hào)的上升沿發(fā)生,同時(shí)讀取指令發(fā)出,經(jīng)過指定的RL時(shí)鐘周期后才可獲取數(shù)據(jù)。
對(duì)于QDR-IV HP SRAM,端口B的寫入數(shù)據(jù)在CK的上升沿后整三個(gè)WL 時(shí)鐘周期才傳輸至DQB引腳;對(duì)于QDR-IV XP SRAM,則需要五個(gè)WL 時(shí)鐘周期。CK信號(hào)的上升沿發(fā)生,同時(shí)寫入指令發(fā)出,經(jīng)過指定的RL時(shí)鐘周期后才可獲取數(shù)據(jù)。
QVLDA/QVLDB 信號(hào)表示相應(yīng)端口上的有效輸出數(shù)據(jù)。在總線上驅(qū)動(dòng)第一個(gè)數(shù)據(jù)字的半周期前置位QVLDA 和QVLDB信號(hào),并在總線上驅(qū)動(dòng)最后一個(gè)數(shù)據(jù)字的半周期前取消置位它們。最后數(shù)據(jù)字后的數(shù)據(jù)輸出是三態(tài)的。
圖2. 讀取時(shí)序
圖3. 寫時(shí)序
旨在實(shí)現(xiàn)高速運(yùn)行的分組操作
QDR-IV XP SRAM 的設(shè)計(jì)是為了支持頻率更高的八組模式(最大工作頻率 = 1066 MHz),而QDR-IV HP SRAM 則支持頻率較低的無分組模式(最大工作頻率 = 667 MHz)。
QDR-IV XP 中較低的三個(gè)地址引腳(A2、A1 和A0)選擇了在讀或?qū)懫陂g將要訪問的組。唯一的分組限制是在每個(gè)時(shí)鐘周期內(nèi)該組僅能被訪問一次。QDR-IV XP SRAM 的組訪問規(guī)則要求在端口B 上訪問的組地址與在端口A 上訪問的組地址不相同。
如果不符合分組限制,那么由于在時(shí)鐘的上升沿時(shí)已經(jīng)對(duì)讀/寫操作進(jìn)行采樣,在端口A 上則不會(huì)限制讀/寫操作,但會(huì)禁止端口B 上的讀/寫操作。QDR-IV HP SRAM 并沒有任何分組限制。
圖4. QDR-IV XP SRAM – 寫/讀操作
在相同的時(shí)鐘周期內(nèi),端口B上的組地址與端口A上的組地址不相同
圖5. QDR-IV HP SRAM –寫/讀操作
QDR-IV XP SRAM 上的分組限制可作為某些應(yīng)用的一個(gè)優(yōu)點(diǎn),在這些應(yīng)用中,存儲(chǔ)器中的每一組都有不同的用途,并且都不能在同一個(gè)時(shí)鐘周期中被訪問兩次。一個(gè)網(wǎng)絡(luò)路由器能夠在QDR-IV XP SRAM 的每一組內(nèi)儲(chǔ)存不同的路由表便是一個(gè)實(shí)例。如果在同一個(gè)時(shí)鐘周期內(nèi)特定的路由表僅能被訪問一次,則有可能實(shí)現(xiàn)高TRT (隨機(jī)數(shù)據(jù)傳輸速率)。在該情況下,工作頻率為1066 MHz 時(shí),可獲得的最高隨機(jī)數(shù)據(jù)傳輸速率為2132 MT/s。
分組限制不會(huì)影響到數(shù)據(jù)傳輸速率的另一種情況是使用物理層上的多個(gè)端口進(jìn)行設(shè)計(jì),通過每一個(gè)端口可以直接訪問存儲(chǔ)器中一組。這些端口將被復(fù)用到QDR-IV XP SRAM 的端口A 和端口B。在該設(shè)計(jì)中,因?yàn)槊恳粋€(gè)組都連接了物理層上不同的端口,因此任何一個(gè)組都不能在同一個(gè)時(shí)鐘周期內(nèi)被訪問兩次。
不過,如果第一次訪問某一組是通過當(dāng)前時(shí)鐘周期的下降沿上端口B 進(jìn)行的,并且第二次訪問則是通過下一個(gè)時(shí)鐘周期的上升沿上端口A 進(jìn)行的,那么可以在一個(gè)時(shí)鐘周期內(nèi)再次對(duì)同一組進(jìn)行訪問。如圖6所示,在進(jìn)行寫操作期間,端口B 和端口A 都可以在一個(gè)時(shí)鐘周期內(nèi)訪問組Y。同樣,在進(jìn)行讀操作期間,端口B 和端口A 可以在一個(gè)時(shí)鐘周期內(nèi)訪問組X。
圖6. 在一個(gè)時(shí)鐘周期對(duì)同一個(gè)存儲(chǔ)器組進(jìn)行訪問
總線轉(zhuǎn)換時(shí)間非常重要,其決定了讀和寫指令間是否需要額外的間隔來避免在同一個(gè)I/O 端口上發(fā)生總線沖突。
想象下QDR-IV HP SRAM 中端口A 先后收到寫指令和讀指令。從CK 信號(hào)的上升沿(與初始化寫指令周期相對(duì)應(yīng))算起,在整整三個(gè)時(shí)鐘周期后向DQA 引腳提供寫數(shù)據(jù)。讀數(shù)據(jù)則將在下一個(gè)周期發(fā)送,因?yàn)?DQ從CK 信號(hào)的上升沿(與初始化讀指令的周期相應(yīng))算起五個(gè)時(shí)鐘周期后才能獲得數(shù)據(jù)。此外,為符合總線轉(zhuǎn)換時(shí)間和傳輸時(shí)延(從ASIC/FPGA 到QDR IV 存儲(chǔ)器),還有兩個(gè)額外周期。因此,啟動(dòng)寫指令后,可以立即啟動(dòng)讀指令。
在其他情況下,如果先啟動(dòng)讀指令后啟動(dòng)寫指令,那么發(fā)送讀指令經(jīng)過三個(gè)時(shí)鐘周期后,才能發(fā)送寫指令。這是因?yàn)椋瑥脑跁r(shí)鐘信號(hào)CK 的上升沿上對(duì)讀指令進(jìn)行采樣算起,經(jīng)過五個(gè)周期后可獲得DQA 引腳上的讀數(shù)據(jù),并且從在時(shí)鐘信號(hào)CK 的上 升沿上對(duì)寫指令進(jìn)行采樣算起,在整三個(gè)時(shí)鐘周期內(nèi)向DQA 引腳提供寫數(shù)據(jù)。否則,將會(huì)發(fā)生總線沖突。因此,發(fā)送寫指令后的最小時(shí)鐘周期應(yīng)該為RL – WL + 1(RL:讀時(shí)延;WL:寫時(shí)延;這兩個(gè)時(shí)延的單位為時(shí)鐘周期數(shù))。另外一個(gè)時(shí)鐘周期用于正確捕獲數(shù)據(jù)并補(bǔ)償總線轉(zhuǎn)換時(shí)延(通常為一個(gè)時(shí)鐘周期)。
如果傳輸時(shí)延大于總線轉(zhuǎn)換時(shí)延,那么‘讀到寫’指令間的間隔為:
“讀到寫”指令間的時(shí)間周期 = 讀時(shí)延 – 寫時(shí)延 + 1 + 傳輸時(shí)延
請(qǐng)參考圖7。發(fā)送讀指令經(jīng)過四個(gè)時(shí)鐘周期后,將發(fā)送端口A 的寫指令。這樣是為了避免因讀/寫時(shí)延、總線轉(zhuǎn)換時(shí)間和傳輸時(shí)延間的差別而導(dǎo)致的總線沖突。
總線翻轉(zhuǎn)
QDR-IV 器件支持總線翻轉(zhuǎn)以降低切換噪聲和I/O功耗。在存儲(chǔ)事務(wù)處理中,存儲(chǔ)器控制器和QDR-IV都可以選擇應(yīng)用總線翻轉(zhuǎn)。
由于QDR-IV 器件的POD 信令模式為I/O 信號(hào)提供了到VDDQ 的高壓終端選項(xiàng),所以信號(hào)轉(zhuǎn)為高電平邏輯狀態(tài)不會(huì)耗電。因此,總線翻轉(zhuǎn)對(duì)于POD I/O 信號(hào)是一個(gè)很重要的性能。QDR-IV 會(huì)保證翻轉(zhuǎn)地址和數(shù)據(jù)總線的數(shù)據(jù)完整性。
使用芯片配置寄存器來啟用或禁用地址和數(shù)據(jù)總線翻轉(zhuǎn)功能。
地址總線翻轉(zhuǎn)
AINV 是雙倍數(shù)據(jù)速率信號(hào),每次將地址發(fā)送給存儲(chǔ)器器件時(shí)都會(huì)更新該信號(hào)。AINV 引腳指示是否對(duì)地址總線(An –A0)和AP 進(jìn)行了翻轉(zhuǎn)。AINV 是高電平有效信號(hào)。當(dāng)AINV = 1 時(shí),將翻轉(zhuǎn)地址總線;當(dāng)AINV = 0 時(shí),不翻轉(zhuǎn)地址總線。AINV 引腳的功能由存儲(chǔ)器控制器控制。
地址總線和地址奇偶位都被視為地址組(AG)。
表5顯示的是AG 定義以及x18 和x36 QDR-IV 選項(xiàng)的AINV 設(shè)置條件。
x36器件示例
不進(jìn)行地址總線翻轉(zhuǎn):
假設(shè)要訪問的地址分別為22’h 000199和22’h 3FFCFF。17個(gè)地址引腳需要在第一個(gè)和第二個(gè)地址的邏輯狀態(tài)間進(jìn)行切換,如下表所示(紅色單元格顯示)。這樣會(huì)增大地址引腳上的切換噪聲、I/O電流以及串?dāng)_。
進(jìn)行地址總線翻轉(zhuǎn):
根據(jù)表5顯示,第一個(gè)地址組(22‘h 000199)滿足翻轉(zhuǎn)邏輯條件。因此,存儲(chǔ)器控制器發(fā)送第一個(gè)地址組前,它會(huì)將地址組從22’h 000199翻轉(zhuǎn)為22’h 3FFE66,并將AINV引腳置為1。由于不需要翻轉(zhuǎn)第二個(gè)地址組,所以存儲(chǔ)器控制器可以將其直接發(fā)送,并將AINV設(shè)置為0。
下表顯示的是地址總線翻轉(zhuǎn)的結(jié)果。在這種情況下,只有5個(gè)地址引腳需要切換邏輯(紅色單元格顯示)。切換位的總數(shù)降低為5,所以降低了由于同時(shí)切換輸出(SSO)而引起的噪聲、I/O電流以及串?dāng)_。
數(shù)據(jù)總線翻轉(zhuǎn)
數(shù)據(jù)總線翻轉(zhuǎn)在數(shù)據(jù)線路中也類似,但翻轉(zhuǎn)位由存儲(chǔ)器控制器在存儲(chǔ)器寫操作期間生成,并且翻轉(zhuǎn)位由QDR-IV存儲(chǔ)器中的翻轉(zhuǎn)邏輯在存儲(chǔ)器讀操作期間生成。
DINVA和DINVB引腳指示了是否翻轉(zhuǎn)相應(yīng)的DQA和DQB引腳。DINVA和DINVB均為高電平有效信號(hào)。當(dāng)DINV = 1時(shí),將翻轉(zhuǎn)數(shù)據(jù)總線;當(dāng)DINV = 0時(shí),不翻轉(zhuǎn)數(shù)據(jù)總線。
DINVA[1]和DINVA[0]相互獨(dú)立并控制與其相應(yīng)的DQA組。DINVA[0]控制DQA[17:0](對(duì)于x36的配置)或DQA[8:0](對(duì)于x18的配置)。DINVA[1]控制DQA[35:18](對(duì)于x36的配置)或DQA[17:9](對(duì)于x18的配置)。同樣,DINVB[0]控制x36配置中的DQB[17:0]或x18配置中的DQB[8:0]。DINVB[1]控制x36配置中的DQB[35:18]或x18配置中的DQA[17:9]。
表8顯示的是DINV位說明以及x18和x36 QDR-IV選項(xiàng)的DINVA設(shè)置條件。
注意:可以對(duì)DINVA[1]、DINVB[0]以及DINVB[1]使用相同的翻轉(zhuǎn)邏輯,以便控制相應(yīng)的DQ組。
x18器件的示例
不進(jìn)行數(shù)據(jù)總線翻轉(zhuǎn):
假設(shè)需要分別發(fā)送DQA[8:0]上的9’h 007和9’h 1F3。6個(gè)數(shù)據(jù)引腳需要在第一個(gè)和第二個(gè)DQA[8:0]位的邏輯狀態(tài)之間進(jìn)行切換,如下表所示(紅色單元格顯示)。這樣會(huì)增大數(shù)據(jù)引腳上的切換噪聲、I/O電流以及串?dāng)_。
進(jìn)行數(shù)據(jù)總線翻轉(zhuǎn):
根據(jù)表8,第一個(gè)DQA[8:0]滿足翻轉(zhuǎn)邏輯條件。因此,存儲(chǔ)器控制器發(fā)送第一個(gè)DQA[8:0]前,它會(huì)將引腳地址從9’h 007翻轉(zhuǎn)為9’h 1F8,并將DINVA[0]引腳設(shè)置為1。由于第二個(gè)DQA[8:0]不需要翻轉(zhuǎn),所以存儲(chǔ)器控制器可以直接發(fā)送它,并將DINVA[0]設(shè)置為0。
表10顯示的是數(shù)據(jù)總線翻轉(zhuǎn)的結(jié)果。在這種情況下,只有3個(gè)數(shù)據(jù)引腳需要切換邏輯(紅色單元格顯示)。切換位的總數(shù)降低為3,所以降低了SSO的噪聲、I/O電流以及串?dāng)_。
地址奇偶校驗(yàn)
QDR-IV只有一條地址總線,但其以雙倍數(shù)據(jù)速率和高頻率運(yùn)行。因此,地址奇偶校驗(yàn)輸入(AP)和地址奇偶校驗(yàn)錯(cuò)誤標(biāo)志輸出(PE#)引腳提供了片上地址奇偶校驗(yàn)功能,以便能夠確保地址總線完整性。地址奇偶校驗(yàn)功能是可選的;可以使用配置寄存器來啟用或禁用它。
通過該AP引腳可以在各地址引腳(An到A0)上進(jìn)行偶校驗(yàn)。設(shè)置AP值,使AP和An-A0中邏輯“1”的總數(shù)為偶數(shù)。
對(duì)于數(shù)據(jù)總線寬度為x18的器件,設(shè)置AP值,使A[21:0]和AP中邏輯“1”的總數(shù)為偶數(shù)。
對(duì)于數(shù)據(jù)總線寬度為x36的器件,設(shè)置AP值,使A[20:0]和AP中邏輯“1”的總數(shù)為偶數(shù)。
器件的示例
以數(shù)據(jù)總線寬度為x36的器件的21’h1E0000和21’h1F0000地址為示例。表11顯示的是如何為每個(gè)地址設(shè)置AP值。
當(dāng)發(fā)生奇偶錯(cuò)誤時(shí),在配置寄存器4、5、6和7中(請(qǐng)查看相關(guān)數(shù)據(jù)手冊(cè),了解有關(guān)配置寄存器的更多信息)記錄第一個(gè)錯(cuò)誤的完整地址以及端口A/B錯(cuò)誤位和地址翻轉(zhuǎn)位。端口A/B錯(cuò)誤位表示發(fā)生地址奇偶錯(cuò)誤的端口:0表示端口A,1表示端口B。持續(xù)鎖存該信息,直到向配置寄存器3中的地址奇偶錯(cuò)誤清除位寫入1來清除該信息為止。
通過兩個(gè)計(jì)數(shù)器,可以表示是否發(fā)生了多個(gè)地址奇偶錯(cuò)誤。端口A錯(cuò)誤計(jì)數(shù)是端口A地址上奇偶錯(cuò)誤數(shù)量的運(yùn)行計(jì)數(shù)器。同樣,端口B錯(cuò)誤計(jì)數(shù)是端口b地址上奇偶錯(cuò)誤數(shù)量的運(yùn)行計(jì)數(shù)器。每個(gè)計(jì)數(shù)器獨(dú)立計(jì)數(shù)到最大值(3),然后將停止計(jì)數(shù)。這些計(jì)數(shù)器均是自由運(yùn)行的;對(duì)配置寄存器3的地址奇偶錯(cuò)誤清除位寫入1,可將其復(fù)位。
檢測到地址奇偶錯(cuò)誤后,寫操作就會(huì)被忽略,以防止損壞存儲(chǔ)器。但是,如果輸入地址錯(cuò)誤,仍會(huì)繼續(xù)執(zhí)行讀操作,但存儲(chǔ)器會(huì)發(fā)送出假數(shù)據(jù)。
PE#為低電平有效信號(hào),表示地址奇偶錯(cuò)誤。檢測到地址奇偶錯(cuò)誤后,PE#信號(hào)在8個(gè)周期(QDR-IV XP SRAM)或5個(gè)周期(QDR-IV HP SRAM)內(nèi)被設(shè)置為0。它將保持置位狀態(tài),直到通過配置寄存器清除了錯(cuò)誤為止。處理完地址翻轉(zhuǎn)便表示完成了地址奇偶檢查。
PE#轉(zhuǎn)為低電平后,會(huì)停止存儲(chǔ)器操作,并使用配置寄存器將PE#復(fù)位為高電平。此外,由于發(fā)生AP錯(cuò)誤的寫操作也被阻止,所以需要向存儲(chǔ)器重新編寫數(shù)據(jù)。
校正訓(xùn)練序列
存儲(chǔ)器控制器和QDR IV較高的工作頻率意味著數(shù)據(jù)有效窗口很窄。QDR-IV器件支持“校正訓(xùn)練序列”,它可通過減少字節(jié)通道之間的偏差擴(kuò)大這個(gè)窗口,從而在控制器讀取存儲(chǔ)器的數(shù)據(jù)時(shí),增加時(shí)序余量。校正訓(xùn)練序列是賽普拉斯的QDR-IV SRAM的初始化過程的一部分。該訓(xùn)練序列通常被那些不支持內(nèi)置校正功能的應(yīng)用使用。
訓(xùn)練序列如圖8所示:
校正訓(xùn)練序列是初始化過程的一部分。對(duì)序列進(jìn)行加電和復(fù)位后,在配置模式下進(jìn)行操作的過程中,控制器必須立即設(shè)置選項(xiàng)控制寄存器中的Write_Train_Enable位(位的位置:7)。通過該操作,控制器可以避免在進(jìn)行訓(xùn)練序列前再次進(jìn)入配置模式。設(shè)置該位不會(huì)影響到校正訓(xùn)練序列,直到進(jìn)行讀取數(shù)據(jù)校正訓(xùn)練為止。
通過以下三個(gè)步驟,可以實(shí)現(xiàn)校正過程:
1.控制/地址校正
2.讀取數(shù)據(jù)校正
3.寫入數(shù)據(jù)校正
控制/地址校正
根據(jù)需要校正的信號(hào),將LBK0#和LBK1#設(shè)為它們相應(yīng)的位值。請(qǐng)查看表12,了解環(huán)回信號(hào)的映射情況。39個(gè)輸入信號(hào)被環(huán)回到端口A上的數(shù)據(jù)引腳。根據(jù)LBK0#和LBK1#的狀態(tài),一次將13個(gè)輸入信號(hào)映射到DQA0-DQA12。
DKA0、DKA0#、DKA1、DKA1#、DKB0、DKB0#、DKB1和DKB#1等時(shí)鐘輸入都是自由運(yùn)行的,并應(yīng)在訓(xùn)練序列中持續(xù)運(yùn)行。
通過使用輸入時(shí)鐘(CK/CK#)可在上升沿和下降沿上對(duì)每個(gè)輸入引腳進(jìn)行采樣。在輸出時(shí)鐘(QKA/QKA#)的上升沿上采樣的輸出值即為在輸入時(shí)鐘的上升沿上所采樣的值。在輸出時(shí)鐘(QKA/QKA#)的下降沿上采樣的輸出值即為在輸入時(shí)鐘的下降沿上所采樣的翻轉(zhuǎn)值。在這種模式下,數(shù)據(jù)翻轉(zhuǎn)無效,在進(jìn)行地址/控制環(huán)回訓(xùn)練過程中,CFG#信號(hào)將為高電平。
如圖9所示,如果地址/控制信號(hào)未校正,DQA 上的信號(hào)(應(yīng)在訓(xùn)練期間保持高電平)將變?yōu)榈碗娖健T撔盘?hào)轉(zhuǎn)換應(yīng)由驅(qū)動(dòng)信號(hào)的模塊捕獲,控制器則會(huì)對(duì)信號(hào)相應(yīng)進(jìn)行校準(zhǔn)。
讀取數(shù)據(jù)校正
在該階段,地址、控制和數(shù)據(jù)輸入時(shí)鐘都已經(jīng)得到了校正。在讀取數(shù)據(jù)校正過程中,用于寫入存儲(chǔ)器內(nèi)的訓(xùn)練數(shù)據(jù)模型是一個(gè)常量值(D00,D01,D20,D21),如下面的波形框圖中顯示。在此訓(xùn)練序列中,LBK0#和LBK1#均被設(shè)置為1。
配置選擇控制寄存器時(shí),Write_Train_Enable 位將被設(shè)置為1。第一個(gè)和第二個(gè)數(shù)據(jù)突發(fā)均在同一個(gè)數(shù)據(jù)總線上被采樣的,但第二個(gè)數(shù)據(jù)突發(fā)則在寫到存儲(chǔ)器內(nèi)前完成采樣的。Write_Train_Enable 位不會(huì)對(duì)讀取數(shù)據(jù)周期產(chǎn)生任何影響。
將數(shù)據(jù)模型寫到存儲(chǔ)器內(nèi)后,標(biāo)準(zhǔn)的讀指令允許控制器訪問這些數(shù)據(jù),并會(huì)校正QK/QK#信號(hào)。當(dāng) Write_Train_Enable = 1 時(shí),在寫入過程中,DINVA/DINVB 將被忽略,在讀取過程中,它將始終切換。
如下面的讀取數(shù)據(jù)校正框圖中所示,寫入到存儲(chǔ)器內(nèi)的數(shù)據(jù)(D00、D01、D20、D21)全為1,相應(yīng)的讀取數(shù)據(jù)(Q00、Q01、Q20、Q21)則在1 和0 間切換??刂破鞅匦璨蹲降竭@些切換數(shù)據(jù)并進(jìn)行驗(yàn)證。否則,控制器需要一個(gè)精確的校準(zhǔn)來確認(rèn)讀取數(shù)據(jù)校正。
在讀數(shù)據(jù)校正序列中:
l設(shè)置Write_Train_Enable位為1
lLBK0# = 1 及LBK1# = 1
寫數(shù)據(jù)校正
此時(shí),地址、控制、時(shí)鐘和數(shù)據(jù)輸出都已經(jīng)得到了校正。執(zhí)行寫入數(shù)據(jù)校正序列前,先再次進(jìn)入配置模式,然后通過將相應(yīng)位設(shè)置為0來禁用Write_Train_Enable。
在正常工作模式下,使用讀指令后,通過使用存儲(chǔ)器的寫指令可校正寫數(shù)據(jù)。所校正的讀取數(shù)據(jù)路徑用于確認(rèn)器件是否已經(jīng)正確地接收到寫入數(shù)據(jù)。這樣使處理器/FPGA能夠校正下列與DK/DK#輸入數(shù)據(jù)時(shí)鐘有關(guān)的信號(hào):DQA、DINVA、DQB和DINVB。
糾錯(cuò)碼(ECC)
系統(tǒng)設(shè)計(jì)人員必需依賴片外糾錯(cuò)或冗余等技術(shù)提高可靠性。這些技術(shù)會(huì)增加PCB空間或處理時(shí)間方面的開銷。QDR-IV是一個(gè)單芯片解決方案,引入了片上糾錯(cuò)碼(ECC),從而節(jié)省了空間和成本,降低了設(shè)計(jì)復(fù)雜性。此外,它還降低了QDR-IV存儲(chǔ)器陣列的總軟失效率(SER)。該特性可應(yīng)用于數(shù)據(jù)總線寬度為x18和x36的選項(xiàng),并在SRAM中始終被啟用。ECC保護(hù)提供了單比特糾錯(cuò)(SEC)。
QDR-IV從輸入數(shù)據(jù)生成ECC奇偶校驗(yàn)位,并將它們存儲(chǔ)在存儲(chǔ)器陣列中。存儲(chǔ)器陣列包含用于存儲(chǔ)ECC奇偶校驗(yàn)的額外位。但是,不會(huì)將這些額外的內(nèi)部校驗(yàn)位用于外部引腳。
例如,圖11顯示的是x36器件的輸出數(shù)據(jù)邏輯框圖。36數(shù)據(jù)位需要6個(gè)ECC校驗(yàn)位;存儲(chǔ)器內(nèi)核會(huì)將42位(36個(gè)數(shù)據(jù)位 + 6個(gè) ECC校驗(yàn)位)傳輸?shù)紼CC邏輯內(nèi)。因此,ECC邏輯會(huì)提供已糾正的36位輸出數(shù)據(jù)。
無ECC位的QDR/DDR SRAM的SER故障率(FIT)通常為200 FIT/Mb。但帶有ECC時(shí),該數(shù)值將為0.01 FIT/Mb,提高了4個(gè)數(shù)量級(jí)。
QDR-IV存儲(chǔ)器控制器的設(shè)計(jì)建議
本節(jié)提供一些存儲(chǔ)器控制器啟用QDR-IV的地址奇偶校驗(yàn)和總線翻轉(zhuǎn)功能的設(shè)計(jì)建議。
存儲(chǔ)器控制器首先要根據(jù)地址總線生成地址奇偶。然后,需要在地址總線和地址奇偶位上進(jìn)行地址翻轉(zhuǎn)。
對(duì)于數(shù)據(jù)總線轉(zhuǎn)換,將數(shù)據(jù)發(fā)送給QDR-IV前,存儲(chǔ)器控制器需要計(jì)算每個(gè)DQ總線上的邏輯“0”的數(shù)量,以便生成相應(yīng)的DINV位(取決于數(shù)據(jù)總線翻轉(zhuǎn)條件)。
將數(shù)據(jù)發(fā)送給存儲(chǔ)器控制器時(shí),QDR-IV使用相同的數(shù)據(jù)總線翻轉(zhuǎn)邏輯。為了識(shí)別QDR-IV的接收數(shù)據(jù),控制器僅要檢查相應(yīng)DINV位的狀態(tài)。如果控制器接收DINV = 1,需要翻轉(zhuǎn)相關(guān)的數(shù)據(jù)總線;否則,保持接收到的數(shù)據(jù)位不變。
圖12顯示的是存儲(chǔ)器控制器的設(shè)計(jì)注意事項(xiàng)。
評(píng)論