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

سازماندهی فیزیکی و منطقی حافظه سیستم های محاسباتی. اصول مدیریت حافظه یک سیستم محاسباتی

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

حافظه سیستم ریزپردازنده عملکرد ذخیره سازی موقت یا دائمی داده ها و دستورات را انجام می دهد. مقدار حافظه پیچیدگی مجاز الگوریتم های انجام شده توسط سیستم و همچنین تا حدودی سرعت کل سیستم را تعیین می کند. ماژول های حافظه بر روی تراشه های حافظه (رم یا دائمی) اجرا می شوند. به طور فزاینده ای از حافظه های فلش به عنوان بخشی از سیستم های ریزپردازنده استفاده می شود. فلش مموری) که یک حافظه غیر فرار با قابلیت بازنویسی مکرر محتوا است.

برای اتصال ماژول حافظه به گذرگاه سیستم، از بلوک های رابط استفاده می شود که شامل رمزگشای آدرس (انتخاب کننده)، مداری برای پردازش سیگنال های کنترلی گذرگاه و بافرهای داده است (شکل 7.4.1).

شکل 7.4.1. نمودار اتصال ماژول حافظه

در فضای حافظه یک سیستم ریزپردازنده معمولاً چندین ناحیه خاص اختصاص داده می شود که عملکردهای خاصی را انجام می دهند. این شامل:

- حافظه برنامه راه اندازی، اجرا شده بر روی رام یا حافظه فلش؛

- حافظه برای پشته یا پشته (Stack) بخشی است حافظه دسترسی تصادفیدر نظر گرفته شده برای ذخیره سازی موقت داده ها؛

- جدولی از بردارهای وقفه حاوی آدرس های آغاز برنامه های پردازش وقفه.

- حافظه دستگاه های متصل به گذرگاه سیستم.

تمام قسمت های دیگر فضای حافظه تمایل دارند هدف جهانی... آنها می توانند هم داده ها و هم برنامه ها را داشته باشند (البته در مورد معماری تک باس).

اغلب فضای حافظه به بخش هایی با آدرس قابل برنامه ریزی ابتدای بخش و با تقسیم می شود اندازه ثابتبخش. به عنوان مثال، در پردازنده اینتل 8086، تقسیم بندی حافظه به صورت زیر سازماندهی شده است.

کل حافظه سیستم به شکل یک فضای پیوسته نمایش داده نمی شود، بلکه به صورت چند قطعه - بخش نمایش داده می شود. اندازه داده شده(هر کدام 64 کیلوبایت) که موقعیت آن در فضای حافظه به صورت برنامه ای قابل تغییر است.

برای ذخیره کدهای آدرس حافظه، از ثبات های جداگانه استفاده نمی شود، بلکه از جفت ثبات ها استفاده می شود:

رجیستر سگمنت آدرس ابتدای قطعه (یعنی موقعیت قطعه در حافظه) را مشخص می کند.

رجیستر اشاره گر (رجیستر آفست) موقعیت آدرس کاری را در بخش مشخص می کند.

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

شکل 7.4.2. تشکیل آدرس حافظه فیزیکی از آدرس بخش و افست.

موقعیت این آدرس در حافظه در شکل 7.4.3 نشان داده شده است.

شکل 7.4.3. موقعیت آدرس فیزیکی در حافظه

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

توجه داشته باشید که معرفی بخش بندی در درجه اول به این دلیل است که رجیسترهای داخلی پردازنده 16 بیتی هستند و آدرس فیزیکی حافظه 20 بیتی است (یک آدرس 16 بیتی امکان استفاده از تنها 64 کیلوبایت حافظه را فراهم می کند. به وضوح کافی نیست).

حافظه کش بین حافظه اصلی (RAM) و واحد پردازش مرکزیبرای کاهش زمان صرف شده برای دسترسی به CPU به OP.

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

حافظه اصلی

حافظه اصلی یک دستگاه ذخیره سازی است که مستقیماً به پردازنده متصل است و برای ذخیره برنامه های اجرایی و داده هایی که مستقیماً در عملیات دخیل هستند طراحی شده است. عملکرد کافی دارد، اما حجم محدودی دارد. حافظه اصلی به انواع مختلفی تقسیم می شود که اصلی ترین آنها حافظه با دسترسی تصادفی (RAM) و حافظه فقط خواندنی (ROM) است (شکل 1).

RAM برای ذخیره اطلاعات (برنامه ها و داده ها) طراحی شده است که مستقیماً در آن دخیل هستند فرآیند محاسباتیدر مرحله فعلی عملکرد.

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

برنج. 1. انواع اصلی حافظه اصلی

اغلب نام RAM (حافظه دسترسی تصادفی، یعنی حافظه با دسترسی تصادفی). دسترسی تصادفی به عنوان توانایی دسترسی مستقیم به هر سلول حافظه (خودسرانه) مشخص شده درک می شود و زمان دسترسی برای هر سلول یکسان است.

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

مقدار RAM نصب شده در رایانه نه تنها به توانایی کار با برنامه های فشرده منابع، بلکه به عملکرد آن نیز بستگی دارد، زیرا در صورت کمبود حافظه، از آن به عنوان پسوند منطقی آن استفاده می شود. HDD، زمان دسترسی به آن به طور غیر قابل مقایسه ای بالاتر است. علاوه بر مقدار رم، عملکرد رایانه تحت تأثیر سرعت آن و روشی که برای تبادل داده بین ریزپردازنده و حافظه استفاده می شود نیز می باشد.

OP بر روی تراشه‌های DRAM (OP دینامیک) پیاده‌سازی می‌شود که در مقایسه با انواع دیگر حافظه‌ها، با هزینه کم و ظرفیت ویژه بالا، اما مصرف انرژی بالا و عملکرد پایین‌تر مشخص می‌شوند. هر بایت داده (0 و 1) در DRAM به عنوان شارژ خازن ذخیره می شود. به دلیل وجود جریان های نشتی، شارژ خازن باید در فواصل زمانی معین تجدید شود. به دلیل نیاز مداوم به به روز رسانی، چنین حافظه ای را حافظه پویا می نامند. بازسازی محتویات حافظه به زمان بیشتری نیاز دارد و ثبت اطلاعات در حافظه در حین بازسازی مجاز نیست.

هزینه رم در در این اواخربه شدت کاهش یافت (از تابستان 1995 تا تابستان 1996 - بیش از 4 بار)، بنابراین، درخواست های زیاد بسیاری از برنامه ها و سیستم عامل ها برای RAM با نقطه مالیبینایی سنگین تر شده است.

برای افزایش سرعت دسترسی به RAM در رایانه‌های پرسرعت، از یک حافظه نهان با سرعت فوق‌العاده پایدار استفاده می‌شود که همانطور که بود، "بین" ریزپردازنده و RAM قرار دارد و کپی‌هایی از بخش‌های پرکاربرد را ذخیره می‌کند. رم. هنگامی که ریزپردازنده به حافظه دسترسی پیدا می کند، ابتدا داده های مورد نیاز را از حافظه کش جستجو می کند. از آنجایی که زمان دسترسی به حافظه کش چندین برابر کمتر از to است حافظه معمولیو در بیشتر موارد داده های لازم برای ریزپردازنده قبلاً در حافظه نهان ذخیره شده است، متوسط ​​زمان دسترسی به حافظه کاهش می یابد. حافظه نهان بر روی یک تراشه SRAM (رم استاتیک) پیاده سازی می شود.

برای کامپیوترهای مبتنی بر Intel-386DX یا 80386SX، اندازه کش 64 کیلوبایتی و 128 کیلوبایت کافی است. رایانه های مبتنی بر Intel-80486DX، DX2، DX4 و Pentium معمولاً 256 کیلوبایت حافظه پنهان دارند.

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

در ریزپردازنده Pentium Pro، حافظه نهان L2 در یک بسته واحد با خود پردازنده قرار دارد (شما می توانید بگویید که در ریزپردازنده تعبیه شده است).

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

در رایانه شخصی IBM - یک رایانه سازگار، برنامه ها در حافظه ثابت ذخیره می شوند تا سخت افزار، رایانه را بررسی کنند، بارگذاری سیستم عامل (OS) را آغاز کرده و اجرا کنند. توابع اساسیبرای سرویس دستگاه های کامپیوتری از آنجایی که بیشتر این برنامه ها مربوط به سرویس I/O هستند، محتویات حافظه فقط خواندنی اغلب بایوس (Basic Input - Output System) نامیده می شود.

بسیاری از کامپیوترها بایوس را بر اساس حافظه FLASH نصب می کنند. چنین حافظه ای را می توان توسط برنامه ها تغییر داد، که به شما امکان می دهد بایوس را با استفاده از برنامه های خاص، بدون تعویض، به روز کنید. مادربردیا چیپ بایوس

