کامپيوتر معماریComputer Architecture
پانزدھم جلسهکامپيوتری محاسبات
ھمدان صنعتی دانشگاه1389پاييز
محاسباتی الگوريتمھای
کامپيوتردراعدادنمايش
2مبنایدراعدادنمايشمختلفنحوه�
signedع6مت-اندازهنمايش1. – magnitude
s’2ھا2متممنمايش2. complement
Floatingاعشارینمايش3. point
BCDنمايش4.
اصلیعمليات
جمع�تفريق�ضرب�تقسيم�
دار ع6مت ھای داده تفريق و جمع
افزاری سخت سازی پياده
مکمل تفريق و 2جمع
ضربالگوريتم
نشانع6مت-اندازهبصورتکهوقتیدارع6متاعدادضرب�:ميشودانجامزيربصورتکاغذوقلمباشندباشدهداده
Multiplicand 1000 = 8Multiplie 1001 = 9
10000000
00001000
Product 01001000 = 72n bits x n bits = 2n bit product
:ميکنيمشروعفيهمضروببيتارزشترينکماز
ميکنيمجايگزينصفربابودصفراگر،ميکنيمکپیرامضروببوديکاگر
ميدھيمشيفتچپسمتبهبيتيکمرحلهھردر
ميکنيمجمعراحاصلاعدادآخردر
ع6متحاصلضرب
باشديکسانعدددوھرع6متاگر+باشدھممخالفشوندهضرباعدادع6متاگر-
ضربالگوريتمافزاریسختاجرای
خواھدتفاوتقبلیالگوريتمبامواردزيردرافزاریسختاجرای�:داشت
جمعرامقطعیھایحاصلضربکنندهجمعيکازاستفادهباکارسادگیبرای1..مينمائيمذخيرهرجيستريکدرونموده
.ميدھيمشيفترامقطعیحاصلضربمضروبچپبهشيفتبجای2.
.نيستکردنجمعبهنيازیديگرميشودصفرمقطعیحاصلضربکهوقتی3.Aھایجيسترربرع6وهافزارسختدر� ,Bذخيرهرااعدادکه
باتدابادرکهميشوداستفادهSCتوالیشمارندهيکاز،ميکنند.ميشودپرمضروبھایبيتتعدادبابرابرمقداری
شدرفصکهوقتیويافتهکاھشيکواحدشمارندهمقدارمرحلهھردر�.يابدمیخاتمهضربعمل
دارع6متداعداضربافزارسخت
A=Product Q=Multiplier
B= Multiplicand
n-bit ALU
Shift rightt EAQn bitsn bits
As
Bs
Qs
n bits
E0
As,Bs,Qsميروندبکارع6متبيتنگھداریبرای
Q0
Sequence counter
n-1 bitsParallel Adder
As�Qs XOR BsQs � Qs XOR Bs
A �0, E�0SC � n-1
Q0 EA �A+B
Shr EAQSC �SC-1
SC
=1
=0
خاتمه
درميشودفرضبيتnمضروبھایبيتتعداددربيتn-1تعدادع6متبيتگذاشتنکناربانتيجه.شدخواھندضربھم
A,Eميشوندصفرابتدادر.
=0
=0
ضربالگوريتم
يابدمیخاتمهضربعملSCشدنرفصباداردقرارAQدرضربحاصلخاتمهدر
Bمضروب �Qفيهمضروب �
Bمضروب �Qفيهمضروب �
As�Qs XOR BsQs � Qs XOR Bs
A �0, E�0SC � n-1
Q0 EA �A+B
Shr EAQSC �SC-1
SC
=1
=0
خاتمه
Multiplicand B= 01000 = 8Multiplier Q= 0 1001 = 9
=0
=0
مثالAs=Qs=0A=0SC=4
SC A Q
4 0000 1001 � A=A+B=1000Shr EAQ
3 0100 0100Shr EAQ
2 0010 0010Shr EAQ
1 0001 0001 � A=A+B=1001Shr EAQ
0 0100 1000
2متممضرببرایBoothضربالگوريتمدادهنمايش2متممبصورتاعدادکهميشوداستفادهھنگامیضربالگوريتماين�
:استزيرقراربهالگوريتمايناصلیايده.باشندشدهموقعيت2kموقعيتازکهباشديکبيترشتهيکدارایفيهمضروباگر� 2mتا
.بااستبرابررشتهاينارزشعددیلحاظازباشد،داشتهطول 2k+1 – 2m
(001110)باينریمعادلدرمثالبرای� تا21موقعيتازھايکرشته142k+1گرفتنظردرزيربصورتميتوانرا14عدد.دارندوجود24موقعيت –
2m =24 – 21
دانستزيرعبارتمعادلميتوانرا14درMمثلعددیضرباينبربنا�Mx 24 – Mx21
ميايدبدستmراستبهشيفتبار4باقسمتاين ميايدبدستmراستبهشيفتبار1باقسمتاين
آيدمیبدستقسمتايندوتفريقباحاصلضرب
2متممضرببرایBoothضربالگوريتم
:الگوريتم�،ھمسرپشت1ھایبيتازایرشتهاز1بيناولينديدنبا–
ميشودکممقطعیحاصلضربازمضروبحاصلضرببامضروب؛1رشتهازيکپسصفراولينديدنبا–
.ميشودجمعمقطعیآنقبلیارزشکمبيتبايهفمضروبارزشکمبيتکهوقتی–
نميکندتغييرمقطعیحاصلضربباشديکسان.ميکندکارمنفیومثبتاعدادبرایالگوريتم�
Q-1 � 0A �0
SC � n
Q0 Q-1 A �A+B
AShr AQSC �SC-1
SC
=01
=00
خاتمه
A, Q-1ميشوندصفرابتدادر.
=0
=0
Boothضربالگوريتم
يابدمیخاتمهضربعملSCشدنصقرباداردقرارAQدرضربحاصلخاتمهدر
=10
A �A-B
نحوهمورددرQ-1وQ0بيتھایمشاھدهبا.ميشودگرفتهتصمصمعمل
Bمضروب �Qفيهمضروب �
Bمضروب �Qفيهمضروب �
Q-1 � 0A �0
SC � n
Q0 Q-1 A �A+B
aShr AQSC �SC-1
SC
=01
=00
خاتمه
=0
=0
مثال
=10
A �A-B
Multiplicand B= 10111 = -9Multiplier Q= 10011 = -13
Q-1 =0A=0SC=5
SC Q0Q-1 A Q5 10 00000 10011 � A=A-B=01001aShr AQ 00100 110014 11 00100 11001aShr AQ 00010 011003 01 00010 01100 � A=A+B=11001AShr EAQ 11100 101102 00 11100 10110aShr AQ 11110 010111 10 11110 01011 � A=A-B=00111aShr AQ 00011 10101
ایآرايهکنندهضرب
بصورتھمگیکرديمبررسیکهایکنندهضربمدارات�tدادهبيتھررویراضربعملقسمتیوکردهکارس.ميکردندتکرار
دروميکرواپريشنيکباراضربعمملبتواناينکهبرای�انجامبرایترکيبیمداريکازميبايستدادانجامسيکليک.نموداستفادهضربعمل
نيازگيتزيادیبسيارتعدادبهاينکاربرایuزمترکيبیمدار�.ندارداقتصادیصرقهزيادیموارددرکهدارد
بيتی2عدددوضرب
استفادهباميتوانراایآرايهکنندهربضترکيبیمدارساختار�:دادنشانبيتیدوعدددوکنندهضربمداراز
b1 b0a1 a0
a0 b1 a0b0a1b1 a1b0
c3 c2 c1 c0
راعملاينبهمربوطمدار�جمعنيمدوازاستفادهباميتوان:ساختگيتتعدادیوکنندهb0a0 b1
b0
HAC S
HAC S
C3 C2 C1 C0
a1
b1
بيتیnعدددوضرب
:ميشودانجاممشابھیشيوهبهھمبيتیnعدددوضرب�nxnتعدادکلدر.داشتخواھيمANDگيتسطحnتعداد�
.بودخواھدuزمANDگيتمقطعیحاصلضربباANDگيتازسطحھرخروجی�
.شدخواھدجمعقبلیسطح�n-1کنندهجمعnبودخواھدنيازبيتی.
تقسيمالگوريتم
ع6مت-اندازهروشبهکهصحيحباينریعدددوتقسيمعمل�انجامتفريقوشيفت،مقايسهطريقاز،باشندشدهدادهنشانميشود
=B=10001عليهمقسوم011100000001110011100-10001-010110--10001--001010---010100----10001----000110-----00110
5 bits of A<B, quotient has 5 bits6 bits of A>=Bshift right B and subtract ; enter 1 in Q7 bits of remainder >=Bshift right B and subtract ; enter 1 in Qremainder <B; enter 0 in Q; shift right BRemainder >=Bshift right B and subtract ; enter 1 in Qremainder <B; enter 0 in Q;final remainder
Q=11010A= مقسوم
تقسيمالگوريتمافزاریسختاجرای
ترراحتتقسيمالگوريتمافزاریسختاجرایھنگامدر�باقيماندهيامقسومعليهمقسومشيفتبجایازاگربودخواھد.ميشوددادهشيفتچپسمتبهمقطعی
باھادادهاندازهوشدهانجام2متتممعجطريقازتفريقعمل�ميشودمقايسهنقلیرقمازاستفاده
.استضربمدارافزارسختمشابهuزمافزارسخت�
دارع6متداعداتقسيمافزارسخت
A=remainder Q=quotient
B= Divisor
n-bit ALU
Shift left EAQn bitsn bits
As
Bs
Qs
n bits
E 0
As,Bs,Qsميروندبکارع6متبيتنگھداریبرای
Q0
Sequence counter
n-1 bitsSubtract
ميگيردقرارEدراندازهبهمربوطاط6عات E=0 A<BE=1 A>=B
Divide Overflow
عملافزاریسختانجامھنگامدرسرريزوقوعتشخيص�اعدادنگھداریظرفيتھارجيسترزيرااستمھمبسيارتقسيم
ندارندراخودگنجايشازبزرگترباuيینيمهھایبيت:کهافتدمیاتفاقوقتیتقسيمعملسرريز�
.باشدعليهمقسوممساویيابزرگترعددیمقسومدادهتشخيصنيزصفربرتقسيمعملوقوعبايدآنبرع6وه�
.شودوشدهستDVFمثلف6پیفليپافتدمیاتفاقسرريزوقتی�
ميسازدمتوجهراکاربرخطاپيغامارسالباکامپيوتر
Qs � Qs XOR BsSC � n-1
EA �A+BDVF�0
Shl EAQ
=0
خاتمهافتادهاتفاقسرريز
=0
تقسيمالگوريتم
EA �A+BDVF�1
EA �A-B A �A-B
E
EA �A+B Q0 �1
SC �SC-1
SC
E
خاتمهAدرباقيماندهوQدرقسمتخارج
EA �A-B
E
Bعليهمقسوم �Aمقسوم Q �
A<BA>=B =1
=1
=1
=0
=0 A<B A>=B
=0
اعشاریمحاسبات
:ميشوددادهنمايشزيربصورتاعشاریعدديک�
M x re
:ميشودهدادنشانزيربصورت537.25عددمثال�.53725 x 10 3
راپايهواعشارینقطهموقعيتميتوانکامپيوتردرذخيرهبرای.نموداکتفاeوMذخيرهبهوکردهفرضثابت
Mantissaيااعشارradixياپايه
exponentياتوان
اعشارینمايش
ترينارزشباآندرکهاستعددینرماليزهاعشاریعدد�.باشدصفرغيرMantissaمقدار
باقرارونبودهکردننرماليزهقابلصفرعددروشايندر�.ميشودساختهتوانواعشاریجزءمقداربازا0دادن
ایآرايهکنندهضرب
سtبصورتھمگیکرديمبررسیکهایکنندهضربمدارات�.کردندمیتکراردادهبيتھررویراضربعملوکردهکار
عمليکباراضربعملبتواناينکهبرای� سيکليکدروريزضربعملانجامبرایترکيبیمداريکازبايستمیدادانجام
.نموداستفاده
داردنيازگيتزيادیبسيارتعدادبهاينکاربرایuزمترکيبیمدار�.ندارداقتصادیهفصرزيادیموارددرکه
بيتی2عدددوضرب
استفادهباميتوانراایآرايهکنندهربضترکيبیمدارساختار�:دادنشانبيتیدوعدددوکنندهضربمداراز
b1 b0a1 a0
a0 b1 a0b0a1b1 a1b0
c3 c2 c1 c0
راعملاينبهمربوطمدار�جمعنيمدوازاستفادهباميتوان:ساختگيتتعدادیوکنندهb0a0 b1
b0
HAC S
HAC S
C3 C2 C1 C0
a1
b1
بيتیnعدددوضرب
:ميشودانجاممشابھیشيوهبهھمبيتیnعدددوضرب
nxnتعدادکلدر.داشتخواھيمANDگيتسطحnتعداد�.بودخواھدuزمANDگيت
مقطعیحاصلضربباANDگيتازسطحھرخروجی�.شدخواھدجمعقبلیسطح
�n-1کنندهجمعnبودخواھدنيازبيتی.
تقسيمالگوريتم
ع6مت-اندازهروشبهکهصحيحباينریعدددوتقسيمعمل�انجامتفريقوشيفت،مقايسهطريقاز،باشندشدهدادهنشانميشود
=B=10001عليهمقسوم011100000001110011100-10001-010110--10001--001010---010100----10001----000110-----00110
5 bits of A<B, quotient has 5 bits6 bits of A>=Bshift right B and subtract ; enter 1 in Q7 bits of remainder >=Bshift right B and subtract ; enter 1 in Qremainder <B; enter 0 in Q; shift right BRemainder >=Bshift right B and subtract ; enter 1 in Qremainder <B; enter 0 in Q;final remainder
Q=11010A= مقسوم
تقسيمالگوريتمافزاریسختاجرای
ترراحتتقسيمالگوريتمافزاریسختاجرایھنگامدر�باقيماندهيامقسومعليهمقسومشيفتبجایاگربودخواھد.ميشوددادهشيفتچپسمتبهمقطعی
باھادادهاندازهوشدهانجام2متتممعجطريقازتفريقعمل�ميشودمقايسهنقلیرقمازاستفاده
.استضربمدارافزارسختمشابهuزمافزارسخت�
دارع6متداعداتقسيمافزارسخت
A=remainder Q=quotient
B= Divisor
n-bit ALU
Shift left EAQn bitsn bits
As
Bs
Qs
n bits
E 0
As,Bs,Qsميروندبکارع6متبيتنگھداریبرای
Q0
Sequence counter
n-1 bitsSubtract
ميگيردقرارEدراندازهبهمربوطاط6عات E=0 A<BE=1 A>=B
Divide Overflow
عملافزاریسختانجامھنگامدرسرريزوقوعتشخيص�اعدادنگھداریظرفيتھارجيسترزيرااستمھمبسيارتقسيم
ندارندراخودگنجايشازبزرگترباuيینيمهھایبيت:کهافتدمیاتفاقوقتیتقسيمعملسرريز�
.باشدعليهمقسوممساویيابزرگترعددیمقسومدادهتشخيصنيزصفربرتقسيمعملوقوعبايدآنبرع6وه�
.شودوشدهستDVFمثلف6پیفليپافتدمیاتفاقسرريزوقتی�
ميسازدمتوجهراکاربرخطاپيغامارسالباکامپيوتر
Qs � Qs XOR BsSC � n-1
EA �A+BDVF�0
Shl EAQ
=0
خاتمهافتادهاتفاقسرريز
=0
تقسيمالگوريتم
EA �A+BDVF�1
EA �A-B A �A-B
E
EA �A+B Q0 �1
SC �SC-1
SC
E
خاتمهAدرباقيماندهوQدرقسمتخارج
EA �A-B
E
Bعليهمقسوم �Aمقسوم Q �
A<BA>=B =1
=1
=1
=0
=0 A<B A>=B
=0
اعشاریمحاسبات
:ميشوددادهنمايشزيربصورتاعشاریعدديک�
M x re
:ميشودهدادنشانزيربصورت537.25عددمثال�.53725 x 10 3
راپايهواعشارینقطهموقعيتميتوانکامپيوتردرذخيرهبرای.نموداکتفاeوMذخيرهبهوکردهفرضثابت
Mantissaيااعشار
radixياپايه
exponentياتوان
اعشارینمايش
ترينارزشباآندرکهاستعددینرماليزهاعشاریعدد�.باشدصفرغيرMantissaمقدار
باقرارونبودهکردننرماليزهقابلصفرعددروشايندر�.ميشودساختهتوانواعشاریجزءمقداربازا0دادن
45
شناور مميز وتفريق جمع
46
شناور مميز وتفريق جمع
47
شناور مميز ضرب
48
شناور مميز تقسيم