نوشته‌ها

هارد SSD و دستور TRIM

هارد SSD و دستور TRIM

دستور TRIM

 این مقاله دستور TRIM که توسط برخی کنترلرهای SATA و SCSI SSD پشتیبانی می‌شود را ارائه کرده است. دستور TRIM مرتبط با پروسه جمع‌آوری زباله در هارد دیسکهای SSD می‌باشد که در مقالات قبل به آن اشاره شده است. زمانی‌که سیستم عامل LBA  ای (آدرس دهی بلاک منطقی ) را که حاوی داده است را جابجا می کند، برای مثال در زمان به روز رسانی فایل (بازنویسی فایل)، هارد دیسک SSD اطلاعات آپدیت شده را در صفحات pages جدید ذخیره می‌کند و صفحات موجود قبلی را به‌عنوان کثیف یا کهنه برچسب‌گذاری می‌کند.

بعدا” در زمانی مناسب زباله روب ( آشغال جمع کن ) این پیج های ( صفحات) کثیف را به وسیله پاک کردن کل بلاک هایشان که کوچکترین ناحیه ( واحد) در NAND Flash هستند اصلاح و تمیز می کند. این بلوک تازه پاکسازی شده حالا آماده است تا با اطلاعات جدید نوشته شود.

چرا دستور TRIM برای SSD نیاز است؟

هارد SSD ها نیازمند دریافت دستور TRIM هستند تا بتوانند Performance و کارایی خود را در طول حیات خود حفظ کنند، برای این منظور هم خود SSD و هم سیستم عامل و هم نحوه به کارگیری SSD از اهمیت فراوانی برخوردار است. سیستم عاملهای ویندوز 7 و 8 و 10 به بالا از فرستادن دستور TRIM پشتیبانی میکنند.همانطور که می دانید دیفراگ کردن برای SSD بسیار مضر است. اما خوشبختانه مایکروسافت در سیستم عامل جدیدش به صورت اتوماتیک به جای دیفراگمنت برای SSD اقدام به ارسال دستور TRIM می کند. بدین صورت که کافیست بر روی درایو مربوطه راست کلیک کنید و Properties را بزنید. سپس از صفحه ی Tools، دکمه ی Optimize را کلیک کنید تا پنجره ی Optimize Drive باز شود. در اینجا روی هر درایوی که اقدام به Optimize کردن بکنید، خود ویندوز به صورت اتوماتیک، اگر آن درایو روی هارد دیسک باشد آن را دیفراگ (مرتب) میکند، و اگر درایو مربوطه روی SSD باشد ویندوز به صورت اتوماتیک دستور TRIM را به SSD ارسال میکند تا سرعت SSD مثل روز اول احیاء شود.

زمانی که سیستم عامل LBAهای مشابه را بازنویسی می‌کند و کنترلر هارد دیسک SSD آنها را به‌عنوان کثیف برچسب گذاری می‌کند، بطور واضح است مشخص است که داده های معتبری، دیگر در این صفحات pages وجود ندارد.

اما زمانی‌که فایلی در سیستم عامل حذف می‌شود، صرفا” دایرکتوری سیستم عامل به روز رسانی می‌شود. در این موارد هیچ دستور پاکسازی به  SSD برای  آن LBA هایی که دیگربرای سیستم عامل مطرح نیستند ارسال نشده است. این جا است که دستور Trim  وارد می شود. با اجرای دستور TRIM و زمانی که فایلی بطور دائم  حذف شده باشد، این دستور به SSd اطلاع می دهد که LBAهای مربوطه دیگر دارای اطلاعات معتبر نمی‌باشند و می‌توانند برچسب کثیف را برای دور بعدی جمع آوری داده ها دریافت کنند.

مثالی در مورد سیستم عامل و SSD بدون دستور TRIM

دستور TRIM

دستور TRIM

زمانی دستور TRIM عملی خواهد شد که این دستور توسط سیستم عامل و SSD پشتیبانی شود. اگر یکی از این دو از دستور TRIM پشتیبانی نکند، عملی نخواهد شد. نسخه‌های جدید ویندوز، مک و لینوکس از دستور TRIM پشتیبانی می‌کنند. تصویر فوق شکل ساده شده سیستمی را نشان می‌دهد که از دستور TRIM پشتیبانی ‌نمی‌کند. در این مثال سیستم میزبان دارای یک فایل است که این فایل دارای ۳۲ صفحه ۱۲۸ کیلوبایتی می‌باشد، این فایل حذف شده است. سیستم عامل میداند که این فایل حذف شده است وهمچنین می داند این نواحی فضاهای خالی است که می‌تواند برای نوشتن از آنها استفاده کند.

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

مثالی در مورد سیستم عامل و SSD با دستور TRIM

دستور TRIM

دستور TRIM

سیستمهایی که از دستور TRIM پشتیبانی می‌کنند، سیستمهایی هستند که هم سیستم عامل و هم هارد دیسک SSD از دستور TRIM پشتیبانی می‌کند و سیستم عامل و هارد دیسک SSD با هم هماهنگ هستند. بعد از حذف یک فایل، سیستم عامل دستور TRIM را همراه با LBA هایی که پاک شده اند  به هارد SSD ازسال می کند. سپس هارد دیسک SSD، LBAها را با عنوان کثیف برچسب گذاری می‌کند و در طول پروسه جمع آوری زباله آنها را پاک و اصلاح می کند.

تصاویر فوق مثالی ساده از دستور TRIM را نشان می‌دهد. همانطور که در مثال قبل گفته شد، سیستم میزبان فایلی دارد که دارای ۳۲ صفحه ۱۲۸ کیلوبایتی می‌باشد ، این فایل حذف شده است. سیستم عامل این مناطق را به عنوان مکان های خالی دردسترس در دایرکتوری برچسب گذاری می‌کند. سپس دستور TRIM را همراه با LBAهای مورد نظر به SSD ارسال می کند. کنترلر SSD این صفحات را کثیف برچسب گذاری می‌کند و این برچسبها توسط پروسه جمع آوری زباله پاکسازی خواهند شد.

منبع: https://www.cactus-tech.com/resources/blog/details/solid-state-drive-primer-12-controller-functions-trim-command