NetNado
  Найти на сайте:

Учащимся

Учителям



Развитие и классификация однопроцессорных архитектур компьютеров


Способы организации кэш-памяти.

В функциональном отношении КЭШ-память рассматривается буферное ЗУ, размещённое между основной (оперативной) памятью и процессором.

Основное назначение КЭШ-памяти - кратковременное хранение и выдача активной информации процессору, что сокращает число обращений к основной (оперативной) памяти, скорость работы которой меньше чем КЭШ-памяти. В процессе работы отдельные блоки информации копируются из основной памяти в КЭШ-память, и когда процессор обращается за командой или данными, то сначала проверяется их наличие в КЭШ-памяти. Если необходимая информация находится там, то она быстро извлекается. Такой случай обращения называется КЭШ-попаданием. Если необходимая информация в КЭШ-памяти отсутствует, то она выбирается из основной памяти и одновременно заносится в КЭШ- память. Такой случай называется КЭШ-промахов.

Повышение быстродействия вычислительной системы достигается, когда КЭШ-попадания реализуются намного чаще, чем КЭШ-промахи. Высокий процент КЭШ-попаданий обеспечивается благодаря тому, что в большинстве случаев программы обращаются к ячейкам памяти, расположенным вблизи от ранее использованных.

За единицу информации при обмене принята строка, причём под строкой понимается набор слов, выбираемый из оперативной памяти при одном к ней обращении. Хранимая в оперативной памяти (ОП) информация представляется, таким образом, совокупностью строк с последовательными адресами. В любой момент времени строки в КЭШ-памяти представляют собой копии строк из некоторого их набора в ОП, однако расположены они не обязательно в такой же последовательности, как в ОП.

Типовая структура КЭШ-памяти.

Включает основные блоки, кот обеспеч её взаим-ие с ОП и централ.процессором.



Строки, составленные из информационных слов, и связанных с ними адресные теги хранятся в накопителе, который является основой КЭШ-памяти. Адрес требуемого слова, поступающий от ЦП, вводится в блок обработки адресов (БОА), в котором реализуются принятые в данной КЭШ-памяти принципы использования адресов при организации их сравнения с адресными тегами.

Само сравнение производится в блоке сравнения адресов (БСА), который конструктивно совмещается с накопителем, если КЭШ-память строится по схеме ассоциативной памяти. Назначение БСА состоит в выявлении попадания или промаха при обработке запросов от центрального процессора. Если если имеет место КЭШ-попадание (т.е. искомое слово храниться в КЭШ-памяти, о чём свидетельствует совпадение кодов адреса, поступающего от центрального процессора, и одного из адресов некоторого адресного тега ), то соответствующая строка из КЭШ-памяти переписывается в регистр строк.

С помощью селектора-демультиплексора из неё выделяется искомое слово, которое и направляется в центральный процессор. В случае промаха с помощью блока формирования запросов (БФЗ) осуществляется инициализация выборки из ОП необходимой строки. Адресация ОП при этом производится в соответствии с информацией, поступившей от центрального процессора. Выбираемая из памяти строка вместе со своим адресным тегом помещается в накопитель и регистр строк, а затем искомое слово передается в центральный процессор. Для высвобождения места в КЭШ-памятис одна из строк удаляется. Определение удаляемой строки производится посредством блока замены строк (БЗС), в котором хранится информация , необходимая для реализации принятой стратегии обновления находящихся в накопителе строк.

Способы размещения данных в КЭШ-памяти.

Существует четыре способа размещения данных в КЭШ-памяти:

  • прямое распределение полностью ассоциативное распределение

  • частично ассоциативное распределение распределение секторов.

Для того, чтобы конкретизировать описание, положим, что КЭШ-память может содержать 128 строк 16 слов в строке 8 р. , а основная память может содержать 128*128=16384 строк. Для адресации основной памяти используется 18 бит. Из них старшие 14 показывают адрес строки, а младшие 4 бит - адрес слова внутри этой строки. При одном обращении к памяти выбирается одна строка. 128 строк КЭШ-памяти указываются 7-разрядными адресами.

Если процессор намерен получить информацию из некоторой ячейки основной памяти, а копия содержимого этой ячейки уже имеется в КЭШ-памяти, то вместо оригинала считывается копия, время считывания составляет 50нс. Информация в КЭШ-памяти и основной памяти не изменяется. Если копии нет, то производится обращение к основной памяти с временем считывания 500нс. Полученная информация переписывается в процессор и попутно запоминается в КЭШ-памяти. Чтение информации в отсутствие копии отражено во второй строке таблицы. Информация в основной памяти не изменяется. При записи информации в ячейку памяти и наличии копии этой ячейки в КЭШ-памяти оригинал и копия обновляются.

Таким образом, КЭШ-память ускоряет считывание команд и данных, которые "недавно" считывались или корректировались, а в остальных случаях выигрыша нет.

При исп-нии КЭШ-памяти от 80 до 95% операций чтения выполняются быстро (за 506, а не 500нс). Для записи в КЭШ-память сущ неск методов замещения старой инф. Эти методы называются стратегией обновления основной памяти. Если результат обновления строк КЭШ-памяти не возвращается в основную память, то содержимое основной памяти становится неадекватным вычислительному процессу. Чтобы избежать этого, предусмотрены методы обновления основной памяти, которые можно разделить на две большие группы: метод сквозной записи и метод обратной записи.

  1. Принципы организации оперативной памяти.

Оперативная память удовлетворяет запросы кэш-памяти и устройств ввода/вывода. Она является местом назначения для ввода и источником для вывода.

Существуют несколько методов организации оперативной памяти:

1) Метод строк/колонок (Row/column).

ОП представляет собой матрицу разделенную на строки и колонки. При обращении к ОП одна часть адреса определяет строку, а другая - колонку матрицы. Ячейка матрицы, оказавшаяся на пересечении выбранных строк и колонок считывается в память или обновляется ее содержимое.

2) Метод статических колонок (Static-column) .

При данном методе адресации ОП информация, относящаяся к какой-либо программе, размещается в определенной колонке. Последующее обращение к данной программе происходит в ту же самую колонку. За счет статичности части адреса (ее не надо передавать по адресной шине) доступ к данным осуществляется быстрее.

3) Метод чередования адресов (Interleaved).

Впервые стал применяться в 386 моделях АТ компьютерах. Данный метод предполагает считывание (или запись) информации не по одному, а сразу по нескольким адресам: i, i+1, i+2 и т.д. Количество одновременно опрашиваемых адресов, по которым происходит считывание информации, определяет кратность чередования адресов, что соответствует количеству блоков ОП. На практике обычно используется 2-х или 4-х кратное чередование адресов, т.е. ОП делится на 2 или 4 блока. Запись информации в блоки осуществляется независимо друг от друга. Информация по адресу i хранится в первом блоке, по адресу i+1 - во втором блоке и т.д. Считываемая с блоков информация далее переписывается в кэш-память для последующей переработки.

