A characteristic of servers that distinguishes servers from other computer systems is the lack of directly coupled input/output devices, such as display and keyboard. As the use of servers in home environments expands additional functionality is demanded by consumers, but the additional functionality is difficult to provide in a user friendly manner given the lack of a directly coupled display and keyboard. An example of functionality that is difficult to provide in a user-friendly manner is peripheral ports. Many devices may be coupled physically to peripheral ports of a server in the home, but not all devices may be supported. Given the absence of a directly coupled display, it is difficult to convey to the user of the server in the home whether a particular device coupled to a peripheral port is supported and/or operational.
For a detailed description of exemplary embodiments, reference will now be made to the accompanying drawings in which:
Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, computer companies may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function.
In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . .” Also, the term “couple” or “couples” is intended to mean either an indirect, direct, optical or wireless electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, through an indirect electrical connection via other devices and connections, through an optical connection, or through a wireless electrical connection.
The following discussion is directed to various embodiments. Although one or more of these embodiments may be preferred, the embodiments disclosed should not be interpreted, or otherwise used, as limiting the scope of the disclosure. In addition, one skilled in the art will understand that the following description has broad application, and the discussion of any embodiment is meant only to be exemplary of that embodiment, and not intended to intimate that the scope of the disclosure is limited to that embodiment.
The home networking system 100 of
Main memory array 26 couples to the host bridge 28 through a memory bus 32. Those host bridge 28 comprises a memory control unit that controls transactions to the main memory 26 by asserting control signals for memory accesses. The main memory array 26 functions as the working memory for the processor 10 and comprises a memory device or array of memory devices in which programs, instructions and data are stored. The main memory array 26 may comprise any suitable type of memory such as dynamic random access memory (DRAM) or any of the various types of DRAM devices such as synchronous DRAM (SDRAM), extended data output DRAM (EDODRAM), or Rambus DRAM (RDRAM), etc.
Still referring to
Network attached storage device 20 further comprises a hard drive controller 46 coupled to the south bridge 34 by way of the illustrative PCI bus 38. In alternative embodiments, the hard drive controller may couple to the primary expansion bus 36, or any other currently available or after-developed expansion bus. The drive controller 46 controls the non-volatile memory 48 of the hard drive. In some embodiments, the network attached storage device 20 implements a single hard drive where computer systems of the home network can store and retrieve data and programs. In alternative embodiments, the network attached storage device implements a redundant array of independent (or inexpensive) drive (RAID) system where the data and instructions written to the network attached storage 20 are duplicated across multiple hard drives to implement fault tolerance.
Also coupled to the illustrative PCI bus 38 is a network interface card (NIC) 50. In alternative embodiments, the functionality of the NIC 50 is integrated onto the motherboard along with the bridges 28 and 34. The NIC 50 enables the network attached storage device 20 to communication with computer systems on the home networking system 100 (through the router 14, both of
Because the network attached storage device 20 is designed to act as a server for the home networking system 100, and possibly to reduce cost, in accordance with at least some embodiments the network attached storage device 20 does not support direct coupling of a display device and/or keyboard. Thus, in some embodiments the network attached storage device 20 does not implement a graphics controller that would couple to a display, and also does not implement an input/output (I/O) controller that would couple to I/O devices such as a keyboard and mouse. To the extent administration is performed on the network storage device 20, the administration may be done remotely using computer systems (e.g., desktop computer 10 or notebook computer 16) in the home networking system 100.
In accordance with at least some embodiments, the network attached storage device 20 provides the user one or more peripheral ports to which to couple peripheral devices (e.g., flash memory devices, digital cameras, scanners, printers). In the illustration of
It is possible, however, that a user may couple a peripheral device to the peripheral port 52 which is not supported by the network attached storage device 20. For example, the user may couple a printer to the network attached storage device 20 for which no driver program is present. Given the lack of a display device and/or keyboard, it is difficult to quickly and efficiently inform the user of the operability or lack of operability of a device attached to the peripheral port. In order to address concerns of informing the user of operability of attached peripheral devices, and in accordance with at least some embodiments, the network attached storage device 20 implements an indicator 54 that is associated with and located proximate to the peripheral port 52.
In accordance with at least some embodiments, the indicator 54 gives the network attached storage device 20 user an indication of the operability (or lack of operability) of a peripheral device coupled to the peripheral port 52. In some embodiments, the indicator is a visual indicator, such as a light emitting diode, incandescent bulb, fluorescent bulb, laser diode or laser device. In other embodiments, the indicator 54 is an audible indicator, such as an electric buzzer, or tone generator coupled to a speaker. In yet still other embodiments, the indicator is a combination of multiple visual indicators, or a combination of visual indicators and an audible indicator.
Operating the indicator 54 could take many forms. In some embodiments, one or more outputs of a set of general purpose I/O (GPIO) 56 of the south bridge 34 may couple to a driver circuit 58, which in turn drives the indicator 54. In some embodiments, the driver circuit 58 couples power to the indicator 54 responsive to the assertion of a GPIO 56. In the case of a tone generator, the driver circuit 58 may generate signals of appropriate frequency, or a series of frequencies, to be applied to the speaker. Utilizing GPIO 56 of the south bridge 34 is merely illustrative. Any available digital output signal within the network attached storage device 20 may be used to communicate to the driver circuit 58. Alternatively, the processor 24 may communicate to the driver circuit 58 by other communication systems, such as by coupling the driver circuit 50 to a secondary expansion bus, such as the PCI bus 38.
Returning to the illustrative determination of whether there is a register entry for the newly coupled device (block 312), if there is not a registry entry (or the device is otherwise not supported), the method proceeds to driving the indicator 54 to indicate non-support and/or lack of operability of the newly attached device with the network attached storage device (block 318). Driving to indicate a non-supported device likewise may take many forms. In some embodiments a light of a particular color is illuminated (e.g., red) to indicate the non-support. In embodiments where only a single light source is available, the light may be pulsed at a particular frequency to indicate operability, and driven solid to indicate lack of operability, or vice versa. In addition to or in place of driving of the lights, a tone or series of tones may be generated to indicate non-support for the newly attached device.
The various embodiments discussed to this point have been directed to determining whether a peripheral device attached to a peripheral port 54 is supported by the network attached storage device 20, and informing the user of the determination in some form. Further embodiments also enhance the user's experience when utilizing devices coupled to the peripheral ports. In some of these further embodiments, the network attached storage device 20 compensates for slow access times of peripheral devices attached to the peripheral port, and yet still further embodiments move functionality of the attached peripheral device to the network attached storage device. Each of these is discussed in turn.
Many of the peripheral devices that may couple to the peripheral port 54 have data and programs stored on memory of the peripheral device that, ultimately, the user will want to copy to the hard drive(s) of the network attached storage device 20 and/or to computer systems of the home networking system 100. However, data transfer rates from the peripheral devices (e.g., a flash memory device, a digital still camera, a digital video camera) may be relatively slow, and in the case of digital video may be too slow to stream directly from the peripheral device. In accordance with at least some embodiments, the network attached storage device assesses the communication speed of the attached peripheral storage device, and in cases where the communication speed is low compared to the type or size of data stored on the peripheral device, the network attached storage device 20 reads the data from the memory of the peripheral device and caches or mirrors the data on the hard drive of the network attached storage device 20. Thus, so long as the peripheral device is attached to the peripheral port 52, the network attached storage device 20 maintains a cached copy of the data. When the user requests the data, the data is provided from the cached copy from the hard drive(s) of the network attached storage device 20. Thus, the data may be provided from the cached copy on the hard drive of the network attached storage device 20 faster than if the data is copied from the peripheral device across the peripheral port 52 each time the data is requested.
Returning to