Side Channel Communications

- Microsoft

A side channel communications system disclosed herein includes a receiver device with an internal circuitry where the operational speed of the internal circuitry changes in response to an external signal. When the receiver device receives an external signal, the operational speed of the internal circuitry changes. A detector detects the change in the operational speed of the internal circuitry to generate an output value, which is decoded to determine the information communicated by the external signal. In one implementation of the side channel communications system, the external transmitter communicates the external signal in the form of a temperature signal. Alternatively, the external transmitter communicates the external signal in the form of a change in the supply voltage.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
CROSS REFERENCE TO RELATED APPLICATIONS

This application is related to U.S. patent application Ser. No. ______ [Attorney Docket No. 333381.01], entitled “Intrusion Detection and Communication” and filed concurrently herewith, which is specifically incorporated herein by reference for all that it discloses and teaches. This application takes priority from U.S. Provisional Patent Application No. 61/525,142, entitled “Side-Channel Communications” and filed on Aug. 18, 2011, which is specifically incorporated herein by reference for all that it discloses and teaches.

BACKGROUND

Electronic devices communicate with each other using a number of different methods. For example, integrated circuits (ICs) use input and output pins to communicate with other ICs or other devices. However, given the decreasing size of modern ICs, the number of pins that can be provided on the ICs is limited. For example, a typical microprocessor used in a mobile device, such as an ARM processor, can be as small as one to five square millimeters and include up to forty pins for input and output. In such an implementation, it is difficult to provide additional input and output channels to provide supplemental communications with the microprocessor.

To overcome such limitations on wired communication pins, several ICs use wireless communication components. In such implementations, wireless communication components are provided on the ICs. However, wireless communication methods use sophisticated antennas for generating wireless signals and analog signal processing circuitry. Such analog circuitry can be expensive, difficult to manufacture with reliability, and generally incompatible with other digital circuitry on the ICs. Furthermore, wireless communication methods using electromagnetic waves are sensitive to interference from nearby electronic devices. Such interference can make using wireless communication methods with ICs impractical in some applications.

SUMMARY

Implementations described and claimed herein address the foregoing problems by providing a side channel communications system for communicating with digital circuitry. The side channel communications system includes a receiver device, such as a digital integrated circuit (IC) with an internal circuitry, wherein the operational speed of the internal circuitry changes in response to an external signal. For example, in one implementation, a receiver device is a field-programmable gate array (FPGA) IC where the output frequency of a ring oscillator varies based on the temperature of the IC. An implementation of the side channel communications system can also include an external transmitter including a heat source or a heat sink that generates the external information signal in the form of a temperature signal. When the IC receives a temperature signal that increases the temperature of the IC, the output frequency of the ring oscillator decreases. A detector within the IC detects the change in the output frequency of the ring oscillator to generate an output value. The output value is decoded to determine the information communicated to the IC by the external information signal. In an alternative implementation of the side channel communications system, the external transmitter communicates the external information signal to the IC in the form of a change in the supply voltage and the IC includes an internal circuitry with operational speed that is dependent upon the voltage supplied to the IC or a logic component of the IC. In an alternative implementation of the side channel communications system, the external transmitter communicates the external information signal to the IC or to a logic component of the IC in the form of a change in the ground voltage applied to the IC or to the logic component of the IC.

In some implementations, articles of manufacture are provided as computer program products. One implementation of a computer program product provides a tangible computer program storage medium readable by a computing system and encoding a processor-executable program. Other implementations are also described and recited herein.

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.

Other implementations are also described and recited herein.

BRIEF DESCRIPTIONS OF THE DRAWINGS

FIG. 1 illustrates example data sources and flows for a side channel communications system.

FIG. 2 illustrates alternative example data sources and flows for a side channel communications system.

FIG. 3 illustrates other alternative example data sources and flows for a side channel communications system.

FIG. 4 illustrates example operations for a side channel communications system.

DETAILED DESCRIPTIONS

