深入理解計算機系統(一 計算機系統漫遊)

2021-06-27 13:08:55 字數 1179 閱讀 3693

**處理單元(cpu),簡稱處理器,是解釋(或執行)儲存在主存中指令的引擎。處理器的核心是乙個字長的儲存裝置(或暫存器),成為程式計數器(pc)。在任何時刻,pc都指向主存中的某條機器語言指令(即含有該條指令的位址)。

從系統通電開始,直到系統斷電,處理器一直在不斷的執行程式計數器指向的指令,再更新程式計數器,使其指向下一條指令。操作是圍繞著主存、暫存器檔案和算術/邏輯單元(alu)進行的。

主存是乙個臨時儲存裝置,在處理器執行程式時,用來存放程式和程式處理的資料。

暫存器檔案是乙個小的儲存裝置,由一些1字長的暫存器組成,每個暫存器都有唯一的名字。

alu計算新的資料和位址值。

cpu在指令的要求下可能會執行以下操作:

載入:把乙個位元組或乙個字從主存複製到暫存器,以覆蓋暫存器原來的內容;

儲存:把乙個位元組或乙個字從暫存器複製到主存的某個位置,以覆蓋這個位置上原來的內容;

操作:把兩個暫存器的內容複製到alu,alu對這兩個字做算術操作,並將結果存放到乙個暫存器中,以覆蓋該暫存器中原來的內容。

跳**從指令本身中抽取乙個字,並將這個字複製到程式計數器(pc)中,以覆蓋pc中原來的值。

處理器從暫存器檔案中讀資料的速度比從主存中讀取速度快很多。針對暫存器和和主存之間的差異,可採用更小更快的儲存裝置,即快取記憶體儲存器(簡稱快取記憶體),作為暫時的集結區域,用來存放處理器近期可能會需要的資訊。系統可以獲得乙個很大的儲存器,同時訪問速度也很快,原因是利用了快取記憶體的區域性性原理,即程式具有訪問區域性區域裡的資料和**的趨勢。通過讓快取記憶體裡存放可能經常訪問的資料的方法,大部分的儲存器操作都能在快速的快取記憶體中完成。即:可利用快取記憶體將程式的效能提高乙個數量級。

超執行緒,即:同時多執行緒,是一項允許乙個cpu執行多個控制流的技術。它涉及cpu某些硬體有多個備份,比如程式計數器和暫存器檔案;而其他的硬體部分只有乙份,比如執行浮點算術運算的單元。常規的處理器需要大約20 000個時鐘週期做不同執行緒間的轉換,而超執行緒的處理器可以在單個週期的基礎上決定要執行哪乙個執行緒。這使得cpu能夠更好地利用它的處理資源。例如:假設乙個執行緒必須等到某些資料被裝載到快取記憶體中,那cpu就可以繼續去執行另乙個執行緒。例如:intel core i7處理器可以讓乙個核執行兩個執行緒,所以乙個4核的系統實際上可以並行的執行8個執行緒。即:多執行緒可以併發而高效的執行。

計算機系統那些事 深入理解計算機系統(一)

一枚程式設計小白從2018.9.1的學習歷程 世界上沒有什麼是努力辦不到的,如果有,那麼就更努力一些吧 1.在unix系統上,原始檔到目標檔案是如何轉化的呢?從源程式也就是hello.c經過預處理 cpp 也就是那些 引入的標頭檔案啦,把它直接插到程式中,結果呢,得到hello.i這個時候程式就變得...

深入理解計算機系統 計算機系統漫遊

第一章 計算機系統漫遊 計算機系統是由硬體和系統軟體組成的。所有計算機系統都是由相似的硬體和軟體組成,它們又執行著相似的功能。以hello程式為例。1.1資訊就是位 上下文 hello程式的生命是從源程式 原始檔 開始的。源程式是程式設計師編寫的,hello.c。源程式是 0和1 的位元位,8個一組...

深入理解計算機系統之計算機系統漫遊

我帶著乙個要成為程式設計大牛的理想,下定決心開始看 深入理解計算機系統 這本書了。由於正在讀研究生,沒有全力去看這本書,更新速度比較慢。但是,這是乙個起點,我相信也不是乙個終點。應該帶著目標去學習。我們就以解決問題為導向開始著手這件事。文章記錄一些我比較關心的知識點。越來越發現,書中的圖才是精華。能...