官术网_书友最值得收藏!

1.2 微型計算機基本結構

1946年,美籍匈牙利數學家馮·諾依曼(John Von Neumann)等人在一篇名為《關于電子計算儀器邏輯設計的初步探討》的論文中,第一次提出了計算機組成和工作的基本思想。其主要思想是:

① 計算機應由運算器、控制器、存儲器、輸入和輸出設備這五部分組成。

② 存儲器不但能存放數據,而且也能存放程序。數據和指令均以二進制數的形式存放,計算機具有區分指令和數據的能力。

③ 編好的程序先存入存儲器,在指令計數器的控制下,自動高速運行(執行程序)。

以上幾點可歸納為“程序存儲,程序控制”的構思。數十年來,雖然計算機已取得了驚人的進展,相繼出現了各種結構形式的計算機,但究其本質仍屬馮·諾依曼結構體系。

1.2.1 微型計算機基本結構

微型計算機是由硬件(Hardware)和軟件(Software)兩大部分組成的。硬件是指那些為組成計算機而有機聯系的電子、電磁、機械、光學元件、部件或裝置的總和,它是有形的物理實體。軟件是相對于硬件而言的,從狹義的角度看,軟件包括計算機運行所需要的各種程序;而從廣義角度講,軟件還包括手冊、說明書和有關資料。

1.微型計算機硬件結構

微型計算機在硬件上由運算器、控制器、存儲器、輸入設備及輸出設備五大部分組成,如圖1-2所示。

圖1-2 微型計算機硬件結構框圖

運算器是計算機處理信息的主要部分;控制器控制計算機各部件自動地、協調一致地工作;存儲器是存放數據與程序的部件;輸入設備用來輸入數據與程序,常用的輸入設備有鍵盤、光電輸入機等;輸出設備將計算機的處理結果用數字、圖形等形式表示出來,常用的輸出設備有顯示終端、數碼管、打印機、繪圖儀等。

通常把運算器、控制器、存儲器這三部分稱為計算機的主機,而輸入、輸出設備則稱為計算機的外部設備(簡稱外設)。由于運算器、控制器是計算機處理信息的關鍵部件,所以常將它們合稱為中央處理單元CPU(Central Process Unit)。

2.微型計算機的軟件

上面所述的微型計算機設備稱為硬件。計算機能夠脫離人的直接控制而自動地操作與運算,還必須要有軟件。軟件是指使用和管理計算機的各種程序(Program),而程序是由一條條指令(Instruction)組成的。程序的集合構成了計算機中的軟件系統。

(1)指令

控制計算機完成各種操作的命令稱為指令。

例如,將寄存器A的內容與數38相加的指令稱為加法指令,書寫形式為

            ADD      A,#38

指令分成操作碼和操作數兩大部分。操作碼表示該指令執行何種操作,操作數表示參加運算的數據或數據所在的地址。

(2)程序

為了計算一個數學式,或者控制一個生產過程,需要事先制定計算機的計算步驟或操作步驟。計算步驟是由一條條指令來實現的。這種一系列指令的有序集合稱為程序。編制程序的過程稱為程序設計。

例1-1】 計算63+56+36+14=?

】 編制的程序如下:

            MOV      A,#63     ;數63送入寄存器A
            ADD      A,#56     ;A的內容63與數56相加,其和119送回A
            ADD      A,#36     ;A的內容119與數36相加,其和155送回A
            ADD      A,#14     ;A的內容155與數14相加,其和169保存在A中

為了使機器能自動進行計算,要預先用輸入設備將上述程序輸入計算機存放。計算機啟動后,在控制器的控制下,CPU按照順序依次取出程序的一條條指令,加以譯碼和執行。程序中的加法操作是在運算器中進行的。運算結果可以保存在A中,也可以通過輸出設備從計算機中輸出。

如上所述,計算機的工作是由硬件、軟件緊密結合、共同完成的,這與一般的數字電路系統不同。

