Microsoft Windows and the Plug and Play Framework Architecture

March 1994

Overview

Personal computers have revolutionized the way people work. Today, PCs are being used in a wide range of settings and have become the primary business tool. Small and large companies are using PCs to automate routine tasks through productivity applications, and to solve complex business problems through customized, vertical market applications. Personal computer networks have enabled companies to work together and communicate more efficiently, bringing office productivity to new levels. Furthermore, as hardware technology has advanced, PCs have become both more powerful and less expensive, accelerating their adoption on a worldwide basis.

The wide-spread adoption of the Microsoft® Windows™ operating system has gone hand-in-hand with the advances in hardware technology. This corresponding advance in the personal computer operating system has enabled a new class of graphical applications that are easier to use and offer greater benefits to users. Additionally, new computer peripherals including CD-ROM, sound and full-motion video devices have further enhanced the potential of PCs, both in the office and in the home.

PC Hardware and Software Configuration Difficulties

With these innovations, however, have come new industry challenges. Specifically, configuring PC hardware and operating systems to work with different networks and with different peripheral devices can be a significant problem. Changing the hardware configuration of a machine is a task that few end-users attempt, and even trained technicians can find difficult, time-consuming and frustrating. With the growing use of mobile computers, such as notebooks and laptops, this problem is compounded because users of these computers typically need to change their PC configurations on a more frequent basis. These mobile devices are often unplugged from corporate networks and peripheral devices in the office, and re-configured to enable computing and remote communication from the home or while on the road.

Whether changing the configuration of a notebook computer from an office to a mobile setting, or simply adding a CD-ROM or other device to an existing desktop computer, common PC configuration difficulties have resulted in lower customer satisfaction and increased support costs.

The Plug and Play Solution

A broad base of companies within the computer industry, however, is addressing these problems with a technology known as the Plug and Play Framework Architecture. As the leading developer of personal computer operating systems, Microsoft has played a key role in organizing support for the Plug and Play framework. To realize the goals of Plug and Play, a fully functional Plug and Play operating system is a critical requirement. Microsoft is working closely with the many participating hardware manufacturers, and will release a complete Plug and Play operating system as the next version of Microsoft Windows.

The Plug and Play Framework

Plug and Play is both a design philosophy and a set of PC architecture specifications. The ultimate goal of Plug and Play is to design intelligence into the PC itself to handle installation and configuration tasks without user intervention. A Plug and Play system has a number of characteristics. First, any installation is a simple, fail-safe operation. For devices the installation is automatic: plug the device in, turn on the system, and it works. With a Plug and Play system, the user can insert and remove devices, or connect to or disconnect from a docking station or network, without restarting the system or fiddling with configuration parameters. The system determines the optimal configuration, and applications automatically adjust to take full advantage of the new configuration. Users do not need to modify expansion card jumper settings, or even modify operating system configuration files. The benefits to both users and computer industry members will be substantial, as PC ease-of-use will be enhanced while support costs will be substantially lowered.

The Components and Requirements of a Plug and Play System

The three core components of a Plug and Play system are:

The Plug and Play Components. A Plug and Play system has three major components: a Plug and Play BIOS; Plug and Play hardware devices; and a Plug and Play operating system which automatically configures the computer.

Plug and Play devices must be capable of identifying themselves and declaring their resource requirements. For most device types, including all ISA hardware, this capability requires modifications to the hardware devices themselves. This is because the current generation of these hardware devices is simply not capable of communicating this information. Also, a redesigned BIOS is necessary to accept and respond to the resource requirements communicated by the new Plug and Play devices. Furthermore, a complete Plug and Play operating system is required to orchestrate all components in the system by loading and configuring Plug and Play device drivers, and by responding to hardware changes by automatically reconfiguring the system without user intervention. In systems incorporating all three core Plug and Play components including devices, BIOS and a Plug and Play operating system, installing new devices will be as easy as plugging them in and turning on the system.

Plug and Play: Progress to Date

