現在的位置: 首頁 > 雲計算 > 正文

什麼是內存和內存IC

2020年02月24日 雲計算 ⁄ 共 4131字 ⁄ 字型大小 評論關閉

  我們這裡說的內存啊,其實就是說的我們電腦裡面的內存條,所以嘞,內存就是內存條,數據要放在這上面才能被cpu讀取從而做運算,還有硬碟,就是電腦中的C盤啥的,一個程序需要運行的話需要向內存申請一塊獨立的內存空間,這個程序本身是存放在硬碟上的,申請完內存之後會存放在內存上。

  如果一個程序不經常使用,操作系統會把這個程序的數據從內存上移動到硬碟上,如果這個程序再次被喚醒,操作系統會再次將硬碟上的數據重新交換到內存上,這個時候可以聽到硬碟吱吱的響。

  比如我們使用移動硬碟的時候,在電腦上打開移動硬碟上的文件,會聽見移動硬碟響起來,這個就是在讀取硬碟上的文件,這個效率其實是很低的​。

  內存到底是個啥?

  上面我們說了,內存就是內存條,那麼這句話準確嗎?肯定有人說,不對,什麼內存就是內存條啊,凈是瞎扯,那到底是不是呢?其實還真不是,那我為啥還那樣說,形象啊,有助於你理解啊,接下來咱們就來深挖一下,過後,你就明白了!

  先從內存條說說

  前面說過了,內存條嘛,作為程序員的我們肯定都知道,就是那短短的扁扁的一個小電路板,而且還不便宜,對的,實際存在的這個內存設備也就是我們說的內存條,它是一個電子元件,內存的實質是內存IC(後面會詳細說),這個IC就是集成電路的意思。

  內存就是內存條?

  不過嘞,我們再詳細的來說,內存其實是個比較廣的概念,啥意思嘞,你說這個內存,碰到杠精就會說,你說的內存是物理內存還是虛擬內存啊,我們這裡說的內存肯定是與我們平常寫代碼有密切關係的,也就是保存我們程序數據為我們的程序運行提供臨時存儲的地方,基於此,我們這裡來明確下我們這裡說的內存。

  我們這裡說的內存實際上說的是指物理內存,也就是實際存在的一個設備,通常來說就是指我們安裝內存條而獲得的存儲空間,我們使用它的主要作用就是在計算機運行的時候為操作系統和各種程序提供一種臨時存儲。

  現在知道我們這裡說的內存一般是指物理內存,我們習慣了也就直接叫內存了,這個內存更為正式的來說是隨機存取存儲器,英文名稱是Random Access Memory,縮寫就是取首字母也就是RAM,所以啊記住了,以後再看到RAM就是指的內存,也就是隨機存取存儲器,另外它還叫做主存,也就是主要的存儲器,是電腦中最主要的存儲器,因為它是直接與CPU進行數據交換,讀寫速度較快,用來載入各種各樣的程序和數據來供CPU直接運行與使用。

  現在簡單總結下,作為程序員來說,我們需要知道的內存指的是能夠與CPU直接進行數據交換的存儲器,放在電腦上就是內存條,正式的名字叫做隨機存取存儲器,也叫做主存,是電腦中最主要的存儲器,英文縮寫是RAM。

  內存?是不是還有外存?

  內存和外存?這個咋理解?內存安裝在裡面,外存安裝在外面?不對吧,內存條是安裝在電腦內部的,硬碟也是安裝在電腦內部的啊?

  這裡的內存和外存可不是這樣理解的,簡單來說,內存就是斷電的話保存的數據會丟失,對應的外存斷電后里面保存的數據不會丟失。

  DDR3?DDR4?

  這個大家熟悉吧,我們要是換內存條的話一定要看看我們的電腦支持是哪一種,不然就是白花錢啊,我之前就買錯過一次,源於自己的太自信。

  我們已經知道了啥是內存,也知道了我們這裡的內存也是主存,RAM,它們都是一個品種,一樣的,這個RAM是一般的隨機存取存儲器,除此之外還有DRAM,這又是啥嘞,RAM是隨機存取存儲器,這個DRAM是動態隨機存取存儲器,對應的還有SRAM叫做靜態存取存儲器。

  DRAM結構簡單,單位體積內容量高成本低,但是訪問速度慢,耗電大,相應的SRAM結構複雜,成本高等。無論DRAM還是SRAM都屬於內存,也就是斷電會丟失數據,綜合來說DRAM的性價比比較高,擴展性也很好,所以就成了現在廣為流行的電腦主存。

  然後你還要知道SDRAM,這是啥嘞,DRAM是動態隨機存取存儲器,SDRAM是同步動態隨機存取存儲器,也就是比DRAM更牛,升級版,然後還有DDR SDRAM,不用說,這肯定是SDRAM的升級版,這個叫雙倍數據率同步動態隨機存取存儲器,哈哈,這名字可以的,繼續,還有DDR3 SDRAM,知道這個是啥不,對的,第三代雙倍數據率同步動態隨機存取存儲器,哈哈,還有DDR4 SDRAM,知道了吧,那麼我們電腦中的DDR3和DDR4知道怎麼回事了吧。

  內存的原本模樣(物理機制)

  我們之前已經說過了內存就是主存,也叫做隨機存取存儲器,縮寫是RAM,然後還說了什麼DRAM,SRAM然後還有DDR SDRAM等等,這些其實都是內存,只不過是各自的形式不同,但是實實在在的一個電路板,就我們能拿在手裡的內存條,他們的物理機制其實都差不多,都有什麼電源,地址信號,數據信號和控制信號等等,下面我們來看一張圖你就清楚了

  啥是內存IC

  這個內存IC其實就是內存中用來真正保存數據的地方,也就是內存提供的容量所在,因此,可以說內存的實質就是內存IC,先知道這些,我們繼續往下說,這個內存IC後面還會說的。

  剛開始看這個圖一定是懵的,那麼我們先來看一個問題,就是**這個圖代表的內存能夠存儲多少數據呢?**接下來我們就以這個圖開始說,最後如果你能明白這個內存能存儲多少數據,目的就達到了。

  上圖的各個標誌已經有說明了,VCC和GND是鏈接電源的地方,通上電之後這玩意就帶電了,我們之前應該知道,數據都是以二進位的形式存放在內存中的,也就是0和1,這個是通識,那麼這個0和1是怎麼表示的呢?

  看這個圖,當VCC和GND通上電以後,就可以給其他引腳傳遞1或者0的信號,這裡的引腳就是A0-A9,這是地址信號引腳,D0-D7這是數據信號引腳,1或者0是根據電壓來表示的。

  通常嘞,+5V的直流電壓表示1,0V就是0,也就是說啊,通上電以後嘞,這裡的數據信號引腳D0-D7這八個引腳可能是+5V或者是0V,也就是可以表示0或者1,一個引腳相當於一位,這位上可以是0或者1,然後這八個引腳都可以表示對應的0或者1,這樣就可以形成一個八位的用0和1表示的數據,這其實就是二進位啊。

  D0-D7可以表示具體的數據,這也是存放在內存中的數據的底層表現形式,同樣的,上面的地址信號引腳也是一樣的道理,每個引腳可以表示1或者0,這樣地址信號引腳和數據信號引腳確定以後,地址信號引腳組成的0和1的這個數據就叫做我們熟知的內存地址,根據它我們就可以找到數據信號引腳代表的數據了。

  內存IC的容量怎麼看

  那麼這個內存可以存儲多少個數據嘞,我們知道數據信號引腳來表示具體的數據,需要通過地址信號表示的二進位數據來找到它,也就是說每個地址信號代表的的數據是對應著一個數據信號引腳表示的真實數據的,所以嘞,地址信號引腳可以表示多少個數據不就代表這個內存可以存放多少數據嘛,這裡的地址信號引腳有A0-A9,也就是10個,因此它可以表示0000000000----1111111111之間的數據,有多少嘞,一共有1024個。

  所以啊,這個內存可以存儲1024個1位元組的數據,對了,數據信號引腳八個代表一個位元組的數據,也就是一個引腳代表1位,也就是1bit,8bit就是一個位元組,也即是1byte,然後1024byte又等於1KB,所以,這個內存IC最終的容量就是1KB。

  你可能會說,這也太小了點了吧,確實小,作為程序員的我們,電腦中使用的內存最低也得8GB吧,這得多少個內存IC啊,這裡你可能會有點迷糊,我詳細的說下。

  再來說內存IC

  知道這個吧,我們把這個叫做內存IC,IC是集成電路的意思,這個內存IC其實有兩種,你只需要知道其中一種叫做內存顆粒或者內存晶元的就行,我們這裡說的內存IC更為準確來說其實就是內存顆粒,是鑲嵌在內存條上的。

  一塊一塊的其實就是內存顆粒,也就是我們上面說的內存IC,那麼你可能會說,上面那個內存IC的容量才1KB,我們平常用的話最低也得8GB,這也鑲不下啊,如果都是容量1KB的內存IC,當然鑲不下,因此容量更大的內存條則需要容量更大的內存IC,這個口蹄疫通過內存IC上的引腳數量來實現,不過這個也更加複雜有難度,當然,容量越大,內存條也越貴啊,就是這麼個道理。

  程序員眼中的內存

  上面我們把內存稍微深入的說了一遍,相信你看下來一定有不少收穫吧,當然,我不排除你沒有看懂,如果真的沒有看懂,可以多看幾遍,當然,也許你是個大神,發現我哪裡說錯了,如果是這樣,還勞煩指教一下哦。

  那麼我們作為一個程序員,每天就是寫寫代碼,我們需要知道什麼內存IC,什麼這信號那引腳的嗎?

  其實吧,我覺不是很有必要,但是知道總比不知道強,不過下面的這些你可一定要知道啊。

  如何形象的去理解內存

  這樣的一個個的小格子,裡面主要存放數據和一些指令,然後每個格子還有對應的編號,這個編號就叫做內存地址,想想,這裡的編號是不是就是上面說的內存IC中的地址信號引腳組成的數據,然後每個格子中存放的數據和指令就是通過內存IC中的數據信號引腳來表示的。然後你還可以想像成,每個格子可以存放1位元組的數據,也就是內存IC中的那八個信號引腳,對應起來了吧,那麼一個容量為1KB的內存(只含有一個內存顆粒,容量就為1KB),這樣的格子就有1024個,畫成圖就是這樣的

  然後我們還知道在java中是有數據類型的,數據類型的作用簡單說就是決定數據在內存中暫用多少內存空間,這裡也就是要佔用多少個小格子,我們知道在java中int代表整型佔4個位元組,這裡一個格子可以保存1位元組的數據,那麼int就需要佔用4個小格子。對於作為程序員的我們,就應該這樣來理解內存,這樣更加形象,有助於我們更好的編程。

  這些硬核真的硬?

  看到這裡,你想一下,了解了上述知識,下載在當你寫下一個:

  int a = 10;

  1

  的時候,你是不是會想,int向內存申請四個小格子,每個格子有對應的內存地址,然後10轉換成二進位數據存放在這些小格子里,實際上是內存IC中的數據信號引腳按照轉換後的二進位,也就是0和1來決定每個引腳是+5V直流電壓還是0V電壓,當然,內存地址即使地址信號引腳啦……

抱歉!評論已關閉.