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 درخواست