輸入輸出結構課件_第1頁
輸入輸出結構課件_第2頁
輸入輸出結構課件_第3頁
輸入輸出結構課件_第4頁
輸入輸出結構課件_第5頁
已閱讀5頁,還剩82頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第十章輸入輸出結構

10.1異步數據傳輸

10.2可編程I/O

10.3中斷

10.4直接存儲器訪問

10.5I/O處理器

10.6串行通信

10.7實例:串行通信標準

同濟大學軟件學院

10.1異步數據傳輸

輸入/輸出設備通過系統(tǒng)的地址總線、數據總

線、控制總線和CPU相連(如圖10.1)

圖10.1CPU與I/O設備的連接

1.I/O接口的基本功能

(1)實現主機和外設之間的數據傳送控制。

如同步控制、設備選擇、中斷控制和DMA控制

(2)實現數據緩沖,以達到主機與外設之間的速

_度匹配。

(3)接受主機的命令,提供設備接口的狀態(tài),并

按照主機的命令控制設備。

2.I/O接口類型

(1)按照數據傳送的寬度可分為

并行接口和串行接口

(2)按照數據傳送的控制方式可分為

直接程序控制、程序中斷、DMA

通道、外圍處理機

(3)按照時序控制方式可分為

同步接口和異步接口

3.根據是源還是目的設備啟動傳送以及是否用

握手,異步數據傳送可分為四種

_?不帶握手的源啟動數據傳送

,?不帶握手的目的啟動數據傳送

--?帶握手的源啟動數據傳送

?帶握手的目的啟動數據傳送

10.1.1不帶握手的源啟動數據傳送

Data-----VAUD

Datastrobe

(a)

圖10.2不帶握手的源啟動數據傳送(a)時序

6

實現源數據傳送更新LED的電路如圖10.2(b)

(b)

圖10.2不帶握手的源啟動數據傳送:(b)實現

V

10.1.2不帶握手的目的啟動的數據傳送

目的設備一段時間后源設讀源設備

傳輸選通備使數據有效,后停止傳

信號給源并將數據穩(wěn)定一號輸有效

設備段時間無數據

Data---〈VALID)------

Datastrobe

(a)

圖10.3不帶握手的目的啟動數據傳送(a)時序

8

實現目的數據傳送更新LED的電路如圖10.3(b)

(b)

圖10.3不帶握手的目的啟動數據傳送:(b)實現

9

10.1.3握手

?不帶握手的數據傳送無需確認數據收到,

適合于在規(guī)定的時間內傳送。

?當每次傳送所花費的時間不同時,設備可

采用握手方式來協(xié)調數據傳送。

?市握手的源啟動數據傳送

置數

設數據穩(wěn)定目的設備讀

信號

請源設備停止傳

乘后,目的完數據,就

高輸有效數據,

,設備讀取

數發(fā)送一個數

使

效此數據目的設備復位

用據確認信號

給源設備數據確認信號

<VALID)

Data

Datarequest

Dataacknowledge

(a)

圖10.4帶握手的源啟動數據傳送(a)時序

w

11

圖10.4帶握手的源啟動數據傳送:(b)實現

(b)

12

?帶握手的目的啟動數據傳送

目的設備讀

目的設備傳源設備停止傳

數據穩(wěn)定完數據,就

輸一個數據輸有效數據,

后,目的發(fā)送一個數

選通信號,目的設備復位

設備讀取據準備就緒

源設備使有

此數據信號給源設數據準備就緒

效數據可用

備信號

Data<VAUD>

Datarequest

Dataready

(a)

圖10.5帶握手的目的啟動數據傳送(a)時序

13

圖10.5帶握手的目的啟動數據傳送:(a)時序和(b)實現

10.2可編程I/O

?可編程I/O(programmedI/O)

用指令編程來控制CPU輸入或輸出數據。

?可編程I/O的特點

?何時何地進行輸入/輸出完全受CPU控制;

--?數據的輸入輸出都要經過CPU;

_?用于連接低速外圍設備。_

?可編程I/0的編址方式

?獨立編址

有專門的指令訪問I/O端口。

_?存儲器編址

一.把I/O端口視為存儲器的一個單元,采用

存儲器存取指令即可訪問它們。

相對簡單CPU,其結構不能采用獨立的I/O方式,

但可利用存儲器編址I/O方式。

例:執(zhí)行指令LDACFFFF

為了實現此I/O端口,設計硬件如圖10.6。

當地址總線上的值為FFFFH,控制信號

DatafromREAD=1時,三態(tài)緩沖器才選通

inputport

Fromaddressbus

—READ(fromcontrolbus)

