|
Free Open Book
PC Hacks 100 Industrial-Strength Tips and Tools |
Basic PC Configuration RulesThe details of how the PC turned from a renegade project at IBM to a mega-industry go a long way toward explaining the limitations of the systems we have today. The basic PC configuration rules explain why even some new components consume both old and new resources. The original IBM PC provided a meager hardware addressing range 400 bytes wide into which all the possible hardware (at the time) would exchange commands and data. In addition, eight interrupt request lines (IRQs) were available for hardware to signal the CPU and operating system that attention was needed. Further, it was anticipated that some devices would benefit from direct memory access (DMA) capabilities, and six channels were provided for that. Within the PC, there are a few prescribed devices and functions that are absolutes no matter the generation, architecture, manufacturer, CPU, chipset, or peripherals involved. The system is destined to have timers, clocks, and a keyboard but no reservation for a display or I/O devices, which are optional. 8.2.1 The Bad Old DaysShortly into the life of the PC, IBM and other vendors began to incorporate some new devices that led to the explosion of the PC into the consumer and business market. For the first three to four years of the PC's existence, the resources available for expansion and functionality were adequate, but in the years after that, they proved quite limiting. The resources, devices, and obvious limitations for expansion are listed in Table 8-1. This table represents the basic PC/AT (286 and higher) configuration, including many add-on components that were developed along the way, before PCI and Plug and Play began to change the PC platform. Note that several devices/functions, marked with an asterisk (*) in the "System device" column, are dedicated system devices—these represent resources and functions that cannot be altered.
Most of the devices in early PCs, from essential system resources through hard drive interfaces and video cards, provided little or no hardware configuration options: they use fixed I/O addresses and IRQs, and anything you added to the system had to work around what was left. Even in a PC-AT system, you have only 16 total IRQs and 6 total DMA channels to choose from, with seven of the IRQs (0, 1, 2, 6, 8, 9, 13) taken by the system and another three taken by normal devices (hard drive using 14 and 15, and mouse port using 12). This leaves only six IRQ (3, 4, 5, 7, 10, and 11) lines to work with. With COM ports 1 and 2 present, even if those ports are not in use, IRQ 3 and 4 are spoken for, leaving four lines for expansion. The PC-AT architecture ties up two IRQ lines, 2 and 9, to accommodate devices on the 16-bit ISA bus. IRQ2 has typically never been accessible on either 8- or 16-bit ISA I/O slots because it is the IRQ line used by the second IRQ chip that provides IRQs 8-15 to the 16-bit bus. Whether or not you can use IRQ9 for an add-in device has been an ongoing question for years because it was thought that the IRQ-handling code in BIOS and operating systems confused it with IRQ2. This seems not to be the case, and since the IRQ9 signal does appear on the 16-bit ISA bus connector, it seems that we can use it. Many have done so successfully and without problems. This increases the available IRQ count to five, but those five lines get used up quickly. In the PC-AT architecture, a sound card and network adapter will use up another two IRQ lines (typically IRQs 5 and 10), leaving only three lines (IRQs 7, 9, and 11) for future expansion. If you want to get a total of four serial/COM ports working simultaneously [Hack #77], you need to figure out a way to use two of these IRQ lines, leaving only one available IRQ for expansion. If you add a SCSI host adapter, IRQ 11 gets used and you're out of expansion capabilities. 8.2.2 Toward a Modern Bus: VESA, PCI, AGP, and BeyondIt's easy to see under the older architecture that if you want to add a web camera, a connection to your PDA or cell phone, an external disk drive, or any other sophisticated device, you could run out of IRQ lines and be stuck. It was obvious to Intel and Microsoft that something had to be done to provide additional expansion capabilities. This revelation was coincident with the need for higher-speed peripheral connectivity; the old 16 MHz 16-bit ISA bus was not going to deliver adequate graphics or connectivity performance for the future. The PC industry, including IBM, and later the Video Electronics Standard Association (VESA), saw the need for better performance, more configuration options, and easier configuration of the PC. Before the PC got the PCI bus (Peripheral Component Interconnect), it struggled through IBM's MicroChannel Architecture, EISA (Enhanced Industry Standard Architecture), and VESA's VLB (VESA Local Bus) enhancements on various PC models—mostly through the i80386 and i80486 generations of PCs. Intel, Microsoft, and others finally were able to create and drive to market the current PCI bus standard as well as support Plug and Play routines in the system BIOS and hardware devices. The PCI bus provides a totally separate set of electronic circuits, addressing and data lines, and configuration capabilities to the PC. PCI removes issues of exclusive IRQ assignments, expands the hardware I/O addressing range, speeds up I/O data transfer rates, and provides for automatic, or at least more intelligent, hardware device configuration. In fact, it is virtually impossible to manually configure a PCI device because there are no jumpers or switches and very few devices support setting the configuration through software; configuration is done entirely through Plug and Play processes. PCI is exactly what the PC needed to expand beyond the limitations of fixed hardware addressing and limited IRQ and DMA resources. While the premise behind PCI for reducing resource constraints still has advantages, PCI is limited in data throughput speed as a 33-MHz bus. This bus speed is not nearly fast enough for the demands of multimedia applications like games and full-motion video. The PCI bus is overdue for a speed enhancement. Just as ISA, MicroChannel, and EISA were not fulfilling the need for speed, the original PCI bus has all but outlived its ability to deliver data fast enough, leading to the evolution of PCI-X with 266 MHz and 533 MHz speeds provided in some systems. From PCI evolved the Universal Serial Bus (USB) and Texas Instruments's IEEE-1394 (also known by Apple's brand name of FireWire and Sony's brand name of i.Link), high-speed interfaces for supporting additional new devices in PCs and Apple Macintosh systems. USB removed any foreseeable restrictions on the number and type of peripheral device imaginable to date. Essentially consuming one PCI port but with a more direct interface to the CPU than the bus itself, USB 1.1 and 2.0 can accommodate up to 256 devices through a single I/O port, and USB 2.0 has achieved data transfer rates up to 57 megabytes per second (MBps), superceding the original IEEE-1394. IEEE-1394 ports have been perceived as competition to USB 1.1, but it turns out they found a niche in high-end video and data storage uses, with speeds up to 50 MBps. Adoption and use of IEEE-1394 has been slow due to technology licensing fees that increase per-system costs that can only be justified in higher-priced, higher-performance devices. While external I/O gained from USB and IEEE-1394, the inside of the PC didn't get a performance boost until the Advanced Graphics Port (AGP) was implemented, providing a dedicated path from the CPU to the video adapter. The AGP has experienced performance enhancements that take its data throughput to well above 800 MBps. Although AGP is fast, it's limited to being a single-purpose I/O path (graphics), so PCI-X is the contender for speeding up internal I/O expansion to multiple devices. PCI, USB, IEEE-1394, and AGP provide the PC with higher performance capabilities but also free up critical resources that can be used for legacy/ISA devices if you can find a system board that still has an ISA bus slot or two. 8.2.3 I/O SpeedTo give you an idea of the data throughput rates for various I/O technologies, I've provided a listing of I/O technologies and their data rates in Table 8-2. With the exception of devices connected through the PCI, USB, or IEEE-1394 interfaces, every I/O technology, including most IDE disk drive interfaces, requires legacy/ISA IRQ and possibly DMA configuration resources.
If you are feeling a bit of I/O-performance envy over the tremendous throughput of the AGP bus, you are not alone. Disk drive performance, perhaps the most significant PC performance bottleneck, could benefit significantly from higher bus and throughput speeds, but the industry is still waiting for economical disk drive technology that can accommodate higher data transfer rates.
|
Main Menu |
| 500 Juegos Gratis | 500 Giochi Gratis | 500 Jeux Gratuits | 500 Jogos Gratis | 500 Kostenlose Spiele |