Prozessor heißer wenn 1 || 1 als 0 || 0?
-
Ich glaube, die ursprüngliche Frage war eine andere, wenn auch vollkommen unverständlich gestellt:
Wenn ich einen Vergleich anstelle, bei dem ich irgend wie auf "0" vergleiche, dann sollte die CPU doch (ein klitzeklitzeklein) weniger Strom verbrauchen, als wenn der Vergleich irgend wie mit einer Zahl !=0 erfolgt. Hintergrund: bei "0" sind sämtliche Bits des entsprechenden Registers auf 0 gesetzt, bei allen anderen Werten sind ein oder mehrere Bits dieses Registers 1, was einen größeren Stromverbrauch bedeutet.
Antwort: Ja, im Prinzip ist das so, nur ist es völlig bekloppt, auf diesem Wege Strom/Rechenleistung sparen zu wollen:
1. Weiß man nicht, ob die Optimierung dazu führt, das dieser Vergleich doch wieder umgebogen wird
2. Wäre die nächste Frage, wie die Verteilung der 1er-Bits im entsprechenden Opcode für den Vergleich ist; es bringt gar nix, beim Operanden ein paar auf 1 gesetzte Bits zu sparen, wenn im dann anderen Opcode um so mehr Bits auf 1 gesetzt sind
3. gibt es wesentlich bessere Methoden, wirklich Strom zu sparen: eine Effiziente und suabere Programmierung mit den normalen Mitteln einer Sprache und ohne auf überdimenionierte, monströse und ineffektive Zwischenschichten zurück zu greifen (die ganze .NET-VM-Umgebung ist hier wohl das Beste Beispiel für eine enorme Verschwendung von Rechenpower).
-
Wenn ich das richtig in Erinnerung habe, wird der Stromverbrauch durch den Umladevorgang - also einen Wechsel von 1 auf 0 oder von 0 auf 1 - beeinflusst, nicht durch den Zustand selbst, der ist statisch. Und ein DRAM muß ja immer refresht werden, egal welcher Wert im Speicher steht.
-
So hab ich das auch in Erinnerung. http://de.wikipedia.org/wiki/CMOS
-
Die Caches der CPUs sind schon mal kein DRAM, da kommt AFAIK schnellerer statischer RAM zum Einsatz.
Und die CPUs selber sind in CMOS-Technologie gefertigt? Wer behauptet denn sowas?
-
Ja, ich habe die Frage schon wegen der Energie gestellt. Dass viele einser mehr Energie verbraucht als Nuller. Und bei Transistoren, wenn 2 einser reingehen, aber nur 1 einser rauskommt, muss ja etwas emittiert sein. Wohin damit? In Wärme umgewandelt.
Es ist wegen meiner philosophischen Frage, wie das Universum zusammenhängt, und virtuelle Welten ja nicht wirklich von der realen Welt abgeschottet wird bzw unabhängig ist, sondern schon auch Konsequenzen hat.
-
Hitzeschlag schrieb:
Und bei Transistoren, wenn 2 einser reingehen, aber nur 1 einser rauskommt, muss ja etwas emittiert sein. Wohin damit? In Wärme umgewandelt.
Hä?
Wenn ich zwei rote Autos habe, aber der Nachbar ein rotes und ein blaues, wo ist das zweite rote hin? In Wärme umgewandelt?
-
Hitzeschlag schrieb:
Ja, ich habe die Frage schon wegen der Energie gestellt. Dass viele einser mehr Energie verbraucht als Nuller. Und bei Transistoren, wenn 2 einser reingehen, aber nur 1 einser rauskommt, muss ja etwas emittiert sein. Wohin damit? In Wärme umgewandelt.
Es ist wegen meiner philosophischen Frage, wie das Universum zusammenhängt, und virtuelle Welten ja nicht wirklich von der realen Welt abgeschottet wird bzw unabhängig ist, sondern schon auch Konsequenzen hat.
-
Hitzeschlag schrieb:
Und bei Transistoren, wenn 2 einser reingehen, aber nur 1 einser rauskommt, muss ja etwas emittiert sein. Wohin damit? In Wärme umgewandelt.
Vielleicht solltest du dich erst mal mit den elektrotechnischen Grundlagen befassen bevor du dich hier mit solchem Unfug selber lächerlich machst.
-
Der Datenmix in der Verarbeitung hat nur einen minimalen Einfluss, da der Verarbeitungsoverhead sicherlich 95%-99% der Schaltvorgänge ausmacht. Ob in Registern und ALUs dann Nullen oder Einsen verwurschtelt werden, ist relativ egal.
Schau Dir mal die Fläschenverteilung in einem modernen, superskalaren, out-of-order CISC-Prozessor an. Die konkreten ALUs (also wo wirklich Nutzdaten irgendwie transformiert werden) ist ein winziger Bereich im Vergleich zu Instruktions-Dekodern, Steuerwerk, Microcode, Load/Store-Unit, MMU und Caches.
Der Overhead der für CISC->RISC Transformation, Micro-/Macro-Fusion, o-o-o (Tomasulo mit Reservation Stations, Register Renaming, Reodering, Shotcuts in den Pipelines, etc.), Branch Prediction, usw. getrieben wird, ist ein Vielfaches dessen, was eine simple Int-ALU, ein Int-Multiplizierer, selbst FPU und SSE-ALUs an Platz brauchen.
-
Darkker schrieb:
Die Caches der CPUs sind schon mal kein DRAM, da kommt AFAIK schnellerer statischer RAM zum Einsatz.
Und die CPUs selber sind in CMOS-Technologie gefertigt? Wer behauptet denn sowas?
Selbst wenn sie nicht in CMOS-Technologie gefertigt sind, sind das mit Sicherheit MOSFETs oder andere IGFETs und in einem Schaltwerk aus IGFETs fließt nur Strom, wenn von einem Zustand auf den anderen geschaltet wird, da jeder Ausgang eines Transistorkanals wieder auf einem oder mehrere elektrisch isolierte Gates trifft, wo dann Endstation für unser Elektron ist.
Was die Grundfrage angeht, hängt es also vom Ruhezustand des ODER-Schaltnetzes ab, also wie beim Übergang zur neuen Stellung geschaltet werden muss. Es ist ein Implementierungsdetail.