Overlord

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

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

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

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

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