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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

深入解析内存原理:RAM的基本原理

發布時間:2023/12/16 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入解析内存原理:RAM的基本原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 尋址原理概述
RAM 主要的作用就是存儲代碼和數據供CPU 在需要的時候調用。但是這些數據并不是像用袋子盛米那么簡單,更像是圖書館中用有格子的書架存放書籍一樣,不但要放進去還要能夠在需要的時候準確的調用出來,雖然都是書但是每本書是不同的。對于RAM 等存儲器來說也是一樣的,雖然存儲的都是代表0 和1 的代碼,但是不同的組合就是不同的數據。
讓我們重新回到書和書架上來,如果有一個書架上有10 行和10 列格子(每行和每列都有0-9 的編號),有100 本書要存放在里面,那么我們使用一個行的編號加一個列的編號就能確定某一本書的位置。如果已知這本書的編號87,那么我們首先鎖定第8 行,然后找到第7 列就能準確的找到這本書了。在RAM 存儲器中也是利用了相似的原理。
現在讓我們回到RAM 存儲器上,對于RAM 存儲器而言數據總線是用來傳入數據或者傳出數據的。因為存儲器中的存儲空間是如果前面提到的存放圖書的書架一樣通過一定的規則定義的,所以我們可以通過這個規則來把數據存放到存儲器上相應的位置,而進行這種定位的工作就要依靠地址總線來實現了。
對于CPU 來說,RAM 就象是一條長長的有很多空格的細線,每個空格都有一個唯一的地址與之相對應。如果CPU 想要從RAM 中調用數據,它首先需要給地址總線發送地址數據定位要存取的數據,然后等待若干個時鐘周期之后,數據總線就會把數據傳輸給CPU。下面的示意圖可以幫助你很好的理解這個過程。


上圖中的小圓點代表RAM 中的存儲空間,每一個都有一個唯一的地址線同它相連。當地址解碼器接收到地址總線送來的地址數據之后,它會根據這個數據定位CPU 想要調用的數據所在的位置,然后數據總線就會把其中的數據傳送到CPU。
上面所列舉的例子中CPU 在一行數據中每次只是存取一個字節的數據,但是在現實世界中是不同的,通常CPU 每次需要調用32bit 或者是64bit 的數據(這是根據不同計算機系統的數據總線的位寬所決定的)。如果數據總線是64bit 的話,CPU 就會在一個時間中存取8個字節的數據,因為每次還是存取1 個字節的數據,64bit 總線將不會顯示出來任何的優勢,工作的效率將會降低很多。
2. 從“線”到“矩陣”
如果RAM 對于CPU 來說僅僅是一條“線”的話,還不能體現實際的運行情況。因為如果實際情況真的是這樣的話,在實際制造芯片的時候,會有很多實際的困難,特別是在需要設計大容量的RAM 的時候。
所以,一種更好的能夠降低成本的方法是讓存儲信息的“空格”排列為很多行--每個“空格”對應一個bit 存儲的位置。這樣,如果要存儲1024bits的數據,那么你只要使用32x32 的矩陣就能夠達到這個目的了。很明顯,一個32x32 的矩陣比一個1024bit 的行設備更緊湊,實現起來也更加容易。請看下圖1:

