0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

以SDR SDRAM 為例,DRAM Device 與 Host 端的接口描述

西西 ? 來(lái)源:蝸窩科技 ? 作者:codingbelief ? 2020-09-22 15:34 ? 次閱讀

在前面的文章中,介紹了 DRAM Cell 和 Memory Array。 本文則以 SDR SDRAM 為例,描述 DRAM Device 與 Host 端的接口,以及其內(nèi)部的其他模塊,包括 Control Logic、IO、Row & Column Decoder 等。

1. SDRAM Interface

SDR SDRAM 是 DRAM 的一種,它與 Host 端的硬件接口如下圖所示:

總線上各個(gè)信號(hào)的描述如下表所示:

Symbol Type Description
CLK Input 從 Host 端輸出的同步時(shí)鐘信號(hào)
CKE Input 用于指示 CLK 信號(hào)是否有效,SDRAM 會(huì)根據(jù)此信號(hào)進(jìn)入或者退出 Power down、Self-refresh 等模式
CS# Input Chip Select 信號(hào)
CAS# Input Column Address Strobe,列地址選通信號(hào)
RAS# Input Row Address Strobe, 行地址選通信號(hào)
WE# Input Write Enable,寫使能信號(hào)
DQML Input 當(dāng)進(jìn)行寫數(shù)據(jù)時(shí),如果該 DQML 為高,那么 DQ[7:0] 的數(shù)據(jù)會(huì)被忽略,不寫入到 DRAM
DQMH Input 當(dāng)進(jìn)行寫數(shù)據(jù)時(shí),如果該 DQMH 為高,那么 DQ[15:8] 的數(shù)據(jù)會(huì)被忽略,不寫入到 DRAM
BA[1:0] Input Bank Address,用于選擇操作的 Memory Bank
A[12:0] Input Address 總線,用于傳輸行列地址
DQ[15:0] I/O Data 總線,用于傳輸讀寫的數(shù)據(jù)內(nèi)容

1.1 SDRAM Operations

Host 與 SDRAM 之間的交互都是由 Host 以 Command 的形式發(fā)起的。一個(gè) Command 由多個(gè)信號(hào)組合而成,下面表格中描述了主要的 Command。

Command CS# RAS# CAS# WE# DQM BA[1:0] & A[12:0] DQ[15:0]
Active L L H H X Bank & Row X
Read L H L H L/H Bank & Col X
Write L H L L L/H Bank & Col Valid
Precharge L L H L X Code X
Auto-refresh L L L H X X X
Self-refresh L L L H X X X
Load Mode Register L L L L X REG Value X

1.1.1 Active

Active Command 會(huì)通過(guò) BA[1:0] 和 A[12:0] 信號(hào),選中指定 Bank 中的一個(gè) Row,并打開(kāi)該 Row 的 wordline。在進(jìn)行 Read 或者 Write 前,都需要先執(zhí)行 Active Command。

1.1.2 Read

Read Command 將通過(guò) A[12:0] 信號(hào),發(fā)送需要讀取的 Column 的地址給 SDRAM。然后 SDRAM 再將 Active Command 所選中的 Row 中,將對(duì)應(yīng) Column 的數(shù)據(jù)通過(guò) DQ[15:0] 發(fā)送給 Host。

Host 端發(fā)送 Read Command,到 SDRAM 將數(shù)據(jù)發(fā)送到總線上的需要的時(shí)鐘周期個(gè)數(shù)定義為 CL。

1.1.3 Write

Write Command 將通過(guò) A[12:0] 信號(hào),發(fā)送需要寫入的 Column 的地址給 SDRAM,同時(shí)通過(guò) DQ[15:0] 將待寫入的數(shù)據(jù)發(fā)送給 SDRAM。然后 SDRAM 將數(shù)據(jù)寫入到 Actived Row 的指定 Column 中。

SDRAM 接收到最后一個(gè)數(shù)據(jù)到完成數(shù)據(jù)寫入到 Memory 的時(shí)間定義為 tWR (Write Recovery)。

1.1.4 Precharge

在進(jìn)行下一次的 Read 或者 Write 操作前,必須要先執(zhí)行 Precharge 操作。(具體的細(xì)節(jié)可以參考DRAM Storage Cell章節(jié))

