Sounds like hardware terms, yes you are right. Today I will share some words what I learned regarding this. When I tried to write a Linux Device Driver I met with this requirement, so it is important for any Driver Developer to know this.

Mapping IO devices

Micro processor usually offers two mechanisms (refer title for their names) for connecting an external IO device with its address bus. For any IO device both methods are identical, it normally need to decode its address from address bus and read or write data into data bus.

Memory Mapped IO

IO devices are mapped along with RAM and ROM in system memory map.

Advantage: Simple instructions which is used to access Memory regions can be applied for IO devices too. So, accessing a hardware IO device becomes as much simple as that we are accessing a normal memory region.

Disadvantage: Is that inorder to access a single device it becomes necessary to decode all the address lines. For a 16-bit address bus it requires as much logics(gates) to resolve all the 16 address lines, it increases the hardware cost.

Example

ARM

IO Mapped IO

IO devices are mapped into separate address space. Hence the address lines gets segregated to port of IO devices and Memory. It results with small number of address lines in port address space and more number of lines in memory address space. For accessing IO ports special instructions are needed, hence more instructions are involved in this mechanisms (separate for IO devices and Memory).

Example

Intel’s X86.

Corrections are always invited..!

Enjoy…!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s