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

1.4 微型計算機基本工作原理

計算機的結構大體有兩類:一是哈佛(Harvard)結構,二是馮·諾依曼(Von Neumann)結構(也稱普林斯頓結構)。

哈佛結構是由哈佛大學的物理學家A.Howard提出的,世界上第一臺通用計算機ENIAC,就采用了哈佛結構。哈佛結構是程序和數(shù)據(jù)空間獨立的體系結構,不僅采用不同的存儲模塊,而且通過各自的總線進行訪問。其優(yōu)點是可以并行訪問程序和數(shù)據(jù),從而提升了運行效率;其缺點是硬件結構復雜,對輸入/輸出設備的連接與處理要求高。

馮·諾依曼結構是由美籍匈牙利數(shù)學家馮·諾依曼提出的。相對于哈佛結構,其程序和數(shù)據(jù)共享存儲空間和總線,由此帶來的缺點是,將分時實現(xiàn)程序和數(shù)據(jù)的訪問,影響了數(shù)據(jù)處理的速度;但其顯著的優(yōu)點是結構簡單、易于實現(xiàn)。

馮·諾依曼結構的基本思想的主要內容是:

(1)計算機應由運算器、控制器、存儲器、輸入和輸出設備等五大部分組成。

(2)存儲器不但能存放數(shù)據(jù),也能存放程序。計算機具有區(qū)分指令和數(shù)據(jù)的能力。而且數(shù)據(jù)和指令均以二進制數(shù)形式存放。

(3)將事先編好的程序存入存儲器中,在指令計數(shù)器控制下,自動高速運行(執(zhí)行程序)。

由于體系結構實現(xiàn)的便利和總線結構的易于擴展,使得馮·諾依曼結構成為PC機的主流體系標準。本書的主要內容也是針對馮·諾依曼體系結構的微型計算機。

微型計算機系統(tǒng)由硬件和軟件兩大部分組成。硬件是指那些為組成計算機而有機聯(lián)系的電子、電磁、機械、光學的元件、部件或裝置的總和;軟件包括計算機運行所需的各種程序。硬件和軟件系統(tǒng)本身還可細分為更多的子系統(tǒng),如圖1-3所示。

圖1-3 微型計算機系統(tǒng)組成

1.4.1 微型計算機硬件系統(tǒng)組成

通用微型計算機的硬件系統(tǒng)由五部分組成:① 微處理器(CPU);② 內存儲器(RAM、ROM);③ 總線(地址總線AB、數(shù)據(jù)總線DB、控制總線CB);④ 接口芯片(I/O接口);⑤ 輸入/輸出設備(外設,I/O)。

圖1-4表示典型的通用微型計算機硬件系統(tǒng)結構。

圖1-4 通用微型計算機硬件系統(tǒng)結構

1.微處理器CPU

微處理器是整個微型計算機硬件的控制指揮中心。不同型號的微型計算機性能的差別,首先體現(xiàn)在微處理器性能的不同。微處理器性能又與它的內部結構、硬件配置有關。但無論哪種微處理器,基本部件是相同的,可分為運算部分和控制部分。運算部分由算術邏輯單元ALU(Arithmetic Logic Unit)、累加器ACC(ACCumulator)、狀態(tài)寄存器FR(Flags Register)和通用寄存器組RS(Register Series)組成;控制部分則包括程序計數(shù)器PC(Program Counter)、指令寄存器IR(Instructional Register)、指令譯碼器ID以及控制邏輯PLA等。圖1-5是通用微處理器基本組成示意圖。

圖1-5 通用微處理器組成示意圖

(1)ALU是微型計算機運算部分的核心。在控制信號作用下它可完成加、減、乘、除四則運算,還可進行與、或、非和異或等邏輯運算。

(2)ACC是通用寄存器中的一個,通用微型計算機中至少包含一個ACC。它往往提供送入ALU的兩個運算操作數(shù)中的一個,而運算后的結果通常也是由ALU送回ACC。因為它跟ALU聯(lián)系特別密切,常把它歸在ALU中,而不歸在通用寄存器組中。

(3)RS用來加快運算和處理速度。訪問寄存器要比訪問存儲器快得多,因此在需要重復使用某些數(shù)據(jù)或中間結果時,可將其暫時存放在寄存器中,避免反復訪問存儲器,以提高執(zhí)行速度。

