正文 第十章 16位微處理器簡介(1 / 3)

10.1 概述

隨著半導體集成電路集成度的迅速提高,在幾平方毫米的矽片上,可以集成上萬個晶體管。於是,超大規模集成電路工出現了。這就為研製高性能的16位微處理器創造了必要的條件。1978年,16位微處理器終於問世了,16位微型計算機是從兩個途徑發展起來的。

其一是,原有的小型機化。這類16位微型機最大的特點是充分利用小型機原有的豐富軟件資源。因此,使它既有小型機的功能,又具有微型機體積小、廉價的優點。

其二是,由生產8位微處理器的廠家,在8位微處理器的基礎上開發、研製的十六位微型機。這三種16位微處理器,在不同程度上吸取係統的優點。從硬件功能角度上看,它們不相上下,這類微型機已打入小型機的傳統市場。

16位微處理器比8位微處理器的集成度約提高一個數量級,功能也大大增強了,這表現在如下幾方麵:

數據總線位數由8位增加到16位。(即字長為16位。)

地址總線位數由16位增加到20位以上。所以,直接尋址範圍擴大了。

內部的通用寄存器增多了,而且通用寄存器都可以當變址寄存器使用。豐富的尋址方式。如1:68000有14種尋址方式。指令功能增強。增加了乘法和除法指令。

多種數據處理類型。多種中斷技術。容易組成多重處理係統。

下麵對三種流行的16位微型機作簡要介紹,從中可以看出微型機的發展趨勢,

10.2 三種典型16位微處理器

10.2-1 Intel 8086和 Intel 8088

8086是美國公司1978年的產品,采用9/103工藝,在單片芯片上集成2.9萬個晶體管,40條引腳雙列直插式封裝。有20條地址線、16條數據線,其中16條數據線和16條地址線。采用分時複用。能直接尋1對8的存儲器單元和64的1/0接口。

從結構上看,8086是在8位微處理器8080/8085的基礎上研製成的。它的字節運算能力很強。內部寄存器分三組,每組有4個16位寄存器以及一個16位的標誌寄存器。有6種尋址方式。133條基本指令。機器指令長度為1~6個字節,采用變字節指令結構。類似於的流水線工作方法,即取指令和執行指令在時間上是重疊的。內部結構,包括總線接口部件和執行部件。有6個字節的指令暫存器,保存著預先取出的6個字節的機器指令。當執行指令時,把下麵要執行的指令取出。處理數據的類型有位、字節、字、字符串等。

為了加強字符串處理、數值處理和1/0信道處理功能,公司相繼研製出8088、8089、8087等處理器,以便根據不同應用場合組成多種不同係統。

是麵向字符串處理係統處理器,它的指令係統和8086相同,兩者的軟件是兼容的,內部係統結構也類似。不同的是,它雖然是16位微處理器,但它的外部數據總線是8位的。因此,它進行字節處理比較方便。目前流行的(個人計算機)的采用8088。

一、結構待點

(1)通用寄存器

8086和8088均有八個16位通用寄存器,八個16位寄存器又分成兩組。一組稱為數據寄存器,共四個每一個16位寄存器,又可以分成兩個8位的寄存器,用於處理字節的指令。另一組是指針和變址寄存器,它們隻能作為16位的寄存器使用,一般用來存放地址位移量,以便和分段寄存器相加,共同產生20位長的物理地址。

(2)寄存器分段寄存器。它們都是16位的寄存器,用來存段基地址。代碼分段寄存器(5,指向當前程序的代碼段,取指令時,(左移4位後和指令指針寄存器I?相加,形成指令的物理地址。堆棧分段寄存器55指向當前堆棧。棧操作時,85左移4位和棧指針相加,形成棧實際指針。數據分段寄存器03,指向當前的數據段。數據段通常用於存放程序中的變量。附加段寄存器23,用來指向當前的附加段。附加段也是用於存儲數據。可以用指令對上述四個段寄存器進行設置或修改。

(3)指令指針寄存器

16位的指針寄存器的程序計數器,相似,用來存放位移量;

到存儲器取指令的物理地址是這樣獲得的:物理地址二基地址移量而基地址在代碼分段寄存器中,位移量存於指令指針寄存器中。

(4)狀態標誌寄存器

狀態標誌寄存器1.5是十六位的寄存器,但隻使用其中的九位,用來表示算術和邏輯運算結果的特征其餘三位,作為過程控製標誌。

2.適應於流水作業的結構

8086和8088的都由執行部件和總線接口部件;兩個互相獨立的部件所組成。兩種的完全一樣,它包括程序員可以訪問的通用寄存器和標誌寄存器,以及程序員不能訪問的暫存器、八和控製係統。控製全部指令的執行,提供數據和地址,並對通用寄存器和標誌寄存器進行管理。除少數幾條控製引腳外,和外部無聯係。

8086和8088的有些區別,8086的包括六字節的指令暫存器,並可以配合16位的數據總線進行操作,而8088隻有四個字節的指令暫存器,數據總線是8位的。8086和8088的都包括:程序員可以訪問的段寄存器、指令指針寄存器,程序員不能訪問的內部通信寄存器、指令暫存器,完成地址計算用的以及總線控製邏輯等。811:負責執行全部外部總線周期。並在它的八中完成將段寄存器的段地址和位移量相加,得到20位的物理地址,根據指令的物理地址從存儲器取指令,裝入指令暫存器。

當準備執行指令時,就從指令暫存器中取出一字節指令目標代碼來執行,如果指令暫存器去取一字節指令時,暫存器是空的,就處於等待取指令狀態。在指令執行過程中,如果需要訪問存儲器和1/0接口,就請求進入訪問存儲器或接口的總線周期。

操作是互相獨立的。在8086口中,當六個字節的指令暫存器,有兩個字節以上是空的,並且也沒有要求810進入訪問外部設備的總線周期,810就去執行取指令周期,把指令暫存器填滿。而8088隻要四個字節指令暫存器中有一個字節是空的,811就進入取指令周期。特別要強調的是,808600的數據總線是16位的,它在一個取指令總線周期,能訪問兩個字節的機器指令。而8088數據總線是8位的,所以一個取指令周期隻能訪問一字節機器指令。如果正處於取指令的總線周期中,發出要它去訪問總線的請求,必需在完成它的取指令周期後,才能響應217的請求。