FACTOID # 12: It's not the government they hate: Washington DC has the highest number of hate crimes per capita in the US.
 
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 
   
 
WHAT'S NEW
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > IOMMU
Comparison of the I/O memory management unit (IOMMU) to the memory management unit (MMU).
Comparison of the I/O memory management unit (IOMMU) to the memory management unit (MMU).

The IOMMU or input/output memory management unit is a computer memory management unit (MMU) that connects a DMA-capable I/O bus to the primary storage memory. Like the CPU memory management unit, an IOMMU takes care of mapping virtual addresses (also called device addresses or I/O addresses) to physical addresses and some units guarantee memory protection from misbehaving devices. Image File history File links Wiki_letter_w. ... Image File history File links Size of this preview: 602 × 600 pixel Image in higher resolution (1128 × 1124 pixel, file size: 17 KB, MIME type: image/png) A diagram, comparing the memory management unit to the I/O memory management unit. ... Image File history File links Size of this preview: 602 × 600 pixel Image in higher resolution (1128 × 1124 pixel, file size: 17 KB, MIME type: image/png) A diagram, comparing the memory management unit to the I/O memory management unit. ... This 68451 MMU could be used with the Motorola 68010 MMU, short for memory management unit or sometimes called paged memory management unit as PMMU, is a class of computer hardware components responsible for handling memory accesses requested by the CPU. Among the functions of such devices are the translation... In computing, input/output, or I/O, is the collection of interfaces that different functional units (sub-systems) of an information processing system use to communicate with each other, or the signals (information) sent through those interfaces. ... This 68451 MMU could be used with the Motorola 68010 MMU, short for memory management unit or sometimes called paged memory management unit as PMMU, is a class of computer hardware components responsible for handling memory accesses requested by the CPU. Among the functions of such devices are the translation... Direct memory access (DMA) is a feature of modern computers, that allows certain hardware subsystems within the computer to access system memory for reading and/or writing independently of the central processing unit. ... In computer architecture, a bus is a subsystem that transfers data or power between computer components inside a computer or between computers and typically is controlled by device driver software. ... It has been suggested that this article or section be merged with Physical memory. ... Die of an Intel 80486DX2 microprocessor (actual size: 12×6. ... Virtual address In computer terminology a virtual address is an address not identifying a logical interface or device, but to a virtual (not physical) entity. ... In computer science, a physical address is the address presented to a computers main memory in a virtual memory system, in contrast to the virtual address which is the address generated by the CPU. Virtual addresses are translated into physical addresses by a memory management unit (abbreviated MMU). ... Memory protection is a system that prevents one process from corrupting the memory of another process running on the same computer at the same time. ...


An example IOMMU is the Graphics Address Remapping Table (GART) used by AGP and PCI Express graphics cards. The Graphics Address Remapping Table (GART) is an I/O memory management unit used by AGP and PCI Express graphics cards, through which textures, polygon meshes and other data is loaded directly from the computers physical memory utilizing DMA. See also Agpgart Category: ... This article or section does not adequately cite its references or sources. ... PCI Express (formerly known as 3GIO for 3rd Generation I/O, not to be mistaken with PCI-X) is an implementation of the PCI computer bus that uses existing PCI programming concepts and communications standards, but bases it on a much faster serial communications system. ...


AMD has published a specification for IOMMU technology in the HyperTransport architecture[1]. Intel has published a specification for IOMMU technology as Virtualization Technology for Directed I/O, abbreviated VT-d.[2] Advanced Micro Devices, Inc. ... Intel Corporation (NASDAQ: INTC, SEHK: 4335), founded in 1968 as Integrated Electronics Corporation, is an American multinational corporation that is best known for designing and manufacturing microprocessors and specialized integrated circuits. ...

Contents

Advantages

The advantages of having an IOMMU, compared to direct physical addressing of the memory, include:

  • Large regions of memory can be allocated without the need to be contiguous in physical memory — the IOMMU will take care of mapping contiguous virtual addresses to fragmented physical addresses. Thus, the use of vectored I/O (scatter-gather lists) can sometimes be avoided.
  • Memory protection from malicious or misbehaving devices – a device cannot read or write to memory that hasn't been explicitly allocated (mapped) for it.
  • For devices that do not support memory addresses long enough to address the entire physical memory, the device can still address the entire memory through the IOMMU. This avoids overhead associated with buffer copies to and from the memory space the peripheral can address.
  • Virtualized guest operating systems can safely be granted direct access to hardware.

All these advantages are also available when communicating with devices through I/O ports, although with a significant CPU overhead when moving large volumes of data (see direct memory access). Vectored I/O, also known as scatter/gather I/O, is method of input and output by which a single procedure call sequentially writes data from, or reads data into, a vector of buffers, to or from, respectively, a data stream. ... In computing, virtualization is a broad term that refers to the abstraction of computer resources. ... Memory-mapped I/O (MMIO) and port I/O (also called port-mapped I/O or PMIO) are two complementary methods of performing input/output between the CPU and I/O devices in a computer. ... Direct memory access (DMA) is a feature of modern computers, that allows certain hardware subsystems within the computer to access system memory for reading and/or writing independently of the central processing unit. ...


In general, the IOMMU provides isolation (memory protection) and address translation. Some architectures allow for interrupt remapping that is similar to address translation. Memory protection is a system that prevents one process from corrupting the memory of another process running on the same computer at the same time. ...


IOMMU in relation to virtualization

When an operating system is running in a virtual machine, including systems that use paravirtualization, such as the Xen, it does not usually know the physical addresses of memory that it accesses. This makes providing direct access to the computer hardware difficult, because if the OS tried to instruct the hardware to perform a direct memory access, it would likely corrupt the memory, as the hardware does not know about the mapping between the virtual real addresses used by the virtualized guest system. The corruption is avoided because the hypervisor or OS intervenes in the I/O operation to apply the translations; unfortunately, this injects delays and overhead in the I/O operation. In computing, paravirtualization is a virtualization technique that presents a software interface to virtual machines that is similar but not identical to that of the underlying hardware. ... Xen is an open source virtual machine monitor, or hypervisor, developed by the University of Cambridge. ... Direct memory access (DMA) is a feature of modern computers, that allows certain hardware subsystems within the computer to access system memory for reading and/or writing independently of the central processing unit. ...


An IOMMU can solve this problem by re-mapping the addresses accessed by the hardware according to the same (or a compatible) translation table used by the virtual machine guest[3].


See also

Virtual memory is an addressing scheme implemented in hardware and software that allows non-contiguous memory to be addressed as if it is contiguous. ... Memory-mapped I/O (MMIO) and port I/O (also called port-mapped I/O or PMIO) are two complementary methods of performing input/output between the CPU and I/O devices in a computer. ... Direct memory access (DMA) is a feature of modern computers, that allows certain hardware subsystems within the computer to access system memory for reading and/or writing independently of the central processing unit. ...

References

  1. Bottomley, James (2004-05-01). "Using DMA". Linux Journal. 
  1. ^ AMD I/O Virtualization Technology (IOMMU) Specification Revision 1.0. Retrieved on 2006-02-01.
  2. ^ Mainstreaming Server Virtualization: The Intel Approach. Retrieved on 2006-03-01.
  3. ^ Xen FAQ: In DomU, how can I use 3D graphics. Retrieved on 2006-12-12.

 
 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:

 


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m