1. 程式人生 > >計算機組成原理-馮諾依曼結構

計算機組成原理-馮諾依曼結構

馮諾依曼結構:


 

  • 原始資料要經過輸入裝置將其轉化為機器可以識別的01位元,之後再由輸出裝置轉化為計算結果。
  • 控制器要控制其餘四個裝置的同步。
  • 儲存器使得各個部件之間的工作不再需要相互等待,資料和指令儲存在儲存器中,等待其他部件呼叫,這種以儲存器為核心的計算機,傳輸資料到儲存器中後,是以資料塊為單位發出去,因此速率高極大地提高了計算機的效能。
  • 運算器要執行資料的運算
  • 一條指令在執行的整個工作流程是這樣:指令和資料進入輸入裝置,被轉化成01位元訊號,傳輸給儲存器,儲存器將指令交給控制器,將資料交給運算器,運算器在控制器得到的指令的控制下計算出結果並傳輸到輸出裝置中,輸出裝置將01位元訊號轉化為計算結果。
  • 以這種以儲存器為核心的計算機,傳輸資料到儲存器中後,是以資料塊為單位發出去,因此速率高。 

 

 

過程描述:

首先讓我們瞭解四個暫存器:

  • PC(CPU裡存放指令地址的暫存器)
  • IR(CPU中存放指令的暫存器)
  • MAR(主存中存放指令地址的暫存器)
  • MDR(儲存體中存放指令的暫存器)
  • CU(分析指令並給出控制訊號)

還有一個概念:

  • 指令:通俗地講它的功能就是告知計算機要做的事。它由兩個部分組成:
    • 操作碼:裡面的東西告知計算機要做什麼運算
    • 運算元地址碼:裡面的東西是一個運算元的地址,用於找到運算元,而運算元就是做運算要用到的資料

 

 

如上圖,一條指令的執行需要用到運算器,控制器和主存三個部件,一條在硬碟上的指令,首先會通過I/O匯流排到達主存,這個我們叫做載入到記憶體,之後記憶體會通過匯流排告知CPU的控制器有指令需要獲取,這時控制器中的PC(CPU裡存放指令地址的暫存器)會獲取所要執行指令的地址。那麼要找到這條指令,就需要通過這個地址,這便是指令執行的第一步:取指令

  • 取指令:想要取指令,首先要知道指令在哪裡,我們知道指令是從硬碟載入到記憶體了,具體就是記憶體的儲存體裡。PC首先將指令地址送給主存中的MAR(主存中存放指令地址的暫存器),MAR將這個地址送給儲存體,在儲存體中找到配對的指令,然後將指令將給MDR(儲存體中存放指令的暫存器),取到了指令,那麼接下來就要告訴CPU,所以MDR將指令送給控制器中的IR(CPU中存放指令的暫存器),到這裡,取指令結束。

 

  • 分析指令:想讓運算器做運算,它得知道指令是幹什麼的,所以,控制器有責任幫助運算器分析指令。而這一功能,就要依靠控制器中的CU(分析指令並給出控制訊號),所以IR將指令中的操作碼給CU,CU分析出要做的運算。(IR中有完整的指令,指令中的操作碼給了CU,那麼指令中的運算元地址碼呢?下面揭曉答案)

 

  • 執行指令:分析完指令後,我們就要執行指令,那麼就要找到運算元,IR中存放著指令,指令中的操作碼給了CU,指令中的運算元地址碼就供CPU找到運算元,和剛才第一步取指令一樣,我們還是隻知道運算元的地址碼,IR將運算元地址碼送給MAR,MAR在儲存體中找到配對的運算元,再送給MDR,最後MDR將運算元送給ACC(運算器中的累加暫存器)。

 

  • 至此,運算器得到了指令的運算元,控制器得到了指令的操作碼,運算器在控制器的操作碼控制下對運算元進行一次運算。