انسجام حافظهٔ نهان ( Cache Coherence ) در علوم رایانه به هم خوانی داده های ذخیره شده در حافظه های نهان محلی یک منبع مشترک گفته می شود. در شرایطی که در یک سامانهٔ دارای حافظه مشترک چند خدمت گیرنده حافظه های نهان خود را دارا باشند، امکان بروز مشکل به خاطر ناهم خوانی داده ها وجود دارد. خصوصاً این حالت برای پردازنده ها در سامانه های چندپردازنده ای رخ می دهد. همان طور که در نمودار «حافظه های نهان چندگانه در یک منبع مشترک» دیده می شود، در صورتی که خدمت گیرندهٔ بالا از قبل یک کپی از بلوکی از حافظه را در اختیار داشته باشد و خدمت گیرندهٔ پایین آن را تغییر دهد، خدمت گیرندهٔ بالا مقدار نادرست داده را بدون اطلاع از نادرست بودن آن در اختیار دارد. هدف از انسجام حافظهٔ نهان مدیریت این گونه مشکلات و حفظ هم خوانی داده میان حافظه و حافظهٔ نهان است.
انسجام، چگونگی خواندن و نوشتن در یک محل حافظه را تعیین می کند. اگر شرایط زیر رعایت شود، انسجام حافظهٔ نهان حاصل می گردد:
• اگر دستور خواندن از مکان X حافظه پس از دستور نوشتن در همان مکان توسط پردازندهٔ P اجرا شود و در این میان توسط هیچ پردازندهٔ دیگری مقداری در X نوشته نشود، مکان X باید مقدار نوشته شده به وسیلهٔ P را برگرداند. این شرط مربوط به حفظ امنیت در سطح برنامه می باشد و حتی باید در معماری های تک پردازنده ای نیز رعایت گردد.
• اگر دستور خواندن از مکان X حافظه توسط پردازندهٔ P1 پس از دستور نوشتن در همان مکان به وسیلهٔ پردازندهٔ P2 اجرا شود و در بین این دو دسترسی مقدار دیگری توسط پردازنده ای دیگر در آن نوشته نشود، مکان X باید مقدار نوشته شده به وسیلهٔ P2 را برگرداند. این شرط مفهوم نمای منسجم حافظه را بازگو می کند. در صورتی که پردازنده ها بعد از اجرای دستور نوشتن توسط P2 مقدار پیشین را بخوانند، می توان گفت که حافظه غیرمنسجم است.
• باید برای نوشتن در یک مکان معین، ترتیب در نظر گرفته شود. به بیان دیگر اگر در مکان X توسط هر دو پردازندهٔ دلخواه به ترتیب مقادیر A و B نوشته می شود، پردازنده ها به هیچ وجه مجاز نیستند ابتدا آن مکان را به عنوان B و پس از آن به عنوان A بخوانند. مقادیر مکان X باید با همان ترتیب نوشته شده، یعنی A و سپس B، خوانده شود.
این شرایط با این فرض بیان شده اند که عملیات خواندن و نوشتن بدون فاصله انجام می گیرند. با این حال در سخت افزار رایانه با در نظر گرفتن تأخیر حافظه و سایر جنبه های معماری، این اتفاق رخ نمی دهد. ممکن است یک عمل نوشتن به وسیلهٔ پردازندهٔ P1 توسط عمل خواندن پردازندهٔ P2، که با فاصله زمانی کم پس از آن اجرا شده است، دیده نشود. مدل انسجام حافظه زمانی تعریف می شود که عمل نوشتن با دستور خواندن سایر پردازنده ها همراه شود.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفانسجام، چگونگی خواندن و نوشتن در یک محل حافظه را تعیین می کند. اگر شرایط زیر رعایت شود، انسجام حافظهٔ نهان حاصل می گردد:
• اگر دستور خواندن از مکان X حافظه پس از دستور نوشتن در همان مکان توسط پردازندهٔ P اجرا شود و در این میان توسط هیچ پردازندهٔ دیگری مقداری در X نوشته نشود، مکان X باید مقدار نوشته شده به وسیلهٔ P را برگرداند. این شرط مربوط به حفظ امنیت در سطح برنامه می باشد و حتی باید در معماری های تک پردازنده ای نیز رعایت گردد.
• اگر دستور خواندن از مکان X حافظه توسط پردازندهٔ P1 پس از دستور نوشتن در همان مکان به وسیلهٔ پردازندهٔ P2 اجرا شود و در بین این دو دسترسی مقدار دیگری توسط پردازنده ای دیگر در آن نوشته نشود، مکان X باید مقدار نوشته شده به وسیلهٔ P2 را برگرداند. این شرط مفهوم نمای منسجم حافظه را بازگو می کند. در صورتی که پردازنده ها بعد از اجرای دستور نوشتن توسط P2 مقدار پیشین را بخوانند، می توان گفت که حافظه غیرمنسجم است.
• باید برای نوشتن در یک مکان معین، ترتیب در نظر گرفته شود. به بیان دیگر اگر در مکان X توسط هر دو پردازندهٔ دلخواه به ترتیب مقادیر A و B نوشته می شود، پردازنده ها به هیچ وجه مجاز نیستند ابتدا آن مکان را به عنوان B و پس از آن به عنوان A بخوانند. مقادیر مکان X باید با همان ترتیب نوشته شده، یعنی A و سپس B، خوانده شود.
این شرایط با این فرض بیان شده اند که عملیات خواندن و نوشتن بدون فاصله انجام می گیرند. با این حال در سخت افزار رایانه با در نظر گرفتن تأخیر حافظه و سایر جنبه های معماری، این اتفاق رخ نمی دهد. ممکن است یک عمل نوشتن به وسیلهٔ پردازندهٔ P1 توسط عمل خواندن پردازندهٔ P2، که با فاصله زمانی کم پس از آن اجرا شده است، دیده نشود. مدل انسجام حافظه زمانی تعریف می شود که عمل نوشتن با دستور خواندن سایر پردازنده ها همراه شود.
wiki: انسجام حافظه نهان