میلاد فشی
کارشناس فناوری اطلاعات

هارد ساتا چیست؟ بررسی جامع هارد SATA و قابلیت های آن

هارد ساتا چیست؟ چند نوع SATA وجود دارد؟ هات پلاک کردن ( Hot Plug ) در هارد دیسک به چه معناست؟ NCQ چیست؟ منظور از ساتا 1 و ساتا 2 و ساتا 3 چیست؟ همانطور که میدونید امروزه SATA یک اینترفیس رایج برای رسانه های ذخیره ساز است.مخفف Serial Advanced Technology Attachment است که به آن Serial ATA هم میگویند.SATA نسل بعدی PATA است.PATA که مخفف Parallel ATA میباشد از 40 تا 80 پین برای کابل اتصالی(Ribbon cable) استفاده میکرد.ولی پهنای کابل در ساتا فقط 7 پین است. به دلیل اینکه تکنولوژی ساتا سریال است سایز کابل تا این اندازه کاهش پیدا کرده است .این رابط سرعت بالاتری دارد و در لپ تاپ ها و PC ها جایگزین PATA شده است. از دیگر مزایای این رابط قابلیت های "Hot Plugging" و "NCQ" میباشد.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

قابلیت Hot Plugging چیست؟

به آن Hot swapping هم میگویند.درکل به هر دستگاهی که بتوان آن را بدون اینکه لازم باشد کامپیوتر را خاموش کنیم آن را به کامپیوتر وصل کنیم و بدون مشکل از آن استفاده کنیم.مثلاً فلش های با رابط USB ، قابلیت Hot Plugging دارند.یا اگر هارد سروری بسوزد و از نوع Hot Plugging باشد بدون اینکه سرور را خاموش کنید و سرویس های آن Down شود به راحتی میتوانید یک هارد جدید را به آن وصل کنید و به این قابلیت Hot swapping میگویند.

همین قابلیت و انعطاف پذیری اونها هم باعث شده که بیشتر بسوزندو بهشون آسیب برسه.مثلاً بنده همیشه این ریسک را نمیکنم و سرور رو خاموش میکنم وبعد هاردها رو تعویض میکنم.درسته که ما میگیم وسایل SATA هم این قابلیت رو دارند ولی خوب مطمئناً اگر هارد یا DVD Writer اکسترنال خودتون رو وقتی که کامپیوتر روشنه بهش وصل کنید حتماً دود از مداراتش بلند میشه و میسوزه.چون این دستگاه ها اینترنال هستند و کابل برق دارند.ولی خوب هاردهای اکسترنالی که رابط eSATA یا External SATA دارند مثل فلش به راحتی به کامپیوتر وصل میشوند.

(البته همه لپ تاپ ها و مادربردها پورت eSATA ندارند)..البته برای اینکه بدانید کجا دل رو عاشقانه به دریا بزنید و از این قابلیت استفاده کنید به نظر من باید درجاهای حیاتی باید از این قابلیت استفاده کنید.مثلاً وقتی میخوان به یه بیمار پیوند قلب بزنند که زنده بمونه باید این فرآیند هم به صورت Hot plugging باشه !!! اگر روشن موندن سرور شما هم به اندازه جون همون بیمار مهم باشه شما باید از این قابلیت استفاده کنید. نقطه مقابل اصطلاح hotplugging اصطلاح cold-pluggable است.مثلاً اگر شما بخواهید یک DVD اینترنال نصب کنید باید کامپیوتر رو خاموش کنید و از برق بکشید چون این دستگاه cold-pluggable است.

Native Command Queuing یا NCQ چیست؟

این قابلیت را با دیدن شکل زیر متوجه میشوید :

Native Command Queuing

خوب سیستم عامل مداوم به درخواست های کاربر برای دسترسی به هارد دیسک باید جواب بده.و OS هم درخواست های خود رو برای سخت افزار میفرسته.سیستم عامل باید درخواست های خودش رو بهینه بفرسته.به روشی برای نظم دادن و ترتیب دادن به این درخواست ها از هارد دیسک I//O scheduling میگویند.به Input//output (I//O) scheduling گاهی disk scheduling هم میگویند.به نظم و توالی این درخواست ها هم scheduling disciplines میگویند.

