تالار گفتمان مانشت
سوال ۶۴ معماری مهندسی کامپیوتر سال ۹۲ - نسخه‌ی قابل چاپ

سوال ۶۴ معماری مهندسی کامپیوتر سال ۹۲ - هاتف - ۰۶ بهمن ۱۳۹۲ ۰۹:۲۹ ب.ظ

سلام، کسی میتونه گزاره های مختلف اش رو تشریح کنه؟
[تصویر:  241544_problem_CA_92.gif]
و توضیح مختصری درباره روش های memory-mapped و interupted-I/O و Programed I/O متشــکرم.

RE: سوال ۶۴ معماری مهندسی کامپیوتر سال ۹۲ - آنجلا - ۰۷ بهمن ۱۳۹۲ ۱۱:۲۹ ق.ظ

راستش رو بخواین این سوال منم هست من جایی ندیدم که DMA داده های بین دو دستگاه I/O تبادل کنه همیشه بین حافظه و یه دستگاه I/O داده منتقل میشد به نظر من گزینه ۳ جمله نادرست هست ..
برای ارتباط یه طرفه بین پردازنده و دستگاهI/O دو روش وجود داره :memory-mapped I/O و isolated I/O
روش isolated I/O روشی است برای ارتباط یک طرفه بین پردازنده و دستگاه I/O...دستگاه برای خودش یه سری ثبات کنترل و وضعیت و..داره که یه آدرسی هم دارن بهش میگن شماره پورت.. پردازنده وقتی میخواد یه دستوری به دستگاه بده فرمان I/O و شماره پورت اون جیستر رو رو گذرگاه داده و آدرس قرار می ده و دستورموردنظر در اون رجیستر نوشته و دستگاه هم اون فرمان رو بعدش اجرا می کنه.. کاملا مشخصه که در این روش دستورات ورودی خروجی داریم که مختص کار با دستگاه هاست و نمیشه از اونها برای کار با حافظه استفاده کرد..
memory-mapped I/O: در این روش یه فضایی از حافظه ی اصلی رو اختصاص میدن به دستگاه های I/O...از این به بعد به جایی اینکه پردازنده بره و در ثبات ها مستقیم بنویسه در حافظه ی اصلی می نویسه در این روش هم مشخصه که برای کار با دستگاه های I/O از دستورات حافظه ای استفاده میکنن..
اون دوتای دیگه intrupt I/O و rogrammed I/O دو روشه برای اینکه پردازنده چه جوری بفهمه دستگاه دستوری رو که بهش داده بود رو تموم کرد یا نه توی اولی خود دستگاه وقتی کارش تموم شد به پردازنده خبر میده که روش خوبیه چون پردازنده میره کارای مفید خودشوانجام میده و مطمئنه که دستگاه هر وقت کارش تموم شد بهش خبر میده... اما روش دوم پردازنده هی باید خودش سر بزنه به دستگاه که ببینه که کارشو تموم کرد یا نه معلومه که روش خوبی نیست چون وقت پردازنده داره واسه این سرزدنای الکی تلف میشه..
اینکه گزینه ۱ هم نادرست هست شک دارم ولی گزینه ۳ هم نادرسته نظر دوستان دیگه؟

RE: سوال ۶۴ معماری مهندسی کامپیوتر سال ۹۲ - e.shrm - 07 بهمن ۱۳۹۲ ۰۱:۳۸ ب.ظ

پاسخی که دادند کاملا درسته.
در مورد گزینه ۳ :
DMA اغلب به عنوان روش تبادل داده بین دستگاه های ورودی خروجی و حافظه مطرح میشه ولی تو سیستم های کامپیوتری به هر وسیله جانبی به چشم حافظه نگاه می کنند ، بنابراین امکان نبادل داده بین هر دو بانکی وجود داره. می حواد هر دو دستگاه ورودی خروجی باشه یا چیزای دیگه. برای کامپیوتر فرقی نداره ، چون همه اون ها رو به چشم حافظه میبینه که قابل آدرس دهی هستند.

RE: سوال ۶۴ معماری مهندسی کامپیوتر سال ۹۲ - izadan11 - 07 بهمن ۱۳۹۲ ۰۱:۵۲ ب.ظ

این سوال همون لحظه که خوندمش گزینه ی ۱ زدم
بدیهیه که سریعترین روش dma هست و I/O mapped اصلا روش انجام عملیات نیست روش ارتباط cpu با I/O هست
درمورد گزینه ی ۳ شاید هیچ کتابی نیومده درمورد DMA توضیح بده که عملیات بین دوتا I/O رو انجام می ده ولی فرض کنید دارید یه DMA برای یک cpu طراحی می کنید اگرچنین قابلیتی رو در dma خودتون بگذارید چه مشکلی پیش میاد؟

RE: سوال ۶۴ معماری مهندسی کامپیوتر سال ۹۲ - Saoshiyant - 07 بهمن ۱۳۹۲ ۰۱:۵۳ ب.ظ

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