(3)機器語言、匯編語言和高級語言

編制程序可使用匯編語言或高級語言。

上面介紹的用助記符(通常是指令功能的英文縮寫)表示操作碼,用字符(字母、數字、符號)表示操作數的指令稱為匯編指令。用匯編指令編制的程序稱為匯編語言程序。這種程序占用存儲器單元較少,執行速度較快,能夠準確掌握執行時間,可實現精細控制,因此特別適用于實時控制。然而匯編語言是面向機器的語言,各種計算機的匯編語言是不同的,必須對所用機器的結構、原理和指令系統比較清楚才能編寫出它的各種匯編語言程序,而且不能通用于其他機器,這是匯編語言的不足之處。

高級語言是面向過程的語言,常用的高級語言有BASIC、FORTRAN、PASCAL等。用高級語言編寫程序時主要著眼于算法,而不必了解計算機的硬件結構和指令系統,因此易學易用。高級語言是獨立于機器的,一般來說,同一個程序可在任何種類的機器中使用。高級語言適用于科學計算、數據處理等。

現在在計算機應用編程中,出現了另外一種語言——C語言,很多人將它稱之為“中級語言”。C語言是一種編譯型程序設計語言,它兼顧了多種高級語言的特點,并具備了匯編語言的功能。C語言是為了能夠勝任系統程序設計的要求而開發的,因此有很強的表達能力,能夠用于描述系統軟件各方面的特性。它具有較高的可移植性,提供了種類豐富的運算符和數據類型,極大地方便了程序設計。同時它有功能豐富的庫函數,運算速度快、編譯效率高,且可以直接實現對系統硬件的控制。它具有完善的模塊程序結構,在軟件開發中可以采用模塊化程序設計方法。目前,使用C語言進行程序設計已成為軟件開發的主流之一。

計算機中只能存放和處理二進制信息,所以無論是高級語言程序還是低級語言程序,都必須轉換成二進制代碼形式后才能送入計算機,這種二進制代碼形式的程序就是機器語言程序。二進制代碼形式的指令又稱為機器指令或機器碼。匯編指令與機器指令具有一一對應的關系。表1-1是用匯編語言和機器語言編寫的同一段程序。

表1-1 匯編語言和機器語言對照表

(4)匯編、編譯與解釋程序

匯編語言程序與高級語言程序又統稱為源程序,而機器語言程序稱為目標程序。

機器語言只有0、1 兩個符號,用它來直接編寫程序十分困難。因此,往往先用匯編語言或高級語言編寫程序,然后再轉換成目標程序。將匯編語言程序翻譯成目標程序的過程稱為匯編,匯編時用到的軟件稱為匯編程序。高級語言轉換成機器語言的工作只能由計算機完成,轉換時所用的軟件稱為編譯程序或解釋程序。這兩種程序都遠比匯編程序復雜,占用存儲器單元多,這是應用高級語言的缺點。

編譯與解釋程序是系統軟件的重要分支。

若把表1-1所示的目標程序存入容量為256個單元的存儲器,且從地址為00000000的單元開始存放,則存放順序如圖1-3所示。

圖1-3 存儲器中的程序

指令機器碼第一個字節所在單元的地址(00000000、00000010、00000100、00000110)稱為指令地址。第一條指令的地址(00000000)稱為該程序的首地址,又稱程序的入口地址。帶有二進制地址和機器碼的程序示例如下:

                  地址             機器碼匯編                     指令
            00000000     01110100  00111111      MOV           A,#63
            00000010     00100100  00111000      ADD           A,#56
            00000100     00100100  00100100      ADD           A,#36
            00000110     00100100  00001110      ADD           A,#14

二進制位數多,書寫和識讀不便,所以地址和機器碼實際上多以十六進制數表示。

(5)操作系統

操作系統是系統軟件中最重要的軟件。

