ram是什么意思 ram是什么( 四 )


首先,他們都屬于存儲器,存儲器分為兩類:
易失性(volatile)存儲器:包括內存,SRAM,DRAM等,特點是讀寫速度很快,掉電了數據會丟失,價格貴,并且存儲容量較小 。非易失性(nonvolatile)存儲器:包括磁盤,Flash,光盤,機械硬盤,SSD等,與易失性存儲器相比,它們讀寫速度很慢,但是掉電不丟失數據,存儲容量比較大,價格也便宜 。RAM(Random-Access Memory):隨機訪問存儲器 。易失性存儲器 。也可以訪問兩類:SRAM(靜態的)和DRAM(動態的),并且SRAM的讀寫速度比DRAM更快,價格也更貴 。在上圖中也可以看到, SRAM做L1-L3級緩存,而DRAM做L4級的主存 。ROM(read-only memory):只讀存儲器,非易失性存儲器 。這個名字容易讓人產生誤解,它既可以讀,也可以寫,稱之為read-only只是歷史原因 。ROM相比于RAM,容量更大,價格便宜,讀寫速度則比較慢 。
閃存(Flash memory):非易失性存儲器 。SSD,SD卡都屬于Flash技術,如果從概念上來講,他們都屬于ROM,這類存儲器經常用在手機,相機等設備上 。而機械硬盤常用在個人計算機,服務器上 。其實我覺的把 Flash,ROM等都叫做磁盤,也沒什么錯 。畢竟它們的作用和概念都是相似的,區別只是他們各自使用的半導體技術不同 。Flash芯片等基于集成芯片的存儲器讀寫速度比機械硬盤快,不過(相同容量下)價格也比后者貴 。而它們相比于SRAM,DRAM則非常慢了,所以后者理解為內存即可 。
"圖4:一個存儲器層次結構的示例",越往上,讀寫速度越快,價格更貴,存儲容量也越小 。( *** 上搜搜8G的內存條,256G的SSD,1T的機械硬盤都是什么價格就明白了) 。像L0 寄存器,每個寄存器只能存儲一個字長的內容,但是CPU讀寫取寄存器耗費的時鐘周期為0個 。這是最快的速度 。
另外,我們在電腦主板上可以看到內存條(L4主存) 。硬盤(L5),但是卻沒看到L3-L0 。原因很簡單,他們都是集成在CPU芯片內部的 。
我們知道了存儲器的層級結構,下面還有一個問題,就是怎么把硬盤,內存條之類的連接起來進行通信呢,這就是 總線(Bus)了 。

ram是什么意思  ram是什么

文章插圖
圖6:一個典型系統的硬件組成
上圖存在三條總線,IO總線,存儲器總線(通常稱為內存總線),系統總線 。在主板上,就是那一排排的32/64根并行的導線 。這些導線用來連接CPU,內存,硬盤,以其他外圍設備 。CPU與存儲器,輸入輸出設備等通信,都是通過總線 。不同總線的速度也有差異 。
CPU要通過I/O橋(就是主板的北橋/南橋芯片組)與外圍設備連接,因為CPU的主頻太高了,它的時鐘周期一秒鐘震蕩幾億次,外圍設備的時鐘周期都較慢,所以他們不能直接通信 。
本文是討論軟件的,所以硬件部分就一筆帶過,讀者知道有這回事就ok了 。總線上攜帶地址,數據和控制信號,如何區分不同信號,分辨它與哪個外圍設備通信,這就是另外一個問題了 。
不管中間怎么加緩存,數據從硬盤到內存的速度就是那么慢,那么這些緩存意義何在?
有些讀者腦子轉的比較快,可能想到了這樣一個問題 。
不管你中間怎么加緩存,也不管中間的什么SRAM,DRAM的讀寫速度有多快,但是磁盤的讀寫速度就是那么慢,所以磁盤與主存之間的交互速度很慢 。CPU歸根到底需要向磁盤讀寫數據 。整個環節速度瓶頸就是在磁盤那里,這個根本快不了,那么加那么多級緩存,意義有何在呢?
這是一個好問題啊 。下面讓我們繼續討論 。
我們來看看,CPU如何讀取磁盤中的一個數據 。
ram是什么意思  ram是什么

文章插圖

ram是什么意思  ram是什么

文章插圖
圖7:讀一個磁盤扇區
網上找的圖片不是很清楚,注意每張圖中的黑線 。步驟分三部:
CPU 將相關的命令和地址,通過系統總線和IO總線傳遞給磁盤,發起一個磁盤讀 。磁盤控制器將相關的地址解析,并通過IO總線與內存總線將數據傳給內存 。第2步完成之后,磁盤控制器向CPU發送一個中斷信號 。(學電子的同學應該很清楚中斷是什么) 。這時CPU就知道了,數據已經發送到內存了 。第二步磁盤操作很慢,但是在之一步CPU發出信號后 。但是第二步和第三部時,CPU根本不參與 。第二步很耗時,所以CPU在之一步發出信號后,就去在干其他事情啊 。(切換到另一個線程) 。所以此時的CPU依舊沒有閑著 。而待第三步時,通過中斷,硬盤主動發信號給CPU,你需要的數據已經發送到內存了,然后此時它可以將線程再切換回來,接著執行這個該線程的任務 。

推薦閱讀