Plug and Play - JMU



Plug and Play

Or

Plug and Pray

CS 350 Computer Organization Section 0002

Spring 2004

James Jacobs

Jonathan Joyce

Table of Contents

Introduction 3

Plug and Pray 3

IEEE 1394 4

OHCI - Implementing IEEE 1394 4

Universal Serial Bus (USB) 4

Parallel Port (LPT) 5

Industry Standard Architecture (ISA) 5

Small Computer System Interface (SCSI) 7

ATA 7

PCI 8

Serial 9

PCMCIA 10

Conclusion 10

Acronyms 11

Bibliography 12

Introduction

Plug-and-play technology is a standard used for all types of computer devices to be able to be configured automatically by the operating system upon installation. (Webopedia, 2004). The purpose is to make computers more user-friendly and less of a hassle by eliminating the need to deal with hardware configurations. It does this by having the operating system and / or the BIOS automatically assign the I/O addresses, IRQs, and DMA channels of the new hardware so that it does not conflict with any other hardware. (Andrews, 2003). Plug-and-play is not specific to IBM compatibles; it is also found in Macintosh systems. Linux has some plug-and-play capabilities, but tends to be buggy. (Lawyer, 2003). The plug-and-play found in Macintoshes or Linux still works the same at the hardware level, but the operating systems manage drivers differently.

In the original plug-and-play configurations, the motherboard BIOS played a large role in the device setup. Originally, the BIOS was responsible for the hardware steps, and the operating system only had to install the driver. (Intel and Microsoft, 1994). However, since Windows 2000, the operating system is the only active process needed. (Andrews, 2003). This advancement allows greater overall compatibility, because the motherboard no longer needs to be changed for new hardware. The update can happen with a simple software download.

According to Microsoft, "Plug and Play technologies are defined for IEEE 1394, PCI, PC Card/CardBus, USB, SCSI, ATA, ISA, LPT, and COM." (Microsoft, 2001a). Since these devices operate differently, it is important to look at each individually.

Plug and Pray

This was (and still is to some extent) a very common term used for plug and play. This was used to describe the unpredictable outcome of the early versions of plug and play. Plug and play was a big hassle to some, which is the exact opposite of what it is suppose to do (it was designed to make the configuration of a system simpler and easier). When it first came out with Windows 95, there were a lot of problems. Since it was a new complex technology involving quite a few non-industry standardized devices, problems were bound to occur. Some devices could not be configured, or they were configured with conflicts. However, as time went on, many of the bugs were corrected, and plug and play works pretty well with modern operating systems. There still are some problems with plug and play though. One problem is that the user is turning over control of his computer to the computer itself. Many people have problems with this idea because they like to be in control at all times. Another problem is if a device is put at a certain location that you do not want, it can be difficult to change. This should not be a problem if no devices are being manually set up, but if even one device is set up manually, there could be conflict. If the BIOS and OS put a device where you manually configured one to, one would have to change the other device to resolve the conflicts.

IEEE 1394

IEEE 1394 is a technology standard for transmitting real-time data between computers, peripherals, and electronic equipment. It was originally developed in 1986 by Apple Computer under the name "FireWire." (1394 Trade Association, 2004). In order for manufacturers to become 1394 certified, they must apply to the 1394 Trade Association. The licensing fee for using 1394 Technology is $0.25 per system. (Microsoft, 2001b). Companies may also choose to join the association, so that they can vote for future changes to the technology. A full membership costs $8000 if the company applying grosses over two million dollars a year, and $4000 if they make less than that. (1394 Trade Association, 2004). Companies also have the option to join as a non-paying subsidiary, but then they do not have any say in the future of the association. (1394 Trade Association, 2004).

IEEE 1394 can be considered a high-speed bus for external devices. It transfers data anywhere from 100 to 3200 Mbps, depending on the cable connecting the device. (Microsoft, 2001b). Up to 63 devices can be connected all running independently of the processor. Unlike with other devices, devices connecting with 1394 must provide their own power supplies, but can must be sent a minimum of 20 volts and 15 watts through the power connector. (Microsoft, 1999). IEEE 1394 is implemented using Open Host Controller Interface (OHCI), which relays information between the buses, and links the devices with Direct Memory Access (DMA). (Microsoft, 1999).

OHCI - Implementing IEEE 1394

OHCI uses DMA and device interrupts to communicate with the rest of the computer. (Microsoft et. al. 2000a) It has two registers, each having a "Set" and a "Clear" address. (Microsoft et. al. 2000a). They operate like a set / reset gate, where the bits are turned on if a 1 is sent to the "Set," and off if a 1 is sent to the "Clear." Using this information, the OHCI port can control its transmitting and receiving operations. The OHCI port is simply an interface connecting the IEEE 1394 device and a bus. The bus does not have to be a specific 1394 bus, but could instead be a PCI bus. (Microsoft et. al. 2000a). It can transmit and receive information from the bus, as well as tell the system if a device is present.