همه رایانه ها، به جز رایانه های بسیار قدیمی، دارای یک برنامه پیکربندی رایانه (SETUP) در بایوس هستند. این به شما امکان می دهد برخی از ویژگی های دستگاه های رایانه ای (انواع کنترل کننده ویدیو، هارد دیسک و درایوهای فلاپی دیسک، برخی از حالت های عملکرد با RAM، درخواست رمز عبور در زمان بوت و غیره) را تنظیم کنید. به طور معمول، برنامه تنظیم پیکربندی در صورتی فراخوانی می شود که کاربر یک کلید یا کلید ترکیبی خاص (اغلب کلید Del) را در هنگام راه اندازی فشار دهد.

ظرفیت حافظه FLASH از 32 کیلوبایت تا 2 مگابایت، زمان دسترسی خواندن 0.06 میکرو ثانیه، زمان نوشتن یک بایت تقریباً 10 میکرو ثانیه. حافظه FLASH - حافظه غیر فرار.

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

بنابراین، ظرفیت حافظه اصلی از میلیون ها سلول حافظه جداگانه با ظرفیت هر یک 1 بایت تشکیل شده است. مجموع ظرفیت حافظه اصلی رایانه های شخصی مدرن معمولاً بین 1 تا 4 گیگابایت است. ظرفیت RAM یک دو مرتبه بزرگتر از ظرفیت ROM است: ROM در مادربردهای جدید تا 2 مگابایت مصرف می کند، بقیه RAM است.

مبحث 3.1 سازماندهی محاسبات در سیستم های محاسباتیاوه

هدف و ویژگی های هواپیما. سازماندهی محاسبات در سیستم های محاسباتی. کامپیوتر عمل موازی، مفاهیم جریان فرمان و جریان داده. سیستم های انجمنی سیستم های ماتریسی محاسبه خط لوله خط لوله فرمان، خط لوله داده. فوق مقیاس سازی

دانش آموز باید

بدانید:

مفهوم جریان فرمان؛

مفهوم جریان داده؛

انواع سیستم های محاسباتی;

ویژگی های معماری سیستم های محاسباتی

سیستم های محاسباتی

سیستم محاسباتی(آفتاب)- مجموعه ای از پردازنده ها یا رایانه های به هم پیوسته و متقابل، تجهیزات جانبیو نرم افزار، برای جمع آوری، ذخیره، پردازش و توزیع اطلاعات طراحی شده است.

ایجاد نیروهای مسلح اهداف اصلی زیر را دنبال می کند:

· افزایش عملکرد سیستم با سرعت بخشیدن به پردازش داده ها.

· افزایش قابلیت اطمینان و دقت محاسبات.

ارائه اطلاعات اضافی به کاربر سرویسو غیره.

مبحث 3.2

طبقه بندی هواپیما بسته به تعداد فرمان و جریان داده: SISD، SIMD، MISD، MIMD.

طبقه بندی هواپیماهای چند پردازنده با روش های مختلف اجرای حافظه مشترک: UMA، NUMA، SOMA. ویژگی های مقایسه ای، ویژگی های سخت افزاری و نرم افزاری.

طبقه بندی هواپیماهای چند وسیله نقلیه: MPP، NDW و COW. انتصاب، ویژگی ها، ویژگی ها.

نمونه های هواپیما انواع مختلف... مزایا و معایب انواع مختلف سیستم های محاسباتی.

طبقه بندی سیستم های محاسباتی

یکی از ویژگی های متمایز VS در رابطه با کامپیوترهای کلاسیک وجود چندین کامپیوتر در آن است که پیاده سازی می کنند. پردازش موازی .

موازی بودن اجرای عملیات به طور قابل توجهی سرعت سیستم را افزایش می دهد. این می تواند به طور قابل توجهی هم قابلیت اطمینان را افزایش دهد (اگر یکی از اجزای سیستم از کار بیفتد، عملکرد آن می تواند توسط دیگری جایگزین شود) و هم قابلیت اطمینان عملکرد سیستم را در صورت تکرار عملیات و مقایسه نتایج افزایش دهد.

سیستم های محاسباتی را می توان به دو گروه تقسیم کرد:

· چند ماشینی ;

· چند پردازنده .

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

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

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

یکی از ویژگی های سیستم های محاسباتی چند پردازنده ای وجود RAM رایج به عنوان منبع مشترک(شکل 11).

شکل 11 - معماری یک سیستم محاسباتی چند پردازنده

طبقه بندی فلین

در میان تمام سیستم های طبقه بندی هواپیما در نظر گرفته شده، گسترده ترین طبقه بندی ارائه شده در سال 1966 توسط M. Flynn بود. بر اساس آن است مفهوم جریان ، که به عنوان دنباله ای از دستورات یا عناصر داده پردازش شده توسط پردازنده درک می شود. فلین 4 کلاس معماری را بسته به تعداد جریان فرمان و جریان داده متمایز می کند:

· OKOD - جریان فرمان تک - جریان داده واحد. اینها شامل VMهای کلاسیک فون نویمان است. پردازش خط لوله مهم نیست، بنابراین، هر دو VM 6600 با دستگاه های عملکردی اسکالر و 7600 با نوار نقاله در کلاس OKOD قرار می گیرند.

· ICOD - جریان فرمان چندگانه - جریان داده واحد. در این معماری، چندین پردازنده یک جریان داده را مدیریت می کنند. یک مثال می تواند یک VS باشد که به پردازنده های آن سیگنال تحریف شده ارائه می شود و هر یک از پردازنده ها این سیگنال را با استفاده از الگوریتم فیلترینگ خود پردازش می کند. با این وجود، نه فلین و نه متخصصان دیگر در زمینه معماری کامپیوتر هنوز نتوانسته اند هواپیمای واقعی را تصور کنند که بر روی آن ساخته شده است. این اصل... تعدادی از محققین سیستم های نوار نقاله را به این کلاس نسبت می دهند، اما این امر به رسمیت شناخته نشده است. وجود یک کلاس خالی را نباید یک نقص در طبقه بندی فلین تلقی کرد. چنین کلاس هایی می توانند در توسعه مفاهیم جدید در تئوری و عمل ساخت هواپیما مفید باشند.

· OKMD - یک جریان فرمان - بسیاری از جریان های داده - دستورات توسط یک پردازنده کنترلی صادر می شوند و به طور همزمان بر روی تمام پردازنده های پردازشی روی داده های محلی این پردازنده ها اجرا می شوند. SIMD (دستورالعمل واحد - چند داده)

· ICMD - جریان های بسیاری از دستورات - جریان های زیادی از داده ها - مجموعه ای از رایانه ها که در برنامه های خود با داده های اولیه خود کار می کنند. MIMD (دستورالعمل های متعدد - داده های متعدد)

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

سیستم های محاسباتی موجود از کلاس MIMD سه زیر کلاس را تشکیل می دهند: چند پردازنده متقارن (SMP) خوشه ها و سیستم های موازی انبوه (MPP). این طبقه بندی بر اساس رویکرد ساختاری - عملکردی است.

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

استفاده از SMP فراهم می کند احتمالات زیر:

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

· ایجاد برنامه های کاربردی در آشنا محیط های نرم افزاری;

· زمان دسترسی یکسان به تمام حافظه.

· امکان فوروارد پیام ها با پهنای باند بالا.

· پشتیبانی از انسجام مجموعه ای از کش ها و بلوک های حافظه اصلی، عملیات هماهنگ سازی و قفل کردن غیرقابل تقسیم.

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

اندازه خوشه از چند ماژول تا چند ده ماژول متفاوت است.

در هر دو حافظه مشترک و توزیع شده، چندین مدل از معماری سیستم حافظه پیاده سازی شده است. شکل 12 طبقه بندی چنین مدل هایی را نشان می دهد که در سیستم های محاسباتی کلاس MIMD استفاده می شوند (این برای کلاس SIMD نیز صادق است).

شکل 12 - طبقه بندی مدل های معماری حافظه سیستم های محاسباتی

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

سیستم‌های محاسباتی با حافظه مشترک، که در آن دسترسی هر پردازنده به حافظه به طور یکسان انجام می‌شود و زمان یکسانی می‌گیرد، نامیده می‌شوند. سیستم هایی با دسترسی یکنواخت به حافظه و به اختصار UMA (Uniform Memory Access) نامیده می شوند. این رایج ترین معماری حافظه برای VS موازی با حافظه مشترک است.