?
圖1???????????????????????????????????????????????????????? 圖2
知道了RAM 的基本結構是什么樣子的,下面我們就談談RAM存儲字節的過程是怎樣的:上面的示意圖1 顯示的也僅僅是最簡單狀態下的情況,也就是當內存條上僅僅只有一個RAM 芯片的情況。
對于X86 處理器,它通過地址總線發出一個具有22 位二進制數字的地址編碼--其中11 位是行地址,另外11 位是列地址,這是通過RAM 地址接口進行分離的。
行地址解碼器(row decoder)將會首先確定行地址,然后列地址解碼器(column decoder)將會確定列地址,這樣就能確定唯一的存儲數據的位置,然后該數據就會通過RAM 數據接口將數據傳到數據總線。
另外,需要注意的是,RAM 內部存儲信息的矩陣并不是一個正方形的,也就是行和列的數目不是相同的--行的數目比列的數目少。(后面我們在討論DRAM的過程中會講到為什么會這樣)
上面的示意圖2 粗略的概括了一個基本的SRAM 芯片是如何工作的。SRAM 是“staticRAM(靜態隨機存儲器)”的簡稱,之所以這樣命名是因為當數據被存入其中后不會消失(同DRAM 動態隨機存儲器是不同,DRAM 必須在一定的時間內不停的刷新才能保持其中存儲的數據)。
一個SRAM 單元通常由4-6 只晶體管組成,當這個SRAM 單元被賦予0 或者1的狀態之后,它會保持這個狀態直到下次被賦予新的狀態或者斷電之后才會更改或者消失。
SRAM 的速度相對比較快,而且比較省電,但是存儲1bit 的信息需要4-6 只晶體管制造成本太高了(DRAM 只要1 只晶體管就可以實現)。
3. DRAM 基本存儲單元結構
不管你相信不相信,目前主流內存中的RDRAM(Rambus)、DDR SDRAM、SDRAM 甚至是EDO RAM 的基本結構都是相同的,它們都是屬于DRAM(Dynamic RAM:動態隨機訪問存儲器)。所有的DRAM 基本存儲單元都是由一個晶體管和一個電容組成。


這樣的基本存儲單元的架構是目前最經濟的方式,電容的狀態決定著內存基本存儲單元的邏輯狀態是“0”還是“1”--充滿電荷的電容器代表邏輯“1”,“空”的電容器代表邏輯“0”,不過正是因為使用了電容器所以產生了一些局限性。
電容存儲的電荷一般是會慢慢泄漏的,這也就是為什么內存需要不時的刷新的緣故。電容需要電流進行充電,而電流充電的過程也是需要一定時間的,一般是0.2-0.18 微秒(由于內存工作環境所限制,不可能無限制的提高電流的強度),在這個充電的過程中內存是不能被訪問的。
從技術上講,實現內存的定時刷新并不是什么難事,DRAM 廠商指出這種刷新操作必須每64ms 進行一次,這也就意味著DRAM 基本存儲單元大約有1%的時間用在了刷新上。
對于DRAM 來說最大的問題是,讀取內存會造成內存基本存儲單元中的電荷丟失,所以每當DRAM 被訪問之后都要進行刷新,以維持訪問之前的狀態,否則就會造成數據丟失。當然拿出專門的時間進行刷新,也就增加了訪問時間,提高了延遲。
SRAM(Static RAM)則不存在刷新的問題。一個SRAM 基本存儲單元由4 個晶體管和兩個電阻器構成,它并不利用電容器來存儲數據,而是通過切換晶體管的狀態來實現的,如同CPU 中的晶體管通過切換不同的狀態也能夠分別代表0 和1 這兩個狀態。正是因為這種結構,所以SRAM 的讀取過程并不會造成SRAM 內存儲的的信息的丟失,當然也就不存在什么刷新的問題了。
SRAM 可以比DRAM 高的頻率來運行,主要是因為獲取前8 個字節的時間延遲大大縮短了。SRAM 需要2-3 個時鐘周期來得到想要的數據(這里我們暫時忽略CPU、芯片組和內存DIMM 控制電路之間的延遲),不過同樣的過程DRAM 需要大約3-9 個時鐘周期。當然因為構造不同,SRAM 和DRAM 存儲1bit 數據的成本是不同的,前者大約是后者的4 倍--因為它的所需要的晶體管數目是后者的4 倍以上。SRAM 因為存取延遲時間非常的短,所以它的工作頻率能夠達到很高,因此可以帶來更高的帶寬。

轉載于:https://www.cnblogs.com/lzhu/p/7000487.html

總結

以上是生活随笔為你收集整理的深入解析内存原理:RAM的基本原理的全部內容,希望文章能夠幫你解決所遇到的問題。

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