最新电影在线观看,jrs低调看直播,avav天堂,囯产精品宾馆在线精品酒店,亚洲精品成人区在线观看

SDRAM詳細分析——04 內存控制器

大家好,這里是大話硬件。

前面文章中提到了內存要想高效的工作,需要精心安排各種指令和解決沖突。這些工作任務的都是由內存控制器來完成。

通用的內存控制器主要分為2個部分,前端和后端。

前端是內存控制器和系統內部打交道的接口,主要響應CPU和其他部分的讀寫請求。

前端的設計是獨立于內存類型,無論后面是接DDR2還是DDR4,前端的工作方式不會發生變化。

后端是內存控制器直接和內存顆粒打交道的接口,它高度依賴于內存類型,也就是說如果單板上是DDR2顆粒,后端就必須懂DDR2所有專用指令集,時序參數和操作協議。

內存控制器詳細的功能框圖如下所示:

從上面的框圖可以看出,內存控制器的前端和后端是由4個主要模塊組成,分別是:內存映射(memory map)、仲裁器(arbiter)、 命令生成器(command generator)、數據路徑(data path)。

系統內部發送請求,內存映射模塊開始工作,它會將程序中寫的邏輯地址轉換成DDR物理地址,具體在哪個bank,哪一行,哪一列。

地址轉換完成后,仲裁器根據優先級來決定優先響應哪條請求。仲裁器決定好完成后,命令生成器將內存映射后請求,轉換成DDR可以執行的命令,也就是在前面提到的激活,讀寫,預充電以及刷新。最后就是DDR將需要的數據進行寫入或讀取,通過數據總線輸入和輸出。

內存映射

內存映射是通過將CPU程序中的二進制地址解析成這些地址到底對應到DDR內部的哪個bank,哪個行和哪個列。

下面的圖解釋了翻譯的過程,首先是將邏輯地址翻譯成物理地址,物理地址中有行列和bank的信息,再對應到DDR中,就是一次完成的內存映射。

仲裁器

仲裁器就像是指揮官,比如在用電腦時,同時執行多個命令,就要同時訪問內存,如果都一起訪問肯定會出現沖突,仲裁器就會把接收到的所有請求進行排隊和調度。

仲裁器是一個權衡的過程,高效的內存仲裁器需要同時具備高效率,可預測性,決策速度快,公平性,靈活性等。但是這些特質不能同時被滿足。如果完全公平,肯定不能做到高效率。

命令生成器

系統內部發出的指令是比較抽象的請求,命令生成器要將請求翻譯成內存可以執行的指令序列。比如來自系統的請求指令是左邊0x12c7f00032,但是DDR并不懂這個指令,命令生成器就需要將這個指令翻譯DDR內部可以執行的動作,如右邊所示。

翻譯后的指令需要和對應顆粒手冊中規定的時序參數保持一致。更換DDR顆粒后,同樣是左邊的代碼,右邊的指令會因為DDR指令集的差異而不同。

數據路徑

DDR執行完一次操作后,需要將數據返回給系統內部,數據通過數據總線進行傳輸。高效的內存控制器,能夠讓數據總線一直處于繁忙的狀態從而來提高效率。

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
本篇所含全部資料,點擊此處留下郵箱我會發給你
資料明細:An Introduction to SDRAM and memory controllers (2).pdf,An Introduction to SDRAM and memory controllers.pdf,sdram.txt
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 0
收藏 1
關注 608
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