Попов И.И., Матвеев А.А., Максимов Н.В. Архитектура электронно-вычислительных машин и систем (2004) (1186255), страница 35
Текст из файла (страница 35)
по его адресу непроизводилась запись (оно использовалось только для чтения), то нетнеобходимости пересылать его обратно в основную память, потому чтов ней и так имеется достоверная его копия; это обстоятельство позволяетв ряде случаев обойтись без обращений к основной памяти. Если,однако, слово подвергалось изменениям с тех пор, когда его копия былав последний раз записана обратно в основную память, то приходитсяперемещать его в основную память. Отслеживать изменения словаможно пометив слово (блок) дополнительным флаговым битом. Изменяязначение флагового бита при изменении слова, можно сформироватьинформацию о состоянии слова; пересылать в основную памятьнеобходимо лишь те слова, флаги которых оказываются вустановленном состоянии.Алгоритм регистрового свопинга с флагамиПовышение эффективности алгоритма свопинга с флагамивозможно за счет уменьшения эффективного времени цикла, что можнополучить при введении регистра (регистров) временного хранениямежду кэш-памятью и основной памятью.
Теперь, если данные должныбыть переданы из быстрого буфера в основную память, они сначалапересылаются в регистр (регистры) временного хранения; новое словосразу же пересылается в буфер из основной памяти, а уже потом слово,временно хранившееся в регистре, записывается в основную память.Действия в ЦП начинают опять выполняться, как только для этого195возникает возможность. Алгоритм обеспечивает совмещение операцийзаписи в основную память с обычными операциями над буфером, чтообеспечивает еще большее повышение производительности.Способы улучшения эффективности подсистемы памяти воднопроцессорных ВСПрежде всего эффективное быстродействие кэша должно бытьпримерно равно быстродействию процессора. Если полное эффективноевремя обращения к системе памяти с использованием буфера превышаетвремя базового цикла процессора, то для уравнивания еебыстродействия с быстродействием процессора можно прибегнуть кконвейерной организации процесса обработки информации.
Когда кэшпамять работает с такой же скоростью, как процессор, никакойнеобходимости в конвейерной работе процессора нет. Делатьбыстродействие кэш-памяти более высоким, чем быстродействиепроцессора, не имеет смысла, так как процессор (или процессоры)требует обслуживания со стороны памяти с интервалом, не меньшимчем время его рабочего цикла.Современные процессоры выполняют команды со скоростью отнескольких команд в такт до нескольких десятков тактов на команду.Кроме того используется конвейерная обработка команд. Дляувеличения своей производительности процессоры обычно вначалепроизводят выборку предполагаемо необходимых данных и команд, азатем исполняют их. Исходя из таких положений необходимодобиваться того, чтобы кэш-память действовала со скоростью тактовойчастоты процессора.На производительность памяти очень сильно влияет алгоритмсвопинга.
Как было показано выше, наиболее эффективным алгоритмомдля однопроцессорных ВС является регистровый свопинг с флагами.При увеличении размера кэш памяти стратегия замещения данных неимеет значения, поэтому можно применять наиболее простую случайную стратегию.Необходимо также использовать совмещение работы буферной иосновной памяти.Большой класс задач решаемых на ЭВМ имеет дело с большимиобъемами данных хранимых в массивах. Для улучшенияпроизводительности ВС на таких задачах можно применятьмногомодульную систему основной памяти с горизонтальнымрасслоением (рис. 22).196Рис.
22. Память с горизонтальным расслоениемПри такой организации основной памяти при последовательномобращении к элементам массивов наблюдается увеличениепроизводительности подсистемы памяти, т.к. кэш ждет меньшее времядоосвобожденияпамяти.Обратнойсторонойувеличенияпроизводительности является уменьшение надежности памяти, т.к. привыходе из строя одного модуля из адресного пространства выпадаютячейки расположенные через некоторый шаг, что повлияет на всепроцессы находящиеся в памяти. Для увеличения производительности инадежности одновременно можно применять так называемую блочномодульную структуру памяти.
Данный подход наиболее актуален длямногопроцессорных ВС.Иерархическая память многопроцессорных ВСВ структурной организации многопроцессорной системы наиболеесущественен способ связи между процессорами и памятью системы.Как известно, параллельные вычислительные системы делятся надва больших класса: SIMD и MIMD. В настоящее время осваиваютсясупервычисления на системах из микропроцессоров с кэш-памятями иразделяемой (логически - общей) физически распределенной основнойпамятью.Существующие параллельные вычислительные средства классаMIMD образуют три подкласса: симметричные мультипроцессоры(SMP), кластеры и массово параллельные системы (МРР).Однако степень масштабируемости SMP систем ограничена впределах технической реализуемости одинакового для всех процессоровдоступа в память со скоростью, характерной для однопроцессорныхкомпьютеров.
Как правило, количество процессоров в SMP непревышает 32. На данный момент SMP структура наиболеераспространена в классе профессиональных рабочих станций на базеRISC процессоров.Для построения систем с большим числом процессоровприменяются кластерный или МРР подходы. Оба эти направленияиспользуют SMP как системообразующий вычислительный модуль(ВМ).197Кластерная система образуется из модулей, объединенныхсистемой связи или разделяемыми устройствами внешней памяти,например дисковыми массивами. В настоящее время для образованиякластерных систем используются либо специализированные фирменныесредства (например, MEMORY CHANNEL фирмы DEC), либоуниверсальные локальные и глобальные сети такие, как Ethernet, FDDI(Fiber Distributed Data Interface), и другие сети, например, с протоколамиTCP/IP (Transmission Control Protocol / Internet Protocol), либо дисковыемассивы с высокоскоростными широкими двойными (Wide/Fast) иквадро PCI SCSI контроллерами.Размер кластера варьируется от нескольких модулей донескольких десятков модулей.Массово параллельные системы, в отличие от кластеров, имеютболее скоростные, как правило специализированные, каналы связимежду ВМ, а также широкие возможности по масштабированию.
Крометого, в МРР фиксируется некоторый достаточно высокий уровеньинтерфейсаприкладныхпрограмм(API),поддерживаемыйраспределенной ОС. Однако поддержка работоспособности иоптимизация загрузки процессоров в МРР менее развита по сравнению скластерами в силу разнообразности исполняемых программ и отсутствияфункциональных связей между программамиНачиная с 1980 года идея SMP архитектур, подкрепленнаяшироким распространением микропроцессоров, стимулировала многихразработчиков на создание небольших мультипроцессоров, в которыхнесколько процессоров разделяют одну физическую память,соединенную с ними с помощью разделяемой шины.
Из-за малогоразмера процессоров и заметного сокращения требуемой полосыпропускания шины, достигнутого за счет возможности реализациидостаточно большой кэш-памяти, такие машины стали исключительноэффективными по стоимости. В первых разработках подобного родамашин удавалось разместить весь процессор и кэш на одной плате,которая затем вставлялась в заднюю панель, с помощью которойреализовывалась шинная архитектура. Современные конструкциипозволяют разместить до четырех процессоров на одной плате, пределколичества процессоров в SMP - не более 32-х .Многопроцессорная ВС с общим кэшем и общей памятьюОбщий вид такой многопроцессорной ВС представлен на рис.
23.Здесь ВМ - вычислительный модуль (процессор), всего n-штук, ВНУ внешние устройства, всего k-штук.198Рис. 23. Многопроцессорная ВС с общим кэшем и общей памятьюВ качестве основной памяти может использоваться память сгоризонтальным расслоением или же для повышения надежности блочно-модульная память.Основными проблемами в данной архитектуре являютсяследующие: скорость работы кэш памяти, блокировка при совместномдоступе нескольких процессоров на одновременную запись илизапись/чтение данных по одному и тому же адресу. Кэш-память должнаработать с тактовой частотой в n раз большей тактовой частотыпроцессора, т.к. она должна обеспечивать данными процессоры счастотой один раз в такт.
В противном случае каждый процессор долженбыть блокирован до момента получения (или записи) им требуемыхданных, что очень сильно снижает производительность и вообще смыслмногопроцессорной ВС.Вообще такая структура сходна с однопроцессорной ВС с кэшем.Она недостаточно эффективна и как правило практически неприменяется.Многопроцессорная ВС с раздельными кэшами и общей памятьюДаннаямодельмультипроцессорнойсистемынаиболеераспространенавнастоящеевремя.Структурнаясхемамногопроцессорной ВС с раздельными кэшами и общей памятьюпредставлен на рисунке __.Каждый ВМ имеет собственную локальную кэш-память, имеетсяобщая разделяемая основная память, все вычислительные модули (ВМ)подсоединены к основной памяти посредством шины.