Electronic – Using CPU heat to generate electricity

cpuheatheatsink

I've been reading Tanenbaum's Structured Computer Organization and he says one of the major bottlenecks for increasing CPU clock speed is heat. So I started thinking: Is it possible to remove the heatsink altogether and use that heat to generate more electricity? I've been searching on this and found these thermoelectric materials and this thermoelectric generator:

Thermoelectric generator concept found on Wikipedia

I read on that Wikipedia article that "Silicon-germanium alloys are currently the best thermoelectric materials around 1000 °C (…)", and I know CPU normally operate around 30~40°C. So, getting to 1000 °C would require more CPUs.

So I thought: What about putting a lot of CPUs in parallel without their heatsinks to gather more heat? We can also overclock these CPUs a whole lot and see how much heat they can generate.

But I'm stuck. I don't know what to think next. I don't even know if it's a good line of thought.

My question is: why not develop some sort of heatsink that generates electricity from the CPU's heat? I know somebody must already have thought about that and thought about a reason why not to do it, but I can't figure it out.

So, why is it not possible?


EDIT for clarification: I do not want CPUs to work at 1000 °C. I'll list my reasoning steps (not necessarily correct), which were roughly:

  1. CPU clock speed is limited by working temperature (T).
  2. CPUs generate heat. Heat makes T rise.
  3. Heatsinks take care of that heat in order to maintain T=40°C.
  4. Replace heatsink with thermoelectric generator (built from SiGe or similar material)
  5. Put a lot of CPUs side by side to increase heat generation.
  6. Heat comes out the CPUs to TEG, so CPUs stays at T=40°C.
  7. Is this possible?
  8. How to build such a TEG? Which material to use?
  9. Why such device doesn't exist already?
  10. Asked this question.

EDIT2: I see that my idea is fundamentally wrong and bad. Thanks for all the answers and comments. Sorry about any misunderstandings.

Best Answer

tl;dr Yes, you can extract a small amount of power from a CPU's waste heat, but your heat sink must be the bigger the more power you want to extract.

explanation There is no machine which converts heat into power, only machines which convert heat difference into power. In your case, that difference is the one between the CPU temperature and the environment temperature. The maximum theoretical efficiency for this process is (1 - T_cold / T_hot), so for an environment temperature of 25 deg C, a CPU temperature of 40 deg C and a heat flow of 50W you could generate 2.4 watts of electricity with an ideal converter (the temperatures are absolute temperatures in Kelvins). If you allow the CPU to reach 60 deg C, you can get up to 5 watts, and if you allow 100 deg C, you can get up to 10 watts. Real-life heat-to-power converters are more inefficient, especially thermoelectric elements. I'd recommend a stirling engine, which is closer to the ideal efficiency.

This is how heat flows with a passive heatsink:

[CPU] --> [Environment]

The CPU-to-Environment junction has a thermal resistance, measured in Kelvins/Watt, directly equivalent to how electrical resistance is measured in Volts/Ampere. You might have encountered Kelvin/Watt values in some datasheets. An ideal heatsink has zero resistance, so the temperature difference is 0 and the CPU operates at environment temperature (25 deg C). With a real-life heatsink of 0.5K/W and a heat flow of 50W (the CPU generates 50W of heat), the temperature difference is 25K and the CPU is at 50 deg C.

This is how heat flows with your proposed machine:

[CPU] --> [Hot end of machine] --> [Cold end of machine] --> [Environment]

There are thermal resistances, i.e. temperature differences, at all three points. Let us assume that the connection between CPU and hot end of machine is ideal, i.e. they are at the same temperature. The thermal resistance inside the machine is used to generate electricity. The thermal resistance between the cold end and the environment is given by the cold-end heat sink.

Say the heat sink at the cold end is the same that we used for the CPU, with 0.5K/W, and we want the CPU to be at 50 deg C. Then the cold end of the machine is already at 50 deg C, and there can be no temperature difference over the machine, i.e. it can generate no power. If we use a heat sink twice was big (0.25K/W), then the cold end will be at 37.5 deg C and the temperature difference over the machine is 12.5 deg C, so it can generate a little bit of power.

Any machine that extracts power from a temperature difference poses a thermal resistance equal to (temperature difference)/(Heat flow). The thermal resistance of the machine is added to the thermal resistance of the heatsink, so the CPU temperature will always be hotter if there is a machine in between.

BTW Some overclockers go the opposite way: They add a thermoelectric element which runs in reverse, using electric power to pump heat from the CPU to the heatsink, creating a negative temperature difference. The CPU is at the cold end, and the heatsink is at the hot end.

BTW This is why nuclear power plants have enormous cooling towers, which work as the cold-end heat sink.