Nutzen moderne Rechenwerke von Prozessoren bit-shift zum multiplizieren?
die ALU, also x 2 ist dann um 1 Stelle nach links schieben. : 2 um 1 Stelle nach rechts verschieben. Bei x 3 müsste dann die Rechnung aufgeteilt werden und mit dem Hardware-Addierer weitergemacht werden. Oder rechnen die wirklich noch wie ein 286 er alles per Addition?
2 Antworten
Wie kommst Du darauf, daß der 286 alles via Addition gemacht hat?
Selbst wenn es kein dediziertes Multiplizierernetz gab, Addition+Shiften im Wechsel in Anlehnung an die schriftliche Multiplikation, sollte ansich auch schon die alte Möhre gemacht haben.
AFAIK hat der 286 15 Zyklen für eien Integermultiplikation benötigt. Das ist ziemlich genau die Anzahl der Schritte des schriftlichen Multiplizierens bei 16-Bit Operanden.
Bei reiner Addition und großen Operanden wäre die Zyklenzahl deutlich größer.
Wohlgemerkt, für eine schriftliche Multiplikation braucht es kein kompliziertes Multipliziernetz, das kann ich als Schleife von 2 uOPs implementieren.
Der 386 hat unter anderem auch einen Barrelshifter bekommen, von daher würde dann ein echtes Multipliziernetz auch Sinn ergeben.
Oder rechnen die wirklich noch wie ein 286 er alles per Addition?
Schieberegister hatten schon Prozessoren wie der Intel 8008 aus dem Jahre 1972. Vom Z80 weiß ich es genau, der hatte auch noch rechts-links-shift-Funktionen. Mich sollte es wundern, wenn man das später weggelassen hätte.
Schneller kann man eine Multiplikation mal 2 , 4 , 8 ... nicht machen.
Weil zum 80386 stand, dass dieser einen Hardwaremultiplizierer drin hat. Da dachte ich, dass diese Technik erst dann anfing.