4) Метод страничной организации (Page-mode) .

Память адресуется не по байтам, а по границам страниц. Размер страницы обычно равен 1 или 2 Кбайта. Данный метод предполагает наличие в системе кэш-памяти емкостью не менее 128 Кб куда предварительно считываются требуемые страницы ОП для последующей переработки МП или другим устройством. Обновленная информация периодически из кэш-памяти сбрасывается в ОП. Последние два метода системной организации памяти предполагают обязательное наличие в системе сверх быстродействующей кэш-памяти для опережающего (read-ahaed) чтения в нее информации из ОП с последующей обработкой ее микропроцессором, что снижает время простоя последнего и повышает общую производительность системы. Для идентификации переменных и команд используются символьные имена (метки), виртуальные адреса и физические адреса (рис. 4.8).

Символьные имена присваивает пользователь при написании программы на алгоритмическом языке или ассемблере.http://ddgg.isc.tpu.ru:8900/oes_0941/img/image067.gif


  1. Методы повышения пропускной способности ОП.

Основными методами увеличения полосы пропускания памяти являются: увеличение разрядности или «ширины» памяти, использование расслоения памяти, использование независимых банков памяти, обеспечение режима бесконфликтного обращения к банкам памяти, использование специальных режимов работы динамических микросхем памяти.

Выборка широким словом

Прямой способ сокращения числа обращений к ОП состоит в организации выборки широким словом. Этот способ основывается на свойстве локальности данных и программ. При выборке широким словом за одно обращение к ОП производится одновременная запись или считывание нескольких команд или слов данных из «широкой» ячейки. Широкое слово заносится в буферную память (кэш-память) или регистр, где оно расформировывается на отдельные команды или слова данных, которые могут последовательно использоваться процессором без дополнительных обращений к ОП.

В системах с кэш-памятью первого уровня ширина шин данных ОП часто соответствует ширине шин данных кэш-памяти, которая во многих случаях имеет физическую ширину шин данных, соответствующую количеству разрядов в слове. Удвоение и учетверение ширины шин кэш-памяти и ОП удваивает или учетверяет соответственно полосу пропускания системы памяти.

Реализация выборки широким словом вызывает необходимость мультиплексирования данных между кэш-памятью и процессором, поскольку основной единицей обработки данных в процессоре все еще остается слово. Эти мультиплексоры оказываются на критическом пути поступления информации в процессор. Кэш-память второго уровня несколько смягчает эту проблему, т. к. в этом случае мультиплексоры могут располагаться между двумя уровнями кэш-памяти, т. е. вносимая ими задержка не столь критична. Другая проблема, связанная с увеличением разрядности памяти, заключается в необходимости определения минимального объема (инкремента) памяти для поэтапного её расширения, которое часто выполняется самими пользователями во время эксплуатации системы. Удвоение или учетверение ширины памяти приводит к удвоению или учетверению этого минимального инкремента. Кроме того, имеются проблемы и с организацией коррекции ошибок в системах с широкой памятью.

Примером организации широкой ОП является система Alpha AXP21064, в которой кэш второго уровня, шина памяти и сама ОП имеют разрядность 256 бит.

Расслоение обращений

Другой способ повышения пропускной способности ОП связан с построением памяти, состоящей на физическом уровне из нескольких модулей (банков) с автономными схемами адресации, записи и чтения. При этом на логическом уровне управления памятью организуются последовательные обращения к различным физическим модулям. Обращения к различным модулям могут перекрываться, и таким образом образуется своеобразный конвейер. Эта процедура носит название расслоения памяти. Целью данного метода является увеличение скорости доступа к памяти посредством совмещения фаз обращений ко многим модулям памяти. Известно несколько вариантов организации расслоения. Наиболее часто используется способ расслоения обращений за счет расслоения адресов. Этот способ основывается на свойстве локальности программ и данных, предполагающем, что адрес следующей команды программы на единицу больше адреса предыдущей (линейность программ нарушается только командами перехода). Аналогичная последовательность адресов генерируется процессором при чтении и записи слов данных. Таким образом, типичным случаем распределения адресов обращений к памяти является последовательность вида а, а + 1, а + 2, ... Из этого следует, что расслоение обращений возможно, если ячейки с адресами а, а + 1, а + 2, ... будут размещаться в блоках 0, 1, 2, ... Такое распределение ячеек по модулям (банкам) обеспечивается за счет использования адресов вида



где В – k-разрядный адрес модуля (младшая часть адреса) и
С – n-разрядный адрес ячейки в модуле В (старшая часть адреса).

Принцип расслоения обращений иллюстрируется на рис. 4.18, а. Все программы и данные «размещаются» в адресном пространстве последовательно. Однако ячейки памяти, имеющие смежные адреса, находятся в различных физических модулях памяти. Если ОП состоит из 4-х модулей, то номер модуля кодируется двумя младшими разрядами адреса. При этом полные m-разрядные адреса 0, 4, 8, ... будут относиться к блоку 0, адреса 1, 5, 9, ... – к блоку 1, адреса 2, 6, 10, ... – к блоку 2 и адреса 3, 7, 11, ... – к блоку 3. В результате этого последовательность обращений к адресам 0, 1, 2, 3, 4, 5, ... будет расслоена между модулями 0, 1, 2, 3, 0, 1, ... .

Поскольку каждый физический модуль памяти имеет собственные схемы управления выборкой, можно обращение к следующему модулю производить, не дожидаясь ответа от предыдущего. Так на временной диаграмме (см. рис. 4.18, б) показано, что время доступа к каждому модулю составляет  = 4Т, где Т = ti+1ti – длительность такта. В каждом такте следуют непрерывно обращения к модулям памяти в моменты времени t1, t2, t3, … . При наличии четырех модулей темп выдачи квантов информации из памяти в процессор будет соответствовать одному такту Т, при этом скорость выдачи информации из каждого модуля в четыре раза ниже.

Задержка в выдаче кванта информации относительно момента обращения также составляет 4Т, однако задержка в выдаче каждого последующего кванта относительно момента выдачи предыдущего составит Т.

При реализации расслоения по адресам число модулей памяти может быть произвольным и необязательно кратным степени 2. В некоторых компьютерах допускается произвольное отключение модулей памяти, что позволяет исключать из конфигурации неисправные модули.

В современных высокопроизводительных компьютерах число модулей обычно составляет 4 – 16, но иногда превышает 64.

Так как схема расслоения по адресам базируется на допущении о локальности, она дает эффект в тех случаях, когда это допущение справедливо, т. е. при решении одной задачи.

