記憶體和儲存空間有什麼不同?「8GB」與「256GB」的意思
規格表上的「記憶體 8GB」,是放置正在執行的App和工作中資料的空間大小。它能快速讀寫,但關掉電源,內容就會消失。「儲存空間 256GB」是存放照片和App的空間大小,關掉電源,內容也會保留。
這篇文章可以了解
- 規格表上「記憶體」和「儲存空間」的數字,各代表什麼
- 記憶體(DRAM)和儲存空間(快閃記憶體),在晶片中記住資料的原理
- 兩者的速度差多少,以及為什麼兩者都需要
- 記憶體不夠時會發生什麼事,以及「256GB」顯示得比較少的原因
先備知識:不需要。如果知道CPU是「執行程式指令的零件」,會比較容易閱讀。
生活中的例子:規格表上的2個「GB」
手機和電腦的規格表上,會並列2個帶有GB的數字,例如「記憶體 8GB」「儲存空間 256GB」。因為單位相同,看起來像是同一種東西的量。但這2個數字,是完全不同零件的大小。在店裡被問到「要256GB還是512GB?」時,通常指的是儲存空間。
GB(gigabyte)是資料量的單位。1位元組(byte)可以表示1個英文字母。G(giga)代表十億,所以1GB大約是十億位元組。精確的算法有2種,後面會說明。
記憶體是放「現在正在用的東西」的地方
CPU是把程式的指令一個一個取出來執行的零件(「CPU是什麼?」)。CPU工作時,放置指令和資料的地方就是記憶體。也稱為「主記憶體」。
啟動App時,App的內容會從接下來要說明的儲存空間,讀進記憶體。CPU使用記憶體上的資料來工作。瀏覽器開著的網頁、正在編輯的文件,也都在記憶體上。記憶體的容量越大,越能同時放置更多App和資料。
現在的記憶體,幾乎都使用DRAM這種半導體晶片。DRAM能非常快速地讀寫,但關掉電源,內容就會消失。
關掉電源內容就消失的性質,稱為「揮發性」。寫到一半的文件沒有存檔就斷電,那一部分就會不見,原因就在這裡。所謂「存檔」,就是把記憶體上的資料,寫到接下來要說明的儲存空間。
儲存空間是「收起來保存」的地方
儲存空間是存放照片、影片、App、文件等,關掉電源也會保留的地方。沒有電源也能保持記憶的性質,稱為「非揮發性」。
手機的儲存空間,使用的是NAND型快閃記憶體這種半導體晶片。以下簡稱為「快閃記憶體」。隨身碟和SD卡裡面,也是同一種晶片。
現在的電腦,大多裝著使用快閃記憶體的儲存裝置。這稱為SSD。儲存空間的容量比記憶體大得多,同樣容量的價格也比較便宜。但相對地,讀寫會慢很多。
為什麼要分開:速度、容量、價格的取捨
又快、又大、又便宜,關掉電源也不會消失。如果有這種理想的記憶裝置,就不必分成記憶體和儲存空間。但以現在的技術,越快的東西每單位容量的價格越高,越大越便宜的東西就越慢。
所以電腦會把性質不同的記憶裝置,疊成好幾層來使用。越靠近CPU的層越快、越小,越遠的層越慢、越大。這種排列稱為「記憶體階層」。圖右邊的數字,是讀取1次資料需要等待的時間的參考值。1奈秒是10億分之1秒,1毫秒是1,000分之1秒。
最上面的暫存器,是CPU裡用來放計算中數字的極小記憶空間。數量很少,但CPU不必等待就能使用。
下一層的快取,是把記憶體中常用部分的副本,放在CPU旁邊。程式常在短時間內重複使用同樣的資料,所以這個做法很有效。
最下面的HDD(硬碟),是用磁性記錄在旋轉圓盤上的裝置。它要移動讀取用的零件,再等想讀的位置轉過來,所以很花時間。因為能便宜地做出大容量,現在仍用於保存資料。
原理①:DRAM是「存電的小容器」
接下來,看看晶片中記住資料的原理。電腦的資料,用0和1的排列來表示。0或1的1個份量稱為「位元」,8位元是1位元組。
DRAM用1個小開關和1個存電的小容器,記住1位元。開關是電晶體(「電晶體是什麼?」),容器是稱為「電容器」的零件。容器裡存著電就是1,空的就是0,用這種方式區分。這個原理是IBM的羅伯特·登納德在1966年想出來的。
記住1位元的1組,稱為「記憶單元」(cell)。DRAM的記憶單元只有2個零件,所以能做得非常小,密密麻麻地排在晶片上。8GB的記憶體,記憶單元的數量多達約690億個。
不過,存在這個容器裡的電,會一點一點漏掉。放著不管的話,原本是1的容器,就會變得無法和0區分。所以DRAM會在內容消失前,定期讀出來,再寫回相同的值。這稱為更新(refresh)。
電腦用的記憶體,所有記憶單元每隔數十毫秒就重寫1次。在一般溫度下,DDR4規格是每64毫秒,新的DDR5是每32毫秒。DRAM的「D」(dynamic,動態),就代表這種需要不斷維護的特性。
關掉電源,更新也會停止。漏掉的電不會回來,所以內容不久就會消失。這就是記憶體屬於揮發性的原因。
原理②:快閃記憶體是「關住電子的房間」
快閃記憶體的記憶單元,是由1個有點特別的電晶體構成的。電晶體有用來切換開啟和關閉的電極,稱為閘極。這種電晶體在閘極下方,有一個小小的「房間」。
房間的周圍,被不導電的膜包圍著。這層膜稱為「絕緣膜」。把電子(搬運電的小粒子)關進房間後,電晶體就變得不容易開啟。
讀取時,在閘極加上固定大小的電壓。如果開啟就是沒有電子,沒有開啟就是有電子,用這種方式區分。房間被絕緣膜包圍,所以關掉電源後,電子也很難跑出去,資料就會保留。
這個房間在傳統的方式中,稱為浮動閘極(浮在中間的電極)。現在的大容量產品,大多不用房間,而是使用能抓住電子不放的膜。Samsung在2013年開始量產、把記憶單元垂直堆疊的產品,也是這種方式。
NAND型快閃記憶體,是1987年由東芝的舛岡富士雄等人的團隊發表的。它把記憶單元像念珠一樣串起來節省空間,所以能便宜地做出大容量。
寫入時,加上很強的電壓,把電子推進絕緣膜另一側的房間。抹除時,也用很強的電壓把電子拉出來。重複這些動作,膜會一點一點受損,關住電子的能力也逐漸變弱。快閃記憶體有覆寫次數的上限,原因就在這裡。
因此,SSD和手機裡的控制晶片,會把寫入的位置分散開來,避免寫入都集中在同一個地方。這個做法稱為損耗平均。
記憶體不夠時會發生什麼事?
開著的App太多時,記憶體可能會裝不下。這時的處理方式,依管理整台電腦的基本軟體(作業系統,OS)而不同。這裡把代表性的例子簡化來說明。
Windows電腦會把一段時間沒用到的資料,從記憶體暫時移到儲存空間上的專用位置。這個位置稱為「分頁檔」。空出來的記憶體,就能給現在要用的App。不過,再次使用移走的資料時,要從儲存空間讀回來,這段期間動作會變慢。
根據Android的開發者資料,Android不會把儲存空間用在這個目的。因為頻繁寫入會讓快閃記憶體受損(有些廠商會自行加入使用儲存空間的功能)。取而代之的是,在記憶體裡壓縮資料塞進去,或把在背景開著的App關掉,來空出記憶體。iPhone的iOS在記憶體不夠時,也會關掉App。
被關掉的App,下次打開時會從儲存空間重新讀取。隔一段時間切換回去的App,從第一個畫面開始,或要花時間才顯示,原因就在這裡。記憶體越充裕,需要關掉App的情況就越少。
明明是「256GB」,為什麼顯示得比較少?
就算買了256GB的手機,設定畫面上顯示可用的量也會比較少。原因之一,是作業系統和預先裝好的App占用了空間。另一個原因,是「GB」有2種算法。
儲存裝置的廠商,把1GB算成十億位元組。另一方面,在電腦的世界裡,用每次增加2倍的數字來劃分,常常比較方便。所以也有軟體把1GB算成2的30次方(1,073,741,824)位元組。用這種算法,256GB會變成約238GB。
根據Seagate的說明,Windows用後者的算法顯示容量。另一方面,根據Apple的說明,現在的iPhone和Mac用的是十億位元組的算法。同一個儲存空間,顯示的數字也會因為用哪台機器看而不同。
為了區分這2種算法,IEC(國際電工委員會)在1998年決定,把2的30次方位元組稱為「GiB(gibibyte)」。不過,實際上到現在,兩者大多都還是寫成「GB」。另外,記憶體的「8GB」,習慣上依照制定半導體標準的業界團體JEDEC的定義,使用2的30次方的算法。
常見的誤解
誤解:記憶體和儲存空間是同一種東西,都是「能保存多少」的數字
實際上,記憶體是放工作中東西的快速空間,關掉電源就會消失。儲存空間則是關掉電源也會保留的地方。兩者容易混淆,是因為都用GB表示,名稱也容易搞混。例如記憶卡屬於儲存空間,但裡面的晶片是快閃「記憶體」,所以名稱裡有「記憶」。在規格表上,可以把「記憶體」「RAM」看成工作用,「儲存空間」「容量」看成保存用。
誤解:儲存空間越大的手機,動作越快
實際上,儲存空間的容量是「能存放多少」的數字,並不直接決定動作的速度。價格越高的款式看起來越快,是誤解的來源。不過,有些機種只在大容量的款式裝較多記憶體,這時記憶體的差異就有影響。另外,空間幾乎用光時,App更新和暫存資料會沒地方放,可能影響動作。電腦用的SSD中,也有容量越大、寫入越快的產品。
誤解:SSD沒有會動的零件,所以不會磨損
實際上,快閃記憶體有覆寫次數的上限,SSD也有壽命。廠商會用TB(1TB是1,000GB)為單位,標示保證的寫入總量。這稱為TBW。例如Samsung「990 PRO」的1TB款式是600TBW(保固最長5年)。這相當於每天寫入100GB,也要約16年才會達到600TB。TBW是保固的參考值,超過不代表馬上會壞,在那之前也不保證一定不壞。
從數字來看
| 項目 | 數字 | 比較看看 |
|---|---|---|
| 快取(最靠近CPU的層)的讀取 | 約1奈秒 | 放大成1秒的話:1秒 |
| 記憶體(DRAM)的讀取 | 約100奈秒 | 約100秒(不到2分鐘) |
| SSD的讀取 | 約0.1毫秒 | 約1天 |
| HDD的讀取 | 約10毫秒 | 約4個月 |
| 用2的30次方來算256GB | 約238GB | 看起來少了約7% |
| 990 PRO 1TB保證的寫入量(TBW) | 600TB | 相當於把全部容量覆寫約600次 |
上面4列,是讀取1次需要等待的時間的參考值。把快取的1奈秒拉長成1秒,記憶體就要等約100秒,SSD約1天,HDD約4個月。從記憶體往下1層到SSD,等待時間就變成大約1千倍。
SSD的數值,和快閃記憶體晶片的讀取時間(東芝記憶體2019年的資料是約0.05毫秒)差不多。另外,每秒能搬運的量是另一個數字,990 PRO連續讀取時最高每秒7,450MB。即使如此,以每1次的等待時間來說,還是比不上記憶體。
進一步學習
- 用表格看差異:DRAM與NAND快閃記憶體的差異、DRAM與SRAM的差異(用於快取的記憶體)、SSD與HDD的差異、NAND型與NOR型快閃記憶體的差異、NVMe與SATA SSD的差異
- 下一步的用語:3D NAND(把記憶單元垂直堆疊)、TLC(1個記憶單元存3位元)、LPDDR(手機用的DRAM)、虛擬記憶體(管理記憶體的機制)
- 用數字試試看:影像、聲音、影片資料量計算工具(估算儲存空間能放多少)
- 用圖來看:記憶體階層、DRAM的記憶單元、NAND記憶單元的排列,都在圖解的一覽中
- 從基礎讀起:「半導體是什麼?」