微處理器
微處理器(CPU)是計算機的核心部件,其中除了運算器和控制器外, 還包括用于暫存數(shù)據(jù)的寄存器和傳輸信息用的內(nèi)部總線。圖 1-8 為一個簡化的 CPU 模型,CPU 需要通過三 總線(數(shù)據(jù)總線、地址總線和控制總線) 與存儲器和 I/O 接口進行通信和聯(lián)絡(luò)。本節(jié)將介紹微處理器各組成部件的功能以及微處理器的主要性能指標。
圖 1-8 簡化的 CPU 模型
微處理器各部件的功能
(1)運算器
運算器由算術(shù)邏輯運算單元(Arithmetic and Logical Unit ,ALU)、累加器和暫存器等部 件構(gòu)成。 ALU 是運算器的核心部件,可以完成兩個數(shù)的加法、減法、比較以及與、或、非 等運算,參與運算的兩個數(shù)分別由累加器和暫存器提供。 ALU 的運算結(jié)果被送回累加器,并且運算結(jié)果的狀態(tài)將被記錄在程序狀態(tài)字(Program Status Word ,PSW) 寄存器中。這里所謂的運算結(jié)果狀態(tài)是指運算是否產(chǎn)生了進位、借位, 運算結(jié)果是否為零,是否為負數(shù)等,每種狀態(tài)均以 1 位二進制數(shù)來表示。
(2)寄存器
寄存器是 CPU 內(nèi)部用于存儲信息的物理器件。所謂的信息可以是數(shù)據(jù)、地址或指令。 比如:累加器是用于存放數(shù)據(jù)的寄存器; PSW 是用于存放 ALU 運算結(jié)果狀態(tài)的寄存器;而指令寄存器(IR) 存放從存儲器中讀取的指令代碼。
(3)控制器
控制器是控制和協(xié)調(diào)計算機各部件協(xié)同工作的機構(gòu),主要包括程序計數(shù)器(PC)、指令 寄存器(IR)、指令譯碼器(ID)和控制信號發(fā)生電路。
微處理器的主要性能指標
微處理器的主要性能指標有字長和指令執(zhí)行時間,分別用于衡量微處理器的運算能力和運算速度。
(1)字長
字長是微處理器一次可以處理的二進制數(shù)的位數(shù)。字長越長,CPU 的計算能力越強、計 算速度越快。比如,Intel 公司 1971 年推出的第一代微處理器 Intel 4004 (見圖 1-3a)的字長 是 4 位, 每次只能進行 4 位二進制數(shù)計算, 4 位二進制無符號數(shù)的數(shù)值范圍是 0~15;而該 公司生產(chǎn)的微處理器 Intel 80386 (如圖 1-3c 所示)的字長是 32 位, 每次可以完成 32 位二進 制數(shù)的計算,32 位二進制無符號數(shù)的數(shù)值范圍是0~4294967295。
(2)指令執(zhí)行時間
指令執(zhí)行時間越短,速度越快。指令執(zhí)行的時間與微型計算機的時鐘頻率有關(guān),每條指令執(zhí)行所消耗的時鐘周期個數(shù)是固定的,因此時鐘頻率越高,指令執(zhí)行速度越快。
存儲器
在微型計算機中,存儲器主要用于存放數(shù)據(jù)和指令。存儲器有兩類,包括隨機存取存儲 器(RAM)和只讀存儲器(ROM) 。RAM 中的信息可以被讀、寫, 既能存放數(shù)據(jù),也能存 放指令代碼。而 ROM 中的信息只能被讀取,不能被修改, 因此 ROM 只能存放指令代碼或程序執(zhí)行過程中保持不變的數(shù)據(jù)。存儲器由半導(dǎo)體存儲器芯片構(gòu)成,包含若干個存儲單元, 每個存儲單元可以存放若干位二進制數(shù),每個存儲單元都被分配一個地址,即存儲單元地址。微處理器讀、寫存儲器時必須提供存儲單元的地址。
圖 1-9 給出了 MCS-51 單片機的微處理器從程序存儲器中讀取一條指令“MOV A,#12H”(該指令中“#12H”代表十六進制數(shù) 12H ,A 代表累加器,指令功能是將數(shù)字 12H 送入累加器)的過程示意圖,可以幫助讀者更好地理解計算機的工作原理,即“存 儲程序的原理”,另外該圖中的①~⑥是指令執(zhí)行步驟的序號。如圖 1-9 所示,訪問存儲 器時必須提供被訪問存儲單元的地址,而被取指令在程序存儲器中的存放地址由程序計 數(shù)器(PC) 提供。讀指令的過程中,PC 的值會自動增加(當(dāng)程序出現(xiàn)分支或循環(huán)時可能 是減小)指向下一個存儲單元,為取下一個指令做準備。需要注意的是,指令操作碼用于指明指令要完成的操作,需要經(jīng)指令譯碼器翻譯后才能被 CPU “理解”,而指令操作數(shù)是被指令處理的數(shù)據(jù),不需要指令譯碼器翻譯。另外,單片機進行數(shù)據(jù)存儲器讀、寫的過程與讀取指令操作數(shù)的過程類似,主要差別是數(shù)據(jù)存放在數(shù)據(jù)存儲器中,并且其存儲單元的地址不由 PC 提供。
圖 1-9 指令“MOV A,#12H”讀取過程示意圖
a) 讀取操作碼 b) 讀取操作數(shù)
I/O 接口
I/O 接口是微處理器和 I/O 設(shè)備之間的橋梁, 常用的 I/O 接口包括串行通信接口、定時 器接口和模擬通道接口等。 I/O 接口通過三總線與微處理器相連,為了區(qū)分各 I/O 接口, CPU 給每個 I/O 接口分配固定且不同的地址。與訪問存儲器類似,CPU 訪問I/O 接口時也需先將 I/O 接口的地址送入地址總線,然后再通過數(shù)據(jù)總線傳輸數(shù)據(jù)。