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