Electronic devices, such as mobile handsets for example, include chips sets that include a number of different hardware modules having associated features. For example, features included in some mobile handsets may correspond to digital cameras, PC processors, graphics or sound cards, application processors, connectivity blocks (e.g., FM-radio, Galileo or GLONASS, Bluetooth), memory devices, power management blocks, clock generation blocks, and/or even analog or mixed signal functionality. To provide differentiated products, manufacturers often disable some of these features, in whole or in part, prior to distributing the chip sets to customers. This allows manufacturers to realize economies of scale by manufacturing a single chip set for many different product lines, and selling the different product lines at different price points depending on the particular features that are enabled.
Despite the wide deployment of such differentiable chip sets, until now enabling/disabling of chip features has been a rigid process carried out solely by the manufacturer. In this rigid process, the manufacturer projects quantities of chips required for its various product lines, enables the corresponding features on the chips, and distributes the resultant chips to its distributors and/or end customers accordingly. This rigidity limits the ability of distributors to adapt to dynamic changes in end customer preferences, and could leave distributors with a large inventory of unwanted products. For example, if a state or county government outlaws digital cameras on mobile phones due to privacy concerns, phone vendors in the state or county could be stuck with a large inventory of “camera phones” that they are unable to sell. Individual end customers could also be stuck with camera phones that now, in effect, have limited utility for them. In view of these shortcomings, the inventors have devised improved chip customization techniques as set forth herein.
One or more implementations of the present invention will now be described with reference to the attached drawings, wherein like reference numerals are used to refer to like elements throughout. The drawings are not necessarily drawn to scale.
In contrast to conventional enabling/disabling techniques that are rigidly carried out solely by the manufacturer, aspects of the present disclosure provide flexible techniques by which a customer may selectively disable unwanted hardware, software, or content features, and subsequently apply for a refund corresponding to the disabled feature. These techniques may be value-added for a customer because they allow a customer to flexibly change inventory or individual products to account for market shifts or changes in personal preferences. In addition, these techniques may also be value-added for the manufacturer because the refund request may give the manufacturer some real-time data regarding market conditions and customer preferences in an efficient manner.
After receiving the electronic device, the customer determines that he or she no longer desires the feature and, hence, disables the feature at 104.
At 106, after the customer has disabled the feature, the customer reads the secret number stored in the electronic device. Prior to the feature being disabled, the customer was unable to read the secret number from the electronic device.
At 108, the customer makes a refund request for the feature that has now been disabled. To ensure that the refund request is proper (e.g., that the feature has, in fact, been disabled), the customer provides the secret number to the manufacturer, often along with a device or chip identification number that identifies the electronic device. Thus, because the customer is able to provide the secret number (which is unreadable unless the customer has disabled the feature), the manufacturer is assured that the requested refund is, in fact, proper. So long as the refund request is proper, the manufacturer may issue the refund to the customer.
FIG. 1's methodology and other techniques disclosed herein may be applied to a broad variety of product features, a few examples of which are now described. It will be appreciated that these examples are in no way limiting, but rather they are provided merely to set forth a few ways in which the disabling techniques may be used. In some embodiments, the disabled feature may relate to chipsets for digital cameras. For example, the entire camera chipset may be disabled, specific camera resolutions may be disabled, video and/or video resolutions may be disabled, and/or any image post processing features may be disabled. For PC processors, certain clock frequencies may be disabled. For graphics or sound chipsets, 3D graphics capabilities, graphics resolutions, surround sound capabilities, and/or video outputs may be disabled. For application processors, nearly all features may be disabled, individually or as a whole. For communications connections, FM-radio, Galileo or GLONASS standards, and/or Bluetooth connectivity may be disabled. For memory devices, entire memory arrays or parts of memory arrays may be disabled (e.g., a 128 megabit (Mb) flash chip may be reconfigured to a 96 Mb, 64 Mb, or 32 Mb device). The disabling functionality may also be used for power management chip, clock generation chips, data converters, and even analog or mixed-signal chips.
A trusted element 208, such as an OTP element, memory element, or other stateful element for example, stores a secret value 210 therein. Secret value 210 may correspond to a random or pseudorandom value known only to the manufacturer, and may be a single-bit or multi-bit digital value.
A security circuit 212 has respective inputs 212A, 212B coupled to enabling element 206 and trusted element 208, respectively, and has an output terminal 212C coupled to a customer read interface 214. Based on the state of enabling element 206, security circuit 212 may selectively prevent or allow reading of secret value 210 stored in trusted element 208. Thus, so long as the feature is enabled via enabling element 206, security circuit 212 may prevent a customer from reading secret value 210 via customer read interface 214. After the feature has been disabled (by changing the state of enabling element 206), security circuit 212 allows the customer to read secret value 210 via customer read interface 214.
To request a refund after the feature has been disabled, the customer may provide secret value 210 (along with a device or chip ID 216) to the manufacturer. Upon receiving the refund request, the manufacturer may lookup the device or chip ID, and verify whether secret value 210 for the disabled feature is the correct value. In this way, electronic device 200 allows customers to selectively disable features after having received the electronic device, and allows a manufacturer to provide refunds to customers who are able to demonstrate that they have disabled the one or more features by providing the corresponding secret value(s).
Security circuit 212 may take many different forms, depending on the particular implementation. For example, if secret value 210 is a single bit, security circuit 212 may be a single transistor (e.g., n-type transistor) whose gate is coupled to enabling element 206 and whose source and drain are coupled to trusted element 208 and customer read interface 214, respectively. In this case, if enabling element 206 is set to a logical “1”, the single (e.g., n-type) transistor couples trusted element 208 (and thus secret value 210) to customer read interface 214. On the other hand, if enabling element 206 is set to a logical “0”, the channel of the single (e.g., n-type) transistor is in a high-impedance state to prevent trusted element 208 (and thus secret value 210) from being read at customer read interface 214. In other examples, security circuit 212 may be a single p-type transistor, multiple transistors, a digital logic circuit, a state machine, or an analog circuit.
Turning now to
Like FIG. 2's electronic device 200, FIG. 3's electronic device 300 also includes a hardware module 310, an enabling element 312, and a trusted element 314. In FIG. 3's example, the enabling and trusted elements 312, 314 are implemented as one-time programmable (OTP) elements (e.g., fuses, anti-fuses, poly-fuses, laser fuses, non-volatile memory cells with appropriate logic). Compared to multi-time programmable elements (e.g., registers or random access memory), OTP elements offer an additional layer of security in that OTP elements assure that customers who disable a function, for example by blowing a fuse on chip, are unable to re-enable the function at a later time. Electronic device 300 also includes a verification OTP element 316, which may be set after verification of the electronic device is complete at the manufacturer.
In the exemplary electronic device 300 of
It will be appreciated that, although
While device 600 is in final testing at a manufacturer, verification element 602 may be in a first state (e.g., un-blown state), which may allow the manufacturer to read respective secret values from respective trusted elements. Prior to providing the device to a customer, the manufacturer may change the state of the verification element (e.g., to a blown state), which may induce a change in the security circuits (e.g., 212a, 212b) to prevent accurate readout of the secret values stored in the trusted elements (e.g., 208a, 208b).
Device 600 is then shipped to a customer with the one or more of the features enabled. If the customer determines he or she no longer desires a feature, the customer may change the state of the corresponding enabling element via customer write interface 218. At this point, the secret value associated with that feature is readable, however the secret values for any still enabled features are still unreadable. Hence, the customer may request a refund for the disabled features, and the manufacturer has assurances that the customer has actually disabled the feature and is entitled to the corresponding refund. If multiple features are included on the device, there may also be a separate identification number for each feature, thereby providing differentiated refund levels for the features on each device.
It will be appreciated that customer read and write interfaces 214, 218 may take a number of different forms, depending on the implementation. For example, customer read and write interfaces 214, 218 may be accessed via a graphical user interface (GUI), such as an LCD or LED screen, on the electronic device itself. In other embodiments, customer read and write interfaces 214, 218 may be accessed via a web-interface. In many of these embodiments, the electronic device will include current or voltage sources to change the state of an OTP element (e.g., to blow a fuse or anti-fuse), based on user input entered through customer write interface 218. Further, customer read or write interfaces 214, 218 may be a hardware port that is more easily accessed by a manufacturer or OEM (e.g., via an IC tester), which may make the feature disabling techniques more well-suited for OEMs compared to individual end customers. All such variations are contemplated as falling within the scope of the present disclosure.
There may be one or more OTP elements that simultaneously disable all features on the entire device. One may think of this as a type of “e-waste” management procedure, where a customer wants to dispose of the electronic device and prevent others from accessing any sensitive personal or business information in the electronic device. This could be achieved by the customer changing the state of one or more OTP elements, which could disable all features on the electronic device, and also possibly prevent reading of any data from the electronic device.
At 702, prior to distributing the memory sticks to the commercial customer, the manufacturer (or other OEM who, for example, loads the movie into the memory sticks), may assign and read the secret values associated with the enabled movies for the devices. The manufacturer may use a manufacturing tool, such as an IC tester, to assign/program secret values into the chip, or circuitry on the chip itself (e.g., BIST circuitry) may assign/program the secret values (e.g., random or pseudo-random values) into the chip. Whatever the case, the manufacturer or OEM may read and tabulate the secret values and the corresponding device or chip IDs, and may then ship the batch of devices to the customer. Just prior to shipping, the manufacturer enables a security feature on the each memory stick (e.g., by blowing a verification element 316—
When the customer initially receives the devices at 704, the feature (e.g., movie content) is enabled on the devices. Hence, all individuals who purchase devices from the customer at this time have the functionality enabled and are capable of viewing the movie content for their devices in this example. So long as the feature is enabled on a given device, the secret number corresponding to the feature on that device is unable to be read.
Subsequently, the customer may determine that it wants to disable the feature, for example if the movie isn't selling well or is otherwise of no further use. When the customer disables the feature for the remaining unsold devices at 706, it may create a table of values that lists the device or chip IDs along with corresponding secret numbers for the now disabled features. The customer provides this tabulated data to the manufacturer, who then verifies that the device or chip IDs and secret numbers are correct in block 708.
For the disabled features that are correctly verified, the manufacturer may send the customer a refund in 710. In the example of
In some embodiments, these disabling techniques may be used in conjunction with a feature enabling mechanism. In such embodiments, the OTP memory elements may be replaced with non-volatile memory cells to allow the re-activation of features or there can be multiple levels of fuses. This would effectively allow a customer to “rent” a feature. In such cases, an integrated trusted module may, upon a request for reactivation of a feature, re-program new secret numbers into a trusted element so long as the customer is able to input some additional secret information provided by the manufacturer to re-activate the feature. This additional secret information from the manufacturer may provide the manufacturer with some assurances that the features are not re-enabled without the customer re-paying for the feature. The re-activated feature could then be subsequently deactivated by the customer (requiring the customer to read the new secret numbers from the trusted element which was previously unreadable to the customer, if the customer requires a re-fund), and so on.
Processing unit 904 and memory 906 work in coordinated fashion along with a transmitter and/or receiver 914 to wirelessly communicate with other devices. To facilitate this wireless communication, a wireless antenna 916 is coupled to transmitter/receiver 914. During wireless communication, transmitter/receiver 914 may use frequency modulation, amplitude modulation, phase modulation, and/or combinations thereof to communicate signals to another wireless device, such as a base station for example. The previously described high resolution phase alignment techniques are often implemented in processor 904 and/or transmitter/receiver 914 (possibly in conjunction with memory 906 and software/firmware 908) to facilitate accurate data communication. However, the high resolution phase alignment techniques could also be used in other parts of the mobile communication device.
To improve a user's interaction with mobile communication device 902, mobile communication device 902 may also include a number of interfaces that allow mobile communication device 902 to exchange information with the external environment. These interfaces may include one or more user interface(s) 918, and one or more device interface(s) 920, among others.
If present, user interface 918 may include any number of user inputs 922 that allow a user to input information into mobile communication device 902, and may also include any number of user outputs 924 that allow a user to receive information from mobile communication device 902. In some mobile phone embodiments, the user inputs 922 may include an audio input 926 (e.g., a microphone) and/or a tactile input 928 (e.g., push buttons and/or a keyboard). In some mobile phone embodiments, the user outputs 924 may include an audio output 930 (e.g., a speaker), a visual output 932 (e.g., an LCD or LED screen), and/or tactile output 934 (e.g., a vibrating buzzer), among others.
Device interface 920 allows mobile communication device 902 to communicate with other electronic devices. Device interface 920 may include, but is not limited to, a modem, a Network Interface Card (NIC), an integrated network interface, a radio frequency transmitter/receiver, an infrared port, a USB connection, or other interfaces for connecting mobile communication device 902 to other mobile communication devices. Device connection(s) 920 may include a wired connection or a wireless connection. Device connection(s) 920 may transmit and/or receive communication media.
To allow customers to customize what features are enabled/disabled, mobile communication device 902 also includes a security circuit 936 as previously described. Thus, security circuit 936 can selectively allow a customer to read a secret value 938 stored in mobile communication device 902, based on a state(s) of OTP elements 940. If a feature on mobile communication device 902 is enabled, security circuit 936 prevents a customer from reading secret value 938. However, when the feature is disabled, security circuit 936 can then allow the user to read secret value 938 via device interface 920 and/or user interface 918, for example. Secret value 938 can be stored in dedicated memory elements, such as fuses, but can also be stored in memory 906 depending on the implementation.
A mobile handset 1010 (e.g., mobile communication device 902) or other mobile device that allows a customer to perform chip functionality customization, while residing within a given cell, may establish communication with the base station within that cell via one or more of frequency channels used for communication in that cell. The communication between a mobile handset or other mobile device 1010 and a corresponding base station often proceeds in accordance with an established standard communication protocol, such as LTE, GSM, CDMA or others. When a base station establishes communication with a mobile handset or other mobile device, the base station may establish communication with another external device via the carrier's network 1006, which may then route communication though the phone network.
Those skilled in the art will realize that mobile communication devices such as mobile phones may in many instances upload and download computer readable instructions from a network through the base stations. For example, a mobile handset or other mobile device 1010 accessible via network 1006 may store computer readable instructions to implement one or more embodiments provided herein. The mobile handset or other mobile device 1010 may access a network and download a part or all of the computer readable instructions for execution.
The term “computer readable media” as used herein includes computer storage media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions or other data. Memory (e.g., 906 in
Although the disclosure has been shown and described with respect to one or more implementations, equivalent alterations and modifications will occur to others skilled in the art based upon a reading and understanding of this specification and the annexed drawings. Further, it will be appreciated that identifiers such as “first” and “second” do not imply any type of ordering or placement with respect to other elements; but rather “first” and “second” and other similar identifiers are just generic identifiers. In addition, it will be appreciated that the term “coupled” includes direct and indirect coupling. The disclosure includes all such modifications and alterations and is limited only by the scope of the following claims. In particular regard to the various functions performed by the above described components (e.g., elements and/or resources), the terms used to describe such components are intended to correspond, unless otherwise indicated, to any component which performs the specified function of the described component (e.g., that is functionally equivalent), even though not structurally equivalent to the disclosed structure which performs the function in the herein illustrated exemplary implementations of the disclosure. In addition, while a particular feature of the disclosure may have been disclosed with respect to only one of several implementations, such feature may be combined with one or more other features of the other implementations as may be desired and advantageous for any given or particular application. In addition, the articles “a” and “an” as used in this application and the appended claims are to be construed to mean “one or more”.
Furthermore, to the extent that the terms “includes”, “having”, “has”, “with”, or variants thereof are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising.”