از نظر فنی، سیستم‌های UMA وجود یک گره را فرض می‌کنند که هر یک را به هم متصل می‌کند پپردازنده ها با هر یک از تیماژول های حافظه ساده ترین راه برای ساختن چنین BC، ترکیب چندین پردازنده (P i.) با یک حافظه واحد (M P) توسط اتوبوس مشترک- در شکل 12 الف نشان داده شده است . با این حال، در این حالت، تنها یکی از پردازنده ها می تواند در یک زمان در گذرگاه مبادله کند، یعنی پردازنده ها باید برای دسترسی به گذرگاه با هم رقابت کنند. زمانی که پردازنده Р i،فرمان را از حافظه و سایر پردازنده ها واکشی می کند پی جی(من ≠ j) باید صبر کنید تا لاستیک آزاد شود. اگر سیستم شامل تنها دو پردازنده باشد، آنها می‌توانند با حداکثر کارایی کار کنند، زیرا دسترسی آنها به گذرگاه می‌تواند به هم متصل شود: در حالی که یک پردازنده یک دستورالعمل را رمزگشایی و اجرا می‌کند، دیگری می‌تواند از گذرگاه برای واکشی دستورالعمل بعدی از حافظه استفاده کند. . با این حال، هنگامی که یک پردازنده سوم اضافه می شود، عملکرد شروع به کاهش می کند. وقتی ده پردازنده در گذرگاه وجود دارد، منحنی سرعت گذرگاه (شکل 12 ب) افقی می شود، بنابراین افزودن یک پردازنده 11 عملکرد را بهبود نمی بخشد. منحنی پایین در این شکل این واقعیت را نشان می دهد که حافظه و گذرگاه دارای پهنای باند ثابتی هستند که با ترکیب زمان چرخه حافظه و پروتکل گذرگاه تعیین می شود، و در یک سیستم چند پردازنده با یک گذرگاه مشترک، این پهنای باند بین چندین پردازنده توزیع می شود. اگر زمان چرخه پردازنده بیشتر از چرخه حافظه باشد، بسیاری از پردازنده ها را می توان به گذرگاه متصل کرد. با این حال، در واقع، پردازنده معمولا بسیار سریعتر از حافظه است، بنابراین این طرح به طور گسترده استفاده نمی شود.

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

متأسفانه، معماری UMA مقیاس خوبی ندارد. متداول ترین سیستم ها شامل 4-8 پردازنده، بسیار کمتر 32-64 پردازنده هستند. علاوه بر این، چنین سیستم هایی را نمی توان نسبت داد بدون خرابی, از آنجایی که خرابی یک پردازنده یا ماژول حافظه مستلزم خرابی کل هواپیما است.

شکل 13 - حافظه مشترک:

الف) ترکیب پردازنده ها با استفاده از یک گذرگاه و یک سیستم با حافظه پنهان محلی.

ب) عملکرد سیستم به عنوان تابعی از تعداد پردازنده های موجود در گذرگاه.

ج) چند پردازنده VS با حافظه مشترک، متشکل از ماژول های فردی

روش دیگر برای ساخت حافظه مشترک VS است دسترسی غیر یکنواخت به حافظه , به عنوان NUMA (دسترسی به حافظه غیر یکنواخت) تعیین شده است. در اینجا، مانند قبل، یک فضای آدرس واحد وجود دارد، اما هر پردازنده یک حافظه محلی دارد. پردازنده به طور مستقیم به حافظه محلی خود دسترسی دارد که بسیار سریعتر از دسترسی به حافظه راه دور از طریق سوئیچ یا شبکه است. چنین سیستمی می تواند با حافظه جهانی تکمیل شود، سپس دستگاه های ذخیره سازی محلی به عنوان حافظه کش سریع برای حافظه جهانی عمل می کنند. چنین طرحی می تواند عملکرد هواپیما را بهبود بخشد، اما قادر به تأخیر نامحدود در یکسان سازی عملکرد مستقیم نیست. با توجه به اینکه هر پردازنده یک کش محلی دارد (شکل 13a)، احتمال بالایی وجود دارد (p> 0.9) که دستور یا داده مورد نیاز از قبل در حافظه محلی است. احتمال معقول ضربه زدن به حافظه محلی به میزان قابل توجهی تعداد دسترسی های پردازنده به حافظه جهانی را کاهش می دهد و در نتیجه کارایی را بهبود می بخشد. محل شکست در منحنی عملکرد (منحنی بالایی در شکل 13b ), نقطه ای که اضافه کردن پردازنده ها هنوز موثر است اکنون به ناحیه پردازنده 20 منتقل می شود و نقطه ای که منحنی افقی می شود به ناحیه پردازنده 30 منتقل می شود.

درون مفهوم NUMAچندین رویکرد مختلف اجرا می‌شوند که با اختصارات مشخص می‌شوند SOMA، CC-NUMAو NCC-NUMA.

V معماری فقط کش (SOMA, Cache Only Memory Architecture) حافظه محلی هر پردازنده به عنوان یک حافظه کش بزرگ برای دسترسی سریع از پردازنده "خود" ساخته شده است. حافظه نهان تمام پردازنده ها مجموعاً حافظه جهانی سیستم در نظر گرفته می شود. هیچ حافظه جهانی واقعی وجود ندارد. ویژگی اساسی مفهوم SOMA در دینامیک بیان می شود. در اینجا، داده ها به صورت ایستا به یک ماژول حافظه خاص متصل نیستند و یک آدرس منحصر به فرد ندارند که برای کل طول عمر متغیر بدون تغییر باقی بماند. در معماری SOMA، داده ها به حافظه نهان پردازنده ای که آخرین بار آن را درخواست کرده است منتقل می شود، در حالی که متغیر با یک آدرس منحصر به فرد ثابت نمی شود و در هر لحظه از زمان می تواند در هر سلول فیزیکی قرار گیرد. انتقال داده ها از یک حافظه پنهان محلی به دیگری نیازی به سیستم عامل برای مشارکت در این فرآیند ندارد، بلکه شامل سخت افزار مدیریت حافظه پیچیده و گران است. برای سازماندهی چنین رژیمی، به اصطلاح دایرکتوری های کش . همچنین توجه داشته باشید که آخرین کپی مورد هرگز از حافظه پنهان حذف نمی شود.

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

مدل دسترسی غیر یکنواخت حافظه نهان منسجم (CC-NUMA، Cache Coherent Non-Uniform Memory Architecture) اساساً با مدل SOMA متفاوت است. سیستم CC-NUMA از حافظه نهان استفاده نمی کند، بلکه از حافظه معمولی که به صورت فیزیکی تخصیص داده می شود استفاده می کند. هیچ کپی برداری از صفحات یا داده ها بین مکان های حافظه انجام نمی شود. هیچ پیام نرم افزاری وجود ندارد. فقط یک کارت حافظه وجود دارد که قطعات آن به صورت فیزیکی به هم متصل شده اند کابل مسیو سخت افزار هوشمند انسجام حافظه پنهان مبتنی بر سخت‌افزار به این معنی است که هیچ نرم‌افزاری برای ذخیره چند نسخه از داده‌های به‌روز شده یا انتقال آن‌ها مورد نیاز نیست. سطح سخت افزار همه اینها را مدیریت می کند. دسترسی به ماژول های حافظه محلی در گره های مختلف سیستم می تواند به طور همزمان انجام شود و سریعتر از ماژول های حافظه راه دور است.

تفاوت بین مدل با دسترسی غیر یکنواخت حافظه نهان-ناهمدوس (NCC-NUMA، Non-Cache Coherent Non-Uniform Memory Architecture) از CC-NUMA از نام مشخص است. معماری حافظه یک فضای آدرس واحد را در نظر می گیرد، اما سازگاری سخت افزاری داده های جهانی را ارائه نمی دهد. مدیریت استفاده از چنین داده هایی کاملاً بر عهده نرم افزار (برنامه ها یا کامپایلرها) است. علیرغم این شرایط، که به نظر می‌رسد یک نقطه ضعف معماری است، در افزایش عملکرد سیستم‌های محاسباتی با معماری حافظه از نوع DSM که در بخش «مدل‌های معماری‌های حافظه توزیع‌شده» در نظر گرفته شده است، بسیار مفید است.

به طور کلی، AC با حافظه مشترک ساخته شده بر اساس طرح NUMA نامیده می شود معماری حافظه مشترک مجازی (معماری های حافظه مشترک مجازی). این نوع معماری، به ویژه CC-NUMA، اخیراً به عنوان یک نوع مستقل و نسبتا امیدوارکننده از سیستم های محاسباتی کلاس M1MD در نظر گرفته شده است.

