輸入輸出組織

週邊設備可分為
character oriented位元組導向的低速設備
ex:keyboard,mouse,modem
block oriented區塊導向的高速設備
ex:floppy,CD-ROM

介面電路
說明:週邊設備與中央處理器的緩衝區
功能:協調cpu與週邊設備之間資料的傳送,並處理週邊設備及輸入/輸出匯流排相關的運作
用途:所有週邊設備必須透過介面電路才能連接到輸入/輸出匯流排
週邊設備輸入時:
須將輸入設備的資料形式轉換成為內部的資料形式,再經過輸入/輸出匯流排傳到主記憶體單元
ex:磁碟機資料形式為sector(磁區),輸入時需經介面電路轉換成word(字組),才可透過輸入/輸出匯流排到主記憶體
輸出到週邊設備時:
須將主記憶體單元的資料形式經過輸入/輸出匯流排傳送到介面電路,再轉換成輸出設備的資料型式
ex:數據機資料形式為bit(位元),所以主記憶體傳word到輸入/輸出匯流排,在經介面電路轉換成bit才可進行傳輸

介面電路主要組成元件
address decoder(位址解碼器)
daa register(資料暫存器)
control circuit(控制電路)
status register(狀態暫存器)

………………………………

週邊設備資料傳輸模式可分
parallel transmission平行輸入:使用多條資料傳輸線,一次可傳送多位元,不適合長距離
serial transmission序列輸入:使用1條資料傳輸線,一次只可傳送1個位元,適合長距離

介面電路依傳輸模式可分
parallel interface平行介面電路
serial interface序列介面電路

常見介面有
RS232(recommended standard-232)/recommendation v24
  序列介面,9/25個接腳,非同步協調傳輸,每秒9600bit
centronics(集中式介面)
  平行介面,36個接腳,非同步協調傳輸,每秒200kb
IDE(integrated drive electronics,整合驅動電子介面)
  平行介面,40個接腳,同步協調傳輸,每秒8.33mb
SCSI(small computer system interface,小型電腦系統介面)
  平行介面,50個接腳,同步協調傳輸,每秒10mb,8bit資料寬度
AGP(advanced graphics port,高等圖形介面)
  平行介面,36個接腳,同步協調傳輸,每秒528mb,64bit資料寬度,66mhz傳輸頻率
USB(universal serial bus,通用序列匯流排)
  序列介面,同步/非同步協調傳輸,每秒1.5mb,可連接127部設備,支援plug&play
  由intel,compaq,nec,digital,ibm,northern telecom,microsoft共同制定的標準
IEEE1394
  序列介面,同步/非同步協調傳輸,每秒50mb,可連接63部設備,支援plug&play,使用雛菊鏈或是樹狀拓樸
  由蘋果電腦公司所開發的標準
bluetooth(藍芽)
  無線通訊標準,提供上傳56kbps下載721kbps,可資料加密

…………………………………..

匯流排依功能可分為
dedicated bus專用匯流排:只提供一種功能,傳送頻寬大,成本高
 ex:記憶體匯流排,輸入/輸出匯流排
shared bus共用匯流排:可扮演多角色,傳送頻寬小,線路簡單成本低,需提供匯流排仲裁器功能
 ex:系統匯流排
也可分為
processor-memory bus:連接cpu和主記憶體間的匯流排,又稱local bus(區域匯流排)
 ex:isa,eisa,pci
backplane bus:連接多個主機板之間的匯流排
 ex:vme bus,multibus2,nebus
I/O bus:連接各週邊設備與系統之間的匯流排
 ex:ide,scsi,ieee1394

常見輸入/輸出匯流排有
ISA(industry standard architecture,工業標準架構)
  8bit/16bit資料寬度,8.33mhz傳輸頻率,資料頻寬可達8.33/16.66mb
MCA(micro channel architecture,微通道架構)
  32bit資料寬度,10mhz傳輸頻率,資料頻寬可達40mb
EISA(extended ISA,延伸工業標準架構)
  32bit資料寬度,8.33mhz傳輸頻率,資料頻寬可32mb
PCI(phripheral component interconnect,週邊元件連接)
  64bit資料寬度,33/133mhz傳輸頻率,資料頻寬可達264mb/1g
multibus/ieee796
  16bit資料寬度
multibus2/ieee1296
  32bit資料寬度
IEEE488
  8bit資料寬度

……………………………………..

週邊設備定址方式有:
isolated i/o(分離式輸入/輸出):也稱io-mapped i/o(輸入/輸出對映輸入/輸出)
  週邊設備有獨立的定址空間
  ex:假設定址空間=x,則主記憶體定址空間=IO的定址空間=x
  使用專用匯流排,也就是要單獨使用另一條io匯流排
  需要speical-instruction i/o(特殊的輸入輸出指令)
  優點:主記憶體空間不會被佔用且程式可用空間大,週邊擴充佳
  缺點:輸入輸出彈性小,電路較複雜
