22
\$\begingroup\$

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.

\$\endgroup\$
41
  • 13
    \$\begingroup\$ How do you propose your CPUs to work at 1000°C ? \$\endgroup\$
    – PlasmaHH
    Jun 7, 2017 at 12:29
  • 36
    \$\begingroup\$ Two CPUs at 50° each is not the same as one CPU at 100°. \$\endgroup\$
    – Hearth
    Jun 7, 2017 at 12:35
  • 12
    \$\begingroup\$ They don't. Think of it this way: if the east side of your room is 20°C, and the west side of your room is 20°C, your room on the whole is 20°C, not 40°C or anything like that. \$\endgroup\$
    – Hearth
    Jun 7, 2017 at 12:42
  • 11
    \$\begingroup\$ @EnzoFerber: ok, I give up, you know that the CPU will be destroyed by it glowing yellow hot, but at the same time you want to make it glow yellow hot and work. Maybe the guys at scifi and fantasy SE have some magic that works for you. \$\endgroup\$
    – PlasmaHH
    Jun 7, 2017 at 12:46
  • 7
    \$\begingroup\$ I noticed no-one replied what I think is the real solution, so I'm adding my opinion. To produce energy you cannot use heat; you need heat DIFFERENTIAL. since the CPU needs to stay at a fixed temperature (over 100°C it will behave badly), the only way to extract energy is to make the heatsink cooler. But the energy required to cool the heatsink is higher than the one you can extract. You can extract X energy, but only providing it Y > X energy. So... No power generation, sorry... \$\endgroup\$
    – frarugi87
    Jun 7, 2017 at 16:03

8 Answers 8

17
\$\begingroup\$

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.

\$\endgroup\$
12
  • 3
    \$\begingroup\$ +1 the only answer so far addressing the actual issue instead of focusing on side effects. \$\endgroup\$
    – Agent_L
    Jun 8, 2017 at 10:41
  • 1
    \$\begingroup\$ I have heard a steam boiler is a pretty good device for extracting energy from heat alone.. Naturally you need to go beyond boiling temperature to generate steam that would be useful at which point your semiconductor cooks. I guess theoretically you could use a low-pressure system to bring the boiling point down. Hardly worth it for couple of dozens of watts thought. WRT nuke plants, you definitely could use the waste heat in the cooling cycle to provide e.g. residential heating. Those bad atoms jump from the cooling water to the heating water like everyone knows thought. \$\endgroup\$
    – Barleyman
    Jun 8, 2017 at 12:09
  • \$\begingroup\$ @nocomprende: You are right, of course. I have clarified. \$\endgroup\$
    – mic_e
    Jun 8, 2017 at 12:23
  • 1
    \$\begingroup\$ @Barleyman: Residential heating is a clever heatsink, because you can charge money for its use. But it's unreliable because your customers won't sink your heat during summer, so you will need towers as backup. Also, residential heating will require at least 60 deg C, so it won't be able to cool the cold end below 60 deg C. Remember: The lower the temperature of the cold end, the higher the efficiency. \$\endgroup\$
    – mic_e
    Jun 8, 2017 at 12:51
  • 1
    \$\begingroup\$ +1 for being the answer to end all other answers. :) A shame that another answer (which is OK but with much less detail) has been accepted. \$\endgroup\$
    – AnoE
    Jun 9, 2017 at 11:52
33
\$\begingroup\$

The issue with thermoelectric generators is they are horrendously inefficient.

For a CPU you HAVE to get rid of the heat they produce or they melt down.

You could hook up a peltier module and extract a small amount of electricity from them but you would still need to dissipate the remainder of the heat via a classical heat exchange method. The amount of electricity generated would likely not be significant enough to warrant the cost of the setup.

You CAN also use peltiers as coolers. However, you need to ADD power to pump out the heat. That power then needs to be dissipated along with the heat you are removing via the heat-exchanger. In the end the latter needs to be larger so your net effect is worse.

Heat to power is a "holy grail" idea and is up there with cold fusion as a theoretical dream.

EDITED FOR CLARITY

Efficient DIRECT conversion from heat to electricity is a "holy grail" idea and is up there with cold fusion as a theoretical dream.

