تالار گفتمان مانشت

نسخه‌ی کامل: سوال ۶۹ كنكور مهندسي كامپيوتر سال۹۰
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
توضیح مقسمی رو خوندم اما خوب درک نکردم.ممنون میشم از دوستان کمک کننConfused
سوال))دریک ماشین 3ادرسه حجم حافظه اصلی 16^2 کلمه 16 بیتی(هرکلمه معادل 2واحدادرس پذیراست).شیوه ادرس دهی در این ماشین مستقیم(ثباتی و حافظه ای)است و دستورات ماشین در 2 قالب یک و دوکلمه ای چند مورداست؟(فرض کنیدحداکثر تعدادممکن ثبات عمومی در این ماشین استفاده میشود)Confused
.یک قسمت رو جا انداختی. تو سوال گفته ما تعداد 64 دستور یک کلمه ایی داریم.

در اینجا طول یک کلمه از حافظه برابر ۱۶ بیت است.
کلا وقتی میگه دستورات یک کلمه ایی یا دو کلمه ایی یعنی ما دستوراتی با طول ۱۶ بیت (یک کلمه ایی) دستوراتی با طول ۳۲ بیت (دو کلمه ایی )داریم.

دستورات ما ۳ آدرسه هست یعنی تو هر یک از این قالب‌ها‌ی دستور ۳ مکان باید برای آدرس دهی انتخاب کرد که میتونه ثبات یا حافظه باشه.

گفته دستورات یک کلمه ایی ۶۴ تا هست.تعداد دستورات با توجه به opcode مشخص میشه و ما از اینجا میفهمیم که opcode مربوط به یک کلمه ایی برابر ۶ بیت است.
۱ بیت هم در هر کدام از قالب‌ها استفاده میشود تا مشخص کند که کدام قالب استفاده شده.
پس در قالب یک کلمه ایی ۶ بیت برای opcode و ۱ بیت برای نوع قالب جمعا میشه ۷ بیت از ۱۶ بیت طول دستور.۹ بیت برامون باقی میمونه که باید یه ۳ قسمت تقسیم بشه تا دستورمون بشه ۳ آدرسه.چون آدرس برای حافظه باید ۱۶ بیتی باشه (تو سوال گفته اندازه حافظه ۱۶^۲) پس این ۳ تا مربوط به ثبات میشن.از اینجا میفهمیم که ۳ بیت برای مشخص کردن هر ثبات لازم داریم.
قالب یک کلمه ایی کاملا اجزاش مشخص شد میریم سراغ دو کلمه ایی:
چیزهایی که میدونیم اینه که: ۳ بیت برای آدرس دهی به ثبات لازمه، ۱ بیت برای مشخص کردن نوع دستور‌، و برای آدرس دهی حافظه ۱۶ بیت
چون اینجا طول دستور ۳۲ بیت هست ،و دستر ۳ آدرسه تنها صورتی که میشه تقسیم کرد:
در اینجا چون از 16 بیت برای آدرس دهی حافظه استفاده میکنیم و در صورا سوال گفته که هر کلمه معادل 2 واحد ادرس پذیر است پس یک بیت دیگه هم در کنار آدرس حافظه در نظر میگیریم که میشه 17 بیت.
۲ تا ثبات و یک آدرس حافظه ایی که با هم میشه 23 بیت با ۱ بیت نوع دستور میشه۲4 بیت.
8 بیت از ۳۲ بیت باقی میمونه که opcode رو مشخص میکنه.
یعنی ۲56 دستور دو کلمه ایی
مرسی هماجون.خیلی خوب بودSmile

یک سوال هماجان)خط اول سوال ک گفته "هرکلمه معادل 2واحد ادرس پذیراست" یعنی چی؟؟؟؟کلیدسوال256 میشه ولی،نه512.یعنی opcode=8 میشه.اشکال کجاست؟؟؟
اهان خودم فهمیدمSmileچون گفته "هرکلمه معادل ۲واحد ادرس پذیراست" پس 1 بیت هم اینجادرنظرمیگیریم پس 17 بیت واسه حافظه است و 8 بیت برای opcodeSmileپس جواب نهایی میشه256
(27 دى 1390 10:29 ب.ظ)goldoonehkhanoom نوشته شده توسط: [ -> ]مرسی هماجون.خیلی خوب بودSmile
خواهش میکنمgoldone جان Smile
اره، همین که میگی درسته مرسی از اینکه یاد اوری کردی به این قسمت سوال توجه نکرده بودمRolleyes
قسمت اخر جواب رو اصلاح کردم Smile
(27 دى 1390 04:57 ب.ظ)homa نوشته شده توسط: [ -> ].
در اینجا چون از 16 بیت برای آدرس دهی حافظه استفاده میکنیم و در صورا سوال گفته که هر کلمه معادل 2 واحد ادرس پذیر است پس یک بیت دیگه هم در کنار آدرس حافظه در نظر میگیریم که میشه 17 بیت.