مدل های معماری حافظه توزیع شدهدر یک سیستم حافظه توزیع شده، هر پردازنده حافظه مخصوص به خود را دارد و فقط می تواند آن را آدرس دهی کند. برخی از نویسندگان این نوع سیستم ها را هواپیمای چند وسیله نقلیه یا چند کامپیوتر , با تأکید بر این واقعیت که "بلوک هایی که سیستم از آنها ساخته شده است به خودی خود سیستم های محاسباتی کوچکی با پردازنده و حافظه هستند. مدل های معماری با حافظه توزیع شده معمولاً به صورت زیر نشان داده می شوند. معماری بدون مستقیم دسترسی به حافظه از راه دور (NORMA، بدون دسترسی به حافظه از راه دور). این نام از این واقعیت ناشی می شود که هر پردازنده فقط به حافظه محلی خود دسترسی دارد. دسترسی به حافظه راه دور (حافظه محلی پردازنده دیگر) تنها با تبادل پیام با پردازنده ای که حافظه آدرس پذیر را در اختیار دارد امکان پذیر است.

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

دانش آموز باید

بدانید:

طبقه بندی هواپیما؛

نمونه هایی از هواپیما در انواع مختلف.

قادر بودن به:

- نوع سیستم محاسباتی را متناسب با مشکل حل شده انتخاب کنید.


© 2015-2019 سایت
تمامی حقوق متعلق به نویسندگان آنها می باشد. این سایت ادعای نویسندگی ندارد، اما ارائه می دهد استفاده رایگان.
تاریخ ایجاد صفحه: 22/07/2016

فصل 11

سازمان محاسبات حافظه سیستم های

در سیستم های محاسباتی که بسیاری از پردازنده ها یا ماشین های موازی را متحد می کنند، مشکل سازماندهی مناسب حافظه یکی از مهمترین مسائل است. تفاوت بین سرعت پردازنده و حافظه همیشه یک مانع در ماشین های مجازی تک پردازنده بوده است. چند پردازش VS به مشکل دیگری منجر می شود - مشکل دسترسی همزمان به حافظه از چندین پردازنده.

بسته به نحوه سازماندهی حافظه سیستم های چند پردازنده ای (چند رایانه ای)، سیستم های محاسباتی با حافظه مشترک و AC با حافظه توزیع شده تمایز قائل می شوند. V سیستم های حافظه مشترک(اغلب به آن حافظه مشترک یا اشتراکی نیز می گویند) حافظه خورشید به عنوان یک منبع جامعه در نظر گرفته می شود و هر یک از پردازنده ها به کل فضای آدرس دسترسی کامل دارند. سیستم های حافظه مشترک نامیده می شوند شدیدا محدود(سیستم های نزدیک به هم). ساخت مشابهی از سیستم های محاسباتی هم در کلاس SIMD و هم در کلاس MIMD انجام می شود. گاهی برای تاکید بر این واقعیت، زیر کلاس‌های خاصی معرفی می‌شوند که از اختصارات SM-SIMD (Shared Memory SIMD) و SM-MIMD (Shared Memory MIMD) برای نشان دادن آنها استفاده می‌کنند.

در گزینه با حافظه توزیع شدهبه هر یک از پردازنده ها حافظه اختصاص داده شده است. پردازنده ها ادغام می شوند vشبکه و در صورت لزوم می توانند داده های ذخیره شده در حافظه خود را مبادله کنند و به اصطلاح به یکدیگر انتقال دهند پیام ها.این نوع هواپیما نامیده می شود سست جفت شده(سیستم های کوپل شده آزاد). ضعیف سیستم های مرتبطهمچنین در هر دو کلاس SIMD و کلاس MIMD یافت می شود و گاهی اوقات برای تأکید وجود دارد این ویژگی، زیر کلاس های DM-SIMD (Distributed Memory SIMD) و DM-MIMD (Distributed Memory MIMD) را معرفی می کند.

در برخی موارد، سیستم های محاسباتی با حافظه مشترک نامیده می شوند چند پردازنده،و سیستم های دارای حافظه توزیع شده - کامپیوترهای mtslt

تفاوت بین حافظه مشترک و توزیع شده، تفاوت در ساختار حافظه مجازی است، یعنی اینکه حافظه از سمت پردازنده چگونه به نظر می رسد. از نظر فیزیکی، تقریباً هر سیستم حافظه به دو دسته تقسیم می شود اجزای مستقلکه به طور مستقل قابل دسترسی است. روشی که زیرسیستم حافظه آدرس سلول دریافتی از پردازنده را تفسیر می کند از حافظه مشترک جدا می شود. به عنوان مثال، فرض کنید پردازنده دستور load RO, i را اجرا می کند که به معنای "بارگذاری ثبت R0 با محتویات سلول i" است. در مورد حافظه مشترک، i آدرس جهانی است و به همان مکان برای هر پردازنده اشاره می کند. V سیستم توزیع شدهحافظه من هستم آدرس محلیاگر دو پردازنده فرمان بار RO، i را اجرا کنند، هر کدام از آنها دسترسی پیدا می کند سلول i امدر حافظه محلی خود، یعنی به سلول های مختلف، و مقادیر نابرابر را می توان در ثبات های R0 بارگذاری کرد.

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

حافظه با متناوب آدرس ها

از نظر فیزیکی، حافظه یک سیستم محاسباتی از چندین ماژول (بانک) تشکیل شده است، در حالی که سوال اساسی این است که فضای آدرس در این مورد چگونه توزیع می شود (مجموعه تمام آدرس هایی که پردازنده می تواند تشکیل دهد). یکی از راه‌های توزیع آدرس‌های مجازی در ماژول‌های حافظه، تقسیم فضای آدرس به بلوک‌های متوالی است. اگر حافظه متشکل از پبانک ها، سپس سلول با آدرس مندر صورت تقسیم بلوک با شماره در بانک خواهد بود من /nدر سیستم حافظه در هم تنیدهآدرس‌های متوالی (حافظه بین‌افکن) در بانک‌های مختلف قرار دارند: سلول با آدرس i در بانک با شماره i mod است. پ.به عنوان مثال، اجازه دهید حافظه از چهار بانک تشکیل شده باشد، هر کدام 256 بایت. در یک طرح آدرس دهی بلوکی، اولین بانک تخصیص داده می شود آدرس های مجازی 0-255، دوم - 256-511، و غیره. در یک طرح با آدرس های متناوب، سلول های متوالی در بانک اول دارای آدرس های مجازی 0، 4، 8، .... در بانک دوم - 1، 5، 9 خواهند بود. و غیره (شکل 11.1، a).

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

https://pandia.ru/text/78/264/images/image002_61.jpg "width =" 62 "height =" 15"> فاصله بین عناصر نامیده می شود. گام به نمایا گام های بلند برداشتن(گام های بلند برداشتن). یکی از برنامه های کاربردی جالباین ویژگی می تواند به عنوان دسترسی به ماتریس ها عمل کند. اگر مرحله شاخص یک عدد بیشتر از تعداد ردیف‌های ماتریس باشد، یک درخواست دسترسی به حافظه واحد، تمام عناصر مورب ماتریس را برمی‌گرداند (شکل 11.1، b). مسئولیت اطمینان از اینکه تمام عناصر بازیابی شده ماتریس در بانک های مختلف قرار دارند بر عهده برنامه نویس است.

مدل های معماری حافظه سیستم های محاسباتی

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

DIV_ADBLOCK84 ">

برنج. 11.3. حافظه مشترک: الف - ترکیب پردازنده ها با استفاده از گذرگاه. ب - یک سیستم با حافظه پنهان محلی. v- عملکرد سیستم به عنوان تابعی از تعداد پردازنده های موجود در گذرگاه. د - چند پردازنده VS با حافظه مشترک، متشکل از ماژول های جداگانه

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

متأسفانه، معماری UMA مقیاس خوبی ندارد. متداول ترین سیستم ها شامل 4-8 پردازنده، بسیار کمتر 32-64 پردازنده هستند. علاوه بر این، چنین سیستم هایی را نمی توان به عنوان مقاوم در برابر خطا طبقه بندی کرد، زیرا خرابی یک پردازنده یا ماژول حافظه مستلزم خرابی کل هواپیما است.

روش دیگر برای ساخت حافظه مشترک VS است دسترسی غیر یکنواخت به حافظه،با NUM A (دسترسی به حافظه غیر یکنواخت) مشخص می شود، هنوز یک فضای آدرس واحد وجود دارد، اما هر پردازنده دارای حافظه محلی است. پردازنده به طور مستقیم به حافظه محلی خود دسترسی دارد که بسیار سریعتر از دسترسی به حافظه راه دور از طریق سوئیچ یا شبکه است. چنین سیستمی می تواند با حافظه جهانی تکمیل شود سپس دستگاه های ذخیره سازی محلی به عنوان حافظه کش سریع برای حافظه جهانی عمل می کنند. چنین طرحی می تواند عملکرد هواپیما را بهبود بخشد، اما قادر به تأخیر نامحدود در یکسان سازی عملکرد مستقیم نیست. اگر هر پردازنده یک کش محلی داشته باشد (شکل 11.3.6)، احتمال زیادی وجود دارد (p> 0.9) که دستور یا داده مورد نیاز از قبل در حافظه محلی است. احتمال معقول رسیدن به حافظه محلی به میزان قابل توجهی تعداد تماس های پردازنده را کاهش می دهد بهحافظه جهانی و در نتیجه منجر به افزایش کارایی می شود. محل شکست در منحنی عملکرد (منحنی بالایی در شکل 11.3، v)نقطه‌ای که اضافه کردن پردازنده‌ها هنوز موثر است، اکنون به ناحیه پردازنده 20 منتقل می‌شود و نازک‌تر، جایی که منحنی افقی می‌شود، به ناحیه پردازنده 30 منتقل می‌شود.

