1. 程式人生 > >程式設計必備基礎知識|計算機組成原理篇(09):CPU的控制器和運算器

程式設計必備基礎知識|計算機組成原理篇(09):CPU的控制器和運算器

計算機基礎方面的知識,對於一些非科班出身的同學來講,一直是他們心中的痛,而對於科班出身的同學,很多同學在工作之後,也意識到自身所學知識的不足與欠缺,想回頭補補基礎知識。關於計算機基礎的課程很多,內容繁雜,但無論是相關書籍還是大學課程,都有點脫離工作。特別地,計算機基礎知識體系龐雜,想要從零學習或者複習都耗時耗力。

有鑑於此,本系列文章將帶你更快的補足程式設計必備基礎知識,涵蓋計算機領域三大基礎知識:計算機組成原理、作業系統、計算機網路,這些都是大學計算機課程裡面最重要的內容。文章對這些內容做了提煉和總結,摒棄了作為程式設計師不需要掌握的知識。

目的是:

  • 幫助大家形成計算機知識的結構體系
  • 幫助大家理解計算機底層原理
  • 幫助大家在工作實踐中借鑑其中的優秀設計

本篇是計算機組成原理之CPU的控制器和運算器

歡迎關注、轉發、收藏、評論

控制器

控制器是CPU的組成部分,用於協調和控制計算機的執行,它的構成如下圖所示:

下面逐一簡單介紹。

程式計數器(Program Counter)

簡稱PC,用來儲存從記憶體提取的下一條指令的地址。當CPU執行一條指令時,首先需要根據PC中存放的指令地址,將指令由記憶體取到指令暫存器中,此過程稱為“取指令”。與此同時,PC中的地址或自動加1或由轉移指標給出下一條指令的地址,此後經過分析指令,執行指令,完成第一條指令的執行,而後根據PC取出第二條指令的地址,如此迴圈,執行每一條指令,保證程式能夠連續地執行下去。

時序發生器

用於傳送時序脈衝,CPU依據不同的時序脈衝有節奏地進行工作,類似於CPU的節拍器。

指令編譯器

用於翻譯指令及控制傳輸指令包含的資料。

指令暫存器

用於快取從記憶體或快取記憶體裡取出的指令,CPU執行指令時,就可以從指令暫存器中取出相關指令來進行執行。

主存地址暫存器

儲存當前CPU正要訪問的記憶體單元的地址,通過匯流排跟主存通訊。

主存資料暫存器

儲存當前CPU正要讀或寫的主存資料,通過匯流排與主存通訊。

通用暫存器

用於暫時存放或傳送資料或指令。

運算器

運算器是用來進行資料運算加工的。

資料緩衝器

分為輸入緩衝和輸出緩衝,輸入緩衝暫時存放外設送過來的資料,輸出緩衝暫時存放送往外設的資料。

ALU

算數邏輯單元,是運算器的主要部件,能完成常見的位運算(左移、右移、與、或、非等)和算術運算(加減乘除等)。

狀態字暫存器

存放運算狀態(條件碼、進位、溢位、結果正負等)和運算控制資訊。

通用暫存器

暫時存放或傳送資料或指令,儲存ALU的運算中間結果