The side channel communications system disclosed herein allows communicating with a circuit using alternative communication channels. In an implementation of the side channel communication system, a transmitter communicates information to a digital circuit with semiconductor components such as complementary metal-oxide semiconductor (CMOS) components by changing the operating temperature of various components of the digital circuit. For example, the transmitter changes the operating temperature of various components on the digital circuit by directing heat into the digital circuit using a heat source or by extracting heat from the digital circuit by using a heat sink. In one implementation of the side channel communications system, an output parameter of an existing component, such as an output frequency of a ring oscillator implemented using the existing components of the digital circuit, is modulated based on the temperature change induced by the transmitter. Subsequently, a decoder circuit decodes the change in the output frequency of the ring oscillator to determine the information communicated by the transmitter.

In an alternative implementation, the transmitter communicates information to the digital circuit using the voltage supplied to the digital circuit. The change in the supplied voltage causes a change in the operational speed of a circuitry within the digital circuit. A decoder decodes the change in the operating speed to determine the information communicated by the transmitter. As such, the side channel communication system need not use additional input or output pins or wireless circuitry to communicate information with the digital circuit. Furthermore, additional components need not be used to implement the side channel communications system because the side channel communication system uses the existing components of the digital circuit to decode the information communicated by the transmitter. It should be understood however that additional components may be employed in various implementations of the described technology.

FIG. 1 illustrates example data sources and flows for a side channel communications system 100. The side channel communications system 100 includes a receiver device 102 that is configured to receive side channel communications from an external transmitter 104. The receiver device is a digital circuit using various digital components, such as CMOS digital components, field-programmable gate array (FPGA) components, etc. The receiver device 102 is illustrated to have a first internal component 106 communicating with a second internal component 108 using an internal circuitry 110. The operating speed of internal circuitry 110 is a function of a number of parameters, including the temperature of the receiver device 102. Specifically, such operating speed can be influenced by the operating temperature of the section of the receiver device 102 containing the internal circuitry 110.

A signal diagram 120 illustrates the timeline for communications between the first internal component 106 and the second internal component 108. Specifically, the signal diagram 120 illustrates the timing 122 between a signal generation time 124 and a signal receipt time 126. For example, the signal is generated by the first internal component 106 at generation time 124 and it is received by the second internal component 108 at the signal receipt time 126. The timing 122 denotes the delay between the signal generation time 124 and the signal receipt time 126 in the absence of any external signal from the external transmitter 104.

The side channel communications system 100 includes a decoder 130 that evaluates the timing 122 to determine a value of the information 132 communicated from the external transmitter 104 to the receiver device 102. For example, the decoder 130 compares the timing 122 with a timing value stored in a memory of the decoder 130 and if the timing 122 is approximately the same as the value stored in the memory of the decoder 130, the decoder 130 determines that the external transmitter 104 has not communicated any information to the receiver 102. In an alternative implementation, the decoder 130 compares the timing 122 with a timing value stored in a memory of the decoder 130 and if the timing 122 is consistent with the timing value stored in the memory of the decoder 130, the decoder 130 determines that the value of the information 132 communicated by the external transmitter 104 is a “0” bit.

FIG. 1 also illustrates an instance of a side channel communications system 150 where a receiver device 152 is in communication with an external transmitter 154. The receiver device 152 is illustrated to have a first internal component 156 communicating with a second internal component 158 using internal circuitry 160. The operating speed of the internal circuitry 160 is a function of a number of parameters, including the temperature of the receiver device 152. Specifically, such operating speed depends upon the operating temperature of the section of the receiver device 152 where the internal circuitry 160 is located.

The external transmitter 154 communicates with the receiver device 152 using a temperature signal 164. For example, a heat source located within the external transmitter 154 changes its heat output to generate the temperature signal 164 that travels towards the receiver device 152. The temperature signal 164 is a positive signal if the heat output from the external transmitter 154 is increased and a negative signal if the heat output from the external transmitter 154 is decreased. A positive temperature signal 164 causes the temperature of a section of the receiver device 152 to increase. For example, the positive temperature signal 164 causes the temperature of the internal circuitry 160 to increase. Such increased temperature causes an increase in the propagation delay on the internal circuitry 160 or a decrease in the operating speed of the internal circuitry 160. For example, the increased temperature results in decreased mobility of electrons and holes in a transistor within the internal circuitry 160. The increased mobility of the electrons and holes results in a reduction of the current flowing through the internal circuitry 160, in effect increasing the RC delay of the internal circuitry 160 and therefore increasing the propagation delay.

