寄存器和存儲器的區別

寄存器和存儲器的區別

寄存器和存儲器的區別


寄存器存在于CPU中,速度很快,數目有限;存儲器是內存,速度稍慢,但數量很大 。寄存器的功能是存儲二進制代碼,是由具有存儲功能的觸發器組合起來構成的 。一個觸發器可以存儲1位二進制代碼,故存放n位二進制代碼的寄存器,需用n個觸發器來構成 。
電腦的控制器,寄存器,運算器分別有什么作用?一、CPU的內核
從結構上講CPU內核分為兩部分:運算器和控制器 。
?
(一) 運算器
【寄存器和存儲器的區別】?
1、 算術邏輯運算單元ALU(Arithmetic and Logic Unit)
?
ALU主要完成對二進制數據的定點算術運算(加減乘除)、邏輯運算(與或非異或)以及移位操作 。在某些CPU中還有專門用于處理移位操作的移位器 。
?
通常ALU由兩個輸入端和一個輸出端 。整數單元有時也稱為IEU(Integer Execution Unit) 。我們通常所說的“CPU是XX位的”就是指ALU所能處理的數據的位數 。
?
2、 浮點運算單元FPU(Floating Point Unit)
?
FPU主要負責浮點運算和高精度整數運算 。有些FPU還具有向量運算的功能,另外一些則有專門的向量處理單元 。
?
3、 通用寄存器組
?
通用寄存器組是一組最快的存儲器,用來保存參加運算的操作數和中間結果 。
?
對于x86指令集只支持8個通用寄存器的缺點,Intel最新CPU采用了一種叫做“寄存器重命名”的技術,這種技術使x86CPU的寄存器可以突破8個的限制,達到32個甚至更多 。
?
4、 專用寄存器
?
專用寄存器通常是一些狀態寄存器,不能通過程序改變,由CPU自己控制,表明某種狀態 。
(二) 控制器
?
運算器只能完成運算,而控制器用于控制著整個CPU的工作 。
?
1、 指令控制器
?
指令控制器是控制器中相當重要的部分,它要完成取指令、分析指令等操作,然后交給執行單元(ALU或FPU)來執行,同時還要形成下一條指令的地址 。
?
2、 時序控制器
?
時序控制器的作用是為每條指令按時間順序提供控制信號 。時序控制器包括時鐘發生器和倍頻定義單元,其中時鐘發生器由石英晶體振蕩器發出非常穩定的脈沖信號,就是CPU的主頻;而倍頻定義單元則定義了CPU主頻是存儲器頻率(總線頻率)的幾倍 。
?
3、 總線控制器
?
總線控制器主要用于控制CPU的內外部總線,包括地址總線、數據總線、控制總線等等 。
?
4、中斷控制器
?
中斷控制器用于控制各種各樣的中斷請求,并根據優先級的高低對中斷請求進行排隊,逐個交給CPU處理 。
二、CPU的外核
?
1、解碼器(Decode Unit)
?
這是x86CPU特有的設備,它的作用是把長度不定的x86指令轉換為長度固定的指令,并交由內核處理 。解碼分為硬件解碼和微解碼,對于簡單的x86指令只要硬件解碼即可,速度較快,而遇到復雜的x86指令則需要進行微解碼,并把它分成若干條簡單指令,速度較慢且很復雜 。好在這些復雜指令很少會用到 。
?
2、一級緩存和二級緩存(Cache)
?
一級緩存和二級緩存是為了緩解較快的CPU與較慢的存儲器之間的矛盾而產生的,以及緩存通常集成在CPU內核,而二級緩存則是以OnDie或OnBoard的方式以較快于存儲器的速度運行 。對于一些大數據交換量的工作,CPU的Cache顯得尤為重要 。
?
三、指令系統
?
要講CPU,還要了解一下指令系統 。指令系統指的是一個CPU所能夠處理的全部指令的集合,是一個CPU的根本屬性,因為指令系統決定了一個CPU能夠運行什么樣的程序 。我們常說的CPU都是X86系列及兼容CPU ,所謂X86指令集是美國Intel公司為其第一塊16位CPU(i8086)專門開發的,雖然隨著CPU技術的不斷發展,Intel陸續研制出更新型的i80386、i80486直到今天的Pentium4系列,但為了保證電腦能繼續運行以往開發的各類應用程序以保護和繼承豐富的軟件資源(如Windows系列),Intel公司所生產的所有CPU仍然繼續使用X86指令集 。另外除Intel 公司之外,AMD和Cyrix等廠家也相繼生產出能使用X86指令集的CPU,由于這些CPU能運行所有的為Intel CPU所開發的各種軟件,所以電腦業內人士就將這些CPU列為Intel的CPU兼容產品 。

推薦閱讀