The effort to create Plug and Play personal computer systems is well under way. Because Plug and Play requires that new intelligence be built into hardware devices, the PC Basic Input Output System (BIOS), and the personal computer operating system, broad industry collaboration is necessary to advance the Plug and Play concept. Microsoft, as the leader in PC operating systems, is playing an active role in organizing and participating in the Plug and Play effort. Microsoft will release the first Plug and Play operating system for IBM®-compatible personal computers as the next version of Microsoft Windows.

The Plug and Play effort was formally introduced in March 1993 at the Windows Hardware Engineering Conference to more than 1,300 attendees. Microsoft presented the general Plug and Play framework, and with Intel Corporation, also presented the first application of that framework in the form of the Plug and Play ISA Specification. Through a forum called the Open Process, Microsoft exposes new systems technologies to a formal, open industry review early in the development cycle, and refines these technologies based on industry and customer feedback. As an open specification, the ISA Plug and Play specification, and all subsequent Plug and Play specifications for different types of hardware, were refined through the Open Process.

Microsoft and Intel revised the specification based on the feedback received, and subsequently released version 1.0 of the Plug and Play ISA Specification. The first implementation workshop to discuss and teach implementation of the specification was attended by over 150 engineers from more than 80 different hardware vendors. Additionally, representatives from 100 key hardware vendors attended the two-day Microsoft Design Review event which covered the overall Plug and Play framework in detail.

Today, additional Plug and Play specifications for SCSI devices, IDE devices, printers, serial devices and the Plug and Play BIOS have been refined through the Open Process and released to the industry. Other device types, including PCMCIA, PCI, and Microchannel, are largely Plug and Play ready, and new hardware specifications were not needed for these devices. Instead, complete Plug and Play functionality will be achieved for these device types through redesigned system software that will be an integral part of the next version of Microsoft Windows. These new core operating system capabilities will enable the next version of Microsoft Windows to integrate these devices into complete Plug and Play systems.

The Transition to Plug and Play Systems

The components of the Plug and Play architecture are based on published interfaces and abstracted to a level that enables the architecture to accommodate the different bus and device architectures existing today, as well as future designs. The architecture was designed so that new Plug and Play devices will cost little more than their non-Plug and Play counterparts. In addition, the Plug and Play architecture provides complete compatibility with the installed base of existing, non-Plug and Play systems and peripherals. To allow Plug and Play devices and non-Plug and Play devices to coexist within a single computer, the next version of Microsoft Windows will accommodate non-Plug and Play devices by storing their configuration information in the system. Those devices not supporting the Plug and Play software-configuration capability will receive first priority in resource allocation. After assigning resources to non-Plug and Play devices, the Windows operating system will program Plug and Play devices with non-conflicting configurations. In the rare instance of an unresolvable conflict between two non-Plug and Play devices, the Windows operating system will help guide the user through device-configuration options. Over time, new systems with only Plug and Play devices will become pervasive, eliminating any need for such user intervention.

Plug and Play: Enabling Dynamic Configuration Changes

Besides achieving fail-safe, automatic configuration of hardware devices, Plug and Play systems will also be able to accommodate dynamic configuration changes. This capability is critical for mobile systems, since users of laptops and notebook computers need the ability to plug into corporate networks and docking stations without turning the computer off or reconfiguring hardware and software. Through Plug and Play, such "hot-docking" of mobile computers will be enabled. In addition, when any new device is inserted, the Windows operating system will recognize the new device and its resource requirements, and dynamically load the necessary device drivers.

Applications will be notified about these dynamic events, so they can take advantage of the new functionality or stop attempting to use unavailable devices. Users will no longer be required to turn off and reboot their systems when changing configurations, and will not need to intervene in the configuration process.

Functional Aspects of a Plug and Play Solution

The basic functions that must be coordinated and performed by the three Plug and Play components include the following:

As devices are added and removed, this process is repeated. The operating system must centrally manage this configuration process to ensure smooth coordination. A certain amount of configuration must first be performed by the system BIOS during the power-up phase. In order for the system to boot, the BIOS must at a minimum configure a display device, input device and initial program load device. Then, it must pass the information about each of these devices to the operating system for additional configuration of the system.

