Question

Dans les langages d'assemblage différents MUL (x86) / MULT (MIPS) se réfèrent à la multiplication. Il est une boîte noire pour le programmeur. Je suis intéressé par la façon dont en fait une CPU accomplit une multiplication indépendamment de l'architecture. Disons que j'ai deux dans mes registres et je suis le cpu valeurs 16 bits, donc je dois mettre en œuvre MUL avec les autres instructions de tripoter bits j'ai (et, ou, XOR, non, SHL, SHR, etc.). Que dois-je faire?

Était-ce utile?

La solution

http://en.wikipedia.org/wiki/Multiplication_ALU sur Wikipedia listes différentes méthodes pour faire la multiplication dans un circuit numérique.

Quand je travaillais sur un projet pour ajouter des instructions SIMD à un processeur Alpha-décembre comme dans Verilog retour au collège, nous avons implémenté un Wallace multiplicateur d'arbre , la raison principale étant, il a couru dans un nombre fixe de cycles et est facile à pipeline.

EDIT: Vous avez parlé de l'aide de l'autre bit instructions tripoter, sur la multiplication des processeurs modernes ne serait pas microcode comme celui-ci; il serait moyen de ralentir et le processeur obtiendrait abattu dans les benchmarks.

Autres conseils

Cette page montre les portes logiques pour un 4 * 4 combinatoires multiplicateur. Vous pouvez travailler à partir de là.

Voici le laboratoire de quelqu'un où ils décrivent la construction d'un multiplicateur 16 bits de 4 4 multiplicateurs de bits, chacun construit avec portes eT et pleines sommateurs. conception complète, mise en page de la puce et des formes d'onde de simulation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top