تالار گفتمان مانشت
سوال ۱۰۵ کنکور مهندسی فناوری اطلاعات سال ۸۸ - نسخه‌ی قابل چاپ

سوال ۱۰۵ کنکور مهندسی فناوری اطلاعات سال ۸۸ - rad.bahar - 06 بهمن ۱۳۹۰ ۰۷:۱۹ ب.ظ

پردازنده ای دارای ۳ نوع قالب دسنور است بیشترین تعداد دستورات این پردازنده چقدر است
نوع۱: ۴بیت opc و ۴بیت opnd1 و ۴بیت opnd2
نوع۲: ۴بیت opc و ۴بیت opnd2
نوع۳: ۱۲بیت opc

جواب:۳۵۸۶

RE: 105 it88 - shervinrs - 06 بهمن ۱۳۹۰ ۰۷:۳۷ ب.ظ

اگر در نظر بگیرید که دستورات نوع ۱ و ۲ هر کدوم فقط یک دستور داشته باشن، میشه گفت که از ۱۶ حالتی که با ۴ بیت اول میشده ایجاد کرده ۲ حالتش رو مصرف کردن. پس برای دستورات نوع سوم ۱۴ حالت برای ۴ بیت اول و [tex]2^8[/tex] حالت هم برای هشت بیت بقیه خواهیم داشت. پس خواهیم داشت:
دستورات نوع اول: ۱ دستور
دستورات نوع دوم: ۱ دستور
دستورات نوع سوم: [tex]14*2^8[/tex]

که مجموعا ۳۵۸۶ دستور خواهند بود.

RE: 105 it88 - rad.bahar - 06 بهمن ۱۳۹۰ ۰۷:۵۱ ب.ظ

(۰۶ بهمن ۱۳۹۰ ۰۷:۳۷ ب.ظ)shervinrs نوشته شده توسط:  اگر در نظر بگیرید که دستورات نوع ۱ و ۲ هر کدوم فقط یک دستور داشته باشن، میشه گفت که ...
ممنون از چوابتان ولی متوجه نشدم یعنی چی اگر در نظر بگیرید که دستورات نوع ۱ و ۲ هر کدوم فقط یک دستور داشته باشن، میشه گفت که از ۱۶ حالتی که با ۴ بیت اول میشده ایجاد کرده ۲ حالتش رو مصرف کردن.
ببخشید که گیجم میشه مفصلتر توضیح بدید

RE: 105 it88 - shervinrs - 06 بهمن ۱۳۹۰ ۰۸:۱۵ ب.ظ

دستورات نوع ۱ چهار بیت برای قسمت Opcode (عملگر) دارن و ۲ تا قسمت چهار بیتی هم برای عملوندهاشون. اون چهار بیت Opcode هست که تعیین میکنه که با این دوتا عملوند باید چکار کرد. چهار بیت برای Opcode یعنی دستورات نوع ۱ حداکثر ۱۶ دستور می تونن داشته باشن. از طرف دیگه دستورات نوع ۲ هم چهار بیت برای قسمت دستور دارن که دوباره حداکثر ۱۶ دستور میشه باهاشون ساخت.
اما این دو قسمت (Opcode) چهار بیتی برای هر دو نوع دستور سمت چپ فرمت دستور هستند. که در سوال هم در شکلی نشون داده شده.
طبق شکل چهار بیت سمت چپ هر دستور برای هر سه نوع دستور مشترک. مثلا اگر در دستور نوع ۱ بیت های ۰۰۰۰ به معنی ADD باشه. دیگه ما نمی تونیم دستوری با بیت های ۰۰۰۰ به عنوان دستور نوع ۲ تعریف کنیم. چون محل این چهار بیت برای هر دو نوع دستور یکجاست. (مثلا از بیت های ۰ تا ۳ دستورات)
از طرف دیگه ما دستورات نوع ۳ رو داریم که تمام ۱۲ بیتشون رو میشه برای Opcode استفاده کرد. اما از اونجایی که چهار بیت سمت چپ برای هر سه دستور مشترک هست، تعداد دستورات نوع ۳ نمی تونن [tex]2^1^2[/tex] باشن و ما تعدادی از حالات چهار بیت اول رو باید برای تعریف دستورات نوع ۱ و نوع ۲ استفاده کنیم. تعداد حالات استفاده نشده از چهار بیت اول ضرب در [tex]2^8[/tex]، تعداد دستورات نوع ۳ رو تعیین خواهند کرد. که بهترین حالت وقتی که ما فقط دو حالت رو مصرف کرده باشیم و ۱۴ حالت دیگه رو برای دستورات نوع ۳ آزاد گذاشته باشیم.

