کش موقت در موارد مختلف استفاده می شود:
- داده های سری زمانی بسیاری از برنامه های برنامه ریزی، بانکی، پزشکی و علمی داده های زمانی را مدیریت می کنند. یک پایگاه داده زمانی داده های مربوط به نمونه های زمانی را ذخیره می کند. به طور خاص، داده ها را با زمان شروع و زمان پایان مرتبط می کند. دادهها را میتوان با دو مفهوم زمان مشخص کرد: یک بازه زمانی معتبر (زمانی که رویداد داده در واقعیت مدلسازی شده رخ میدهد) و یک بازه زمانی تراکنش (دورهای که اطلاعات رویداد در پایگاه داده ذخیره میشود).
- عملیات شبکه ذخیره موقت محتوا می تواند با کاهش مسافتی که بسته ها باید در یک شبکه طی کنند، به بهبود عملکرد شبکه و تجربه کاربر نهایی کمک کند.[iii]
این گفتگو معیارهای مربوط به سطح سیستم را برای درک موفقیت احتمالی راه حل های محاسباتی حافظه نزدیک معرفی کرد. این وبلاگ با معرفی یک رویکرد جدید برای مدیریت داده که روشهای دسترسی موقت به دادههای ذخیره موقت را برای به حداکثر رساندن عملکرد در این برنامههای کاربردی مهم یکسان میکند، این بحث را ادامه میدهد. پایه و اساس این رویکرد جدید، حافظه پایدار Intel® Optane™ (PMem) است که به عنوان یک ردیف حافظه ثانویه عمل می کند.
نمونه ای از یک مدل کش موقت کلی، یک کار موازی است که برای اجرای طرح اجرای پرس و جو در برابر داده های تغییرناپذیر طراحی شده است که به صورت جدولی که توسط یک طرح توصیف شده ارائه می شود. (طرح اجرای پرس و جو، دنباله ای از مراحل است که برای دسترسی به داده ها در یک سیستم مدیریت پایگاه داده رابطه ای SQL استفاده می شود.) جدول از ساختارهای گزارشی که شامل بخش گزارش قابل تغییر (غیر مهر و موم) فعلی و همچنین بسیاری از غیرقابل تغییر (مهر شده) است، تولید می شود. ) بخش های ورود به سیستم. Amazon Redshift، Databricks Delta Lake، F1 Lightning و Procella همگی معماری مشترکی دارند که از این مدل استفاده می کند، همانطور که در شکل 1 نشان داده شده است.
توجه: مفهوم «محل معنایی» به عنوان بخشی از مدیریت دانش خارج از محدوده این وبلاگ است.
اگر یک سیستم محاسباتی توزیعشده از «اشتراکگذاری واقعی» استفاده میکند، پردازندههای درگیر باید حافظههای پنهان خود را همگامسازی کنند تا از صحت برنامه اطمینان حاصل کنند، که میتواند دسترسی حافظه پنهان را کاهش دهد. در این وبلاگ، ما بر روی کش های موقت تمرکز می کنیم، که می توان به مراتب سریعتر از بسیاری از کش های دیگر به آنها دسترسی داشت، زیرا برنامه هایی با موقعیت زمانی بالا تمایل کمتری به اشتراک گذاری واقعی حافظه پنهان دارند. هنگامی که دو پردازنده به یک کلمه داده دسترسی پیدا می کنند، می تواند رخ دهد که بلوک کش در حافظه پنهان یک پردازنده باطل شود.
داده ها از حافظه اصلی بازیابی شده و بر اساس اصل محلی بودن در حافظه کش ذخیره می شوند. این اصل تصدیق می کند که برنامه ها تمایل دارند در هر زمان به بخش نسبتاً کوچکی از فضای آدرس حافظه دسترسی پیدا کنند. قاعده کلی این است که برنامه متوسط 90 درصد از زمان خود را صرف دسترسی به حدود 10 درصد از داده ها می کند.[ii] اکنون، دو نوع مختلف محلی وجود دارد:
- مکان زمانی (مکان در زمان) تمایل یک برنامه به استفاده از اقلام داده اغلب در طول اجرای برنامه است. اگر برنامهای بهطور مکرر از یک دستورالعمل یا متغیر داده استفاده میکند، این داده یا دستورالعمل باید نزدیک به CPU نگه داشته شود، زیرا احتمالاً به زودی دوباره به آن ارجاع داده میشود.
- موقعیت مکانی (موقعیت مکانی در فضا) به مواردی اطلاق می شود که آدرس آنها در حافظه مجاور نگهداری می شود و بنابراین تمایل دارند به زودی دوباره به آنها ارجاع داده شود.
در طول کنفرانس بینالمللی مدارهای حالت جامد 2022 (ISSCC)، دکتر فرانک هادی نیاز به محاسبه حافظه نزدیک در سطح سیستم را برای غلبه بر تنگناهای داده در سیستمهای پردازش دادههای هوش مصنوعی آینده ارائه کرد. این جلسه با عنوان “ما در مورد رفت و آمد خود تجدید نظر کرده ایم. آیا میتوانیم در مورد رفتوآمدهای دادههایمان تجدیدنظر کنیم؟» دکتر هادی در جلسه خود به نکات زیر اشاره کرد:
- نیازهای محاسباتی هوش مصنوعی به طور تصاعدی در حال افزایش است و نیاز است که مراکز داده عملکرد را به حداکثر برسانند و مصرف انرژی سیستم را به حداقل برسانند.
- ارتباط مستقیمی بین TCO و انرژی سیستم وجود دارد، زیرا جابجایی داده ها از طریق سلسله مراتب حافظه پرهزینه است.
همانطور که در نمودار نشان داده شده است، طراحی فعلی از فضای ذخیره سازی – NAND SSD های متصل به صورت محلی – برای بافر کردن نتایج میانی یک پرس و جو پس از اولین عملیات اسکن/ادغام استفاده می کند. این داده ها باید قبل از پردازش بیشتر در حافظه صفحه شوند. متأسفانه، تأخیر دسترسی برای SSD های NAND نسبت به زمانی که به این داده ها در حافظه دسترسی داشت، مرتبه ای بالاتر است.
در اینجا درباره پیاده سازی حافظه پنهان موقت حافظه محور بیشتر بیاموزید.
سلب مسئولیت و اطلاعیه ها:
روشهای سنتی مدیریت داده مبتنی بر I/O که بر دستورالعملهای Load-Store برای دسترسی به دادههای درون حافظه و ورودی/خروجی فایل POSIX برای دسترسی به دادههای پایدار تکیه میکنند، سازگاری، دوام یا یکپارچگی را ارائه نمیکنند که هوش مصنوعی و سایر برنامههای کاربردی داده فشرده نیاز. به عنوان یک جایگزین، ما از استفاده از گزینه های حافظه ثانویه مانند حافظه با پهنای باند بالا (HBM) و Intel Optane PMem برای یکسان سازی دسترسی موقت به داده های حافظه پنهان و به حداقل رساندن تأخیر حمایت می کنیم. در اصل، Intel Optane PMem یک سیستم حافظه لایهای ایجاد میکند، جایی که DRAM به عنوان یک حافظه پنهان L4 برای PMem اینتل Optane با ظرفیت بالا و تاخیر کم عمل میکند.
در حالی که مزایای کش موقت واضح است، توسعه دهندگان هنگام طراحی آن ها با چالش های متعددی روبرو هستند. این چالش ها شامل ابعاد کش موقت (به ویژه مربوط به شبکه های تحویل محتوا)، و همچنین بهبود بهره وری انرژی مدیریت حافظه است. چالش اخیر را می توان تا حدی با استفاده از مدیریت منطقه مرده به کمک زمان اجرا (RADAR) برای پیش بینی و حذف بلوک های مرده در کش های سطح آخر برطرف کرد.[iv]
نویسنده: آلیسون گودمن، مهندس اصلی و مدیر معماری Optane Solutions در اینتل
جدای از تأخیر بالا، پیچیدگی مشکل دیگری در مدل ذخیره موقت فعلی است. توسعهدهندگان معمولاً از یک رابط (Load-Store) برای دادههای مقیم حافظه و یک رابط دوم مبتنی بر I/O (POSIX) برای دادههایی که در ذخیرهسازی هستند استفاده میکنند. بقیه این وبلاگ به بررسی یک سوال جذاب می پردازد: اگر عملیات I/O بعد از اسکن/ادغام اولیه از همه عملیات در طرح اجرای پرس و جو حذف شود چه می شود؟
صنعت فناوری در میانه “دوران پنجم محاسبات توزیع شده” قرار دارد.[i] این یک لحظه تکاملی حیاتی است که ناشی از نیاز به پشتیبانی از هوش مصنوعی (AI)، یادگیری ماشینی و حجم کاری داده محور است که به بینش داده در زمان واقعی نیاز دارد. دنیا برای تقویت این بینش ها با کمبود داده مواجه نیست. با این حال، منابع محاسباتی اغلب به دلیل ناتوانی در بازیابی سریع داده های ضروری با تنگنا مواجه می شوند. این امر به ویژه در یک سیستم محاسباتی گسترده و توزیع شده، که در آن چندین پردازنده داده های مشابهی را به اشتراک می گذارند، صادق است. در یک سیستم توزیع شده، مفهوم کش حافظه می تواند پیچیده باشد.
فناوریهای اینتل ممکن است به فعالسازی سختافزار، نرمافزار یا سرویس نیاز داشته باشند.
© شرکت اینتل. اینتل، لوگوی اینتل و سایر علائم اینتل علائم تجاری Intel Corporation یا شرکت های تابعه آن هستند. نام ها و مارک های دیگر ممکن است به عنوان مالکیت دیگران ادعا شود.