暫存器(register)一般在cpu內部,珍貴,容量也小,儲存器是廣泛的定義。
讀寫速度是reg>RAM>ROM
一般容量是reg<RAM<ROM
價格和速度成正相關。
RAM也就是所謂的記憶體了,寫程式碼定義的陣列啊,變數一般在這裡。程式碼段的程式碼也會由ROM區讀到RAM裡面。由於結構特殊,必須上電儲存,掉電就沒有資料了。
ROM有時候也可以稱為外存,對於微控制器來說,你燒錄的程式碼就存在ROM區,你用code開頭定義的陣列和變數也在ROM裡面。既然要儲存程式碼,自然要長久儲存,掉電不會損失資料。不過ROM是隻讀的,也叫read only memory。所以你在code區定義的變數都是const的,不可修改。
之所以設定成這樣的層層快取結構,說到底就是因為速度,價格,結構導致的。
速度匹配,cpu速度大於記憶體大於磁碟,中間不緩衝一下讀寫就受到限制,不能讓速度快點一方一直等待速度慢點那方。
rom便宜容量大,可以存好多程式碼和資料,無奈速度太慢,用rom當記憶體用會急死人。
RAM就是充當cpu的暫存器和rom間速度匹配的緩衝,和中間結果的臨時儲存。
暫存器有各種,標誌位暫存器,記住中間運算狀態的;控制暫存器,控制cpu正常運轉的;通用暫存器,做各種邏輯和算術運算的。
暫存器(register)一般在cpu內部,珍貴,容量也小,儲存器是廣泛的定義。
讀寫速度是reg>RAM>ROM
一般容量是reg<RAM<ROM
價格和速度成正相關。
RAM也就是所謂的記憶體了,寫程式碼定義的陣列啊,變數一般在這裡。程式碼段的程式碼也會由ROM區讀到RAM裡面。由於結構特殊,必須上電儲存,掉電就沒有資料了。
ROM有時候也可以稱為外存,對於微控制器來說,你燒錄的程式碼就存在ROM區,你用code開頭定義的陣列和變數也在ROM裡面。既然要儲存程式碼,自然要長久儲存,掉電不會損失資料。不過ROM是隻讀的,也叫read only memory。所以你在code區定義的變數都是const的,不可修改。
之所以設定成這樣的層層快取結構,說到底就是因為速度,價格,結構導致的。
速度匹配,cpu速度大於記憶體大於磁碟,中間不緩衝一下讀寫就受到限制,不能讓速度快點一方一直等待速度慢點那方。
rom便宜容量大,可以存好多程式碼和資料,無奈速度太慢,用rom當記憶體用會急死人。
RAM就是充當cpu的暫存器和rom間速度匹配的緩衝,和中間結果的臨時儲存。
暫存器有各種,標誌位暫存器,記住中間運算狀態的;控制暫存器,控制cpu正常運轉的;通用暫存器,做各種邏輯和算術運算的。