Storage چیست؟

وقتی یک فایل را روی کامپیوتر ذخیره می‌کنیم، مثلاً یک فیلم، عکس، بازی یا سیستم‌عامل، اطلاعات باید جایی باقی بمانند که با خاموش شدن کامپیوتر از بین نروند. این قسمت از سیستم را Storage یا فضای ذخیره‌سازی می‌نامیم.

هارد دیسک HDD و حافظه‌های SSD دو نمونه معروف Storage هستند. وظیفه اصلی Storage نگهداری دائمی یا بلندمدت اطلاعات است.

ایده اصلی: RAM محل کار موقت کامپیوتر است، اما Storage محل نگهداری اطلاعات است. اگر کامپیوتر را خاموش کنیم، اطلاعات RAM معمولاً از بین می‌رود؛ ولی اطلاعات روی SSD یا HDD باقی می‌ماند.

Storage چه فرقی با RAM دارد؟

برای درک بهتر، کامپیوتر را مثل یک میز کار در نظر بگیرید:

Storage → انبار اطلاعات
RAM → میز کار
CPU → کارگری که روی میز کار می‌کند

فایل‌ها و برنامه‌ها معمولاً روی Storage قرار دارند. وقتی قرار است یک برنامه اجرا شود، سیستم‌عامل اطلاعات موردنیاز آن را از Storage به RAM منتقل می‌کند و CPU از طریق سلسله‌مراتب حافظه به داده‌ها و دستورها دسترسی پیدا می‌کند.

ویژگی RAM Storage
ماندگاری اطلاعات معمولاً با قطع برق از بین می‌رود با خاموش شدن سیستم باقی می‌ماند
کاربرد اصلی فضای کاری برنامه‌ها نگهداری فایل و برنامه
نمونه DDR4 / DDR5 HDD / SSD
ظرفیت معمول چند GB تا ده‌ها GB صدها GB تا چند TB

HDD چیست؟

HDD یا Hard Disk Drive نوعی Storage مکانیکی است. درون HDD تعدادی صفحه گردان به نام Platter وجود دارد که اطلاعات روی سطح آن‌ها ذخیره می‌شود.

یک موتور این صفحات را می‌چرخاند و هدهای مخصوص با حرکت روی سطح صفحات، اطلاعات را می‌خوانند یا روی آن‌ها می‌نویسند.

مدل ساده HDD

Platter → صفحه‌ای که اطلاعات روی آن ذخیره می‌شود

Spindle / Motor → چرخاندن صفحه

Read/Write Head → خواندن و نوشتن اطلاعات

به همین دلیل HDD قطعات متحرک دارد و عملکرد آن با حرکت مکانیکی درگیر است. سرعت چرخش صفحات نیز معمولاً با واحد RPM بیان می‌شود.

اطلاعات در HDD چگونه سازمان‌دهی می‌شوند؟

در مدل ساده‌شده، سطح دیسک به بخش‌هایی تقسیم می‌شود تا کنترلر بتواند محل داده‌ها را پیدا کند. اصطلاحاتی مانند Sector و Track در ساختار سنتی HDD به این سازمان‌دهی مربوط هستند.

بنابراین وقتی سیستم‌عامل درخواست خواندن یک فایل را می‌دهد، کنترلر باید اطلاعات مربوط به محل داده را پیدا کند و مکانیزم مکانیکی HDD را برای دسترسی به آن بخش به کار بگیرد.

SSD چیست؟

SSD یا Solid State Drive برخلاف HDD برای ذخیره اطلاعات از صفحه چرخان و هد مکانیکی استفاده نمی‌کند. در SSD اطلاعات روی تراشه‌های حافظه NAND Flash ذخیره می‌شوند.

مدل ساده SSD

CPU / System

SSD Controller

NAND Flash

Data

SSD علاوه بر تراشه‌های NAND، یک Controller دارد. کنترلر وظایفی مانند مدیریت خواندن و نوشتن، ارتباط با سیستم، مدیریت سلول‌های حافظه و برخی عملیات داخلی SSD را انجام می‌دهد.

چرا SSD معمولاً سریع‌تر از HDD است؟
چون 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 ارائه دهد.

SATA SSD:
CPU / Chipset → SATA → SSD Controller → NAND

NVMe SSD:
CPU / Chipset → PCIe → NVMe Controller → NAND

ظرفیت با سرعت یکی نیست

فرض کنید دو SSD داریم: یکی 500GB و دیگری 1TB. از روی ظرفیت نمی‌توان نتیجه گرفت کدام‌یک سریع‌تر است.

ظرفیت مشخص می‌کند چه مقدار اطلاعات می‌توانیم ذخیره کنیم، اما سرعت به عواملی مانند کنترلر، نوع NAND، رابط، PCIe generation، تعداد کانال‌های حافظه و طراحی خود SSD بستگی دارد.