A signal diagram 170 illustrates the timeline for the communication between the first internal component 156 and the second internal component 158. Specifically, the signal diagram 170 illustrates the timing 172 between a signal generation time 174 and a signal receipt time 176. For example, the signal is generated by the first internal component 156 at the signal generation time 174 and it is received by the second internal component 158 at the signal receipt time 176.

The timing 172 denotes the delay between the signal generation time 174 and the signal receipt time 176 in the presence of the temperature signal 164 from the external transmitter 154. In the illustrated implementation, the temperature signal 164 is a positive temperature signal indicating increased heat from the external transmitter 154 causing an increase in the propagation delay on the internal circuitry 160. As a result, the timing 172 in the presence of a positive external signal 164 is greater than the timing 122 when no external signal is received from the external transmitter 104. Thus, in effect, the timing 172 is modulated by the information contained in the temperature signal 164 received from the external transmitter 154. For example, when the temperature signal 164 is negative, indicating a decreased amount of heat from the external transmitter 154, the timing 172 is smaller than the original timing 122. Furthermore, the magnitude of the change in the timing 172 compared to the timing 122 also depends upon the magnitude of the temperature signal 164. Thus, a higher amount of heat cases the timing 172 to increase by a higher amount.

The side channel communications system 150 includes a decoder 180 that evaluates the timing 172 to determine a value of the information 182 communicated from the external transmitter 154 to the receiver device 152. For example, the decoder 180 compares the timing 172 with a timing value stored in a memory of the decoder 180 and if the timing 172 is approximately the same as the value stored in the memory of the decoder 180, the decoder 180 determines that the external transmitter 154 has not communicated any information to the receiver device 152. In an alternative implementation, the decoder 180 compares the timing 172 with a timing value stored in a memory of the decoder 180 and if the timing 172 is approximately same as the value stored in the memory of the decoder 180, the decoder 180 determines that the value of the information 182 communicated by the external transmitter 154 is a “0” bit. Similarly, a value of the difference between the timing 172 and the timing value stored in a memory of the decoder 180 above a threshold indicates a particular information communicated by the external transmitter 154.

In an alternative implementation, the decoder 180 compares the most recent timing 172 received from the receiver device 152 with a previous timing, such as the timing 122. In such an implementation, various past observations of timings, including the previous value of the timing 122, are stored in a local memory of the decoder 180. The decoder 180 generates the information 182 based on the difference between the observed timing value 172 and the stored timing value. Because the magnitude of the change in the propagation delay on the internal circuitry 160 of the receiver device 152 depends upon the magnitude of the change in the temperature of the internal circuitry, the external transmitter 154 is able to communicate information to the receiver device 152 by changing the amount of the heat transmitted to the receiver device 152.

In one implementation, the receiver device 152 periodically communicates the present temperature of the receiver device 152 and/or the present temperature of the internal circuitry 160 to the external transmitter 154. Receiving the present value of the temperature from the receiver device 152 allows the external transmitter 154 to determine how much heat has been actually absorbed by the receiver device 152 so as to allow the external transmitter 154 to determine how to communicate with the receiver device 152 given the present condition of the receiver device 152. Such feedback from the receiver device 152 also allows the external transmitter 154 to calibrate its communications to the receiver device 152 based on changes in the temperature of the receiving device 152 due to changes in the ambient temperature affecting the receiver device 152.

In one implementation the decoder 180 is configured to store a differential change value of the timing on the internal circuitry 160. The decoder 180 calculates the change in the timing between the most recent timing 172 and the timing value stored in the decoder 180, such as the previous timing 122 and compares the observed change in the timing with the differential change value to determine if the observed change in the timing represents any information. For example, if the change in the observed timing as a result of receiving the temperature signal 164 is above a threshold, the decoder 180 determines that particular information is received from the temperature signal 164. However, if the observed change in the timing is below the threshold, the decoder 180 does not construe such change as any information communicated by the external transmitter 154.