The operating system then continues the configuration process by identifying every device in the system and their respective resource requirements. Each non-boot device must be inactive upon power-up so that the operating system can identify any conflicts between the resource requirements of different devices before configuring them. In the event that different devices require the same resources, the devices must be able to provide information to the operating system about alternative resource requirements, which the operating system uses to identify a working system configuration. Once any resource conflicts have been resolved, the operating system automatically programs each hardware device with its working configuration, and then stores all configuration information in the central database. Finally, the operating system loads the device drivers for each device, and notifies these drivers of the resource assignments.

If a change occurs to the system configuration during operation, the hardware must be able to notify the operating system of the event so that the operating system can configure the new device. Additionally, applications must be able to respond to configuration changes to take advantage of new devices and to cease calling devices that have been removed. Such dynamic configuration events might include the insertion of a PCMCIA card, the addition or removal of a peripheral such as a mouse, CD-ROM drive or printer, or a docking event for a notebook computer.

The Next Release of Microsoft Windows: A Plug and Play Operating System

The next release of the Windows operating system will include several new components to provide complete Plug and Play functionality.

These components include the following:

In addition, a number of components will be modified, including device drivers, the operating system setup program and portions of the user interface.

The Plug and Play Components of Microsoft Windows. The next version of Microsoft Windows will be the first Plug and Play operating system for IBM-compatible personal computers, making PCs easier to configure and maintain.

The Configuration Manager

The Configuration Manager is the central software component handling all phases of the configuration process. It orchestrates the entire flow of operations performed by all the components involved in the configuration process, and accepts and responds to communications from the BIOS and hardware devices during the configuration process. It also responds to dynamic events during operation including the insertion or removal of devices, and the docking or undocking of mobile computers. As these events occur, the Configuration Manager communicates the information to applications.

The Hardware Tree

The hardware tree is a record of the current system configuration. The tree information is drawn from a central database of configuration information for all devices, called the Registry. The Registry is stored locally for each computer, and holds information about all device types, whether they are currently installed or not. The hardware tree is created by the Configuration Manager every time the system boots or a run-time change occurs to the system configuration. The existence of the Registry will eliminate the need for most of the device-specific initialization files used today.

Bus Enumerators

Bus enumerators are responsible for building ("enumerating") the hardware tree on a Plug and Play system. The bus enumerators are a new type of driver. The different enumerators are based on specific bus architectures, and understand the implementation details of their bus type. Thus, an ISA enumerator can identify the devices on an ISA bus, read their resource requirements, and configure them as instructed by the Configuration Manager. Similarly, there will be enumerators for Microchannel, VESA® Local and PCI bus types; SCSI and PCMCIA devices; and serial and parallel ports. During installation, Windows will automatically determine which bus enumerators are applicable for a given computer.

Resource Arbitrator

The Resource Arbitrator allocates specific types of resources to devices, and resolves conflicts between devices that request identical resource assignments. The functional separation of the Resource Arbitrator and the Configuration Manager provides for future extensibility of the Windows operating system to address new types of resources.

Changes to Other Operating System Components

A new operating system setup program will create the central configuration database during initial system setup. Although under normal circumstances the system will not require intervention by the user to perform any initial setup configuration operations, there are some exceptions. For example, if the user is installing a non-Plug and Play device and the system fails to detect that device, the user can force an installation by pushing a button in the control panel or dragging an installation icon into the system folder from a floppy disk. Thus, the next version of Microsoft Windows will not only automate the process of installing and configuring Plug and Play devices, it will also standardize the system interface for installing and configuring non-Plug and Play devices.

At times the system may be unable to generate a non-conflicting configuration for a non-Plug and Play device. In this case, a new Windows user-interface component will communicate the event to the user, and present the user with several options to resolve the problem. The Plug and Play Windows operating system will also have an interface component that will allow more advanced users to edit and change the system configuration.

Plug and Play Devices

ISA

A specification for design of Plug and Play ISA devices has been published, reviewed and refined through the Open Process, and released to the industry. This specification defines a hardware and software design to be incorporated into the next generation of ISA devices, referred to as Plug and Play ISA devices. Plug and Play ISA devices can run on existing PCs, and are available today. Over the coming months, Plug and Play ISA devices will replace standard ISA devices as the predominant device type.

PCI

The current PCI bus architecture meets most of the requirements for providing Plug and Play functionality. To become fully Plug and Play capable, a bus enumerator for PCI is being written by Intel to be incorporated into the next version of Microsoft Windows.

