計算機原理之CPU模型

2021-10-10 17:23:45 字數 1743 閱讀 7096

程式從最初的磁碟-》主存-》暫存器-》被cpu執行;這是乙個指令或者資料載入的順序;如果cpu的執行速度和從主存之間獲取指令的速度一致,那麼cpu資源也能充分利用,但是隨著技術的進步cpu的執行速度遠遠快於從主存獲取資料的速度,為了充分利用cpu資源,加快指令的執行速度,於是引入了快取記憶體的概念,實質就是在cpu與主存之間加入快取。

根據機械原理,較大的儲存裝置要比較小的儲存裝置執行得慢,而快速裝置的造價遠高於同類的低速裝置。例如,乙個典型系統上的磁碟驅動器可能比主存大 10 的倍,但是對處理器而言,從磁碟驅動器上讀取乙個字的時間開銷要比從主存中讀取的開銷大 100 、萬倍;類似地,乙個典型的暫存器檔案只儲存幾百位元組的資訊,而主存裡可存放幾十億位元組;然而,處理器從暫存器檔案中讀資料的速度比從主存中讀取幾乎要快 100 倍。更麻煩的是,隨著這些年半導體技術的進步,這種處理器與主存之間的差距還在持續增大,加快處理器的執行速度比加快主存的執行速度要容易和便宜得多。針對這種處理器與主存之間的差異,系統設計者採用了更小、更快的儲存裝置,即快取記憶體儲存器(簡稱快取記憶體),作為暫時的集結區域,用來存放處理器近期可能會需要的資訊。

儲存器層次結構的主要思想:上一層的儲存器作為低一層儲存器的快取記憶體。因此,暫存器檔案就是 l1 的快取記憶體, l1 是 l2 的快取記憶體, l2 是 l3 的快取記憶體, l3 是主存的快取記憶體,而主存又是磁碟的快取記憶體。在某些具有分布式檔案系統的網路系統中,本地磁碟就是儲存在其他系統中磁碟上的資料的快取記憶體。正如可以運用不同的快取記憶體的知識來提高程式效能一樣,程式設計師同樣可以利用對整個儲存器層次結構的理解來提高程式效能。

cpu快取的意義

cpu往往需要重複處理相同的資料、重複執行相同的指令,如果這部分資料、指令cpu能在cpu快取中找到,cpu就不需要從記憶體或硬碟中再讀取資料、指令,從而減少了整機的響應時間。所以,快取的意義滿足以下兩種區域性性原理:

時間區域性性(temporal locality):如果乙個資訊項正在被訪問,那麼在近期它很可能還會被再次訪問。

空間區域性性(spatial locality):如果乙個儲存器的位置被引用,那麼將來他附近的位置也會被引用。

根據區域性性原理每次從主存讀取多大的資料?

如果,讀的資料較大則讀取速度慢,但是快取的命中率高;

如果讀的資料較小,讀取速度較快,但是快取命中率低;

根據工業實踐一般cpu會讀取64位元組的資料量

l1快取位於cpu核心上,大約儲存數萬位元組,他的訪問速度幾乎和暫存器一樣快;l2快取的容量大約數十萬到數百萬位元組,相對於l1速度降低5倍。

cpu的快取使用流程就如同我們開發業務一樣,獲取資料時首先會在最快的快取中找資料,如果快取沒有命中(cache miss) 則往下一級找, 直到**快取都找不到時,那只有向記憶體要資料了,每次未命中,代表取資料消耗的時間變長。

參考資料《深入理解計算機系統》

計算機組成原理 流水CPU

寫在前面 許多人在選擇或了解 cpu時,常常忽略 流水線 這個指標。其實也難怪,在經常被介紹的 cpu引數中,關於流水線被提到的不多,即便提到,也相當簡略和專業。非專業人士很難理解,有時也就不甚了了。也許有人會說,我管它什麼流水線不流水線的,型號越新 越高,就一定越好。這種想法不是沒有道理。可是,當...

計算機原理

關於 深入理解計算機系統 老趙的這一番話,深深的觸動了我,確實,這本書用怎麼說呢,並不是深入,而是涉及的知識比較廣,但又都是廣大程式猿不得不知道的知識,下面我們就來慢慢品嚐這本書吧。工作之餘,學習學習,總是好的。言歸正傳,接下來,享讀 computer systems a programmer s ...

計算機原理

計算機 實質是資料儲存和資料流動 資料是儲存在磁碟上的,磁碟是由磁顆粒點組成,磁顆粒點可以帶電,帶電是1,不帶電是0,磁碟上有保護膜,不直接與空氣接觸,乙個磁顆粒點就是1bit,1b 8bit,資料傳輸就是傳輸電平 1t 8 9萬億顆粒點 對顆粒點需要管理,機械盤內部有很多光碟,顆粒點在光碟的正反兩...