KVM switch having a uniprocessor that accomodate multiple users and multiple computers
First Claim
Patent Images
1. A KVM switch, including:
- hardware components, including;
two or more computer ports to respectively link to two or more computers at keyboard, mouse and video ports of each of said computers;
a computer I/O interface to interface keyboard, mouse and video data with each of said computer ports;
a single microprocessor communicating with the computer I/O interface; and
two or more workstation ports to respectively link to two or more workstations each having a keyboard, mouse and video monitor, said workstation ports communicating with the single microprocessor; and
software modules, including;
a user interface module to give and receive keyboard, mouse, and video data to and from the workstation ports under the control of the single microprocessor;
a user interface interrupt service routine to precipitate the transfer of said keyboard, mouse and video data to and from the workstation ports via interrupts on assigned lines of the workstation ports;
a computer interface module to give and receive keyboard, mouse and video data to and from the computer ports under the control of the same single microprocessor; and
a computer interface interrupt service routine to precipitate the transfer of said keyboard, mouse and video data to and from the computer ports and computer I/O via timer-based interrupts on assigned lines of the computer ports, wherein the computer interface interrupt service routine polls each of the assigned lines of the computer ports on a periodic basis.
8 Assignments
0 Petitions
Accused Products
Abstract
A KVM switch having a uniprocessor architecture that accommodate multiple users and multiple computers—even multiple users to a single computer—via interrupt servicing provides dramatic improvements over common matrix-type KVM switches. Further, such features as hot-plugging computers, and keep alive computers (during power outages) are not inhibited by the present architecture. OSD menuing is accommodated, even as to both users, and OSD configurations are field upgradeable using flash memory downloading. The present architecture also accommodates tiered arrangements.
-
Citations
17 Claims
-
1. A KVM switch, including:
-
hardware components, including;
two or more computer ports to respectively link to two or more computers at keyboard, mouse and video ports of each of said computers;
a computer I/O interface to interface keyboard, mouse and video data with each of said computer ports;
a single microprocessor communicating with the computer I/O interface; and
two or more workstation ports to respectively link to two or more workstations each having a keyboard, mouse and video monitor, said workstation ports communicating with the single microprocessor; and
software modules, including;
a user interface module to give and receive keyboard, mouse, and video data to and from the workstation ports under the control of the single microprocessor;
a user interface interrupt service routine to precipitate the transfer of said keyboard, mouse and video data to and from the workstation ports via interrupts on assigned lines of the workstation ports;
a computer interface module to give and receive keyboard, mouse and video data to and from the computer ports under the control of the same single microprocessor; and
a computer interface interrupt service routine to precipitate the transfer of said keyboard, mouse and video data to and from the computer ports and computer I/O via timer-based interrupts on assigned lines of the computer ports, wherein the computer interface interrupt service routine polls each of the assigned lines of the computer ports on a periodic basis. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
a data extender interfaced between at least one of the workstation ports and at least one corresponding workstation.
-
-
3. A switch as in claim 1 wherein the single microprocessor further includes flash memory.
-
4. A switch as in claim 1 wherein the software modules further include:
an on-screen display module to generate on-screen display menus in accordance with an on-screen display configuration.
-
5. A switch as in claim 4, wherein the single microprocessor further includes flash memory and the on-screen display configuration is stored in the flash memory.
-
6. A switch as in claim 5, wherein the hardware further includes a serial port and the software modules further include a serial port interface module to precipitate a transfer of new on-screen display configuration data to the flash memory.
-
7. A switch as in claim 1, wherein the hardware further includes a video subsystem to receive video signals from the computer ports and deliver the video signals to single microprocessor for delivery to selected ones of the workstation ports.
-
8. A switch as in claim 7, wherein the hardware further includes an on-screen display subsystem, in communication with the video subsystem, to generate on-screen menu signals, said video subsystem generating monitor video signals having a combination of said video signals from the computer ports and the on-screen menu signals for delivery to the selected ones of the workstation ports.
-
9. A switch as in claim 8, wherein the software further includes an on-screen display module to control generation of the on-screen menu signals by the on-screen display subsystem.
-
10. A switch as in claim 8, wherein the hardware further includes an internal sync generator, and wherein the video subsystem selects a sync signal from either the internal sync generator or from the video signals received from the computer ports.
-
11. A method of switching keyboard, mouse and video data between multiple computers and multiple workstations, comprising:
-
providing computer-side ports, one port for each of the computers;
selecting some of the computers for communication with some of the multiple workstations;
bi-directionally communicating the keyboard, mouse and video data between the some selected computers via corresponding ones of the computer-side ports and a single microprocessor under the control of a computer-side interrupt service routine that continuously polls the computer-side ports;
translating the keyboard, mouse and video data into one or more protocols suitable for, respectively, the some selected workstations;
providing peripheral-side ports, one port for each of the workstations;
bi-directionally communicating the keyboard, mouse and video data between the some selected workstations via corresponding ones of the peripheral-side ports and the single microprocessor under the control of a peripheral-side interrupt service routine.
-
-
12. A method of communicating data between at least two computers and at least two computer workstations, comprising:
-
providing first and second workstation ports communicating with, respectively, first and second ones of the computer workstations;
providing first and second computer ports communicating with, respectively, first and second ones of the computers;
using a single microprocessor, continuously polling the first and second workstation ports, via an interrupt service routine, to correspondingly retrieve and provide current keyboard, mouse and video data to and from, respectively, the first and second workstations via corresponding ones of the first and second workstation ports;
using the same single microprocessor, continuously polling the first and second computer ports, via another interrupt service routine, to retrieve and provide the current keyboard, mouse and video data to and from a selected one of the at least two computers via a corresponding one of the first and second computer ports. - View Dependent Claims (13, 14, 15, 16)
receiving the current keyboard data from the first workstation according to a first keyboard protocol suitable for the first workstation and translating that current keyboard data into a second keyboard protocol suitable for the selected computer; and
receiving the current keyboard data from the selected computer according the second keyboard protocol suitable for the selected computer and translating that current keyboard data into the first keyboard protocol suitable for the first workstation.
-
-
14. A method as in claim 12 further including:
-
receiving the current mouse data from the first workstation according to a first mouse protocol suitable for the first workstation and translating that current mouse data into a second mouse protocol suitable for the selected computer; and
receiving the current mouse data from the selected computer according the second mouse protocol suitable for the selected computer and translating that current mouse data into the first mouse protocol suitable for the first workstation.
-
-
15. A method as in claim 12 further including:
-
receiving the current video data from the first workstation according to a first video protocol suitable for the first workstation and translating that current video data into a second video protocol suitable for the selected computer; and
receiving the current video data from the selected computer according the second video protocol suitable for the selected computer and translating that current video data into the first video protocol suitable for the first workstation.
-
-
16. A method as in claim 12 wherein the first and second computers issue requests on the first and second computer ports and the single microprocessor continuously polls the first and second computer ports, via another interrupt service routine, to retrieve and provide the requests from each of the first and second computers.
-
17. A method of communicating keyboard, video and mouse signals between disparate workstations and computers using a switch, comprising:
-
providing a plurality of computer ports, one per computer, to link the switch to each of the computers via corresponding ones of the computer ports;
providing a plurality workstation ports, one per workstation, to link the switch to each of the workstations via corresponding ones of the workstation ports;
providing a channel selector for each workstation user to make a selection of any of the computers;
checking the channel selector and assigning a computer port for each workstation based on the selection of each workstation user;
receiving respective keyboard and mouse signals from each of the workstation ports;
polling the respective workstation ports, one-by-one, and retrieving the keyboard and mouse signals therefrom;
polling all of the computer ports, one-by-one, and submitting the keyboard and mouse signals to ports corresponding to the selected computers;
receiving respective video signals from the computer ports selected by the workstation users;
polling all of the computer ports, one-by-one, and retrieving from ports corresponding to the selected computers the respective video signals; and
polling the respective workstation ports, one-by-one, and submitting the respective video signals thereto.
-
Specification