Graphics Execution Manager
Encyclopedia
The Graphics Execution Manager (GEM) is a computer software
system developed by Intel
to do memory management
for device drivers for graphics chipsets
.
GEM manages graphics memory (which means dealing with Non-Uniform Memory Access
(NUMA) on modern graphics chipsets) and control the execution context for graphics-related code. They allow multiple applications to share graphics device resources without the need to store and restore the entire graphics card state between changes. GEM ensures conflict-free sharing of data between applications by managing the memory synchronization. It uses many existing kernel subsystems for its operations and hence has a very modest code size.
GEM is included in the Linux kernel
from version 2.6.28 for use by drivers for Intel graphics hardware.
Drivers for ATI Radeon
and VIA S3
chipsets now use a "GEM-ified TTM manager", which provides the same interface as GEM but uses TTM internally.
GEM is also designed to be compatible with "*BSD" kernels.
GEM's API
is documented in the original announcement of GEM.
, starting in May 2008, as a minimalist, easy-to-use alternative to the Translation Table Maps memory manager developed by Tungsten Graphics.
However, GEM caused problems for non-Intel developers and collided with current X.Org Server
development (notably DRI2
and new EXA
acceleration architecture), leading some developers to use a "GEM-ified TTM manager".
Computer software
Computer software, or just software, is a collection of computer programs and related data that provide the instructions for telling a computer what to do and how to do it....
system developed by Intel
Intel Corporation
Intel Corporation is an American multinational semiconductor chip maker corporation headquartered in Santa Clara, California, United States and the world's largest semiconductor chip maker, based on revenue. It is the inventor of the x86 series of microprocessors, the processors found in most...
to do memory management
Memory management
Memory management is the act of managing computer memory. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and freeing it for reuse when no longer needed. This is critical to the computer system.Several...
for device drivers for graphics chipsets
Graphics processing unit
A graphics processing unit or GPU is a specialized circuit designed to rapidly manipulate and alter memory in such a way so as to accelerate the building of images in a frame buffer intended for output to a display...
.
GEM manages graphics memory (which means dealing with Non-Uniform Memory Access
Non-Uniform Memory Access
Non-Uniform Memory Access is a computer memory design used in Multiprocessing, where the memory access time depends on the memory location relative to a processor...
(NUMA) on modern graphics chipsets) and control the execution context for graphics-related code. They allow multiple applications to share graphics device resources without the need to store and restore the entire graphics card state between changes. GEM ensures conflict-free sharing of data between applications by managing the memory synchronization. It uses many existing kernel subsystems for its operations and hence has a very modest code size.
GEM is included in the Linux kernel
Linux kernel
The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....
from version 2.6.28 for use by drivers for Intel graphics hardware.
Drivers for ATI Radeon
Radeon
Radeon is a brand of graphics processing units and random access memory produced by Advanced Micro Devices , first launched in 2000 by ATI Technologies, which was acquired by AMD in 2006. Radeon is the successor to the Rage line. There are four different groups, which can be differentiated by...
and VIA S3
S3 Graphics
S3 Graphics, Ltd is an American company specializing in graphics chipsets. Although they do not have the large market share that they once had, they still produce graphics accelerators for home computers under the "S3 Chrome" brand name.-History:...
chipsets now use a "GEM-ified TTM manager", which provides the same interface as GEM but uses TTM internally.
GEM is also designed to be compatible with "*BSD" kernels.
GEM's API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...
is documented in the original announcement of GEM.
History
GEM was developed by IntelIntel Corporation
Intel Corporation is an American multinational semiconductor chip maker corporation headquartered in Santa Clara, California, United States and the world's largest semiconductor chip maker, based on revenue. It is the inventor of the x86 series of microprocessors, the processors found in most...
, starting in May 2008, as a minimalist, easy-to-use alternative to the Translation Table Maps memory manager developed by Tungsten Graphics.
However, GEM caused problems for non-Intel developers and collided with current X.Org Server
X.Org Server
X.Org Server refers to the X server release packages stewarded by the X.Org Foundation,which is hosted by freedesktop.org, and grants...
development (notably DRI2
Direct Rendering Infrastructure
In computing, the Direct Rendering Infrastructure is an interface and a free software implementation used in the X Window System to securely allow user applications to access the video hardware without requiring data to be passed through the X server. Its primary application is to provide...
and new EXA
EXA
In computing, EXA is a graphics acceleration architecture of the X.Org Server designed to replace XAA and to make the XRender extension more usable, with only minor changes needed to adapt XFree86 video drivers written to use XAA; it was designed by Zack Rusin and announced at LinuxTag 2005 and...
acceleration architecture), leading some developers to use a "GEM-ified TTM manager".
See also
- Graphical Environment ManagerGraphical Environment ManagerGEM was a windowing system created by Digital Research, Inc. for use with the CP/M operating system on the Intel 8088 and Motorola 68000 microprocessors...
(GEM), a graphical windowing system by Digital Research
External links
- GEM update by Keith PackardKeith PackardKeith Packard is a software developer, best known for his work on the X Window System.Packard is responsible for many X extensions and technical papers on X...
, 4 Jul 2008 - TTM entry at X.orgX.Org FoundationThe X.Org Foundation is the organization holding the stewardship for the development of the X Window System. It was founded on 22 January 2004....
's wikiWikiA wiki is a website that allows the creation and editing of any number of interlinked web pages via a web browser using a simplified markup language or a WYSIWYG text editor. Wikis are typically powered by wiki software and are often used collaboratively by multiple users. Examples include... - GEM - the Graphics Execution Manager - detailed GEM information by Keith PackardKeith PackardKeith Packard is a software developer, best known for his work on the X Window System.Packard is responsible for many X extensions and technical papers on X...