Организация ЭВМ и систем / 551-668
.pdf
Вычислительныесистемысуправлением вычислениями отпотокаданных 6 3 1
положенные между основными ступенями конвейера. Применяемое здесь разделение ресурсов можно условно назватьстатическим: каждая буферная память (очедедь) разбивается пополам, и за каждым логическим процессором закрепляется своя половина очереди.
Применительно к другому виду очередей — очередям диспетчеризации команд (их в процессоре три) — можно говорить о динамическом разделении. Вместо того чтобы из предусмотренных в каждой очереди двенадцати входов фиксировано назначить входы 0-5 логическому процессору (ЛП) 0, а входы 6-11 — логическому процессору 1, каждому ЛП разрешается использовать любые входы очереди, лишь бы их общее число не превысило шести.
С позиций логического процессора и потока между статическим и динамическим разделением нет никакой разницы — в обоих случаях каждому ЛП выделяется своя половина ресурса. Различие становится существенным, если в качестве отправнойточки взятьфизический процессор. Отсутствиепривязкипотоков к конкретным входам очереди позволяет не принимать во внимание, что имеются два потока, и расценивать обе половины как единую очередь. Очередь диспетчеризации команд просто просматривает каждую команду в общей очереди, оценивает зависимости между командами, проверяет доступность ресурсов, необходимых для выполнения команды, и планирует команду к исполнению. Таким образом, выдача команд на исполнение не зависит от того, какому потоку они принадлежат. Динамическое разделение очередей диспетчеризации команд предотвращает монополизацию очередей каким-либо одним из логических процессоров.
Завершая обсуждение разделяемых ресурсов, отметим, что если процессор Хеоп обрабатывает только один поток, то для обеспечения максимальной производительности этому потоку предоставляются все ресурсы процессора. В динамически разделяемых очередях снимаются ограничения на количество входов, доступных одному потоку, а в статических разделяемых очередях отменяется их разбиение на две половины.
Совместно используемые ресурсы. Этот вид ресурсов в гиперпотоковой технологии считается определяющим. Чем больше ресурсов могут совместно использовать логические процессоры, тем большую вычислительную мощность можно «снять» с единицы площади кристалла процессора. Первую группу общих ресурсов образуют функциональные (исполнительные) блоки: целочисленные операционные устройства, блоки операций с плавающей запятой и блоки обращения (чтения/записи) к памяти. Эти ресурсы "не знают", из какого ЛП поступила команда. То же самое можно сказать и о регистровом файле — втором виде совместно используемых ресурсов.
Сила гиперпотоковой технологии — общие ресурсы — одновременно является и ее слабостью. Проблема возникает, когда один поток монополизирует ключевой ресурс (такой, например, как блок операций с плавающейзапятой), чем блокирует другой поток, вызывая его остановку. Задача предотвращения таких ситуаций возлагается на компилятор и операционную систему, которые должны образовать потоки,состоящиеиз командсмаксимальноразличающимисятребованиями к совместно используемым ресурсам. Так, один поток может содержать команды, нуждающиеся главным образом в блоке для операций с плавающей запятой, а дру-
6 3 2 Глава 15. Потоковые и редукционные вычислительные системы
гой — состоять преимущественно из команд целочисленной арифметики и обращения к памяти,
В заключение необходимо остановиться на третьем видеобщих ресурсов — кэшпамяти. Процессор Хеоп предполагает работу с кэш-памятью трех уровней (LI, L2 и L3) и так называемой кэш-памятью трассировки. Оба логических процессора совместно используют одну и ту же кэш-память и хранящиеся в ней данные. Если поток, обрабатываемый логическим процессором 0, хочет прочитать некоторые данные, кэшированные логическим процессором 1, он может взять их из общего кэша. Из-за того, что в гиперпотоковом процессоре одну и ту же кэш-память используют сразу два логических процессора, вероятность конфликтов и, следовательно, вероятность снижения производительности возрастает.
Любой вид кэш-памяти одинаково трактует все обращения для чтения или записи, вне зависимости от того, какой из логических процессоров данное обращение производит. Это позволяет любому потоку монополизировать любой из кэшей, причем никакой защитой от монополизации, как это имеет место в случае очередейдиспетчеризации команд, процессорнеобладает. Иными словами, физический процессор не в состоянии заставить логические процессоры сотрудничать при их обращении к кэшам.
В целом, среди совместно используемых ресурсов в технологии hyperthreading кэш-память оказывается наиболее критичным местом, и конфликты за обладание этим ресурсом сказываются на общей производительности процессора наиболее ощутимо.
По оценке Intel, прирост скорости вычислений в некоторых случаях может достигать 25-35%. В приложениях, ориентированных на многозадачность, программы ускоряются на 15-20%. Возможны, однако, ситуации, когда прирост в быстродействии может быть незаметен и даже быть отрицательным. Таким образом, эффективность технологии находится в прямой зависимости от характера реализуемого программного приложения. Максимальная отдачадостигается при работе серверных приложений за счет разнообразия процессорных операций.
В настоящий момент аппаратная поддержка технологии заложена в микропроцессоры Pentium 4, причем,по информации Intel, в процессоре Pentium 4 Хеопэто потребовало 5% дополнительной площади на кристалле. Программная поддержка технологии предусмотрена в операционных системах Windows 2000, Windows XP и Windows .NET Server (в предшествующих ОС Windows такая возможность отсутствует).
Вычислительные системы с управлением вычислениями по запросу
В системах с управлением от потока данных каждая команда, для которой имеются все необходимые операнды, немедленно выполняется. Однако для получения окончательного результата многие из этих вычислений оказываются ненужными. Отсюда прагматичным представляется иной подход, когда вычисления инициируются не по готовности данных, а на основе запроса на данные. Такая организациявычислительногопроцессаноситназваниеуправлениявычислениямипозапросу
Вычислительныесистемы с управлением вычислениями позапросу 6 3 3
(demand-driven control). В ее основе, как и в потоковой модели (data-driven control), лежит представление вычислительного процесса в виде графа. В потоковой модели узлы вверху графа запускаются раньше, чем нижние. Это — нисходящая обработка. Механизм управления по запросу состоит в обработке вершин потокового графа снизу вверх путем разрешения запуска узла, лишь когда требуется его результат. Данный процесс получил названиередукции графа, а ВС, оперирующая в режиме снизу вверх (см, рис. 15.1, г), называется редукционной вычислительной системой.
Математическую основу редукционных ВС составляют лямбда-исчисления [2, 57,202], адля написания программ под такие системы нужны так называемые функциональные языки программирования (FP, Haskell и др.). На функциональном языке все программы представляются в виде выражений, а процесс выполнения программы заключается в определении значений последних (это называется оценкой выражения). Оценка выражения производится посредством повторения операции выбора и упрощения тех частей выражения, которые можно свести от сложного к простому (такая часть выражения называется редексом, причем сам редекс также является отдельным выражением). Операция упрощения называетсяредукцией. Процесс редукции завершается, когда преобразованное редукцией выражение больше не содержит редекса. Выражение, не содержащее редекса, называется
нормальнойформой.
В редукционной ВС вычисления производятся по запросу на результат операции. Предположим, что вычисляется выражение а = (b +1) х с — .В случае потоковых моделей процесс начинается с самых внутренних операций, а именно с параллельного вычисления (b + 1) и d/c. Затем выполняется операция умножения (b + 1) х с и, наконец, самая внешняя операция — вычитание. Такой род вычислений частоназываютэнергичнымивычислениями (eagerevaluation).
При вычислениях, управляемых запросами, все начинается с запроса на результат а, который включает в себя запрос на вычисление выражений (b + 1) х с и d/c, а те, в свою очередь, формируют запрос на вычисление b + 1, то есть на операцию самого внутреннего уровня. Результат возвращается в порядке, обратном поступлению запросов. Отсюда название ленивые вычисления (lazy evaluation), поскольку операции выполняются только тогда, когда их результат требуется другой команде. Редукционные вычисления, естественно, согласуются сконцепциейфункционального программирования, упрощающей распараллеливание программ.
На рис. 15.16 показан процесс вычисления с помощью редукционной ВС зна-
чентвырзжешяа=b - с(b =d + е,с=fxg) для d= 1,е = 3,f=5,g=7.Программа
редукции состоит из распознавания редексов с последующей заменой их вычисленными значениями. Таким образом, вся программа в конечном итоге редуцируется до результата.
Известны два типа моделей редукционных систем: строчная и графовая, отличающиеся тем, что именно передается в функцию — скопированные значения данных или же только указатели, указывающие на места хранения данных.
В строчной редукционной модели каждый запросивший узел получает отдельную копию выражения для собственной оценки. Длинное строковое выражение
6 3 4 Глава 15. Потоковые и редукционные вычислительные системы
Рис. 15.16. Пример вычисления выражения на редукционной вычислительной системе: а — исходное положение; б — после первого шага редукции
рекурсивным образом сокращается (редуцируется) до единственного значения. Каждый шаг редукции содержит оператор, сопровождаемый ссылкой на требуемые входные операнды. Оператор приостанавливается, пока оцениваются входные параметры.
Нарис. 15.17показан процессвычисленийс помощьюстрочной редукции. Если требуется значение a=(b + с) х (b - с) (рис. 15.17, я), то копируется граф программы, определяющий вычисление а (рис. 15.17,6). При этом запускается операция умножения. Поскольку это вычисление невозможно без предварительного расчета двух параметров, то запускаются вычисления «+» и «-», в результате чего образуется редуцированный граф (с ветвями «6» и «2»), показанный на рис, 15.17, в. Результат получается путем дальнейшей редукции (рис. 15.17, г),
Вграфовойредукционноймоделивыражениепредставленокакориентированный граф. Граф сокращается по результатам оценки ветвей и подграфов. В зависимости от запросов возможно параллельное оценивание и редукция различных частей графа или подграфов. Запросившему узлу, который управляет всеми ссылками на граф, возвращается указатель на результат редукции. «Обход» графа и изменение ссылок продолжаются, пока не будет получено значение результата, копия которого возвращается запросившей команде.
Рисунок 15.18 иллюстрирует пример вычислений с помощью графовой редукции. В этой модели, когда требуется найти значение а, определение вычисления а не копируется, а передается указатель определяющей программы. При достиже-
Контрольные вопросы 6 3 5
Рис.15.17.Процессвычисленийвмоделисострочнойредукцией:в—исходныйграф; б,в—последовательноредуцированныеграфы;г—результатредукции
Рис.15.18.Процессвычисленийвмоделисграфовойредукцией:а—исходныйграф; б,в,г—последовательнаяредукциясосменойнаправленияуказателей; Л—результатредукции
нии узла «Ч» направление переданного указателя меняется на противоположное, чтобы запомнить место, из которого будет выдаваться результат вычисления (рисунок 15.18, б). Далее путем повторения операции смены направления указателя (текущего указателя) на обратное получается граф, показанный на рис. 15.18, в. Теперь операции *+* и «-» можно выполнять, граф редуцируется сначала до изображенного на рис. 15.18, г, а затем — на рис. 15.18,5.
Контрольныевопросы
1. Перечислите и охарактеризуйте возможные механизмы управления вычислительным процессом.
2.В чем состоит идея управления от потока данных?
3.Какие элементарные операторы могут быть взяты в качестве вершин потокового графа?
4.Каким образом осуществляется передача данных между узлами потокового графа?
6 3 6 Глава 15. Потоковые и редукционные вычислительныесистемы
5.В чем состоит принципиальное различие между статической и динамической потоковой архитектурами?
6.Выполнение какого условия, кроме наличия входных данных, требуется для активации операции в статической потоковой ВС?
7.Опишите структуру пакетов действий и пакетов результата в статической потоковой ВС и поясните назначение полей этих пакетов.
8.Какой смысл вкладывается в понятие "окрашенный токен"?
9.Сохраняется ли в потоковых ВС принцип локальности по обращению, свойственный вычислительным системам фон-неймановского типа?
10.Определите понятие thread применительно к макропотоковой обработке.
11.В чем заключаются преимущества макропотоковой обработки над обычной потоковой?
12.Каким образом и при каких условиях гиперпотоковая обработка способствует повышению производительности процессора?
13.Почему вычислительные системы с управлением по запросу называют редукционными?
14.Какой математический аппарат лежит в основе редукционных ВС? Поясните основные положения этого аппарата.
15.Поясните различия между строковой и графовой моделями редукции.
Заключение
Любую работу трудно начинать и еще труднее заканчивать, но приходится...
Наши поздравления уважаемому читателю — надеемся, что вы оказались на этой странице не в силу природного любопытства и нетерпеливости, а в результате изучения всего материала учебника.
Теперь вы вооружены и опасны ©. Вооружены базовыми знаниями в данной предметной области, а опасны для дилетантов и «незнаек», то есть людей несведущих. И, конечно, вы открыты новым знаниям, тому, что у нас впереди. Это очень важно, ведь темпы развития в этой области знаний предельно высоки. Специалист по вычислительным машинам и системам должен быть готов к обучению на протяжении всей профессиональной жизни: поезд новых компьютерных решений движется чрезвычайно стремительно, только успевай впрыгивать на его подножку!
Мы намеренно не употребляли слово -«электронные» применительно к вычислительным машинам. Перефразируя известное высказывание, электроника — колыбель вычислительных машин, но нельзя же вечно жить в колыбели! Двадцать первый век принесет массу сюрпризов в области элементной базы ВМ и ВС, а вместе с ее изменениями переменится архитектура и организация вычислительных средств. Вот краткий список тех новаций, которые уже стучатся в дверь: голографическая, твердотельная и протонная память; схемы на базе молекулярных ключей; оптические, квантовые и нанокомпьютеры; электронная цифровая бумага; пластмассовые дисплеи; нейроинформатика, биоинформатика... И это еще далеко не все. Словом, дорога в компьютерный космос открыта, а информационная революция только начинается... Будьте готовы к переменам, и все у вас получится :).
Впереди длинный и интересный путь познаний. Удачи вам, уважаемый читатель, на этом пути!
Список литературы
1.Авен О. И, Гурин Н. Н„ Коган А. Я, Оценка качества и оптимизации вычислительных систем. М.: Наука, 1982.464 с.
2.Амамия М., Танака Ю. Архитектура ЭВМ и искусственный интеллект. М.: Мир, 1993.400 с.
3.Баранов С. И., Баркалов А. А. Микропрограммирование: принципы, методы, применения. Зарубежная радиоэлектроника, 1984, № 5. С. 3-29.
4.Воеводин В. В., Воеводин Вл. В. Параллельные вычисления. СПб.: БХВ-Петер- бург, 2002. 608 с.
5.Воеводин Вл. В., Капитонова А. П. Методы описания и классификации вычислительных систем. М.: Изд. МГУ, 1994.103 с,
6.Волков Д. Как оценить рабочую станцию. Открытые системы, 1994, №2. С. 44-48.
7.Волков А. А. Тесты ТРС. СУБД, 1995, № 2. С. 70-78.
8.Дубова Н. Суперкомпьютеры nCube. Открытые системы, 1995, № 2. С. 42-47.
9.ЗлотникЕ. М. Секционированные микропроцессоры. Минск: Наука и техника, 1984.191 с.
10.Каган Б. М. Электронные вычислительные машины и системы. М.: Энергоатомиздат,1991.592с.
11.Клейнрок Л. Вычислительные системы с очередями. М.: Мир, 1979. 600 с.
12.Колосов В. Г., Мелехин В. Ф. Проектирование узлов и систем автоматики и вычислительной техники. Л.: Энергоатомиздат, 1983.256 с.
13.Котов В.Е.СетиПетри.М.:Наука,1984,160с.
14.КрайзмерЛ.П.,БородаевД.А.,ГутенмахерЛ.И.,КузьминБ.Н.,СмелянскийИ.Л.
Ассоциативные запоминающие устройства. Л.: Энергия, 1967.
15.Кузьминский М. Между строк таблиц Unpack. Computerworld, 1998, № 13.
16.КургаевА. Ф Писарский А. В. Об оценке эффективности системы команд ЭВМ. УСИМ, 1981, № 1. С. 40-44.
Список литературы 6 3 9
17.КургаевА. Ф.,ПолтинА.В.,ПисарскийА.В., Юсифов С. И. О выборебазового набораоператоров// В кн.: Разработкасредств кибернетической техники. Киев: ИК АН УССР, 1982. С. 3-8.
18.ЛаденкоИ. С. Имитационные системы (методология исследований и проектирования). С.О АН СССР. Институт экономики и организации промышленного производства. Новосибирск: Наука. Сибирское отделение, 1981.300 с.
19.Ларионов А. М. Вычислительные комплексы, системы и сети. М.: Энергоатомиздат, 1987.287 с.
20.Линский В. С. О выборе рационального количества адресов цифровой вычислительной машины // В кн.: Вопросы теории математических машин, 1958, вып. 1. С. 181-191.
21.Майоров С. А., Новиков Г И. Структура электронных вычислительных машин. Л.: Машиностроение, 1979.384 с.
22.Новиков Г. И., Павлов В. П. Способ определения оптимального набора микроопераций и логических условий. УСИМ, 1979, № 4. С. 90-95.
23.ОпадчийЮ.Ф.,ГлудкинО.П,ГуровА,И.Аналоговаяицифроваяэлектроника. М.: Горячая линия — Телеком, 2002.768 с.
24.Орлов С. А. Управляющие ЭВМ. М.: Изд-во МО, 1981.241 с.
25.Орлов С. А. Организация и проектирование цифровых управляющих микроЭВМ и микроВС. М.: Изд-во МО, 1985.475 с.
26.Орлов С. А. Основы организации микропроцессорных средств автоматизированных систем. Учебное пособие. М.: Изд-во МО, 1986.207 с.
27.Основы современных компьютерных технологий // Под ред. А. Д. Хомоненко. СПб: КОРОНА принт, 1998.448 с.
28.ПалашиА. В., Иванов В. А., КургаевА. Ф„Денисенко В. П. МиниЭВМ: Принципы построения и проектирования. Киев: Наукова думка, 1975.200 с,
29.Панфилов И. В., Половко А. М, Вычислительные системы. М.: Советское радио, 1990.304 с.
30.Паулин Г. Малый толковый словарь по вычислительной технике // Пер. с нем. М.: Энергия, 1975.
31.ПитерсонДж. Теория сетей Петри и моделирования систем // Пер. с англ. М.: Мир, 1984.264с.
32.Проектирование цифровых систем на комплектах микропрограммируемых БИС // Булгаков С. С, Мещеряков В. М„ Новоселов В. В., Шумилов Л. А. М.: Радио и связь, 1984.240 с.
33.Пятибратов А. П., Гудыно Л. П., Кириченко А. А. Вычислительные системы, сети и телекоммуникации. М.: Финансы и статистика, 1998.400 с.
34.Смелянский Р. Л., Бахмуров А. Г., Гурьев Д. Об одной вероятностной модели программ. Программирование, 1986, № 6.
6 4 0 Список литературы
35.Смелянский Р. Л. Методы анализа и оценки производительности вычислительных систем. М.: МГУ, 1990.
36.Сттолингс У. Структурная организация и архитектура компьютерных систем, 5-е изд. // Пер. с англ. М.: Изд. дом «Вильяме», 2002.896 с.
37.Толковый словарь по вычислительным системам // Пер. с англ. М.: Машиностроение, 1990.568 с.
38.ФеррариД. Оценка производительности вычислительных систем //Пер. с англ. М.:Мир,1981.576с.
39.Харкевич А. А. Борьба с помехами. М.: Госиздат физико-математической литературы, 1963. 276с.
40.Хокни Р., Джессхоуп К. Параллельные ЭВМ: Архитектура, программирование и алгоритмы. М.: Радио и связь. 1986.392 с.
41.Цилъкер Б. Я., Макеев В. Я. Архитектура вычислительных машин. Рига: TSI, 2000.213 с.
42.Цилъкер Б. Я., Пятков В. П. Архитектура вычислительных систем. Рига: TSI, 2001.249 с.
43.Шнитман В. 3. Системы Exemplar SPP1200. Открытые системы, 1995, № 6.
44.Agarwal,A.,Bianchmi, R.,Chatken,D.Johnson,К.L,Kranz>D.,Kubiatowicz.J., Lim,B-H., Mackenzie, K., Yeung, D. «The MIT Alewife Machine: Architecture and Performance», Proceedings of the 22й Annual Internationa] Symposium on Computer Architecture, Jun. 1995, pp. 2-13.
45.Agerwala, Т., Cocke,J. «High Performance Reduced Instruction Set Processors»-, Technical Report RC12434 (#55845), Yorktown, New York: IBM ThomasJ. Watson Research Centerjan. 1987.
46.Almost, G. S,, Gottlieb, A. «Highly Parallel Computing», 2nd Edition, Addison-Wesley, 1994.
47.AltnetherJ. «Error Detecting and Correcting Codes»-, Intel Application Note AP46,1979.
48.Amdahl G. M. «Validity of the Single-Processor Approach to Achieving Large Scale Computing Capabilities», Proceedings AFIPS Conference, Vol. 30 (Atlantic City, New Jersey, Apr. 18-20), AFIPS Press, Reston, Va., 1967, pp. 483-485.
49.Andrews, M. «Principles of Firmware Engineering in Microprogram Control. Silver Spring»-, MD, Computer Science Press, 1980.
50.Andrews, W. «Futurebus+ Spec Completed», Almost Computer Design, Feb. 1, 1990?, pp. 22-28.
51.Archibald,]. A. «The Cache Coherence Problems in Shared-Memory Multi-pro- cessors», Technical Report, University of Washington, Feb. 1987.
