天天看點

第一章 微型計算機系統導論【微機原理】

第一章 微型計算機系統導論

  • ​​第一章 微型計算機系統導論​​
  • ​​1.1 引言​​
  • ​​1.2 計算機的發展狀況​​
  • ​​1.3 微型計算機硬體系統​​
  • ​​1.3.1 基于總線的微型計算機硬體系統​​
  • ​​1.3.2 微處理器​​
  • ​​1.3.3 存儲器​​
  • ​​1.3.4 I/O接口和輸入輸出裝置​​
  • ​​1.4 微型計算機軟體系統​​
  • ​​1.4.1 系統軟體​​
  • ​​1.4.2 使用者(應用)軟體​​
  • ​​1.5 微型計算機的工作過程​​

第一章 微型計算機系統導論

1.1 引言

1.2 計算機的發展狀況

微型計算機屬于第四代計算機,是20世紀70年代初期研制成功的。一方面是由于軍事、空間及自動化技術的發展,需要體積小、功耗低、可靠性高的計算機;另一方面,大規模內建電路技術的不斷發展也為微型計算機的産生打下了堅實的物質基礎。

微處理器(Microprocessor)是微型計算機的核心,它是将計算機中的運算器和控制器集 成在一塊矽片上制成的內建電路晶片。這樣的晶片也被稱為中央處理單元(Central Processing Unit),簡稱CPU。

微型計算機(Microcomputer)是由微處理器(CPU)、存儲器和IO接口電路組成的計算機。

1.3 微型計算機硬體系統

微型計算機是指以微處理器為核心,配上存儲器、輸入/輸出接口電路等所組成的計算機(又稱為主機)。微型計算機系統(Microcomputer System)是指以微型計算機為中心,配以相應的外圍裝置、電源和輔助電路(統稱硬體)以及指揮計算機工作

的系統軟體所構成的系統。與一般的計算機系統一樣,微型計算機系統也是由硬體和軟體兩部分組成的,如圖1.1所示。

本節首先介紹微型計算機的硬體組成,微型計算機軟體系統将在1.4節介紹。

第一章 微型計算機系統導論【微機原理】

1.3.1 基于總線的微型計算機硬體系統

到目前為止,計算機仍沿用1940年由馮·諾依曼提出的體系結構。其基本設計思想為:

①以二進制形式表示指令和資料。

②程式和資料事先存放在存儲器中,計算機在工作時能夠高速地從存儲器中取出指令

加以執行。

③由運算器、控制器、存儲器、輸入裝置和輸出裝置等五大部件組成計算機硬體系統。

微機體系結構的特點之一是采用總線結構,通過總線将微處理器(CPU)、存儲器(RAM和ROM)、IO接口電路等連接配接起來,而輸入/輸出裝置則通過I/O接口實作與微機的資訊交換,如圖1.2所示。

第一章 微型計算機系統導論【微機原理】

所謂總線,是指計算機中各功能部件間傳送資訊的公共通道,所有的資訊都通過總線傳送。

根據所傳送資訊的内容與作用不同,總線可分為以下三類:

(1)位址總線AB(Address Bus):在對存儲器或I/O端口進行通路時,傳送由CPU提供的要通路

存儲單元或I/O端口的位址資訊,以便選中要通路的存儲單元或I/O端口。AB是

單向總線。

(2)資料總線DB(Data Bus):從存儲器取指令或讀寫操作數,對I/O端口進行讀寫操作

時,指令碼或資料資訊通過資料總線送往CPU或由CPU送出。DB是雙向總線。

(3)控制總線CB(Control Bus):各種控制或狀态資訊通過控制總線由CPU送往有關部

件、或者從有關部件送往CPU。CB中每根線的傳送方向是一定的,圖1.2中CB作為一個整體,用雙向表示。

采用總線結構時,系統中各部件均挂在總線上,可使微機系統的結構簡單,易于維護,并具有更好的可擴充性。一個部件(插件)隻要符合總線标準就可以直接插入系統,為使用者對系統功能的擴充或更新提供了很大的靈活性。

1.3.2 微處理器

圖1.3所示為一個簡化的微處理器模型(虛線框内),它由運算器(ALU)、控制器(CU)和

内部寄存器R)三部分組成。現将各部件的功能簡述如下。