圖10.6地址為FFFFH的輸入端口

17

修改相對簡單CPU以支持獨立的I/O方式:

?必須在CPU指令集中增加輸入、輸出指令;

?產生必要的新控制信號;

?在狀態(tài)圖中增加新狀態(tài);

?開發(fā)RTL代碼支持新狀態(tài);

?修改寄存器、ALU和控制單元硬件來支持新的指令。

1.增加兩條新指令

一條輸入數據

一條輸出數據

指令指令碼操作

INPToolooooorAC—輸入端口V

OTPTooiooooir輸出端口r-AC

表10.1相對簡單CPU的獨立I/O指令

19

2.增加一個新控制信號10

10=1時為I/O操作,10=0時為存儲器操作

3.新狀態(tài)與RTL代碼

INPT1:DR-M,PC-PC+1,

AR-AR+1

INPT2:TR-DR,DR-M,

PC-PC+1

INPT3:AR-DR,TR

INPT4:DR-輸入端口

INPT5:AC-DR

圖10.8實現INPT指令執(zhí)行周期的狀態(tài)

20

4.硬件的修改

(1)修改寄存器

一(2)修改ALU一

(3)修改控制單元

N

PT

0

1-2nINPT1

Decoder

〃INPT2

/R"

?7INPT3

/R

?6"

INPT4

/R

■5務

/R

?4

/R

?3

/R

?2

/R

/—

圖10.9產生INPT執(zhí)行周期的狀態(tài)信號的硬件

21

?計數器控制信號修改

INC=(INC原有值)VINPT1VINPT2V

INPT3VINPT4

CLR=(CLR原有值)VINPT5

?組合INPT1狀態(tài)所需進行的修改

DRLOAD=(DRLOAD原有值)VINPT1

MEMBUS=(MEMBUS原有值)VINPT1

PCINC=(PCINC原有值)VINPT1

ARINC=(ARINC原有值)VINPT1

?設定為IOINPT4存儲器讀=1(£人口A10

22

直接程序控制方式可分為兩種傳送方式:

(1)直接傳送方式

CPU在控制與外設之間的數據傳送之前,不需了解

外設的工作狀態(tài),即可直接執(zhí)行I/O指令,實現數據傳

-送。

直接傳送方式無需查詢設備的任何狀態(tài),也無需

一考慮同步問題。也稱為無條件傳送方式。多用于I/O操

作時間固定且已知的情況下。

(2)程序查詢方式

?CPU向I/O設備發(fā)傳送數據的請求信號。

?I/O設備處理該請求,當其準備傳送數據時,

就置位設備準備就緒信號。

?CPU通過另一個I/O地址讀此信號并檢查其值。

;如果信號置位,CPU執(zhí)行數據傳送。如果未置

位,則循環(huán)等待,繼續(xù)讀取并檢查設備準備就

緒信號的值。

例:考察相對簡單CPU的一個輸入設備

(1)輸入/輸出指令

INPT(AC-INPUTPORTr)

OTPT(OUTPORTT-AC)

-(2)設備有三個I/O端口:兩個輸入、一個輸出。

輸出端口:1001H中輸出01H值,啟動一個請求。

一輸入端口:1002H(查詢該端口直至其最低位置1)

1000H(從中讀取數據)

25

e

ic6

v2

e

d

O)

I/

。1

件求

硬請

的個

口一

端動

O至)

/啟

I直據

現,

口數

實值

H端取

式1

0該讀

方出詢中

詢輸查從