Precharge 操作是以 Bank 為單位進(jìn)行的,可以單獨(dú)對(duì)某一個(gè) Bank 進(jìn)行,也可以一次對(duì)所有 Bank 進(jìn)行。如果 A10 為高,那么 SDRAM 進(jìn)行 All Bank Precharge 操作,如果 A10 為低,那么 SDRAM 根據(jù) BA[1:0] 的值,對(duì)指定的 Bank 進(jìn)行 Precharge 操作。

SDRAM 完成 Precharge 操作需要的時(shí)間定義為 tPR。

1.1.5 Auto-Refresh

DRAM 的 Storage Cell 中的電荷會(huì)隨著時(shí)間慢慢減少,為了保證其存儲(chǔ)的信息不丟失,需要周期性的對(duì)其進(jìn)行刷新操作。

SDRAM 的刷新是按 Row 進(jìn)行,標(biāo)準(zhǔn)中定義了在一個(gè)刷新周期內(nèi)(常溫下 64ms,高溫下 32ms)需要完成一次所有 Row 的刷新操作。

為了簡(jiǎn)化 SDRAM Controller 的設(shè)計(jì),SDRAM 標(biāo)準(zhǔn)定義了 Auto-Refresh 機(jī)制,該機(jī)制要求 SDRAM Controller 在一個(gè)刷新周期內(nèi),發(fā)送 8192 個(gè) Auto-Refresh Command,即 AR, 給 SDRAM。

SDRAM 每收到一個(gè) AR,就進(jìn)行 n 個(gè) Row 的刷新操作,其中,n = 總的 Row 數(shù)量 / 8192 。
此外,SDRAM 內(nèi)部維護(hù)一個(gè)刷新計(jì)數(shù)器,每完成一次刷新操作,就將計(jì)數(shù)器更新為下一次需要進(jìn)行刷新操作的 Row。

一般情況下,SDRAM Controller 會(huì)周期性的發(fā)送 AR,每?jī)蓚€(gè) AR 直接的時(shí)間間隔定義為 tREFI = 64ms / 8192 = 7.8 us。

SDRAM 完成一次刷新操作所需要的時(shí)間定義為 tRFC, 這個(gè)時(shí)間會(huì)隨著 SDRAM Row 的數(shù)量的增加而變大。

由于 AR 會(huì)占用總線,阻塞正常的數(shù)據(jù)請(qǐng)求,同時(shí) SDRAM 在執(zhí)行 refresh 操作是很費(fèi)電,所以在 SDRAM 的標(biāo)準(zhǔn)中,還提供了一些優(yōu)化的措施,例如 DRAM Controller 可以最多延時(shí) 8 個(gè) tREFI 后,再一起把 8 個(gè) AR 同時(shí)發(fā)出。

更多相關(guān)的優(yōu)化可以參考《大容量 DRAM 的刷新開(kāi)銷問(wèn)題及優(yōu)化技術(shù)綜述》文中的描述。

1.1.6 Self-Refresh

Host 還可以讓 SDRAM 進(jìn)入 Self-Refresh 模式,降低功耗。在該模式下,Host 不能對(duì) SDRAM 進(jìn)行讀寫操作,SDRAM 內(nèi)部自行進(jìn)行刷新操作保證數(shù)據(jù)的完整。通常在設(shè)備進(jìn)入待機(jī)狀態(tài)時(shí),Host 會(huì)讓 SDRAM 進(jìn)入 Self-Refresh 模式,以節(jié)省功耗。

更多各個(gè) Command 相關(guān)的細(xì)節(jié),可以參考后續(xù)的DRAM Timing章節(jié)。

1.2 Address Mapping

SDRAM Controller 的主要功能之一是將 CPU 對(duì)指定物理地址的內(nèi)存訪問(wèn)操作,轉(zhuǎn)換為 SDRAM 讀寫時(shí)序,完成數(shù)據(jù)的傳輸。
在實(shí)際的產(chǎn)品中,通常需要考慮 CPU 中的物理地址到 SDRAM 的 Bank、Row 和 Column 地址映射。下圖是一個(gè) 32 位物理地址映射的一個(gè)例子:

2. SDRAM 內(nèi)部結(jié)構(gòu)

如圖所示,DRAM Device 內(nèi)部主要有 Control Logic、Memory Array、Decoders、Reflash Counter 等模塊。在后續(xù)的小節(jié)中,將逐一介紹各個(gè)模塊的主要功能。

2.1 Control Logic

Control Logic 的主要功能是解析 SDRAM Controller 發(fā)出的 Command,然后根據(jù)具體的 Command 做具體內(nèi)部模塊的控制,例如:選中指定的 Bank、觸發(fā) refresh 等的操作。

