حافظه‌ی کش L1, L2 و L3 چیست و چه تاثیری در عملکرد پردازنده دارد

طراحی کش و سیستم کشینگ یکی از مهم ترین اتفاقات در تاریخ کامپیوتر به شمار می رود. تمام پردازنده های امروزی از آن هایی که در موبایل ها استفاده می شوند تا پردازنده های قدرتمند سرورها همگی حافظه ی کش دارند. اما کش چیست و چرا وجود آن در پردازنده اهمیت دارد؟

تقریبا تمام پردازنده ها از پردازنده های کم مصرف و کم توانی مانند Cortex-A5 آرم تا پردازنده های قدرتمندی همچون Core i7 اینتل همگی از حافظه ی پرسرعتی به نام کش (Cache) بهره می برند. حتی میکروکنترلرهای رده بالا نیز عموما کَشِ کوچکی دارند. با وجود اینکه در طراحی آن ها مصرف انرژی اهمیت زیادی دارد و کش نیز انرژی مصرف می کند، اما مزیت های حافظه ی کش آنقدر مهم هستند که استفاده از کش را توجیه می کند.

کشینگ و استفاده از کش اختراع شد تا یک مشکل جدی را حل کند. در دهه های اولیه ی ظهور کامپیوتر، حافظه ی اصلی به شدت کند و بسیار گران بود و از طرفی پردازنده ها نیز چندان سریع نبودند. در دهه ی ۱۹۸۰ اختلاف سرعت بین حافظه و پردازنده افزایش یافت و سرعت کلاکِ میکروپروسسورها مدام در حال افزایش بود. در این شرایط همچنان حافظه ها کند بودند و درواقع نمی توانستند پا به پای پردازنده ها دسترسی به اطلاعات را فراهم کنند. اینجا بود که لزوم ساخت حافظه های سریع تر حس شد.

سال ۱۹۸۰ کش در میکروپروسسورها وجود نداشت. در سال ۱۹۹۵ استفاده از سطح دوم کش رواج یافت.

حافظه کش چیست و چطور کار می کند؟

کش به زبان ساده یک حافظه ی بسیار سریع است که دقیقا درکنار واحدهای منطقی پردازنده ی مرکزی قرار می گیرد. البته قطعا حافظه ی کش بیش از این تعریف یک خطی در قدرت و سرعت پردازنده کاربرد و تأثیر دارد.

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

همان طور که می دانیم، سیستم جادویی فرضیه ی بالا وجود ندارد و احتمال توسعه ی آن نیز به صفر میل می کند. به جای سیستم مذکور، درحال حاضر درایوهای حالت جامد را در دست داریم که حتی بهترین نمونه ها در میان آن ها نیز توانایی مدیریت تمامی تبادل های داده ای مورد نیاز پردازنده های عادی را ندارند.

چرا حافظه های سریع SSD هم توانایی مدیریت تمام نیازهای داده ای پردازنده را ندارند؟ پردازنده های مدرن، سرعت عملکرد زیادی دارند و به عنوان مثال، در هر سیکل کلاک، امکان جمع کردن دو مقدار عدد صحیح ۶۴ بیتی را با هم دارند. به بیان دیگر، چنین عملیاتی برای یک پردازنده ی چهار گیگاهرتزی، تنها ۰/۰۰۰۰۰۰۰۰۰۲۵ یا یک چهارم نانوثانیه طول می کشد. حال تصور کنید که هارد درایوهای مکانیکی، تنها برای پیدا کردن داده به چند هزار نانوثانیه نیاز دارند. به علاوه، زمان تبادل داده را هم باید به این مقدار اضافه کنید. حافظه های SSD با سرعت بسیار بالا هم برای پیدا کردن داده به چند ده یا چند صد نانوثانیه زمان نیاز دارند.