In one implementation, the receiver device 152 is further configured to calibrate decoder 180 based on the amount of change in the observed timing value 182 that represents any information communicated from by the external transmitter 154. For example, the amount of change in the observed timing value 172 is also affected by the conditions in the environment of the receiver device 152. The calibration of the decoder 180 compensates the decoder 180 for such environmental conditions, such as an increase in the overall temperature surrounding the receiver device 152, etc. For example, when the overall temperature surrounding the receiver device 152 has increased, a larger value of change in the timing value 172 represents any information communicated by the external transmitter 154.

The decoders 130, 180 are implemented using a logic circuit that receive the timing 122, 172 and compare the received timing 122, 172 to other information such as a threshold value, a previous observation of the timing, a historical value of the timing, etc. For example, the decoders 130, 180 are multiple-input, multiple-output logic circuits that convert inputs into coded outputs. In one implementation, the decoders 130, 180 are configured to store the expected value of the propagation delay between the first internal component 106 and the second internal component 108 at the manufacturing of the receiver devices 102, 152. Subsequently, the decoders 130, 180 generate an output representing a signal communicated by the external transmitters 104, 154 based on the change in the timings 122, 172 as an input and comparing such input with the historical value of the propagation delay saved in the decoders 130, 180.

In one implementation, the external transmitter 154 adjusts the temperature of the receiver device 152 within a range of −15° centigrade to 85° centigrade in increments of 10° centigrades. For example, the receiver device 152 and the external transmitter 154 are configured so that each of the temperature points conveys a particular information. Alternatively, the receiver device 152 and the external transmitter 154 are configured such that the change of temperature from one level to another level conveys a particular information to the receiver device 152. Example implementations of the side channel communications system 100 allows communicating information over a range of −40° centigrade to 100° centigrade with each increment of 0.1° centigrade temperature representing new information. Thus, for example, a change of temperature from 10° centigrade to 10.1° centigrade represents first information whereas a change of temperature from 10° centigrade to 10.2° centigrade represents second information. Similarly, a change of temperature from 10° centigrade to 9.9° centigrade represents third information.

In one implementation, the external transmitter 154 generates the temperature signal 164 by changing the heat generated by a heat source device. In an alternative implementation, the external transmitter 154 generates the temperature signal 164 by changing the heat absorbed by a heat sink device. Other mechanisms for generating a temperature signal 164 include induction heating, compression cooling, etc.

The propagation delay in the internal circuitry 110, 160 is also affected by the voltage supply to the receiver devices 102, 152. Therefore, in an alternative implementation, the external transmitters 104, 154 of a side channel communication systems 100, 150 send information to a receiver devices 102, 152 using the power supply to the receiver devices 102, 152. For example, in the instance of the side channel communication system 150, the external transmitter 154 sends information to the receiver device 152 using a power supply line 190. In such an implementation, the external transmitter 154 is communicatively connected to a power supply 192 via a power supply modulation line 194. The external transmitter 154 sends a modulation signal to the power supply 192 so that the voltage supplied to the receiver device 152 via the power supply line 190 is varied based on the modulation signal from the external transmitter 154. In an alternative implementation, the supply current generated by the power supply 192 is changed in response to the signal received on the power supply modulation line 194. In an alternative implementation, the external transmitter 154 communicates with the receiver device 152 by changing the ground voltage applied to the receiver device 152 or to a logic component of the receiver device 152.

The change in voltage supplied to the receiver device 152 causes a change in the propagation delay on the internal circuitry 160. Such change in the propagation delay is reflected in the timing 172 for a signal communicated from the first internal component 156 to the second internal component 158. Subsequently, the decoder 180 evaluates the timing 172 to determine the information conveyed by the voltage supply modulation signal from the external transmitter 154.

FIG. 2 illustrates alternative example data sources and flows for a side channel communications system 200. Specifically, the side channel communications system 200 includes a receiver device 202 and an external transmitter 204. In one implementation, the receiver device 202 is a FPGA device that is configured to have a number of input/output pins 206 for communicating with other electronic devices, with a communication bus, with a printed circuit board, etc. Because the input/output pins 206 are a limited resource, the external transmitter 204 communicates with the receiver device 202 using side channels such as the temperature of the receiver device, the power supply of the receiver device, etc. Specifically, the external transmitter 204 of the side channel communications system 200 is configured to communicate with the receiver device 202 using a temperature signal 208. For example, the external transmitter 204 includes a heat source that generates heat to generate the temperature signal 208. In an alternative implementation, the external transmitter 204 includes a heat sink that generates the temperature signal 208 by increasing the amount of heat absorbed by the heat sink.