Для повышения производительности мультипроцессорных систем, работающих в многозадачных режимах, реализуют другие схемы, при которых различные процессоры обращаются к различным модулям памяти. Необходимо помнить, что процессоры ввода-вывода также занимают циклы памяти и вследствие этого могут сильно влиять на производительность системы. Для уменьшения этого влияния обращения центрального процессора и процессоров ввода-вывода можно организовать к разным модулям памяти.

Обобщением идеи расслоения памяти является возможность реализации нескольких независимых обращений, когда несколько контроллеров памяти позволяют модулям памяти (или группам расслоенных модулей памяти) работать независимо. Если система памяти разработана для поддержки множества независимых запросов (как это имеет место при работе с кэш-памятью, при реализации многопроцессорной и векторной обработки), эффективность системы будет в значительной степени зависеть от частоты поступления независимых запросов к разным модулям. Обращения по последовательным адресам, или в более общем случае обращения по адресам, отличающимся на нечетное число, хорошо обрабатываются традиционными схемами расслоения памяти. Проблемы возникают, если разница в адресах последовательных обращений четная. Одно из решений, используемое в больших компьютерах, заключается в том, чтобы статистически уменьшить вероятность подобных обращений путем значительного увеличения количества модулей памяти. Например, в суперкомпьютере NEC SX/3 используются 128 модулей памяти.

Рис. 4.18. Расслоение памяти:

а) организация адресного пространства; б) временная диаграмма работы модулей

Прямое уменьшение числа конфликтов за счет организации чередующихся обращений к различным модулям памяти может быть достигнуто путем размещения программ и данных в разных модулях. Доля команд в программе, требующих ссылок к находящимся в ОП данным, зависит от класса решаемой задачи и от архитектурных особенностей компьютера. Для большинства ЭВМ с традиционной архитектурой и задач научно-технического характера эта доля превышает 50 %. Поскольку обращения к командам и элементам данных чередуются, то разделение памяти на память команд и память данных повышает быстродействие машины подобно рассмотренному выше механизму расслоения. Разделение памяти на память команд и память данных широко используется в системах управления или обработки сигналов. В подобного рода системах в качестве памяти команд нередко используются постоянные запоминающие устройства (ПЗУ), цикл которых меньше цикла устройств, допускающих запись, это делает разделение программ и данных весьма эффективным. Следует отметить, что обращения процессоров ввода-вывода в режиме прямого доступа в память логически реализуются как обращения к памяти данных. Выбор той или иной схемы расслоения для компьютера (системы) определяется целями (достижение высокой производительности при решении множества задач или высокого быстродействия при решении одной задачи), архитектурными и структурными особенностями системы, а также элементной базой (соотношением длительностей циклов памяти и узлов обработки). Могут использоваться комбинированные схемы расслоения

  1. Методы управления памятью

Самым простым способом управления оперативной памятью является разделение её на несколько разделов (сегментов) фиксированной величины (статическое распределение). Это может быть выполнено вручную оператором во время старта системы или во время её генерации. Очередная задача, поступающая на выполнение, помещается либо в общую очередь (см. рис. 4.10, а), либо в очередь к некоторому разделу (см. рис. 4.10, б). Подсистема управления памятью в этом случае выполняет следующие задачи: сравнивает размер программы, поступившей на выполнение, и свободных разделов памяти; выбирает подходящий раздел; осуществляет загрузку программы и настройку адресов.

При очевидном преимуществе, заключающемся в простоте реализации, данный метод имеет существенный недостаток — жесткость. Так как в каждом разделе может выполняться только одна программа, то уровень мультипрограммирования заранее ограничен числом разделов независимо от того, какой размер имеют программы.

Даже если программа имеет небольшой объем, она будет занимать весь раздел, что приводит к неэффективному использованию памяти. С другой стороны, даже если объем оперативной памяти машины позволяет выполнить некоторую программу, разбиение памяти на разделы не позволяет сделать этого.



Рис. 4.10. Распределение памяти фиксированными разделами:

а – с общей очередью; б – с отдельными очередями

В этом случае память машины не делится заранее на разделы. Сначала вся память свободна. Каждой вновь поступающей задаче выделяется необходимая ей память. Если достаточный объем памяти отсутствует, то задача не принимается на выполнение и стоит в очереди. После завершения задачи память освобождается, и на это место может быть загружена другая задача. Таким образом, в произвольный момент времени оперативная память представляет собой случайную последовательность занятых и свободных участков (разделов) произвольного размера. На рис. 4.11 показано состояние памяти в различные моменты времени при использовании динамического распределения. Так в момент t0 в памяти находится только ОС, а к моменту t1 память разделена между 5 задачами, причем задача П4, завершая работу, покидает память к моменту t2. На освободившееся место загружается задача П6, поступившая в момент t3.

Задачами операционной системы при реализации данного метода управления памятью являются: ведение таблиц свободных и занятых областей, в которых указываются начальные адреса и размеры участков памяти; анализ запроса (при поступлении новой задачи), просмотр таблицы свободных областей и выбор раздела, размер которого достаточен для размещения поступившей задачи; загрузка задачи в выделенный ей раздел и корректировка таблиц свободных и занятых областей; корректировка таблиц свободных и занятых областей (после завершения задачи).

Программный код не перемещается во время выполнения, т. е. может быть проведена единовременная настройка адресов посредством использования перемещающего загрузчика.

Выбор раздела для вновь поступившей задачи может осуществляться по разным правилам: «первый попавшийся раздел достаточного размера»; «раздел, имеющий наименьший достаточный размер»; «раздел, имеющий наибольший достаточный размер». Все эти правила имеют свои преимущества и недостатки.



Рис. 4.11. Распределение памяти динамическими разделами

По сравнению с методом распределения памяти фиксированными разделами данный метод обладает гораздо большей гибкостью, но ему присущ очень серьезный недостаток — фрагментация памяти. Фрагментация — это наличие большого числа несмежных участков свободной памяти очень маленького размера (фрагментов). Настолько маленького, что ни одна из вновь поступающих программ не может поместиться ни в одном из участков, хотя суммарный объем фрагментов может составить значительную величину, намного превышающую требуемый объем памяти.

Одним из методов борьбы с фрагментацией является перемещение всех занятых участков в сторону старших либо в сторону младших адресов так, чтобы вся свободная память образовывала единую свободную область (рис. 4.12). В дополнение к функциям, которые выполняет ОС при распределении памяти переменными разделами, в данном случае она должна еще время от времени копировать содержимое разделов из одного места памяти в другое, корректируя таблицы свободных и занятых областей.



Рис. 4.12. Распределение памяти перемещаемыми разделами

