В.А. Фисун - Параллельная обработка данных (2005) (1127758), страница 2
Текст из файла (страница 2)
Таблица, каждая строка которой содержит команду или данное вдвоичной системе счисления.4- АЛУ (Арифметико- Логическое Устройство, ALU – Arithmetic and Logic Unit),устройство, которое выполняет операции над данными: аргументы и результатыоперации считываются и записываются из (в) ОЗУ.- УУ (Устройства Управления), устройство, которое последовательно выбираеткоманды из ОЗУ, дешифрирует их и организует выполнение заданныхопераций в АЛУ.- <кд........кд.....кд последовательность команд и данных, причем данные какчитаются из ОЗУ, так и туда же записываются.Совокупность АЛУ и УУ принято называть процессором (ЦПУ,CPU), резервируяслово ЭВМ (ПЭ) для полного вычислительного комплекса.
(По словарю А. Синклера"processor" - блок компьютера, выполняющий вычислительные действия). Всовременных микропроцессорах, микросхема процессора размещается на одномкристалле (чипе) , это: УУ + АЛУ + набор регистров + кэш память. В приведеннойсхеме не отражены устройства ввода/вывода информации, массовая память дляпостоянного хранения информации.Все современные микропроцессоры имеют фон Нейманновскую архитектуру. Дляускорения вычислений которых предложено ряд параллельных архитектурвычислительных машин, для классификации которых , можно использовать нотациюМ.
Флинна (М.Flynn).4. Классификация вычислительных машин по ФлиннуДанная классификация иллюстрируется схемами повышения производительностиклассического процессора путем увеличения количества функциональных устройств.Итак, исходная схема: АЛУ + УУ <кд.....кд......кд> ОЗУ.Увеличив число АЛУ, получим схему:АЛУ + УУ <кд.....кд......кд> ОЗУАЛУ<д.....д......д> ОЗУПо такой схеме создавалась система Эллиак 4 (отечественный аналог - ПС-2000),суперскалярные микропроцессоры.Увеличив число УУ , то получим следующую схему:АЛУ + УУ <кд.....кд......кд> ОЗУУУ <к.....к......к> ОЗУНекоторые исследователи отказывают данной схеме право на существование , другие,в качестве примера данной схемы приводят конвейерные АЛУ.
(Например, сложениевещественных чисел можно реализовать последовательностью команд: выровнитьмантиссы, сложить мантиссы, провести нормализацию результата.)Наконец, можно просто умножать исходную схеиу:АЛУ + УУ <кд.....кд......кд> ОЗУАЛУ + УУ <кд.....кд......кд> ОЗУПо такой схеме реализуются все современные суперЭВМКроме функционального различия, схемы отличаются характером нагрузки на ОЗУплотностью потоков команд и данных. По Флинну эта особенность и является главной5чертой и она характеризует архитектуры ЭВМ по структуре используемых потоков(Stream) команд (Instruction) и данных (Data), каждый из которых может бытьодиночным и множественным.
Множественный поток определяется как возможностьодновременной обработки сразу нескольких элементов соответствующего потока.Комбинация признаков дает четыре вида архитектур.- ОКОД одиночный поток команд, одиночный поток данных,- ОКМД одиночный поток команд, множественный поток данных,- МКОД множественный поток команд, одиночный поток данных,- МКМД множественный поток команд, множественный поток данных.Одозначив поток команд как „-„,‟+‟ , а поток данных „a,b‟ , „c,d‟ эту классификациюизобразить:+ -> ОКОД -> a+bа,b ->+ ->-> a+ba,b -> ОКМД -> c+dc,d ->+ ->-> a+b- -> МКОД -> a-ba,b ->+ ->-> a+b- -> МКМД -> c-da,b ->c,d ->5.
Общие принципы потоковой обработкиПотоковая архитектура (data-flow) вычислительных систем обеспечиваетинтерпретацию алгоритмов на графах, управляемых данными. Идеи потоковойобработки информации, организации вычислений, управляемых потоками данныхможно рассмотреть на примере организации ввода и суммирования трех чисел.Традиционная схема вычислений может быть представлена так: ввод (а); ввод (в);ввод (с); s = a+b; s = s+c;Если ввод данных может быть производиться асинхронно, то организоватьпараллельное программирования данного алгоритма не просто.
Параллельныйалгоритм может быть записан в виде потока данных на графе:ввод (а)ввод (в)ввод (с)а+ва+св+с(в+с)+а(а+с)+в(а+в)+сЗдесь, начальные вершины - ввод, затем каждое введенное данное размножается натри и они передаются на вершины, обеспечивающие суммирование. Теперь, любомпорядке поступления данных отсутствуют задержки вычислений для получениярезультата. Data-flow программы записываются в терминах графов.
В вершинах графанаходятся команды, состоящие, например, из оператора, двух операндов (длядвуместных операций), возможно, литеральных, или шаблонов для заранеенеизвестных данных и ссылки, определяющей команду - наследника и позицию6аргумента в ней для результата. Для фрагмента программы, вычисляющего оператор:a=(b+1)*(b-c), команды могут иметь вид:L1:(+(<b>) “1” L3/1)L2:(-(<b>) (<c>) L3/2)L3:(*( ) ( ) <a>)Семантика выполнения команд следующая: операция команды Li выполняется,когда поступили все данные для их входных аргументов.
Последний параметр у этихкоманд указывает кому и куда передавать полученные результаты (в примере этоузел, команда L3, а - аргументы 1,2), в терминах графов содержит инструкцию дляобмена данных.5.1. Классическая архитектура потоковой ВС.Основными компонентами потоковой ВС являются:- память команд (ПК),- селекторная (арбитражная) сеть,- множество исполнительных (функциональных) устройств (ФУ),- распределительная сеть._______________|--------------->|ФУ|-----------------||| ______________||||селекторная сетьраспределительная сеть|______________||<---------------|ПК|-----------------||______________|Память команд состоит из "ячеек" активной памяти, каждая из которых можетсодержатьоднукомандувида<метка>:<операция>,<операнд1>,..,<операндК>,<адр_рез1>,..,<адр.
_рез.М>, где адресарезультатов являются адресами ячеек памяти. С каждой командойсвязанподсчитывающий элемент, непрерывно ожидающий прибытие аргументов, которыйпересылает команду на выполнение при наличии полного комплекта аргументов.Активных характер памяти заключается в том, что ячейка, обладающая полнымнабором операндов, переходит в возбужденное состояние и передает в селекторнуюсеть информационный пакет, содержащий необходимую числовую и связующуюинформацию о команде.Селекторная сеть обеспечивает маршрут от каждой командной ячейки квыбранному, в соответствии с кодом операции, исполнительному (функциональному)устройству из множества устройств.
Пакет поступает на одно из исполнительныхустройств, где соответствующая операция выполняется и результат подается враспределительную сеть.7Распределительная сеть обрабатывает результирующий пакет, состоящий изрезультатов вычислений и адресов назначения. В зависимости от содержимого пакета,результат вычислений поступает в соответствующие ячейки памяти команд, создавая,тем самым, условия возможности их активизации.Потоковая архитектура (data-flow), как одна из альтернатив фон-Нейманновской,обладает следующими характерными чертами:- отсутствие памяти как пассивного устройства, хранящего потребляемуюинформацию,- отсутствие счетчика команд (и, следовательно, последовательной обработкикоманд программы, разветвлений по условию и т.д.).Потоковые вычислительные системы позволяют использовать параллелизмвычислительных алгоритмов различных уровней, потенциально достигатьпроизводительность, недоступную традиционным вычислительным системам.Основные проблемы, препятствующие развитию потоковых машин:1.
Не решена проблема создания активной памяти большого объема,допускающей одновременную активизацию большого количества операций.2. Создание широкополосных распределительных и селекторных сетей потоковыхмашин и систем управления коммуникационной сетью является сложной задачей.3. Обработка векторных регулярных структур через механизмы потока данныхменее эффективна, чем традиционные решения.4. Языки программирования для потоковых машин существуют, в основном, ввиде графических языков машинного уровня. Языки типа SISAL, ориентируемые наописания потоковых алгоритмов, достаточно сложны для программистов.6.
Ассоциативная памятьОперативную память (ОП) можно представить в виде двумерной таблицы,строки которой хранят в двоичном коде команды и данные. Обращения засодержимом строки производится заданием номера (адреса) нужной строки. Призаписи, кроме адреса строки указывается регистр, содержимое которого следуетзаписать в эту строку. Запись занимает больше времени, чем чтение. Пусть впамяти из трех строк хранятся номера телефонов.192402194483043336167Для получения номера телефона второго абонента следует обратиться: load(2) и получить в регистре ответа R = 9448304. Такой вид памяти, при которомнеобходимая информация определяется номером строки памяти, называетсяадресной. Другой вид оперативной памяти – ассоциативной можнорассматривать также как двумерную таблицу, но у каждой строки которой естьдополнительное поле, поле ключа. Например:КлючСодержимоеИванов19240218Петров9448304Сидоров 3336167После обращение к ассоциативной памяти с запросом : load (Петров) дляданного примера получим ответ: R = 9448304.
Здесь задание координаты строкипамяти производится не по адресу, а по ключу. Но при состоянии ассоциативнойпамяти:КлючСодержимое119240212944830433336167можно получить номер телефона из второй строки запросом: load (2). Такимобразом на ассоциативной памяти можно моделировать работу адресной.Ассоциативная память имеет очевидное преимущества перед адресной, однако,у нее есть большой недостаток - ее аппаратная реализация невозможна дляпамяти большого объема.ВОПРОС !!!! Предложите схему реализации модели ассоциативной памятипри помощи адресной.7.
Адресация памятиАдресация памяти производится с точностью до байта, длина адреса, егоразрядность, определяет пространство памяти, которое может быть доступно("видимо") в программе. Так 32 рр. виртуальный адрес охватывает пространствов 4 Гбайта. Это виртуальное пространство - математическая память программыможет не совпадать с реальным, физическим пространством памяти ЭВМ.Адреса виртуального пространства памяти - виртуальные адреса, а адресафизического пространства - физические адреса.Механизм виртуальной памяти позволяет:- снять ограничения, связанные с объемом памяти, при разработкиалгоритмов;- предоставлять программисту область памяти в виде логическинепрерывного пространства;- способствовать более эффективному управлению физической памятью.Процесс преобразование виртуальных адресов в физические привыполнении программы называется трансляцией адресов, наиболеераспространенный механизм для этого - страничная память.