查((

用HHH

120

采000

000

111

10::

.

0口口

1端端

出入

輸輸

nd。4dE一sA&>1B_BH

CLAC

INAC(Ad)

MOVR(RI)

OTPT1001H(01H一address1001H)

LOOP:INPT1002H(Checkwhetherthedeviceisready)

AND(AC=1andZ=Oifdeviceisready)

JMPZLOOP

(Ifdevicenotready,AC=0andZ=l,loopback)

INPT1000H(Deviceisready,inputdata)

27

10.3中斷

10.3.1CPU和I/O設備之間的數據傳送

1.解決I/O設備變化延遲

?查詢

_?中斷

中斷是由I/O設備或其他非預期的急需處

理的事件引起的,它使CPU暫時中斷現在正在

執(zhí)行的程序,而轉至另一服務程序去處理這

些事件。處理完后再返回原程序。-

28

2.中斷輸入輸出方式的特點

(1)CPU與I/O并行工作;

⑵硬件故障處理;

⑶實現人機對話;

(4)實現多道程序和分時操作;

(5)實現實時處理;

(6)實現應用程序和操作系統(tǒng)的聯(lián)系;

(7)多處理機系統(tǒng)各處理機間的聯(lián)系。

29

10.3.2中斷類型

?外部中斷

CPU采用外部中斷與輸入/輸出設備進行交互。

?內部中斷

內部中斷完全發(fā)生在CPU內部,沒有任何

輸入/輸出設備介入。

二?軟中斷

由CPU指令集中的特定中斷指令產生。

10.3.3中斷處理

1.中斷源

引起中斷的事件或者發(fā)出中斷請求的來源。

2.中斷源如何提出請求?

_(1)中斷請求信號的建立

??中斷觸發(fā)器

每個中斷源對應有一個中斷觸發(fā)器。

?多個中斷觸發(fā)器構成中斷寄存器,其內容稱

為中斷字或中斷碼。

31

⑵中斷請求信號的傳送

三種方案:

?單獨設置中斷請求線

快速響應、中斷請求線數目有限

,?一根公共中斷請求線

-?兼有公共請求線與獨立請求線

圈中斷源分級或分組

(3)中斷響應信號

32

3.中斷的優(yōu)先級

設計中斷系統(tǒng)時,應將全部中斷源按中斷

性質和處理的輕重緩急進行排隊并給以優(yōu)先級。

(1)優(yōu)先級

指多個中斷發(fā)生時,對中斷響應的次序。

⑵判優(yōu)的實現

?軟件查詢

一?中斷排隊邏輯_一

4.中斷的允許與禁止

一?中斷允許一

中斷源有中斷請求信號就可使其對應的

中斷觸發(fā)器置“1”狀態(tài)或參加排隊判優(yōu)。

?中斷禁止

中斷源即使有中斷請求信號也不能使其

.對應中斷觸發(fā)器置“1”狀態(tài)或不允許參加排

隊判優(yōu)。

5.中斷服務程序:處理中斷工作的服務軟件。

34

6.中斷處理過程(中斷響應與中斷處理)

-從某一個中斷源發(fā)出中斷服務請求,到這個

請求全部處理完成所經過的主要過程。

(1)中斷查詢

CPU在一條指令周期內要查詢一次是否有中

?斷產生。

(2)中斷響應

?關中斷

?保存斷點-

?轉入中斷服務程序

35

獲取中斷服務程序地址:

?向量中斷

中斷向量:中斷服務程序的人口地址以及

程序狀態(tài)字的合稱。

程序狀態(tài)字PSW:用來表征處理機運行程序的狀態(tài)。

一般應包含如下內容:

程序屏敝碼程序運行狀態(tài)條件碼中斷碼指令計數器

36

?非向量中斷

CPU在響應中斷時只產生一個固定的地址,該

地址是中斷查詢程序的入口地址,CPU轉去執(zhí)行查

.詢程序,通過軟件查詢確定中斷源,然后執(zhí)行相應

的中斷服務程序。

查詢程序:又稱中斷總服務程序。

(3)執(zhí)行中斷服務程序

?保存現場

?開CPU中斷

?執(zhí)行中斷服務程序

?關CPU中斷

?恢復現場

:?恢復屏蔽碼

?恢復PSW、PC

?開CPU中斷

?返回斷點

39

10.3.4中斷硬件和優(yōu)先級

1.單個設備的簡單系統(tǒng)

?非向量中斷

圖10.11單個設備

的非向量中斷

(a)硬件

根Q

(b)時序

IACK

Data---〈VALID〉--

(b)

V40

?向量中斷

InterruptRequest

依QY------------------------

InterruptAcknowledge

CPUIACK------------------------?Device

InterruptVector

Data-<-----------/-------------

(a)圖10.12單個設備的

向量中斷

IRQ--------------------------------

(a)硬件(b)時序

IACK--------------------------------------

Vector------------〈VALID〉----

(b)

2.多個設備的系統(tǒng)

?非向量中斷

?每個設備均有自

己的IRQ和IACK

信號

?他們的優(yōu)先級是

預定的,IRQn優(yōu)

先級最高

?CPU首先響應和服

務優(yōu)先級最高的

中斷

圖10.13多個非向量中斷的硬件

42

?向量中斷

菊花鏈:用于多中斷優(yōu)先權排隊的一種方法。

?簡單易實現

?便于擴充

?延遲大

圖10.14菊花鏈

43

菊花鏈將引起硬件延遲,特別是當鏈較長

時,延遲就更大。

并行優(yōu)先權排隊

-通過一個優(yōu)先權編碼器采用并行優(yōu)先權排

隊(parallelpriority)方式實現向量中斷,

減少延遲。

擴展困難。

44

防止干

圖10.15并行方式實現優(yōu)先級中斷

45

10.3.5多重中斷處理

一多重中斷是指在處理某一中斷過程中又發(fā)生了

新的中斷,從而中斷該服務程序的執(zhí)行,又轉去進

行新的中斷處理。這種重疊處理中斷的現象又稱中

斷嵌套。

?中斷響應次序與中斷處理次序

_中斷響應次序是由硬件排隊判優(yōu)線路決定的,

不能改變,而中斷處理次序可由屏蔽碼決定,是可

以改變的。

中斷處理次序可以不同于中斷響應次序。

三級中斷二級中斷一級中斷

目的程序處鈕程序處理程序處理程序

47

例如:某計算機的中斷系統(tǒng)有4級中斷優(yōu)先級,每

級對應一個屏蔽碼,下表為程序級別和屏蔽碼的關

系,中斷響應次序和處理次序一致,均為:

1一2一3一4

48

按照這一次序可以看到CPU運動的軌跡,如下圖。

中斷服務①..

程序I—[

@I」

?'j

50

中斷處理次序改為:143一2

屏蔽碼

程序級別

1級2級3級4級

第1級0000

第2級1011

第3級1001

第4級1000

51

中斷服務①.,

程序;―[

②I4

一一丁-----.rn

)'

41

-r

—.

正常程序

52

10.3.6CPU內部實現中斷

傷]:相對簡單CPU處理中斷的過程

?添加一個IRQ輸入引腳,其響應信號傳至

IACK輸出引腳

?添加新指令

?識別中斷并訪問此中斷處理的狀態(tài)

_?訪問中斷服務程序

IE:中斷允許觸發(fā)器

一IP:中斷觸發(fā)器

5才,

指令指令碼操作

LDSP1ooooooorSP-「

SP-SPT;

CALL10000010rM[SP]*-PC[15..8],SP*-SP-1;

M[SP]-PC[7..O],PC-「

PC[7..0]-M[SP],SP*-SP+1;

RET10000011

PC[15..8]-M[SP],SP-SP+1

SP-SPT;

PUSHAC10000100

M[SP]—AC

POPAC10000101AC-M[SP],SP-SP+1

SP-SPT;

PUSHR10000110

M[SP]-R

POPR10000111R-M[SP],SP-SP+1

IESET01000000IE-1

IERST01000001IE-0

IPRST01000010IP-0

表10.3相對簡單CPU的新指令

54

1.識別中斷并訪問此中斷處理的狀態(tài)

FETCH】)

executeexecute

(FETCH1)

方法一■routinesroutines

INT1)