Эта процедура называется «сжатием». Сжатие может выполняться либо при каждом завершении задачи, либо только тогда, когда для вновь поступившей задачи нет свободного раздела достаточного размера. В первом случае требуется меньше вычислительной работы при корректировке таблиц, а во втором — реже выполняется процедура сжатия. Так как программы перемещаются по оперативной памяти в ходе своего выполнения, то преобразование адресов из виртуальной формы в физическую должно выполняться динамическим способом.

Хотя процедура сжатия и приводит к более эффективному использованию памяти, она может потребовать значительного времени, что часто перевешивает преимущества данного метода.


  1. Организация виртуальной памяти.

Страничное распределение

Виртуальное адресное пространство каждого процесса делится на части, называемые виртуальными страницами, одинакового, фиксированного (для данной системы) размера. В общем случае размер виртуального адресного пространства не является кратным размеру страницы, поэтому последняя страница каждого процесса дополняется фиктивной областью. Вся оперативная память машины также делится на части такого же размера, называемые физическими страницами (или блоками).

Размер страницы обычно выбирается равным степени двойки: 512, 1024 и т. д., это позволяет упростить механизм преобразования адресов.

При загрузке процесса часть его виртуальных страниц помещается в оперативную память, а остальные — на диск. Смежные виртуальные страницы необязательно располагаются в смежных физических страницах. При загрузке операционная система создает для каждого процесса информационную структуру — таблицу страниц, в которой устанавливается соответствие между номерами виртуальных и физических страниц для страниц, загруженных в оперативную память, или делается отметка о том, что виртуальная страница выгружена на диск (ВЗУ). Кроме того, в таблице страниц содержится управляющая информация, такая как признак модификации страницы, признак невыгружаемости (выгрузка некоторых страниц может быть запрещена), признак обращения к странице (используется для подсчета числа обращений за определенный период времени) и другие данные, формируемые и используемые механизмом виртуальной памяти. При активизации очередного процесса в специальный регистр процессора загружается адрес таблицы страниц данного процесса. При каждом обращении к памяти происходит чтение из таблицы страниц информации о виртуальной странице, к которой произошло обращение. Если данная виртуальная страница находится в оперативной памяти, то выполняется преобразование виртуального адреса в физический. Если же нужная виртуальная страница в данный момент выгружена на диск, то происходит так называемое страничное прерывание. Выполняющийся процесс переводится в состояние ожидания и активизируется другой процесс из очереди готовых. Параллельно программа обработки страничного прерывания находит на диске требуемую виртуальную страницу и пытается загрузить ее в оперативную память. Если в памяти имеется свободная физическая страница, то загрузка выполняется немедленно, если же свободных страниц нет, то решается вопрос, какую страницу следует выгрузить из оперативной памяти.

В данной ситуации может быть использовано много разных критериев выбора, наиболее популярные из них следующие:

  • дольше всего не использовавшаяся страница; первая попавшаяся страница;

  • страница, к которой в последнее время было меньше всего обращений.

В некоторых системах используется понятие рабочего множества страниц. Рабочее множество определяется для каждого процесса и представляет собой перечень наиболее часто используемых страниц, которые должны постоянно находиться в оперативной памяти и поэтому не подлежат выгрузке.

После того как выбрана страница, которая должна покинуть оперативную память, анализируется ее признак модификации (из таблицы страниц). Если выталкиваемая страница с момента загрузки была модифицирована, то ее новая версия должна быть переписана на диск. Если нет, то она может быть просто уничтожена, т. е. соответствующая физическая страница объявляется свободной.

Сегментное распределение

При страничной организации виртуальное адресное пространство процесса делится механически на равные части. Это не позволяет дифференцировать способы доступа к разным частям программы (сегментам), а это свойство часто бывает очень полезным. Например, можно запретить обращаться с операциями записи и чтения в кодовый сегмент программы, а для сегмента данных разрешить только чтение. Кроме того, разбиение программы на «осмысленные» части делает принципиально возможным разделение одного сегмента несколькими процессами. Например, если два процесса используют одну и ту же математическую подпрограмму, то в оперативную память может быть загружена только одна копия этой подпрограммы.

Рассмотрим, каким образом сегментное распределение памяти реализует эти возможности (см. рис. 4.15). Виртуальное адресное пространство процесса делится на сегменты, размер которых определяется программистом с учетом смыслового значения содержащейся в них информации. Отдельный сегмент может представлять собой подпрограмму, массив данных и т. п. Иногда сегментация программы выполняется по умолчанию компилятором.

При загрузке процесса часть сегментов помещается в оперативную память (при этом для каждого из этих сегментов операционная система подыскивает подходящий участок свободной памяти), а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут занимать в оперативной памяти несмежные участки. Во время загрузки система создает таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации, признак обращения к данному сегменту за последний интервал времени и некоторая другая информация. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре.

Система с сегментной организацией функционирует аналогично системе со страничной организацией: время от времени происходят прерывания, связанные с отсутствием нужных сегментов в памяти, при необходимости освобождения памяти некоторые сегменты выгружаются, при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. Кроме того, при обращении к памяти проверяется, разрешен ли доступ требуемого типа к данному сегменту.

  1. Общая характеристика и классификация интерфейсов ЭВМ.

- пропускная способность интерфейса — количество информации, которое может быть передано через интерфейс в единицу времени;

- максимальная частота передачи информационных сигналов через интерфейс;

- информационная ширина интерфейса — число бит или байт данных, передаваемых параллельно через интерфейс;

- максимально допустимое расстояние между соединяемыми устройствами;

- динамические параметры интерфейса — время передачи отдельного слова или блока данных с учетом продолжительности процедур подготовки и завершения передачи;

- общее число проводов (линий) в интерфейсе.

Классификация интерфейсов.

Можно выделить следующие четыре классификационных признака интерфейсов:

  • способ соединения компонентов системы (радиальный, магистральный, смешанный);

  • способ передачи информации (параллельный, последовательный, параллельно-последовательный);

  • принцип обмена информацией (асинхронный, синхронный);

  • режим передачи информации (двусторонняя поочередная передача, односторонняя передача).

На рис. 5.1 представлены радиальный и магистральный интерфейсы, соединяющие центральный модуль (ЦМ) и другие модули (компоненты) системы (М1, . . . , Мn).

Радиальный интерфейс позволяет всем модулям (М1, . . . , Мn) работать независимо, но имеет максимальное количество шин. Магистральный интерфейс (общая шина) использует принцип разделения времени для связи между ЦМ и другими модулями. Он сравнительно прост в реализации, но лимитирует скорость обмена.

Параллельные интерфейсы позволяют передавать одновременно определенное количество бит или байт информации по многопроводной линии. Последовательные интерфейсы служат для последовательной передачи по двухпроводной линии.

