DDR4 SDRAM 中使用的bank group(后文簡(jiǎn)稱“BG”)功能是從 GDDR5 圖形存儲(chǔ)器中借用的。 為了理解對(duì) BG的需求,必須了解 DDR SDRAM 預(yù)取的概念。 預(yù)取表示每次使用 DDR 存儲(chǔ)器執(zhí)行列命令時(shí)提取word的數(shù)量。 因?yàn)?DRAM 的內(nèi)核比接口慢得多,所以會(huì)通過并行訪問信息然后將其從接口串行化輸出來彌補(bǔ)時(shí)鐘頻率差。 例如,DDR3 預(yù)取 8 個(gè)word,這意味著每次執(zhí)行讀取或?qū)懭氩僮鲿r(shí),都會(huì)處理8 個(gè)word的數(shù)據(jù),并在4個(gè)時(shí)鐘周期的8個(gè)時(shí)鐘沿上burst進(jìn)或出 SDRAM??梢哉J(rèn)為, DDR3 的 8 預(yù)取,使得接口比 DRAM 內(nèi)核快 8 倍。 預(yù)取的缺點(diǎn)是它固定了 SDRAM 的最小突發(fā)長(zhǎng)度。例如,在 DDR3 的預(yù)取為 8 的情況下,很難實(shí)現(xiàn)4 個(gè)word的突發(fā)長(zhǎng)度。BG功能允許設(shè)計(jì)人員在提高性能的同時(shí)保持較小的預(yù)取。 由于 DRAM 的核心速度在一代與一代之間沒有顯著變化,因此每代 DDR 都增加預(yù)取,以提供更高的 SDRAM 接口速度。然而,繼續(xù)使用 DDR4 的趨勢(shì)將需要 DDR4 采用 16 的預(yù)取。線的增多顯然將使 DRAM 更大。設(shè)計(jì)人員的設(shè)計(jì)目標(biāo)是不使用16預(yù)取。更重要的是,16 word預(yù)取與當(dāng)今計(jì)算機(jī)中常見的 64 字節(jié)cache行大小(line size)不匹配。在使用 64 字節(jié)cache行的典型環(huán)境中,使用 64 位或 72 位接口,預(yù)取 8 和突發(fā)長(zhǎng)度 8匹配得更好。任何此類cache行大小和突發(fā)長(zhǎng)度的不對(duì)齊都會(huì)對(duì)嵌入式系統(tǒng)的性能產(chǎn)生負(fù)面影響。 DDR4 Prefetch & Performance 了解預(yù)取如何影響性能之前,先來了解 SDRAM 隨著時(shí)間的推移發(fā)生了什么。圖 1 顯示了與最大列周期相比,每一代 SDRAM 的最大數(shù)據(jù)速率。隨著時(shí)間的推移,SDRAM 的內(nèi)核(等同列周期?)并沒有變得更快,這主要是因?yàn)檩^小工藝帶來的任何好處都被更大的 SDRAM 所抵消,因?yàn)樗哂懈蟮娜萘俊?設(shè)計(jì)人員最終要與不斷增加的容量作斗爭(zhēng),而工藝的小型化對(duì)此進(jìn)行了補(bǔ)充。 但是,每一代的 I/O 始終更快。怎么做到呢,這就是預(yù)取的用武之地。 Figure 1: SDRAM Performance Scaling 原始的 SDR SDRAM不需要預(yù)取。 每次執(zhí)行一個(gè)列周期時(shí),它訪問一個(gè)word數(shù)據(jù),并將其推出 SDRAM。 現(xiàn)在,雖然 SDRAM 實(shí)際上確實(shí)有一個(gè)稱為 2N 規(guī)則的東西,它可以容納 2 的預(yù)取,但 2N 被視為規(guī)范的限制性部分,所有最終成為商品設(shè)備的 SDRAM 設(shè)備都具有 1 的預(yù)取。然而,引入 DDR SDRAM后,內(nèi)核就無法跟上 SDRAM 所需的帶寬。這是引腳上的最大數(shù)據(jù)速率與內(nèi)部列周期之間分離的開始,如圖 2 所示。 Figure 2: SDRAM Performance Scaling Enabled by Prefetch 這種分離隨著時(shí)間的推移而擴(kuò)大。DDR2 使用預(yù)取 4 ,DDR3使用預(yù)取 8, DDR4 仍然使用預(yù)取8,但引入了bank group的概念,以避免更大的預(yù)取帶來的負(fù)面影響。 圖 3 顯示了從 SDR SDRAM 到 DDR3 SDRAM 的四代 SDRAM 預(yù)取是如何演變的。對(duì)于任何單列操作(例如,讀或?qū)懀?,一次訪問的word數(shù)由存儲(chǔ)器陣列的數(shù)量以及將這些word從存儲(chǔ)器跟SDRAM的核心之間進(jìn)或出所需的大致周期時(shí)間 (MHz) 表示。 在 90 年代中期,內(nèi)存陣列速度與 I/O 速度相匹配。很快,DDR 的 2N 預(yù)?。ㄒ策m用于 LPDDR)被引入,以實(shí)現(xiàn)比 SDRAM 內(nèi)核更高的數(shù)據(jù)速率。下圖第二行所示的多路mux可以訪問2個(gè)word,然后它們?cè)诮涌谏蠌?fù)用,在時(shí)鐘的一個(gè)上升沿和一個(gè)下降沿。DDR3/LPDDR3 的8N 預(yù)取也是同理。 Figure 3: Historical DRAM Prefetch DDR4 and Bank Groups 問題變成了:這如何應(yīng)用于 DDR4 及其 8N 預(yù)取? 如果 DDR4 遵循圖 3的趨勢(shì),則 DDR4 將具有 16 個(gè)預(yù)取,這是不可取的。 DDR4 通過引入BG的概念避免了這個(gè)問題。 對(duì)于BG,一組8的預(yù)取在一個(gè)BG中執(zhí)行,另一組8的預(yù)取可以在另一個(gè)獨(dú)立的BG中執(zhí)行。BG是獨(dú)立的實(shí)體,因此它們?cè)试S在一個(gè)BG內(nèi)完成一個(gè)列循環(huán),但該列循環(huán)不會(huì)影響另一個(gè)BG中正在發(fā)生的事情。 實(shí)際上,DDR4 SDRAM 可以時(shí)分復(fù)用其內(nèi)部BG,以隱藏內(nèi)部 SDRAM 內(nèi)核周期時(shí)間比接口上需要的 8 個(gè)突發(fā)所需的時(shí)間更長(zhǎng)的事實(shí)。 圖 4 顯示了該過程如何尋找具有兩個(gè)bank group的 x16 DDR4 SDRAM,這通常用于嵌入式應(yīng)用程序。Effectively, the DDR4 SDRAM can time division multiplex its internal bank groups in order to hide the fact that the internal SDRAM core cycle time takes longer than a burst of eight requires on the interface. Figure 4 shows how this process looks for a x16 DDR4 SDRAM with two bank groups, which are often used in embedded applications. Figure 4: DDR4 Solution to Prefetch of Eight New Bank Groups Specifications DDR4 的新規(guī)范引入BG。兩個(gè)關(guān)鍵規(guī)格是 tCCD_S 和 tCCD_L。 “CCD” 代表“column to column delay”或“command to command delay” on the column side. “_S”代表“短”,“_L”代表“長(zhǎng)”。 當(dāng)一個(gè)命令在一個(gè)具有 8N 預(yù)取的BG中啟動(dòng)時(shí),必須允許預(yù)取完成,需要該group的整個(gè)周期時(shí)間才能完成。從一個(gè)BG轉(zhuǎn)到另一個(gè)BG則沒有約束。使用tCCD_S規(guī)范就是這種情況,它在四個(gè)時(shí)鐘周期內(nèi)不受限制, 類似于 DDR3。 然而,有一個(gè)大問題。在同一個(gè)BG內(nèi)執(zhí)行命令到命令需要注意 DDR4 的新tCCD_L 規(guī)范,該規(guī)范通常大于四個(gè)時(shí)鐘周期。圖 5 突出顯示了 tCCD_S 和 tCCD_L 之間的區(qū)別。 Figure 5: tCCD_L and tCCD_S in DDR4 Bank Groups New tCCD Specifications, Big Impact 如圖 6 所示,使用 DDR4 在不同的BG之間傳輸需要四個(gè)時(shí)鐘周期的延遲。四個(gè)時(shí)鐘周期與 8 個(gè)突發(fā)長(zhǎng)度相匹配。因?yàn)樗膫€(gè)時(shí)鐘周期是八個(gè)時(shí)鐘邊沿,包括上升沿和下降沿,所以 8 個(gè)突發(fā)長(zhǎng)度在這四個(gè)時(shí)鐘周期內(nèi)的每個(gè)時(shí)鐘沿上非常有效地輸出或接收數(shù)據(jù)。在這種情況下,不會(huì)浪費(fèi)總線帶寬。一個(gè)命令可以跟隨另一個(gè)命令,而不會(huì)在沒有傳輸數(shù)據(jù)的總線上浪費(fèi)任何周期。 Figure 6: Bank Group Defines tCCD Parameters Differently Between the Same Bank Group and a Different Bank Group 但在同一個(gè) BG中,速率提升到1600 Mbps后,tCCD_L 規(guī)范需要四個(gè)以上的時(shí)鐘。1,600 和 1,866 Mbps 需要 5 個(gè)時(shí)鐘,而 2,133 Mbps 需要 6 個(gè)時(shí)鐘。 圖 6下方的時(shí)序圖顯示,在不同的 BG之間進(jìn)行訪問可以在訪問點(diǎn)之間有四個(gè)時(shí)鐘周期。在同一個(gè)BG中,以2,133 Mbps為例,需要在列命令之間有六個(gè)時(shí)鐘周期。 但是,傳輸數(shù)據(jù)只需要 4 個(gè)時(shí)鐘周期,即33% 的總線帶寬被浪費(fèi)。 Scheduling Traffic for Efficient Bank Group Use 圖 7 中的時(shí)序圖顯示了 DDR4 的BG在 1600 Mbps中的影響。 tCCD_L 長(zhǎng)規(guī)格為 5 意味著在同一 BG內(nèi)的列命令之間需要 5 個(gè)時(shí)鐘周期。圈起的區(qū)域可以看出:當(dāng)使用五個(gè)時(shí)鐘周期時(shí),有一個(gè)時(shí)鐘周期被浪費(fèi),沒有任何數(shù)據(jù)。在更高的數(shù)據(jù)速率下,浪費(fèi)越來越厲害。 在八個(gè)的情況下,試圖留在同一個(gè)BG內(nèi)浪費(fèi)了一半的帶寬。 Figure 7: Potential Wasted Clock Cycles Between Column Commands1 原文鏈接: DDR4 Bank Groups | Interface IP | DesignWare IP | Synopsys What are DDR4 SDRAM Bank Groups? LPDDR5/5X BG mode,8B mode和16B modeBANK架構(gòu)概述總體說明LPDDR5/5X 器件,協(xié)議上支持多個(gè)bank架構(gòu)可靜態(tài)配置;配置在MR3: 幾個(gè)模式簡(jiǎn)要描述:
三種模式的示意圖BG模式圖示
8B模式圖示
16B模式圖示
burst操作波形,以讀為例BG模式 BL16 4:1模式的讀波形
BG模式 BL32 4:1模式的讀波形
8B模式 BL32 4:1模式的讀波形
16B模式 BL16 4:1模式的讀波形
16B模式 BL32 4:1模式的讀波形
|
|