# Patent

## Title
Method and system for providing a device which can be adapted on an ongoing basis

## Abstract

A method and system for adapting a device is disclosed. The method and system comprises providing a data stream to the device to be changed based upon a parameter. In a second aspect an adaptable device is disclosed. The adaptable device comprises an adaptable computerized environment (ACE) for receiving a data stream that allows the device to be changed based upon a parameter. The adaptable device includes a mechanism within the ACE for authorizing the data stream. A system and method in accordance with the present invention provides a hardware device that can be changed based upon a particular parameter such as time and location. In so doing, a provider of the hardware device can provide a more adaptable component which provides more value to the provider. Indeed, it is possible to give away the hardware upfront or even give an incentive to a receiver of the hardware and thereby use the device in a variety of ways.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is related to U.S. patent application Ser. No. 09/815,122, filed on Mar. 22, 2001, entitled “Adaptive Integrated Circuitry with Heterogeneous and Reconfigurable Matrices of Diverse and Adaptive Computational Units Having Fixed, Application Specific Computational Elements.” Said application is hereby incorporated by reference as if set forth in full in this document.
FIELD OF THE INVENTION
The present invention relates generally to adaptive hardware devices and more specifically adapting a hardware device on an ongoing basis.
BACKGROUND OF THE INVENTION
Traditional consumer electronic devices have substantially fixed functionality. Devices such as cell phones, digital audio players, personal digital assistants (PDAs), global positioning satellite (GPS) terminals, etc., are designed, manufactured and marketed as a specific type of device with a specific feature set. Typically, a manufacturer of a new device makes decisions at the very outset of design or manufacturing as to what functions the device will perform, which standards (e.g., communication transfer standard, data format standard, etc.) the device will be compatible with, etc. This requires selection of appropriate integrated circuit (IC) chips, or the design of new chips and circuitry.
A next step in manufacturing the device is the “board-level” design and assembly. The IC chips are arranged with other circuitry, user controls, connectors, etc., on a singular assembly such as a printed-circuit (PC) board. Typically, a new design is needed for each new device as different chips and other components are being used.
Next, a chassis designer and manufacturer is used to create and enclose the assembly in a housing, or shell. Again, this is a customized step as the packaging for a new board assembly is usually unique. After the assembly is incorporated into the housing package the device is physically completed.
Often times it is desirable to change the product based upon location and time. For example, at a sporting event, concert or other entertainment activity it may be desired to provide certain information to users of a hardware device such as a telephone, PDA or the like for advertising, promotional or other reasons. Present hardware devices are not easily adaptable for such purposes.
Accordingly, what is desired is to provide a hardware device which can be adequately changed based upon location and/or time. The present invention addresses such a need.
SUMMARY OF THE INVENTION
A method and system for adapting a device is disclosed. The method and system comprises providing a data stream to the device to be changed based upon a parameter. In a second aspect an adaptable device is disclosed. The adaptable device comprises an adaptable computerized environment (ACE) for receiving a data stream that allows the device to be changed based upon a parameter. The adaptable device includes a mechanism within the ACE for authorizing the data stream.
A system and method in accordance with the present invention provides a hardware device that can be changed based upon a particular parameter such as time and location. In so doing, a provider of the hardware device can provide a more adaptable component which provides more value to the provider. Indeed, it is possible to give away the hardware upfront or even give an incentive to a receiver of the hardware and thereby use the device in a variety of ways.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates an adaptable device in accordance with the present invention.
FIG. 2 illustrates basic parts of an adaptable device architecture based on an adaptive computing environment (ACE) approach.
FIG. 3 illustrates a system for providing an adaptive hardware device that can be changed based upon location and time.
FIG. 4 shows a plurality of mobile devices which include an ACE architecture.
FIG. 5 is a block diagram of a conventional multimode multiband receiver.
FIG. 6 illustrates a multimode multiband receiver in accordance with the present invention.