В случае синхронного интерфейса моменты выдачи информации передающим устройством и приема ее в другом устройстве должны синхронизироваться, для этого используют специальную линию синхронизации. При асинхронном интерфейсе передача осуществляется по принципу «запрос-ответ». Каждый цикл передачи сопровождается последовательностью управляющих сигналов, которые вырабатываются передающим и приемным устройствами. Передающее устройство может осуществлять передачу данных (байта или нескольких байтов) только после подтверждения приемником своей готовности к приему данных.



Рис. 5.1. Радиальный (a) и магистральный (б) интерфейсы

Классификация интерфейсов по назначению отражает взаимосвязь с архитектурой реальных средств вычислительной техники. В соответствии с этим признаком в ЭВМ и вычислительных системах можно выделить несколько уровней сопряжений:

  • системные интерфейсы;

  • локальные интерфейсы;

  • интерфейсы периферийных устройств (малые интерфейсы);

  • межмашинные интерфейсы.

Cистемные интерфейсы предназначены для организации связей между составными компонентами ЭВМ на уровне обмена информацией с центральным процессором, ОП и контроллерами (адаптерами) ПУ.

Локальные интерфейсы предназначены для увеличения быстродействия видеоадаптеров и контроллеров дисковых накопителей.

Назначение интерфейсов периферийных устройств (малых интерфейсов) состоит в выполнении функций сопряжения контроллера (адаптера) с конкретным механизмом ПУ.

Межмашинные интерфейсы используются в вычислительных системах и сетях.

Необходимость сохранения баланса производительности по мере роста быстродействия микропроцессоров привела к многоуровневой организации шин интерфейсов на основе использования специализированных микросхем (чипсетов). Другое встречающееся название – набор системной логики.

Как правило, чипсет (набор логики) состоит из двух (трех) микросхем, одна из которых, находящаяся на верхнем уровне иерархии шин интерфейсов, называется «северным мостом» (системным контроллером), другая – «южным мостом» (контроллером ввода-вывода). Северный мост управляет передачей данных между процессором, оперативной памятью, графическим контроллером и южным мостом. Южный мост организует связь с контроллерами устройств ввода-вывода.

Как видно из названия, данный метод представляет собой комбинацию страничного и сегментного распределения памяти и, вследствие этого, сочетает в себе достоинства обоих подходов. Виртуальное пространство процесса делится на сегменты, а каждый сегмент в свою очередь делится на виртуальные страницы, которые нумеруются в пределах сегмента. Оперативная память делится на физические страницы. Загрузка процесса выполняется операционной системой постранично, при этом часть страниц размещается в оперативной памяти, а часть на диске. Для каждого сегмента создается своя таблица страниц, структура которой полностью совпадает со структурой таблицы страниц, используемой при страничном распределении.

Для каждого процесса создается таблица сегментов, в которой указываются адреса таблиц страниц для всех сегментов данного процесса. Адрес таблицы сегментов загружается в специальный регистр процессора, когда активизируется соответствующий процесс. На рис. 4.16 показана схема преобразования виртуального адреса в физический для данного метода.

  1. Способы организации передачи данных.

Эффективная скорость обмена между оперативным и внешним уровнями памяти в значительной степени определяется затратами на поиск секторов или блоков в накопителе ВЗУ. Для уменьшения влияния затрат времени поиска информации на скорость обмена используют традиционные методы буферизации и распараллеливания. Метод буферизации заключается в использовании так называемой дисковой кэш-памяти. Дисковый кэш уменьшает среднее время обращения к диску. Это достигается за счет того, что копии данных, находящихся в дисковой памяти, заносятся в полупроводниковую память. Когда необходимые данные оказываются находящимися в кэше, время обращения значительно сокращается. За счет исключения задержек, связанных с позиционированием головок, время обращения может быть уменьшено в 2 – 10 раз. Дисковый кэш может быть реализован программно или аппаратно.

Программный дисковый кэш — это буферная область в ОП, предназначенная для хранения считываемой с диска информации. При поступлении запроса на считывание информации с диска вначале производится поиск запрашиваемой информации в программном кэше.

При наличии в кэше требуемой информации, она передается в процессор. Если она отсутствует, то осуществляется поиск информации на диске. Считанный с диска информационный блок заносится в буферную область ОП (программный дисковый кэш). Программа, управляющая дисковой кэш-памятью, осуществляет также слежение и за работой диска. Весьма хорошую производительность показывают программы Smart Drv, Ncache и Super PC-Kwik. Иногда для программного кэша используется дополнительная или расширенная память компьютера.

Аппаратный дисковый кэш — это встроенный в контроллер диска кэш- буфер с ассоциативным принципом адресации информационных блоков. По запросу на считывание информации вначале производится поиск запрашиваемого блока в кэше. Если блок находится в кэше, то он передается в ОП. В противном случае информационный блок считывается с диска и заносится в кэш для дальнейшего использования. При поступлении запроса на запись информационный блок из ОП заносится вначале в дисковый кэш и лишь затем после выполнения соответствующих операций по поиску сектора — на диск, при этом обычно копия блока в дисковом кэше сохраняется. Запись информационного блока из ОП в кэш производится на место блока, копия которого сохранена на диске. Для управления процессами копирования вводятся специальные указатели, которые определяют, сохранена ли данная копия на диске, к какому информационному блоку обращение производилось ранее других и т. п. Копирование блока на диск производится по завершению операции поиска и не связано непосредственно с моментом поступления запроса.

Второй способ, позволяющий уменьшить снижение эффективной скорости обмена, вызванное операциями поиска на диске, связан с использованием нескольких накопителей на диске. Все информационные блоки распределяются по нескольким накопителям, причем так, чтобы суммарная интенсивность запросов по всем накопителям была одинаковой, а запросы по возможности чередовались. Если известны интенсивности запросов к каждому информационному блоку, то можно ранжировать эти блоки, а если при этом известны и логические связи между блоками, то связанные блоки с примерно одинаковыми интенсивностями запросов должны размещаться в разных накопителях. Это позволяет совместить операции обмена между ОП и одним из накопителей с операциями поиска очередного блока в других накопителях.

  1. Системная организация компьютеров на базе современных чипсетов.

Поскольку основными производителями процессоров для персональных компьютеров – самого массового сегмента рынка – являются фирмы Intel и AMD, то существуют семейства чипсетов под эти процессоры. В последнее время корпорации Intel удалось организовать практически полную монополию разработанных ею чипсетов для собственных процессоров. Бывшим лидерам рынка чипсетов, таким как VIA Technologies, SIS, NVIDIA, пришлось переориентироваться на разработку системной логики для других процессоров, например: AMD, VIA.

