# Patent

## Title
Method and system for computer nodes configured with a plurality of UART channels for serial redirection through with a service processor

## Abstract

A method for remotely communicating with a computer system in a headless environment is provided. The system includes a service processor in communication with a computer through a UART communication channel and in communication with a remote console through a communication connection. The service processor manages communication commands between the computer and the remote console. The service processor transmits data communication received from the remote console to the computer through the UART channel, and the service processor transmits data communication received from the computer to the remote console through the UART channel. In addition, a multiplexer may be employed to direct communication between one of a plurality of computers and the service processor in combination with a multiplexer control to select one of the computers for communication with the service processor. The multiplexer directs the communication through the UART channel.

## Background
CROSS REFERENCE TO RELATED APPLICATION(S)
This application is a continuation of application Ser. No. 10/040,174, filed on Jan. 2, 2002, now pending, which is hereby incorporated herein by reference.


BACKGROUND OF THE INVENTION
1. Technical Field
This invention relates to remote communication with a computer system. More specifically, the invention utilizes conventional hardware components to enable support and maintenance of a computer from a remote location.
2. Description of the Prior Art
Current computer operating systems provide support for operating a computer with a local display or input devices. All input commands are input to the computer from a keyboard, mouse, or other input device directly connected to the computer. FIG. 1 is a prior art block diagram 10 illustrating local control of a computer 20. The computer 20 has input devices 22, 24 and 26 connected directly to the computer 20. The input devices may be in the form of a keyboard, a mouse, a display device, or alternative input tools conventionally associated with communicating with a computer. Accordingly, all administrative functions for management and configuration of the computer are conducted locally and are not available remotely.
Recently, the Microsoft Windows 2000 NT® operating system has developed a driver that enables remote input of administrative functions to a computer for both in-band and out-of-band modes. This type of operating system is often referred to as “headless”. A headless operating system requires that local console input/output dependencies be removed from the operating system, i.e. in a headless environment the operating system supports operating without a keyboard, mouse or monitor directly attached to the system. FIG. 2 is a prior art block diagram 40 illustrating connections between a computer 50 and a remote console 60 in an operating system supporting headless communication. The computer 50 uses a serial port 55 to enable remote communication. The serial port 55 is a Universal Asynchronous Receiver Transmitter (UART). A remote console 60 is connected to the computer 50 through the UART 55 of the computer and the UART 65 of the console through a direct connection. Management and configuration commands to the computer may be input from the console in direct communication with the computer. Accordingly, the headless driver developed to support remote communication requires a connection from the computer UART 55 to the remote console UART 55 through a direct connection.
Another form of remote communication and management of a computer is shown in U.S. Pat. No. 6,192,423 to Graf. The '423 patent discloses remote access through a modem communication connection. The system shown in Graf includes a micro-controller with a UART and a motherboard with a UART. A multiplexer selects one of these UARTs to be connected to a serial port connector, which receives communication through a modem. The channel used with the interface to the motherboard is the same channel as the modem channel. Accordingly, the hardware and control logic of Graf does not provide the availability of remotely receiving and transmitting pre-boot and out-of-band data.
There is therefore a need for a method of providing headless communication with a computer for remote management of in-band, out-of-band, and pre-boot modes of operation.
SUMMARY OF THE INVENTION
The invention comprises a method for enabling headless communication with a computer for in-band, out-of-band, and pre-boot maintenance from a remote console. The headless communication enables an operator to manage and configure a computer from a remote console through a standard communication connection.
In one aspect of the invention, a computer system operable in a headless environment is provided. The system includes a first partition having at least two computational nodes. Each of the nodes is configured with a UART channel formatted for headless communication. A service processor is provided in communication with the first partition. The service processor provides support and maintenance of the computer system. In addition, the service processor has one UART channel in communication with the first partition and formatted for headless communication. A first communication is routed between the UART channels of the nodes of the first partition and the UART channel of the service processor. This includes output of the headless UART channels of the computational nodes routed into the one UART channel of the service processor. In addition, a second communication is routed between the service processor and a remote console. This includes management commands communicated to at least one of the nodes in the first partition through the one UART channel in the service processor from the remote console.
In another aspect of the invention, a computer system operable in a headless environment is provided. The system includes a first partition and a second partition. The first partition has at least two computational nodes, with each node configured with a UART channel formatted for headless communication. The second partition has at least two computational nodes, with each node configured with a UART channel formatted for headless communication. A multiplexer is provided to manage a communication between one of the partitions and a service processor having one UART channel formatted for headless communication. The service processor provides management commands to said partitions. A first communication is routed between the UART channels of the nodes of the first and second partitions and the UART channel of the service processor through the multiplexer. This first communication routing includes output of the headless UART channels of the computational nodes routed into the one UART channel of the service processor. A second communication is routed between the service processor and a remote console. This second communication includes management commands communicated to at least one of the nodes in the first partition through the one UART channel in the service processor from the remote console.
Other features and advantages of this invention will become apparent from the following detailed description of the presently preferred embodiment of the invention, taken in conjunction with the accompanying drawings.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a prior art block diagram of a computer without headless support.
FIG. 2 is a prior art block diagram of a computer with headless support.
FIG. 3 is a block diagram of a computer with headless support according to the preferred embodiment of this invention, and is suggested for printing on the first page of the issued patent.
FIG. 4 is a block diagram of a multiprocessor computer system with headless support.