\$\endgroup\$
12
  • 7
    \$\begingroup\$ Heat-to-power is not just a theoretical dream. Every internal combustion engine, every steam turbine, every jet engine is doing exactly that. It just doesn't make any sense at the temperature that CPUs operate at. Also, the OP needs to learn the difference between heat and temperature. \$\endgroup\$
    – Dave Tweed
    Jun 7, 2017 at 12:50
  • 5
    \$\begingroup\$ The heat content of the output fluid is always less than the heat content of the input fluid, which is why all of the devices I listed are generically classified as "heat engines", and their overall efficiency is limited by well-known laws of thermodynamics. A Peltier device is subject to those same laws, but it is notoriously inefficient to begin with. \$\endgroup\$
    – Dave Tweed
    Jun 7, 2017 at 12:59
  • 3
    \$\begingroup\$ @Trevor pressure is a result of the application of heat energy. Essentially pressure is their engineering means of accessing heat energy. Temperature is defined as the average kinetic energy, so in a way you have the right idea, but you are wrong on the cause vs. effect as long as you are talking about an engine, and not a compressor. \$\endgroup\$ Jun 7, 2017 at 15:14
  • 10
    \$\begingroup\$ It may be hard to generate useful electrical or mechanical energy from, but "CPU waste heat at at little more than room temperature" can keep you warm in winter - ie, the "data furnace" idea. \$\endgroup\$ Jun 7, 2017 at 15:25
  • 2
    \$\begingroup\$ @Christoph: Well, in large datacenters you have exactly this situation. Heat pumps (Air conditioners) are used to actively pump heat out of the datacenter to make the datacenter easier to cool, and nobody cares about the enormous power draw. \$\endgroup\$
    – mic_e
    Jun 8, 2017 at 14:14
19
\$\begingroup\$

For generating electricity, you want the hot side (processor) to be as hot as possible for maximum efficiency. The thermal generator slows down the movement of heat as it extracts energy from it.

For doing computation, you want the processor to be as cold as possible. Higher temperatures increase the electrical resistance of the silicon. This is why you have highly-conductive heatsinks, fans etc: to move heat away as fast as possible.

These requirements directly contradict one another.

\$\endgroup\$
10
  • 6
    \$\begingroup\$ Or, to put it another way, you'd have to make the CPU work significantly worse to extract even a trivial amount of power. That's a losing proposition. If you can tolerate the CPU working worse, you'd be better off just providing it less power in the first place rather than providing lots of extra just to make it hot so that you can recover a tiny fraction of that. \$\endgroup\$ Jun 7, 2017 at 22:20
  • 1
    \$\begingroup\$ Actually Silicon is the opposite of Metal - Resistance decreases as temperature increases. However high temperatures cause noise and low resistance causes other issues. Both cause CPU errors. \$\endgroup\$
    – Tom Leys
    Jun 8, 2017 at 2:01
  • 2
    \$\begingroup\$ @gmatht There's already experiments with data centres deep in the oceans. It looks quite promising for cloud clusters - cooling even huge server farms is almost trivial at those ambient temperatures, and the water can carry away lots of heat easily. I suspect Pluto would be rather impractical, even if we were only concerned with the temperature and not the other practical difficulties :) \$\endgroup\$
    – Luaan
    Jun 8, 2017 at 11:12
  • 2
    \$\begingroup\$ @TomLeys that's an oversimplification. With undoped semiconductors resistance goes down with temperature. With doped semiconductors it can go either way. \$\endgroup\$ Jun 8, 2017 at 16:22
  • 1
    \$\begingroup\$ @gmatht A datacenter on Pluto would have to contend with the fact that there is next to zero atmosphere on Pluto, so heat dissipation can only happen by radiation, which is very inefficient compared to other methods. Or maybe you meant Pluto, Mickey Mouse's dog? :) In that case, I guess it would have to contend with the insulating effects of dog fur, which are considerable! \$\endgroup\$
    – user
    Jun 9, 2017 at 12:21
19
\$\begingroup\$

Surprised that nobody else has mentioned this:

Generating electricty from the waste heat from some process that burns fuel can make sense. Generating electricity from the waste heat from a system that is powered by electricity in the first place? That makes no sense. If it's possible for you to save energy by doing that, then it's possible for you to save even more energy by building a system that uses electricity more efficiently in the first place.

