170 likes | 325 Views
س ازمان و رودی- خ روجی. مشخصات I/O : 1- سرعت انتقال دیتا در I/O های مختلف بسیار متنوع است. 2- عملیات مربوط به I/O ها آسنکرون هستند، یعنی با کلاک CPU هماهنگ نیستند.
E N D
سازمان ورودی- خروجی
مشخصات I/O: 1- سرعت انتقال دیتا در I/O های مختلف بسیار متنوع است. 2- عملیات مربوط به I/O ها آسنکرون هستند، یعنی با کلاک CPU هماهنگ نیستند. 3- کیفیت اطلاعات دریافتی از دستگاه های جانبی مشکوک است. بنابراین استراتژی های تشخیص و تصحیح خطا برای تضمین درستی دیتا نیاز است. 4- بسیاری از دستگاه های I/O مکانیکی هستند و بنابراین بیشتر از قطعات داخلی در معرض خرابی و خطر هستند. 5- ماژول های نرم افزاری I/O ک به درایورهای دستگاه معروف هستند، باید طوری نوشته شوند که مشخصات گفته شده در بالا را پشتیبانی کنند. • گذرگاه I/O: برای انتقال اطلاعات بین CPU و واسط ها و بدنبال آن دستگاه های جانبی، خطوط داده و آدرس و خطوط کنترل وجود دارد. این مجموعه خطوط در کنار یکدیگر گذرگاه I/O را تشکیل می دهند.
فرمان I/O: چهار نوع فرمان I/O وجود دارد که توسط CPU به مدار واسط منتقل شده و به آنها پاسخ می دهد: 1- فرمان کنترلی: یک فرمان کنترلی یک دستگاه جانبی ار فعال می کند و به آن اطلاع می دهد که چه باید انجام دهد که این فرمان ها و ترتیب ارسال انها برای دستگاه های جانبی مختلف فرق می کند. 2- فرمان وضعیت: یک فرمان وضعیت برای بررسی حالت های مختلف یک واسط یا دستگاه جانبی بکار می رود. وضعیت واسط یا دستگاه جانبی معمولا در ثباتی قرار داده می شود که این ثبات تسط پردازنده خوانده می شود. 3- فرمان خروج داده ها: یک فرمان خروج داده باعث می شود که واسط آنچه بر روی خطوط داده در گذرگاه I/O قرار دارد را به ثبات های خود منتقل نماید. 4- فرمان ورود داده ها: یک فرمان ورود داده باعث می شود که واسط داده ای را که قبلا از دستگاه جانبی دریافت نموده و در ثبات آن موجود می باشد بر روی خطوط داده از گذرگاه I/O قرار می دهد.
گذرگاه 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 گاهی « کانال داده » نیز نامیده می شود.
گذرگاه نیمه مشترک: • هنگامی که 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و حافظه وجود ندارد و فقط آدرس مشخص مینماید که هدف برقراری ارتباط با واسط یا حافظه است.
ساختار، پروتکل و کنترل باس: • یک باس شامل قسمتهای فیزیکی، مثل سیمها، متصلکنندهها و یک پروتکل باس میباشد. سیمها به گروههای مجزایی مثل کنترل، آدرس، دیتا و تغذیه تقسیم میشوندکه در شکل زیر نشان داده شده است. • دستگاههای مختلفی به باس متصل هستند و فقط یک دستگاه در یک لحظه میتواند دیتا ارسال کند. همه دستگاهها همزمان گوش میکنند ولی فقط یک دستگاه دریافتکننده است. فقط یک دستگاه میتواند مستر باس (BUS MASTER) باشد و سایر دستگاهها برده (SLAVE ) هستند. • مستر، باس را کنترل میکند و میتواند فرستنده یا گیرنده باشد. یکی از دستگاههایی که به باس متصل میشود، اسیلاتور است که دنبالهای از 0 ها و 1 ها را تولید میکند. کلاک باس از کلاک اصلی سیستم گرفته میشود ولی معمولاً از کلاک اصلی کندتر است. CPU Memory Disk
کنترل 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) برای دریافت داده تقاضا و اعلام آمادگی مینماید. مبدأ نیز با دریافت این سیگنال دادهی معتبر را بر روی گذرگاه قرار داده و سیگنال اعتبار داده را فعال مینماید، در این هنگام داده برای مقصد آماده است، مقصد با دریافت داده سیگنال آماده برای داده را به نشانهی دریافت موفقیتآمیز داده، غیرفعال میکند و مبدأ نیز به دنبال آن سیگنال اعتبار داده و نیز دادهی روی گذرگاه را غیرفعال مینماید. • هرکدام از سیگنالها اگر به دلیل خرابی در مقصد یا مبدأ به تعویق بیفتد، بعد از مدت زمانی از پیش تعیینشده توسط گیرندهی سیگنال، عدم دریافت آن اعلام شده و وقفهای صورت میپذیرد که خطا را پوشش دهد. این خطا Time Out نامیده میشود. گذرگاه داده مبدا مقصد اعتبار داده آماده برای داده
انتقال سریال ناهمگام: • در انتقال اطلاعات سریال ناهمگام بین دو واحد فرستنده و گیرنده، پالس ساعت مشترکی وجود دارد که همگام بودن دو واحد را تضمین مینماید ولی در انتقال سریال ناهمگام این پالس مشترک وجود ندارد. • در این حالت دادهها کاراکتر به کاراکتر ارسال میشوند و در کنار هر کاراکتر بیتهای کمکی ارسال میگردند تا شروع و پایان کاراکتر را مشخص نمایند. معمولاً قبل از 8 بیت کاراکتر یک بیت شروع و بعد از 8 بیت کاراکتر یک یا بیش از یک بیت توقف ارسال میگردد. در حالت عادی خط توسط فرستنده در حالت یک نگهداشته میشود، به عنوان بیت شروع یک بیت صفر ارسال میشود که شروع کاراکتر را اعلام میکند ، آخرین بیت نیز که بعد از کاراکتر ارسال میشود و بیت توقف است یک بیت میباشد و خط ارتباطی در حالت یک باقی میماند. گیرنده نیز با دانستن این قوانین در بازههای زمانی مشخصی که به نرخ ارسال بیتها بستگی دارد خط را بررسی میکند و بیتها را میخواند.
حالت های انتقال: • 1ـ ورودی- خروجی تحت کنترل برنامه(programmed I/O): • در این حالت دستگاه ورودی ـ خروجی ارتباط مستقیمی با حافظه ندارد و هرگونه انتقال داده از دستگاه ورودی ـ خروجی به حافظه اجرای یک یا چند دستور را توسط CPUنیاز دارد. • CPUاز طریق واسط ورودی ـ خروجی به دستگاه ورودی ـ خروجی وصل میشود و در حقیقت CPUدادهها را از واسط میخواند و به واسط مینویسد و واسط خود با ایجاد ارتباط با دستگاه ورودی ـ خروجی داده را گرفته و یا میفرستد. شکل زیر نمونهای از این ارتباط را نشان میدهد. گذرگاه داده گذرگاه I/O دستگاه I/O واسط گذرگاه آدرس ثبات داده اعتبار داده CPU خواندن دریافت داده ثبات وضعیت F نوشتن
حالت های انتقال: • 2ـ ورودی- خروجی وقفه دهنده(Interrupted Inititated I/O): • برای جلوگیری از اتلاف وقت CPU، به نظر میرسد که بهتر است به جای بررسی مداوم وجود دادهی آماده در واسط توسط CPU، واسط عهدهدار این امر گردد که هنگام آمادهشدن داده، به CPU وجود آن را اعلام نماید تا از بررسیهای مکرر توسط CPU جلوگیری به عمل آید. در حالی که CPUدر حال اجرای یک برنامه است، وقفهای مبنی بر آماده بودن داده از سویی واسط دریافت مینماید. CPUاجرای عادی را موقتاً ترک کرده، آدرس دستور بعدی را ذخیره مینماید و اجرا را از آدرس برنامه سرویسدهندهی وقفه که همان برنامه سرویسی I/O میباشد، ادامه میدهد و بعد از اتمام عملیات دریافت داده، اجرای عادی برنامهی قبلی را از آدرسی که هنگام دریافت وقفه ذخیره نموده بود، ادامه میدهد. VAD3 VAD1 VAD2 دستگاه 3 دستگاه 2 دستگاه 1 PI PO PI PO PI PO تقاضای وقفه INT CPU تایید درخواست وقفه INTACK
حالت های انتقال: • 3ـ دسترسی مستقیم به حافظه(Direct Memory Access-DMA): • هنگام ارتباط CPU با I/O، همیشه لازم است که CPUبرای انتقال دادههای ورودی به حافظه و یا از حافظه به دستگاههای خروجی مدت زمانی را صرف کند که عموماً به دلیل کند بودن دستگاههای ورودی ـ خروجی، انتظار CPUبه صرفه نیست و CPU میتواند در خلال آمادهشدن دادهها به اجرای دستورات دیگر که نیاز فوری به این دادهها ندارند بپردازد و یا از دید دیگر در برخی موارد، دادههایی توسط دستگاههای ورودی آماده میشوند ولی CPUفرصت لازم برای انتقال بدون وقفه این اطلاعات را ندارد و در صورتی که این اطلاعات مستقیماً به حافظه منتقل شوند، دادههای ورودی دیگر میتوانند توسط دستگاه ورودی آمادهی ورود گردند و این امر هنگام خروج دادهها به دستگاههای خروجی نیز اتفاق میافتد، در همه موارد فوق نیاز به قسمتی در سیستم احساس میشود که فارغ از CPUارتباط حافظه و I/O را فراهم آورد. این تکنیک DMAنامیده میشود و قسمتی که این انتقال را کنترل میکند «کنترلکنندهی DMA» نام دارد.
حالت های انتقال: • 3ـ دسترسی مستقیم به حافظه(Direct Memory Access-DMA): • وقتی که کنترلکنندهی DMA، گذرگاه را در اختیار میگیرد به دو طریق میتواند انتقال دادهها بین حافظه و I/Oرا انجام دهد: • الف ـ انتقال تودهای: • در این روش یک بلاک پیوسته از حافظه بدون توقف به I/Oارسال و یا از I/Oدریافت میگردد و در مدت انتقال، گذرگاهها در اختیار کنترلکنندهی DMA میماند. این روش عموماً برای I/Oسریع (مثل دیسک سخت) کاربرد دارد. • ب ـ سیکلStealing: • در این روش در هر مرتبه یک کلمه انتقال داده میشود و دوباره گذرگاهها در اختیار CPUقرار میگیرند و CPUاجرای هر عملیات خود را به اندازه یک سیکل حافظه به تاخیر اندازد تا انتقال دادههای I/Oکامل گردد.
Interrupt BG BR RAM CPU • حالت های انتقال: • 3ـ دسترسی مستقیم به حافظه(Direct Memory Access-DMA): RD WR Address Data RD WR Address Data کنترل READ کنترل WRITE گذرگاه داده گذرگاه آدرس انتخاب آدرس موافقت DMA RD WR Address Data DS RS BR BG Interrupt دستگاه جانبی I/O DMA درخواست DMA