وبینار رایگان برنامه ریزی و حفظ تمرکز در شرایط فعلی یکشنبه ساعت ١٩
اطلاعات وبینار
کنکور کامپیوتر

نمونه سوالات معماری کامپیوتر با پاسخ تشریحی - مثال های معماری کامپیوتر

در این صفحه نمونه سوالات معماری کامپیوتر با پاسخ تشریحی برای شما عزیزان قرار داده شده است، سعی شده مثال های معماری کامپیوتر تمامی مباحث منطقی را در بر گیرد.

در این صفحه نمونه سوالات معماری کامپیوتر با پاسخ تشریحی برای شما عزیزان قرار داده شده است، سعی شده مثال های معماری کامپیوتر تمامی مباحث منطقی را در بر گیرد. در صورتی که علاقه دارید تا بیشتر با درس معماری کامپیوتر آشنا شوید و فیلم های رایگان معماری کامپیوتر را مشاهده کنید به صفحه معرفی و بررسی معماری کامپیوتر آموزش جامع معماری کامپیوترآموزش جامع معماری کامپیوتر در مهندسی کامپیوتر، معماری کامپیوتر مجموعه‌ای از قوانین و روش‌هایی است که به چگونگی طراحی، کارکرد، سازماندهی و پیاده سازی (ساخت) سیستم‌های کامپیوتری می‌پردازد، در این صفحه به بررسی و آموزش کامل معماری کامپیوتر پرداخته شده است مراجعه کنید.

نمونه سوالات محاسبات درس معماری کامپیوتر

دشوار اگر برای ساخت جمع کننده‌­های BCD یک رقمی از جمع کننده­‌های باینری ۴ بیتی استفاده شده باشد و جمع کننده‌­های باینری بصورت CRA ساخته شده باشند. آنگاه تاخیر یک جمع کننده BCD دو رقمی در بهترین حالت کدام است؟

(فرض کنید فقط گیت­‌های ۲ ورودی در اختیار داریم و تاخیر هر یک ${\mathrm{5}}^{ns}$ باشد.)محاسبات

1 $\mathrm{120}\mathrm{ns}$
2 $\mathrm{130}\mathrm{ns}$
3$\mathrm{135}\mathrm{ns}$
4 $\mathrm{140}\mathrm{ns}$

مدار جمع کننده BCD یک رقمی بصورت مقابل است.

29

با توجه به آنچه که در نکته و تست معماری استاد رضوی که در تست شماره 14 فصل محاسبات گفته شده است، نکته زیر را می‌دانیم:

نکته: در صورتی که مجاز به استفاده از گیت‌های دو ورودی و بیشتر باشیم تاخیر کری BCD Adder اول $\mathrm{10}\mathrm{t}$ و تاخیر Sumاش $\mathrm{16}\mathrm{t}$ است، اما از BCD دوم تا آخر تاخیر کری $\mathrm{9}\mathrm{t}$ و تاخیر Sumها $\mathrm{15}\mathrm{t}$ است. حال در صورتی که مجاز به استفاده از گیت‌های دو ورودی نباشیم تاخیر کری BCD Adder اول $\mathrm{11}\mathrm{t}$ و تاخیر Sumاش $\mathrm{17}\mathrm{t}$ است، اما از BCD دوم تا آخر تاخیر کری $\mathrm{10}\mathrm{t}$ و تاخیر Sumها $\mathrm{16}\mathrm{t}$  است.

تاخیر جمع کننده­‌های باینری ۴ بیتی بصورت CRA برابر تاخیر (۴ تا FA) می­‌باشد، یعنی $(8tg)$

از آنجا که در مسیر کری، گیت or سه ورودی داریم و با توجه به اینکه در صورت سوال گفته شده است که فقط از گیت­‌های ۲ ورودی می‌توانیم استفاده کنیم، لذا باید به دو تا گیت or دو ورودی تغییر یابد.

تاخیر کری در این جمع کننده یک رقمی BCD، $\mathrm{11}tg$ است.

تاخیر sum در این جمع کننده یک رقمی BCD، $\mathrm{11}tg$ است.

جمع کننده رقم دوم BCD می­‌تواند به محض آماده شدن carry کارش را شروع کند لذا

$\mathrm{11}tg+\mathrm{16}tg=\mathrm{27}tg$

$\mathrm{27}\mathrm{\times }\mathrm{5}\mathrm{ns}\mathrm{=135}\mathrm{ns}$

آسان مدار زیر یک جمع‌کننده با 1+n بیت می‌باشد. برای تولید overflow برای جمع‌هایcomplement  2'S چندتا از عبارات زیر درست است؟ محاسبات

1

الف) $v = {a_n}.{b_n}.{\overline c _n} + {\overline a _n}.{\overline b _n}.{c_n}$

ب) $v = {c_n}\, \oplus \,{s_n}$

ج) $v = {a_n}.{b_n}.{s_n} + {\overline a _n}.{\overline b _n}.{\overline s _n}$

د) $v = {c_n}\, \oplus \,{c_{n + 1}}$

1 1
2 2
33
4 4

ما می دانیم روش های تشخیص Overflow در جمع مکمل 2