После перехода от микроархитектуры Net Burst к архитектуре Intel Core семейство чипсетов от Intel претерпело существенные изменения. Место на новых материнских платах заняла серия под кодовым именем Broadwater, которая в 2006 г. состояла из четырёх моделей: Intel Q965, Q963, G965 и Р965. Эти чипсеты полностью поддерживали процессоры Core 2 Duo и работали на частоте системной шины FSB 1066 МГц. Высокопроизводительный чипсет предыдущего поколения 975Х (кодовое имя Glenwood) также использовался для двухъядерных процессоров
и сменился в конце 2007 г. с выходом чипсета Х38. Еще более ранний чипсет 945GC используется в компьютерах с процессором Intel Atom.

Появившееся позже семейство чипсетов Bearlake (Intel X38, P35, G35, G33, Q35, Q33) пришло на смену предыдущего поколения микросхем и предназначалось для высокопроизводительных систем с процессорами, произведёнными по 45 нм техпроцессу. В них реализована поддержка «старых» 65 нм процессов, а также четырехъядерных микропроцессоров Core 2 Quard. Процессоры Pentium 4, Pentium D, Celeron D не поддерживаются этими чипсетами. В дополнение к поддержке памяти DDR2-800 это семейство логики позволяет работать с более технологичным типом памяти DDR3-1066, 1333, который отличается пониженным энергопотреблением и лучшим быстродействием.

Семейство чипсетов (Intel Х58, Р55, Н55, Н57) предназначено для системной организации компьютеров на базе процессоров с микроархитектурой Nehalem.

Чипсет Intel Х58 имеет вполне привычную архитектуру (рис. 5.3) и состоит из двух мостов, соединённых шиной DMI с пропускной способностью 2 Гб/с. На место северного моста MCH (Memory Controller Hub) пришел новый чип с непривычным, но более логичным названием IOH (Input/Output Hub), ведь южные мосты уже давно называют ICH (Input/Output Controller Hub). В случае с Х58 место южного моста заслуженно занимает ICH10R. Связь с процессором поддерживается за счёт интерфейса QPI с пропускной способностью 25,6 Гб/с. Северный мост IOH целиком отдан под контроллер шины PCI Express 2.0 (36 линий). Трехканальный контроллер памяти удалён из чипсета в процессор и DDR3 (DDR2 не поддерживается), соединяется напрямую с процессорной шиной со скоростью 8,5 Гб/с. Этим во многом объясняется переход от сокета LGA775 к новому LGA1366 (процессоры Intel Core i7 на ядре Bloomfield).

С выходом пятой серии чипсетов произошла «небольшая революция». Появилась возможность создания массивов видеокарт, как того, так и другого производителя, на одной материнской плате (технологии SLI, Cross Fire). Для этого необходима либо дополнительно установленная микросхема nForce 200, либо специальная функция в BIOS материнской платы.

Южный мост ICH10R поддерживает подключение до 6 устройств PCI Express x1, до 12 портов USB 2.0, а также отвечает за взаимодействие с контроллерами накопителей и встроенными аудио- и сетевыми адаптерами.

Intel Extreme Tuning Support

Intel High Definition Audio

12 Hi-Speed USB 2.0 Ports; Dual EHCI; USB Port Disable

BIOS Support

Intel Gigabit LAN Connect

Intel Integrated 10/100/1000 MAC

6 PCI Express x1

PCI Express 2.0 Graphics

Support for Multi-card configurations:

1x16, 2x16, 4x8 or other combination

Intel Turbo Memory vitch User Pinning

Intel Matrix Storage Technology

6 Serial ATA Ports; eSATA; Port Disable

QPI (25,6 Гб/с)

LPC

or SPI

Mб/
seach

DDR3 memory 8,5 Гб/с

DDR3 memory 8,5 Гб/с

DDR3 memory 8,5 Гб/с

DMI

2 Гб/с

up to

36 lanes

3

Гб/с
seach

Mб/
seach

GLCI

LCI

ICH10R

Х58
IOH

Processor

Intel Core i7 Bloomfield

480

500
Рис. 5.3. Схема чипсета Intel Х58
Чипсет Intel Р55 Express связывают с наиболее радикальными изменениями фирменной компьютерной платформы, сделанными с начала 90-х гг. – момента вывода на рынок шины PCI. Новый чипсет, поддерживающий разъем LGA1156, состоит всего из одной микросхемы (рис. 5.4) – южного моста, который связан с процессором посредством шины DMI с пиковой пропускной способностью 2Гб/с. Сокет LGA1156 используется для процессоров Intel Core i7/i5 на ядрах Lynnfield и Clarkdale. Интегрированный в процессор контроллер памяти стал двухканальным, а контроллер PCI Express 2.0 перенесен в процессор, что позволило удешевить чипсет, поскольку дорогостоящий интерфейс QPI для связи процессора и северного моста чипсета более не требуется, как, собственно, и сам северный мост.

Южный мост чипсета поддерживает до 8 слотов PCI Express 2.0 x1 и позволяет использовать одновременно две графические платы, обеспечивает работу 6 портов SATA с поддержкой RAID-массивов (уровней 0, 1, 5, 10) и фирменной технологии Intel Matrix Storage, имеет встроенный аудио-кодак High Definition Audio, до 14 портов USB 2.0 и сетевой контроллер.

PCI Express 2.0 Graphics

1x16 / 2x8
PCI Express 2.0 Graphics

1x16 / 2x8
PCI Express 2.0 Graphics

1x16 / 2x8
PCI Express 2.0 Graphics

1x16 / 2x8
PCI Express 2.0 Graphics

1x16 / 2x8
PCI Express 2.0 Graphics

1x16 / 2x8
PCI Express 2.0 Graphics

1x16 / 2x8
PCI Express 2.0 Graphics

1x16 / 2x8

DDR3 10,6 Гб/с

DDR3 10,6 Гб/с

16 lanes

16 Гб/с

3
Intel Extreme Tuning Support

Intel High Definition Audio

14 HI-Speed USB 2.0 Ports; Dual EHCI; USB Port Disable

Intel ME Firmware and BIOS Support

Intel Gigabit LAN Connect

Intel Integrated
10/100/1000 MAC

8 PCI Express x1

Intel Matrix Storage Technology

6 Serial ATA Ports; eSATA; Port Disable

DMI (2 Гб/с)

SM Bus

SPI

500

Mб/с

PCIe x1

Гб/с

480 Mб/с
Processor

Intel

Core i5/i7

Intel P55
Express
Chipset
Рис. 5.4. Схема чипсета Intel Р55 Express
Чипсеты Intel H55 и H57 Express названы «интегрированными» потому, что графический процессор встроен в центральный процессор аналогично тому, как контроллер памяти (в Bloomfield) и контроллер PCI Express для графики (в Lynnfield) были интегрированы ранее. Эти чипсеты с урезанной функциональностью очень близки между собой, и Н57 из этой пары безусловно старший, а Н55 – младший чипсет в семействе. Однако, если сравнить их возможности с Р55, выяснится, что максимально похож на него именно Н57, имея всего 2 отличия, как раз и обусловленных реализацией видеосистемы.

