А.Н. Томилин - Вычислительные системы (2006) (1156252), страница 5
Текст из файла (страница 5)
Полная чушь! Такого не бывает. Этот класс пустой.Однако некоторые относят сюда машины с общей памятью: материал общий, над ним работает одна задача. Но у неё разные ветви, каждая ветвь идёт через своё УУ, это разные программы.МКМД (MIMD) — подразделяют на 2 класса: многопроцессорные вычислительныекомплексы (МВК) и многомашинные вычислительные комплексы (ММВК). МВК — эторазные способы организации многопроцессорных комплексов, а именно SMP (symmetricmultiprocessor), т.е.
с общей памятью, в которой находятся данные, над которыми выполняются программы, выполняющиеся в разных процессорах. MPP (massive parallel processors) —это противоположный вариант — система, состоящая из многих узлов, в каждом из которыхпроцессор и своя память, передача данных между ними идет сообщениями посредствам операционной системы. Т.е. именно из таких создаются комплексы на 1000 процессоров. И впромежутке NUMA (non uniform memory access) — вообще говоря, это идея общей памяти сточки зрения организации программирования. Узел так же как в MPP, процессор и памятьсоединены общей шиной. Процессор может работать со своей памятью и с памятью другогоузла. Ясно, что во втором случае процесс взаимодействия с памятью более долгий.Только что прошла конференция, основным организатором которой был Московскийуниверситет в лице Вычислительного центра — «Интернет.
Технологии параллельного программирования». Лидером во всех вопросах является Вычислительный центр МГУ. Надосказать, что все ведущие фирмы учитывают эти моменты и как спонсоры они выступаютздесь: IBM, Hewlett-Packard, Microsoft. Вещи очень актуальные, совершенно естественные.Скажу вам прямо — я крайне недоволен докладами в области образования.Дело в том, что в министерствах образования и науки, электронной связи и информатизации, в этих министерствах очень сильна чиновная прослойка, которая заботится только осебе.
Это чистое растаскивание государственных средств. Им выгодно объявлять всяческиеконкурсы, программы с очень расплывчатыми названиями, расплывчатыми позициями в содержании, потому что под это дело склонные до халявы люди с удовольствием подбираются.А чиновники потакают этому делу, и подбираются люди, которые занимаются якобы научной деятельностью и выдают якобы результаты этой деятельности.
К сожалению, наконференции, не только на эту, это начинает проникать.На прошлой моей конференции меня развели с этими людьми: дали мне заведоватьдругой секцией. На другой лекции были доклады, но нашлись другие, которые разумно покритиковали эти доклады. Но что толку критиковать? Это же просто пролезающая в нашусреду порча! И против этой порчи надо решительно выступать.Параллелизм работы основных устройств машиныМы с вами рассмотрим первый уровень параллелизма — это параллелизм работы основных устройств машины, который был достигнут в мире к концу 50-х годов. Вначале рассмотрим схему выполнения обработки информации, которая была в первых машинах.12ОП(2)операндыАЛУзись рез-тапУУдапераносеадрадрес командыаанды (1)комВУОП — оперативная память, УУ — устройство управления, АЛУ — арифметикологическое устройство. Попадая на УУ, операция вызывает из памяти тот операнд, которыйнеобходим.
Первое действие — это выборка команды. Чтобы команду выбирать, подаётсяадрес команды. Второе действие — подача результирующей информации. После того, каккоманда дешифрировалась на УУ, выполняется операция на АЛУ. В зависимости от системыкоманд, результат может либо сохраняться в регистре, либо записывается в ОП.Итак, цикл: считывание команды — в это время задействована ОП, не работает УУ иАЛУ; когда считана команда, работает УУ, происходит дешифрация, передаёт адреса одногоили нескольких операндов ОП, и эти операнды передаются АЛУ; потом работает АЛУ, а этипростаивают; ну и потом происходит запись результата (не обязательно в каждой команде).Очень интересно, как подключались раньше внешние устройства (ВУ) — магнитныеленты, магнитные барабаны, магнитные диски, печать и т.д.
— подключались к АЛУ. Почему так? Потому, что вместо того, чтобы делать дополнительный тракт (усложнять машину),уже есть тракт передачи, и когда команда обмена данными между ОП и ВУ попадала в АЛУ,она там застревала до тех пор, пока весь массив данных не будет записан или помещён в ОП.Если вам нужно тысячу чисел передать в ОП, то операция здесь и стоит, пока это всё неокончится. Это всё потому, что машины были большие.Ясно, что нужно обеспечить параллелизм работы этих устройств, сделать так, чтобыони не простаивали. Главное, конечно, это работа АЛУ, где выполняются операции. Вот если АЛУ работает 100% — это значит, что структурная схема машины идеальна. По целомуряду причин это не получается, и мы с вами эти вещи увидим.Итак, нужно как-то организовать работу этих устройств, чтобы они работали параллельно. Ну и чтобы операции передачи данных на ВУ или приём данных с ВУ тоже выполнялись независимо от работы центральной части машины.
Таким образом, память могла работать параллельно на выдачу команд, на выдачу операндов, на приём результатов и на работу с ВУ.Машины были разные. Были машины одноадресные (решение вопроса организациипараллелизма работы основных устройств на примере БЭСМ-6 (см. Рис. 1 на стр. 19) — этамашина была одноадресная). Были машины двухадресные, трёхадресные, четырёхадресные,ну и машины, так называемые, безадресные (когда у вас все данные находятся в определённом массиве — стеке — и вы работаете только со стеком, у вас программа идёт лишь что-тозаписать в стек, снять со стека — работа со стеком).
Производительность работы машины вусловиях вычислительного центра, где решаются самые разные задачи, осталась всё-таки независимой. В каком плане? Можно себе представить такое вычислительное ядро, котороетребует только одноадресные операции. Для разных операций более эффективно использование какой-то определённой адресности. Поскольку и те, и другие сущности встречаются ввычислениях — это всё равно, какую систему использовать. Просто какая-то машина с какой-то адресностью будет более эффективна на отдельных участках вычислений, менее надругих. Поставите другую машину — будет наоборот.
Конечно, какая-то есть задача, в которой сущность вычислений требует наиболее эффективной одно- или двухадресной системы,но это уже будет неспециализированная машина. Зависимость от того, какого класса машина:для широкого класса задач, универсальная или специализированная машина.13В своё время, в системе противоракетной обороны была использована машина М-40 ссистемой команд работы с данными с фиксированной запятой. Безусловно, быстрее, чем сплавающей запятой, от природы. Но алгоритм развился, приходилось работать с даннымиразного масштаба, и необходимость масштабирования (загнать в определённый интервал отнуля до единицы) привела к тому, что вычисления всё дольше и дольше выполнялись.
Тогдабыла сделана машина М-50 с плавающей запятой для тех же целей противоракетной обороны. Тогда появился интересный лозунг: «Какая лучшая специализированная машина? Конечно, универсальная!»Итак, как сделать? Сразу напрашивается решение. Нужно сделать память так, чтобможно было параллельно читать, параллельно записывать по нескольким запросам по разным направлениям. А как это можно сделать? Разбить память на несколько работающихблоков.
Как сделать так, чтобы быстро шли одна команда за другой? В машине БЭСМ-6 адресация шла по словам (есть машины, где адресуются байты) — 48-разрядным словам. Мыподаём адрес на соответствующий блок, и после какого-то времени работы блока команданачала выбираться на УУ. Тут же мы можем, чтобы следующую команду подать как можнобыстрее вслед за первой, мы прибавляем единичку к счётчику адреса слова, ответ долженпойти в память. Куда? В этот же блок? Нет. Потому, что блок памяти (какой угодно памяти,которая была в 60-х годах или сейчас) всё равно имеет какое-то время цикла своей работы.Раньше, чем этот цикл не закончится, следующее обращение к нему подать нельзя. Сталобыть, следующая команда должна быть в следующем блоке.
И тогда со скоростью прибавления единички мы будем запускать один за другим блоки и, естественно, через какое-то времяс такой же разницей во времени будут идти команды на обработку в дальнейших устройствах. Поэтому в БЭСМ-6 было 8 блоков (нумерация с 0 до 7). Сразу привыкнем, что все адреса в восьмеричной системе счисления. Конечно, чем больше степень параллелизма (или интерливинга — расслоение памяти), то, вообще говоря, в процессе работы обращения по разным направлениям за взятием операндов, запись результатов, команд, внешними обменами,они довольно заметно будут использовать (я не говорю 100%) эту возможность параллелизма просто из-за равномерности.
Эта идея реализована во всех машинах начиная с 70-х годови по сегодняшний день. Конечно, в современных машинах эта степень уже не 8 и даже ужене 16, а 32, 64 и т.д. Тогда сколько вы там потребностей обращения в память не имели, они,как правило, будут выполняться параллельно.Вот — это первое вспомогательное решение параллелизма работы блоков памяти вот стаким распределением адресов: каждые следующие по адресу данные находятся в следующем блоке памяти по сравнению с данными с предыдущим адресом.Кстати, память бывает двух типов, оба на букву «а». Сейчас мы с вами рассматриваемнаиболее часто используемый тип — адресная память, где чтобы найти нужное, надо указатьместо в памяти.
А есть, так называемая, ассоциативная память, когда вы находите по некоему признаку. Это означает, что в полном случае нужно осуществить перебор.Теперь, команды будут поступать на УУ. Операции реализует АЛУ. Поскольку операции бывают разной длины по времени выполнения в АЛУ, соответственно, в работе УУ, которое передаёт туда операции, могут быть задержки по причине того, что там выполняетсякакая-то длительная команда. И поток команд из ОП нужно где-то сохранять. Для этих целейбыл организован буфер на 4 слова, назывался он буферные регистры слов (БРС).