درایوهای ذخیره سازی سریع را نمی توان در داخل پردازنده ها توسعه داد. درنتیجه همیشه یک فاصله ی فیزیکی بین بخش ذخیره سازی و پردازنده ی مرکزی وجود دارد. همین فاصله، زمان دسترسی و جابه جایی داده را افزایش می دهد که موجب بدتر شدن شرایط می شود.

برای رفع چالش بالا، باید سیستم ذخیره سازی داده ی دیگری بین پردازنده و حافظه  ذخیره  سازی اصلی اضافه کنیم. حافظه ی جدید، باید سریع تر از درایو بوده و توانایی مدیریت تمامی فرایندهای تبادل داده را به صورت هم زمان داشته باشد. از همه مهم تر، این حافظه باید هرچه بیشتر به پردازنده نزدیک باشد. حافظه ای که ترکیبی از پیش نیازها را داشته باشد، در کامپیوترهای شخصی وجود دارد و آن را به نام رم (RAM) می شناسیم. به بیان بهتر، نام DRAM برای این نوع از حافظه استفاده می شود که توانایی تبادل داده ها را با سرعتی بسیار بیشتر از هر درایو ذخیره سازی دارد.

حافظه ی رم با وجود سرعت بالایی که به کامپیوتر ارائه می کند، توانایی ذخیره ی حجم زیادی از داده را ندارد. در مقام مقایسه، جالب است بدانید تراشه های بزرگ DDR4 هر یک توانایی ذخیره ی ۳۲ گیگابیت را دارند، درحالی که بزرگ ترین هارد درایو ها، ظرفیتی چهار هزار برابر بیشتر را ارائه می کنند.

با وجود اینکه اضافه کردن رم، مشکل سرعت در تبادل داده را از بین می برد، برای بهبود سیستم به بخش های سخت افزاری و نرم افزاری دیگری هم نیاز پیدا خواهیم کرد. این سیستم های اضافه، تصمیم می گیرند که چه داده ای باید در حافظه ی محدود DRAM به صورت آماده برای پردازنده ی مرکزی، نگه داری شود.

حافظه های DRAM برخلاف درایوهای مرسوم ذخیره سازی، امکان تولید به صورت تراشه را دارند که به نام embedded DRAM شناخته می شود. با این حال، باز هم ابعاد بسیار کوچک پردازنده مانع از آن می شود که تراشه های DRAM را در تراشه ی CPU جانمایی کنیم.

اکثر حافظه های DRAM در نزدیک ترین موقعیت نسبت به پردازنده قرار دارند و روی مادربرد نصب می شوند. همیشه جدیدترین قطعه به CPU، حافظه ی DRAM است، اما باز هم توانایی ارائه ی سرعت بالای کافی را ندارد. DRAM برای پیدا کردن داده های مدنظر، به ۱۰۰ نانوثانیه زمان نیاز داشته و البته حداقل توانایی جابه جایی میلیاردها بیت داده را در هر ثانیه دارد. ظاهرا برای افزایش هرچه سریع تر سرعت انتقال داده، به یک بخش ذخیره سازی دیگر بین واحدهای پردازشی CPU و DRAM نیاز داریم.

پیش از رسیدن به راهکار نهایی، باید یک قطعه ی ذخیره سازی دیگر را نیز بررسی کنیم. SRAM یا Static Random Access Mempory تفاوت هایی کلی با DRAM دارد. DRAM از خازن های میکروسکوپی برای ذخیره سازی داده به صورت بار الکتریکی استفاده می کند. در SRAM از ترانزیستور برای همین منظور استفاده می شود که سرعتی بسیار بالا و نزدیک به واحدهای منطقی پردازنده ی مرکزی دارد. SRAM سرعتی حدود ۱۰ برابر DRAM دارد.

حافظه های SRAM با وجود سرعت بیشتر، باز هم محدودیت فضا دارند. حافظه های مبتنی بر ترانزیستور، فضای بسیار بیشتری نسبت به DRAM اشغال می کنند. یک ماژول SRAM با ابعاد فیزیکی نزدیک به یک ماژول DDR4، تنها ۱۰۰ مگابایت حافظه ی ذخیره سازی دارد. البته ازآنجاکه SRAM با فرایندی شبیه به ساخت CPU تولید می شود، می توان از آن در داخل تراشه ی پردازنده ی مرکزی استفاده و حافظه را هرچه نزدیک تر به واحد های منطقی جانمایی کرد.

