【計(jì)算機(jī)組成原理教程】總線與輸入輸出_第1頁
【計(jì)算機(jī)組成原理教程】總線與輸入輸出_第2頁
【計(jì)算機(jī)組成原理教程】總線與輸入輸出_第3頁
【計(jì)算機(jī)組成原理教程】總線與輸入輸出_第4頁
【計(jì)算機(jī)組成原理教程】總線與輸入輸出_第5頁
已閱讀5頁,還剩98頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第8章總線與輸入輸出

■本章簡要介紹了計(jì)算機(jī)總線的基本原理、

I/O接口和計(jì)算機(jī)與外部設(shè)備間互聯(lián)的基本

結(jié)構(gòu)。包括總線概述,總線仲裁,總線操

作與定時(shí),總線標(biāo)準(zhǔn),I/O接口,主機(jī)與

I/O設(shè)備間的連接方式等內(nèi)容。

2

8.1總線概述

■8.L1總線的基本概念

■總線是各子系統(tǒng)間共享的通信鏈路,是計(jì)

算機(jī)中多個(gè)設(shè)備公用的電子通道。在計(jì)算

機(jī)系統(tǒng)中,各子系統(tǒng)間都必須有彼此相連

的接口。比如存儲(chǔ)器與CPU需要通信,

CPU和輸入輸出設(shè)備(也稱為I/O設(shè)備)同

樣也要進(jìn)行通信。這通常是由總線(bus)

完成的。

3

8.1.1總線的基本概念

■總線的兩個(gè)主要優(yōu)點(diǎn)是:

■低費(fèi)用。由于一組總線可以供多個(gè)外部設(shè)備共

享,因此價(jià)格較低。

■通用性。通過定義一種互連模式,新設(shè)備可以

容易地加到總線上去,外部設(shè)備(簡稱外設(shè))

可以在具有通用總線的計(jì)算機(jī)系統(tǒng)間移動(dòng)使

用。

■總線的主要缺點(diǎn)是:

■性能上的不可擴(kuò)展性引起通信瓶頸,限制I/O

侵備最大吞吐率。一一一一一

4

8.1.1總線的基本概念

■一次典型的總線操作(bustransaction)包

括兩部分:發(fā)送地址和接收或發(fā)送數(shù)據(jù)。

■主設(shè)備:連在總線上的設(shè)備是主動(dòng)的,能

對(duì)總線的數(shù)據(jù)傳輸進(jìn)行初始化。

■初始化指的是指定數(shù)據(jù)的傳送方向、要傳送的

數(shù)據(jù)塊的大小以及傳送的地址等信息。

■從設(shè)備:連在總線上的設(shè)備是被動(dòng)的,只

能等待主設(shè)備的啟動(dòng)命令。

5

8.1.1總線的基本概念

■計(jì)算機(jī)設(shè)備輸出的二進(jìn)制信號(hào)通常比較

弱,無法驅(qū)動(dòng)總線進(jìn)行工作,尤其是總線

比較長或者上面的設(shè)備比較多時(shí)。因此,

多數(shù)總線的主設(shè)備都要通過一片總線驅(qū)動(dòng)

器芯片和總線相連,該芯片實(shí)際上起了一

個(gè)放大器的作用。

6

812總線的功能

■總線是一組能為多個(gè)部件分時(shí)共享的信息

傳送線,用來連接多個(gè)部件并為之提供信

息交換通路。

■共享性:即總線所連接的部件都可通過它傳遞

信息。

■分時(shí)性:即在某一時(shí)刻總線只允許有一個(gè)部件

送出數(shù)據(jù)到總線上。

7

8.1.2總線的功能

■總線不僅是一組傳輸信號(hào)線,從廣義上講,總線

是一組傳輸線路及與傳輸相關(guān)的總線協(xié)議。

■總線協(xié)議:為了實(shí)現(xiàn)對(duì)總線信息傳輸?shù)姆謺r(shí)共享,

必須指定相應(yīng)的規(guī)則,這些規(guī)則稱為總線協(xié)議。

■各個(gè)連到總線上的部件必須遵守這些協(xié)議,才能有序

地分時(shí)共享該總線??偩€協(xié)議一般包括:信號(hào)線定義、

數(shù)據(jù)格式、時(shí)序關(guān)系、信號(hào)電平、控制邏輯等,它確

定了一個(gè)系統(tǒng)使用總線的方法。

8

8.1.3總線的分類

■可以從不同的角度對(duì)總線進(jìn)行分類。

■按總線在系統(tǒng)中所處的地位,可分為內(nèi)總線和

外總線;

■按數(shù)據(jù)傳送格式,可分為并行總線和串行總線;

■按時(shí)序控制方式,可分為同步總線

(synchronousbus)與異步總線

(asynchronousbus)。

9

8.1.3.1內(nèi)總線和外總線

■按總線在系統(tǒng)中的位置,分為內(nèi)總線和外總線。

■內(nèi)總線:是指位于計(jì)算機(jī)系統(tǒng)內(nèi)部的總線。

■內(nèi)總線又可以分為芯片內(nèi)部總線和內(nèi)部系統(tǒng)總線。

■芯片內(nèi)部總線位于CPU芯片內(nèi)部,它連接了CPU內(nèi)部的寄存

