計算機硬件系統通常由運算器部件、控制器部件、存儲器系統、輸入設備和輸出設備這5大部分組成。從圖 可以看到計算機硬件系統的5大功能部件及其連接關系。虛線框內的是控制器部件,另外的4個實線框是其余的4個部件,它們通過數據總線、地址總線和控制總線連接在一起,主要連接關系簡單說明如下:
(1)運算器部件通過數據總線和內存儲器、輸入和輸出設備傳送數據;
(2)輸入和輸出設備通過接口電路與總線相連接;
(3)內存儲器、輸入和輸出設備從地址總線接收地址信息,從控制總線得到控制信號,通過數據總線與其他部件傳送數據;
(4)控制器部件從數據總線接收指令信息,從運算器部件接收指令轉移地址,送出指令地址到地址總線,還要向系統中各部件提供它們運行所需要的控制信號。
作為五大功能部件之一的控制器的作用,是向整機系統的每個部件(包括控制器部件本身)提供它們協同運行所需要的控制信號。計算機的核心功能是提供連續執行指令的能力,而每一條指令往往又要分成幾個執行步驟才得以完成。由此又可以說,控制器的基本功能,是依據當前正在執行的指令和它所處的執行步驟,形成并提供出在這一時刻整機各部件要用到的控制信號。
執行一條指令,通常總是要經過讀取指令、分析指令、執行指令所規定的處理功能三個階段才能完成,這是在控制器的控制下實現的;控制器還要保證計算機能按程序中設定的指令運行次序,自動地連續執行指令序列。為此,控制器部件必須由一些具有不同處理功能的邏輯線路(子部件)組成,圖中也給出了控制器的基本組成,并且表明它在整機中的地位。
組成控制器的4個子部件是:
(1)程序計數器(PC),是用于提供指令在內存中的地址的部件,服務于讀取指令,能執行內容增量和接收新的指令地址,用于給出下一條將要執行的指令的地址。
(2)指令寄存器(IR),是用于接收并保存從內存儲器讀出來的指令內容的部件,在執行本條指令的整個過程中,為系統運行提供指令本身的主要信息。
(3)指令執行的步驟標記線路,用于標記出每條指令的各個執行步驟的相對次序關系,保證每一條指令按設定的步驟序列依次執行。
(4)全部控制信號的產生部件,它依據指令操作碼、指令的執行步驟(時刻),也許還有些另外的條件信號,來形成或提供出當前執行步驟計算機各個部件要用到的控制信號。計算機整機各硬件系統,正是在這些信號控制下協同運行,執行指令,產生預期的執行結果。
依據前述控制器最后兩個組成部分的具體組成與運行原理不同,通常把控制器區分為硬連線控制器和微程序控制器兩大類。
計算機在執行任何一條指令時都是在取指—譯碼—執行的循環中完成的,即執行每一條指令,通常都要經過從內存儲器中讀取指令,經過控制信號產生線路來分析指令,從而提供相關的控制信號,根據控制信號執行指令規定的具體操作功能等幾個操作步驟。
算機基礎方面的知識,對于一些非科班出身的同學來講,一直是他們心中的痛,而對于科班出身的同學,很多同學在工作之后,也意識到自身所學知識的不足與欠缺,想回頭補補基礎知識。關于計算機基礎的課程很多,內容繁雜,但無論是相關書籍還是大學課程,都有點脫離工作。特別地,計算機基礎知識體系龐雜,想要從零學習或者復習都耗時耗力。
有鑒于此,本系列文章將帶你更快的補足編程必備基礎知識,涵蓋計算機領域三大基礎知識:計算機組成原理、操作系統、計算機網絡,這些都是大學計算機課程里面最重要的內容。文章對這些內容做了提煉和總結,摒棄了作為程序員不需要掌握的知識。
目的是:
本篇是計算機組成原理之CPU的控制器和運算器
歡迎關注、轉發、收藏、評論
控制器是CPU的組成部分,用于協調和控制計算機的運行。
控制器的主要部件
下面逐一簡單介紹。
程序計數器(Program Counter)
簡稱PC,用來存儲從內存提取的下一條指令的地址。當CPU執行一條指令時,首先需要根據PC中存放的指令地址,將指令由內存取到指令寄存器中,此過程稱為“取指令”。與此同時,PC中的地址或自動加1或由轉移指針給出下一條指令的地址,此后經過分析指令,執行指令,完成第一條指令的執行,而后根據PC取出第二條指令的地址,如此循環,執行每一條指令,保證程序能夠連續地執行下去。
時序發生器
用于發送時序脈沖,CPU依據不同的時序脈沖有節奏地進行工作,類似于CPU的節拍器。
指令編譯器
用于翻譯指令及控制傳輸指令包含的數據。
指令寄存器
用于緩存從內存或高速緩存里取出的指令,CPU執行指令時,就可以從指令寄存器中取出相關指令來進行執行。
主存地址寄存器
保存當前CPU正要訪問的內存單元的地址,通過總線跟主存通信。
主存數據寄存器
保存當前CPU正要讀或寫的主存數據,通過總線與主存通信。
通用寄存器
用于暫時存放或傳送數據或指令。
運算器是用來進行數據運算加工的。
運算器的主要部件
數據緩沖器
分為輸入緩沖和輸出緩沖,輸入緩沖暫時存放外設送過來的數據,輸出緩沖暫時存放送往外設的數據。
ALU
全稱為算數邏輯單元,是運算器的主要部件,能完成常見的位運算(左移、右移、與、或、非等)和算術運算(加減乘除等)。
狀態字寄存器
存放運算狀態(條件碼、進位、溢出、結果正負等)和運算控制信息。
通用寄存器
暫時存放或傳送數據或指令,保存ALU的運算中間結果。