Wireless chips and other integrated circuits often include functions with analog characteristics subject to variation due to process spread, changes in ambient conditions (e.g. temperature), and changes in electrical conditions (e.g. supply voltage). For example, filters, in-phase/quadrature phase mismatch compensation circuits, bias circuits, and others may not be able to operate properly over the range of values produced by some processes. In some instances, the peripheral circuits around the integrated circuits may be designed to tolerate large parameter spreads. However, by designing the peripheral circuits to tolerate specified parameter spreads, performance of the peripheral circuits can increase unnecessarily and result in higher current consumption of the integrated circuit. Additionally, the cost to produce the required peripheral circuits may be relatively high. In other instances, parameter spreads can be reduced by on-chip calibration circuits. For example, integrated circuit manufacturers may limit the range of certain critical parameters by writing compensation values into electrical fuses or flash memory of the integrated circuit. However, on-chip calibration circuits may be inaccurate, increase die area of the integrated circuit, increase power consumption, produce timing issues, and/or provide unwanted interference.
The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different instances in the description and the figures may indicate similar or identical items.
Disclosed herein are techniques to provide calibration data of an integrated circuit without storing the calibration data on the integrated circuit. Storing the calibration data off-chip may be cost-saving because less die area is utilized. Additionally, by storing calibration data off-chip less writing time is needed during chip production testing because the calibration data does not need to be written onto the integrated circuit.
According to one implementation, a computing device comprises a network interface, processing logic, and memory accessible to the processing logic. The memory includes a calibration data module configured to receive calibration data of an integrated circuit of the computing device from a server coupled to a remote database via the network interface. The calibration data module is also configured to store the calibration data in the memory of the computing device and calibrate the integrated circuit based on the calibration data.
According to another implementation, a method comprises incorporating an integrated circuit into a computing device and retrieving an identifier of the integrated circuit. The method also comprises accessing calibration data of the integrated circuit from a computer-readable storage medium based on the identifier, where the computer-readable storage medium is separate from the computing device and separate from the integrated circuit. In addition, the method comprises writing the calibration data to memory of the computing device.
According to still another implementation, one or more computer-readable storage media comprise computer executable instructions that, when executed by a computer, perform acts comprising generating calibration data for an integrated circuit and writing a unique identifier to the integrated circuit. Additionally, the one or more computer-readable storage media comprise computer executable instructions that, when executed by the computer, perform further acts comprising storing calibration data on an additional computer-readable storage medium in association with the unique identifier, where the additional computer-readable storage medium is separate from the integrated circuit.
The integrated circuit 102 includes a number of semiconductor devices to perform functions during operation of a computing device, such as the computing device 106. The computing device 106 may be a personal computer, a laptop computer, a personal digital assistant (PDA), a portable gaming device, a wireless communication device, such as a smart phone or mobile handset, a set-top-box, a game console, a portable music player, another consumer electronic device, any other device including an integrated circuit, or any combination thereof. An integrated circuit manufacturer may send the integrated circuit 102 to a computing device manufacturer that incorporates the integrated circuit 102 into the computing device 106. For example, an integrated circuit manufacturer may provide a radio frequency transceiver integrated circuit to a smart phone or mobile handset manufacturer that incorporates the particular integrated circuit into the smart phone or mobile handset.
In some instances, the integrated circuit 102 may be associated with calibration data 108 that includes numeric data, such as compensation values to regulate certain parameters of the integrated circuit 102. In other instances, the calibration data 108 may include software instructions executable by a processor of the computing device 106 to maintain operating conditions of the computing device 106 such that process spread is within specified limits. The manufacturer of the integrated circuit 102 may obtain the calibration data 108 during testing of a wafer including the integrated circuit or in chip back-end testing. In some instances, the calibration data 108 may be unique for each integrated circuit sample tested.
After obtaining the calibration data 108, the manufacturer of the integrated circuit 102 may write the calibration data 108 to a computer-readable storage medium 110. In an illustrative embodiment, the computer-readable storage medium 110 may be a stand-alone portable memory device, such as a compact disc or a flash memory stick. Thus, the manufacturer of the integrated circuit 102 can provide the computer-readable storage medium 110 to the manufacturer of the computing device 106 upon purchase of the integrated circuit 102. The manufacturer of the computing device 106 can then download the calibration data 108 from the computer-readable storage medium 110 and write the calibration data 108 to memory of the computing device 106.
In another illustrative embodiment, the computer-readable storage medium 110 may include one or more fixed storage devices, such as a hard disk drive, volatile memory, such as random access memory (RAM), nonvolatile memory, such as read-only memory (ROM), removable memory, and/or non-removable memory, EEPROM, flash memory, optical storage devices, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the calibration data 108. In this illustrative embodiment, the computer-readable storage medium 110 may be included in a database maintained by the manufacturer of the integrated circuit 102, by the manufacturer of the computing device 106, by a third-party entity, or a combination thereof. A database including the computer-readable storage medium 110 may be accessible via a network. In one example, the calibration data 108 may be retrieved from the computer-readable storage medium 110 via the network by the manufacturer of the computing device 106 and subsequently written to memory of the computing device 106 to facilitate proper operation of the computing device 106. In another example, the manufacturer of the integrated circuit 102 may access the calibration data 108 for quality control purposes, such as fault analysis reporting, for generating additional calibration data for the integrated circuit 102 or for other integrated circuits, to determine testing parameters of other integrated circuits, or a combination thereof.
In yet another illustrative embodiment, the computing device 106 may directly access a database including the computer-readable storage medium 110 to retrieve the calibration data 108 via a network. For example, the manufacturer of the computing device 106 may initially write the calibration data 108 to RAM of the computing device 106 and the calibration data 108 may be removed from the RAM when the computing device 106 is turned off or upon loss of power to the memory of the computing device 106. In this example, a start-up procedure of the computing device 106 may include downloading the calibration data 108 from a remote database including the computer-readable storage medium 110. In another example, the manufacturer of the computing device 106 may write the calibration data 108 to ROM of the computing device 106. In this example, the computing device 106 may receive additional calibration data or a different version of the calibration data 108 from a remote database as an update. The computing device 106 may subsequently write the newly received calibration data to the ROM of the computing device 106 in addition to the calibration data 108 already stored in the ROM or overwrite the calibration data 108 with the updated calibration data. Thus, in either example, where the calibration data 108 is written to RAM or ROM of the computing device 106, an older version of calibration data may be replaced by an updated version. The updated version may be provided by the manufacturer of the integrated circuit 102, the manufacturer of the computing device 106, or a combination thereof.
The computing device 106 includes a network interface 210 and one or more input/output devices 212. The network interface 210 is configured to facilitate communications between the remote database 202 and the computing device 106 via the network 206. Additionally, the input/output devices 212 may include a keypad, a cursor control device, such as a mouse pad or thumb stick, a display, a touch screen display device, a microphone, a speaker, or a combination thereof. The computing device 106 also includes processing logic 214, such as one or more processors, and memory 216. The memory 216 may be accessible to the processing logic 214 and may include volatile and non-volatile storage media, such as random access memory (RAM) and read-only memory (ROM), flash memory, one or more hard disk drives, optical storage devices, or a combination thereof. The memory 216 may also include instructions embodied in one or more computer-readable software programs and/or hardware logic to facilitate operation of the computing device 106, such as a Web browsing application and/or an operating system among others.
In a particular embodiment, the memory 216 includes a calibration data module 218 implemented as software and/or hardware executable by the processing logic 214. The calibration data module 218 is configured to receive calibration data of an integrated circuit of the computing device from the remote database 204 via the network interface 210 and store the calibration data 202 in the memory 214. The calibration data may be stored in random access memory of the computing device 106, read-only memory of the computing device 106, flash memory of the computing device 106, in other storage devices of the computing device 106, or a combination thereof. The calibration data module 218 is also configured to calibrate one or more integrated circuits of the computing device 106 based on the calibration data 202.
In an illustrative embodiment, the calibration data module 218 is configured to send a request to the remote database 204 for the calibration data 202. For example, the computing device 106 may store calibration data in RAM and send a request for the calibration data 202 during a start-up procedure or in response to a loss of power at the memory 216. The request may include identifiers of one or more integrated circuits of the computing device 106, such as the identifier 104 of the integrated circuit 102 in
In another example, the calibration data module 218 is configured to send a calibration data request to the remote database 204 in response to improper operation of the computing device 106. To illustrate, the memory 216 may include error correction software to detect errors in the operation of the computing device 106. If the error correction software determines that the error may relate to improper operation of particular integrated circuits, the calibration data module 218 may be invoked to send a calibration data request to the remote database 204 to retrieve calibration data associated with the particular integrated circuits. In still another example, the calibration data module 218 may be configured to send a calibration data request to the remote database 204 in response to input by a user of the computing device 106. To illustrate, a user of the computing device 106 may utilize the input/output devices 212 to send a calibration data request to the remote database 204 when the user observes an error in operation of the computing device 106 or when the computing device 106 alerts the user that certain errors have occurred with respect to operation of the computing device 106.
In another illustrative embodiment, the server 208 may initiate communication with the computing device 106 to send the calibration data 202 to the computing device 106. For example, the server 208 may determine that updated calibration data associated with one or more integrated circuits of the computing device 106 has been stored at the remote database 204. Consequently, the server 208 may retrieve the corresponding calibration data from the remote database 204 and send the calibration data 202 to the computing device 106. In an illustrative, non-limiting embodiment, the calibration data 202 may be included in a larger set of information associated with the computing device 106, such as a software patch or other configuration data that is sent from the remote database 204.
After the computing device 106 receives the calibration data 202 from the remote database 204, the calibration data module 218 may be configured to store the calibration data 202 in the memory 216, such as RAM or ROM. In some instances, the calibration data module 218 is configured to overwrite existing calibration data stored in the memory 216 with the calibration data 202. In other instances, the calibration data 202 serves as an update to calibration data already stored in the memory 216. The calibration data module 218 may then be configured to calibrate the one or more integrated circuits of the computing device 106 associated with the calibration data 202.
At 406, calibration data of the integrated circuit is accessed from a computer-readable storage medium based on the identifier. The computer-readable storage medium is separate from the computing device and separate from the integrated circuit. To illustrate, the calibration data may be accessed from a compact disc, flash memory stick, or other portable storage medium provided to a manufacturer of the computing device by the manufacturer of the integrated circuit. The calibration data may also be accessed from a computer-readable storage medium that is included in a database coupled to a remote server. For example, a manufacturer of the computing device may access the calibration data stored on a remote database via a website provided by the manufacturer of the integrated circuit. After retrieving the calibration data from the remote database, a manufacturer of the computing device may store the calibration data at a computer or database located in a facility operated by the manufacturer of the computing device.
At 408, the calibration data is written to memory of the computing device. For example, the calibration data may be written to RAM or ROM of the computing device. In this way, the calibration data may be accessed by the computing device to calibrate the integrated circuit and facilitate proper operation of the integrated circuit. The calibration data may also be customized by the manufacturer of the computing device before writing the calibration data to the memory of the computing device. For example, the calibration data may be modified based on process spreads or other operating conditions, such as providing a particular supply voltage, that may occur during operation of the computing device.
Conclusion
For the purposes of this disclosure and the claims that follow, the terms “coupled” and “connected” have been used to describe how various elements interface. Such described interfacing of various elements may be either direct or indirect. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as preferred forms of implementing the claims. The specific features and acts described herein and variations of these specific features and acts may be implemented separately or may be combined.