سیستمهای ذخیرهسازی و ورودی/خروجی
سیستمهای ذخیرهسازی و ورودی/خروجی، پردازنده و حافظه را به دنیای خارج و دادههای پایدار متصل میکنند. این سیستمها شامل گذرگاهها و اتصالات داخلی، حافظههای دیسکی و فلش، افزونگی برای قابلیت اطمینان، و مکانیزمهایی هستند که دادهها را به طور کارآمد بین دستگاهها و حافظه جابجا میکنند.
Definition
سیستمهای ذخیرهسازی و ورودی/خروجی، مکانیزمهای سختافزاری و معماری هستند که از طریق آنها یک کامپیوتر دادهها را به دستگاههای جانبی منتقل کرده و از آنها دریافت میکند و به طور پایدار ذخیره مینماید. این سیستمها شامل اتصالات داخلی، کنترلکنندهها، رسانههای ذخیرهسازی، و تکنیکهای قابلیت اطمینان و مجازیسازی مرتبط هستند.
Scope
این حوزه به چگونگی ارتباط کامپیوترها با دستگاههای جانبی و ذخیرهسازی پایدار دادهها میپردازد: معماری ورودی/خروجی و گذرگاهها، انتقال داده مبتنی بر وقفه و دسترسی مستقیم به حافظه (DMA)، دستگاههای ذخیرهسازی ثانویه (دیسکهای مغناطیسی و درایوهای حالت جامد)، قابلیت اطمینان ذخیرهسازی از طریق افزونگی مانند RAID، و مجازیسازی ورودی/خروجی. این بخش به مکانیزمهای سختافزاری و معماری ورودی/خروجی و پایداری میپردازد. این حوزه شامل انتزاع نرمافزاری سیستم فایل (سیستمعاملها) و حافظههای نهان روی تراشه و حافظه اصلی (سلسلهمراتب حافظه و حافظههای نهان) نمیشود، اگرچه با هر دو ارتباط نزدیکی دارد.
Sub-topics
Core questions
- چگونه دستگاهها از طریق گذرگاهها و اتصالات داخلی به پردازنده و حافظه متصل میشوند؟
- چگونه دادهها به طور کارآمد با استفاده از وقفهها و دسترسی مستقیم به حافظه به جای نظرسنجی مداوم (busy polling) منتقل میشوند؟
- ویژگیهای عملکرد و قابلیت اطمینان ذخیرهسازی مغناطیسی و حالت جامد چیست؟
- چگونه افزونگی مانند RAID ظرفیت را با قابلیت اطمینان و عملکرد مبادله میکند؟
- چگونه ورودی/خروجی به طور ایمن بین ماشینهای مجازی و فرآیندها مجازیسازی و به اشتراک گذاشته میشود؟
Key concepts
- گذرگاهها و اتصالات داخلی ورودی/خروجی
- ورودی/خروجی مبتنی بر وقفه
- دسترسی مستقیم به حافظه (DMA)
- دیسک مغناطیسی و SSD
- کنترلکنندههای دستگاه
- RAID و افزونگی
- قابلیت اطمینان ذخیرهسازی و MTTF
- مجازیسازی ورودی/خروجی
- توان عملیاتی و تأخیر
- ورودی/خروجی نگاشتشده به حافظه
Key theories
- آرایههای افزونه دیسکهای ارزانقیمت (RAID)
- ترکیب بسیاری از دیسکهای تجاری با نواریسازی داده و توازن یا آینهایسازی، ذخیرهسازی را ایجاد میکند که بزرگتر، سریعتر و قابل اطمینانتر از یک دیسک واحد است؛ سطوح RAID مبادلات بین ظرفیت، عملکرد و تحمل خطا را رسمی میکنند.
- انتقال ورودی/خروجی جداشده
- دسترسی مستقیم به حافظه و ورودی/خروجی مبتنی بر وقفه به دستگاهها اجازه میدهد تا دادهها را به حافظه منتقل کرده و از آن دریافت کنند بدون دخالت مداوم پردازنده، که ورودی/خروجی را با محاسبات همپوشانی داده و توان عملیاتی کلی سیستم را بهبود میبخشد.
Mechanisms
دستگاههای جانبی از طریق گذرگاهها و کنترلکنندهها به سیستم متصل میشوند و با وقفهها به پردازنده سیگنال میدهند. دادههای حجیم توسط دسترسی مستقیم به حافظه (DMA) جابجا میشوند، که بلوکهایی از داده را بین یک دستگاه و حافظه بدون دخالت پردازنده برای هر کلمه منتقل میکند. ذخیرهسازی ثانویه دادهها را به طور پایدار روی دیسکهای مغناطیسی یا فلش ذخیره میکند، و آرایههایی از دستگاهها از روشهای نواریسازی (striping)، آینهایسازی (mirroring) و توازن (parity) (RAID) برای بهبود عملکرد و تحمل خطا استفاده میکنند. لایههای مجازیسازی این دستگاهها را بین مهمانها (guests) چندگانه میکنند.
Clinical relevance
ذخیرهسازی و ورودی/خروجی اغلب عملکرد و پایداری کلی سیستم را تعیین میکنند: پایگاههای داده، سرورهای فایل، و برنامههای دادهمحور غالباً به جای محاسبات، توسط توان عملیاتی و تأخیر ذخیرهسازی محدود میشوند. RAID و طرحهای افزونگی مرتبط، در مراکز داده از خرابی دستگاهها محافظت میکنند، و مجازیسازی کارآمد ورودی/خروجی برای رایانش ابری که در آن بسیاری از مستأجران (tenants) سختافزار فیزیکی را به اشتراک میگذارند، ضروری است.
History
ماشینهای اولیه از ورودی/خروجی برنامهریزیشده و کانالهای اختصاصی استفاده میکردند؛ ورودی/خروجی مبتنی بر وقفه و دسترسی مستقیم به حافظه برای همپوشانی ورودی/خروجی با محاسبات پدیدار شدند. دیسکهای مغناطیسی برای دههها بر ذخیرهسازی ثانویه غالب بودند، و پیشنهاد RAID در سال ۱۹۸۸ توسط پترسون، گیبسون و کاتز، افزونگی را به عنوان یک تکنیک استاندارد قابلیت اطمینان تثبیت کرد. درایوهای حالت جامد مبتنی بر فلش بعدها سلسلهمراتب ذخیرهسازی را تغییر شکل دادند، و مجازیسازی ورودی/خروجی با ظهور رایانش ابری به یک عنصر مرکزی تبدیل شد.
Debates
- ذخیرهسازی جداشده در مقابل ذخیرهسازی محلی
- بحث مداومی در مورد اینکه آیا ذخیرهسازی باید به صورت محلی به محاسبات متصل شود یا در شبکههای سریع جدا شود، وجود دارد؛ جداسازی استفاده و انعطافپذیری را در مراکز داده بهبود میبخشد اما تأخیر را افزایش میدهد و به اتصالات داخلی با کارایی بالا وابسته است.
Key figures
- David A. Patterson
- Garth Gibson
- Randy H. Katz
- John L. Hennessy
Related topics
Seminal works
- hennessy2019
- patterson1988raid
- silberschatz2018
Frequently asked questions
- دسترسی مستقیم به حافظه چیست و چرا مفید است؟
- دسترسی مستقیم به حافظه (DMA) به یک دستگاه اجازه میدهد تا بلوکهایی از داده را به حافظه اصلی منتقل کند یا از آن دریافت کند بدون اینکه پردازنده هر کلمه را کپی کند. این کار پردازنده را آزاد میکند تا در طول انتقال کارهای دیگری انجام دهد، ورودی/خروجی را با محاسبات همپوشانی داده و توان عملیاتی را برای جابجایی دادههای حجیم به شدت بهبود میبخشد.
- آیا RAID ایمنی دادههای من را تضمین میکند؟
- خیر. RAID با ذخیره اطلاعات افزونه، دسترسیپذیری را بهبود میبخشد و خطاهای خاص دستگاه را تحمل میکند، اما یک پشتیبانگیری نیست: این سیستم در برابر حذف تصادفی، خرابی، خرابیهای چند دستگاهی فراتر از تحمل آن، یا بلایای در سطح سایت محافظت نمیکند، بنابراین پشتیبانگیریهای جداگانه همچنان ضروری است.