作者frankshyu (Frank)
看板Gossiping
標題Re: [問卦] 為什麼記憶體不能用硬碟替代==?
時間Mon Nov 20 11:32:38 2017
要講到為甚麼需要 RAM, 首先我們要看看電腦的基本公用. 本質上,
電腦就是做三件事:
(1) 從儲存裝置取出資料
(2) 對取出的資料作運算
(3) 把算出來的結果轉給其他裝置/把算出來的結果存回儲存裝置
我們以眾多男同胞最常用電腦做的事 - 看影片 - 來舉實際的例子.
看影片的時候電腦就是做三件事:
把存在硬碟上的片片取出來, 這是 (1)
但這時候片片還是沒有意義的複雜編碼, 你可以想像這是為了壓縮影
片, 讓男性同胞可以存更多影片 ^_^
把取出的編碼做運算, 變成影像, 這是 (2)
運算的方法百百種, 但總結來說就是加減乘除四種基本單元
把算出來的影像送給螢幕, 這是 (3)
看完這個例子大家也對電腦的基本功能有基本的了解了, 計算機結構
也算是修完一半了. 那麼為甚麼需要 RAM 呢? 注意到在 (1) - (3)
的功能中, 我們都是用「儲存裝置」稱呼用來存放資料的地方, 而實
際上儲存裝置可以是 RAM, 硬碟, 或是快取記憶體 (cache). 所以理
想上你當然可以用只有硬碟的電腦. 你會有一個類似這樣的電腦架構
CPU
|
硬 碟
可是硬碟的讀取速度非常慢, 以一般每秒 7200 轉的硬碟來說, 如果
配上一個 2GHz (每秒做 2*10^9 次運算) 的 CPU, 等於是你 CPU 下
個指令要去硬碟搬東西, 要在原地空轉 ~10^6 次, CPU 的使用率不到
百分之一, 等片子完全從硬碟讀完大概就要兩個小時了, 幫 QQ
所以呢對於看片片有很多需求的工程師就想到了這樣一個解法
何不加上一個讀取速度更快的儲存裝置?
於是偉大的 RAM 就誕生了, 電腦的架構變成這樣
CPU
|
RAM
|
硬 碟
比起硬碟, RAM 的讀取速度大概快上 1000 倍, 現在 CPU 每下一個讀
取資料的指令, 只要空轉 1000 次, 算是大大的進步. 你一定會問那
為甚麼不要通通用 RAM 就好呢? 原因有兩個:
(1) RAM 很貴 (至少以前很貴XD)
(2) RAM 的資料每次斷電後會消失
另外要注意因為 RAM 空間有限, 並不是每次 CPU 要資料 RAM 都有,
如果 RAM 找不到 CPU 要的資料, 就要回去硬碟要, 依然要等待. 這種
情況就是一個 Miss, 稍後還會看到一樣的時候. 因此要如何預測 CPU
未來要用的資料並且提前搬入 RAM, 就是一門大學問.
既然有了一層金字塔, 吃飽太閒的工程師就會開始試著多跌幾層金字塔
, 於是快取記憶體 (cache) 就誕生了! 比起 RAM, cache 更快, 但當
然也就更貴了, 所以通常容量會更小. 而有了一層 cache, 前總統會問
你有嘗試過加第二層嗎? 所以就有了 L1 (快, 貴) 和 L2 (較慢, 較便
宜) 的誕生. 另外要注意 CPU 裡面自己有一個最快最貴的 register,
每次 CPU 要和他要資料必然可以現場要到. 到此為止, 電腦的結構長
成這樣:
單位造價 存取速度
最 貴 CPU (Register) 最 快
| | |
| L1 Cache |
| | |
| L2 Cache |
| | |
| RAM |
V | V
最便宜 硬 碟 最 慢
理想上, 作業系統 (OS) 不斷趁 CPU 在做主要運算的時候 (不需要讀寫
) 把未來有可能用到的資料從硬碟先往上搬, 這樣每次 CPU 要做運算時
永遠可以馬上在 L1 Cache 要到資料, 使得 miss rate 最低 (i.e. hit
rate 最高, hit = 要資料馬上要到). 並且趁 CPU 在運算的時候把需要
寫回硬碟的東西寫回去. 當然, SSD 的出現讓 RAM 的角色略有尷尬, 如
美光前陣子推出的 SSD 號稱能接近 RAM 的讀寫速度, 這又是另一個故
事了. 希望有幫助到你.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 128.32.112.169
※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1511148761.A.08D.html
→ MEKURUMEKU: 你還蠻認真的 樓下推 11/20 11:33
推 limoncool: 幹 我才剛唸完作業系統就看到這篇 11/20 11:34
推 pierreqq: 一種空轉二小時的概念 可是肥肥十五分鐘都進入聖入模式 11/20 11:36
推 gash55025502: 推推 11/20 11:37
推 a3831038: 好險我都看到FBI warning那邊就射了 11/20 11:39
推 gerychen: 代表文組謝謝你,那裝SSD幹嘛還要裝貴鬆鬆的RAM?? 11/20 11:39
因為現在 RAM 又比 SSD 更便宜呀XD 現在 2000 可以買個 16GB 的 RAM, 還是略勝 SSS 啦
推 lovedj: 專業推 11/20 11:40
推 evan09900966: 推推 11/20 11:42
※ 編輯: frankshyu (128.32.112.169), 11/20/2017 11:44:17
推 wowpoqwow: 專業 11/20 11:43
推 gerychen: 你的行情是不是怪怪的,16GB的RAM現在5、6000 11/20 11:48
真假, 可是我當初 2016 冬天修課需要去光華買, 真的是這樣捏
※ 編輯: frankshyu (128.32.112.169), 11/20/2017 11:49:40
→ gerychen: 可是240GB的SSD只要3、4000,如果SSD可取代RAM 11/20 11:49
→ gerychen: 這將近20倍的價差是怎麼回事,真心發問 11/20 11:49
推 memoriespass: 我們在同一個時空? 現在RAM 8G一條要價2500 11/20 11:51
那可能是小弟記錯了, 我們當初買的應該是 8GB <(_ _)>
→ gerychen: SSD讀取速度真有辦法取代RAM嗎?現在RAM真的貴得很煩 11/20 11:52
推 memoriespass: 現在記憶體的頻寬可以接近20GB/s 11/20 12:02
→ memoriespass: 一般sata的ssd讀寫速度也才數百MB/s 11/20 12:03
※ 編輯: frankshyu (128.32.112.169), 11/20/2017 12:10:41
推 kennings: 我還用過只有CPU+ROM 的 APPLE II......連軟碟硬碟都沒 11/20 12:26
→ kennings: 有XD 11/20 12:26
推 AppleWatch5: 推 11/20 12:29
推 screamyy: 推認真 11/20 12:36
推 D49361128: 其實只要練到FBI warning就射 真的不需要這麼大儲存空 11/20 12:38
推 chrisgod: 專業推 11/20 12:42
推 adifdtd: RAM漲蠻大的喔 幾天前買筆電 RAM 4G開價1300 最後選擇 11/20 12:44
→ adifdtd: +SSD 120G 11/20 12:44
推 babosa633: 11/20 12:55
推 Ericcws: 可以去幫文組上課了 11/20 12:59
噓 Jerrynet: 基本 "功用" 11/20 13:01
推 starlight102: 這邊有個疑問 在ssd接近ram讀寫速度的同時 11/20 13:47
→ starlight102: write-through處理方法是可行的嗎? 11/20 13:51
噓 kevin0733: RAM什麼時候比SSD便宜過了 最便宜時800/8G 11/20 16:39
→ kevin0733: 16G RAM 可以買 128G SSD了 11/20 16:40