Universal Serial Bus (USB)

The Universal Serial Bus was created to enhance plug-and-play to a new level. The idea was that if all external devices had the same plug type, then it would be easier for users to add new peripherals to their computers. For motherboard manufacturers, having only one plug type would prevent the problem of having to add in new connections for new devices. Whereas before USB there was a separate connection for keyboard, mouse, printer, etc., now these can all be connected to one type of slot. In addition, digital cameras, storage devices, and other new technology can be connected without a need for a hardware modification. In the event that all the USB slots on the computer are used, a USB hub can be purchased, which for instance turns one connection into four. If a parallel port connection is needed, but only USB slots are free, conversion cables can be easily obtained, and often come with products as an option. USB works with Apple, Linux, and Windows computers, allowing USB vendors to grab a larger market with their devices.

In its operation, USB is very similar to IEEE 1394. However, USB can only transfer up to 480 Mbps, whereas the 1394 can transfer up to 3200 Mbps. (Microsoft et. al. 2000b). USB is currently on version 2.0, but retains backward compatibility with the previous versions. The main expansion is the increased bandwidth for better multimedia streaming, but it also supports more classes of devices. USB works by being polled by a host controller. The USB communicates with the host controller by receiving a token packet and passing it to the correct device, which is addressed in the packet. Then the device sends a packet back indicating that the transaction was successful. (Microsoft et. al. 2000b).

USB is considered a "hot" plug-and-play device because the devices can be added and removed while the system is on. This works because the USB hub connectors have status bits to indicate if they are attached to something or not. (Microsoft et. al. 2000b). Once a device is plugged in, a unique USB address is assigned to the new device. If the device is a hub, it will check to see if other devices are connected, otherwise it will notify the appropriate software that a new device has been connected. (Microsoft et. al. 2000b).

Parallel Port (LPT)

Today's standards for the parallel port, often referred to as the printer port (LPT stands for line printer), are largely based on IEEE 1284, a specification made in 1994 by printer manufacturers. (Warp Nine, 2004a). IEEE 1284 is entitled "Standard Signaling Method for a Bi-directional Parallel Peripheral Interface for Personal Computers." (Warp Nine, 2004a). This brought forth the invention of the Enhanced Parallel Port (EPP) and the Enhanced Capabilities Port (ECP). (Warp Nine, 2004b). With these modifications, the parallel port was close to becoming the most useful and adaptable port, even over USB with a data transfer speed of 3-5 MB/s. Later, USB regained footing and overtook the parallel port as the dominant device connector.

As a plug-and-play device, the parallel port must support IEEE 1284 as well as be able to get a device's class, name, and compatible drivers. (Microsoft, 1996). Once this information is collected and everything works correctly, the device can operate as it would before the addition of plug-and-play features. The ECP host communicates with the device in the instance that something needs to be done.

Industry Standard Architecture (ISA)

The ISA slots are internal computer components used for connecting cards to extend the operations of the motherboard. This 16 bit architecture is slowly being fazed out and replaced with 32 bit PCI slots. ISA was originally developed in 1984 with the Intel 8088. (Kozierok, 2001a). Since then, the ISA bus has remained part of the PC, and is still used by some devices which don't require intense speeds, mostly dial-up modems.

Plug and play for ISA cards is simpler than that of external devices because it does not need to keep track of a possible connection hierarchy, nor does it allow "hot plugging." The device only needs to be configured when it is first inserted into the motherboard, or when the operating system information is deleted. Here are the steps for configuring an ISA device without using the BIOS, as it is currently done:

[pic] (Microsoft, 1994a).

The three main register locations used for ISA plug and play are as follows:

[pic] (Microsoft, 1994a)

Since each register location has several registers created by the vendor, the vendor can use them for plug-and-play. (Microsoft, 1994a). In other words, the vendor can add special functionality for the plug-and-play process to configure the device better or perhaps get user input.

Small Computer System Interface (SCSI)

SCSI was originally developed by Apple Computer as a device interface. Today it is synonymous with high performance in all types of systems. Since it is rare for most motherboards to have initial SCSI support, the ability for plug-and-play capabilities are not as urgent as the more commonly used components. A standard has not been created yet, but a profile has been defined. Most of the work for configuring SCSI devices is already done by themselves. SCSI devices only need a host adapter such as ISA, PCI, or PCMCIA, and use their processes for configuring devices. (Microsoft, 1994b). The SCSI device is then assigned an ID to be referenced, and continues operation using its own protocols. (Microsoft, 1994b).

ATA (Advanced Technology Attachment)

