Memory mapping is the process of reserving blocks of memory in the system. Memory addresses are typically expressed in hexadecimal notations. A partial list of memory addresses might look like this:
In this particular example, we are memory mapping the I/O. It is important to note that I/O is not stored in RAM, but in different areas of the system memory, such as ROM chips on an expansion card. By assigning a particular memory map to a communications port, when the CPU is ready, it knows where to find the data (the In part of I/O). When the CPU needs to send data out, it uses this address again. This process is known as I/O Addressing.
A typical example is communication port 1. The standard memory address for Com1 is 3F8h.
While a sound card needs an I/O address, since it really is several devices on one card, the I/O address needs can (and do) vary. The challenge arrives with the fact that when I/O addresses are specified, the only part specified is the beginning of the I/O address. A device may only need as little as one byte, or as much as 64 bytes.
It would seem with 32, 64, or even 256 MB of ram, there is plenty of room to find an address. In addition, there is, however we have one little issue that shoots a hole in that logic. That would be the need for backward compatibility. Prior to Windows 95, finding I/O overlap was difficult. The routine known as Device Manager in the Control Panel->System of Windows 95 made this a much simpler process to discover I/O overlap.
Home - Table Of Contents - Contact Us
CertiGuide to A+ (A+ 4 Real) (http://www.CertiGuide.com/apfr/) on CertiGuide.com
Version 1.0 - Version Date: March 29, 2005
Adapted with permission from a work created by Tcat Houser et al.
CertiGuide.com Version © Copyright 2005 Charles M. Kozierok. All Rights Reserved.
Not responsible for any loss resulting from the use of this site.