第一章 微型計算機系統導論【微機原理】

1.運算器

運算器又稱算術邏輯單元(ALU,Arithmetic Logic Unit),用來進行算術或邏輯運算以及移位循環等操作。參加運算的兩個操作數一個來自累加器A(Accumulator),另一個來自内部資料總線,可以是資料緩沖寄存器DR(Data Register)中的内容,也可以是寄存器陣列RA(Register Array)中某個寄存器的内容。

2.控制器

控制器又稱控制單元(CU,Control Unit),是全機的指揮控制中心。它負責把指令逐條從存儲器中取出,經譯碼分析後向全機發出取數、執行、存數等控制指令,以保證正确完成程式所要求的功能。控制器中包括以下幾部分:

(1)指令寄存器IR(Instruction Register):用來存放從存儲器取出的将要執行的指令碼

當執行一條指令時,先把它從記憶體取到資料緩沖寄存器DR中,然後再傳送到指令寄存IR中。

(2)指令譯碼器D(Instruction Decoder):用來對指令寄存器IR中的指令操作碼字段(令中用來說明指令功能的字段)進行譯碼,以确定該指令應執行什麼操作。

(3)可程式設計邏輯陣列PLA(Programmable Logic Array):用來産生取指令和執行指令所 要的各種微操作控制信号,并經過控制總線CB送往有關部件,進而使計算機完成相應的操作。

3.内部寄存器

雖然不同計算機的CPU所擁有的内部寄存器會有所不同,但一般至少要有以下幾種寄 存器。

1)程式計數器PC(Program Counter)

程式計數器有時也被稱為指令指針(IP,Instruction Pointer),它被用來存放下一條要執 行指令所在存儲單元的位址。在程式開始執行前,必須将它的起始位址,即程式的第一條 指令所在的存儲單元位址送入PC。當讀取指令時,CPU将自動修改PC内容,以便使其保持的總是将要執行的下一條指令的位址。由于大多數指令是按順序執行的,是以修改的辦 法通常隻是簡單地對PC加1。但遇到跳轉等改變程式執行順序的指令時,後繼指令的位址 (即PC的内容)将從指令寄存器IR中的位址字段得到。

2)位址寄存器AR(Address Register)

位址寄存器用來存放正要取出的指令的位址或操作數的位址。由于在記憶體單元和CPU 之間存在着操作速度上的差異,是以必須使用位址寄存器來保持位址資訊,直到記憶體的讀/ 寫操作完成為止。

在取指令時,PC中存放的指令位址送到AR,根據此位址從存儲器中取出指令。 在取操作數時,将操作數位址通過内部資料總線送到AR,再根據此位址從存儲器中取 出操作數;在向存儲器存入資料時,也要先将待寫入資料的位址送到AR,再根據此位址向存儲器寫入資料。

3)資料緩沖寄存器DR(Data Register)“

資料緩沖寄存器用來暫時存放指令或資料。從存儲器讀出時,若讀出的是指令,經DR暫存的指令經過内部資料總線送到指令寄存器IR;若讀出的是資料,則通過内部資料總線 送到運算器或有關的寄存器。同樣,當向存儲器寫入資料時,也首先将其存放在資料緩 寄存器DR中,然後再經資料總線送入存儲器。

來補償CPU和記憶體、外圍裝置之間在操作速度上存在的差異。 可以看出,資料緩沖寄存器DR是CPU和記憶體、外部裝置之間資訊傳送的中轉站,

4)累加器A(Accumulator)

而運算結果通常又放回累加器,其中原有資訊随即被破壞。是以,顧名思義,累加器是 累加器是使用最頻繁的一個寄存器。在執行算術邏輯運算時,它用來存放一個操作數 來暫時存放ALU運算結果的。顯然,CPU中至少應有一個累加器。目前CPU中通常有 第個累加器。當使用多個累加器時,就變成了通用寄存器堆結構,其中任何一個既可存放的操作數,也可存放源操作數。例如本書介紹的80x86系列CPU就采用了這種累加器結構。

5)标志寄存器FLAGS(Flag Register)

标志奇存器有時也稱為程式狀态字(SW,Pogram Staus Word)。它用來存放執行算術 運算指令、邏輯運算指令或測試指令後建立的各種狀态碼内容以及對CPU操作進行控制的 控制資訊。标志位的具體設定及功能随微處理器型号的不同而不同。編寫程式時,可以通 過測試有關标志位的狀态(0或1)來決定程式的流向。

