首先先看乙個程式執行大概的過程。
我們所看到的**是人可以閱讀的高階語言**,但是計算機無法識別。 當乙個程式被載入並執行執行的時候,檔案就會被編譯成計算機可讀取的二進位制檔案。
這時記憶體會去讀取硬碟上的資料和指令並儲存在記憶體中。
由於cpu無法直接讀取硬碟上的資料,大部分cpu的時間用於等待磁碟去讀取資料。
程式啟動後,cpu中的控制器會從記憶體中讀取資料和指令並進行解析,根據指令中的操作碼確定計算機將進行什麼樣的操作。執行器根據控制器發出的控制訊號對資料進行運算。最後通過控制器根據執行結果來控制計算機。運算器只會進行運算,而控制器操控著整個cpu的工作。
最後控制器操作將結果顯示在裝置上。
接下來介紹各個部分:
cpu是計算機的中樞,主要的作用是解釋和執行最終轉化成機器語言的程式內容。cpu主要由運算器和控制器兩大核心組成。
運算器: 對讀取的資料進行計算。
算術邏輯運算單元alu 主要作用是對二進位制的資料進行算數、邏輯還有位運算。通常我們常說的cpu多少位指的就是alu所能處理的位數。
浮點運算單元fpu 主要負責浮點和高位運算。
控制器: 從記憶體中讀取指令, 執行指令,控制著整個計算機的運作。
記憶體是與cpu溝通的橋梁,主要作用用於暫時存放cpu運算的資料以及和硬碟互動的資料,相當於是乙個資料中轉站。
程式的運算和執行都發生在記憶體中,執行結束後cpu將執行結果傳送出來。
硬碟是計算機中主要的儲存資料的部件。
指令是計算機工作的指示和命令。指令是一條由二進位制數碼表示的一條資料, 一般包括操作碼和運算元,操作碼表示要完成的操作,運算元指參加運算的資料以及它所在的位址。
程序 程式從編譯到執行 cpu對記憶體的操作
有問題請一定支援,歡迎討論 今天對幾個概念進行了統一,程序,程式從編譯到執行,指令執行,cpu對記憶體相關操作 大概流程 更多細節 待補充 首先明確幾個概念 程序 程式動態執行的過程 多層次儲存器結構 指令 cpu 程式從編譯到執行主要經過三個階段 編譯 鏈結裝入 不同文章書籍有不同劃分,大致就這幾...
CPU 記憶體與硬碟的關係
關於cpu 記憶體與硬碟 三者之間的關係與功能 先來看一下這三者的功能 cpu就是 處理器 英文名稱叫做 central processing unit 是一塊超大規模的積體電路,是一台計算機的運算核心和控制核心。它的功能主要是解釋計算機指令以及處理計算機軟體中的資料。cpu主要包括運算器 算術邏輯...
從JVM併發看CPU記憶體指令重排序
這兩天,我拜讀了 dennis byrne 寫的一片博文memory barriers and jvm concurrency 中譯文記憶體屏障與jvm併發 文中提到 對主存的一次訪問一般花費硬體的數百次時鐘週期。處理器通過快取 caching 能夠從數量級上降低記憶體延遲的成本這些快取為了效能重新...