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

روش های I/O - سوال ۶۴ کامپیوتر ۹۲ - hosshah - 16 بهمن ۱۳۹۲ ۰۴:۰۱ ق.ظ

سلام دوستان در مورد گزینه ۱ مثلا چه عاملی باعث میشه که ما حداکثر سرعت رو نداشته باشیم؟ سریعترین روش یعنی I/O Mapped هستش؟؟؟
گزینه چهار منظورش همون Polling هست؟؟؟!!!
کلید سوال گزینه ۱ هست. در حالی که گزینه ۲ مطمئنن صحیح نیست چون هر موقع وقفه میاد دستور جاری باید تا انتها اجرا بشه و بعد بریم سراغ رسیدگی به وقفه
ممنون میشم نظرتون رو بگید

[تصویر:  246503_Capturecqme1.png]

RE: روش های I/O - سوال ۶۴ کامپیوتر ۹۲ - masoud67 - 16 بهمن ۱۳۹۲ ۰۷:۴۷ ق.ظ

(۱۶ بهمن ۱۳۹۲ ۰۴:۰۱ ق.ظ)hosshah نوشته شده توسط:  سلام دوستان در مورد گزینه ۱ مثلا چه عاملی باعث میشه که ما حداکثر سرعت رو نداشته باشیم؟ سریعترین روش یعنی I/O Mapped هستش؟؟؟
گزینه چهار منظورش همون Polling هست؟؟؟!!!
کلید سوال گزینه ۱ هست. در حالی که گزینه ۲ مطمئنن صحیح نیست چون هر موقع وقفه میاد دستور جاری باید تا انتها اجرا بشه و بعد بریم سراغ رسیدگی به وقفه
ممنون میشم نظرتون رو بگید
گزینه ۱
همونطور که میدونی ، memory mapped IO گذرگاه ارتباطی بین پردازنده و IO و حافظه مشترکه و باید با آدرس، دستورات IO و حافظه رو مشخص کنیم که این مشخص کردن آدرس نیاز به دیکد داره. ولی توی Isolated IO کافیه پردانده خطهای کنترلی حافظه ویا IO را فعال کنه که مشخص کنه دستور مربوط به کدومه و وقتی هم گذرگاه مجرا باشه یعنی گذرگاه ارتباطی بین CPU و IO جدا از گذرگاه ارتباطی بین CPU و حافظه است و دیگه نیازی به دیکد و یا معطل موندن IO برای انجام دستورات حافظه ای و یا معطل موندن حافظه برای پایان دستورات IO نیست.
پس سریعترین روش گذرگاه مجزا هست.
من IO Mapped را تا حالا نشنیده بودم Big Grin

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

و در کل حتی اگه گزینه ۲ هم غلط باشه ، گزینه بد از بدتر گزینه ۱ محسوب میشه چون خلاف واقع هست

RE: روش های I/O - سوال ۶۴ کامپیوتر ۹۲ - hosshah - 16 بهمن ۱۳۹۲ ۰۲:۰۴ ب.ظ

خدا عوضت بده جوون Big Grin
خیلی خوب و کامل بود ماشالا
ایشالا خدا درهای بسته علم رو برات باز کنه
والا I/O mapped رو از دکتر اجلالی شنیدم من (دیگه چون میخوایم بریم شریف باید حرفای ایشون رو قبول کنیم Big Grin )
این گزینه ۴ رو زحمت میکشی بگی همون Polling هست که پردازنده هی سر میزنه ؟ یا نه یه چی دیگس؟
دم شما گرم

RE: روش های I/O - سوال ۶۴ کامپیوتر ۹۲ - e.shrm - 16 بهمن ۱۳۹۲ ۰۲:۲۳ ب.ظ

(۱۶ بهمن ۱۳۹۲ ۰۲:۰۴ ب.ظ)hosshah نوشته شده توسط:  خدا عوضت بده جوون Big Grin
خیلی خوب و کامل بود ماشالا
ایشالا خدا درهای بسته علم رو برات باز کنه
والا I/O mapped رو از دکتر اجلالی شنیدم من (دیگه چون میخوایم بریم شریف باید حرفای ایشون رو قبول کنیم Big Grin )
این گزینه ۴ رو زحمت میکشی بگی همون Polling هست که پردازنده هی سر میزنه ؟ یا نه یه چی دیگس؟
دم شما گرم
بله ، polling هست.
در مورد گزینه ۱ ، پاسخ دکتر اجلالی:
اگرچه در برخی پردازنده ها ممکن است بین دو روش I/O mapped و memory mapped اختلاف سرعتی مشاهده شود ولی اینکه بخواهیم memory mapped را سریع ترین بدانیم صحیح نیست و کلیت ندارد.
آنچه اصولا بر سرعت I/O موثر است و آن را بهتر میکند استفاده از وقفه ، استفاده از DMA و پردازنده های خاص I/O است. لذا این گزینه به دلیل ذکر واژه سریع ترین صحیح نمی باشد.

RE: روش های I/O - سوال ۶۴ کامپیوتر ۹۲ - hosshah - 16 بهمن ۱۳۹۲ ۰۲:۲۹ ب.ظ

خیلی لطف کردین ممنون و سپاسگزار

RE: روش های I/O - سوال ۶۴ کامپیوتر ۹۲ - masoud67 - 16 بهمن ۱۳۹۲ ۰۲:۴۷ ب.ظ