(4)FR記錄計算機運行的某些重要狀態(tài),必要時,根據(jù)這些狀態(tài)控制CPU的運行。所謂“狀態(tài)”是指:運算是否發(fā)生溢出,運算結果是否為零,運算結果是否為負,是否有進位等。

(5)堆棧和堆棧指針SP。堆棧是一組寄存器或指定存儲器中的某一區(qū)域。在計算機中廣泛使用“堆棧”作為信息的一種存取方式,尤其是在子程序(過程)調用和中斷處理中經(jīng)常使用。在堆棧中信息的存入(進棧Push)與取出(彈出Pop)過程好像貨物堆放的過程,最先存放的貨物堆在底部,而取貨時只能將最后存放的先取出;最后存放的貨物,堆放在頂部,因而最先取出。這種方式稱為“后進先出”(LIFO)或稱“先進后出”(FILO)。

堆棧指針SP(Stack Point)用來指示棧頂,其初值由程序員設定。在堆棧操作中,SP值會自動變化,其變化方向依據(jù)堆棧的類型而定。堆棧可分為向上生長型和向下生長型。一般來講,對于向下生長型堆棧,將數(shù)據(jù)壓入堆棧時,SP自動減1,向上浮動而指向新的棧頂;當數(shù)據(jù)從棧中彈出時,SP自動加1,向下浮動而指向新的棧頂。

(6)PC指示當前要執(zhí)行的指令地址碼。程序中的各條指令一般是按執(zhí)行的順序存放在存儲器中。開始時,PC中的地址碼為該程序第一條指令所在的地址編號。每取出一條指令,PC將自動加上該指令所占字節(jié)長度以指向第二條指令所在地址,這樣就能順序執(zhí)行程序中的各條指令。在需要改變執(zhí)行順序時,PC根據(jù)程序的安排,設置新的值以指向新的指令地址。因此,PC是維持微處理器有序地執(zhí)行程序的關鍵寄存器,是任何微處理器不可缺少的。

(7)IR、ID和控制邏輯PLA。這部分是整個微處理器的指揮控制中心,對協(xié)調整個微型計算機有序工作極其重要。它根據(jù)用戶預先編好的程序,依次從存儲器中取出各條指令,放在指令寄存器中,通過指令譯碼(分析)確定應該進行什么操作,然后通過控制邏輯在確定的時間,向確定的部分發(fā)出控制信號。這部分對微處理器的設計者來說是核心部分,而使用微處理器的用戶可以不必過多關心它。

需要指出的是,上文所述的CPU基本結構主要是針對通用處理器(典型的如Intel和AMD的CPU)的,目前應用廣泛的還有微控制器MCU(典型的如MCS-51單片機)、數(shù)字信號處理器DSP(典型的如TMS320VC5000)和嵌入式微處理器(典型的如ARM9或ARM Cortex A-8),它們在各自的系統(tǒng)中承擔主控處理器的作用,核心部分和通用處理器類似,但結構功能略有差異。

通用處理器可按體系結構分為IA-16(Intel Architecture,16-bit)、IA-32和IA-64(EM64T)。其中IA-16包括8088、8086、80286及兼容的16位微處理器,IA-32包括從80386到P4及兼容的32位微處理器,IA-64(EM64T)為目前迅猛發(fā)展中的64位微處理器。IA-16和IA-32微處理器也可合稱為x86。從IA-16到IA-64(EM64T)的發(fā)展,主要體現(xiàn)在內部數(shù)據(jù)線、外部數(shù)據(jù)線、外部地址線寬度的提升,時鐘頻率的提高,指令執(zhí)行速度的提高,CPU尋址方式、指令處理方式的改進等方面,可以說,它是高性能微處理器的發(fā)展之路。