器與算術(shù)邏單元ALU(如圖8.1所示)。芯片內(nèi)部總線則稱為

片級(jí)總線。

■內(nèi)部系統(tǒng)總線是CPU與計(jì)算機(jī)系統(tǒng)內(nèi)部的各個(gè)主要功能部件

之間的連接總線。內(nèi)部系統(tǒng)總線可以分為主存總線和內(nèi)部I/O

總線等,如圖8.1所示。內(nèi)部系統(tǒng)總線通常都安放在主板或各

個(gè)插件板上,所以也稱板級(jí)總線。

10

8.1.3.1內(nèi)總線和外總線

■外總線:是多臺(tái)計(jì)算機(jī)系統(tǒng)之間,或計(jì)算

機(jī)與一些智能設(shè)備之間的連接總線。

11

8.1.3.1內(nèi)總線和外總線

■內(nèi)總線一般包括地址、數(shù)據(jù)和控制信號(hào)三類傳輸

線,分別稱為地址總線、數(shù)據(jù)總線和控制總線。

■數(shù)據(jù)總線:各功能部件之間傳輸數(shù)據(jù)信息的連接

總殘。

■為了保證數(shù)據(jù)能夠在兩個(gè)部件A與B之間彼此傳送,要

求數(shù)據(jù)總線既能夠?qū)?shù)據(jù)由部件A傳送到部件B,又能

夠?qū)?shù)據(jù)由部件B傳送到部件A,即總線能夠兩個(gè)方向

傳送數(shù)據(jù),這種總線稱為雙向總線。

■若目標(biāo)部件僅僅作為從設(shè)備,則地址總線只需要提供

源到目標(biāo)的單向傳送通路,稱為單向總線。

12

8.1.3.1內(nèi)總線和外總線

■數(shù)據(jù)總線寬度:數(shù)據(jù)總線的位數(shù)稱為數(shù)據(jù)

總線寬度。

■總線寬度的確定是一個(gè)值得關(guān)注的問題。若設(shè)

計(jì)的不合理,將會(huì)影響計(jì)算機(jī)系統(tǒng)的效率。例

如,如果主存數(shù)據(jù)總線的寬度為"位,CPU內(nèi)

部的寄存器字長為2〃位,則CPU必須兩次訪問

主存才能存取一個(gè)寄存器字。

■地址總線:各個(gè)功能部件之間傳送地址信

號(hào)的總線稱為地址總線。

13

8.1.3.1內(nèi)總線和外總線

■地址線的位數(shù)與目標(biāo)部件的存儲(chǔ)容量有

關(guān)。如地址線為〃根,則對(duì)應(yīng)的目標(biāo)部件的

存儲(chǔ)容量為2%

■這里要注意存儲(chǔ)粒度,若存儲(chǔ)粒度是字,貝胸

根地址線可以訪問2〃個(gè)字,若存儲(chǔ)粒度是字

節(jié),則〃根地址線可以訪問2〃個(gè)字節(jié)。

14

8.1.3.1內(nèi)總線和外總線

■控制總線:各個(gè)功能部件之間傳送控制信

號(hào)的總線稱為地址總線。

■由于總線是一組能為多個(gè)部件分時(shí)共享的信息

傳送線,用來連接多個(gè)部件并為之提供信息交

換通路,所以數(shù)據(jù)總線、地址總線都是被連接

在總線上的所有部件所分時(shí)共享的。通過控制

總線產(chǎn)生有關(guān)的控制信號(hào),可以使總線上的各

個(gè)部件能在不同時(shí)刻占有總線使用權(quán)。

15

8.1.3.2并行總線和串行總線

■按數(shù)據(jù)傳送格式,可分為并行總線和串行

總、殯。

■并行總線:有多根數(shù)據(jù)線,可并行傳送多

個(gè)二進(jìn)制位,一般為一個(gè)字節(jié)或多個(gè)字節(jié),

其位數(shù)稱為該并行總線的數(shù)據(jù)路徑寬度

(或數(shù)據(jù)通路寬度)。

■串行總線:只有一根數(shù)據(jù)線,只能串行地

逐位傳送數(shù)據(jù)。

16

8.1.3.3同步總線和異步總線

■按時(shí)序控制方式,可分為同步總線(synchronous

bus)與異步總線(asynchronousbus)。

■同步總線:在進(jìn)行數(shù)據(jù)傳送時(shí),有著嚴(yán)格的時(shí)鐘

周期來定時(shí),一般設(shè)置有同步定時(shí)信號(hào),如時(shí)鐘

同步、讀/寫信號(hào)等。

■異步總線:在數(shù)據(jù)傳送時(shí),沒有固定的時(shí)鐘周期

定時(shí),而采用應(yīng)答方式工作,操作時(shí)間根據(jù)需要

可長可短。

17

8.1.4總線的組成及其性能指標(biāo)

■8.L4.1總線的組成

■從物理角度來看,總線的一種實(shí)現(xiàn)形式是由許多條導(dǎo)線組

成的連接線,這些連接線延伸到各個(gè)部件。

■為了保證總線在不同設(shè)備之間的可靠連接,必須規(guī)定其機(jī)

械特性。

■機(jī)械特性是總線在機(jī)械連接方式上的一些性能,如插頭與插座使