6)寄存器陣列RA(Register Array)

寄存器陣列實際上相當于微處理器内部的RAM。微處理器内部有了這些寄存器後,就 可避免頻繁通路存儲器,縮短指令長度和指令執行時間,提高機器的運作速度,友善程式設計。不同類型CPU的寄存器陣列規模大小會有所不同。

1.3.3 存儲器

這裡介紹的存儲器是指記憶體儲器(又稱為主存或記憶體)。它是微型計算機的存儲和記憶裝置,用來存放指令、原始資料、中間結果和最終結果。

在計算機内部,程式和資料都以二進制形式表示,8位二進制代碼作為一個位元組。為了 便于對存儲器進行通路,存儲器通常被劃分為許多單元,每個存儲單元存放一個位元組的二 進制資訊,每個存儲單元分别賦予一個編号,稱為位址。如圖1.4所示,位址為4005H的 存儲單元中存放了一個8位二進制資訊00111000B。

第一章 微型計算機系統導論【微機原理】

計算機在執行程式時,CPU會自動而連續地從記憶體儲器中取出要執行的指令,并執行 指令規定的操作。這就是說,計算機每完成一條指令,至少有一次為取指令而通路記憶體儲 器的操作。記憶體儲器是計算機主機的一部分,一般把具有一定容量且速度較高的存儲器作 為記憶體儲器,CPU可直接用指令對記憶體儲器進行讀/寫。在微型計算機中,通常用半導體存 儲器作為記憶體儲器。

1.基本概念

(1)位(Bit):二進制資訊的最小機關(0或1),

(2)位元組(Byte):由8位二進制數組成,可以在放在一個存儲單元中。位元組是字的基本組成機關。

(3)字(Word):計算機中作為一個整體來處理和運算的一組二進制數,是位元組的整數信 通常它與計管機内部的寄存器、算術邏輯單元、資料總線寬度相一緻。每個字包括的位數 稱為計管機的字長,是計算機的重要性能名額。目前為了表示友善,常把一個字定義為1 位,把一個雙字定義為32位, (4)記憶體容量,記憶體中存儲單元的總數。通常以位元組為機關,1024(210)位元組記作1KB

220位元組記作1MB

(4)記憶體單元位址,為了能識别不同的單元,每個單元都賦予一個編号,這個編号稱

記憶體單元位址。顯然,各記憶體單元的位址與該位址對應的單元中存放的内容是兩個完全不同的概念,不可混淆。

2.記憶體的操作

CPU對記憶體的操作有兩種:讀或寫。讀操作是CPU将記憶體單元的内容讀入CPU内部, 而寫操作是CPU将其内部資訊送到記憶體單元儲存起來。顯然,寫操作的結果改變了被寫内 存單元的内容,是破壞性的,而讀操作是非破壞性的,即該記憶體單元的内容在資訊被讀出 之後仍保持原資訊不變。

從記憶體單元讀出資訊的操作過程如圖1.5(a)所示。假設将位址為90H的單元中的内容 10111010B(BAH)讀入CPU,其操作過程如下:

(1)CPU經位址寄存器AR将要讀取單元的位址資訊10010000B(90H)送位址總線,經 位址譯碼器選中90H單元:

(2)CPU發出“讀”控制信号。

(3)在讀控制信号的作用下,将90H單元中的内容10111010B(BAH)放到資料總線上, 然後經資料緩沖寄存器DR送入CPU中的有關部件進行處理。

第一章 微型計算機系統導論【微機原理】

向記憶體單元寫入資訊的操作過程如圖1.5(b)所示。假定要将資料0寫入記憶體中位址大 90H的單元,其操作過程如下:

(1) CPU把要寫入單元的位址資訊90H經位址寄存器AR送到位址總線上。

第1題微型計算機系統導論

(2)待寫入的數抑0000000B經資料緩沖寄存器DR放到資料總線上.

(3) CPU發出“寫”控制信号,在該信号的作用下将資料0寫入90H單元。此時,90H 單元中原有的内容10111010B就會被0000000B所橋代,

3.記憶體的分類

