Patent Description:
The present disclosure relates generally to a computing and communication module, and particularly to an all-in-one module that is a full-featured virtual processor in a VDI (virtual desktop infrastructure) architecture combined and integrated with a high-performance KVM (keyboard, video, and mouse) transmitter extender.

Virtual desktop technology enables the access of PC applications and data content, which are executing and stored on central servers located in data centers. This remote connectivity to the central servers is achieved with thin clients (an operating system executing with non-volatile memory for data retention after power cycling) or zero clients (an operating system executing with none or limited data retention after power cycling) which are executing client virtualization software provided by software suppliers that are known in the art. Although both cost and security benefits are provided with such virtual desktop technologies, requiring the IP (internet protocol) network to be accessible at the user's desk is a significant security vulnerability. To protect the data content located on the central servers, information assurance directives require the removal of the physical network access to the users' desks.

The following publications may be considered as useful background art: <CIT>; and, <CIT>. While existing virtual desktop technologies may be suitable for their intended purpose, the art relating to virtual desktop technology would be advanced with a computing and communication module that eliminates the system security vulnerability of existing virtual desktop technologies by enabling the VDI client to be physically secured in the data center along with the KVM transmitter extender and the central server, removing the network from an end-user's desk.

Embodiments include a computing and communication module having: a processing circuit; and a keyboard, video and mouse, KVM, extender transmitter disposed in signal communication with the processing circuit; wherein four equally sized ones of the module are collectively sized to fit within a volume of space defined by <NUM> racking unit, 1RU. The processing circuit is configured or adapted to function as a VDI client; and the VDI client and the KVM extender transmitter are integrally arranged within the module absent discrete electrical or optical end-user cabling disposed therebetween.

An embodiment includes a chassis compartment having: a plurality of side-by-side ones of the aforementioned computing and communication module; at least one power supply configured or adapted to provide electrical power to the plurality of modules; at least one first fan configured or adapted to deliver air movement toward the at least one power supply; at least one second fan configured or adapted to deliver air movement toward the plurality of modules; the plurality of modules being disposed in a sequential side-by-side arrangement from a nearest location to a farthest location relative to the at least one second fan; a temperature sensing and fan control system configured or adapted to: select an operational one of the plurality of modules that is at the farthest location as a master module, and in response to the master module becoming non-operational, automatically select another operational one of the plurality of modules that is at the next farthest location as a replacement master module; wherein the module selected as the master module, or as the replacement master module if the master module is non-operational, is the controlling module that controls send and receive data to and from the temperature sensing and fan control system for controlling operation of the at least one second fan based at least in part on a sensed temperature associated with the controlling module.

Embodiments include a method of computing and communicating via at least one electronic module that is the aforementioned computing and communication module, the method including: receiving parallel input data from the virtual desktop infrastructure, VDI, client; converting the parallel data into serial data for transmission via the keyboard, video and mouse, KVM, extender transmitter; and transmitting the serial data downstream of the at least one electronic module.

The above features and advantages and other features and advantages of the invention are readily apparent from the following detailed description of the invention when taken in connection with the accompanying drawings.

Referring to the exemplary non-limiting drawings wherein like elements are numbered alike in the accompanying Figures:.

Although the following detailed description contains many specifics for the purposes of illustration, anyone of ordinary skill in the art will appreciate that many variations and alterations to the following details are within the scope of the claims. Accordingly, the following example embodiments are set forth without any loss of generality to, and without imposing limitations upon, the claimed invention.

An embodiment, as shown and described by the various figures and accompanying text, provides an integrated, all-in-one, computing and communication module that eliminates the system security vulnerability of existing virtual desktop technologies by enabling a VDI client to be physically secured in a data center along with a KVM extender transmitter and the central server, thereby removing the network from an end-user's desk. In addition to solving the matter of security, the integrated module provides: increased graphic performance, space savings, enhanced reliability, and enhanced maintainability. In an embodiment, the integrated module includes a VDI client and a KVM extender transmitter, where four equally sized ones of the integrated module are collectively sized to fit within a volume of space defined by one racking unit, 1RU, which is a height measure known in the art of rack-mounted components, such as server components or network switches, to be <NUM> inches, where the 1RU has a width of <NUM> or <NUM> inches and a depth of <NUM> or <NUM> inches. In an embodiment as disclosed herein, 1RU is defined as a volume of space having a height H equal to <NUM> inches, a width W equal to or greater than <NUM> inches, and a depth D equal to or greater than <NUM> inches.

