كيف وحدات المعالجة المركزية بتنفيذ تعليمات مثل MUL / MULT؟

StackOverflow https://stackoverflow.com/questions/692083

سؤال

في لغة تجميع مختلف MUL (x86) و / MULT (MIPS) تشير إلى الضرب. هو الصندوق الاسود للمبرمج. أنا مهتم في كيفية فعلا ينجز وحدة المعالجة المركزية الضرب بغض النظر عن الهندسة المعمارية. دعونا نقول لدي قيمتين 16 بت في سجلات بلدي، وأنا وحدة المعالجة المركزية، وذلك لدي لتنفيذ MUL باستخدام تعليمات تافه قليلا أخرى لدي (و، أو، XOR، لا، SHL، SHR، الخ). ماذا يجب أن أفعل؟

هل كانت مفيدة؟

المحلول

http://en.wikipedia.org/wiki/Multiplication_ALU على ويكيبيديا تسرد أساليب مختلفة للقيام الضرب في الدوائر الرقمية.

وعندما كنت أعمل في مشروع لإضافة تعليمات SIMD إلى معالج ديسمبر ألفا تشبه في فيريلوج في الكلية، نفذنا <لأ href = "http://en.wikipedia.org/wiki/Wallace_tree" يختلط = "noreferrer"> والاس شجرة مضاعف ، والسبب الأساسي هو أنه ركض في عدد محدد من الدورات وكان من السهل أن خط الانابيب.

تحرير: لقد ذكرت باستخدام بعض الشيء الآخر تافه تعليمات، على المعالجات الحديثة لن microcoded الضرب مثل هذا؛ انها تريد ان تكون وسيلة لإبطاء وسيكون المعالج الحصول على ذبح في المعايير.

نصائح أخرى

هذه الصفحة يدل على البوابات المنطقية لmultipler 4 * 4 التوافقية. يمكنك العمل من هناك.

هنا هو شخص ما مختبر حيث يصف بناء مضاعف 16 بت من 4 4 مضاعفات بعض الشيء، كل بني مع والبوابات والحيات الكاملة. تصميم كامل، تخطيط الشريحة، والمحاكاة الطول الموجي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top