用的標(biāo)準(zhǔn),它們的幾何尺寸、形狀、引腳的個(gè)數(shù)以及排列的順序,

接頭處的可靠接觸等。

■僅僅有可靠的機(jī)械連接還不夠,為了確??偩€能夠正確工

作,必須規(guī)定其電氣特性。

■電氣特性是指總線上信號(hào)的有效電平的范圍、傳輸方向等。

18

8.1.4.2總線性能指標(biāo)

■常用的總線性能指標(biāo)如下。

■總線寬度:指總線中線路的根數(shù)。

■總線寬度用位(bit)表示,如8位、16位、32

位、64位等。

■地址總線設(shè)計(jì)時(shí)要考慮的一個(gè)問題就是在尋址

空間的可擴(kuò)展性和系統(tǒng)成本之間進(jìn)行權(quán)衡。

19

8.1.4.2總線性能指標(biāo)

■總線帶寬:總線的數(shù)據(jù)傳輸速率,即單位

時(shí)間內(nèi)總線上傳輸數(shù)據(jù)的位數(shù)。

■總線帶寬的常用單位是字節(jié)/秒(B/S)或兆字

節(jié)/秒(MB/S)o

■總線偏離(busskew):總線中不同信號(hào)

線的傳輸速度之間的差別。

20

8.1.4.2總線性能指標(biāo)

■總線復(fù)用(multiplexedbus):總線上分時(shí)

傳送不同種類的多種信號(hào)的工作方式。

■總線的驅(qū)動(dòng)能力(負(fù)載能力):指當(dāng)總線

接上負(fù)載后,總線輸入輸出的邏輯電平保

持在正常的額定范圍之內(nèi)的能力。

21

8.2總線仲裁

■如果兩個(gè)或多個(gè)設(shè)備同時(shí)想要成為總線的

主設(shè)備時(shí),就會(huì)出現(xiàn)爭用總線的現(xiàn)象,稱

為總線沖突。為防止總線沖突,就必須采

用一些總線仲裁(busarbitration)機(jī)制。

仲裁機(jī)制一般可分為集中式和分布式(競

爭式)兩種方式。

22

8.2.1集中式仲裁方式

■集中式仲裁方式指的是由一個(gè)單獨(dú)的總線仲裁器

來決定下一次該哪個(gè)設(shè)備使用總線。在總線仲裁

器是一個(gè)硬件設(shè)備,它用來分配總線時(shí)間。

■圖旦2(a)中給出了一種典型的集中式仲裁方式。許

多CPU內(nèi)部都包含有仲裁器,但有時(shí)也需要單獨(dú)

的一片芯片。總線中含有一條“線或”的總線請(qǐng)

耒(busrequest)信號(hào),它能使一個(gè)或8個(gè)總統(tǒng)

設(shè)備在任何時(shí)間發(fā)出請(qǐng)求信號(hào)??偩€仲裁器無法

判斷出有多少個(gè)總線設(shè)備發(fā)出了總線請(qǐng)求,它只

能區(qū)分出有請(qǐng)求和無請(qǐng)求兩種狀態(tài)。

23

8.2.1集中式仲裁方式

■當(dāng)總線仲裁器發(fā)現(xiàn)總線請(qǐng)求后,它發(fā)出一個(gè)總線授權(quán)信號(hào)。

這個(gè)信號(hào)被串聯(lián)到所有的輸入輸出設(shè)備上。當(dāng)物理上離仲

裁器最近的那個(gè)輸入輸出設(shè)備得到授權(quán)信號(hào)時(shí),由這個(gè)設(shè)

備來檢查是否它發(fā)出了總線請(qǐng)求信號(hào)。如果是,則由它接

管總線,并停止授權(quán)信號(hào)繼續(xù)往下傳播。若該設(shè)備沒有發(fā)

出總線請(qǐng)求,則將授權(quán)信號(hào)繼續(xù)傳送到下一個(gè)設(shè)備,這個(gè)

設(shè)備再重復(fù)上述動(dòng)作,直到有一個(gè)設(shè)備接管總線為止。這

種方式被稱為菊鏈法(daisychaining)o它的特點(diǎn)是設(shè)

備使用總線的優(yōu)先級(jí)由它離總線仲裁器的距離決定,最近

的優(yōu)先級(jí)最高,最遠(yuǎn)的優(yōu)先級(jí)最低。

24

8.2.1集中式仲裁方式

■為了克服設(shè)備的優(yōu)先級(jí)由其與總線仲裁器的距離

來決定這個(gè)不足,許多總線設(shè)置了多級(jí)仲裁。每

一級(jí)都有各自的總線請(qǐng)求信號(hào)和總線授權(quán)信號(hào)。

圖&2(b)所示的有兩級(jí)仲裁器:1級(jí)和2級(jí)(實(shí)際

的總線常常有4、8或者16級(jí))。每個(gè)設(shè)備都接在

總線的某一級(jí)仲裁線上,時(shí)間急迫的設(shè)備連接的

仲裁線的優(yōu)先級(jí)較高。在圖8.2(b)中,設(shè)備1、2和

4連在優(yōu)先級(jí)為1的仲裁線上,而設(shè)備3和設(shè)備5連

在優(yōu)先級(jí)為2的仲裁線上。

25