計算機是由硬件和軟件組成的一個復雜系統,可供使用的硬件和軟件均稱為計算機的資源。要讓計算機有條不紊地工作,就需要對這些資源進行管理。用于管理計算機軟、硬件資源,監控計算機及程序的運行過程的軟件系統,稱為操作系統(Operation System)。操作系統對計算機是至關重要的,沒有它計算機就不能啟動。目前廣泛使用的微機操作系統有DOS(Disk Operation System)、Windows、Linux、UNIX等。DOS是單用戶操作系統,Windows是具有圖形界面、操作方便的系統,UNIX是具有多用戶、多任務功能的操作系統,Linux是目前日趨流行的操作系統。

系統軟件還包括連接程序、裝入程序、診斷與調試程序等。連接程序能把要執行的程序與庫文件及其他已編譯的程序模塊連在一起,成為機器可以執行的程序;裝入程序能把程序從磁盤中取出來并裝入內存,以便執行;調式程序能夠讓用戶監督和控制程序的執行過程;診斷程序能在機器啟動過程中,對機器的硬件配置和完好性進行監測和診斷。

(6)應用軟件

應用軟件(即應用程序)是為了完成某一特定任務而編制的程序,其中有一些是通用的軟件,如數據庫系統(DBS)、辦公自動化軟件Office、圖形圖像處理軟件PhotoShop等。

3.硬件和軟件的關系

微機系統是硬件和軟件有機結合的整體。計算機的硬件和軟件是密不可分但又相互獨立的。硬件是計算機工作的基礎,沒有硬件的支持,軟件將無法正常工作;軟件是計算機的靈魂,沒有軟件,硬件就是一個空殼,不能做任何工作。沒有軟件的計算機稱為裸機,操作系統給裸機以靈魂,使它成為真正可用的工具。一個應用程序在計算機中運行時,受操作系統的管理與監控,在必要的系統軟件的協助之下,完成用戶交給它的任務??梢姡銠C是微機系統的物質基礎,操作系統為它提供了一個運行環境。系統軟件中,各種語言處理程序為應用軟件的開發和運行提供了方便。用戶并不直接和裸機打交道,而是使用各種外設,如鍵盤和顯示器等,通過應用軟件與計算機交流信息。

1.2.2 微處理器、微型計算機、微型計算機系統

微處理器、微型計算機、微型計算機系統是不同的概念,有必要對它們加以說明。

1.微處理器(CPU)

微處理器是利用微電子技術將計算機的核心部件(運算器和控制器)集中做在一塊集成電路上的一個獨立芯片。它具有解釋指令、執行指令和與外界交換數據的能力。該芯片稱為微處理器或微處理機(Microprocessor),也稱中央處理器(CPU,Central Processing Unit)。在目前情況下,無論哪種CPU,內部基本組成總是大同小異的,其內部包括三部分:運算器、控制器、內部寄存器陣列(工作寄存器組)。典型的8位微處理器結構如圖1-4所示。

圖1-4 典型的8位微處理器結構圖

(1)運算器

運算器是對信息進行加工、處理及運算的邏輯部件。它由算術邏輯運算單元ALU、累加器A、暫存寄存器TR、標志寄存器F、二-十進制調整電路等組成。新型CPU的運算器還可以完成各種高精度的浮點運算。

① 算術邏輯運算單元和累加器

算術邏輯運算單元ALU是微型計算機執行算術運算和邏輯運算的主要部件。它有兩個輸入端:一個輸入端與累加器A相連,另一個輸入端與暫存器TR相連。ALU的輸出端與內部總線相連。

累加器A是一個8位寄存器,很多8位雙操作數運算都要用到累加器A。例如,執行“ADD A,#24H”、“ADD A,R0”、“ANL A,R1”等指令時,一個操作數來自A,運算結果又送回A,所以累加器A是一個使用十分頻繁的寄存器。另一個操作數可來自CPU內部的工作寄存器,也可來自存儲器或接口電路。無論是哪一種情況,它總是通過內部總線送來的。由于總線只能分時傳送數據,故用暫存寄存器在內部總線與ALU之間起緩沖作用。在執行上面的指令時,內部總線先傳送一個操作數至TR,然后由控制器控制ALU對A和TR中的內容進行運算,運算結果再通過內部總線傳送到累加器A。