<FIG> depicts a high power quad 1RU chassis <NUM> having a midplane PC board <NUM> with a rear section <NUM> connected to a front section <NUM> via midplane PC board slot connectors <NUM> and separated via a baffle <NUM>. The chassis <NUM> has an interior compartment <NUM> having a plurality of side-by-side slots <NUM>, <NUM>, <NUM>, <NUM> (labeled; Slot <NUM>, Slot <NUM>, Slot <NUM>, and Slot <NUM>, respectively), each slot sized to receive a corresponding one of a plurality of side-by side modules <NUM>, <NUM>, <NUM>, <NUM> (collectively herein referred to by reference numeral <NUM> and described further herein below), where each module includes the aforementioned VDI client and KVM extender transmitter. The chassis is further sized to receive at least one power supply <NUM> configured or adapted to provide electrical power to the plurality of modules <NUM>, at least one first fan <NUM> configured or adapted to deliver air movement <NUM> toward the at least one power supply <NUM>, and at least on second fan <NUM> configured or adapted to deliver air movement <NUM> toward the plurality of modules <NUM>. In an embodiment, the plurality of modules <NUM> are disposed in a sequential side-by-side arrangement (<NUM>, <NUM>, <NUM>, <NUM> for example) from a nearest location <NUM> to a farthest location <NUM> relative to the at least one second fan <NUM>. The chassis interior compartment <NUM> further includes a temperature sensing and fan control system <NUM> configured or adapted to; select an operational one of the plurality of modules <NUM> that is at the farthest location, <NUM> for example, as a master module, and in response to the master module becoming non-operational, automatically select another operational one of the plurality of modules that is at the next farthest location, <NUM> for example, as a replacement master module, wherein the module selected as the master module, or as the replacement master module if the master module is non-operational, is the controlling module that controls send and receive data to and from the temperature sensing and fan control system <NUM> for controlling operation of the at least one second fan <NUM> based at least in part on a sensed temperature associated with the controlling module, <NUM> or <NUM> or another one of the plurality of modules <NUM> for example. Further details of the temperature sensing and fan control system <NUM> is provided herein below. In an embodiment, the at least one power supply <NUM> includes two power supplies <NUM>, <NUM>, the at least one first fan <NUM> includes two fans <NUM>, <NUM>, and the at least one second fan <NUM> includes four fans <NUM>, <NUM>, <NUM>, <NUM>. AC power supply input connectors <NUM> provide power connection ports for the various power demanding components on the midplane PC board <NUM>, which includes a region <NUM> for status LEDs and alarm contacts (not specifically shown). In an embodiment, the chassis interior compartment <NUM>, and more specifically the chassis <NUM> itself, is sized to fit within a volume of space defined by 1RU, as defined herein above.