The receiver device 202 is configured to have various components with at least one operating characteristic that is sensitive to the change in the temperature caused by the temperature signal 208. The illustrated implementation of the receiver device 202 includes a ring oscillator 210. The ring oscillator 210 is a device including an odd number of inverters with an output that oscillates between two voltage levels. In one implementation, the ring oscillator 210 is implemented using various existing components of the receiver device 202. For example, with the receiver device 202 using FPGA components, the ring oscillator 210 is implemented using the look up tables (LUTs) of various configurable logic blocks (CLBs) of the FPGA receiver device 202. As a result, the implementation of the ring oscillator 210 uses minimal or no changes in the internal configuration of the receiver device 202. In other implementations, the ring oscillator 210 is implemented using other digital logic technologies, such as the complementary metal oxide semiconductor (CMOS) logic, the N-type metal oxide semiconductor (NMOS) logic, the complex programmable logic devices (CPLDs), the programmable logic arrays (PLA), the programmable array logic (PAL), the generic array logic (GAL), the structured logic, etc.

The ring oscillator 210 is configured so that the frequency of its output signal depends upon the temperature of the ring oscillator 210. Additionally, the output frequency of the ring oscillator 210 also depends upon the supply voltage to the ring oscillator 210 and the number of inverters used to implement the ring oscillator 210. When the ring oscillator 210 is implemented using LUTs, the frequency of its output signal additionally depends upon the number of LUTs and the relative placement of these LUTs. Because the temperature signal 208 affects the temperature of the receiver device 202 and therefore the temperature of the ring oscillator 210, the frequency of the output signal generated by the ring oscillator 210 also depends upon the temperature signal 208.

The receiver device 202 also includes a ring oscillator counter 212 that counts the output cycles of the ring oscillator 210. A fixed clock 214 generates a signal with a fixed output frequency and a fixed clock counter 216 counts the cycles of the signal generated by the fixed clock 214. A sampling logic 218 driven by the fixed clock 214 samples the output of the ring oscillator counter 212 at a fixed time interval based on an input from the fixed clock counter 216. As the speed of the ring oscillator 210 increases or decreases in response to the temperature signal 208, the output of the sampling logic 218 decreases or increases correspondingly. The side channel communications system 200 decodes the output of the sampling logic 218 over time to detect the temperature signal 208.

For example, the output frequency of the ring oscillator 210 in absence of the temperature signal 208 is f1 hertz 230. As a result of a negative temperature signal 208, the output frequency of the ring oscillator 210 increases to f2 hertz 232. In this case, the sampling logic 218 determines the information conveyed by the temperature signal 208 to be equal to the difference df hertz 240, where df=f2−f1 hertz. In an alternative implementation, the value of f2 hertz itself is interpreted by the sampling logic 218 as conveying the information from the temperature signal 208. Yet alternatively, the sampling logic 218 monitors the rate of change in the output frequency of the ring oscillator 210 from f1 hertz to f2 hertz as the information conveyed by the external transmitter 204.

A minimum discernable temperature change that can be used by the side channel communications system 200 to convey information from the external transmitter 204 to the receiver device 202 depends on the minimum change in the speed of the ring oscillator 210 that can be reliably detected by the sampling logic 218. Furthermore, such discernable temperature change also depends upon how strongly the ring oscillator 210 responds to the changes in the temperature caused by the temperature signal 208.

FIG. 3 illustrates other alternative example data sources and flows for a side channel communications system 300. The side channel communications system 300 includes a receiver device 302 and a number of external transmitters 304, 306, 308, and 310. The external transmitters 304, 306, 308, and 310 are configured to transmit external information signals to the sections 314, 316, 318, and 320 of the receiver device 302. For example, the external transmitter 304 sends a signal 324 to the receiver section A 314, the external transmitter 306 sends a signal 326 to the receiver section A 316, etc. In one implementation, each of the external transmitters 304, 306, 308, and 310 is configured to send a temperature signal to a particular section of the receiver device 302. Thus, for example, the external transmitter 304 is a heat source or a heat sink that sends the temperature signal 324 to the receiver section 314.