DETAILED DESCRIPTION
The present invention relates generally to adaptive hardware devices and more specifically adapting a hardware device on an ongoing basis. 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 provides for adapting a device used in commercial consumer electronic devices. Although the present application is presented primarily with respect to consumer electronic devices and relevant standards, aspects of the invention can be used with other types of electronic devices and other standards, licensed technology or functionality.
An adaptable device is initially provided to a distribution network by an original manufacturer of the device represented by adaptable device 100. A preferred embodiment of the invention uses a device including an adaptive computing engine (ACE) that is described in detail in the co-pending patent application referenced above, entitled “Adaptive Integrated Circuitry with Heterogeneous and Reconfigurable Matrices of Diverse and Adaptive Computational Units Having Fixed, Application Specific Computational Elements.” It should be apparent that any type of adaptable hardware device design is adaptable for use with the present invention. For example, the adaptable device can be any type of adaptable device using other architectures or design methodologies, such as a device using a general-purpose processor, multiprocessing, application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), dedicated circuitry, etc., or combination of the foregoing. The adaptable device can be adapted with a desired standard, or other functionality, at the point of initial shipping of the device. This is represented in FIG. 1 by an arrow from adaptation information 102 to adaptable device 100. The device can be adapted by adaptation information loaded into the device by any type of communication means such as reading magnetic media, using a digital network such as a local-area network (LAN), the interne; using a hardwire transfer, using optical or radio-frequency communication, etc. Some types of standards to which the device can be adapted to use include data formats and communication standards. For example, where a device is intended to perform a cellular telephone function, standards such as TDMA, CDMA, voice-over interne protocol (VoIP), analog, digital satellite, or other standards can be employed. Where a device is an audio playback device, formats such as Moving Pictures Expert's Group (MPEG) version 3, RealNetworks' “RealAudio” (.ra), Quicktime's (.mov), digital audio (.wav), Microsoft Media Player (.au) or other formats can be used. Where a device is a global positioning system (GPS) receiver the appropriate standards can be used. Many other types of standards and functionality can be suitable for use with the present invention.
FIG. 2 illustrates basic parts of a adaptable device architecture based on an adaptive computing environment (ACE) approach. Such an approach is discussed in detail in the co-pending patent application referenced above. The ACE architecture uses small processing elements called nodes, or matrices. The matrices are each designed to be specialized in one basic type of processing such as arithmetic, bit manipulation, finite state machine, memory oriented or reduced instruction set computing (RISC) approaches. The matrices are provided with adaptable interconnection networks. A scheduler performs the task of mapping an operation, or function, onto the matrices. Once mapped, the function can execute for a while before a next function is mapped onto the same set of matrices. In this manner, the functionality of a device that includes the matrices can be changed quickly and efficiently.
In FIG. 2, adaptable matrix 150 includes a plurality of computation units 200 (illustrated as computation units 200A through 200N). Computation units include a plurality of computational units 250 (illustrated as computational elements 250A through 250Z). As illustrated in FIG. 2, matrix 150 generally includes a matrix controller 230 and plurality of computation (or computational) units 200 as logical or conceptual subsets or portions of a matrix interconnect network. Also shown are data interconnect network 240 and Boolean interconnect network 210. Interconnect networks can have different levels of interconnectivity and flexibility for greater levels of adaptability and adaptation. In an applied architecture, the matrix represented by FIG. 2 is replicated within a single chip, or chipset, and interconnected with each other to provide a scalable approach to providing processing resources. A network interconnecting matrices (not shown) is referred to as a matrix interconnection network.
Boolean interconnect network 210 provides adaptation and data interconnection capability between and among the various computation units 200, and is preferably small (i.e., only a few bits wide). Data interconnect network 240 provides the adaptation and data interconnection capability for data input and output between and among the various computation units 200, and is preferably comparatively large (i.e., many bits wide). It should be noted, however, that while conceptually divided into adaptation and data capabilities, any given physical portion of the matrix interconnection network, at any given time, may be operating as either the Boolean interconnect network 210, the data interconnect network 240, the lowest level interconnect 220 (between and among the various computational elements 250), or other input, output, or connection functionality.
Continuing to refer to FIG. 2, included within a computation unit 200 are a plurality of computational elements 250, illustrated as computational elements 250A through 250Z (individually and collectively referred to as computational elements 250), and additional interconnect 220. The interconnect 220 provides the adaptable interconnection capability and input/output paths between and among the various computational elements 250. As indicated above, each of the various computational elements 250 consist of dedicated, application specific hardware designed to perform a given task or range of tasks, resulting in a plurality of different, fixed computational elements 250. Utilizing the interconnect 220, the fixed computational elements 250 may be adaptably connected together into adaptive and varied computational units 200, which also may be further adapted and interconnected, to execute an algorithm or other function, at any given time, utilizing the interconnect 220, the Boolean network 210, and the matrix interconnection network (not shown).
In a preferred embodiment, the various computational elements 250 are designed and grouped together, into various adaptive and adaptable computation units 200. In addition to computational elements 250 which are designed to execute a particular algorithm or function, such as multiplication or addition, other types of computational elements 250 are also utilized. As illustrated in FIG. 2, computational elements 250A and 250B implement memory, to provide local memory elements for any given calculation or processing function (compared to more “remote” or auxiliary memory that can be external to the matrix). In addition, computational elements 250I, 250J, 250K and 250L are adapted to implement finite state machines to provide local processing capability especially suitable for complicated control processing.
With the various types of different computational elements 250 that may be available, depending upon the desired functionality, the computation units 200 may be loosely categorized. A first category of computation units 200 includes computational elements 250 performing linear operations, such as multiplication, addition, finite impulse response filtering, and so on. A second category of computation units 200 includes computational units 250 performing non-linear operations, such as discrete cosine transformation, trigonometric calculations, and complex multiplications. A third type of computation unit 200 implements a finite state machine, such as computation unit 200C as illustrated in FIG. 2, particularly useful for complicated control sequences, dynamic scheduling, and input/output management, while a fourth type may implement memory and memory management, such as computation unit 200A. Lastly, a fifth type of computation unit 200 may be included to perform bit-level manipulation, such as for encryption, decryption, channel coding, Viterbi decoding, and packet and protocol processing (such as Internet Protocol processing).
In addition to the ways of determining functionality for general-purpose processing devices, as described above, the functionality of a device using the ACE architecture can be determined by adaptation information that is used to schedule operations on the computation units. Usage information can include the availability, types and frequency of use of different computation units. Adaptation of the interconnect network, number of active computation units over time, rate of execution of operations, etc., can all be used as usage parameters.
The present invention provides for the devices to be adapted at any point based upon a parameter such as location or time. Note that such an approach provides advantages in quickly meeting consumer demand for specific types of devices. For example, if demand for TDMA cellular phones suddenly increases. The devices can merely be adapted as TDMA devices anywhere in the various entities of FIG. 1.
Naturally, the adaptation information can be transferred to a location prior to, or in the absence of, actual devices being present at the location. The adaptation information can be stored and used at a later time.
A key feature of the present invention is providing a hardware device that can be changed based upon a particular parameter such as time and location. In so doing, a provider of the hardware device can provide a more adaptable component which provides more value to the provider. Indeed, it is possible to give away the hardware upfront or even give an incentive to a receiver of the hardware and thereby use the device in a variety of ways. To describe the features of the present invention in more detail, refer to the following description in conjunction with the accompanying drawings.
FIG. 3 illustrates a system for providing an adaptive hardware device 300 that can be changed based upon location and time. As is seen, a source 302 provides a data stream 306 to the device. The device 300 has a location in its memory 304 which receives a crypto algorithm 308 as part of that data stream. That crypto algorithm 308 can, for example, be limited in time, limited in a number of operations, limited in distance, or have other types of limitations to provide a potential revenue stream to the provider. Through the use of the crypto algorithm only devices that are authorized can receive the particular configuration. Through the use of this type of system in conjunction with the ACE architecture, an adaptable device can be provided. This concept can be extended to other applications which will be described hereinbelow.
Distributed Network
FIG. 4 shows a plurality of mobile devices 400a-400d, each of which includes an ACE architecture. Each of the mobile devices 400a-400d can receive the data stream 406 from a source 402. Each of the devices can receive the data from the source 402, but they also each include an adaptive self-caching mechanism which would allow each of them to receive information from each other. Hence, for example, it would likely be possible that a particular local mobile device 400 had some or all of the information from the source. One of the other mobile devices 400a-400c could obtain that information directly from that mobile device 400a rather than having to receive the stream from the source 402.
Since the mobile devices are closer to each other than to the source, this would allow for quicker downloads than having to go to the source. In addition, it is also possible that each of the devices has separate pieces of the overall information, so that once again a local device could determine based on the other devices what pieces of information that it needed were locally provided and then what pieces of information they would need to get from the source and connect all of those pieces together.
These devices could receive information from one stream or a plurality of streams and would be advantageously used in a variety of environments. For example, a sporting event where a plurality of these devices are present would allow for information to be provided related to advertisements, etc., that a particular vendor or vendors associated with that sporting event or entertainment event would provide. Accordingly, an individual entering a location near such an event or activity could receive an almost infinite amount of data streams based upon the particular demographic, the particular location, the particular time that the individual is within that particular environment. Accordingly, an adaptive device is provided which has significant utility for a variety of applications.
Multiple Communication Protocols
This could be used in an environment where there are multiple communication protocols in which the multimode multiband receiver can receive the signals. In a conventional receiver, if there are multiple communication protocols, there would be separate signals which are provided to separate chips, such as shown in FIG. 5. FIG. 5 is a block diagram of a conventional multimode multi-band receiver 500 in which there are a plurality of RF signals and a plurality of chips/integrated circuits associated with the signals. For example, in this device, there is an integrated circuit 502a for receiving an 802.1b signal, an integrated circuit 502b for receiving 802.1a signals, an integrated circuit 502c for receiving a GPR3 signal, and finally an integrated circuit 502d for receiving a Com2 signal. Each of these integrated circuits would require time and effort to design and produce.
FIG. 6 illustrates a multimode multi-band receiver 600 in accordance with the present invention. The receiver 600 handles the same protocols as those of FIG. 5. Utilizing an ACE architecture 604, multiple communication protocols can be provided to that ACE architecture and the data streams associated with the particular communication protocols 602a-602d that are desired and can be used therein. Thereby there is a self-selecting mechanism that can be utilized that is based upon a particular set of information being provided to the device.
A key feature of the present invention is providing a hardware device that can be changed based upon a particular parameter such as time and location. In so doing, a provider of the hardware device can provide a more adaptable component which provides more value to the provider. Indeed, it is possible to give away the hardware upfront or even give an incentive to a receiver of the hardware and thereby use the device in a variety of ways.
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 method for adapting a configurable device, the configurable device comprising an interconnection network coupled to a plurality of heterogeneous computational units each including a plurality of computational elements, the method comprising:
determining whether the configurable device is to be adapted via the interconnection network changing interconnections between a selected plurality of computational elements of the plurality of heterogeneous computational units to perform a second function different from the first function based upon at least one parameter, the at least one parameter comprising at least one of a time of day parameter and a demographic parameter, the configurable device previously configured to perform a first function via changing interconnections of the interconnection network between selected computational elements of the plurality of computational units in response to adaptation information, wherein the plurality of heterogeneous computational units are hardware components and at least one of the plurality of heterogeneous computational units differs from another one of the plurality of computational units; and
when the configurable device is to be adapted, providing a data stream to the configurable device, the data stream comprising adaptation information to configure the configurable device to perform the second function different from the first function by changing interconnections between selected computational elements of the plurality of heterogeneous computational units.