② 標志寄存器

標志寄存器F又稱為狀態寄存器,用來存放ALU運算結果的一些特征,如溢出、進位/借位、輔助進位/借位、奇偶、結果為0等。

③ 二-十進制調整電路

計算機在進行二-十進制數運算時,要對運算結果進行調整,這由二-十進制(BCD)調整電路來實現。

(2)控制器

控制器包括指令寄存器IR、指令譯碼器ID和定時與控制電路三部分。

計算機工作時,由定時與控制電路按照一定的時間順序發出一系列控制信號,使計算機各部件能按一定的時間節拍協調一致地工作。

一條指令的執行分成取指令和執行指令兩個階段。具體步驟如下:

① 從存儲器中取回該指令的機器碼,送指令寄存器暫存,直至該指令執行完畢。

② 由指令譯碼器譯碼,以識別該指令需要實施何種操作。

③ 由定時與控制電路產生一系列控制信號,送到計算機各部件以執行這一指令。

定時與控制電路除了接收譯碼器送來的信號外,還接收CPU外部送來的信號,如中斷請求信號、復位信號等,這些信號由控制總線送入。定時與控制電路產生的控制信號一部分用于CPU內部,控制CPU各部件的工作,另一部分通過控制總線輸出,用于控制存儲器和I/O接口電路的工作。

控制器是計算機控制和調度的中心,計算機的各種操作都是在控制器的控制下進行的。

(3)內部寄存器陣列

內部寄存器陣列由多個功能不同的寄存器構成,用以存放參加處理和運算的操作數、數據處理的中間結果和最終結果等。寄存器可分為專用寄存器和通用寄存器。專用寄存器的作用是固定的,如堆棧指針寄存器、標志寄存器、指令指針寄存器等;而通用寄存器可由編程者依據需要規定其用途。多次使用的操作數和中間結果可暫時存放在寄存器中,避免對存儲器的頻繁訪問,從而縮短指令執行時間,同時也給編程者帶來很大的方便。

在使用CPU時,用戶主要關注的是,在了解CPU功能的基礎上對CPU內部寄存器的使用。因此,要正確使用CPU,就必須掌握CPU內部寄存器的名字(符號)、大?。ù娣诺亩M制位數)及特殊功能。

程序計數器(PC,Program Counter)是管理程序執行次序的特殊功能寄存器。程序的執行有兩種情況——按照順序執行和跳轉。為此,程序計數器具有下述三種功能:

① 復位功能:計算機通電時有上電復位,運行時有操作復位(按鈕復位)。復位時計算機進入初始狀態,PC的內容將自動為初值。

② 計數功能:CPU讀取一條指令時,總是將PC的內容作為指令地址,并經地址總線送到存儲器,從而從該地址單元中取回指令的機器碼,送到指令寄存器。同時,每取回指令代碼的一個字節,PC的內容自動加1(加法計數)。因此,在取回指令進入執行指令的階段,PC的內容已是按順序排列的下一條指令的地址。

③ 直接置位功能:PC也能直接接收內部總線送來的數據,并用該數據取代其原來的內容。

2.微型計算機

微型計算機由CPU、存儲器、輸入/輸出(I/O)接口電路構成,各部分芯片之間通過總線(Bus)連接,如圖1-5所示。

圖1-5 微型計算機結構

(1)CPU

CPU是微型計算機的核心,它的性能決定了整個微型計算機的各項關鍵指標。微處理器本身不能構成獨立工作的系統,也不能獨立執行程序,必須配上存儲器、外部輸入/輸出接口構成一臺微型計算機方能工作。CPU的基本問題已在前面說明。

(2)存儲器

