ПредишенСледващото

Мултипроцесор кохерентността на кеша

Начало | За нас | обратна връзка

Проблемът въпросната произтича от факта, че стойността на елемент от данни в паметта, която се съхранява в два различни процесори, тези процесори са достъпни само чрез техните индивидуални кеш. Фиг. 10.3 показва прост пример за илюстриране на този проблем.

Memory кохерентност проблем за мултипроцесори и входно / изходни устройства, има много аспекти. Обикновено в малките мултипроцесори използват механизъм за хардуер, наречен протокол решава този проблем. Тези протоколи се наричат ​​протоколи съгласуваност кеш. Има два класа на протоколи:

  1. Протоколи на базата на директория (директорията на базата). Информация за състоянието на устройството за съхранение се съдържа в само едно място, наречено препратка (справка може да се разпространява в цяла възли на системата). Този подход ще бъде обсъдено в Sec. 10.3.
  2. Мониторинг протоколи (подслушване). Всеки кеш, който съдържа копие на информационния блок физическа памет също има копие от съответната информация услуга за състоянието му. Не е централизирана система на записи. Обикновено, кешове са разположени на обща (споделена) автобус, както и всички кеш контролери следят автобуса (това гледане), за да се определи дали те съдържат копие на блока.

Фиг. 10.3. Илюстрация проблеми кохерентност на кеша

В многопроцесорни системи, които използват микропроцесори с кеш паметта свързан с централизирана обща памет, констативни протоколи са станали популярни, че да се сондира за състоянието на кешовете, те могат да използват вече съществуваща физическа връзка - автобус с памет.

Неформално кохерентност памет проблем е необходимостта да се гарантира, че всеки чете данни връща последната стойност път е писано за него. Това определение не е съвсем правилно, защото е невъзможно да се предяви искане операция за четене веднага видя стойността записана в тези данни по някакъв друг процесор. Ако например една операция процесор запис предхожда действието на четене от една и съща клетка на друг процесор в рамките на много кратък интервал от време, не е възможно да се гарантира, че стойността на данните за четене връщане, отбелязана от по това време, запис на данни може дори да не оставят на процесора. Въпросът кога точно като записаната стойност трябва да бъде на разположение на процесора, който изпълнява четене, се определя от избрания модел статус последователна (последователен) памет и свързани с изпълнението на синхронизацията на паралелни изчисления. Поради това, с цел простота, ние приемаме, че имаме нужда само да запише стойността на отразяването е на разположение операция четене, случили се малко по-късно, че записването и обработването на операцията за запис винаги са видими по реда на тяхното изпълнение.

С този прост определение за състоянието на последователна памет, ние можем да гарантираме съгласуваност, като се гарантира, че двата имота:

  1. Действието на четене на един процесор клетъчна памет, която следва операцията за запис на едно и също място на паметта от друг процесор получава стойността писмено, когато пишат операции за четене и са отделени достатъчно раздалечени във времето.
  2. пишат операции към една и съща памет клетката се извършват строго последователно (понякога казват, че са серийни номера): това означава, че две последователни пише на едно и също място на паметта ще бъдат наблюдавани от други процесори в точния ред, в който те се появяват в програмата за CPU извършване на операцията за запис.

Първото свойство очевидно е свързано с определянето на последователна (последователна), състоянието на паметта: ако процесора винаги ще чете само старата стойност на данните, бихме казали, че паметта е непоследователен.

Необходимостта от строго последователни операции за запис е по-тънък, но и много важен собственост. Нека си представим, че един строго последователно изпълнение на операции за запис не се спазва. След това процесорът Р1 може да запише данните в клетка, и след това клетките да записва процесор Р2. Строго последователно изпълнение на операции запис осигурява две важни последици за запис последователността на операциите. Първо, тя гарантира, че всеки процесор в колата в някакъв момент от време ще гледам записи, направени от процесор P2. Ако последователността на операциите запис не е спазено, ситуацията може да възникне, когато всеки процесор ще наблюдава първата операция Р2 процесор за запис, и след операция на запис Р1 процесор и ще съхранява записват стойността на Р1 за неопределено време. По-фините възниква проблем с поддържането на разумен модел от порядъка на изпълнението на програмата и паметта на кохерентността за потребителя: представете си, че една трета процесор винаги ще се чете едно и също място на паметта, в която да се напише процесори P1 и P2; той трябва първо да наблюдавате стойностите написани на P1, тогава регистрираната стойност P2. Може би никога няма да видите Р1 стойност записано, Р2 като запис от там, преди да прочетете. Ако той дори вижда Р1 стойност записано, той трябва да видите стойността написана на Р2, последващото четене. По същия начин, всеки друг процесор, който може да наблюдава стойността написан като Р1 и Р2, е да се наблюдава идентичен поведение. Най-лесният начин за постигане на такива имоти е в строго съответствие с реда на пише на всички записи в една и съща клетка може да се наблюдава в същия ред. Това свойство се нарича последователно изпълнение (сериализация) на операциите на запис (запис на сериализацията). Въпросът, когато процесора трябва да види стойността написана от друг процесор е доста сложна и има осезаемо въздействие върху производителността, особено в големи машини.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!