Pourquoi est Réglé sur Moins d'une opération ALU
Pourquoi est slt
considéré comme un ALU opération? J'ai pensé qu'il il suffit de faire une soustraction, puis obtenir le *Z*ero de sortie d'ALU?
ALU lignes de contrôle | Fonction -------------------+------------------- 0000 | ET 0001 | OU 0010 | ajouter 0110 | soustraire 0111 | set sur moins de
Ou est l'ALU censé sortie 1 si le résultat de A - B
(en slt $t1, A, B
) est négatif.
Qu'entendez-vous par "considéré comme un ALU opération"? Quoi d'autre devrait-il être?
Je pensais l'ALU ne soustraction et de la logique sera de processus en utilisant le Zéro ou Négatif, la sortie de l'ALU
Je pensais l'ALU ne soustraction et de la logique sera de processus en utilisant le Zéro ou Négatif, la sortie de l'ALU
OriginalL'auteur Jiew Meng | 2011-10-22
Vous devez vous connecter pour publier un commentaire.
Il est censé sortie 1 si A est inférieur à b, et 0 sinon. Cela implique souvent de calculer A - B, qui vous avez besoin de l'ALU.
Maintenant, si c'était juste de calculer le bit de signe de
A - B
il serait superflu, mais de considérer le cas oùA = -2147483648 = 0x80000000
etB = 1 = 0x00000001
, voici le résultat de la soustraction sera0x7fffffff = 2147483647
, qui n'a pas le bit le plus significatif, même siA < B
.Que la table est de "Patterson, David A.; Hennessy, John L.: Organisation de l'Ordinateur et du Design", je vais vous référer au chapitre 3, en particulier le paragraphe qui traite de "l'addition et la soustraction" (3.3 dans la 2ème édition, 3.2 dans le 4ème). Il dispose d'une table de traiter avec trop-plein/underflow où la coin de cas peut être regardé.
Rappelez-vous aussi que l'ALU résultat est de 32 bits, de sorte que même si le résultat était juste le bit de signe de la soustraction résultat, il aurait encore besoin d'un autre ALU code d'opération pour le signal que 31 zéros concaténé avec le résultat bits doit être retourné, plutôt que le plein résultat de la soustraction.
La ligne "Zéro", vous êtes probablement allusion, c'est - dans les architectures abordés dans le livre - IIRC utilisé uniquement pour les comparaisons par rapport à la direction de l'égalité ou de la direction n'est pas égal.
SLT/SLTI
sur la main stocke ses résultats dans un registre.Si nous parlons encore SLT/SLTI ils devraient retourner le résultat approprié, même si dépassement supérieur ou inférieur se produit (31 zéros et puis un autre 0 si !(A<B) et 1 dans le cas contraire). Aussi viens juste de voir votre commentaire sur la question: Il y a une certaine logique à gérer le gérer, c'est juste généralement placé à l'intérieur de l'ALU.
OriginalL'auteur user786653