اسلايد۸

Download Report

Transcript اسلايد۸

‫سازمان‬
‫ورودی‪ -‬خروجی‬
‫• مشخصات ‪:I/O‬‬
‫‪ -1‬سرعت انتقال دیتا در ‪ I/O‬های مختلف بسیار متنوع‬
‫است‪.‬‬
‫‪ -2‬عملیات مربوط به ‪I/O‬‬
‫کالک ‪ CPU‬هماهنگ نیستند‪.‬‬
‫ها آسنکرون هستند‪ ،‬یعنی با‬
‫‪ -3‬کیفیت اطالعات دریافتی از دستگاه های جانبی‬
‫مشکوک است‪ .‬بنابراین استراتژی های تشخیص و تصحیح‬
‫خطا برای تضمین درستی دیتا نیاز است‪.‬‬
‫‪ -4‬بسیاری از دستگاه های ‪ I/O‬مکانیکی هستند و‬
‫بنابراین بیشتر از قطعات داخلی در معرض خرابی و‬
‫خطر هستند‪.‬‬
‫‪ -5‬ماژول های نرم افزاری ‪ I/O‬ک به درایورهای دستگاه‬
‫معروف هستند‪ ،‬باید طوری نوشته شوند که مشخصات گفته‬
‫شده در باال را پشتیبانی کنند‪.‬‬
‫• گذرگاه ‪:I/O‬‬
‫• فرمان ‪:I/O‬‬
‫چهار نوع فرمان ‪ I/O‬وجود دارد که توسط ‪ CPU‬به مدار‬
‫واسط منتقل شده و به آنها پاسخ می دهد‪:‬‬
‫‪ -1‬فرمان کنترلی‪:‬‬
‫یک فرمان کنترلی یک دستگاه جانبی ار فعال می کند و به‬
‫آن اطالع می دهد که چه باید انجام دهد که این فرمان ها‬
‫و ترتیب ارسال انها برای دستگاه های جانبی مختلف فرق‬
‫می کند‪.‬‬
‫‪ -2‬فرمان وضعیت‪:‬‬
‫یک فرمان وضعیت برای بررسی حالت های مختلف یک واسط یا‬
‫دستگاه جانبی بکار می رود‪ .‬وضعیت واسط یا دستگاه جانبی‬
‫معموال در ثباتی قرار داده می شود که این ثبات تسط‬
‫پردازنده خوانده می شود‪.‬‬
‫‪ -3‬فرمان خروج داده ها‪:‬‬
‫یک فرمان خروج داده باعث می شود که واسط آنچه بر روی‬
‫خطوط داده در گذرگاه ‪ I/O‬قرار دارد را به ثبات های خود‬
‫• گذرگاه ‪ I/O‬و گذرگاه حافظه‪:‬‬
‫پردازنده های عالوه بر ارتباط با ‪ I/O‬نیاز به ارتباط با‬
‫حافظه نیز دارند‪.‬‬
‫این گذرگاه شامل خطوط داده‪ ،‬آدرس و کنترل می باشد‪.‬‬
‫منظور از خطوط کنترلی سیگنال های ‪ I/O READ‬و ‪I/O WRITE‬‬
‫برای خواندن از ورودی و نوشتن در خروجی و سیگنال های‬
‫‪ MEMORY READ‬و ‪ MEMORY WRITE‬برای خواندن از حافظه و‬
‫نوشتن در حافظه می باشد‪.‬‬
‫‪ I/O‬و حافظه به سه صورت می توانند در کنار‬
‫گذرگاه‬
‫یکدیگر واقع شوند‪:‬‬
‫ دو گذرگاه مجزا‪ ،‬یکی برای ‪ I/O‬و دیگری برای حافظه‬‫ یک گذرگاه نیمه مشترک با خطوط داده وآدرس مشترک و‬‫خطوط کنترلی مجزا برای ‪ I/O‬و حافظه‬
‫‪ -‬یک گذرگاه مشترک برای ‪ I/O‬و حافظه‬
‫• گذرگاه مجزا‪:‬‬
‫• گذرگاه نیمه مشترک‪:‬‬
‫• هنگامی که ‪ ، CPU‬آدرسی روی گذرگاه مشترک قرار میدهد‪،‬‬
‫با فعال نمودن ‪ I/O READ‬و یا ‪ I/O WRITE‬اعالم مینماید که‬
‫آدرس‪ ،‬مربوط به واسطهای ‪ I/O‬می باشد و یا با فعال‬
‫نمودن ‪ MEMORY READ‬و یا ‪ MEMORY WRITE‬مشخص مینماید که‬
‫آدرس‪ ،‬مربوط به مکانی از حافظه است‪.‬‬
‫• نکته‪ :‬در ‪ ،ISOLATED I/O‬دستور جداگانهای از سوی ‪CPU‬‬
‫برای ‪ I/O‬و حافظه وجود دارد‪.‬‬
‫• گذرگاه مشترک‪:‬‬
‫• در این روش آنچه از تداخل آدرسها جلوگیری مینماید و‬
‫در مواقعی حافظه و در مواقع دیگر‪ ...‬را فعال مینماید‬
‫جدانمودن آدرسهاست‪ .‬در این حالت بخشی از فضای آدرس به‬
‫حافظه و بخشی دیگر به ثباتهای واسطهای ‪ ...‬منتسب‬
‫میشوند‪ .‬از این دیدگاه ثباتهای واسط نیز به عنوان‬
‫بخشی از سیستم حافظه در نظر گرفته میشوند‪.‬‬
‫• نکته‪ :‬در روش ‪ MEMORY-MAPPED I/O‬دستورات جداگانهای‬
‫• ساختار‪ ،‬پروتکل و کنترل باس‪:‬‬
‫• یک باس شامل قسمتهای فیزیکی‪ ،‬مثل سیمها‪ ،‬متصلکنندهها‬
‫و یک پروتکل باس میباشد‪ .‬سیمها به گروههای مجزایی مثل‬
‫کنترل‪ ،‬آدرس‪ ،‬دیتا و تغذیه تقسیم میشوندکه در شکل زیر‬
‫نشان داده شده است‪.‬‬
‫‪Disk‬‬
‫‪Memory‬‬
‫‪CPU‬‬
‫• دستگاههای مختلفی به باس متصل هستند و فقط یک دستگاه‬
‫در یک لحظه میتواند دیتا ارسال کند‪ .‬همه دستگاهها‬
‫همزمان گوش میکنند ولی فقط یک دستگاه دریافتکننده‬
‫است‪ .‬فقط یک دستگاه میتواند مستر باس (‪)BUS MASTER‬‬
‫باشد و سایر دستگاهها برده ( ‪ )SLAVE‬هستند‪.‬‬
‫• مستر‪ ،‬باس را کنترل میکند و میتواند فرستنده یا‬
‫گیرنده باشد‪ .‬یکی از دستگاههایی که به باس متصل‬
‫• کنترل ‪:Strobe‬‬
‫• در این روش تنها یک سیگنال کنترلی با نام ‪Strobe‬‬
‫برای هر انتقال الزم است‪ .‬این سیگنال میتواند‬
‫«فعالشونده توسط مبدأ» و یا «فعالشونده توسط‬
‫مقصد» باشد‪.‬‬
‫• الف ـ فعالشونده توسط مبدأ‪:‬‬
‫• همانگونه که در شکل زیر دیده میشود‪ ،‬مبدأ ابتدا‬
‫داده را روی گذرگاه داده قرار میدهد و بعد از‬
‫مدتی ناچیز که از پایداری داده اطمینان حاصل شد‪،‬‬
‫سیگنال ‪ Strobe‬را فعال مینماید‪ ،‬این سیگنال به‬
‫گذرگاه داده‬
‫فرصت کافی‬
‫مقصدمیماند تا‬
‫همراه داده مدتی فعال‬
‫‪ Strobe‬مقصد مبدا‬
‫برای انتقال داده باشد‪ ،‬البته عموما مقصد از لبه‬
‫داده داده به‬
‫انتقال‬
‫برای‬
‫معتبر‬
‫پایینرونده سیگنال ‪ Strobe‬داده‬
‫سیگنال ‪Strobe‬‬
‫ثباتهای خود استفاده مینماید‪ .‬مبدأ ‪Strobe‬‬
‫را غیرفعال نموده و بعد از مدتی داده را نیز از‬
‫• کنترل ‪:Strobe‬‬
‫• ب ـ فعالشونده توسط مقصد‪:‬‬
‫• این حالت نیز در شکل زیر نشان داده میشود‪ .‬مقصد‬
‫ابتدا توسط سیگنال ‪ Strobe‬از مبدأ درخواست داده‬
‫مینماید‪ ،‬مبدأ نیز در پاسخ‪ ،‬داده را روی گذرگاه‬
‫قرار میدهد‪ .‬بعد از مدتی مقصد سیگنال ‪ Strobe‬را‬
‫غیرفعال مینماید و در همان زمان میتواند داده را‬
‫گذرگاه داده‬
‫انتقال دهد و سپس به‬
‫نیز به ثباتهای داخلی خود‬
‫مبدا گذرگاه بر‬
‫‪ Strobe‬از روی‬
‫مقصد داده را‬
‫دنبال ان مبدأ نیز‬
‫میدارد‪.‬‬
‫داده‬
‫داده معتبر‬
‫‪Strobe‬‬
‫• کنترل ‪:Handshaking‬‬
‫• روش ‪ Strobe‬معایبی دارد که توسط ‪ Handshaking‬رفع‬
‫میشود‪.‬‬
‫• از جمله این معایب این است که در حالت‬
‫فعالشونده توسط مبدأ‪ ،‬مبدأ نمیتواند مطمئن‬
‫باشد که مقصد دادهها را دریافت نموده و یا‬
‫خیر و تنها با حدس این امر‪ ،‬داده و سیگنال‬
‫‪ Strobe‬را غیرفعال مینماید و یا در حالت‬
‫نمیتواند‬
‫مقصد‬
‫مقصد‪،‬‬
‫توسط‬
‫فعالشونده‬
‫اطمینان حاصل نماید که مبدأ‪ ،‬داده را به‬
‫موقع روی خطوط گذرگاه قرار خواهد داد یا‬
‫خیر؟‬
‫• ‪ Handshaking‬با استفاده از سیگنال اضافی دیگری‬
‫‪ Handshaking‬یک‬
‫این مشکل را حل میبرد‪ .‬در‬
‫• کنترل ‪:Handshaking‬‬
‫• در این روش نیز دو حالت وجود دارد‪:‬‬
‫• ‪1‬ـ شروع عملیات توسط مبدأ‪:‬‬
‫در این حالت که در شکل زیر نشان داده میشود‪ ،‬مبدأ با‬
‫قراردادن داده معتبر روی گذرگاه و فعالنمودن سیگنال‬
‫«اعتبار داده» (‪ )Data Valid‬عملیات را آغاز مینماید و‬
‫منتظر میماند تا مقصد سیگنالی بفرستد و توسط آن اعالم‬
‫نماید که داده دریافت شده است‪ .‬این سیگنال‪« ،‬دریافت‬
‫داده» (‪ )Data Accepted‬نام دارد‪ ،‬سپس مبدأ میتواند دادهی‬
‫معتبر و نیز سیگنال اعتبار داده را غیرفعال نماید و به‬
‫گذرگاه داده‬
‫دریافت داده را غیرفعال‬
‫دنبال آن مقصد نیز سیگنال‬
‫دوباره دادهی جدید‬
‫میکند و بعد از این مرحله است که‬
‫مقصد اعتبار داده مبدا‬
‫میتواند برای عملیات انتقال بعدی روی گذرگاه قرار داده‬
‫دریافت داده‬
‫شود‪.‬‬
‫• کنترل ‪:Handshaking‬‬
‫• ‪2‬ـ شروع عملیات توسط مقصد‬
‫• ‪ :‬با توجه به شکل زیر مشاهده میشود که در این حالت‬
‫مقصد توسط سیگنالی با نام «آماده برای داده» ( ‪Ready‬‬
‫‪ )for Data‬برای دریافت داده تقاضا و اعالم آمادگی‬
‫مینماید‪ .‬مبدأ نیز با دریافت این سیگنال دادهی معتبر‬
‫را بر روی گذرگاه قرار داده و سیگنال اعتبار داده را‬
‫فعال مینماید‪ ،‬در این هنگام داده برای مقصد آماده‬
‫است‪ ،‬مقصد با دریافت داده سیگنال آماده برای داده را‬
‫به نشانهی دریافت گذرگاه‬
‫داده داده‪ ،‬غیرفعال میکند و‬
‫موفقیتآمیز‬
‫اعتبار داده و نیز دادهی‬
‫دنبال آن سیگنال‬
‫مبدأ نیز به‬
‫داده مبدا‬
‫مقصد اعتبار‬
‫روی گذرگاه را غیرفعال مینماید‪.‬‬
‫آماده برای داده‬
‫• انتقال سلایر ناهمگام‪:‬‬
‫• در انتقال اطالعات سلایر ناهمگام بین دو واحد فرستنده و‬
‫و گیرنده‪ ،‬پالس ساعت مشترکی وجود دارد که همگام بودن‬
‫دو واحد را تضمین مینماید ولی در انتقال سلایر ناهمگام‬
‫ناهمگام این پالس مشترک وجود ندارد‪.‬‬
‫• در این حالت دادهها کاراکتر به کاراکتر ارسال میشوند‬
‫و در کنار هر کاراکتر بیتهای کمکی ارسال میگردند تا‬
‫شروع و پایان کاراکتر را مشخص نمایند‪ .‬معموال قبل از ‪8‬‬
‫بیت کاراکتر یک بیت شروع و بعد از ‪ 8‬بیت کاراکتر یک‬
‫یا بیش از یک بیت توقف ارسال میگردد‪ .‬در حالت عادی خط‬
‫توسط فرستنده در حالت یک نگهداشته میشود‪ ،‬به عنوان‬
‫بیت شروع یک بیت صفر ارسال میشود که شروع کاراکتر را‬
‫اعالم میکند ‪ ،‬آخرین بیت نیز که بعد از کاراکتر ارسال‬
‫میشود و بیت توقف است یک بیت میباشد و خط ارتباطی در‬
‫حالت یک باقی میماند‪ .‬گیرنده نیز با دانستن این‬
‫قوانین در بازههای زمانی مشخصی که به نرخ ارسال بیتها‬
‫بستگی دارد خط را بررسی میکند و بیتها را میخواند‪.‬‬
‫• حالت های انتقال‪:‬‬
‫• ‪1‬ـ ورودی‪ -‬خروجی تحت کنترل برنامه ‪(programmed‬‬
‫)‪:I/O‬‬
‫• در این حالت دستگاه ورودی ـ خروجی ارتباط مستقیمی با‬
‫حافظه ندارد و هرگونه انتقال داده از دستگاه ورودی ـ‬
‫خروجی به حافظه اجرای یک یا چند دستور را توسط ‪CPU‬‬
‫نیاز دارد‪.‬‬
‫• ‪ CPU‬از طریق واسط ورودی ـ خروجی به دستگاه ورودی ـ‬
‫گذرگاه‬
‫داده از واسط‬
‫ها را‬
‫حقیقت ‪ CPU‬داده‬
‫شود‬
‫خروجی وصل می‬
‫گذرگاه‬
‫‪ I/O‬و در واسط‬
‫آدرسبا ایجاد‬
‫گذرگاهخود‬
‫میخواند و به واسط مینویسد و واسط‬
‫دستگ‬
‫ثبات داده‬
‫داده‬
‫اعتبار‬
‫ارتباط با دستگاه ورودی ـ خروجی داده را گرفته و یا‬
‫اه‬
‫‪CPU‬‬
‫خواندن‬
‫میفرستد‪ .‬شکل زیر نمونهای از این ارتباط را نشان‬
‫‪ I/O‬دریافت داده‬
‫میدهد‪.‬‬
‫‪ F‬ثبات وضعیت‬
‫نوشتن‬
‫• حالت های انتقال‪:‬‬
‫• ‪2‬ـ ورودی‪ -‬خروجی وقفه دهنده ‪(Interrupted Inititated‬‬
‫)‪:I/O‬‬
‫• برای جلوگیری از اتالف وقت ‪ ،CPU‬به نظر میرسد که بهتر‬
‫وجود دادهی آماده در واسط‬
‫است به جای بررسی مداوم‬
‫توسط ‪ ،CPU‬واسط عهدهدار این امر گردد که هنگام‬
‫آمادهشدن داده‪ ،‬به ‪ CPU‬وجود آن را اعالم نماید تا از‬
‫بررسیهای مکرر توسط ‪ CPU‬جلوگیری به عمل آید‪ .‬در حالی‬
‫که ‪ CPU‬در حال اجرای یک برنامه است‪ ،‬وقفهای مبنی بر‬
‫آماده بودن داده از سویی واسط دریافت مینماید‪CPU .‬‬
‫‪VAD3‬موقتا ترک ‪VAD2‬‬
‫‪ VAD1‬بعدی را‬
‫کرده‪ ،‬آدرس دستور‬
‫اجرای عادی را‬
‫دستگاه ‪3‬‬
‫دستگاه‬
‫دستگاه ‪1‬‬
‫دهندهی‬
‫آدرس ‪2‬برنامه سرویس‬
‫ذخیره مینماید و اجرا را از‬
‫‪PI PO‬‬
‫‪PI PO‬‬
‫‪PI PO‬‬
‫وقفه که همان برنامه سرویسی ‪ I/O‬میباشد‪ ،‬ادامه میدهد‬
‫عملیاتوقفه‬
‫و بعد از اتمام تقاضای‬
‫دریافت داده‪ ،‬اجرای عادی‬
‫‪INT‬‬
‫برنامهی قبلی را از آدرسی که هنگام دریافت وقفه ذخیره‬
‫‪CPU‬‬
‫تایید‪ .‬درخواست وقفه‬
‫بود‪ ،‬ادامه میدهد‬
‫نموده‬
‫‪INTACK‬‬
‫• حالت های انتقال‪:‬‬
‫• ‪3‬ـ دسترسی مستقیم به حافظه‪(Direct Memory Access-‬‬
‫)‪:DMA‬‬
‫• هنگام ارتباط ‪ CPU‬با ‪ ،I/O‬همیشه الزم است که ‪ CPU‬برای‬
‫انتقال دادههای ورودی به حافظه و یا از حافظه به‬
‫دستگاههای خروجی مدت زمانی را صرف کند که عموما به‬
‫دلیل کند بودن دستگاههای ورودی ـ خروجی‪ ،‬انتظار ‪CPU‬‬
‫به صرفه نیست و ‪ CPU‬میتواند در خالل آمادهشدن دادهها‬
‫به اجرای دستورات دیگر که نیاز فوری به این دادهها‬
‫ندارند بپردازد و یا از دید دیگر در برخی موارد‪،‬‬
‫دادههایی توسط دستگاههای ورودی آماده میشوند ولی ‪CPU‬‬
‫فرصت الزم برای انتقال بدون وقفه این اطالعات را ندارد‬
‫و در صورتی که این اطالعات مستقیما به حافظه منتقل‬
‫شوند‪ ،‬دادههای ورودی دیگر میتوانند توسط دستگاه ورودی‬
‫آمادهی ورود گردند و این امر هنگام خروج دادهها به‬
‫دستگاههای خروجی نیز اتفاق میافتد‪ ،‬در همه موارد فوق‬
‫نیاز به قسمتی در سیستم احساس میشود که فارغ از ‪CPU‬‬
‫• حالت های انتقال‪:‬‬
‫• ‪3‬ـ دسترسی مستقیم به حافظه‪(Direct Memory Access-‬‬
‫)‪:DMA‬‬
‫• وقتی که کنترلکنندهی ‪ ،DMA‬گذرگاه را در اختیار‬
‫میگیرد به دو طریق میتواند انتقال دادهها بین حافظه و‬
‫‪ I/O‬را انجام دهد‪:‬‬
‫• الف ـ انتقال تودهای‪:‬‬
‫• در این روش یک بالک پیوسته از حافظه بدون توقف به ‪I/O‬‬
‫ارسال و یا از ‪ I/O‬دریافت میگردد و در مدت انتقال‪،‬‬
‫گذرگاهها در اختیار کنترلکنندهی ‪ DMA‬میماند‪ .‬این روش‬
‫عموما برای ‪ I/O‬سریع (مثل دیسک سخت) کاربرد دارد‪.‬‬
‫• ب ـ سیکل ‪:Stealing‬‬
‫• در این روش در هر مرتبه یک کلمه انتقال داده میشود و‬
‫دوباره گذرگاهها در اختیار ‪ CPU‬قرار میگیرند و ‪CPU‬‬
‫اجرای هر عملیات خود را به اندازه یک سیکل حافظه به‬
:‫• حالت های انتقال‬
(Direct Memory Access-‫ـ دسترسی مستقیم به حافظه‬3 •
:DMA)
Interrupt
BG
BR
RD
RAM
CPU
WR Address Data
RD
WR Address Data
READ ‫کنترل‬
WRITE ‫کنترل‬
‫گذرگاه داده‬
‫گذرگاه آدرس‬
‫انتخاب آدرس‬
RD
WR Address Data
DS
RS
DMA
BR
BG
Interrupt
DMA ‫موافقت‬
‫دستگاه جانبی‬
I/O
DMA ‫درخواست‬