存儲器是微型計算機的重要組成部分,是用來存放程序和數據的,計算機有了存儲器才具備記憶能力。

存儲器是由許多存儲單元組成的,存儲單元中存放的是二進制數。每個存儲器單元可以存放一個8位二進制數,即一個字節(Byte,簡寫為B)的二進制信息。一個存儲器單元存放的信息稱為該存儲單元的內容。數據和程序均是以二進制數形式存放的,不論是8位還是16位機,都是以8位二進制數作為一個字節存放在存儲器中的。

為了區分不同的存儲單元,按一定的規律和順序對每個存儲單元進行排列編號,這個編號稱為存儲單元的地址。在計算機中,地址也是用二進制數來表示的,每個存儲單元具有一個唯一的地址。對存儲單元的操作就是對該地址的操作。關于對存儲器的編址問題,將在第8章詳細討論。

從應用的角度講,計算機工作時,CPU對存儲器的操作只有“讀”和“寫”操作。CPU將數據存入存儲器的過程稱為“寫”操作,CPU從存儲器中取數據的過程為“讀”操作。寫入存儲單元的數據取代了原數據,而且在下一個新的數據寫入之前一直保留著,即存儲器具有記憶的功能。在執行“讀”操作后,存儲單元中原有的內容不變,即存儲器的讀出是非破壞性的。

(3)輸入/輸出接口電路

輸入/輸出接口電路是微型計算機的重要組成部件,是微型計算機連接外部輸入、輸出設備及各種控制對象并與外界進行信息交換的邏輯控制電路。由于外設種類繁多,其運行速度、數據格式、電平等各不相同,常常與CPU不一致,所以要用I/O接口作為橋梁,起到信息轉換與協調的作用。

微型計算機是通過I/O接口電路與外設相連的,CPU只有通過I/O電路才能與外設傳送信息,只要選中I/O電路就能找到相應的外設。從應用的角度講,計算機工作時,CPU對I/O接口的操作只有“讀”和“寫”。CPU對輸入口的操作稱為“讀操作”,對輸出口的操作稱為“寫操作”,在操作時是對所選擇的I/O接口的口地址的操作。因此CPU必須對I/O接口電路編址,這種編址就是I/O接口的地址。每個I/O接口所擁有的“地址”也是唯一的和固定的。

(4)總線

所謂總線,就是在微型計算機各芯片之間或芯片內部各部件之間傳輸信息的一組公共通信線。微型計算機采用總線結構后,芯片之間不需要單獨走線,這就大大減少了連接線的數量。采用總線結構后,系統中各功能部件間的相互關系轉變為各部件面向總線的單一關系,符合總線標準的設備都可以連接到系統中,使系統功能得到擴展。

微型計算機總線的種類非常多,從使用的角度可分為內部總線、元件級總線、系統總線、外部總線四大類,在微型計算機中使用比較多的是元件級總線。計算機元件級總線包括地址總線AB(Address Bus)、數據總線DB(Data Bus)、控制總線CB(Control Bus)三種。

① 地址總線:地址總線是CPU用來向存儲器或I/O接口傳送地址信息的,是三態單向總線。地址總線的寬度決定了CPU可直接尋址的內存容量。8條地址線用A7~A0表示,A7為最高位地址線,A0為最低位地址線,最大尋址范圍為28=256;16條地址線用A15~A0表示,A15為最高位地址線,A0為最低位地址線,最大尋址范圍為216=65536=64K。通過地址總線確定要操作的存儲單元或I/O接口的地址。

② 數據總線:數據總線是CPU與存儲器及外設交換數據的通路,是三態雙向總線。數據總線的位數與微處理器的位數相同,一般有8位、16位、32位等。8位數據線用D7~D0表示,D7為最高有效位,D0為最低有效位;16位數據線用D15~D0表示,D15為最高有效位,D0為最低有效位。最高有效位用MSB表示,最低有效位用LSB表示。

