Overlord
很多年前,電腦裝機(jī)還是標(biāo)準(zhǔn)的十三大件,而現(xiàn)在很多設(shè)備都已經(jīng)成為板載的形式存在,裝機(jī)的配件數(shù)量也大幅度減少了。除了CPU、主板、硬盤(pán)之外,仍必不可少的便是內(nèi)存了——要知道即便是顯卡,也有CPU核顯可以替代,小小的內(nèi)存卻一直獨(dú)立存在(部分筆記本帶有板載內(nèi)存,但仍是物理上的獨(dú)立存在)。而且聽(tīng)起來(lái)都是個(gè)“存”字,很多電腦用戶實(shí)際上并不是非常清楚內(nèi)存和硬盤(pán)存儲(chǔ)的區(qū)別,所以有時(shí)候會(huì)有笑話“我的內(nèi)存是128TB的,硬盤(pán)是16GB”。那么,內(nèi)存究竟是什么,為何如此重要?這個(gè)小小的條狀物又是如何工作的呢?
內(nèi)存究竟是什么?恐怕很多讀者并沒(méi)有深究過(guò)它的作用和意義吧??jī)?nèi)存的英文是Memory,也被稱為內(nèi)存儲(chǔ)器和主存儲(chǔ)器,其作用是用于暫時(shí)存放CPU中的運(yùn)算數(shù)據(jù),以及與硬盤(pán)等外部存儲(chǔ)器交換的數(shù)據(jù)。 只要計(jì)算機(jī)在運(yùn)行中,操作系統(tǒng)就會(huì)把需要運(yùn)算的數(shù)據(jù)從內(nèi)存調(diào)到CPU中進(jìn)行運(yùn)算,當(dāng)運(yùn)算完成后CPU再將結(jié)果傳送出來(lái),內(nèi)存的運(yùn)行狀態(tài)也決定了計(jì)算機(jī)的是否能穩(wěn)定運(yùn)行。
具體來(lái)說(shuō),我們都知道CPU處理數(shù)據(jù)、命令的能力非常出眾,但是需要不停地接收新的指令和“要求”才能有的放矢。而海量的數(shù)據(jù)又都存儲(chǔ)于硬盤(pán)之中,CPU在工作的時(shí)候就必須等待硬盤(pán)把數(shù)據(jù)“貢獻(xiàn)”給CPU。當(dāng)然受限于硬盤(pán)自身的讀寫(xiě)能力,其提供的數(shù)據(jù)量對(duì)比CPU的處理能力少之又少,哪怕是今天我們看到的PCIe 4.0規(guī)格的NVME固態(tài)硬盤(pán),也遠(yuǎn)遠(yuǎn)不能滿足CPU的計(jì)算能力,這時(shí)就需要內(nèi)存作為一個(gè)“協(xié)調(diào)者”的角色出現(xiàn)了。
CPU的工作流程大致分為三個(gè)步驟,第一個(gè)是讀取指令,即接收指令需求;第二個(gè)是翻譯指令,將發(fā)送過(guò)來(lái)的指令需求“翻譯”;第三步,則是發(fā)送信號(hào)執(zhí)行翻譯過(guò)的這些指令。在第一步讀取指令的時(shí)候,CPU并非直接讀取硬盤(pán)發(fā)送過(guò)來(lái)的數(shù)據(jù),因?yàn)槟恰疤恕?,CPU調(diào)取的是從硬盤(pán)發(fā)出并暫存于內(nèi)存中的指令,這些指令會(huì)被寫(xiě)入指令寄存器(CPU)中以供后續(xù)使用。
或者我們“調(diào)過(guò)頭”來(lái)看,硬盤(pán)存儲(chǔ)著我們的程序、數(shù)據(jù),當(dāng)我們雙擊某個(gè)程序圖標(biāo)的時(shí)候,CPU首先接收到我們的命令,然后CPU就會(huì)告訴硬盤(pán),運(yùn)行你保存的程序1,并且把程序1發(fā)送到內(nèi)存中。然后CPU又會(huì)和內(nèi)存說(shuō),我已經(jīng)“命令”硬盤(pán)把程序1送到你這里了,你要暫存一下,等程序1的必要數(shù)據(jù)命令被硬盤(pán)傳送到內(nèi)存后,CPU會(huì)將其調(diào)入到自己的寄存器中,然后執(zhí)行程序1。
我們剛剛了解了內(nèi)存的基本作用,但是內(nèi)存是不是因?yàn)槭莻€(gè)“臨時(shí)工”,它沒(méi)那么重要呢?在厘清這個(gè)問(wèn)題前,我們還需要了解一下內(nèi)存究竟是什么。
談到存儲(chǔ)通常我們都會(huì)聽(tīng)到這樣的英文簡(jiǎn)稱“ROM、R AM”。所謂ROM,全稱為Read Only Memor y,即只讀存儲(chǔ)器,簡(jiǎn)言之,它只能被讀取,而不能被寫(xiě)入。但是,它在斷電后依舊可以“記住”信息,不會(huì)丟失任何數(shù)據(jù)。當(dāng)然了,ROM其實(shí)是一個(gè)統(tǒng)稱,它也細(xì)分稱集中不同的類型。比如PROM,這是一種可編程的ROM,它可以通過(guò)特殊方式寫(xiě)入數(shù)據(jù),但是只是一次性的,寫(xiě)入后就不可更改。
另一種則是EPROM,即可擦除可編程ROM,它的寫(xiě)入原理是通過(guò)紫外光的照射擦出原先的程序。最后一種是EEPROM,它是EPROM的“升級(jí)版”,不同之處是采用電子擦寫(xiě)的方式而不是紫外光照射,并且寫(xiě)入時(shí)間很長(zhǎng),寫(xiě)入速度也很慢。另外,我們熟知的NAND FLASH——就是固態(tài)硬盤(pán)使用的存儲(chǔ)顆粒,本質(zhì)上也屬于ROM的一員。
而RAM則是隨機(jī)存取存儲(chǔ)器(Random Access Memory),它的作用是負(fù)責(zé)直接與CPU交換數(shù)據(jù),能夠隨時(shí)讀寫(xiě),而且速度非???。但是,當(dāng)電源關(guān)閉時(shí)RAM不能保留數(shù)據(jù),如果需要保存數(shù)據(jù),就必須把它暫存的數(shù)據(jù)寫(xiě)入到一個(gè)存儲(chǔ)設(shè)備例如硬盤(pán)中。我們電腦上使用的睡眠功能,就是通過(guò)將內(nèi)存暫存的數(shù)據(jù)寫(xiě)入硬盤(pán),用以喚醒后快速恢復(fù)狀態(tài)設(shè)計(jì)而成的。RAM和ROM相比,兩者的最大區(qū)別是RAM在斷電以后保存在上面的數(shù)據(jù)會(huì)自動(dòng)消失,而ROM不會(huì)自動(dòng)消失,可以長(zhǎng)時(shí)間斷電保存。
同ROM有很多細(xì)分種類一樣,RAM大體也分為兩類,即SRAM(靜態(tài)隨機(jī)存儲(chǔ)器)和D R AM(動(dòng)態(tài)隨機(jī)存儲(chǔ)器)兩種。SRAM(Static RandomAccess Memory,靜態(tài)隨機(jī)存儲(chǔ)器),它是一種具有靜止存取功能的內(nèi)存,不需要刷新電路即能保存它內(nèi)部存儲(chǔ)的數(shù)據(jù)。優(yōu)點(diǎn)是速度快,不必配合內(nèi)存刷新電路,可提高整體的工作效率。缺點(diǎn)是集成度低且功耗較大,相同的容量體積較大(需要靠超大規(guī)模集成電路解決),因而成本昂貴,只能少量用于關(guān)鍵性系統(tǒng)(例如CPU緩存)以提高效率。