Control Logic 包含了 1 個(gè)或者多個(gè) Mode Register。該 Register 中包含了時(shí)序、數(shù)據(jù)模式等的配置,更多的細(xì)節(jié)會(huì)在DRAM Timing章節(jié)進(jìn)行描述。

2.2Row & Column Decoder

Row Decoder 的主要功能是將 Active Command 所帶的 Row Address 映射到具體的 wordline,最終打開(kāi)指定的 Row。同樣 Column Decoder 則是把 Column Address 映射到具體的 csl,最終選中特定的 Column。

2.3 Memory Array

Memory Array 是存儲(chǔ)信息的主要模塊,具體細(xì)節(jié)可以參考DRAM Memory Orgization章節(jié)的描述。

2.4 IO

IO 電路主要是用于處理數(shù)據(jù)的緩存、輸入和輸出。其中 Data Latch 和 Data Register 用于緩存數(shù)據(jù),DQM Mask Logic 和 IO Gating 等則用于輸入輸出的控制。

2.5 Refresh Counter

Refresh Counter 用于記錄下次需要進(jìn)行 refresh 操作的 Row。在接收到 AR 或者在 Self-Refresh 模式下,完成 一次 refresh 后,Refresh Counter 會(huì)進(jìn)行更新。

3. 不同類型的 SDRAM

目前市面上在使用的 DRAM 主要有 SDR、DDR、LPDDR、GDDR 這幾類,后續(xù)小節(jié)中,將對(duì)各種類型的 DRAM 進(jìn)行簡(jiǎn)單的介紹。

3.1 SDR 和 DDR

SDR(Single Data Rate) SDRAM 是第一個(gè)引入 Clock 信號(hào)的 DRAM 產(chǎn)品,SDR 在 Clock 的上升沿進(jìn)行總線信號(hào)的處理,一個(gè)時(shí)鐘周期內(nèi)可以傳輸一組數(shù)據(jù)。

DDR(Double Data Rate) SDRAM 是在 SDR 基礎(chǔ)上的一個(gè)更新。DDR 內(nèi)部采用 2n-Prefetch 架構(gòu),相對(duì)于 SDR,在一個(gè)讀寫周期內(nèi)可以完成 2 倍寬度數(shù)據(jù)的預(yù)取,然后在 Clock 的上升沿和下降沿都進(jìn)行數(shù)據(jù)傳輸,最終達(dá)到在相同時(shí)鐘頻率下 2 倍于 SDR 的數(shù)據(jù)傳輸速率。(更多 2n-Prefetch 相關(guān)的細(xì)節(jié)可以參考 《Micron Technical Note - General DDR SDRAM Functionality》文中的介紹)

Prefetch 的基本原理如下圖所示。在示例 B 中,內(nèi)部總線寬度是 A 的兩倍,在一次操作周期內(nèi),可以將兩倍于 A 的數(shù)據(jù)傳輸?shù)?Output Register 中,接著外部 IO 電路再以兩倍于 A 的頻率將數(shù)據(jù)呈現(xiàn)到總線上,最終實(shí)現(xiàn)兩倍 A 的傳輸速率。

DDR 后續(xù)還有 DDR2、DDR3、DDR4 的更新,基本上每一代都通過(guò)更多的 Prefetch 和更高的時(shí)鐘頻率,達(dá)到 2 倍于上一代的數(shù)據(jù)傳輸速率。

DDR SDRAM Standard Bus clock (MHz) Internal rate (MHz) Prefetch (min burst) Transfer Rate (MT/s) Voltage
DDR 100–200 100–200 2n 200–400 2.5/2.6
DDR2 200–533.33 100–266.67 4n 400–1066.67 1.8
DDR3 400–1066.67 100–266.67 8n 800–2133.33 1.5
DDR4 1066.67–2133.33 133.33–266.67 8n 2133.33–4266.67 1.05/1.2

Transfer Rate (MT/s)為每秒發(fā)生的 Transfer 的數(shù)量,一般為 Bus Clock 的 2 倍 (一個(gè) Clock 周期內(nèi),上升沿和下降沿各有一個(gè) Transfer)
Internal rate (MHz)則是內(nèi)部 Memory Array 讀寫的頻率。由于 SDRAM 采用電容作為存儲(chǔ)介質(zhì),由于工藝和物理特性的限制,電容充放電的時(shí)間難以進(jìn)一步的縮短,所以內(nèi)部 Memory Array 的讀寫頻率也受到了限制,目前最高能到 266.67 MHz,這也是 SDR 到 DDR 采用 Prefetch 架構(gòu)的主要原因。
Memory Array 讀寫頻率受到限制,那就只能在讀寫寬度上做優(yōu)化,通過(guò)增加單次讀寫周期內(nèi)操作的數(shù)據(jù)寬度,結(jié)合總線和 IO 頻率的增加來(lái)提高整體傳輸速率。

