Can anyone explain what's the difference between port mapping and memory mapping, and what having both accomplishes? Why is there port mapped, how does it differ in structure from memory maps, and is there any reason many architectures use both? Also, what is a "port" in this sense, because port can mean different things in different contexts?
Example: Port forwarding, port as a communications endpoint, "port mapping".
Say I write OUT to port 400h (fictive; just for example) (like in x86-64, etc.).
What or where am I writing to if it's not in memory? How is a "port" mapped, and what is it in this sense?