Reference is now made to <FIG> and <FIG>, where <FIG> depicts a single module, <NUM> for example (reference numeral <NUM> arbitrarily selected from reference numerals <NUM>, <NUM>, <NUM>, <NUM> to refer to an example single module), of the plurality of modules <NUM>, and <FIG> depicts four equally sized modules of the plurality of modules <NUM> that are collectively sized to fit within a volume of space defined by 1RU, as defined herein above. In an embodiment, each module of the plurality of modules <NUM> includes a processing circuit <NUM> with supporting circuitry <NUM> (disposed on a printed circuit board for example) that is in combination configured or adapted to function as a VDI client <NUM> (the operation of which being in a manner known in the art), and a keyboard, video and mouse, KVM, extender transmitter <NUM> disposed in signal communication with the VDI client <NUM>, and thereby with the processing circuit <NUM>. In an embodiment, the VDI client <NUM> and the KVM extender transmitter <NUM> are integrally arranged within the module <NUM> absent discrete electrical or optical end-user cabling disposed therebetween, and absent discrete electrical or optical end-user plug-in connectors disposed therebetween, thereby removing vulnerability of undesirable network access. As used herein, the term "end-user" cabling or plug-in connectors, refers to features or items that are specifically and purposefully designed, manufactured, and marketed, as usable by an end user for repeatable attachment and detachment of an interconnected VDI client and KVM extender transmitter. That said, the absence of such "end-user" plug-in connectors does not preclude the use of plug-in connectors that are specifically and purposefully designed, manufactured, and marketed, as single or limited use connectors for the purpose of fabricating the module <NUM> as an integral arrangement of the VDI client <NUM> and the KVM extender transmitter <NUM>, where separation of the two is not intended, or is intended only for system upgrades or maintenance. Advantages of avoiding the use of end-user cabling and/or plug-in connectors include: providing a compact integrated combination of a VDI client and KVM extender transmitter; increasing module density; providing improved reliability; and, improving system security by minimizing a level of physical access to components connected to the network that would otherwise be available. In an embodiment, each module <NUM>, <NUM>, <NUM>, <NUM> of the plurality of modules <NUM> is hot-swappable in and out of the chassis compartment <NUM>, or more specifically hot-swappable in and out of the corresponding side-by-side slots <NUM>, <NUM>, <NUM>, <NUM>. As used herein, the phrase "hot swappable" means and refers to an electronic system having detachable components where one of the components may be attached or detached to/from another of the components while the components are electrically powered and/or in electrical communication with each other.

Reference is now made to <FIG>, which depicts a block diagram of an example KVM extender transmitter <NUM> of a multirate transmission system, similar to that described in <CIT>, commonly assigned to Thinklogical LLC, Milford, CT. <FIG> is specifically shown for an embodiment configured to receive input data from the VDI client <NUM>, and more specifically video data <NUM> corresponding to the Digital Video Input (DVI) standard. This data uses Transition Minimized Differential Signaling (TDMS) and is actually a type of high speed serial data. This data is converted into parallel data <NUM> and clock data <NUM> by a digital receiver <NUM>. As depicted in <FIG>, the parallel data can comprise a plurality if eight bit bytes <NUM>, <NUM>, and <NUM> and associated control information designated generally as <NUM>, including, for example, horizontal synchronization information, vertical synchronization information, and data enable (DE) information, as well as control information associated with the parallel data. The parallel input clock data <NUM> can, for the DVI standard, range from <NUM> to <NUM>. This information is clocked into buffer <NUM> via the clock data <NUM>. It is read out of buffer <NUM> via serializer reference clock <NUM>. Of course, any other type of data can be received at its own data clock rate. It should be noted that types of data received by the multirate transmission system can therefore be any type of data as long as the data can be converted into parallel data <NUM> with associated clock data <NUM>.

As depicted, and in this particular embodiment, the serializer reference clock <NUM> has a data rate of <NUM> (that is, greater than the maximum data rate of the incoming DVI data). The parallel data <NUM> is clocked into buffer <NUM> based upon the parallel data clock signal <NUM> in conjunction with the write enable signal <NUM> from control logic module <NUM>. Buffer <NUM> has independent read clock capability; that is, the read clock can be different from the write clock and thus data stored in buffer <NUM> can be read from it by means of the serializer reference clock <NUM> which operates at a higher clock rate than the clock associated with the incoming parallel data. Due to the higher clock rate of the serializer reference clock <NUM>, the buffer <NUM> is only read when enabled to do so by the read enable signal <NUM> from control logic module <NUM>, in an arrangement that insures that there is neither underflow or overflow of the data within buffer <NUM>. For those periods of time in which data is not being read from the buffer <NUM>, the serializer reference clock <NUM> in conjunction with control module <NUM> generates control characters on data busses <NUM> so that these control characters are received by multiplexer <NUM>. Control module <NUM> can generate information related to parallel data clock <NUM> for transmission by counting the number of parallel data clock cycles for a predetermined length of time, such as <NUM> millisecond. In an embodiment, the information related to the parallel data clock <NUM> is determined based on a ratio of the parallel input data <NUM> to control characters.