8.2.2分布式仲裁方式

■分布式(競爭式)仲裁方式:在每個(gè)設(shè)備模塊中包含訪問

控制邏輯,這些設(shè)備模塊共同作用,分享總線。

■例如,某臺(tái)計(jì)算機(jī)可以有16個(gè)優(yōu)先級(jí)的總線請(qǐng)求信號(hào)。當(dāng)

它的一個(gè)設(shè)備需要使用總線時(shí),就發(fā)出與它相對(duì)應(yīng)的總線

請(qǐng)求信號(hào)。所有的設(shè)備都監(jiān)聽著所有的總線請(qǐng)求信號(hào),這

樣,到每個(gè)總線周期結(jié)束時(shí),每個(gè)設(shè)備都能知道自己是否

是優(yōu)先級(jí)最高的總線請(qǐng)求者,以及能否在下一個(gè)總線周期

使用總線。與集中式總線仲裁相比,這種總線仲裁方式要

求的總線信號(hào)更多,但防止了總線潛在的浪費(fèi)。它還要求

總線上設(shè)備的個(gè)數(shù)不能超過總線請(qǐng)求信號(hào)線的條數(shù)。

26

822分布式仲裁方式

■圖8.3給出了另一種競爭式的總線仲裁方式,

它不管總線上有多少設(shè)備,都只需要三條

信號(hào)線。

■第一條是各設(shè)備的總線請(qǐng)求信號(hào)的線或;

■第二條為“總線忙”信號(hào),是由當(dāng)前使用總線

的主設(shè)備發(fā)出的;

■第三條信號(hào)線用于總線仲裁,它將總線的所有

設(shè)備串行連接在一起,其中一頭接在5V的電源

±o

27

8.2.2分布式仲裁方式

■當(dāng)沒有設(shè)備申請(qǐng)使用總線時(shí),電平為高的總線仲裁信號(hào)被

傳輸?shù)剿械脑O(shè)備。要得到總線的使用權(quán),設(shè)備首先要檢

查總線是否空閑,并檢查它得到的總線仲裁信號(hào)(即

IN)是否為高電平。見圖8.3。

■如果IN已經(jīng)是低電平,則該設(shè)備不能成為總線的主設(shè)

備,還要把它的OUT端置為低。但是,如果IN是高電

平,則該設(shè)備還是要將其OUT端置為低。這就使得它下

游的鄰居的IN為低,并因此也把OUT置為低。當(dāng)一切就

緒后,只會(huì)有一個(gè)設(shè)備的IN為高,而OUT為低。這個(gè)設(shè)

備就成為總線的主設(shè)備,發(fā)出BUSY信號(hào)和OUT信號(hào),然

后開始傳送數(shù)據(jù)。見圖8.3。

28

8.3總線操作與定時(shí)

■總線可以根據(jù)其時(shí)鐘類型分為同步總線和異步總

線兩大類。

■同步總線(synchronousbus)有一條由晶振驅(qū)動(dòng)

的方波信號(hào)線??偩€的所有操作都將占用其中的

幾個(gè)完整的方波,把一個(gè)方波的時(shí)間稱為總線周

期(buscycle)。

■異步總線(asynchronousbus)中不存在一個(gè)起

控制作用的時(shí)鐘。它的總線周期可以是總線操作

所需的任意長度,并不要求其上面的所有設(shè)備都

保持一致。下面分別對(duì)它們進(jìn)行討論。

29

8.3.1同步定時(shí)方式

■對(duì)于同步總線而言,其控制線路包含一個(gè)時(shí)鐘和

一個(gè)固定的與時(shí)鐘有關(guān)的地址和數(shù)據(jù)發(fā)送協(xié)議。

由于需要很少或根本不需要其他邏輯來決定下一

步該做什么,因此同步總線速度較快而且費(fèi)用

低。CPU—主存總線是典型的同步總線。

■缺點(diǎn):

■由于總線偏離問題,總線長度一般很短,并且總線上

所有的設(shè)備必須有相同的時(shí)鐘頻率。

■某些總線可以連接不同速度的設(shè)備,但它們的工作速

度和速度最慢的設(shè)備相等。

30

8.3.1同步定時(shí)方式

■下面以圖8.4為例來說明同步總線的工作原

理。

■圖g4中使用的是40MHz的時(shí)鐘信號(hào),相應(yīng)的

總線周期為25ns??偩€頻率一般用要比CPU的

主頻低很多,總線頻率較低的主要原因是總線

偏離和向后兼容的要求。

31

8.3.1同步定時(shí)方式

■在本例中,再進(jìn)一步假設(shè)主存讀在地址建立后還

需要4011s的時(shí)間。有了這個(gè)參數(shù),馬上可以得出,

從主存中讀取一個(gè)字需要三個(gè)總線周期。第一個(gè)

周期從“的上升沿開始,第三個(gè)周期在心的上升

沿結(jié)束,如圖8.4所示。

■值得注意的是,圖8.4中沒有任何一個(gè)上升沿或者下降

沿是垂直的,因?yàn)闆]有哪個(gè)電平信號(hào)能在零時(shí)間內(nèi)將

其電平降為零。本例中假設(shè)電平變化的時(shí)間是1ns。

32

8.3.1同步定時(shí)方式