برای مثال سیستم عامل از طرف یک نرم افزار درخواست هایی برای خواندن بلاک های 1,5,2,9,4 داره.اگر سیستم عامل خنگ باشه این درخواست ها رو با همین ترتیب به هارد دیسک میفرسته.ولی اگر باهوش باشه درخواست ها رو به صورت 1,2,4,5,9 برای هارد میفرسته تا به کمک متوالی بودن این بلاک ها هد هارد کمتر بچرخه.ساده ترین نوع scheduling disciplines حالت First In, First Out (FIFO) است که به آن First Come First Served (FCFS) هم میگویند.

یعنی هردرخواستی که زودتر داده شده به اون زودتر پاسخ داده بشه.نمیخوام به دیگر حالت ها مثل shortest Seek // Service Time First (SSTF) یا جزییات الگوریتمی و مباحث elevator algorithm بپردازم.در هاردهای SATA قابلیتی برای همین منظور به اسم Native Command Queuing وجود داره.این قابلیت به هد هارد کمک میکنه که همه درخواست ها رو برای خوندن//نوشتن رو دسته بندی کنه و اون را با ترتیبی انجام بده که کمتر از این سکتور به اون سکتور بره و باعث کاهش زمان پیمایش بشه.

(seek time).و همین باعث بالارفتن Performance و reliability و عمر هارد دیسک میشه.این کار رو ما آدم ها برای دسترسی به قفسه کتاب ها یا کارهای روزمره خود انجام میدیم.ترتیب کارها رو به صورت بهینه درمیاریم که کمترین هزینه جابه جایی رو برامون داشته باشه.البته هرچند با وجود هاردهای SSD دیگر این بحث Seek Time و I//O Scheduling معنا نداره.چون اصلاً هدی نداره که Seek Time ای داشته باشه.ولی خوب هنوز هم برای ذخیره اطلاعات حجیم از هاردهای گران قیمت SSD استفاده نمیشود.

چرا قابلیت NCQ برای هارد SATA طراحی شد؟

چرا ما باید دو نوع I//O Scheduling سخت افزاری و نرم افزاری داشته باشیم؟ وقتی ما دو نوع I//O Scheduling داشته باشیم پس دو I//O queue هم داریم و در هر I//O Queue هم ترتیب و discipline درخواست های I//O به هارد دیسک رو هم داریم.چرا باید یک I//O Queue سخت افزاری و یک I//O Queue نرم افزاری داشته باشیم!؟

چون که در بعضی از سیستم ها یک صف ممکن است غایب باشد! مثلاً در هاردهای IDE که قابلیت Native Command Queuing را ندارند صف سخت افزاری برای I//O sorting نداریم.و این وظیفه سیستم عامل است که این صف را به وسیله ی الگوریتم های disk scheduling ایجاد کند.اما سوالی که خودم هم برایش جوابی ندارم !!! این است که چرا با وجود الگوریتم های Disk Scheduling که در OS وجود دارد و تقاضاهای دسترسی به دیسک را بهینه میکند چه نیازی به NCQ و Hardware I//O Queueداریم !!!؟

Advanced Host Controller Interface یا AHCI چیست؟

AHCI یک استاندارد و Hardware Mechanism است که این مکانیسم سخت افزاری امکان استفاده از قابلیت های SATA را برای ما فراهم میکندهمین قابلیت ها و مزیت های Hot Plugging و NCQ وسرعت بیشتر تبادل اطلاعات.برای حفظ سازگاری با سخت افزارهای قدیمی،بیشتر مادربردها برای شما حق انتخاب operation mode را فراهم میکنند.در تنظیمات مربوط به Bios مادربردها در قسمت تنظیمات هاردیسکها عبارت operation mode را داریم که از طریق آن میتوان تکنولوژی ارتباطی هاردیسک را مشخص کنیم.

