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