در مراحل بالا، در هر مرتبه که یک فرایند ذخیره سازی بین درایو ذخیره سازی و پردازنده اضافه کردیم، سرعت افزایش پیدا کرد و ظرفیت کمتر شد. هنوز هم می توان در فرایندهای بالا، مراحلی را اضافه کرد تا حافظه هایی با ظرفیت کمتر و سرعت بیشتر، به سیستم اضافه شوند.

باتوجه به توضیحات بالا، اکنون می توان تعریف فنی  و دقیق تری از حافظه ی کش ارائه کرد. حافظه ی کش، تعدادی بلوک حافظه ی SRAM است که همگی در داخل پردازنده قرار دارند. این واحدها وظیفه دارند تا واحدهای منطقی پردازنده را همیشه مشغول نگه دارند. آن ها داده را با سرعت هایی بسیار بالا به واحدهای منطقی ارسال کرده و از آن ها دریافت می کنند.

کش یا پارکینگ طَبَقاتی

همان طور که دیدید، کش به این دلیل ایجاد شد که هیچ سیستم جادویی ذخیره سازی برای پاسخ به نیازهای شدید داده ای واحدهای منطقی پردازنده وجود ندارد. پردازنده های مدرن مرکزی و گرافیکی امروزی، همگی دارای تعدادی بلوک SRAM هستند که ازلحاظ داخلی به صورت سلسله مراتبی دسته بندی شده اند. درنهایت، ترتیبی از حافظه های کش جانمایی شده اند.

نزدیک ترین واحد ذخیره سازی به واحدهای منطقی، اصولا در دسته بندی کش جای نمی گیرد و به نام Registers شناخته می شود. واحد مذکور، گروهی از فایل های موسوم به رجیستر است.

هریک از واحدهای رجیستر، یک عدد تکی را نگه داری می کنند، مثلا یک عدد صحیح ۶۴ بیتی. مقادیر هر بخش می تواند هر نوع داده ای باشد. مثلا در هر رجیستر شاید کد یک دستورالعمل خاص یا حتی آدرس مموری داده ای دیگر ذخیره شود. فایل رجیستر در یک پردازنده ی رومیزی بسیار کوچک است. به عنوان مثال، در پردازنده ی Core i9-9900K در هر هسته، دو مجموعه ی رجیستر قرار دارد. دسته ی مخصوص اعداد صحیح، تنها ۱۸۰ رجیستر ۶۴ بیتی دارد. رجیستر دیگر برای اعداد برداری استفاده می شود و ظرفیت ۱۶۸ ورودی ۲۵۶ بیتی دارد. درنتیجه، ظرفیت کل فایل رجیستر برای هر هسته، کمی کمتر از هفت کیلوبایت خواهد بود. در مقام مقایسه، فایل های رجیستر در مجموعه های Streaming Multiprocessors مثل پردازنده ی گرافیکی GeForce RTX 2080 Ti، ابعاد ۲۵۶ کیلوبایتی دارند. Streaming Multiprocessors، تراشه هایی هستند که در پردازنده ی گرافیکی عملکردی شبیه به CPU دارند.

رجیسترها ازنوع SRAM هستند، اما سرعت آن ها با واحدهای منطقی متصل برابری می کند. درنتیجه آن ها داده را در هر چرخه ی کلاک، با ALU تبادل می کنند. همان طور که دیدید، این واحدها برای ذخیره سازی داده ی زیادی طراحی نشده اند. درنتیجه، همیشه یک واحد بزرگ تر ذخیره سازی داده درکنار آن ها وجود دارد که همان نام آشنای حافظه ی کش L1 را برای آن انتخاب می کنیم.

