使用QDR-IV設計高性能網(wǎng)絡系統(tǒng)——第二部分
總線轉換的注意事項
本文引用地址:http://www.ex-cimer.com/article/201702/344318.htm總線轉換時間非常重要,其決定了讀和寫指令間是否需要額外的間隔來避免在同一個I/O 端口上發(fā)生總線沖突。
想象下QDR-IV HP SRAM 中端口A 先后收到寫指令和讀指令。從CK 信號的上升沿(與初始化寫指令周期相對應)算起,在整整三個時鐘周期后向DQA 引腳提供寫數(shù)據(jù)。讀數(shù)據(jù)則將在下一個周期發(fā)送,因為 DQ從CK 信號的上升沿(與初始化讀指令的周期相應)算起五個時鐘周期后才能獲得數(shù)據(jù)。此外,為符合總線轉換時間和傳輸時延(從ASIC/FPGA 到QDR IV 存儲器),還有兩個額外周期。因此,啟動寫指令后,可以立即啟動讀指令。
在其他情況下,如果先啟動讀指令后啟動寫指令,那么發(fā)送讀指令經(jīng)過三個時鐘周期后,才能發(fā)送寫指令。這是因為,從在時鐘信號CK 的上升沿上對讀指令進行采樣算起,經(jīng)過五個周期后可獲得DQA 引腳上的讀數(shù)據(jù),并且從在時鐘信號CK 的上 升沿上對寫指令進行采樣算起,在整三個時鐘周期內(nèi)向DQA 引腳提供寫數(shù)據(jù)。否則,將會發(fā)生總線沖突。因此,發(fā)送寫指令后的最小時鐘周期應該為RL – WL + 1(RL:讀時延;WL:寫時延;這兩個時延的單位為時鐘周期數(shù))。另外一個時鐘周期用于正確捕獲數(shù)據(jù)并補償總線轉換時延(通常為一個時鐘周期)。
如果傳輸時延大于總線轉換時延,那么‘讀到寫’指令間的間隔為:
“讀到寫”指令間的時間周期 = 讀時延 – 寫時延 + 1 + 傳輸時延
請參考圖7。發(fā)送讀指令經(jīng)過四個時鐘周期后,將發(fā)送端口A 的寫指令。這樣是為了避免因讀/寫時延、總線轉換時間和傳輸時延間的差別而導致的總線沖突。
總線翻轉
QDR-IV 器件支持總線翻轉以降低切換噪聲和I/O功耗。在存儲事務處理中,存儲器控制器和QDR-IV都可以選擇應用總線翻轉。
由于QDR-IV 器件的POD 信令模式為I/O 信號提供了到VDDQ 的高壓終端選項,所以信號轉為高電平邏輯狀態(tài)不會耗電。因此,總線翻轉對于POD I/O 信號是一個很重要的性能。QDR-IV 會保證翻轉地址和數(shù)據(jù)總線的數(shù)據(jù)完整性。
使用芯片配置寄存器來啟用或禁用地址和數(shù)據(jù)總線翻轉功能。
地址總線翻轉
AINV 是雙倍數(shù)據(jù)速率信號,每次將地址發(fā)送給存儲器器件時都會更新該信號。AINV 引腳指示是否對地址總線(An –A0)和AP 進行了翻轉。AINV 是高電平有效信號。當AINV = 1 時,將翻轉地址總線;當AINV = 0 時,不翻轉地址總線。AINV 引腳的功能由存儲器控制器控制。
地址總線和地址奇偶位都被視為地址組(AG)。
表5顯示的是AG 定義以及x18 和x36 QDR-IV 選項的AINV 設置條件。
x36器件示例
不進行地址總線翻轉:
假設要訪問的地址分別為22’h 000199和22’h 3FFCFF。17個地址引腳需要在第一個和第二個地址的邏輯狀態(tài)間進行切換,如下表所示(紅色單元格顯示)。這樣會增大地址引腳上的切換噪聲、I/O電流以及串擾。
進行地址總線翻轉:
根據(jù)表5顯示,第一個地址組(22'h 000199)滿足翻轉邏輯條件。因此,存儲器控制器發(fā)送第一個地址組前,它會將地址組從22’h 000199翻轉為22’h 3FFE66,并將AINV引腳置為1。由于不需要翻轉第二個地址組,所以存儲器控制器可以將其直接發(fā)送,并將AINV設置為0。
下表顯示的是地址總線翻轉的結果。在這種情況下,只有5個地址引腳需要切換邏輯(紅色單元格顯示)。切換位的總數(shù)降低為5,所以降低了由于同時切換輸出(SSO)而引起的噪聲、I/O電流以及串擾。
數(shù)據(jù)總線翻轉
數(shù)據(jù)總線翻轉在數(shù)據(jù)線路中也類似,但翻轉位由存儲器控制器在存儲器寫操作期間生成,并且翻轉位由QDR-IV存儲器中的翻轉邏輯在存儲器讀操作期間生成。
DINVA和DINVB引腳指示了是否翻轉相應的DQA和DQB引腳。DINVA和DINVB均為高電平有效信號。當DINV = 1時,將翻轉數(shù)據(jù)總線;當DINV = 0時,不翻轉數(shù)據(jù)總線。
DINVA[1]和DINVA[0]相互獨立并控制與其相應的DQA組。DINVA[0]控制DQA[17:0](對于x36的配置)或DQA[8:0](對于x18的配置)。DINVA[1]控制DQA[35:18](對于x36的配置)或DQA[17:9](對于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選項的DINVA設置條件。
注意:可以對DINVA[1]、DINVB[0]以及DINVB[1]使用相同的翻轉邏輯,以便控制相應的DQ組。
x18器件的示例
不進行數(shù)據(jù)總線翻轉:
假設需要分別發(fā)送DQA[8:0]上的9’h 007和9’h 1F3。6個數(shù)據(jù)引腳需要在第一個和第二個DQA[8:0]位的邏輯狀態(tài)之間進行切換,如下表所示(紅色單元格顯示)。這樣會增大數(shù)據(jù)引腳上的切換噪聲、I/O電流以及串擾。
進行數(shù)據(jù)總線翻轉:
根據(jù)表8,第一個DQA[8:0]滿足翻轉邏輯條件。因此,存儲器控制器發(fā)送第一個DQA[8:0]前,它會將引腳地址從9’h 007翻轉為9’h 1F8,并將DINVA[0]引腳設置為1。由于第二個DQA[8:0]不需要翻轉,所以存儲器控制器可以直接發(fā)送它,并將DINVA[0]設置為0。
表10顯示的是數(shù)據(jù)總線翻轉的結果。在這種情況下,只有3個數(shù)據(jù)引腳需要切換邏輯(紅色單元格顯示)。切換位的總數(shù)降低為3,所以降低了SSO的噪聲、I/O電流以及串擾。
地址奇偶校驗
QDR-IV只有一條地址總線,但其以雙倍數(shù)據(jù)速率和高頻率運行。因此,地址奇偶校驗輸入(AP)和地址奇偶校驗錯誤標志輸出(PE#)引腳提供了片上地址奇偶校驗功能,以便能夠確保地址總線完整性。地址奇偶校驗功能是可選的;可以使用配置寄存器來啟用或禁用它。
通過該AP引腳可以在各地址引腳(An到A0)上進行偶校驗。設置AP值,使AP和An-A0中邏輯“1”的總數(shù)為偶數(shù)。
對于數(shù)據(jù)總線寬度為x18的器件,設置AP值,使A[21:0]和AP中邏輯“1”的總數(shù)為偶數(shù)。
對于數(shù)據(jù)總線寬度為x36的器件,設置AP值,使A[20:0]和AP中邏輯“1”的總數(shù)為偶數(shù)。
器件的示例
以數(shù)據(jù)總線寬度為x36的器件的21’h1E0000和21’h1F0000地址為示例。表11顯示的是如何為每個地址設置AP值。
當發(fā)生奇偶錯誤時,在配置寄存器4、5、6和7中(請查看相關數(shù)據(jù)手冊,了解有關配置寄存器的更多信息)記錄第一個錯誤的完整地址以及端口A/B錯誤位和地址翻轉位。端口A/B錯誤位表示發(fā)生地址奇偶錯誤的端口:0表示端口A,1表示端口B。持續(xù)鎖存該信息,直到向配置寄存器3中的地址奇偶錯誤清除位寫入1來清除該信息為止。
通過兩個計數(shù)器,可以表示是否發(fā)生了多個地址奇偶錯誤。端口A錯誤計數(shù)是端口A地址上奇偶錯誤數(shù)量的運行計數(shù)器。同樣,端口B錯誤計數(shù)是端口b地址上奇偶錯誤數(shù)量的運行計數(shù)器。每個計數(shù)器獨立計數(shù)到最大值(3),然后將停止計數(shù)。這些計數(shù)器均是自由運行的;對配置寄存器3的地址奇偶錯誤清除位寫入1,可將其復位。
檢測到地址奇偶錯誤后,寫操作就會被忽略,以防止損壞存儲器。但是,如果輸入地址錯誤,仍會繼續(xù)執(zhí)行讀操作,但存儲器會發(fā)送出假數(shù)據(jù)。
PE#為低電平有效信號,表示地址奇偶錯誤。檢測到地址奇偶錯誤后,PE#信號在8個周期(QDR-IV XP SRAM)或5個周期(QDR-IV HP SRAM)內(nèi)被設置為0。它將保持置位狀態(tài),直到通過配置寄存器清除了錯誤為止。處理完地址翻轉便表示完成了地址奇偶檢查。
PE#轉為低電平后,會停止存儲器操作,并使用配置寄存器將PE#復位為高電平。此外,由于發(fā)生AP錯誤的寫操作也被阻止,所以需要向存儲器重新編寫數(shù)據(jù)。
在本系列第三部分,我們將探討校正問題,其中包括矯正訓練、控制/地址校正和讀寫校正,以及糾錯碼(ECC)和QDR-IV存儲器控制器的設計建議。
評論