劃分微處理器的另一種方式是依據(jù)其使用的指令系統(tǒng),可分為復雜指令集CISC(Complex Instruction Set Computing)和精簡指令集RISC(Reduced Instruction Set Computing)。CISC是早期的微處理器(x86系列及其兼容CPU)使用的指令集。RISC是在CISC指令系統(tǒng)基礎上發(fā)展起來的,相對于CISC型CPU,RISC型CPU指令種類很少,可采用超標量和超流水線結構,大大增加了并行處理能力,在同等頻率下,采用RISC架構的CPU比CISC架構的CPU性能高很多。為了與同系列低端微處理器保持兼容,大多數(shù)PC機中使用的微處理器仍使用CISC指令集,但考慮到RISC在設計和指令結構等方面的優(yōu)勢,現(xiàn)在的CISC結構的微處理器都結合了部分RISC技術,形成以RISC為內核、CISC為外圍的微處理器,如典型的有Intel Pentium系列和AMD K6系列等。

2.內存儲器

微計算機系統(tǒng)的內存儲器由大規(guī)模(LSI)或超大規(guī)模(VLSI)集成電路芯片構成,主要用來存儲數(shù)據(jù)和程序。具體來講,內存儲器中存放著兩類信息,一類是待處理的數(shù)據(jù)和運算結果,另一類是處理數(shù)據(jù)的程序。

內存儲存器的工作過程大致如下:在執(zhí)行程序前,預先把程序和原始數(shù)據(jù)存放于內存儲器中,在處理過程中,由它向控制器提供指令代碼,然后根據(jù)處理需要,隨時向運算器提供數(shù)據(jù),并把運算結果或中間結果存儲起來,從而保證機器能按照程序自動地進行工作。因此,在馮·諾依曼計算機結構中,內存儲器是極其重要的部件之一。

內存儲器要保存數(shù)以萬計的數(shù)據(jù),如何把這些數(shù)據(jù)有規(guī)律地存放,以便存取數(shù)據(jù)時方便、迅速,是很重要的問題。其存放方法是,把內存儲器分成一個個單元。每個單元存放著固定位數(shù)的二進制數(shù)據(jù),這就是前面介紹的字節(jié)。每個單元都有一個編號與之對應,稱為地址(地址碼),只要指明地址,就可以到存儲器的成千上萬個單元中按所指地址存入或取出所需數(shù)據(jù)。

圖1-6表示一個有m個單元(字),每個單元為8位二進制位的存儲器。地址從小到大順序編號,由0號單元至m-1號單元。地址碼用二進制編碼表示。由于二進制數(shù)讀/寫不方便,常用十六進制數(shù)表示地址。

現(xiàn)代通用微型計算機的字長為8、16、32、64位共4種規(guī)格。如市場銷售的計算機存儲器存儲容量64KB,即表示該存儲器有64×1024=65536字節(jié)的容量。

對存儲器某地址的數(shù)據(jù)進行讀或寫(即取數(shù)或存數(shù))操作統(tǒng)稱為訪問(Access)。為了實現(xiàn)存數(shù)和取數(shù)的目的,存儲器除核心部分的存儲體外,還需要一些輔助電路來支持其工作。這些部件包括存儲器地址寄存器(MAR)和地址譯碼器,存儲器數(shù)據(jù)寄存器(MDR)和控制整個存儲器協(xié)調工作的控制電路,如圖1-7所示。

圖1-6 存儲單元組織及地址表示

圖1-7 存儲器結構示意圖

當CPU部件需要訪問存儲器的某個地址時,首先把地址碼送到存儲器的地址寄存器,經(jīng)過譯碼電路選中相應地址單元。取數(shù)時,取出的數(shù)據(jù)送到存儲器的數(shù)據(jù)寄存器,以供要用該數(shù)據(jù)的CPU適時取走。存數(shù)時,把要存入的數(shù)據(jù)送入數(shù)據(jù)寄存器,通過寫操作將其存入指定地址的單元內。控制電路則根據(jù)本次訪問存儲器是取或存數(shù),產(chǎn)生一定順序的控制信號和脈沖。控制電路把存儲器內部各部件有機聯(lián)系在一起,并使它們協(xié)調地按一定節(jié)拍工作。

設存儲器0003號單元已存放二進制信息10110110。現(xiàn)在要讀出此信息,其過程是:首先將地址0003送往地址寄存器,地址譯碼器將地址譯碼后產(chǎn)生選中0003號單元的信號,隨后在控制電路作用下發(fā)出讀控制信號,0003號單元的內容10110110被讀出并送往數(shù)據(jù)寄存器。若是寫數(shù)據(jù),過程類似,只是當譯碼器產(chǎn)生選中地址單元信號后,控制電路將發(fā)出寫控制脈沖,將數(shù)據(jù)寄存器內容寫入相應單元中。請注意,存儲單元的地址及單元的內容是不相同的。

