亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦硬件知識 > 內(nèi)存知識 >

      內(nèi)存基礎(chǔ)知識干貨

      時間: 懷健20 分享

      內(nèi)存相信大家都聽說過,電腦速度慢了也許身邊的高手會建議我們升級更大容量的內(nèi)存。那么電腦內(nèi)存究竟是干什么用的呢?下面就讓小編帶你去看看內(nèi)存基礎(chǔ)知識大全,希望能幫助到大家!

      你不知道的內(nèi)存知識

      一、CPU與內(nèi)存

      先鋪墊幾個概念,以免后面混亂:

      Socket或Processor: 指一個物理CPU芯片,盒裝還是散裝的。上面有很多針腳,直接安裝在主板上。

      Core : 指在Processor里封裝一個CPU核心,每個Core都是完全獨立的計算單元,我們平時說的4核心CPU,指的就是Processor里面封裝了4個Core。

      HT超線程: 目前Intel與AMD的Processor大多支持在一個Core里并行執(zhí)行兩個線程,此時從操作系統(tǒng)看就相當(dāng)于兩個邏輯CPU(Logical Processor)。大多數(shù)情況下,我們程序里提到的CPU概念就是指的這個Logical Processor。

      咱們先來看幾個問題:

      1、CPU可以直接操作內(nèi)存嗎?

      可能一大部分老鐵肯定會說:肯定的啊,不能操作內(nèi)存怎么讀取數(shù)據(jù)呢。

      其實如果我們用這聰明的大腦想一想,咱們的臺式主機(jī)大家肯定都玩過。上面CPU和內(nèi)存條是兩個完全獨立的硬件啊,而且CPU也沒有任何直接插槽用于掛載內(nèi)存條的。

      也就是說,CPU和內(nèi)存條是物理隔離的,CPU并不能直接的訪問內(nèi)存條,而是需要借助主板上的其他硬件間接的來實現(xiàn)訪問。

      2、CPU的運算速度和內(nèi)存條的訪問速度差距有多大?

      呵呵呵,這么說吧,就是一個鴻溝啊,CPU的運算速度與內(nèi)存訪問速度之間的差距是100倍。

      而由于CPU與內(nèi)存之間的速度差存在N個數(shù)量級的巨大鴻溝,于是CPU最親密的小伙伴Cache 閃亮登場了。與DRAM 家族的內(nèi)存(Memory)不同,Cache來自SRAM家族。

      而DRAM與SRAM的最簡單區(qū)別就是后者特別快,容量特別小,電路結(jié)構(gòu)非常復(fù)雜,造價特別高。

      而Cache與主內(nèi)存之間的巨大性能差距主要還是工作原理與結(jié)構(gòu)不同:

      DRAM存儲一位數(shù)據(jù)只需要一個電容加一個晶體管,SRAM則需要6個晶體管。

      由于DRAM的數(shù)據(jù)其實是被保存在電容里的,所以每次讀寫過程中的充放電環(huán)節(jié)也導(dǎo)致了DRAM讀寫數(shù)據(jù)有一個延時的問題,這個延時通常為十幾到幾十ns。

      內(nèi)存可以被看作一個二維數(shù)組,每個存儲單元都有其行地址和列地址。

      由于SRAM的容量很小,所以存儲單元的地址(行與列)比較短,可以被一次性傳輸?shù)絊RAM中。DRAM則需要分別傳送行與列的地址。

      SRAM的頻率基本與CPU的頻率保持一致,而DRAM的頻率直到DDR4以后才開始接近CPU的頻率。

      3、Cache 是怎么使用的?

      其實Cache 是被集成到CPU內(nèi)部的一個存儲單元(平時也被我們稱為高速緩存),由于其造價昂貴,并且存儲容量遠(yuǎn)遠(yuǎn)不能滿足CPU大量、高速存取的需求。

      所以出于對成本的控制,在現(xiàn)實中往往采用金字塔形的多級Cache體系來實現(xiàn)最佳緩存效果。

      于是出現(xiàn)了,一級Cache(L1 Cache)、二級Cache(L2 Cache)及三級Cache(L3 Cache)。每一級都犧牲了部分性能指標(biāo)來換取更大的容量,目的也是存儲更多的熱點數(shù)據(jù)。

      以Intel家族Intel SandyBridge架構(gòu)的CPU為例:

      L1 Cache容量為64KB,訪問速度為1ns左右

      L2Cache容量擴(kuò)大4倍,達(dá)到256KB,訪問速度則降低到3ns左右

      L3 Cache的容量則擴(kuò)大512倍,達(dá)到32MB,訪問速度也下降到12ns左右(也比訪問主存的105ns(40ns+65ns)快一個數(shù)量級)

      L3 Cache是被一個Socket上的所有CPU Core共享的,其實最早的L3 Cache被應(yīng)用在AMD發(fā)布的K6-III處理器上,當(dāng)時的L3 Cache受限于制造工藝,并沒有被集成到CPU內(nèi)部,而是被集成在主板上,如圖:

      從上圖我們也能看出來,CPU如果要訪問內(nèi)存中的數(shù)據(jù),則需要經(jīng)過L1、L2、L3三道關(guān)卡,就是這三個Cache中都沒有需要的數(shù)據(jù),才會從主內(nèi)存中直接進(jìn)行讀取。

      最后我們來看下Intel Sandy Bridge CPU的架構(gòu)圖:

      二、多核CPU與內(nèi)存共享的問題

      問題: Cache一致性問題

      多核CPU共享內(nèi)存的問題也被稱為Cache一致性問題。

      其實就是多個CPU核心看到的Cache數(shù)據(jù)應(yīng)該是一致的,在某個數(shù)據(jù)被某個CPU寫入自己的Cache(L1 Cache)以后,其他CPU都應(yīng)該能看到相同的Cache數(shù)據(jù)。

      如果在自己的Cache中有舊數(shù)據(jù),則拋棄舊數(shù)據(jù)。

      考慮到每個CPU都有自己內(nèi)部獨占的Cache,所以這個問題與分布式Cache保持同步的問題是同一類問題

      目前業(yè)界公認(rèn)的解決一致性問題的最佳方案就是Intel 的MESI協(xié)議了,大多數(shù)SMP架構(gòu)都采用了這一方案。

      解決方案:MESI

      不知道大家還記得Cache Line 嗎,就是我們常說的高速緩存中緩存條目里面的那個緩存行。

      其實仔細(xì)想想,在進(jìn)行I/O操作從來不以字節(jié)為單位,而是以塊為單位,有兩個原因:

      I/O 操作比較慢,所以讀一個字節(jié)與讀連續(xù)N個字節(jié)的花費時間基本相同

      數(shù)據(jù)訪問一般都具有空間連續(xù)的特征

      所以CPU針對Memory的讀寫也采用了類似于I/O塊的方式

      實際上,CPU Cache(高速緩存)里最小的存儲單元就是Cache line(緩存行),Intel CPU 的一個Cache Line存儲64個字節(jié)。

      每一級Cache都被劃分為很多組Cache Line,典型的情況就是4條Cache Line為一組。

      當(dāng)Cache從Memory中加載數(shù)據(jù)時,一次加載一條Cache Line的數(shù)據(jù)

      如圖我們可以看到,每個Cache Line 頭部都有兩個Bit來標(biāo)識自身狀態(tài),總共四種:

      M(Modified):修改狀態(tài),在其他CPU上沒有數(shù)據(jù)的副本,并且在本CPU上被修改過,與存儲器中的數(shù)據(jù)不一致,最終必然會引發(fā)系統(tǒng)總線的寫指令,將Cache Line中的數(shù)據(jù)寫回Memory中。

      E(E__clusive):獨占狀態(tài),表示當(dāng)前Cache Line中的數(shù)據(jù)與Memory中的數(shù)據(jù)一致,此外,在其他CPU上沒有數(shù)據(jù)的副本。

      S(Shared):共享狀態(tài),表示Cache Line中的數(shù)據(jù)與Memory中的數(shù)據(jù)一致,而且當(dāng)前CPU至少在其他某個CPU中有副本。

      I(Invalid):無效狀態(tài),在當(dāng)前Cache Line中沒有有效數(shù)據(jù)或者該Cache Line數(shù)據(jù)已經(jīng)失效,不能再用;當(dāng)Cache要加載新數(shù)據(jù)時,優(yōu)先選擇此狀態(tài)的Cache Line,此外,Cache Line的初始狀態(tài)也是I狀態(tài)

      在對Cache(高速緩存)的讀寫操作引發(fā)了Cache Line(緩存行)的狀態(tài)變化,因而可以將其理解為一種狀態(tài)機(jī)模型。

      但MESI的復(fù)雜和獨特之處在于狀態(tài)有兩種視角:

      一種是當(dāng)前讀寫操作(Local Read/Write)所在CPU看到的自身的Cache Line狀態(tài)及其他CPU上對應(yīng)的Cache Line狀態(tài)

      另一種是一個CPU上的Cache Line狀態(tài)的變遷會導(dǎo)致其他CPU上對應(yīng)的Cache Line狀態(tài)變遷。

      如下所示為MESI協(xié)議的狀態(tài)圖:

      具體MESI的實現(xiàn)過程可以看我另一篇文章: 看懂這篇,才能說了解并發(fā)底層技術(shù)

      深入理解不一致性內(nèi)存

      MESI協(xié)議解決了多核CPU下的Cache一致性問題,因而成為SMP架構(gòu)的唯一選擇,而SMP架構(gòu)近幾年迅速在PC領(lǐng)域(__86)發(fā)展。

      SMP架構(gòu)是一種平行的架構(gòu),所有CPU Core都被連接到一個內(nèi)存總線上,它們平等訪問內(nèi)存,同時整個內(nèi)存是統(tǒng)一結(jié)構(gòu)、統(tǒng)一尋址的。

      如下所示給出了SMP架構(gòu)的示意圖:

      隨著CPU核心數(shù)量的不斷增加,SMP架構(gòu)也暴露出天生的短板,其根本瓶頸是共享內(nèi)存總線的帶寬無法滿足CPU數(shù)量的增加,同時,在一條“馬路”上通行的“車”多了,難免會陷入“擁堵模式”。

      不知道你是否聽說過總線風(fēng)暴,可以看下:總線風(fēng)暴

      在這種情況下,分布式解決方案應(yīng)運而生,系統(tǒng)的內(nèi)存與CPU進(jìn)行分割并捆綁在一起,形成多個獨立的子系統(tǒng),這些子系統(tǒng)之間高速互聯(lián),這就是NUMA(None Uniform Memory Architecture)架構(gòu),如下圖所示。

      可以看出,NUMA架構(gòu)中的內(nèi)存被分割為獨立的幾塊,被不同CPU私有化了。

      因此在CPU訪問自家內(nèi)存的時候會非??欤谠L問其他CPU控制的內(nèi)存數(shù)據(jù)時,則需要通過內(nèi)部互聯(lián)通道訪問。

      NUMA架構(gòu)的優(yōu)點就是其伸縮性,就算擴(kuò)展到幾百個CPU也不會導(dǎo)致性嚴(yán)重的下降。

      NUMA技術(shù)的特點

      在NUMA架構(gòu)中引入了一個重要的新名詞——Node

      一個Node由一個或者多個Socket Socket組成,即物理上的一個或多個CPU芯片組成一個邏輯上的Node

      我們來看一個Dell PowerEdge系列服務(wù)器的NUMA的架構(gòu)圖:

      從上圖可以看出其特點:

      4個處理器形成4個獨立的NUMA Node由于每個Node都為8 Core,支持雙線程

      每個Node里的Logic CPU數(shù)量都為16個,占每個Node分配系統(tǒng)總內(nèi)存的1/4

      每個Node之間都通過Intel QPI(QuickPath Interconnect)技術(shù)形成了點到點的全互聯(lián)處理器系統(tǒng)

      NUMA這種基于點到點的全互聯(lián)處理器系統(tǒng)與傳統(tǒng)的基于共享總線的處理器系統(tǒng)的SMP還是有巨大差異的。

      在這種情況下無法通過嗅探總線的方式來實現(xiàn)Cache一致性,因此為了實現(xiàn)NUMA架構(gòu)下的Cache一致性,Intel引入了MESI協(xié)議的一個擴(kuò)展協(xié)議——MESIF

      針對NUMA的支持

      NUMA架構(gòu)打破了傳統(tǒng)的“全局內(nèi)存”概念,目前還沒有任意一種編程語言從內(nèi)存模型上支持它,當(dāng)前也很難開發(fā)適應(yīng)NUMA的軟件。

      Java在支持NUMA的系統(tǒng)里,可以開啟基于NUMA的內(nèi)存分配方案,使得當(dāng)前線程所需的內(nèi)存從對應(yīng)的Node上分配,從而大大加快對象的創(chuàng)建過程

      在大數(shù)據(jù)領(lǐng)域,NUMA系統(tǒng)正發(fā)揮著越來越強(qiáng)大的作用,SAP的高端大數(shù)據(jù)系統(tǒng)HANA被SGI在其UV NUMA Systems上實現(xiàn)了良好的水平擴(kuò)展

      在云計算與虛擬化方面,OpenStack與VMware已經(jīng)支持基于NUMA技術(shù)的虛機(jī)分配能力,使得不同的虛機(jī)運行在不同的Core上,同時虛機(jī)的內(nèi)存不會跨越多個NUMA Node

      內(nèi)存知識掃盲

      帶你先認(rèn)識一下內(nèi)存

      內(nèi)存,也叫內(nèi)存儲器,是一種快速存儲設(shè)備,在計算機(jī)角色扮演里占據(jù)著核心的位置。現(xiàn)在的內(nèi)存條是一塊長方形薄片狀的電路板,上面焊接有很多黑色“方塊”的存儲芯片,讓人在主板上可以一眼發(fā)現(xiàn)它。

      ▲內(nèi)存條下方都會帶有一個缺口用于辨別安裝方向,防止用戶誤安裝

      ▲內(nèi)存條局部細(xì)節(jié)

      可在很久以前,內(nèi)存是作為一塊IC電子元件焊接在主板上的,這種“焊接”技術(shù)會給后期的維護(hù)、維修帶去極大的問題和麻煩。因此,機(jī)智的人類發(fā)明了更為人性化的“插拔式”內(nèi)存條,然后再在主板上設(shè)計一個安裝插槽,一切就妥妥得了。

      ▲筆記本內(nèi)存插槽

      ▲臺式機(jī)內(nèi)存插槽(紅色和黃色的長條形區(qū)域)

      內(nèi)存有哪幾種?

      如果不算離我們生活比較遠(yuǎn)的服務(wù)器內(nèi)存,內(nèi)存有兩種規(guī)格:筆記本內(nèi)存和臺式內(nèi)存。從本質(zhì)功能來講,兩者大同小異,只是外觀尺寸的差異。

      ▲上方為筆記本內(nèi)存,下方為臺式機(jī)內(nèi)存

      ▲已經(jīng)安裝有內(nèi)存的臺式機(jī)主板

      內(nèi)存條的發(fā)展

      內(nèi)存條從最早發(fā)展到現(xiàn)在,大致經(jīng)歷了了SIMM、EDO DRAM、SDRAM、DDR這幾個階段的技術(shù)革新。其中最為大家熟悉的DDR作為一種在性能與成本之間折中的解決方案,從出生就占據(jù)著市場,并在頻率上一直“高歌猛進(jìn)”,由此DDR2、DDR3、DDR4、DDR5應(yīng)勢而生...

      DDR2相比于第一代DDR,優(yōu)勢在于頻率和功耗有一定的提升,在實際的應(yīng)用方面,因為DDR2自身的不足,所以在歷史的舞臺上它也只是一個“過客”。

      它的下一代產(chǎn)品DDR3橫空出世,又再次成為了人們關(guān)注的對象。DDR3集成了高密度的閃存顆粒,這對于降低高容量內(nèi)存成本及減少生產(chǎn)支出都是有極大幫助的,可謂是推廣大容量內(nèi)存的源動力。目前該內(nèi)存仍然是市場消費的主力。

      相比而言,DDR4是最新的內(nèi)存型號,由于處于普及初期因此市場占有率不高,但是它確實是新配機(jī)用戶的首選。它和DDR3基本的技術(shù)相差不大,但DDR4的重心是在提高頻率和帶寬上,因此未來的市場應(yīng)該是屬于DDR4的。

      內(nèi)存規(guī)格不斷升級,運行頻率越來越高,如DDR3 1600、DDR3 2400最后的1600和2400數(shù)字就代表了內(nèi)存的運行頻率是1600MHz或2400MHz,頻率越高,內(nèi)存單位時間內(nèi)可以處理的數(shù)據(jù)越多,因此執(zhí)行效率更高,電腦整體速度更快。如果你是一個發(fā)燒友,DDR4是你不二的選擇。當(dāng)然也需要相應(yīng)的主板來匹配,因為每一代內(nèi)存在接口或電壓規(guī)格上會有所不同,不同代的內(nèi)存之間不能通用。

      內(nèi)存條為什么會影響電腦性能

      其實很簡單!我們運行一款軟件后,CPU或顯卡要對數(shù)據(jù)進(jìn)行處理,而且這個數(shù)據(jù)傳輸?shù)倪^程是動態(tài)的,也就是說CPU要不斷地從硬盤讀或?qū)憯?shù)據(jù)。如我們編輯文檔時的存儲或翻頁等操作,但是硬盤的速度非常慢,而CPU的處理速度極為快,硬盤非常慢的讀寫速度無法滿足CPU極快的處理速度,因此經(jīng)常會出現(xiàn)CPU等待硬盤數(shù)據(jù)傳輸過來的情況,嚴(yán)重影響電腦性能的發(fā)揮甚至說是完全無法使用。這時候就需要“中轉(zhuǎn)站”來存放臨時數(shù)據(jù),CPU提前將要處理器的數(shù)據(jù)存放到內(nèi)存中,需要使用時直接從里面尋找,這樣就可以達(dá)到高效執(zhí)行的目的。

      ▲鼠標(biāo)右鍵打開我的電腦即可看到系統(tǒng)已經(jīng)安裝的內(nèi)存容量(黃色字樣)

      因此內(nèi)存越大,CPU可以提前緩存的文件或數(shù)據(jù)更多,電腦運行的速度越快,這也是為什么內(nèi)存容量小的電腦,經(jīng)常會出現(xiàn)硬盤燈常亮、電腦卡頓的現(xiàn)象,原因就在于內(nèi)存容量不夠用,CPU將硬盤當(dāng)作數(shù)據(jù)“緩存空間”,這就導(dǎo)致速度跟不上趟的硬盤拖累了整臺電腦。還有一點值得注意的是存儲在內(nèi)存里的數(shù)據(jù)都是暫時的,關(guān)機(jī)或者斷電后就會消失。

      從市場反饋的結(jié)果來看,價格在200元左右的8GB、DDR3 1600MHz的臺式機(jī)內(nèi)存是消費的“香餑餑”。筆者看來,這個標(biāo)準(zhǔn)是完全可以滿足大部分消費者日常使用中各種臨時數(shù)據(jù)存儲和傳遞的需求了。當(dāng)然,現(xiàn)在內(nèi)存價格便宜了,配備16GB也不是什么奢侈的事情了。

      內(nèi)存條常識

      1、內(nèi)存條介紹

      內(nèi)存條是一種比固態(tài)硬盤更先進(jìn)的存儲技術(shù),它的讀寫速度比硬盤快上十倍有余,以現(xiàn)在主流的DDR4代內(nèi)存條為例,它的讀寫速度可以輕松達(dá)到7000MB/s以上,而傳統(tǒng)的機(jī)械硬盤最高也就不超過300MB/s,即使是最厲害的固態(tài)硬盤,也就3000MB/s的樣子。想比內(nèi)存也是慢了許多。

      由于CPU處理數(shù)據(jù)的速度是超級快的,而硬盤的讀寫速度又很慢,他們在進(jìn)行數(shù)據(jù)交換的時候就產(chǎn)生了一個速度上的矛盾,這個時候讀寫速度超快的內(nèi)存條就可以幫上大忙了。當(dāng)我們開機(jī)或打開軟件的時候,硬盤就會把這些軟件需要用到的數(shù)據(jù)傳輸?shù)絻?nèi)存條里保存起來。(這就是開機(jī)速度和打開軟件或打開游戲的速度,傳統(tǒng)的機(jī)械硬盤傳輸這個數(shù)據(jù)到內(nèi)存條的速度很慢,所以開機(jī)和打開軟件的速度很慢)。

      當(dāng)軟件打開后,數(shù)據(jù)就是存在內(nèi)存條中了,這個時候讀寫速度超快的內(nèi)存條就可以與CPU以超高的速度進(jìn)行數(shù)據(jù)傳輸了,這就是為什么你打開軟件和游戲需要等很久,但是在軟件使用和游戲中卻并沒有那么明顯的卡頓的原因了。當(dāng)我們關(guān)閉軟件或者清理后臺進(jìn)程時,內(nèi)存條里的數(shù)據(jù)就會被刪除掉。所以內(nèi)存中的數(shù)據(jù)是不能長時間存儲的。

      注意:筆記本內(nèi)存和臺式機(jī)內(nèi)存是不一樣的

      2、內(nèi)存條的容量

      內(nèi)存條的容量自然就是能存儲的數(shù)據(jù)多少了,我們每打開一個軟件,這些軟件的數(shù)據(jù)都會被保存到內(nèi)存中,如果內(nèi)存條被塞滿,我們繼續(xù)打開其他軟件的時候,CPU就只能從硬盤調(diào)取數(shù)據(jù)了(速度慢),這樣電腦的速度就會很慢并且伴有卡頓現(xiàn)象。

      常見的內(nèi)存條容量有 2G、4G、8G、16G

      3、內(nèi)存條的顆粒

      顆粒就是內(nèi)存條的存儲數(shù)據(jù)的東西,現(xiàn)在主流的顆粒生產(chǎn)商就是;三星、海力士、鎂光這三家。由于顆粒在生產(chǎn)時候會有質(zhì)量參差不齊的情況,所以一些成色極品的顆粒會被挑選出來做成高端超頻內(nèi)存條,而一些成色普通但合格的顆粒會被拿去做成普通內(nèi)存條。所以在購買內(nèi)存條的時候要注意!

      4、內(nèi)存條的頻率

      常見的有1333MHz、1600MHz、2133MHz、2400MHz、2666MHz、3200MHz,內(nèi)存條的頻率,它可以看成是內(nèi)存條數(shù)據(jù)的傳輸速度,是內(nèi)存條最重要的參數(shù)。各位朋友在購買的時候一定要根據(jù)自己的情況實際選擇哦,這里提醒大家一下,如果兩條內(nèi)存頻率不一致的話,會自動向下兼容的哦。購買時最好先了解自己電腦適合的內(nèi)存條頻率,不然收到貨不兼容就很不爽了

      5、單通道與雙通道

      打個比方,比如說單通道就是一條雙向車道,雙通道就是兩條雙向車道(帶寬增加),所以說雙通道比較穩(wěn)定一點。

      雙通道是能帶來一些性能的提升的,特別是使用CPU核心顯卡的用戶,由于CPU要同時負(fù)責(zé)程序數(shù)據(jù)和顯示數(shù)據(jù)的處理,需要的數(shù)據(jù)流量更大,所以雙通道帶來的雙倍帶寬才能滿足這么大的數(shù)據(jù)流量的需求。

      現(xiàn)在電腦內(nèi)存8G已經(jīng)很常見了,基本上都是雙通道組的,也可以根據(jù)個人習(xí)慣來配

      8G可以選擇2__4G 16G可以選擇2__8G 32G選擇2__16G

      根據(jù)個人需求選擇合適容量的內(nèi)存條。對于普通用戶來說8GB是夠用的,如果是專業(yè)作圖設(shè)計或者玩吃雞和大型單機(jī)游戲,可以選擇2根8GB組雙通道。如果自己也不知道自己需要多少容量的,可以先買一根8GB的使用,發(fā)現(xiàn)不夠可以再買一根8GB組成雙通道。


      內(nèi)存基礎(chǔ)知識干貨相關(guān)文章:

      內(nèi)存條的基礎(chǔ)知識大全

      電腦內(nèi)存基礎(chǔ)知識大全有哪些

      內(nèi)存硬核選購知識大全

      關(guān)于路由器內(nèi)存的基礎(chǔ)知識的介紹

      顯示器基礎(chǔ)知識干貨有哪些

      西方主要國家知識點干貨匯總

      高考語文知識點干貨

      關(guān)于面粉知識實用干貨

      consider的用法總結(jié)干貨

      737028