memory-mapped i/o(記憶體對映輸入/輸出)
  週邊設備的定址空間是附屬在主記憶體單元之中,io資料存取與主記憶體內部資料的存取完全一樣
  ex:假設定址空間=x,則主記憶體定址空間+IO的定址空間=x
  使用共用匯流排
  優點:輸入輸出的彈性大,電路較簡單
  缺點:主記憶體空間會被佔用使得程式可用空間小,週邊擴充受限

………….

週邊設備資料傳送的方式有:
program controlled i/o(程式控制的輸入/輸出):由cpu全程使用io program(輸入輸出程式)來控制整個過程
 整體效能最差,cpu在整個過程需要介入處理,就無法執行其他程式
 成本最低,因為不需要使用額外的硬體電路
 用在早期的低速設備,使用狀態核對的技巧進行協調
interrupt driven i/o(中斷趨動的輸入/輸出):增加中斷電路的程式控制的輸入/輸出
 整體效能稍差,成本稍低
DMA(direct memory access,直接記憶體存取):不需cpu即可直接指揮週邊與主記體間資料的傳送
 整體效能較佳,不需cpu涉入其中
 成本較高,使用dma controller的硬體控制電路來指揮cpu和週邊
 可用在同步傳送的高速設備
IOPs(輸入/輸出處理器):使用成本較低的微處理器負責處理所有的輸入輸出
 整體效能最佳,可讓cpu不需處理輸入輸出,專門執行程式
 成本最高,使用專門輸入輸出運作的微處理器
 適合連接更多週邊備
ps:three basic i/o techniques是program controlled i/o,interrupt driven i/o,dma

DMA運作方式:
1cpu執行一個啟動程式來設定dma parameters,並啟動dma controller
2dma controller開始輸入輸出工作,cpu可執行其他工作
3所有輸出輸入工作完成後,由dma controller使用中斷信號通知cpu
ps:dma parameters是暫存器所需要的資料

DMA controller(DMA控制器)需要的暫存器有:
MAR(記憶體位置暫存器)
word count register(字組個數暫存器)
command register(命令暫存器)

DMA傳送資料的方式有:
cycle stealing(週期竊取):適用低速設備
 dma控制器一次只用一個記憶體bus週期傳送一個字組,就將記憶體bus使用權歸還給cpu
 依優先順序的設定可分為:
  transparent(透通性):若cpu優先權高,則週邊設備要等cpu不用記憶體bus週期時才能傳送資料
  non-transparent(非透通性):若cpu優先權高,則週邊設備可搶奪cpu正在用的記憶體bus週期
burst mode(爆發模式):適用高速設備
  dma控制器一次用多個記憶體bus週期傳送大量字組,等全部傳送結束後就將記憶體bus使用權歸還給cpu
  cpu和dma控制器同時存取主記憶體時,高速且同步運作的週邊可得較高的優先順序

IOPs運作方式
1cpu使用一個特殊指令將channel program的位址傳送給io channel
2io channel使用cycle stealing的方式,到主記憶體中取得channel program
3執行channel program完成所需要的輸入輸出運作
4全部資料傳送結束後,io channel送出中斷訊號通知cpu
ps:與資料傳送相關的參數是以一個channel program(通道程式)的型式放在記憶體單元中

i/o channel(輸入輸出通道)
可視為連接多部的dma controller,可執行不同的輸入/輸出程式,用來控制不同的週邊設備
三種製作方式:
multiplexer channel(多工器通道)
selector channel(選擇器通道)
block multiplexer channel(區塊多工器通道)

………….

週邊設備synchronization(控制協調)方式是使用控制信號
synchronization是為了讓傳送端與接收端速度能夠達到一致
介面電路的控制信號包括:
transfer mode傳送模式:指出是讀取或寫入,以及資料單位是字組或位元組
transfer timing傳送時序:負責資料送出或接收的時間,實作方式可分為同步控制協調和非同步控制協調

synchronous i/o(同步的輸入輸出):使用同步控制協調
 傳送方與接收方間有一共用計時器,並用一條控制線傳送共用計時器的時序信號,當成兩者間的transfer timing
 做法簡單,低速設備影響高速設備,可靠度低
asynchronous i/o(非同步的輸入輸出):使用非同步控制協調
 傳送方與接收方使用ready(備妥信號)和accept(接收信號)當成兩者間的transfer timing
 使用handshake protocol進行互動的協調
 做法複雜,高速設備不受低速設備影響,可靠度佳
handshake protocol(握手協定)
傳送方使用ready通知接收方資料己傳送,在由接收方使用accept通知傳送方己接收,兩者間需等到對方回應後才可繼續動作

……………………………………….

bus arbitration匯流排仲裁器
協調多個bus master使用匯流排的順序
bus master(匯流排控制者)是具有要求使用匯流排能力的硬體單元
ex:cpu

製作bus arbitration需要控制線,包括:
bus request(匯流排要求線)
bus grant(匯流排同意線)
bus busy(匯流排忙碌線)

匯流排頻寬配置策略有:
static bus arbitration(靜態匯流排仲裁)
dynamic bus arbitration(動態匯流排仲裁)

匯流排分配策略有:
priority(優先權為主)
fairness(公平分配)
combined(混合方式)

匯流排回收策略有:
release on request(要求時釋放)
release when done(傳送後釋放)
preemption(搶奪後釋放)