سوال ۶۹ معماری ۹۰ - نسخهی قابل چاپ |
سوال ۶۹ معماری ۹۰ - azad_ahmadi - 16 بهمن ۱۳۹۱ ۰۸:۴۵ ب.ظ
سلام دوستان. سوال این هست: در یک ماشین ۳ آدرسه حجم حافظه اصلی ۱۶^۲ کلمه ۱۶ بیتی (هر کلمه معادل ۲ واحد آدرس پذیر) است. شیوه آدرس دهی در این ماشین مستقیم (ثباتی و حافظه ای) است و دستورات ماشین در قالب یک و دو کلمه ای کد می شوند. با فرض اینکه تعداد دستورات یک کلمه ای ۶۴ عدد است، تعداد دستورات دو کلمه ای چقدر است؟ (حداکثر ممکن ثبات عمومی در این سیستم استفاده می شود). به فریادم برسید. خیلی ممنون |
سوال ۶۹ معماری ۹۰ - azad_ahmadi - 16 بهمن ۱۳۹۱ ۱۰:۳۰ ب.ظ
خواهشا جواب بدید. کتاب سنجش گفته به ۱۷ بیت برای آدرس دهی نیاز داریم. این ۱۷ بیت رو از کجا آورده؟ |
سوال ۶۹ معماری ۹۰ - m@hboobe - 16 بهمن ۱۳۹۱ ۱۰:۳۸ ب.ظ
دستورات در قالب یک کلمه ای و دو کلمه ای هستن قالب یک کلمه ای: ۱ بیت برای نوع دستور اینکه ثباتی هست یا حافظه ای تعداد دستورات یک کلمه ای داریم که به ۶ بیت نیاز داریم خب الان ۹ بیت دیگه مونده. دستورات یک کلمه ای هر سه فیلد آدرس باید کد ثبات باشه هر کدوم ۳ بیت! (من فکر کنم واسه ماشین ۳ آدرسه ثباتی باید ۳ ثبات داشته باشیم!) قالب دو کلمه ای: ۱ بیت برای تشخیص نوع/ بیتهای آدرس چون که نوشته هر کلمه معادل ۲ واحد آدرس هست ۱۶+۱ = ۱۷ و در دستورات دوکلمه ای حتما یک فیلد آدرس (۱۷ بیت) و ۲ فیلد ثبات (۳ بیتی) نیاز داره جمعا ۸ بیت میمونه! ۲۵۶ دستور نقل قول از پوران |
سوال ۶۹ معماری ۹۰ - egm1176 - 16 بهمن ۱۳۹۱ ۱۰:۴۲ ب.ظ
میشه ۲۵۶ ؟ ببینید برای یک کلمه ۲ آدرس لازمه پس برای ۱۶^۲ که حجم حافظه است، میشه ۲x 2^16 که برابر میشه با ۱۷^۲ یعنی ۱۷ بیت برای آدرس لازمه. دستورات دو کلمه ای و یک کلمه ای هستند. که یک کلمه ای میشه ۱۶ بیت که آدرس حافظه توش جا نمیشه پس ۳ تا reg داره. یک بیت mode هم داریم. تعداد دستورات هم که ۶۴ تاست که ۶ تا بیت لازمه. پس ۷ بیت از ۱۶ کم میکنیم که میشه ۹ بیت که هر reg میشه ۳ بیت. حالا برای دستورات دو کلمه ای ، میشه یک آدرس حافظه قرار داد : ۱۷ بیت دو تا هم reg گذاشت : ۶ بیت یک بیت هم mode پس ۳۲ -۲۴ = ۸ تعداد میشه ۸^۲ = ۲۵۶ |
RE: سوال ۶۹ معماری ۹۰ - Shiny_Star - 16 بهمن ۱۳۹۱ ۱۰:۴۳ ب.ظ
(۱۶ بهمن ۱۳۹۱ ۰۸:۴۵ ب.ظ)azad_ahmadi نوشته شده توسط: سلام دوستان.سلام اولین نکته: هر کلمه معادل دو واحد آدرس پذیر هست، یعنی هر بار برای دسترسی به حافظه باید pc رو دو واحد اضافه کنیم، pc=pc+2 ّبرای هر دسترسی به حافظه باید کد: ۲^۱۶*۲^۱=۲^۱۷ پس هر آدرس معادل ۱۷ بیت است. آدرس دهی ثباتی : کد: opcode opr1,op2,op3 آدرس یک کلمه ای و یک بیت برای نوع دستور که ثباتی باشد یا حافظه ای، هر کلمه ۱۶ بیت، یک بیت هم برای نوع، ۱۵ بیت باقی مانده، برای opcode,opr، تعداد ۶۴ یعنی ۶ بیت برای opcode، ۹ بیت باقی مانده برای سه ثبات پس هر ثبات ۳ بیت لازم دارد. آدرس دهی حافظه ای: کد: opcode mem,op1,op2 اینجا دستور دو کلمه ای است، ۳۲ بیت، ۱ بیت برای نوع، ۳۱ بیت، ۶ بیت برای دو ثبات، ۱۷ بیت برای آدرس، ۸ بیت باقی مانده درنتیجه تعداد دستورات دو کلمه ای ۲۵۶ است. |
RE: سوال ۶۹ معماری ۹۰ - shima506 - 16 بهمن ۱۳۹۱ ۱۱:۰۵ ب.ظ
سلام من اونجوری که توی کتاب مقسمی حل شده براتون توضیح میدم. گفته که دستورات می تونن ۱ کلمه ایی یا دو کلمه ایی باشند ، که یا ثباتی اند یا حافظه ایی مسلما دستورات ۱ کلمه ایی اینجا نمی تونه حافظه ای باشه چون ۱ کلمه ۱۶ بیت بیشتر نیست و از اونجایی که ۲ به توان ۱۶ کلمه تو حافظه داریم همه این ۱۶ بیت میره برای آدرس دهی و چیزی برای کد عملیاتی نمی مونه پس دستورات ۱ کلمه ایی ثباتی اند ، چون گفته تعداد دستورات ۱ کلمه ایی ۶۴ تاست یعنی ۲ به توان ۶ پس به ۶ بیت برای opcode و ۱ بیت برای I( مشخص کردن نوع آدرس دهی) احتیاج داریم از ۱۶ تا می مونه ۹ تا که چون کد سه آدرسه است میشه اندازه هر عملوند یا همون ثباتمون ۳ بیت. حالا برای ۲ کلمه ایی ها ، دو کلمه ۳۲ بیته و چون سه آدرسه است میشه یکی از عملوند هاش حافظه ای و ۲تای دیگه اش ثباتی ، ثبات ها که ۳ بیتی بودن پس ۶ بیت میره برای ثبات ها ، I هم ۱ بیت ، برای عملوند حافظه ای مون چون ۲ به توان ۱۶ تا حافظه اصلی داریم و چون گفته هر کلمه حافظه را دو واحد آدرس پذیر در نظر بگیرید ، پس مشه ۱۶ بیت برای عملوند حافظه ای به اضافه ۱ بیت برای مشخص شدن اینکه کدوم یکی از اون دو واحد آدرس پذیر مدنظره که سرجمع میشه ۱۷ بیت برای عملوند حافظه ای ، از ۳۲ بیتمون ۸ بیت می مونه که تعداد بیت های opcode دستور دو کلمه ای را مشخص می کنه ، ۲ به توان ۸ هم میشه ۲۵۶ تعداد دستورات ۲ کلمه ایی. |
سوال ۶۹ معماری ۹۰ - azad_ahmadi - 16 بهمن ۱۳۹۱ ۱۱:۴۱ ب.ظ
از همتون خیلی ممنونم. خیلی لطف کردین. پیروز و موفق باشید. |