Each of the receiver sections 314, 316, 318, and 320 includes a decoder 334, 336, 338, and 340. Each of the decoders 334, 336, 338, and 340 is configured to measure a particular characteristic of the corresponding receiver sections 314, 316, 318, and 320 and decode the value of such characteristic or a change in such characteristic. For example, the decoder A 334 is configured to measure the propagation delay on an internal circuitry in receiver section A 314. Furthermore, the decoder A 334 is also configured to store such measured value of the propagation delay, a threshold value of change in the propagation delay, etc., into a memory of the decoder A 334.

The temperature signal 324 from the external transmitter A 304 causes the propagation delay on an internal circuitry in the receiver section 314 to change. For example, a positive temperature signal 324 causes the propagation delay on the internal circuitry in the receiver section 314 to increase. The decoder A 334 measures such change in the propagation delay and compares the change to a threshold value. If the decoder A 334 determines that the detected change in the propagation delay is above the threshold, it generates a bit “1” as the information communicated by the external transmitter A 304.

In a similar manner, the other external transmitters 306, 308, and 310 also send information to the receiver sections 316, 318, and 320. The corresponding decoders 336, 338, and 340 decode the information communicated by the signals 326, 328, and 330 to generate output bits. The implementation of the side channel communications system 300 shows that when the decoder A 334 generates a bit “1” as the value of the information communicated by the external transmitter 304, the other decoders 336, 338, and 340 generate output bit values of “0,” “1,” and “0.” As a result, cumulative output from the decoders 334, 336, 338, and 340 is “1010.”

While the side channel communications system 300 has the receiver device 302 divided into four sections 314, 316, 318, and 320, in an alternative implementation, a greater or a lesser number of sections is provided. Furthermore, in an alternative implementation, each of the external transmitters 304, 306, 308, and 310 is implemented on a same transmitter device and a single decoder device is used to implement each of the decoders 334, 336, 338, and 340.

The maximum transfer rate that can be achieved by the side channel communications system 300 depends on a number of factors including the number of distinct channels used for communicating with the receiver device 302, the distinct changes in temperature levels used for communication, the operational temperature range over which the temperature is varied, the speed at which the external transmitters 304, 306, 308, and 310 dissipate heat into or remove heat from the receiver sections 314, 316, 318, and 320, etc.

FIG. 4 illustrates example operations 400 for a side channel communications system for communicating between an external transmitter and a receiver device. A receiving operation 402 receives the information to be communicated using the side channel communications system. For example, an external transmitter configured to communicate using the side channels receives information representing a command that a computing device is sending to the receiver device.

Subsequently, a converting operation 404 converts the information received at the external transmitter into a signal to be transmitted to the receiver device. For example, if the received information is a command that requests the receiver device to implement a first operation, the command is converted into an eight-bit byte. A selection operation 406 selects that channels used to communicate the bits of the command to the receiver device. For example, if the external transmitter of the side channel communications system includes eight transmit channels, each communicating with a section of the receiver device, each of such eight transmit channels is selected to communicate one bit of the eight-bit command. Alternatively, if only four transmit channels are available to the external transmitter, each of these four transmit channels sequentially transmits two bits of information to the receiver device.

Once the transmit channels are selected, a generating operation 408 generates a transmission signal. For example, if the external transmitter is a heat source that is configured to transmit temperature signals to the receiver device, the generating operation 408 generates a temperature signal that will convey the bit of information to the receiver device. In one implementation, the external transmitter and the receiver device are configured to communicate a temperature signal such that the differential change in the value of a characteristic of the receiver device caused by the temperature signal symbolizes the bit of information communicated by the external transmitter. In an alternative implementation, the external transmitter is a supply voltage modulator that modulates the supply voltage to the receiver device with the information to be transmitted to the receiver device.

Subsequently, a measuring operation 410 measures a change in a characteristic of the receiver device. For example, when the external transmitter communicates a temperature signal to the receiver device, the measuring operation 401 measures a change in the propagation delay between two components of the receiver device. In an alternative implementation, the measuring operation measures the output frequency of a ring oscillator of the receiver device, where such output frequency of the ring oscillator changes based on the temperature of the receiver device.

An evaluation operation 412 evaluates the measured value of the receiver device characteristic. For example, such evaluation includes comparing the measured value of the propagation delay in a receiver device with a previous value of the propagation delay to generate a differential value of the propagation delay. Alternatively, the differential value of the propagation delay is compared with a threshold value to determine if the change in the propagation delay is significant enough to be interpreted as new information. Similarly, when the measured value of the receiver device characteristic is an output frequency of the ring oscillator, the evaluating operation evaluates the change in such output frequency using previously stored values of the ring oscillator output frequency, a threshold value of the change in the ring oscillator output frequency, etc.

Subsequently, a decoding operation 414 decodes the measured value of he receiver device characteristic or the change in the value of the receiver device characteristic. In an implementation where the external transmitter is configured to communicate information to the receiver device using a temperature signal, the decoding operation decodes a positive change in the propagation delay above a threshold value to be equal to a “1” bit. Similarly, the decoding operation decodes a negative change in the propagation delay above a threshold value to be equal to a “0” bit. Yet alternatively, the receiver device is provided with a lookup table that provides decoding relation between the amount of change in the output frequency of the ring oscillator and a value of information conveyed from the external transmitter. For example, the following lookup table illustrates such translation of measured change in the output frequency of the ring oscillator to the information communicated by the external transmitter.

Lookup Table Change in Oscillator Frequency (Hz) Communicated Information 10 to 20 00 20 to 30 01 30 to 40 10 40 to 50 11

Thus, if the decoding operation determines that the output frequency of the ring oscillator has changed from 300 hertz to 335 hertz, denoting a differential change of 35 hertz, the decoding operation determines the information communicated from the transmitter to be equal to “10”.

A communicating operation 416 communicates the decoded information to the appropriate component of the receiver device or to other devices communicatively connected to the receiver device. For example, if the decoded information represents a reset operation that instructs the receiver device to reset a set of output pins, the communication operation communicates such reset instruction to the appropriate output pins. Subsequently, a saving operation 418 saves the measured value of the receiver device characteristics in a memory of the receiver device. In one implementation, such stored values of the receiver device characteristics are used for future decoding of the information communicated by external transmitters, for evaluating the performance and/or operating efficiency of the side channel communications system, etc.

Some embodiments may comprise an article of manufacture. An article of manufacture may comprise a storage medium to store logic. Examples of a storage medium may include one or more types of computer-readable storage media capable of storing electronic data, including volatile memory or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writeable or re-writeable memory, and so forth. Examples of the logic may include various software elements, such as software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application program interfaces (API), instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. In one embodiment, for example, an article of manufacture may store executable computer program instructions that, when executed by a computer, cause the computer to perform methods and/or operations in accordance with the described embodiments. The executable computer program instructions may include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, and the like. The executable computer program instructions may be implemented according to a predefined computer language, manner or syntax, for instructing a computer to perform a certain function. The instructions may be implemented using any suitable high-level, low-level, object-oriented, visual, compiled and/or interpreted programming language.

The embodiments of the invention described herein are implemented as logical steps in one or more computer systems. The logical operations of the present invention are implemented (1) as a sequence of processor-implemented steps executing in one or more computer systems and (2) as interconnected machine or circuit modules within one or more computer systems. The implementation is a matter of choice, dependent on the performance requirements of the computer system implementing the invention. Accordingly, the logical operations making up the embodiments of the invention described herein are referred to variously as operations, steps, objects, or modules. Furthermore, it should be understood that logical operations may be performed in any order, unless explicitly claimed otherwise or a specific order is inherently necessitated by the claim language.

The above specification, examples, and data provide a complete description of the structure and use of exemplary embodiments of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended. Furthermore, structural features of the different embodiments may be combined in yet another embodiment without departing from the recited claims.

Claims

1. A method comprising:

generating an external signal representing an external information to be conveyed to a receiver device, operational speed of internal circuitry of the receiver device being dependent upon the external signal;
receiving the external signal at the receiving device;
measuring a value of the operational speed of the internal circuitry; and
decoding the measured value of the operational speed to generate a value of the external information.

2. The method of claim 1 wherein the internal circuitry is a ring oscillator.

3. The method of claim 2 wherein measuring a value of the operational speed of the internal circuitry further comprises measuring an output frequency of the ring oscillator.

4. The method of claim 1 further comprising comparing the measured value of the operational speed with a stored value of the operational speed to generate a differential value of the operational speed.

5. A method comprising:

receiving an external signal at a receiving device, the external signal representing external information;
measuring a value of operational speed of internal circuitry of the receiving device, the operational speed of the internal circuitry being dependent upon an external signal received at the receiving device; and
decoding the measured value of the operational speed of the internal circuitry to generate a value of the external information.

6. The method of claim 5 wherein decoding the measured value of the operational speed further comprising comparing the measured value of the operational speed with a stored value of the operational speed.

7. The method of claim 5 wherein measuring a value of operational speed of an internal circuitry further comprising measuring an output frequency of a ring oscillator in the receive device.

8. The method of claim 7 further comprising comparing the output frequency of the ring oscillator with a threshold value of the ring oscillator output frequency.

9. The method of claim 5 wherein the external signal is a temperature signal.

10. The method of claim 5 wherein the external signal is a supply voltage signal.

11. The method of claim 5 wherein decoding the measured value of the operational speed further comprises:

generating a differential value of the output frequency of the internal circuitry based on the comparison of a measured value of the output frequency of the internal circuitry and a stored value of the output frequency of the internal circuitry; and
comparing the differential value of the output frequency of the internal circuitry with a number of look-up table values, each of the look-up table values corresponding to a value of the external information.

12. A device comprising:

circuitry configured to receive an external signal at a receiving device, the external signal representing external information;
a detector configured to measure a value of operational speed of internal circuitry of the receiving device, the operational speed of the internal circuitry being dependent upon an external signal received at the receiving device; and
a decoder coupled to the detector to receive the output value from the detector and configured to decode the measured value of the operational speed of the internal circuitry to generate a value of the external information.

13. The device of claim 12 wherein the circuitry is a temperature sensitive circuitry with the operational speed that changes based on a change in an operating temperature of the circuitry.

14. The device of claim 12 wherein the circuitry is a voltage level sensitive circuitry with the operational speed that changes based on a change in an operating voltage level of the circuitry.

15. The device of claim 12 wherein the detector is configured to generate an output value based on a value of the operational speed of the circuitry based on a propagation delay on the circuitry.

16. The device of claim 12 wherein the circuitry is a ring oscillator having an output frequency that is influenced by the signal from an external source.

17. The device of claim 16 wherein the ring oscillator is configured using look up tables (LUTs) of various configurable logic blocks (CLBs) on an integrated circuit.

18. The device of claim 12 wherein the decoder is further configured to generate the information value communicated by the signal from the external source by comparing the output value from the detector with a stored value of the operational speed of the circuitry.

19. The device of claim 18 further comprising:

generating a differential value of the operational speed of the circuitry based on the comparison of the output value from the detector and the stored value of the operational speed of the circuitry; and
comparing the differential value with a threshold value.

20. The device of claim 18 further comprising:

generating a differential value of the operational speed of the circuitry based on the comparison of the output value from the detector and the stored value of the operational speed of the circuitry; and
comparing the differential value with a number of look-up table values, each of the look-up table values corresponding to an information value communicated by the signal from the external source.
Patent History
Publication number: 20130044798
Type: Application
Filed: Dec 22, 2011
Publication Date: Feb 21, 2013
Applicant: MICROSOFT CORPORATION (Redmond, WA)
Inventors: Kenneth Eguro (Seattle, WA), Alessandro Forin (Bellevue, WA), Ray A. Bittner, JR. (Woodinville, WA), Ji Sun (Shenzhen)
Application Number: 13/334,054
Classifications
Current U.S. Class: Testing (375/224)
International Classification: H04B 17/00 (20060101);