درون مفهوم NUMAچندین رویکرد مختلف اجرا می‌شوند که با اختصارات مشخص می‌شوند سوما،CC-NUMAو NCC-NUMA.

V معماری فقط کش(SOMA, Cache Only Memory Architecture) حافظه محلی هر پردازنده به عنوان یک حافظه کش بزرگ برای دسترسی سریع از پردازنده "خود" ساخته شده است. حافظه نهان تمام پردازنده ها مجموعاً حافظه جهانی سیستم در نظر گرفته می شود. هیچ حافظه جهانی واقعی وجود ندارد. ویژگی اساسی مفهوم SOMA در دینامیک بیان می شود. در اینجا، داده ها به صورت ایستا به یک ماژول حافظه خاص متصل نیستند و یک آدرس منحصر به فرد ندارند که برای کل طول عمر متغیر بدون تغییر باقی بماند. در معماری SOMA، داده ها به حافظه نهان پردازنده ای که آخرین بار آن را درخواست کرده است منتقل می شود، در حالی که متغیر با یک آدرس منحصر به فرد ثابت نمی شود و در هر لحظه از زمان می تواند در هر سلول فیزیکی قرار گیرد. انتقال داده ها از یک حافظه پنهان محلی به دیگری نیازی به سیستم عامل برای مشارکت در این فرآیند ندارد، بلکه شامل سخت افزار مدیریت حافظه پیچیده و گران است. برای سازماندهی چنین رژیمی، به اصطلاح دایرکتوری های کشهمچنین توجه داشته باشید که آخرین کپی مورد هرگز از حافظه پنهان حذف نمی شود.

از آنجایی که در معماری SOMA داده ها به حافظه نهان محلی پردازنده مالک منتقل می شوند، چنین هواپیماهایی دارای مزیت عملکردی قابل توجهی نسبت به سایر معماری های NUM A هستند. خط مورد نیاز دو پردازنده است، این خط کش باید در هر بار دسترسی به داده ها بین پردازنده ها به عقب و جلو منتقل شود. چنین اثراتی می تواند به جزئیات تخصیص حافظه بستگی داشته باشد و منجر به موقعیت های غیرقابل پیش بینی شود.

مدل دسترسی غیر یکنواخت حافظه نهان منسجم(CC-NUMA، معماری حافظه غیر یکنواخت Cache Coherent) اساساً با مدل SOMA متفاوت است. سیستم CC-NUMA از حافظه نهان استفاده نمی کند، بلکه از حافظه معمولی که به صورت فیزیکی تخصیص داده می شود استفاده می کند. هیچ کپی برداری از صفحات یا داده ها بین مکان های حافظه انجام نمی شود. هیچ پیام نرم افزاری وجود ندارد. فقط یک مموری استیک وجود دارد که قطعات آن به صورت فیزیکی توسط کابل مسی و سخت افزار هوشمند به هم متصل شده است. انسجام حافظه پنهان مبتنی بر سخت‌افزار به این معنی است که هیچ نرم‌افزاری برای ذخیره چند نسخه از داده‌های به‌روز شده یا انتقال آن‌ها مورد نیاز نیست. سطح سخت افزار همه اینها را مدیریت می کند. دسترسی به ماژول های حافظه محلی در گره های مختلف سیستم می تواند به طور همزمان انجام شود و سریعتر از ماژول های حافظه راه دور است.

تفاوت بین مدل با دسترسی غیر یکنواخت حافظه نهان-ناهمدوس(NCC-NUMA، Non-Cache Coherent Non-Uniform Memory Architecture) از CC-NUMA از نام مشخص است. معماری حافظه یک فضای آدرس واحد را در نظر می گیرد، اما سازگاری سخت افزاری داده های جهانی را ارائه نمی دهد. مدیریت استفاده از چنین داده هایی کاملاً بر عهده نرم افزار (برنامه ها یا کامپایلرها) است. علیرغم این شرایط، که به نظر می‌رسد یک نقطه ضعف معماری است، در افزایش عملکرد سیستم‌های محاسباتی با معماری حافظه از نوع DSM که در بخش «مدل‌های معماری‌های حافظه توزیع‌شده» در نظر گرفته شده است، بسیار مفید است.

به طور کلی، AC با حافظه مشترک ساخته شده بر اساس طرح NUMA نامیده می شود معماری حافظه مشترک مجازی(معماری های حافظه مشترک مجازی). این نوع معماری، به ویژه CC-NUMA، اخیراً به عنوان یک نوع مستقل و نسبتا امیدوارکننده از سیستم های محاسباتی کلاس MIMD در نظر گرفته شده است، بنابراین، چنین هواپیماهایی با جزئیات بیشتر در زیر مورد بحث قرار خواهند گرفت.

مدل های معماری حافظه توزیع شده

در یک سیستم حافظه توزیع شده، هر پردازنده حافظه مخصوص به خود را دارد و فقط می تواند آن را آدرس دهی کند. برخی از نویسندگان به این نوع سیستم ها می گویند هواپیمای چند کامپیوتری یا چند کامپیوتری،با تأکید بر این واقعیت که بلوک‌های سازنده یک سیستم، خود سیستم‌های محاسباتی کوچک با پردازنده و حافظه هستند. مدل‌های معماری حافظه توزیع‌شده معمولاً به عنوان نشان داده می‌شوند معماری بدون دسترسی مستقیم به حافظه راه دور(NORMA، بدون دسترسی به حافظه از راه دور). این نام از این واقعیت ناشی می شود که هر پردازنده فقط به حافظه محلی خود دسترسی دارد. دسترسی به حافظه راه دور (حافظه محلی پردازنده دیگر) تنها با تبادل پیام با پردازنده ای که حافظه آدرس پذیر را در اختیار دارد امکان پذیر است.

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

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

· تشکیل و فوروارد یک پیام از یکی زمان می برد! پردازنده به دیگری؛

· برای ارائه پاسخ به پیام های سایر پردازنده ها، پردازنده گیرنده باید یک درخواست وقفه دریافت کند و رویه مدیریت این وقفه را اجرا کند.