按工作方式,記憶體可分為兩大類,随機讀寫存儲器RAM(Random Access Memory)和隻 讀存儲器 ROM(Read Only Memory),

随機讀寫存儲器可被CPU随機地讀寫,它用于存放将要被CPU執行的使用者程式、資料 以及部分系統程式。斷電後,其中存放的所有資訊将丢失

隻讀存儲器中的資訊隻能被CPU讀取,而不能由CPU任意地寫入。斷電後,其中的信 息不會丢失。隻讀存儲器用于存放永久性的程式和資料,如系統引導程式、監控程式、操 作系統中的基本輸入/輸出管理程式(BIOS)等。

1.3.4 I/O接口和輸入輸出裝置

IO接口是微型計算機與輸入/輸出裝置之間資訊交換的橋梁,

IO裝置是微型計算機系統的重要組成部分。程式、資料及現場資訊要通過輸入裝置輸 入給計算機。計算機的處理結果要通過輸出裝置輸出,以便使用者使用。常用的輸入裝置有 鍵盤、滑鼠、數字化儀、掃描器、AD轉換器等。常用的輸出裝置有顯示器、列印機、繪 圖儀、D/A轉換器等。

外設的種類很多,有機械式、電子式、機電式、光電式等。一般來說,與CPU相比 外設的工作速度較低。外設處理的資訊有數字量、模拟量、開關量等,而計算機隻能處理 數字量。另外,外設與微型計算機工作的邏輯時序也可能不一緻。由于上述原因,微型機 與外設之間的連接配接及資訊的交換不能直接進行,而需要設計一個I/O接口作為微型機與外設 之間的橋梁。IO接口也稱為IO擴充卡,不同的外設必須通過不同的I/O接口才能與微機 相連。是以,IO接口是微型計算機應用系統不可缺少的重要組成部件。任何一個微機應用 系統的研制和開發,實際上都是1/O接口的研制和開發。是以,I/O接口技術是“微型計算 機原理”課程要重點讨論的内容之一,這将在第7和第8兩章作詳細介紹。

1.4 微型計算機軟體系統

所謂軟體,就是為了管理、維護計算機以及為完成使用者的某種特定任務而編寫的各種 程式的總和。計算機的工作就是運作程式,通過逐條地從存儲器中取出程式中的指令并執 行指令規定的操作而實作某種特定的功能,是以,軟體是微型計算機系統不可缺少的組成 部分。微型計算機的軟體包括系統軟體和使用者(應用)軟體。

1.4.1 系統軟體

系統軟體是指不需要使用者幹預的,為其他程式的開發、調試以及運作等建立一個良好 環境的程式,主要包括作業系統OS(Operating System)和系統應用程式。

1.4.2 使用者(應用)軟體

使用者(應用)軟體是和系統軟體相對應的,是使用者為解決各種實際問題,利用計算機以及 它所提供的各種系統軟體,編制解決各種實際問題的程式,如資料庫管理系統、辦公自動化軟體等。可用來編寫使用者軟體的語言有機器語言、彙編語言和進階語言等。

1.5 微型計算機的工作過程

在對微型計算機的基本組成有了基本了解之後,本節通過在簡化的模型機(8位機)上運作一個簡單的程式來說明微型計算機的工作過程。

表1.1為在該模型機上完成“6+5”操作所需的機器語言程式和彙編語言程式,假設該機器語言程式從記憶體中位址為0000H的單元開始存放。機器語言程式是計算機能夠了解和直接執行的程式,其指令是用二進制代碼表示和存儲的。彙編語言程式是用助記符語言表示的程式,計算機不能直接“識别”,需要經過“彙程式設計式”把它轉換為機器語言程式後才能執行。機器語言指令和彙編語言指令是一一對應的,都是面向機器的,不 同的機器有着自己獨有的機器語言指令系統和彙編語言指令系統。進階語言是不依賴于具體機型隻面向過程的程式設計語言,由它所編寫的進階語言程式,需經過編譯程式或解釋 程式的編譯或解釋生成機器語言程式後才能執行。由此可見,不論程式是用什麼語言編寫的,都必須首先将其轉換為計算機能直接識别和執行的機器語言程式,然後才能由CPU逐條讀取并執行。

表1.1完成“6+5”操作所需的機器語言程式和彙編語言程式