Serializer <NUM> is connected to output busses <NUM> from multiplexer <NUM> under the control of K/data control bus <NUM> from control logic module <NUM>. K/data control bus <NUM> informs serializer <NUM> whether the data from multiplexer <NUM> corresponds to the parallel data <NUM> or to the control characters generated by control logic module <NUM> as received by multiplexer <NUM> via data busses <NUM>.

In this example embodiment, serializer <NUM> also encodes the received parallel data, including the control characters via an encoding scheme, such as the 8B/10B encoding scheme well-known in the art. Other encoding/decoding schemes can, of course, be used, such as 64B/66B for example. In an embodiment, the serializer <NUM> encodes the parallel input data <NUM>, the information related to the parallel data clock <NUM>, and the control characters prior to serializing the parallel input data, the information related to the parallel data clock <NUM>, and the control characters. The resulting encoded serialized output is presented on output line <NUM> for presentation to optical module <NUM> for generating a serialized output on serial data medium <NUM>. In this particular embodiment, the optical module has a <NUM> data rate so as to correspond to the maximum parallel data rate of the serializer reference clock <NUM> times the number of parallel data bits received by serializer <NUM> which, in this particular embodiment, is <NUM> bits. Of course, other means for transmitting a serial output data stream are possible, including the use of coaxial cable or a radio frequency output module instead of the optical module <NUM>. Such alternative means for generating an outgoing serial data stream for long distance transmission are well-known in the art.

The buffer <NUM>, register <NUM>, multiplexer <NUM>, serializer <NUM> and control logic module <NUM> of transmitter portion <NUM> can be fabricated from a field programmable gate array (FPGA). Optical modules <NUM> and <NUM> can be a small form factor pluggable (SFP) optical transceiver. A third SFP (see <FIG> for example) may be used to provide a separate fiber interface for implementing a USB2. <NUM> device that is used to authenticate the user. <NUM> device may be a card reader for CAC (Common Access Card), but could also be used for any other method of authentication.

From the foregoing reference to <FIG>, it will be appreciated that the KVM transmitter extender (transmitter for short) <NUM> is configured or adapted to receive input data from the VDI client <NUM>, where the transmitter <NUM> includes: a buffer <NUM> configured or adapted to restore the parallel input data <NUM> based on a received parallel data clock <NUM> that can range from a minimum to a maximum value; a control module <NUM> configured or adapted to control, based on a serializer reference clock <NUM> having a clock frequency that is higher than the maximum clock frequency of the parallel data clock <NUM>: reading of the parallel data from the buffer at a rate that prevents overflow and underflow of the buffer, and generating information related to the parallel data clock <NUM> and generating control characters on data busses <NUM> when data is not read from the buffer; a multiplexer <NUM> configured or adapted to store the information related to the parallel data clock <NUM> and the control characters; a serializer <NUM> in cooperative engagement with the multiplexer <NUM>, configured or adapted to convert the parallel data <NUM>, the information related to the parallel data clock <NUM>, and the control characters into serial data on output line <NUM> for transmission; and a serial data transmitter <NUM> configured or adapted to transmit the serial data on serial data medium <NUM>. In an embodiment, the serial data transmitter <NUM> is an optical transmitter. In an embodiment, the serial data transmitted from the serial data transmitter <NUM> is uncompressed serial data.

<FIG> depicts a block diagram of an FPGA (Field Programmable Gate Array) <NUM> suitable for use as the KVM transmitter extender <NUM>, and <FIG> depicts a further detailed block diagram <NUM> of the KVM transmitter extender <NUM> fabricated from an FPGA <NUM> and coupled to the VDI client <NUM> absent discrete electrical or optical end-user cabling or connectors disposed therebetween.