③ 控制總線:控制總線是用來傳輸控制信號的,傳送方向依據具體控制信號而定,如CPU向存儲器或I/O接口電路輸出讀信號、寫信號、地址有效信號,而I/O接口部件向CPU輸入復位信號、中斷請求信號等??刂瓶偩€的寬度根據系統需要而定。

將微處理器、存儲器、I/O接口電路以及簡單的輸入、輸出設備組裝在一塊印制電路板上,稱為單板微型計算機,簡稱單板機。將微處理器、存儲器、I/O接口電路集成在一塊芯片上,稱為單片微型計算機,簡稱單片機。

3.微型計算機系統

以微型計算機為主體,配上外部輸入/輸出設備、電源、系統軟件一起構成應用系統,稱為微型計算機系統。

圖1-6概括了微處理器、微型計算機、微型計算機系統三者的關系。

圖1-6 微型計算機系統結構

1.2.3 微型計算機的主要術語及性能指標

一臺微機性能的優劣,主要是由它的系統結構、硬件組成、系統總線、外設及軟件配置等因素來決定的。具體體現在以下幾個方面。

(1)位

開關的閉合或電位電平的高低,可以代表兩種狀態:0 和1。因此可以把一個開關或電位稱之為一“位”,用bit表示。在計算機中,位是計算機中所能表示的最基本和最小的數據單位,是一個二進制數。

(2)字節(Byte)

一個開關可以表示“0”或“1”兩種狀態,兩個開關可以表示“00”、“01”、“10”、“11”四種狀態,也就是可以表示0到3,計算機中通常用8位同時計數,故可以表示0~255。這8位就稱之為一個字節(Byte),1Byte=8bit。

在微型計算機中,數據是以字節為單位進行存放的。通常把1024個字節稱為1KB(1KB=1024Byte,1MB=1024×1024Byte=1024KB,1GB=1024MB,1TB=1024GB)。

(3)字(word)

字是由兩個字節構成的,即表示16位二進制數。

(4)字長

指計算機能一次處理二進制數碼位數的多少,它與微處理器內部寄存器及CPU內部數據總線的寬度是一致的。如MCS-51單片機是8位機,字長是8位;以80586為微處理器的計算機是32位機,其字長是32位。

字長越長,所表示的數據精度就越高。在完成同樣精度的數據運算時,字長較長的微處理器比字長短的微處理器運算速度快。大多數微處理器內部的數據總線與微處理器外部引腳的寬度是相同的,但也有少數例外,例如Intel 8088微處理器的內部數據總線是16位,而芯片外部數據引腳只有8位;Intel 80386SX微處理器內部是32位數據總線,而外部數據引腳是16位。對這類芯片仍然以它們內部數據總線的寬度為字長,但把它們稱為“準XX位”芯片。例如8088被稱為“準16位”微處理器芯片,80386被稱為“準32位”微處理器芯片。

(5)主存容量

主存容量是主存儲器所能存儲的二進制信息的總量,它反映了微機處理信息時容納數據量的能力。主存容量越大,微機工作時主、外存儲器間的交換次數越少,處理速度就越快。主存容量常以字節(Byte)為單位,并定義KB、MB、GB、TB為派生單位。

另外,在微型計算機中還有指令執行時間、系統總線、外設配置、系統軟件配置等性能指標需要關注。

主站蜘蛛池模板: 肇源县| 墨脱县| 芦溪县| 布尔津县| 平度市| 凯里市| 枣阳市| 丘北县| 罗城| 遂溪县| 高陵县| 城步| 望江县| 山阳县| 龙南县| 辉县市| 梅州市| 曲水县| 金山区| 南京市| 陆河县| 衡南县| 都江堰市| 乌拉特前旗| 桓台县| 孟连| 景德镇市| 吐鲁番市| 桐梓县| 大化| 东阿县| 双牌县| 乐至县| 通榆县| 东乌珠穆沁旗| 吉木萨尔县| 镇雄县| 淮阳县| 阳江市| 尼勒克县| 丹棱县|