■表8」對(duì)時(shí)序圖中出現(xiàn)的8個(gè)符號(hào)做了進(jìn)一步

的區(qū)分。

■例如,“D是從北的上升沿開始到地址建立好時(shí)

的地址建立時(shí)間。根據(jù)時(shí)序規(guī)格要求,

TAD<llnSo這就是說,CPU生產(chǎn)商保證,在任

何一個(gè)讀周期中,CPU都將在儲(chǔ)的上升沿的中

點(diǎn)開始的11ns內(nèi)輸出要讀的數(shù)據(jù)的地址。

33

8.3.1同步定時(shí)方式

■時(shí)序規(guī)格同時(shí)也要求,數(shù)據(jù)應(yīng)至少在,3的下降沿

之前7%(5ns)時(shí)間內(nèi)在數(shù)據(jù)線上準(zhǔn)備好,使其

在CPU連通數(shù)據(jù)線之前有足夠的時(shí)間能穩(wěn)定下來o

,AD和TDS這兩項(xiàng)約束組合起來,就意味著在最壞

的信況下,在地址出現(xiàn)在地址信號(hào)線上以后,主

存芯片只有62.5-11?5=46?511§的時(shí)間,就必須將數(shù)

據(jù)讀出并送到數(shù)據(jù)信號(hào)線上。這樣,4011s的芯片

就可以滿足這條總線的要求,即使在最壞的情況

下,它也能在4周期內(nèi)給出數(shù)據(jù)。如果使用的是

5011s的芯片,虱么,就需要插入第二個(gè)等待狀態(tài),

并只能在,4周期得到響應(yīng)。見圖8.4和衣8.1。

34

8.3.2異步定時(shí)方式

■雖然由于使用同一個(gè)時(shí)鐘信號(hào),同步總線的工作

原理相對(duì)簡單,但它也存在以下一些問題。

■1.時(shí)間效率問題。它要求所有事件必須在一個(gè)或多個(gè)

完整的時(shí)鐘周期內(nèi)完成。

■2.難以采用新技術(shù)帶來的好處。例如,假定在圖8.4所

示的總線系統(tǒng)生產(chǎn)幾年后,出現(xiàn)了訪問時(shí)間只有20ns

的主存芯片,可以用來取代現(xiàn)有的40ns的主存芯片。

這時(shí),可以去掉插入的等待狀態(tài),提高機(jī)器的速度。

如果再有了訪問時(shí)間只有10ns的主存芯片,就無法使

用現(xiàn)有總線來提高性能了,因?yàn)樵摽偩€設(shè)計(jì)的讀操作

就是兩個(gè)周期。

35

832異步定時(shí)方式

■將這種情況稍微變一個(gè)說法,若一條同步

總線上接有多個(gè)不同的設(shè)備,這些設(shè)備的

數(shù)據(jù)傳輸速度有快有慢,那么,總線周期

就必須設(shè)計(jì)得能滿足最慢的設(shè)備,而快速

設(shè)備就不可能滿負(fù)荷地運(yùn)行。

36

832異步定時(shí)方式

■異步總線無固定的時(shí)鐘,接收端和發(fā)送端

通過自身時(shí)鐘控制的握手協(xié)議

(handshakingprotocol)來保證數(shù)據(jù)的正

確接收和發(fā)送。

■源:數(shù)據(jù)發(fā)送方稱為源。

■源數(shù)據(jù):源產(chǎn)生的數(shù)據(jù)成為源數(shù)據(jù)。

■目標(biāo):數(shù)據(jù)接收方稱為目標(biāo)。

■目標(biāo)數(shù)據(jù):目標(biāo)接收的數(shù)據(jù)成為目標(biāo)數(shù)據(jù)。

37

832.1單向選通

■單向選通(strobe)控制是由通信的一方提

供選通信號(hào),這里的一方可以是源,如圖

8.5(a)所示,也可以是目標(biāo),如圖8.5

(b)所示。

38

832.1單向選通

■在圖8.5(a)中,數(shù)據(jù)的發(fā)送方(源)送出

數(shù)據(jù)及選通信號(hào)(strobe)。發(fā)送方(源)

的選通信號(hào)在經(jīng)過一段時(shí)間之后主動(dòng)結(jié)束,

接收方(目標(biāo))可以利用發(fā)送方的選通信

號(hào)的下降沿接收數(shù)據(jù)。這種方式實(shí)現(xiàn)起來

簡單,但是所帶來的問題是數(shù)據(jù)的發(fā)送方

(源)不管接收方(目標(biāo))有無能力接收,

按照自己的時(shí)序結(jié)束工作。

39

832.1單向選通

■圖8.5(b)示出的是首先由數(shù)據(jù)的接收方

(目標(biāo))發(fā)出選通信號(hào),要求數(shù)據(jù)的發(fā)送

方(源)送出數(shù)據(jù)。接收方使用自己發(fā)出

的選通信號(hào)的下降沿接收數(shù)據(jù)。在圖8.5(b)

中,不管發(fā)送方(源)有無能力提供數(shù)據(jù),

接收方(目標(biāo))在發(fā)出請(qǐng)求信號(hào)后,都按

照接收方(目標(biāo))自己的時(shí)序接收數(shù)據(jù)。

40

832.1單向選通