Отличия Н57 от Р55 оказались минимальны (рис. 5.5). Сохранилась архитектура (одна микросхема без разделения на северный и южный мосты – это как раз южный мост), осталась без изменений вся традиционная «периферийная» функциональность. Первое отличие состоит в реализации у Н57 специализированного интерфейса FDI, по которому процессор пересылает сформированную картинку экрана (будь то десктоп Windows с окнами приложений, полноэкранная демонстрация фильма или 3D-игры), а задача чипсета, предварительно сконфигурировав устройства отображения, обеспечить своевременный вывод этой картинки на (нужный) экран (Intel HD Graphics поддерживает до двух мониторов).

Intel High Definition Audio

14 HI-Speed USB 2.0 Ports; Dual EHCI; USB Port Disable

Intel ME Firmware and BIOS Support

Intel Gigabit LAN Connect

Intel Integrated
10/100/1000 MAC

Digital display: HDMI, DVI, Display Port with HDCP; Lossless digital audio

PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0
PCI Express 2.0

Intel Rapid Storage Technology

6 Serial ATA Ports; eSATA; Port Disable

DDR3 1333 MHz

DDR3 1333 MHz

DMI

SM Bus

SP1

480

Mб/с

PCIe x1

3 Гб/с

8 PCI Express x1

16 lanes

16 Гб/с

Intel FDI

500 Mб/с
Intel H57
Express
Chipset

Intel HD Graphics

Processor

Intel Core i3, i5
Рис. 5.5. Схема чипсета Intel H57 Express
Здесь Intel применяет тот же подход, который сегметировал (разделял) чипсеты прежней архитектуры: топовый чипсет (Intel X58) реализует 2 полноскоростных интерфейса для внешней графики, решение среднего уровня (Intel P55) реализует один, но разбиваемый на два с половинной скоростью, а младшие и интегрированные продукты линейки (Н57, Н55) – один полноскоростной, без возможности задействовать пару видеокарт. Вполне очевидно, что чипсет данной архитектуры никак не может повлиять на поддержку или отсутствие поддержки двух графических интерфейсов. Просто при стартовом конфигурировании системы материнская плата на Н57 или Н55 «не обнаруживает» вариантов организовать работу пары портов PCI Express 2.0, а плате на Р55 в аналогичной ситуации это удаётся сделать. Технологии SLI и Cross Fire, позволяющие объединять вычислительные ресурсы двух видеокарт, доступны в системах на базе Р55, но не в системах на базе Н55/Н57.
Системная организация на базе чипсета AMD

В качестве примера рассмотрим структуру чипсета AMD 890GX (рис. 5.6). Чипсет представляет собой классический набор из двух микросхем. Северный мост 890GX соединяется с процессорным сокетом AM3 через шину Hyper Transport 3.0 (с пропускной способностью 20,6 Гб/с) и с южным мостом SB850 через шину PCI Express x4, которая теперь называется «A-Link Express III» и имеет пропускную способность 2 Гб/с. Северный мост поддерживает шину PCI Express 2.0 x16, которая может быть разбита на две шины (PCI-E x8+x8) для Cross Fire и поддерживает 6 линий PCI-E 2.0 x1 для дополнительных слотов на материнской плате. Интегрированная графика, встроенная в северный мост 890 GX, использует ядро RV620, которое работает на тактовой частоте 700 МГц.


AM3

Socket

AMD

890 GX
PCI Express 2.0

PCI Express 2.0

6x1 PCI

Express 2.0

6 x SATA 6Гб/с

Parallel ATA

Gigabit Ethernet

HD Audio

2x1 PCI-E 2.0

14 x USB 2.0

DDR3 Performance Cache

VGA

DVI, HDMI,

Display Port

Hyper Transport 3.0

20,6 Гб/с
AMD

SB850

DDR3 1333 Mhz

Alink Express III 2 Гб/с

1x16 / 2x8

16 Гб/с
Рис. 5.6. Схема чипсета AMD 890 GX

Южный мост SB 850 включает контроллер накопителей SATA (c обратной совместимостью с IDE) на 6 портов (до 6 Гб/с) с поддержкой режимов RAID для всех SATA-портов, один контроллер PATA и сетевой контроллер (Gigabit Ethernet), 14 портов USB 2.0, стандартный HD-аудиокодек и две линии x1 PCI-E 2.0.



  1. Архитектуры вычислительных систем. Сильносвязанные и слабосвязанные многопроцессорные системы.

В архитектурах многопроцессорных сильносвязанных систем можно отметить две важнейшие характеристики: симметричность (равноправность) всех процессоров системы и распределение всеми процессорами общего поля оперативной памяти.

В таких системах, как правило, число параллельных процессов невелико (не больше 16) и управляет ими централизованная операционная система. Процессы обмениваются информацией через общую оперативную память. При этом возникают задержки из-за межпроцессорных конфликтов. При создании больших мультипроцессорных ЭВМ (мэйнфреймов, суперЭВМ) предпринимаются огромные усилия по увеличению пропускной способности оперативной памяти (перекрестная коммутация, многоблочная и многовходовая оперативная память и т. д.). В результате аппаратные затраты возрастают чуть ли не в квадратичной зависимости, а производительность системы упорно «не желает» увеличиваться пропорционально числу процессоров. Так, сложнейшие средства снижения межпроцессорных конфликтов в оперативной памяти суперкомпьютеров серии CRAY X-MP/Y-MP позволяют получить коэффициент ускорения не более 3,5 для четырехпроцессорной конфигурации системы.

То, что могут себе позволить дорогостоящие и сложные мэйнфреймы и суперкомпьютеры, не годится для компактных многопроцессорных серверов.

Архитектура SMP Для простой и «дешевой» поддержки многопроцессорной организации была предложена архитектура SMP — мультипроцессирование с разделением памяти, предполагающая объединение процессоров на общей шине оперативной памяти. За аппаратную простоту реализации средств SMP приходится расплачиваться процессорным временем ожидания в очереди к шине оперативной памяти. В большинстве случаев пользователи готовы добавить в сервер один или более процессоров (но редко — более четырех) в надежде увеличить производительность системы. Стоимость этой операции ничтожна по сравнению со стоимостью всего сервера, а результат чаще всего оправдывает ожидания пользователя. Пропускную способность памяти в таких системах можно значительно увеличить путем применения больших многоуровневых кэшей. При этом кэши могут содержать как разделяемые, так и частные данные. Частные данные – это данные, которые используются одним процессором, в то время как разделяемые данные используются многими процессорами, по существу обеспечивая обмен между ними. Если кэшируются разделяемые данные, то они реплицируются и могут содержаться в нескольких кэшах. Кроме сокращения задержки доступа и требуемой полосы пропускания, такая репликация данных способствует также общему сокращению количества обменов. Однако кэширование разделяемых данных вызывает новую проблему: когерентность кэш-памяти. Эта проблема возникает из-за того, что значение элемента данных в памяти, используемое двумя разными процессорами, доступно этим процессорам только через их индивидуальные кэши. На рис. 6.2 показан простой пример, иллюстрирующий эту проблему, где А и В – кэшированные копии элементов А и В в основной памяти. Когерентное состояние кэша и основной памяти, когда А = А & В = B, изображено на рис. 6.2, а. Во втором случае (рис. 6.2, б) предполагается использование кэш-памяти с обратной записью, когда ЦП записывает значение 550 в ячейку А. В результате А содержит новое значение, а в основной памяти осталось старое значение 100. При попытке вывода А из памяти будет получено старое значение.