2. The method of claim 1 wherein the determining whether the configurable device is to be adapted is based upon a second parameter in addition to the at least one parameter.

3. The method of claim 1 wherein data stream includes authorization information including a crypto-algorithm which authorizes the device to receive the data stream.

4. The method of claim 3 wherein the crypto algorithm is based upon at least one limitation, the at least one limitation comprising at least one of time, number of operations, geographic distance, and geographic location.

5. The method of claim 1, wherein the configurable device is a telephone, the at least one parameter comprises the time of day parameter, and the configurable device is configured to change from a first communication standard to a second communication standard.

6. The method of claim 1, wherein the selected parameter is a demographic parameter, and the configurable device is configured to receive advertising information targeted to the demographic parameter.

7. A distributed network comprising:
a source for providing a data stream with adaptation information;
a plurality of adaptable devices for receiving the data stream from the source;
each of the plurality of adaptable devices including an adaptive computing circuit including an interconnection network coupled to a plurality of heterogeneous hardware computational units each including a plurality of computational elements, at least one of the computational units differing from another one of the computational units, the adaptive computing circuit previously configured to perform a first function via changing interconnections between selected computational elements of the plurality of heterogeneous computational units in response to adaptation information; and
wherein the adaptive computing circuit is configured to perform a second function different from the first function based upon at least one parameter, the at least one parameter comprising at least one of a time of day parameter and a demographic parameter, the adaptive computing circuit configured to perform the second function by changing interconnections between selected computational elements of the plurality of heterogeneous computational units in response to the adaptation information.

8. The distributed network of claim 7 wherein the corresponding device to be changed is based on a second parameter from the plurality of parameters in addition to the at least one parameter.

9. The distributed network of claim 7 wherein the data stream further comprises a crypto algorithm which authorizes the device to receive the data stream.

10. The distributed network of claim 9 wherein the crypto algorithm is based on at least one limitation of a plurality of limitations, the plurality of limitations comprising at least one of time, number of operations and geographic location of the device.

11. A method for adapting a configurable device, the configurable device comprising an interconnection network coupled to a plurality of heterogeneous computational units, each including a plurality of computational elements, the method comprising:
determining whether the configurable device is to be adapted via the interconnection network changing interconnections between a selected plurality of computational elements of the plurality of heterogeneous computational units to perform a second function different from a first function based upon a time of day parameter, the configurable device previously configured to perform the first function based on changing interconnections of the interconnection network between selected computational elements of the plurality of heterogeneous computational units in response to adaptation information, wherein the plurality of heterogeneous computational units are hardware components and wherein at least one of the computational units differs from another one of the computational units; and
when the configurable device is to be configured to perform the second function, providing a data stream to the configurable device, the data stream comprising adaptation information to adapt the configurable device to perform the second function different from the first function by changing interconnections between selected computational elements of the plurality of heterogeneous computational units.

12. The method of claim 11, wherein the configurable device is a telephone configured to change from a first communication standard to a second communication standard.

13. The method of claim 11 wherein data stream includes authorization information including a crypto-algorithm which authorizes the device to receive the data stream.

14. A method for adapting a configurable device, the configurable device comprising an interconnection network coupled to a plurality of heterogeneous computational units each including a plurality of computational elements, the method comprising:
determining whether the configurable device is to be adapted via the interconnection network changing interconnections between a selected plurality of computational elements of the plurality of heterogeneous computational units to perform a second function different from a first function based upon a demographics parameter, the configurable device previously configured to perform the first function by changing interconnections of the interconnection network between selected computational elements of the plurality of heterogeneous computational units in response to adaptation information, wherein the plurality of computational units are hardware components and at least one of the computational units differs from another one of the computational units; and
when the configurable device is to be configured to perform the second function, providing a data stream to the configurable device, the data stream comprising adaptation information to adapt the configurable device to perform the second function different from the first function by changing interconnections between selected computational elements of the plurality of heterogeneous computational units.

15. The method of claim 14, wherein the configurable device is configured to receive advertising information targeted to the demographic parameter.

16. The method of claim 14 wherein data stream includes authorization information including a crypto-algorithm which authorizes the device to receive the data stream.