微處理器對(duì)i/o接口尋址的方式可分為兩大類,一種是內(nèi)存映射式尋址( memory mapped i/o),另一種是輸入輸出映射式尋址(i/o mapped i/o)。
內(nèi)存映射式尋址采用了i/o接口與存儲(chǔ)器統(tǒng)一編址的方式,這種方式是將i/o接口看成內(nèi)存區(qū)域中的一個(gè)或幾個(gè)單元,占用內(nèi)存區(qū)域中的一些地址。這種方式的優(yōu)點(diǎn)是,不需專門的i/o指令,而采用訪問(wèn)內(nèi)存的指令來(lái)訪問(wèn)i/o接口。一般來(lái)說(shuō),訪問(wèn)內(nèi)存的指令功能是比較強(qiáng)的,因而這種方法可以像訪問(wèn)內(nèi)存那樣,直接對(duì)i/o接口的信息進(jìn)行處理。這種方式的缺點(diǎn)是地址的利用率較低。i/o接口占用內(nèi)存的一部分地址,使得內(nèi)存可尋址的區(qū)域減少。由于存儲(chǔ)器需占用的地址由該芯片的容量決定,且其占用的地址必須是連續(xù)的,因此當(dāng)i/o接口占用一部分地址時(shí),與其相連的一些地址不能為存儲(chǔ)器使用。在微控制器89c51中就采用了這種方法,其數(shù)據(jù)存儲(chǔ)器的尋址空間為64k字節(jié),如需擴(kuò)展部分i/o接口,將減少存儲(chǔ)器擴(kuò)展的尋址空間,如在系統(tǒng)中采用8k的存儲(chǔ)器芯片,則即使擴(kuò)展一個(gè)地址的i/o接口也會(huì)占用8k的地址。
輸入輸出映射式編址的方法,又稱為i/o接口單獨(dú)編址方式,它將i/o接口地址區(qū)域與內(nèi)存地址區(qū)域單獨(dú)編排。在實(shí)際使用時(shí)將微處理器提供的地址信號(hào)作為存儲(chǔ)器尋址的地址信號(hào),同時(shí)此地址信號(hào)或其中的一部分還可用作i/o接口的地址信號(hào)。在指令系統(tǒng)中有專門的訪問(wèn) i/o接口的指令。在執(zhí)行存儲(chǔ)器訪問(wèn)指令和i/o訪問(wèn)指令時(shí),微處理器發(fā)出不同的控制信號(hào)(即存儲(chǔ)器選中或i/o接口選中信號(hào)),此控制信號(hào)和地址信號(hào)相結(jié)合來(lái)區(qū)分當(dāng)前的操作是存儲(chǔ)器訪問(wèn)還是i/o訪問(wèn)。單獨(dú)編址方式的優(yōu)點(diǎn)是i/o接口不占用內(nèi)存區(qū)域的地址,其缺點(diǎn)是訪問(wèn)i/o接口的指令功能不強(qiáng),一般只有傳送類指令,而沒(méi)有運(yùn)算類指令。在微處理器z80、intel 8086/8088中采用了這種方式,這兩種微處理器的指令系統(tǒng)中都具有專門的輸入輸出指令,而控制信號(hào)則有存儲(chǔ)器選中和i/o接口選中信號(hào)。