微型計算機存儲器通常有兩類:隨機訪問存儲器RAM(Random Access Memory)和只讀存儲器ROM(Read Only Memory)。RAM可以隨時寫入內容,亦可進行修改。ROM事先存儲規(guī)定好的內容,只能將規(guī)定內容讀出,不能改寫。

3.總線

計算機的各個組成部分必須有機地連接在一起,才能相互協(xié)調地工作。連接的方法有多種,最直觀和最簡單的方法是,把任何兩個有聯(lián)系的部件用導線直接連接起來。這種連接,雖然有直接傳送、獨立使用和傳送速度快等優(yōu)點,但其致命弱點是,各組成部分相互關系繁多,致使連線多且亂。因此,微處理器及微型計算機系統(tǒng)一般采用“總線”(Bus)結構把各個組成部分連接起來。

總線,實際上是一組導線,是各種信息線的集合,用來作為所有各個組成部分共同使用的“公路”。總線一般包括數(shù)據(jù)總線DB(Data Bus)、地址總線AB(Address Bus)和控制總線CB(Control Bus)三種,如圖1-4所示。

數(shù)據(jù)總線用來傳輸數(shù)據(jù),通常包括CPU與內存儲器或輸入/輸出設備之間、內存儲器與輸入/輸出設備或外存儲器之間交換數(shù)據(jù)的雙向傳輸線路。地址總線用來傳送地址,它一般是從CPU傳送至內存儲器、輸入/輸出設備。控制總線用來傳送控制信號、時序信號和狀態(tài)信息等,其中每根線的方向是一定的、單向的,但作為整體,控制總線是雙向的。

微型計算機系統(tǒng)的總線可按連接對象的不同層次分為以下三類。

(1)內總線。又稱板內總線,它把CPU、ROM、RAM、基本I/O接口、定時器及總線控制邏輯等部件連成一個系統(tǒng),成為微機的基本硬件系統(tǒng)。內總線是微機系統(tǒng)的一級總線。

(2)系統(tǒng)總線。又稱板間總線,它由CPU通過總線控制邏輯進行管理,在該總線上裝有5~8個通用I/O擴展插槽,不同設備的接口電路都將通過該擴展槽與主機連接。系統(tǒng)總線是微機插板級總線,如8位PC/XT總線,16位ISA總線,32位VESA總線和32位或64位PCI總線等。

(3)外部總線。用于設備與設備之間連接,常用的有RS-232、IEEE-488、IEEE1394和USB總線等。

另一方面,根據(jù)總線組織方法的不同,總線結構又可分為單總線、雙總線、多層(雙層)總線,如圖1-8所示。

單總線結構就是前面所述的三總線結構,早期的大多數(shù)微機都采用這種結構,其邏輯簡單,成本較低。雙總線結構中,I/O和存儲器各自擁有連接至CPU的總線通路,相當于拓展了總線帶寬,提高了總線的數(shù)據(jù)傳輸速率,但另一方面,這樣的結構下,CPU要負責兩條總線的通信,往往需要增加專門的I/O管理芯片來分擔CPU的管理任務,中期的微機采用這種結構。

雙層(多層)總線的設計思路是,速度差異較大的器件使用不同總線,而速度相近的器件使用同一類總線,這種結構不僅可以增加總線掛載數(shù)量,而且在系統(tǒng)規(guī)模增加時,使總線設計相對簡單,能充分發(fā)揮各種總線的效率。

例如,圖1-8中的雙層總線分為局部總線和全局總線,前者連接CPU和局部I/O接口及局部存儲器(速度較高),后者連接全局I/O接口、全局存儲器及局部總線部分(速度相對低)。當CPU通過局部總線進行通信時,其工作方式與單總線相同。當CPU需要訪問全局I/O或全局存儲器時,必須由總線控制邏輯統(tǒng)一進行安排,此時CPU就是系統(tǒng)的主控設備。這種總線結構可以實現(xiàn)雙層總線(局部總線和全局總線)并行工作,同時增加了等效總線帶寬,提高了系統(tǒng)數(shù)據(jù)處理和數(shù)據(jù)傳輸?shù)男省4蠖鄶?shù)后期的微機和工作站都采用這種雙層或多層總線結構。

