پورتهای ورودی-خروجی که توسط Expert Semalt توضیح داده شده است

در رایانه ها ، هر دستگاهی (به عنوان مثال ، یک کنترلر نصب شده روی کارت توسعه یا مادربرد) به جز RAM توسط CPU به عنوان محیطی رفتار می شود. تبادل داده بین پردازنده مرکزی و دستگاههای جانبی از طریق درگاههای ورودی-خروجی انجام می شود. درگاه IO یک دستگاه بافر یا ثبت یک کنترلر ، پردازنده سیگنال دیجیتال و غیره است که به طور مستقیم به اتوبوس IO رایانه متصل می شوند. از طریق پورتهای خروجی ورودی ، می توانید انواع دستگاه های داخلی و خارجی را به کامپیوتر خود متصل کنید تا قابلیت های آن را گسترش دهید.
پورت های IO به شما امکان می دهد ارتباط بین دستگاه ها و نرم افزار را در رایانه برقرار کنید. آنها شبیه کانالهای رادیویی دو طرفه هستند زیرا تبادل اطلاعات در هر جهت در همان کانال اتفاق می افتد.
آدرس بندر

برای کنترل تبادل داده ها بین دستگاه های رایانه ای ، به هر درگاه IO شماره اختصاصی - آدرس پورت اختصاص داده شده است. در کامپیوتر کد 16 بیتی برای پرداختن به درگاه های IO استفاده می شود. بنابراین ، 216 = 65 536 پورت وجود دارد که از OOOOh به FFFFh شماره گذاری شده اند. دامنه استاندارد IO برای رایانه های سازگار با IBM 0-3FFh است. اینها شامل درگاه های کنترل کننده صفحه کلید ، هارد دیسک ها و فلاپی دیسک ها ، آداپتورهای ویدیویی EGA / VGA ، کارت صدا ، رابط های سریال و موازی ، پورت های بازی و سایر تجهیزات جانبی است. یک دستگاه محیطی قادر به استفاده از چندین پورت IO است. توجه داشته باشید که در واقع می توانید از آدرس های تا FFFFh استفاده کنید. به عنوان مثال ، درگاههای پردازنده سنتز WT کارت صدا دارای محدوده IO 620h-E23h هستند.
هنگام اجرای برنامه ، درگاه ها توسط پردازنده مرکزی خطاب می شوند. برای جلوگیری از نشان دادن آدرس خاص هر درگاه IO محیطی در هنگام برنامه نویسی و همچنین تغییر سریع آدرس بسته به پیکربندی رایانه خاص ، از آدرس پایه IO استفاده می شود. آدرس پایه به هر وسیله جانبی اختصاص داده می شود و با کمترین آدرس در گروه بندر مطابقت دارد. آدرس دهی به درگاه های باقیمانده دستگاه جانبی با مشخص کردن افست نسبت به آدرس پایه انجام می شود.
آدرس پایه IO از دستگاه محیطی می تواند هر آدرس از محدوده IO باشد. BIOS بخشی از محدوده IO را برای دستگاههای سخت افزاری استاندارد ذخیره می کند که توسط سایر لوازم جانبی قابل استفاده نیستند. به عنوان مثال ، برای رابط LPT1 IO محدوده 378h - 37Eh محفوظ است که در آن می توان آدرس پایه IO را انتخاب کرد. سپس هنگام مراجعه به پورت ها در سطح سخت افزاری - نرم افزاری ، امکان درگیری ها از بین می رود. از آنجا که سه کنترلر برای کنترل و نظارت بر LPT1 استفاده می شود ، در این محدوده IO ، 5 مقدار ممکن از آدرس پایه وجود دارد - 378h-s-37Ch.

IO برنامه ریزی شده
برای تبادل داده با پورت های ورودی / خروجی برنامه ریزی شده (PIO) استفاده می شود. با استفاده از دستورات رشته ، کلماتی را با عمق کمی 8 ، 16 یا 32 بیت انتقال می دهد. این کلمه می تواند برای یک یا چند چرخه اتوبوس با نشانه آدرس مربوطه در هر چرخه دسترسی به حافظه منتقل شود. چرخه های تبادل اتوبوس در حین اجرای یک دستور IO آغاز می شوند. تعداد چرخه ها به هم ترازی آدرس در امتداد کلمه مرز و عمق بیت داده های اتوبوس استفاده شده بستگی دارد. سرعت تبادل داده PIO از سرعت تبادل کانال استاندارد دسترسی مستقیم به حافظه مستقیم (DMA) فراتر می رود.