■圖8.5(a)和圖8.5(b)所存在的共同問題

就是源所發(fā)送的數(shù)據(jù)并不能保證被目標(biāo)正

確接收,這種情況稱為源與目標(biāo)不同步

(應(yīng)該注意的是這里的同步概念與前面提

到的同步總線的概念不同)。這顯然是一

個(gè)嚴(yán)重的問題,任何有意義的通信,都希

望源與目標(biāo)同步,即源發(fā)送的數(shù)據(jù)能夠被

目標(biāo)正確接收,所以需要認(rèn)真研究,解決

源與目標(biāo)同步的問題。

41

832.2雙向握手

■從前面的討論知道,無論是源還是目標(biāo)都可以是

主動(dòng)發(fā)起通信的一方,也可以是被動(dòng)接受通信的

一方。將主動(dòng)發(fā)起通信的一方(源或目標(biāo))稱為

主動(dòng)方;而將被動(dòng)接受通信的一方(源或目標(biāo))

稱為被動(dòng)方。

■前面討論的選通方法的缺點(diǎn)是主動(dòng)方(源或目標(biāo))沒

有辦法知道被動(dòng)方(源或目標(biāo))是否已經(jīng)準(zhǔn)備就緒,

即是否已經(jīng)正確地接收了數(shù)據(jù)或者是否已經(jīng)正確提供

了數(shù)據(jù)。可見,解決源與目標(biāo)同步的問題關(guān)鍵在于讓

對(duì)方知道自己的工作狀態(tài)。一種解決方法是通過設(shè)定

請(qǐng)求與應(yīng)答信號(hào)來通知對(duì)方自己的工作狀態(tài)。

8.322雙向握手

■雙向握手(handshaking)信號(hào):為了實(shí)現(xiàn)

源與目標(biāo)同步,在通信的雙方建立的請(qǐng)求

與應(yīng)答信號(hào)稱為雙向握手信號(hào),簡稱為握

手信號(hào)。

■“握手”是一個(gè)形象的術(shù)語,表示主動(dòng)方和被

動(dòng)方各“伸出一只手”,即主動(dòng)方和被動(dòng)方各

發(fā)出一個(gè)控制信號(hào),把本方的狀況通知對(duì)方。

43

8.322雙向握手

■圖8.6給出了雙向握手的說明,這里假設(shè)圖8.6中的

被動(dòng)方空閑。在圖8.6(a)中,源是主動(dòng)方。

■主動(dòng)方(源)送出有效數(shù)據(jù),并向被動(dòng)方(目標(biāo))發(fā)

W.索值號(hào)(數(shù)據(jù)有效信號(hào)),請(qǐng)求被動(dòng)方(目標(biāo))

?“乂發(fā)義“古o

■被動(dòng)方(旦標(biāo))把數(shù)據(jù)接收完成以后,并發(fā)出廖登信

號(hào)(收到信號(hào)),通知主動(dòng)方(源)數(shù)據(jù)已被接收。

■主動(dòng)方(源)收到應(yīng)答信號(hào)(收到信號(hào))后,撤銷數(shù)

據(jù)及詰求信號(hào)(數(shù)據(jù)有效信號(hào))。

■被動(dòng)方(目標(biāo))在主動(dòng)方(源)撤銷請(qǐng)求信號(hào)(數(shù)據(jù)

有效值號(hào))之后,也把應(yīng)答信號(hào)(收到信號(hào))撤銷,

此時(shí)宥女?dāng)?shù)據(jù)也被撤清。

44

832.2雙向握手

■再來看圖8.6(b)o

■被動(dòng)方(目標(biāo))主動(dòng)發(fā)出通信請(qǐng)求信號(hào)(準(zhǔn)備好),

請(qǐng)求主動(dòng)方(源)送來數(shù)據(jù)。

■主動(dòng)方(源)收到請(qǐng)求信號(hào)之后,把數(shù)據(jù)送上數(shù)據(jù)總

線,并發(fā)出應(yīng)答信號(hào)(數(shù)據(jù)有效信號(hào)),通知被動(dòng)方

(目標(biāo))數(shù)據(jù)已經(jīng)準(zhǔn)備好。

■被動(dòng)方(目標(biāo))把數(shù)據(jù)接收完成之后,撤銷請(qǐng)求信號(hào),

■主動(dòng)方(源)也撤銷應(yīng)答信號(hào)(數(shù)據(jù)有效信號(hào)),此

時(shí)有效數(shù)據(jù)也被撤消。

45

832.2雙向握手

■如果I/O設(shè)備出現(xiàn)故障,處理器發(fā)出請(qǐng)求后,始終

得不到I/O設(shè)備的響應(yīng)時(shí),不會(huì)一直等下去,采用

的一種策略是:處理器發(fā)出請(qǐng)求后,啟動(dòng)一個(gè)計(jì)

時(shí)器。若經(jīng)過一定的時(shí)間后,仍得不到響應(yīng),則

計(jì)時(shí)器發(fā)出“超時(shí)”(timeout)中斷信號(hào),強(qiáng)迫

處理器停止I/O訪問操作。

■很明顯,雙向握手方式和時(shí)序無關(guān)。每個(gè)事件都

由前一個(gè)事件引起,而不是由時(shí)鐘脈沖控制。

46

