輸出與輸入設備是在嵌入式系統裡面,佔有一個很重要的位置,所有的輸入輸出系統都必須透過設備控制暫存器,在運算的期間,會再次存取設備控制暫存器,並設定資料傳輸的請求,在這些控制的過程,就必須要決定設備的port是埠映射還是記憶體映射。
(1)埠映射是什麼?
埠映射就是將外部網路的IP位址上的埠映射到內網的一台主機上,當訪問這個外網ip的埠,就會將用戶的請求轉到指定的主機中。舉例來說,一台能上網的路由器就是一個ip地址,但是同時連接一台路由器的電腦卻有很多台,這麼多台電腦的外網ip地址都是一樣的,到底誰才是主要要傳送ip的電腦呢?這時候,就需要應用到埠映射了,如果位址是1.1.1.1:80800,再假如其中一台k電腦的內網地址是192.168.1.112埠80,這時候如果有人訪問我們外網ip的80800埠,就請求到k電腦192.168.1.112的80埠,這樣就能找到k電腦了。
(2)記憶體映射是甚麼?
就是使用相同的位址匯流排來定址記憶體和輸入輸出裝置,如果記憶體和暫存器都已經事先被對映到記憶體空間的某個位址上的時候,當CPU存取某個位址的時候,就可以存取輸出入裝置上的記憶體來取得CPU要的位址。如果是一般應用的話,通常記憶體是暫時性的保留,但是如果是X86架構下的,就是永久保留。換句話說,就是利用記憶體記憶位址的方式來存取輸出入設備。
在此要注意,如果傳輸速度跟不上輸出入設備,可建議使用DMA(direct memory access)晶片來解決速度跟不上的問題,此種方式,可以減低CPU運算時間。