U.S. patent application number 11/757955 was filed with the patent office on 2007-10-25 for method and system for providing a modular server on usb flash storage.
This patent application is currently assigned to Super Talent Electronics, Inc.. Invention is credited to Ben Wei Chen.
Application Number | 20070250564 11/757955 |
Document ID | / |
Family ID | 34750388 |
Filed Date | 2007-10-25 |
United States Patent
Application |
20070250564 |
Kind Code |
A1 |
Chen; Ben Wei |
October 25, 2007 |
Method And System For Providing A Modular Server On USB Flash
Storage
Abstract
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.
Inventors: |
Chen; Ben Wei; (Fremont,
CA) |
Correspondence
Address: |
BEVER HOFFMAN & HARMS, LLP;TRI-VALLEY OFFICE
1432 CONCANNON BLVD., BLDG. G
LIVERMORE
CA
94550
US
|
Assignee: |
Super Talent Electronics,
Inc.
San Jose
CA
|
Family ID: |
34750388 |
Appl. No.: |
11/757955 |
Filed: |
June 4, 2007 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10762934 |
Jan 21, 2004 |
|
|
|
11757955 |
Jun 4, 2007 |
|
|
|
10002652 |
Oct 19, 2001 |
7103765 |
|
|
10762934 |
Jan 21, 2004 |
|
|
|
60324900 |
Sep 25, 2001 |
|
|
|
Current U.S.
Class: |
709/203 |
Current CPC
Class: |
G06F 9/44573 20130101;
G06F 9/4401 20130101 |
Class at
Publication: |
709/203 |
International
Class: |
G06F 15/16 20060101
G06F015/16 |
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.
Description
RELATED APPLICATIONS
[0001] 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 INVENTION
[0002] The 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
[0003] FIG. 1 depicts a generalized computing device ("computing
device") 10. The computing device 10 includes at least a CPU 12 and
an optional mass storage 18, such as a hard disk. The computing
device 10 may also include other features. The computing device
depicted in FIG. 1 also includes a memory 14 such as a flash
memory, a display 16, an input/output device 20 such as a keyboard,
BIOS 22, a network interface 24 and a bus interface 26.
Communication to a network (not shown) is carried out through the
network interface 24. Similarly, communication to any attached
devices (not shown) can be carried out via the bus interface 26.
For example, the bus interface 26 could include interfaces for PCI
Express, SATA, Ethernet, Infiniband or other serial bus
connectors.
[0004] 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.
[0005] 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 Invention
[0006] As 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.
[0007] 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.
[0008] 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 INVENTION
[0009] The 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.
[0010] 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
[0011] FIG. 1 is a block diagram of a conventional computing
device.
[0012] FIG. 2 is a high level block diagram of a system in
accordance with the present invention for allowing the computing
device to be used as a server.
[0013] FIG. 3 is a block diagram of one embodiment of the Local
Control Program of the system in accordance with the present
invention for allowing the computing device to be used as a
server.
[0014] FIG. 4 is a diagram of one embodiment of the image of the
server stored in the memory of the system in accordance with the
present invention for allowing the computing device to be used as a
server.
[0015] FIG. 5 is a more detailed block diagram of one embodiment of
the other control logic in the system in accordance with the
present invention for allowing the computing device to be used as a
server.
[0016] FIG. 6 is a flow chart of one embodiment of a method in
accordance with the present invention for utilizing the system in
accordance with the present invention to allow the computing device
to be used as a server.
[0017] FIG. 7 is a flow chart of one embodiment of a method for
using one-button shut down interrupt logic as a feature of the
system in accordance with the present invention for allowing the
computing device to be used as a server.
[0018] FIG. 8 is a flow chart of one embodiment of a method for a
shut down interrupt routine in the system in accordance with the
present invention for allowing the computing device to be used as a
server.
[0019] FIG. 9 is a flow chart of one embodiment of a method for
using one-button Init interrupt logic as a feature of the system in
accordance with the present invention for allowing the computing
device to be used as a server.
[0020] FIG. 10 is a flow chart of one embodiment of a method for an
Init interrupt routine in the system in accordance with the present
invention for allowing the computing device to be used as a
server.
[0021] FIG. 11 is a flow chart of one embodiment of a method for
using one-button power on control logic as a feature of the system
in accordance with the present invention for allowing the computing
device to be used as a server.
DETAILED DESCRIPTION
[0022] 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.
[0023] 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.
[0024] 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.
[0025] 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.
[0026] To more particularly illustrate the method and system in
accordance with the present invention, refer now to FIG. 2,
depicting a high-level block diagram of a system 100 in accordance
with the present invention for allowing the computing device to be
used as a server. The system 100 is to be used in conjunction with
a computing device such as the computing device 10. The system 100
includes bus interface logic 102, USB Local Control Program 104,
memory 106 and, in a preferred embodiment, other control logic 108
and connectors 109. The components 102, 104, 106, 108 and 109 of
the system 100 are preferably integrated into a single board that
can be plugged into the computing device 10.
[0027] 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.
[0028] 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.
[0029] FIG. 3 depicts one embodiment of the Local Control Program
104. The Local Control Program 104 includes a system initialization
and testing block 130, a local Control Program run-time main
program 132, an LCD display driver 134, a memory driver 136, a
shut-down interrupt service routine 138, and an Init service
routine 140. The drivers 134 and 136 are used to drive the display
122 and the memory 106. The shut-down interrupt service routine 138
and Init service routine 140 are used in conjunction with the other
control logic 108 described below.
[0030] Referring to FIGS. 2 and 3, in operation, once the computing
device 10 detects the presence of the system 100, the Local Control
Program 104 is activated. The Local Control Program 104 preferably
connects with the BIOS 22 and begins controlling the computing
device 10. The Local Control Program 104 preferably performs tests
on the system 100 to ensure that the system 100 can control the
functions of the computing device 10 as desired. For example, the
USB Local Control Program 104 ensures that the display, memory and
other input/output devices can be controlled. For example, in a
preferred embodiment, the hardware identification of the flash
memory 106 is read to determine the size of the memory 106. The
system initialization and testing block 130 preferably performs the
testing functions. An Ethernet MAC address of the computing device
10 is also preferably read to ensure that security and
personalization of the computing device 10 is preserved. In a
preferred embodiment, an identification for the system 100 is read
by the USB Local Control Program 104 to determine a version of the
system 100. The USB Local Control Program 104 also preferably
establishes a unique personalized key, discussed below. The USB
Local Control Program 104 establishes a boot-up sequence on the
computing device 10. The memory 106 is then mounted and boots up.
The server image 110 is then extracted from the memory 106 using
the unique personalized key. Without the key, the server image
preferably cannot extract and utilize the server image 110.
[0031] FIG. 4 is a diagram of one embodiment of the images for the
server stored in the memory 106. The server image 110 includes a
default field configurable and field upgradeable bitmap image 141
of the other control logic 108, an active field configurable and
field upgradeable bitmap image 142 of the other control logic 108,
a default compressed server image 143, an active server image 144,
a default flash drive boot-up image 145 and an active flash drive
boot-up image 146. The bitmaps 141 and 142 indicate the default and
actual (active) bitmap images for the control logic to allow the
server to track and utilize the control logic 108.
[0032] 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 FIG. 2, that is loaded onto the computing
device. The flash drive images 145 and 146 are the default and
actual (active) boot-up images of the flash memory 106.
[0033] 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 FIG. 10, using the defaults 141, 143 and 145.
The shutdown interrupt service routine 138 and Init service routine
140 can optionally reside in the server image of 110 as well.
[0034] FIG. 5 is a more detailed block diagram of one embodiment of
the other control logic 108 in the system 100 in accordance with
the present invention for allowing the computing device to be used
as a server. The other control logic 108 includes a Local Control
Program 104 address decode and control 150, a flash memory address
decode and control 152, an LCD address decode and control 154, one
button shut-down interrupt logic 156, ID, status and control decode
158 and one button Init interrupt logic 160. These blocks are used
to provide the additional functions, described below, such as a one
button shut down and Init interrupt.
[0035] FIG. 6 is a flow chart of one embodiment of a method 200 in
accordance with the present invention for using the system 100. The
method 200 preferably commences after the computing device 10 has
found the system 100. The method 200 is described in the context of
the components depicted in FIGS. 1-5. Referring to FIGS. 1-6, the
USB Local Control Program 104 is automatically coupled with the
BIOS 22 of the computing device 10, via step 202. The USB Local
Control Program 104 takes control of the computing device 10, via
step 204. The functions of the system 100 are tested, via step
206.
[0036] 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.
[0037] 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.
[0038] The system 100 also preferably uses the other controls 108
and connectors 109 to provide other functions in the server. FIG. 7
depicts one embodiment of a method 220 for utilizing one button
shut-down interrupt logic 156 and the shut-down connector 114. The
one button shut-down interrupt logic 156 waits for input, via step
222. In a preferred embodiment, the input includes a push button
(not shown) being depressed for a particular time. It is determined
whether shut-down input was received, via step 224. If not then
step 222 is returned to. Otherwise, clock sampling is performed to
allow for hardware de-bounce, via step 226. It is determined
whether the input was valid shut-down input, via step 228. In a
preferred embodiment, valid shut-down input includes the push
button being depressed for a particular time.
[0039] 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 FIG. 8. The
main system power is then shut down and the system 100 is put into
stand-by mode, via step 234. Thus, the system 100 can be shut down
using a single press of a button. A user can, therefore, shut down
the server provided using the system 100 relatively quickly and
easily, through the use of a single button.
[0040] FIG. 8 is a flow chart of one embodiment of a method 240 for
a shut down interrupt routine in the system 100 in accordance with
the present invention. The method 240 is preferably implemented in
conjunction with the one button shut-down interrupt logic 156. A
shut-down interrupt service routine entry is provided, via step
242. A status port of the system 100 is read, via step 244. The
status port of the system 100 indicates whether a shut down is
pending. It is determined whether a shut down is pending, via step
246. If not, then the method 240 is terminated, via step 254.
Otherwise, a shut down sequence for the server is initiated, via
step 248. The server is then shut down, via step 250. The main
power to the system 100 is then shut down and the system 100 is put
into standby mode, via step 252. Thus, the system 100 can be shut
down relatively simply and easily.
[0041] FIG. 9 is a flow chart of one embodiment of a method 260 for
using one-button Init interrupt logic a feature of the system 100
in accordance with the present invention. The method 260 is used in
conjunction with the one button Init interrupt logic 160 and the
Init connector 112. The one button Init interrupt logic 160 waits
for connector input, via step 262. The connector input is
preferably a push button (not shown) being depressed. It is
determined whether Init input is received, via step 264. If not,
step 262 is returned to. Otherwise, clock sampling is performed to
allow for hardware de-bounce, via step 266. It is determined
whether the Init input received is valid, via step 268. If not,
step 262 is returned to. Otherwise, further Init interrupts are
inhibited, via step 270. Step 270 ensures that the method 260 can
be completed for valid Init input already received. An Init
interrupt to the server is then generated, via step 272. The server
is thus restored to its default state using the method 260. The
return to the default state is preferably found in the default
server image 143 residing on the memory 106.
[0042] FIG. 10 is a flow chart of one embodiment of a method 280
for an Init interrupt routine in the system 100 in accordance with
the present invention. The method 280 is preferably used for
performing the step 272 of the method 260.
[0043] 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.
[0044] FIG. 11 is a flow chart of one embodiment of a method 300
for using one-button shut down and power on control logic as a
feature of the system 100. The method 300 is preferably performed
using the power on control connector 116 and the shut-down
connector 114. The power control connector (not shown) of the
computing device 10 is coupled with a power-on connector 116, via
step 302. The AC power to the system 100 is then turned on, the DC
power to the system 100 turned off, and the server of the system
100 placed in standby mode, via step 304. It is determined whether
the shut-down button has been depressed, via step 306. If not, step
306 is returned to.
[0045] 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.
[0046] 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.
[0047] 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.
[0048] 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.
[0049] 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.
* * * * *