در بعضی از Main Board ها از عبارت SATA Configuration استفاده شده است. شما میتوانید Operation Mode را بر روی ( IDE ( Integrated Drive Electronics استاندارد رابط قدیمی قابل استفاده برای دیوایسهای ذخیره ساز یا ( AHCI (Advanced Host Controller Interface قرار دهید.

برای استفاده از AHCI قبل از نصب ویندوز باید آن را از BIOS فعال کنید، تغییر حالت از IDE به AHCI و برعکس ، بعد از نصب سیستم عامل میتواند منجر به مشکل در بوت سیستم عامل شود. و مطمئنا ویندوز شما در مرحله ای که لوگوی ویندوز را به شما نمایش میدهد ریستارت میشود و هرگز بوت نخواهد شد، دلیلش هم این است که در حین نصب ویندوز درایورهای کنترلر AHCI نصب نمیشوند و کلا در ویندوزی که نصب میشود این درایور ها وجود نخواهند داشت.

اما شاید با خود فکر کنید که فرق ATA و PATA و IDE چیست !؟ گیج کننده هستند مگه نه !؟ IDE که مخفف Integrated Drive Electronics است و بسیار به ATA هم مربوط میشود ولی یک چیز نیستند ! رابط IDE از پروتکل ATA برای ارتباط استفاده میکند.IDE را با Integrated Development Environment اشتباه نگیرید.

برخی میگویند IDE با ATA فرقی ندارد و برخی هم میگویند هرچند خیلی شبیه به هم هستند ولی یکی نیستند.ولی به هر حال هر دو منسوخ شده اند و به تاریخ پیوسته اند و فرقشون دیگه اصلاً مهم نیست.وقتی هم که SATA جای اونها رو گرفت و واژه Serial ََATA سر زبونا افتاد.برای اینکه تاکید کنند که تکنولوژی های قدیمی سریال نبودند و موازی بودند از واژه PATA یا Parallel ATA به جای ATA استفاده شد.

ورژن های مختلف ساتا ( چند نوع ساتا وجود دارد)؟

برای نمایش نسخه های ساتا معمولاً از کلمه SATA و کاراکتر dash و اعداد یونانی استفاده میشود (از اعداد یونانی استفاده میشود تا نسخه ساتا با سرعتش اشتباه گرفته نشود ) برای مثال "SATA-III".

SATA-I چیست ؟

نسل اول ساتا است که درسال 2003 معرفی شد. به آن SATA 1.5Gb//s هم میگویند.حداکثر نرخ انتقال آن 150MB//s (صدوپنجاه مگابایت در ثانیه ) است.از قابلیت "Native Command Queuing" پشتیبانی نمیکند.به دلیل اینکه از NCQ پشتیبانی نمیکند به نسبت PATA افزایش سرعت قابل توجهی نداریم.چون درPATA نسخه 5 (Ultra ATA//100) حداکثر Transfer Rate معادل 100 مگابایت در ثانیه بود و حتی با استفاده از Ultra DMA توانسته بودند در نسخه 7 (Ultra ATA167) به سرعت 167 مگابایت در ثانیه دست پیدا کنند.

از نظر تئوری توان نسخه یک ساتا مانند پاتا نسخه 6 (Ultra ATA133) است که سرعت 133 مگابایت در ثانیه را دارد.ولی پشتیبانی از قابلیت NCQ در نسخه های جدیدتر SATA باعث افزایش راندمان و Performance ساتا شد.اما اگر کمی کنجکاو باشید سوال میکنید که SATA-I که به آن SATA 1.5Gb/s هم میگویند.وقتی سرعت آن 1.5 گیگابیت بر ثانیه است ، معادل 187500000 بایت در ثانیه سرعت دارد.و این یعنی 187.5 مگابایت در ثانیه.اما چرا حداکثر نرخ انتقال آن 150 مگابایت در ثانیه معرفی شده است !؟

علت این است که SATA از کدگذاری 8b//10b استفاده میکند.در ارتباطات (Telecommunications) از کدهای خطی (Linear Code) برای ارسال سیگنال های دیجیتال استفاده میشود.وقتی که میخواهیم یک دیتای دیجیتال را از طریق سیگنال بفرستیم بایستی از یک Encoding مناسب استفاده نماییم.در SATA از 8b // 10b استفاده شده است.در این روش به جای 8 بیت اطلاعات ، 10 بیت ارسال میشود.جزییات Encoding 8b // 10b را در ادامه شرح میدهم.

وقتی 2 بیت از 10 بیت اطلاعات برای Parity و Error Detection مورد استفاده قرار میگیرد ، بنابراین 20 درصد اتلاف پهنای باند داریم.خوب 187.5x20%=37.5 مگابایت اتلاف داریم.خوب اگر 37.5 مگابایت پریتی(اتلاف) را از 187.5 مگابایت کم کنیم معادل 150 مگابایت اطلاعات داریم که حداکثر نرخ ارتباطی ساتا یک است.چون همه ورژن های ساتا از کدگذاری8b // 10b استفاده میکنند 20 درصد اتلاف پهنای باند داریم و بایستی برای بدست آوردن نرخ انتقال واقعی 80 درصد حداکثر پهنای باند را درنظر بگیریم.

SATA-II چیست ؟

به آن SATA 3Gb//s هم میگویند.دومین نسل ساتا است و نرخ انتقال آن 300MB//s است.بهتر است بگوییم از پهنای باند 375 مگابایت برثانیه آن ، 75 مگابایت آن برای پریتی است و 300 مگابایت هم برای انتقال اطلاعات است.در سال 2004 با معرفی NCQ به بازار عرضه شد و پشتیبانی از این قابلیت باعث شد که پهنای باند آن دوبرابر نسخه قبلی باشد.و با نسخه قبلی (SATA-I) سازگاری (Backward Compatibility) دارد.

SATA-III چیست؟

به آن SATA 6Gb//s هم میگویند.سومین نسل ساتا است و نرخ انتقال آن 600MB//s است.از پهنای باند 750 مگابایت در ثانیه ، 150 مگابایت آن برای پریتی است و 600 مگابایت هم برای انتقال اطلاعات است.در سال 2008 معرفی شد.این ورژن هم با نسخه های قبلی (ساتایک و دو)سازگاری دارد.و بدیهی است که اگر به پورت های قدیمی تر متصل شود ، حداکثر نرخ انتقال هم با توجه به ورژن کنترلر کاهش پیدا میکند.مثل USB3 که با USB2 هم سازگاری دارد ولی خوب اگر به پورت USB2 متصل شود ، نرخ انتقال آن کاهش پیدا میکند.

SATA revision 3.1 چیست ؟

این نسخه از ساتا در سال 2011 معرفی شد.در این نسخه قابلیت های زیر معرفی شد:

  • mSATA که برای لپتاپ های سبک وزن و نازک و Mobile ها معرفی شد.mSATA یا mini-SATA اولین بار توسط Samsung عرضه شد.

 

رسانه های ذخیره ساز SATA و قابلیت های آن - قسمت دوم
  • پشتیانی از قابلیت Queued TRIM Command که باعث افزایش کارایی رسانه های ذخیره ساز SSD میشود.برای مطالعه بیشتر به نکته ی مهندس نصیری مراجعه شود.
  • کاهش انرژی مصرفی هارد دیسک.چون زمانی که از هارد دیسک استفاده نمیشود ، مصرف برق را قطع میکند.

SATA revision 3.2 (16 Gbits, 1969 MBs)

در سال 2013 معرفی شد.

SATA revision 3.3

در سال 2016 معرفی شد.


میلاد فشی
میلاد فشی

کارشناس فناوری اطلاعات

میلاد فشی ، کارشناس نرم افزار ، کتاب Mobile Web Application With MoSync Framework را برای برنامه نویسی Cross-Platform برای موبایل ها یا تبلت ها به رشته تحریر درآوردم.به نرم افزارهای آزاد و متن باز (FOSS) علاقه دارم. با توزیع های محبوب گنو/لینوکس نیز کار کرده ام.به شبکه های کامپیوتری بیشتر از برنامه نویسی علاقه دارم و به همین دلیل بیشتر در حوزه شبکه های کامپیوتری مطالعه و تحقیق و پژوهش دارم و خودم رو یک دانشجوی مادام العمر میدونم...

نظرات