інших кешах;
3) "змінена", якщо копія змінена операцією запису. Кожен процесор може читати зі свого кеша, якщо стан яку читає рядки "Колективна" або "змінена". Якщо рядок отсутству-ет в кеші або знаходиться в стані "неможлива до використання", то надсилається запит "промах читання", який направляється в модуль, резидентний для необхідної рядка.
Якщо глобальне стан рядка в резидентном модулі "некешірованная" або "віддалено-розділена", то копія рядка посилається в що запитав модуль і в список модулів, що містять копії розглянутої рядки, вноситься модуль, що запитав копію.
Якщо стан рядка "віддалено-змінена", то запит "Промах читання" перенаправляється в модуль, що містить змінену рядок. Цей модуль пересилає необхідну рядок у що запитав модуль і в модуль, резидентний для цього рядка, і встановлює в резидентном модулі для цього рядка стан "віддалено-розподілена".
Якщо процесор виконує операцію запису і стан рядка, в яку проводиться запис "змінена", то запис виконується і обчислення тривають. Якщо стан рядка "неможлива до використання" або "колективна", то модуль посилає в резидентний для рядка модуль запит на захоплення у виключне використання цього рядка і призупиняє виконання запису до отримання підтверджень, що всі інші модулі, розділяють з ним розглянуту рядок, перевели її копії в стан "Неможлива до використання". p> Якщо глобальне стан рядка в резидентном модулі "некешірованная", то рядок відсилається запити модулю, і цей модуль продовжує призупинені обчислення.
Якщо глобальне стан рядка "віддалено-розділена", то резидентний модуль розсилає за списком всіх модулів, які мають копію рядки, запит на перехід цих рядків в стан "неможлива до використання". Після отримання цього запиту кожен з модулів змінює стан своєї копії рядка на "неможлива до використання" і посилає підтвердження виконання в модуль, який ініціював операцію запису. При цьому в припиненому модулі рядок після виконання запису переходить в стан "Віддалено-змінена". p> Робляться спроби підвищити ефективність реалізації алгоритму когерентності, зокрема, за рахунок урахування специфіки паралельних програм, у яких використовуються асинхронно одні й ті ж дані на кожному часовому інтервалі виключно одним процесором з подальшим переходом обробки до іншому процесору. Такого роду ситуації трапляються, наприклад, при визначенні умов закінчення ітерацій. У цьому випадку можлива більш ефективна схема передачі рядки з кешу одного процесора в кеш іншого процесора.
1.3. КС типу узагальненого кільцевого гиперкуба
Описувана в даній роботі середу забезпечує побудову легко нарощуваної обчислювальної системи, яка може містити велику кількість процесорів. Тому при проектуванні вона спочатку призначалася для створення систем розподілених обчислень. Однак універсальність комунікаційних процесорів вузлів дозволяє використовувати її також при створенні мереж робочих станцій. Простота нарощування кількісних параметрів ...