日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

存储控制器_SDRAM详解

發布時間:2025/3/17 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 存储控制器_SDRAM详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

什么是 SDRAM

Synchronous Dynamic Random Access Memory: 同步動態隨機存儲器. ? 同步 : 由soc發送時鐘給SDRAM, 通過該時鐘的節拍來發送控制信號.????動態 : 存儲器需要不斷的刷新來保證數據不丟失.????隨機 : 數據非線性存儲, 可自由指定地址進行數據的讀寫

SDRAM的內部與外部結構

  • 外部

    圖1 ? ?本開發板用兩片sdram來配置為32bit位寬的sdram.?

  • 內部

    sdram的檢索原理和表格一樣, ?通過先指定行, 再指定列就能準確找到所需要的存儲單元. 但是由于技術/成本的原因, 一個sdram內部不可能只有一個表格, 目前基本是4個, ?這個類似表格一樣的結構叫做 邏輯Bank, L-Bank. 這樣要找到某個存儲單元就要先確定是哪個bank, 然后選定行,再選定列.

  • SDRAM的內部基本操作與工作時序

    行有效 ?

    必須先使能芯片, 選中相應的L-BANK, 再使能 行(ROW), ?再使能 列(COLUMN)來對某個存儲單元進行讀寫.

    圖2 ? ?行有效時序圖

    通過BA0\BA1來選中某個L-BANK, 通過RAS\CAS來區分 行 與 列. 這是同時進行的, 所以行有效也可以稱為 L-BANK有效

    列讀寫

    行選通之后就可以發送列地址對存儲單元進行讀寫了. ? 讀/寫 命令是通過 WE 信號線來區分的, WE = 1 : 寫入 ; ?WE = 0 : 讀取

    圖3 ? ?命令列表

    由上表可知, SDRAM的各種指令都是通過 控制/地址線 的高低電平組合來完成的, 并沒有命令字. 所以 讀寫命令 與 列地址 同時發出.

    圖4 ? ?讀寫操作示意圖

    CAS(ColumnAddress?Strobe,列地址選通脈沖)信號配合A0-A9/A11(不固定)來確定具體的列地址.?


    圖5?

    在發送列讀寫命令時必須要與行有效命令有一個間隔,這個間隔被定義為tRCD,即RAS to CAS Delay(RAS至CAS延遲),也可以理解為行選通周期,這應該是根據芯片存儲陣列電子元件響應時間(從一種狀態到另一 種狀態變化的過程)所制定的延遲。tRCD是SDRAM的一個重要時序參數,廣義的tRCD以時鐘周期(tCK,Clock Time)數為單位,比如tRCD=2,就代表延遲周期為兩個時鐘周期,具體到確切的時間,則要根據時鐘頻率而定,對于PC100的SDRAM,tRCD=2,代表20ns的延遲,對于PC133則為15ns


    S3C2440存儲控制器的各個寄存器配置解析

    BWSCON = 0x2201 1110

    BWSCON[31] = 0, 禁止數據掩碼引腳

    數據掩碼

    在講述讀/寫操作時,我們談到了突發長度。如果BL=4,一次就傳送4×64bit的數據。但是,如果第二筆 數據是不需要的,怎么辦?為了屏蔽不需要的數據,人們采用了數據掩碼(Data I/O Mask,簡稱DQM)技術。通過DQM,內存可以控制I/O端口取消哪些輸出或輸入的數據。這里需要強調的是,在讀取時,被屏 蔽的數據仍然會從存儲體傳出,只是在“掩碼邏輯單元”處被屏蔽。為了精確屏蔽一個P-Bank位寬中的每個字節,每個DIMM有8個DQM信號線,每個信號針對一個字節。這樣,對于4bit位寬芯片,兩個芯片共用一個DQM信號線,對于8bit位寬芯片,一個芯片占用一個DQM信號,而對于16bit位寬芯片,則需要兩個DQM引腳。SDRAM官方規定,在讀取時DQM發出兩個時鐘周期后生效,而在寫入時,DQM與寫入命令一樣是立即成效

    BWSCON[30] = 0, 禁止WAIT信號

    BWSCON[29:28] = 1:0; 設置BANK7數據總線寬度為32bit

    (BANK6同BANK7)

    BANKCONx = 0x0700

    BANKCONx( 0 <= x <= 5)用來控制BANK0~BANK5外接設備的訪問時序, 采用默認值即可

    BANKCONx(6 <= x <= 7)?=?0x0001 8005

    BANKCONx[16:15] = 1:1, 設置存儲器類型為 SDRAM

    BANKCONx[3:0] = 0:1:0:1, 設置RAS到CAS的延遲(tRCD)為3個時鐘, 設置列地址數為9bit




    REFRESH = 0x008C 07A3

    BANKCONx[23] = 1, 使能自動刷新功能

    BANKCONx[22] = 0, Auto refresh, 等于1為 self refresh

    BANKCONx[21:20] = 0:0, 預充電時間為2個時鐘周期 (預充電見解釋)

    BANKCONx[19:18] = 1:1, 設置半行周期時間為7個時鐘

    BANKCONx[10:0] 設置刷新計數, 刷新計數= 2^11+1-12*7.8=1955( 0x07A3 )


    刷新

    之所以稱為DRAM,就是因為它要不斷進行刷新(Refresh)才能保留住數據,那么要隔多長時間進行一次刷新呢??我們在看內存規格時,經常會看到4096 Refresh Cycles/64ms或8192 Refresh?Cycles/64ms的標識,這里的4096與8192就代表這個芯片中每個L-Bank的行數。刷新命令一次對一行有效,發送間隔也是隨總行數而變化,4096行時為15.625μs(微秒,1/1000毫秒),8192行時就為7.8125μs. ?刷新操作分為兩種:Auto Refresh,簡稱AR與Self Refresh,簡稱SR。不論是何種刷新方式,都不需要外部提供行地址信息,因為這是一個內部的自動操作。

    預充電

    由于SDRAM的尋址具有獨占性,所以在進行完讀寫操作后,如果要對同一L-Bank的另一行進行尋址,就要將原來有效(工作) 的行關閉,重新發送 行/列地址。L-Bank關閉現有工作行,準備打開新行的操作就是預充電(Precharge)


    BANKSIZE = 0xB1

    BANKCONx[7] = 1, 使能突發操作

    BANKCONx[6] = 0, 保留

    BANKCONx[5] = 1, 使能SDRAM掉電模式

    BANKCONx[4] = 1, 設置只在訪問SDRAM的時候發送時鐘

    BANKCONx[3] = 0, 保留

    BANKCONx[2:0] = 0:0:1, BANK6/BANK7存儲器映射大小 = 64MB/64MB


    數據輸入(寫入)

    圖7

    數據寫入的操作也是在tRCD之后進行,但此時沒有了CL(記住,CL只出現在讀取操作中),行尋址與列尋址的時序圖和上文一樣 ,只是在列尋址時,WE#為有效狀態。從圖中可見,由于數據信號由控制端發出,輸入時芯片無需做任何調校,只需直接傳到數據輸入寄存器中,然后再由寫入驅動器進行對存儲電容的充電操作,因此數據可以與CAS同時發送,也就是說寫入延遲為0。不過,數據并不是即時地寫入存儲電容,因為選通三極管 (就如讀取時一樣)與電容的充電必須要有一段時間,所以數據的真正寫入需要一定的周期。為了保證數據的可靠寫入,都會留出足夠的 寫入/校正時間(tWR,Write Recovery Time),這個操作也被稱作寫回(Write Back)。tWR至少占用一個時鐘周期或再多一點(時鐘頻率越高,tWR占用周期越多),有關它的影響將在下文進一步講述

    突發長度

    突發(Burst)是指在同一行中相鄰的存儲單元連續進行數據傳輸的方式,連續傳輸所涉及到存儲單元(列)的數量就是突發長度(Burst Lengths,簡稱BL)

    非突發連續讀取模式:依次單獨尋址,此時可等效于BL=1。雖然可以讓數據是連續的傳輸,但每次都要發送列地 址與命令信息,控制資源占用極大

    突發連續讀取模式:只要指定起始列地址與突發長度,尋址操作與數據的讀取操作自動進行,只要控制好兩段突發讀取命令的間隔周期(與BL 相同)即可做到連續的突發傳輸

    突發讀/突發寫,表示讀與寫操作 都是突發傳輸的,每次讀/寫操作持續BL所設定的長度,這也是常規的設定

    突發讀/單一寫,表示讀操作是突發傳輸,寫操作則只是 一個個單獨進行。突發傳輸模式代表著突發周期內所涉及到的存儲單元的傳輸順序


    MRSR = 0x30

    MRSR[6:4] = 0:1:1, 設置 發送讀取命令到第一個數據輸出的時間 為 3 個時鐘周期?

    數據輸出(讀出)

    在CAS 發出之后,仍要經過一定的時間才能有數據輸出,從CAS與讀取命令發出到第一筆數據輸出的這段時間,被定義為CL(CAS Latency,CAS潛伏期)。由于CL只在讀取時出現,所以CL又被稱為讀取潛伏期(RL,Read Latency)。CL的單位與tRCD一樣,為時鐘周期數,具體耗時由時鐘頻率決定

    圖6 ? ?CL=2與tAC示意圖


    JZ2440的裸機SDRAM代碼執行流程:




    轉載于:https://my.oschina.net/cxh1024/blog/220128

    總結

    以上是生活随笔為你收集整理的存储控制器_SDRAM详解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 韩国精品视频在线观看 | 波多野吉衣在线视频 | 国外成人在线视频 | 精品人妻一区二区三区麻豆91 | 同心兄弟 | 在线观看免费www | 男人天堂视频在线 | 日本午夜精华 | 久久精品电影 | 初尝人妻少妇中文字幕 | 巨胸喷奶水www久久久免费动漫 | 国产精品视频999 | 国产精品ⅴa有声小说 | 欧美a在线视频 | 国产一区二区三区四区五区美女 | 日韩欧美国产电影 | 亚洲黄色在线观看 | 天天操天天操天天射 | 日韩图片区 | 男人的天堂影院 | 久久理论 | 日韩av在线一区二区三区 | 欧美另类极品videosbest使用方法 | 色玖玖综合 | 五月激情啪啪 | 亚洲欧美日韩久久精品 | 白丝美女喷水 | 欧美整片sss | 黄色片久久久久 | 日韩一区二区三区在线看 | 国产一区二区在线视频 | 国产欧美日韩综合精品一区 | www.com黄色 | 国产激情av一区二区三区 | 一级在线播放 | 亚洲乱码国产乱码精品精 | 欧美污污视频 | 精品黄色| 93看片淫黄大片一级 | 亚洲国产精品自拍视频 | 一区二区三区四区高清视频 | 成人毛片视频网站 | 日韩欧美一区二区三区在线观看 | 成人网页| 免费av电影网站 | 2019日韩中文字幕 | 献给魔王伊伏洛基亚吧动漫在线观看 | 黄色三级三级三级三级 | 日本色中色 | 国产午夜大片 | 国产精品麻豆入口 | 国产美女福利在线 | 国产综合欧美 | 男人天堂视频在线 | 欧美日韩国产中文字幕 | 好吊视频一区二区三区四区 | 男女调教视频 | 国产精品一区二区久久 | 少妇又色又紧又黄又刺激免费 | 日韩高清在线观看 | 国产视频一区二区三区在线播放 | 亚洲精品久久久久av无码 | www.在线观看麻豆 | 激情自拍偷拍 | 外国毛片| 丝袜美腿一区二区三区 | 囯产精品一品二区三区 | 日韩欧美啪啪 | 裸体一区二区三区 | 黄污视频在线观看 | 国产一区二区在线免费 | 亚洲少妇激情 | 免费无遮挡无码永久在线观看视频 | 欧美三级视频在线观看 | 播金莲一级淫片aaaaaaa | 精品视频导航 | 少妇视频一区二区三区 | 欧美在线观看成人 | 久久久91视频| 亚洲欧洲成人在线 | 1024毛片| 激情丁香婷婷 | 日韩中文字幕在线免费观看 | 亚洲永久精品一区二区 | 日日干日日| 国产成人无码www免费视频播放 | 国产精品久久中文字幕 | 欧美日韩蜜桃 | 男女插孔视频 | 羞羞在线观看 | 一节黄色片 | 精品国产91久久久久久久妲己 | 亚洲欧美综合一区二区 | 人人爽av| 五月激情五月婷婷 | 亚洲成人aaa | 诱夫1v1高h | 国产精品福利电影 | 国产亚洲精品久久久久久久久动漫 |