(a)采用分離的FETCH1狀態(tài)和INTI狀態(tài)

FETCH2j

Modified

(FETCH1)——FETCH2

方法二FETCH1

INT2)

(IErVIP)AFETCHl

IEAIPAFETCH1

(b)

圖10.16兩種訪問中斷服務程序的方法(b)修改FETCH1支持中斷

55

2.訪問中斷服務程序(部分)

返回地址壓入堆棧

INTI:AR—SP

INT2:DR-PC[15??8],SP<-SP-1

INT3:M—DR,AR-AR?1,SP-SP4

INT4:DR-PC[7??0]

INT5:M—DR

二一INT6:DR一(數據總線來的向量)

INT7:PC-1111,DR,0000,IP-0

10.4直接存儲器訪問

DMA是高速I/0設備與主存之間由硬件組成的直

接數據通路,能成組傳送數據。

數據傳送是在DMAC控制下進行的,在數據傳送

前和結束后要通過程序或中斷方式進行預處理和后

處理。

10.4.1將直接存儲器訪問DMA納入計算機系統(tǒng)

57

置BR=1,發(fā)送總線請求

DMA控制器置BG=I,發(fā)送總線允許CPU

一.

1.DMA內部結構

AddressbusDatabus

圖10.18DMA控制器的內部結構

2.DMA控制器內的寄存器組

?DMA地址寄存器

存貯數據傳輸過程中需用到的存儲器地址

?DMA計數寄存器

保存?zhèn)鬏敂祿淖止?jié)數

?DMA控制寄存器

從CPU中接受命令

?狀態(tài)寄存器

向CPU提供信息

3.DMA控制邏輯

?完成DMA的初始化

?接收設備送來的DMA請求信號

_?向設備控制器回答DMA允許信號

?向系統(tǒng)申請總線

—?控制總線實現DMA傳輸控制

?中斷控制邏輯

-9

10.4.2DMA傳輸方式

?突發(fā)方式

在突發(fā)方式中,整個數據塊連續(xù)傳輸。

?控制簡單,適合高速外設的成批數據傳送

?CPU較長時間不能訪存

CPU使用內存CPUCPU

