- •Цели и задачи дисциплины. Основные понятия архитектуры вс. История развития вс. Экономические факторы появления и развития вычислительных систем.
- •Эволюция и тенденции развития вычислительных систем. Современные вычислительные системы и области их применения.
- •11. Системы телеобработки, вычислительные сети. Технология распределенной обработки данных.
- •20 Многомашинные вычислительные комплексы (ммвк) и многопроцессорные вычислительные комплексы (мпвк)
- •21. Векторные, матричные, ассоциативные вычислительные системы. Однородные и функционально – распределенные вычислительные системы.
- •16 Системы массового обслуживания.
- •19 Параллельная обработка информации.
- •10. Архитектура и способы организации вычислительных систем.
- •14 Методы коммутации
19 Параллельная обработка информации.
Один из основных факторов, определяющих развитие вычислительной техники в целом и вычислительных систем в частности, – это высокая производительность. Общий метод увеличения производительности – организация параллельной обработки информации, т. е. одновременное решение задач или совмещение во времени этапов решения одной задачи. Во всем многообразии способов организации параллельной обработки можно выделить три основных направления: совмещение во времени различных этапов разных задач; одновременное решение различных задач пли частей одной задачи;
конвейерная обработка информации. Первый путь – совмещение во времени этапов решения разных задач – это мультипрограммная обработка информации. Мультипрограммная обработка возможна даже в однопроцессорной ЭВМ и широко используется в современных СОД. Второй путь – одновременное решение различных задач или частей одной задачи – возможен только при наличии нескольких обрабатывающих устройств. При этом используются те или иные особенности задач или потоков задач, что позволяет осуществить тот или иной параллелизм. Потребность в параллельной обработке данных возникает при необходимости сокращения времени решения задач, увеличения быстродействия и улучшения использования ВС. При распараллеливании процесса обработки необходимо определенным образом организовать вычисления. В этом случае: - составляются параллельные программы, то есть отображаются в явной форме параллельная обработка с помощью надлежащих конструкций языка,
ориентированного на
Формы параллелизма. Форма параллелизма обычно достаточно просто характеризует некоторый класс прикладных задач и предъявляет определенные требования к структуре, необходимой для решения этого класса задач параллельной ЭВМ. Изучение ряда алгоритмов и программ показало, что можно выделить следующие основные формы параллелизма: естественный или векторный параллелизм; параллелизм независимых ветвей; параллелизм смежных операций или скалярный параллелизм. Векторный параллелизм. Наиболее распространенной в обработке структур данных является векторная операция (естественный параллелизм). Вектор - одномерный массив, который образуется из многомерного массива, если один из индексов не фиксирован и пробегает все значения в диапазоне его изменения. параллельные вычисления; - реализуется автоматическое обнаружение параллелизма. Возможны операции и большей размерности, чем векторные: над матрицами и многомерными массивами. Однако в параллельные ЯВУ включаются только векторные операции (сложение, умножение, сравнение и т. д.), потому что они носят универсальный характер, тогда как операции более высокого уровня специфичны и возможное их число слишком велико для включения в любой язык. Перед тем, как векторная операция начнет выдавать результаты, проходит некоторое время (startup), связанное с заполнением конвейера и подкачкой аргументов. Чем больше длина векторов, тем менее заметным оказывается влияние данного начального промежутка времени на все время выполнения программы. Скалярный параллелизм. При исполнении программы регулярно встречаются ситуации, когда исходные данные для i-й операции вырабатываются заранее, например, при выполнении (i-2)-й или (i-3)-й операции. Тогда при соответствующем построении вычислительной системы можно совместить во времени выполнение i-й операции с выполнением (i-1)-й, (i-2)-й, ... операций. В таком понимании скалярный параллелизм похож на параллелизм независимых ветвей, однако они очень отличаются длиной ветвей и требуют разных вычислительных систем. Способы организации параллельной обработки. 4.1 Типы параллелизма. А) Естественный параллелизм независимых задач Суть - заключается в том, что в систему поступает непрерывный поток не связанных между собой задач, т. е. решение любой задачи не зависит от результатов решения других задач. В этом случае использование нескольких обрабатывающих устройств при любом способе комплексирования (косвенном или прямом) повышает производительность системы. Б) Параллелизм независимых ветвей Один из наиболее распространенных типов параллелизма в обработке информации. Суть его заключается в том, что при решении большой задачи могут быть выделены отдельные независимые части – ветви программы, которые при наличии нескольких обрабатывающих устройств могут выполняться параллельно и независимо друг от друга. В) Параллелизм объектов или данных Обработка параллельно поступающих данных по одной программе (обработка сигналов от радиолокационной станции, операции над матрицами (имеет место тогда, когда по одной и той же (или почти по одной и той же) программе должна обрабатываться некоторая совокупность данных, поступающих в систему одновременно.) конвейерной обработки заключается в разбиении операции на последовательные этапы длительностью в такт с последующей реализацией каждого из них отдельным физическим блоком. Если организовать работу таких блоков в виде конвейера (каждый блок, выполнив работу, передает результат вычислений следующему блоку и одновременно принимает новую порцию данных), то получится очевидный выигрыш. Конвейеры применяются как при обработке данных (конвейер данных), так и при обработке команд (конвейер команд)
23 Особенности архитектуры семейства процессоров Intel (i486 и Pentium). Суперскалярная архитектура. В микропроцессоре i486 появился важный элемент архитектуры – КОНВЕЙЕР – специальное устройство, реализующее такой метод обработки команд внутри микропроцессора, при котором исполнение команды разбивается на несколько этапов. Например, i486 имеет пятиступенчатый конвейер с такими этапами обработки команд:
выборка команды их кэш-памяти или ОП;
декодирование команды;
генерация адреса (определение операндов в памяти);
выполнение операции с помощью арифметико-логического устройства;
запись результата.
Таким образом, на конвейере может находиться одновременно пять команд на различной стадии выполнения существенно возрастает скорость вычислений. Микропроцессоры, имеющие один конвейер, называются скалярными (например, i486). Микропроцессоры, имеющие более одного конвейера, называются суперскалярными. Например, суперскалярными являются микропроцессоры Pentium (2 конвейера), Pentium Pro (3 конвейера по 14 ступеней) и последующие модели. Раздельное кэширование кода и данных Кэширование – способ увеличения быстродействия системы за счет хранения часто используемых данных и кодов в «кэш-памяти 1-го уровня» (быстрой памяти), находящейся внутри микропроцессора. Так, i486 содержит 1 блок встроенной кэш-памяти размером 8 Кбайт, который используется для кэширования и кодов, и данных. Pentium содержит уже 2 блока кэш-памяти: один для кода, один для данных (по 8 Кб) увеличивается скорость работы компьютера за счет одновременного быстрого доступа к коду и данным. Предсказание правильного адреса перехода Под переходом здесь понимается запланированное алгоритмом изменение последовательного характера выполнения программы. Статистика показывает, что типичная программа на каждые 6-8 команд содержит 1 команду перехода (условные операторы, операторы цикла, оператор безусловного перехода и т.д.) через каждые 6-8 команд необходимо очищать и заполнять заново конвейер теряются преимущества конвейеризации. Поэтому в архитектуру микропроцессоров (Pentium) был введен механизм предсказания переходов. Суть этого механизма заключается в следующем. Вводится специальный буфер адресов перехода, который хранит информацию о последних переходах (для Pentium – о 256 переходах). Для команды, управляющей ветвлением, в буфере запоминаются сама команда, адрес перехода и предположение о том, какая ветвь программы будет выполнена следующей.
Например, в ходе выполнения цикла принимается решение о выходе из цикла либо о переходе на его начало. Блок предсказания адреса перехода прогнозирует решение программы. При этом он основывается на предположении, что ветвь, которая была пройдена, будет использоваться снова (т.е. прогнозируется переход на начало цикла), и загружает соответствующую команду на конвейер. Если предсказание верно, переход осуществляется без задержки увеличение скорости работы. Вероятность правильного предсказания составляет около 80%. Усовершенствованный блок вычислений с плавающей точкой. Выполняет одну команду с плавающей точкой за один такт микропроцессора. Вычисления с плавающей точкой – неотъемлемая часть видеоприложений (CAD, 3D-графика и т.п.) Так, i486DX впервые был интегрирован на одной подложке с математическим сопроцессором. Предыдущие семейства процессоров использовали внешний математический сопроцессор. В Pentium обычные математические функции вычислений с плавающей точкой (+, *, / ) реализованы аппаратно (целочисленная конвейеризация дополнена четырехтактовыми конвейерными командами вычислений с плавающей точкой). Расширенная 64-битовая (Pentium) шина данных Шина данных является главной магистралью, которая передает информацию между процессором и подсистемой памяти. Увеличение разрядности шины данных существенно повышает скорость передачи данных. 10.2 RISC и CISC процессоры. RISC архитектура (Reduced Instruction Set Computer - RISC) основана на идее увеличения скорости процессора за счет упрощения набора команд. Набор команд включает только те простые команды, время выполнения которых после выборки и декодирования составляет около одного такта. Простые RISC-команды допускают эффективную аппаратную реализацию конвейерной обработки данных и команд. Сложные команды RISC процессором выполняются дольше, однако их количество в среднестатистической программе невелико. Основные черты RISC архитектуры:
одинаковая длина команд;
одинаковый формат команд – код команды, регистр приемник, два регистра источника; операндами команд могут быть только регистры; команды выполняют только простые действия; наличие большого количества регистров общего назначения (могут быть использованы любой командой);конвейеры; время выполнения команды - около одного такта; простая адресация.
25 Системные шины персональных компьютеров. Шина представляет из себя набор проводов (линий), соединяющих различные компоненты компьютера для подвода к ним питания и обмена данными. Как правило шина имеет три типа линий:
линии управления;
линии адресации;
линии данных.
Устройства, подключенные к шине, делятся на две основных категории:
Masters;
slaves.
Bus masters - это устройства, способные управлять шиной (инициировать запись/чтение и т.д.). Bus slaves - устройства, которые могут только отвечать на запросы.
11.1.1 Шина ISA (Industrial Standard Architecture)
Появилась в 1981г. Шина была крайне проста, содержала 53 сигнальных линии (в т.ч. 8 линий данных, 20 линий адреса, объем адресуемой памяти 1 М, 6 линий прерываний, частота шины 4.77 МГц пропускная способность до 1.2 М/сек) и 8 линий питания и представляла собой синхронную 8-битную шину с контролем четности и двухуровневыми прерываниями (устройства запрашивают прерывания изменяя состояние линии соответствующего IRQ с 0 на 1 или обратно). Использовать каждое прерывание могло только одно устройство. Шина не поддерживала дополнительных bus masters. В 1984 году появилась новая версия шины с рядом преимуществ:
16-битный обмен данными;
24 линии адреса (адресуемая память до 16 М);
11 линий IRQ;
частичная поддержка дополнительных bus masters;
частота шины 8 MHz;
пропускная способность до 5.3 М/сек.
Несмотря на отсутствие официального стандарта и простоту, шина ISA превосходила потребности среднего пользователя 1984 года, а популярность IBM AT на рынке массовых компьютеров привело к тому, что производители плат расширения и клонов AT приняли ISA за стандарт.
Шина PCI (Peripheral Component Interconnect bus)
Цель разработки - недорогое решение для процессоров 486/Pentium/P6. Разработчики отказались от использования шины процессора в качестве основной и ввели еще одну дополнительную шину. Благодаря такому решению шина имеет следующие преимущества: процессоро-независимость; возможность работать параллельно с шиной процессора, не обращаясь к ней за запросами (например, процессор работает с кэшем или системной памятью, а в это время по сети на винчестер пишется информация). При этом загрузка шины процессора значительно снижается. Кроме того, стандарт шины был объявлен открытым и передан PCI Special Interest Group, которая продолжила работу по совершенствованию шины.
Шина AGP (Accelerated Graphic Port) Появление различных 3D ускорителей привело к тому, что возникла необходимость либо увеличивать количество дорогой памяти на видеокарте, либо хранить часть информации в дешевой системной памяти, но при этом организовать к ней быстрый доступ. Шина имеет два основных режима работы: Execute и DMA. В режиме DMA основной памятью является память карты. Текстуры хранятся в системной памяти, но перед использованием копируются в локальную память карты. Обмен ведется большими последовательными пакетами. В режиме Execute локальная и системная память для видеокарты равноправны. Текстуры выбираются непосредственно из системной памяти. относительно малыми, случайно расположенными кусками.
Шина PCI Express
Преимущества последовательных шин и интерфейсов:
1. Перенос большей части практической реализации шины на микросхемы, что облегчает отладку, повышает гибкость и сокращает время разработки;
2. Перспектива использовать в будущем иные носители сигнала (оптические);
3. Экономия пространства и снижение сложности монтажа;
4. Проще реализовывать горячие подключения и динамическую конфигурацию;
5. Переход от разделяемых шин с арбитражем и непредсказуемыми прерываниями к более предсказуемым соединениям точка-точка;
6. Более дешевая и гибкая масштабируемость.
Шина IDE (Integrated Device Electronic).
Встроив AT-совместимый контроллер, использующий 16-разрядную шину ISA, непосредственно в электронику жесткого диска удалось при несущественном увеличении цены диска, заметно снизить стоимость всей дисковой подсистемы. Так появился 92
интерфейс ATA (AT Attachment - "прикрепление к АТ"), который широко известен как IDE.
26 Процессоры с поддержкой технологии Hyper-Threading. Это - технология эмуляции двух процессоров на одном процессорном ядре начиная с Pentium 4 2,8 ГГц, ранее бывшая достоянием лишь сверхдорогих Xeon. Итак, представим, что у нас есть, к примеру, два процессора вместо одного. Что это дает? В общем-то ничего. Потому что в дополнение к этому нужна еще и операционная система, умеющая задействовать эти два процессора. Эта система должна быть по определению многозадачной (иначе никакого смысла в наличии двух CPU просто быть не может), но кроме этого, ее ядро должно уметь распараллеливать вычисления на несколько CPU. Классическим примером многозадачной ОС, которая этого делать не умеет, являются все ОС от Microsoft, называемые обычно для краткости ―Windows 9x‖ — 95, 95OSR2, 98, 98SE, Me. Они просто-напросто не могут определить наличие более чем одного процессора в системе. Поддержкой SMP обладают ОС этого же производителя, построенные на ядре NT: Windows NT 4, Windows 2000, Windows XP. Также этой поддержкой обладают все ОС, основанные на идеологии Unix — всевозможные Free- Net- BSD, коммерческие Unix (такие как Solaris, HP-UX, AIX), и многочисленные разновидности Linux. Если же два процессора все же определились системой, то дальнейший механизм их задействования в общем довольно прост. Если в данный момент времени исполняется одно приложение — то все ресурсы одного процессора будут отданы ему, второй же будет просто простаивать. Если приложений стало два — второе будет отдано на исполнение второму CPU, так что по идее скорость выполнения первого не должна уменьшиться. Однако на самом деле все сложнее. Исполняемое пользовательское приложение может быть запущено всего одно, но количество процессов (т. е. фрагментов машинного кода, предназначенных для выполнения некой задачи) в многозадачной ОС всегда намного больше. Поэтому на самом деле второй CPU способен немного ―помочь‖ даже одиночной задаче, взяв на себя обслуживание процессов, порожденных операционной системой. Кроме того, даже одно приложение может порождать потоки (threads), которые при наличии нескольких CPU могут исполняться на них по отдельности. Так, например, поступают почти все программы рендеринга — они специально писались с учетом возможности работы на многопроцессорных системах. Поэтому в случае использования потоков выигрыш от SMP иногда довольно весом даже в ―однозадачной‖ ситуации. По сути, поток отличается от процесса только двумя вещами — он во-первых никогда не порождается пользователем (процесс может запустить как система, так и человек, в последнем случае процесс = приложение; появление потока инициируется исключительно запущенным процессом), и во-вторых — поток выгружается вместе с родительским процессом независимо от своего желания. Также не стоит забывать, что в классической SMP-системе оба процессора работают каждый со своим кэшем и набором регистров, но память у них общая. Поэтому если две задачи одновременно работают с ОЗУ, мешать они друг другу будут все равно, даже если CPU у каждой свой. Ну и наконец последнее: в реальности пользователь имеет дело не с одним, не с двумя, и даже не с тремя процессами. Теперь, разобравшись с «физической» многопроцессорностью, перейдем к Hyper-Threading.
Двухъядерные процессоры. Два вычислительных ядра в одном процессора – это значимый этап развития программно-аппаратной архитектуры ПК. Ранее принцип симметричной многопроцессорной обработки (SMP) применялся лишь в рабочих станциях и серверах. Параллельное выполнение программного кода – один из самых эффективных способов увеличения производительности вычислительной системы. В том или ином виде он широко применяется во всех классах вычислительных систем, от КПК до суперкомпьютеров. В частности, все современные процессоры, используемые в ПК,
реализуют принцип суперскалярной обработки. Суть этого метода состоит в том, что процессор самостоятельно анализирует поток команд, поступающих на выполнение, на предмет возможности распараллеливания. Но на сегодняшний день он себя исчерпал. Представим, что команды поступают в процессор, будучи организованными в несколько независимых друг от друга потоков. Тогда их можно выполнять параллельно без специального анализа. Пусть предварительный анализ и распараллеливание команд выполняет компилятор в процессе сборки и подготовки программы. Тогда мы можем получить предсказуемый эффект ускорения выполнения практически для любой программы. Этот прием обычно называется VLIW – инструкции с очень длинным словом.
Именно он реализован в процессорах Intel Itanium. Более универсальный и простой в реализации, хотя и дорогостоящий метод – симметричная многопроцессорная обработка (SMP).
Представим, что в системе имеются несколько идентичных процессоров, каждый из которых может работать практически независимо от остальных. Если на процессоры подавать независимые потоки команд, они будут работать одновременно, что в итоге позволит увеличить скорость работы всей системы. HyperThreading – первый шаг к SMP Увы, большинство программ для ПК все же работают линейно, они даже теоретически не способны выполняться быстрее на многопроцессорных системах. Разработчики могли бы заняться их оптимизацией для многопроцессорного выполнения, но в этом нет необходимости – в большинстве ПК установлены одноядерные процессоры. Извечную проблему «курицы и яйца» корпорация Intel решила с помощью технологии HyperThreading.
Симметричная многопоточная обработка (SMT) является промежуточным решением проблемы реализации многопроцессорности в настольной системе. SMT-процессор «внутри» работает практически так же, как суперскалярный: свободные вычислительные блоки, для которых на данном этапе не нашлось работы, загружаются командами, предназначенными для второго логического процессора. Тем самым достигается более эффективная загрузка процессора, снижается процент его простоя. В то же время «снаружи», для операционной системы и ПО, создается полная иллюзия двухпроцессорного выполнения: имеются два независимых процессора, каждый из которых способен обрабатывать свой поток данных. Производительность Вот мы и добрались до самого интересного вопроса. Понятно, что по производительности каждое ядро в составе двухъядерного процессора Intel идентично процессору Pentium 4 с аналогичной тактовой частотой. Другое дело, насколько эффективно будут загружены оба процессора. Существуют определенные препятствия для 100% загрузки двухъядерного процессора, причем как аппаратного, так и программного характера. Начнем с первой. Процессорная шина и канал подключения к памяти могут не справиться с возросшей вдвое нагрузкой, что приведет к появлению узкого места в системе, которое невозможно устранить. Необходимо будет нарастить частоты FSB и памяти. Второе препятствие обусловлено тем, что загрузка обоих процессоров возможна лишь в двух случаях: 1) приложение специально делит сложные вычисления на четное количество потоков. 2) выполняются одновременно несколько приложений. В случае выполнения на компьютере однопоточных приложений, к которым, к слову, относятся все современные игры, второй логический процессор будет заниматься выполнением вспомогательных задач, что не даст никакого эффекта. Типичная модель использования ПК как раз и не предполагает активного использования SMP: пользователь или готовит документы, или смотрит видео, или читает почту, но не делает этого одновременно.
4 Методы и средства измерений и оценки функционирования ВС Измерения являются источником наиболее достоверных данных о функционировании вычислительных систем и проводятся в следующих целях: 1) для учета выполненных работ: 2) для оценки функционирования; 3) для идентификации вычислительной системы – построения моделей. Схема измерений представлена ниже. Объектом измерений является вычислительная система, функционирующая, как правило, в рабочем режиме. К системе подключаются измерительные средства – мониторы, реагирующие на изменение состояний системы и измеряющие параметры состояний (моменты изменения состояний, продолжительность пребывания в них и др.). Измерительные данные поступают от мониторов в архив на протяжении заданного промежутка времени, накапливаются и затем обрабатываются. Вычислительная система Измерительные средства Средства оценки Выходные документы Рабочая нагрузка Архив Система оценки функцио- нирования
Рис. 7.12. Организация измерений и оценки функционирования
Функционирование вычислительной системы проявляется в изменении состояний процессов и ресурсов. Состояния отображаются в управляющих таблицах, которые формируются управляющими программами операционной системы, и в первую очередь супервизором. Состояния процессов и ресурсов изменяются в моменты выполнения специальных команд – обращения к супервизору и привилегированных, с помощью которых супервизор управляет процессами и ресурсами, а также при поступлении сигналов прерывания, извещающих супервизор о моментах окончания операций ввода – вывода, особых ситуациях в системе и сигналах на ее входах. Наряду с этим состояния устройств отображаются соответствующими электрическими сигналами.