کش موسوم به Level 1 Instruction نیز وجود دارد که آن هم ظرفیت محدود ۳۲ کیلوبایتی دارد. همان طور که از نام حافظه بر می آید، وظیفه ی ذخیره سازی دستورهای متعددی را برعهده دارد که آماده ی تقسیم شدن به عملیات کوچک تر موسوم به μops هستند و درنهایت برای ALU ارسال می شوند. برای این دستورها نیز یک حافظه ی کش وجود دارد که به نام L0 شناخته می شود. این حافظه کوچک تر است و در فاصله  ای نزدیک تر نسبت به حافظه ی L1 قرار می گیرد. L0 تنها توانایی ذخیره سازی ۱،۵۰۰ عملیات را دارد.

شاید از خود بپرسید که چرا بلوک های حافظه ی SRAM در پردازنده کوچک هستند و آن ها را در ظرفیت های مگابایتی تولید نمی کنند. داده ها و دستورالعمل هایی که در کش نگه داری می شوند، فضایی برابر با واحدهای منطقی در تراشه ی پردازنده اشغال می کنند. درنتیجه افزایش ابعاد آن ها منجر به افزایش ابعاد کل قالب تراشه می شود. البته دلیل اصلی پایین بودن ظرفیت در حد کیلوبایت این است که با افزایش ابعاد سیستم ذخیره سازی، زمان مورد نیاز برای دسترسی به داده هم افزایش پیدا می کند. حافظه ی L1 باید سرعت عمل بسیار زیادی داشته باشد. به همین دلیل باید بین ابعاد و سرعت تعادل ایجاد شود. برای دسترسی به داده در این حافظه و استخراج آن، حداقل به پنج سیکل کلاک نیاز داریم.

اگر در یک پردازنده تنها از یک حافظه ی کش استفاده می شد، بهره وری و کارایی با مانع بزرگی رو به رو می شد. به همین دلیل لایه ی دیگر ذخیره ساز هم نیاز خواهد بود که به نام Level 2 یا همان L2 شناخته می شود و دستورالعمل و داده را نگه داری می کند.

حافظه ی L2 همیشه بزرگ تر از L1 است. در پردازنده های AMD Zen 2 شاهد استفاده از حافظه های L2 با ظرفیت ۵۱۲ کیلوبایت هستیم که داده های مورد نیاز L1 را همیشه دردسترس قرار می دهند. البته همان طور که گفته شد، با افزایش ابعاد حافظه، سرعت کاهش پیدا می کند. درنتیجه حافظه های L2 برای پیدا کردن داده نسبت به L1 به دوبرابر زمان نیاز دارند. در گذشته و در دوران پردازنده های پنتیوم، کش L2 به صورت بخشی جدا در رم یا مادربرد استفاده می شد و به مرور به تراشه ی اصلی CPU رسید. همین مسیر، برای اضافه شدن کش جدید به پردازنده ها طی شد و لایه ی جدید، هم زمان با توسعه ی پردازنده های چندهسته ای به تراشه های اصلی اضافه شد.

البته هسته ها مجهز به یک لایه ی سوم از حافظه ی SRAM نیز هستند.

کش L3 یا Level 3 در اطراف یک هسته ی تکی دیده شده، اما با هسته های دیگر به اشتراک گذاشته می شود. درواقع هر هسته می تواند آزادانه به داده های موجود در کش L3 دیگر دسترسی پیدا کند. این حافظه ها ظرفیت بسیار بیشتری به کش های دیگر دارند و عموما بین دو تا ۳۲ مگابایت ظرفیت ارائه می کنند. البته سرعت آن ها کمتر است و به صورت میانگین به ۳۰ چرخه ی کلاک می رسد. از همه مهم تر، اگر هسته ای به داده های موجود در بلوک کش در فاصله ی دور نیاز داشته باشد، سرعت کاهش پیدا می کند.

مفهومی مهم تر از اعداد

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

