تالار گفتمان مانشت
سراسری ۸۲ کامپیوتر - نسخه‌ی قابل چاپ

سراسری ۸۲ کامپیوتر - M3t30r - 02 اسفند ۱۳۹۵ ۰۹:۱۸ ب.ظ

متن سوال: فرض کنید در یک کامپیوتر از حافظه ۱M کلمه ای استفاده شده باشد، به گونه ای که کلمات آن ۱۵ بیتی هستند،این کامپیوتر n دستور و r رجیستر دارد.دستورات این کامپیوتر دو نوع هستند:
۱)دستوراتی که یک عملوند در حافظه و یک عملوند در رجیستر ها دارند.
۲)دستوراتی که هر دو عملوند آن ها در رجیستر ها است.
بسته به نوع دستور،کد ماشین دستورات میتواند یک کلمه ای باشد.نوع دستور توسط یک بیت خاص در کد ماشین مشخص میشود.کدام گزینه مقدار صحیحی را برای n دستور و r اعلام میکند؟
گزینه ها: r=15 , n=120 n=256 , r=16 n=64 , r=32 n=30 , r=125
سلام من پاسخ پارسه این تست رو دارم و گفته"هیچ گزینه ای صحیح نمیباشد" ولی حل تست رو متوجه نشدم.
از دوستان عزیز ممنون میشم اگه کسی پاسخ آقای یوسفی یا توضیح خودتون رو ارسال کنین.

RE: سراسری ۸۲ کامپیوتر - Pure Liveliness - 03 اسفند ۱۳۹۵ ۱۲:۰۶ ق.ظ

سلام.
حافظه دارای ۱M کلمه هست یعنی [tex]1K\times1K\approx2^{10}\times2^{10}=2^{20}[/tex] پس برای آدرس دهی این تعداد کلمه به ۲۰ بیت احتیاج داریم. طبق صورت سوال کلمات ۱۵ بیتی هستند.
دستورات ۲ نوع هستند:
۱)دستوراتی که یک عملوند در حافظه و یک عملوند در رجیستر ها دارند. که دستورات دو کلمه ای هستن و با توجه به صورت سوال که هر کلمه ۱۵ بیت هست ۳۰ بیتی هستن.
۲)دستوراتی که هر دو عملوند آن ها در رجیستر ها است. دستورات یک کلمه ای هستن که با توجه به صورت سوال ۱۵ بیتی هستن.
یک بیت از هر کدوم از این دو نوع دستورات برای تشخیص نوع ۱ و ۲ هست. یعنی از اولی ۲۹ تا میمونه، از دومی ۱۴ تا.
۲۹ بیت باقی مونده ی اولی شامل opcode و یک ثبات و یک آدرس حافظه میشه.
۱۴ تای باقی مونده ی دومی شامل opcode و دو تا ثبات میشه.
گزینه ها رو بررسی میکنیم.
گزینه ی ۱: r=15, n=120 چون rتعداد رجیستر هاست اگه قرار باشه ۱۵ تا رجیستر داشته باشیم پس برای میدانشون باید از ۴ بیت باید استفاده کنیم. پس اینطوری توی دستورات نوع دوم میشه ۱۴ منهای دو تا ۴ تا که میشه ۶. یعنی opcode ۶ بیت براش میمونه. حالا حدکثر دستورات نوع دوم میشه [tex]۲^۶[/tex]
برای دستورات نوع اول اگه رجیستر باشه ۴ بیت و آدرس حافظه هم که ۲۰ بیت هست، کلا ۵ بیت برای opcode میمونه یعنی کلا تعداد دستورات نوع اول میشه [tex]۲^۵[/tex] تا و جمع این دو نوع دستور میشه ۳۲+۶۴=۹۶ در حالی که تعداد دستورات رو گفته ۱۲۰ تاست. پس گزینه ی ۱ غلط هست.
گزینه ی ۲: r=16, n=256 اگه r باشه ۱۶ اونوقت یعنی تعداد رجیستر ها ۱۶ هست و میدانشون میشه ۴ بیت در اینصورت مثل گزینه ی اول حداکثر تعداد دستورات ۹۶ تا میتونه باشه که توی این گزینه گفته ۲۵۶ که غلط هست.
گزینه ی ۳: چون تعداد رجیستر ها ۳۲ هست پس طول میدانشون میشه ۵ بیت، در این صورت برای دستورات یک کلمه ای opcode میشه ۱۴ منهای دو تا ۵ تا یعنی ۴ بیت. حداکثر تعداد دستورات تک کلمه ای میشه ۱۶ تا. برای دستورات دو کلمه ای ۲۹ منهای ۲۰ منهای ۵ که میمونه ۴ بیت برای opcode که باز میشه ۱۶ تا دستور دو کلمه ای حداکثر. یعنی کلا ۳۲ تا دستور در حالی که توی این گزینه گفته ۶۴.
گزینه ی ۴:r=125, n=30 خب اگه تعداد ثبات ها ۱۲۵ باشه اونوثت میدانشون باید ۷ بیت باشه، یعنی عملا برای دستورات تک کلمه ای ۰ بیت برای opcode باقی میمونه! و حداکثر تعداد دستورات تک کلمه ای میشه ۱ دونه، برای دستورات دو کلمه ای ۲۹ منهای ۲۰ بیت برای آدرس حافظه و ۷ بیت برای میدان رجیستر کلا ۲ بیت برای opcode باقی میمونه که کلا میشه ۵ نوع دستور و اینم غلطه.
همه ی گزینه ها غلط هست.