4.輸入/輸出設備與接口芯片

輸入/輸出設備是微型計算機系統(tǒng)與周圍世界(包括用計算機的人)通信聯(lián)系的渠道。微型計算機的輸入/輸出設備種類繁多。輸入設備有鍵盤、條形碼識別裝置、音像識別以及模/數(shù)轉換器等。輸出設備有顯示器、打印機、繪圖儀以及數(shù)/模轉換器等。常用作外存儲器的磁盤、磁帶既是輸入又是輸出設備。輸入/輸出設備又稱外圍設備(Peripheral Equipment)。

盡管輸入/輸出設備繁多,但它們有兩個共同特點:① 常采用機械或電磁原理工作,所以速度較慢,難以與純電子的CPU及內存儲器的工作速度相匹配;② 要求的工作電平常常與CPU和存儲器等采用的電平不一致。為了把輸入/輸出設備與計算機的CPU連接起來,需要一個中間環(huán)節(jié)——接口(Interface),用來鎖存、變換、隔離和外設選址,以保證信息和數(shù)據(jù)在外設與CPU和內存之間正常傳送,這類功能電路通常集成為可編程接口芯片。

圖1-8 微型計算機的三種總線結構

1.4.2 微型計算機軟件系統(tǒng)

為了運行、管理和維護計算機所需的程序總和就是計算機軟件。它可分為系統(tǒng)軟件和應用軟件兩大類。系統(tǒng)軟件是用來支持應用軟件的開發(fā)與運行的。它包括操作系統(tǒng)、實用程序和各種語言處理程序。應用軟件是用來為用戶解決某種應用問題的程序及有關的文件資料。

硬件、系統(tǒng)軟件和應用軟件相互之間的關系如圖1-9所示。它表明計算機的基礎是硬件,在此基礎上建造了一層系統(tǒng)軟件(操作系統(tǒng)和實用程序),再在系統(tǒng)軟件基礎上又建造各種語言處理程序。最外層是用戶,用戶通過鍵盤、顯示器等交互設備使用應用軟件,應用軟件通過系統(tǒng)軟件訪問底層硬件,最終實現(xiàn)用戶所需功能。

圖1-9 微型計算機軟件系統(tǒng)的層次關系

1.4.3 微型計算機中指令執(zhí)行的基本過程

1.指令與程序簡介

指令是人們規(guī)定計算機執(zhí)行特定操作(加、減、乘、除、移位等)的命令。微處理器就是根據(jù)指令指揮和控制計算機各部分協(xié)調地動作,以完成指令所規(guī)定的操作。計算機全部指令的集合稱為計算機指令系統(tǒng)。指令系統(tǒng)定義了計算機的處理能力,不同型號的計算機有不同的指令系統(tǒng),從而形成各種型號計算機的獨自特點和差異。

為解決某一具體問題,將指令和數(shù)據(jù)編寫成一個相互聯(lián)系的序列(在高級語言中是由語句和數(shù)據(jù)組成的)叫做程序。如果所用指令編寫的程序是計算機能直接理解和執(zhí)行的二進制代碼形式,稱作機器語言,相應的程序就叫做機器語言程序。機器語言對使用者來說十分繁瑣且容易出錯,為克服這些缺點,就用一組便于記憶、縮寫、簡寫英文字母構成的符號(助記符)來代替機器語言指令,這就是匯編語言。匯編語言便于人們記憶和交流,但計算機仍不能直接識別,為此在交付計算機執(zhí)行前,必須將它翻譯成機器語言的目標程序,這個過程稱為匯編。關于用匯編語言編制程序的具體內容,將在第4章詳細介紹。

2.指令類別

盡管不同類型計算機有不同的指令系統(tǒng),但一般都包括數(shù)據(jù)流處理和程序流控制,如下列指令:

(1)算術及邏輯類指令。如算術加、減法,邏輯與、或、異或等指令。

(2)數(shù)據(jù)傳送與交換類指令。如取數(shù)、存數(shù)、寄存器/存儲器與寄存器交換、寄存器與累加器交換等指令。這類指令使用頻度最高。

