儲存 暫存器和記憶體

2021-08-22 08:19:18 字數 1545 閱讀 9316

**:

計算機儲存塔狀結構,暫存器最快,記憶體其次,最慢的是硬碟

同樣是電晶體儲存裝置,為什麼暫存器比記憶體快?

一、距離不同

距離不是主要因素,但是最好理解,記憶體離cpu比較遠,所以要耗費更長時間讀取。以3ghz的cpu為例,電流每秒鐘

可以振盪30億次,

每次耗時大約為0.33納秒。光在1納秒的時間內,可以前進30厘公尺。也就是說,在cpu的乙個時鐘週期內,光可以前進10厘公尺。因此,如果記憶體距離cpu超過5厘公尺,就不可能在乙個時鐘週期內完成資料的讀取,這還沒有考慮硬體的限制和電流實際上達不到光速。相比之下,暫存器在cpu內部,當然讀起來會快一點。

距離對於桌面電腦影響很大,對於手機影響就要小得多。手機cpu的時鐘頻率比較慢(iphone 5s為1.3ghz),而且手機的記憶體緊挨著cpu。

二、硬體設計不同

事實上確實如此,記憶體的設計相對簡單,每個位就是乙個電容和乙個電晶體,而暫存器的設計則完全不同,多出好幾個電子元件。並且通電以後,暫存器的電晶體一直有電,而記憶體的電晶體只有用到的才有電,沒用到的就沒電,這樣有利於省電。這些設計上的因素,決定了暫存器比記憶體讀取速度更快。

三、工作方式不同

記憶體的工作方式就要複雜得多:

(1)找到資料的指標。(指標可能存放在暫存器內,所以這一步就已經包括暫存器的全部工作了。)

(2)將指標送往記憶體管理單元(mmu),由mmu將虛擬的記憶體位址翻譯成實際的實體地址。

(3)將實體地址送往記憶體控制器(memory controller),由記憶體控制器找出該位址在哪一根記憶體插槽(bank)上。

(4)確定資料在哪乙個記憶體塊(chunk)上,從該塊讀取資料。

(5)資料先送回記憶體控制器,再送回cpu,然後開始使用。

記憶體的工作流程比暫存器多出許多步。每一步都會產生延遲,累積起來就使得記憶體比暫存器慢得多。

為了緩解暫存器與記憶體之間的巨大速度差異,硬體設計師做出了許多努力,包括在cpu內部設定快取、優化cpu工作方式,盡量一次性從記憶體讀取指令所要用到的全部資料等等。

拓展思考:

1、volatitle關鍵字

記得c++中的關鍵字volatitle,一般編譯器會對變數進行優化,直接將變數儲存在暫存器中,這樣方便快速訪問,但是加上volatile關鍵則不進行優化,直接每次使用到的時候就從記憶體中訪問。

2、register儲存類

雖然這個在c++ 11中已經被棄用了,register類實現將變數直接儲存在暫存器上而不是ram上的區域性變數,資料大小不能超過暫存器大小,且不能進行一元運算子&因為他沒有記憶體位址。定義 'register' 並不意味著變數將被儲存在暫存器中,它意味著變數可能儲存在暫存器中,這取決於硬體和實現的限制。

暫存器 記憶體 儲存器

暫存器 又稱快取 一般是指由基本的rs 觸發器結構衍生出來的 d觸發,就是一些與非門構成的結構,一般整合在 cpu內,其讀寫速度跟 cpu的執行速度基本匹配,但因為效能優越,所以造價昂貴,一般好的 cpu也就只有幾mb的 2級快取,1級快取更小。使用暫存器可以縮短至零長度 節省儲存空間,提高指令的執...

暫存器是什麼?記憶體 暫存器和儲存器的區別

什麼是暫存器?暫存器就是計算機中用來在操作時暫時儲存資訊的部件。說到儲存資訊,你是不是想到了記憶體卡和儲存器,那你知道它們之間的區別嗎?不知道的話,下面賢集網小編來給您說說暫存器是什麼?記憶體 暫存器和儲存器的區別。1 暫存器是什麼?暫存器是 處理器內的組成部分。暫存器是有限存貯容量的高速存貯部件,...

暫存器 儲存器 記憶體的區別

從範圍來看,它們所指的範疇不一樣。暫存器是 處理器內的組成部份。它跟cpu有關。暫存器是有限存貯容量的高速存貯部件,它們可用來暫存指令 資料和位址。在 處理器的控制部件中,包含的暫存器有指令暫存器 ir 和程式計數器 pc 在 處理器的算術及邏輯部件中,包含的暫存器有累加器 acc 儲存器範圍最大,...