日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

SDRAM詳細分析——04 內(nèi)存控制器

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

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

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

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

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

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

內(nèi)存控制器詳細的功能框圖如下所示:

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

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

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

內(nèi)存映射

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

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

仲裁器

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

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

命令生成器

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

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

數(shù)據(jù)路徑

DDR執(zhí)行完一次操作后,需要將數(shù)據(jù)返回給系統(tǒng)內(nèi)部,數(shù)據(jù)通過數(shù)據(jù)總線進行傳輸。高效的內(nèi)存控制器,能夠讓數(shù)據(jù)總線一直處于繁忙的狀態(tài)從而來提高效率。

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