記憶體單元位址 機器語言程式 彙編語言程式 指令功能說明
0000H 0001H 10110001 00000110 MOV A,06H 雙位元組指令。将數字6送累加器A
0002H 0003H 00001000 00000101 ADD A,05H 雙位元組指令。将數字5與累加器A中的内容相加,結果存放在累加器A中
0004H 1111110 HLT 停機指令

微機的工作過程就是不斷地從記憶體中取出指令并執行指令的過程。當開始運作程式時,首先應把第一條指令所在存儲單元的位址賦予程式計數器PC(Program Counter),然後機器 就進入取指階段。在取指階段,CPU從記憶體中讀出的内容必為指令,于是,資料緩沖寄存 器的内容将被送至指令寄存器IR,然後由指令譯碼器對IR中指令的操作碼字段進行譯碼, 并發出執行該指令所需要的各種微操作控制信号。取指階段結束後,機器就進入執行指令 階段,這時CPU便執行指令所規定的具體操作。當一條指令執行完畢後,即轉入下一條指 令的取指階段。這樣周而複始地循環,直到遇到暫停指令或程式結束為止。

對于所有的機器指令而言,取指階段都是由一系列相同的操作組成的,所用的時間都 是相同的。而執行指令階段由不同的事件順序組成,它取決于被執行指令的類型,是以, 不同指令間執行階段的時間存在很大差異。

需要說明的是,指令通常由操作碼(Operation Code)和操作數(Operand)兩部分組成。操 作碼表示該指令完成的操作,而操作數表示參加操作的數本身或操作數所在的位址。指令 根據其所含内容的不同而有單位元組指令、雙位元組指令以及多位元組指令等,是以,計算機在執行一條指令時,就可能要處理一到名個不第位元組數目的代碼資訊,包括操作碼、操作數或操作數的位址。

假定完成“6+5”操作所需的機器語言程式(如表1.1所示)已由輸入裝置存放到記憶體

如圖1.6所示。下面進一步說明微機内部執行該程式的具體操作過程。

第一章 微型計算機系統導論【微機原理】

開始執行程式時,首先将第一條指令的首位址0000H送程式計數器PC,然後就進入第 條指令的取指階段,其操作過程如圖1.6所示。下面對圖示操作過程進行詳細說明。

①把PC内容00H送位址寄存器AR。

②PC内容送入AR後,PC自動加1,即由0000H變為0001H,以使PC指向下一個要讀取的記憶體單元。注意,此時AR的内容并沒有變化。

③把位址寄存器AR的内容0000H放在位址總線上,并送至存儲器系統的位址譯碼電 路(圖中未畫出),經位址譯碼選中相應的0000H單元:

④CPU發出存儲器讀指令。

⑤在讀指令的控制下,把選中的000H單元的内容即第一條指令的操作碼B1H讀到資料總線DB上。

⑥把讀出的内容B1H經資料總線送到資料緩沖寄存器DR。

⑦指令譯碼。因為取出的是指令的操作碼,故資料緩沖寄存器DR中的内容被送到找 令寄存器IR,然後再送到指令譯碼器ID,經過譯碼,CPU“識别”出這個操作碼代表的持 令,于是經控制器發出執行該指令所需要的各種控制指令。

接着進入第一條指令的執行階段。經過對操作碼B1H的譯碼,CPU知道這是一條把了 單元中的操作數送累加器A的雙位元組指令,是以,執行該指令的操作就是從下一個存 所示。下面對圖示執行過程進行詳細說明。 單元中取出指令第二個位元組中的操作數06H,并送入累加器A。該指今的執行過程如圖1.7所示。下面對圖示執行過程進行詳細說明。

①把PC内容01H送位址寄存器AR

②PC内容送入AR後,PC自動加1,即由0001H變為0002H。注意,此時AR的内 容0001H并沒有變化

③把位址寄存器AR的内容0001H放到位址總線上,并送至存儲器系統的位址譯碼電 路,經位址譯碼選中相應的0001H單元。

④CPU發出存儲器讀指令。

⑤在讀指令的控制下,把選中的0001H單元的内容06H放到資料總線DB上。

⑥把讀出的内容06H經資料總線送到資料緩沖寄存器DR。

⑦資料緩沖寄存器DR的内容經内部資料總線送到累加器A。于是,第一條指令執行 完畢,操作數06H被送到累加器A中。