Storage چیست؟
وقتی یک فایل را روی کامپیوتر ذخیره میکنیم، مثلاً یک فیلم، عکس، بازی یا سیستمعامل، اطلاعات باید جایی باقی بمانند که با خاموش شدن کامپیوتر از بین نروند. این قسمت از سیستم را Storage یا فضای ذخیرهسازی مینامیم.
هارد دیسک HDD و حافظههای SSD دو نمونه معروف Storage هستند. وظیفه اصلی Storage نگهداری دائمی یا بلندمدت اطلاعات است.
Storage چه فرقی با RAM دارد؟
برای درک بهتر، کامپیوتر را مثل یک میز کار در نظر بگیرید:
RAM → میز کار
CPU → کارگری که روی میز کار میکند
فایلها و برنامهها معمولاً روی Storage قرار دارند. وقتی قرار است یک برنامه اجرا شود، سیستمعامل اطلاعات موردنیاز آن را از Storage به RAM منتقل میکند و CPU از طریق سلسلهمراتب حافظه به دادهها و دستورها دسترسی پیدا میکند.
| ویژگی | RAM | Storage |
|---|---|---|
| ماندگاری اطلاعات | معمولاً با قطع برق از بین میرود | با خاموش شدن سیستم باقی میماند |
| کاربرد اصلی | فضای کاری برنامهها | نگهداری فایل و برنامه |
| نمونه | DDR4 / DDR5 | HDD / SSD |
| ظرفیت معمول | چند GB تا دهها GB | صدها GB تا چند TB |
HDD چیست؟
HDD یا Hard Disk Drive نوعی Storage مکانیکی است. درون HDD تعدادی صفحه گردان به نام Platter وجود دارد که اطلاعات روی سطح آنها ذخیره میشود.
یک موتور این صفحات را میچرخاند و هدهای مخصوص با حرکت روی سطح صفحات، اطلاعات را میخوانند یا روی آنها مینویسند.
Platter → صفحهای که اطلاعات روی آن ذخیره میشود
↓
Spindle / Motor → چرخاندن صفحه
↓
Read/Write Head → خواندن و نوشتن اطلاعات
به همین دلیل HDD قطعات متحرک دارد و عملکرد آن با حرکت مکانیکی درگیر است. سرعت چرخش صفحات نیز معمولاً با واحد RPM بیان میشود.
اطلاعات در HDD چگونه سازماندهی میشوند؟
در مدل سادهشده، سطح دیسک به بخشهایی تقسیم میشود تا کنترلر بتواند محل دادهها را پیدا کند. اصطلاحاتی مانند Sector و Track در ساختار سنتی HDD به این سازماندهی مربوط هستند.
بنابراین وقتی سیستمعامل درخواست خواندن یک فایل را میدهد، کنترلر باید اطلاعات مربوط به محل داده را پیدا کند و مکانیزم مکانیکی HDD را برای دسترسی به آن بخش به کار بگیرد.
SSD چیست؟
SSD یا Solid State Drive برخلاف HDD برای ذخیره اطلاعات از صفحه چرخان و هد مکانیکی استفاده نمیکند. در SSD اطلاعات روی تراشههای حافظه NAND Flash ذخیره میشوند.
CPU / System
↓
SSD Controller
↓
NAND Flash
↓
Data
SSD علاوه بر تراشههای NAND، یک Controller دارد. کنترلر وظایفی مانند مدیریت خواندن و نوشتن، ارتباط با سیستم، مدیریت سلولهای حافظه و برخی عملیات داخلی SSD را انجام میدهد.
چون SSD برای پیدا کردن داده به حرکت فیزیکی هد و چرخش Platter نیاز ندارد. دسترسی به داده در آن به شکل الکترونیکی و از طریق کنترلر و تراشههای حافظه انجام میشود.
HDD در مقابل SSD
| ویژگی | HDD | SSD |
|---|---|---|
| قطعه مکانیکی | دارد | ندارد |
| نوع ذخیرهسازی | مغناطیسی | NAND Flash |
| زمان دسترسی | بیشتر | کمتر |
| مقاومت در برابر ضربه | معمولاً کمتر | معمولاً بیشتر |
| صدا | ممکن است داشته باشد | تقریباً بیصدا |
| مصرف و حرارت | وابسته به مدل | وابسته به مدل |
SATA SSD و NVMe SSD چه فرقی دارند؟
اینجا یک نکته مهم وجود دارد که خیلیها اشتباه میگیرند: NVMe نوعی حافظه مثل NAND نیست. NVMe یک پروتکل ارتباطی برای دسترسی به حافظههای غیر فرار است که در SSDهای مدرن معمولاً از طریق PCIe استفاده میشود.
SATA SSD
SATA SSD معمولاً از رابط SATA برای ارتباط با سیستم استفاده میکند و از نظر شکل ظاهری میتواند شبیه هاردهای 2.5 اینچی باشد.
NVMe SSD
NVMe SSD معمولاً مستقیماً از مسیر PCIe استفاده میکند و پروتکل NVMe برای ارتباط با حافظه به کار میرود. به همین دلیل در بسیاری از کاربردها میتواند عملکرد بسیار بالاتری نسبت به SATA SSD ارائه دهد.
CPU / Chipset → SATA → SSD Controller → NAND
NVMe SSD:
CPU / Chipset → PCIe → NVMe Controller → NAND
ظرفیت با سرعت یکی نیست
فرض کنید دو SSD داریم: یکی 500GB و دیگری 1TB. از روی ظرفیت نمیتوان نتیجه گرفت کدامیک سریعتر است.
ظرفیت مشخص میکند چه مقدار اطلاعات میتوانیم ذخیره کنیم، اما سرعت به عواملی مانند کنترلر، نوع NAND، رابط، PCIe generation، تعداد کانالهای حافظه و طراحی خود SSD بستگی دارد.
Throughput: اطلاعات با چه سرعتی منتقل میشوند؟
Latency: پاسخگویی به یک درخواست چقدر زمان میبرد؟
IOPS: در عملیات ورودی/خروجی کوچک، چه تعداد عملیات در ثانیه انجام میشود؟
Sequential و Random Access
یکی دیگر از مفاهیم مهم در Storage، نوع دسترسی به داده است.
Sequential Access
در دسترسی ترتیبی، دادهها تقریباً پشت سر هم خوانده یا نوشته میشوند. مثلاً زمانی که یک فایل بسیار بزرگ را به صورت پیوسته کپی میکنیم.
Random Access
در دسترسی تصادفی، سیستم باید به بخشهای مختلفی از Storage دسترسی پیدا کند که الزاماً پشت سر هم نیستند. این نوع دسترسی برای بسیاری از عملیات سیستمعامل و برنامهها اهمیت زیادی دارد.
به همین دلیل فقط نگاه کردن به یک عدد مثل «سرعت خواندن ترتیبی» برای شناخت کامل عملکرد یک SSD کافی نیست.
سیستمعامل هنگام روشن شدن کامپیوتر چه کار میکند؟
یک تصویر ساده از فرآیند Boot میتواند این باشد:
سیستمعامل روی SSD/HDD قرار دارد
↓
RAM
بخشهای موردنیاز سیستمعامل به حافظه کاری منتقل میشوند
↓
CPU
دستورها را Fetch و Execute میکند
البته فرآیند واقعی Boot جزئیات بیشتری دارد و Firmware، Bootloader، کنترلرهای حافظه و سایر اجزای سیستم نیز در آن نقش دارند؛ اما این مدل برای درک رابطه CPU، RAM و Storage بسیار مناسب است.
فایلها کجا هستند؟
وقتی مثلاً یک فایل ویدئویی را روی SSD ذخیره میکنیم، فایل روی Storage باقی میماند. سیستمعامل با استفاده از File System اطلاعات مربوط به فایلها و محل ذخیره آنها را مدیریت میکند.
نمونههایی از File Systemها عبارتاند از: NTFS در بسیاری از سیستمهای Windows و ext4 در بسیاری از سیستمهای Linux.
File System را میتوان مانند یک سیستم فهرستبندی در نظر گرفت که به سیستمعامل کمک میکند بداند فایلها و پوشهها چگونه سازماندهی شدهاند.
SSD چگونه اطلاعات را نگه میدارد؟
حافظه NAND از سلولهایی تشکیل شده است که میتوانند اطلاعات را به شکل الکتریکی نگهداری کنند. در خانوادههای مختلف NAND، هر سلول میتواند تعداد متفاوتی بیت اطلاعات ذخیره کند.
برای مثال:
MLC → حدود 2 بیت در هر سلول
TLC → حدود 3 بیت در هر سلول
QLC → حدود 4 بیت در هر سلول
افزایش تعداد بیت در هر سلول میتواند تراکم ذخیرهسازی را افزایش دهد، اما طراحی کنترلر، عملکرد، دوام و رفتار SSD را نیز تحت تأثیر قرار میدهد.
دوام SSD و مفهوم TBW
حافظههای NAND برای همیشه بدون محدودیت قابل نوشتن نیستند. نوشتن و پاککردن سلولها باعث فرسایش تدریجی آنها میشود.
یکی از مشخصههایی که در برخی SSDها برای بیان دوام استفاده میشود TBW یا Total Bytes Written است؛ یعنی مقدار کل دادهای که سازنده برای میزان نوشتن تحت شرایط مشخص اعلام میکند.
پس چرا هنوز HDD استفاده میشود؟
با وجود مزایای SSD، HDD هنوز در بعضی کاربردها مورد استفاده قرار میگیرد. یکی از دلایل مهم، امکان دستیابی به ظرفیتهای بالا برای ذخیره حجم زیادی از دادهها است.
برای آرشیو فایلهای حجیم، Backup و بعضی کاربردهای ذخیرهسازی انبوه، HDD میتواند همچنان گزینهای قابل استفاده باشد. در مقابل، برای اجرای سیستمعامل و برنامههایی که به پاسخگویی سریع نیاز دارند، SSD معمولاً تجربه بسیار سریعتری ایجاد میکند.
یک مدل ذهنی برای کل سیستم
↓
Cache
↓
RAM
↓
SSD / HDD
↓
ذخیرهسازی دائمی اطلاعات
هرچه در این سلسلهمراتب پایینتر میرویم، معمولاً ظرفیت ذخیرهسازی بیشتر میشود اما دسترسی به داده از نظر زمان و نحوه ارتباط متفاوت است. این سلسلهمراتب یکی از مفاهیم مهم در معماری کامپیوتر است و بعدها هنگام مطالعه Memory Hierarchy دقیقتر با آن کار خواهیم کرد.
یک مثال واقعی
فرض کنید یک بازی روی SSD نصب شده است. خود فایلهای بازی روی SSD قرار دارند. وقتی بازی را اجرا میکنیم، سیستمعامل و خود برنامه بخشهای موردنیاز را از Storage دریافت کرده و در RAM قرار میدهد. CPU دستورها را اجرا میکند و در طول اجرای بازی، دادهها بین CPU، Cache، RAM و سایر اجزای سیستم جابهجا میشوند.
CPU → Cache → RAM → SSD
این مدل ساده کمک میکند بفهمیم چرا افزایش RAM، ارتقای SSD و ارتقای CPU هر کدام اثر متفاوتی روی سیستم دارند. هیچکدام جای دیگری را به طور کامل نمیگیرد.
جمعبندی
| مفهوم | معنی |
|---|---|
| Storage | فضای ذخیرهسازی دائمی اطلاعات |
| HDD | ذخیرهسازی مکانیکی و مغناطیسی |
| SSD | ذخیرهسازی مبتنی بر NAND Flash |
| SATA | یک رابط ارتباطی برای Storage |
| NVMe | پروتکل ارتباطی برای SSDهای مبتنی بر PCIe |
| Capacity | مقدار داده قابل ذخیره |
| Latency | زمان پاسخ به درخواست |
| IOPS | تعداد عملیات ورودی/خروجی در ثانیه |
| TBW | مشخصهای برای بیان میزان نوشتن اعلامشده SSD |
SSD و HDD برای نگهداری اطلاعات هستند، RAM برای کار موقت سیستم است و CPU برای اجرای دستورها. وقتی این سه نقش را از هم جدا کنیم، بخش بزرگی از معماری پایه کامپیوتر قابل فهمتر میشود.
در ادامه چه چیزی یاد میگیریم؟
بعد از شناخت CPU، ROM، RAM و Storage، قدم بعدی این است که وارد سطح پایینتر شویم و ببینیم اطلاعات در کامپیوتر دقیقاً چگونه نمایش داده میشوند: Bit، Byte، Binary و منطق 0 و 1. از اینجا وارد Level 1 یعنی مبانی دیجیتال و منطق دیجیتال میشویم.