(۱۶ بهمن ۱۳۹۲ ۰۲:۰۴ ب.ظ)hosshah نوشته شده توسط:  خدا عوضت بده جوون Big Grin
خیلی خوب و کامل بود ماشالا
ایشالا خدا درهای بسته علم رو برات باز کنه
والا I/O mapped رو از دکتر اجلالی شنیدم من (دیگه چون میخوایم بریم شریف باید حرفای ایشون رو قبول کنیم Big Grin )
این گزینه ۴ رو زحمت میکشی بگی همون Polling هست که پردازنده هی سر میزنه ؟ یا نه یه چی دیگس؟
دم شما گرم
این سوال مخلوطی از چندتا مبحث میباشد
۱/ ارتباط گذرگاه IO و حافظه
۲/ حالتهای انتقال بین IO و حافظه

توی اولی ما سه حالت داریم
۱/ گذرگاه مجزا که پردازنده با دو گذرگاه مجزا به IO و حافظه وصله
۲/ گذرگاه نیمه مشترک : Isolated IO که گذرگاه آدرس و داده بین CPU و IO و حافظه یکیه ولی گذرگاه کنترل مجزاست . به خاطر اینکه پردازنده با اتصالات IO read/write و MEM read/Write میتونه بگه الان میخواد با کدوم یکی از حافظه یا دستگاه جانبی ارتباط برقرار کنه
۳/ گذرگاه مشترک Memory MappedIO که گذرگاه آدرس و داده و کنترل یکیه و با آدرس دستورات مشخص میشه که دستور حافظه ای هست یا دستور مربوط به IO

اما وقتی بحث بر سر انتقال اطلاعات بین IO و حافظه است ۳ حالت زیر پیش میاد
۱/ روش Programed IO
یعنی IO تحت کنترل پردازنده. یعنی هر داده ای که میخواد از دستگاه IO به حافظه و بالعکس بره باید از روی جنازه CPU عبور کنه
تو این حالت پردازنده دائم باید بیت های حافظه و دستگاه را چک کنه که ببینه اطلاعاتی هست که انتقال بده یا نه


۲/ Interupted IO
یعنی پردازنده میره سراغ کار خودش و هر وقت وقفه اومد ، میاد تا اطلاعات را انتقال بده
که فهمیدن اینکه کی وقفه را واسش فرستاده سه حالت داره
۱/ polling یا سرکشی . یعنی توی یه حلقه به صورت نرم افزاری چک کنه
۲ . daisy chain یا زنجیری حوصله توضیح ندارم Big Grin
۳/ موازی که با ثبات وقفه و ثبات ماسک و اینجور چیزا بود

۳ . حالت آخر انتقال هم DMA هست که احتمالا نیازی به توضیح نباشه

پس اون گزینه ۴ به هیچ وجه polling نیست

RE: روش های I/O - سوال ۶۴ کامپیوتر ۹۲ - hosshah - 16 بهمن ۱۳۹۲ ۰۳:۰۳ ب.ظ

چه جالب!!!!
ترکیب زیبایی بود
مرسی داداش لطف کردی

RE: روش های I/O - سوال ۶۴ کامپیوتر ۹۲ - maryam.raz - 17 بهمن ۱۳۹۲ ۰۲:۰۹ ق.ظ

من نفهمیدم این i/o mapped چیه؟
I/O نگاشت شده در حافظه مگه مموری مپ نیست؟

RE: روش های I/O - سوال ۶۴ کامپیوتر ۹۲ - hosshah - 17 بهمن ۱۳۹۲ ۰۲:۲۵ ق.ظ

(۱۷ بهمن ۱۳۹۲ ۰۲:۰۹ ق.ظ)maryam.raz نوشته شده توسط:  من نفهمیدم این i/o mapped چیه؟
I/O نگاشت شده در حافظه مگه مموری مپ نیست؟

دومی که گفتین همون Memory mapped هست و یعنی فضای آدرس حافظه و I/O پیوستس و دستور دسترسی بهشون یکیه (LD یا STR) و بر اساس آدرس از هم متمایز میشن
اما I/O Mapped یعنی دیگه فضای آدرس پیوسته نیست (مثلا ممکنه دو تا آدرس ۱۰۰۰ داشته باشیم. یکی برای حافظه و یکی برای I/O) اما اینجا تمایز بر اساس دستوره (مثلا in و out برای I/O و همچنین LD و STR برای مموری)

RE: روش های I/O - سوال ۶۴ کامپیوتر ۹۲ - maryam.raz - 17 بهمن ۱۳۹۲ ۰۲:۴۹ ق.ظ

(۱۷ بهمن ۱۳۹۲ ۰۲:۲۵ ق.ظ)hosshah نوشته شده توسط:  
(17 بهمن ۱۳۹۲ ۰۲:۰۹ ق.ظ)maryam.raz نوشته شده توسط:  من نفهمیدم این i/o mapped چیه؟
I/O نگاشت شده در حافظه مگه مموری مپ نیست؟

دومی که گفتین همون Memory mapped هست و یعنی فضای آدرس حافظه و I/O پیوستس و دستور دسترسی بهشون یکیه (LD یا STR) و بر اساس آدرس از هم متمایز میشن
اما I/O Mapped یعنی دیگه فضای آدرس پیوسته نیست (مثلا ممکنه دو تا آدرس ۱۰۰۰ داشته باشیم. یکی برای حافظه و یکی برای I/O) اما اینجا تمایز بر اساس دستوره (مثلا in و out برای I/O و همچنین LD و STR برای مموری)
ممنونمSmile