DESCRIPTION OF THE PREFERRED EMBODIMENT
Overview
In Microsoft Windows 2000 NT® redirection firmware provides a driver that is capable of outputting the local text display and accepting keyboard input from a UART serial port. A console remote from a computer communicates with the computer through the UART. Each computer has a computer card known as a service processor that is conventionally provided with the computer or may be added to the computer. The service processor may be formatted with a UART serial port within the protocols of the operating system firmware for supporting headless communication. In addition, each service processor is adapted to communicate with an external console through a standard communication connection. Accordingly, the configuration of a UART serial port on the service processor enables the service processor to communicate with both the computer and an external console through independent communication channels.
Multiprocessor systems by definition contain multiple processors, also referred to herein as CPUs, that can execute multiple processes or multiple threads within a single process simultaneously in a manner known as parallel computing. In general, multiprocessor systems execute multiple processes or threads faster than uniprocessor systems that can execute programs sequentially. The architecture of shared memory multiprocessor systems may be classified by how their memory is physically organized. In distributed shared memory (DSM) machines, the memory is divided into modules physically placed near one or more processors, typically on a processor node. Although all of the memory modules are globally accessible, a processor can access local memory on its node faster than remote memory on other nodes. Because the memory access time differs based on memory location, such systems are also called non-uniform memory access (NUMA) machines. The use of NUMA architecture to increase performance is not restricted to NUMA machines. Algorithms that enhance the performance of NUMA machines can be applied to any multiprocessor system that has a subset of processors with lower latencies. These includes not only NUMA and shared-cache machines, but also machines where multiple processors share a set of bus-interface logic, as well as machines with interconnects that “fan out” (typically in hierarchical fashion) to the processors.
Technical Details
FIG. 3 is a block diagram 100 of a single quad system 110 formatted for headless communication support. A quad is a plurality of computational nodes which are joined together by system interconnect hardware to form one or more independent computing environments, such environments being known as partitions. In this illustration, the quad 110 is formatted with an operating system with headless communication firmware. The operating system sets aside a UART communication port 115 in the quad 110 to support communication with a remote console 135. A service processor 120 may be provided or previously existent within the quad 110 and is configured with at least one UART communication channel 125 designated for communication with the UART communication port 115. The UART communication channel 125 in the service processor is configured for supporting headless communication with the quad 110. Accordingly, both the service processor UART 125 and the quad UART 115 are configured for supporting headless communication.
In addition, the service processor 120 has an Ethernet connection 130 which interfaces to the remote console 135. The remote console 135 may provide management commands to the quad 110 through the service processor 120. The service processor is configured to accept commands from a remote console, and may relay such commands to the quad through signals transmitted from the service processor UART communication channel 125 to the quad UART communication port 115. The service processor controls routing and redirection of serial data received through an Ethernet connection. Accordingly, by configuring the service processor 120 with a UART communication channel for headless support, configuration and management of the quad 110 may be conducted from a remote console 135 that connects to the service processor through a standard modem or Ethernet connection, or an alternative communication connection.
In a further embodiment, the redirection of communication from a computer to a remote console, as illustrated in FIG. 3, may be expanded to a computer system comprised of multiple quads. A quad is a multiple host computer system constructed of a plurality of computational nodes which are joined together by system interconnect hardware to form one or more independent computing environments, such environments being known as partitions. FIG. 4 is a block diagram 200 of a multiple quad system. Each quad is capable of being configured with an operating system with firmware for enabling remote communication. An operating system that supports headless communication requires at least one UART communication port to support transmission and receipt of signals to and from a remote console. As such, each quad 210, 220 and 230 is configured with a UART communication port 215, 225 and 235, respectively, for supporting headless communication. A service processor 260 is provided or previously existent within the system and is configured with at least one UART communication channel 265 designated for headless communication with the quads 210, 220 and 230. As in a single quad system, the service processor 260 has an Ethernet connection 270 which interfaces to a remote console 280. The service processor 260 is configured with a single UART communication channel 265 for supporting headless communication, and therefore the service processor may only communicate with a single quad at any one time. A multiplexer 240 is provided to route headless communication from one of the quads 210, 220 or 230 to the service processor 240. In addition, a multiplexer control 250 is provided to control the selection of a specific UART communication port of a specific quad for communication with the service processor 260. Upon selection of a quad UART communication port through the multiplexer control 250, the remote console 280 may provide management commands to the quad associated with the selected UART communication port through the service processor 260 and the multiplexer 240. The service processor 260 is configured to accept commands from a remote console, and may relay such commands to the selected quad through signals transmitted from the service processor UART communication channel 265 through the multiplexer 240 to a selected quad UART communication port. Each UART communication port and communication channel utilized in the remote management of the system must be formatted for headless communication in compliance with the headless firmware of the operating system. Accordingly, a multiplexer in combination with a multiplexer control may be utilized in a multiple partition system to enable remote configuration and management of a select quad from a remote console through a service processor.
Advantages Over the Prior Art
The process of routing headless communication from a computer, or a computer in a quad, to a service processor enables remote management of the computer and/or the computer in a quad, from a remote console that is not directly connected to the computer through a cable or local area network connection. The service processor communicates with the computer through standard UART serial communication signals. Both the service processor and the standard UART serial communication signals are known technologies. By routing management and configuration commands from the computer through the service processor, remote communication through a UART communication port is supported and standard technologies are implemented to enable unlimited routing of communication with the computer. This enables an operator to configure and manage operation of a computer, or a plurality of host systems, from any remote location that has the capabilities of communicating with the service processor through a standard modem or Ethernet connection, or an alternative compatible connection. Accordingly, the configuration of a headless UART communication channel in the service processor enables remote communication with the computer for management and maintenance of the computer from an infinite number of locations.
Alternative Embodiments
It will be appreciated that, although specific embodiments of the invention have been described herein for purposes of illustration, various modifications may be made without departing from the spirit and scope of the invention. In particular, a multiple partition system may include a plurality of service processors, with each having one UART communication channel formatted for headless communication. Each service processor communicates with a multiplexer and a multiplexer control to enable selection and routing of headless communication with a select partition. A service processor may be in the form of a card or an alternative device mounted in the system. Remote communication with the service processor may be provided through a standard modem, an Ethernet connection, as well as through an Internet Service Provider or alternative communication source. In addition, a multiple partition system may include a multiplexer and multiplexer control for routing and controlling communication with a remote console, respectively. All communications between each of the partitions and the multiplexer are conducted through a UART communication channel, and all communications between the multiplexer and the remote console are conducted through a UART communication channel. In addition, commands to a partition can be provided to the service processor and/or the multiplexer through an Internet Browser or a similar interface. Finally, the scope of the preferred embodiment should not be limited to the Microsoft Windows 2000 NT® operating system. The hardware and associated routing method may be implemented with any operating system that supports headless operation. Accordingly, the scope of protection of this invention is limited only by the following claims and their equivalents.