$\left\{ \begin{array}{c} \textrm{1}\ V=\overline{a_{n-1}}\overline{b_{n-1}}\genfrac{}{}{0pt}{}{\oplus }{+}a_{n-1}b_{n-1}\overline{S_{n-1}} \\ \textrm{2}\ V=\overline{a_{n-1}}\overline{b_{n-1}}C_{n-1}\genfrac{}{}{0pt}{}{\oplus }{+}a_{n-1}b_{n-1}\overline{C_{n-1}} \\ \textrm{3}\ V=C_n\oplus C_{n-1} \end{array}\right.$

$\Leftarrow$ هر دو عبارت الف و د صحیح است و گزینه 2 صحیح است.

دشوار در یک سیستم اعداد ممیز شناور 16 بیتی هستند. مقدار عددی یک عدد ممیز شناور با نمایش بیتی ${b_{~~~15}}...{b_1}{b_0}$ برابر است با:  محاسبات

$\eqalign{   & ({b_{15}} - {1 \over 4}) \times M \times {2^s}  \cr    & S = \sum\limits_{i = 10}^{14} {{b_i}{{( - 2)}^{i - 10}}\,,\,M = } \sum\limits_{i = 0}^9 {{b_i}{{( - {1 \over 2})}^{10 - i}}}  \cr} $

کوچک‌ترین و بزرگ‌ترین عدد قابل نمایش در این سیستم به ترتیب برابرند با: 

1$({2^{18}} + {2^{16}} + {2^{14}} + {2^{12}} + {2^{10}}),\, - ({2^{17}} + {2^{15}} + {2^{13}} + {2^{11}})$
2$({2^{18}} + {2^{16}} + {2^{14}} + {2^{12}} + {2^{10}}),\, - 3({2^{18}} + {2^{16}} + {2^{14}} + {2^{12}} + {2^{10}})$
3 $3({2^{17}} + {2^{15}} + {2^{13}} + {2^{11}}),\, - ({2^{17}} + {2^{15}} + {2^{13}} + {2^{11}})$
4 $3({2^{17}} + {2^{15}} + {2^{13}} + {2^{11}}),\, - 3({2^{18}} + {2^{16}} + {2^{14}} + {2^{12}} + {2^{10}})$

$\sum^{\mathrm{9}}_{\mathrm{i=0}}{{\mathrm{b}}_i{\mathrm{(-}\frac{\mathrm{1}}{\mathrm{2}}\mathrm{)}}^{\mathrm{10-i}}\mathrm{=}{\mathrm{b}}_0{\mathrm{2}}^{\mathrm{-}\mathrm{10}}\mathrm{-}}{\mathrm{b}}_{\mathrm{1}}{\mathrm{2}}^{\mathrm{-}\mathrm{9}}\mathrm{+}{\mathrm{b}}_{\mathrm{2}}{\mathrm{2}}^{\mathrm{-}\mathrm{8}}\mathrm{-}{\mathrm{b}}_{\mathrm{3}}{\mathrm{2}}^{\mathrm{-}\mathrm{7}}\mathrm{+......-}{\mathrm{b}}_{\mathrm{9}}{\mathrm{2}}^{\mathrm{-}\mathrm{1}}$

Mبزرگترین مقدار مثبت ${\mathrm{M}}_{\mathrm{+}}\mathrm{=}{\mathrm{2}}^{\mathrm{-}\mathrm{10}}\mathrm{+}{\mathrm{2}}^{\mathrm{-}\mathrm{8}}\mathrm{+}{\mathrm{2}}^{\mathrm{-}\mathrm{6}}\mathrm{+.....+}{\mathrm{2}}^{\mathrm{-}\mathrm{2}}$

Mبزرگترین مقدار منفی ${\mathrm{M}}_{\mathrm{-}}\mathrm{=}{\mathrm{2}}^{\mathrm{-}\mathrm{9}}\mathrm{-}{\mathrm{2}}^{\mathrm{-}\mathrm{7}}\mathrm{-}{\mathrm{2}}^{\mathrm{-}\mathrm{5}}\mathrm{-}\mathrm{.....-}{\mathrm{2}}^{\mathrm{-}\mathrm{1}}$ $S=\sum^{14}_{i=10}{b_i{(-2)}^{i-10}=b_{10}{(-2)}^0+b_{11}{(-2)}^1+b_{12}{(-2)}^2+...+b_{14}{(-2)}^4}$  sبزرگترین مقدار مثبت $= S_+=2^0+2^2+2^4=1+4+16=21$

ما کوچکترین عدد منفی و بزرگترین مثبت را می خواهیم پس با حالت بندی روی $b_{15}$ و $M_+$ و $M_-$ کران ها را در می آوریم.

$\Leftarrow$ گزینه 4 صحیح است.

2

آسان اگر تأخیر گیت 2ns باشد و از بلوک‌های جمع‌کننده دهدهی D.A (طبق شکل) استفاده کنیم، تأخیر جمع دو عدد دهدهی 10 رقمی چقدر خواهد شد؟  محاسبات

3

1212 ns
2216 ns
3320 ns
4 360 ns

می دانیم مدار کشیده طبق صورت سوال همان BCD-Adder است و برای این مدار همچنین بلد هستیم که تاخیر n رقم دهدهی که توسط این مدار جمع آنها محاسبه می شود برابر $10*(n-1)t+16t$

$\left\{ \begin{array}{c} n=10 \\ \mathrm{t=}t_{gate}=2ns \end{array} \right.$ مجموع تاخیر و $=10*9*2+16*2=212ns$

$\Leftarrow $ گزینه 1 صحیح است.

آسان جدول درستی کارکرد یک واحد حسابی منطقی (ALU) و شکل یکی از پیمانه‌های شکل‌دهنده آن آمده است. مشخص کنید (v,w,x,y) چیست؟ $B = {b_{n - 1}}\,...{b_1}{b_ \circ }\,\,,\,A\, = \,{a_{n - 1}}\,...{a_1}{a_ \circ }$ محاسبات
4
F ${C_{in}}$ ${S_ \circ }$ ${s_ 1 }$
A 0 0 0
A+1 1 0 0
′A+B 0 1 0
A-B 1 1 0
A+B 0 0 1
A+B+1 1 0 1
A-1 0 1 1
A 1 1 1
1 $( \circ \,,\,{b_i}\,,\,{b'_i}\,,\, \circ )$
2 $( \circ \,,\,{b'_i}\,,\,{b_i}\,,\,1)$
3$(1\,,\,{b'_i}\,,\,{b_i}\,,\, \circ )$
4 $(1\,,\,\,{b_i}\,,{b'_i}\,,\, \circ )$

 در حالتی که $C_{in} , S_1 , S_0$ هر 3 برابر 0 هستند خروجی تابع F برابر A هست $\Leftarrow$

خروجی mux باید برابر صفر باشد و چون در حالت $00=S_1\ S_0$ خط ورودی V انتخاب می شود در نتیجه $V=0$ باید باشد. 

در حالتی که $S_1 , S_0 =01$ و $C_{in}=1$ است خروجی F برابر A-B است که برابر $A+\overline{B}+1$ است در نتیجه خروجی mux باید $\overline{B}$ باشد و چون $S_1 , S_0=01$ است، خط ورودی w انتخاب می شود در نتیجه $w= \overline{b_i}$ باشد.

$\Leftarrow$ با بررسی همین در حالت گزینه های 1و3و4 رد می شود و گزینه 2 پاسخ خواهد بود.

آسان در یک سیستم ممیز شناور، اعداد بصورت زیر ذخیره می­‌شوند، محدوده­‌ی دقت این اعداد است؟ (فرض کنید فرمت مانتیس بصورت $\mathrm{\emptyset }.F$ است.) محاسبات
11 4 1
1محدوده بین ${\mathrm{2}}^{\mathrm{-18}},({\mathrm{2}}^{\mathrm{7}}\mathrm{-}{\mathrm{2}}^{\mathrm{-4}})$
2 محدوده بین ${\mathrm{2}}^{\mathrm{-18\ }}{\mathrm{,\ }\mathrm{2}}^{\mathrm{-4}}$
3 محدوده بین ${\mathrm{2}}^{\mathrm{-27\ }}{\mathrm{,\ }\mathrm{2}}^{\mathrm{4}}$
4 محدوده بین ${\mathrm{2}}^{\mathrm{-19\ }}{\mathrm{,\ }\mathrm{2}}^{\mathrm{-4}}$

وقتی اعداد کوچک هستند، فاصله بین آن‌ها کم است و وقتی اعداد بزرگ باشند فاصله بین هر دو عدد نیز بزرگ است. لذا فاصله بین (کوچک‌ترین دو عدد مثبت) و فاصله بین (بزرگ‌ترین دو عدد مثبت) را محاسبه می­‌کنیم. 

لذا محدوده‌­ی تغییرات دقت بدست می­‌آید:

$\left\{ \begin{array}{c} \emptyset .\circ \circ \circ \circ \circ \circ \circ \circ \circ \circ \mathrm{1}\times {\mathrm{2}}^{-\mathrm{8}}={\mathrm{2}}^{-\mathrm{11}}\times {\mathrm{2}}^{-\mathrm{8}}={\mathrm{2}}^{-\mathrm{19}} \\  \emptyset .\circ \circ \circ \circ \circ \circ \circ \circ \circ \mathrm{1}\circ \times {\mathrm{2}}^{-\mathrm{8}}={\mathrm{2}}^{-\mathrm{10}}\times {\mathrm{2}}^{-\mathrm{8}}={\mathrm{2}}^{-\mathrm{18}} \end{array} {{\stackrel{\ \ \ \ \ -\ \ \ \ \ \ }{\longrightarrow}}}{\mathrm{2}}^{-\mathrm{19}}\text{اختلاف}\mathrm{\ }\text{این}\mathrm{\ }\text{دو}\right.$دو عدد مثبت کوچک متوالی

$\left\{ \begin{array}{c} \emptyset .\mathrm{11111111111}\times {\mathrm{2}}^{\mathrm{7}} \\  \emptyset .\mathrm{111111111}\circ \mathrm{1}\times {\mathrm{2}}^{\mathrm{7}} \end{array} {{\stackrel{\ \ \ \ \ -\ \ \ \ \ \ }{\longrightarrow}}}{\mathrm{2}}^{-\mathrm{4}}\text{اختلاف}\mathrm{\ }\text{این}\mathrm{\ }\text{دو}\right.$دو عدد مثبت بزرگ متوالی

آسان در تقسیم یک عدد 2n بیتی (مقسوم) بر یک عدد n بیتی (مقسوم‌علیه)، کدام گزینه در رابطه با وقوع سرریز در عملیات تقسیم کاملاً صحیح است؟  محاسبات
1 سرریز وقتی رخ می‌­دهد که مقسوم کوچکتر از مقسوم علیه باشد.
2سرریز وقتی رخ می­‌دهد که مقسوم بزرگتر از مقسوم علیه باشد.
3سرریز وقتی رخ می‌­دهد که بیت‌­های نیمه‌­ی­ پر ارزش مقسوم عددی بزرگتر یا مساوی مقسوم­‌علیه باشد.
4 سرریز وقتی رخ می­‌دهد که بیت­‌های نیمه پر ارزش مقسوم عددی کوچکتر از مقسوم­‌علیه باشد.

$\underbrace{a_{\mathrm{2}n-\mathrm{1}}a_{\mathrm{2}n-\mathrm{c}}}_{\text{بیت}\mathrm{\ }\text{بالا}\mathrm{\ }n}......a_{\mathrm{2}}a_{\mathrm{1}}a_{\mathrm{\circ }}|\underline{b_{n-\mathrm{1}}b_{n-\mathrm{c}}....b_{\mathrm{1}}b_{\mathrm{\circ }}}$

اگر n بیت بالای مقسوم عددی بزرگتر یا مساوی مقسوم‌­عليه باشد سرریز رخ می­‌دهد.

دشوار مدار روبه­‌رو یک واحد Bit-Slice از مدار Carry-save Adder ترتیبی می‌­باشد. اگر 15 واحد از این مدار را بصورت آبشاری به یکدیگر متصل کنیم و برای جمع اعداد 8 بیتی استفاده کنیم. کدام گزینه در مورد عملکرد این مدار صحیح است؟ محاسبات

5

1 این مدار می­‌تواند حاصل جمع 8 عدد ورودی را در 15 کلاک حساب کند.
2 این مدار می­‌تواند حاصل جمع 18 عدد ورودی را در 25 کلاک حساب کند.
3 این مدار می‌­تواند حاصل جمع 78 عدد ورودی را در 85 کلاک حساب کند.
4این مدار می­‌تواند حاصل جمع 257 عدد ورودی را در 265 کلاک حساب کند.

با خروجی 15 بیتی می‌­توان حاصل جمع 257 عدد 8 بیتی را محاسبه کرد که با توجه به اینکه مدار Carry-Save Adder ترتیبی مانند خط لوله عمل می‌­کند، این محاسبه در زمان 265 = 1 - 8 + 258 کلاک صورت می‌­گیرد.

نمونه سوالات RTL درس معماری کامپیوتر

آسان در شکل داده شده جهت انجام عملیات $R_{1} \leftarrow R_{4} +R_{3} \, ,\, R_{1} \leftarrow R_{1} +R_{2} $ به ترتیب چند پالس ساعت لازم است؟  RTL

6

12، 3
2 3، 3
34، 3
4 3، 4

1 - مراحل اجرای دستور $R_1\longleftarrow R_1\ +\ R_2$:

$1)~A\longleftarrow R_1$
$2)~B\longleftarrow\ R_2$
$3)~R_1\longleftarrow A\ +\ B$

2 – مراحل اجرای دستور $R_1\longleftarrow R_1\ +\ R_2$:

$1)~A\longleftarrow R_3$
$2)~B\longleftarrow\ R_4$
$3)~R_1\longleftarrow A\ +\ B$

همان‌طور که مشاهده کردیم، هر یک از دستورات بالا در 3 پالس ساعت انجام می‌شوند.

آسان اگر تعداد این سلول‌ها دوبرابر شود در تاخیر ماکزیمم چه اثری می‌گذارد؟ RTL

7

11/5 برابر می‌شود
2 دو برابر می‌شود
3سه برابر می‌شود
4تفاوتی نمی‌کند

8

به منظور درک بهتر، آنچه را که سوال گفته است در شکل بالا رسم کردیم (جلوتر می‌گوییم که لزومی ندارد شکل آن را دقیقا رسم کنید!) در شکل بالا مسیرهای بحرانی از ورودی تا خروجی با توجه به تاخیر گیت‌ها مشخص شده‌اند. (چون در صورت سوال اشاره به تاخیر گیت نشده، آن را برابر $t$ در نظر می‌گیریم) مشخص است که هر تعداد سلول اگر کنار هم باشند، خروجی طبقه اول مدار پس از $2t$ آماده می‌شود. همچنین چون ورودی‌های گیت $OR$ در هر سلول، فارغ از طبقات قبل پس از $2t$ آماده می‌شوند در نتیجه پس از تاخیر $3t$ (تاخیر گیت $OR$) خروجی گیت‌ $OR$ کلیه سلول‌ها نیز آماده می‌شود. پس از زمان $3t$ همه ورودی‌های $FA$ هر سلول فارغ از وابستگی به کلیه‌ی طبقات قبل، آماده می‌شود. در نهایت چون ورودی گیت‌های $OR$ طبقه آخر هر سلول پس از $5t$ آماده شده، خروجی هر سلول پس از $6t$ آماده است. در نتیجه اضافه کردن هر تعداد سلول در تاخیر مسیر بحرانی تاثیری ایجاد نمی‌کند.

متوسط اگر عمل‌کرد مدار زیر را به زبان RTL توصیف نماییم، کدام گزینه صحیح است؟ RTL

9

1
$T_{\mathrm{\circ }}\mathrm{:}if\left(R_{\mathrm{1}}\mathrm{=}R_{\mathrm{2}}\right)then\mathrm{\ }R_{\mathrm{3}}\mathrm{\leftarrow }R_{\mathrm{3}}\mathrm{-}R_{\mathrm{2}}\mathrm{-}\mathrm{1}$           $else\mathrm{\ }R_{\mathrm{3}}\mathrm{\leftarrow }R_{\mathrm{2}}\mathrm{-}R_{\mathrm{1}}$ $T_{\mathrm{1}}\mathrm{:}if\left(R\mathrm{1}\mathrm{\neq }R\mathrm{2}\right)then\mathrm{\ }R_{\mathrm{1}}\mathrm{\leftarrow }R_{\mathrm{2}}\mathrm{-}R_{\mathrm{1}}$ $\mathrm{\ \ \ }elseR_{\mathrm{1}}\mathrm{\leftarrow }R_{\mathrm{3}}$  $T_{\mathrm{2}}{\mathrm{\vee }T}_{\mathrm{3}}\mathrm{:}\mathrm{\emptyset }$
2
$T_{\mathrm{\circ }}\mathrm{:}if\left(R_{\mathrm{1}}\mathrm{=}R_{\mathrm{2}}\right)then\mathrm{\ }R_{\mathrm{3}}\mathrm{\leftarrow }R_{\mathrm{2}}\mathrm{-}R_{\mathrm{1}}$ $else\mathrm{\ }R_{\mathrm{3}}\mathrm{\leftarrow }R_{\mathrm{3}}\mathrm{-}R_{\mathrm{2}}\mathrm{-}\mathrm{1}$ $T_{\mathrm{1}}\mathrm{:}if\left(R\mathrm{1}\mathrm{\neq }R\mathrm{2}\right)then\mathrm{\ }R_{\mathrm{1}}\mathrm{\leftarrow }R_{\mathrm{2}}\mathrm{-}R_{\mathrm{1}}$ $elseR_{\mathrm{1}}\mathrm{\leftarrow }R_{\mathrm{3}}$ $T_{\mathrm{2}}{\mathrm{\vee }T}_{\mathrm{3}}\mathrm{:}R_{\mathrm{2}}\mathrm{\leftarrow }\mathrm{\circ }$
3
$T_{\mathrm{\circ }}\mathrm{:}if\left(R_{\mathrm{1}}\mathrm{\neq }R_{\mathrm{2}}\right)then\mathrm{\ }R_{\mathrm{3}}\mathrm{\leftarrow }\mathrm{\ }R_{\mathrm{3}}\mathrm{-}R_{\mathrm{2}}$ $else\mathrm{\ }R_{\mathrm{3}}\mathrm{\leftarrow }R_{\mathrm{2}}\mathrm{-}R_{\mathrm{1}}$ $T_{\mathrm{1}}\mathrm{:}if\left(R\mathrm{1}\mathrm{=}R\mathrm{2}\right)then\mathrm{\ }R_{\mathrm{1}}\mathrm{\leftarrow }R_{\mathrm{2}}\mathrm{-}R_{\mathrm{1}}\mathrm{-}\mathrm{1}$ $elseR_{\mathrm{1}}\mathrm{\leftarrow }R_{\mathrm{3}}$ $T_{\mathrm{2}}{\mathrm{\vee }T}_{\mathrm{3}}\mathrm{:}\mathrm{\emptyset }$
4
$T_{\mathrm{\circ }}\mathrm{:}if\left(R_{\mathrm{1}}\mathrm{=}R_{\mathrm{2}}\right)then\mathrm{\ }R_{\mathrm{3}}\mathrm{\leftarrow }R_{\mathrm{3}}\mathrm{-}R_{\mathrm{2}}\mathrm{-}\mathrm{1}$ $\mathrm{\ \ \ }else\mathrm{\ }R_{\mathrm{3}}\mathrm{\leftarrow }R_{\mathrm{2}}\mathrm{-}R_{\mathrm{1}}$ $T_{\mathrm{1}}\mathrm{:}if\left(R\mathrm{1}\mathrm{\neq }R\mathrm{2}\right)then\mathrm{\ }R_{\mathrm{1}}\mathrm{\leftarrow }R_{\mathrm{2}}\mathrm{-}R_{\mathrm{1}}$ $elseR_{\mathrm{1}}\mathrm{\leftarrow }R_{\mathrm{3}}$ $T_{\mathrm{2}}{\mathrm{\vee }T}_{\mathrm{3}}\mathrm{:}R_{\mathrm{2}}\mathrm{\leftarrow }\mathrm{\circ }$

با توجه به این که سیگنال­‌های کنترلی انتخاب مالتی‌­پلکسرها  رقم نفلی جمع‌کننده با مساوی نبودن محتوای ثبات­‌های $R_{\mathrm{1}}$ و $R_{\mathrm{2}}$ برابر یک می‌­شود، خواهیم داشت:

$T_{\mathrm{\circ }}\mathrm{:}if\left(R_{\mathrm{1}}\mathrm{=}R_{\mathrm{2}}\right)then\mathrm{\ }R_{\mathrm{3}}\mathrm{\leftarrow }{\overline{R}}_{\mathrm{2}}\mathrm{-}R_{\mathrm{3}}\mathrm{=}R_{\mathrm{3}}\mathrm{-}R_{\mathrm{2}}\mathrm{-}\mathrm{1}$

${else\mathrm{\ }R}_{\mathrm{3}}\mathrm{\leftarrow }{\overline{R}}_{\mathrm{1}}\mathrm{+}R_{\mathrm{2}}\mathrm{+}\mathrm{1}\mathrm{=}R_{\mathrm{2}}\mathrm{-}R_{\mathrm{1}}$

$T_{\mathrm{1}}\mathrm{:}if\left(R\mathrm{1}\mathrm{\neq }R\mathrm{2}\right)then\mathrm{\ }R_{\mathrm{1}}\mathrm{\leftarrow }{\overline{R}}_{\mathrm{1}}\mathrm{+}R_{\mathrm{2}}\mathrm{+}\mathrm{1}\mathrm{=}R_{\mathrm{2}}\mathrm{-}R_{\mathrm{1}}$

${else\mathrm{\ }R_{\mathrm{1}}\mathrm{\leftarrow }R}_{\mathrm{3}}$

$T_{\mathrm{2}}{\mathrm{\vee }T}_{\mathrm{3}}\mathrm{:}\mathrm{\emptyset }$

آسان کدام مجموعه از زیر دستورات زیر، پیاده‌­سازی سخت­‌افزاری تابع $(x=x~mod~y)$ را در سطح RTL نشان می­‌دهد؟ RTL
1 $idle:idle\leftarrow \circ _{} ,_{} enable\leftarrow \circ _{} ,_{} A\leftarrow 1_{} ,_{} B\leftarrow \circ$
$A:A\leftarrow \circ _{} ,_{} if(x>y)then(enable\leftarrow 1)elseB\leftarrow 1$
$B:x\leftarrow x-y_{} ,_{} A\leftarrow 1_{} ,_{} B\leftarrow \circ $
2 $idle:idle\leftarrow \circ _{} ,_{} enable\leftarrow \circ _{} ,_{} A\leftarrow 1_{} ,_{} B\leftarrow \circ $
$A\mathrm{:}A\leftarrow \circ \ \mathrm{,\ \ }if\mathrm{(}x \lt y\mathrm{)}then\mathrm{(}enable\leftarrow \mathrm{1)}elseB\leftarrow \mathrm{1}$     $B:x\leftarrow x-y_{} ,_{} A\leftarrow 1_{} ,_{} B\leftarrow \circ $
3 $idle:idle\leftarrow \circ _{} ,_{} enable\leftarrow \circ _{} ,_{} A\leftarrow \circ _{} ,_{} B\leftarrow 1$
$B:x\leftarrow x-y_{} ,_{} A\leftarrow 1_{} ,_{} B\leftarrow \circ $
$A:A\leftarrow \circ _{} ,_{} if(x>y)then(enable\leftarrow 1)elseB\leftarrow 1$
4 $idle:idle\leftarrow \circ _{} ,_{} enable\leftarrow \circ _{} ,_{} A\leftarrow \circ _{} ,_{} B\leftarrow 1$
$B:x\leftarrow x-y_{} ,_{} A\leftarrow 1_{} ,_{} B\leftarrow \circ $
$A:A\leftarrow \circ _{} ,_{} if(x>y)then(enable\leftarrow 1)elseB\leftarrow 1$

$idle:idle\leftarrow \circ _{} ,_{} enable\leftarrow \circ _{} ,_{} A\leftarrow 1_{} ,_{} B\leftarrow \circ $

$A\mathrm{:}A\leftarrow \circ \ \mathrm{,\ \ }if\mathrm{(}x \lt y\mathrm{)}then\mathrm{(}enable\leftarrow \mathrm{1)}elseB\leftarrow \mathrm{1}$

$B:x\leftarrow x-y_{} ,_{} A\leftarrow 1_{} ,_{} B\leftarrow \circ $

در واقع بعد از حالت شروع idle، ابتدا باید چک کنیم که آیا x از y کوچکتر هست که در این صورت پاسخ همان x است و نیازی به اجرای سطر سوم نیست (به همین دلیل 3 و 4 غلط هستند). از طرفی ما باید هر بار $x \lt y$ را چک کنیم که اگر برقرار نبود x-y را در x قرار دهیم و دوباره چک کنیم.

نمونه سوالات طراحی کامپیوتر درس معماری کامپیوتر

متوسط کدام گزینه صحیح نیست؟ طراحی کامپیوتر

A.    در معماری RISC امکان آدرس‌دهی غیرمستقیم در حافظه وجود ندارد.
B.    در معماری CISC آدرس دستور بعدی همزمان با واکشی دستور فعلی قابل انجام است.
C.    در معماری RISC تغییرات در واحد کنترل انعطاف‌پذیری کمتری دارد.

1A, B
2 A, C
3B, C
4B

چون در CISC طول دستورات متغیر است لذا امکان محاسبه آدرس دستور بعدی به‌طور همزمان با واکشی دستور فعلی وجود ندارد. حافظه کنترل در معماری RISC وجود دارد و باعث انعطاف‌پذیری در تغییرات شده است.

آسان اگر سیستم گذرگاه در یک کامپیوتر به‌ صورت شکل زیر باشد. برای واکشی یک دستور از حافظه به چند سیکل نیاز داریم؟ و به ترتیب از راست به چپ چه سیگنال‌هایی باید فعال شوند؟ طراحی کامپیوتر

10

1$3$ سیکل، $ C_\mathrm{4},~C_\mathrm{\circ},~C_\mathrm{5},~C_\mathrm{2}$
2 $4$ سیکل، $C_\mathrm{4},~C_\mathrm{5},~C_\mathrm{\circ},~C_\mathrm{2}$
3 $4$ سیکل، $C_\mathrm{\circ},~C_\mathrm{4},~C_\mathrm{5},~C_\mathrm{2}$
4 $3$ سیکل، $ C_\mathrm{4},~C_\mathrm{5},~C_\mathrm{\circ},~C_\mathrm{2}$

$Fetch:$
$t_\mathrm{1}:MAR\gets pc$ $t_\mathrm{2}:MBR\gets Memoty,~pc\gets pc+\mathrm{1}$  $t_\mathrm{3}:IR\gets MBR$ $C_\mathrm{2}\rightarrow C_\mathrm{\circ}\rightarrow C_\mathrm{5}\rightarrow C_\mathrm{4}$

آسان شکل زیر پیاده‌سازی کدام دو میکروآپ پیاپی است که رخ می‌دهند؟ طراحی کامپیوتر

11

1

$\begin{array}{l} {T_{\circ } q_{1} \, :\, if\, (R_{1} =\, \circ )\, then\, (R_{1} \, \leftarrow \, R_{1} \, +\, R_{2} )} \\ {T_{1} q_{1} \, :\, R_{1} \, \leftarrow \, R_{1} \, +1} \end{array}$

2

$\begin{array}{l} {T_{\circ } q_{1} \, :R_{1} \, \leftarrow \, R_{1} \, +\, R_{2} } \\ {\, T_{1} q_{1} \, :\, if\, (R_{1} \ne \, \circ )\, then\, (R_{1} \, \leftarrow \, R_{1} \, +1)else(R_{1} \, \leftarrow \, R_{1} \, +\, R_{2} )} \end{array}$

3

$\begin{array}{l} {T_{\circ } q_{1} \, :R_{1} \, \leftarrow \, R_{1} \, +\, R_{2} } \\ {\, T_{1} q_{1} \, :\, if\, (R_{1} \ne \, \circ )\, then\, R_{1} \, \leftarrow \, R_{1} \, +1)} \end{array}$ 

4

$\begin{array}{l} {T_{\circ } q_{1} \, :\, if\, (R_{1} \ne \, \circ )\, then\, (R_{1} \, \leftarrow \, R_{1} \, +\, R_{2} )else(R_{1} \, \leftarrow \, \circ )} \\ {\, T_{1} q_{1} \, :R_{1} \, \leftarrow \, R_{1} \, +1} \end{array}$

گزینه 3 صحیح است.

این سوال را در 2 حالت حل می کنیم. 

حالت 1) $Q_0=1\ \ T_0=1 \Leftarrow T_0Q_1=1$ (با رنگ قرمز نشان می دهیم.)

و همچنین   (چون $T_0$ و $T_1$ سیگنال زمانی هستند و باهم نمی تواند 1 شوند.) 

$\Rightarrow T_0Q_1=R_1 \leftarrow R_1+R_2$

حالت 2) $T_0=0 \ \ Q_1=1 \ \ T_1=1 \Leftarrow T_0Q_1=1$ (با رنگ سبز نشان می دهیم.)

12

$If\ R_1=0\to X=0\to Cin=0$
$If \ R_1\neq 0\to X=Cin=1$
$\Rightarrow T_1Q_1:if\ (R_1\neq 0)$ then ${(R}_1\leftarrow R_1+1)$ else ${(R}_1\leftarrow R_1)$

$\Leftarrow$ گزینه 3 صحیح است.

آسان در یک کامپیوتر یک آدرسه دو شیوه نشانی‌دهی مستقیم (direct) و بلافاصله (Immediate) استفاده می‌شود. طول ثبات ACC هشت بیت، طول ثبات IR شانزده بیت و طول ثبات MAR ده بیت می‌باشد. حداکثر تعداد دستورات ماشین چند عدد می‌تواند باشد؟ طراحی کامپیوتر
164
2 160
3 256
4 312

گزینه 2 صحیح است.

چون طول ثبات IR شانزده بیت است $\leftarrow$ طول قالب و دستورات را 16 بیت در نظر می گیریم. 

چون طول ثبات ACC را به صورت سوال به ما داده است $\leftarrow$ اندازه Data ها برابر 8 بیت به اندازه ثبات ACC  است.

و همچنین چون طول MAR 10 بیت است $\leftarrow$ آدرس را 10 بیتی در نظر می گیریم. 

و همچنین چون ما در شیوه نشان دهی مستقیم و بلافاصله داریم $\leftarrow$ بیت نوع در نظر می گیریم. 

13

$\Leftarrow$ گزینه 2 صحیح است.

دشوار مدار زیر مربوط به یک ضرب کننده ترتیبی دو عدد ۸ بیتی می‌­باشد. نتیجه ۸ بیت کم ارزش رجیستر p در انتهای سیکل دوم معادل چه عددی می­‌باشد؟ طراحی کامپیوتر

B = ۰۱۰۱۱۰۱۰
A = ۱۰۱۰۰۱۰۱

(در لحظه شروع، عدد ۸ بیتی A در مکان ۸ بیت کم ارزش رجیستر۱۶ بیتی p قرار می‌­گیرد.)

14

141
2105
3 233
4 169

ابتدا بیت سمت راست A را نگاه می‌کنیم، چون 1 هست B را با 0 جمع می‌کنیم و حاصل را در قسمت با ارزش p قرار می‌دهیم، بنابراین در این لحظه حاصل ثبات p بصورت زیر است:

P=0101101010100101

حال باید ثبات p را به سمت راست شیفت دهیم، چون کری جمع B با 0 برابر 0 است، از سمت چپ صفر وارد می‌کنیم، بنابراین بعد از سیکل اول مقدار درون ثبات P بصورت زیر خواهد بود

0010110101010010=p بعد از سیکل اول

با توجه به 0 بودن کم ارزش ترین بیت P درسیکل دوم فقط کافی است P را به سمت راست شیفت دهیم:

0001011010101001=p بعد از سیکل دوم 

بنابراین مقدار 8 بیت کم ارزش بیت P در انتهای سیکل دوم برابر است با:

1

$\mathrm{1}\mathrm{\circ }\mathrm{1}\mathrm{\circ }\mathrm{1}\mathrm{\circ }\mathrm{\circ }\mathrm{1}\mathrm{=}\mathrm{169}\mathrm{\ }$

دشوار فرض کنید دستورات 4n بیتی پردازنده‌ای دارای ۳ نوع قالب صفر عملوندی، تک عملوندی و سه عملوندی می­‌باشد و که فیلد عملوندها همگی n بیتی می­‌باشند. بیشترین تعداد دستورات این پردازنده چقدر است؟ طراحی کامپیوتر

• قالب دستورات سه عملوندی شامل فیلدهای $\boxed{\mathrm{opc}\ |\ \mathrm{dest}\ |\ {\mathrm{src}}_{\mathrm{1}}\ |\ {\mathrm{src}\mathrm{\ }}_{\mathrm{2}}}$ می‌­باشد.

• قالب دستورات تک عملوندی شامل فلیدهای $\boxed{\mathrm{\ \ \ \ \ \ \ \ \ \ \ opc}\ \ \ \ \ \ \ \ \ \ |\ \mathrm{opr}\ }$ می‌­باشد.

• قالب دستورات صفر عملوندی فقط شامل فیلد $\boxed{\mathrm{\ \ \ \ \ \ \ \ \ \ \ \ \ opc}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }$ می­‌باشد.

1$({\mathrm{2}}^n-\mathrm{2})(2^{\mathrm{3}\mathrm{n}}\mathrm{-}\mathrm{1})+\mathrm{2}$
2 $2^{\mathrm{4}\mathrm{n}}-2^{\mathrm{3}\mathrm{n}}-2^{\mathrm{n}}+\mathrm{2}$
3 $2^{\mathrm{4}\mathrm{n}}-2^{\mathrm{3}\mathrm{n+}\mathrm{1}}-2^{\mathrm{2}\mathrm{n}}+2^{\mathrm{2}\mathrm{n+}\mathrm{1}}+2^{\mathrm{1}}$
4 $({\mathrm{2}}^n-\mathrm{2}){\mathrm{2}}^{\mathrm{2}n}+(2^{\mathrm{2}\mathrm{n}}\mathrm{-}\mathrm{1}){\mathrm{2}}^n+\mathrm{2}$

برای اینکه پردازنده ما بیشترین تعداد دستورات را داشته باشد، باید 1 دستور ماشین را به قالب دستورات 3 عملوندی و همین طور 1 دستور را به قالب دستورات تک عملوندی نسبت دهیم و سایر دستورات را بدون عملوند در نظر بگیریم. برای محاسبه پاسخ ابتدا کل دستورات 3 فیلد آدرسی را محاسبه می‌کنیم ($2^n$) ، سپس یک دستور را به دستورات 3 فیلد آدرسی اختصاص می‌دهیم و بقیه حالت‌های باقیمانده را برای دستورات تک فیلد آدرسی نگه می‌داریم ($2^n-1$). سپس تعداد کل دستورات تک فیلد آدرسی که می‌توانیم داشته باشیم را بدست می‌آوریم ($\left(2^n-1\right)\times2^{2n}$) و سپس یک دستور را به دستورات تک فیلد آدرسی اختصاص می‌دهیم و بقیه حالت‌های باقیمانده را برای دستورات بدون فیلد آدرس نگه می‌داریم ($\left(2^n-1\right)\times2^{2n}-1$)

\[\underbrace{\left(\overbrace{\left(2^n-1\right)}^{\text{یک}\mathrm{\ }\text{دستور}\mathrm{\ }\text{برای}\mathrm{\ }\text{اولی}}\times 2^{2n}-1\right)}_{\text{یک}\mathrm{\ }\text{دستور}\mathrm{\ }\text{برای}\mathrm{\ }\text{دومی}}2^n+\overbrace{1}^{\text{تک}\mathrm{\ }\text{دستور}\mathrm{\ 3\ }\text{عملوندی}}+\overbrace{1}^{\text{یک}\mathrm{\ }\text{دستور}\mathrm{\ }\text{تک}\mathrm{\ }\text{عملوندی}}=\left(2^{3n}-2^{2n}-1\right)\times 2^n+2=2^{4n}-2^{3n}-2^n+2\] 

آسان فرض کنید برای ساخت مالتی پلکسرها از ساختار AND – OR استفاده شده است و مساحت هر مالتی پلکسر با n ورودی (n توانی از ۲) برابر با (2+2n) باشد.
برای ساخت یک گذرگاه مشترک بدون سیگنال­­‌های load، مساحت سخت­‌افزار گذرگاه، در حالتی که ۲۰ ثبات ۳ بیتی را به هم وصل می­‌کند چند برابر مساحت سخت­‌افزار گذرگاه در حالتی است که ۶ ثبات ۶ بیتی را به هم وصل خواهد کرد؟ طراحی کامپیوتر
11/83
2 6/66
3 1/66
41

وقتی سیگنال­‌های load را برای گذرگاه مشترک در نظر نمی‌­گیریم، نیازی به دیکودر نیست.

برای ساخت گذرگاه مشترک که تعداد $(2^{K-1} \lt x\le 2^{K} )$ تا ثبات L بیتی را به هم وصل می­‌کند، به تعداد L تا Mux با $2^{K} $ ورودی (با K سیگنال انتخاب) نیاز هست. (دقت کنید که ورودی مالتی پلکسر باید توانی از 2 باشد)

$\Rightarrow S_{1} =3\left[2(32)+2\right]=3(66)$ 3 تا Mux = (هر کدام 32 ورودی) نیاز هست

$\Rightarrow S_{2} =6\left[2(8)+2\right]=6(18)$ 6 تا Mux = (هر کدام 8 ورودی) نیاز هست

$\frac{S_{1} }{S_{2} } =\frac{3(66)}{6(18)} =\frac{11}{6} =1/83$

آسان در یک کامپیوتر سه آدرسه طول کلمه 20 بیتی و دستورات در دو قالب یک کلمه‌­ای و دوکلمه‌­‌ای کد می‌­شوند. شیوه‌­های نشانی­‌دهی مستقیم ثباتی، غیرمستقیم ثباتی و بلافاصله (Immediate) می‌­باشد. با فرض داشتن 30 دستور یک کلمه‌­ای، حداکثر تعداد دستورات دو کلمه‌­ای کدام است؟ (از حداکثر تعداد ممکن دستورات یک کلمه‌­ای استفاده شده است). طراحی کامپیوتر
1 32
264
3128
4256
از فیلد مشترک Opcode پنج بیتی فقط دو کد به دستورات دوکلمه‌­ای اختصاص می­‌یابد و بنابراین با توجه به اینکه فیلد غیر مشترک Opcode پنج بیت می­‌باشد، تعداد دستورات دوکلمه‌­ای $64$ = ${\mathrm{2}}^{\mathrm{5}}$ × $2$ می‌­باشد.

نمونه سوالات ارزیابی کارایی درس معماری کامپیوتر

آسان یک برنامه حاوی فقط سه نوع دستورالعمل ضرب، جمع و ارجاع به حافظه است که به ترتیب 20%، 40% و 20% از کل زمان اجرای برنامه صرف آن‌ها می‌شود. کدام روش بهبود، منجر به افزایش سرعت بیشتر در اجرای این برنامه است؟ ارزیابی کارایی
1همه دستورهای از نوع ضرب و ارجاع به حافظه 4 برابر سریع‌تر شوند.
2 همه دستورهای از نوع ضرب و جمع 3 برابر سریع‌تر شوند.
3فقط دستورهای ضرب 20 برابر سریع‌تر شوند.
4 فقط دستورهای جمع 5 برابر سریع‌تر شوند.
گزینه ی 2 صحیح است.
0.2n از دستورات $\Leftarrow$ ضرب (0.2t)
0.4n از دستورات  $\Leftarrow$ جمع (0.4t)
0.2n از دستورات $\Leftarrow$ ارجاع به حافظه (0.2t)
0.2n از دستورات $\Leftarrow$ باقی دستورات (0.2t)
t: زمان کل
بررسی گزینه 1: $t_{new}=\frac{0.2t}{4}+\frac{0.2t}{4}+0.6t=0.7t$ بررسی گزینه 2: $t_{new}=\frac{0.2t+0.4t}{3}+0.4t=0.6t$ بررسی گزینه 3: $t_{new}=\frac{0.2t}{20}+0.8t=0.81t$ بررسی گزینه 4: $t_{new}=\frac{0.4t}{5}+0.6t=0.68t$
آسان تابع ریشه دوم اعشاری در یک برنامه گرافیک به طور معمول به کار می‌رود. فرض کنید زمان صرف اجرای این تابع 20 درصد برنامه گرافیکی موردنظر است.
پیشنهاد اول: تابع ریشه دوم را ده برابر سریع می‌کنیم.
پیشنهاد دوم: همه دستورهای floating point را 2 برابر سریع‌تر می‌کنیم. این عملیات اعشاری 50 درصد زمان آن کار گرافیکی را اشغال می‌کند. کدام‌یک از این دو پیشنهاد برای اجرای آن کار گرافیکی سریع‌تر می‌باشد. ارزیابی کارایی
1 ماشین اول سریع‌تر می‌باشد.
2 ماشین دوم سریع‌تر می‌باشد.
3 هر دو ماشین یکسان زمان می‌برند.
4بستگی به حجم حافظه نهان دارد.

گزینه 2 صحیح است.

اگر فرض کنیم کل زمان اجرای کارهای گرافیکی برابر 10T باشد. طبق صورت سوال 2T مربوط به اجرای تابع ریشه دوم است و 5T مربوط به اجرای دستورات floating point و 3T باقی کارها.

حال هر پیشنهاد و زمان هریک را محاسبه می کنیم. 

15

پیشنهاد 2 زمان اجرا را بیشتر کاهش داده $\leftarrow$ ماشین دوم سریع تر است $\Leftarrow$ گزینه 2 صحیح است.

متوسط در یک پردازنده همه منظوره، (۴۰) درصد از کل دستورات مربوط به دستورات پردازش سیگنال می‌­باشد. هم­چنین، (۵۰) درصد از دستورات پردازش سیگنال مربوط به عملیات MAC (ضرب و جمع) است. کدام ماشین زیر سریعتر است؟
ماشین A: تمامی دستورات پردازش سیگنال را (۲) برابر سریعتر کنیم.
ماشین B: اجرای عملیات MAC را تا حد ممکن سریعتر کنیم. ارزیابی کارایی
1 ماشین A سریع‌تر است.
2 ماشین B سریع‌تر است.
3باید تسریع عملیات MAC مشخص باشد.
4 هر دو ماشین زمان یکسان خواهند داشت.

قانون امدال:

${\ speedup}_{\left(A\right)}:\frac{\mathrm{1}}{(\mathrm{1-0/4})+\frac{\mathrm{0/4}}{\mathrm{2}}}=\mathrm{1/25}$ :ماشین A

نکته: درصد مربوط به MAC در بین کل دستورات پردازنده همه منظوره:

$\mathrm{=\ }\frac{\mathrm{40}}{\mathrm{100}}\times \frac{\mathrm{50}}{\mathrm{100}}=\frac{\mathrm{20}}{\mathrm{100}}$ : درصد MAC

${\ speedup}_{\left(B\right)}:\frac{\mathrm{1}}{(\mathrm{1-0/2})+\frac{\mathrm{0/2}}{\mathrm{n}}}=\frac{\mathrm{1}}{\frac{\mathrm{8}}{\mathrm{10}}+\frac{(\frac{2}{n})}{\mathrm{10}}}\mathrm{=}\frac{\mathrm{10}}{\mathrm{8+}\frac{2}{n}}\mathrm{ \lt }\mathrm{1/25}$ : ماشین B

آسان در یک سیستم ۸۲ درصد زمان اجرا صرف محاسبات و ۱۸ درصد صرف عملیات I/o می‌­شود. CPI برای دستورات صحيح و ممیز شناور و بقیه دستورات (I/o) به ترتیب ۱ و ۵ و ۲ است و ۴۰% دستورات صحیح و ۳۰% دستورات ممیز شناور و ۳۰% بقیه دستورات است. حال اگر CpI ممیز شناور از ۵ به ۳ تغییر کند speedup چقدر است؟ ارزیابی کارایی
11/6
2 1/245
31/316
4 2

CPI متوسط دستورات محاسباتی به صورت بدست می‌­آید.

${cpI}_{old}\mathrm{=}\mathrm{0/4}\mathrm{\times }\mathrm{1}\mathrm{+}\mathrm{0/3}\mathrm{\times }\mathrm{5}\mathrm{+}\mathrm{0/3}\mathrm{\times }\mathrm{2}\mathrm{=}\mathrm{2/5}$

${cpI}_{old}\mathrm{=}\mathrm{0/4}\mathrm{\times }\mathrm{1}\mathrm{+}\mathrm{0/3}\mathrm{\times }\mathrm{3}\mathrm{+}\mathrm{0/3}\mathrm{\times }\mathrm{2}\mathrm{=}\mathrm{1/9}$

$speedup=\frac{{cpI}_{old}\mathrm{\times }\mathrm{0/82}\mathrm{+}{cpI}_{IO}\mathrm{\times }\mathrm{0/18}}{{cpI}_{new}\mathrm{\times }\mathrm{0/82}\mathrm{+}{cpI}_{IO}\mathrm{\times }\mathrm{0/18}}=\frac{\mathrm{2/41}}{\mathrm{1/918}}=\mathrm{1/245}$

نمونه سوالات موازات و پایپلاین درس معماری کامپیوتر

متوسط می‌خواهیم دو ماتریس 8×4 را که هر درایه آن 64 بیتی است با هم جمع کنیم. یک جمع‌کننده خط لوله‌ای طراحی کرده‌ایم که در 9 کلاک دو عدد 64 بیتی را با هم جمع می‌کند و با فرکانس 1 گیگاهرتز کار می‌کند. در مقایسه با یک جمع‌کننده تمام ترکیبی 64 بیتی که در یک کلاک حاصل جمع را تولید می‌کند ولی فرکانس کاری آن 200 مگاهرتز است، کدام جمع‌کننده سریع‌تر می‌باشد و چند برابر است؟ پایپلاین و موازات
1 تمام ترکیبی- 5 برابر
2 تمام ترکیبی- 2 برابر
3 خط لوله‌ای- 9 برابر
4 خط لوله‌ای- 4 برابر

$\frac{\mathrm{1}}{{\mathrm{10}}^{\mathrm{9}}HZ}=\mathrm{1}ns$=دوره تناوب جمع کننده‌ی خط لوله‌ایی

$\frac{\mathrm{1}}{200\times {\mathrm{10}}^{\mathrm{6}}HZ}=\mathrm{5}ns$= دوره تناوب جمع کننده‌ی تمام ترکیبی

جمع کننده‌ی خط لوله در هر 9 کلاک دو عدد 64 بیتی را جمع می‌کند به عبارت دیگر ما پایپلاینی داریم با 9 stage مدت زمان اجرای 32 دستور در یک پایپلاین با 9 مرحله و دوره تناوب ns 1 برابر است با:

$(9+31)\times 1ns=40 ns$

(برای فهم بهتر فرض می‌کنیم دستور اول کل پایپلاین را طی می‌کند و به 9 کلاک نیاز دارد و 31 دستور بعدی هر کدام با 1 کلاک اجرا می‌شوند.)

زمان اجرا با جمع کننده ترکیبی برابر است با:

$32\times 5=160\ ns$

همان‌طور که مشخص است جمع کننده‌ی خط لوله‌ایی، 4 برابر سریع‌تر عمل می‌کند.

آسان برای اجراء دستورات در یک پردازنده باید چهار کار متوالی انجام شود که مدت زمان هر کار به ترتیب 9ns، 4ns، 4ns و 3ns می‌باشد. اگر پردازنده دیگری طراحی کنیم که همین کارها را به صورت خط لوله (pipeline) انجام دهد و تأخیر ثبات خط لوله را 1ns فرض کنیم، افزایش سرعتی که پردازنده جدید در اجراء 7 دستور متوالی غیروابسته تولید می‌کند چقدر است؟ پایپلاین و موازات
11/4
22
31/7
4 4

16

$\Leftarrow $ گزینه 1 صحیح است. 

متوسط اگر یک خط لوله (pipeline) سه ایستگاهی را به چهار ایستگاه تبدیل کنیم پریود ساعت از T به 0/9T کاهش می‌یابد فرض کنید 30% دستورات پرش هستند. دستور بعد از دستور پرش وارد لوله نمی‌شود تا اینکه دستور پرش به اتمام برسد. نسبت زمان اجرای n دستور در ساختار سه ایستگاهی به ساختار چهار ایستگاهی چقدر است؟ پایپلاین و موازات
1 $\frac{3}{3/6} $
2$\frac{1/6}{1/71} $
3$\frac{3T+1/6nT}{3/6T+1/71nT} $
4 $\frac{2T+1/6nT}{2/7T+1/71nT} $

ابتدا زمان اجرای $n$ دستور در پايپلاين $3$ سطحی را محاسبه می‌کنيم. می‌دانيم که هر $p$ دستور پرش (اگر دستور آخر پرش نباشد) تشکيل $p + 1$ دسته داده و هر دسته ما را $k – 1$ ($k$ تعداد سطوح پايپلاين) کلاک جريمه می‌کند. پس داريم:

$\left(n+3-1\right)\times T+0/3n\times2\times T=1/6nT+2T$

محاسبه زمان اجرای n دستور در پايپلاين 4 سطحی:

$(n\ +\ 4\ -\ 1)\times0/9T\ +\ 0/3n\times3\times0/9T\ =\ 1/71nT\ +\ 2/7T$

$\frac{t_1}{t_2}\ =\ \frac{1/6nT+2T}{1/71nT\ +\ 2/7T}$

متوسط یک پردازنده‌­ی خط لوله‌­ای دارای ۵ طبقه fetch، Decode، exe، mem و WB می‌­باشد که اجرای هر طبقه به ترتیب  ${\mathrm{4}}^{ns},{\mathrm{10}}^{ns},{\mathrm{7}}^{ns},{\mathrm{8}}^{ns},{\mathrm{11}}^{ns}$ طول می­‌کشد. اگر تاخیر رجیسترهای بین طبقات  ${\mathrm{1}}^{ns}$  باشد و ۸۰ درصد از دستورات پردازنده به عملیات حافظه نیاز داشته باشند، آن‌گاه به ازای حداقل چه تعداد دستور از نظر کارایی این پردازنده نسبت به پردازنده­‌ی بدون خط لوله­‌ای به صرفه است؟ پایپلاین و موازات
1 13
2 48
3 5
4 به ازای هر تعداد دستور (بیش از یکی)، کارایی این پردازنده در حالت خط لوله­‌ای به صرفه‌­تر است.
11 8 7 10 4
fetch Decode exe mem WB
 $\mathrm{\sqrt{}}$  $\mathrm{\sqrt{}}$  $\mathrm{\sqrt{}}$  $\mathrm{\sqrt{}}$  $\mathrm{\sqrt{}}$
 $\mathrm{\sqrt{}}$ $\mathrm{\sqrt{}}$  $\mathrm{\sqrt{}}$ $\mathrm{\sqrt{}}$
دستورات حافظه 80%
دستورات بدون نیاز به حافظه 20%

$speed\ up=\frac{Performance(pipe)}{Performance(without\ pipe)}=\frac{T(without\ pipe)}{T(\ pipe)}$ $=\frac{(\frac{\mathrm{8}}{\mathrm{10}}n)(\mathrm{11}+\mathrm{8}+\mathrm{7}+\mathrm{1}0+\mathrm{4})+(\frac{\mathrm{2}}{\mathrm{10}}n)(\mathrm{11}+\mathrm{8}+\mathrm{7}+\mathrm{4})}{(طبقه)\ \mathrm{5}(\mathrm{11}+\mathrm{1})+(\mathrm{n}\mathrm{-}\mathrm{1})\mathrm{(}\mathrm{11}+\mathrm{1})}$

$=\frac{\mathrm{38}\mathrm{n}}{\mathrm{12}\mathrm{n}\mathrm{+48}}>\mathrm{1}\Rightarrow \mathrm{38}\mathrm{n>}\mathrm{12}\mathrm{n+}\mathrm{48}$ (به ازای $n > 1$ برقرار است)

آسان در یک پردازنده خط لوله‌­ای شامل ۵ طبقه E,D,C,B,A زمان اجرای هر طبقه به ترتیب ۵,۵,۹,3,3 نانو ثانیه می‌­باشد. افزایش سرعت این پردازنده خط لوله‌­ای در مقایسه با حالت بدون خط لوله برای اجرای (۱۰) دستورالعمل متوالی تقریباً چقدر است؟ (تاخیر ثبات خط لوله 1 نانوثانیه است و دستورات به هم وابستگی ندارند) پایپلاین و موازات
1 1/43
2 1/78
3 2/5
4 1

25 = 5 + 5 + 9 + 3 + 3 = زمان اجرای هر دستور در حالت بدون خط لوله
(ns) 10 × 25 = 250 = زمان اجرای ده تا دستور در حالت بدون خط لوله
        10 = 1 + 9 = 1 + { 5, 5, 9, 3, 3}  Max = زمان هر مرحله خط لوله
140= 10 × (1 – 10 + 5) =هر مرحله خط لوله ${=(K+n-\mathrm{1})}^*T$ زمان اجرای10 دستور در حالت خط لوله

$\mathrm{=}\frac{\mathrm{250}}{\mathrm{140}}\simeq \mathrm{1/78}$ $\frac{\text{زمان}\boldsymbol{\mathrm{\ }}\text{اجرای}\boldsymbol{\mathrm{\ }}\text{بدون}\boldsymbol{\mathrm{\ }}\text{خط}}{\text{زمان}\boldsymbol{\mathrm{\ }}\text{اجرای}\boldsymbol{\mathrm{\ }}\text{خط}}$ $=$ افزایش سرعت

نمونه سوالات حافظه ها درس معماری کامپیوتر

آسان فرض کنید بخواهیم یک حافظه نهان را به کمک فناوری SRAM پیاده‌­سازی کنیم. ظرفیت این حافظه نهان 8 کیلوبایت و از نوع انجمنی مجموعه 2 راهه (2-wayset-associative) با بلوک­‌هایی به اندازه 64 بایت است. اگر سیاست نوشتن از نوع نوشتن سراسری (Write-though)باشد و برای پیاده‌­سازی سیاست جایگزینی (replacement policy) از روش LRU با 1 بیت برای هر بلوک یا خط استفاده کنیم، چه تعداد بیت  SRAM بدین منظور نیاز خواهد بود؟ (فرض کنید معماری از آدرس‌دهی بایت استفاده کند و آدرس­‌ها 32 بیتی باشند.) حافظه ها
12688
2 65536
368224
468352

${\mathrm{2}}^{\mathrm{32}}B=\mathrm{4}GB$ = حجم حافظه = آدرس 32 بیتی

$\mathrm{8}KB={\mathrm{2}}^{\mathrm{13}}B={\mathrm{2}}^{\mathrm{13}}\times {\mathrm{2}}^{\mathrm{3}}bit={\mathrm{2}}^{\mathrm{16}}bit=\mathrm{65536}bit$ = ظرفیت دیتا کش

$\mathrm{64}B$ = اندازه بلاک

هر بلاک یک بیت برای valid، یک بیت برای $\text{تعداد}\mathrm{\ }\text{بلاک}\mathrm{\ }\text{کش}=\frac{{\mathrm{2}}^{\mathrm{3}}\times {\mathrm{2}}^{\mathrm{10}}B}{{\mathrm{2}}^{\mathrm{6}}B}={\mathrm{2}}^{\mathrm{7}}\Rightarrow LRU$

و تعدادی بیت برای tag دارد.

$\text{کش}\mathrm{\ }set\ \text{تعداد}=\frac{2^7}{\mathrm{2}}={\mathrm{2}}^{\mathrm{6}}$

$tag\mathrm{\ }\text{اندازه}=log\frac{{\mathrm{2}}^{\mathrm{32}}B}{{\mathrm{2}}^{\mathrm{12}}B}+log\mathrm{2}\mathrm{=}\mathrm{19}\mathrm{+}\mathrm{1}\mathrm{=}\mathrm{20}$

$\underbrace{65536}_{Data}+\underbrace{2^{7} \times 20}_{tag}+\underbrace{2^{7} }_{valid}+\underbrace{2^{7} }_{LRU} $ = تعداد بیت­‌های $SRAM$ مورد نیاز

آسان در صورتی که دسترسی به حافظه نهان (Cache) از طریق نگاشت مستقیم (Direct mapping) به روش مقابل باشد، مشخص کنید به ترتیب حجم حافظه اصلی، حافظه نهان و محل استقرار آدرس $(\circ \circ \circ B3A4F)_{H} $ چیست؟ حافظه ها

17

1 Block$(164)_{10}$ ،4GB ،2KB
2Block$(36)_{10}$ ،2GB ،4KB
3 Block$(160)_{10}$ ،4GB ،2KB
4 Block$(36)_{10}$ ،4GB ،2KB

18

حجم حافظه اصلی $2^{(21+7+4)}=2^{23}B=4*2^{30}B=4GB$ حجم حافظه نهان$2^{(7+4)}=2^{11}B=2*2^{10}B=2KB$

$\Leftarrow$ تا اینجا گزینه های 1 و 2 رد می شوند.

اگر 11 بیت اول (00B3A4F) را بنویسیم به مقدار روبرو می رسیم $(01001001111) \leftarrow$

19

محل استقرار (00B3A4F) در سطر 15 و در Block 36 ام است.

$\Leftarrow$ گزینه 4 صحیح است.

متوسط یک پردازنده دارای n خط آدرس و J خط داده است فقط یک تراشه حافظه با m خط آدرس و J خط داده را مستقیما به پردازنده وصل کرده‌ایم (n>m) هر کلمه J بیتی از این تراشه با چند آدرس قابل دسترس است؟ حافظه ها
1 $2^{0}$ 
2 $2^{n-m}$ 
3 $2^{n-m-1}$
4 قابل محاسبه نیست.

به منظور درک بهتر سوال می‌توان شکل زیر را برای آن در نظر گرفت:

20

همانطور که از شکل بالا مشخص است، با توجه به فرض سوال چون تعداد خطوط آدرس $CPU$ به اندازه‌ی $n – m$تا از خطوط آدرس تراشه حافظه بیشتر است در نتیجه می‌بایست جهت ارتباط تراشه با $CPU$ کلیه‌ی $m$ خط آدرس تراشه به $m$ خط از خطوط آدرس‌ $CPU$ متصل شود (که با رنگ خاکستری در شکل مشخص شده) $J$ خط داده نیز جهت تبادل $Data$ به یکدیگر متصل شده‌اند. از آنجایی که دستگاه دیگری با توجه به فرض سوال وجود ندارد، $n – m$ خط دیگر آدرس $CPU$ بلااستفاده باقی می‌ماند. اگر $CPU$ نیز تنها دارای $m$ خط آدرس می‌بود، هر کلمه‌ی $J$ بیتی از این تراشه با یک آدرس قابل دسترسی بود اما اکنون به ازای هر آدرس، هر یک از خطوط $n – m$ آدرس دیگر می‌توانند صفر یا یک باشند فارغ از اینکه آدرس آن کلمه تغییر کند(زیرا آن خطوط به جایی متصل نیستند که روی تراشه تاثیر بگذارند). در نتیجه هر کلمه‌ی $J$ بیتی با $2^{n\ -\ m}$ آدرس قابل دسترسی است.

آسان شکل زیر قسمتی از سیستم ریزپردازنده­‌ای را نشان می­‌دهد که شامل یک $RAM$ و یک $ROM$ است. اگر خروجی­‌های منطق دیکود به شکل زیر باشند: حافظه ها

21

$CSA=\left({\overline{A}}_{\mathrm{15}}+{\overline{A}}_{\mathrm{14}}\right).\left(A_{\mathrm{15}}+A_{\mathrm{14}}+A_{\mathrm{13}}+A_{\mathrm{12}}+A_{\mathrm{11}}+A_{\mathrm{10}}+A_{\mathrm{9}}+A_{\mathrm{8}}\right)$

$CSB=A_{\mathrm{15}}.A_{\mathrm{14}}\left({\overline{A}}_{\mathrm{13}}+{\overline{A}}_{\mathrm{12}}\right)+{\overline{A}}_{\mathrm{15}}.{\overline{A}}_{\mathrm{14}}.{\overline{A}}_{\mathrm{13}}.{\overline{A}}_{\mathrm{12}}.{\overline{A}}_{\mathrm{11}}.{\overline{A}}_{\mathrm{10}}.{\overline{A}}_{\mathrm{9}}.{\overline{A}}_{\mathrm{8}}$

در این صورت چه آدرس­‌هایی در RAM و ROM هستند؟

1

$\mathrm{RAM:}\mathrm{\circ }\mathrm{\circ }\mathrm{\circ }\mathrm{\circ }\mathrm{-BFFF}$ $\mathrm{ROM:EFFF-FFFF}$

2

$\mathrm{RAM:}\mathrm{\circ }\mathrm{1}\mathrm{\circ }\mathrm{\circ }\mathrm{-}\mathrm{BFFF}$ $\mathrm{ROM:}\mathrm{\circ }\mathrm{\circ }\mathrm{\circ }\mathrm{\circ }\mathrm{-}\mathrm{\circ }\mathrm{\circ }\mathrm{FF}$ $C\circ \circ \circ \mathrm{-}\mathrm{EFFF}$

3

$\mathrm{RAM:}\mathrm{\circ }\mathrm{1}\mathrm{\circ }\mathrm{\circ }\mathrm{-}E\mathrm{FFF}$ $\mathrm{ROM:}\mathrm{\circ }\mathrm{\circ }\mathrm{\circ }\mathrm{\circ }\mathrm{-EFFF}$

4

$\mathrm{RAM:}\mathrm{\circ }\mathrm{\circ }\mathrm{\circ }\mathrm{\circ }\mathrm{-BFFF}$ $\mathrm{ROM:}C\circ \circ \circ \mathrm{-}\mathrm{EFFF}$

$RAM$ وقتی فعال می­‌شود پرانتز اول $CSA$ و دوم آن هر دو یک باشند، ${\overline{A}}_{\mathrm{15}}+{\overline{A}}_{\mathrm{14}}$ برای آدرس‌­های ${\mathrm{\circ }\mathrm{\circ }\mathrm{\circ }\mathrm{\circ }}_H$  تا ${\mathrm{BFFF}}_H$ یک است و پرانتز دوم برای آدرس‌­های  $\mathrm{\circ }\mathrm{1}\mathrm{\circ }\mathrm{\circ }$ تا $\mathrm{\circ }\mathrm{\circ }\mathrm{FF}$ یک است پس $RAM$ شامل آدرس­‌های $\mathrm{\circ }\mathrm{1}\mathrm{\circ }\mathrm{\circ }$  تا $\mathrm{BFFF}$  است. $ROM$ شامل $C\circ \circ \circ $  تا $\mathrm{BFFF}$  و  $C\circ \circ \circ $ تا $E\mathrm{FFF}$ است.

متوسط در یک سیستم حافظه نهان نوع Write through احتمال اینکه دسترسی به حافظه از نوع نوشتن باشد $\mathrm{\circ }.\mathrm{2}$ ، زمان دسترسی به Cache برابر با 5ns، زمان دسترسی به حافظه اصلی برابر با 500ns و احتمال حضور داده در cache برابر با  $\mathrm{\circ }.\mathrm{9}$  است. متوسط زمان دسترسی به حافظه در این سیستم چقدر است؟ حافظه ها
1138ns
2 144ns
3156ns
4 172ns
متوسط کدام عبارت نادرست است? حافظه ها
1 با افزایش اندازه بلاک در کش، در ابتدا hit Rate افزایش می‌­یابد.
2 وجود بیت dirty در کش باعث کاهش فرکانس write - back در موقع جابجائی می­‌شود.
3 قسمت toy در کش بخشی از آدرس فیزیکی است.
4 وجود کش در یک سیستم به دلیل امکان sequential locality است.

همه گزینه­‌ها صحیح هستند به جز گزینه 4:

زیرا وجود کش در یک سیستم به دلیل spatial locality (محلی بودن مکان) است و نه محلی ترتیبی

آسان زمان دستیابی به یک بایت از حافظه اصلی (${\mathrm{5}}^{ns}$) می‌­باشد. اگر زمان دستیابی به حافظه نهان (cache) برابر ( ${\mathrm{1}}^{ns} $) باشد. آن‌گاه حداقل hit Rate حافظه‌­ی نهان چقدر باشد تا استفاده از حافظه نهان در این پردازنده به صرفه باشد؟ (انتقال اطلاعات بین حافظه اصلی و حافظه نهان بصورت ۴ بایتی است.) حافظه ها
1 99%
2 89%
379%
4 در این پردازنده حافظه‌­ی پنهان با هر مقدار hit Rate به صرفه است.

$hit\ Rate(cache)=h_{\mathrm{1}}$

برای به صرفه بودن باید:

زمان دستیابی به داده بدون کش > زمان دستیابی به داده با وجود کش
${(h}_{\mathrm{1}})({\mathrm{1}}^{ns})+(\mathrm{1}-h_{\mathrm{1}})(\mathrm{4})({\mathrm{5}}^{ns}) \lt ({\mathrm{5}}^{ns})$ ${\Rightarrow h}_{\mathrm{1}}+\mathrm{20-20}h_{\mathrm{1}} \lt \mathrm{5}$ ${\Rightarrow \mathrm{19}h}_{\mathrm{1}} \gt \mathrm{15}$ ${\Rightarrow h}_{\mathrm{1}}\mathrm{>}\frac{\mathrm{15}}{\mathrm{19}}=\mathrm{0/7894\ =\ \%78/9=\ \%79}$

متوسط در یک حافظه‌­ی نهان با tag به طول 18 بیت، اگر تعداد set‌های حافظه‌­ی نهان 8 برابر شود حجم tag-Array چند برابر می‌­شود؟ (حجم کل حافظه‌­ی نهان تغییری نمی­‌کند). حافظه ها
1 یک دوم
2سه چهارم
3 پنج ششم
4با این اطلاعات قابل تعیین نیست.
حجم tag-Array از 18B به 15B تغییر می‌­کند. بنابراین حجم آن پنج ششم نسبت به حالت اول خواهد بود.

نمونه سوالات میکرو پروگرامینگ درس معماری کامپیوتر

متوسط کدام گزینه در رابطه با زبان­‌های توصیف سخت‌­افزار (Verilog , VHDL) نادرست است؟میکرو پروگرامینگ
1 زبان Verilog از طراحی سطح ترانزیستوری مدار پشتیبانی می­‌کند.
2امکان کدنویسی همروند در زبان VHDL وجود ندارد.
3 دستور wait یک دستور غير قابل سنتر است.
4زبان HDL مورد نظر برای طراحی مدارهای دیجیتال می‌­تواند کاملاً مستقل از تراشه توسط کاربر انتخاب شود.

زبان‌های HDL از کدنویسی همروند پشتیبانی می­‌کنند.

سایر گزینه­‌ها صحیح هستند.

متوسط در یک سیستم دیجیتال تعداد سیگنال‌های کنترل 200 عدد است. بررسی الگوهای فعالیت سیگنال‌ها در ریزدستورات داخل ریز حافظه، نشان می‌دهد که امکان افراز این سیگنال‌ها به یک دسته 120تایی، یک دسته 60تایی و یک دسته 20تایی به طوری که در هر دسته فقط یک سیگنال فعال باشد، وجود دارد. اگر حجم ریزحافظه 1M ریزدستور باشد، با استفاده از ریزدستورات عمودی (Vertical microinstructions) چند بیت در ریز حافظه صرفه‌جویی می‌شود؟ میکرو پروگرامینگ
1 178M
2180M
3 182M
4 بدون اطلاع از قالب ریز دستور قابل تعیین نیست.
$=(200+20+CC)*1m$
اندازه ریز حافظه در حالت عادی بدون صرفه جویی
22
$(CC+(7+6+5)+20)*1m$ اندازه ریز حافظه در حالت عادی با صرفه جویی
$(200+20+cc)*1m-$
$(cc+18+20)*1m=182m$
میزان صرفه جویی
23

قالب کلی ریز حافظه در حالت پیشرفته به صورت زیر است:

اندازه ریز حافظه در حالت پیشرفته بدون صرفه جویی 
$=1m*(cc+max(200,20))$
اندازه ریز حافظه در حالت پیشرفته با صرفه جویی
$=1m*(cc+max(18,20))$
24

$=1m*(cc=200)-1m*(cc+20)=180m$ میزان صرفه جویی  

متوسط اگر تعداد الگوهای مورد استفاده برای 100 سیگنال کنترلی در یک سیستم ریز برنامه‌سازی شده در تمامی ریزبرنامه‌های یک ماشین 30 عدد باشد و به فرض استفاده از حافظه نانو، حجم ریزبرنامه‌های ماشین چقدر کم می‌شود. فرض کنید تعداد ریزدستورالعمل‌های مورد استفاده در ریزبرنامه‌ها 200 عدد هستند. میکرو پروگرامینگ
195×200 بیت
2 70×200 بیت
3 20×200 بیت
4 5×200 بیت

25

( با استفاده از حافظه نانو )                             ( بدون استفاده از حافظه نانو ) 

$\Leftarrow$ صرفه جویی ریز برنامه

$200*100-200*5=200\left(100+\mathrm{C}+8\right)-200\left(5+\mathrm{C}+8\right)=200*95$

گزینه 1 پاسخ مسئله است.
*نکته: ما در این سوال ها صرفه جویی در حافظه ریز را فقط حساب می کنیم و با حافظه نانو کاری نداریم 
مگر اینکه صورت سوال از ما این را بخواهد.

دشوار در یک ASM chart مربوط به یک سیستم، ۱۲۵ جعبه انتقال و ۴ جعبه شرطی متفاوت وجود دارد. اگر ریز برنامه واحد کنترلی سیستم دارای ۲۰۰ ریز دستور باشد و تعداد سیگنال­‌های کنترلی ۱۰ تا باشد. آنگاه تعیین کنید که با استفاده از حافظه نانو، حداقل چند بیت در مقدار ریز برنامه صرفه­‌جویی می­‌شود؟ ( تمهیدات لازم برای انتخاب جعبه انتقال یا شرطی را نیز در نظر بگیرید) میکرو پروگرامینگ
1100
2 200
3 600
4400

حافظه میکرو (ریزبرنامه) بدون استفاده از نانو: $200 \times 10 = 2000$
حافظه‌­ی ریزبرنامه با استفاده از نانو:
(دقت کنید که خود حافظه­‌ی نانو را نخواسته است) 
از آنجا که 125 جعبه اتصال و 4 جعبه شرطی داریم لذا 129 ریز دستور مختلف مورد نیاز هست که به 8 بیت نیاز دارد و نیز یک بیت هم برای انتخاب نوع جعبه باید در نظر بگیریم. (یعنی 9 بیت)

200=2000-1800  $\Rightarrow $  ­1800=9×200= حافظه ریز برنامه و  $129 \times 10$= حافظه‌­ی نانو

آسان فرض کنید در یک سیستم ۱۰۰ تا سیگنال کنترلی وجود دارد. اگر قادر باشیم این سیگنال­‌های کنترلی را به ۴ مجموعه­‌ی ۵۰ تایی، ۲۵ تایی، 15 تایی و ۱۰ تایی افراز کنیم به نحوی که در داخل هر مجموعه فقط یکی از سیگنال‌­های کنترلی در هر لحظه فعال باشد، آنگاه با فرض وجود 2K ریز دستور (micro instruction) در داخل ریز حافظه، به کمک این افراز چه مقدار از حجم ریز حافظه کم می‌­شود؟ میکرو پروگرامینگ
181kb
2160kb
3162kb
4 حجم ریزحافظه بیشتر می‌­شود.

26

کاهش $(2K)(100)-(2K)(6+5+4+4)=2K(100-19)=(2K)(81)=162K$

نمونه سوالات ورودی و خروجی درس معماری کامپیوتر

متوسط شکل زیر نحوه ارتباط یک پردازنده به تراشه I/O جهت کنترل دو دستگاه I/O را نشان می‌دهد.
کدام گزینه در خصوص این سیستم صحیح است؟ ورودی و خروجی

27

1این سیستم تنها قادر به انجام عملیات I/O به روش Interrupted I/O است.
2 طراح ایراد اساسی دارد که به طور همزمان سعی در استفاده از اتصال memory-mapped و روش Interrupted I/O دارد.
3 این سیستم از هر دو روش programmed I/O و Interrupted I/O می‌تواند استفاده کند.
4 این سیستم با اتصال memory-mapped I/O فقط برای عملیات programmed I/O از آدرس C000H تا CFFFH مناسب است.

Address bus خارج شده از CPU برای عملیات I/O Programmed از آدرس C000H تا FFFFH قابل دسترس است (رد گزینه ی 4)

$\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;A_{15}\ \ \ A_{14}\ \ \ A_{13}\ \ \ \_\_\_\_\_\_\_\ \ \ \ A_2\ \ \ A_1\ \ \ {\ A}_0$

$\overline{{CE}_2}$ پایه بخاطر  $\leftarrow \underline{\overline{\left|1\ \ \ \ \ 1\right|}}\ \ \ \ \ \ \ 0\ \ \ \ \ \ \                   \_\_\_\_\_\_\_\ \ \ \ \ 0\ \ \ \ \ 0\ \ \ \ \ \ 0\ \ \ =\ C000H$

$\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;1\ \ \ \ \ 1\ \ \ \ \ 0\ \ \ \ \ \ \ \_\_\_\_\_\_\_\ \ \ \ \ 0\ \ \ \ \ 0\ \ \ \ \ 1\ \ \ =\ C001H$

$\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;...$

$\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;1\ \ \ \ \ 1\ \ \ \ \ 1\ \ \ \ \ \ \_\_\_\_\_\_\_\ \ \ \ \ 1\ \ \ \ \ 1\ \ \ \ \ 1\ \ \ =\ FFFFH$

همچنین شکل داده شده  دارای پایه ی Int.req. است پس می تواند وقفه صادر کند و روش I/O Interrupt ربطی به memory-mapped ندارد (رد گزینه ی 1 و 2)

آسان شکل مقابل شکل موج باس دیتا و دو خط کنترل به نام‌های $S_1$ و $S_2$ را نشان می‌دهد که همگی بین یک گیرنده و یک فرستنده دیتا وجود دارند. ارتباط به صورت آسنکرون برقرار است. خطوط $S_1$ و $S_2$ هماهنگ‌کننده ارتباط آسنکرون هستند. کدام گزینه صحیح است؟ ورودی و خروجی

28

1$S_1$ و $S_2$ توسط فرستنده فعال می‌شوند.
2$S_1$ و $S_2$ توسط گیرنده فعال می‌شوند.
3 $S_1$ توسط گیرنده و $S_2$ توسط فرستنده فعال می‌شود.
4$S_1$ توسط فرستنده و$S_2$  توسط گیرنده فعال می‌شود.

در این حالت که سوال برای ما کشیده شده است. سیگنال S1 ، Strobe قبل از گذاشتن data روی خط 1 شده است و سپس Data روی باس قرار داده شده است و بعد S2 ، Strobe فعال شده است و پس از اتمام سیگنال S2 , S1 هم تمام شده. 

این حالت نشان دهنده حالت گیرنده آغاز کننده است. یعنی S1 گیرنده ما است و سیگنال Strobe آن دست گیرنده و سیگنال S2 ، Strobe دست فرستنده است و در این حالت گیرنده کندتر است و آغاز کننده درخواست است. $\Leftarrow$ گزینه 3 صحیح است.

آسان کدام عبارت در مورد روش‌های I/O صحیح نمی‌باشد؟ ورودی و خروجی
1 روش memory mapped سریع‌ترین روش انجام عملیات I/O است.
2 در روش Interrupted I/O انجام عملیات I/O با رسیدن سیگنال وقفه آغاز می‌شود.
3 در روش DMA داده‌ها می‌توانند بین دستگاه I/O و حافظه، بین دو بانک حافظه، بین دو دستگاه I/O تبادل شوند.
4روش programmed I/O به دلیل مشغول کردن پردازنده اصلی برای بررسی آمادگی دستگاه I/O، کارآیی سیستم را پایین می‌آورد.
حل تشریحی این تست را می‌توانید در تست شماره 7 از فصلِ ورودی خروجی در نکته و تست معماری کامپیوتر استاد رضوی مشاهده کنید

نمونه سوالات معماری کامپیوتر این صفحه از چه منابعی است؟

در این صفحه از نمونه سوالات معماری کامپیوتر موریس مانو، نمونه سوالات معماری کامپیوتر دانشگاه شریف، نمونه سوالات پایان ترم دانشگاه های برتر کشور، نمونه سوالات معماری کامپیوتر دانشگاه پیام نور، نمونه سوالات معماری کامپیوتر کاردانی علمی کاربردی و دانشگاه آزاد و همین طور سوالات معماری کامپیوتر کنکور ارشد و دکتری رشته های مختلف از جمله کامپیوتر، برق استفاده شده است.

آیا نمونه سوالات معماری کامپیوتر این صفحه جواب دارد و به درد چه کسانی می‌خورد؟

بله. تمامی سوالات معماری کامپیوتر این صفحه با پاسخ های کاملا تشریحی در اختیار شما قرار گرفته است. سوالات این صفحه به درد دانشجویان مقطع لیسانس رشته های مختلف، داوطلبان کنکورهای مقاطع مختلف از جمله ارشد و دکتری، داوطلبان آزمون های استخدامی و افرادی است که به دنبال حل مسائل بیشتر برای مسلط شدن روی معماری کامپیوتر هستند

همچنین هر گونه سوالی در مورد کلاس‌های آنلاین کنکور کامپیوتر و یا تهیه فیلم‌ها و یا رزرو مشاوره تک جلسه‌ای تلفنی با استاد رضوی دارید می‌توانید به طرق زیر از تیم پشتیبانی بپرسید:

آی دی تلگرام تیم پشتیبانی:     konkurcomputer_admin@

تماس با پشتیبانی:   09378555200

امتیازدهی5 1 1 1 1 1 1 1 1 1 15.00 امتیاز (1 امتیاز)
بارگذاری نظرات