Loading…

جزیره سخت افزار و تجهیزات دیجیتال

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

همانطور که میدونید امروزه 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

این قابلیت را با دیدن شکل زیر متوجه میشوید :
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 یک استاندارد و 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 استفاده شد.
دیدگاه ها
  • ارسال توسط:
  • زمان ارسال: 6 ماه قبل
ممنون بابت مطلب ، فکر میکنم یه مقدار بین مطالب پاراگراف بندی بشه مطالعش راحت تر میشه تا این همه اطلاعات یهو پشت سر هم نوشته شه ، با تشکر

  • ارسال توسط:
  • زمان ارسال: 4 ماه قبل
مثلاً در هاردهای IDE که قابلیت Native Command Queuing را ندارند صف سخت افزاری برای I/O sorting نداریم.و این وظیفه سیستم عامل است که این صف را به وسیله ی الگوریتم های disk scheduling ایجاد کند.
این جمله رو خوب متوجه نشدم،میشه لطفا بیشتر توضیح بدین؟
  • ارسال توسط:
  • زمان ارسال: 4 ماه قبل
اگر ادامه متن رو بخونی متوجه میشی این موضوع برای خود بنده هم جای سواله.در هر صورت Disk Scheduling در OS یک فصل از کتاب سیستم عامل است.به کتاب های سیستم عامل فصل Disk Scheduling یا I/O Scheduling مراجعه کنید.
برای ارسال نظر وارد شوید.