(3)程序控制類指令。主要是影響指令的執(zhí)行順序。程序一般是按指令在內存儲器中存放的順序依次逐條執(zhí)行的,但根據(jù)需要(條件),它可以轉向別處執(zhí)行。轉移指令包括無條件轉移和條件轉移。所謂“條件”是指CPU的狀態(tài)。CPU狀態(tài)由標志寄存器(FR)反映,該寄存器中的每一位表征一種狀態(tài)值,如前次運算結果是否為負數(shù)、是否溢出,參加比較的兩個數(shù)是否相等。條件轉換指令就根據(jù)這些狀態(tài)條件之一決定是否轉向“新的指令”地址。

(4)輸入/輸出指令。是特殊傳送類指令,實現(xiàn)計算機與外部設備的數(shù)據(jù)交換。

(5)CPU控制類指令。如停機、空操作、復位和處理器狀態(tài)設置等指令。

3.指令的執(zhí)行

微型計算機執(zhí)行一條指令所需的時間稱為指令周期。指令周期分成兩個階段:取指令階段和執(zhí)行指令階段。其主要任務是:

(1)取指令階段。根據(jù)PC中的值從存儲器讀出指令并送到CPU的指令寄存器IR,PC則自動修改,指向下一條指令地址。

(2)執(zhí)行指令階段。將IR中的指令操作碼譯碼,并根據(jù)譯碼產(chǎn)生相應的控制電位和定時節(jié)拍信號以執(zhí)行指令所規(guī)定的操作。

程序中指令的執(zhí)行過程就是上面兩個階段的交替過程,直至遇到停機指令時才使整個機器停止運行,如圖1-10所示。

由于程序和數(shù)據(jù)存放于內存儲器里,所以在執(zhí)行指令時,CPU必須頻繁地訪問存儲器。在圖1-11所示的指令執(zhí)行示意圖中,給出了CPU訪問內存儲器的相關寄存器的情況。地址寄存器MAR存放著將訪問的地址信息,數(shù)據(jù)寄存器MDR存放從內存儲器讀出的或擬向內存儲器寫入的數(shù)據(jù),指令寄存器IR保存待處理指令的操作碼。

圖1-10 程序中指令執(zhí)行過程

下面以執(zhí)行一條“MOV A,00H”指令為例,說明該指令在該假想模型機上的執(zhí)行過程。該指令機器碼為(3EH,00H),即2字節(jié),并存放在內存儲器的第100H、101H單元中,其第一字節(jié)為操作碼3E,表示該指令是立即數(shù)傳送指令,后面一字節(jié)是立即數(shù)。其指令功能是將立即數(shù)00H送往累加器ACC。根據(jù)圖1-11所示,該指令的第一字節(jié)存于內存儲器的第100H號單元,因此在執(zhí)行本指令前PC值應為100H。

圖1-11 指令執(zhí)行示意圖

為了討論方便,這里使用下列符號:① (x)、[x]表示x單元存儲的內容,x可以是寄存器名稱,如ACC、PC等,也可以是存儲單元地址,如[300]表示存儲器第300號單元內的數(shù)據(jù)(內容)。② →表示數(shù)據(jù)傳送流向。

取指令階段:

(1)(PC)→ MAR; (2)PC+1→ PC; (3)CPU發(fā)“讀”信號;

(4)[100H]→MDR; (5)(MDR)→IR; (6)經(jīng)譯碼由控制邏輯發(fā)相應控制信號。

執(zhí)行指令階段:

(1)(PC) →MAR; (2)PC+1→PC; (3)CPU發(fā)“讀”信號;

(4)[101H]→MDR; (5)(MDR)→ACC。

主站蜘蛛池模板: 象山县| 额敏县| 铁岭市| 阿坝| 辽阳市| 罗定市| 宁南县| 金坛市| 当阳市| 贺州市| 波密县| 黄浦区| 齐齐哈尔市| 光泽县| 吉安市| 东至县| 丰镇市| 珲春市| 大余县| 余干县| 乌鲁木齐市| 达拉特旗| 呼玛县| 革吉县| 石首市| 土默特右旗| 阳泉市| 科技| 西充县| 龙泉市| 永登县| 饶河县| 鹿邑县| 扎囊县| 深水埗区| 大洼县| 昆山市| 宁南县| 比如县| 清苑县| 兰溪市|