RE: سراسری ۸۲ کامپیوتر - M3t30r - 03 اسفند ۱۳۹۵ ۰۸:۱۰ ق.ظ

(۰۳ اسفند ۱۳۹۵ ۱۲:۰۶ ق.ظ)Pure Liveliness نوشته شده توسط:  سلام.
حافظه دارای ۱M کلمه هست یعنی [tex]1K\times1K\approx2^{10}\times2^{10}=2^{20}[/tex] پس برای آدرس دهی این تعداد کلمه به ۲۰ بیت احتیاج داریم. طبق صورت سوال کلمات ۱۵ بیتی هستند.
دستورات ۲ نوع هستند:
۱)دستوراتی که یک عملوند در حافظه و یک عملوند در رجیستر ها دارند. که دستورات دو کلمه ای هستن و با توجه به صورت سوال که هر کلمه ۱۵ بیت هست ۳۰ بیتی هستن.
۲)دستوراتی که هر دو عملوند آن ها در رجیستر ها است. دستورات یک کلمه ای هستن که با توجه به صورت سوال ۱۵ بیتی هستن.
یک بیت از هر کدوم از این دو نوع دستورات برای تشخیص نوع ۱ و ۲ هست. یعنی از اولی ۲۹ تا میمونه، از دومی ۱۴ تا.
۲۹ بیت باقی مونده ی اولی شامل opcode و یک ثبات و یک آدرس حافظه میشه.
۱۴ تای باقی مونده ی دومی شامل opcode و دو تا ثبات میشه.
گزینه ها رو بررسی میکنیم.
گزینه ی ۱: r=15, n=120 چون rتعداد رجیستر هاست اگه قرار باشه ۱۵ تا رجیستر داشته باشیم پس برای میدانشون باید از ۴ بیت باید استفاده کنیم. پس اینطوری توی دستورات نوع دوم میشه ۱۴ منهای دو تا ۴ تا که میشه ۶. یعنی opcode ۶ بیت براش میمونه. حالا حدکثر دستورات نوع دوم میشه [tex]۲^۶[/tex]
برای دستورات نوع اول اگه رجیستر باشه ۴ بیت و آدرس حافظه هم که ۲۰ بیت هست، کلا ۵ بیت برای opcode میمونه یعنی کلا تعداد دستورات نوع اول میشه [tex]۲^۵[/tex] تا و جمع این دو نوع دستور میشه ۳۲+۶۴=۹۶ در حالی که تعداد دستورات رو گفته ۱۲۰ تاست. پس گزینه ی ۱ غلط هست.
گزینه ی ۲: r=16, n=256 اگه r باشه ۱۶ اونوقت یعنی تعداد رجیستر ها ۱۶ هست و میدانشون میشه ۴ بیت در اینصورت مثل گزینه ی اول حداکثر تعداد دستورات ۹۶ تا میتونه باشه که توی این گزینه گفته ۲۵۶ که غلط هست.
گزینه ی ۳: چون تعداد رجیستر ها ۳۲ هست پس طول میدانشون میشه ۵ بیت، در این صورت برای دستورات یک کلمه ای opcode میشه ۱۴ منهای دو تا ۵ تا یعنی ۴ بیت. حداکثر تعداد دستورات تک کلمه ای میشه ۱۶ تا. برای دستورات دو کلمه ای ۲۹ منهای ۲۰ منهای ۵ که میمونه ۴ بیت برای opcode که باز میشه ۱۶ تا دستور دو کلمه ای حداکثر. یعنی کلا ۳۲ تا دستور در حالی که توی این گزینه گفته ۶۴.
گزینه ی ۴:r=125, n=30 خب اگه تعداد ثبات ها ۱۲۵ باشه اونوثت میدانشون باید ۷ بیت باشه، یعنی عملا برای دستورات تک کلمه ای ۰ بیت برای opcode باقی میمونه! و حداکثر تعداد دستورات تک کلمه ای میشه ۱ دونه، برای دستورات دو کلمه ای ۲۹ منهای ۲۰ بیت برای آدرس حافظه و ۷ بیت برای میدان رجیستر کلا ۲ بیت برای opcode باقی میمونه که کلا میشه ۵ نوع دستور و اینم غلطه.
همه ی گزینه ها غلط هست.
یه دنیا ممنون از وقتی که گذاشتید،توضیحتون عالی بود