В третьем случае (рис. 6.2, в) подсистема ввода-вывода вводит в ячейку памяти В новое значение 440, а в кэш-памяти осталось старое значение В.

Рис. 6.2. Кэш и память когерентны A = A & B = B (a), кэш и память некогерентны A ≠ A (б), кэш и память некогерентны В ≠ В (в)

Обычно в малых мультипроцессорах (с небольшим количеством процессоров) используется аппаратный механизм, называемый протоколом когерентности кэш-памяти, позволяющий решить эту проблему. Существует два класса таких протоколов:

Протоколы на основе справочника (directory based). Информация о состоянии блока физической памяти содержится только в одном месте, называемом справочником (физически справочник может быть распределен по узлам системы).

Протоколы наблюдения (snooping). Каждый кэш, который содержит копию данных некоторого блока физической памяти, имеет также соответствующую копию служебной информации о его состоянии. Централизованная система записей отсутствует.

Имеются две методики поддержания когерентности кэш-памяти.

Протокол записи с аннулированием (write ivalidate protocol) – при выполнении записи он аннулирует другие кэши. Это наиболее часто используемый протокол как в схемах на основе справочников, так и в схемах наблюдения. Исключительное право доступа, данное процессору, гарантирует, что во время выполнения записи не существует никаких других копий элемента данных, в которые можно писать или из которых можно читать: все другие кэшированные копии элемента данных аннулированы.

Протокол записи с обновлением (write update protocol) – обновление всех копий элемента данных в случае записи в этот элемент данных. Обычно в этом протоколе для снижения требований к полосе пропускания полезно отслеживать, является ли слово в кэш-памяти разделяемым объектом или нет, а именно, содержится ли оно в других кэшах. Если нет, то нет никакой необходимости обновлять другой кэш или транслировать в него обновленные данные. Эти две схемы во многом похожи на схемы работы кэш-памяти со сквозной и обратной записью.

Для выполнения операции обновления или аннулирования процессор захватывает шину и транслирует по ней адрес, по которому должно производиться обновление или аннулирование данных. Все процессоры непрерывно наблюдают за шиной, контролируя появляющиеся на ней адреса. Процессоры проверяют не находится ли в их кэш-памяти адрес, появившийся на шине. Если это так, то соответствующие данные в кэше либо аннулируются, либо обновляются в зависимости от используемого протокола.

Основное преимущество SMP – относительная простота программирования. В ситуации, когда все процессоры имеют одинаково быстрый доступ к общей памяти, вопрос о том, какой из процессоров какие вычисления будет выполнять, не столь принципиален, и значительная часть вычислительных алгоритмов, разработанных для последовательных компьютеров, может быть ускорена с помощью распараллеливающих и векторизирующих трансляторов.

Архитектура SMP стала своего рода стандартом для всех современных многопроцессорных серверов (например, НР9000 и DEC Alpha Server AXP).

Слабосвязанные многопроцессорные системы:


Существует несколько способов построения крупномасштабных систем с распределенной памятью.

1. Многомашинные системы. В таких системах отдельные компьютеры объединяются либо с помощью сетевых средств, либо с помощью общей внешней памяти (обычно – дисковые накопители большой емкости).

2. Системы с массовым параллелизмом МРР (Massively Parallel Processor). Идея построения систем этого класса тривиальна: берутся серийные микропроцессоры, снабжаются каждый своей локальной памятью, соединяются посредством некоторой коммуникационной среды, например сетью.

Системы с массовым параллелизмом могут содержать десятки, сотни и тысячи процессоров, объединенных коммутационными сетями самой различной формы – от простейшей двумерной решетки до гиперкуба. Достоинства такой архитектуры: во-первых, она использует стандартные микропроцессоры; во-вторых, если требуется высокая терафлопсная производительность, то можно добавить в систему необходимое количество процессоров; в-третьих, если ограничены финансы или заранее известна требуемая вычислительная мощность, то легко подобрать оптимальную конфигурацию.

Однако есть и решающий «минус», сводящий многие «плюсы» на нет. Дело в том, что межпроцессорное взаимодействие в компьютерах этого класса идет намного медленнее, чем происходит локальная обработка данных самими процессорами. Именно поэтому написать эффективную программу для таких компьютеров очень сложно, а для некоторых алгоритмов иногда просто невозможно.

3. Кластерные системы. Данное направление, строго говоря, не является самостоятельным, а скорее представляет собой комбинацию из архитектур SMP и МРР. Из нескольких стандартных микропроцессоров и общей для них памяти формируется вычислительный узел (обычно по архитектуре SMP). Для достижения требуемой вычислительной мощности узлы объединяются высокоскоростными каналами.

Эффективность распараллеливания процессов во многих случаях сильно зависит от топологии соединения процессорных узлов. Идеальной является топология, в которой любой узел мог бы напрямую связаться с любым другим узлом. Однако в кластерных системах это технически трудно реализуемо. Обычно процессорные узлы в современных кластерных системах образуют или двумерную решетку или гиперкуб.

Для синхронизации параллельно выполняющихся в узлах процессов необходим обмен сообщениями, которые должны доходить из любого узла системы в любой другой узел. При этом важной характеристикой является максимальное расстояние между узлами. Если сравнивать по этому параметру двумерную решетку и гиперкуб, то при увеличении числа узлов топология гиперкуба является более выгодной.

Время передачи информации от узла к узлу зависит от стартовой задержки и скорости передачи. Прогресс в производительности процессоров гораздо больше, чем в пропускной способности каналов связи. За время передачи процессорные узлы успевают выполнить большое количество команд. Поэтому инфраструктура каналов связи является одной из главных компонент кластерной или МРР-системы.

Благодаря маштабируемости, именно кластерные системы являются сегодня лидерами по достигнутой производительности.

страница 1 ... страница 2страница 3страница 4страница 5


скачать

Другие похожие работы: