Est MOD opération de plus de CPU que la multiplication?

Pourquoi est MOD opération plus cher que multiplication par un peu plus d'un factor of 2? Veuillez être plus précis sur la façon de la CPU effectue l'opération de division et renvoie le résultat de MOD opération.

Dans l'exemple suivant, le fils de chaque candidat pour un deuxième. Le test a été effectué sur un SPARC processeur.

//multiplication
void someThread() {

    int a = 10234;
    while (true) {
        opers++;
        a = a * a;
        a++;
    }

    //opers ~ 26 * 10^6 in a sec.
}

//MOD
void someThread() {

    int a = 10234;
    while (true) {
        opers++;
        a = a % 10000007;
        a++;
    }

    //opers ~ 12 * 10^6 in a sec.
}
Les deux exemples de code sont les mêmes.
Fixe le problème.
Où est la version avec +? ^^
Comparer les algorithmes de multiplication (en.wikipedia.org/wiki/Binary_multiplier) avec la division entière algorithmes (en.wikipedia.org/wiki/Division_(numérique)). Je ne sais pas ce que le sparc met en œuvre pour la division. Peut-être que la non-restauration de l'algorithme.
-1 score pour cette question? Peut le downvoters expliquer / commenter?

OriginalL'auteur Leonid | 2010-11-05