من این جمله اصلا تو کتم نمیره چرا؟ هر کلمه معادل دو واحد ادرس پذیر چه ربطی داره به این که یه بیت اضافه کنیم و بشه 17 بیت ادرس!!!
یه چیز دیگه مگه نه اینکه در دستورات دو کلمه ای کلمه اول اپ کد هست و کلمه دوم ادرس پس چرا ای جا و هیج جای دیگه رعایت نشده!!!

ما از یه طرف میگیم ماشینمون سه ادرسه است بعد از یه طرف دیگه میگیم هر کبمه معادل دو واحد ادرس پذیر!یعنی چی!
من امروز یک ساعت رو این خط فکر کردم!!!
(27 دى 1390 04:57 ب.ظ)homa نوشته شده توسط: [ -> ].
در اینجا چون از 16 بیت برای آدرس دهی حافظه استفاده میکنیم و در صورا سوال گفته که هر کلمه معادل 2 واحد ادرس پذیر است پس یک بیت دیگه هم در کنار آدرس حافظه در نظر میگیریم که میشه 17 بیت.
نقل قول: حجم حافظه اصلی ۱۶^۲ کلمه ۱۶ بیتی(هرکلمه معادل ۲واحدادرس پذیراست).

این جمله داره میگه ما یک حافظه داریم با 16^2 کلمه که هر کدوم 16 بیت هستند و این جمله تو پرانتز یک نکته رو داره میگه و اونم اینه که هر کلمه در حافظه به وسیله‌ی 2 ادرس مشخص میشه(معدل 2 واحد ادرس پذیر) یعنی برای رسیدن به کلمه‌ی بعدی باید 2 قدم برداریم یا 2 واحد به ادرس الان اضافه کنیم.و این موضوع ربطی به قالب دستور چند ادرسه باشه نداره. و اینو دقیقا بعد از خصوصیاتی که
درباره‌ی حافظه گفته اورده تا اطلا عاتی در مورد حافظه بهمون بده نه دستور.

به طور مثال اگه اولین کلمه با ادرس 0 مشخص میشه ادرس بعدی باید 2 واحد بریم جلو که میشه 2 .
و مثل این میمونه که ما با ادرس‌ها بایت رو مشخص میکنیم(بایت‌ها رو ادرس دهی میکنیم )و چون کلمه‌ها 16 بیتی هستن پس با ادرس 0 بایت اول(8بیت اول) و با ادرس 1 بایت دوم (8 بیت دوم) و در کل ما میتونیم بگیم که
[tex]2^{16}*2[/tex]
که جواب میشه‌ :
[tex]2^{16}*2 = 2^{17}[/tex]
و چون همون بالا گفتم که ما بایت‌ها رو آدرس دهی میکنیم پس تعدا بیت های آدرسمون 17 بیتی هست و نه 16 بیت
نقل قول: در اینجا چون از ۱۶ بیت برای آدرس دهی حافظه استفاده میکنیم و در صورا سوال گفته که هر کلمه معادل ۲ واحد ادرس پذیر است پس یک بیت دیگه هم در کنار آدرس حافظه در نظر میگیریم که میشه ۱۷ بیت.
من خودم هم خیلی رو این جمله فکر کردم که دقیقا منظورش چیه ،جمله بالا رو که تو جوابم نوشتم قسمت اولش اشتباهه اون موقع هنوز دلیل قانع کننده ایی واسه علتش نداشتم ولی الان به نظرم این دلیل درستی واسش هست.
و جمله‌ی بالا اصلا آدرسمون 16 بیتی نیست که بعد بخایم 1 بیت در کنارش در نظر بگیریم بلکه ما 17 بیت داریم.
و این همه‌ی مشکل رو حل میکنهSmile
(04 بهمن 1390 10:56 ب.ظ)homa نوشته شده توسط: [ -> ]این جمله داره میگه ما یک حافظه داریم با ۱۶^۲ کلمه .....
هما جون یعنی اگر مثلا میگفت هرکلمه معادل 2 واحد آدرس پذیره اون وقت 16^4 میکردیم؟؟؟
(08 بهمن 1390 03:45 ب.ظ)mohandeszahra نوشته شده توسط: [ -> ]مثلا میگفت هرکلمه معادل ۲ واحد آدرس پذیره اون وقت ۱۶^۴ میکردیم؟؟؟

فکر کنم منظورت این بوده که اگر میگفت هر کلمه معادل 4 واحد ادرس پذیر باشه
اونموقع ما برای این که به ادرس بعدی بریم باید 4 واحد به ادرسمون اضافه کنیم پس تعداد بیت آدرس میشه: 18 بیت
وقتی دستورات دو کلمه ای هم باشند
ما pc=pc+2
داریم که طبق گفته استاد یوسفی کلمه اول اپ کد کلمه دوم ادرس میباشد
اینی که الان تو پرانتز گفته یعنی همین قصه
pc+2=pc
?
هر کاری میکنم نمیتونم منظور این تیکه رابفهمم....
لینک مرجع