## Claims

1. A computer system comprising:
a first partition having at least two computational nodes, with each node configured with a UART channel formatted for headless communication;
a service processor in communication with said first partition, said service processor to provide support and maintenance of said computer system, and said service processor having one UART channel in communication with said first partition and formatted for headless communication;
a first communication routed between said UART channels of said nodes of said first partition and said UART channel of said service processor, including output of said headless UART channels of said computational nodes routed into said one UART channel of said service processor; and
a second communication routed between said service processor and a remote console, including management commands communicated to at least one of said nodes in said first partition through said one UART channel in said service processor from said remote console.

2. The system of claim 1, further comprising a multiplexer control to direct communication between one of a plurality of partitions and said service processor.

3. The system of claim 2, wherein said multiplexer control selects one of said partitions for said communication with said service processor.

4. The system of claim 2, wherein said multiplexer directs said communication through said channel and said channel is a UART communication port.

5. The system of claim 1, wherein said service processor receives and transmits management commands with said remote console through an Ethernet connection, wherein said commands include in-band, out-of-band, and pre-boot modes of operation.

6. A computer system, comprising:
a first partition having at least two computational nodes, with each node configured with a UART channel formatted for headless communication;
a second partition having at least two computational nodes, with each node configured with a UART channel formatted for headless communication;
a multiplexer to manage a communication between one of said partitions and a service processor having one UART channel formatted for headless communication, wherein said service processor provides management commands to said partitions;
a first communication routed between said UART channels of said nodes of said first and second partitions and said UART channel of said service processor through said multiplexer, including output of said headless UART channels of said computational nodes routed into said one UART channel of said service processor; and
a second communication routed between said service processor and a remote console, including management commands communicated to at least one of said nodes in said first partition through said one UART channel in said service processor from said remote console.

7. The system of claim 6, further comprising a multiplexer control to select one of said partitions for communication with said remote console.