PC Hacks 100 Industrial-Strength Tips and Tools Free Open Book

PC Hacks 100 Industrial-Strength Tips and Tools

Previous Section  < Day Day Up >  Next Section

Basic PC Configuration Rules

The 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 Days

Shortly 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.

Table 8-1. Standard legacy PC configuration

Device/function

Address

IRQ

DMA

System device

RAM refresh

 

0

 

*

System timer

40h

0

 

*

Keyboard

60h

1

 

*

Cascade (see note) for IRQ 8-15

 

2

 

*

COM2

2F8h

3

  

COM4

2E8h

3

  

COM1

3F8h

4

  

COM3

2F8h

   

LPT2

278h

5

  

Sound card

220h

1, 3, or 5

  

Diskette adapter

3F0h

6

2

*

LPT1

3BCh or 378h

7

  

Real-time clock

70h

8

 

*

Reserved for 16-bit ISA

 

9

  

ISA-bus network card

280h

10

  

SCSI adapter

330h

11

3 or 5

 

PS/2 mouse port

64h

12

 

*

Numeric coprocessor

F0h

13

 

*

Hard disk interface

1F0h

14

  

Second hard disk interface

170h

15

  

VGA card

3B0 or 3C0

   


The "cascade" designation for IRQ 2 means that the second interrupt chip for IRQs 8-15 feeds or triggers the IRQ 2 signal in the first chip. The IRQ 2 signal line is not available for use by plug-in devices or other system board devices.


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 Beyond

It'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 Speed

To 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.

Table 8-2. The maximum transfer rates for various connections

Port

Maximum data transfer rate

Serial/COM port—8250

9.6 kilobits/s

Serial/COM port—16550A

115 kilobits/s

Standard Parallel/LPT port

115 kilobytes/s (10x faster than serial/COM)

10 Base/T Ethernet

10 megabits/s

USB 1.1

12 megabits/s

ECP/EPP parallel port

3 megabytes/s

8-bit ISA bus

8 megabytes/s

16-bit ISA bus

16 megabytes/s

IDE

3.3-16.7 megabytes/s

SCSI-1

5 megabytes/s

SCSI-2 (Fast SCSI, Fast Narrow SCSI)

10 megabytes/s

100BaseT Ethernet

100 megabits/s

Fast Wide SCSI (Wide SCSI)

20 megabytes/s

Ultra SCSI (SCSI-3, Fast-20, Ultra Narrow)

20 megabytes/s

UltraIDE

33 megabytes/s

PCI bus

33 megabytes/s

Wide Ultra SCSI (Fast Wide 20)

40 megabytes/s

Ultra2 SCSI

40 megabytes/s

Ultra ATA (IDE)

66-133 megabytes/s

IEEE-1394

100-400 megabits/s

USB 2.0

480 megabits/s

Wide Ultra2 SCSI

80 megabytes/s

Ultra3 SCSI

80 megabytes/s

1000BaseT Ethernet

1,000 megabits/s

Wide Ultra3 SCSI

160 megabytes/s

FC-AL Fiber Channel

100-400 megabytes/s

AGP video bus

2.1 gigabytes/s (AGP 8x)


The speeds listed in Table 8-2 are from their respective maximum throughput specifications. Operating system, device driver, application, system hardware, cabling, and device overhead will impact the actual transfer speeds you obtain.


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.

    Previous Section  < Day Day Up >  Next Section
    Index: [SYMBOL][A][B][C][D][E][F][G][H][I][J][L][M][N][O][P][Q][R][S][T][U][V][W][X][Z]


         Main Menu
    PC Hacks
    Table of Contents
    Copyright
    Credits
    Preface
    Chapter 1. Basic System Board Hacks
    Chapter 2. Basic System Board Setup
    Chapter 3. CPU Hacks
    Chapter 4. Memory Hacks
    Chapter 5. Disk Hacks
    Chapter 6. Disk Drive Performance Hacks
    Chapter 7. Video Hacks
    Chapter 8. I/O Device Hacks
    Introduction: Hacks #75-84
    Basic PC Configuration Rules
    Hack 75 Let Windows Tell You About I/O Card Conflicts
    Hack 76 Break the Rules with LPT Ports
    Hack 77 Break the Rules with COM Ports
    Hack 78 Rewire Your COM Ports
    Hack 79 Boost COM Port Performance
    Hack 80 New Uses for an Old Port
    Hack 81 Use USB for Peer-to-Peer Networking
    Hack 82 Get the Most out of USB
    Hack 83 Install the Driver Before You Install the Hardware
    Hack 84 Please Continue Anyway
    Chapter 9. Boot-Up Hacks
    Chapter 10. Configuring a New PC
    Colophon
    Index


    More Books
    PHP Hacks
    Processing Xml With Java - A Guide To Sax, Dom, Jdom, Jaxp, And Trax
    The Koran (Holy Qur'an)
    Macromedia Flash 8 Bible
    Search Engine Optimization for Dummies
    YouTube Traffic
    PHP 5 for Dummies
    Harry Potter and The Chamber of Secrets
    Harry Potter and the Sorcerer's Stone
    The Pilgrim's Progress
    Wireless Hacks
    Flash Hacks. 100 Industrial-Strength Tips & Tools
    PayPal Hacks. 100 Industrial-Strength Tips and Tools
    Amazon Hacks
    Pdf Hacks
    The Da Vinci Code
    Google Hacks
    The Holy Bible
    Windows XP For Dummies
    Harry Potter and the Half-Blood Prince
    Seo Book
    Upgrading and Repairing Networks
    Macromedia Dreamweaver 8 UNLEASHED
    Windows XP Annoyances
    Windows XP Hacks
    Microsoft Windows XP Power Toolkit
    Teach Yourself MS Office In 24Hours
    iPod & iTunes Missing Manual
    PC Hacks 100 Industrial-Strength Tips and Tools
    PC Overclocking, Optimization, and Tuning - 2th Edition
    PC Hardware In A Nutshell 3rd Edition
    PC Hardware in a Nutshell, 2nd Edition
    Upgrading and Repairing PCs
    Google for Dummies
    MySQL Cookbook
    Teach Yourself Macromedia Flash 8 In 24 Hours
    PHP CookBook
    Sams Teach Yourself JavaScript in 24 Hours
    PHP5 Manual
    Free Games Paper Airplanes
    500 Juegos Gratis 500 Giochi Gratis 500 Jeux Gratuits 500 Jogos Gratis 500 Kostenlose Spiele