Microchannel

Microchannel devices already provide a standard identification mechanism and a mechanism for configuring resources through software. To integrate with the Plug and Play architecture, a bus enumerator for the Microchannel bus is being written by IBM to be incorporated into the next version of Microsoft Windows.

VESA Local Bus

The VESA Committee is adopting the Plug and Play ISA specification in order to adapt it to the VL-bus type. An enumerator will be provided in the next version of Microsoft Windows.

IDE

The IDE Plug and Play specification has been refined through the Open Process and released to the industry. IDE controllers already provide a way to support multiple disk drives, and the IDE standard will also be able to provide a low-cost solution for adding Plug and Play CD-ROM drives. Full IDE Plug and Play capabilities will be incorporated into the next version of Microsoft Windows.

SCSI

SCSI devices require both design changes and general ease-of-use enhancements to deliver Plug and Play functionality. The Plug and Play SCSI specification, refined through the Open Process, specifies these requirements. Full SCSI Plug and Play capabilities will be incorporated into the next version of Microsoft Windows.

PCMCIA

In order for PCMCIA devices to be supported under the Plug and Play framework, Microsoft is writing a bus enumerator to be incorporated into the next version of Microsoft Windows. The approach to supporting PCMCIA under the Plug and Play framework calls for the PCMCIA device to be treated like any other Plug and Play device during the configuration process. Thus, resources can be allocated and reclaimed dynamically by the operating system, allowing for easy addition of devices through hot-swapping, and support for hot or warm docking of mobile computers.

Serial and Parallel Ports

Specifications for peripherals connecting through serial and parallel ports, including Plug and Play printers, have also been refined through the Open Process, and released to the industry. The next version of Microsoft Windows will support Plug and Play automatic configuration and device driver loading capabilities for these peripherals.

Plug and Play: Summary

Plug and Play technology will affect the entire personal computer industry. The technology will increase customer satisfaction by making PCs even easier to use and maintain; and will lower support and maintenance costs for both vendors and users. Plug and Play will provide a flexible, robust platform for increased functionality and industry-wide innovation.

Systems incorporating the next release of Microsoft Windows as well as the Plug and Play BIOS and Plug and Play devices will achieve the full benefits of Plug and Play. These systems will be able to automatically configure hardware devices without any user intervention, and respond to dynamic configuration events. Excellent docking system solutions will finally be feasible, because the system will be able to automatically load and unload device drivers to reflect the different devices attached to the system when it is docked or undocked. Also, applications will be able to automatically adjust their configurations to reflect the insertion or removal of devices, such as network cards and fax-modem cards.

Partial Plug and Play functionality can also be achieved on systems that will include only one or two of the three Plug and Play components. Hardware vendors can begin to deliver some of the benefits of Plug and Play prior to the release of the next version of Microsoft Windows by incorporating the ability to assign device resources through special software drivers and a standard device driver interface, eliminating the need to modify jumper settings on the hardware devices themselves. Also, the next release of Windows will provide substantial Plug and Play benefits to users of existing systems. In such a system, resource requirements for non-Plug and Play devices can be accommodated through an improved configuration file format. This will allow all existing devices to coexist with newer Plug and Play devices.

Conclusion

The Plug and Play framework advances the PC architecture in ways that will greatly enhance the ease-of-use of existing PCs, and enable users to work with PCs in new ways. The results will not only be more satisfied customers, but also lower support costs and increased demand for PC products. In recognition of the benefits of Plug and Play, a variety of companies representing all major areas of the industry are working together to define the architecture and to implement that architecture in their products. Microsoft is one of the leading members of this industry coalition, and is including full Plug and Play functionality in the next version of Microsoft Windows. This new version of Windows will bring substantial benefits to millions of existing systems, as well as future systems based on the Plug and Play hardware specifications. Through Plug and Play, personal computers will have the potential to even further enhance business productivity.

For More Information

Copies of Plug and Play specifications can be obtained from the libraries in the "plugplay" forum on CompuServe®. This forum also serves as the focal point for technical discussions, industry feedback and technical support of the Plug and Play specifications.