معماری و گذرگاههای ورودی/خروجی
معماری ورودی/خروجی نحوه ارتباط پردازنده و حافظه با دستگاههای جانبی را از طریق گذرگاهها، کنترلکنندهها، وقفهها و طرحهای آدرسدهی تعریف میکند و چگونگی جریان دستورات و دادهها به داخل و خارج از دنیای بیرونی را تعیین مینماید.
Definition
معماری و گذرگاههای ورودی/خروجی، سازماندهی و اتصالات هستند که از طریق آنها پردازنده و حافظه یک کامپیوتر، سیگنالهای کنترلی و دادهها را با دستگاههای جانبی مبادله میکنند، از جمله آدرسدهی ثباتهای دستگاه و مکانیزمهایی که دستگاهها از طریق آنها درخواست سرویس میکنند.
Scope
این موضوع ساختار ورودی/خروجی را پوشش میدهد: گذرگاهها و اتصالات نقطهبهنقطه، کنترلکنندهها و ثباتهای دستگاه، ورودی/خروجی نگاشتشده به حافظه در مقابل نگاشتشده به پورت، ورودی/خروجی مبتنی بر نظرسنجی و مبتنی بر وقفه، و پروتکلها و داوری گذرگاه. این موضوع نحوه اتصال و کنترل دستگاهها را بررسی میکند. این مبحث شامل مکانیزم DMA انتقال انبوه و مجازیسازی (مجازیسازی ورودی/خروجی و DMA) و خود رسانههای ذخیرهسازی (دستگاههای ذخیرهسازی ثانویه) نمیشود.
Core questions
- چگونه دستگاههای جانبی توسط پردازنده آدرسدهی و کنترل میشوند؟
- ورودی/خروجی نگاشتشده به حافظه و نگاشتشده به پورت چه تفاوتی با یکدیگر دارند؟
- ورودی/خروجی مبتنی بر نظرسنجی و مبتنی بر وقفه از نظر کارایی چگونه مقایسه میشوند؟
- گذرگاهها و اتصالات نقطهبهنقطه چگونه دادهها را داوری و منتقل میکنند؟
Key concepts
- کنترلکنندهها و ثباتهای دستگاه
- ورودی/خروجی نگاشتشده به حافظه
- ورودی/خروجی نگاشتشده به پورت
- نظرسنجی
- وقفهها و کنترلکنندههای وقفه
- گذرگاهها و اتصالات داخلی
- داوری گذرگاه
- آدرسدهی ورودی/خروجی
Key theories
- ورودی/خروجی مبتنی بر وقفه
- به جای نظرسنجی مداوم یک دستگاه، پردازنده به کار خود ادامه میدهد و هنگامی که دستگاه نیاز به توجه دارد، توسط یک وقفه مطلع میشود که این امر کارایی را برای دستگاههایی که کند هستند یا به صورت متناوب کار میکنند، به شدت بهبود میبخشد.
Mechanisms
هر دستگاه توسط یک کنترلکننده مدیریت میشود که ثباتهایی را در معرض دید قرار میدهد که پردازنده آنها را میخواند و مینویسد، یا از طریق آدرسهای نگاشتشده به حافظه یا پورتهای ورودی/خروجی خاص. پردازنده میتواند این ثباتها را نظرسنجی کند یا، به طور کارآمدتر، وقفهها را فعال کند تا دستگاه در صورت آماده بودن سیگنال دهد. گذرگاهها اجزا را به هم متصل میکنند و دسترسی را بین چندین مستر داوری میکنند، در حالی که سیستمهای مدرن به طور فزایندهای از لینکهای سریال نقطهبهنقطه با سرعت بالا به جای گذرگاههای موازی مشترک استفاده میکنند.
Clinical relevance
معماری ورودی/خروجی تعیین میکند که یک سیستم با ذخیرهسازی، شبکه و سایر دستگاهها چقدر کارآمد ارتباط برقرار میکند. ورودی/خروجی مبتنی بر وقفه، پردازنده را برای کارهای مفید آزاد میکند، و تکامل از گذرگاههای مشترک به اتصالات سریال سریع مانند PCI Express، پهنای باند مورد نیاز سختافزارهای ذخیرهسازی، شبکه و شتابدهنده مدرن را فراهم میکند.
History
سیستمهای اولیه از ورودی/خروجی برنامهریزیشده و گذرگاههای موازی مشترک با داوری مرکزی استفاده میکردند. مکانیزمهای وقفه و گذرگاههای استاندارد شده مانند ISA و PCI انعطافپذیری و عملکرد را بهبود بخشیدند. تغییر به اتصالات سریال نقطهبهنقطه با سرعت بالا، که نمونه بارز آن PCI Express است، محدودیتهای پهنای باند و سیگنالینگ گذرگاههای موازی مشترک را برطرف کرد.
Key figures
- John L. Hennessy
- David A. Patterson
- Abraham Silberschatz
Related topics
Seminal works
- hennessy2019
- silberschatz2018
Frequently asked questions
- تفاوت بین ورودی/خروجی نگاشتشده به حافظه و نگاشتشده به پورت چیست؟
- ورودی/خروجی نگاشتشده به حافظه، آدرسهای ثباتهای دستگاه را در فضای آدرس حافظه معمولی اختصاص میدهد، بنابراین دستورالعملهای بارگذاری و ذخیرهسازی معمولی به آنها دسترسی پیدا میکنند. ورودی/خروجی نگاشتشده به پورت از یک فضای آدرس جداگانه و دستورالعملهای خاص برای دسترسی به دستگاه استفاده میکند. ورودی/خروجی نگاشتشده به حافظه در معماریهای مدرن رایجتر است.
- چرا وقفهها برای اکثر دستگاهها بهتر از نظرسنجی هستند؟
- نظرسنجی چرخههای پردازنده را با بررسی مکرر آماده بودن دستگاه هدر میدهد. وقفهها به پردازنده اجازه میدهند تا کارهای دیگر را انجام دهد و تنها زمانی که دستگاه واقعاً نیاز به سرویس دارد، مطلع شود، که برای دستگاههایی که کند هستند یا به طور غیرقابل پیشبینی پاسخ میدهند، بسیار کارآمدتر است.