In view of all of the foregoing, and with reference now to <FIG> in combination with at least <FIG>, where <FIG> depicts the aforementioned temperature sensing and fan control system <NUM> in more detail, which in an embodiment is referred to as a midplane I2C master for a temperature sensor/fan controller. As depicted in <FIG>, the "SLOT_(n)_INSTALLED_N" signals <NUM> on the midplane PC board <NUM> are pulled up to a logic "high" as a default reference. When a module <NUM> is installed, and if the module passes a "health" check, the respective "SLOT_(n)_INSTALLED_N" signal <NUM> will be pulled to a logic low. The respective signal <NUM> will remain in the "low" state as long as the module remains "healthy". The midplane circuitry <NUM> will choose an I2C Master Module to be the module <NUM> installed farthest from the Module Chassis Fans <NUM> by setting the "SLOT_(n)_MASTER" signal <NUM> to a logic "high". If the I2C Master is removed or becomes "unhealthy", the watchdog circuitry <NUM> will switch the corresponding "SLOT_(n)_INSTALLED_N" signal <NUM> to a logic "high", allowing the next farthest module <NUM> in the chassis <NUM> to take over as the I2C Master. If no modules <NUM> are installed in the chassis <NUM>, the fan controller <NUM> sets the fan speed default to full on. The I2C bus <NUM> ("Midplane_SCL, Midplane_SDA") will connect the two fan controllers and the Temperature sensor on the Midplane <NUM> to all modules. The module selected as "Master" will drive "Midplane_SCL" <NUM>, and send/receive data to and from the fan controllers and temperature sensor on "Midplane_SDA" <NUM>. Modules that are not "Master" will leave the corresponding signals <NUM> in the high impedance state.

From the foregoing description of structure, it will be appreciated that an embodiment includes a method of computing and communicating via at least one electronic module <NUM>, the method comprising: receiving parallel input data <NUM> from a virtual desktop infrastructure, VDI, client <NUM>; converting the parallel data <NUM> into serial data <NUM> for transmission via a keyboard, video and mouse, KVM, extender transmitter <NUM>; and transmitting the serial data downstream of the at least one electronic module <NUM>; wherein the VDI client and the KVM extender transmitter are integrally arranged to form one of the at least one electronic module <NUM> absent discrete electrical or optical end-user cabling disposed therebetween. In an embodiment, the at least one electronic module comprises at least four equally sized electronic modules <NUM>, <NUM>, <NUM>, <NUM> (collectively <NUM>) that are collectively sized to fit side-by-side within and across a horizontal width defined by a volume of space equal to 1RU. In an embodiment, the serial data transmitted downstream of the at least four equally sized modules <NUM> is uncompressed serial data. In an embodiment, and wherein the at least four equally sized modules <NUM> are disposed in a sequential side-by-side arrangement from a nearest location <NUM> to a farthest location <NUM> relative to the at least one fan <NUM>, the method further includes: sensing a temperature and controlling the at least one fan <NUM> via a temperature sensing and fan control system <NUM> configured or adapted to: select an operational one of the at least four equally sized modules <NUM> that is at the farthest location (<NUM> for example) as a master module, and in response to the master module becoming non-operational, automatically select another operational one of the at least four equally sized modules <NUM> that is at the next farthest location (<NUM> for example) as a replacement master module; wherein the module selected as the master module, or as the replacement master module if the master module is non-operational, is the controlling module that controls send and receive data to and from the temperature sensing and fan control system for controlling operation of the at least one fan <NUM> based at least in part on a sensed temperature associated with the controlling module. In an embodiment, each of the at least four equally sized modules <NUM> are hot swappable in and out of a corresponding slot <NUM>, <NUM>, <NUM>, <NUM> of the 1RU, the method further comprising: in response to the controlling module becoming non-operational during a hot swappable event, automatically selecting another operational one of the at least four equally sized modules that is at the next farthest location (<NUM> for example) as the replacement master and controlling module.

Reference is now made to <FIG>, which depicts a system block diagram <NUM> where one or more modules <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, for example, having the aforementioned integrated VDI client <NUM> and KVM transmitter extender <NUM>, are disposed inside a secure data center <NUM>, thereby eliminating the system security vulnerability of existing virtual desktop technologies by enabling the VDI client <NUM> to be physically secured in the data center <NUM> along with the KVM transmitter extender <NUM> along with at least one central server <NUM>, removing the connected network <NUM> from an end-user's desk <NUM>. In an embodiment, the VDI client <NUM> is configured or adapted to execute virtualization software that resides on the computer server <NUM> in the data center <NUM>.