Capacity: چقدر اطلاعات جا می‌شود؟
Throughput: اطلاعات با چه سرعتی منتقل می‌شوند؟
Latency: پاسخ‌گویی به یک درخواست چقدر زمان می‌برد؟
IOPS: در عملیات ورودی/خروجی کوچک، چه تعداد عملیات در ثانیه انجام می‌شود؟

Sequential و Random Access

یکی دیگر از مفاهیم مهم در Storage، نوع دسترسی به داده است.

Sequential Access

در دسترسی ترتیبی، داده‌ها تقریباً پشت سر هم خوانده یا نوشته می‌شوند. مثلاً زمانی که یک فایل بسیار بزرگ را به صورت پیوسته کپی می‌کنیم.

Random Access

در دسترسی تصادفی، سیستم باید به بخش‌های مختلفی از Storage دسترسی پیدا کند که الزاماً پشت سر هم نیستند. این نوع دسترسی برای بسیاری از عملیات سیستم‌عامل و برنامه‌ها اهمیت زیادی دارد.

به همین دلیل فقط نگاه کردن به یک عدد مثل «سرعت خواندن ترتیبی» برای شناخت کامل عملکرد یک SSD کافی نیست.

سیستم‌عامل هنگام روشن شدن کامپیوتر چه کار می‌کند؟

یک تصویر ساده از فرآیند Boot می‌تواند این باشد:

Storage
سیستم‌عامل روی 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، هر سلول می‌تواند تعداد متفاوتی بیت اطلاعات ذخیره کند.

برای مثال:

SLC → حدود 1 بیت در هر سلول
MLC → حدود 2 بیت در هر سلول
TLC → حدود 3 بیت در هر سلول
QLC → حدود 4 بیت در هر سلول

افزایش تعداد بیت در هر سلول می‌تواند تراکم ذخیره‌سازی را افزایش دهد، اما طراحی کنترلر، عملکرد، دوام و رفتار SSD را نیز تحت تأثیر قرار می‌دهد.

دوام SSD و مفهوم TBW

حافظه‌های NAND برای همیشه بدون محدودیت قابل نوشتن نیستند. نوشتن و پاک‌کردن سلول‌ها باعث فرسایش تدریجی آن‌ها می‌شود.

یکی از مشخصه‌هایی که در برخی SSDها برای بیان دوام استفاده می‌شود TBW یا Total Bytes Written است؛ یعنی مقدار کل داده‌ای که سازنده برای میزان نوشتن تحت شرایط مشخص اعلام می‌کند.

TBW به این معنی نیست که SSD دقیقاً بعد از رسیدن به آن عدد ناگهان خراب می‌شود؛ این مقدار یک مشخصه دوام اعلام‌شده توسط سازنده است و طول عمر واقعی به نوع استفاده و شرایط کاری نیز وابسته است.

پس چرا هنوز HDD استفاده می‌شود؟

با وجود مزایای SSD، HDD هنوز در بعضی کاربردها مورد استفاده قرار می‌گیرد. یکی از دلایل مهم، امکان دستیابی به ظرفیت‌های بالا برای ذخیره حجم زیادی از داده‌ها است.

برای آرشیو فایل‌های حجیم، Backup و بعضی کاربردهای ذخیره‌سازی انبوه، HDD می‌تواند همچنان گزینه‌ای قابل استفاده باشد. در مقابل، برای اجرای سیستم‌عامل و برنامه‌هایی که به پاسخ‌گویی سریع نیاز دارند، SSD معمولاً تجربه بسیار سریع‌تری ایجاد می‌کند.

یک مدل ذهنی برای کل سیستم

CPU

Cache

RAM

SSD / HDD

ذخیره‌سازی دائمی اطلاعات

هرچه در این سلسله‌مراتب پایین‌تر می‌رویم، معمولاً ظرفیت ذخیره‌سازی بیشتر می‌شود اما دسترسی به داده از نظر زمان و نحوه ارتباط متفاوت است. این سلسله‌مراتب یکی از مفاهیم مهم در معماری کامپیوتر است و بعدها هنگام مطالعه Memory Hierarchy دقیق‌تر با آن کار خواهیم کرد.

یک مثال واقعی

فرض کنید یک بازی روی SSD نصب شده است. خود فایل‌های بازی روی SSD قرار دارند. وقتی بازی را اجرا می‌کنیم، سیستم‌عامل و خود برنامه بخش‌های موردنیاز را از Storage دریافت کرده و در RAM قرار می‌دهد. CPU دستورها را اجرا می‌کند و در طول اجرای بازی، داده‌ها بین CPU، Cache، RAM و سایر اجزای سیستم جابه‌جا می‌شوند.

SSD → RAM → Cache → CPU

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 یعنی مبانی دیجیتال و منطق دیجیتال می‌شویم.