8,4總線標(biāo)準(zhǔn)

■總線標(biāo)準(zhǔn):設(shè)備應(yīng)該如何連接到計(jì)算機(jī)的

規(guī)范或規(guī)定。

■總線標(biāo)準(zhǔn)可以使計(jì)算機(jī)設(shè)計(jì)者和I/O設(shè)備設(shè)計(jì)

者獨(dú)立進(jìn)行開發(fā),因此非常重要。

■只要計(jì)算機(jī)設(shè)計(jì)者和I/O設(shè)備設(shè)計(jì)者都遵循總

線標(biāo)準(zhǔn),則設(shè)計(jì)出來的任何I/O設(shè)備都可以連

到任何計(jì)算機(jī)上??偩€標(biāo)準(zhǔn)定義了I/O設(shè)備應(yīng)

該如何連接到計(jì)算機(jī)。

47

8.5I/O接口

■8.5.1概述

■從最頂層看,計(jì)算機(jī)系統(tǒng)包含CPU、存儲(chǔ)器和I/O

等部件,每種類型有一個(gè)或多個(gè)模塊。這些部件

以某種方式互相連接,實(shí)現(xiàn)計(jì)算機(jī)的基本功能,

即執(zhí)行程序,并實(shí)現(xiàn)人機(jī)交互。因此,可以采用

以下兩種方法來描述計(jì)算機(jī)系統(tǒng):

■L描述每個(gè)部件的外部操作,即它與其他部件之

間交換的數(shù)據(jù)和控制信號(hào)。

■2.描述互連結(jié)構(gòu)。

48

851概述

■計(jì)算機(jī)系統(tǒng)的主要部件(處理器、主存、

I/O模塊)等為了交換數(shù)據(jù)和控制信號(hào),需

要進(jìn)行互連。

■最普通的互連方式是使用多條線組成共享總線,

將計(jì)算機(jī)的各個(gè)部件連接起來。

■由于電參數(shù)、機(jī)械參數(shù)的不匹配,總線通常不

能直接與計(jì)算機(jī)系統(tǒng)的I/O設(shè)備相互連接,而

需要通過接口將總線與計(jì)算機(jī)系統(tǒng)的各個(gè)部件

連接起來。

49

852I/O接口概念

■I/O設(shè)備一般不能夠直接與連接CPU和主存的總線

相連。因?yàn)镮/O設(shè)備的本質(zhì)與CPU和主存的本質(zhì)不

同,I/O設(shè)備都是些機(jī)電、磁性或光學(xué)設(shè)備,而

CPU和主存是電子設(shè)備。

■與CPU和主存相比I/O設(shè)備的操作速度要慢得多。

因此必須要有中介來處理這種差異,I/O設(shè)備是通

過一種被稱為I/O接口電路,簡稱為I/O接口(也

稱為I/O控制器)的器件連接到總線上的。圖8.7

表明了它們?nèi)咧g的關(guān)系。

50

852I/O接口概念

■I/O接口可以是串行或并行接口。

■串行接口只有一根線連接到設(shè)備上。

■并行接口有數(shù)根線連接到設(shè)備上,使得一次能

同時(shí)傳送多個(gè)位。

■從廣義上講,接口是指兩個(gè)相對(duì)獨(dú)立的子

系統(tǒng)之間的相連部分。

51

852I/O接口概念

■軟件接口:指一個(gè)程序模塊或子程序在調(diào)用和返

回時(shí)所必須遵守的傳遞參數(shù)規(guī)則或約定。

■硬件接口:指兩個(gè)硬件設(shè)備之間的連接邏輯及信

號(hào)傳遞協(xié)議。

■軟硬接口:指軟件對(duì)某個(gè)硬件電路進(jìn)行控制,或

者硬件要傳遞一些信息給軟件,彼此間也有著共

同遵守的協(xié)議。

■人機(jī)接口:指軟件與其使用者(人)的聯(lián)系部

分。

52

853I/O接口的功能和基本結(jié)構(gòu)

■I/O接口并非僅僅完成物理上的連接,一般來講,

它具有下述主要功能。

■i.識(shí)別地址碼,即地址譯碼功能。

■2.在主機(jī)與I/O設(shè)備之間交換數(shù)據(jù)、控制命令及狀態(tài)

信息等。

■3.支持主機(jī)采取程序查詢、中斷、DMA等方式。

■4.提供主機(jī)和I/O設(shè)備所需的緩沖、暫存、驅(qū)動(dòng)能

力,滿足一定的負(fù)載要求和時(shí)序要求。

■5.進(jìn)行數(shù)據(jù)類型、格式等方面的轉(zhuǎn)換。

53

853I/O接口的功能和基本結(jié)構(gòu)

■從不同的角度出發(fā),I/O接口可分為若干類

型。

■L按主機(jī)訪問I/O設(shè)備的控制方式,可分為程

序查詢接口、中斷接口、DMA接口,以及更復(fù)

雜一些的通道控制器、I/O處理機(jī)。

■2.按時(shí)序控制方式可分為:同步接口、異步

接口。

■3.按數(shù)據(jù)傳送的格式可分為串行接口、并行

接口。

54

853I/O接口的功能和基本結(jié)構(gòu)

■一種簡單的I/O接口部件的例例如圖8.8所示。

