Method And System For Providing A Modular Server On USB Flash Storage
A method and system for providing a modular server-on-a-USB-flash-storage is disclosed. The server-on-a-USB-flash-storage is installed on a computing device. The method and system include providing USB interface logic, USB Local Control Program, a flash memory and a set of control button connectors, light emitting diodes (LED) connectors and a liquid crystal display (LCD) connector. The USB Local Control Program is coupled with the USB interface logic and the flash memory. The USB interface logic interacts with the computing device and allows computing device to detect the server board. The USB Local Control Program boots up the server and prepares the computing device for use as the server. The flash memory stores a server image for the server, which is provided to the computing device using the USB Local Control Program. The control button connectors allow the server to be turned on, shut down gracefully, or restored to its initial state, by a single press of buttons connected to these connectors. The LED and LCD connectors allow the system status to be displayed or shown.
Latest Super Talent Electronics, Inc. Patents:
- Flash-memory device with RAID-type controller
- Flash drive with swivel cover
- Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
- Dual-personality extended USB plugs and receptacles using with PCBA and cable assembly
- Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
This application is a divisional of U.S. patent application No. 10/762,934, entitled “Method And System For Providing A Modular Server On USB Flash Storage” filed Jan. 21, 2004 which is a Continuation-in-Part of U.S. patent application No. 10/002,652, entitled “Method And System For Providing A Modulized Server On Board” filed Oct. 19, 2001 which claims priority of U.S. Provisional Patent Application 60/324,900 filed on Sep. 25, 2001.
FIELD OF THE INVENTIONThe present invention relates to computer systems, and more particularly to a method and system for providing a server on a generalized computing device.
BACKGROUND OF THE INVENTION
The computing device 10 is capable of performing a variety of functions. It is often desirable to utilize the computing device 10 as a server. A server would include additional hardware and/or software that allows the server to serve multiple users. Thus, the server would allow multiple users to share resources, such as printers or the optional mass storage 18 of the computing device 10.
There are a number of conventional methods for allowing the computing device 10 to be used as a server. In general, these conventional methods involve obtaining server software and installing the software on the computing device 10. The user must then manually set up the desired functions for the server. Alternatively, the computing device 10 could be specially built to function as a server. In either case, ensuring that the computing device 10 can function as a server is expensive. For example, obtaining and installing server software on the computing device 10 or specially building the computing device 10 may cost between $500 and $5,000. Moreover, installing the software and tailoring the system to provide the desired individual functions requires a substantial investment of time on the part of the user.
Purpose of InventionAs Universal Serial Bus (USB) becomes a standard communication interface on the PC and digital imaging device, USB-based flash storage system starts proliferating the consumer market. A traditional USB-based flash storage system tends to include an USB Local Control Program, one or more flash memory chips in addition to the USB connector. USB flash storage becomes one of the most popular choices for external removable storage due to its simplicity, high performance and reliability.
If the PC or computing device has the capability in its BIOS to boot from a USB flash storage, it opens up a possibility to incorporate server functionality into a USB flash storage. The server is thus modular and very portable. The actual storage drives on a server are no longer needed to reside on the same physical space with the server itself. It is able to decouple the server from the storage drives completely. The server or storage drives can each evolve or upgrade independent to each other. Being able to easily hot swap the USB flash storage from the PC or computing device, it brings great benefits in service and support to the server itself.
Accordingly, what is needed is a system and method for cheaply and easily allowing the computing device to be used as a server. The present invention addresses such a need.
SUMMARY OF THE INVENTIONThe present invention provides a method and system for providing a server on a computing device. The computing device includes at least a processor and an optional mass storage device. The method and system comprise providing bus interface logic, providing USB Local Control Program, a flash memory and, preferably, a set of control button connectors, light emitting diodes (LED) connectors and a liquid crystal display (LCD) connector. The USB Local Control Program is coupled with the bus interface logic and the memory. The bus interface logic interacts with the computing device and allows the computing device to detect the system. The USB Local Control Program boots up the server and prepares the computing device for use as the server. The memory stores a server image for the server, which is provided to the computing device using the USB Local Control Program. The control button connectors allow the server to be turned on, shut down gracefully, or restored to its initial state, by a single press of buttons connected to these connectors. The LED and LCD connectors allow the system status to be displayed or shown.
According to the system and method disclosed herein, the present invention provides an inexpensive, easy to use mechanism for allowing the computing device to be used as a server.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention relates to computer systems, and more particularly to a method and system for providing a server on a generalized computing device. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiment and the generic principles and features described herein will be readily apparent to those skilled in the art. Thus, the present invention is not intended to be limited to the embodiment shown but is to be accorded the widest scope consistent with the principles and features described herein.
The present invention relates to an improvement in computer systems. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiment will be readily apparent to those skilled in the art and the generic principles herein may be applied to other embodiments. Thus, the present invention is not intended to be limited to the embodiment shown, but is to be accorded the widest scope consistent with the principles and features described herein.
The present invention provides a method and system for providing a modular server on a board. The server-on-a-USB is installed on a computing device. The method and system include providing bus interface logic, providing a USB Local Control Program, flash memory and, preferably, a set of control button connectors, light emitting diodes (LED) connectors and a liquid crystal display (LCD) connector. The USB Local Control Program is coupled with the bus interface logic and the flash memory. The bus interface logic interacts with the computing device and allows computing device to detect the server board. The USB Local Control Program boots up the server and prepares the computing device for use as the server. The flash memory stores a server image for the server, which is provided to the computing device using the USB Local Control Program. The control button connectors allow the server to be turned on, shut down gracefully, or restored to its initial state, by a single press of buttons connected to these connectors. The LED and LCD connectors allow the system status to be displayed or shown.
The present invention will be described in terms of a particular computing device and a system having certain components. However, one of ordinary skill in the art will readily recognize that this method and system will operate effectively for other computing devices and other systems having other components performing substantially the same functions.
To more particularly illustrate the method and system in accordance with the present invention, refer now to
The system 100 is also preferably used in conjunction with a system having a generic user interface, such as Windows 2000.RTM. operating system. The system 100 attaches to the computing device 10 via the bus interface logic 102 and bus interface 103 of the system 100 and the bus interface 26 of the computing device 10. In operation, the computing device 10 detects the system 100 through the bus interface logic 102, using the bus protocols of the computing device 10. The USB Local Control Program 104 boots up the server and prepares the computing device for use as the server.
The memory 106 includes a server image 110 for the server being provided by the system 100. Preferably, the server image 110 is compressed and stored on the memory 106. The server image 110 is preferably loaded onto the computing device 10 and boots up, as discussed below. Once booted up, the server image 10 allows the computing device 10 to function as a server. In addition, the system 100 also includes the other control logic 108. In a preferred embodiment, the other control logic 108 is managed by the USB Local Control Program 104. The connectors 109 preferably include an Init connector 112, a shut-down connector 114, a power control connector 116, a status LED connector 118, a DC power LED connector 120 and a LCD display connector 122. However, in another embodiment, the other control logic 108 could include other components. The connectors 109 can be coupled to LEDs (not shown) and an LCD display (not shown) for the board. The connectors 109 are controlled using the other control logic 108.
Referring to
The compressed server images 143 and 144 are the default and actual (active) server images for loading onto the computing device 10. The active server image 144 thus corresponds to the server image 110, depicted in
Once the server image 110 is loaded on the computing device 10, the computing device 10 can function as a server. Furthermore, the defaults can be restored, for example in an Init interrupt, described below in
It is determined whether the test(s) performed in step 206 indicate that the system 100 is functioning properly, via step 208. If not, then the method 200 terminates, via step 220. If it is determined that the system 100 runs properly, then the memory 106 is mounted on the computing device 10, via step 210. The boot up of the computing device 10 is then performed from the memory 106 that was just mounted, via step 212. The server image 110 is found, decompressed if necessary, via step 214. It is determined whether the functions of the method 200 were properly performed, via step 216. If so, then control is passed to the server, via step 218. Otherwise, the method 200 ends at step 220.
Thus, the method 200 and system 100 allow the computing device 10 to be used as a server. Because most of the method 200 is performed automatically, the user need not manually configure the computing device 10. Instead, the user merely plugs in the board on which the system 100 is integrated. Thus, the process used to allow a computing device 10 to be used as a server is simplified. Moreover, the system 100 is relatively inexpensive, often costing on the order of less than $25 in quantity. Thus, the computing device 10 can be turned into a server relatively cheaply and easily.
The system 100 also preferably uses the other controls 108 and connectors 109 to provide other functions in the server.
If the input was not valid, then step 222 is returned to. Otherwise, further shut-down interrupts are inhibited, via step 230. Step 230 ensures that the method 220 can be completed for the valid shut down input already provided. A shut down interrupt to the server is then generated, via step 232. A method for generating such an interrupt is described below with respect to
A Init interrupt service routine entry is provided, via step 282. A status port of the system 100 is read, via step 284. The status port of the system 100 indicates whether an initialization is pending. It is determined whether an initialization is pending, via step 286. If not, then the method 280 is terminated, via step 290. Otherwise, the server is restored to its default state, via step 288. Thus, the system 100 can be initialized relatively simply and easily, by a push of a button by a user.
Otherwise, DC power for the system 100 is turned on and the system 100 boots up, via step 308. It is then determined whether power is to be disabled, via step 310. If so, then the power on is asserted, via step 314 and the system DC power turned off via step 324. If power is not to be disabled, then it is determined whether the shut-down interrupt is to be enabled, via step 312. If not, it is determined whether the shut-down button has been pressed, via step 322. If so, then the system DC power is turned off, via step 324. Otherwise, the method returns to step 310. If it is determined in step 312 that the shut-down interrupt is to be enabled, power on is de-asserted, via step 316. It is then determined whether the shutdown button has been pressed, via step 318. Preferably, step 318 determines whether the shut-down button has been pressed for a particular amount of time. If not, then the method returns to step 310. Otherwise, the shutdown input is generated, via step 320 and step 310 returned to.
Thus, using the method 300, the shut-down button can be used in different ways. If the shut down button is pressed prior to a shut-down interrupt being enabled, then the method 300 allows the DC power to the system 100 to be turned off. If, however, the shutdown interrupt was enabled, as determined in step 312, prior to the shut-down button being pressed, then the shut down input generated in step 320 and the system 100 can be shut down using the method 220. Thus, using the method 300, the shut-down button can be used either to turn off the DC power to the system or to shut down the system 100. Thus, using the methods 220, 240, 260, 280 and 300, additional functions can be provided using the system 100.
A method and system has been disclosed for allowing a computing device to be used as a server. Software written according to the present invention is to be stored in some form of computer-readable medium, such as memory, CD-ROM or transmitted over a network, and executed by a processor. Consequently, a computer-readable medium is intended to include a computer readable signal which, for example, may be transmitted over a network.
Accordingly, a system and method in accordance with the present invention applies to a variety of mass storage devices such as Serial ATA FLASH hard drive, IDE FLASH hard drive, SCSI FLASH hard drive and Ethernet FLASH hard drive. In addition, a FLASH controller in accordance with the present invention also applies to FLASH memory cards such as Express Card, Mini PCI Express Card, Secure Digital Card, Multi Media Card, Memory Stick Card and Compact FLASH card. Finally, a system in accordance with the present invention also applies to the other serial buses such as PCI Express bus, Serial ATA bus, IEEE 1394 bus and Ethernet bus. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.
Although the present invention has been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations to the embodiments and those variations would be within the spirit and scope of the present invention. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.
Claims
1. A server-on-a-board assembly comprising:
- a computing device including a processor;
- an electronic data flash device detachably plugged into the computing device, the electronic data flash device including a flash memory device and server image information stored on the flash memory device; and
- means for selectively booting up the computing device using the server image information stored on the flash memory device such that the computing device is configured to function as a server according to the server image information.
2. The assembly of claim 1, wherein the electronic data flash device further comprises means for interacting with the computing device such that the computing device detects the electronic data flash device before booting the processor.
3. The assembly of claim 2,
- wherein the computing device includes a first bus interface;
- wherein the electronic data flash device includes a second bus interface that is coupled to the first bus interface only when the electronic data flash device is plugged into the computing device, and
- wherein said means for interacting includes means for causing the computing device to detect the electronic data flash device through the second bus interface.
4. The assembly of claim 3,
- wherein the computing device includes a built-in operating system (BIOS), and
- wherein the electronic data flash device further comprises a local control program that is activated, upon said detection of the electronic data flash device, to connect with said BIOS such that the local control program begins controlling the computing device.
5. The assembly of claim 4, wherein the local control program includes means for testing the electronic data flash device to verify that the electronic data flash device is capable of controlling the computing device.
6. The assembly of claim 5, means for testing includes means for verifying that the flash memory device is controllable by the computing device.
7. The assembly of claim 5,
- wherein said electronic data flash device further includes at least one of an input device and an output device, and
- wherein said means for testing includes means for verifying that said at least one of said input device and said output device are controllable by the computing device
8. The assembly of claim 7, wherein said at least one of said input device and said output device comprise one or more of a light emitting diode display, a liquid crystal display and a control button.
9. The assembly of claim 4,
- wherein the computing device further includes a Media Access Card (MAC) address, and
- wherein said means for testing includes means for reading the MAC address
10. The assembly of claim 9, wherein said means for testing includes means for establishing a personalized key
11. The assembly of claim 4,
- wherein said server image information stored on the flash memory device includes a field configurable and field upgradeable bitmap image and a server image, and
- wherein said local control program further comprises means for loading the server image onto the computing device, and then for booting up the computing device such that the computing device executes the loaded server image.
12. The assembly of claim 11,
- wherein said electronic data flash device further includes at least one output device, and
- wherein after said booting up the computing device, said computing device includes means for controlling said at least one output device by way of said field configurable and field upgradeable bitmap image.
13. The assembly of claim 11, wherein said at least one output device comprises one or more of a light emitting diode display and a liquid crystal display
14. The assembly of claim 11,
- wherein said electronic data flash device further includes at least one input device, and
- wherein after said booting up the computing device, said computing device is controllable by way of said at least one input device and said field configurable and field upgradeable bitmap image.
15. The assembly of claim 14,
- wherein said at least one input device includes a push button, and
- wherein said computing device includes means for shutting down said computing device in response to depression of said push button.
16. The assembly of claim 14,
- wherein said at least one input device includes a push button, and
- wherein said computing device includes means for restoring the computing device in response to depression of said push button.
17. The assembly of claim 1,
- wherein said server image information stored on the flash memory device includes a field configurable and field upgradeable bitmap image and a server image, and
- wherein said means for booting up the computing device comprises means for loading the server image onto the computing device before booting up the computing device.
18. The assembly of claim 1, wherein the electronic data flash device comprises a Universal Serial Bus (USB) device.
19. A server-on-a-board assembly comprising:
- a computing device including a built-in operating system (BIOS) and a first bus interface;
- an electronic data flash device including a bus interface, a flash memory device, and a local control program that is coupled to the bus interface logic and to the flash memory device,
- wherein server image information is stored in the flash memory device,
- wherein the bus interface includes means for interacting with the BIOS of the computing device such that the computing device detects the electronic data flash device when the electronic data flash device is plugged into to the computing device,
- wherein, once the computing device detects the electronic data flash devices, the local control program connects with the BIOS and controls the computing device such that the server image information is transferred from the flash memory into the computing device, and such that the computing device boots up using the transferred server image information.
20. A computing device for serving multiple users by way of a network interface, the computing device comprising:
- means for detecting that an electronic data flash device is coupled to the bus interface,
- means for transferring server image information from the detected electronic data flash device into the computing device, and
- means for booting up the computing device using the transferred server image information such that the computing device communicates with said multiple users over said network interface in accordance with the transferred server image information.
Type: Application
Filed: Jun 4, 2007
Publication Date: Oct 25, 2007
Applicant: Super Talent Electronics, Inc. (San Jose, CA)
Inventor: Ben Chen (Fremont, CA)
Application Number: 11/757,955
International Classification: G06F 15/16 (20060101);