Способ фильтрации межпроцессорных запросов в многопроцессорных вычислительных системах и устройство для его осуществления
Изобретение относится к вычислительной технике. Технический результат заключается в увеличении степени фильтрации межпроцессорных запросов. Осуществляют предварительную проверку возможности наличия копий запрашиваемых данных в кэш-памятях системы при поступлении от одного из процессоров межпроцессорного запроса на обращение к оперативной памяти и/или кэш-памятям системы, производят сравнение считанных фрагментов с фрагментом, выделенным из тега адреса запроса в случае совпадения фрагмента, выделенного из тега адреса запроса, с одним или несколькими фрагментами, считанными из памяти фильтрующей информации, делают вывод о возможности наличия копий запрашиваемых данных в кэш-памятях системы, для которых получены совпадения, и производят отфильтрованные таким образом обращения к этим кэш-памятям для окончательной проверки наличия копий запрашиваемых. 2 с. и 2 з.п.ф-лы, 5 ил.
Изобретение относится к области вычислительной техники, в частности к методам и устройствам фильтрации межпроцессорных запросов, и может быть использовано при разработке многопроцессорных вычислительных систем.
Обеспечение согласованности (когерентности) данных, находящихся в кэш- и основной памяти, представляет собой известную проблему многопроцессорных вычислительных систем. См. книгу "Parallel & Distributed Computing Handbook" (Edward Y. Zomaya, Ed., McGraw-Hill 1996) [1]. В имеющих широкое распространение мультипроцессорах с шинной организацией эта проблема обычно решается посредством отслеживания запросов, появляющихся на шине (bus snooping). Подобный технический прием обеспечивает достаточно простое решение проблемы, поскольку адрес на шине является видимым для всех процессоров. Однако необходимость в считывании тегов из всех кэш-памятей системы при каждом обращении в основную память влечет за собой значительные накладные расходы, что может привести к уменьшению производительности системы или потребовать дополнительных аппаратных средств (увеличение количества портов считывания памяти тегов или создание копии памяти тегов). Для более мощных мультипроцессоров с использованием коммутатора проблема согласованности содержимого кэш и основной памяти представляет большую трудность, т. к. прямое выполнение операций слежения потребовало бы широковещательной передачи сообщения всем процессорам и затем получения ответов от всех процессоров системы, что могло бы свести на нет преимущества коммутационной структуры. Типичным для таких систем является использование специальных справочников для обеспечения согласованности кэш и основной памяти. Были предложены различные схемы поддержания когерентности на базе справочников [1] . Основным недостатком таких решений является значительное количество дополнительных аппаратных средств. В этой связи стали появляться методы и аппаратура для фильтрации запросов, позволяющие снизить межпроцессорный трафик за счет сравнительно небольших объемов дополнительной аппаратуры. Известен способ для снижения межпроцессорного трафика в многопроцессорных системах с общей памятью, заключающийся в использовании специальных битов - меток, включаемых в элементы таблицы страниц и показывающих, может ли информация из этой страницы находиться в кэш-памяти какого-либо процессора, и реализованный в известном устройстве, содержащем модифицированный блок преобразования виртуальных адресов в физические, расположенный в центральном процессоре, и включающий специальные биты - метки и схемы для их анализа (См. Патент US 6044446, кл. G 06 F 12/00, 1997). Данное техническое решение весьма экономично, но дает весьма грубую фильтрацию, позволяющую получить заметный эффект лишь в случаях отсутствия в системе общих данных или их сильной локализации. По технической сущности наиболее близким к предлагаемому изобретению является способ фильтрации межпроцессорных запросов в многопроцессорных вычислительных системах, заключающийся в предварительной проверке возможности наличия копий запрашиваемых данных в кэш-памятях процессорных узлов системы при поступлении от одного из процессоров запроса на обращение к оперативной памяти и обращении к тем группам процессоров, для которых выявлена такая возможность, а также в передаче сообщений в остальные группы процессоров для обновления в них фильтрующей информации (interest map), которая при обращении к оперативной памяти позволяет с некоторой степенью вероятности определить наличие копий запрашиваемых данных в кэш-памятях системы, а также устройство для фильтрации межпроцессорных запросов ("Снуп-фильтр") в многопроцессорных вычислительных системах, содержащее блок фильтрации, позволяющий определить процессоры или группы процессоров, которые могут иметь в своих кэш-памятях данные, принадлежащие к некоторому пространству адресов (например, страницы памяти, как в предыдущем аналоге), а также специальную память фильтрующей информации для каждого процессора или группы процессоров (см. патент US 5966729, кл. G 06 F 12/12, 1997). Однако известные способ и устройство требуют значительных аппаратных затрат для обеспечения достаточной степени фильтрации, что приводит к усложнению системы в целом. Затраты оборудования обусловлены тем, что объем памяти фильтра является функцией от объема оперативной памяти системы, а также размножением аппаратуры фильтра, так как количество фильтров равно количеству процессорных узлов (системных узлов) и сложной структурой устройства фильтрации. Кроме того, для обновления информации в памятях устройств фильтрации требуется регулярная передача адресов ко всем системным узлам или группам узлов, что ограничивает возможные типы подсистемы коммутации адресов схемами шинного типа, т. е. собственно шинами или размножителями, и снижает производительность системы. Техническим результатом является увеличение степени фильтрации межпроцессорных запросов и повышение производительности системы при минимальных аппаратных затратах. Для решения поставленной технической задачи в способе фильтрации межпроцессорных запросов в многопроцессорных вычислительных системах, заключающемся в предварительной проверке возможности наличия копий запрашиваемых данных в кэш-памятях системы при поступлении от одного из процессоров запроса на обращение к оперативной памяти и/или запроса на уничтожение копий данных в кэш-памятях системы, согласно изобретению, из адреса запроса выделяют части, соответствующие индексам и тегам кэш-памятей системы, первую часть используют в качестве адреса при обращении к памяти фильтрующей информации, состоящей из сегментов, каждый из которых соответствует одной из кэш-памятей системы, а из второй части выделяют фрагмент, представляющий собой несколько разрядов тега или некоторую функцию от разрядов тега, из всех сегментов памяти фильтрующей информации производят считывание содержащихся в них фрагментов тегов, после чего производят сравнение считанных фрагментов с фрагментом, выделенным из тега адреса запроса, и при отсутствии совпадений делают вывод об отсутствии копий запрашиваемых данных в кэш-памятях системы, а в случае совпадения фрагмента, выделенного из тега адреса запроса, с одним или несколькими фрагментами, считанными из памяти фильтрующей информации, делают вывод о возможности наличия копий запрашиваемых данных в кэш-памятях системы, для которых получены совпадения, и производят отфильтрованные межпроцессорные запросы к этим кэш-памятям для окончательной проверки наличия копий запрашиваемых данных, кроме того, производят обновление памяти фильтрующей информации, для чего в ячейку сегмента, соответствующего кэш-памяти, связанной с процессором-запросчиком, производят запись фрагмента тега, выделенного из адреса запроса. Кроме того, устройство фильтрации межпроцессорных запросов в многопроцессорной вычислительной системе, включающей М секций оперативной памяти, системный коммутатор адресов и данных и К процессорных узлов, каждый из которых включает как минимум один процессор и одну кэш-память, где М и К - целые числа, согласно изобретению, содержит узел межпроцессорных запросов и как минимум один блок фильтрации, выполненный с возможностью хранения фильтрующей информации, причем информационный вход блока фильтрации и информационный вход узла межпроцессорных запросов подключены к выходу адресной информации системного коммутатора адресов и данных, входы-выходы межпроцессорного обмена узла межпроцессорных запросов связаны группой двунаправленных шин с вышеуказанными К процессорными узлами, а выход результатов фильтрации блока фильтрации подключен к соответствующему входу узла межпроцессорных запросов, выход управляющей информации которого подключен к соответствующему входу управления системного коммутатора адресов и данных, причем блок фильтрации может содержать входной регистр, дешифратор номера запросчика, L компараторов фрагментов тегов и память фильтрующей информации, состоящую из L сегментов, каждый из которых соответствует одной из кэш-памятей системы, где L - целое число, причем вход дешифратора связан с первым выходом входного регистра шиной номера процессора, выходы дешифратора подключены к входам стробов записи соответствующих сегментов памяти фильтрующей информации, информационные входы которых соединены со вторым выходом входного регистра шиной фрагмента тега, к которой подключен первый вход каждого компаратора фрагментов тегов, второй вход которого подключен к выходу соответствующего сегмента памяти фильтрующей информации, а выход подключен к выходу результатов фильтрации блока фильтрации, третий выход входного регистра соединен шиной индекса с входом адреса каждого сегмента памяти фильтрующей информации, а вход является входом блока фильтрации, кроме того узел межпроцессорных запросов может содержать К буферных памятей межпроцессорных запросов, каждая из которых соответствует одному из К процессорных узлов многопроцессорной системы, блок сбора ответов на межпроцессорные запросы, дешифратор обратного адреса межпроцессорного запроса, блок регистров и К N-входовых элементов "ИЛИ", причем каждый элемент "ИЛИ" соответствует одной из К буферных памятей межпроцессорных запросов, информационный вход узла межпроцессорных запросов является входом блока регистров, первый выход которого соединен шиной адреса с первыми входами всех буферных памятей межпроцессорных запросов, вторые входы которых соединены шиной обратного адреса межпроцессорного запроса со вторым выходом блока регистров и входом дешифратора обратного адреса межпроцессорного запроса, выход которого подключен ко входу позиционного номера строки блока сбора ответов на межпроцессорные запросы, N-разрядная группа входов каждой буферной памяти и N входов соответствующего ей элемента "ИЛИ" связаны с разрядами входа результатов фильтрации узла межпроцессорных запросов, соответствующими N процессорам одного из процессорных узлов многопроцессорной системы, прямой выход каждого из N-входовых элементов "ИЛИ" соединен с третьим входом соответствующей ему буферной памяти межпроцессорных запросов, а инверсный выход - с одним из входов результатов фильтрации блока сбора ответов на межпроцессорные запросы, выходы буферных памятей межпроцессорных запросов и соответствующие входы ответов на межпроцессорные запросы блока сбора ответов на межпроцессорные запросы образуют соответствующие входы-выходы межпроцессорных обменов узла межпроцессорных запросов, а выход стробов готовности ответов и выход кодов ответов блока сбора ответов на межпроцессорные запросы образуют многоразрядный выход управляющей информации узла межпроцессорных запросов. Сущность изобретения заключается в том, что выполнение устройства вышеописанным образом позволило использовать иные схемы фильтрации и реализовать вышеописанный способ, что позволяет получить более высокую степень фильтрации и повысить производительность системы в целом при меньших аппаратных затратах. Объем памяти блока фильтрации является функцией от объема кэш-памятей системы, а его схема состоит из минимального количества простых элементов. Кроме того, обновление информации в памяти фильтрующей информации происходит одновременно с обслуживанием запросов к оперативной памяти и не требует дополнительных передач адресов. Сравнение предлагаемых технических решений с ближайшим аналогом позволяет утверждать о соответствии критерию "новизна", а отсутствие в аналогах отличительных признаков говорит о соответствии критерию "изобретательский уровень". Предварительное моделирование позволяет судить о возможности промышленного использования. На фиг.1 представлена функциональная блок-схема предлагаемого устройства фильтрации межпроцессорных запросов в составе многопроцессорной вычислительной системы, на фиг.2 - принципиальная блок-схема блока фильтрации; на фиг.3 - принципиальная блок-схема узла межпроцессорных запросов; на фиг.4 - принципиальная блок-схема блока сбора ответов на межпроцессорные запросы; на фиг. 5 - блок-схема алгоритма обслуживания запроса с поддержкой согласованности данных и предварительной фильтрацией межпроцессорных запросов. Устройство фильтрации межпроцессорных запросов в многопроцессорной вычислительной системе (фиг.1) содержит узел 1 межпроцессорных запросов и, как минимум, один блок 2 фильтрации, выполненный с возможностью хранения фильтрующей информации. Информационные входы 3 и 4 блока 2 фильтрации и узла 1 межпроцессорных запросов подключены к выходу адресной информации системного коммутатора 5 адресов и данных, связанному первой и второй группами шин 6-1. ..6-К и 7-1...7-К, соответственно с К процессорными узлами 8-1...8-К, каждый из которых включает как минимум один процессор 9-1...9-N и как минимум одну кэш-память 10-1... 10-N, и М секциями 11-1...11-М оперативной памяти, где М, N и К - целые числа. Входы-выходы 12-1...12-К межпроцессорного обмена узла 1 межпроцессорных запросов связаны группой двунаправленных шин 13-1...13-К с вышеуказанными К процессорными узлами 8-1. ..8-К, а выход 14 результатов фильтрации блока 2 фильтрации подключен к соответствующему входу 15 узла 1 межпроцессорных запросов, выход 16 управляющей информации которого подключен к соответствующему входу управления системного коммутатора 5 адресов и данных. Входы и выходы узла 1 межпроцессорных запросов и блока 2 фильтрации являются многоразрядными. Блок 2 фильтрации (фиг. 2) содержит входной регистр 17, дешифратор 18 номера запросчика, L компараторов 19-1...19-L фрагментов тегов, и память 20 фильтрующей информации, состоящую из L сегментов 21-1...21-L, каждый из которых соответствует одной из кэш-памятей системы, где L=К
Формула изобретения
1. Способ фильтрации межпроцессорных запросов в многопроцессорных вычислительных системах, заключающийся в предварительной проверке возможности наличия копий запрашиваемых данных в кэш-памятях системы при поступлении от одного из процессоров межпроцессорного запроса на обращение к оперативной памяти и/или кэш-памятям системы, при этом из адреса запроса выделяют части, соответствующие индексам и тегам кэш-памятей системы, первую часть используют в качестве адреса при обращении к памяти фильтрующей информации, состоящей из сегментов, каждый из которых соответствует одной из кэш-памятей системы, а из второй части выделяют фрагмент, представляющий собой несколько разрядов тега или функцию свертки разрядов тега по модулю, из всех сегментов памяти фильтрующей информации производят считывание содержащихся в них фрагментов тегов, после чего производят сравнение считанных фрагментов с фрагментом, выделенным из тега адреса запроса, и при отсутствии совпадений делают вывод об отсутствии копий запрашиваемых данных в кэш-памятях системы, а в случае совпадения фрагмента, выделенного из тега адреса запроса, с одним или несколькими фрагментами, считанными из памяти фильтрующей информации, делают вывод о возможности наличия копий запрашиваемых данных в кэш-памятях системы, для которых получены совпадения, и производят отфильтрованные таким образом обращения к этим кэш-памятям для окончательной проверки наличия копий запрашиваемых данных, кроме того, производят обновление памяти фильтрующей информации, для чего в ячейку сегмента, соответствующего кэш-памяти, связанной с процессором-запросчиком, производят запись фрагмента тега, выделенного из адреса запроса. 2. Устройство фильтрации межпроцессорных запросов в многопроцессорной вычислительной системе, включающей системный коммутатор адресов и данных, связанный первой и второй группами шин соответственно с К процессорными узлами, каждый из которых включает, как минимум, один процессор и одну кэш-память, и М секциями оперативной памяти, где М и К - целые числа, отличающееся тем, что оно содержит узел межпроцессорных запросов и, как минимум, один блок фильтрации, выполненный с возможностью хранения фильтрующей информации, причем информационный вход блока фильтрации и информационный вход узла межпроцессорных запросов подключены к выходу адресной информации системного коммутатора адресов и данных, входы-выходы межпроцессорного обмена узла межпроцессорных запросов связаны группой двунаправленных шин с К процессорными узлами системы, а выход результатов фильтрации блока фильтрации подключен к соответствующему входу узла межпроцессорных запросов, выход управляющей информации которого подключен к соответствующему входу управления системного коммутатора адресов и данных. 3. Устройство по п. 2, отличающееся тем, что блок фильтрации содержит входной регистр, дешифратор номера запросчика, L компараторов фрагментов тегов и память фильтрующей информации, состоящую из L сегментов, каждый из которых соответствует одной из кэш-памятей системы, где L - целое число, причем вход дешифратора связан с первым выходом входного регистра шиной номера процессора, выходы дешифратора подключены к входам стробов записи соответствующих сегментов памяти фильтрующей информации, информационные входы которых соединены со вторым выходом входного регистра шиной фрагмента тега, к которой подключен первый вход каждого компаратора фрагментов тегов, второй вход которого подключен к выходу соответствующего сегмента памяти фильтрующей информации, а выход подключен к выходу результатов фильтрации блока фильтрации, третий выход входного регистра соединен шиной индекса с входом адреса каждого сегмента памяти фильтрующей информации, а вход является входом блока фильтрации. 4. Устройство по п. 2, отличающееся тем, что узел межпроцессорных запросов содержит К буферных памятей межпроцессорных запросов, каждая из которых соответствует одному из К процессорных узлов многопроцессорной системы, блок сбора ответов на межпроцессорные запросы, дешифратор обратного адреса межпроцессорного запроса, блок регистров и К N-входовых элементов "ИЛИ", причем каждый элемент "ИЛИ" соответствует одной из К буферных памятей межпроцессорных запросов, информационный вход узла межпроцессорных запросов является входом блока регистров, первый выход которого соединен шиной адреса с первыми входами всех буферных памятей межпроцессорных запросов, вторые входы которых соединены шиной обратного адреса межпроцессорного запроса со вторым выходом блока регистров и входом дешифратора обратного адреса межпроцессорного запроса, выход которого подключен ко входу позиционного номера строки блоки сбора ответов на межпроцессорные запросы, N-разрядная группа входов каждой буферной памяти и N входов соответствующего ей элемента "ИЛИ" связаны с разрядами входа результатов фильтрации узла межпроцессорных запросов, соответствующими N процессорам одного из процессорных узлов многопроцессорной системы, прямой выход каждого из N-входовых элементов "ИЛИ соединен с третьим входом соответствующей ему буферной памяти межпроцессорных запросов, а инверсный выход - с одним из входов результатов фильтрации блока сбора ответов на межпроцессорные запросы, выходы буферных памятей межпроцессорных запросов и соответствующие входы ответов на межпроцессорные запросы блока сбора ответов на межпроцессорные запросы образуют соответствующие входы-выходы межпроцессорных обменов узла межпроцессорных запросов, а выход стробов готовности ответов и выход кодов ответов блока сбора ответов на межпроцессорные запросы образуют многоразрядный выход управляющей информации узла межпроцессорных запросов.РИСУНКИ
Рисунок 1, Рисунок 2, Рисунок 3, Рисунок 4, Рисунок 5MM4A Досрочное прекращение действия патента из-за неуплаты в установленный срок пошлины заподдержание патента в силе
Дата прекращения действия патента: 22.11.2010
Дата публикации: 10.12.2011