■它包括兩個(gè)數(shù)據(jù)寄存器(端口A寄存器和端口B寄存器)、

一個(gè)控制寄存器、一個(gè)狀態(tài)寄存器、一個(gè)數(shù)據(jù)緩沖寄

存器和一個(gè)時(shí)序控制電路。

■I/O接口與CPU的通信通過數(shù)據(jù)總線進(jìn)行。

■片選信號(hào)用于指明該接口是否被選中。被選中時(shí),寄

存器選擇信號(hào)選擇I/O接口內(nèi)部的寄存器。

■I/O讀和I/O寫控制數(shù)據(jù)的傳輸方向,其中的“讀”意

味著數(shù)據(jù)從I/O傳輸?shù)紺PU,“寫”意味著數(shù)據(jù)從CPU

傳輸?shù)絀/O。

55

8.5.4I/O接口的編址

■根據(jù)前面的討論知道,計(jì)算機(jī)系統(tǒng)通常有

多個(gè)I/O接口,每一個(gè)I/O接口內(nèi)部通常又

有多個(gè)寄存器,這些I/O接口內(nèi)部的寄存器

稱為I/O端口。CPU為了能夠訪問這些端口,

就必須對(duì)它們進(jìn)行唯一的身份標(biāo)識(shí),即對(duì)

每一個(gè)端口賦以一個(gè)唯一的地址。于是就

帶來一個(gè)問題,這些端口的地址與存儲(chǔ)器

的地址究竟是什么關(guān)系?應(yīng)該如何編址?

56

854I/O接口的編址

■一種方式是將存儲(chǔ)器和i/o端口統(tǒng)一編址,即在存

儲(chǔ)器空間中劃分出一段地址空間作為訪問I/O端口

的地址空間。這種方式使用訪問存儲(chǔ)器的指令來

實(shí)現(xiàn)對(duì)I/O端口的讀寫。這種方式稱為存儲(chǔ)器映像

的I/O端口。

■優(yōu)點(diǎn):不用單獨(dú)設(shè)置I/O端口訪問指令,而是使用存儲(chǔ)

器訪問指令來訪問I/O端口,因此可以充分利用存儲(chǔ)器

訪問指令的強(qiáng)大功能,編寫程序比較方便。

■缺點(diǎn):是程序員必須知道I/O端口的地址在存儲(chǔ)器地址

空間中的分配情況。

57

854I/O接口的編址

■另外一種方式是將存儲(chǔ)器和I/O端口分開編

址,即存儲(chǔ)器和I/O端口的地址彼此獨(dú)立,

例如,他們可以各自從0開始編址。CPU有

專門的I/O端口訪問指令和存儲(chǔ)器訪問指

令。

■優(yōu)點(diǎn):程序員無須知道I/O端口的地址在存儲(chǔ)

器地址空間中的分配情況。

■缺點(diǎn):無法充分利用存儲(chǔ)器訪問指令的強(qiáng)大功

△*匕編寫程序要復(fù)雜一些。

58

55I/O方式一輸入/輸出的基本控制方式

■通常,輸入輸出的基本控制方式(簡稱為

I/O方式)有以下幾種:

■程序查詢方式;

■程序中斷方式;

■直接存儲(chǔ)器訪問(directmemoryaccess,DMA)

方式;

■通道方式。

59

8.551程序查詢方式

■程序查詢方式:CPU直接通過I/O指令對(duì)

I/O接口進(jìn)行操作訪問,主機(jī)與外部設(shè)備交

換信息的每一過程均在程序中表示出來。

如果接口尚未準(zhǔn)備好,CPU就等待,如果

已作好準(zhǔn)備,CPU才能執(zhí)行I/O指令。

60

8.551程序查詢方式

■在相應(yīng)的I/O程序中須進(jìn)行下列幾步操作,

其接口和軟件模型如圖8.9所示。

■1.讀取外部設(shè)備狀態(tài)信息。

■2.判斷是否可進(jìn)行新的操作,例如判斷鍵盤

是否有新的鍵被按下,或打印機(jī)是否準(zhǔn)備好接

收新數(shù)據(jù)。如果設(shè)備尚未準(zhǔn)備好,則返回第一

步;若已準(zhǔn)備好,就進(jìn)行下一步。

■3.執(zhí)行所需的I/O操作,例如從鍵盤接口讀數(shù),

或送出打印信息到打印機(jī)接口。

61

8.552程序中斷方式

■1.基本概念

■程序中斷(interrupt)方式:CPU首先對(duì)I/O接口

及一個(gè)中斷控制器排行初始化,然后去執(zhí)行CPU

自己的程序(用戶程序)。當(dāng)I/O數(shù)據(jù)準(zhǔn)備好時(shí),

由中斷控制器向CPU發(fā)出中斷請(qǐng)求。CPU在收至U

中斷請(qǐng)求后,若能夠響應(yīng)中斷,則暫時(shí)停止當(dāng)前

正在執(zhí)行的程序(用戶程序),轉(zhuǎn)去執(zhí)行中斷服

務(wù)(處理)程序,然后再返回被中斷的程序(用

斷方式省去了、

需配曾甄i席篋)間,因此提高

了效率。

62

8.552程序中斷方式

點(diǎn)

置1>.

務(wù)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論