PCI hole

PCI hole

The PCI hole or PCI memory hole is a limitation of 32-bit hardware and 32-bit operating systems that causes a computer to appear to have less memory available than is physically installed.[1] This memory addressing limitation and the later workarounds necessary to overcome it are functionally similar to the memory limits of the early 8088 IBM PC memory architecture (see Conventional memory).

Similar situations have often arisen in the history of computing, when hardware intended to have up to a certain level of resources is designed to handle several times the maximum expected amount, which eventually becomes a severe restriction as Moore's law increases resources economically available. The original IBM PC was typically supplied with 64kB or memory or less; it was designed to take a maximum of 640kB, far more than it was thought would ever be needed. This rapidly became a restriction that had to be handled by complex DOS memory management. Similar successive restrictions in size have been imposed and overcome on hard drives.

Contents

Hidden memory

The loss of usable memory caused by the PCI hole is because installed hardware devices need address space in order to communicate with the processor and the system software. 32-bit hardware only has 4 gigabytes of total addressable memory so for devices to have room to communicate, some of the real physical memory is hidden to provide space for the installed devices. (With 16 bits, 2 to the power of 16 = 65,536 different locations can be addressed; with 32 bits, 4,294,967,296; and with 64 bits 18,446,744,073,709,551,616.)

The amount of system memory that is hidden and unavailable varies widely with the mainboard and chipset used, the BIOS, the amount of physical memory, the amount of Video RAM installed on graphics cards, and the number and type of PCI cards installed in the system. More than a gigabyte of 32-bit system memory can be unavailable when 4 gigabytes of physical memory and multiple 3D cards with large amounts of video memory are installed; on some mainboards, the hole is always at least 1 gigabyte in size, no matter what cards are installed.

Physical address extension

A workaround first developed in the Pentium Pro, known as Physical Address Extension, allows certain 32-bit operating systems to access up to 36-bit memory addresses, even though individual programs are still limited to operating within 32 bits of address space. Each program can have its own 4 gigabyte addressing space, together utilizing up to 64 gigabytes of memory across all programs. This was fully supported in Windows XP up to the Service Pack 1 (SP1) release, but then withdrawn for SP2; the only 32-bit versions of Microsoft Windows to fully support this are certain high-end server versions of Windows Server 2003 and earlier; it remained in use by some 32-bit Linux distributions. Microsoft disabled the support in Windows XP SP2 and later operating systems because there were many compatibility problems with graphics card and other devices, which needed PAE-aware drivers, distinct from both standard 32-bit and later 64-bit drivers[2]. Many versions of MS Windows can activate what is still called Physical Address Extensions for the purpose of using the NX bit, but this no longer extends the address space.

Filling the memory hole

Mapping devices to addresses above 4GB

The limitations of the 32-bit PCI hole can affect purely 64-bit operating systems as the system BIOS must cater for all operating systems which are supported by the hardware (16-, 32-, and 64-bit operating systems all run on the same hardware). The BIOS must be able to boot mapping all devices below 4 gigabytes, although a 64-bit system does not require this. Many BIOSes can be configured by the user to disable support for booting in 32-bit mode, mapping devices high up in the 64-bit address space to eliminate the hole, so long as the devices, their drivers, and the chipset all support this. The BIOS setup may need to be temporarily changed to boot from a 32-bit live CD or similar.

Mapping memory to addresses above 4GB

Another way to remove the PCI hole, which is only useful for 64-bit operating systems and obsolescent 32-bit systems that support the Physical Address Extension method described above, is to "remap" some or all of the memory between the 2 gigabytes and 4 gigabytes limits to addresses above 4 gigabytes. This needs to be supported by the chipset of the computer and can usually be activated in the BIOS Setup. This remapping works on the level of physical addresses, unlike the higher-level remapping of virtual to physical addresses that happens inside the CPU core. Activating this for traditional 32-bit operating systems does more harm than good, as the remapped memory (often larger than the PCI hole itself) is unusable to such operating systems, even though e.g. Windows Vista will show such memory to physically exist on the "System Properties" page.

References

See also


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Memory hole (disambiguation) — Not to be confused with Memory leak. Memory hole may refer to: The memory hole, a concept in George Orwell s Nineteen Eighty Four In computing, it may refer to: The Memory Hole (web site) founded in 2002 In a computer a slab, a contiguous area of …   Wikipedia

  • Computer form factor — For computers form factors both larger and smaller than desktop personal computers, see list of computer size categories. In computing, a form factor specifies the physical dimensions of major system components. Specifically, in the IBM PC… …   Wikipedia

  • Wireless security — An example wireless router, that can implement wireless security features Wireless security is the prevention of unauthorized access or damage to computers using wireless networks. Many laptop computers have wireless cards pre installed. The… …   Wikipedia

  • Oscilloscope types — This is a subdivision of the Oscilloscope article, discussing the various types and models of oscilloscopes in greater detail. Contents 1 Cathode ray oscilloscope (CRO) 1.1 Dual beam oscilloscope 2 Analog storage oscilloscope …   Wikipedia

  • IBM Personal System/2 — infobox computer Developer = International Business Machines Corporation (IBM) Type = Professional Computer Released = April, 1987 Processor = 8 MHz Intel 8086 Website = [http://www.computercraft.com/docs/ps2sect.shtml www.computercraft.com] The… …   Wikipedia

  • Dolby Digital — logo Dolby Digital is the name for audio compression technologies developed by Dolby Laboratories. It was originally called Dolby Stereo Digital until 1994. Except for Dolby TrueHD, the audio compression is lossy. The first use of Dolby Digital… …   Wikipedia

  • ThinkPad — Infobox Computer name = ThinkPad series developer = IBM (1992 2005) Lenovo (2005 Present) type = Laptop photo = caption = IBM ThinkPad R51 first release date = 1992ThinkPad is a brand of portable laptop and notebook personal computers originally… …   Wikipedia

  • Computer case screws — From left to right: a 6 32 thumbscrew, a 6 32 screw, an M3 screw, and a self tapping screw for case fans Computer case screws are the hardware used to fasten together parts of a computer case and to fasten the system components (such as… …   Wikipedia

  • Wheaton, Illinois — Chicagoland municipality muni name = Wheaton muni = City date = 1859 state = Illinois county = DuPage township = Milton gov = Council manager head label = Mayor gov head = Michael J. Gresk pop = 55,416 elevation ft = 758 status = up percent =… …   Wikipedia

  • Pebble Beach, California — Pebble Beach redirects here. For the golf course, see Pebble Beach Golf Links. For other uses, see Pebble Beach (disambiguation). Pebble Beach   Unincorporated community   …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”