وقتی پردازنده، یک عملیات را با نیاز به خواندن یا نوشتن داده از حافظه اجرا می کند، ابتدا تگ های موجود در کش L1 بررسی می شوند. اگر تگ مناسب در L1 موجود باشد، دسترسی به داده به سرعت رخ می دهد (Cache Hit)، اگر هم تگ در حافظه ی کش سطح پایین پیدا نشود، رخداد موسوم به Cache Miss اتفاق می افتد. در چنین وضعیتی یک تگ جدید در L1 ساخته شده و سایر بخش های معماری پردازنده، وارد عمل می شود تا داده را در کش های سطوح دیگر جستجو کند. در نهایت شاید پردازنده مجبور به مراجعه به حافظه ی ذخیره سازی اصلی بشود. از طرفی برای ایجاد فضا در حافظه ی L1، همیشه باید بخش دیگر از داخل L2 خارج شود.

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

با استفاده از نرم افزارهای رایگان مانند CPU-Z می توانید اطلاعاتی کلی از ساختار پردازنده ی مرکزی خود به دست بیاورید. درک این اطلاعات، کمک شایانی به درک بهتر ساختار کش می کند. یکی از مهم ترین المان های اطلاعاتی، set associative نام دارد که قوانین و دستورالعمل های چگونگی کپی کردن بلوک های داده از حافظه ی سیستم به کش را مشخص می کند.

هرچه تعداد ارتباط ها بیشتر باشد، شانس cache hit افزایش پیدا می کند. البته اضافه شدن تعداد خطوط، با بیشتر شدن پیچیدگی همراه خواهد بود و توان مصرفی را افزایش می دهد. از طرفی کارایی و بهره وری پردازنده هم دچار مشکل می شود، چون پردازنده باید برای هر بلوک داده، خطوط کش بیشتری را پردازش کند.

یکی دیگر از دلایل افزایش پیچیدگی کش، به چگونگی نگه داری و مدیریت داده در سطوح گوناگون مربوط می شود. قوانین مربوط به این فرایند در بخشی به نام inclusion policy تنظیم می شوند. به عنوان مثال، پردازنده های اینتل ساختار fully inclusive L1+L3 دارند. به بیان دیگر، داده هایی که در L1 هستند، امکان حضور در L3 را هم دارند. شاید در نگاه اول چنین ساختاری موجب هدر رفتن فضای کش باشد، اما مزیت اصلی در آنجا است که اگر پردازنده در پیدا کردن تگ داده در سطح پایین تر کش ناموفق بود، نیازی به جستجو در سطح بالاتر نخواهد داشت. در همین پردازنده ها، بخش L2 دیگر شامل داده ها نمی شود. به بیان دیگر، داده هایی که در L2 هستند، در سطح دیگر کپی نمی شوند.

روند عدم کپی داده ها در L2 باعث صرفه جویی در فضای حافظه می شود، اما سیستم حافظه ی تراشه مجبور می شود تا برای پیدا کردن یک تگ یافت نشده (missed tag) حافظه ی بزرگ تر L3 را جستجو کند. رویکرد دیگری در معماری کش وجود دارد که به نام Victim caches شناخته می شود و شبیه به روند بالا است. این نوع از کش برای ذخیره سازی داده ی خارج شده از سطح پایین تر استفاده می شود. به عنوان مثال، پردازنده های AMD Zen 2 از L3 victim cache استفاده می کنند که تنها داده های کش L2 را ذخیره می کند.

در طراحی کش، ساختار و دستورالعمل مهم دیگری هم باید مدنظر قرار بگیرد. در این ساختار زمان ذخیره ی داده روی کش یا حافظه ی اصلی سیستم، مشخص می شود. ساختار مذکور به نام Write policies شناخته می شود که اکثر پردازنده های مدرن از سیاست موسوم به write-back بهره می برند. به بیان دیگر وقتی داده روی یک سطح از حافظه ی کش نوشته می شود، کمی تأخیر نیاز خواهد بود تا حافظه ی اصلی با یک کپی از داده ی مذکور، به روز شود. در اکثر موارد، توقف در ارسال داده تا زمانی که داده در کش باشد، ادامه پیدا می کند. تنها زمانی که داده از کش خارج شود، حافظه ی رم اطلاعات را دریافت می کند.

