رم سرور
رم سرور یا RAM یک حافظه بسیار سریع است که نام آن را در کنار پردازنده ها بسیار شنیده ایم.
این قطعه رایانه ای میتواند نقش بسیار مهمی را در توسعه قدرت و توانایی های سرور مان داشته باشد. به خاطر اهمیتی که این قطعه دارد. در این پست به این موضوع می پردازیم.
رم سرور چیست؟
رم یا RAM یک نوع حافظه سریع است. این حافظه از شیوه Random Access Memory استفاده می کند و سرنام RAM هم از همین عبارت برداشته شده است.
این شیوه از ذخیره سازی اطلاعات به صورت سریع انجام می شود و بر خلاف شیوه ترتیبی، اطلاعات به اولین آدرس خالی ارسال شده و به همین طریق هم بازخوانی می شوند. در شیوه ترتیبی اطلاعات به مانند یک نوار ذخیره می شوند و شما برای رسیدن به یک بخش از اطلاعات باید تمام نوار را طی کنید. اما در شیوه تصادفی اطلاعات به مانند قفسه های کتابخانه ذخیره می شوند و برای رسیدن به اطلاعات به راحتی می توانیم به سراغ قفسه رفته و اطلاعات را استخراج کنیم.
در رم ها سرعت پردازش اطلاعات زیاد است. اما شاید بپرسید که وجود آن در کامپیوتر به خاطر چیست؟ در ادامه این مطلب را توضیح می دهیم.
داستان سرعت ساعت کامپیوتر
مدار هر رایانه ای به مانند یک شهر بزرگ کار می کند. برای آنکه همه چیز در این شهر بزرگ هماهنگ باشد باید از یک ساعت در آن استفاده کرد. این ساعت می تواند ترافیک، ادارات، ساعات کاری و بسیاری از چیزهای دیگر را منظم کند.
در رایانه ها هم برای منظم کردن ارتباطات از یک ساعت استفاده می شود. اما مشکل این است که همه چیز دقیقا با یک سرعت کار نمی کنند.
اطلاعات در پردازنده با سرعت بیش از چندمیلیارد بار در ثانیه پردازش می شوند اما در هارد درایو این مقدار به چندهزارم ثانیه می رسد. اینجاست که باید چاره ای اندیشید.
پردازنده ها از ترانزیستورهای به اندازه 14 نانومتر بهره می برند. این ترانزیستورها می توانند اطلاعات را در نانو ثانیه پردازش کنند. اما ذخیره سازی آن ها زمان بیشتری به طول می انجام. هارد درایوها از مدارهای کندتر و بزرگتری استفاده میکنند و اگر هاردها به صورت مکانیکی باشند فوق العاده کند هستند. برای همین باید از شیوه ای استفاده کرد که این مشکل را حل کرد.
اینجاست که سرو کله رم پیدا می شود. این قطعات بر خلاف هارددرایوها از قطعات تمام الکترونیکی و نیمه رسانه ساخته شده اند. سرعت کار آن ها بین 4 تا 10 نانوثانیه است. برای همین از هاردها بسیار سریعتر عمل می کنند. رم اطلاعات مورد نیاز پردازشگر را آماده می کند و آن را برای پردازنده می فرستد و سپس اطلاعات پردازش شده را دریافت کرده و آن را به سمت هارد درایو و یا سایر قطعات مورد تقاضا ارسال میکند. به خاطر همخوانی سرعت پردازنده و رم، رایانه های امروزی می توانند از پردازنده های بسیار قوی تری استفاده کنند.
اما یک مشکل دیگر در اینجا پیش می آید. هر چقدر ما بخواهیم رایانه ای سریعتر بسازیم باید حافظه آن را نیز سریعتر کنیم اینجاست که با محدودیت های زیادی روبرو می شویم. طراحان رایانه های برای رفع این مشکل اقداماتی را انجام دادند که در ادامه آن ها را بررسی می کنیم.
مدارهای کنترل کننده
برای آنکه رم به خوبی بتواند با پردازنده کار کند نیازمند یک راهکار هماهنگ کننده هستیم. این هماهنگی توسط قطعه ای به نام «پل شمالی» صورت می گیرد. پل شمالی اطلاعات بین چهار درگاه PCIe و CPU و RAM و پل جنوبی را با هم هماهنگ می کند. این قطعه می تواند تفاوت سرعت پردازش را به خوبی مدیریت کند.
برای مدیریت بهتر پردازنده ما از یک چیپ ست استفاده می کنیم. این چیپ ست اطلاعات پردازشی بین پردازنده،گذرگاه جلویی (FSB)، وپل شمالی را تنظیم می کند. رم نمی تواند به صورت مستقیم اطلاعات را به پردازنده بفرستد. و عبور از مسیر پل شمالی، FSB یک الزام است.
این مسیر کمی از سرعت پردازش کم می کند. برای رفع این حالت ما از کانال های حافظه استفاده می کنیم. کانال های حافظه خطوط ارتباطی را تقویت می کند و در نتیجه اطلاعات با حجم بیشتری به سمت پردازنده و رم می رود.
اکنون یک مشکل دیگر را نیز باید حل کنیم. مشکل هماهنگی رم و پردازنده!
با اینکه ارتباط بین رم و کش بسیار خوب و سریع است. این سرعت باز هم زیاد مطابق با هم نیست. رم ها با سرعت گیگاهرتز بر ثانیه کار می کند ولی رم ها با سرعت مگاهرتز، اما این موضوع به خودی خود بد نیست تنها باید کمی ارتباطات مدیریت شود و این ارتباطات به وسیله حافظه هایی به نام کش (Cache) مدیریت می شود.
کش (Cache) چیست؟
با اینکه رم ها سرعت بالایی دارند، اما این به سرعت گیگاهرتز پردازنده نمی رسد. برای این کار در هر پردازنده از چند حافظه بسیار سریع استفاده می شود. به این حافظه های Cache میگوئیم.
این کش ها ابتدا در خارج از پردازنده ها بود ولی اکنون به درون پردازنده فرستاده شده است. این کار سبب تسریع سرعت تبادل اطلاعات شد. کش ها در واقع نیاز و خوراک حافظه پردازنده را برطرف می کند. در وبلاگ آی تی باز به صورت کامل در این باره توضیح داده ایم. می توانیم برای اطلاعات بیشتر به این وبلاگ مراجعه کنیم.
کش ها حافظه هایی بسیار کوچک در حد مگابایت هستند ولی سرعت پردازش را بیشتر می کنند.
استفاده موثر از سگینال ها
همانطور که گفتیم سرعت پردازنده و رم و سایر قطعات کامپیوتر بر حسب ساعت رایانه کار می کند. این ساعت در هر هرتز (یا دوره کاری) خود پالسی را به قطعات مختلف ارسال میکند. ما با این پالس سرعت کاری تمام قطعات را تنظیم می کنیم.
بین پردازنده و رم هم در هر دوره از این پالس، پالس های دیگری رد و بدل می شود. هر پالس دارای یک فراز و یک فرود است. فراز آن شروع پالس و فرود آن انتهای پالس را مشخص می کند.
در رایانه های قدیمی تر و رم های سنتی به ازای هر پالسی که از سوی پردازنده ارسال می شد، یک تبادل اطلاعاتی بین رم و پردازنده انجام می گرفت. این کار سرعت را کم می کرد.
به این شیوه Single Data Rate یا SDR می گویند.
اینجا بود که طراحان دست به کار شدند و از ایده «لبه پالس» استفاده کردند. در شیوه لبه پالس به ازای هر فراز و فرود یک تبادل اطلاعات انجام می شود. یعنی به جای یک بار تبادل در هر پالس، دو بار تبادل انجام می شود. به این شیوه Double Data Rate گفته می شود.
این کار سبب بیشتر شدن سرعت رم ها شد و به زودی سرنامه DDR در بازار جای خود را باز کرد. رم های DDR می توانند در هر پالس ساعت دوبار اطلاعات را ارسال و یا دریافت کنند.
در نسل های بعدی شیوه کار DDR توسعه پیدا کرد و اکنون به رم های DDR4 رسیده ایم که بسیار سریعتر از نسل های اولیه هستند.
اکنون سرعت تبادل اطلاعات به 2933 مگاهرتز رسیده است.
برای آنکه اطلاعات در این دسته از رم ها به صورت سریع تبادل بشود. نیازمند آن هستیم که پایه های بیشتری را در اختیار داشته باشیم. به همین خاطر رم های DDR4 از 288 پایه یا پین برای تبادل اطلاعات استفاده می کنند و در هر پالس می توانند 36 پالس را تبادل کنند.
اما با این همه باز هم مشکلاتی در سر راه رم ها وجود داشت که توسعه های بعدی سعی در رفع آن ها داشتند.
رم های LRDIMM و RDIMM
رم ها برای فائق آمدن با مشکل سرعت و حجم بازهم تکامل پیدا کردند. با آنکه ایده سرعت تبادل حل شده بود اما هنوز مسئله پردازش به صورت موثر حل نشده بود تا اینکه ایده رم های RDIMM داده شد.
رم های RDIMM یا رم های Registered DIMM برای حل مشکل از یک سری از بافرها یا ریجسترها استفاده می کنند. این بافرها به مانند کش در پردازنده عمل می کنند و میتوانند اطلاعات را برای مدتی در بافر یا ریجستر نگه دارند و بعد آن را به آدرس مورد نظر ارسال کنند.
اگرچه این شیوه خیلی خوب بود ولی محدودیت در بزرگ شدن کش سبب می شود که نتوان از این شیوه برای رم های با حجم بالا استفاده کرد. به صورت معمول رم های RDIMM رم هایی با سرعت و حجم پایین تر هستند و به ندرت شاهد سرعت بیش از 2400 مگاهرتز در آن ها هستیم.
شیوه دوم رم های LRDIMM بود. رم های LRDIMM بسیار سریع تر از RDIMM عمل می کنند. این رم ها از یو شیوه توزیع و پهنای باند به جای بافر بهره می برند برای همین بارکاری در آن ها شکسته می شوند و ظرفیت کاری آن ها بسیار افزایش پیدا می کند. اکنون بسیاری از رم های بزرگ و حجیم به این شیوه ساخته می شود. در سایت گروه فنی و مهندسی وی سنتر ما بصورت کامل به بحث رم سرور پرداخته ایم.
اکنون رم سرور LRDIMM در حد 526 گیگابایت در بازار وجود دارند. و سرعت پردازش در آن ها نیز به 2933 مگاهرتز و بالاتر می رسد.
اما تقویت بافرها و ریجسترها مشکل را تا حدودی حل کرد ولی مشکل دیگر ارتباط قوی بین رم و پردازنده بود.
طراحان برای رفع این مشکل هم از شیوه لوله کشی یا Piping استفاده کردند که در ادامه به آن می پردازیم.
کانال های رم
رم برای ارتباط بهتر با پردازنده می تواند از یک کانال استفاده کنند. در این صورت باید همیشه منتظر خالی شدن این کانال بود تا اطلاعات جدید بر روی آن ارسال شود. این در رایانه های قدیمی مشکلی را ایجاد نمی کرد اما در رایانه های جدید با داشتن چندین هسته، یک کانال ارتباطی می تواند مشکل جدی را ایجاد کند. برای همین طراحان سرورها و رایانه ها اقدام به استفاده از چندکانال ارتباطی بین رم و پردازنده کردند. اکنون عبارت Channels در لیبل شاسی ها و پردازند ها به همین مسئله اشاره دارد.
هرچه تعداد کانال ها رم و پردازنده بیشتر باشد سرعت رم بیشتر خواهد بود. در سرورهایی نظیر HPE ProLiant DL560 Gen10 امکان استفاده از بیست و چهار کانال برای چهار پردازنده و 48 اسلات رم وجود دارد. یعنی هر پردازنده به شش کانال دسترسی دارد.
داستان فناوری های رم بسیار زیاد است و در این مقاله کوتاه نمی گنجد ما آن را در وبلاگ آی تی باز به صورت تخصصی توضیح داده ایم.
فناوری های رم
در بازار کنونی ما با انواع فناوری های رم روبرو هستیم برخی بسیار پیچیده و برخی بسیار ساده هستند. ما در ادامه به توضیح آن ها به اختصار می پردازیم.
ECC: فناوری نوعی از مدیریت خطا در رم ها است. در این فناوری داده هایی که برای رم فرستاده می شوند می توانند انواع مختلفی از مشکلات را داشته باشند. رم هایی با داشتن فناوری ECC این مشکلات و خطاها را شناسایی می کنند و نسبت به رفع آن ها اقدام می کنند رم هایی که این ویژگی را دارند کمتر سبب توقف سرور می شوند و سرعت پردازش بالاتری دراند. با این حال رم های ساده Non-ECC بیشتر در سرورها به خدمت گرفته می شوند.
AES: این فناوری یک فناوری رمز نگاری است. این کلمه مخفف عبارت Advanced Encryption Standard است. این فناوری از آخر دهه 1990 کمک وارد عرضه پردازنده ها شد و در سال 2002 به عنوان یک استاندارد فراگیر شناخته شد. فناوری AES بین پردازنده و رم قرار می گیرد و سبب ایجاد یک زبان رمز نگاری شده بین آن دو می شود. در این فناوری از شیوه بلوک جایگزین برای رمز نگاری استفاده شده است. با استفاده از آن هکر ها و بد افزارها امکان تزریق کد به درون کدهای درحال پردازش را نخواهند داشت.
Persistent Memory: این فناوری توسط شرکت HPE توسعه پیدا کرده است. در این فناوری سعی شد که مشکل عمر کوتاه DRAM (همان رم ها داینامیک که در بالا به آن اشاره شده است) حل شود. در سیستم PM سرعت ذخیره سازی اطلاعات در رم به شدت افزایش پیدا کرده است و اطلاعات رم حتی در زمانی که جریان الکتریسیته قطع شود، پاک نخواهند شد. به خاطر سرعت بالا در ذخیره سازی و آدرس دهی این دسته از رم ها، اکنون از ان ها در اکثر سرورها استفاده می شود.
خرید رم سرور
ما تعداد بسیار زیادی از تجهیزات شبکه و قطعات سرور را ارائه کرده ایم که شما می توانید به راحتی انواع رم سرور را بررسی و خرید کنید.