瀏覽單個文章
darkangel
Major Member
 
darkangel的大頭照
 

加入日期: Aug 2001
文章: 211
引用:
Originally posted by Cudacke

通常稱做 register, register 又有不同了,
例如有些會用來記憶 cpu 的指令, 例如加, 減, 乘, 除, 讀, 存等等,
register 當然最快, 但是也最貴,
而且也不可能真的無限制的增大, 因為增大的同時速度會減慢,
所以就用便宜一點容量大一點也慢一點的記憶裝置來當 cache,
cache 接下來來還有 memory, memory 不夠還有硬碟,
為了彌補記憶體不足又還有用硬碟來來虛擬 memory 在硬碟上的 cache,
例如 windows xp 每次一開機幾百 mb 的 pagefile,
其實目的就是為了彌補記憶體不足的一種方式,
所以程式要怎麼寫的可以好好利用這一連貫系統,
跟硬體又如何能夠把整各結構串聯起來就成了整各系統運作速度的關鍵.

至於哪種記憶體快, 離 cpu 越近的就越快,
例如, 當 cpu 要運算一組數據的時候, 舉例 A + B,
cpu 就會去跟 register 要 A 跟 B 的數據,
如果兩組數據都在 register 裡面, 那最好, 直接拿來用,
如果 A 不在 register 裡面, 那 cpu 就會去找 A 現在存在哪, 例如發現在硬碟裡,
那階下來的動作就會把 A 從硬碟一層一層讀取到 register 裡面,
然後開始運算.


抱歉更正一下,
1. register 好像並未使用在記憶指令的用途上.
2. 您說的 A+B 運做方式乍看之下覺得怪怪的, 但要這樣說也不算錯, 不過 register 算是 CPU 內部的記憶體, 所以 CPU 並不會去和 register "要" 資料, 所以您的說法應該要修改一下.
__________________
滿招損 謙受益
舊 2004-07-17, 03:11 AM #123
回應時引用此文章
darkangel離線中