64-Bit

Joined
Jun 28, 2007
Messages
3,984
Reaction score
1
Ich verstehs nicht ganz o.o

Wir möchten einen 64-Bit-Multiplizierer testen. Die Schaltung hat also 2*64 = 128 Eingänge. Die interne
Schaltung ist dem Tester nicht bekannt, aber er weiß, dass es keine speichernden Elemente innerhalb der
Schaltung gibt. Der Tester möchte ganz sicher sein, dass die Schaltung funktioniert und plant daher, alle
möglichen Multiplikationen zu testen. Wie aufwändig wird der Test wohl? Beantwortet dazu die folgenden Fragen:

5) Wie viele mögliche Eingangskombinationen gibt es?
Tipp: Die Multiplikationen a*b und b*a sollen separat getestet werden.

6) Wie lange dauert ein vollständiger Test (in Sek.), wenn der Mikrochip mit einem Takt von 2 GHz
betrieben wird und je eine Multiplikation pro Takt ausführen kann?


Meine Lösung

2 ^ 64 = 18.446.744.073.709.551.616 Zustände

18.446.744.073.709.551.616 / 2.000.000.000 (2 Mrd. Herz)

= 9223372036,854775808 Sek?

Ist das nun richtig? Was hat das mit den 128 Eingängen auf sich?
Und den Tipp versteh ich auchnicht ganz.... :(

Es gibt Reeeeeno :)
 
Naja du hast 64x an oder aus. Sind also 128 mögliche Eingänge. Weil 64*2 ist folgerichtig grob gerundet 128.
Irgendwie bin ich allerdings der Überzeugung, dass das nicht 17.700 Jahre dauert. Müsste es nicht 64^2 = 4096 sein?
 
Naja du hast 64x an oder aus. Sind also 128 mögliche Eingänge. Weil 64*2 ist folgerichtig grob gerundet 128.
Irgendwie bin ich allerdings der Überzeugung, dass das nicht 17.700 Jahre dauert. Müsste es nicht 64^2 = 4096 sein?
Das Bit-System wäre ziemlich nutzlos, wenn ich mit 64-Bit nur 64 Zahlen darstellen könnte ^^.


Ein 64-Bit-Multiplizierer muss zwar keine 128 Eingänge haben, aber da es hier der Fall ist kann man davon ausgehen, dass er zwei 64-Bit Zahlen multiplizieren kann.

Da dieser Text leider sehr unvollständig ist gehen wir davon aus, dass es sich hier um eine native Implementierung einer 64-Bit Zahl handelt.

Mit 64-Bit lassen sich in einer nativen Implementierung die Zahlen von 0 bis 2^64 - 1 darstellen. Also 2^64 Zahlen.

Die Anzahl an möglichen Multiplikationen können wir nun induktiv feststellen

0 * 0
0 * 1
0 * 2
..
0 * 2^64-1

= 2^64 Multiplikationen


1 * 0
1 * 1
1 * 2
..
1 * 2^64-1

= 2^64 Multiplikationen * 2 (wir haben hier die Anzahl an Multiplikationen der 0 hinzuaddiert)


2 * 0
2 * 1
2 * 2
..
2 * 2^64-1

= 2^64 Multiplikationen * 3

....

2^64-1 * 0
2^64-1 * 1
2^64-1 * 2
..
2^64-1 * 2^64-1

= 2^64 Multiplikationen * 2^64 = (2^64)^2 = 2^128 Multiplikationen


Es gibt insgesamt also 2^128 mögliche Multiplikation.


Pro Hz können wir laut dem Text einen Takt durchlaufen.

Bei 1 KHz könnten wir 1.000 Takte pro Sekunde durchlaufen.
Bei 1 MHz könnten wir 1.000.000 Takte pro Sekunde durchlaufen.
Bei 1 GHz könnten wir 1.000.000.000 Takte pro Sekunde durchlaufen.

Somit benötigen wir 2^128 / (2 * 10^9) =~ 1,7 * 10^29 Sekunden um in diesem Fall jede mögliche Multiplikation zu testen.


Nette Aufgabe, wäre in abgewandelter Form etwas für meine nächste GRA-Klausur.
 
Back
Top