3.2 LPDDRx

LPDDR,即 Low Power DDR SDRAM,主要是用著移動(dòng)設(shè)備上,例如手機(jī)、平板等。相對(duì)于 DDR,LPDDR 采用了更低的工作電壓、Partial Array Self-Refresh 等機(jī)制,降低整體的功耗,以滿足移動(dòng)設(shè)備的低功耗需求。

3.3 GDDRx

GDDR,即 Graphic DDR,主要用在顯卡設(shè)備上。相對(duì)于 DDR,GDDR 具有更高的性能、更低的功耗、更少的發(fā)熱,以滿足顯卡設(shè)備的計(jì)算需求。

4. 參考資料

Memory Systems - Cache Dram and Disk

大容量 DRAM 的刷新開(kāi)銷問(wèn)題及優(yōu)化技術(shù)綜述 [PDF]

Micron Technical Note - General DDR SDRAM Functionality [PDF]

Everything You Need To Know About DDR, DDR2 and DDR3 Memories [WEB]

記憶體10年技術(shù)演進(jìn)史 [WEB]

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • DRAM
    +關(guān)注

    關(guān)注

    40

    文章

    2315

    瀏覽量

    183500
  • SDRAM
    +關(guān)注

    關(guān)注

    7

    文章

    423

    瀏覽量

    55227
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    TMS320C6000 EMIF至外部SDRAM接口

    電子發(fā)燒友網(wǎng)站提供《TMS320C6000 EMIF至外部SDRAM接口.pdf》資料免費(fèi)下載
    發(fā)表于 10-26 10:06 ?0次下載
    TMS320C6000 EMIF至外部<b class='flag-5'>SDRAM</b><b class='flag-5'>接口</b>

    光纖跳線和光纖尾纖的區(qū)別—— 山澤品牌

    在光纖通信和網(wǎng)絡(luò)建設(shè)中,光纖跳線和光纖尾纖是兩種非常重要的組件。它們?cè)诠δ芎褪褂脠?chǎng)景上有明顯的區(qū)別。本文將詳細(xì)介紹這兩種光纖組件的區(qū)別,并以山澤品牌的產(chǎn)品,幫助你更好地選擇適合自己的光纖組件
    的頭像 發(fā)表于 10-21 15:57 ?375次閱讀

    TUSB1002下拉電阻220KΩ和串聯(lián)電容330nF,是需要放置在設(shè)備device,還是說(shuō)需要放置在有端子的一?

    想請(qǐng)教下,圖中所示下拉電阻220KΩ和串聯(lián)電容330nF,是需要放置在設(shè)備device,還是說(shuō)需要放置在有端子的一(不論端子是Host還是Dev
    發(fā)表于 10-21 06:18

    光纖跳線常用接口類型—— 山澤品牌

    在現(xiàn)代網(wǎng)絡(luò)建設(shè)中,光纖跳線是不可或缺的關(guān)鍵組件。不同的應(yīng)用場(chǎng)景需要不同類型的光纖跳線接口。今天,我們就來(lái)詳細(xì)介紹幾種常見(jiàn)的光纖跳線接口類型,并以山澤品牌的產(chǎn)品,幫助你在選擇時(shí)更加得
    的頭像 發(fā)表于 10-18 15:58 ?321次閱讀

    測(cè)試用怎么寫

    測(cè)試方法,旨在驗(yàn)證整個(gè)應(yīng)用程序從前端到后端的流程是否能夠按照預(yù)期工作。它涉及多個(gè)系統(tǒng)組件和接口的交互,確保業(yè)務(wù)流程的完整性和正確性。 二、編寫測(cè)試用的步驟 需求分析 理解業(yè)務(wù)流
    的頭像 發(fā)表于 09-20 10:29 ?455次閱讀

    SDRAM的特點(diǎn)與應(yīng)用

    同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(Synchronous Dynamic Random Access Memory,簡(jiǎn)稱SDRAM)是一種基于同步時(shí)鐘的DRAM
    的頭像 發(fā)表于 07-29 16:56 ?2071次閱讀

    同步DRAM(SDRAM)介紹

    DRAM從20世紀(jì)70年代初到90年代初生產(chǎn),接口都是異步的,其中輸入控制信號(hào)直接影響內(nèi)部功能。
    的頭像 發(fā)表于 07-29 09:55 ?755次閱讀
    同步<b class='flag-5'>DRAM</b>(<b class='flag-5'>SDRAM</b>)介紹

    SDRAM中的active命令介紹

    在向SDRAM 中的任何行發(fā)出 READ或 WRITE 命令之前,必須先打開(kāi)該行。這是通過(guò) ACTIVE 命令完成的。ACTIVE 命令的目的是打開(kāi)或者說(shuō)激活(active)bank中的一行并將數(shù)據(jù)從 DRAM 移動(dòng)到bank的靈敏放大器。下圖說(shuō)明了 ACTIVE 命令的
    的頭像 發(fā)表于 07-29 09:53 ?453次閱讀
    <b class='flag-5'>SDRAM</b>中的active命令介紹

    ESP32S3使用例程usb_host_lib枚舉device失敗的原因?

    在網(wǎng)店購(gòu)買了樂(lè)鑫那款帶micro usb的esp32s3核心板,使用例程usb_host_lib配置核心板host,使用OTG轉(zhuǎn)接頭插入U(xiǎn)盤,例程可以產(chǎn)生事務(wù)回調(diào),并能夠打印出設(shè)備的PID/VID
    發(fā)表于 06-07 06:53

    請(qǐng)問(wèn)usb host如何獲得USB設(shè)備的描述字符串?

    描述符字符串? 比如我的USB設(shè)備: ---------------------- Device Descriptor ---------------------- bLength : 0x12
    發(fā)表于 06-06 06:51

    用STM32_USB-Host-Device_Lib USB_Host_ExamplesHID例程,主循環(huán)加入延時(shí)后按鍵盤不能讀到字符是為什么?

    參考的UM1021手冊(cè),用的STM32_USB-Host-Device_Lib USB_Host_ExamplesHID例程。 插鍵盤使用,USBH_Process() 循環(huán)間隔小于3ms,按鍵
    發(fā)表于 04-29 07:40

    需要用f4xx做usb vcp host,請(qǐng)問(wèn)有沒(méi)有辦法讓host不輪詢讀呢?

    device發(fā)的數(shù)據(jù),host不會(huì)主動(dòng)收, 需要host定時(shí)調(diào)用receive的函數(shù)才能收到,請(qǐng)問(wèn)有沒(méi)有辦法讓
    發(fā)表于 03-26 08:25

    SATA3.0 Host Controller IP介紹

    ,和SATA規(guī)范完全兼容。SATA3.0 Host IP給用戶使用SATA存儲(chǔ)設(shè)備提供一種高效且易于使用的接口。無(wú)需用戶干預(yù),SATA3.0 Host IP自動(dòng)完成連接、診斷、識(shí)別以及初始化SATA存儲(chǔ)設(shè)備,輸出SATA設(shè)備的I
    發(fā)表于 02-27 15:53 ?0次下載

    高級(jí)設(shè)計(jì):SDR SDRAM驅(qū)動(dòng)設(shè)計(jì)

    隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)分為靜態(tài)RAM(SRAM)和動(dòng)態(tài)RAM(DRAM)。由于動(dòng)態(tài)存儲(chǔ)器存儲(chǔ)單元的結(jié)構(gòu)非常簡(jiǎn)單,所以它能達(dá)到的集成度遠(yuǎn)高于靜態(tài)存儲(chǔ)器。但是動(dòng)態(tài)存儲(chǔ)器的存取速度不如靜態(tài)存儲(chǔ)器快。
    的頭像 發(fā)表于 01-19 15:47 ?2044次閱讀
    高級(jí)設(shè)計(jì):<b class='flag-5'>SDR</b> <b class='flag-5'>SDRAM</b>驅(qū)動(dòng)設(shè)計(jì)

    smt32h750擴(kuò)展sdram

    STM32H750是STMicroelectronics推出的一款高性能微控制器,其特點(diǎn)之一是可擴(kuò)展的SDRAM(同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器)接口。本文將詳細(xì)介紹STM32H750擴(kuò)展SDRAM的相關(guān)知識(shí)
    的頭像 發(fā)表于 01-04 14:09 ?1427次閱讀