Overlord

很多年前,電腦裝機還是標準的十三大件,而現在很多設備都已經成為板載的形式存在,裝機的配件數量也大幅度減少了。除了CPU、主板、硬盤之外,仍必不可少的便是內存了——要知道即便是顯卡,也有CPU核顯可以替代,小小的內存卻一直獨立存在(部分筆記本帶有板載內存,但仍是物理上的獨立存在)。而且聽起來都是個“存”字,很多電腦用戶實際上并不是非常清楚內存和硬盤存儲的區別,所以有時候會有笑話“我的內存是128TB的,硬盤是16GB”。那么,內存究竟是什么,為何如此重要?這個小小的條狀物又是如何工作的呢?
內存究竟是什么?恐怕很多讀者并沒有深究過它的作用和意義吧?內存的英文是Memory,也被稱為內存儲器和主存儲器,其作用是用于暫時存放CPU中的運算數據,以及與硬盤等外部存儲器交換的數據。 只要計算機在運行中,操作系統就會把需要運算的數據從內存調到CPU中進行運算,當運算完成后CPU再將結果傳送出來,內存的運行狀態也決定了計算機的是否能穩定運行。

具體來說,我們都知道CPU處理數據、命令的能力非常出眾,但是需要不停地接收新的指令和“要求”才能有的放矢。而海量的數據又都存儲于硬盤之中,CPU在工作的時候就必須等待硬盤把數據“貢獻”給CPU。當然受限于硬盤自身的讀寫能力,其提供的數據量對比CPU的處理能力少之又少,哪怕是今天我們看到的PCIe 4.0規格的NVME固態硬盤,也遠遠不能滿足CPU的計算能力,這時就需要內存作為一個“協調者”的角色出現了。
CPU的工作流程大致分為三個步驟,第一個是讀取指令,即接收指令需求;第二個是翻譯指令,將發送過來的指令需求“翻譯”;第三步,則是發送信號執行翻譯過的這些指令。在第一步讀取指令的時候,CPU并非直接讀取硬盤發送過來的數據,因為那“太慢了”,CPU調取的是從硬盤發出并暫存于內存中的指令,這些指令會被寫入指令寄存器(CPU)中以供后續使用。

或者我們“調過頭”來看,硬盤存儲著我們的程序、數據,當我們雙擊某個程序圖標的時候,CPU首先接收到我們的命令,然后CPU就會告訴硬盤,運行你保存的程序1,并且把程序1發送到內存中。然后CPU又會和內存說,我已經“命令”硬盤把程序1送到你這里了,你要暫存一下,等程序1的必要數據命令被硬盤傳送到內存后,CPU會將其調入到自己的寄存器中,然后執行程序1。
我們剛剛了解了內存的基本作用,但是內存是不是因為是個“臨時工”,它沒那么重要呢?在厘清這個問題前,我們還需要了解一下內存究竟是什么。
談到存儲通常我們都會聽到這樣的英文簡稱“ROM、R AM”。所謂ROM,全稱為Read Only Memor y,即只讀存儲器,簡言之,它只能被讀取,而不能被寫入。但是,它在斷電后依舊可以“記住”信息,不會丟失任何數據。當然了,ROM其實是一個統稱,它也細分稱集中不同的類型。比如PROM,這是一種可編程的ROM,它可以通過特殊方式寫入數據,但是只是一次性的,寫入后就不可更改。

另一種則是EPROM,即可擦除可編程ROM,它的寫入原理是通過紫外光的照射擦出原先的程序。最后一種是EEPROM,它是EPROM的“升級版”,不同之處是采用電子擦寫的方式而不是紫外光照射,并且寫入時間很長,寫入速度也很慢。另外,我們熟知的NAND FLASH——就是固態硬盤使用的存儲顆粒,本質上也屬于ROM的一員。
而RAM則是隨機存取存儲器(Random Access Memory),它的作用是負責直接與CPU交換數據,能夠隨時讀寫,而且速度非常快。但是,當電源關閉時RAM不能保留數據,如果需要保存數據,就必須把它暫存的數據寫入到一個存儲設備例如硬盤中。我們電腦上使用的睡眠功能,就是通過將內存暫存的數據寫入硬盤,用以喚醒后快速恢復狀態設計而成的。RAM和ROM相比,兩者的最大區別是RAM在斷電以后保存在上面的數據會自動消失,而ROM不會自動消失,可以長時間斷電保存。

同ROM有很多細分種類一樣,RAM大體也分為兩類,即SRAM(靜態隨機存儲器)和D R AM(動態隨機存儲器)兩種。SRAM(Static RandomAccess Memory,靜態隨機存儲器),它是一種具有靜止存取功能的內存,不需要刷新電路即能保存它內部存儲的數據。優點是速度快,不必配合內存刷新電路,可提高整體的工作效率。缺點是集成度低且功耗較大,相同的容量體積較大(需要靠超大規模集成電路解決),因而成本昂貴,只能少量用于關鍵性系統(例如CPU緩存)以提高效率。