\$\endgroup\$
12
  • 3
    \$\begingroup\$ Exactly. If the CPU can tolerate the extraction of energy from its heat, it's operating very inefficiently and you'd do better exploiting that inefficiency to make it use less power in the first place rather than trying to extract a tiny fraction of it. \$\endgroup\$ Jun 7, 2017 at 22:21
  • 1
    \$\begingroup\$ The same argument can be applied to engines which burn fuel: optimizing a thermal engine yields more than trying to collect the waste heat. \$\endgroup\$ Jun 8, 2017 at 12:18
  • 1
    \$\begingroup\$ It's pretty common for power plants to use the "waste heat" from gas turbines to run steam engines. \$\endgroup\$ Jun 8, 2017 at 16:23
  • 4
    \$\begingroup\$ @DmitryGrigoryev: with one caveat: cogeneration. Collecting the waste heat and using it to heat other stuff is fantastically effective. \$\endgroup\$ Jun 9, 2017 at 4:27
  • 3
    \$\begingroup\$ Meta-comment: Probably nobody has thought of giving this answer before because it is not part of the question. The fact is that CPUs generate heat. The OP states that fact for completeness sake or to set up the context of the question. The OP does not ask how/whether this can be avoided. The question is whether the heat, which is a given, can be used to create electricity. Hence it makes no sense to propose to avoid heat (in the context of this question). \$\endgroup\$
    – AnoE
    Jun 9, 2017 at 11:48
2
\$\begingroup\$

The laws of thermodynamics state that putting together two energy sources of the same temperature don't equate to a higher energy level. For example, putting pouring a cup of hot water into another cup of hot water doesn't make the combination any hotter than the separate cups.

Heat is also one of the lowest forms of energy in that there is very little you can do with it. Electricity can run circuits, wind can create mechanical motion, but heat can't do much beyond putting more energy into a fluid or solid.

That said, the most feasible method of getting energy from heat is boiling a fluid (water for instance) to turn a turbine. Putting multiple heat sinks together and attached to a tub might make water boil if the CPU's are all above 100 C. But, as you can probably infer, this is a terrible idea.

\$\endgroup\$
3
  • \$\begingroup\$ Getting usable energy from a heat gradient is easy enough - but the efficiency increases as the difference gets wider. That's how e.g. combustion engines work, and that's why a thermodynamic engine tries to get as hot as practical, while keeping the other side as cold as practical. The gradient between a 50 °C CPU and its 25 °C environment doesn't give you much opportunity to extract useful energy - indeed, keeping the CPU cool enough is a challenge, and a heat engine would only make that worse. \$\endgroup\$
    – Luaan
    Jun 8, 2017 at 11:16
  • \$\begingroup\$ The point made was not about efficiency, but practicality. Boiling water with the waste heat of a CPU is impractical regardless of the temperature gradient. \$\endgroup\$ Jun 8, 2017 at 12:42
  • 2
    \$\begingroup\$ Boiling water at room pressure, sure. But nobody says it has to be water, and that it has to be room pressure - there's plenty of stuff that would have a convenient boiling point. We're using a lot of different coolants depending on the conditions - including the now-popular heat-pipes that are actually used for cooling CPUs, using low-pressure water evaporative coolant vastly outperforming the heat conduction of the casing. Efficiency and cost is all that matters - extracting even a small part of the energy in such a tiny gradient is impractically expensive. \$\endgroup\$
    – Luaan
    Jun 8, 2017 at 15:08
2
\$\begingroup\$

Funny thinking, but no. Your CPU is not just a chip, there are bonding wires and a casing involved which would not exactly stand a chance at 1000°C.

That aside, there are still some laws of thermodynamics to be considered. You still have to put in a huge amount of energy into the system to get very little out. The Peltier element you are referring needs a big dT (difference between cold and hot side) so simply removing the heat sinks will bring up the "cold" side to the same temperature as the hot side, so no more energy to be gained here, you'll need to cool the cold Side which will ruin the efficiency even more. On the other hand those Peltier elements can be used to generate a temperature difference as in cooling the CPU.

\$\endgroup\$
2
\$\begingroup\$

In theory, it is possible. All you need is some "substance" that generates electricity when one of its surfaces is at 40c and the other is at 20c.
Currently, there are thermocouples that do exactly this (change heat to electricity), but at a much higher temperature.

\$\endgroup\$
0
\$\begingroup\$

It is possible, but entirely useless. In the context of energy generation it completely depends on utilizing CPU as a heater, meanwhile from all other intents and purposes you do not want the CPU to behave as a good heater. It's an exclusive choice: either choose good CPU, or choose a good heater. Cannot have both.

And while operating a CPU, your main problem is not lack of electrical power, but efficient dissipation of the waste heat. Squeezing out a few extra watts of power gives virtually no benefit whatsoever because wattage is not a limiting factor there: if your computer needed more power, it could just easily drain about over thousand watts more from your electrical outlet until the circuit breaker would intervene. In reality, actually the reverse situation sometimes happens: sacrificing much more electric power to operate an active cooling structure, just to squeeze out a bit of extra performance from the CPU.

And these few "free" extra watts generated aren't really "free" either: the price you pay is having a CPU with a crippled heat sink that will severely shorten its lifetime, or provide subpar performance because of thermal throttling.

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.