ساختار یک سیستم حافظه توزیع شده در شکل 1 نشان داده شده است. 11.4. سمت چپ! قطعات (شکل 11.4، آ)یک عنصر پردازش (PE) نشان داده شده است. شامل) خود پردازنده (P)، حافظه محلی (M) و دو کنترلر I/O (Ko و KD در سمت راست (شکل 11.4، ب)یک سیستم چهار پردازنده نشان داده شده است که نشان می دهد چگونه پیام ها از یک پردازنده به پردازنده دیگر ارسال می شوند. در رابطه با هر PE، تمام عناصر پردازش دیگر را می توان به سادگی به عنوان دستگاه ورودی / خروجی مشاهده کرد. برای ارسال پیام به PE دیگری، پردازنده یک بلوک داده را در حافظه محلی خود تشکیل می دهد و به آن اطلاع می دهد کنترل کننده محلیدر مورد نیاز به انتقال اطلاعات به دستگاه خارجی... از طریق شبکه اتصال، این پیام به کنترل کننده ورودی/خروجی گیرنده PE ارسال می شود. دومی فضایی را برای پیام در حافظه محلی خود پیدا می کند و پردازشگر منبع را از دریافت پیام مطلع می کند.

DIV_ADBLOCK89 ">

یک نوع جالب از سیستم حافظه توزیع شده است. مدل حافظه مشترک توزیع شده(DSM، Distribute Shared Memory)، که با نام دیگری نیز شناخته می شود معماری با ناهمگندسترسی به حافظه و هماهنگی نرم افزار(SC-NUMA، نرم افزار-معماری حافظه غیر یکنواخت منسجم). ایده این مدل این است که BC از نظر فیزیکی یک سیستم با حافظه توزیع شده است، به لطف سیستم عامل به عنوان یک سیستم با حافظه مشترک در نظر کاربر ظاهر می شود. این بدان معناست که سیستم عامل یک فضای آدرس واحد را به کاربر ارائه می دهد، علیرغم این واقعیت که دسترسی واقعی به حافظه رایانه هواپیمای "خارجی" همچنان از طریق تبادل پیام فراهم می شود.

چند پردازندهانسجام حافظه پنهان- حافظه

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

در ساده ترین شکل، مشکل انسجام کش را می توان به صورت زیر توضیح داد (شکل 11.5). اجازه دهید دو پردازنده Rgو Pr از طریق یک گذرگاه به حافظه مشترک متصل می شوند. ابتدا هر دو پردازنده متغیر را می خوانند ایکس.کپی‌هایی از بلوک‌های حاوی این متغیر از حافظه اصلی به حافظه پنهان محلی هر دو پردازنده منتقل می‌شوند (شکل 11.5، آ).سپس پردازنده Pt عملیات افزایش مقدار متغیر را انجام می دهد ایکسدر هر واحد. از آنجایی که یک کپی از متغیر از قبل در حافظه پنهان این پردازنده وجود دارد، یک ضربه کش رخ می دهد و مقدار آن فقط در حافظه نهان 1 تغییر می کند. اگر اکنون پردازنده P2 دوباره عملیات خواندن را انجام دهد. ایکس،سپس یک ضربه کش نیز رخ می دهد و P2 مقدار "قدیمی" ذخیره شده در حافظه کش خود را دریافت می کند ایکس(شکل 11.5، ب).

حفظ ثبات مستلزم این است که وقتی یک آیتم داده توسط یکی از پردازنده ها تغییر می کند، تغییرات مربوطه در حافظه نهان سایر پردازنده ها، جایی که یک کپی از آیتم داده تغییر یافته وجود دارد، و همچنین در حافظه مشترک ایجاد شود. اتفاقاً مشکل مشابهی در سیستم‌های تک‌پردازنده‌ای رخ می‌دهد که سطوح مختلفی از حافظه پنهان وجود دارد. در اینجا لازم است محتویات حافظه پنهان سطوح مختلف را با هم تطبیق دهید.

دو رویکرد برای حل مشکل انسجام وجود دارد: نرم افزار و سخت افزار. برخی از سیستم ها از استراتژی هایی استفاده می کنند که هر دو رویکرد را ترکیب می کند.

نرم افزار راه ها راه حل هاچالش ها و مسائل انسجام

تکنیک‌های نرم‌افزاری برای حل مشکل انسجام، انجام بدون آن را ممکن می‌سازد تجهیزات اضافییا آن را به حداقل برسانید.

پروتکلبرکلیپروتکل برکلی در سیستم چند پردازنده ای برکلی مبتنی بر پردازنده های RISC استفاده شد.

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

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

اول از همه، هر بار که یک پردازنده در حافظه نهان خود می نویسد، رشته قابل تغییربه حالت "تغییر شده، خصوصی" (PD، Private Dirty) منتقل می شود. علاوه بر این، اگر رشته به اشتراک گذاشته شود، یک سیگنال عدم اعتبار به گذرگاه ارسال می شود و در تمام کش های محلی که یک کپی از این بلوک داده وجود دارد، این کپی ها در حالت "نامعتبر" قرار می گیرند (I, Invalid). اگر خطای نوشتن وجود داشته باشد، پردازنده یک کپی از بلوک را از حافظه نهان اصلی اصلی بلوک درخواستی دریافت می کند. تنها پس از این اقدامات، پردازنده در حافظه پنهان خود می نویسد.

در صورت عدم خواندن حافظه پنهان، پردازنده درخواستی را به صاحب بلوک ارسال می کند تا آخرین نسخه دومی را دریافت کند و آن را ترجمه کند. کپی جدیدبه حالت فقط خواندنی (RO، Read Only). اگر ردیف متعلق به پردازنده دیگری بود، کپی بلوک خود را به عنوان کثیف مشترک (SD) علامت گذاری می کند.

نمودار وضعیت پروتکل برکلی در شکل نشان داده شده است. 11.10.

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







خواندن ضربه

برنج. 11.10. پروتکل برکلی

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

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

همانطور که در مورد قبلی، سیگنال عدم اعتبار تنها زمانی تولید می شود که کپی هایی از این بلوک در کش های دیگر موجود باشد. سناریوهای احتمالی برای پروتکل ایلینوی در شکل نشان داده شده است. 11.11.

برنج. 11.11. پروتکل ایلینوی

هر بار که یک پردازنده در حافظه نهان خود می نویسد، رشته اصلاح شده در حالت کثیف خصوصی (PD) قرار می گیرد. اگر بلوک داده به اشتراک گذاشته شود، یک سیگنال کشتن به گذرگاه ارسال می شود و در تمام کش های محلی یک کپی از این بلوک وجود دارد. ، این کپی ها به حالت "نامعتبر" (I, Invalid) منتقل می شوند. اگر خطای نوشتن رخ دهد، پردازنده یک کپی را از حافظه پنهان مالک فعلی بلوک درخواستی بازیابی می کند. تنها پس از اقدامات مشخص شده، پردازنده در حافظه پنهان خود می نویسد. همانطور که مشاهده می کنید در این قسمت با پروتکل برکلی مطابقت کامل وجود دارد.

در هنگام خواندن حافظه پنهان، پردازنده درخواستی را برای صاحب بلوک ارسال می کند تا آخرین نسخه دومی را به دست آورد و نسخه جدید آن را در حالت "انحصاری" (E, Exclusive) قرار می دهد، مشروط بر اینکه تنها صاحب ردیف در غیر این صورت، وضعیت به "اشتراک گذاری شده" (S، Shared) تغییر می کند.

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

پروتکلکرم شب تاب.این پروتکل توسط تاکر و همکاران پیشنهاد شد و در ایستگاه کاری چند پردازنده Firefly، یک سیستم چند پردازنده ای که در مرکز تحقیقاتی Digital Equipment Corporation توسعه یافته است، پیاده سازی شد.

پروتکل Firefly از یک رکورد به روز رسانی استفاده می کند. حالت های احتمالی خط کش مانند حالت های پروتکل ایلینوی است (شکل 11-12). تفاوت این است که استراتژی بازنویسی فقط برای ردیف‌هایی در حالت PD یا E اعمال می‌شود، در حالی که نوشتن از طریق روی ردیف‌هایی در حالت S اعمال می‌شود. کش های Watcher برای به روز رسانی کپی های خود از روش نوشتن استفاده می کنند. علاوه بر این، مشاهده حافظه های پنهان که یک کپی از خط را در آنها پیدا می کند، یک خط گذرگاه "به اشتراک گذاشته شده" ویژه را فراخوانی می کند تا کنترل کننده نوشتن بتواند تصمیم بگیرد که خطی را که در آن نوشته شده است قرار دهد. یک خط "اشتراک‌گذاری شده" در حافظه پنهان خوانده شده برای اطلاع دادن به کنترل کننده کش محلی استفاده می‌شود که کپی خط از کجا آمده است: از حافظه اصلی یا حافظه پنهان دیگر. بنابراین، حالت S فقط برای داده هایی اعمال می شود که واقعاً به اشتراک گذاشته می شوند.

https://pandia.ru/text/78/264/images/image018_2.jpg "width =" 491 height = 316 "height =" 316">

برنج. 11.13. پروتکل اژدها

پروتکلMESI.قطعا در میان پروتکل های شناخته شدهمحبوب ترین پروتکل نظارت MESI (اصلاح شده / انحصاری / اشتراکی / نامعتبر) است. پروتکل MESI به طور گسترده در سیستم های ریزپردازنده تجاری، مانند سیستم های مبتنی بر ریزپردازنده های Pentium و PowerPC استفاده می شود. بنابراین، می توان آن را در حافظه پنهان و کنترلر داخلی یافت کش خارجی i82490 از ریزپردازنده Pentium، در پردازنده i860 و کنترلر کش MC88200 از موتورولا.

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

به اشتراک گذاشته شده است(S, Shared) - یک خط کش با خط مشابهی در حافظه اصلی مطابقت دارد (داده ها معتبر هستند) و ممکن است در یک یا چند کش دیگر وجود داشته باشد.

بی اعتبار(I، نامعتبر) - یک خط کش که به عنوان نامعتبر علامت گذاری شده است، هیچ داده معتبری ندارد و از نظر منطقی غیر قابل دسترس می شود.

برنج. 11.15. ترتیب تغییرات وضعیت در پروتکل MESI: a - پردازنده 1 x را می خواند.

ب- پردازنده 2 x را می خواند. c - پردازنده 1 اولین رکورد را در x ایجاد می کند.

جی- پردازنده 1 رکورد دیگری در x ایجاد می کند

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

فرض کنید یکی از پردازنده‌ها از خطی که در حال حاضر در کش محلی آن نیست، درخواست خواندن می‌کند (مشکل خواندن). درخواست از طریق اتوبوس پخش خواهد شد. اگر هیچ یک از کش ها حاوی یک کپی از خط مورد نیاز نباشند، کنترل کننده های نظارتی دیگر پردازنده ها پاسخی دریافت نمی کنند، خط از حافظه اصلی در حافظه پنهان پردازنده درخواست کننده خوانده می شود و کپی اختصاص داده می شود. وضعیت E. اگر هر یک از کش های محلی حاوی کپی مورد نظر شما باشد، پاسخی از کنترلر ردیاب مربوطه دریافت می شود که نشان دهنده دسترسی به رشته مشترک است. تمام کپی های خط مورد نظر در تمام کش ها صرف نظر از اینکه قبلا در چه وضعیتی بودند (I، E یا S) به حالت S منتقل می شوند.

هنگامی که یک پردازنده درخواست نوشتن به خطی را ارائه می دهد که در حافظه نهان محلی آن وجود ندارد (اشتباه نوشتن)، خط باید از حافظه اصلی (RAM) خوانده شود و قبل از بارگیری در حافظه نهان به روز شود. قبل از اینکه پردازنده بتواند یک ردیف را بارگیری کند، باید مطمئن شود که نسخه معتبر داده ها واقعاً در حافظه اصلی است، یعنی هیچ کپی اصلاح شده ای از ردیف در حافظه پنهان دیگر وجود ندارد. دنباله ای از عملیات تشکیل شده در این مورد نامیده می شود با قصد اصلاح می خواندیون ها(RWITM، Read With Intent To Modify). اگر یک کپی از خط مورد نیاز در یکی از کش ها و در حالت M یافت شود، پردازنده با این کپی توالی RWITM را قطع می کند و خط را در OP بازنویسی می کند و پس از آن وضعیت خط را در کش خود تغییر می دهد. به I. سپس دنباله RWITM از سر گرفته می شود و دسترسی مجدد به حافظه اصلی برای خواندن ردیف به روز شده انجام می شود. حالت نهایی خط M خواهد بود، که در آن هیچ نسخه قابل اعتمادتری از آن در OP یا سایر کش ها وجود ندارد. اگر یک کپی از خط در حافظه پنهان دیگری وجود داشته باشد و حالت M را نداشته باشد، چنین کپی حذف می شود و دسترسی به حافظه اصلی بلافاصله انجام می شود.

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

در شکل 11.15 یک توالی معمولی از رویدادها را در یک سیستم از دو پردازنده نشان می دهد که درخواست دسترسی به سلول x را دارند. دسترسی به هر سلول در یک خط کش به عنوان دسترسی به کل خط در نظر گرفته می شود.

بیایید مراحلی را نشان دهیم که پردازنده 2 سعی می کند محتویات سلول x را بخواند (شکل 11.16). ابتدا یک حافظه پنهان خواندن وجود دارد و پردازنده سعی می کند به حافظه اصلی دسترسی پیدا کند. پردازنده 1 گذرگاه را نظارت می کند، دسترسی به یک را تشخیص می دهد. سلولی که یک کپی از آن در حافظه پنهان آن وجود دارد و در آن قرار دارد




برنج. 11.16. انتقال از حالت E به حالت S در پروتکل MESI: a- پردازنده 2

x را می خواند; ب - پردازنده 1 تولید می کند جواب دادن x "به حافظه اصلی؛

i - پردازنده 2 "x" را از حافظه اصلی می خواند

حالت M را می گیرد، بنابراین عملیات خواندن را از پردازنده 2 مسدود می کند. سپس پردازنده 1 خط حاوی x را "در OP" بازنویسی می کند و پردازنده 2 را آزاد می کند تا بتواند دوباره به حافظه اصلی دسترسی پیدا کند. اکنون پردازنده 2 خط حاوی x را دریافت می کند و آن را در کش شما بارگذاری می کند. هر دو نسخه با علامت S مشخص شده اند.

تا کنون، نسخه یکبار نوشتن پروتکل MESI در نظر گرفته شده است. با در نظر گرفتن یک نوشتن واحد، نمودار وضعیت نشان داده شده در شکل. 11.14، کمی تغییر یافته است. تمام خطاهای حافظه پنهان خوانده شده باعث انتقال به حالت S می شوند. اولین ضربه نوشتن با انتقال به حالت E (به اصطلاح انتقال یک بار نوشتن) دنبال می شود. ضربه بعدی در حین نوشتن مستلزم تغییر وضعیت خط به M است.

پروتکل های مبتنی بر دایرکتوری

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

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

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

برای هر رشته مشترک، که یک کپی از آن را می توان در حافظه نهان قرار داد، یک ورودی در فهرستی که نشانگرهای یک کپی از این رشته را ذخیره می کند، اختصاص می یابد. علاوه بر این، یک بیت اصلاح (D) در هر رکورد برجسته می شود، که نشان می دهد آیا کپی کثیف است (D = 1 - کثیف) یا تمیز (D = 0 - تمیز)، یعنی محتوای خط در حافظه نهان. پس از بارگیری حافظه در آنجا تغییر کرده است. این بیت نشان می دهد که آیا پردازنده مجاز به نوشتن در این رشته است یا خیر.

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

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


برنج. 11.17. پروتکل انسجام کش مرجع کامل

در سیستمی از N پردازنده، هر ورودی دایرکتوری شامل خواهد شد ناشاره گرهای یک بیتی اگر یک کپی از داده ها در حافظه نهان محلی مربوطه وجود داشته باشد، بیت اشاره گر روی 1 و در غیر این صورت - روی 0 تنظیم می شود. نمودار با مرجع کامل در شکل نشان داده شده است. 11.17. این فرض می کند که یک کپی از خط در هر کش وجود دارد. به هر خط دو نشانگر وضعیت اختصاص داده شده است: یک بیت معتبر (V، معتبر) و یک بیت مالکیت (P، خصوصی). اگر اطلاعات موجود در رشته درست باشد، V-bit آن بر روی 1 تنظیم می شود. یک مقدار واحد P-bit نشان می دهد که این پردازندهحق نوشتن در خط مربوطه حافظه نهان محلی خود را اعطا کرد.

فرض کنید پردازنده 2 در مکان x می نویسد. در ابتدا، پردازنده هنوز مجوز چنین ضبطی را دریافت نکرده است. درخواستی را برای کنترل کننده دایرکتوری ایجاد می کند و منتظر مجوز برای ادامه عملیات است. در پاسخ به درخواست برای تمام حافظه های نهان که در آن کپی هایی از ردیف حاوی سلول x وجود دارد، سیگنالی برای حذف کپی های موجود صادر می شود. هر کشی که این سیگنال را دریافت می کند، بیت اعتبار رشته پوچ (V-bit) را به 0 بازنشانی می کند و یک سیگنال تایید را به کنترل کننده دایرکتوری برمی گرداند. پس از دریافت تمام سیگنال های تایید، کنترل کننده دایرکتوری بیت اصلاح (D-bit) ورودی دایرکتوری مربوطه را روی یک تنظیم می کند و سیگنالی را به پردازنده 2 ارسال می کند تا نوشتن در سلول x را فعال کند. از این مرحله به بعد، پردازنده 2 می‌تواند به نوشتن در نسخه خود از سلول x و همچنین در حافظه اصلی ادامه دهد، اگر طرح نوشتن از طریق حافظه پنهان اجرا شود.

مشکلات اصلی پروتکل دایرکتوری کامل مربوط به مقدار زیادسوابق. برای هر سلول در مرجع سیستم پردازنده های N، لازم است N + 1بیت، یعنی با افزایش تعداد پردازنده ها، ضریب پیچیدگی به صورت خطی افزایش می یابد. پروتکل دایرکتوری کامل به هر کش محلی اجازه می دهد تا کپی هایی از تمام سلول های مشترک داشته باشد. در عمل، چنین امکانی همیشه مورد تقاضا باقی نمی ماند - در هر لحظه، فقط یک یا چند نسخه معمولاً مرتبط هستند. V پروتکلبا مرجع محدودکپی های یک خط تنها ممکن است در تعداد محدودی کش وجود داشته باشد - نمی تواند بیشتر از آن باشد پکپی از رشته، در حالی که تعداد اشاره گرها در ورودی های دایرکتوری به کاهش می یابد n (n< N ). برای شناسایی منحصربه‌فرد حافظه نهان ذخیره‌کننده کپی، نشانگر به جای یک بیت باید از log2 N بیت و طول کل نشانگرها در هر ورودی دایرکتوری تشکیل شود. N بیتبرابر خواهد بود پlog2نبیت با مقدار ثابت پنرخ رشد ضریب پیچیدگی یک دایرکتوری محدود با افزایش اندازه سیستم کمتر از رابطه خطی است.

زمانی که بیش از پکپی، کنترل کننده تصمیم می گیرد که کدام یک از کپی ها را نگه دارد و کدام را لغو کند، پس از آن تغییرات مربوطه در فهرست های ورودی های دایرکتوری ایجاد می شود.

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

برنج. 11.18. پروتکل هماهنگی کش دایرکتوری پیوسته

در یک لیست پیوندی منفرد (شکل 11.18)، هر ورودی دایرکتوری حاوی یک اشاره گر به یک کپی از رشته در یکی از کش های محلی است. کپی خطوطی به همین نام در کش های مختلفسیستم ها یک زنجیره یک طرفه را تشکیل می دهند. برای انجام این کار، تگ‌های آنها یک فیلد ویژه ارائه می‌کنند که در آن یک اشاره‌گر به حافظه پنهان حاوی کپی بعدی زنجیره وارد می‌شود. یک جداکننده خاص در برچسب آخرین نسخه زنجیره قرار می گیرد. مرجع الحاقی به رشته هایی با طول اجازه می دهد یعنی پشتیبانی می کند نکپی های سلول هنگام ایجاد کپی دیگر، زنجیره باید از بین برود و به جای آن یک نسخه جدید تشکیل شود. برای مثال فرض کنید پردازنده 5 یک کپی از سلول x ندارد و برای آن به حافظه اصلی تبدیل می شود. اشاره گر در دایرکتوری به گونه ای تغییر می کند که به حافظه نهان شماره 5 اشاره کند و اشاره گر در حافظه نهان 5 - به گونه ای که به کش 2 اشاره می کند. برای این کار، کنترل کننده حافظه اصلی به همراه داده های درخواستی، باید یک اشاره گر نیز منتقل کند به حافظه نهان به حافظه نهان 5 - حافظه با شماره 2. تنها پس از تشکیل کل ساختار زنجیره، پردازنده 5 مجوز دسترسی به سلول x را دریافت می کند. اگر پردازنده در یک سلول بنویسد، یک سیگنال عدم اعتبار به مسیری که توسط زنجیره مربوطه از اشاره گرها تعریف شده است ارسال می شود. هنگامی که یک نسخه از حافظه کش حذف می شود، زنجیره باید به روز شود.

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

طرح‌های مبتنی بر دایرکتوری از ازدحام در کنترل‌کننده متمرکز و همچنین سربار ارتباط در مسیرهای بین کنترل‌کننده‌های کش محلی و کنترل‌کننده مرکزی رنج می‌برند. با این وجود، آنها در سیستم های چند پردازنده ای با توپولوژی پیچیده اتصال متقابل بین پردازنده ها، که در آن پروتکل های نظارت نمی توانند پیاده سازی شوند، بسیار موثر هستند.

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

پروتکلزبانه.یک مرجع متمرکز جهانی در اینجا وجود دارد که شامل کپی کاملتمام اطلاعات از دایرکتوری های هر یک از کش های محلی. این منجر به مشکل می شود تنگناهاو همچنین نیاز به جستجو برای ورودی های مربوطه دارد.

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

پروتکلآرچیبالد.طرحواره مرجع Archibald یک جفت شماتیک پیچیده برای شبکه های پردازشگر سازمان دهی شده سلسله مراتبی است. با توصیف همراه با جزئیاتاین پروتکل را می توان در

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

کنترل سوالات

1. تأثیر ویژگی های AC با حافظه مشترک و AC با حافظه توزیع شده بر توسعه نرم افزار را تجزیه و تحلیل کنید. چرا این VS ها به ترتیب قوی کوپل شده و ضعیف کوپل شده نامیده می شوند؟

2. ایده آدرس های حافظه متناوب را توضیح دهید. ملاحظات برای انتخاب مکانیزم تخصیص آدرس چیست؟ چه ارتباطی با کلاس معماری BC دارد؟

3. دادن ویژگی های مقایسه ایدسترسی های همگن و ناهمگن
به حافظه

4. مزایای معماری SOMA چیست؟

5. تجزیه و تحلیل مقایسه ای از مدل های با دسترسی حافظه نهان منسجم و نامنسجم به حافظه ناهمگن انجام دهید.

6. مزایا و معایب معماری را بدون دسترسی مستقیم به حافظه راه دور فرموله کنید.

7. معنای حافظه توزیع شده و مشترک را توضیح دهید.

8. مثال خود را برای نشان دادن مشکل انسجام حافظه پنهان توسعه دهید.

9. ویژگی ها را شرح دهید راه های برنامه ایراه حل های مشکل انسجام، نقاط قوت و ضعف آنها را برجسته کنید.

10. تکنیک های نوشتن برای نوشتن در مقابل نوشتن و نوشتن به پخش را مقایسه کنید و محاسن و معایب آنها را برجسته کنید.

11. توصیف مقایسه ای از روش های حفظ انسجام در سیستم های چند پردازنده ای ارائه دهید.

12. یک تحلیل مقایسه ای از پروتکل های مشاهده ای که می شناسید انجام دهید.

13. کدام یک از پروتکل های مشاهده محبوب ترین است؟ دلایل افزایش علاقه به او را توجیه کنید.

14. شرح مفصلی از پروتکل های انسجام بر اساس کتاب مرجع و روش های اجرای آنها ارائه دهید. تفاوت بین این پروتکل ها و پروتکل های مشاهده چیست؟

جدول 9.1. سلسله مراتب زیر سیستم حافظه رایانه شخصی
نوع حافظه سال 1985 2000 سال
زمان نمونه برداری حجم معمولی قیمت / بایت زمان نمونه برداری حجم معمولی قیمت / بایت
1 حافظه فوق عملیاتی (رجیسترها) 0.2 5 ns 16/32 بیت $ 3 - 100 0.01 1 ns 32/64/128 بیت $ 0,1 10
2 ذخیره سازی بافر با سرعت بالا (کش) 20 100 ns 8 کیلوبایت - 64 کیلوبایت ~ $ 10 0.5 - 2 ns 32 کیلوبایت 1 مگابایت $ 0,1 - 0,5
3 حافظه عملیاتی (اصلی). ~ 0.5 میلی ثانیه 1 مگابایت - 256 مگابایت $ 0,02 1 2 ns 20 ns 128 مگابایت - 4 گیگابایت $ 0,01 0,1
4 ذخیره سازی خارجی (ذخیره سازی انبوه) 10-100 میلی‌ثانیه 1 مگابایت - 1 گیگابایت $ 0,002 - 0,04 5-20 میلی ثانیه 1 گیگابایت - 0.5 ترابایت $ 0,001 - 0,01

رجیسترهای پردازنده زمینه آن را تشکیل می دهند و داده های مورد استفاده توسط دستورالعمل های پردازشگر در حال اجرا را ذخیره می کنند. رجیسترهای پردازنده معمولاً با نام‌های یادگاری در دستورالعمل‌های پردازنده قابل دسترسی هستند.

حافظه پنهانبرای مطابقت با سرعت CPU و حافظه اصلی استفاده می شود. سیستم های محاسباتی از کش چند سطحی استفاده می کنند: کش سطح I (L1)، کش سطح II (L2) و غیره. سیستم های رومیزی معمولا از کش دو لایه استفاده می کنند، در حالی که سیستم های سرور از کش سه لایه استفاده می کنند. کش دستورالعمل ها یا داده هایی را ذخیره می کند که احتمالاً در آینده نزدیک برای پردازش به پردازنده ارسال می شود. بنابراین عملکرد حافظه نهان برای نرم افزار شفاف است حافظه کشمعمولاً از نظر برنامه ای در دسترس نیستند.

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

هر سلول حافظه دسترسی تصادفییک آدرس منحصر به فرد اختصاص داده است. روش های تخصیص حافظه سازمانی به برنامه نویسان توانایی استفاده کارآمد از کل را می دهد سیستم کامپیوتری... این روش ها شامل مدل حافظه پیوسته ("مسطح") و مدل حافظه تقسیم شده است. استفاده كردن مدل جامد(مدل مسطح) حافظه، برنامه با یک فضای آدرس پیوسته منفرد، یک فضای آدرس خطی، که در آن سلول های حافظه به صورت متوالی و پیوسته از 0 تا 2n-1 شماره گذاری می شوند، کار می کند، جایی که n ظرفیت CPU در آدرس است. هنگام استفاده از یک مدل تقسیم‌بندی شده برای یک برنامه، حافظه با گروهی از بلوک‌های آدرس مستقل به نام سگمنت نمایش داده می‌شود. برای آدرس دهی یک بایت حافظه، یک برنامه باید از یک آدرس منطقی متشکل از یک انتخابگر بخش و یک افست استفاده کند. انتخابگر بخش، یک بخش خاص را انتخاب می کند، و افست به یک سلول خاص در فضای آدرس بخش انتخاب شده اشاره می کند.

مقالات مرتبط برتر