RE: 105 it88 - homa - 06 بهمن ۱۳۹۰ ۰۸:۳۳ ب.ظ

(۰۶ بهمن ۱۳۹۰ ۰۷:۱۹ ب.ظ)rad.bahar نوشته شده توسط:  پردازنده ای دارای ۳ نوع قالب دسنور است بیشترین تعداد دستورات این پردازنده چقدر است
نوع۱: ۴بیت opc و ۴بیت opnd1 و ۴بیت opnd2
نوع۲: ۴بیت opc و ۴بیت opnd2
نوع۳: ۱۲بیت opc

جواب:۳۵۸۶

تعداد بیت واسه opcode مشخص کننده‌ی تعداد دستورات مختلف تو‌ی سیستم هست پس هر چه تعداد بیت واسه opcode بیشتر باشه تعداد دستورات بیشتر میشه.

اینجا بیشترین opcode مربوط به دستور سوم هست.یعنی میشه [tex]2^{12}[/tex] دستور داشت. اما سیستم ما طراحیش جوری هست که حتما دو قالب دستوری اول و دوم هم داریم.با یک بیت میشه دو دستور مشخص کرد.پس یک بیت از ۱۲ بیت رو میذاریم کنار تا بتونیم حداقل یک دستور نوع ۱ و یک دستور نوع ۲ داشته باشیم.
پس تعداد بیت های opcode میشه ۱۱ تا یعنی حالا [tex]2^{11}[/tex] دستور نوع ۳ داریم و ۲ تا هم از دو نوع دیگه.

RE: 105 it88 - shervinrs - 07 بهمن ۱۳۹۰ ۰۶:۴۴ ب.ظ

(۰۶ بهمن ۱۳۹۰ ۰۸:۳۳ ب.ظ)homa نوشته شده توسط:  تعداد بیت واسه opcode مشخص کننده‌ی تعداد دستورات مختلف تو‌ی سیستم هست .....

خب این درست نیست. همیشه نمیشه گفت که یک بیت میگذاریم کنار، یا به تعداد حالاتی که می خوایم داشته باشیم بیت اختصاص میدیم.
ضمنا طبق گفته سوال باید حتما چهار بیت برای تعیین Opcode در نظر بگیریم.
نمونه دیگه ای از تست های این چنینی در سال های گذشته بوده. به کتاب یوسفی مراجعه کنید.

RE: 105 it88 - homa - 07 بهمن ۱۳۹۰ ۰۸:۱۱ ب.ظ

(۰۷ بهمن ۱۳۹۰ ۰۶:۴۴ ب.ظ)shervinrs نوشته شده توسط:  خب این درست نیست. همیشه نمیشه گفت که یک بیت میگذاریم کنار، یا .....
نه لازم نیست هر کجا هر چه بیت واسه opcode در نظر گرفته حتما باید استفاده کنه.من از ۴ بیت که میشه ۱۶ دستور فقط یک حالت رو در نظر میگیریم و بقیه‌ی بیت‌ها رو برای این قالب دستور در نظر نمیگیرم.

RE: 105 it88 - shervinrs - 07 بهمن ۱۳۹۰ ۰۸:۴۴ ب.ظ

نقل قول: نه لازم نیست هر کجا هر چه بیت واسه opcode در نظر گرفته حتما باید استفاده کنه.من از ۴ بیت که میشه ۱۶ دستور فقط یک حالت رو در نظر میگیریم و بقیه‌ی بیت‌ها رو برای این قالب دستور در نظر نمیگیرم.
بله، اما در پست قبل بیت اول رو ظاهرا فقط برای دو نوع دستور نوع اول و دوم کنار گذاشتین.

RE: 105 it88 - homa - 08 بهمن ۱۳۹۰ ۱۲:۳۶ ق.ظ

(۰۷ بهمن ۱۳۹۰ ۰۸:۴۴ ب.ظ)shervinrs نوشته شده توسط:  بله، اما در پست قبل بیت اول رو ظاهرا فقط برای دو نوع دستور نوع اول و دوم کنار گذاشتین.

تو ضیح دادم که برای چی اینکارو کردم‌، من میخام بیشترین تعداد دستور را داشته باشم و دستوری رو در نظر میگیرم که بیشترین opcode رو داره ولی چون باید دو نوع دستور دیگه هم داشته باشم اگه از هر کدوم یک حالت در نظر بگیرم پس یعنی ۲ تا دستور از نوع سوم نیستن که میشه همون یک بیت کنار گذاشتن از دستورات نوع سوم.
من نمیتونم بگم که از ۴ بیت opcode یک بیت رو استفاده میکنم از هر دستور نوع اول و دوم چون در این صورت تعداد دستورات واسه هر کدوم میشه ۲تا