- •Преимущества дискретной формы
- •Представление информации в цифровых автоматах. Информация и алфавит. Кодирование.
- •Код Шеннона-Фано
- •Код Хаффмана Кодирование Хаффмана[править | править вики-текст]
- •Кодирование в компьютере чисел со знаком Прямой код
- •Дополнительный код
- •Операция сложения положительного числа и отрицательного числа, представленного в прямом коде
- •Операция сложения положительного числа и отрицательного числа, представленного в дополнительном коде
- •Кодирование вещественных чисел. Нормализованное представление числа
- •Описание[править | править вики-текст]
- •Преимущества и недостатки[править | править вики-текст] Преимущества[править | править вики-текст]
- •Недостатки[править | править вики-текст]
- •1) Классификация моделей по области использования:
- •2) Классификация моделей по фактору времени:
- •Особенности алгоритмов управления ресурсами
- •Особенности аппаратных платформ
- •Особенности областей использования
- •Особенности методов построения
- •Монолитное ядро[править | править вики-текст]
- •Модульное ядро[править | править вики-текст]
- •Микроядро[править | править вики-текст]
- •Экзоядро[править | править вики-текст]
- •Наноядро[править | править вики-текст]
- •Гибридное ядро[править | править вики-текст]
- •Физическая организация памяти компьютера
- •Классификация процессоров:
- •Классификация по назначению
- •Классификация по характеру временной организации работы
- •Классификация по количеству выполняемых программ
- •Конвейеризация - способ обеспечения параллельности выполнения команд
- •O Аппаратное обеспечение компьютера – это группа взаимосвязанных устройств, предназначенных для приема, преобразования и выдачи информации.
- •Ускорение вычислений.
- •Вычислительные системы с программируемой структурой
- •Требования, предъявляемые к инфологической модели
- •Архитектура odmg
- •1.2. Домен
- •1.3. Схема отношения, схема базы данных
- •1.4. Кортеж, отношение
- •7.2.1. Общие определения
- •7.2.2. Замыкание множества функциональных зависимостей. Аксиомы Армстронга. Замыкание множества атрибутов
- •Пересечение
- •Разность
- •Структура памяти эвм
- •По порядку сортировки
- •По источнику данных
- •По воздействию на источник данных
- •По структуре
- •По количественному составу
- •По характеристике содержимого
- •По механизму обновления
- •По покрытию индексируемого содержимого
- •3.3. Виды привилегий
- •Стандарт iso 7498
- •Асинхронная передача.
- •Синхронная передача.
- •Кабельные линии связи
- •Беспроводные (радиоканалы наземной и спутниковой связи) каналы передачи данных
- •Технология скремблирования
- •Селективные методы
- •Методы случайного доступа
- •Методы резервирования времени
- •Технология доступа[править | править вики-текст]
- •Обнаружение коллизий[править | править вики-текст]
- •Формат кадра
- •Разновидности Ethernet
- •Структура Fast Ethernet
- •Подуровень управления логической связью (llc)
- •Новые интерфейсы и модель физического уровня
- •Типы спецификаций 10-гигабитного Ethernet
- •Объединение сетей в интерсеть. Удаленный мост
- •Формат сообщения протокола rip 1
- •Формат сообщения протокола rip 2
- •1.1. Назначение протокола arp. Arp-таблицы. Статические и динамические записи arp-таблиц, arp-кэш
- •3.2. Формат icmp-пакета
Ускорение вычислений.
Для повышения скорости обработки векторов все функциональные блоки векторных процессоров строятся по конвейерной схеме, причем так, чтобы каждая ступень любого из конвейеров справлялась со своей операцией за один такт (число ступеней в разных функциональных блоках может быть различным). С этой целью в некоторых векторных ВС (например, Cray C90) конвейеры во всех функциональных блоках продублированы (рис. 7).
Ассоциативные вычислительные системы
Ассоциативные вычислительные системы (ABC) - системы класса SIMD, в которых процессоры параллельно и однотипно обрабатывают множественные данные. Их основное отличие заключается в том, что обращение к данным производится по отличительным признакам, содержащимся в самих данных или в приданных этим данным дополнительных разрядах.
Как и в матричных системах, в ABC также множество процессорных элементов (ПЭ) параллельно по одной команде однотипно обрабатывают множественные данные. Однако в отличие от матричных систем обращение к данным производится не по адресам, где хранятся эти данные, а по отличительным признакам, содержащимся в самих данных или в приданных этим данным дополнительных разрядах. Такая возможность обеспечивается ассоциативными процессорами (АП), на базе которых строятся ABC.
Систолические вычислительные системы
Систолические вычислительные системы - системы класса SIMD, основным принципом которых является то, что все данные регулярно и ритмически проходящие через массив, используются многократно. Это позволяет значительно повысить эффективность и достичь высокой вычислительной производительности за счет распараллеливания вычислений и сокращения обмена систолической системы с внешними устройствами.
В фон-неймановских машинах данные, считанные из памяти, однократно обрабатываются в процессорном элементе (ПЭ), после чего снова возвращаются в память. Авторы идеи систолической матрицы Кунг и Лейзерсон предложили организовать вычисления так, чтобы данные на своем пути от считывания из памяти до возвращения обратно пропускались через как можно большее число ПЭ. Если проводить аналогию между структурами ВС и живого организма, то памяти можно отвести роль сердца, множеству ПЭ - роль тканей, а поток данных следует рассматривать как циркулирующую кровь. Отсюда и происходит название систолическая матрица (систола - сокращение предсердий и желудочков сердца при котором кровь нагнетается в артерии). Систолические структуры эффективны при выполнении матричных вычислений, обработке сигналов, сортировке данных и т.д. В качестве примера авторами идеи был предложен линейный массив для алгоритма матричного умножения. В основе схемы лежит ритмическое прохождение двух потоков данных навстречу друг другу. Последовательные элементы каждого потока разделены одним тактовым периодом, чтобы любой из них мог пересечься с любым элементом встречного потока. Вычисления выполняются параллельно в процессорных элементах, каждый из которых реализует один шаг в операции вычисления скалярного произведения (IPS, Inner Product Step) и носит название IPS- элемента. Таким образом, систолическая структура - это однородная вычислительная среда из процессорных элементов, совмещающая в себе свойства конвейерной и матричной обработки и обладающая следующими особенностями:
вычислительный процесс в систолических структурах представляет собой непрерывную и регулярную передачу данных от одного ПЭ к другому без запоминания промежуточных результатов вычисления;
каждый элемент входных данных выбирается из памяти однократно и используется столько раз, сколько необходимо по алгоритму, ввод данных осуществляется в крайние ПЭ матрицы;
образующие систолическую структуру ПЭ однотипны и каждый из них может быть менее универсальным, чем процессоры обычных многопроцессорных систем. Тип ПЭ выбирается в соответствии с назначением систолической матрицы и структурой пространственных связей (наиболее распространены процессорные элементы, ориентированные на умножение с накоплением);
потоки данных и управляющих сигналов обладают регулярностью, что позволяет объединять ПЭ локальными связями минимальной длины;
алгоритмы функционирования позволяют совместить параллелизм с конвейерной обработкой данных;
производительность матрицы можно улучшить за счет добавления в нее определенного числа ПЭ, причем коэффициент повышения производительности при этом линеен.
В настоящее время достигнута производительность систолических процессоров порядка 1000 млрд операций/с.
VLIW (Very Long Instruction Word - очень длинная машинная команда) - архитектура процессоров, характеризующаяся возможностью объединения нескольких простых команд в так называемую связку. Входящие в нее команды должны быть независимы друг от друга и выполняться параллельно. Таким образом, из нескольких независимых машинных команд транслятор формирует одно «очень длинное командное слово».
Архитектура с командными словами сверхбольшой длины или со сверхдлинными командами известна с начала 80-х из ряда университетских проектов. Идея VLIW базируется на том, что задача эффективного планирования параллельного выполнения команд возлагается на «разумный» компилятор. Такой компилятор вначале анализирует исходную программу. Цель анализа: обнаружить все команды, которые могут быть выполнены одновременно, причем так, чтобы между командами не возникали конфликты. В ходе анализа компилятор может даже частично имитировать выполнение рассматриваемой программы. На следующем этапе компилятор пытается объединить такие команды в пакеты (связки), каждый из которых рассматривается как одна сверхдлинная команда. Объединение нескольких простых команд в одну сверхдлинную производится по следующим правилам: ▪ количество простых команд, объединяемых в одну команду сверхбольшой длины, равно числу имеющихся в процессоре функциональных (исполнительных) блоков (ФБ); ▪ в сверхдлинную команду входят только такие простые команды, которые исполняются разными ФБ, то есть обеспечивается одновременное исполнение всех составляющих сверхдлинной команды. Длина сверхдлинной команды обычно составляет от 256 до 1024 битов. Такая метакоманда содержит несколько полей (по числу образующих ее простых команд), каждое из которых описывает операцию для конкретного функционального блока. В качестве простых команд, образующих сверхдлинную, обычно используются команды RISC-типа. Максимальное число полей в сверхдлинной команде равно числу вычислительных устройств и обычно колеблется в диапазоне от 3 до 20. Все вычислительные устройства имеют доступ к данным, хранящимся в едином многопортовом регистровом файле. VLIW-архитектуру можно рассматривать как статическую суперскалярную архитектуру. Имеется в виду, что распараллеливание кода производится на этапе компиляции, а не динамически во время исполнения. То, что в выполняемой сверхдлинной команде исключена возможность конфликтов, позволяет предельно упростить аппаратуру VLIW-процессора и, как следствие, добиться более высокого быстродействия. Подавляющее большинство цифровых сигнальных процессоров и мультимедийных процессоров с производительностью более 1 млрд операций/с базируется на VLIW-архитектуре. Двумя проблемами VLIW-архитектуры являются: 1) усложнение регистрового файла и, прежде всего, связей этого файла с вычислительными устройствами; 2) трудности создания компиляторов, способных найти в программе независимые команды, связать такие команды в длинные строки и обеспечить их параллельное выполнение. В России VLIW-концепция была реализована в суперкомпьютере «Эльбрус 3-1» и получила дальнейшее развитие в его последователе - «Эльбрус-2000» (E2k).
Вычислительные системы с явным параллелизмом команд
EPIC (Explicitly Parallel Instruction Computing) - архитектура процессора с явным параллелизмом команд. Термин введен в 1997 году фирмами HP и Intel для разрабатываемой архитектуры Intel Itanium. EPIC позволяет микропроцессору выполнять инструкции параллельно, опираясь на работу компилятора, а не выявляя возможность параллельной работы инструкций при помощи специальных схем. Это могло упростить масштабирование вычислительной мощности процессора без увеличения тактовой частоты.
В архитектуре EPIC, возникшей как совместная разработка фирм Intel и Hewlett-Packard в 1997 году, реализован новый подход, являющийся усовершенствованным вариантом технологии VLIW. Первым представителем данной стратегии стал микропроцессор Itanium компании Intel. Корпорация Hewlett-Packard также реализует данный подход в своих разработках. В архитектуре EPIC, которая в изделиях Intel получила название IA-64 (Intel Architecture - 64), предполагается наличие в процессоре ста двадцати восьми 64-разрядных регистров общего назначения и ста двадцати восьми 80-разрядных регистров с плавающей запятой. Кроме того, процессор IA-64 содержит 64 однобитовых регистра предикатов. Команды упаковываются (группируются) компилятором в сверхдлинную команду - связку (bundle) длиною в 128 разрядов. Логика выдачи команд на исполнение сложнее, чем в традиционных процессорах типа VLIW, но намного проще, чем у суперскалярных процессоров с неупорядоченной выдачей. По мнению специалистов Intel и HP, концепция EPIC, сохраняя все достоинства архитектурной организации VLIW, свободна от большинства ее недостатков. Особенностями архитектуры EPIC являются:
большое количество регистров;
масштабируемость архитектуры до большого количества функциональных блоков. Это свойство представители компаний Intel и HP называют наследственно масштабируемой системой команд (inherently scaleable instruction set);
явный параллелизм в машинном коде. Поиск зависимостей между командами осуществляет не процессор, а компилятор;
предикация - команды из разных ветвей условного предложения снабжаются полями предикатов (полями условий) и запускаются параллельно;
предварительная загрузка - данные из медленной основной памяти загружаются заранее.
Вычислительные системы на базе транспьютеров
Транспьютер - это сверхбольшая интегральная микросхема, заключающая в себе центральный процессор, блок операций с плавающей запятой, статическое оперативное запоминающее устройство, интерфейс с внешней памятью и несколько каналов связи.
Появление транспьютеров связано с идеей создания различных по производительности ВС (от небольших до мощных массивно- параллельных) посредством прямого соединения однотипных процессорных чипов. Сам термин объединяет два понятия - «транзистор» и «компьютер». Одна из важнейших отличительных черт транспьютера - каналы связи (линки), благодаря которым транспьютеры можно объединять, создавая вычислительные системы с различной вычислительной мощностью. Канал связи состоит из двух последовательных линий для двухстороннего обмена. Он позволяет объединить транспьютеры между собой и обеспечить взаимные коммуникации. Одна из последовательных линий используется для пересылки данных, а вторая - подтверждений. Передача информации производится синхронно под воздействием либо общего генератора тактовых импульсов (ГТИ), либо локальных ГТИ с одинаковой частотой следования импульсов. Информация передается в виде пакетов. Каждый раз, когда пересылается пакет данных, приемник отвечает пакетом подтверждения. Пакет данных состоит из двух битов-единиц, за которыми следуют 8-битовые данные и ноль (всего 11 битов). Пакет подтверждения - это простая комбинация 10 (всего два бита), она может быть передана, как только пакет данных будет идентифицирован интерфейсом входного канала. На базе транспьютеров легко могут быть построены различные виды ВС. Так, четыре канала связи обеспечивают построение двухмерного массива, где каждый транспьютер связан с четырьмя ближайшими соседями. Возможны и другие конфигурации, например объединение транспьютеров в группы с последующим соединением групп между собой. Если группа состоит из двух транспьютеров, для подключения ее к другим группам свободными остаются шесть каналов связи. Комплекс из трех транспьютеров также оставляет свободными шесть каналов, а для связи с «квартетом» транспьютеров остаются еще четыре канала связи. Группа из пяти транспьютеров может иметь полный набор взаимосвязей, но за счет потери возможности подключения к другим группам. Наконец, транспьютерную систему можно создать на основе кроссбара. Особенности транспьютеров потребовали разработки для них специального языка программирования Occam. Название языка связано с именем философа-схоласта четырнадцатого века Оккама - автора концепции «бритвы Оккама»: «entia non sunt multiplicanda praeter necessitatem» - «понятия не должны усложняться без необходимости». Язык обеспечивает описание простых операций пересылки данных между двумя точками, а также позволяет явно указать на параллелизм при выполнении программы несколькими транспьютерами. Основным понятием программы на языке Occam является процесс, состоящий из одного или более операторов программы, которые могут быть выполнены последовательно или параллельно. Процессы могут быть распределены по транспьютерам вычислительной системы, при этом оборудование транспьютера поддерживает совместное использование транспьютера одним или несколькими процессами. Транспьютеры успешно использовались в различных областях от встроенных систем до суперЭВМ вплоть до 90-х годов прошлого века. Интересные возможности, связанные с построением вычислительных систем без привлечения дополнительного оборудования, оказали ощутимое влияние на архитектурные идеи матричных, систолических, SMP и МРР вычислительных систем. Однако появление универсальных микропроцессоров, также обладающих возможностью соединения их в систему, привело к прекращению производства транспьютеров и их вытеснению похожими разработками ведущих фирм, которые уже не позиционируются как транспьютеры.
Вычислительные системы с управлением вычислениями от потока данных
Потоковые вычислительные системы - системы, использующие механизм управления вычислениями, при котором команды выполняются, когда становятся доступными их операнды. В потоковых архитектурах для описания вычислений используется ориентированный граф, иногда называемый графом потоков данных (dataflow graph). Этот граф состоит из вершин (узлов), отображающих операции, и ребер или дуг, показывающих потоки данных между теми вершинами графа, которые они соединяют.
Идеология вычислений, управляемых потоком данных (потоковой обработки), была разработана в 60-х годах Карпом и Миллером. В начале 70-х годов Деннис, а позже и другие начали разрабатывать компьютерные архитектуры, основанные на вычислительной модели с управлением от потока данных в противовес программному управлению (Control Flow). Графическую модель управляемых данными вычислений предложил в диссертационной работе сотрудник Стэнфордского университета Дуайн Адамс. Основополагающим понятием потоковых вычислений является принцип готовности к выполнению операции по условию готовности всех необходимых для выполнения этой операции операндов. Операнд считается «готовым», если соответствующим этому операнду ячейкам памяти присвоено значение (вычислено ранее или константо-присвоено). В потоковой архитектуре отсутствует понятие «последовательность инструкций» и нет счетчика команд. Программа в потоковой системе - это не набор команд, а вычислительный граф. Каждый узел графа представляют собой оператор или набор операторов, а ветви отражают зависимости узлов по данным. Очередной узел начинает выполняется как только доступны все его входные данные. В этом состоит один из основных принципов архитектуры: исполнение инструкций по готовности данных. В потоковых машинах данные передаются и хранятся в виде токенов. Токен - это структура, содержащая собственно передаваемое значение и метку - указатель узла назначения. Потоковый граф, определяющий программу вычислений, хранится в памяти системы в виде таблицы. Каждая запись в таблице представляет одну вершину потокового графа. Порядок размещения записей в памяти несущественен, поскольку момент активации вершины определяется лишь наличием данных на всех ее входах. Одним из основных достоинств потоковой архитектуры является ее масштабируемость. Устройства могут объединяться простейшим коммутатором, а для адресации токенов служат их метки. Весь диапазон номеров узлов просто распределяется равномерно между устройствами. Никаких дополнительных мер для синхронизации вычислительного процесса, в отличие от многопроцессорной Control Flow архитектуры, не требуется. Все известные потоковые вычислительные системы могут быть отнесены к двум основным типам: статическим и динамическим. В свою очередь, динамические потоковые ВС обычно реализуются по одной из двух схем: архитектуре с помеченными токенами и архитектуре с явно адресуемыми токенами.
Мультипроцессорные вычислительные системы
В настоящее время тенденция в развитии микропроцессоров и систем, построенных на их основе, направлена на все большее повышение их производительности. Вычислительные возможности любой системы достигают своей наивысшей производительности благодаря двум факторам: использованию высокоскоростных элементов и параллельному выполнению большого числа операций.
Существует несколько вариантов классификации систем параллельной обработки данных. Самой ранней и наиболее известной является классификация архитектур вычислительных систем, предложенная в 1966 году М. Флинном. Классификация базируется на понятии потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. На основе числа потоков команд и потоков данных выделяются четыре класса архитектур:
SISD, MISD, SIMD, MIMD.
SISD (sINgle INsTRuction sTReam / sINgle data sTReam) - одиночный поток команд и одиночный поток данных. К этому классу относятся прежде всего классические последовательные машины, или, иначе, машины фон-неймановского типа. В таких машинах есть только один поток команд, все команды обрабатываются последовательно друг за другом и каждая команда инициирует одну операцию с одним потоком данных. Не имеет значения тот факт, что для увеличения скорости обработки команд и скорости выполнения арифметических операций процессор может использовать конвейерную обработку. В таком понимании машины данного класса фактически не относятся к параллельным системам.
SIMD (sINgle INsTRuction sTReam / multIPle data sTReam) - одиночный поток команд и множественный поток данных. Применительно к одному микропроцессору этот подход реализован в MMX- и SSE- расширениях современных микропроцессоров. Микропроцессорные системы типа SIMD состоят из большого числа идентичных процессорных элементов, имеющих собственную память. Все процессорные элементы в такой машине выполняют одну и ту же программу. Это позволяет выполнять одну арифметическую операцию сразу над многими данными - элементамивектора. Очевидно, что такая система, составленная из большого числа процессоров, может обеспечить существенное повышение производительности только на тех задачах, при решении которых все процессоры могут делать одну и ту же работу.
MISD (multIPe INsTRuction sTReam / sINgle data sTReam) - множественный поток команд и одиночный поток данных. Определение подразумевает наличие в архитектуре многих процессоров, обрабатывающих один и тот же поток данных. Ряд исследователей к данному классу относят конвейерные машины.
MIMD (multIPe INsTRuction sTReam / multIPle data sTReam) - множественный поток команд и множественный поток данных. Базовой моделью вычислений в этом случае является совокупность независимых процессов, эпизодически обращающихся к разделяемым данным. В такой системе каждый процессорный элемент выполняет свою программу достаточно независимо от других процессорных элементов. Архитектура MIMD дает большую гибкость: при наличии адекватной поддержки со стороны аппаратных средств и программного обеспечения MIMD может работать как однопользовательская система, обеспечивая высокопроизводительную обработку данных для одной прикладной задачи, как многопрограммная машина, выполняющая множество задач параллельно, и как некоторая комбинация этих возможностей. К тому же архитектура MIMD может использовать все преимущества современной микропроцессорной технологии на основе строгого учета соотношения стоимость/производительность. В действительности практически все современные многопроцессорные системы строятся на тех же микропроцессорах, которые можно найти в персональных компьютерах, рабочих станциях и небольших однопроцессорных серверах.
Как и любая другая, приведенная выше классификация несовершенна: существуют машины, прямо в нее не попадающие, имеются также важные признаки, которые в этой классификации не учтены. Рассмотрим классификацию многопроцессорных и многомашинных систем на основе другого признака - степени разделения вычислительных ресурсов системы.
В этом случае выделяют следующие 4 класса систем:
системы с симметричной мультипроцессорной обработкой (symmeTRic multIProcessINg), или SMP-системы;
системы, построенные по технологии неоднородного доступа к памяти (non-un IForm memory access), или NUMA-системы;
кластеры;
системы вычислений с массовым параллелизмом (massively parallel processor), или MPP-системы.
Самым высоким уровнем интеграции ресурсов обладает система с симметричной мультипроцессорной обработкой, или SMP-система (рис. 1).
В этой архитектуре все процессоры имеют равноправный доступ ко всему пространству оперативной памяти и ввода/вывода. Поэтому SMP-архитектура называется симметричной. Ее интерфейсы доступа к пространству ввода/вывода и ОП, система управления кэш-памятью, системное ПО и т. п. построены таким образом, чтобы обеспечить согласованный доступ к разделяемым ресурсам. Соответствующие механизмы блокировки заложены и в шинном интерфейсе, и в компонентах операционной системы, и при построении кэша.
Вычислительные системы с программируемой структурой