DMA使用內存DMA操作

內存工作時間

?周期竊取方式

一連續(xù)地獲取和放棄系統(tǒng)總線控制權來傳輸。

?充分發(fā)揮CPU和I/O設備的利用率

?判優(yōu)操作和總線切換操作頻繁,

花費的時間開銷大。

CPU使用內存CPUCPUCPU:CPUCPU

DMA使用內存DMADMA:DMA

內存工作時間

?透明方式

一DMA利用空閑時間傳輸數據。一

?CPU不停止執(zhí)行程序

?系統(tǒng)總線的硬件復雜、昂貴

CPU不需要訪存

CPU使用內存CPUCPUCPUCPUCPU

DMA使用內存DMADMADMA

內存工作時間

10.4.3DMA控制方式下的數據傳送過程

三個階段

?DMA傳送前預處理

?數據傳送

?傳送后處理

1.DMA傳送前預處理

在進行DMA數據傳送之前要用程序做一些

必要的準備工作。

?DMA控制器初始化

?I/O設備控制器初始化

?啟動設備

2.數據傳送

DMA控制器控制完成數據傳送工作,傳送

,結束向CPU發(fā)中斷請求信號。

3.傳送后處理

CPU響應中斷,轉去執(zhí)行中斷服務程序,

進行結束處理工作。

-

67

10.4.4修改CPU使其與DMA共處

1.為了使CPU能與DMA控制器共同工作

?增加控制輸入信號BR和控制輸出信號BG

?產生BG的邏輯電路

2.CPU允許在以下狀態(tài)接受DMA的請求

一取指令后、譯碼后、取操作數后、

指令執(zhí)行完后、結果保存后

68

3.修改相對簡單CPU

在取指令周期開始處理DMA請求

(1)對BG的操作

BRAFETCH1:BG-1

BR5AFETCH1:BG-O,(FETCH1的微操作)

,兩條合并:

FETCH1:BG-BR

BR,AFETCH1:(FETCH1的微操作)

(2)實現BG的硬件

(3)狀態(tài)圖所需的修改

69

BRBG

圖10.19BG的硬件實現

BR

J

[FETCH1FETCH2)Modified*仃.2)

>FETCH1

圖10.20修改狀態(tài)圖接納BR和BG

70

10.5I/O處理器

I/O處理器

與CPU交互,處理由I/O設備讀出后數據

可連接多個I/O設備

I/O設備連接至I/O總線上,而不是系統(tǒng)總

線上

6

72

CPU向I/O處理器發(fā)送一系列I/O指令,而不

象處理DMA那樣將值存于寄存器中,指令分

為三類:

1.塊傳送命令

傳輸數據塊,類似于DMA數據塊傳輸

2.執(zhí)行算術、邏輯、和分支操作的命令

--有助于處理數據以便使數據能為CPU所用

3.控制命令

通常是硬件相關并對計算機系統(tǒng)功能的

正確發(fā)揮十分關鍵

一個I/O處理器的系列命令能執(zhí)行許多連續(xù)的I/O傳送,考慮以

下任務:

1、從端口地址9000H的磁盤驅動器處讀取247字節(jié)的數據,寫入

起始地址為1OOOH的存儲器中;

2、從地址為9001H的輸入端口讀取1字節(jié)數據寫入CPU的累加器

中;

3、將內存單元2000H至207FH的內容寫至I/O地址為9002H的打

印機上。

帶DMA控制器而沒有I/O處理器的系統(tǒng)首先將數據寫入DMA

控制器的寄存器中,并啟動傳輸,等待它完成。然后它從地

址為9001H的I/O端口輸入1字節(jié)數據。最后為打印數據塊啟

動第二個DMA傳送。

而在帶I/O處理器的系統(tǒng)中,CPU將執(zhí)行三個任務所需的命

令寫入存儲器的一個連續(xù)塊中,并將塊的指針給I/O處理器,

從而減少了建立傳輸的開銷。f

74

并行通信:同一時間內傳輸多位數據

DMA控制器和/O處理器都采用并行通信

串行通信:在給定的時間內不能傳輸多位數

據,傳輸數據要通過并串轉換

打印機、MODEM等通過串口與CPU通信

異步串行通信:連接的設備不共用同一時鐘

并且需同時傳輸數據

同步串行傳輸:以幀(frame)的形式傳輸數

據塊,幀中包括傳輸信息頭、數據和傳輸

信息尾、

75

1061串行通信原理

兩個設備采用異步串行傳輸通信時,他

們不共用同一時鐘。必須采用許多措施

同步數據流因而事先就一些傳輸參數達

成一致

速度:比特/秒-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論