طراحان پردازنده، برای تصمیم گیری بین انتخاب های گوناگون مقدار، نوع و سیاست های اجرایی کش، نیاز به ظرفیت بیشتر در پردازنده را با پیچیدگی بیشتر و فضای بیشتر قالب تراشه، در وضعیتی تعادلی بررسی می کنند. در یک دهه ی گذشته، پایین ترین سطح حافظه ی کش تغییر زیادی را تجربه نکرده است. درمقابل، ابعاد حافظه ی L3 روند افزایشی را سپری کرد. ۱۰ سال پیش، برای خرید پردازنده ای با ۱۲ مگابایت کش L3 باید هزینه ای حدود هزار دلار پرداخت می شد. امروز با پرداخت هزینه ای نصف، پردازنده با ۶۴ مگابایت حافظه ی کش در اختیار کاربران قرار دارد.

چرا ظرفیت حافظه ی کش CPU مدام در حال افزایش است؟

دلیل اینکه مدام ظرفیت حافظه ی کش افزایش می یابد آن است که با افزایش حافظه ی کش، شانس دسترسی به اطلاعات در این حافظه بیشتر شده و نیاز به رم کمتر می شود و این موضوع به معنی افزایش بازده سیستم خواهد بود.

طراحی کش چه تأثیری روی بازده دارد؟

تأثیر اضافه شدن کش به CPU ارتباط مستقیم به نرخ مراجعات موفق پردازنده به کش دارد. هرچه دفعات مراجعه ی CPU کمتر با شکست رو به رو شود، بازده پردازنده افزایش می یابد. در ادامه چند مثال برای این موضوع ارائه می کنیم تا دید بهتری نسبت به آن داشته باشید.

تصور کنید که یک CPU مجبور باشد اطلاعات مشخصی را ۱۰۰ بار پشت سر هم از L1 بخواند. حافظه ی L1 تأخیر یک نانوثانیه دارد و هر ۱۰۰ بار نیز حافظه با موفقیت اطلاعات را می خواند. به این ترتیب پردازنده ۱۰۰ نانوثانیه برای انجام این عملیات زمان صرف می کند.

حال تصور کنید که همان CPU با نرخ ۹۹ درصد اطلاعات را از L1 بخواند و صدمین مراجعه ی آن به L1 بدون پاسخ بماند و مجبور باشد به L2 مراجعه کند. تأخیر L2 ده سیکل یا ۱۰ نانوثانیه است به این ترتیب پردازنده ۹۹ نانوثانیه برای کسب اطلاعات از L1 و ۱۰ نانوثانیه برای کسب اطلاعات از L2 صرف می کند. این بدین معنی است که اگر یک درصد از مراجعات پردازنده به حافظه ی L1 بدون پاسخ بماند ۱۰ درصد سرعت پردازنده کاهش می یابد.

در دنیای واقعی حافظه ی L1 بین ۹۵ تا ۹۷ درصد مراجعات پردازنده را پاسخ می دهد، اما همان دو درصد اختلاف می تواند تأثیر محسوسی در سرعت پردازش امور داشته باشد. تازه این برای زمانی است که مطمئن باشیم اطلاعاتی که در L1 یافت نشده است حتما در L2 وجود دارد. اما در دنیای واقعی بعضی اوقات اطلاعات مورد نیاز پردازنده حتی در L3 و L4 نیز وجود ندارد و پردازنده مجبور به مراجعه به رم است. اگر پردازنده مجبور به کسب اطلاعات از رم باشد آن وقت سیکل پاسخ دهی به ۸۰ تا ۱۲۰ نانوثانیه افزایش می یابد.

منبع: زومیت.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

هجده + 17 =

لطفا پاسخ عبارت امنیتی را در کادر بنویسید. *