Plug and Play ATA was a proposal made by Quantum and Hewlett-Packard (HP) to simplify the sets of setting up ATA hard disk drives. They proposed to do this by doing away with the master and slave jumpers on the hard disks. Quantum and HP’s idea never really got very far. This was the case for many reasons. Hard disks have been coming with a jumper labeled cable select for many years already when Quantum and HP made this proposal. Cable select allows the hardware to configure the hard disk(s) to either master or slave automatically. This is the basic concept of plug and play. “The other main requirement seems to be support for the “Identify Drive command to allow autodetection of drive size and other parameters on the part of the system BIOS. But again, this is already supported by every IDE/ATA drive made since at least the mid-1990’s.” (Kozierok, 2000). Quantum and HP’s proposal really offered nothing new to the industry. They just took existing ideas that were already being implemented and renamed them. No other manufacturers have used the term plug and play for their hard disks other then Quantum and HP. Carles M. Kozierok states, “Perhaps the main point was to exploit the buzzword potential of the phrase “plug and play”, to help convince consumers that a great breakthrough in configuration ease had been made.” He also states, “If you run into a system that is advertised as using “Plug and Play ATA,”this most likely just means that the drive(s) are set to the cable select method of configuration, and a cable select cable is being used.” (Kozierok, 2000).

Quantum and HP’s proposal appeared to be nothing but a marketing scheme. It does not seem like a bad idea because most consumers did not know about cable select, but a lot have heard of plug and play. This was also a way to reintroduce cable select. Cable select did not catch on big in the industry when it was introduced, but it is still used today. There were several problems associated with cable select when it was introduced. First, most drives come with the jumper selected on master. This almost removes the point of having Cable select (saving from switching jumpers because one would still have to switch a jumper to cable select to use it). Second, the 40-conductor IDE cable used when cable select came out was not compatible with cable select. A new cable was needed. A special cable select cable was needed. However, this special cable used the middle device as the master and the end device as the slave. To correct this, a Y-shaped cable came out, but it was not very popular due to the length of each end. The ultimate solution to the cable select chaos was the 80-conductor IDE cable. This cable put the master at the end of it and the slave in the middle. It also transferred its signal better, so it was replacing the old cable anyways (no special cable was needed anymore because people were using the 80-conductor cable regularly).

PCI (Peripheral Component Interconnection)

Peripheral Component Interconnect (PCI), developed by Intel, came about as a higher performance bus back in the early 1990’s. PCI allows direct access to system memory for connected devices, but uses a bridge to connect to the frontside bus and therefore to the CPU (Tyson, 2001). PCI was a faster bus then the previous ISA and VL-Bus, and it became the industry standard. In addition to the higher performance and increased efficiency, PCI also offered plug and play. PCI was not very popular until 1995. In 1995, Microsoft introduced Windows 95, the first plug and play operating system. Plug and play automatically recognizes and configures newly connected devices inserted into the computer and assigns resources. Before plug and play, several steps either had to be done manually or by a piece of software usually bundled with the new piece of hardware. These tasks include the setting of: interrupted requests (IRQs), direct memory access (DMA), memory addresses, and input/output (I/O). When a device needs to use the data bus, it sends an interrupt to request access to the bus. The CPU processes interrupts in order of importance, and once the device receives access it sends/receives its information. The PCI bus is able to share IRQs between devices using special programmable routing chips. ISA needed to use a unique IRQ for each device. DMA is used only for ISA devices, so it will not be touched on here. Memory addresses are assigned to each device to ensure the device had enough system resources to function correctly. I/O settings are used to tell the CPU where to send and receive information from. Two steps need to be preformed in order for the I/O configuration to be complete and working properly. The new device needs to be set with an I/O and the device driver needs to be told what that I/O address is. If only one of these two steps is completed the device will not work. Plug and play automatically does both of these steps; however, people may manually configure the I/O and it is possible for them to complete one or both of these steps. Managing all of these system resources for numerous devices can be quite a burden and troublesome task. Luckily plug and play does most of this for the user. When a device is configured using plug and play, all of its information is stored in an extended system configuration data file (ESCD). This file is checked for new and old devices at each bootup. On bootup of the PC, the plug and play BIOS initiates certain steps to set up each device and their system resources fittingly.

Here is a rough layout of the steps that the BIOS follows at boot time when managing a PCI-based Plug and Play system:

1. Create a resource table of the available IRQs, DMA channels and I/O addresses, excluding any that are reserved for system devices.

2. Search for and identify PnP and non-PnP devices on the PCI and ISA buses.

3. Load the last known system configuration from the ESCD area stored in non-volatile memory.

4. Compare the current configuration to the last known configuration. If they are unchanged, continue with the boot; this part of the boot process ends and the rest of the bootup continues from here.

5. If the configuration is new, begin system reconfiguration. Start with the resource table by eliminating any resources being used by non-PnP devices.

