Forum: Mikrocontroller und Digitale Elektronik Leistungssteigerung CPU's


von chris-330 (Gast)


Lesenswert?

Mein Problem ist folgendes:
Wisst ihr bezüglich Methoden zur Leistungssteigerung von Prozessoren ein 
paar Links? Oder hättet ihr da eventuell ein paar Links wo ich solche 
Methoden nachschlagen kann oder habt ihr selber Erfahrungen damit 
gemacht?

Danke im voraus!

Liebe Grüße Chris

von Εrnst B. (ernst)


Lesenswert?

Willst du jetzt wissen, wie du einen bestehenden (PC?) Prozessor 
übertaktest, oder wie du deinen selbst entwickelten Prozessor 
beschleunigst (Pipelining etc)?
Wenn ja, ist vermutlich das FPGA-Forum der bessere Platz, ansonsten das 
PC-Hardware Forum?

von Timmo H. (masterfx)


Lesenswert?

Sehr allgemeine Frage => sehr allgemeine Antwort
http://www.google.de/search?hl=de&q=overclocking+tutorial

Erfahrung hab ich auch, bis jetzt hatte ich in meinem Rechner noch keine 
CPU auf Originaltakt laufen

Oder meinst du mit Leistungssteigerung, einfach nur die Steigerung der 
Verlustleistung? Dann musst du einfach nur die Spannung anheben. Die 
Leistungsaufnahme steigt nähmlich quadratisch mit U

von holger (Gast)


Lesenswert?

Was eine CPU zu leisten vermag ist vom Hersteller vorgegeben.
Eine Leistungssteigerung gibt es da nicht.
Man kann durch geschickte Programmierung nur versuchen
so weit wie möglich ans Limit zu gehen.

von chris-330 (Gast)


Lesenswert?

ja genau, das beschleunigen von selbst entwickelten prozessoren. 
pipelining ist nämlich die einzige methode die mir einfällt. und da wär 
ich natürlich sehr dankbar, hier weitere methoden zu erfahren wie ich 
die dinger schneller mache

von avion23 (Gast)


Lesenswert?

Dafür solltest du dir vielleicht die technische Informatik anhören. 
Spontan fallen mir die brute-force Sachen ein:
- mehr kerne
- höhere Taktfrequenz
- mehr Cache, höherer FSB
- kleinere Strukturen

Faktor 10 in der Geschwindigkeit wäre drin, wenn man die ganzen alten 
Zöpfe abschneidet und einen schönen Befehlssatz entwickelt.
Du kannst dir mal die Cell-Prozessoren anschauen, das ist vernünftig.
Falls du dich ernsthaft interessierst kannst du dir einen FPGA kaufen 
und dann mit VHDL experimentieren. Dabei dürftest du auf ein paar 
Probleme stoßen.

von 3355 (Gast)


Lesenswert?

Das einfachste ist etwas mehr ueberlegen beim Programm erstellen....

von I_ H. (i_h)


Lesenswert?

Wenn man nicht weis wie deine CPU aussieht, kann man dazu auch nix 
genaues sagen. RISC, CISC, grobes Design?

Wenn du nicht mit Superskalarität anfangen willst (und wenn du so fragst 
willst du das sicherlich nicht) bleiben halt die üblichen Sachen - 
Abläufe optimieren, Zwischenspeicher, mehr Register, etc. pp.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

I_ H. wrote:
> bleiben halt die üblichen Sachen -
> [..] mehr Register, etc. pp.

Machen mehr register ne CPU echt schneller? Ich seh da grad nicht deeen 
großen zusammenhang, außer vieleicht für hochsprachen, aber wenn einfach 
gilt Mehr regsiter = schneller, warum dann nicht z.B. 256 register (okay 
der opcode wird dadurch länger aber was solls) dafür hat man auf 
einfache weise ne schnelle CPU :)

von Andreas K. (a-k)


Lesenswert?

Läubi Mail@laeubi.de wrote:

> Machen mehr register ne CPU echt schneller?

Integer/Adressregister: Von 8 auf 16 viel, von 16 auf 32 weniger, über 
32 lohnt kaum noch. Das jedenfalls hat sich im Laufe der letzten 20 
Jahre so rauskristallisiert.

Bei Fliesskommacode sieht das anders aus, stark abhängig von 
Out-Of-Order / Renaming. Wenn das ganze Pipelining mangels Automatik für 
den Programmierer sichtbar wird, kann man dabei mühelos auch 128 
Register verbraten (z.B. IA64). CPUs mit OOO/Renaming haben dabei nur 
sichtbar weniger Register, intern liegt man dann wieder ähnlich.

von Bernd98 (Gast)


Lesenswert?

Moin,

wenn du viele Register wirst du seltener gewzungen sein Zwischenerte in 
den Speicher abzulegen. Oder du kannst Funktionsparameter direkt an die 
Funktion übergeben ohne den Stack verwenden zu müssen.
Der Nachteil ist das du bei Kontextwechseln proportional zur Anzahl der 
Register mehr Zeit zum Speichern bzw. Laden der Register brauchst.

Gruss,
Bernd

von Chris A. (chris-330)


Lesenswert?

Superskalarität ist doch schlussendlich genauso wie Pipelinig in 
erweiterter Form eine Möglichkeit den Prozessor leistungsfähiger zu 
machen, oder?
Mir geht es darum mich um die verschiedenen Methoden zu informieren

von I_ H. (i_h)


Lesenswert?

Ja natürlich, aber Superskalarität ist nicht mal eben implementiert. Vor 
allem nicht so, dass es wirklich was bringt. Frag dich mal, wieso die 
allermeisten (alle?) 8-Bit Mikrocontroller eben nicht superskalar sind. 
Trifft auf 16-Bitter genauso zu.

Eine schöne Übersicht vor allem auch mit dem technischen Aufwand 
dahinter bekommst du, wenn du dir mal die Entwicklung vom 8086 zum 486 
anguckst, und dann noch den Pentium1 und Cyrix M2 (6x86MX) - wenn dich 
das Thema interessiert. Die späteren x86er (außer Randerscheinungen wie 
IDT und Rise) codieren alle intern in RISC um.

Wenn du nur wissen willst wie du aus deinem Design mehr rausholst - ohne 
nähere Infos kann dir hier sicher keiner was zu sagen.

von Jochen M. (taschenbuch)


Lesenswert?

>>wenn du viele Register wirst du seltener gewzungen sein Zwischenerte in
>>den Speicher abzulegen. Oder du kannst Funktionsparameter direkt an die
Hier muss man sehr behutsam differenzieren. Durch die o.g.Ansätze wird 
aber der Prozessor nicht schneller, sondern es wird  nur die Möglichkeit 
eröffnet optimalere Software zu implementieren. Das sind ganz 
verschiedene Dinge.

Ansätze sind ja schon genannt worden, ich füge noch hinzu:
-möglichst viel Arithmetik in hardware (multiplier, divider, 
barrel-shifter)
-optimierte Hardware zum Stackhandling, möglichst wenig Zyklen. Das ist 
für spätere Hochsprachen enorm wichtig.

Am meisten Infos wirst Du wirklich bei dem CPLD/FGPA Leuten finden, die 
basteln sich nämlich die geilsten Architekturen zusammen.

Jochen Müller

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.