Reference is now made to <FIG>, <FIG>, where <FIG> depicts a panel front view <NUM> and <FIG> depicts a panel rear view <NUM>, of a 1RU chassis <NUM> containing four equally sized modules <NUM> as herein disclosed.

<FIG> depicts Detail-9B <NUM> of <FIG>, where in an embodiment the 1RU Chassis <NUM> has bi-color red/blue LED indicators for the following: (<NUM>) Individual module temperature status (<NUM> total) <NUM>; (<NUM>) Individual module status (health) (<NUM>) <NUM>; (<NUM>) Common chassis fan status (<NUM>) <NUM>; and, (<NUM>) Common chassis alarm status (<NUM>) <NUM>. The Module Temperature indicator <NUM> is driven by the corresponding installed module <NUM>, and is blue to indicate nominal operation, and red to indicate that the module is in an overtemperature state. The Module Status indicator <NUM> is also driven by the corresponding installed module <NUM>, and is blue to indicate nominal operation, and red to indicate a status alert. The Chassis Fan indicator <NUM> is driven by the I2C Master Module (one of <NUM>, <NUM>, <NUM>, <NUM>, as described herein above). It will be blue to indicate all chassis fans <NUM> are operating nominally, and red if one or more fans <NUM> are slow or stopped. The Chassis Alarm indicator <NUM> is the logical or-ing of the temperature, status, and chassis fan signals. It will be blue to indicate that there are no temperature, status, or fan concerns for the chassis, and red if one or more of these conditions exist. The LED indicators for Temperature and Status for a slot in which there is no module installed will be off. If there are no modules installed, all indicators for Temperature and Status will be off. The Chassis Fan indicator <NUM> will be on if there is at least one module installed. If no modules are installed, the indicator will be off. The Chassis Alarm indicator <NUM> will be on if there is at least one module installed. If no modules are installed, the indicator will be off.

<FIG> depicts Detail-10B <NUM> of <FIG>. As depicted, an embodiment of the rear panel <NUM> of each module <NUM> includes: a console connection port <NUM>; a plurality of SFPs (small form factor pluggable, fiber optic or copper) ports <NUM> with LED status indicators <NUM>; multi-purpose USB ports <NUM> (local access, control, status, etc.); video (HDMI) output port <NUM>; a halt button and LED indicator <NUM>; a multi-purpose mini USB port <NUM> (firmware updates, ICT control and status via terminal emulator, or other function); and, an Ethernet port <NUM>. While Detail-10B <NUM> depicts a certain combination and arrangement of ports, connectors, and indicators, it will be appreciated that this is for illustration purposes only, and that other embodiments may include other functional features as may be determined and requested by an end user.

An embodiment may be embodied in the form of computer-implemented processes and apparatuses for practicing those processes. In an embodiment, an apparatus for practicing those processes may be a control module, which may be a processor-implemented module or a module implemented by a computer processor, and may include a microprocessor, an ASIC, or software on a microprocessor. The present invention may also be embodied in the form of a computer program product having computer program code containing instructions embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, USB (universal serial bus) drives, or any other computer readable storage medium, such as random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), or flash memory, for example, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. The present invention may also be embodied in the form of computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. A technical effect of the executable instructions is to enable operation of a computing and communication module that eliminates the system security vulnerability of existing virtual desktop technologies by enabling the VDI client to be physically secured in the data center along with the KVM extender and the central server, removing the network from an end-user's desk.

Claim 1:
A computing and communication module (<NUM>, <NUM>, <NUM>, <NUM>), comprising:
a processing circuit (<NUM>); and
a keyboard, video and mouse, KVM, extender transmitter (<NUM>) disposed in signal communication with the processing circuit;
wherein four equally sized ones of the module are collectively sized to fit within a volume of space defined by <NUM> racking unit, 1RU;
wherein the processing circuit is configured or adapted to function as a virtual desktop infrastructure, VDI, client (<NUM>); and
wherein the VDI client and the KVM extender transmitter are integrally arranged within the module absent discrete electrical or optical end-user cabling disposed therebetween.