6. Check the BIOS settings to see if any additional system resources have been reserved for use by non-PnP devices and eliminate any of these from the resource table.

7. Assign resources to PnP cards from the resources remaining in the resource table, and inform the devices of their new assignments.

8. Update the ESCD area by saving to it the new system configuration. Most BIOSes will print a message when this happens like "Updating ESCD ... Successful".

9. Continue with the boot.

(Kozierok 2001)

After the plug and play OS boots up, it searches and finds new hardware. The OS then proceeds to try and install drivers for the new device. If it can not find the drivers itself, it will prompt the user for the location of them.

Serial

Devices connected to the serial port work very similar to PCI devices when it comes to plug and play. Once the device is plugged into the machine and the machine is booted, the BIOS searches to see which devices are connected and what drivers need to be loaded. If a device is found connected to the serial port then the BIOS searches the ESCD for the needed information for the device. If the information is present then bootup continues as normal and the device is active and usable. However, if the device is not found in the ESCD then the BIOS checks the IRQs to see which are not being used and which are. The new device is setup with system resources that does not conflict with other devices. Once the plug and play OS boots up, it searches and finds new hardware. The OS then proceeds to try and install drivers for the new device. If it can not find the drivers itself, it will prompt the user for the location of them. The new ESCD is saved.

PCMCIA

PCMCIA devices (PC card) work similar to serial and PCI when it comes to plug and play. PC cards are a newer technology then PCI and serial ports, and they offer the ability of hot plugging. This means the device maybe plugged into the computer while it is on and it will work. Once the device is plugged in, the OS will interrupt whatever else is going on and check the ESCD to see if it has the needed information for the new device. If the information is found then the device will receive available resources and be accessible for use. If the device is not in the ESCD then it will try and find the information needed itself. If it is unable to find the information then it asks the user for the location of the drivers.

Conclusion

Plug and play is a multi-faceted technology that has allowed the number of computer users to grow due to the simplicity it brings to connecting devices. Despite its occasional faults, the technology continues to improve in performance and ease of use. Plug-and-play is a technology which does not stand still, but evolves and adapts to the users, as is seen with the wave of new easy to use USB devices, and the clearing out of the more complex and slower ISAs.

Acronyms

ATA – Advanced Technology Attachment

BIOS - Basic Output Input System, stored on the motherboard, starts the system

DMA - Direct Memory Access, allows data to be passed between bus and a device

ECP - Enhanced Capabilities Port

EPP - Enhanced Parallel Port

ESCD – Extended System Configuration Data

HP – Hewlett-Packard

IEEE - Institute of Electrical and Electronics Engineers

I/O – Input/Output

IRQ - Interrupt Request, tells the computer the address of where to send messages to a device

ISA - Industry Standard Architecture

LPT - Line Printing

OHCI - Open Host Interface Controller

OS – Operating System

PCI – Peripheral Component Interconnection

PCMCIA – Personal Computer Memory Card International Association

PnP – plug and play

SCSI - Small Computer System Interface

USB - Universal Serial Bus

Bibliography

1394 Trade Association (2004). "1394 Technology." URL:

Andrews, Jean.(2003). A+ Guide to Hardware. Canada: Course Technology.

ISBN 0-619-18624-0.

Intel Corporation and Microsoft Corporation (1994). "Plug and Play ISA Specification." URL:

Lawyer, David S. (2003). "How Linux Does PnP." URL:



Kozierok, Charles M. (2001a). "Industry Standard Architecture (ISA) Bus." URL:

Kozierok, Charles (2000). “Plug and Play ATA.” URL:

Kozierok, Charles (2001b). “Plug and Pray :^).” URL:

Lawyer, David S. (2003). “What PnP Should Do: Allocate “Bus-Resources.” URL:

Microsoft Corporation (1994a). "Plug and Play ISA Specification." URL:

Microsoft Corporation (1994b). "Plug and Play SCSI Specification." URL:

Microsoft Corporation (2001a). "Plug and Play - Architecture and Driver Support." URL:

Microsoft Corporation (2001b). "IEEE 1394 and the Windows Platform." URL:

Microsoft Corporation (1999). "Plug and Play Design Specification for IEEE 1394." URL:

Microsoft Corporation et. al. (2000a). "1394 Open Host Controller Interface." URL:

Microsoft Corporation et. al. (2000b). "Universal Serial Bus Specification." URL:

Microsoft Corporation (1996). "Plug and Play Parallel Port Device Specification." URL:

Tyson, Jeff (2001). “How PCI Works.” URL:

Warp Nine Engineering (2004a). "IEEE 1284.3 and 1284.4 - Advances in High-Speed Parallel Port Performance and Port Sharing." URL:

Warp Nine Engineering (2004b). "Parallel Port Background." URL:

Webopedia (2004). "Plug-and-play." URL:

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download