引用:
Originally posted by jutcku
其實看到現在,只是覺得這是電子、電機人的悲哀,
因為只要你停下腳步不學習,很快的就會被淘汰,
就像我去補習班老師竟然還說L2快取是做在CPU外面,
(那應該是P2時的事情了吧!<-不確定∼有點忘了)
但我也沒去說什麼,因為我覺得我要學的老師教的好就好了,
其他這種看雜誌就可學的知識,
我是覺得是學生要自己去學習,
還有想請問大家暫存器到底是在CPU的哪阿?
我問老師,老師跟我說是在L1快取裡,是真的嗎?
因為如果以速度來看:暫存器>L1快取>L2快取
可是如果暫存器是在L1快取裡,
那速度為何會比L1快,請知道的人能告知一下,謝拉∼
|
其實與其去研究 L2, L1 在哪,
不如搞清楚 L2, L1 做來是要做什麼的,
時代會變, 但是這個架構則是用了一段時間也有其原因的,
基本上 cpu 主要的功能是負責運算執行指令,
而 cpu 裡面第一層的記憶裝置,
通常稱做 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 裡面,
然後開始運算.