CPU
CPU
是一塊超大規模的集成電路板,是計算機的核心部件,承載着計算機的主要運算和控制功能,是計算機的最終解釋模塊和執行模塊。總之,用一句話概括就是,CPU
是由控制器和運算器組成的,而內部寄存器使這兩者協作更為高效。CPU
的內部結構如下圖所示。
下面對圖中的三大組成部分進行簡單的講解。
控制器
控制器是由控制單元
、指令譯碼器
、指令寄存器
三大部分構成。其中控制單元
是CPU的核心,由時序控制和指令控制等組成;指令譯碼器
是在控制單元的協調下完成指令讀取、分析並交由運算器執行等操作;指令寄存器
是存儲指令集,當前流下的指令包括 X86、SSE、MMS 等。控制器類似於我們平常使用代碼編譯器一樣,當輸入編譯之后的0與1的源碼流,通過譯碼和控制單元對存儲設備的數據進行讀取,運算完成之后,保存回寄存器或者是內存。
運算器
從圖中我們可以得知,運算器的核心是算術邏輯運算單元,即 ALU
,能夠執行算術運算或邏輯運算等各種指令,運算單元會從寄存器中提取或存儲數據。相對於控制單元來講,運算器是受控的執行部件。我們平時開發的編程語言,如Java、Python等,用到的a+b的算術運算,無論是字節碼指令,還是匯編指令,最終的結果是一定以0與1的組合流形式在部件內完成最終計算,並保存到寄存器,最后送出CPU。
寄存器
為了區分,作者在寄存器圖上特意標明了CPU的高速緩存L1
、L2
,緩存容量是組裝計算機時必問的兩個CPU性能問題之一。緩存結構和大小對於CPU的運行速度影響非常大,畢竟CPU的運行速度遠快於內存的讀寫速度,甚至硬盤。基於執行指令和熱點數據的時間局部性和空間局部性,CPU緩存部分指令和數據,以提升性能。但由於CPU內部空間狹小且結構復雜,高速緩存遠小於內存空間。
小結
CPU
是一個高內聚的模塊化組件,對於外部其他硬件設備的時序協調、指令控制、存取動作,都需要通過操作系統進行統一管理和協調。
內存
CPU與內存的執行速度有着很大的差距,上圖中寄存器里面的L1
和L2
分別對應着256KB和4MB,它們是CPU和內存之間的緩沖區,但需要注意的是,並非所有的處理器中都存在L3
緩存。
內存
就是系統資源的代名詞,它是其他硬件設備與CPU溝通的橋梁,計算機中的所有程序都在內存中運行,它的容量與性能如果存在瓶頸,即使CPU再快,也是白費功夫。內存的物理結構是由內存芯片、電路板、控制芯片以及相關支持模塊等組成。
在Java當中,內存就全權交給了JVM(Java虛擬機)來自動分配和釋放,這個過程就是垃圾回收機制
。雖然垃圾回收機制
能夠幫助我們的程序減輕了壓力,但是不在代碼中加以約束的話,同樣也會耗盡內存資源。