U.S. patent application number 15/695684 was filed with the patent office on 2018-07-26 for extending the capabilities of existing devices without making modifications to the existing devices.
This patent application is currently assigned to Intel Corporation. The applicant listed for this patent is Intel Corporation. Invention is credited to Sun Chan, Jesse Fang, Leibo Liu, Paul Peng, Jiqiang Song, Eugene Tang, Dawei Wang, Randolph Y. Wang, Shaojun Wei, Shouyi Yin.
Application Number | 20180210853 15/695684 |
Document ID | / |
Family ID | 48191200 |
Filed Date | 2018-07-26 |
United States Patent
Application |
20180210853 |
Kind Code |
A1 |
Wang; Randolph Y. ; et
al. |
July 26, 2018 |
EXTENDING THE CAPABILITIES OF EXISTING DEVICES WITHOUT MAKING
MODIFICATIONS TO THE EXISTING DEVICES
Abstract
A system of extending functionalities of a host device using a
smart flash storage device comprises the host device having a host
interface and configured to perform a specific function to generate
a first set of data. The host device is coupled with a flash
storage device. The flash storage device is configured to conform
to a flash memory interface. A set of data generated by the host
device is to be stored in flash memory storage of the flash storage
device. A processor of the flash storage device is configured to
run one or more user applications to process the set of data. The
processor is to operate using power supplied by the host
device.
Inventors: |
Wang; Randolph Y.; (Santa
Clara, CA) ; Wei; Shaojun; (Beijing, CN) ;
Liu; Leibo; (Beijing, CN) ; Tang; Eugene;
(Beijing, CN) ; Song; Jiqiang; (Beijing, CN)
; Chan; Sun; (Fremont, CA) ; Wang; Dawei;
(Beijing, CN) ; Fang; Jesse; (San Jose, CA)
; Peng; Paul; (Beijing, CN) ; Yin; Shouyi;
(Beijing, CN) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Intel Corporation |
Santa Clara |
CA |
US |
|
|
Assignee: |
Intel Corporation
Santa Clara
CA
|
Family ID: |
48191200 |
Appl. No.: |
15/695684 |
Filed: |
September 5, 2017 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13997081 |
Oct 7, 2013 |
9753878 |
|
|
PCT/CN2011/081667 |
Nov 2, 2011 |
|
|
|
15695684 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
Y02D 10/00 20180101;
Y02D 10/151 20180101; Y02D 10/14 20180101; G06F 13/385 20130101;
G06F 1/266 20130101 |
International
Class: |
G06F 13/38 20060101
G06F013/38; G06F 1/26 20060101 G06F001/26 |
Claims
1-23. (canceled)
24. A media presentation system, comprising: a processor; flash
storage; a WiFi wireless network interface to communicate with one
or more remote devices; a WiFi antenna; a hardware interface to
physically connect the media presentation system to a host device;
and memory having instructions stored therein that, when executed
by the processor, result operations that include: cause a
communication, via the WiFi wireless network interface, with a
cloud-based application service that includes one or more
applications; cause a transfer of the one or more applications from
the cloud-based application service to the memory; cause an
execution of one or more applications in the memory; cause a
transfer of one or more media files from the host device to the
flash storage via the hardware interface; identify one or more
media files in the flash storage; and cause a transfer, via the
WiFi wireless network interface, of the one or more media files to
the one or more remote devices for a real-time presentation at the
one or more remote devices.
25. The media presentation system of claim 24 wherein, when
executed by the processor, one of the one or more applications in
the memory result in operations that include: cause a
communication, via the WiFi wireless network interface, of one or
more other media files to a social network.
26. The media presentation system of claim 24 wherein the
instructions, when executed by the processor, result in operations
that include: cause a generation, by the processor, of a graphical
user interface (GUI).
27. The media presentation system of claim 24 wherein the processor
receives power via a universal serial bus (USB) interface.
28. The media presentation system of claim 27 wherein the hardware
interface comprises the USB interface.
29. A media presentation method, comprising: communicating, via a
WiFi wireless network interface, with a cloud-based application
service that includes at least one executable application;
receiving in a memory, via the Wifi wireless network interface, the
at least one executable application from the cloud-based
application service; executing, by a processor, the at least one
executable application in the memory, the processor connected to
the WiFi wireless network interface and the memory; receiving, in a
flash storage coupled to the processor, one or more media files
from a host device physically coupled via a hardware interface;
identifying, by the processor, the one or more media files in the
flash storage; and transferring, by the processor via the WiFi
wireless network interface, of the one or more media files to one
or more remote devices for a real-time presentation at the one or
more remote devices.
30. The media presentation method of claim 29, comprising:
transferring, by the processor via the WiFi wireless network
interface, of one or more media files to one or more social
networks.
31. The media presentation method of claim 29, comprising:
generating, by the processor, a graphical user interface (GUI) on
the one or more remote devices.
32. The media presentation method of claim 29, comprising:
receiving power via a universal serial bus (USB) interface, by the
processor.
33. The media presentation method of claim 32 wherein receiving
power via universal serial bus (USB) interface comprises: receiving
power via the hardware interface, wherein the hardware interface
includes the universal serial bus (USB) interface.
34. A media presentation system, comprising: wireless network
interface means for communicating with a cloud-based application
service that includes at least one executable application; storage
means for storing the at least one executable application from the
cloud-based application service; means for executing the at least
one executable application in the memory; hardware interface means
for receiving one or more media files from a host device; flash
storage means for storing the one or more media files from the host
device; means for identifying one or more media files in the flash
storage; and means for transferring the one or more media files to
one or more remote devices to provide a real-time presentation at
the one or more remote devices.
35. The media presentation system of claim 34, comprising: means
for transferrin of one or more media files to one or more social
networks.
36. The media presentation system of claim 34, comprising: means
for generating a graphical user interface (GUI) on the one or more
remote devices.
37. The media presentation system of claim 34, comprising:
universal serial bus (USB) interface means for receiving power by a
processor.
38. The media presentation method of claim 37 wherein the hardware
interface means includes the USB interface means.
39. At least one computer-readable storage device having
instructions stored thereon that, when executed by a processor,
result in operations that include: communicate, via a WiFi wireless
network interface, with a cloud-based application service that
includes at least one executable application; receive, via the WiFi
wireless network interface, the at least one executable application
from the cloud-based application service; store in a memory, the at
least one one executable application from the cloud-based
application service; execute the at least one executable
application in the memory; receive, via a hardware interface, one
or more media files from a host device; store, in a flash storage,
one or more media files from the host device physically coupled via
a hardware interface; identify the one or more media files in the
flash storage; and transfer, via the WiFi wireless network
interface, of the one or more media files to one or more remote
devices for a real-time presentation at the one or more remote
devices.
40. The at least one computer-readable storage device of claim 39
wherein the instructions, when executed by the processor, result in
operations that include: Transfer, via the WiFi wireless network
interface, of one or more media files to one or more social
networks.
41. The at least one computer-readable storage device of claim 39
wherein the instructions, when executed by the processor, result in
operations that include: cause a generation of a graphical user
interface (GUI) on the one or more remote devices.
42. The at least one computer-readable storage device of claim 39
wherein the instructions, when executed by the processor, result in
operations that include: receive power via a universal serial bus
(USB) interface.
43. The at least one computer-readable storage device of claim 39
wherein the instructions, when executed by the processor, result in
operations that include: receive power via the hardware interface,
wherein the hardware interface includes the universal serial bus
(USB) interface.
Description
CROSS-REFERENCE TO RELATED APPLICATION
[0001] The present application is a continuation of U.S. patent
application Ser. No. 13/997,081 filed Oct. 7, 2013, which is a
National Stage Entry of PCT/CN2011/081667 filed 11-02-201, the
entire disclosures of which are incorporated herein by
reference.
BACKGROUND
Technical Field
[0002] Embodiments of the present invention generally relate to the
field of data processing, and in some embodiments, specifically
relate to extending capabilities of consumer electronic
devices.
Discussion
[0003] Flash storage devices have become ubiquitous commodity
components that are being utilized in a variety of consumer
electronic devices. However, their functions are generally very
limited.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] The multiple drawings refer to the embodiments of the
invention. While embodiments of the invention described herein are
subject to various modifications and alternative forms, specific
embodiments thereof have been shown by way of example in the
drawings and will herein be described in detail.
[0005] FIG. 1 is a diagram that illustrates an example system
having a storage device, in accordance with some embodiments;
[0006] FIG. 2 is a block diagram that illustrates an example
storage device, in accordance with some embodiments;
[0007] FIG. 3 is a block diagram that illustrates an example of a
storage device exchanging its information, in accordance with some
embodiments;
[0008] FIG. 4 is a network diagram that illustrates examples of
using the storage devices in various applications, in accordance
with some embodiments; and
[0009] FIG. 5 is a flow diagram illustrating a process associated
with using a storage device, in accordance with some
embodiments.
DETAILED DESCRIPTION
[0010] For some embodiments, methods and apparatuses of enabling
storage devices such as flash storage devices to have more
functions than the traditional storage functions are disclosed. The
storage device may be configured to include a processor and a
communication module coupled with the processor. Power can be
supplied at least to the processor and the communication module by
a host device associated with the storage device.
[0011] In the following description, numerous specific details are
set forth, such as examples of specific data signals, components,
connections, etc. in order to provide a thorough understanding of
the various embodiments of the present invention. It will be
apparent, however, to one skilled in the art that the embodiments
of the present invention may be practiced without these specific
details. In other instances, well known components or methods have
not been described in detail but rather in block diagrams in order
to avoid unnecessarily obscuring the embodiments of the present
invention. Reference may be made to the accompanying drawings that
form a part hereof, and in which it is shown by way of illustration
specific embodiments in which the invention can be practiced. It is
to be understood that other embodiments can be used and structural
changes can be made without departing from the scope of the
embodiments of this invention. As used herein, the terms "couple,"
"connect," and "attach" are interchangeable and include various
forms of connecting one part to another either directly or
indirectly. Also, it should be appreciated that one or more
structural features described in one embodiment could be
implemented in a different embodiment, even if not specifically
mentioned as being a feature thereof. Thus, the specific details
set forth are merely exemplary. The specific details may be varied
from and still be contemplated to be within the spirit and scope of
embodiments of the present invention.
[0012] FIG. 1 is a diagram that illustrates an example system
having a storage device, in accordance with some embodiments. A
system 100 includes a host device 105 and storage device 110, in
the example shown. The host device 105 may include power supply 106
which may be a battery or is associated with an electrical outlet.
The host device 105 may also include a host interface 108 to
communicate with the storage device 110 via a link 109. It may be
noted that the link 109 is used to illustrate one possible
connection between the host device 105 and the storage device 110.
Other techniques to enable the connection of the host device 105
and the storage device 110 may also be used. For some embodiments,
the host device 105 is a mobile device that is configured to
perform a certain function. For example, the host device 105 may be
a digital camera. The dotted line separating the host device 105
and the storage device 110 is meant to convey that they are
separated devices, but the storage device 110 may be coupled with
(or plugged into) the host device 105.
[0013] FIGS. 2 and 3 are is a block diagrams that illustrate an
example system having a storage device, in accordance with some
embodiments. A system 200 (inside the dotted lines) may include the
storage device 110 and the host device 105. The storage device 110
may include a processor a communication module 220, a memory 225,
and flash storage 230. For some embodiments, the storage device 110
may be implemented using a form factor that is commonly used by
flash storage device such as, for example, a solid state (SD) card
or a universal serial bus (USB, e.g., USB Specification 3.0, Rev.
1.0, Nov. 12, 2008, USB Implementers Forum) thumb drive. One
advantage of using the flash memory form factor is that it contains
no mechanical parts. As a result, data transfer to and from
solid-state storage media may take place at a much higher speed
than is possible with electromechanical disk drives. The absence of
moving parts may translate into longer operating life, provided the
devices are reasonably cared for and are not exposed to
electrostatic discharge. However, as compared to electromechanical
drives, the flash memory form factor may lag behind the
electromechanical drives in terms of storage capacity.
[0014] As an example, hard drives commonly hold hundreds of
gigabytes (GB) whereas the flash memory USB devices may not be able
to store as much. The cost per megabyte (MB) may be higher fir
solid-state storage devices than for electromechanical drives.
However, the price gap appears to be narrowing, and the market for
solid-state storage is may be growing. Many businesses and home
users who have multiple computers may favor solid-state storage
devices for transferring data among their machines, because it is
convenient, compact, and fast.
[0015] The illustrated storage device 110 also includes device
interface 235 to enable the storage device 110 to interface with
the host device 105. For some embodiments, the device interface 235
is configured to conform to existing flash storage (file system)
interface. Having the standard form factor and conforming to the
existing storage interface may enable the storage device 110 to be
used with a host device 105 from many different manufacturers. For
some embodiments, the storage device 110 is configured to draw
power from the host device 105 when the device interface 235 is
coupled with the host interface 108. The power drawn from the host
device 105 may be used to power at least the processor 205 and the
communication module 220.
[0016] The flash storage 230 may be used as a local flash storage.
For example, the host device 105 may be a digital camera and
digital images captured by the host device 105 may be stored in the
flash storage 230. The communication module 220 may be implemented
to operate with a Wi-Fi (e.g., Institute of Electrical and
Electronics Engineers/IEEE 802.11-2007, Wireless Local Area
Network/LAN Medium Access Control (MAC) and Physical Layer (PHY)
Specifications) network, cellular network (e.g., a "3G" network, a
"4G" network) or any type of network that enables the storage
device 110 to exchange information with other devices.
[0017] With continuing reference to FIGS. 1-3 a block diagram
illustrates an example of a storage device exchanging its
information, in accordance with some embodiments. The memory 225 of
the storage device 110 may be used to store instructions associated
with software applications that may be executed by the processor
215. The software applications may include an operating system (OS)
for mobile environments (e.g., Android from Google, Inc. of
Mountain View, Calif., WebOS from Hewlett-Packard Company of
Cupertino, Calif., etc.), a communication application, and any
other user applications that may be used to enable the storage
device 110 to extend capabilities of the host device 105. For
example, applications may be developed, downloaded and run on the
storage device 110 to enable transmitting images stored in the
flash storage 230 to other devices such as devices 305, 310 and
315.
[0018] The storage device 110 may not have a user interface. It
may, however, support virtual device interface such as, for
example, virtual network computing (VNC) via Wi-Fi, 3G, 4G, etc.
VNC is software that makes it possible to view and interact with a
computer from any other computer or device connected to the
Internet. VNC is cross-platform, so a person using a Windows-based
computer can connect to and interact with a UNIX system. For
example, when the Android OS is used in the storage device 110, the
standard Android graphical user interface (GUI) display may be seen
in a VNC client running on some other devices. As another example,
the storage device 110 may be configured to execute instructions
associated with a web server, and users may interact with the web
server in a way that is similar to how the Wi-Fi routers are
configured using a Windows-based computer.
[0019] With continuing reference to FIGS. 1-4 is a network diagram
that illustrates examples of using the storage devices in various
applications, in accordance with some embodiments. A network 400
includes multiple connected devices, in the example shown. The
network 400 may be the Internet. Connections from the devices to
the network 400 may be wired, wireless, or any other types of
connection. For some embodiments, the storage device 110 is
configured to work with any host devices 105, including existing
host devices without having to make any hardware or software
modifications to the existing devices. The storage device 110 may
remain plugged into the host device 105 for a prolonged period of
time, while quietly executing user applications that have been
downloaded into the storage device 110.
[0020] For example, a digital camera (or host device) 410B equipped
with the storage device 110 may send images in real time to a
digital photo frame 410D that is also equipped with a storage
device such as the storage device 110. As another example, a voice
recorder (or host device) 410A equipped with the storage device 110
may automatically send each new snippet of newly recorded voice to
a "voice Twitter" social networking site. The voice recorder 410A
may also perform automatic transcription and post the text to the
Twitter social networking site 405A. As another example, a radio
receiver (or host device) 410C that records daily programs may be
programmed to deposit its recordings in a home media server 405C or
uploading it to a cloud-based service. Other examples include a
pocket scanner (or host device) that writes its scanned files to
the storage device 110 may be programmed to send the scanned files
to an e-reader, which may be similarly equipped with a storage
device similar to the storage device 110, and a printer (or host
device) that uses the storage device 110 as part of its print queue
may easily implement an "email-to-print" feature.
[0021] The host devices used in the above examples may be referred
to as "dumb" devices which normally would have limited
functionalities. However, when pairing with the storage device 110,
these "dumb" host devices have significantly more functionalities.
For some embodiments, multiple storage devices 110 (together with
their corresponding host devices 105) may be configured to work
together as a federation to collaboratively perform a single task.
This operating system of the storage devices 110 may be configured
to recognize the collaboration in order to perform the task.
[0022] Having the storage device 110 configured with the features
as described in FIG. 2 not only extends the capabilities of the
host devices 105, but also enables the manufacturers of the host
devices 105 to focus on developing host devices 105 for which they
have expertise. For example, camera makers can focus on making
cameras with excellent optics, which should be squarely within the
camera makers' domain of expertise. These camera makers, on the
other hand, may not necessarily be experts in developing social
network applications that share images. The makers of the storage
device 110 can focus on making low-power, low-cost,
high-performance storage devices. Application developers can focus
on developing new applications to run on the storage device 110 and
extend the functionalities of a wide variety of host devices 105.
These three groups of host device manufacturers, storage device
manufacturers, and application developers may work independently of
one another. For example, an application developed for a particular
form of digital picture sharing may run on a storage device that
can be plugged into multiple models of digital cameras.
[0023] For some embodiments, the user applications developed for
the storage device 110 may be stored in cloud-based services
associated with a partner. The user applications may then be
downloaded to the storage device 110 based on a user of the
corresponding host device 105 registering for the services of the
cloud. In essence, the cloud-based services may be viewed as an
application store for all of the applications developed for the
storage device 110. In these scenarios, the local flash storage 230
may be used as a cache. As another example, the user applications
may be coupled with network-based image hosting services such as
Picasa of Google, Inc. of Mountain View, Calif. As another example,
the user applications may be coupled with network-based video
hosting services such as YouTube of Google, Inc. As another
example, the user applications may be coupled with network-based
document hosting services such as Google Does of Google, Inc. There
are many other applications that may be used with the storage
device 110 using the services available from the cloud-based
services and/or from the services connected to the Internet. For
some embodiments, computational demands may be offloaded from the
storage device 110 (and the processor 215) to server computing
systems that are part of the cloud and/or connected to the
Internet.
[0024] It should be noted that the storage device 110 described
herein may be applicable for usage in many different types of
consumer electronics. If any examples refer to the use of the
storage device 110 in digital cameras or the like, they are only as
examples and are not meant to be limiting to those applications. In
other words, the storage device 110 may be used in any consumer
electronics or host device) that are configured to accept flash
memory using the common form factor such as the SD card or a USB
thumb drive. Further, the storage device 110 described herein may
be configured to operate with user developed applications that may
be downloaded and executed by a processor on the storage device
110.
[0025] With continuing reference to FIGS. 1-5 is a flow diagram
illustrates a process associated with using a storage device, in
accordance with some embodiments. The process may start at block
505 where a storage device 110 is configured to operate with a host
device 105. This may be based on the storage device 110 conforming
to standard form factor such as a USB thumb drive and conforming to
existing flash storage interface. The storage device 110 is
configured with a processor 215. At block 510, user applications
may be loaded into the storage device 110. The user applications
may be downloaded from a user application store, from cloud-based
application services, etc. The user applications may be stored in
the memory 225 of the storage device 110 and instructions from
these user applications may be executed by the processor 215. The
memory 225 may also be configured to store an OS such as Android
from Google, Inc. The OS may be loaded and executed by the
processor 215. At block 515, the storage device 110 may be
configured to operate using the power from the host device 105.
That is, the storage device 110 may not have its own power supply.
In alternative embodiments, the storage device 110 may have its own
power supply in addition to or instead of drawing the power from
the host device 105. At block 520, the storage device 110 may be
configured to exchange data with other devices using a
communication module of the storage device 110. This may include,
for example, transmitting images and/or texts to social networks
server computing systems connected to the Internet.
[0026] The flow diagram may therefore be associated with a method
for enabling a host device to operate with a flash storage device,
wherein the flash storage device is configured to operate with its
own processor and communication module. The method also includes
enabling one or more user applications to be loaded into a memory
of the flash storage device, enabling data generated by the host
device to be stored in a flash memory storage of the flash storage
device, and enabling the one or more user applications to be
executed by the processor to process the data generated by the host
device, wherein the processor is configured to operate using power
supplied by the host device and not by the flash storage
device.
[0027] Embodiments may also include a storage apparatus having a
processor, and a memory module coupled with the processor and
configured to store a mobile operating system and one or more user
applications. The storage apparatus can also have a device
interface configured to couple with an interface of a host device.
The storage device can further include a storage module configured
to store data associated with the host device, wherein at least the
processor and the memory module are configured to operate using
power supplied by the host device.
[0028] In addition, embodiments can include a system having a host
device with a host interface and configured to perform a specific
function to generate a first set of data. The system can also have
a first storage device coupled with the host device and having a
processor, flash memory storage, and a device interface conforming
to a flash memory interface, wherein the first set of data
generated by the host device is to be stored in the flash memory
storage. The processor may be configured to run one or more user
applications to process the first set of data. Additionally, the
processor may be configured to operate using power supplied by the
host device.
[0029] Other embodiments may include a computer readable storage
medium having a set of instructions which, if executed by a
processor, cause a flash storage device to enable a host device to
operate with the flash storage device. The flash storage device may
be configured to operate with the processor and a communication
module. The set of instructions which, if executed by the
processor, can further enable one or more user applications to be
loaded into a memory of the flash storage device, enable data
generated by the host device to be stored in a flash memory storage
of the flash storage device, and enable the one or more user
applications to be executed by the processor to process the data
generated by the host device. Moreover, the processor may be
configured to operate using power supplied by the host device and
not by the flash storage device.
[0030] Although embodiments of this invention have been fully
described with reference to the accompanying drawings, it is to be
noted that various changes and modifications will become apparent
to those skilled in the art. Such changes and modifications are to
be understood as being included within the scope of embodiments of
this invention as defined by the appended claims. For example,
specific examples are provided for shapes and materials; however,
embodiments include those variations Obvious to a person skilled in
the art, such as changing a shape or combining materials together.
Further, while some specific embodiments of the invention have been
shown the invention is not to be limited to these embodiments. For
example, several specific modules have been shown. Each module
performs a few specific functions. However, all of these functions
could be grouped into one module or even broken down further into
scores of modules. Most functions performed by electronic hardware
components may be duplicated by software emulation and vice versa.
The embodiments of the invention are to be understood as not
limited by the specific embodiments described herein, but only by
scope of the appended claims.
* * * * *